@contember/engine-system-api 2.1.0-alpha.8 → 2.1.0-beta.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 (512) hide show
  1. package/CLAUDE.md +30 -0
  2. package/dist/development/src/SystemContainer.cjs +34 -1
  3. package/dist/development/src/SystemContainer.cjs.map +1 -1
  4. package/dist/development/src/SystemContainer.js +34 -1
  5. package/dist/development/src/SystemContainer.js.map +1 -1
  6. package/dist/development/src/migrations/2018-08-04-102200-init.cjs.map +1 -1
  7. package/dist/development/src/migrations/2018-08-04-102200-init.js.map +1 -1
  8. package/dist/development/src/migrations/2018-08-05-130501-trigger-event-function.cjs.map +1 -1
  9. package/dist/development/src/migrations/2018-08-05-130501-trigger-event-function.js.map +1 -1
  10. package/dist/development/src/migrations/2019-01-14-143432-event-trx-id.cjs.map +1 -1
  11. package/dist/development/src/migrations/2019-01-14-143432-event-trx-id.js.map +1 -1
  12. package/dist/development/src/migrations/2019-02-04-154500-event-rebase.cjs.map +1 -1
  13. package/dist/development/src/migrations/2019-02-04-154500-event-rebase.js.map +1 -1
  14. package/dist/development/src/migrations/2019-03-18-104147-event-run-migration-struct.cjs.map +1 -1
  15. package/dist/development/src/migrations/2019-03-18-104147-event-run-migration-struct.js.map +1 -1
  16. package/dist/development/src/migrations/2019-07-29-103000-trigger-event-function-fix.cjs.map +1 -1
  17. package/dist/development/src/migrations/2019-07-29-103000-trigger-event-function-fix.js.map +1 -1
  18. package/dist/development/src/migrations/2019-11-28-100000-missing-setting-fallback.cjs.map +1 -1
  19. package/dist/development/src/migrations/2019-11-28-100000-missing-setting-fallback.js.map +1 -1
  20. package/dist/development/src/migrations/2020-03-27-130000-project-migrations.cjs.map +1 -1
  21. package/dist/development/src/migrations/2020-03-27-130000-project-migrations.js.map +1 -1
  22. package/dist/development/src/migrations/2020-05-06-150000-composed-primary.cjs.map +1 -1
  23. package/dist/development/src/migrations/2020-05-06-150000-composed-primary.js.map +1 -1
  24. package/dist/development/src/migrations/2020-06-01-103000-event-trigger-perf.cjs.map +1 -1
  25. package/dist/development/src/migrations/2020-06-01-103000-event-trigger-perf.js.map +1 -1
  26. package/dist/development/src/migrations/2021-03-23-110000-timestamp-fix.cjs.map +1 -1
  27. package/dist/development/src/migrations/2021-03-23-110000-timestamp-fix.js.map +1 -1
  28. package/dist/development/src/migrations/2021-05-07-155800-event-log-rework.cjs.map +1 -1
  29. package/dist/development/src/migrations/2021-05-07-155800-event-log-rework.js.map +1 -1
  30. package/dist/development/src/migrations/2021-05-19-1232000-event-log-fix-constraint.cjs.map +1 -1
  31. package/dist/development/src/migrations/2021-05-19-1232000-event-log-fix-constraint.js.map +1 -1
  32. package/dist/development/src/migrations/2021-12-21-155500-events-up.cjs.map +1 -1
  33. package/dist/development/src/migrations/2021-12-21-155500-events-up.js.map +1 -1
  34. package/dist/development/src/migrations/2022-02-08-132600-fn-search-path.cjs.map +1 -1
  35. package/dist/development/src/migrations/2022-02-08-132600-fn-search-path.js.map +1 -1
  36. package/dist/development/src/migrations/2022-02-08-140500-drop-deadcode.cjs.map +1 -1
  37. package/dist/development/src/migrations/2022-02-08-140500-drop-deadcode.js.map +1 -1
  38. package/dist/development/src/migrations/2022-02-08-144400-dynamic-stage-schema.cjs.map +1 -1
  39. package/dist/development/src/migrations/2022-02-08-144400-dynamic-stage-schema.js.map +1 -1
  40. package/dist/development/src/migrations/2022-10-03-110000-table-on-delete.cjs.map +1 -1
  41. package/dist/development/src/migrations/2022-10-03-110000-table-on-delete.js.map +1 -1
  42. package/dist/development/src/migrations/2023-09-11-174000-fix-on-delete.cjs +3 -1
  43. package/dist/development/src/migrations/2023-09-11-174000-fix-on-delete.cjs.map +1 -1
  44. package/dist/development/src/migrations/2023-09-11-174000-fix-on-delete.js +3 -1
  45. package/dist/development/src/migrations/2023-09-11-174000-fix-on-delete.js.map +1 -1
  46. package/dist/development/src/migrations/2023-10-19-173000-fix-unique.cjs +3 -1
  47. package/dist/development/src/migrations/2023-10-19-173000-fix-unique.cjs.map +1 -1
  48. package/dist/development/src/migrations/2023-10-19-173000-fix-unique.js +3 -1
  49. package/dist/development/src/migrations/2023-10-19-173000-fix-unique.js.map +1 -1
  50. package/dist/development/src/migrations/2023-10-24-140000-schema-nullable-checksum.cjs.map +1 -1
  51. package/dist/development/src/migrations/2023-10-24-140000-schema-nullable-checksum.js.map +1 -1
  52. package/dist/development/src/migrations/2024-06-28-150000-migrations-drop-sequence.cjs.map +1 -1
  53. package/dist/development/src/migrations/2024-06-28-150000-migrations-drop-sequence.js.map +1 -1
  54. package/dist/development/src/migrations/2024-06-28-153000-schema.cjs.map +1 -1
  55. package/dist/development/src/migrations/2024-06-28-153000-schema.js.map +1 -1
  56. package/dist/development/src/migrations/2024-06-28-153001-schema-init.cjs.map +1 -1
  57. package/dist/development/src/migrations/2024-06-28-153001-schema-init.js.map +1 -1
  58. package/dist/development/src/migrations/2024-07-29-150000-event-data-index.cjs.map +1 -1
  59. package/dist/development/src/migrations/2024-07-29-150000-event-data-index.js.map +1 -1
  60. package/dist/development/src/migrations/2025-03-14-110000-fix-missing-index.cjs.map +1 -1
  61. package/dist/development/src/migrations/2025-03-14-110000-fix-missing-index.js.map +1 -1
  62. package/dist/development/src/migrations/runner.cjs.map +1 -1
  63. package/dist/development/src/migrations/runner.js.map +1 -1
  64. package/dist/development/src/migrations/snapshot-factory.cjs.map +1 -1
  65. package/dist/development/src/migrations/snapshot-factory.js.map +1 -1
  66. package/dist/development/src/model/ProjectInitializer.cjs +18 -14
  67. package/dist/development/src/model/ProjectInitializer.cjs.map +1 -1
  68. package/dist/development/src/model/ProjectInitializer.js +18 -14
  69. package/dist/development/src/model/ProjectInitializer.js.map +1 -1
  70. package/dist/development/src/model/ProjectTruncateExecutor.cjs.map +1 -1
  71. package/dist/development/src/model/ProjectTruncateExecutor.js.map +1 -1
  72. package/dist/development/src/model/authorization/AuthorizationActions.cjs.map +1 -1
  73. package/dist/development/src/model/authorization/AuthorizationActions.js.map +1 -1
  74. package/dist/development/src/model/authorization/Identity.cjs.map +1 -1
  75. package/dist/development/src/model/authorization/Identity.js.map +1 -1
  76. package/dist/development/src/model/authorization/PermissionsFactory.cjs.map +1 -1
  77. package/dist/development/src/model/authorization/PermissionsFactory.js.map +1 -1
  78. package/dist/development/src/model/authorization/StagePermissionsFactory.cjs.map +1 -1
  79. package/dist/development/src/model/authorization/StagePermissionsFactory.js.map +1 -1
  80. package/dist/development/src/model/authorization/StageScope.cjs.map +1 -1
  81. package/dist/development/src/model/authorization/StageScope.js.map +1 -1
  82. package/dist/development/src/model/authorization/SwitchEvaluatorNode.cjs.map +1 -1
  83. package/dist/development/src/model/authorization/SwitchEvaluatorNode.js.map +1 -1
  84. package/dist/development/src/model/commands/CommandBus.cjs +1 -3
  85. package/dist/development/src/model/commands/CommandBus.cjs.map +1 -1
  86. package/dist/development/src/model/commands/CommandBus.js +1 -3
  87. package/dist/development/src/model/commands/CommandBus.js.map +1 -1
  88. package/dist/development/src/model/commands/events/TruncateEventsCommand.cjs.map +1 -1
  89. package/dist/development/src/model/commands/events/TruncateEventsCommand.js.map +1 -1
  90. package/dist/development/src/model/commands/migrations/DeleteMigrationCommand.cjs.map +1 -1
  91. package/dist/development/src/model/commands/migrations/DeleteMigrationCommand.js.map +1 -1
  92. package/dist/development/src/model/commands/migrations/ModifyMigrationCommand.cjs.map +1 -1
  93. package/dist/development/src/model/commands/migrations/ModifyMigrationCommand.js.map +1 -1
  94. package/dist/development/src/model/commands/migrations/SaveMigrationCommand.cjs.map +1 -1
  95. package/dist/development/src/model/commands/migrations/SaveMigrationCommand.js.map +1 -1
  96. package/dist/development/src/model/commands/schema/SaveSchemaCommand.cjs.map +1 -1
  97. package/dist/development/src/model/commands/schema/SaveSchemaCommand.js.map +1 -1
  98. package/dist/development/src/model/commands/stages/CreateStageCommand.cjs.map +1 -1
  99. package/dist/development/src/model/commands/stages/CreateStageCommand.js.map +1 -1
  100. package/dist/development/src/model/database/DatabaseContext.cjs.map +1 -1
  101. package/dist/development/src/model/database/DatabaseContext.js.map +1 -1
  102. package/dist/development/src/model/dtos/ExecutedMigration.cjs.map +1 -1
  103. package/dist/development/src/model/dtos/ExecutedMigration.js.map +1 -1
  104. package/dist/development/src/model/events/EventResponseBuilder.cjs.map +1 -1
  105. package/dist/development/src/model/events/EventResponseBuilder.js.map +1 -1
  106. package/dist/development/src/model/events/EventResponseHelper.cjs.map +1 -1
  107. package/dist/development/src/model/events/EventResponseHelper.js.map +1 -1
  108. package/dist/development/src/model/events/identityUtils.cjs.map +1 -1
  109. package/dist/development/src/model/events/identityUtils.js.map +1 -1
  110. package/dist/development/src/model/events/types.cjs.map +1 -1
  111. package/dist/development/src/model/events/types.js.map +1 -1
  112. package/dist/development/src/model/helpers/modelHelpers.cjs.map +1 -1
  113. package/dist/development/src/model/helpers/modelHelpers.js.map +1 -1
  114. package/dist/development/src/model/metadata/SchemaDatabaseMetadataResolverStore.cjs.map +1 -1
  115. package/dist/development/src/model/metadata/SchemaDatabaseMetadataResolverStore.js.map +1 -1
  116. package/dist/development/src/model/migrations/ExecutedMigrationsResolver.cjs.map +1 -1
  117. package/dist/development/src/model/migrations/ExecutedMigrationsResolver.js.map +1 -1
  118. package/dist/development/src/model/migrations/MigrationAlterer.cjs.map +1 -1
  119. package/dist/development/src/model/migrations/MigrationAlterer.js.map +1 -1
  120. package/dist/development/src/model/migrations/ProjectMigrator.cjs +25 -13
  121. package/dist/development/src/model/migrations/ProjectMigrator.cjs.map +1 -1
  122. package/dist/development/src/model/migrations/ProjectMigrator.js +25 -13
  123. package/dist/development/src/model/migrations/ProjectMigrator.js.map +1 -1
  124. package/dist/development/src/model/migrations/SchemaProvider.cjs +1 -4
  125. package/dist/development/src/model/migrations/SchemaProvider.cjs.map +1 -1
  126. package/dist/development/src/model/migrations/SchemaProvider.js +2 -5
  127. package/dist/development/src/model/migrations/SchemaProvider.js.map +1 -1
  128. package/dist/development/src/model/queries/events/EventQueryHelpers.cjs.map +1 -1
  129. package/dist/development/src/model/queries/events/EventQueryHelpers.js.map +1 -1
  130. package/dist/development/src/model/queries/events/EventsQuery.cjs +1 -5
  131. package/dist/development/src/model/queries/events/EventsQuery.cjs.map +1 -1
  132. package/dist/development/src/model/queries/events/EventsQuery.js +1 -5
  133. package/dist/development/src/model/queries/events/EventsQuery.js.map +1 -1
  134. package/dist/development/src/model/queries/events/LatestTransactionIdByStageQuery.cjs.map +1 -1
  135. package/dist/development/src/model/queries/events/LatestTransactionIdByStageQuery.js.map +1 -1
  136. package/dist/development/src/model/queries/events/OldValuesQuery.cjs +1 -5
  137. package/dist/development/src/model/queries/events/OldValuesQuery.cjs.map +1 -1
  138. package/dist/development/src/model/queries/events/OldValuesQuery.js +1 -5
  139. package/dist/development/src/model/queries/events/OldValuesQuery.js.map +1 -1
  140. package/dist/development/src/model/queries/migrations/ExecutedMigrationByVersionQuery.cjs.map +1 -1
  141. package/dist/development/src/model/queries/migrations/ExecutedMigrationByVersionQuery.js.map +1 -1
  142. package/dist/development/src/model/queries/migrations/ExecutedMigrationsQuery.cjs.map +1 -1
  143. package/dist/development/src/model/queries/migrations/ExecutedMigrationsQuery.js.map +1 -1
  144. package/dist/development/src/model/queries/migrations/ExecutedMigrationsQueryHelper.cjs.map +1 -1
  145. package/dist/development/src/model/queries/migrations/ExecutedMigrationsQueryHelper.js.map +1 -1
  146. package/dist/development/src/model/queries/schema/SchemaQuery.cjs.map +1 -1
  147. package/dist/development/src/model/queries/schema/SchemaQuery.js.map +1 -1
  148. package/dist/development/src/model/queries/stages/StageBySlugQuery.cjs.map +1 -1
  149. package/dist/development/src/model/queries/stages/StageBySlugQuery.js.map +1 -1
  150. package/dist/development/src/model/queries/stages/StageQueryFactory.cjs.map +1 -1
  151. package/dist/development/src/model/queries/stages/StageQueryFactory.js.map +1 -1
  152. package/dist/development/src/model/queries/stages/StagesQuery.cjs.map +1 -1
  153. package/dist/development/src/model/queries/stages/StagesQuery.js.map +1 -1
  154. package/dist/development/src/model/stages/StageCreator.cjs +0 -2
  155. package/dist/development/src/model/stages/StageCreator.cjs.map +1 -1
  156. package/dist/development/src/model/stages/StageCreator.js +0 -2
  157. package/dist/development/src/model/stages/StageCreator.js.map +1 -1
  158. package/dist/development/src/resolvers/ResolverFactory.cjs +1 -1
  159. package/dist/development/src/resolvers/ResolverFactory.cjs.map +1 -1
  160. package/dist/development/src/resolvers/ResolverFactory.js +2 -2
  161. package/dist/development/src/resolvers/ResolverFactory.js.map +1 -1
  162. package/dist/development/src/resolvers/SystemResolverContext.cjs.map +1 -1
  163. package/dist/development/src/resolvers/SystemResolverContext.js.map +1 -1
  164. package/dist/development/src/resolvers/mutation/MigrateMutationResolver.cjs.map +1 -1
  165. package/dist/development/src/resolvers/mutation/MigrateMutationResolver.js.map +1 -1
  166. package/dist/development/src/resolvers/mutation/MigrationAlterMutationResolver.cjs.map +1 -1
  167. package/dist/development/src/resolvers/mutation/MigrationAlterMutationResolver.js.map +1 -1
  168. package/dist/development/src/resolvers/mutation/TruncateMutationResolver.cjs.map +1 -1
  169. package/dist/development/src/resolvers/mutation/TruncateMutationResolver.js.map +1 -1
  170. package/dist/development/src/resolvers/query/EventsQueryResolver.cjs +8 -6
  171. package/dist/development/src/resolvers/query/EventsQueryResolver.cjs.map +1 -1
  172. package/dist/development/src/resolvers/query/EventsQueryResolver.js +8 -6
  173. package/dist/development/src/resolvers/query/EventsQueryResolver.js.map +1 -1
  174. package/dist/development/src/resolvers/query/ExecutedMigrationsQueryResolver.cjs.map +1 -1
  175. package/dist/development/src/resolvers/query/ExecutedMigrationsQueryResolver.js.map +1 -1
  176. package/dist/development/src/resolvers/query/SchemaQueryResolver.cjs.map +1 -1
  177. package/dist/development/src/resolvers/query/SchemaQueryResolver.js.map +1 -1
  178. package/dist/development/src/resolvers/query/StagesQueryResolver.cjs.map +1 -1
  179. package/dist/development/src/resolvers/query/StagesQueryResolver.js.map +1 -1
  180. package/dist/development/src/resolvers/types/EventOldValuesResolver.cjs.map +1 -1
  181. package/dist/development/src/resolvers/types/EventOldValuesResolver.js.map +1 -1
  182. package/dist/development/src/resolvers/types/OldValuesHelpers.cjs.map +1 -1
  183. package/dist/development/src/resolvers/types/OldValuesHelpers.js.map +1 -1
  184. package/dist/development/src/schema/dev.graphql.cjs.map +1 -1
  185. package/dist/development/src/schema/system.graphql.cjs.map +1 -1
  186. package/dist/development/src/schema/types.cjs.map +1 -1
  187. package/dist/development/src/schema/types.js.map +1 -1
  188. package/dist/development/src/utils/MapSet.cjs.map +1 -1
  189. package/dist/development/src/utils/MapSet.js.map +1 -1
  190. package/dist/development/src/utils/Response.cjs.map +1 -1
  191. package/dist/development/src/utils/Response.js.map +1 -1
  192. package/dist/development/src/utils/assertNever.cjs.map +1 -1
  193. package/dist/development/src/utils/assertNever.js.map +1 -1
  194. package/dist/development/src/utils/batchQuery.cjs.map +1 -1
  195. package/dist/development/src/utils/batchQuery.js.map +1 -1
  196. package/dist/development/src/utils/tick.cjs.map +1 -1
  197. package/dist/development/src/utils/tick.js.map +1 -1
  198. package/dist/development/src/utils/tuple.cjs.map +1 -1
  199. package/dist/development/src/utils/tuple.js.map +1 -1
  200. package/dist/production/src/SystemContainer.cjs +34 -1
  201. package/dist/production/src/SystemContainer.cjs.map +1 -1
  202. package/dist/production/src/SystemContainer.js +34 -1
  203. package/dist/production/src/SystemContainer.js.map +1 -1
  204. package/dist/production/src/migrations/2018-08-04-102200-init.cjs.map +1 -1
  205. package/dist/production/src/migrations/2018-08-04-102200-init.js.map +1 -1
  206. package/dist/production/src/migrations/2018-08-05-130501-trigger-event-function.cjs.map +1 -1
  207. package/dist/production/src/migrations/2018-08-05-130501-trigger-event-function.js.map +1 -1
  208. package/dist/production/src/migrations/2019-01-14-143432-event-trx-id.cjs.map +1 -1
  209. package/dist/production/src/migrations/2019-01-14-143432-event-trx-id.js.map +1 -1
  210. package/dist/production/src/migrations/2019-02-04-154500-event-rebase.cjs.map +1 -1
  211. package/dist/production/src/migrations/2019-02-04-154500-event-rebase.js.map +1 -1
  212. package/dist/production/src/migrations/2019-03-18-104147-event-run-migration-struct.cjs.map +1 -1
  213. package/dist/production/src/migrations/2019-03-18-104147-event-run-migration-struct.js.map +1 -1
  214. package/dist/production/src/migrations/2019-07-29-103000-trigger-event-function-fix.cjs.map +1 -1
  215. package/dist/production/src/migrations/2019-07-29-103000-trigger-event-function-fix.js.map +1 -1
  216. package/dist/production/src/migrations/2019-11-28-100000-missing-setting-fallback.cjs.map +1 -1
  217. package/dist/production/src/migrations/2019-11-28-100000-missing-setting-fallback.js.map +1 -1
  218. package/dist/production/src/migrations/2020-03-27-130000-project-migrations.cjs.map +1 -1
  219. package/dist/production/src/migrations/2020-03-27-130000-project-migrations.js.map +1 -1
  220. package/dist/production/src/migrations/2020-05-06-150000-composed-primary.cjs.map +1 -1
  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.map +1 -1
  223. package/dist/production/src/migrations/2020-06-01-103000-event-trigger-perf.js.map +1 -1
  224. package/dist/production/src/migrations/2021-03-23-110000-timestamp-fix.cjs.map +1 -1
  225. package/dist/production/src/migrations/2021-03-23-110000-timestamp-fix.js.map +1 -1
  226. package/dist/production/src/migrations/2021-05-07-155800-event-log-rework.cjs.map +1 -1
  227. package/dist/production/src/migrations/2021-05-07-155800-event-log-rework.js.map +1 -1
  228. package/dist/production/src/migrations/2021-05-19-1232000-event-log-fix-constraint.cjs.map +1 -1
  229. package/dist/production/src/migrations/2021-05-19-1232000-event-log-fix-constraint.js.map +1 -1
  230. package/dist/production/src/migrations/2021-12-21-155500-events-up.cjs.map +1 -1
  231. package/dist/production/src/migrations/2021-12-21-155500-events-up.js.map +1 -1
  232. package/dist/production/src/migrations/2022-02-08-132600-fn-search-path.cjs.map +1 -1
  233. package/dist/production/src/migrations/2022-02-08-132600-fn-search-path.js.map +1 -1
  234. package/dist/production/src/migrations/2022-02-08-140500-drop-deadcode.cjs.map +1 -1
  235. package/dist/production/src/migrations/2022-02-08-140500-drop-deadcode.js.map +1 -1
  236. package/dist/production/src/migrations/2022-02-08-144400-dynamic-stage-schema.cjs.map +1 -1
  237. package/dist/production/src/migrations/2022-02-08-144400-dynamic-stage-schema.js.map +1 -1
  238. package/dist/production/src/migrations/2022-10-03-110000-table-on-delete.cjs.map +1 -1
  239. package/dist/production/src/migrations/2022-10-03-110000-table-on-delete.js.map +1 -1
  240. package/dist/production/src/migrations/2023-09-11-174000-fix-on-delete.cjs +3 -1
  241. package/dist/production/src/migrations/2023-09-11-174000-fix-on-delete.cjs.map +1 -1
  242. package/dist/production/src/migrations/2023-09-11-174000-fix-on-delete.js +3 -1
  243. package/dist/production/src/migrations/2023-09-11-174000-fix-on-delete.js.map +1 -1
  244. package/dist/production/src/migrations/2023-10-19-173000-fix-unique.cjs +3 -1
  245. package/dist/production/src/migrations/2023-10-19-173000-fix-unique.cjs.map +1 -1
  246. package/dist/production/src/migrations/2023-10-19-173000-fix-unique.js +3 -1
  247. package/dist/production/src/migrations/2023-10-19-173000-fix-unique.js.map +1 -1
  248. package/dist/production/src/migrations/2023-10-24-140000-schema-nullable-checksum.cjs.map +1 -1
  249. package/dist/production/src/migrations/2023-10-24-140000-schema-nullable-checksum.js.map +1 -1
  250. package/dist/production/src/migrations/2024-06-28-150000-migrations-drop-sequence.cjs.map +1 -1
  251. package/dist/production/src/migrations/2024-06-28-150000-migrations-drop-sequence.js.map +1 -1
  252. package/dist/production/src/migrations/2024-06-28-153000-schema.cjs.map +1 -1
  253. package/dist/production/src/migrations/2024-06-28-153000-schema.js.map +1 -1
  254. package/dist/production/src/migrations/2024-06-28-153001-schema-init.cjs.map +1 -1
  255. package/dist/production/src/migrations/2024-06-28-153001-schema-init.js.map +1 -1
  256. package/dist/production/src/migrations/2024-07-29-150000-event-data-index.cjs.map +1 -1
  257. package/dist/production/src/migrations/2024-07-29-150000-event-data-index.js.map +1 -1
  258. package/dist/production/src/migrations/2025-03-14-110000-fix-missing-index.cjs.map +1 -1
  259. package/dist/production/src/migrations/2025-03-14-110000-fix-missing-index.js.map +1 -1
  260. package/dist/production/src/migrations/runner.cjs.map +1 -1
  261. package/dist/production/src/migrations/runner.js.map +1 -1
  262. package/dist/production/src/migrations/snapshot-factory.cjs.map +1 -1
  263. package/dist/production/src/migrations/snapshot-factory.js.map +1 -1
  264. package/dist/production/src/model/ProjectInitializer.cjs +18 -14
  265. package/dist/production/src/model/ProjectInitializer.cjs.map +1 -1
  266. package/dist/production/src/model/ProjectInitializer.js +18 -14
  267. package/dist/production/src/model/ProjectInitializer.js.map +1 -1
  268. package/dist/production/src/model/ProjectTruncateExecutor.cjs.map +1 -1
  269. package/dist/production/src/model/ProjectTruncateExecutor.js.map +1 -1
  270. package/dist/production/src/model/authorization/AuthorizationActions.cjs.map +1 -1
  271. package/dist/production/src/model/authorization/AuthorizationActions.js.map +1 -1
  272. package/dist/production/src/model/authorization/Identity.cjs.map +1 -1
  273. package/dist/production/src/model/authorization/Identity.js.map +1 -1
  274. package/dist/production/src/model/authorization/PermissionsFactory.cjs.map +1 -1
  275. package/dist/production/src/model/authorization/PermissionsFactory.js.map +1 -1
  276. package/dist/production/src/model/authorization/StagePermissionsFactory.cjs.map +1 -1
  277. package/dist/production/src/model/authorization/StagePermissionsFactory.js.map +1 -1
  278. package/dist/production/src/model/authorization/StageScope.cjs.map +1 -1
  279. package/dist/production/src/model/authorization/StageScope.js.map +1 -1
  280. package/dist/production/src/model/authorization/SwitchEvaluatorNode.cjs.map +1 -1
  281. package/dist/production/src/model/authorization/SwitchEvaluatorNode.js.map +1 -1
  282. package/dist/production/src/model/commands/CommandBus.cjs +1 -3
  283. package/dist/production/src/model/commands/CommandBus.cjs.map +1 -1
  284. package/dist/production/src/model/commands/CommandBus.js +1 -3
  285. package/dist/production/src/model/commands/CommandBus.js.map +1 -1
  286. package/dist/production/src/model/commands/events/TruncateEventsCommand.cjs.map +1 -1
  287. package/dist/production/src/model/commands/events/TruncateEventsCommand.js.map +1 -1
  288. package/dist/production/src/model/commands/migrations/DeleteMigrationCommand.cjs.map +1 -1
  289. package/dist/production/src/model/commands/migrations/DeleteMigrationCommand.js.map +1 -1
  290. package/dist/production/src/model/commands/migrations/ModifyMigrationCommand.cjs.map +1 -1
  291. package/dist/production/src/model/commands/migrations/ModifyMigrationCommand.js.map +1 -1
  292. package/dist/production/src/model/commands/migrations/SaveMigrationCommand.cjs.map +1 -1
  293. package/dist/production/src/model/commands/migrations/SaveMigrationCommand.js.map +1 -1
  294. package/dist/production/src/model/commands/schema/SaveSchemaCommand.cjs.map +1 -1
  295. package/dist/production/src/model/commands/schema/SaveSchemaCommand.js.map +1 -1
  296. package/dist/production/src/model/commands/stages/CreateStageCommand.cjs.map +1 -1
  297. package/dist/production/src/model/commands/stages/CreateStageCommand.js.map +1 -1
  298. package/dist/production/src/model/database/DatabaseContext.cjs.map +1 -1
  299. package/dist/production/src/model/database/DatabaseContext.js.map +1 -1
  300. package/dist/production/src/model/dtos/ExecutedMigration.cjs.map +1 -1
  301. package/dist/production/src/model/dtos/ExecutedMigration.js.map +1 -1
  302. package/dist/production/src/model/events/EventResponseBuilder.cjs.map +1 -1
  303. package/dist/production/src/model/events/EventResponseBuilder.js.map +1 -1
  304. package/dist/production/src/model/events/EventResponseHelper.cjs.map +1 -1
  305. package/dist/production/src/model/events/EventResponseHelper.js.map +1 -1
  306. package/dist/production/src/model/events/identityUtils.cjs.map +1 -1
  307. package/dist/production/src/model/events/identityUtils.js.map +1 -1
  308. package/dist/production/src/model/events/types.cjs.map +1 -1
  309. package/dist/production/src/model/events/types.js.map +1 -1
  310. package/dist/production/src/model/helpers/modelHelpers.cjs.map +1 -1
  311. package/dist/production/src/model/helpers/modelHelpers.js.map +1 -1
  312. package/dist/production/src/model/metadata/SchemaDatabaseMetadataResolverStore.cjs.map +1 -1
  313. package/dist/production/src/model/metadata/SchemaDatabaseMetadataResolverStore.js.map +1 -1
  314. package/dist/production/src/model/migrations/ExecutedMigrationsResolver.cjs.map +1 -1
  315. package/dist/production/src/model/migrations/ExecutedMigrationsResolver.js.map +1 -1
  316. package/dist/production/src/model/migrations/MigrationAlterer.cjs.map +1 -1
  317. package/dist/production/src/model/migrations/MigrationAlterer.js.map +1 -1
  318. package/dist/production/src/model/migrations/ProjectMigrator.cjs +25 -13
  319. package/dist/production/src/model/migrations/ProjectMigrator.cjs.map +1 -1
  320. package/dist/production/src/model/migrations/ProjectMigrator.js +25 -13
  321. package/dist/production/src/model/migrations/ProjectMigrator.js.map +1 -1
  322. package/dist/production/src/model/migrations/SchemaProvider.cjs +1 -4
  323. package/dist/production/src/model/migrations/SchemaProvider.cjs.map +1 -1
  324. package/dist/production/src/model/migrations/SchemaProvider.js +2 -5
  325. package/dist/production/src/model/migrations/SchemaProvider.js.map +1 -1
  326. package/dist/production/src/model/queries/events/EventQueryHelpers.cjs.map +1 -1
  327. package/dist/production/src/model/queries/events/EventQueryHelpers.js.map +1 -1
  328. package/dist/production/src/model/queries/events/EventsQuery.cjs +1 -5
  329. package/dist/production/src/model/queries/events/EventsQuery.cjs.map +1 -1
  330. package/dist/production/src/model/queries/events/EventsQuery.js +1 -5
  331. package/dist/production/src/model/queries/events/EventsQuery.js.map +1 -1
  332. package/dist/production/src/model/queries/events/LatestTransactionIdByStageQuery.cjs.map +1 -1
  333. package/dist/production/src/model/queries/events/LatestTransactionIdByStageQuery.js.map +1 -1
  334. package/dist/production/src/model/queries/events/OldValuesQuery.cjs +1 -5
  335. package/dist/production/src/model/queries/events/OldValuesQuery.cjs.map +1 -1
  336. package/dist/production/src/model/queries/events/OldValuesQuery.js +1 -5
  337. package/dist/production/src/model/queries/events/OldValuesQuery.js.map +1 -1
  338. package/dist/production/src/model/queries/migrations/ExecutedMigrationByVersionQuery.cjs.map +1 -1
  339. package/dist/production/src/model/queries/migrations/ExecutedMigrationByVersionQuery.js.map +1 -1
  340. package/dist/production/src/model/queries/migrations/ExecutedMigrationsQuery.cjs.map +1 -1
  341. package/dist/production/src/model/queries/migrations/ExecutedMigrationsQuery.js.map +1 -1
  342. package/dist/production/src/model/queries/migrations/ExecutedMigrationsQueryHelper.cjs.map +1 -1
  343. package/dist/production/src/model/queries/migrations/ExecutedMigrationsQueryHelper.js.map +1 -1
  344. package/dist/production/src/model/queries/schema/SchemaQuery.cjs.map +1 -1
  345. package/dist/production/src/model/queries/schema/SchemaQuery.js.map +1 -1
  346. package/dist/production/src/model/queries/stages/StageBySlugQuery.cjs.map +1 -1
  347. package/dist/production/src/model/queries/stages/StageBySlugQuery.js.map +1 -1
  348. package/dist/production/src/model/queries/stages/StageQueryFactory.cjs.map +1 -1
  349. package/dist/production/src/model/queries/stages/StageQueryFactory.js.map +1 -1
  350. package/dist/production/src/model/queries/stages/StagesQuery.cjs.map +1 -1
  351. package/dist/production/src/model/queries/stages/StagesQuery.js.map +1 -1
  352. package/dist/production/src/model/stages/StageCreator.cjs +0 -2
  353. package/dist/production/src/model/stages/StageCreator.cjs.map +1 -1
  354. package/dist/production/src/model/stages/StageCreator.js +0 -2
  355. package/dist/production/src/model/stages/StageCreator.js.map +1 -1
  356. package/dist/production/src/resolvers/ResolverFactory.cjs +1 -1
  357. package/dist/production/src/resolvers/ResolverFactory.cjs.map +1 -1
  358. package/dist/production/src/resolvers/ResolverFactory.js +2 -2
  359. package/dist/production/src/resolvers/ResolverFactory.js.map +1 -1
  360. package/dist/production/src/resolvers/SystemResolverContext.cjs.map +1 -1
  361. package/dist/production/src/resolvers/SystemResolverContext.js.map +1 -1
  362. package/dist/production/src/resolvers/mutation/MigrateMutationResolver.cjs.map +1 -1
  363. package/dist/production/src/resolvers/mutation/MigrateMutationResolver.js.map +1 -1
  364. package/dist/production/src/resolvers/mutation/MigrationAlterMutationResolver.cjs.map +1 -1
  365. package/dist/production/src/resolvers/mutation/MigrationAlterMutationResolver.js.map +1 -1
  366. package/dist/production/src/resolvers/mutation/TruncateMutationResolver.cjs.map +1 -1
  367. package/dist/production/src/resolvers/mutation/TruncateMutationResolver.js.map +1 -1
  368. package/dist/production/src/resolvers/query/EventsQueryResolver.cjs +8 -6
  369. package/dist/production/src/resolvers/query/EventsQueryResolver.cjs.map +1 -1
  370. package/dist/production/src/resolvers/query/EventsQueryResolver.js +8 -6
  371. package/dist/production/src/resolvers/query/EventsQueryResolver.js.map +1 -1
  372. package/dist/production/src/resolvers/query/ExecutedMigrationsQueryResolver.cjs.map +1 -1
  373. package/dist/production/src/resolvers/query/ExecutedMigrationsQueryResolver.js.map +1 -1
  374. package/dist/production/src/resolvers/query/SchemaQueryResolver.cjs.map +1 -1
  375. package/dist/production/src/resolvers/query/SchemaQueryResolver.js.map +1 -1
  376. package/dist/production/src/resolvers/query/StagesQueryResolver.cjs.map +1 -1
  377. package/dist/production/src/resolvers/query/StagesQueryResolver.js.map +1 -1
  378. package/dist/production/src/resolvers/types/EventOldValuesResolver.cjs.map +1 -1
  379. package/dist/production/src/resolvers/types/EventOldValuesResolver.js.map +1 -1
  380. package/dist/production/src/resolvers/types/OldValuesHelpers.cjs.map +1 -1
  381. package/dist/production/src/resolvers/types/OldValuesHelpers.js.map +1 -1
  382. package/dist/production/src/schema/dev.graphql.cjs.map +1 -1
  383. package/dist/production/src/schema/system.graphql.cjs.map +1 -1
  384. package/dist/production/src/schema/types.cjs.map +1 -1
  385. package/dist/production/src/schema/types.js.map +1 -1
  386. package/dist/production/src/utils/MapSet.cjs.map +1 -1
  387. package/dist/production/src/utils/MapSet.js.map +1 -1
  388. package/dist/production/src/utils/Response.cjs.map +1 -1
  389. package/dist/production/src/utils/Response.js.map +1 -1
  390. package/dist/production/src/utils/assertNever.cjs.map +1 -1
  391. package/dist/production/src/utils/assertNever.js.map +1 -1
  392. package/dist/production/src/utils/batchQuery.cjs.map +1 -1
  393. package/dist/production/src/utils/batchQuery.js.map +1 -1
  394. package/dist/production/src/utils/tick.cjs.map +1 -1
  395. package/dist/production/src/utils/tick.js.map +1 -1
  396. package/dist/production/src/utils/tuple.cjs.map +1 -1
  397. package/dist/production/src/utils/tuple.js.map +1 -1
  398. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  399. package/dist/types/SystemContainer.d.ts.map +1 -1
  400. package/dist/types/index.d.ts +2 -2
  401. package/dist/types/index.d.ts.map +1 -1
  402. package/dist/types/migrations/2018-08-04-102200-init.d.ts.map +1 -1
  403. package/dist/types/migrations/2018-08-05-130501-trigger-event-function.d.ts.map +1 -1
  404. package/dist/types/migrations/2019-01-14-143432-event-trx-id.d.ts.map +1 -1
  405. package/dist/types/migrations/2019-02-04-154500-event-rebase.d.ts.map +1 -1
  406. package/dist/types/migrations/2019-03-18-104147-event-run-migration-struct.d.ts.map +1 -1
  407. package/dist/types/migrations/2019-07-29-103000-trigger-event-function-fix.d.ts.map +1 -1
  408. package/dist/types/migrations/2019-11-28-100000-missing-setting-fallback.d.ts.map +1 -1
  409. package/dist/types/migrations/2020-03-27-130000-project-migrations.d.ts.map +1 -1
  410. package/dist/types/migrations/2020-05-06-150000-composed-primary.d.ts.map +1 -1
  411. package/dist/types/migrations/2020-06-01-103000-event-trigger-perf.d.ts.map +1 -1
  412. package/dist/types/migrations/2021-03-23-110000-timestamp-fix.d.ts.map +1 -1
  413. package/dist/types/migrations/2021-05-07-155800-event-log-rework.d.ts.map +1 -1
  414. package/dist/types/migrations/2021-05-19-1232000-event-log-fix-constraint.d.ts.map +1 -1
  415. package/dist/types/migrations/2021-12-21-155500-events-up.d.ts.map +1 -1
  416. package/dist/types/migrations/2022-02-08-132600-fn-search-path.d.ts.map +1 -1
  417. package/dist/types/migrations/2022-02-08-140500-drop-deadcode.d.ts.map +1 -1
  418. package/dist/types/migrations/2022-02-08-144400-dynamic-stage-schema.d.ts.map +1 -1
  419. package/dist/types/migrations/2022-10-03-110000-table-on-delete.d.ts.map +1 -1
  420. package/dist/types/migrations/2023-09-11-174000-fix-on-delete.d.ts.map +1 -1
  421. package/dist/types/migrations/2023-10-19-173000-fix-unique.d.ts.map +1 -1
  422. package/dist/types/migrations/2023-10-24-140000-schema-nullable-checksum.d.ts.map +1 -1
  423. package/dist/types/migrations/2024-06-28-150000-migrations-drop-sequence.d.ts.map +1 -1
  424. package/dist/types/migrations/2024-06-28-153000-schema.d.ts.map +1 -1
  425. package/dist/types/migrations/2024-06-28-153001-schema-init.d.ts.map +1 -1
  426. package/dist/types/migrations/2024-07-29-150000-event-data-index.d.ts.map +1 -1
  427. package/dist/types/migrations/2025-03-14-110000-fix-missing-index.d.ts.map +1 -1
  428. package/dist/types/migrations/runner.d.ts.map +1 -1
  429. package/dist/types/migrations/snapshot-factory.d.ts.map +1 -1
  430. package/dist/types/model/ProjectInitializer.d.ts.map +1 -1
  431. package/dist/types/model/commands/Command.d.ts +1 -1
  432. package/dist/types/model/commands/Command.d.ts.map +1 -1
  433. package/dist/types/model/commands/CommandBus.d.ts.map +1 -1
  434. package/dist/types/model/commands/migrations/SaveMigrationCommand.d.ts.map +1 -1
  435. package/dist/types/model/dtos/ExecutedMigration.d.ts.map +1 -1
  436. package/dist/types/model/metadata/SchemaDatabaseMetadataResolverStore.d.ts.map +1 -1
  437. package/dist/types/model/migrations/ProjectMigrator.d.ts +1 -0
  438. package/dist/types/model/migrations/ProjectMigrator.d.ts.map +1 -1
  439. package/dist/types/model/migrations/SchemaProvider.d.ts.map +1 -1
  440. package/dist/types/model/queries/events/EventsQuery.d.ts.map +1 -1
  441. package/dist/types/model/queries/schema/SchemaQuery.d.ts.map +1 -1
  442. package/dist/types/model/stages/StageCreator.d.ts +0 -1
  443. package/dist/types/model/stages/StageCreator.d.ts.map +1 -1
  444. package/dist/types/resolvers/ResolverFactory.d.ts.map +1 -1
  445. package/dist/types/resolvers/SystemResolverContext.d.ts.map +1 -1
  446. package/dist/types/resolvers/mutation/MigrateMutationResolver.d.ts.map +1 -1
  447. package/dist/types/resolvers/mutation/MigrationAlterMutationResolver.d.ts.map +1 -1
  448. package/dist/types/resolvers/query/EventsQueryResolver.d.ts.map +1 -1
  449. package/dist/types/schema/types.d.ts.map +1 -1
  450. package/dist/types/tsconfig.tsbuildinfo +1 -1
  451. package/graphql.codegen.yml +1 -1
  452. package/package.json +24 -19
  453. package/src/SystemContainer.ts +61 -56
  454. package/src/bin/runMigrations.ts +1 -5
  455. package/src/index.ts +5 -5
  456. package/src/migrations/2018-08-04-102200-init.ts +1 -1
  457. package/src/migrations/2018-08-05-130501-trigger-event-function.ts +1 -1
  458. package/src/migrations/2019-01-14-143432-event-trx-id.ts +1 -1
  459. package/src/migrations/2019-02-04-154500-event-rebase.ts +1 -1
  460. package/src/migrations/2019-03-18-104147-event-run-migration-struct.ts +1 -1
  461. package/src/migrations/2019-07-29-103000-trigger-event-function-fix.ts +1 -1
  462. package/src/migrations/2019-11-28-100000-missing-setting-fallback.ts +1 -1
  463. package/src/migrations/2020-03-27-130000-project-migrations.ts +1 -1
  464. package/src/migrations/2020-05-06-150000-composed-primary.ts +1 -1
  465. package/src/migrations/2020-06-01-103000-event-trigger-perf.ts +1 -1
  466. package/src/migrations/2021-03-23-110000-timestamp-fix.ts +1 -1
  467. package/src/migrations/2021-05-07-155800-event-log-rework.ts +1 -1
  468. package/src/migrations/2021-05-19-1232000-event-log-fix-constraint.ts +1 -1
  469. package/src/migrations/2021-12-21-155500-events-up.ts +1 -1
  470. package/src/migrations/2022-02-08-132600-fn-search-path.ts +1 -1
  471. package/src/migrations/2022-02-08-140500-drop-deadcode.ts +1 -1
  472. package/src/migrations/2022-02-08-144400-dynamic-stage-schema.ts +1 -1
  473. package/src/migrations/2022-10-03-110000-table-on-delete.ts +11 -7
  474. package/src/migrations/2023-09-11-174000-fix-on-delete.ts +14 -8
  475. package/src/migrations/2023-10-19-173000-fix-unique.ts +5 -4
  476. package/src/migrations/2023-10-24-140000-schema-nullable-checksum.ts +1 -1
  477. package/src/migrations/2024-06-28-150000-migrations-drop-sequence.ts +1 -1
  478. package/src/migrations/2024-06-28-153000-schema.ts +1 -1
  479. package/src/migrations/2024-06-28-153001-schema-init.ts +1 -2
  480. package/src/migrations/2024-07-29-150000-event-data-index.ts +1 -1
  481. package/src/migrations/2025-03-14-110000-fix-missing-index.ts +2 -3
  482. package/src/migrations/runner.ts +12 -12
  483. package/src/migrations/snapshot-factory.ts +0 -1
  484. package/src/model/ProjectInitializer.ts +19 -14
  485. package/src/model/commands/Command.ts +1 -1
  486. package/src/model/commands/CommandBus.ts +1 -3
  487. package/src/model/commands/migrations/SaveMigrationCommand.ts +1 -2
  488. package/src/model/database/DatabaseContext.ts +1 -2
  489. package/src/model/dtos/ExecutedMigration.ts +0 -1
  490. package/src/model/dtos/Stage.ts +0 -1
  491. package/src/model/events/types.ts +0 -1
  492. package/src/model/metadata/SchemaDatabaseMetadataResolverStore.ts +0 -2
  493. package/src/model/migrations/ProjectMigrator.ts +36 -20
  494. package/src/model/migrations/SchemaProvider.ts +5 -6
  495. package/src/model/queries/events/EventsQuery.ts +3 -7
  496. package/src/model/queries/events/OldValuesQuery.ts +4 -4
  497. package/src/model/queries/schema/SchemaQuery.ts +1 -3
  498. package/src/model/stages/StageCreator.ts +0 -2
  499. package/src/resolvers/ResolverFactory.ts +3 -4
  500. package/src/resolvers/SystemResolverContext.ts +3 -1
  501. package/src/resolvers/mutation/MigrateMutationResolver.ts +38 -37
  502. package/src/resolvers/mutation/MigrationAlterMutationResolver.ts +0 -1
  503. package/src/resolvers/query/EventsQueryResolver.ts +8 -6
  504. package/src/schema/types.ts +69 -43
  505. package/tests/cases/migrations/2020-05-06-150000-composed-primary.test.ts +10 -9
  506. package/tests/cases/migrations/2020-06-01-103000-event-trigger-perf.test.ts +10 -10
  507. package/tests/cases/migrations/2022-10-03-110000-table-on-delete.test.ts +32 -34
  508. package/tests/cases/migrations/2023-09-11-174000-fix-on-delete.test.ts +65 -67
  509. package/tests/cases/migrations/2023-10-19-173000-fix-unique.test.ts +23 -25
  510. package/tests/cases/migrations/2025-03-14-110000-fix-missing-index.test.ts +18 -19
  511. package/tests/cases/unit/eventsQuery.test.ts +22 -15
  512. package/tests/.eslintrc.cjs +0 -5
@@ -43,7 +43,7 @@ class ProjectMigrator {
43
43
  modification,
44
44
  formatVersion,
45
45
  migration.version,
46
- db.client.schema,
46
+ project,
47
47
  metadataStore
48
48
  );
49
49
  }
@@ -72,15 +72,17 @@ class ProjectMigrator {
72
72
  if (!id) {
73
73
  throw new ImplementationException();
74
74
  }
75
- await db.commandBus.execute(new SaveSchemaCommand({
76
- schema,
77
- meta: {
78
- id,
79
- updatedAt: /* @__PURE__ */ new Date(),
80
- version: sorted[sorted.length - 1].version,
81
- checksum: calculateSchemaChecksum(schema)
82
- }
83
- }));
75
+ await db.commandBus.execute(
76
+ new SaveSchemaCommand({
77
+ schema,
78
+ meta: {
79
+ id,
80
+ updatedAt: /* @__PURE__ */ new Date(),
81
+ version: sorted[sorted.length - 1].version,
82
+ checksum: calculateSchemaChecksum(schema)
83
+ }
84
+ })
85
+ );
84
86
  }
85
87
  async executeContentMigration({ query, stages, version, ...ctx }) {
86
88
  const queryStages = query.stage ? stages.filter((it) => it.slug === query.stage) : stages;
@@ -148,7 +150,13 @@ class ProjectMigrator {
148
150
  }
149
151
  return toExecute;
150
152
  }
151
- async applyModification(db, stages, schema, modification, formatVersion, migrationVersion, systemSchema, metadataStore) {
153
+ sqlPreprocessor(text, variables) {
154
+ return Object.entries(variables).reduce(
155
+ (content, [key, value]) => content.replace(new RegExp(`\\{\\{${key}\\}\\}`, "g"), value),
156
+ text
157
+ );
158
+ }
159
+ async applyModification(db, stages, schema, modification, formatVersion, migrationVersion, project, metadataStore) {
152
160
  const {
153
161
  getSql,
154
162
  schema: newSchema
@@ -156,11 +164,15 @@ class ProjectMigrator {
156
164
  for (const stage of stages) {
157
165
  const databaseMetadata = await metadataStore.getMetadata(stage.schema);
158
166
  const sql = getSql({
159
- systemSchema,
167
+ systemSchema: project.systemSchema,
160
168
  databaseMetadata,
161
169
  invalidateDatabaseMetadata: () => metadataStore.invalidate(stage.schema)
162
170
  });
163
- await this.executeOnStage(db, stage, sql, migrationVersion);
171
+ const processedSql = this.sqlPreprocessor(sql, {
172
+ project_slug: project.slug,
173
+ system_schema: project.systemSchema
174
+ });
175
+ await this.executeOnStage(db, stage, processedSql, migrationVersion);
164
176
  }
165
177
  return [newSchema];
166
178
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectMigrator.js","sources":["../../../../../../packages/engine-system-api/src/model/migrations/ProjectMigrator.ts"],"sourcesContent":["import { calculateMigrationChecksum, Migration, MigrationDescriber, MigrationVersionHelper } from '@contember/schema-migrations'\nimport { Client, DatabaseMetadata, QueryError, wrapIdentifier } from '@contember/database'\nimport { Schema } from '@contember/schema'\nimport { SaveMigrationCommand } from '../commands'\nimport { Stage } from '../dtos'\nimport { DatabaseContext } from '../database'\nimport { ExecutedMigrationsResolver } from './ExecutedMigrationsResolver'\nimport { MigrateErrorCode } from '../../schema'\nimport { calculateSchemaChecksum, SchemaValidator, SchemaValidatorSkippedErrors } from '@contember/schema-utils'\nimport { logger } from '@contember/logger'\nimport { MigrationsDatabaseMetadataResolverStoreFactory, SchemaDatabaseMetadataResolverStore } from '../metadata'\nimport { ContentMigrationQuery, MigrationInput } from './MigrationInput'\nimport { ContentQueryExecutor } from '../dependencies'\nimport { SchemaProvider } from './SchemaProvider'\nimport { SaveSchemaCommand } from '../commands/schema/SaveSchemaCommand'\nimport { ImplementationException } from '../../utils'\n\nexport class ProjectMigrator {\n\tconstructor(\n\t\tprivate readonly migrationDescriber: MigrationDescriber,\n\t\tprivate readonly schemaProvider: SchemaProvider,\n\t\tprivate readonly executedMigrationsResolver: ExecutedMigrationsResolver,\n\t\tprivate readonly migrationsDatabaseMetadataResolverStoreFactory: MigrationsDatabaseMetadataResolverStoreFactory,\n\t\tprivate readonly contentQueryExecutor: ContentQueryExecutor,\n\t) {}\n\n\tpublic async migrate({ db, project, identity, options: { ignoreOrder = false, skipExecuted = false }, migrationsToExecute, stages }: {\n\t\tdb: DatabaseContext\n\t\tproject: { slug: string; systemSchema: string }\n\t\tidentity: { id: string }\n\t\tstages: Stage[]\n\t\tmigrationsToExecute: readonly MigrationInput[]\n\t\toptions: {\n\t\t\tignoreOrder?: boolean\n\t\t\tskipExecuted?: boolean\n\t\t}\n\t}) {\n\t\tif (migrationsToExecute.length === 0) {\n\t\t\treturn\n\t\t}\n\t\tconst schemaWithMeta = await this.schemaProvider.fetch({ db })\n\t\tlet schema = schemaWithMeta.schema\n\t\tlet id = schemaWithMeta.meta.id\n\n\t\tconst validated = await this.validateMigrations(db, schema, schemaWithMeta.meta.version ?? null, migrationsToExecute, { ignoreOrder, skipExecuted })\n\t\tif (validated.length === 0) {\n\t\t\treturn\n\t\t}\n\n\t\tconst sorted = [...validated].sort((a, b) => a.version.localeCompare(b.version))\n\n\t\tconst metadataStore = this.migrationsDatabaseMetadataResolverStoreFactory.create(db)\n\n\t\tfor (const migration of sorted) {\n\n\t\t\tif (migration.type === 'schema') {\n\t\t\t\tconst formatVersion = migration.formatVersion\n\n\t\t\t\tfor (const modification of migration.modifications) {\n\t\t\t\t\t[schema] = await this.applyModification(\n\t\t\t\t\t\tdb.client,\n\t\t\t\t\t\tstages,\n\t\t\t\t\t\tschema,\n\t\t\t\t\t\tmodification,\n\t\t\t\t\t\tformatVersion,\n\t\t\t\t\t\tmigration.version,\n\t\t\t\t\t\tdb.client.schema,\n\t\t\t\t\t\tmetadataStore,\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t} else if (migration.type === 'content') {\n\t\t\t\tif (!id) {\n\t\t\t\t\tthrow new FailedContentMigrationError(migration.version, `Cannot execute content migration without schema`)\n\t\t\t\t}\n\t\t\t\tfor (const query of migration.queries) {\n\t\t\t\t\tawait this.executeContentMigration({\n\t\t\t\t\t\tversion: migration.version,\n\t\t\t\t\t\tquery,\n\t\t\t\t\t\tdb,\n\t\t\t\t\t\tschema,\n\t\t\t\t\t\tschemaMeta: { id },\n\t\t\t\t\t\tstages,\n\t\t\t\t\t\tdatabaseMetadata: await metadataStore.getMetadata(db.client.schema),\n\t\t\t\t\t\tidentity,\n\t\t\t\t\t\tproject,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\t// event log uses deferred constraint triggers, we need to fire them before ALTER\n\t\t\t\tawait db.client.query(`SET CONSTRAINTS ALL IMMEDIATE`)\n\t\t\t\tawait db.client.query(`SET CONSTRAINTS ALL DEFERRED`)\n\n\t\t\t}\n\t\t\tid = await db.commandBus.execute(new SaveMigrationCommand(migration))\n\t\t}\n\t\tif (!id) {\n\t\t\tthrow new ImplementationException()\n\t\t}\n\n\t\tawait db.commandBus.execute(new SaveSchemaCommand({\n\t\t\tschema,\n\t\t\tmeta: {\n\t\t\t\tid,\n\t\t\t\tupdatedAt: new Date(),\n\t\t\t\tversion: sorted[sorted.length - 1].version,\n\t\t\t\tchecksum: calculateSchemaChecksum(schema),\n\t\t\t},\n\t\t}))\n\t}\n\n\tprivate async executeContentMigration({ query, stages, version, ...ctx }: {\n\t\tversion: string\n\t\tdb: DatabaseContext\n\t\tquery: ContentMigrationQuery\n\t\tstages: Stage[]\n\t\tschema: Schema\n\t\tschemaMeta: { id: number }\n\t\tproject: { slug: string; systemSchema: string }\n\t\tidentity: { id: string }\n\t\tdatabaseMetadata: DatabaseMetadata\n\t}) {\n\t\tconst queryStages = query.stage ? stages.filter(it => it.slug === query.stage) : stages\n\t\tfor (const stage of queryStages) {\n\t\t\tconst response = await this.contentQueryExecutor.execute({\n\t\t\t\tstage,\n\t\t\t\t...ctx,\n\t\t\t}, query)\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new FailedContentMigrationError(version, response.errors.join(', '))\n\t\t\t}\n\t\t\tif (query.checkMutationResult !== false) {\n\t\t\t\tfor (const [key, value] of Object.entries(response.result.data ?? {})) {\n\t\t\t\t\tif (typeof value === 'object' && value !== null && 'ok' in value && !value.ok) {\n\t\t\t\t\t\tconst errorDetails = 'errorMessage' in value ? value.errorMessage : 'No details available. Please fetch errorMessage field.'\n\t\t\t\t\t\tthrow new NotSuccessfulContentMigrationError(version, `Mutation ${key} failed: ${errorDetails}`)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async validateMigrations(\n\t\tdb: DatabaseContext,\n\t\tschema: Schema,\n\t\tversion: string | null,\n\t\tmigrationsToExecute: readonly MigrationInput[],\n\t\t{ ignoreOrder, skipExecuted }: {\n\t\t\tignoreOrder: boolean\n\t\t\tskipExecuted: boolean\n\t\t},\n\t): Promise<readonly MigrationInput[]> {\n\t\tconst executedMigrations = await this.executedMigrationsResolver.getMigrations(db)\n\t\tconst toExecute: MigrationInput[] = []\n\t\tlet skippedErrors: SchemaValidatorSkippedErrors[] = []\n\t\tfor (const migration of migrationsToExecute) {\n\t\t\tconst executedMigration = executedMigrations.find(it => it.version === migration.version)\n\t\t\tif (executedMigration) {\n\t\t\t\tif (skipExecuted && (migration.type !== 'schema' || executedMigration.checksum === calculateMigrationChecksum(migration))) {\n\t\t\t\t\tcontinue\n\t\t\t\t} else {\n\t\t\t\t\tthrow new AlreadyExecutedMigrationError(migration.version, `Migration is already executed`)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (version && migration.version < version && !ignoreOrder) {\n\t\t\t\tthrow new MustFollowLatestMigrationError(migration.version, `Must follow latest executed migration ${version}`)\n\t\t\t}\n\t\t\tif (migration.type === 'schema') {\n\t\t\t\tconst described = this.migrationDescriber.describeModifications(schema, migration)\n\t\t\t\tif (described.length === 0) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tconst latestModification = described[described.length - 1]\n\t\t\t\tschema = latestModification.schema\n\t\t\t\tskippedErrors = [\n\t\t\t\t\t...skippedErrors.filter(it => it.skipUntil && MigrationVersionHelper.extractVersion(it.skipUntil) >= migration.version),\n\t\t\t\t\t...migration.skippedErrors ?? [],\n\t\t\t\t]\n\t\t\t\tconst errors = SchemaValidator.validate(schema, skippedErrors)\n\t\t\t\tif (errors.length > 0) {\n\t\t\t\t\tthrow new InvalidSchemaError(\n\t\t\t\t\t\tmigration.version,\n\t\t\t\t\t\t'Migration generates invalid schema: \\n' +\n\t\t\t\t\t\terrors.map(it => `${it.path.join('.')}: [${it.code}] ${it.message}`).join('\\n'),\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ttoExecute.push(migration)\n\t\t}\n\t\t// intentionally not using skippedErrors here\n\t\tconst errors = SchemaValidator.validate(schema)\n\t\tif (errors.length > 0) {\n\t\t\tthrow new InvalidSchemaError(\n\t\t\t\ttoExecute[toExecute.length - 1].version,\n\t\t\t\t'Migration generates invalid schema: \\n' +\n\t\t\t\terrors.map(it => it.path.join('.') + ': ' + it.message).join('\\n'),\n\t\t\t)\n\t\t}\n\t\treturn toExecute\n\t}\n\n\tprivate async applyModification(\n\t\tdb: Client,\n\t\tstages: Stage[],\n\t\tschema: Schema,\n\t\tmodification: Migration.Modification,\n\t\tformatVersion: number,\n\t\tmigrationVersion: string,\n\t\tsystemSchema: string,\n\t\tmetadataStore: SchemaDatabaseMetadataResolverStore,\n\t): Promise<[Schema]> {\n\t\tconst {\n\t\t\tgetSql,\n\t\t\tschema: newSchema,\n\t\t} = this.migrationDescriber.describeModification(schema, modification, { formatVersion })\n\t\tfor (const stage of stages) {\n\t\t\tconst databaseMetadata = await metadataStore.getMetadata(stage.schema)\n\t\t\tconst sql = getSql({\n\t\t\t\tsystemSchema,\n\t\t\t\tdatabaseMetadata,\n\t\t\t\tinvalidateDatabaseMetadata: () => metadataStore.invalidate(stage.schema),\n\t\t\t})\n\t\t\tawait this.executeOnStage(db, stage, sql, migrationVersion)\n\t\t}\n\t\treturn [newSchema]\n\t}\n\n\tprivate async executeOnStage(db: Client, stage: Stage, sql: string, migrationVersion: string) {\n\t\tawait db.query('SET LOCAL search_path TO ' + wrapIdentifier(stage.schema))\n\t\ttry {\n\t\t\tawait db.query(sql)\n\t\t} catch (e) {\n\t\t\tif (e instanceof QueryError) {\n\t\t\t\tlogger.error(e, { message: 'Migration failed' })\n\t\t\t\tthrow new MigrationFailedError(migrationVersion, e.message)\n\t\t\t}\n\t\t\tthrow e\n\t\t}\n\t}\n}\n\nexport abstract class MigrationError extends Error {\n\tpublic abstract code: MigrateErrorCode\n\n\tconstructor(public readonly version: string, public readonly migrationError: string) {\n\t\tsuper(`${version}: ${migrationError}`)\n\t}\n}\n\nexport class MustFollowLatestMigrationError extends MigrationError {\n\tcode = MigrateErrorCode.MustFollowLatest\n}\n\nexport class AlreadyExecutedMigrationError extends MigrationError {\n\tcode = MigrateErrorCode.AlreadyExecuted\n}\n\nexport class MigrationFailedError extends MigrationError {\n\tcode = MigrateErrorCode.MigrationFailed\n}\n\nexport class InvalidSchemaError extends MigrationError {\n\tcode = MigrateErrorCode.InvalidSchema\n}\n\nexport class FailedContentMigrationError extends MigrationError {\n\tcode = MigrateErrorCode.ContentMigrationFailed\n}\n\nexport class NotSuccessfulContentMigrationError extends MigrationError {\n\tcode = MigrateErrorCode.ContentMigrationNotSuccessful\n}\n"],"names":["errors"],"mappings":"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"}
1
+ {"version":3,"file":"ProjectMigrator.js","sources":["../../../../../../packages/engine-system-api/src/model/migrations/ProjectMigrator.ts"],"sourcesContent":["import { calculateMigrationChecksum, Migration, MigrationDescriber, MigrationVersionHelper } from '@contember/schema-migrations'\nimport { Client, DatabaseMetadata, QueryError, wrapIdentifier } from '@contember/database'\nimport { Schema } from '@contember/schema'\nimport { SaveMigrationCommand } from '../commands'\nimport { Stage } from '../dtos'\nimport { DatabaseContext } from '../database'\nimport { ExecutedMigrationsResolver } from './ExecutedMigrationsResolver'\nimport { MigrateErrorCode } from '../../schema'\nimport { calculateSchemaChecksum, SchemaValidator, SchemaValidatorSkippedErrors } from '@contember/schema-utils'\nimport { logger } from '@contember/logger'\nimport { MigrationsDatabaseMetadataResolverStoreFactory, SchemaDatabaseMetadataResolverStore } from '../metadata'\nimport { ContentMigrationQuery, MigrationInput } from './MigrationInput'\nimport { ContentQueryExecutor } from '../dependencies'\nimport { SchemaProvider } from './SchemaProvider'\nimport { SaveSchemaCommand } from '../commands/schema/SaveSchemaCommand'\nimport { ImplementationException } from '../../utils'\n\ntype MigrationVariables = {\n\tsystem_schema: string\n\tproject_slug: string\n}\n\nexport class ProjectMigrator {\n\tconstructor(\n\t\tprivate readonly migrationDescriber: MigrationDescriber,\n\t\tprivate readonly schemaProvider: SchemaProvider,\n\t\tprivate readonly executedMigrationsResolver: ExecutedMigrationsResolver,\n\t\tprivate readonly migrationsDatabaseMetadataResolverStoreFactory: MigrationsDatabaseMetadataResolverStoreFactory,\n\t\tprivate readonly contentQueryExecutor: ContentQueryExecutor,\n\t) {}\n\n\tpublic async migrate({ db, project, identity, options: { ignoreOrder = false, skipExecuted = false }, migrationsToExecute, stages }: {\n\t\tdb: DatabaseContext\n\t\tproject: { slug: string; systemSchema: string }\n\t\tidentity: { id: string }\n\t\tstages: Stage[]\n\t\tmigrationsToExecute: readonly MigrationInput[]\n\t\toptions: {\n\t\t\tignoreOrder?: boolean\n\t\t\tskipExecuted?: boolean\n\t\t}\n\t}) {\n\t\tif (migrationsToExecute.length === 0) {\n\t\t\treturn\n\t\t}\n\t\tconst schemaWithMeta = await this.schemaProvider.fetch({ db })\n\t\tlet schema = schemaWithMeta.schema\n\t\tlet id = schemaWithMeta.meta.id\n\n\t\tconst validated = await this.validateMigrations(db, schema, schemaWithMeta.meta.version ?? null, migrationsToExecute, { ignoreOrder, skipExecuted })\n\t\tif (validated.length === 0) {\n\t\t\treturn\n\t\t}\n\n\t\tconst sorted = [...validated].sort((a, b) => a.version.localeCompare(b.version))\n\n\t\tconst metadataStore = this.migrationsDatabaseMetadataResolverStoreFactory.create(db)\n\n\t\tfor (const migration of sorted) {\n\t\t\tif (migration.type === 'schema') {\n\t\t\t\tconst formatVersion = migration.formatVersion\n\n\t\t\t\tfor (const modification of migration.modifications) {\n\t\t\t\t\t;[schema] = await this.applyModification(\n\t\t\t\t\t\tdb.client,\n\t\t\t\t\t\tstages,\n\t\t\t\t\t\tschema,\n\t\t\t\t\t\tmodification,\n\t\t\t\t\t\tformatVersion,\n\t\t\t\t\t\tmigration.version,\n\t\t\t\t\t\tproject,\n\t\t\t\t\t\tmetadataStore,\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t} else if (migration.type === 'content') {\n\t\t\t\tif (!id) {\n\t\t\t\t\tthrow new FailedContentMigrationError(migration.version, `Cannot execute content migration without schema`)\n\t\t\t\t}\n\t\t\t\tfor (const query of migration.queries) {\n\t\t\t\t\tawait this.executeContentMigration({\n\t\t\t\t\t\tversion: migration.version,\n\t\t\t\t\t\tquery,\n\t\t\t\t\t\tdb,\n\t\t\t\t\t\tschema,\n\t\t\t\t\t\tschemaMeta: { id },\n\t\t\t\t\t\tstages,\n\t\t\t\t\t\tdatabaseMetadata: await metadataStore.getMetadata(db.client.schema),\n\t\t\t\t\t\tidentity,\n\t\t\t\t\t\tproject,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\t// event log uses deferred constraint triggers, we need to fire them before ALTER\n\t\t\t\tawait db.client.query(`SET CONSTRAINTS ALL IMMEDIATE`)\n\t\t\t\tawait db.client.query(`SET CONSTRAINTS ALL DEFERRED`)\n\t\t\t}\n\t\t\tid = await db.commandBus.execute(new SaveMigrationCommand(migration))\n\t\t}\n\t\tif (!id) {\n\t\t\tthrow new ImplementationException()\n\t\t}\n\n\t\tawait db.commandBus.execute(\n\t\t\tnew SaveSchemaCommand({\n\t\t\t\tschema,\n\t\t\t\tmeta: {\n\t\t\t\t\tid,\n\t\t\t\t\tupdatedAt: new Date(),\n\t\t\t\t\tversion: sorted[sorted.length - 1].version,\n\t\t\t\t\tchecksum: calculateSchemaChecksum(schema),\n\t\t\t\t},\n\t\t\t}),\n\t\t)\n\t}\n\n\tprivate async executeContentMigration({ query, stages, version, ...ctx }: {\n\t\tversion: string\n\t\tdb: DatabaseContext\n\t\tquery: ContentMigrationQuery\n\t\tstages: Stage[]\n\t\tschema: Schema\n\t\tschemaMeta: { id: number }\n\t\tproject: { slug: string; systemSchema: string }\n\t\tidentity: { id: string }\n\t\tdatabaseMetadata: DatabaseMetadata\n\t}) {\n\t\tconst queryStages = query.stage ? stages.filter(it => it.slug === query.stage) : stages\n\t\tfor (const stage of queryStages) {\n\t\t\tconst response = await this.contentQueryExecutor.execute({\n\t\t\t\tstage,\n\t\t\t\t...ctx,\n\t\t\t}, query)\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new FailedContentMigrationError(version, response.errors.join(', '))\n\t\t\t}\n\t\t\tif (query.checkMutationResult !== false) {\n\t\t\t\tfor (const [key, value] of Object.entries(response.result.data ?? {})) {\n\t\t\t\t\tif (typeof value === 'object' && value !== null && 'ok' in value && !value.ok) {\n\t\t\t\t\t\tconst errorDetails = 'errorMessage' in value ? value.errorMessage : 'No details available. Please fetch errorMessage field.'\n\t\t\t\t\t\tthrow new NotSuccessfulContentMigrationError(version, `Mutation ${key} failed: ${errorDetails}`)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async validateMigrations(\n\t\tdb: DatabaseContext,\n\t\tschema: Schema,\n\t\tversion: string | null,\n\t\tmigrationsToExecute: readonly MigrationInput[],\n\t\t{ ignoreOrder, skipExecuted }: {\n\t\t\tignoreOrder: boolean\n\t\t\tskipExecuted: boolean\n\t\t},\n\t): Promise<readonly MigrationInput[]> {\n\t\tconst executedMigrations = await this.executedMigrationsResolver.getMigrations(db)\n\t\tconst toExecute: MigrationInput[] = []\n\t\tlet skippedErrors: SchemaValidatorSkippedErrors[] = []\n\t\tfor (const migration of migrationsToExecute) {\n\t\t\tconst executedMigration = executedMigrations.find(it => it.version === migration.version)\n\t\t\tif (executedMigration) {\n\t\t\t\tif (skipExecuted && (migration.type !== 'schema' || executedMigration.checksum === calculateMigrationChecksum(migration))) {\n\t\t\t\t\tcontinue\n\t\t\t\t} else {\n\t\t\t\t\tthrow new AlreadyExecutedMigrationError(migration.version, `Migration is already executed`)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (version && migration.version < version && !ignoreOrder) {\n\t\t\t\tthrow new MustFollowLatestMigrationError(migration.version, `Must follow latest executed migration ${version}`)\n\t\t\t}\n\t\t\tif (migration.type === 'schema') {\n\t\t\t\tconst described = this.migrationDescriber.describeModifications(schema, migration)\n\t\t\t\tif (described.length === 0) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tconst latestModification = described[described.length - 1]\n\t\t\t\tschema = latestModification.schema\n\t\t\t\tskippedErrors = [\n\t\t\t\t\t...skippedErrors.filter(it => it.skipUntil && MigrationVersionHelper.extractVersion(it.skipUntil) >= migration.version),\n\t\t\t\t\t...migration.skippedErrors ?? [],\n\t\t\t\t]\n\t\t\t\tconst errors = SchemaValidator.validate(schema, skippedErrors)\n\t\t\t\tif (errors.length > 0) {\n\t\t\t\t\tthrow new InvalidSchemaError(\n\t\t\t\t\t\tmigration.version,\n\t\t\t\t\t\t'Migration generates invalid schema: \\n'\n\t\t\t\t\t\t\t+ errors.map(it => `${it.path.join('.')}: [${it.code}] ${it.message}`).join('\\n'),\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ttoExecute.push(migration)\n\t\t}\n\t\t// intentionally not using skippedErrors here\n\t\tconst errors = SchemaValidator.validate(schema)\n\t\tif (errors.length > 0) {\n\t\t\tthrow new InvalidSchemaError(\n\t\t\t\ttoExecute[toExecute.length - 1].version,\n\t\t\t\t'Migration generates invalid schema: \\n'\n\t\t\t\t\t+ errors.map(it => it.path.join('.') + ': ' + it.message).join('\\n'),\n\t\t\t)\n\t\t}\n\t\treturn toExecute\n\t}\n\n\tprivate sqlPreprocessor(text: string, variables: MigrationVariables): string {\n\t\treturn Object.entries(variables).reduce(\n\t\t\t(content, [key, value]) => content.replace(new RegExp(`\\\\{\\\\{${key}\\\\}\\\\}`, 'g'), value),\n\t\t\ttext,\n\t\t)\n\t}\n\n\tprivate async applyModification(\n\t\tdb: Client,\n\t\tstages: Stage[],\n\t\tschema: Schema,\n\t\tmodification: Migration.Modification,\n\t\tformatVersion: number,\n\t\tmigrationVersion: string,\n\t\tproject: { slug: string; systemSchema: string },\n\t\tmetadataStore: SchemaDatabaseMetadataResolverStore,\n\t): Promise<[Schema]> {\n\t\tconst {\n\t\t\tgetSql,\n\t\t\tschema: newSchema,\n\t\t} = this.migrationDescriber.describeModification(schema, modification, { formatVersion })\n\t\tfor (const stage of stages) {\n\t\t\tconst databaseMetadata = await metadataStore.getMetadata(stage.schema)\n\t\t\tconst sql = getSql({\n\t\t\t\tsystemSchema: project.systemSchema,\n\t\t\t\tdatabaseMetadata,\n\t\t\t\tinvalidateDatabaseMetadata: () => metadataStore.invalidate(stage.schema),\n\t\t\t})\n\t\t\tconst processedSql = this.sqlPreprocessor(sql, {\n\t\t\t\tproject_slug: project.slug,\n\t\t\t\tsystem_schema: project.systemSchema,\n\t\t\t})\n\t\t\tawait this.executeOnStage(db, stage, processedSql, migrationVersion)\n\t\t}\n\t\treturn [newSchema]\n\t}\n\n\tprivate async executeOnStage(db: Client, stage: Stage, sql: string, migrationVersion: string) {\n\t\tawait db.query('SET LOCAL search_path TO ' + wrapIdentifier(stage.schema))\n\t\ttry {\n\t\t\tawait db.query(sql)\n\t\t} catch (e) {\n\t\t\tif (e instanceof QueryError) {\n\t\t\t\tlogger.error(e, { message: 'Migration failed' })\n\t\t\t\tthrow new MigrationFailedError(migrationVersion, e.message)\n\t\t\t}\n\t\t\tthrow e\n\t\t}\n\t}\n}\n\nexport abstract class MigrationError extends Error {\n\tpublic abstract code: MigrateErrorCode\n\n\tconstructor(public readonly version: string, public readonly migrationError: string) {\n\t\tsuper(`${version}: ${migrationError}`)\n\t}\n}\n\nexport class MustFollowLatestMigrationError extends MigrationError {\n\tcode = MigrateErrorCode.MustFollowLatest\n}\n\nexport class AlreadyExecutedMigrationError extends MigrationError {\n\tcode = MigrateErrorCode.AlreadyExecuted\n}\n\nexport class MigrationFailedError extends MigrationError {\n\tcode = MigrateErrorCode.MigrationFailed\n}\n\nexport class InvalidSchemaError extends MigrationError {\n\tcode = MigrateErrorCode.InvalidSchema\n}\n\nexport class FailedContentMigrationError extends MigrationError {\n\tcode = MigrateErrorCode.ContentMigrationFailed\n}\n\nexport class NotSuccessfulContentMigrationError extends MigrationError {\n\tcode = MigrateErrorCode.ContentMigrationNotSuccessful\n}\n"],"names":["errors"],"mappings":"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"}
@@ -19,11 +19,8 @@ class SchemaProvider {
19
19
  const newMigrations = await this.executedMigrationsResolver.getMigrations(db);
20
20
  const partialResult = newMigrations.reduce(
21
21
  (schema, migration) => {
22
- if (migration.type !== "schema") {
23
- return schema;
24
- }
25
22
  return {
26
- schema: this.schemaMigrator.applyModifications(schema.schema, migration.modifications, migration.formatVersion),
23
+ schema: migration.type !== "schema" ? schema.schema : this.schemaMigrator.applyModifications(schema.schema, migration.modifications, migration.formatVersion),
27
24
  meta: {
28
25
  version: migration.version,
29
26
  id: migration.id,
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaProvider.cjs","sources":["../../../../../../packages/engine-system-api/src/model/migrations/SchemaProvider.ts"],"sourcesContent":["import { SchemaQuery } from '../queries'\nimport { DatabaseContext } from '../database'\nimport { calculateSchemaChecksum, emptySchema, normalizeSchema } from '@contember/schema-utils'\nimport { ExecutedMigrationsResolver } from './ExecutedMigrationsResolver'\nimport { SchemaMigrator } from '@contember/schema-migrations'\nimport { Schema } from '@contember/schema'\n\nexport type SchemaMeta = {\n\tchecksum: string\n\tversion: string\n\tupdatedAt: Date\n\tid: number\n}\n\nexport const emptyVersionedSchema: SchemaWithMeta = {\n\tschema: emptySchema,\n\tmeta: {},\n}\n\nexport type SchemaWithMeta = {\n\tschema: Schema\n\tmeta: SchemaMeta | { [K in keyof SchemaMeta]?: undefined }\n}\n\nexport class SchemaProvider {\n\tconstructor(\n\t\tprivate readonly executedMigrationsResolver: ExecutedMigrationsResolver,\n\t\tprivate readonly schemaMigrator: SchemaMigrator,\n\t) {\n\t}\n\n\tasync buildSchemaFromMigrations(db: DatabaseContext): Promise<SchemaWithMeta> {\n\t\tconst newMigrations = (await this.executedMigrationsResolver.getMigrations(db))\n\n\t\tconst partialResult = newMigrations.reduce<SchemaWithMeta>(\n\t\t\t(schema, migration) => {\n\t\t\t\tif (migration.type !== 'schema') {\n\t\t\t\t\treturn schema\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tschema: this.schemaMigrator.applyModifications(schema.schema, migration.modifications, migration.formatVersion),\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\tversion: migration.version,\n\t\t\t\t\t\tid: migration.id,\n\t\t\t\t\t\tupdatedAt: migration.executedAt,\n\t\t\t\t\t\tchecksum: '',\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t},\n\t\t\temptyVersionedSchema,\n\t\t)\n\n\t\tif (!partialResult.meta.version) {\n\t\t\treturn emptyVersionedSchema\n\t\t}\n\n\t\treturn {\n\t\t\tschema: partialResult.schema,\n\t\t\tmeta: {\n\t\t\t\t...partialResult.meta,\n\t\t\t\tchecksum: calculateSchemaChecksum(partialResult.schema),\n\t\t\t},\n\t\t}\n\t}\n\n\tpublic async fetch({ db, currentSchema }: {\n\t\tdb: DatabaseContext\n\t\tcurrentSchema?: SchemaWithMeta | null\n\t}): Promise<SchemaWithMeta> {\n\t\tconst newSchema = await db.queryHandler.fetch(new SchemaQuery(currentSchema?.meta.checksum))\n\t\tif (!newSchema) {\n\t\t\treturn currentSchema ?? emptyVersionedSchema\n\t\t}\n\n\t\treturn newSchema\n\t}\n}\n"],"names":["emptySchema","calculateSchemaChecksum","SchemaQuery"],"mappings":";;;;;;;;AAcO,MAAM,uBAAuC;AAAA,EACnD,QAAQA,YAAA;AAAA,EACR,MAAM,CAAA;AACP;AAOO,MAAM,eAAe;AAAA,EAC3B,YACkB,4BACA,gBAChB;AAFgB,SAAA,6BAAA;AACA,SAAA,iBAAA;AAAA,EAAA;AAAA,EAIlB,MAAM,0BAA0B,IAA8C;AAC7E,UAAM,gBAAiB,MAAM,KAAK,2BAA2B,cAAc,EAAE;AAE7E,UAAM,gBAAgB,cAAc;AAAA,MACnC,CAAC,QAAQ,cAAc;AAClB,YAAA,UAAU,SAAS,UAAU;AACzB,iBAAA;AAAA,QAAA;AAED,eAAA;AAAA,UACN,QAAQ,KAAK,eAAe,mBAAmB,OAAO,QAAQ,UAAU,eAAe,UAAU,aAAa;AAAA,UAC9G,MAAM;AAAA,YACL,SAAS,UAAU;AAAA,YACnB,IAAI,UAAU;AAAA,YACd,WAAW,UAAU;AAAA,YACrB,UAAU;AAAA,UAAA;AAAA,QAEZ;AAAA,MACD;AAAA,MACA;AAAA,IACD;AAEI,QAAA,CAAC,cAAc,KAAK,SAAS;AACzB,aAAA;AAAA,IAAA;AAGD,WAAA;AAAA,MACN,QAAQ,cAAc;AAAA,MACtB,MAAM;AAAA,QACL,GAAG,cAAc;AAAA,QACjB,UAAUC,YAAAA,wBAAwB,cAAc,MAAM;AAAA,MAAA;AAAA,IAExD;AAAA,EAAA;AAAA,EAGD,MAAa,MAAM,EAAE,IAAI,iBAGG;AACrB,UAAA,YAAY,MAAM,GAAG,aAAa,MAAM,IAAIC,YAAAA,YAAY,eAAe,KAAK,QAAQ,CAAC;AAC3F,QAAI,CAAC,WAAW;AACf,aAAO,iBAAiB;AAAA,IAAA;AAGlB,WAAA;AAAA,EAAA;AAET;;;"}
1
+ {"version":3,"file":"SchemaProvider.cjs","sources":["../../../../../../packages/engine-system-api/src/model/migrations/SchemaProvider.ts"],"sourcesContent":["import { SchemaQuery } from '../queries'\nimport { DatabaseContext } from '../database'\nimport { calculateSchemaChecksum, emptySchema, normalizeSchema } from '@contember/schema-utils'\nimport { ExecutedMigrationsResolver } from './ExecutedMigrationsResolver'\nimport { SchemaMigrator } from '@contember/schema-migrations'\nimport { Schema } from '@contember/schema'\n\nexport type SchemaMeta = {\n\tchecksum: string\n\tversion: string\n\tupdatedAt: Date\n\tid: number\n}\n\nexport const emptyVersionedSchema: SchemaWithMeta = {\n\tschema: emptySchema,\n\tmeta: {},\n}\n\nexport type SchemaWithMeta = {\n\tschema: Schema\n\tmeta: SchemaMeta | { [K in keyof SchemaMeta]?: undefined }\n}\n\nexport class SchemaProvider {\n\tconstructor(\n\t\tprivate readonly executedMigrationsResolver: ExecutedMigrationsResolver,\n\t\tprivate readonly schemaMigrator: SchemaMigrator,\n\t) {\n\t}\n\n\tasync buildSchemaFromMigrations(db: DatabaseContext): Promise<SchemaWithMeta> {\n\t\tconst newMigrations = await this.executedMigrationsResolver.getMigrations(db)\n\n\t\tconst partialResult = newMigrations.reduce<SchemaWithMeta>(\n\t\t\t(schema, migration) => {\n\t\t\t\treturn {\n\t\t\t\t\tschema: migration.type !== 'schema'\n\t\t\t\t\t\t? schema.schema\n\t\t\t\t\t\t: this.schemaMigrator.applyModifications(schema.schema, migration.modifications, migration.formatVersion),\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\tversion: migration.version,\n\t\t\t\t\t\tid: migration.id,\n\t\t\t\t\t\tupdatedAt: migration.executedAt,\n\t\t\t\t\t\tchecksum: '',\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t},\n\t\t\temptyVersionedSchema,\n\t\t)\n\n\t\tif (!partialResult.meta.version) {\n\t\t\treturn emptyVersionedSchema\n\t\t}\n\n\t\treturn {\n\t\t\tschema: partialResult.schema,\n\t\t\tmeta: {\n\t\t\t\t...partialResult.meta,\n\t\t\t\tchecksum: calculateSchemaChecksum(partialResult.schema),\n\t\t\t},\n\t\t}\n\t}\n\n\tpublic async fetch({ db, currentSchema }: {\n\t\tdb: DatabaseContext\n\t\tcurrentSchema?: SchemaWithMeta | null\n\t}): Promise<SchemaWithMeta> {\n\t\tconst newSchema = await db.queryHandler.fetch(new SchemaQuery(currentSchema?.meta.checksum))\n\t\tif (!newSchema) {\n\t\t\treturn currentSchema ?? emptyVersionedSchema\n\t\t}\n\n\t\treturn newSchema\n\t}\n}\n"],"names":["emptySchema","calculateSchemaChecksum","SchemaQuery"],"mappings":";;;;;;;;AAcO,MAAM,uBAAuC;AAAA,EACnD,QAAQA,YAAAA;AAAAA,EACR,MAAM,CAAA;AACP;AAOO,MAAM,eAAe;AAAA,EAC3B,YACkB,4BACA,gBAChB;AAFgB,SAAA,6BAAA;AACA,SAAA,iBAAA;AAAA,EAElB;AAAA,EAEA,MAAM,0BAA0B,IAA8C;AAC7E,UAAM,gBAAgB,MAAM,KAAK,2BAA2B,cAAc,EAAE;AAE5E,UAAM,gBAAgB,cAAc;AAAA,MACnC,CAAC,QAAQ,cAAc;AACtB,eAAO;AAAA,UACN,QAAQ,UAAU,SAAS,WACxB,OAAO,SACP,KAAK,eAAe,mBAAmB,OAAO,QAAQ,UAAU,eAAe,UAAU,aAAa;AAAA,UACzG,MAAM;AAAA,YACL,SAAS,UAAU;AAAA,YACnB,IAAI,UAAU;AAAA,YACd,WAAW,UAAU;AAAA,YACrB,UAAU;AAAA,UAAA;AAAA,QACX;AAAA,MAEF;AAAA,MACA;AAAA,IAAA;AAGD,QAAI,CAAC,cAAc,KAAK,SAAS;AAChC,aAAO;AAAA,IACR;AAEA,WAAO;AAAA,MACN,QAAQ,cAAc;AAAA,MACtB,MAAM;AAAA,QACL,GAAG,cAAc;AAAA,QACjB,UAAUC,YAAAA,wBAAwB,cAAc,MAAM;AAAA,MAAA;AAAA,IACvD;AAAA,EAEF;AAAA,EAEA,MAAa,MAAM,EAAE,IAAI,iBAGG;AAC3B,UAAM,YAAY,MAAM,GAAG,aAAa,MAAM,IAAIC,YAAAA,YAAY,eAAe,KAAK,QAAQ,CAAC;AAC3F,QAAI,CAAC,WAAW;AACf,aAAO,iBAAiB;AAAA,IACzB;AAEA,WAAO;AAAA,EACR;AACD;;;"}
@@ -3,7 +3,7 @@ import "@contember/schema-migrations";
3
3
  import "../../schema/dev.graphql.js";
4
4
  import "../../schema/system.graphql.js";
5
5
  import { SchemaQuery } from "../queries/schema/SchemaQuery.js";
6
- import { calculateSchemaChecksum, emptySchema } from "@contember/schema-utils";
6
+ import { emptySchema, calculateSchemaChecksum } from "@contember/schema-utils";
7
7
  const emptyVersionedSchema = {
8
8
  schema: emptySchema,
9
9
  meta: {}
@@ -17,11 +17,8 @@ class SchemaProvider {
17
17
  const newMigrations = await this.executedMigrationsResolver.getMigrations(db);
18
18
  const partialResult = newMigrations.reduce(
19
19
  (schema, migration) => {
20
- if (migration.type !== "schema") {
21
- return schema;
22
- }
23
20
  return {
24
- schema: this.schemaMigrator.applyModifications(schema.schema, migration.modifications, migration.formatVersion),
21
+ schema: migration.type !== "schema" ? schema.schema : this.schemaMigrator.applyModifications(schema.schema, migration.modifications, migration.formatVersion),
25
22
  meta: {
26
23
  version: migration.version,
27
24
  id: migration.id,
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaProvider.js","sources":["../../../../../../packages/engine-system-api/src/model/migrations/SchemaProvider.ts"],"sourcesContent":["import { SchemaQuery } from '../queries'\nimport { DatabaseContext } from '../database'\nimport { calculateSchemaChecksum, emptySchema, normalizeSchema } from '@contember/schema-utils'\nimport { ExecutedMigrationsResolver } from './ExecutedMigrationsResolver'\nimport { SchemaMigrator } from '@contember/schema-migrations'\nimport { Schema } from '@contember/schema'\n\nexport type SchemaMeta = {\n\tchecksum: string\n\tversion: string\n\tupdatedAt: Date\n\tid: number\n}\n\nexport const emptyVersionedSchema: SchemaWithMeta = {\n\tschema: emptySchema,\n\tmeta: {},\n}\n\nexport type SchemaWithMeta = {\n\tschema: Schema\n\tmeta: SchemaMeta | { [K in keyof SchemaMeta]?: undefined }\n}\n\nexport class SchemaProvider {\n\tconstructor(\n\t\tprivate readonly executedMigrationsResolver: ExecutedMigrationsResolver,\n\t\tprivate readonly schemaMigrator: SchemaMigrator,\n\t) {\n\t}\n\n\tasync buildSchemaFromMigrations(db: DatabaseContext): Promise<SchemaWithMeta> {\n\t\tconst newMigrations = (await this.executedMigrationsResolver.getMigrations(db))\n\n\t\tconst partialResult = newMigrations.reduce<SchemaWithMeta>(\n\t\t\t(schema, migration) => {\n\t\t\t\tif (migration.type !== 'schema') {\n\t\t\t\t\treturn schema\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tschema: this.schemaMigrator.applyModifications(schema.schema, migration.modifications, migration.formatVersion),\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\tversion: migration.version,\n\t\t\t\t\t\tid: migration.id,\n\t\t\t\t\t\tupdatedAt: migration.executedAt,\n\t\t\t\t\t\tchecksum: '',\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t},\n\t\t\temptyVersionedSchema,\n\t\t)\n\n\t\tif (!partialResult.meta.version) {\n\t\t\treturn emptyVersionedSchema\n\t\t}\n\n\t\treturn {\n\t\t\tschema: partialResult.schema,\n\t\t\tmeta: {\n\t\t\t\t...partialResult.meta,\n\t\t\t\tchecksum: calculateSchemaChecksum(partialResult.schema),\n\t\t\t},\n\t\t}\n\t}\n\n\tpublic async fetch({ db, currentSchema }: {\n\t\tdb: DatabaseContext\n\t\tcurrentSchema?: SchemaWithMeta | null\n\t}): Promise<SchemaWithMeta> {\n\t\tconst newSchema = await db.queryHandler.fetch(new SchemaQuery(currentSchema?.meta.checksum))\n\t\tif (!newSchema) {\n\t\t\treturn currentSchema ?? emptyVersionedSchema\n\t\t}\n\n\t\treturn newSchema\n\t}\n}\n"],"names":[],"mappings":";;;;;;AAcO,MAAM,uBAAuC;AAAA,EACnD,QAAQ;AAAA,EACR,MAAM,CAAA;AACP;AAOO,MAAM,eAAe;AAAA,EAC3B,YACkB,4BACA,gBAChB;AAFgB,SAAA,6BAAA;AACA,SAAA,iBAAA;AAAA,EAAA;AAAA,EAIlB,MAAM,0BAA0B,IAA8C;AAC7E,UAAM,gBAAiB,MAAM,KAAK,2BAA2B,cAAc,EAAE;AAE7E,UAAM,gBAAgB,cAAc;AAAA,MACnC,CAAC,QAAQ,cAAc;AAClB,YAAA,UAAU,SAAS,UAAU;AACzB,iBAAA;AAAA,QAAA;AAED,eAAA;AAAA,UACN,QAAQ,KAAK,eAAe,mBAAmB,OAAO,QAAQ,UAAU,eAAe,UAAU,aAAa;AAAA,UAC9G,MAAM;AAAA,YACL,SAAS,UAAU;AAAA,YACnB,IAAI,UAAU;AAAA,YACd,WAAW,UAAU;AAAA,YACrB,UAAU;AAAA,UAAA;AAAA,QAEZ;AAAA,MACD;AAAA,MACA;AAAA,IACD;AAEI,QAAA,CAAC,cAAc,KAAK,SAAS;AACzB,aAAA;AAAA,IAAA;AAGD,WAAA;AAAA,MACN,QAAQ,cAAc;AAAA,MACtB,MAAM;AAAA,QACL,GAAG,cAAc;AAAA,QACjB,UAAU,wBAAwB,cAAc,MAAM;AAAA,MAAA;AAAA,IAExD;AAAA,EAAA;AAAA,EAGD,MAAa,MAAM,EAAE,IAAI,iBAGG;AACrB,UAAA,YAAY,MAAM,GAAG,aAAa,MAAM,IAAI,YAAY,eAAe,KAAK,QAAQ,CAAC;AAC3F,QAAI,CAAC,WAAW;AACf,aAAO,iBAAiB;AAAA,IAAA;AAGlB,WAAA;AAAA,EAAA;AAET;"}
1
+ {"version":3,"file":"SchemaProvider.js","sources":["../../../../../../packages/engine-system-api/src/model/migrations/SchemaProvider.ts"],"sourcesContent":["import { SchemaQuery } from '../queries'\nimport { DatabaseContext } from '../database'\nimport { calculateSchemaChecksum, emptySchema, normalizeSchema } from '@contember/schema-utils'\nimport { ExecutedMigrationsResolver } from './ExecutedMigrationsResolver'\nimport { SchemaMigrator } from '@contember/schema-migrations'\nimport { Schema } from '@contember/schema'\n\nexport type SchemaMeta = {\n\tchecksum: string\n\tversion: string\n\tupdatedAt: Date\n\tid: number\n}\n\nexport const emptyVersionedSchema: SchemaWithMeta = {\n\tschema: emptySchema,\n\tmeta: {},\n}\n\nexport type SchemaWithMeta = {\n\tschema: Schema\n\tmeta: SchemaMeta | { [K in keyof SchemaMeta]?: undefined }\n}\n\nexport class SchemaProvider {\n\tconstructor(\n\t\tprivate readonly executedMigrationsResolver: ExecutedMigrationsResolver,\n\t\tprivate readonly schemaMigrator: SchemaMigrator,\n\t) {\n\t}\n\n\tasync buildSchemaFromMigrations(db: DatabaseContext): Promise<SchemaWithMeta> {\n\t\tconst newMigrations = await this.executedMigrationsResolver.getMigrations(db)\n\n\t\tconst partialResult = newMigrations.reduce<SchemaWithMeta>(\n\t\t\t(schema, migration) => {\n\t\t\t\treturn {\n\t\t\t\t\tschema: migration.type !== 'schema'\n\t\t\t\t\t\t? schema.schema\n\t\t\t\t\t\t: this.schemaMigrator.applyModifications(schema.schema, migration.modifications, migration.formatVersion),\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\tversion: migration.version,\n\t\t\t\t\t\tid: migration.id,\n\t\t\t\t\t\tupdatedAt: migration.executedAt,\n\t\t\t\t\t\tchecksum: '',\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t},\n\t\t\temptyVersionedSchema,\n\t\t)\n\n\t\tif (!partialResult.meta.version) {\n\t\t\treturn emptyVersionedSchema\n\t\t}\n\n\t\treturn {\n\t\t\tschema: partialResult.schema,\n\t\t\tmeta: {\n\t\t\t\t...partialResult.meta,\n\t\t\t\tchecksum: calculateSchemaChecksum(partialResult.schema),\n\t\t\t},\n\t\t}\n\t}\n\n\tpublic async fetch({ db, currentSchema }: {\n\t\tdb: DatabaseContext\n\t\tcurrentSchema?: SchemaWithMeta | null\n\t}): Promise<SchemaWithMeta> {\n\t\tconst newSchema = await db.queryHandler.fetch(new SchemaQuery(currentSchema?.meta.checksum))\n\t\tif (!newSchema) {\n\t\t\treturn currentSchema ?? emptyVersionedSchema\n\t\t}\n\n\t\treturn newSchema\n\t}\n}\n"],"names":[],"mappings":";;;;;;AAcO,MAAM,uBAAuC;AAAA,EACnD,QAAQ;AAAA,EACR,MAAM,CAAA;AACP;AAOO,MAAM,eAAe;AAAA,EAC3B,YACkB,4BACA,gBAChB;AAFgB,SAAA,6BAAA;AACA,SAAA,iBAAA;AAAA,EAElB;AAAA,EAEA,MAAM,0BAA0B,IAA8C;AAC7E,UAAM,gBAAgB,MAAM,KAAK,2BAA2B,cAAc,EAAE;AAE5E,UAAM,gBAAgB,cAAc;AAAA,MACnC,CAAC,QAAQ,cAAc;AACtB,eAAO;AAAA,UACN,QAAQ,UAAU,SAAS,WACxB,OAAO,SACP,KAAK,eAAe,mBAAmB,OAAO,QAAQ,UAAU,eAAe,UAAU,aAAa;AAAA,UACzG,MAAM;AAAA,YACL,SAAS,UAAU;AAAA,YACnB,IAAI,UAAU;AAAA,YACd,WAAW,UAAU;AAAA,YACrB,UAAU;AAAA,UAAA;AAAA,QACX;AAAA,MAEF;AAAA,MACA;AAAA,IAAA;AAGD,QAAI,CAAC,cAAc,KAAK,SAAS;AAChC,aAAO;AAAA,IACR;AAEA,WAAO;AAAA,MACN,QAAQ,cAAc;AAAA,MACtB,MAAM;AAAA,QACL,GAAG,cAAc;AAAA,QACjB,UAAU,wBAAwB,cAAc,MAAM;AAAA,MAAA;AAAA,IACvD;AAAA,EAEF;AAAA,EAEA,MAAa,MAAM,EAAE,IAAI,iBAGG;AAC3B,UAAM,YAAY,MAAM,GAAG,aAAa,MAAM,IAAI,YAAY,eAAe,KAAK,QAAQ,CAAC;AAC3F,QAAI,CAAC,WAAW;AACf,aAAO,iBAAiB;AAAA,IACzB;AAEA,WAAO;AAAA,EACR;AACD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"EventQueryHelpers.cjs","sources":["../../../../../../../packages/engine-system-api/src/model/queries/events/EventQueryHelpers.ts"],"sourcesContent":["import { ContentEvent, CreateEvent, DeleteEvent, EventType, UpdateEvent } from '../../events'\nimport { assertNever } from '../../../utils'\n\nexport type EventRow = {\n\tid: string\n\ttype: EventType\n\ttable_name: string\n\trow_ids: string[]\n\tvalues: Record<string, any>\n\tcreated_at: Date\n\tapplied_at: Date\n\tidentity_id: string\n\ttransaction_id: string\n}\n\nexport const createEventsFromRows = (rows: EventRow[]): ContentEvent[] => {\n\treturn rows.map(event => {\n\t\tswitch (event.type) {\n\t\t\tcase EventType.create:\n\t\t\t\treturn new CreateEvent(\n\t\t\t\t\tevent.id,\n\t\t\t\t\tevent.created_at,\n\t\t\t\t\tevent.applied_at,\n\t\t\t\t\tevent.identity_id,\n\t\t\t\t\tevent.transaction_id,\n\t\t\t\t\tevent.row_ids,\n\t\t\t\t\tevent.table_name,\n\t\t\t\t\tevent.values,\n\t\t\t\t)\n\t\t\tcase EventType.update:\n\t\t\t\treturn new UpdateEvent(\n\t\t\t\t\tevent.id,\n\t\t\t\t\tevent.created_at,\n\t\t\t\t\tevent.applied_at,\n\t\t\t\t\tevent.identity_id,\n\t\t\t\t\tevent.transaction_id,\n\t\t\t\t\tevent.row_ids,\n\t\t\t\t\tevent.table_name,\n\t\t\t\t\tevent.values,\n\t\t\t\t)\n\t\t\tcase EventType.delete:\n\t\t\t\treturn new DeleteEvent(\n\t\t\t\t\tevent.id,\n\t\t\t\t\tevent.created_at,\n\t\t\t\t\tevent.applied_at,\n\t\t\t\t\tevent.identity_id,\n\t\t\t\t\tevent.transaction_id,\n\t\t\t\t\tevent.row_ids,\n\t\t\t\t\tevent.table_name,\n\t\t\t\t)\n\t\t\tdefault:\n\t\t\t\tassertNever(event.type)\n\t\t}\n\t})\n}\n"],"names":["EventType","CreateEvent","UpdateEvent","DeleteEvent","assertNever"],"mappings":";;;;;;AAea,MAAA,uBAAuB,CAAC,SAAqC;AAClE,SAAA,KAAK,IAAI,CAAS,UAAA;AACxB,YAAQ,MAAM,MAAM;AAAA,MACnB,KAAKA,MAAU,UAAA;AACd,eAAO,IAAIC,MAAA;AAAA,UACV,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,QACP;AAAA,MACD,KAAKD,MAAU,UAAA;AACd,eAAO,IAAIE,MAAA;AAAA,UACV,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,QACP;AAAA,MACD,KAAKF,MAAU,UAAA;AACd,eAAO,IAAIG,MAAA;AAAA,UACV,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,QACP;AAAA,MACD;AACCC,oBAAA,YAAY,MAAM,IAAI;AAAA,IAAA;AAAA,EACxB,CACA;AACF;;"}
1
+ {"version":3,"file":"EventQueryHelpers.cjs","sources":["../../../../../../../packages/engine-system-api/src/model/queries/events/EventQueryHelpers.ts"],"sourcesContent":["import { ContentEvent, CreateEvent, DeleteEvent, EventType, UpdateEvent } from '../../events'\nimport { assertNever } from '../../../utils'\n\nexport type EventRow = {\n\tid: string\n\ttype: EventType\n\ttable_name: string\n\trow_ids: string[]\n\tvalues: Record<string, any>\n\tcreated_at: Date\n\tapplied_at: Date\n\tidentity_id: string\n\ttransaction_id: string\n}\n\nexport const createEventsFromRows = (rows: EventRow[]): ContentEvent[] => {\n\treturn rows.map(event => {\n\t\tswitch (event.type) {\n\t\t\tcase EventType.create:\n\t\t\t\treturn new CreateEvent(\n\t\t\t\t\tevent.id,\n\t\t\t\t\tevent.created_at,\n\t\t\t\t\tevent.applied_at,\n\t\t\t\t\tevent.identity_id,\n\t\t\t\t\tevent.transaction_id,\n\t\t\t\t\tevent.row_ids,\n\t\t\t\t\tevent.table_name,\n\t\t\t\t\tevent.values,\n\t\t\t\t)\n\t\t\tcase EventType.update:\n\t\t\t\treturn new UpdateEvent(\n\t\t\t\t\tevent.id,\n\t\t\t\t\tevent.created_at,\n\t\t\t\t\tevent.applied_at,\n\t\t\t\t\tevent.identity_id,\n\t\t\t\t\tevent.transaction_id,\n\t\t\t\t\tevent.row_ids,\n\t\t\t\t\tevent.table_name,\n\t\t\t\t\tevent.values,\n\t\t\t\t)\n\t\t\tcase EventType.delete:\n\t\t\t\treturn new DeleteEvent(\n\t\t\t\t\tevent.id,\n\t\t\t\t\tevent.created_at,\n\t\t\t\t\tevent.applied_at,\n\t\t\t\t\tevent.identity_id,\n\t\t\t\t\tevent.transaction_id,\n\t\t\t\t\tevent.row_ids,\n\t\t\t\t\tevent.table_name,\n\t\t\t\t)\n\t\t\tdefault:\n\t\t\t\tassertNever(event.type)\n\t\t}\n\t})\n}\n"],"names":["EventType","CreateEvent","UpdateEvent","DeleteEvent","assertNever"],"mappings":";;;;;;AAeO,MAAM,uBAAuB,CAAC,SAAqC;AACzE,SAAO,KAAK,IAAI,CAAA,UAAS;AACxB,YAAQ,MAAM,MAAA;AAAA,MACb,KAAKA,MAAAA,UAAU;AACd,eAAO,IAAIC,MAAAA;AAAAA,UACV,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,QAAA;AAAA,MAER,KAAKD,MAAAA,UAAU;AACd,eAAO,IAAIE,MAAAA;AAAAA,UACV,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,QAAA;AAAA,MAER,KAAKF,MAAAA,UAAU;AACd,eAAO,IAAIG,MAAAA;AAAAA,UACV,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,QAAA;AAAA,MAER;AACCC,oBAAAA,YAAY,MAAM,IAAI;AAAA,IAAA;AAAA,EAEzB,CAAC;AACF;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"EventQueryHelpers.js","sources":["../../../../../../../packages/engine-system-api/src/model/queries/events/EventQueryHelpers.ts"],"sourcesContent":["import { ContentEvent, CreateEvent, DeleteEvent, EventType, UpdateEvent } from '../../events'\nimport { assertNever } from '../../../utils'\n\nexport type EventRow = {\n\tid: string\n\ttype: EventType\n\ttable_name: string\n\trow_ids: string[]\n\tvalues: Record<string, any>\n\tcreated_at: Date\n\tapplied_at: Date\n\tidentity_id: string\n\ttransaction_id: string\n}\n\nexport const createEventsFromRows = (rows: EventRow[]): ContentEvent[] => {\n\treturn rows.map(event => {\n\t\tswitch (event.type) {\n\t\t\tcase EventType.create:\n\t\t\t\treturn new CreateEvent(\n\t\t\t\t\tevent.id,\n\t\t\t\t\tevent.created_at,\n\t\t\t\t\tevent.applied_at,\n\t\t\t\t\tevent.identity_id,\n\t\t\t\t\tevent.transaction_id,\n\t\t\t\t\tevent.row_ids,\n\t\t\t\t\tevent.table_name,\n\t\t\t\t\tevent.values,\n\t\t\t\t)\n\t\t\tcase EventType.update:\n\t\t\t\treturn new UpdateEvent(\n\t\t\t\t\tevent.id,\n\t\t\t\t\tevent.created_at,\n\t\t\t\t\tevent.applied_at,\n\t\t\t\t\tevent.identity_id,\n\t\t\t\t\tevent.transaction_id,\n\t\t\t\t\tevent.row_ids,\n\t\t\t\t\tevent.table_name,\n\t\t\t\t\tevent.values,\n\t\t\t\t)\n\t\t\tcase EventType.delete:\n\t\t\t\treturn new DeleteEvent(\n\t\t\t\t\tevent.id,\n\t\t\t\t\tevent.created_at,\n\t\t\t\t\tevent.applied_at,\n\t\t\t\t\tevent.identity_id,\n\t\t\t\t\tevent.transaction_id,\n\t\t\t\t\tevent.row_ids,\n\t\t\t\t\tevent.table_name,\n\t\t\t\t)\n\t\t\tdefault:\n\t\t\t\tassertNever(event.type)\n\t\t}\n\t})\n}\n"],"names":[],"mappings":";;;;AAea,MAAA,uBAAuB,CAAC,SAAqC;AAClE,SAAA,KAAK,IAAI,CAAS,UAAA;AACxB,YAAQ,MAAM,MAAM;AAAA,MACnB,KAAK,UAAU;AACd,eAAO,IAAI;AAAA,UACV,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,QACP;AAAA,MACD,KAAK,UAAU;AACd,eAAO,IAAI;AAAA,UACV,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,QACP;AAAA,MACD,KAAK,UAAU;AACd,eAAO,IAAI;AAAA,UACV,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,QACP;AAAA,MACD;AACC,oBAAY,MAAM,IAAI;AAAA,IAAA;AAAA,EACxB,CACA;AACF;"}
1
+ {"version":3,"file":"EventQueryHelpers.js","sources":["../../../../../../../packages/engine-system-api/src/model/queries/events/EventQueryHelpers.ts"],"sourcesContent":["import { ContentEvent, CreateEvent, DeleteEvent, EventType, UpdateEvent } from '../../events'\nimport { assertNever } from '../../../utils'\n\nexport type EventRow = {\n\tid: string\n\ttype: EventType\n\ttable_name: string\n\trow_ids: string[]\n\tvalues: Record<string, any>\n\tcreated_at: Date\n\tapplied_at: Date\n\tidentity_id: string\n\ttransaction_id: string\n}\n\nexport const createEventsFromRows = (rows: EventRow[]): ContentEvent[] => {\n\treturn rows.map(event => {\n\t\tswitch (event.type) {\n\t\t\tcase EventType.create:\n\t\t\t\treturn new CreateEvent(\n\t\t\t\t\tevent.id,\n\t\t\t\t\tevent.created_at,\n\t\t\t\t\tevent.applied_at,\n\t\t\t\t\tevent.identity_id,\n\t\t\t\t\tevent.transaction_id,\n\t\t\t\t\tevent.row_ids,\n\t\t\t\t\tevent.table_name,\n\t\t\t\t\tevent.values,\n\t\t\t\t)\n\t\t\tcase EventType.update:\n\t\t\t\treturn new UpdateEvent(\n\t\t\t\t\tevent.id,\n\t\t\t\t\tevent.created_at,\n\t\t\t\t\tevent.applied_at,\n\t\t\t\t\tevent.identity_id,\n\t\t\t\t\tevent.transaction_id,\n\t\t\t\t\tevent.row_ids,\n\t\t\t\t\tevent.table_name,\n\t\t\t\t\tevent.values,\n\t\t\t\t)\n\t\t\tcase EventType.delete:\n\t\t\t\treturn new DeleteEvent(\n\t\t\t\t\tevent.id,\n\t\t\t\t\tevent.created_at,\n\t\t\t\t\tevent.applied_at,\n\t\t\t\t\tevent.identity_id,\n\t\t\t\t\tevent.transaction_id,\n\t\t\t\t\tevent.row_ids,\n\t\t\t\t\tevent.table_name,\n\t\t\t\t)\n\t\t\tdefault:\n\t\t\t\tassertNever(event.type)\n\t\t}\n\t})\n}\n"],"names":[],"mappings":";;;;AAeO,MAAM,uBAAuB,CAAC,SAAqC;AACzE,SAAO,KAAK,IAAI,CAAA,UAAS;AACxB,YAAQ,MAAM,MAAA;AAAA,MACb,KAAK,UAAU;AACd,eAAO,IAAI;AAAA,UACV,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,QAAA;AAAA,MAER,KAAK,UAAU;AACd,eAAO,IAAI;AAAA,UACV,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,QAAA;AAAA,MAER,KAAK,UAAU;AACd,eAAO,IAAI;AAAA,UACV,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,QAAA;AAAA,MAER;AACC,oBAAY,MAAM,IAAI;AAAA,IAAA;AAAA,EAEzB,CAAC;AACF;"}
@@ -33,11 +33,7 @@ class EventsQuery extends Database.DatabaseQuery {
33
33
  }
34
34
  return qb2.where(Database.ConditionBuilder.create().in(column, values));
35
35
  };
36
- const qb = Database.SelectBuilder.create().select("id").select("type").select("table_name").select("row_ids").select("values").select("created_at").select("applied_at").select("identity_id").select(["event_data", "transaction_id"]).from("event_data").join(
37
- "stage_transaction",
38
- void 0,
39
- (on) => on.columnsEq(["event_data", "transaction_id"], ["stage_transaction", "transaction_id"])
40
- ).match((qb2) => {
36
+ const qb = Database.SelectBuilder.create().select("id").select("type").select("table_name").select("row_ids").select("values").select("created_at").select("applied_at").select("identity_id").select(["event_data", "transaction_id"]).from("event_data").join("stage_transaction", void 0, (on) => on.columnsEq(["event_data", "transaction_id"], ["stage_transaction", "transaction_id"])).match((qb2) => {
41
37
  switch (this.order) {
42
38
  case types.EventsOrder.AppliedAtAsc:
43
39
  return qb2.orderBy("applied_at", "asc");
@@ -1 +1 @@
1
- {"version":3,"file":"EventsQuery.cjs","sources":["../../../../../../../packages/engine-system-api/src/model/queries/events/EventsQuery.ts"],"sourcesContent":["import {\n\tConditionBuilder,\n\tDatabaseQuery,\n\tDatabaseQueryable,\n\tLiteral,\n\tOperator,\n\tSelectBuilder,\n\tSelectBuilderSpecification, Value,\n} from '@contember/database'\nimport { ContentEvent } from '../../events'\nimport { EventsFilter, EventsFilterDate, EventsOrder } from '../../../schema'\nimport { createEventsFromRows, EventRow } from './EventQueryHelpers'\n\nexport class EventsQuery extends DatabaseQuery<ContentEvent[]> {\n\tconstructor(\n\t\tprivate readonly filter: EventsFilter,\n\t\tprivate readonly order: EventsOrder,\n\t\tprivate readonly offset: number,\n\t\tprivate readonly limit: number,\n\t) {\n\t\tsuper()\n\t}\n\n\tasync fetch({ db }: DatabaseQueryable): Promise<ContentEvent[]> {\n\t\tconst createDateMatcher = (column: string, dateFilter: EventsFilterDate | undefined): SelectBuilderSpecification => qb => {\n\t\t\tif (!dateFilter) {\n\t\t\t\treturn qb\n\t\t\t}\n\t\t\tconst { from, to } = dateFilter\n\t\t\tif (from) {\n\t\t\t\tqb = qb.where(expr => expr.compare(column, Operator.gte, from))\n\t\t\t}\n\t\t\tif (to) {\n\t\t\t\tqb = qb.where(expr => expr.compare(column, Operator.lte, to))\n\t\t\t}\n\t\t\treturn qb\n\t\t}\n\t\tconst createInMatcher = (column: string | [string, string], values?: readonly Value[] | null): SelectBuilderSpecification => qb => {\n\t\t\tif (!values) {\n\t\t\t\treturn qb\n\t\t\t}\n\t\t\treturn qb.where(ConditionBuilder.create().in(column, values))\n\t\t}\n\n\t\tconst qb = SelectBuilder.create<EventRow>()\n\t\t\t.select('id')\n\t\t\t.select('type')\n\t\t\t.select('table_name')\n\t\t\t.select('row_ids')\n\t\t\t.select('values')\n\t\t\t.select('created_at')\n\t\t\t.select('applied_at')\n\t\t\t.select('identity_id')\n\t\t\t.select(['event_data', 'transaction_id'])\n\n\t\t\t.from('event_data')\n\t\t\t.join('stage_transaction', undefined, on =>\n\t\t\t\ton.columnsEq(['event_data', 'transaction_id'], ['stage_transaction', 'transaction_id']),\n\t\t\t)\n\t\t\t.match(qb => {\n\t\t\t\tswitch (this.order) {\n\t\t\t\t\tcase EventsOrder.AppliedAtAsc:\n\t\t\t\t\t\treturn qb.orderBy('applied_at', 'asc')\n\t\t\t\t\tcase EventsOrder.AppliedAtDesc:\n\t\t\t\t\t\treturn qb.orderBy('applied_at', 'desc')\n\t\t\t\t\tcase EventsOrder.CreatedAtAsc:\n\t\t\t\t\t\treturn qb.orderBy('created_at', 'asc')\n\t\t\t\t\tcase EventsOrder.CreatedAtDesc:\n\t\t\t\t\t\treturn qb.orderBy('created_at', 'desc')\n\t\t\t\t}\n\t\t\t})\n\t\t\t.match(createInMatcher('type', this.filter.types?.map(it => it.toLowerCase())))\n\t\t\t.match(createInMatcher('table_name', this.filter.tables))\n\t\t\t.match(createInMatcher(['event_data', 'transaction_id'], this.filter.transactions))\n\t\t\t.match(createInMatcher('identity_id', this.filter.identities))\n\t\t\t.match(createDateMatcher('created_at', this.filter.createdAt ?? undefined))\n\t\t\t.match(createDateMatcher('applied_at', this.filter.appliedAt ?? undefined))\n\t\t\t.match(qb => {\n\t\t\t\tif (!this.filter.rows) {\n\t\t\t\t\treturn qb\n\t\t\t\t}\n\n\t\t\t\tconst ors: Literal[] = this.filter.rows.map(row => {\n\t\t\t\t\tconst builder = ConditionBuilder.create()\n\t\t\t\t\t\t.compare('table_name', Operator.eq, row.tableName)\n\n\t\t\t\t\treturn row.primaryKey.reduce((expr, val, index) => {\n\t\t\t\t\t\tif (val === null) {\n\t\t\t\t\t\t\treturn expr\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn expr.raw(`\"row_ids\"->${index} = ?::jsonb`, JSON.stringify(val))\n\t\t\t\t\t}, builder).getSql()\n\t\t\t\t}).filter((it): it is Literal => it !== null)\n\n\t\t\t\treturn qb.where(ConditionBuilder.create().or(ConditionBuilder.create(ors)))\n\t\t\t})\n\n\t\t\t.limit(this.limit, this.offset)\n\n\t\treturn createEventsFromRows(await qb.getResult(db))\n\t}\n\n}\n"],"names":["DatabaseQuery","qb","Operator","ConditionBuilder","SelectBuilder","EventsOrder","createEventsFromRows"],"mappings":"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"}
1
+ {"version":3,"file":"EventsQuery.cjs","sources":["../../../../../../../packages/engine-system-api/src/model/queries/events/EventsQuery.ts"],"sourcesContent":["import {\n\tConditionBuilder,\n\tDatabaseQuery,\n\tDatabaseQueryable,\n\tLiteral,\n\tOperator,\n\tSelectBuilder,\n\tSelectBuilderSpecification,\n\tValue,\n} from '@contember/database'\nimport { ContentEvent } from '../../events'\nimport { EventsFilter, EventsFilterDate, EventsOrder } from '../../../schema'\nimport { createEventsFromRows, EventRow } from './EventQueryHelpers'\n\nexport class EventsQuery extends DatabaseQuery<ContentEvent[]> {\n\tconstructor(\n\t\tprivate readonly filter: EventsFilter,\n\t\tprivate readonly order: EventsOrder,\n\t\tprivate readonly offset: number,\n\t\tprivate readonly limit: number,\n\t) {\n\t\tsuper()\n\t}\n\n\tasync fetch({ db }: DatabaseQueryable): Promise<ContentEvent[]> {\n\t\tconst createDateMatcher = (column: string, dateFilter: EventsFilterDate | undefined): SelectBuilderSpecification => qb => {\n\t\t\tif (!dateFilter) {\n\t\t\t\treturn qb\n\t\t\t}\n\t\t\tconst { from, to } = dateFilter\n\t\t\tif (from) {\n\t\t\t\tqb = qb.where(expr => expr.compare(column, Operator.gte, from))\n\t\t\t}\n\t\t\tif (to) {\n\t\t\t\tqb = qb.where(expr => expr.compare(column, Operator.lte, to))\n\t\t\t}\n\t\t\treturn qb\n\t\t}\n\t\tconst createInMatcher = (column: string | [string, string], values?: readonly Value[] | null): SelectBuilderSpecification => qb => {\n\t\t\tif (!values) {\n\t\t\t\treturn qb\n\t\t\t}\n\t\t\treturn qb.where(ConditionBuilder.create().in(column, values))\n\t\t}\n\n\t\tconst qb = SelectBuilder.create<EventRow>()\n\t\t\t.select('id')\n\t\t\t.select('type')\n\t\t\t.select('table_name')\n\t\t\t.select('row_ids')\n\t\t\t.select('values')\n\t\t\t.select('created_at')\n\t\t\t.select('applied_at')\n\t\t\t.select('identity_id')\n\t\t\t.select(['event_data', 'transaction_id'])\n\t\t\t.from('event_data')\n\t\t\t.join('stage_transaction', undefined, on => on.columnsEq(['event_data', 'transaction_id'], ['stage_transaction', 'transaction_id']))\n\t\t\t.match(qb => {\n\t\t\t\tswitch (this.order) {\n\t\t\t\t\tcase EventsOrder.AppliedAtAsc:\n\t\t\t\t\t\treturn qb.orderBy('applied_at', 'asc')\n\t\t\t\t\tcase EventsOrder.AppliedAtDesc:\n\t\t\t\t\t\treturn qb.orderBy('applied_at', 'desc')\n\t\t\t\t\tcase EventsOrder.CreatedAtAsc:\n\t\t\t\t\t\treturn qb.orderBy('created_at', 'asc')\n\t\t\t\t\tcase EventsOrder.CreatedAtDesc:\n\t\t\t\t\t\treturn qb.orderBy('created_at', 'desc')\n\t\t\t\t}\n\t\t\t})\n\t\t\t.match(createInMatcher('type', this.filter.types?.map(it => it.toLowerCase())))\n\t\t\t.match(createInMatcher('table_name', this.filter.tables))\n\t\t\t.match(createInMatcher(['event_data', 'transaction_id'], this.filter.transactions))\n\t\t\t.match(createInMatcher('identity_id', this.filter.identities))\n\t\t\t.match(createDateMatcher('created_at', this.filter.createdAt ?? undefined))\n\t\t\t.match(createDateMatcher('applied_at', this.filter.appliedAt ?? undefined))\n\t\t\t.match(qb => {\n\t\t\t\tif (!this.filter.rows) {\n\t\t\t\t\treturn qb\n\t\t\t\t}\n\n\t\t\t\tconst ors: Literal[] = this.filter.rows.map(row => {\n\t\t\t\t\tconst builder = ConditionBuilder.create()\n\t\t\t\t\t\t.compare('table_name', Operator.eq, row.tableName)\n\n\t\t\t\t\treturn row.primaryKey.reduce((expr, val, index) => {\n\t\t\t\t\t\tif (val === null) {\n\t\t\t\t\t\t\treturn expr\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn expr.raw(`\"row_ids\"->${index} = ?::jsonb`, JSON.stringify(val))\n\t\t\t\t\t}, builder).getSql()\n\t\t\t\t}).filter((it): it is Literal => it !== null)\n\n\t\t\t\treturn qb.where(ConditionBuilder.create().or(ConditionBuilder.create(ors)))\n\t\t\t})\n\t\t\t.limit(this.limit, this.offset)\n\n\t\treturn createEventsFromRows(await qb.getResult(db))\n\t}\n}\n"],"names":["DatabaseQuery","qb","Operator","ConditionBuilder","SelectBuilder","EventsOrder","createEventsFromRows"],"mappings":";;;;;;;AAcO,MAAM,oBAAoBA,SAAAA,cAA8B;AAAA,EAC9D,YACkB,QACA,OACA,QACA,OAChB;AACD,UAAA;AALiB,SAAA,SAAA;AACA,SAAA,QAAA;AACA,SAAA,SAAA;AACA,SAAA,QAAA;AAAA,EAGlB;AAAA,EAEA,MAAM,MAAM,EAAE,MAAkD;AAC/D,UAAM,oBAAoB,CAAC,QAAgB,eAAyE,CAAAC,QAAM;AACzH,UAAI,CAAC,YAAY;AAChB,eAAOA;AAAAA,MACR;AACA,YAAM,EAAE,MAAM,GAAA,IAAO;AACrB,UAAI,MAAM;AACTA,cAAKA,IAAG,MAAM,CAAA,SAAQ,KAAK,QAAQ,QAAQC,SAAAA,SAAS,KAAK,IAAI,CAAC;AAAA,MAC/D;AACA,UAAI,IAAI;AACPD,cAAKA,IAAG,MAAM,CAAA,SAAQ,KAAK,QAAQ,QAAQC,SAAAA,SAAS,KAAK,EAAE,CAAC;AAAA,MAC7D;AACA,aAAOD;AAAAA,IACR;AACA,UAAM,kBAAkB,CAAC,QAAmC,WAAiE,CAAAA,QAAM;AAClI,UAAI,CAAC,QAAQ;AACZ,eAAOA;AAAAA,MACR;AACA,aAAOA,IAAG,MAAME,0BAAiB,OAAA,EAAS,GAAG,QAAQ,MAAM,CAAC;AAAA,IAC7D;AAEA,UAAM,KAAKC,SAAAA,cAAc,OAAA,EACvB,OAAO,IAAI,EACX,OAAO,MAAM,EACb,OAAO,YAAY,EACnB,OAAO,SAAS,EAChB,OAAO,QAAQ,EACf,OAAO,YAAY,EACnB,OAAO,YAAY,EACnB,OAAO,aAAa,EACpB,OAAO,CAAC,cAAc,gBAAgB,CAAC,EACvC,KAAK,YAAY,EACjB,KAAK,qBAAqB,QAAW,CAAA,OAAM,GAAG,UAAU,CAAC,cAAc,gBAAgB,GAAG,CAAC,qBAAqB,gBAAgB,CAAC,CAAC,EAClI,MAAM,CAAAH,QAAM;AACZ,cAAQ,KAAK,OAAA;AAAA,QACZ,KAAKI,MAAAA,YAAY;AAChB,iBAAOJ,IAAG,QAAQ,cAAc,KAAK;AAAA,QACtC,KAAKI,MAAAA,YAAY;AAChB,iBAAOJ,IAAG,QAAQ,cAAc,MAAM;AAAA,QACvC,KAAKI,MAAAA,YAAY;AAChB,iBAAOJ,IAAG,QAAQ,cAAc,KAAK;AAAA,QACtC,KAAKI,MAAAA,YAAY;AAChB,iBAAOJ,IAAG,QAAQ,cAAc,MAAM;AAAA,MAAA;AAAA,IAEzC,CAAC,EACA,MAAM,gBAAgB,QAAQ,KAAK,OAAO,OAAO,IAAI,CAAA,OAAM,GAAG,YAAA,CAAa,CAAC,CAAC,EAC7E,MAAM,gBAAgB,cAAc,KAAK,OAAO,MAAM,CAAC,EACvD,MAAM,gBAAgB,CAAC,cAAc,gBAAgB,GAAG,KAAK,OAAO,YAAY,CAAC,EACjF,MAAM,gBAAgB,eAAe,KAAK,OAAO,UAAU,CAAC,EAC5D,MAAM,kBAAkB,cAAc,KAAK,OAAO,aAAa,MAAS,CAAC,EACzE,MAAM,kBAAkB,cAAc,KAAK,OAAO,aAAa,MAAS,CAAC,EACzE,MAAM,CAAAA,QAAM;AACZ,UAAI,CAAC,KAAK,OAAO,MAAM;AACtB,eAAOA;AAAAA,MACR;AAEA,YAAM,MAAiB,KAAK,OAAO,KAAK,IAAI,CAAA,QAAO;AAClD,cAAM,UAAUE,0BAAiB,SAC/B,QAAQ,cAAcD,kBAAS,IAAI,IAAI,SAAS;AAElD,eAAO,IAAI,WAAW,OAAO,CAAC,MAAM,KAAK,UAAU;AAClD,cAAI,QAAQ,MAAM;AACjB,mBAAO;AAAA,UACR;AACA,iBAAO,KAAK,IAAI,cAAc,KAAK,eAAe,KAAK,UAAU,GAAG,CAAC;AAAA,QACtE,GAAG,OAAO,EAAE,OAAA;AAAA,MACb,CAAC,EAAE,OAAO,CAAC,OAAsB,OAAO,IAAI;AAE5C,aAAOD,IAAG,MAAME,SAAAA,iBAAiB,OAAA,EAAS,GAAGA,0BAAiB,OAAO,GAAG,CAAC,CAAC;AAAA,IAC3E,CAAC,EACA,MAAM,KAAK,OAAO,KAAK,MAAM;AAE/B,WAAOG,kBAAAA,qBAAqB,MAAM,GAAG,UAAU,EAAE,CAAC;AAAA,EACnD;AACD;;"}
@@ -31,11 +31,7 @@ class EventsQuery extends DatabaseQuery {
31
31
  }
32
32
  return qb2.where(ConditionBuilder.create().in(column, values));
33
33
  };
34
- const qb = SelectBuilder.create().select("id").select("type").select("table_name").select("row_ids").select("values").select("created_at").select("applied_at").select("identity_id").select(["event_data", "transaction_id"]).from("event_data").join(
35
- "stage_transaction",
36
- void 0,
37
- (on) => on.columnsEq(["event_data", "transaction_id"], ["stage_transaction", "transaction_id"])
38
- ).match((qb2) => {
34
+ const qb = SelectBuilder.create().select("id").select("type").select("table_name").select("row_ids").select("values").select("created_at").select("applied_at").select("identity_id").select(["event_data", "transaction_id"]).from("event_data").join("stage_transaction", void 0, (on) => on.columnsEq(["event_data", "transaction_id"], ["stage_transaction", "transaction_id"])).match((qb2) => {
39
35
  switch (this.order) {
40
36
  case EventsOrder.AppliedAtAsc:
41
37
  return qb2.orderBy("applied_at", "asc");
@@ -1 +1 @@
1
- {"version":3,"file":"EventsQuery.js","sources":["../../../../../../../packages/engine-system-api/src/model/queries/events/EventsQuery.ts"],"sourcesContent":["import {\n\tConditionBuilder,\n\tDatabaseQuery,\n\tDatabaseQueryable,\n\tLiteral,\n\tOperator,\n\tSelectBuilder,\n\tSelectBuilderSpecification, Value,\n} from '@contember/database'\nimport { ContentEvent } from '../../events'\nimport { EventsFilter, EventsFilterDate, EventsOrder } from '../../../schema'\nimport { createEventsFromRows, EventRow } from './EventQueryHelpers'\n\nexport class EventsQuery extends DatabaseQuery<ContentEvent[]> {\n\tconstructor(\n\t\tprivate readonly filter: EventsFilter,\n\t\tprivate readonly order: EventsOrder,\n\t\tprivate readonly offset: number,\n\t\tprivate readonly limit: number,\n\t) {\n\t\tsuper()\n\t}\n\n\tasync fetch({ db }: DatabaseQueryable): Promise<ContentEvent[]> {\n\t\tconst createDateMatcher = (column: string, dateFilter: EventsFilterDate | undefined): SelectBuilderSpecification => qb => {\n\t\t\tif (!dateFilter) {\n\t\t\t\treturn qb\n\t\t\t}\n\t\t\tconst { from, to } = dateFilter\n\t\t\tif (from) {\n\t\t\t\tqb = qb.where(expr => expr.compare(column, Operator.gte, from))\n\t\t\t}\n\t\t\tif (to) {\n\t\t\t\tqb = qb.where(expr => expr.compare(column, Operator.lte, to))\n\t\t\t}\n\t\t\treturn qb\n\t\t}\n\t\tconst createInMatcher = (column: string | [string, string], values?: readonly Value[] | null): SelectBuilderSpecification => qb => {\n\t\t\tif (!values) {\n\t\t\t\treturn qb\n\t\t\t}\n\t\t\treturn qb.where(ConditionBuilder.create().in(column, values))\n\t\t}\n\n\t\tconst qb = SelectBuilder.create<EventRow>()\n\t\t\t.select('id')\n\t\t\t.select('type')\n\t\t\t.select('table_name')\n\t\t\t.select('row_ids')\n\t\t\t.select('values')\n\t\t\t.select('created_at')\n\t\t\t.select('applied_at')\n\t\t\t.select('identity_id')\n\t\t\t.select(['event_data', 'transaction_id'])\n\n\t\t\t.from('event_data')\n\t\t\t.join('stage_transaction', undefined, on =>\n\t\t\t\ton.columnsEq(['event_data', 'transaction_id'], ['stage_transaction', 'transaction_id']),\n\t\t\t)\n\t\t\t.match(qb => {\n\t\t\t\tswitch (this.order) {\n\t\t\t\t\tcase EventsOrder.AppliedAtAsc:\n\t\t\t\t\t\treturn qb.orderBy('applied_at', 'asc')\n\t\t\t\t\tcase EventsOrder.AppliedAtDesc:\n\t\t\t\t\t\treturn qb.orderBy('applied_at', 'desc')\n\t\t\t\t\tcase EventsOrder.CreatedAtAsc:\n\t\t\t\t\t\treturn qb.orderBy('created_at', 'asc')\n\t\t\t\t\tcase EventsOrder.CreatedAtDesc:\n\t\t\t\t\t\treturn qb.orderBy('created_at', 'desc')\n\t\t\t\t}\n\t\t\t})\n\t\t\t.match(createInMatcher('type', this.filter.types?.map(it => it.toLowerCase())))\n\t\t\t.match(createInMatcher('table_name', this.filter.tables))\n\t\t\t.match(createInMatcher(['event_data', 'transaction_id'], this.filter.transactions))\n\t\t\t.match(createInMatcher('identity_id', this.filter.identities))\n\t\t\t.match(createDateMatcher('created_at', this.filter.createdAt ?? undefined))\n\t\t\t.match(createDateMatcher('applied_at', this.filter.appliedAt ?? undefined))\n\t\t\t.match(qb => {\n\t\t\t\tif (!this.filter.rows) {\n\t\t\t\t\treturn qb\n\t\t\t\t}\n\n\t\t\t\tconst ors: Literal[] = this.filter.rows.map(row => {\n\t\t\t\t\tconst builder = ConditionBuilder.create()\n\t\t\t\t\t\t.compare('table_name', Operator.eq, row.tableName)\n\n\t\t\t\t\treturn row.primaryKey.reduce((expr, val, index) => {\n\t\t\t\t\t\tif (val === null) {\n\t\t\t\t\t\t\treturn expr\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn expr.raw(`\"row_ids\"->${index} = ?::jsonb`, JSON.stringify(val))\n\t\t\t\t\t}, builder).getSql()\n\t\t\t\t}).filter((it): it is Literal => it !== null)\n\n\t\t\t\treturn qb.where(ConditionBuilder.create().or(ConditionBuilder.create(ors)))\n\t\t\t})\n\n\t\t\t.limit(this.limit, this.offset)\n\n\t\treturn createEventsFromRows(await qb.getResult(db))\n\t}\n\n}\n"],"names":["qb"],"mappings":"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"}
1
+ {"version":3,"file":"EventsQuery.js","sources":["../../../../../../../packages/engine-system-api/src/model/queries/events/EventsQuery.ts"],"sourcesContent":["import {\n\tConditionBuilder,\n\tDatabaseQuery,\n\tDatabaseQueryable,\n\tLiteral,\n\tOperator,\n\tSelectBuilder,\n\tSelectBuilderSpecification,\n\tValue,\n} from '@contember/database'\nimport { ContentEvent } from '../../events'\nimport { EventsFilter, EventsFilterDate, EventsOrder } from '../../../schema'\nimport { createEventsFromRows, EventRow } from './EventQueryHelpers'\n\nexport class EventsQuery extends DatabaseQuery<ContentEvent[]> {\n\tconstructor(\n\t\tprivate readonly filter: EventsFilter,\n\t\tprivate readonly order: EventsOrder,\n\t\tprivate readonly offset: number,\n\t\tprivate readonly limit: number,\n\t) {\n\t\tsuper()\n\t}\n\n\tasync fetch({ db }: DatabaseQueryable): Promise<ContentEvent[]> {\n\t\tconst createDateMatcher = (column: string, dateFilter: EventsFilterDate | undefined): SelectBuilderSpecification => qb => {\n\t\t\tif (!dateFilter) {\n\t\t\t\treturn qb\n\t\t\t}\n\t\t\tconst { from, to } = dateFilter\n\t\t\tif (from) {\n\t\t\t\tqb = qb.where(expr => expr.compare(column, Operator.gte, from))\n\t\t\t}\n\t\t\tif (to) {\n\t\t\t\tqb = qb.where(expr => expr.compare(column, Operator.lte, to))\n\t\t\t}\n\t\t\treturn qb\n\t\t}\n\t\tconst createInMatcher = (column: string | [string, string], values?: readonly Value[] | null): SelectBuilderSpecification => qb => {\n\t\t\tif (!values) {\n\t\t\t\treturn qb\n\t\t\t}\n\t\t\treturn qb.where(ConditionBuilder.create().in(column, values))\n\t\t}\n\n\t\tconst qb = SelectBuilder.create<EventRow>()\n\t\t\t.select('id')\n\t\t\t.select('type')\n\t\t\t.select('table_name')\n\t\t\t.select('row_ids')\n\t\t\t.select('values')\n\t\t\t.select('created_at')\n\t\t\t.select('applied_at')\n\t\t\t.select('identity_id')\n\t\t\t.select(['event_data', 'transaction_id'])\n\t\t\t.from('event_data')\n\t\t\t.join('stage_transaction', undefined, on => on.columnsEq(['event_data', 'transaction_id'], ['stage_transaction', 'transaction_id']))\n\t\t\t.match(qb => {\n\t\t\t\tswitch (this.order) {\n\t\t\t\t\tcase EventsOrder.AppliedAtAsc:\n\t\t\t\t\t\treturn qb.orderBy('applied_at', 'asc')\n\t\t\t\t\tcase EventsOrder.AppliedAtDesc:\n\t\t\t\t\t\treturn qb.orderBy('applied_at', 'desc')\n\t\t\t\t\tcase EventsOrder.CreatedAtAsc:\n\t\t\t\t\t\treturn qb.orderBy('created_at', 'asc')\n\t\t\t\t\tcase EventsOrder.CreatedAtDesc:\n\t\t\t\t\t\treturn qb.orderBy('created_at', 'desc')\n\t\t\t\t}\n\t\t\t})\n\t\t\t.match(createInMatcher('type', this.filter.types?.map(it => it.toLowerCase())))\n\t\t\t.match(createInMatcher('table_name', this.filter.tables))\n\t\t\t.match(createInMatcher(['event_data', 'transaction_id'], this.filter.transactions))\n\t\t\t.match(createInMatcher('identity_id', this.filter.identities))\n\t\t\t.match(createDateMatcher('created_at', this.filter.createdAt ?? undefined))\n\t\t\t.match(createDateMatcher('applied_at', this.filter.appliedAt ?? undefined))\n\t\t\t.match(qb => {\n\t\t\t\tif (!this.filter.rows) {\n\t\t\t\t\treturn qb\n\t\t\t\t}\n\n\t\t\t\tconst ors: Literal[] = this.filter.rows.map(row => {\n\t\t\t\t\tconst builder = ConditionBuilder.create()\n\t\t\t\t\t\t.compare('table_name', Operator.eq, row.tableName)\n\n\t\t\t\t\treturn row.primaryKey.reduce((expr, val, index) => {\n\t\t\t\t\t\tif (val === null) {\n\t\t\t\t\t\t\treturn expr\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn expr.raw(`\"row_ids\"->${index} = ?::jsonb`, JSON.stringify(val))\n\t\t\t\t\t}, builder).getSql()\n\t\t\t\t}).filter((it): it is Literal => it !== null)\n\n\t\t\t\treturn qb.where(ConditionBuilder.create().or(ConditionBuilder.create(ors)))\n\t\t\t})\n\t\t\t.limit(this.limit, this.offset)\n\n\t\treturn createEventsFromRows(await qb.getResult(db))\n\t}\n}\n"],"names":["qb"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"LatestTransactionIdByStageQuery.cjs","sources":["../../../../../../../packages/engine-system-api/src/model/queries/events/LatestTransactionIdByStageQuery.ts"],"sourcesContent":["import { DatabaseQuery, DatabaseQueryable, SelectBuilder } from '@contember/database'\n\nexport class LatestTransactionIdByStageQuery extends DatabaseQuery<string | null> {\n\tconstructor(private readonly stageId: string) {\n\t\tsuper()\n\t}\n\n\tasync fetch(queryable: DatabaseQueryable): Promise<string | null> {\n\t\tconst rows = await SelectBuilder.create<{ transaction_id: string }>()\n\t\t\t.from('stage_transaction')\n\t\t\t.select('transaction_id')\n\t\t\t.where({ stage_id: this.stageId })\n\t\t\t.orderBy('applied_at', 'desc')\n\t\t\t.limit(1)\n\t\t\t.getResult(queryable.db)\n\n\t\treturn rows.length === 0 ? null : rows[0].transaction_id\n\t}\n}\n"],"names":["DatabaseQuery","SelectBuilder"],"mappings":";;;AAEO,MAAM,wCAAwCA,SAAAA,cAA6B;AAAA,EACjF,YAA6B,SAAiB;AACvC,UAAA;AADsB,SAAA,UAAA;AAAA,EAAA;AAAA,EAI7B,MAAM,MAAM,WAAsD;AAC3D,UAAA,OAAO,MAAMC,uBAAc,SAC/B,KAAK,mBAAmB,EACxB,OAAO,gBAAgB,EACvB,MAAM,EAAE,UAAU,KAAK,QAAS,CAAA,EAChC,QAAQ,cAAc,MAAM,EAC5B,MAAM,CAAC,EACP,UAAU,UAAU,EAAE;AAExB,WAAO,KAAK,WAAW,IAAI,OAAO,KAAK,CAAC,EAAE;AAAA,EAAA;AAE5C;;"}
1
+ {"version":3,"file":"LatestTransactionIdByStageQuery.cjs","sources":["../../../../../../../packages/engine-system-api/src/model/queries/events/LatestTransactionIdByStageQuery.ts"],"sourcesContent":["import { DatabaseQuery, DatabaseQueryable, SelectBuilder } from '@contember/database'\n\nexport class LatestTransactionIdByStageQuery extends DatabaseQuery<string | null> {\n\tconstructor(private readonly stageId: string) {\n\t\tsuper()\n\t}\n\n\tasync fetch(queryable: DatabaseQueryable): Promise<string | null> {\n\t\tconst rows = await SelectBuilder.create<{ transaction_id: string }>()\n\t\t\t.from('stage_transaction')\n\t\t\t.select('transaction_id')\n\t\t\t.where({ stage_id: this.stageId })\n\t\t\t.orderBy('applied_at', 'desc')\n\t\t\t.limit(1)\n\t\t\t.getResult(queryable.db)\n\n\t\treturn rows.length === 0 ? null : rows[0].transaction_id\n\t}\n}\n"],"names":["DatabaseQuery","SelectBuilder"],"mappings":";;;AAEO,MAAM,wCAAwCA,SAAAA,cAA6B;AAAA,EACjF,YAA6B,SAAiB;AAC7C,UAAA;AAD4B,SAAA,UAAA;AAAA,EAE7B;AAAA,EAEA,MAAM,MAAM,WAAsD;AACjE,UAAM,OAAO,MAAMC,uBAAc,SAC/B,KAAK,mBAAmB,EACxB,OAAO,gBAAgB,EACvB,MAAM,EAAE,UAAU,KAAK,QAAA,CAAS,EAChC,QAAQ,cAAc,MAAM,EAC5B,MAAM,CAAC,EACP,UAAU,UAAU,EAAE;AAExB,WAAO,KAAK,WAAW,IAAI,OAAO,KAAK,CAAC,EAAE;AAAA,EAC3C;AACD;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"LatestTransactionIdByStageQuery.js","sources":["../../../../../../../packages/engine-system-api/src/model/queries/events/LatestTransactionIdByStageQuery.ts"],"sourcesContent":["import { DatabaseQuery, DatabaseQueryable, SelectBuilder } from '@contember/database'\n\nexport class LatestTransactionIdByStageQuery extends DatabaseQuery<string | null> {\n\tconstructor(private readonly stageId: string) {\n\t\tsuper()\n\t}\n\n\tasync fetch(queryable: DatabaseQueryable): Promise<string | null> {\n\t\tconst rows = await SelectBuilder.create<{ transaction_id: string }>()\n\t\t\t.from('stage_transaction')\n\t\t\t.select('transaction_id')\n\t\t\t.where({ stage_id: this.stageId })\n\t\t\t.orderBy('applied_at', 'desc')\n\t\t\t.limit(1)\n\t\t\t.getResult(queryable.db)\n\n\t\treturn rows.length === 0 ? null : rows[0].transaction_id\n\t}\n}\n"],"names":[],"mappings":";AAEO,MAAM,wCAAwC,cAA6B;AAAA,EACjF,YAA6B,SAAiB;AACvC,UAAA;AADsB,SAAA,UAAA;AAAA,EAAA;AAAA,EAI7B,MAAM,MAAM,WAAsD;AAC3D,UAAA,OAAO,MAAM,cAAc,SAC/B,KAAK,mBAAmB,EACxB,OAAO,gBAAgB,EACvB,MAAM,EAAE,UAAU,KAAK,QAAS,CAAA,EAChC,QAAQ,cAAc,MAAM,EAC5B,MAAM,CAAC,EACP,UAAU,UAAU,EAAE;AAExB,WAAO,KAAK,WAAW,IAAI,OAAO,KAAK,CAAC,EAAE;AAAA,EAAA;AAE5C;"}
1
+ {"version":3,"file":"LatestTransactionIdByStageQuery.js","sources":["../../../../../../../packages/engine-system-api/src/model/queries/events/LatestTransactionIdByStageQuery.ts"],"sourcesContent":["import { DatabaseQuery, DatabaseQueryable, SelectBuilder } from '@contember/database'\n\nexport class LatestTransactionIdByStageQuery extends DatabaseQuery<string | null> {\n\tconstructor(private readonly stageId: string) {\n\t\tsuper()\n\t}\n\n\tasync fetch(queryable: DatabaseQueryable): Promise<string | null> {\n\t\tconst rows = await SelectBuilder.create<{ transaction_id: string }>()\n\t\t\t.from('stage_transaction')\n\t\t\t.select('transaction_id')\n\t\t\t.where({ stage_id: this.stageId })\n\t\t\t.orderBy('applied_at', 'desc')\n\t\t\t.limit(1)\n\t\t\t.getResult(queryable.db)\n\n\t\treturn rows.length === 0 ? null : rows[0].transaction_id\n\t}\n}\n"],"names":[],"mappings":";AAEO,MAAM,wCAAwC,cAA6B;AAAA,EACjF,YAA6B,SAAiB;AAC7C,UAAA;AAD4B,SAAA,UAAA;AAAA,EAE7B;AAAA,EAEA,MAAM,MAAM,WAAsD;AACjE,UAAM,OAAO,MAAM,cAAc,SAC/B,KAAK,mBAAmB,EACxB,OAAO,gBAAgB,EACvB,MAAM,EAAE,UAAU,KAAK,QAAA,CAAS,EAChC,QAAQ,cAAc,MAAM,EAC5B,MAAM,CAAC,EACP,UAAU,UAAU,EAAE;AAExB,WAAO,KAAK,WAAW,IAAI,OAAO,KAAK,CAAC,EAAE;AAAA,EAC3C;AACD;"}
@@ -7,11 +7,7 @@ class OldValuesQuery extends Database.DatabaseQuery {
7
7
  this.ids = ids;
8
8
  }
9
9
  async fetch(queryable) {
10
- const qb = Database.SelectBuilder.create().select((expr) => expr.raw("JSONB_OBJECT_AGG(values.key, values.value ORDER BY previous.created_at ASC)"), "values").select(["event_data", "id"]).from("event_data").join(
11
- "event_data",
12
- "previous",
13
- (on) => on.columnsEq(["event_data", "row_ids"], ["previous", "row_ids"]).compareColumns(["event_data", "created_at"], Database.Operator.gt, ["previous", "created_at"])
14
- ).join(new Database.Literal("JSONB_EACH(previous.values)"), "values").where((where) => where.in(["event_data", "id"], this.ids)).groupBy(["event_data", "id"]);
10
+ const qb = Database.SelectBuilder.create().select((expr) => expr.raw("JSONB_OBJECT_AGG(values.key, values.value ORDER BY previous.created_at ASC)"), "values").select(["event_data", "id"]).from("event_data").join("event_data", "previous", (on) => on.columnsEq(["event_data", "row_ids"], ["previous", "row_ids"]).compareColumns(["event_data", "created_at"], Database.Operator.gt, ["previous", "created_at"])).join(new Database.Literal("JSONB_EACH(previous.values)"), "values").where((where) => where.in(["event_data", "id"], this.ids)).groupBy(["event_data", "id"]);
15
11
  return Object.fromEntries((await qb.getResult(queryable.db)).map((it) => [it.id, it.values]));
16
12
  }
17
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"OldValuesQuery.cjs","sources":["../../../../../../../packages/engine-system-api/src/model/queries/events/OldValuesQuery.ts"],"sourcesContent":["import { DatabaseQuery, DatabaseQueryable, Literal, Operator, SelectBuilder } from '@contember/database'\n\nexport class OldValuesQuery extends DatabaseQuery<Record<string, any>> {\n\tconstructor(private readonly ids: string[]) {\n\t\tsuper()\n\t}\n\n\tasync fetch(queryable: DatabaseQueryable): Promise<Record<string, any>> {\n\t\tconst qb = SelectBuilder.create()\n\t\t\t.select(expr => expr.raw('JSONB_OBJECT_AGG(values.key, values.value ORDER BY previous.created_at ASC)'), 'values')\n\t\t\t.select(['event_data', 'id'])\n\t\t\t.from('event_data')\n\t\t\t.join('event_data', 'previous', on => on\n\t\t\t\t.columnsEq(['event_data', 'row_ids'], ['previous', 'row_ids'])\n\t\t\t\t.compareColumns(['event_data', 'created_at'], Operator.gt, ['previous', 'created_at']),\n\t\t\t)\n\t\t\t.join(new Literal('JSONB_EACH(previous.values)'), 'values')\n\t\t\t.where(where => where.in(['event_data', 'id'], this.ids))\n\t\t\t.groupBy(['event_data', 'id'])\n\n\t\treturn Object.fromEntries((await qb.getResult(queryable.db)).map(it => [it.id, it.values]))\n\t}\n}\n"],"names":["DatabaseQuery","SelectBuilder","Operator","Literal"],"mappings":";;;AAEO,MAAM,uBAAuBA,SAAAA,cAAmC;AAAA,EACtE,YAA6B,KAAe;AACrC,UAAA;AADsB,SAAA,MAAA;AAAA,EAAA;AAAA,EAI7B,MAAM,MAAM,WAA4D;AACjE,UAAA,KAAKC,uBAAc,OAAO,EAC9B,OAAO,CAAQ,SAAA,KAAK,IAAI,6EAA6E,GAAG,QAAQ,EAChH,OAAO,CAAC,cAAc,IAAI,CAAC,EAC3B,KAAK,YAAY,EACjB;AAAA,MAAK;AAAA,MAAc;AAAA,MAAY,CAAA,OAAM,GACpC,UAAU,CAAC,cAAc,SAAS,GAAG,CAAC,YAAY,SAAS,CAAC,EAC5D,eAAe,CAAC,cAAc,YAAY,GAAGC,kBAAS,IAAI,CAAC,YAAY,YAAY,CAAC;AAAA,IAAA,EAErF,KAAK,IAAIC,SAAQ,QAAA,6BAA6B,GAAG,QAAQ,EACzD,MAAM,CAAA,UAAS,MAAM,GAAG,CAAC,cAAc,IAAI,GAAG,KAAK,GAAG,CAAC,EACvD,QAAQ,CAAC,cAAc,IAAI,CAAC;AAE9B,WAAO,OAAO,aAAa,MAAM,GAAG,UAAU,UAAU,EAAE,GAAG,IAAI,CAAA,OAAM,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC,CAAC;AAAA,EAAA;AAE5F;;"}
1
+ {"version":3,"file":"OldValuesQuery.cjs","sources":["../../../../../../../packages/engine-system-api/src/model/queries/events/OldValuesQuery.ts"],"sourcesContent":["import { DatabaseQuery, DatabaseQueryable, Literal, Operator, SelectBuilder } from '@contember/database'\n\nexport class OldValuesQuery extends DatabaseQuery<Record<string, any>> {\n\tconstructor(private readonly ids: string[]) {\n\t\tsuper()\n\t}\n\n\tasync fetch(queryable: DatabaseQueryable): Promise<Record<string, any>> {\n\t\tconst qb = SelectBuilder.create()\n\t\t\t.select(expr => expr.raw('JSONB_OBJECT_AGG(values.key, values.value ORDER BY previous.created_at ASC)'), 'values')\n\t\t\t.select(['event_data', 'id'])\n\t\t\t.from('event_data')\n\t\t\t.join('event_data', 'previous', on =>\n\t\t\t\ton\n\t\t\t\t\t.columnsEq(['event_data', 'row_ids'], ['previous', 'row_ids'])\n\t\t\t\t\t.compareColumns(['event_data', 'created_at'], Operator.gt, ['previous', 'created_at']))\n\t\t\t.join(new Literal('JSONB_EACH(previous.values)'), 'values')\n\t\t\t.where(where => where.in(['event_data', 'id'], this.ids))\n\t\t\t.groupBy(['event_data', 'id'])\n\n\t\treturn Object.fromEntries((await qb.getResult(queryable.db)).map(it => [it.id, it.values]))\n\t}\n}\n"],"names":["DatabaseQuery","SelectBuilder","Operator","Literal"],"mappings":";;;AAEO,MAAM,uBAAuBA,SAAAA,cAAmC;AAAA,EACtE,YAA6B,KAAe;AAC3C,UAAA;AAD4B,SAAA,MAAA;AAAA,EAE7B;AAAA,EAEA,MAAM,MAAM,WAA4D;AACvE,UAAM,KAAKC,SAAAA,cAAc,OAAA,EACvB,OAAO,CAAA,SAAQ,KAAK,IAAI,6EAA6E,GAAG,QAAQ,EAChH,OAAO,CAAC,cAAc,IAAI,CAAC,EAC3B,KAAK,YAAY,EACjB,KAAK,cAAc,YAAY,CAAA,OAC/B,GACE,UAAU,CAAC,cAAc,SAAS,GAAG,CAAC,YAAY,SAAS,CAAC,EAC5D,eAAe,CAAC,cAAc,YAAY,GAAGC,SAAAA,SAAS,IAAI,CAAC,YAAY,YAAY,CAAC,CAAC,EACvF,KAAK,IAAIC,SAAAA,QAAQ,6BAA6B,GAAG,QAAQ,EACzD,MAAM,CAAA,UAAS,MAAM,GAAG,CAAC,cAAc,IAAI,GAAG,KAAK,GAAG,CAAC,EACvD,QAAQ,CAAC,cAAc,IAAI,CAAC;AAE9B,WAAO,OAAO,aAAa,MAAM,GAAG,UAAU,UAAU,EAAE,GAAG,IAAI,CAAA,OAAM,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC,CAAC;AAAA,EAC3F;AACD;;"}
@@ -5,11 +5,7 @@ class OldValuesQuery extends DatabaseQuery {
5
5
  this.ids = ids;
6
6
  }
7
7
  async fetch(queryable) {
8
- const qb = SelectBuilder.create().select((expr) => expr.raw("JSONB_OBJECT_AGG(values.key, values.value ORDER BY previous.created_at ASC)"), "values").select(["event_data", "id"]).from("event_data").join(
9
- "event_data",
10
- "previous",
11
- (on) => on.columnsEq(["event_data", "row_ids"], ["previous", "row_ids"]).compareColumns(["event_data", "created_at"], Operator.gt, ["previous", "created_at"])
12
- ).join(new Literal("JSONB_EACH(previous.values)"), "values").where((where) => where.in(["event_data", "id"], this.ids)).groupBy(["event_data", "id"]);
8
+ const qb = SelectBuilder.create().select((expr) => expr.raw("JSONB_OBJECT_AGG(values.key, values.value ORDER BY previous.created_at ASC)"), "values").select(["event_data", "id"]).from("event_data").join("event_data", "previous", (on) => on.columnsEq(["event_data", "row_ids"], ["previous", "row_ids"]).compareColumns(["event_data", "created_at"], Operator.gt, ["previous", "created_at"])).join(new Literal("JSONB_EACH(previous.values)"), "values").where((where) => where.in(["event_data", "id"], this.ids)).groupBy(["event_data", "id"]);
13
9
  return Object.fromEntries((await qb.getResult(queryable.db)).map((it) => [it.id, it.values]));
14
10
  }
15
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"OldValuesQuery.js","sources":["../../../../../../../packages/engine-system-api/src/model/queries/events/OldValuesQuery.ts"],"sourcesContent":["import { DatabaseQuery, DatabaseQueryable, Literal, Operator, SelectBuilder } from '@contember/database'\n\nexport class OldValuesQuery extends DatabaseQuery<Record<string, any>> {\n\tconstructor(private readonly ids: string[]) {\n\t\tsuper()\n\t}\n\n\tasync fetch(queryable: DatabaseQueryable): Promise<Record<string, any>> {\n\t\tconst qb = SelectBuilder.create()\n\t\t\t.select(expr => expr.raw('JSONB_OBJECT_AGG(values.key, values.value ORDER BY previous.created_at ASC)'), 'values')\n\t\t\t.select(['event_data', 'id'])\n\t\t\t.from('event_data')\n\t\t\t.join('event_data', 'previous', on => on\n\t\t\t\t.columnsEq(['event_data', 'row_ids'], ['previous', 'row_ids'])\n\t\t\t\t.compareColumns(['event_data', 'created_at'], Operator.gt, ['previous', 'created_at']),\n\t\t\t)\n\t\t\t.join(new Literal('JSONB_EACH(previous.values)'), 'values')\n\t\t\t.where(where => where.in(['event_data', 'id'], this.ids))\n\t\t\t.groupBy(['event_data', 'id'])\n\n\t\treturn Object.fromEntries((await qb.getResult(queryable.db)).map(it => [it.id, it.values]))\n\t}\n}\n"],"names":[],"mappings":";AAEO,MAAM,uBAAuB,cAAmC;AAAA,EACtE,YAA6B,KAAe;AACrC,UAAA;AADsB,SAAA,MAAA;AAAA,EAAA;AAAA,EAI7B,MAAM,MAAM,WAA4D;AACjE,UAAA,KAAK,cAAc,OAAO,EAC9B,OAAO,CAAQ,SAAA,KAAK,IAAI,6EAA6E,GAAG,QAAQ,EAChH,OAAO,CAAC,cAAc,IAAI,CAAC,EAC3B,KAAK,YAAY,EACjB;AAAA,MAAK;AAAA,MAAc;AAAA,MAAY,CAAA,OAAM,GACpC,UAAU,CAAC,cAAc,SAAS,GAAG,CAAC,YAAY,SAAS,CAAC,EAC5D,eAAe,CAAC,cAAc,YAAY,GAAG,SAAS,IAAI,CAAC,YAAY,YAAY,CAAC;AAAA,IAAA,EAErF,KAAK,IAAI,QAAQ,6BAA6B,GAAG,QAAQ,EACzD,MAAM,CAAA,UAAS,MAAM,GAAG,CAAC,cAAc,IAAI,GAAG,KAAK,GAAG,CAAC,EACvD,QAAQ,CAAC,cAAc,IAAI,CAAC;AAE9B,WAAO,OAAO,aAAa,MAAM,GAAG,UAAU,UAAU,EAAE,GAAG,IAAI,CAAA,OAAM,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC,CAAC;AAAA,EAAA;AAE5F;"}
1
+ {"version":3,"file":"OldValuesQuery.js","sources":["../../../../../../../packages/engine-system-api/src/model/queries/events/OldValuesQuery.ts"],"sourcesContent":["import { DatabaseQuery, DatabaseQueryable, Literal, Operator, SelectBuilder } from '@contember/database'\n\nexport class OldValuesQuery extends DatabaseQuery<Record<string, any>> {\n\tconstructor(private readonly ids: string[]) {\n\t\tsuper()\n\t}\n\n\tasync fetch(queryable: DatabaseQueryable): Promise<Record<string, any>> {\n\t\tconst qb = SelectBuilder.create()\n\t\t\t.select(expr => expr.raw('JSONB_OBJECT_AGG(values.key, values.value ORDER BY previous.created_at ASC)'), 'values')\n\t\t\t.select(['event_data', 'id'])\n\t\t\t.from('event_data')\n\t\t\t.join('event_data', 'previous', on =>\n\t\t\t\ton\n\t\t\t\t\t.columnsEq(['event_data', 'row_ids'], ['previous', 'row_ids'])\n\t\t\t\t\t.compareColumns(['event_data', 'created_at'], Operator.gt, ['previous', 'created_at']))\n\t\t\t.join(new Literal('JSONB_EACH(previous.values)'), 'values')\n\t\t\t.where(where => where.in(['event_data', 'id'], this.ids))\n\t\t\t.groupBy(['event_data', 'id'])\n\n\t\treturn Object.fromEntries((await qb.getResult(queryable.db)).map(it => [it.id, it.values]))\n\t}\n}\n"],"names":[],"mappings":";AAEO,MAAM,uBAAuB,cAAmC;AAAA,EACtE,YAA6B,KAAe;AAC3C,UAAA;AAD4B,SAAA,MAAA;AAAA,EAE7B;AAAA,EAEA,MAAM,MAAM,WAA4D;AACvE,UAAM,KAAK,cAAc,OAAA,EACvB,OAAO,CAAA,SAAQ,KAAK,IAAI,6EAA6E,GAAG,QAAQ,EAChH,OAAO,CAAC,cAAc,IAAI,CAAC,EAC3B,KAAK,YAAY,EACjB,KAAK,cAAc,YAAY,CAAA,OAC/B,GACE,UAAU,CAAC,cAAc,SAAS,GAAG,CAAC,YAAY,SAAS,CAAC,EAC5D,eAAe,CAAC,cAAc,YAAY,GAAG,SAAS,IAAI,CAAC,YAAY,YAAY,CAAC,CAAC,EACvF,KAAK,IAAI,QAAQ,6BAA6B,GAAG,QAAQ,EACzD,MAAM,CAAA,UAAS,MAAM,GAAG,CAAC,cAAc,IAAI,GAAG,KAAK,GAAG,CAAC,EACvD,QAAQ,CAAC,cAAc,IAAI,CAAC;AAE9B,WAAO,OAAO,aAAa,MAAM,GAAG,UAAU,UAAU,EAAE,GAAG,IAAI,CAAA,OAAM,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC,CAAC;AAAA,EAC3F;AACD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ExecutedMigrationByVersionQuery.cjs","sources":["../../../../../../../packages/engine-system-api/src/model/queries/migrations/ExecutedMigrationByVersionQuery.ts"],"sourcesContent":["import { DatabaseQuery, DatabaseQueryable } from '@contember/database'\nimport { ExecutedMigration } from '../../dtos'\nimport { createExecutedMigrationDto, createExecutedMigrationQueryBuilder } from './ExecutedMigrationsQueryHelper'\n\nexport class ExecutedMigrationByVersionQuery extends DatabaseQuery<ExecutedMigration | null> {\n\tconstructor(private version: string) {\n\t\tsuper()\n\t}\n\n\tasync fetch(queryable: DatabaseQueryable): Promise<ExecutedMigration | null> {\n\t\tconst builder = createExecutedMigrationQueryBuilder().where({ version: this.version })\n\t\tconst rows = await builder.getResult(queryable.db)\n\t\tconst migration = await this.fetchOneOrNull(rows)\n\t\treturn migration ? createExecutedMigrationDto(migration) : null\n\t}\n}\n"],"names":["DatabaseQuery","createExecutedMigrationQueryBuilder","createExecutedMigrationDto"],"mappings":";;;;AAIO,MAAM,wCAAwCA,SAAAA,cAAwC;AAAA,EAC5F,YAAoB,SAAiB;AAC9B,UAAA;AADa,SAAA,UAAA;AAAA,EAAA;AAAA,EAIpB,MAAM,MAAM,WAAiE;AACtE,UAAA,UAAUC,8BAAAA,sCAAsC,MAAM,EAAE,SAAS,KAAK,SAAS;AACrF,UAAM,OAAO,MAAM,QAAQ,UAAU,UAAU,EAAE;AACjD,UAAM,YAAY,MAAM,KAAK,eAAe,IAAI;AACzC,WAAA,YAAYC,8BAAAA,2BAA2B,SAAS,IAAI;AAAA,EAAA;AAE7D;;"}
1
+ {"version":3,"file":"ExecutedMigrationByVersionQuery.cjs","sources":["../../../../../../../packages/engine-system-api/src/model/queries/migrations/ExecutedMigrationByVersionQuery.ts"],"sourcesContent":["import { DatabaseQuery, DatabaseQueryable } from '@contember/database'\nimport { ExecutedMigration } from '../../dtos'\nimport { createExecutedMigrationDto, createExecutedMigrationQueryBuilder } from './ExecutedMigrationsQueryHelper'\n\nexport class ExecutedMigrationByVersionQuery extends DatabaseQuery<ExecutedMigration | null> {\n\tconstructor(private version: string) {\n\t\tsuper()\n\t}\n\n\tasync fetch(queryable: DatabaseQueryable): Promise<ExecutedMigration | null> {\n\t\tconst builder = createExecutedMigrationQueryBuilder().where({ version: this.version })\n\t\tconst rows = await builder.getResult(queryable.db)\n\t\tconst migration = await this.fetchOneOrNull(rows)\n\t\treturn migration ? createExecutedMigrationDto(migration) : null\n\t}\n}\n"],"names":["DatabaseQuery","createExecutedMigrationQueryBuilder","createExecutedMigrationDto"],"mappings":";;;;AAIO,MAAM,wCAAwCA,SAAAA,cAAwC;AAAA,EAC5F,YAAoB,SAAiB;AACpC,UAAA;AADmB,SAAA,UAAA;AAAA,EAEpB;AAAA,EAEA,MAAM,MAAM,WAAiE;AAC5E,UAAM,UAAUC,8BAAAA,sCAAsC,MAAM,EAAE,SAAS,KAAK,SAAS;AACrF,UAAM,OAAO,MAAM,QAAQ,UAAU,UAAU,EAAE;AACjD,UAAM,YAAY,MAAM,KAAK,eAAe,IAAI;AAChD,WAAO,YAAYC,8BAAAA,2BAA2B,SAAS,IAAI;AAAA,EAC5D;AACD;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ExecutedMigrationByVersionQuery.js","sources":["../../../../../../../packages/engine-system-api/src/model/queries/migrations/ExecutedMigrationByVersionQuery.ts"],"sourcesContent":["import { DatabaseQuery, DatabaseQueryable } from '@contember/database'\nimport { ExecutedMigration } from '../../dtos'\nimport { createExecutedMigrationDto, createExecutedMigrationQueryBuilder } from './ExecutedMigrationsQueryHelper'\n\nexport class ExecutedMigrationByVersionQuery extends DatabaseQuery<ExecutedMigration | null> {\n\tconstructor(private version: string) {\n\t\tsuper()\n\t}\n\n\tasync fetch(queryable: DatabaseQueryable): Promise<ExecutedMigration | null> {\n\t\tconst builder = createExecutedMigrationQueryBuilder().where({ version: this.version })\n\t\tconst rows = await builder.getResult(queryable.db)\n\t\tconst migration = await this.fetchOneOrNull(rows)\n\t\treturn migration ? createExecutedMigrationDto(migration) : null\n\t}\n}\n"],"names":[],"mappings":";;AAIO,MAAM,wCAAwC,cAAwC;AAAA,EAC5F,YAAoB,SAAiB;AAC9B,UAAA;AADa,SAAA,UAAA;AAAA,EAAA;AAAA,EAIpB,MAAM,MAAM,WAAiE;AACtE,UAAA,UAAU,sCAAsC,MAAM,EAAE,SAAS,KAAK,SAAS;AACrF,UAAM,OAAO,MAAM,QAAQ,UAAU,UAAU,EAAE;AACjD,UAAM,YAAY,MAAM,KAAK,eAAe,IAAI;AACzC,WAAA,YAAY,2BAA2B,SAAS,IAAI;AAAA,EAAA;AAE7D;"}
1
+ {"version":3,"file":"ExecutedMigrationByVersionQuery.js","sources":["../../../../../../../packages/engine-system-api/src/model/queries/migrations/ExecutedMigrationByVersionQuery.ts"],"sourcesContent":["import { DatabaseQuery, DatabaseQueryable } from '@contember/database'\nimport { ExecutedMigration } from '../../dtos'\nimport { createExecutedMigrationDto, createExecutedMigrationQueryBuilder } from './ExecutedMigrationsQueryHelper'\n\nexport class ExecutedMigrationByVersionQuery extends DatabaseQuery<ExecutedMigration | null> {\n\tconstructor(private version: string) {\n\t\tsuper()\n\t}\n\n\tasync fetch(queryable: DatabaseQueryable): Promise<ExecutedMigration | null> {\n\t\tconst builder = createExecutedMigrationQueryBuilder().where({ version: this.version })\n\t\tconst rows = await builder.getResult(queryable.db)\n\t\tconst migration = await this.fetchOneOrNull(rows)\n\t\treturn migration ? createExecutedMigrationDto(migration) : null\n\t}\n}\n"],"names":[],"mappings":";;AAIO,MAAM,wCAAwC,cAAwC;AAAA,EAC5F,YAAoB,SAAiB;AACpC,UAAA;AADmB,SAAA,UAAA;AAAA,EAEpB;AAAA,EAEA,MAAM,MAAM,WAAiE;AAC5E,UAAM,UAAU,sCAAsC,MAAM,EAAE,SAAS,KAAK,SAAS;AACrF,UAAM,OAAO,MAAM,QAAQ,UAAU,UAAU,EAAE;AACjD,UAAM,YAAY,MAAM,KAAK,eAAe,IAAI;AAChD,WAAO,YAAY,2BAA2B,SAAS,IAAI;AAAA,EAC5D;AACD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ExecutedMigrationsQuery.cjs","sources":["../../../../../../../packages/engine-system-api/src/model/queries/migrations/ExecutedMigrationsQuery.ts"],"sourcesContent":["import { DatabaseQuery, DatabaseQueryable, Operator } from '@contember/database'\nimport { ExecutedMigration } from '../../dtos'\nimport { createExecutedMigrationDto, createExecutedMigrationQueryBuilder } from './ExecutedMigrationsQueryHelper'\n\nexport class ExecutedMigrationsQuery extends DatabaseQuery<ExecutedMigration[]> {\n\tconstructor(private afterVersion?: string) {\n\t\tsuper()\n\t}\n\n\tasync fetch(queryable: DatabaseQueryable): Promise<ExecutedMigration[]> {\n\t\tconst builder = createExecutedMigrationQueryBuilder()\n\t\tconst afterVersion = this.afterVersion\n\t\tconst builderWithWhere = afterVersion\n\t\t\t? builder.where(expr => expr.compare('version', Operator.gt, afterVersion))\n\t\t\t: builder\n\n\t\tconst result = await builderWithWhere.getResult(queryable.db)\n\t\treturn result.map(createExecutedMigrationDto)\n\t}\n}\n"],"names":["DatabaseQuery","createExecutedMigrationQueryBuilder","Operator","createExecutedMigrationDto"],"mappings":";;;;AAIO,MAAM,gCAAgCA,SAAAA,cAAmC;AAAA,EAC/E,YAAoB,cAAuB;AACpC,UAAA;AADa,SAAA,eAAA;AAAA,EAAA;AAAA,EAIpB,MAAM,MAAM,WAA4D;AACvE,UAAM,UAAUC,8BAAAA,oCAAoC;AACpD,UAAM,eAAe,KAAK;AAC1B,UAAM,mBAAmB,eACtB,QAAQ,MAAM,CAAQ,SAAA,KAAK,QAAQ,WAAWC,SAAS,SAAA,IAAI,YAAY,CAAC,IACxE;AAEH,UAAM,SAAS,MAAM,iBAAiB,UAAU,UAAU,EAAE;AACrD,WAAA,OAAO,IAAIC,wDAA0B;AAAA,EAAA;AAE9C;;"}
1
+ {"version":3,"file":"ExecutedMigrationsQuery.cjs","sources":["../../../../../../../packages/engine-system-api/src/model/queries/migrations/ExecutedMigrationsQuery.ts"],"sourcesContent":["import { DatabaseQuery, DatabaseQueryable, Operator } from '@contember/database'\nimport { ExecutedMigration } from '../../dtos'\nimport { createExecutedMigrationDto, createExecutedMigrationQueryBuilder } from './ExecutedMigrationsQueryHelper'\n\nexport class ExecutedMigrationsQuery extends DatabaseQuery<ExecutedMigration[]> {\n\tconstructor(private afterVersion?: string) {\n\t\tsuper()\n\t}\n\n\tasync fetch(queryable: DatabaseQueryable): Promise<ExecutedMigration[]> {\n\t\tconst builder = createExecutedMigrationQueryBuilder()\n\t\tconst afterVersion = this.afterVersion\n\t\tconst builderWithWhere = afterVersion\n\t\t\t? builder.where(expr => expr.compare('version', Operator.gt, afterVersion))\n\t\t\t: builder\n\n\t\tconst result = await builderWithWhere.getResult(queryable.db)\n\t\treturn result.map(createExecutedMigrationDto)\n\t}\n}\n"],"names":["DatabaseQuery","createExecutedMigrationQueryBuilder","Operator","createExecutedMigrationDto"],"mappings":";;;;AAIO,MAAM,gCAAgCA,SAAAA,cAAmC;AAAA,EAC/E,YAAoB,cAAuB;AAC1C,UAAA;AADmB,SAAA,eAAA;AAAA,EAEpB;AAAA,EAEA,MAAM,MAAM,WAA4D;AACvE,UAAM,UAAUC,8BAAAA,oCAAA;AAChB,UAAM,eAAe,KAAK;AAC1B,UAAM,mBAAmB,eACtB,QAAQ,MAAM,CAAA,SAAQ,KAAK,QAAQ,WAAWC,SAAAA,SAAS,IAAI,YAAY,CAAC,IACxE;AAEH,UAAM,SAAS,MAAM,iBAAiB,UAAU,UAAU,EAAE;AAC5D,WAAO,OAAO,IAAIC,wDAA0B;AAAA,EAC7C;AACD;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ExecutedMigrationsQuery.js","sources":["../../../../../../../packages/engine-system-api/src/model/queries/migrations/ExecutedMigrationsQuery.ts"],"sourcesContent":["import { DatabaseQuery, DatabaseQueryable, Operator } from '@contember/database'\nimport { ExecutedMigration } from '../../dtos'\nimport { createExecutedMigrationDto, createExecutedMigrationQueryBuilder } from './ExecutedMigrationsQueryHelper'\n\nexport class ExecutedMigrationsQuery extends DatabaseQuery<ExecutedMigration[]> {\n\tconstructor(private afterVersion?: string) {\n\t\tsuper()\n\t}\n\n\tasync fetch(queryable: DatabaseQueryable): Promise<ExecutedMigration[]> {\n\t\tconst builder = createExecutedMigrationQueryBuilder()\n\t\tconst afterVersion = this.afterVersion\n\t\tconst builderWithWhere = afterVersion\n\t\t\t? builder.where(expr => expr.compare('version', Operator.gt, afterVersion))\n\t\t\t: builder\n\n\t\tconst result = await builderWithWhere.getResult(queryable.db)\n\t\treturn result.map(createExecutedMigrationDto)\n\t}\n}\n"],"names":[],"mappings":";;AAIO,MAAM,gCAAgC,cAAmC;AAAA,EAC/E,YAAoB,cAAuB;AACpC,UAAA;AADa,SAAA,eAAA;AAAA,EAAA;AAAA,EAIpB,MAAM,MAAM,WAA4D;AACvE,UAAM,UAAU,oCAAoC;AACpD,UAAM,eAAe,KAAK;AAC1B,UAAM,mBAAmB,eACtB,QAAQ,MAAM,CAAQ,SAAA,KAAK,QAAQ,WAAW,SAAS,IAAI,YAAY,CAAC,IACxE;AAEH,UAAM,SAAS,MAAM,iBAAiB,UAAU,UAAU,EAAE;AACrD,WAAA,OAAO,IAAI,0BAA0B;AAAA,EAAA;AAE9C;"}
1
+ {"version":3,"file":"ExecutedMigrationsQuery.js","sources":["../../../../../../../packages/engine-system-api/src/model/queries/migrations/ExecutedMigrationsQuery.ts"],"sourcesContent":["import { DatabaseQuery, DatabaseQueryable, Operator } from '@contember/database'\nimport { ExecutedMigration } from '../../dtos'\nimport { createExecutedMigrationDto, createExecutedMigrationQueryBuilder } from './ExecutedMigrationsQueryHelper'\n\nexport class ExecutedMigrationsQuery extends DatabaseQuery<ExecutedMigration[]> {\n\tconstructor(private afterVersion?: string) {\n\t\tsuper()\n\t}\n\n\tasync fetch(queryable: DatabaseQueryable): Promise<ExecutedMigration[]> {\n\t\tconst builder = createExecutedMigrationQueryBuilder()\n\t\tconst afterVersion = this.afterVersion\n\t\tconst builderWithWhere = afterVersion\n\t\t\t? builder.where(expr => expr.compare('version', Operator.gt, afterVersion))\n\t\t\t: builder\n\n\t\tconst result = await builderWithWhere.getResult(queryable.db)\n\t\treturn result.map(createExecutedMigrationDto)\n\t}\n}\n"],"names":[],"mappings":";;AAIO,MAAM,gCAAgC,cAAmC;AAAA,EAC/E,YAAoB,cAAuB;AAC1C,UAAA;AADmB,SAAA,eAAA;AAAA,EAEpB;AAAA,EAEA,MAAM,MAAM,WAA4D;AACvE,UAAM,UAAU,oCAAA;AAChB,UAAM,eAAe,KAAK;AAC1B,UAAM,mBAAmB,eACtB,QAAQ,MAAM,CAAA,SAAQ,KAAK,QAAQ,WAAW,SAAS,IAAI,YAAY,CAAC,IACxE;AAEH,UAAM,SAAS,MAAM,iBAAiB,UAAU,UAAU,EAAE;AAC5D,WAAO,OAAO,IAAI,0BAA0B;AAAA,EAC7C;AACD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ExecutedMigrationsQueryHelper.cjs","sources":["../../../../../../../packages/engine-system-api/src/model/queries/migrations/ExecutedMigrationsQueryHelper.ts"],"sourcesContent":["import { Literal, SelectBuilder } from '@contember/database'\nimport { ExecutedMigration } from '../../dtos'\nimport { VERSION_INITIAL } from '@contember/schema-migrations'\n\ntype ExecutedMigrationRow = { id: number; name: string; migration: any; checksum: string | null; executed_at: Date; type: 'content' | 'schema' }\nexport const createExecutedMigrationQueryBuilder = () =>\n\tSelectBuilder.create<ExecutedMigrationRow>()\n\t\t.select(new Literal('*'))\n\t\t.from('schema_migration')\n\t\t.orderBy('version')\n\nexport const createExecutedMigrationDto = (row: ExecutedMigrationRow) =>\n\tnew ExecutedMigration(\n\t\trow.id,\n\t\trow.name,\n\t\trow.migration.formatVersion || VERSION_INITIAL,\n\t\trow.migration.modifications,\n\t\trow.executed_at,\n\t\trow.checksum,\n\t\trow.type ?? 'schema',\n\t)\n"],"names":["SelectBuilder","Literal","ExecutedMigration","VERSION_INITIAL"],"mappings":";;;;;AAKO,MAAM,sCAAsC,MAClDA,SAAc,cAAA,SACZ,OAAO,IAAIC,SAAAA,QAAQ,GAAG,CAAC,EACvB,KAAK,kBAAkB,EACvB,QAAQ,SAAS;AAEP,MAAA,6BAA6B,CAAC,QAC1C,IAAIC,kBAAA;AAAA,EACH,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI,UAAU,iBAAiBC,iBAAA;AAAA,EAC/B,IAAI,UAAU;AAAA,EACd,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI,QAAQ;AACb;;;"}
1
+ {"version":3,"file":"ExecutedMigrationsQueryHelper.cjs","sources":["../../../../../../../packages/engine-system-api/src/model/queries/migrations/ExecutedMigrationsQueryHelper.ts"],"sourcesContent":["import { Literal, SelectBuilder } from '@contember/database'\nimport { ExecutedMigration } from '../../dtos'\nimport { VERSION_INITIAL } from '@contember/schema-migrations'\n\ntype ExecutedMigrationRow = { id: number; name: string; migration: any; checksum: string | null; executed_at: Date; type: 'content' | 'schema' }\nexport const createExecutedMigrationQueryBuilder = () =>\n\tSelectBuilder.create<ExecutedMigrationRow>()\n\t\t.select(new Literal('*'))\n\t\t.from('schema_migration')\n\t\t.orderBy('version')\n\nexport const createExecutedMigrationDto = (row: ExecutedMigrationRow) =>\n\tnew ExecutedMigration(\n\t\trow.id,\n\t\trow.name,\n\t\trow.migration.formatVersion || VERSION_INITIAL,\n\t\trow.migration.modifications,\n\t\trow.executed_at,\n\t\trow.checksum,\n\t\trow.type ?? 'schema',\n\t)\n"],"names":["SelectBuilder","Literal","ExecutedMigration","VERSION_INITIAL"],"mappings":";;;;;AAKO,MAAM,sCAAsC,MAClDA,SAAAA,cAAc,OAAA,EACZ,OAAO,IAAIC,SAAAA,QAAQ,GAAG,CAAC,EACvB,KAAK,kBAAkB,EACvB,QAAQ,SAAS;AAEb,MAAM,6BAA6B,CAAC,QAC1C,IAAIC,kBAAAA;AAAAA,EACH,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI,UAAU,iBAAiBC,iBAAAA;AAAAA,EAC/B,IAAI,UAAU;AAAA,EACd,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI,QAAQ;AACb;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ExecutedMigrationsQueryHelper.js","sources":["../../../../../../../packages/engine-system-api/src/model/queries/migrations/ExecutedMigrationsQueryHelper.ts"],"sourcesContent":["import { Literal, SelectBuilder } from '@contember/database'\nimport { ExecutedMigration } from '../../dtos'\nimport { VERSION_INITIAL } from '@contember/schema-migrations'\n\ntype ExecutedMigrationRow = { id: number; name: string; migration: any; checksum: string | null; executed_at: Date; type: 'content' | 'schema' }\nexport const createExecutedMigrationQueryBuilder = () =>\n\tSelectBuilder.create<ExecutedMigrationRow>()\n\t\t.select(new Literal('*'))\n\t\t.from('schema_migration')\n\t\t.orderBy('version')\n\nexport const createExecutedMigrationDto = (row: ExecutedMigrationRow) =>\n\tnew ExecutedMigration(\n\t\trow.id,\n\t\trow.name,\n\t\trow.migration.formatVersion || VERSION_INITIAL,\n\t\trow.migration.modifications,\n\t\trow.executed_at,\n\t\trow.checksum,\n\t\trow.type ?? 'schema',\n\t)\n"],"names":[],"mappings":";;;AAKO,MAAM,sCAAsC,MAClD,cAAc,SACZ,OAAO,IAAI,QAAQ,GAAG,CAAC,EACvB,KAAK,kBAAkB,EACvB,QAAQ,SAAS;AAEP,MAAA,6BAA6B,CAAC,QAC1C,IAAI;AAAA,EACH,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI,UAAU,iBAAiB;AAAA,EAC/B,IAAI,UAAU;AAAA,EACd,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI,QAAQ;AACb;"}
1
+ {"version":3,"file":"ExecutedMigrationsQueryHelper.js","sources":["../../../../../../../packages/engine-system-api/src/model/queries/migrations/ExecutedMigrationsQueryHelper.ts"],"sourcesContent":["import { Literal, SelectBuilder } from '@contember/database'\nimport { ExecutedMigration } from '../../dtos'\nimport { VERSION_INITIAL } from '@contember/schema-migrations'\n\ntype ExecutedMigrationRow = { id: number; name: string; migration: any; checksum: string | null; executed_at: Date; type: 'content' | 'schema' }\nexport const createExecutedMigrationQueryBuilder = () =>\n\tSelectBuilder.create<ExecutedMigrationRow>()\n\t\t.select(new Literal('*'))\n\t\t.from('schema_migration')\n\t\t.orderBy('version')\n\nexport const createExecutedMigrationDto = (row: ExecutedMigrationRow) =>\n\tnew ExecutedMigration(\n\t\trow.id,\n\t\trow.name,\n\t\trow.migration.formatVersion || VERSION_INITIAL,\n\t\trow.migration.modifications,\n\t\trow.executed_at,\n\t\trow.checksum,\n\t\trow.type ?? 'schema',\n\t)\n"],"names":[],"mappings":";;;AAKO,MAAM,sCAAsC,MAClD,cAAc,OAAA,EACZ,OAAO,IAAI,QAAQ,GAAG,CAAC,EACvB,KAAK,kBAAkB,EACvB,QAAQ,SAAS;AAEb,MAAM,6BAA6B,CAAC,QAC1C,IAAI;AAAA,EACH,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI,UAAU,iBAAiB;AAAA,EAC/B,IAAI,UAAU;AAAA,EACd,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI,QAAQ;AACb;"}
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaQuery.cjs","sources":["../../../../../../../packages/engine-system-api/src/model/queries/schema/SchemaQuery.ts"],"sourcesContent":["import { DatabaseQuery, DatabaseQueryable, Literal, SelectBuilder } from '@contember/database'\nimport { Schema } from '@contember/schema'\nimport { SchemaWithMeta } from '../../migrations'\n\nexport class SchemaQuery extends DatabaseQuery<SchemaWithMeta | null> {\n\n\tconstructor(\n\t\tprivate readonly currentHash?: string,\n\t) {\n\t\tsuper()\n\t}\n\n\n\tasync fetch(queryable: DatabaseQueryable): Promise<SchemaWithMeta | null> {\n\t\tconst query = SelectBuilder.create<{\n\t\t\tschema: Schema\n\t\t\tchecksum: string\n\t\t\tversion: string\n\t\t\tupdated_at: Date\n\t\t\tmigration_id: number\n\t\t}>()\n\t\t\t.from('schema')\n\t\t\t.select(new Literal('*'))\n\t\t\t.where({\n\t\t\t\tid: 'single',\n\t\t\t})\n\t\t\t.match(it => {\n\t\t\t\tif (!this.currentHash) {\n\t\t\t\t\treturn it\n\t\t\t\t}\n\t\t\t\treturn it.where(it => it.raw('checksum != ?', this.currentHash))\n\t\t\t})\n\n\t\tconst row = this.fetchOneOrNull(await query.getResult(queryable.db))\n\t\tif (!row) {\n\t\t\treturn null\n\t\t}\n\t\treturn {\n\t\t\tschema: row.schema,\n\t\t\tmeta: {\n\t\t\t\tchecksum: row.checksum,\n\t\t\t\tversion: row.version,\n\t\t\t\tupdatedAt: row.updated_at,\n\t\t\t\tid: row.migration_id,\n\t\t\t},\n\t\t}\n\t}\n}\n"],"names":["DatabaseQuery","SelectBuilder","Literal","it"],"mappings":";;;AAIO,MAAM,oBAAoBA,SAAAA,cAAqC;AAAA,EAErE,YACkB,aAChB;AACK,UAAA;AAFW,SAAA,cAAA;AAAA,EAAA;AAAA,EAMlB,MAAM,MAAM,WAA8D;AACzE,UAAM,QAAQC,SAAAA,cAAc,OAMzB,EACD,KAAK,QAAQ,EACb,OAAO,IAAIC,SAAA,QAAQ,GAAG,CAAC,EACvB,MAAM;AAAA,MACN,IAAI;AAAA,IAAA,CACJ,EACA,MAAM,CAAM,OAAA;AACR,UAAA,CAAC,KAAK,aAAa;AACf,eAAA;AAAA,MAAA;AAED,aAAA,GAAG,MAAM,CAAAC,QAAMA,IAAG,IAAI,iBAAiB,KAAK,WAAW,CAAC;AAAA,IAAA,CAC/D;AAEI,UAAA,MAAO,KAAK,eAAe,MAAM,MAAM,UAAU,UAAU,EAAE,CAAC;AACpE,QAAI,CAAC,KAAK;AACF,aAAA;AAAA,IAAA;AAED,WAAA;AAAA,MACN,QAAQ,IAAI;AAAA,MACZ,MAAM;AAAA,QACL,UAAU,IAAI;AAAA,QACd,SAAS,IAAI;AAAA,QACb,WAAW,IAAI;AAAA,QACf,IAAI,IAAI;AAAA,MAAA;AAAA,IAEV;AAAA,EAAA;AAEF;;"}
1
+ {"version":3,"file":"SchemaQuery.cjs","sources":["../../../../../../../packages/engine-system-api/src/model/queries/schema/SchemaQuery.ts"],"sourcesContent":["import { DatabaseQuery, DatabaseQueryable, Literal, SelectBuilder } from '@contember/database'\nimport { Schema } from '@contember/schema'\nimport { SchemaWithMeta } from '../../migrations'\n\nexport class SchemaQuery extends DatabaseQuery<SchemaWithMeta | null> {\n\tconstructor(\n\t\tprivate readonly currentHash?: string,\n\t) {\n\t\tsuper()\n\t}\n\n\tasync fetch(queryable: DatabaseQueryable): Promise<SchemaWithMeta | null> {\n\t\tconst query = SelectBuilder.create<{\n\t\t\tschema: Schema\n\t\t\tchecksum: string\n\t\t\tversion: string\n\t\t\tupdated_at: Date\n\t\t\tmigration_id: number\n\t\t}>()\n\t\t\t.from('schema')\n\t\t\t.select(new Literal('*'))\n\t\t\t.where({\n\t\t\t\tid: 'single',\n\t\t\t})\n\t\t\t.match(it => {\n\t\t\t\tif (!this.currentHash) {\n\t\t\t\t\treturn it\n\t\t\t\t}\n\t\t\t\treturn it.where(it => it.raw('checksum != ?', this.currentHash))\n\t\t\t})\n\n\t\tconst row = this.fetchOneOrNull(await query.getResult(queryable.db))\n\t\tif (!row) {\n\t\t\treturn null\n\t\t}\n\t\treturn {\n\t\t\tschema: row.schema,\n\t\t\tmeta: {\n\t\t\t\tchecksum: row.checksum,\n\t\t\t\tversion: row.version,\n\t\t\t\tupdatedAt: row.updated_at,\n\t\t\t\tid: row.migration_id,\n\t\t\t},\n\t\t}\n\t}\n}\n"],"names":["DatabaseQuery","SelectBuilder","Literal","it"],"mappings":";;;AAIO,MAAM,oBAAoBA,SAAAA,cAAqC;AAAA,EACrE,YACkB,aAChB;AACD,UAAA;AAFiB,SAAA,cAAA;AAAA,EAGlB;AAAA,EAEA,MAAM,MAAM,WAA8D;AACzE,UAAM,QAAQC,SAAAA,cAAc,OAAA,EAO1B,KAAK,QAAQ,EACb,OAAO,IAAIC,SAAAA,QAAQ,GAAG,CAAC,EACvB,MAAM;AAAA,MACN,IAAI;AAAA,IAAA,CACJ,EACA,MAAM,CAAA,OAAM;AACZ,UAAI,CAAC,KAAK,aAAa;AACtB,eAAO;AAAA,MACR;AACA,aAAO,GAAG,MAAM,CAAAC,QAAMA,IAAG,IAAI,iBAAiB,KAAK,WAAW,CAAC;AAAA,IAChE,CAAC;AAEF,UAAM,MAAM,KAAK,eAAe,MAAM,MAAM,UAAU,UAAU,EAAE,CAAC;AACnE,QAAI,CAAC,KAAK;AACT,aAAO;AAAA,IACR;AACA,WAAO;AAAA,MACN,QAAQ,IAAI;AAAA,MACZ,MAAM;AAAA,QACL,UAAU,IAAI;AAAA,QACd,SAAS,IAAI;AAAA,QACb,WAAW,IAAI;AAAA,QACf,IAAI,IAAI;AAAA,MAAA;AAAA,IACT;AAAA,EAEF;AACD;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaQuery.js","sources":["../../../../../../../packages/engine-system-api/src/model/queries/schema/SchemaQuery.ts"],"sourcesContent":["import { DatabaseQuery, DatabaseQueryable, Literal, SelectBuilder } from '@contember/database'\nimport { Schema } from '@contember/schema'\nimport { SchemaWithMeta } from '../../migrations'\n\nexport class SchemaQuery extends DatabaseQuery<SchemaWithMeta | null> {\n\n\tconstructor(\n\t\tprivate readonly currentHash?: string,\n\t) {\n\t\tsuper()\n\t}\n\n\n\tasync fetch(queryable: DatabaseQueryable): Promise<SchemaWithMeta | null> {\n\t\tconst query = SelectBuilder.create<{\n\t\t\tschema: Schema\n\t\t\tchecksum: string\n\t\t\tversion: string\n\t\t\tupdated_at: Date\n\t\t\tmigration_id: number\n\t\t}>()\n\t\t\t.from('schema')\n\t\t\t.select(new Literal('*'))\n\t\t\t.where({\n\t\t\t\tid: 'single',\n\t\t\t})\n\t\t\t.match(it => {\n\t\t\t\tif (!this.currentHash) {\n\t\t\t\t\treturn it\n\t\t\t\t}\n\t\t\t\treturn it.where(it => it.raw('checksum != ?', this.currentHash))\n\t\t\t})\n\n\t\tconst row = this.fetchOneOrNull(await query.getResult(queryable.db))\n\t\tif (!row) {\n\t\t\treturn null\n\t\t}\n\t\treturn {\n\t\t\tschema: row.schema,\n\t\t\tmeta: {\n\t\t\t\tchecksum: row.checksum,\n\t\t\t\tversion: row.version,\n\t\t\t\tupdatedAt: row.updated_at,\n\t\t\t\tid: row.migration_id,\n\t\t\t},\n\t\t}\n\t}\n}\n"],"names":["it"],"mappings":";AAIO,MAAM,oBAAoB,cAAqC;AAAA,EAErE,YACkB,aAChB;AACK,UAAA;AAFW,SAAA,cAAA;AAAA,EAAA;AAAA,EAMlB,MAAM,MAAM,WAA8D;AACzE,UAAM,QAAQ,cAAc,OAMzB,EACD,KAAK,QAAQ,EACb,OAAO,IAAI,QAAQ,GAAG,CAAC,EACvB,MAAM;AAAA,MACN,IAAI;AAAA,IAAA,CACJ,EACA,MAAM,CAAM,OAAA;AACR,UAAA,CAAC,KAAK,aAAa;AACf,eAAA;AAAA,MAAA;AAED,aAAA,GAAG,MAAM,CAAAA,QAAMA,IAAG,IAAI,iBAAiB,KAAK,WAAW,CAAC;AAAA,IAAA,CAC/D;AAEI,UAAA,MAAO,KAAK,eAAe,MAAM,MAAM,UAAU,UAAU,EAAE,CAAC;AACpE,QAAI,CAAC,KAAK;AACF,aAAA;AAAA,IAAA;AAED,WAAA;AAAA,MACN,QAAQ,IAAI;AAAA,MACZ,MAAM;AAAA,QACL,UAAU,IAAI;AAAA,QACd,SAAS,IAAI;AAAA,QACb,WAAW,IAAI;AAAA,QACf,IAAI,IAAI;AAAA,MAAA;AAAA,IAEV;AAAA,EAAA;AAEF;"}
1
+ {"version":3,"file":"SchemaQuery.js","sources":["../../../../../../../packages/engine-system-api/src/model/queries/schema/SchemaQuery.ts"],"sourcesContent":["import { DatabaseQuery, DatabaseQueryable, Literal, SelectBuilder } from '@contember/database'\nimport { Schema } from '@contember/schema'\nimport { SchemaWithMeta } from '../../migrations'\n\nexport class SchemaQuery extends DatabaseQuery<SchemaWithMeta | null> {\n\tconstructor(\n\t\tprivate readonly currentHash?: string,\n\t) {\n\t\tsuper()\n\t}\n\n\tasync fetch(queryable: DatabaseQueryable): Promise<SchemaWithMeta | null> {\n\t\tconst query = SelectBuilder.create<{\n\t\t\tschema: Schema\n\t\t\tchecksum: string\n\t\t\tversion: string\n\t\t\tupdated_at: Date\n\t\t\tmigration_id: number\n\t\t}>()\n\t\t\t.from('schema')\n\t\t\t.select(new Literal('*'))\n\t\t\t.where({\n\t\t\t\tid: 'single',\n\t\t\t})\n\t\t\t.match(it => {\n\t\t\t\tif (!this.currentHash) {\n\t\t\t\t\treturn it\n\t\t\t\t}\n\t\t\t\treturn it.where(it => it.raw('checksum != ?', this.currentHash))\n\t\t\t})\n\n\t\tconst row = this.fetchOneOrNull(await query.getResult(queryable.db))\n\t\tif (!row) {\n\t\t\treturn null\n\t\t}\n\t\treturn {\n\t\t\tschema: row.schema,\n\t\t\tmeta: {\n\t\t\t\tchecksum: row.checksum,\n\t\t\t\tversion: row.version,\n\t\t\t\tupdatedAt: row.updated_at,\n\t\t\t\tid: row.migration_id,\n\t\t\t},\n\t\t}\n\t}\n}\n"],"names":["it"],"mappings":";AAIO,MAAM,oBAAoB,cAAqC;AAAA,EACrE,YACkB,aAChB;AACD,UAAA;AAFiB,SAAA,cAAA;AAAA,EAGlB;AAAA,EAEA,MAAM,MAAM,WAA8D;AACzE,UAAM,QAAQ,cAAc,OAAA,EAO1B,KAAK,QAAQ,EACb,OAAO,IAAI,QAAQ,GAAG,CAAC,EACvB,MAAM;AAAA,MACN,IAAI;AAAA,IAAA,CACJ,EACA,MAAM,CAAA,OAAM;AACZ,UAAI,CAAC,KAAK,aAAa;AACtB,eAAO;AAAA,MACR;AACA,aAAO,GAAG,MAAM,CAAAA,QAAMA,IAAG,IAAI,iBAAiB,KAAK,WAAW,CAAC;AAAA,IAChE,CAAC;AAEF,UAAM,MAAM,KAAK,eAAe,MAAM,MAAM,UAAU,UAAU,EAAE,CAAC;AACnE,QAAI,CAAC,KAAK;AACT,aAAO;AAAA,IACR;AACA,WAAO;AAAA,MACN,QAAQ,IAAI;AAAA,MACZ,MAAM;AAAA,QACL,UAAU,IAAI;AAAA,QACd,SAAS,IAAI;AAAA,QACb,WAAW,IAAI;AAAA,QACf,IAAI,IAAI;AAAA,MAAA;AAAA,IACT;AAAA,EAEF;AACD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"StageBySlugQuery.cjs","sources":["../../../../../../../packages/engine-system-api/src/model/queries/stages/StageBySlugQuery.ts"],"sourcesContent":["import { DatabaseQuery, DatabaseQueryable } from '@contember/database'\nimport { prepareStageQueryBuilder } from './StageQueryFactory'\nimport { Stage } from '../../dtos'\n\nclass StageBySlugQuery extends DatabaseQuery<StageBySlugQuery.Result> {\n\tconstructor(private readonly slug: string) {\n\t\tsuper()\n\t}\n\n\tasync fetch(queryable: DatabaseQueryable): Promise<StageBySlugQuery.Result> {\n\t\tlet selectBuilder = prepareStageQueryBuilder().where({ slug: this.slug })\n\n\t\tconst rows = await selectBuilder.getResult(queryable.db)\n\n\t\treturn this.fetchOneOrNull(rows)\n\t}\n}\n\nnamespace StageBySlugQuery {\n\texport type Result = null | Stage\n}\n\nexport { StageBySlugQuery }\n"],"names":["DatabaseQuery","prepareStageQueryBuilder"],"mappings":";;;;AAIA,MAAM,yBAAyBA,SAAAA,cAAuC;AAAA,EACrE,YAA6B,MAAc;AACpC,UAAA;AADsB,SAAA,OAAA;AAAA,EAAA;AAAA,EAI7B,MAAM,MAAM,WAAgE;AACvE,QAAA,gBAAgBC,kBAAAA,2BAA2B,MAAM,EAAE,MAAM,KAAK,MAAM;AAExE,UAAM,OAAO,MAAM,cAAc,UAAU,UAAU,EAAE;AAEhD,WAAA,KAAK,eAAe,IAAI;AAAA,EAAA;AAEjC;;"}
1
+ {"version":3,"file":"StageBySlugQuery.cjs","sources":["../../../../../../../packages/engine-system-api/src/model/queries/stages/StageBySlugQuery.ts"],"sourcesContent":["import { DatabaseQuery, DatabaseQueryable } from '@contember/database'\nimport { prepareStageQueryBuilder } from './StageQueryFactory'\nimport { Stage } from '../../dtos'\n\nclass StageBySlugQuery extends DatabaseQuery<StageBySlugQuery.Result> {\n\tconstructor(private readonly slug: string) {\n\t\tsuper()\n\t}\n\n\tasync fetch(queryable: DatabaseQueryable): Promise<StageBySlugQuery.Result> {\n\t\tlet selectBuilder = prepareStageQueryBuilder().where({ slug: this.slug })\n\n\t\tconst rows = await selectBuilder.getResult(queryable.db)\n\n\t\treturn this.fetchOneOrNull(rows)\n\t}\n}\n\nnamespace StageBySlugQuery {\n\texport type Result = null | Stage\n}\n\nexport { StageBySlugQuery }\n"],"names":["DatabaseQuery","prepareStageQueryBuilder"],"mappings":";;;;AAIA,MAAM,yBAAyBA,SAAAA,cAAuC;AAAA,EACrE,YAA6B,MAAc;AAC1C,UAAA;AAD4B,SAAA,OAAA;AAAA,EAE7B;AAAA,EAEA,MAAM,MAAM,WAAgE;AAC3E,QAAI,gBAAgBC,kBAAAA,2BAA2B,MAAM,EAAE,MAAM,KAAK,MAAM;AAExE,UAAM,OAAO,MAAM,cAAc,UAAU,UAAU,EAAE;AAEvD,WAAO,KAAK,eAAe,IAAI;AAAA,EAChC;AACD;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"StageBySlugQuery.js","sources":["../../../../../../../packages/engine-system-api/src/model/queries/stages/StageBySlugQuery.ts"],"sourcesContent":["import { DatabaseQuery, DatabaseQueryable } from '@contember/database'\nimport { prepareStageQueryBuilder } from './StageQueryFactory'\nimport { Stage } from '../../dtos'\n\nclass StageBySlugQuery extends DatabaseQuery<StageBySlugQuery.Result> {\n\tconstructor(private readonly slug: string) {\n\t\tsuper()\n\t}\n\n\tasync fetch(queryable: DatabaseQueryable): Promise<StageBySlugQuery.Result> {\n\t\tlet selectBuilder = prepareStageQueryBuilder().where({ slug: this.slug })\n\n\t\tconst rows = await selectBuilder.getResult(queryable.db)\n\n\t\treturn this.fetchOneOrNull(rows)\n\t}\n}\n\nnamespace StageBySlugQuery {\n\texport type Result = null | Stage\n}\n\nexport { StageBySlugQuery }\n"],"names":[],"mappings":";;AAIA,MAAM,yBAAyB,cAAuC;AAAA,EACrE,YAA6B,MAAc;AACpC,UAAA;AADsB,SAAA,OAAA;AAAA,EAAA;AAAA,EAI7B,MAAM,MAAM,WAAgE;AACvE,QAAA,gBAAgB,2BAA2B,MAAM,EAAE,MAAM,KAAK,MAAM;AAExE,UAAM,OAAO,MAAM,cAAc,UAAU,UAAU,EAAE;AAEhD,WAAA,KAAK,eAAe,IAAI;AAAA,EAAA;AAEjC;"}
1
+ {"version":3,"file":"StageBySlugQuery.js","sources":["../../../../../../../packages/engine-system-api/src/model/queries/stages/StageBySlugQuery.ts"],"sourcesContent":["import { DatabaseQuery, DatabaseQueryable } from '@contember/database'\nimport { prepareStageQueryBuilder } from './StageQueryFactory'\nimport { Stage } from '../../dtos'\n\nclass StageBySlugQuery extends DatabaseQuery<StageBySlugQuery.Result> {\n\tconstructor(private readonly slug: string) {\n\t\tsuper()\n\t}\n\n\tasync fetch(queryable: DatabaseQueryable): Promise<StageBySlugQuery.Result> {\n\t\tlet selectBuilder = prepareStageQueryBuilder().where({ slug: this.slug })\n\n\t\tconst rows = await selectBuilder.getResult(queryable.db)\n\n\t\treturn this.fetchOneOrNull(rows)\n\t}\n}\n\nnamespace StageBySlugQuery {\n\texport type Result = null | Stage\n}\n\nexport { StageBySlugQuery }\n"],"names":[],"mappings":";;AAIA,MAAM,yBAAyB,cAAuC;AAAA,EACrE,YAA6B,MAAc;AAC1C,UAAA;AAD4B,SAAA,OAAA;AAAA,EAE7B;AAAA,EAEA,MAAM,MAAM,WAAgE;AAC3E,QAAI,gBAAgB,2BAA2B,MAAM,EAAE,MAAM,KAAK,MAAM;AAExE,UAAM,OAAO,MAAM,cAAc,UAAU,UAAU,EAAE;AAEvD,WAAO,KAAK,eAAe,IAAI;AAAA,EAChC;AACD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"StageQueryFactory.cjs","sources":["../../../../../../../packages/engine-system-api/src/model/queries/stages/StageQueryFactory.ts"],"sourcesContent":["import { SelectBuilder } from '@contember/database'\nimport { Stage } from '../../dtos'\n\nexport const prepareStageQueryBuilder = () => {\n\treturn SelectBuilder.create<Stage>()\n\t\t.select('id')\n\t\t.select('name')\n\t\t.select('slug')\n\t\t.select('schema')\n\t\t.from('stage')\n}\n"],"names":["SelectBuilder"],"mappings":";;;AAGO,MAAM,2BAA2B,MAAM;AAC7C,SAAOA,SAAAA,cAAc,OAAc,EACjC,OAAO,IAAI,EACX,OAAO,MAAM,EACb,OAAO,MAAM,EACb,OAAO,QAAQ,EACf,KAAK,OAAO;AACf;;"}
1
+ {"version":3,"file":"StageQueryFactory.cjs","sources":["../../../../../../../packages/engine-system-api/src/model/queries/stages/StageQueryFactory.ts"],"sourcesContent":["import { SelectBuilder } from '@contember/database'\nimport { Stage } from '../../dtos'\n\nexport const prepareStageQueryBuilder = () => {\n\treturn SelectBuilder.create<Stage>()\n\t\t.select('id')\n\t\t.select('name')\n\t\t.select('slug')\n\t\t.select('schema')\n\t\t.from('stage')\n}\n"],"names":["SelectBuilder"],"mappings":";;;AAGO,MAAM,2BAA2B,MAAM;AAC7C,SAAOA,SAAAA,cAAc,OAAA,EACnB,OAAO,IAAI,EACX,OAAO,MAAM,EACb,OAAO,MAAM,EACb,OAAO,QAAQ,EACf,KAAK,OAAO;AACf;;"}