@contember/engine-system-api 2.1.0-alpha.37 → 2.1.0-alpha.39
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.
- package/dist/development/index.cjs +73 -0
- package/dist/development/index.cjs.map +1 -0
- package/dist/development/index.js +70 -0
- package/dist/development/index.js.map +1 -0
- package/dist/development/src/SystemContainer.cjs +82 -0
- package/dist/development/src/SystemContainer.cjs.map +1 -0
- package/dist/development/src/SystemContainer.js +82 -0
- package/dist/development/src/SystemContainer.js.map +1 -0
- package/dist/development/src/migrations/2018-08-04-102200-init.cjs +36 -0
- package/dist/development/src/migrations/2018-08-04-102200-init.cjs.map +1 -0
- package/dist/development/src/migrations/2018-08-04-102200-init.js +37 -0
- package/dist/development/src/migrations/2018-08-04-102200-init.js.map +1 -0
- package/dist/development/src/migrations/2018-08-05-130501-trigger-event-function.cjs +98 -0
- package/dist/development/src/migrations/2018-08-05-130501-trigger-event-function.cjs.map +1 -0
- package/dist/development/src/migrations/2018-08-05-130501-trigger-event-function.js +99 -0
- package/dist/development/src/migrations/2018-08-05-130501-trigger-event-function.js.map +1 -0
- package/dist/development/src/migrations/2019-01-14-143432-event-trx-id.cjs +16 -0
- package/dist/development/src/migrations/2019-01-14-143432-event-trx-id.cjs.map +1 -0
- package/dist/development/src/migrations/2019-01-14-143432-event-trx-id.js +17 -0
- package/dist/development/src/migrations/2019-01-14-143432-event-trx-id.js.map +1 -0
- package/dist/development/src/migrations/2019-02-04-154500-event-rebase.cjs +58 -0
- package/dist/development/src/migrations/2019-02-04-154500-event-rebase.cjs.map +1 -0
- package/dist/development/src/migrations/2019-02-04-154500-event-rebase.js +59 -0
- package/dist/development/src/migrations/2019-02-04-154500-event-rebase.js.map +1 -0
- package/dist/development/src/migrations/2019-03-18-104147-event-run-migration-struct.cjs +11 -0
- package/dist/development/src/migrations/2019-03-18-104147-event-run-migration-struct.cjs.map +1 -0
- package/dist/development/src/migrations/2019-03-18-104147-event-run-migration-struct.js +12 -0
- package/dist/development/src/migrations/2019-03-18-104147-event-run-migration-struct.js.map +1 -0
- package/dist/development/src/migrations/2019-07-29-103000-trigger-event-function-fix.cjs +65 -0
- package/dist/development/src/migrations/2019-07-29-103000-trigger-event-function-fix.cjs.map +1 -0
- package/dist/development/src/migrations/2019-07-29-103000-trigger-event-function-fix.js +66 -0
- package/dist/development/src/migrations/2019-07-29-103000-trigger-event-function-fix.js.map +1 -0
- package/dist/development/src/migrations/2019-11-28-100000-missing-setting-fallback.cjs +20 -0
- package/dist/development/src/migrations/2019-11-28-100000-missing-setting-fallback.cjs.map +1 -0
- package/dist/development/src/migrations/2019-11-28-100000-missing-setting-fallback.js +21 -0
- package/dist/development/src/migrations/2019-11-28-100000-missing-setting-fallback.js.map +1 -0
- package/dist/development/src/migrations/2020-03-27-130000-project-migrations.cjs +21 -0
- package/dist/development/src/migrations/2020-03-27-130000-project-migrations.cjs.map +1 -0
- package/dist/development/src/migrations/2020-03-27-130000-project-migrations.js +22 -0
- package/dist/development/src/migrations/2020-03-27-130000-project-migrations.js.map +1 -0
- package/dist/development/src/migrations/2020-05-06-150000-composed-primary.cjs +188 -0
- package/dist/development/src/migrations/2020-05-06-150000-composed-primary.cjs.map +1 -0
- package/dist/development/src/migrations/2020-05-06-150000-composed-primary.js +189 -0
- package/dist/development/src/migrations/2020-05-06-150000-composed-primary.js.map +1 -0
- package/dist/development/src/migrations/2020-06-01-103000-event-trigger-perf.cjs +128 -0
- package/dist/development/src/migrations/2020-06-01-103000-event-trigger-perf.cjs.map +1 -0
- package/dist/development/src/migrations/2020-06-01-103000-event-trigger-perf.js +129 -0
- package/dist/development/src/migrations/2020-06-01-103000-event-trigger-perf.js.map +1 -0
- package/dist/development/src/migrations/2021-03-23-110000-timestamp-fix.cjs +14 -0
- package/dist/development/src/migrations/2021-03-23-110000-timestamp-fix.cjs.map +1 -0
- package/dist/development/src/migrations/2021-03-23-110000-timestamp-fix.js +15 -0
- package/dist/development/src/migrations/2021-03-23-110000-timestamp-fix.js.map +1 -0
- package/dist/development/src/migrations/2021-05-07-155800-event-log-rework.cjs +286 -0
- package/dist/development/src/migrations/2021-05-07-155800-event-log-rework.cjs.map +1 -0
- package/dist/development/src/migrations/2021-05-07-155800-event-log-rework.js +287 -0
- package/dist/development/src/migrations/2021-05-07-155800-event-log-rework.js.map +1 -0
- package/dist/development/src/migrations/2021-05-19-1232000-event-log-fix-constraint.cjs +44 -0
- package/dist/development/src/migrations/2021-05-19-1232000-event-log-fix-constraint.cjs.map +1 -0
- package/dist/development/src/migrations/2021-05-19-1232000-event-log-fix-constraint.js +45 -0
- package/dist/development/src/migrations/2021-05-19-1232000-event-log-fix-constraint.js.map +1 -0
- package/dist/development/src/migrations/2021-12-21-155500-events-up.cjs +14 -0
- package/dist/development/src/migrations/2021-12-21-155500-events-up.cjs.map +1 -0
- package/dist/development/src/migrations/2021-12-21-155500-events-up.js +15 -0
- package/dist/development/src/migrations/2021-12-21-155500-events-up.js.map +1 -0
- package/dist/development/src/migrations/2022-02-08-132600-fn-search-path.cjs +15 -0
- package/dist/development/src/migrations/2022-02-08-132600-fn-search-path.cjs.map +1 -0
- package/dist/development/src/migrations/2022-02-08-132600-fn-search-path.js +16 -0
- package/dist/development/src/migrations/2022-02-08-132600-fn-search-path.js.map +1 -0
- package/dist/development/src/migrations/2022-02-08-140500-drop-deadcode.cjs +10 -0
- package/dist/development/src/migrations/2022-02-08-140500-drop-deadcode.cjs.map +1 -0
- package/dist/development/src/migrations/2022-02-08-140500-drop-deadcode.js +11 -0
- package/dist/development/src/migrations/2022-02-08-140500-drop-deadcode.js.map +1 -0
- package/dist/development/src/migrations/2022-02-08-144400-dynamic-stage-schema.cjs +49 -0
- package/dist/development/src/migrations/2022-02-08-144400-dynamic-stage-schema.cjs.map +1 -0
- package/dist/development/src/migrations/2022-02-08-144400-dynamic-stage-schema.js +50 -0
- package/dist/development/src/migrations/2022-02-08-144400-dynamic-stage-schema.js.map +1 -0
- package/dist/development/src/migrations/2022-10-03-110000-table-on-delete.cjs +59 -0
- package/dist/development/src/migrations/2022-10-03-110000-table-on-delete.cjs.map +1 -0
- package/dist/development/src/migrations/2022-10-03-110000-table-on-delete.js +60 -0
- package/dist/development/src/migrations/2022-10-03-110000-table-on-delete.js.map +1 -0
- package/dist/development/src/migrations/2023-09-11-174000-fix-on-delete.cjs +67 -0
- package/dist/development/src/migrations/2023-09-11-174000-fix-on-delete.cjs.map +1 -0
- package/dist/development/src/migrations/2023-09-11-174000-fix-on-delete.js +68 -0
- package/dist/development/src/migrations/2023-09-11-174000-fix-on-delete.js.map +1 -0
- package/dist/development/src/migrations/2023-10-19-173000-fix-unique.cjs +45 -0
- package/dist/development/src/migrations/2023-10-19-173000-fix-unique.cjs.map +1 -0
- package/dist/development/src/migrations/2023-10-19-173000-fix-unique.js +46 -0
- package/dist/development/src/migrations/2023-10-19-173000-fix-unique.js.map +1 -0
- package/dist/development/src/migrations/2023-10-24-140000-schema-nullable-checksum.cjs +11 -0
- package/dist/development/src/migrations/2023-10-24-140000-schema-nullable-checksum.cjs.map +1 -0
- package/dist/development/src/migrations/2023-10-24-140000-schema-nullable-checksum.js +12 -0
- package/dist/development/src/migrations/2023-10-24-140000-schema-nullable-checksum.js.map +1 -0
- package/dist/development/src/migrations/2024-06-28-150000-migrations-drop-sequence.cjs +15 -0
- package/dist/development/src/migrations/2024-06-28-150000-migrations-drop-sequence.cjs.map +1 -0
- package/dist/development/src/migrations/2024-06-28-150000-migrations-drop-sequence.js +16 -0
- package/dist/development/src/migrations/2024-06-28-150000-migrations-drop-sequence.js.map +1 -0
- package/dist/development/src/migrations/2024-06-28-153000-schema.cjs +18 -0
- package/dist/development/src/migrations/2024-06-28-153000-schema.cjs.map +1 -0
- package/dist/development/src/migrations/2024-06-28-153000-schema.js +19 -0
- package/dist/development/src/migrations/2024-06-28-153000-schema.js.map +1 -0
- package/dist/development/src/migrations/2024-06-28-153001-schema-init.cjs +12 -0
- package/dist/development/src/migrations/2024-06-28-153001-schema-init.cjs.map +1 -0
- package/dist/development/src/migrations/2024-06-28-153001-schema-init.js +13 -0
- package/dist/development/src/migrations/2024-06-28-153001-schema-init.js.map +1 -0
- package/dist/development/src/migrations/2024-07-29-150000-event-data-index.cjs +11 -0
- package/dist/development/src/migrations/2024-07-29-150000-event-data-index.cjs.map +1 -0
- package/dist/development/src/migrations/2024-07-29-150000-event-data-index.js +12 -0
- package/dist/development/src/migrations/2024-07-29-150000-event-data-index.js.map +1 -0
- package/dist/development/src/migrations/2025-03-14-110000-fix-missing-index.cjs +63 -0
- package/dist/development/src/migrations/2025-03-14-110000-fix-missing-index.cjs.map +1 -0
- package/dist/development/src/migrations/2025-03-14-110000-fix-missing-index.js +64 -0
- package/dist/development/src/migrations/2025-03-14-110000-fix-missing-index.js.map +1 -0
- package/dist/development/src/migrations/runner.cjs +106 -0
- package/dist/development/src/migrations/runner.cjs.map +1 -0
- package/dist/development/src/migrations/runner.js +106 -0
- package/dist/development/src/migrations/runner.js.map +1 -0
- package/dist/development/src/migrations/snapshot-factory.cjs +44 -0
- package/dist/development/src/migrations/snapshot-factory.cjs.map +1 -0
- package/dist/development/src/migrations/snapshot-factory.js +44 -0
- package/dist/development/src/migrations/snapshot-factory.js.map +1 -0
- package/dist/development/src/migrations/snapshot.cjs +184 -0
- package/dist/development/src/migrations/snapshot.cjs.map +1 -0
- package/dist/development/src/migrations/snapshot.js +185 -0
- package/dist/development/src/migrations/snapshot.js.map +1 -0
- package/dist/development/src/model/ProjectInitializer.cjs +45 -0
- package/dist/development/src/model/ProjectInitializer.cjs.map +1 -0
- package/dist/development/src/model/ProjectInitializer.js +45 -0
- package/dist/development/src/model/ProjectInitializer.js.map +1 -0
- package/dist/development/src/model/ProjectTruncateExecutor.cjs +31 -0
- package/dist/development/src/model/ProjectTruncateExecutor.cjs.map +1 -0
- package/dist/development/src/model/ProjectTruncateExecutor.js +31 -0
- package/dist/development/src/model/ProjectTruncateExecutor.js.map +1 -0
- package/dist/development/src/model/authorization/AuthorizationActions.cjs +14 -0
- package/dist/development/src/model/authorization/AuthorizationActions.cjs.map +1 -0
- package/dist/development/src/model/authorization/AuthorizationActions.js +15 -0
- package/dist/development/src/model/authorization/AuthorizationActions.js.map +1 -0
- package/dist/development/src/model/authorization/Identity.cjs +10 -0
- package/dist/development/src/model/authorization/Identity.cjs.map +1 -0
- package/dist/development/src/model/authorization/Identity.js +10 -0
- package/dist/development/src/model/authorization/Identity.js.map +1 -0
- package/dist/development/src/model/authorization/PermissionsFactory.cjs +17 -0
- package/dist/development/src/model/authorization/PermissionsFactory.cjs.map +1 -0
- package/dist/development/src/model/authorization/PermissionsFactory.js +17 -0
- package/dist/development/src/model/authorization/PermissionsFactory.js.map +1 -0
- package/dist/development/src/model/authorization/StagePermissionsFactory.cjs +56 -0
- package/dist/development/src/model/authorization/StagePermissionsFactory.cjs.map +1 -0
- package/dist/development/src/model/authorization/StagePermissionsFactory.js +56 -0
- package/dist/development/src/model/authorization/StagePermissionsFactory.js.map +1 -0
- package/dist/development/src/model/authorization/StageScope.cjs +19 -0
- package/dist/development/src/model/authorization/StageScope.cjs.map +1 -0
- package/dist/development/src/model/authorization/StageScope.js +19 -0
- package/dist/development/src/model/authorization/StageScope.js.map +1 -0
- package/dist/development/src/model/authorization/SwitchEvaluatorNode.cjs +14 -0
- package/dist/development/src/model/authorization/SwitchEvaluatorNode.cjs.map +1 -0
- package/dist/development/src/model/authorization/SwitchEvaluatorNode.js +14 -0
- package/dist/development/src/model/authorization/SwitchEvaluatorNode.js.map +1 -0
- package/dist/development/src/model/commands/CommandBus.cjs +16 -0
- package/dist/development/src/model/commands/CommandBus.cjs.map +1 -0
- package/dist/development/src/model/commands/CommandBus.js +16 -0
- package/dist/development/src/model/commands/CommandBus.js.map +1 -0
- package/dist/development/src/model/commands/events/TruncateEventsCommand.cjs +10 -0
- package/dist/development/src/model/commands/events/TruncateEventsCommand.cjs.map +1 -0
- package/dist/development/src/model/commands/events/TruncateEventsCommand.js +10 -0
- package/dist/development/src/model/commands/events/TruncateEventsCommand.js.map +1 -0
- package/dist/development/src/model/commands/migrations/DeleteMigrationCommand.cjs +16 -0
- package/dist/development/src/model/commands/migrations/DeleteMigrationCommand.cjs.map +1 -0
- package/dist/development/src/model/commands/migrations/DeleteMigrationCommand.js +16 -0
- package/dist/development/src/model/commands/migrations/DeleteMigrationCommand.js.map +1 -0
- package/dist/development/src/model/commands/migrations/ModifyMigrationCommand.cjs +38 -0
- package/dist/development/src/model/commands/migrations/ModifyMigrationCommand.cjs.map +1 -0
- package/dist/development/src/model/commands/migrations/ModifyMigrationCommand.js +38 -0
- package/dist/development/src/model/commands/migrations/ModifyMigrationCommand.js.map +1 -0
- package/dist/development/src/model/commands/migrations/SaveMigrationCommand.cjs +28 -0
- package/dist/development/src/model/commands/migrations/SaveMigrationCommand.cjs.map +1 -0
- package/dist/development/src/model/commands/migrations/SaveMigrationCommand.js +28 -0
- package/dist/development/src/model/commands/migrations/SaveMigrationCommand.js.map +1 -0
- package/dist/development/src/model/commands/schema/SaveSchemaCommand.cjs +28 -0
- package/dist/development/src/model/commands/schema/SaveSchemaCommand.cjs.map +1 -0
- package/dist/development/src/model/commands/schema/SaveSchemaCommand.js +28 -0
- package/dist/development/src/model/commands/schema/SaveSchemaCommand.js.map +1 -0
- package/dist/development/src/model/commands/stages/CreateStageCommand.cjs +22 -0
- package/dist/development/src/model/commands/stages/CreateStageCommand.cjs.map +1 -0
- package/dist/development/src/model/commands/stages/CreateStageCommand.js +22 -0
- package/dist/development/src/model/commands/stages/CreateStageCommand.js.map +1 -0
- package/dist/development/src/model/database/DatabaseContext.cjs +29 -0
- package/dist/development/src/model/database/DatabaseContext.cjs.map +1 -0
- package/dist/development/src/model/database/DatabaseContext.js +29 -0
- package/dist/development/src/model/database/DatabaseContext.js.map +1 -0
- package/dist/development/src/model/dtos/ExecutedMigration.cjs +21 -0
- package/dist/development/src/model/dtos/ExecutedMigration.cjs.map +1 -0
- package/dist/development/src/model/dtos/ExecutedMigration.js +21 -0
- package/dist/development/src/model/dtos/ExecutedMigration.js.map +1 -0
- package/dist/development/src/model/events/EventResponseBuilder.cjs +59 -0
- package/dist/development/src/model/events/EventResponseBuilder.cjs.map +1 -0
- package/dist/development/src/model/events/EventResponseBuilder.js +59 -0
- package/dist/development/src/model/events/EventResponseBuilder.js.map +1 -0
- package/dist/development/src/model/events/EventResponseHelper.cjs +25 -0
- package/dist/development/src/model/events/EventResponseHelper.cjs.map +1 -0
- package/dist/development/src/model/events/EventResponseHelper.js +25 -0
- package/dist/development/src/model/events/EventResponseHelper.js.map +1 -0
- package/dist/development/src/model/events/identityUtils.cjs +16 -0
- package/dist/development/src/model/events/identityUtils.cjs.map +1 -0
- package/dist/development/src/model/events/identityUtils.js +16 -0
- package/dist/development/src/model/events/identityUtils.js.map +1 -0
- package/dist/development/src/model/events/types.cjs +69 -0
- package/dist/development/src/model/events/types.cjs.map +1 -0
- package/dist/development/src/model/events/types.js +69 -0
- package/dist/development/src/model/events/types.js.map +1 -0
- package/dist/development/src/model/helpers/modelHelpers.cjs +28 -0
- package/dist/development/src/model/helpers/modelHelpers.cjs.map +1 -0
- package/dist/development/src/model/helpers/modelHelpers.js +28 -0
- package/dist/development/src/model/helpers/modelHelpers.js.map +1 -0
- package/dist/development/src/model/helpers/stageHelpers.cjs +7 -0
- package/dist/development/src/model/helpers/stageHelpers.cjs.map +1 -0
- package/dist/development/src/model/helpers/stageHelpers.js +7 -0
- package/dist/development/src/model/helpers/stageHelpers.js.map +1 -0
- package/dist/development/src/model/metadata/SchemaDatabaseMetadataResolverStore.cjs +35 -0
- package/dist/development/src/model/metadata/SchemaDatabaseMetadataResolverStore.cjs.map +1 -0
- package/dist/development/src/model/metadata/SchemaDatabaseMetadataResolverStore.js +35 -0
- package/dist/development/src/model/metadata/SchemaDatabaseMetadataResolverStore.js.map +1 -0
- package/dist/development/src/model/migrations/ExecutedMigrationsResolver.cjs +17 -0
- package/dist/development/src/model/migrations/ExecutedMigrationsResolver.cjs.map +1 -0
- package/dist/development/src/model/migrations/ExecutedMigrationsResolver.js +17 -0
- package/dist/development/src/model/migrations/ExecutedMigrationsResolver.js.map +1 -0
- package/dist/development/src/model/migrations/MigrationAlterer.cjs +52 -0
- package/dist/development/src/model/migrations/MigrationAlterer.cjs.map +1 -0
- package/dist/development/src/model/migrations/MigrationAlterer.js +52 -0
- package/dist/development/src/model/migrations/MigrationAlterer.js.map +1 -0
- package/dist/development/src/model/migrations/ProjectMigrator.cjs +245 -0
- package/dist/development/src/model/migrations/ProjectMigrator.cjs.map +1 -0
- package/dist/development/src/model/migrations/ProjectMigrator.js +245 -0
- package/dist/development/src/model/migrations/ProjectMigrator.js.map +1 -0
- package/dist/development/src/model/migrations/SchemaProvider.cjs +55 -0
- package/dist/development/src/model/migrations/SchemaProvider.cjs.map +1 -0
- package/dist/development/src/model/migrations/SchemaProvider.js +55 -0
- package/dist/development/src/model/migrations/SchemaProvider.js.map +1 -0
- package/dist/development/src/model/queries/events/EventQueryHelpers.cjs +48 -0
- package/dist/development/src/model/queries/events/EventQueryHelpers.cjs.map +1 -0
- package/dist/development/src/model/queries/events/EventQueryHelpers.js +48 -0
- package/dist/development/src/model/queries/events/EventQueryHelpers.js.map +1 -0
- package/dist/development/src/model/queries/events/EventsQuery.cjs +66 -0
- package/dist/development/src/model/queries/events/EventsQuery.cjs.map +1 -0
- package/dist/development/src/model/queries/events/EventsQuery.js +66 -0
- package/dist/development/src/model/queries/events/EventsQuery.js.map +1 -0
- package/dist/development/src/model/queries/events/LatestTransactionIdByStageQuery.cjs +15 -0
- package/dist/development/src/model/queries/events/LatestTransactionIdByStageQuery.cjs.map +1 -0
- package/dist/development/src/model/queries/events/LatestTransactionIdByStageQuery.js +15 -0
- package/dist/development/src/model/queries/events/LatestTransactionIdByStageQuery.js.map +1 -0
- package/dist/development/src/model/queries/events/OldValuesQuery.cjs +15 -0
- package/dist/development/src/model/queries/events/OldValuesQuery.cjs.map +1 -0
- package/dist/development/src/model/queries/events/OldValuesQuery.js +15 -0
- package/dist/development/src/model/queries/events/OldValuesQuery.js.map +1 -0
- package/dist/development/src/model/queries/migrations/ExecutedMigrationByVersionQuery.cjs +18 -0
- package/dist/development/src/model/queries/migrations/ExecutedMigrationByVersionQuery.cjs.map +1 -0
- package/dist/development/src/model/queries/migrations/ExecutedMigrationByVersionQuery.js +18 -0
- package/dist/development/src/model/queries/migrations/ExecutedMigrationByVersionQuery.js.map +1 -0
- package/dist/development/src/model/queries/migrations/ExecutedMigrationsQuery.cjs +19 -0
- package/dist/development/src/model/queries/migrations/ExecutedMigrationsQuery.cjs.map +1 -0
- package/dist/development/src/model/queries/migrations/ExecutedMigrationsQuery.js +19 -0
- package/dist/development/src/model/queries/migrations/ExecutedMigrationsQuery.js.map +1 -0
- package/dist/development/src/model/queries/migrations/ExecutedMigrationsQueryHelper.cjs +18 -0
- package/dist/development/src/model/queries/migrations/ExecutedMigrationsQueryHelper.cjs.map +1 -0
- package/dist/development/src/model/queries/migrations/ExecutedMigrationsQueryHelper.js +18 -0
- package/dist/development/src/model/queries/migrations/ExecutedMigrationsQueryHelper.js.map +1 -0
- package/dist/development/src/model/queries/schema/SchemaQuery.cjs +34 -0
- package/dist/development/src/model/queries/schema/SchemaQuery.cjs.map +1 -0
- package/dist/development/src/model/queries/schema/SchemaQuery.js +34 -0
- package/dist/development/src/model/queries/schema/SchemaQuery.js.map +1 -0
- package/dist/development/src/model/queries/stages/StageBySlugQuery.cjs +17 -0
- package/dist/development/src/model/queries/stages/StageBySlugQuery.cjs.map +1 -0
- package/dist/development/src/model/queries/stages/StageBySlugQuery.js +17 -0
- package/dist/development/src/model/queries/stages/StageBySlugQuery.js.map +1 -0
- package/dist/development/src/model/queries/stages/StageQueryFactory.cjs +8 -0
- package/dist/development/src/model/queries/stages/StageQueryFactory.cjs.map +1 -0
- package/dist/development/src/model/queries/stages/StageQueryFactory.js +8 -0
- package/dist/development/src/model/queries/stages/StageQueryFactory.js.map +1 -0
- package/dist/development/src/model/queries/stages/StagesQuery.cjs +12 -0
- package/dist/development/src/model/queries/stages/StagesQuery.cjs.map +1 -0
- package/dist/development/src/model/queries/stages/StagesQuery.js +12 -0
- package/dist/development/src/model/queries/stages/StagesQuery.js.map +1 -0
- package/dist/development/src/model/stages/StageCreator.cjs +20 -0
- package/dist/development/src/model/stages/StageCreator.cjs.map +1 -0
- package/dist/development/src/model/stages/StageCreator.js +20 -0
- package/dist/development/src/model/stages/StageCreator.js.map +1 -0
- package/dist/development/src/resolvers/ResolverFactory.cjs +92 -0
- package/dist/development/src/resolvers/ResolverFactory.cjs.map +1 -0
- package/dist/development/src/resolvers/ResolverFactory.js +92 -0
- package/dist/development/src/resolvers/ResolverFactory.js.map +1 -0
- package/dist/development/src/resolvers/SystemResolverContext.cjs +37 -0
- package/dist/development/src/resolvers/SystemResolverContext.cjs.map +1 -0
- package/dist/development/src/resolvers/SystemResolverContext.js +37 -0
- package/dist/development/src/resolvers/SystemResolverContext.js.map +1 -0
- package/dist/development/src/resolvers/mutation/MigrateMutationResolver.cjs +113 -0
- package/dist/development/src/resolvers/mutation/MigrateMutationResolver.cjs.map +1 -0
- package/dist/development/src/resolvers/mutation/MigrateMutationResolver.js +113 -0
- package/dist/development/src/resolvers/mutation/MigrateMutationResolver.js.map +1 -0
- package/dist/development/src/resolvers/mutation/MigrationAlterMutationResolver.cjs +48 -0
- package/dist/development/src/resolvers/mutation/MigrationAlterMutationResolver.cjs.map +1 -0
- package/dist/development/src/resolvers/mutation/MigrationAlterMutationResolver.js +48 -0
- package/dist/development/src/resolvers/mutation/MigrationAlterMutationResolver.js.map +1 -0
- package/dist/development/src/resolvers/mutation/TruncateMutationResolver.cjs +15 -0
- package/dist/development/src/resolvers/mutation/TruncateMutationResolver.cjs.map +1 -0
- package/dist/development/src/resolvers/mutation/TruncateMutationResolver.js +15 -0
- package/dist/development/src/resolvers/mutation/TruncateMutationResolver.js.map +1 -0
- package/dist/development/src/resolvers/query/EventsQueryResolver.cjs +45 -0
- package/dist/development/src/resolvers/query/EventsQueryResolver.cjs.map +1 -0
- package/dist/development/src/resolvers/query/EventsQueryResolver.js +45 -0
- package/dist/development/src/resolvers/query/EventsQueryResolver.js.map +1 -0
- package/dist/development/src/resolvers/query/ExecutedMigrationsQueryResolver.cjs +29 -0
- package/dist/development/src/resolvers/query/ExecutedMigrationsQueryResolver.cjs.map +1 -0
- package/dist/development/src/resolvers/query/ExecutedMigrationsQueryResolver.js +29 -0
- package/dist/development/src/resolvers/query/ExecutedMigrationsQueryResolver.js.map +1 -0
- package/dist/development/src/resolvers/query/SchemaQueryResolver.cjs +23 -0
- package/dist/development/src/resolvers/query/SchemaQueryResolver.cjs.map +1 -0
- package/dist/development/src/resolvers/query/SchemaQueryResolver.js +23 -0
- package/dist/development/src/resolvers/query/SchemaQueryResolver.js.map +1 -0
- package/dist/development/src/resolvers/query/StagesQueryResolver.cjs +19 -0
- package/dist/development/src/resolvers/query/StagesQueryResolver.cjs.map +1 -0
- package/dist/development/src/resolvers/query/StagesQueryResolver.js +19 -0
- package/dist/development/src/resolvers/query/StagesQueryResolver.js.map +1 -0
- package/dist/development/src/resolvers/types/EventOldValuesResolver.cjs +10 -0
- package/dist/development/src/resolvers/types/EventOldValuesResolver.cjs.map +1 -0
- package/dist/development/src/resolvers/types/EventOldValuesResolver.js +10 -0
- package/dist/development/src/resolvers/types/EventOldValuesResolver.js.map +1 -0
- package/dist/development/src/resolvers/types/OldValuesHelpers.cjs +21 -0
- package/dist/development/src/resolvers/types/OldValuesHelpers.cjs.map +1 -0
- package/dist/development/src/resolvers/types/OldValuesHelpers.js +21 -0
- package/dist/development/src/resolvers/types/OldValuesHelpers.js.map +1 -0
- package/dist/development/src/schema/dev.graphql.cjs +56 -0
- package/dist/development/src/schema/dev.graphql.cjs.map +1 -0
- package/dist/development/src/schema/dev.graphql.js +57 -0
- package/dist/development/src/schema/dev.graphql.js.map +1 -0
- package/dist/development/src/schema/system.graphql.cjs +211 -0
- package/dist/development/src/schema/system.graphql.cjs.map +1 -0
- package/dist/development/src/schema/system.graphql.js +212 -0
- package/dist/development/src/schema/system.graphql.js.map +1 -0
- package/dist/development/src/schema/types.cjs +46 -0
- package/dist/development/src/schema/types.cjs.map +1 -0
- package/dist/development/src/schema/types.js +46 -0
- package/dist/development/src/schema/types.js.map +1 -0
- package/dist/development/src/utils/MapSet.cjs +43 -0
- package/dist/development/src/utils/MapSet.cjs.map +1 -0
- package/dist/development/src/utils/MapSet.js +43 -0
- package/dist/development/src/utils/MapSet.js.map +1 -0
- package/dist/development/src/utils/Response.cjs +21 -0
- package/dist/development/src/utils/Response.cjs.map +1 -0
- package/dist/development/src/utils/Response.js +21 -0
- package/dist/development/src/utils/Response.js.map +1 -0
- package/dist/development/src/utils/assertNever.cjs +7 -0
- package/dist/development/src/utils/assertNever.cjs.map +1 -0
- package/dist/development/src/utils/assertNever.js +7 -0
- package/dist/development/src/utils/assertNever.js.map +1 -0
- package/dist/development/src/utils/batchQuery.cjs +22 -0
- package/dist/development/src/utils/batchQuery.cjs.map +1 -0
- package/dist/development/src/utils/batchQuery.js +22 -0
- package/dist/development/src/utils/batchQuery.js.map +1 -0
- package/dist/development/src/utils/exceptions.cjs +9 -0
- package/dist/development/src/utils/exceptions.cjs.map +1 -0
- package/dist/development/src/utils/exceptions.js +9 -0
- package/dist/development/src/utils/exceptions.js.map +1 -0
- package/dist/development/src/utils/tick.cjs +5 -0
- package/dist/development/src/utils/tick.cjs.map +1 -0
- package/dist/development/src/utils/tick.js +5 -0
- package/dist/development/src/utils/tick.js.map +1 -0
- package/dist/development/src/utils/tuple.cjs +5 -0
- package/dist/development/src/utils/tuple.cjs.map +1 -0
- package/dist/development/src/utils/tuple.js +5 -0
- package/dist/development/src/utils/tuple.js.map +1 -0
- package/dist/production/index.cjs +73 -0
- package/dist/production/index.cjs.map +1 -0
- package/dist/production/index.js +70 -0
- package/dist/production/index.js.map +1 -0
- package/dist/production/src/SystemContainer.cjs +82 -0
- package/dist/production/src/SystemContainer.cjs.map +1 -0
- package/dist/production/src/SystemContainer.js +82 -0
- package/dist/production/src/SystemContainer.js.map +1 -0
- package/dist/production/src/migrations/2018-08-04-102200-init.cjs +36 -0
- package/dist/production/src/migrations/2018-08-04-102200-init.cjs.map +1 -0
- package/dist/production/src/migrations/2018-08-04-102200-init.js +37 -0
- package/dist/production/src/migrations/2018-08-04-102200-init.js.map +1 -0
- package/dist/production/src/migrations/2018-08-05-130501-trigger-event-function.cjs +98 -0
- package/dist/production/src/migrations/2018-08-05-130501-trigger-event-function.cjs.map +1 -0
- package/dist/production/src/migrations/2018-08-05-130501-trigger-event-function.js +99 -0
- package/dist/production/src/migrations/2018-08-05-130501-trigger-event-function.js.map +1 -0
- package/dist/production/src/migrations/2019-01-14-143432-event-trx-id.cjs +16 -0
- package/dist/production/src/migrations/2019-01-14-143432-event-trx-id.cjs.map +1 -0
- package/dist/production/src/migrations/2019-01-14-143432-event-trx-id.js +17 -0
- package/dist/production/src/migrations/2019-01-14-143432-event-trx-id.js.map +1 -0
- package/dist/production/src/migrations/2019-02-04-154500-event-rebase.cjs +58 -0
- package/dist/production/src/migrations/2019-02-04-154500-event-rebase.cjs.map +1 -0
- package/dist/production/src/migrations/2019-02-04-154500-event-rebase.js +59 -0
- package/dist/production/src/migrations/2019-02-04-154500-event-rebase.js.map +1 -0
- package/dist/production/src/migrations/2019-03-18-104147-event-run-migration-struct.cjs +11 -0
- package/dist/production/src/migrations/2019-03-18-104147-event-run-migration-struct.cjs.map +1 -0
- package/dist/production/src/migrations/2019-03-18-104147-event-run-migration-struct.js +12 -0
- package/dist/production/src/migrations/2019-03-18-104147-event-run-migration-struct.js.map +1 -0
- package/dist/production/src/migrations/2019-07-29-103000-trigger-event-function-fix.cjs +65 -0
- package/dist/production/src/migrations/2019-07-29-103000-trigger-event-function-fix.cjs.map +1 -0
- package/dist/production/src/migrations/2019-07-29-103000-trigger-event-function-fix.js +66 -0
- package/dist/production/src/migrations/2019-07-29-103000-trigger-event-function-fix.js.map +1 -0
- package/dist/production/src/migrations/2019-11-28-100000-missing-setting-fallback.cjs +20 -0
- package/dist/production/src/migrations/2019-11-28-100000-missing-setting-fallback.cjs.map +1 -0
- package/dist/production/src/migrations/2019-11-28-100000-missing-setting-fallback.js +21 -0
- package/dist/production/src/migrations/2019-11-28-100000-missing-setting-fallback.js.map +1 -0
- package/dist/production/src/migrations/2020-03-27-130000-project-migrations.cjs +21 -0
- package/dist/production/src/migrations/2020-03-27-130000-project-migrations.cjs.map +1 -0
- package/dist/production/src/migrations/2020-03-27-130000-project-migrations.js +22 -0
- package/dist/production/src/migrations/2020-03-27-130000-project-migrations.js.map +1 -0
- package/dist/production/src/migrations/2020-05-06-150000-composed-primary.cjs +188 -0
- package/dist/production/src/migrations/2020-05-06-150000-composed-primary.cjs.map +1 -0
- package/dist/production/src/migrations/2020-05-06-150000-composed-primary.js +189 -0
- package/dist/production/src/migrations/2020-05-06-150000-composed-primary.js.map +1 -0
- package/dist/production/src/migrations/2020-06-01-103000-event-trigger-perf.cjs +128 -0
- package/dist/production/src/migrations/2020-06-01-103000-event-trigger-perf.cjs.map +1 -0
- package/dist/production/src/migrations/2020-06-01-103000-event-trigger-perf.js +129 -0
- package/dist/production/src/migrations/2020-06-01-103000-event-trigger-perf.js.map +1 -0
- package/dist/production/src/migrations/2021-03-23-110000-timestamp-fix.cjs +14 -0
- package/dist/production/src/migrations/2021-03-23-110000-timestamp-fix.cjs.map +1 -0
- package/dist/production/src/migrations/2021-03-23-110000-timestamp-fix.js +15 -0
- package/dist/production/src/migrations/2021-03-23-110000-timestamp-fix.js.map +1 -0
- package/dist/production/src/migrations/2021-05-07-155800-event-log-rework.cjs +286 -0
- package/dist/production/src/migrations/2021-05-07-155800-event-log-rework.cjs.map +1 -0
- package/dist/production/src/migrations/2021-05-07-155800-event-log-rework.js +287 -0
- package/dist/production/src/migrations/2021-05-07-155800-event-log-rework.js.map +1 -0
- package/dist/production/src/migrations/2021-05-19-1232000-event-log-fix-constraint.cjs +44 -0
- package/dist/production/src/migrations/2021-05-19-1232000-event-log-fix-constraint.cjs.map +1 -0
- package/dist/production/src/migrations/2021-05-19-1232000-event-log-fix-constraint.js +45 -0
- package/dist/production/src/migrations/2021-05-19-1232000-event-log-fix-constraint.js.map +1 -0
- package/dist/production/src/migrations/2021-12-21-155500-events-up.cjs +14 -0
- package/dist/production/src/migrations/2021-12-21-155500-events-up.cjs.map +1 -0
- package/dist/production/src/migrations/2021-12-21-155500-events-up.js +15 -0
- package/dist/production/src/migrations/2021-12-21-155500-events-up.js.map +1 -0
- package/dist/production/src/migrations/2022-02-08-132600-fn-search-path.cjs +15 -0
- package/dist/production/src/migrations/2022-02-08-132600-fn-search-path.cjs.map +1 -0
- package/dist/production/src/migrations/2022-02-08-132600-fn-search-path.js +16 -0
- package/dist/production/src/migrations/2022-02-08-132600-fn-search-path.js.map +1 -0
- package/dist/production/src/migrations/2022-02-08-140500-drop-deadcode.cjs +10 -0
- package/dist/production/src/migrations/2022-02-08-140500-drop-deadcode.cjs.map +1 -0
- package/dist/production/src/migrations/2022-02-08-140500-drop-deadcode.js +11 -0
- package/dist/production/src/migrations/2022-02-08-140500-drop-deadcode.js.map +1 -0
- package/dist/production/src/migrations/2022-02-08-144400-dynamic-stage-schema.cjs +49 -0
- package/dist/production/src/migrations/2022-02-08-144400-dynamic-stage-schema.cjs.map +1 -0
- package/dist/production/src/migrations/2022-02-08-144400-dynamic-stage-schema.js +50 -0
- package/dist/production/src/migrations/2022-02-08-144400-dynamic-stage-schema.js.map +1 -0
- package/dist/production/src/migrations/2022-10-03-110000-table-on-delete.cjs +59 -0
- package/dist/production/src/migrations/2022-10-03-110000-table-on-delete.cjs.map +1 -0
- package/dist/production/src/migrations/2022-10-03-110000-table-on-delete.js +60 -0
- package/dist/production/src/migrations/2022-10-03-110000-table-on-delete.js.map +1 -0
- package/dist/production/src/migrations/2023-09-11-174000-fix-on-delete.cjs +67 -0
- package/dist/production/src/migrations/2023-09-11-174000-fix-on-delete.cjs.map +1 -0
- package/dist/production/src/migrations/2023-09-11-174000-fix-on-delete.js +68 -0
- package/dist/production/src/migrations/2023-09-11-174000-fix-on-delete.js.map +1 -0
- package/dist/production/src/migrations/2023-10-19-173000-fix-unique.cjs +45 -0
- package/dist/production/src/migrations/2023-10-19-173000-fix-unique.cjs.map +1 -0
- package/dist/production/src/migrations/2023-10-19-173000-fix-unique.js +46 -0
- package/dist/production/src/migrations/2023-10-19-173000-fix-unique.js.map +1 -0
- package/dist/production/src/migrations/2023-10-24-140000-schema-nullable-checksum.cjs +11 -0
- package/dist/production/src/migrations/2023-10-24-140000-schema-nullable-checksum.cjs.map +1 -0
- package/dist/production/src/migrations/2023-10-24-140000-schema-nullable-checksum.js +12 -0
- package/dist/production/src/migrations/2023-10-24-140000-schema-nullable-checksum.js.map +1 -0
- package/dist/production/src/migrations/2024-06-28-150000-migrations-drop-sequence.cjs +15 -0
- package/dist/production/src/migrations/2024-06-28-150000-migrations-drop-sequence.cjs.map +1 -0
- package/dist/production/src/migrations/2024-06-28-150000-migrations-drop-sequence.js +16 -0
- package/dist/production/src/migrations/2024-06-28-150000-migrations-drop-sequence.js.map +1 -0
- package/dist/production/src/migrations/2024-06-28-153000-schema.cjs +18 -0
- package/dist/production/src/migrations/2024-06-28-153000-schema.cjs.map +1 -0
- package/dist/production/src/migrations/2024-06-28-153000-schema.js +19 -0
- package/dist/production/src/migrations/2024-06-28-153000-schema.js.map +1 -0
- package/dist/production/src/migrations/2024-06-28-153001-schema-init.cjs +12 -0
- package/dist/production/src/migrations/2024-06-28-153001-schema-init.cjs.map +1 -0
- package/dist/production/src/migrations/2024-06-28-153001-schema-init.js +13 -0
- package/dist/production/src/migrations/2024-06-28-153001-schema-init.js.map +1 -0
- package/dist/production/src/migrations/2024-07-29-150000-event-data-index.cjs +11 -0
- package/dist/production/src/migrations/2024-07-29-150000-event-data-index.cjs.map +1 -0
- package/dist/production/src/migrations/2024-07-29-150000-event-data-index.js +12 -0
- package/dist/production/src/migrations/2024-07-29-150000-event-data-index.js.map +1 -0
- package/dist/production/src/migrations/2025-03-14-110000-fix-missing-index.cjs +63 -0
- package/dist/production/src/migrations/2025-03-14-110000-fix-missing-index.cjs.map +1 -0
- package/dist/production/src/migrations/2025-03-14-110000-fix-missing-index.js +64 -0
- package/dist/production/src/migrations/2025-03-14-110000-fix-missing-index.js.map +1 -0
- package/dist/production/src/migrations/runner.cjs +106 -0
- package/dist/production/src/migrations/runner.cjs.map +1 -0
- package/dist/production/src/migrations/runner.js +106 -0
- package/dist/production/src/migrations/runner.js.map +1 -0
- package/dist/production/src/migrations/snapshot-factory.cjs +44 -0
- package/dist/production/src/migrations/snapshot-factory.cjs.map +1 -0
- package/dist/production/src/migrations/snapshot-factory.js +44 -0
- package/dist/production/src/migrations/snapshot-factory.js.map +1 -0
- package/dist/production/src/migrations/snapshot.cjs +184 -0
- package/dist/production/src/migrations/snapshot.cjs.map +1 -0
- package/dist/production/src/migrations/snapshot.js +185 -0
- package/dist/production/src/migrations/snapshot.js.map +1 -0
- package/dist/production/src/model/ProjectInitializer.cjs +45 -0
- package/dist/production/src/model/ProjectInitializer.cjs.map +1 -0
- package/dist/production/src/model/ProjectInitializer.js +45 -0
- package/dist/production/src/model/ProjectInitializer.js.map +1 -0
- package/dist/production/src/model/ProjectTruncateExecutor.cjs +31 -0
- package/dist/production/src/model/ProjectTruncateExecutor.cjs.map +1 -0
- package/dist/production/src/model/ProjectTruncateExecutor.js +31 -0
- package/dist/production/src/model/ProjectTruncateExecutor.js.map +1 -0
- package/dist/production/src/model/authorization/AuthorizationActions.cjs +14 -0
- package/dist/production/src/model/authorization/AuthorizationActions.cjs.map +1 -0
- package/dist/production/src/model/authorization/AuthorizationActions.js +15 -0
- package/dist/production/src/model/authorization/AuthorizationActions.js.map +1 -0
- package/dist/production/src/model/authorization/Identity.cjs +10 -0
- package/dist/production/src/model/authorization/Identity.cjs.map +1 -0
- package/dist/production/src/model/authorization/Identity.js +10 -0
- package/dist/production/src/model/authorization/Identity.js.map +1 -0
- package/dist/production/src/model/authorization/PermissionsFactory.cjs +17 -0
- package/dist/production/src/model/authorization/PermissionsFactory.cjs.map +1 -0
- package/dist/production/src/model/authorization/PermissionsFactory.js +17 -0
- package/dist/production/src/model/authorization/PermissionsFactory.js.map +1 -0
- package/dist/production/src/model/authorization/StagePermissionsFactory.cjs +56 -0
- package/dist/production/src/model/authorization/StagePermissionsFactory.cjs.map +1 -0
- package/dist/production/src/model/authorization/StagePermissionsFactory.js +56 -0
- package/dist/production/src/model/authorization/StagePermissionsFactory.js.map +1 -0
- package/dist/production/src/model/authorization/StageScope.cjs +19 -0
- package/dist/production/src/model/authorization/StageScope.cjs.map +1 -0
- package/dist/production/src/model/authorization/StageScope.js +19 -0
- package/dist/production/src/model/authorization/StageScope.js.map +1 -0
- package/dist/production/src/model/authorization/SwitchEvaluatorNode.cjs +14 -0
- package/dist/production/src/model/authorization/SwitchEvaluatorNode.cjs.map +1 -0
- package/dist/production/src/model/authorization/SwitchEvaluatorNode.js +14 -0
- package/dist/production/src/model/authorization/SwitchEvaluatorNode.js.map +1 -0
- package/dist/production/src/model/commands/CommandBus.cjs +16 -0
- package/dist/production/src/model/commands/CommandBus.cjs.map +1 -0
- package/dist/production/src/model/commands/CommandBus.js +16 -0
- package/dist/production/src/model/commands/CommandBus.js.map +1 -0
- package/dist/production/src/model/commands/events/TruncateEventsCommand.cjs +10 -0
- package/dist/production/src/model/commands/events/TruncateEventsCommand.cjs.map +1 -0
- package/dist/production/src/model/commands/events/TruncateEventsCommand.js +10 -0
- package/dist/production/src/model/commands/events/TruncateEventsCommand.js.map +1 -0
- package/dist/production/src/model/commands/migrations/DeleteMigrationCommand.cjs +16 -0
- package/dist/production/src/model/commands/migrations/DeleteMigrationCommand.cjs.map +1 -0
- package/dist/production/src/model/commands/migrations/DeleteMigrationCommand.js +16 -0
- package/dist/production/src/model/commands/migrations/DeleteMigrationCommand.js.map +1 -0
- package/dist/production/src/model/commands/migrations/ModifyMigrationCommand.cjs +38 -0
- package/dist/production/src/model/commands/migrations/ModifyMigrationCommand.cjs.map +1 -0
- package/dist/production/src/model/commands/migrations/ModifyMigrationCommand.js +38 -0
- package/dist/production/src/model/commands/migrations/ModifyMigrationCommand.js.map +1 -0
- package/dist/production/src/model/commands/migrations/SaveMigrationCommand.cjs +28 -0
- package/dist/production/src/model/commands/migrations/SaveMigrationCommand.cjs.map +1 -0
- package/dist/production/src/model/commands/migrations/SaveMigrationCommand.js +28 -0
- package/dist/production/src/model/commands/migrations/SaveMigrationCommand.js.map +1 -0
- package/dist/production/src/model/commands/schema/SaveSchemaCommand.cjs +28 -0
- package/dist/production/src/model/commands/schema/SaveSchemaCommand.cjs.map +1 -0
- package/dist/production/src/model/commands/schema/SaveSchemaCommand.js +28 -0
- package/dist/production/src/model/commands/schema/SaveSchemaCommand.js.map +1 -0
- package/dist/production/src/model/commands/stages/CreateStageCommand.cjs +22 -0
- package/dist/production/src/model/commands/stages/CreateStageCommand.cjs.map +1 -0
- package/dist/production/src/model/commands/stages/CreateStageCommand.js +22 -0
- package/dist/production/src/model/commands/stages/CreateStageCommand.js.map +1 -0
- package/dist/production/src/model/database/DatabaseContext.cjs +29 -0
- package/dist/production/src/model/database/DatabaseContext.cjs.map +1 -0
- package/dist/production/src/model/database/DatabaseContext.js +29 -0
- package/dist/production/src/model/database/DatabaseContext.js.map +1 -0
- package/dist/production/src/model/dtos/ExecutedMigration.cjs +21 -0
- package/dist/production/src/model/dtos/ExecutedMigration.cjs.map +1 -0
- package/dist/production/src/model/dtos/ExecutedMigration.js +21 -0
- package/dist/production/src/model/dtos/ExecutedMigration.js.map +1 -0
- package/dist/production/src/model/events/EventResponseBuilder.cjs +59 -0
- package/dist/production/src/model/events/EventResponseBuilder.cjs.map +1 -0
- package/dist/production/src/model/events/EventResponseBuilder.js +59 -0
- package/dist/production/src/model/events/EventResponseBuilder.js.map +1 -0
- package/dist/production/src/model/events/EventResponseHelper.cjs +25 -0
- package/dist/production/src/model/events/EventResponseHelper.cjs.map +1 -0
- package/dist/production/src/model/events/EventResponseHelper.js +25 -0
- package/dist/production/src/model/events/EventResponseHelper.js.map +1 -0
- package/dist/production/src/model/events/identityUtils.cjs +16 -0
- package/dist/production/src/model/events/identityUtils.cjs.map +1 -0
- package/dist/production/src/model/events/identityUtils.js +16 -0
- package/dist/production/src/model/events/identityUtils.js.map +1 -0
- package/dist/production/src/model/events/types.cjs +69 -0
- package/dist/production/src/model/events/types.cjs.map +1 -0
- package/dist/production/src/model/events/types.js +69 -0
- package/dist/production/src/model/events/types.js.map +1 -0
- package/dist/production/src/model/helpers/modelHelpers.cjs +28 -0
- package/dist/production/src/model/helpers/modelHelpers.cjs.map +1 -0
- package/dist/production/src/model/helpers/modelHelpers.js +28 -0
- package/dist/production/src/model/helpers/modelHelpers.js.map +1 -0
- package/dist/production/src/model/helpers/stageHelpers.cjs +7 -0
- package/dist/production/src/model/helpers/stageHelpers.cjs.map +1 -0
- package/dist/production/src/model/helpers/stageHelpers.js +7 -0
- package/dist/production/src/model/helpers/stageHelpers.js.map +1 -0
- package/dist/production/src/model/metadata/SchemaDatabaseMetadataResolverStore.cjs +35 -0
- package/dist/production/src/model/metadata/SchemaDatabaseMetadataResolverStore.cjs.map +1 -0
- package/dist/production/src/model/metadata/SchemaDatabaseMetadataResolverStore.js +35 -0
- package/dist/production/src/model/metadata/SchemaDatabaseMetadataResolverStore.js.map +1 -0
- package/dist/production/src/model/migrations/ExecutedMigrationsResolver.cjs +17 -0
- package/dist/production/src/model/migrations/ExecutedMigrationsResolver.cjs.map +1 -0
- package/dist/production/src/model/migrations/ExecutedMigrationsResolver.js +17 -0
- package/dist/production/src/model/migrations/ExecutedMigrationsResolver.js.map +1 -0
- package/dist/production/src/model/migrations/MigrationAlterer.cjs +52 -0
- package/dist/production/src/model/migrations/MigrationAlterer.cjs.map +1 -0
- package/dist/production/src/model/migrations/MigrationAlterer.js +52 -0
- package/dist/production/src/model/migrations/MigrationAlterer.js.map +1 -0
- package/dist/production/src/model/migrations/ProjectMigrator.cjs +245 -0
- package/dist/production/src/model/migrations/ProjectMigrator.cjs.map +1 -0
- package/dist/production/src/model/migrations/ProjectMigrator.js +245 -0
- package/dist/production/src/model/migrations/ProjectMigrator.js.map +1 -0
- package/dist/production/src/model/migrations/SchemaProvider.cjs +55 -0
- package/dist/production/src/model/migrations/SchemaProvider.cjs.map +1 -0
- package/dist/production/src/model/migrations/SchemaProvider.js +55 -0
- package/dist/production/src/model/migrations/SchemaProvider.js.map +1 -0
- package/dist/production/src/model/queries/events/EventQueryHelpers.cjs +48 -0
- package/dist/production/src/model/queries/events/EventQueryHelpers.cjs.map +1 -0
- package/dist/production/src/model/queries/events/EventQueryHelpers.js +48 -0
- package/dist/production/src/model/queries/events/EventQueryHelpers.js.map +1 -0
- package/dist/production/src/model/queries/events/EventsQuery.cjs +66 -0
- package/dist/production/src/model/queries/events/EventsQuery.cjs.map +1 -0
- package/dist/production/src/model/queries/events/EventsQuery.js +66 -0
- package/dist/production/src/model/queries/events/EventsQuery.js.map +1 -0
- package/dist/production/src/model/queries/events/LatestTransactionIdByStageQuery.cjs +15 -0
- package/dist/production/src/model/queries/events/LatestTransactionIdByStageQuery.cjs.map +1 -0
- package/dist/production/src/model/queries/events/LatestTransactionIdByStageQuery.js +15 -0
- package/dist/production/src/model/queries/events/LatestTransactionIdByStageQuery.js.map +1 -0
- package/dist/production/src/model/queries/events/OldValuesQuery.cjs +15 -0
- package/dist/production/src/model/queries/events/OldValuesQuery.cjs.map +1 -0
- package/dist/production/src/model/queries/events/OldValuesQuery.js +15 -0
- package/dist/production/src/model/queries/events/OldValuesQuery.js.map +1 -0
- package/dist/production/src/model/queries/migrations/ExecutedMigrationByVersionQuery.cjs +18 -0
- package/dist/production/src/model/queries/migrations/ExecutedMigrationByVersionQuery.cjs.map +1 -0
- package/dist/production/src/model/queries/migrations/ExecutedMigrationByVersionQuery.js +18 -0
- package/dist/production/src/model/queries/migrations/ExecutedMigrationByVersionQuery.js.map +1 -0
- package/dist/production/src/model/queries/migrations/ExecutedMigrationsQuery.cjs +19 -0
- package/dist/production/src/model/queries/migrations/ExecutedMigrationsQuery.cjs.map +1 -0
- package/dist/production/src/model/queries/migrations/ExecutedMigrationsQuery.js +19 -0
- package/dist/production/src/model/queries/migrations/ExecutedMigrationsQuery.js.map +1 -0
- package/dist/production/src/model/queries/migrations/ExecutedMigrationsQueryHelper.cjs +18 -0
- package/dist/production/src/model/queries/migrations/ExecutedMigrationsQueryHelper.cjs.map +1 -0
- package/dist/production/src/model/queries/migrations/ExecutedMigrationsQueryHelper.js +18 -0
- package/dist/production/src/model/queries/migrations/ExecutedMigrationsQueryHelper.js.map +1 -0
- package/dist/production/src/model/queries/schema/SchemaQuery.cjs +34 -0
- package/dist/production/src/model/queries/schema/SchemaQuery.cjs.map +1 -0
- package/dist/production/src/model/queries/schema/SchemaQuery.js +34 -0
- package/dist/production/src/model/queries/schema/SchemaQuery.js.map +1 -0
- package/dist/production/src/model/queries/stages/StageBySlugQuery.cjs +17 -0
- package/dist/production/src/model/queries/stages/StageBySlugQuery.cjs.map +1 -0
- package/dist/production/src/model/queries/stages/StageBySlugQuery.js +17 -0
- package/dist/production/src/model/queries/stages/StageBySlugQuery.js.map +1 -0
- package/dist/production/src/model/queries/stages/StageQueryFactory.cjs +8 -0
- package/dist/production/src/model/queries/stages/StageQueryFactory.cjs.map +1 -0
- package/dist/production/src/model/queries/stages/StageQueryFactory.js +8 -0
- package/dist/production/src/model/queries/stages/StageQueryFactory.js.map +1 -0
- package/dist/production/src/model/queries/stages/StagesQuery.cjs +12 -0
- package/dist/production/src/model/queries/stages/StagesQuery.cjs.map +1 -0
- package/dist/production/src/model/queries/stages/StagesQuery.js +12 -0
- package/dist/production/src/model/queries/stages/StagesQuery.js.map +1 -0
- package/dist/production/src/model/stages/StageCreator.cjs +20 -0
- package/dist/production/src/model/stages/StageCreator.cjs.map +1 -0
- package/dist/production/src/model/stages/StageCreator.js +20 -0
- package/dist/production/src/model/stages/StageCreator.js.map +1 -0
- package/dist/production/src/resolvers/ResolverFactory.cjs +92 -0
- package/dist/production/src/resolvers/ResolverFactory.cjs.map +1 -0
- package/dist/production/src/resolvers/ResolverFactory.js +92 -0
- package/dist/production/src/resolvers/ResolverFactory.js.map +1 -0
- package/dist/production/src/resolvers/SystemResolverContext.cjs +37 -0
- package/dist/production/src/resolvers/SystemResolverContext.cjs.map +1 -0
- package/dist/production/src/resolvers/SystemResolverContext.js +37 -0
- package/dist/production/src/resolvers/SystemResolverContext.js.map +1 -0
- package/dist/production/src/resolvers/mutation/MigrateMutationResolver.cjs +113 -0
- package/dist/production/src/resolvers/mutation/MigrateMutationResolver.cjs.map +1 -0
- package/dist/production/src/resolvers/mutation/MigrateMutationResolver.js +113 -0
- package/dist/production/src/resolvers/mutation/MigrateMutationResolver.js.map +1 -0
- package/dist/production/src/resolvers/mutation/MigrationAlterMutationResolver.cjs +48 -0
- package/dist/production/src/resolvers/mutation/MigrationAlterMutationResolver.cjs.map +1 -0
- package/dist/production/src/resolvers/mutation/MigrationAlterMutationResolver.js +48 -0
- package/dist/production/src/resolvers/mutation/MigrationAlterMutationResolver.js.map +1 -0
- package/dist/production/src/resolvers/mutation/TruncateMutationResolver.cjs +15 -0
- package/dist/production/src/resolvers/mutation/TruncateMutationResolver.cjs.map +1 -0
- package/dist/production/src/resolvers/mutation/TruncateMutationResolver.js +15 -0
- package/dist/production/src/resolvers/mutation/TruncateMutationResolver.js.map +1 -0
- package/dist/production/src/resolvers/query/EventsQueryResolver.cjs +45 -0
- package/dist/production/src/resolvers/query/EventsQueryResolver.cjs.map +1 -0
- package/dist/production/src/resolvers/query/EventsQueryResolver.js +45 -0
- package/dist/production/src/resolvers/query/EventsQueryResolver.js.map +1 -0
- package/dist/production/src/resolvers/query/ExecutedMigrationsQueryResolver.cjs +29 -0
- package/dist/production/src/resolvers/query/ExecutedMigrationsQueryResolver.cjs.map +1 -0
- package/dist/production/src/resolvers/query/ExecutedMigrationsQueryResolver.js +29 -0
- package/dist/production/src/resolvers/query/ExecutedMigrationsQueryResolver.js.map +1 -0
- package/dist/production/src/resolvers/query/SchemaQueryResolver.cjs +23 -0
- package/dist/production/src/resolvers/query/SchemaQueryResolver.cjs.map +1 -0
- package/dist/production/src/resolvers/query/SchemaQueryResolver.js +23 -0
- package/dist/production/src/resolvers/query/SchemaQueryResolver.js.map +1 -0
- package/dist/production/src/resolvers/query/StagesQueryResolver.cjs +19 -0
- package/dist/production/src/resolvers/query/StagesQueryResolver.cjs.map +1 -0
- package/dist/production/src/resolvers/query/StagesQueryResolver.js +19 -0
- package/dist/production/src/resolvers/query/StagesQueryResolver.js.map +1 -0
- package/dist/production/src/resolvers/types/EventOldValuesResolver.cjs +10 -0
- package/dist/production/src/resolvers/types/EventOldValuesResolver.cjs.map +1 -0
- package/dist/production/src/resolvers/types/EventOldValuesResolver.js +10 -0
- package/dist/production/src/resolvers/types/EventOldValuesResolver.js.map +1 -0
- package/dist/production/src/resolvers/types/OldValuesHelpers.cjs +21 -0
- package/dist/production/src/resolvers/types/OldValuesHelpers.cjs.map +1 -0
- package/dist/production/src/resolvers/types/OldValuesHelpers.js +21 -0
- package/dist/production/src/resolvers/types/OldValuesHelpers.js.map +1 -0
- package/dist/production/src/schema/dev.graphql.cjs +56 -0
- package/dist/production/src/schema/dev.graphql.cjs.map +1 -0
- package/dist/production/src/schema/dev.graphql.js +57 -0
- package/dist/production/src/schema/dev.graphql.js.map +1 -0
- package/dist/production/src/schema/system.graphql.cjs +211 -0
- package/dist/production/src/schema/system.graphql.cjs.map +1 -0
- package/dist/production/src/schema/system.graphql.js +212 -0
- package/dist/production/src/schema/system.graphql.js.map +1 -0
- package/dist/production/src/schema/types.cjs +46 -0
- package/dist/production/src/schema/types.cjs.map +1 -0
- package/dist/production/src/schema/types.js +46 -0
- package/dist/production/src/schema/types.js.map +1 -0
- package/dist/production/src/utils/MapSet.cjs +43 -0
- package/dist/production/src/utils/MapSet.cjs.map +1 -0
- package/dist/production/src/utils/MapSet.js +43 -0
- package/dist/production/src/utils/MapSet.js.map +1 -0
- package/dist/production/src/utils/Response.cjs +21 -0
- package/dist/production/src/utils/Response.cjs.map +1 -0
- package/dist/production/src/utils/Response.js +21 -0
- package/dist/production/src/utils/Response.js.map +1 -0
- package/dist/production/src/utils/assertNever.cjs +7 -0
- package/dist/production/src/utils/assertNever.cjs.map +1 -0
- package/dist/production/src/utils/assertNever.js +7 -0
- package/dist/production/src/utils/assertNever.js.map +1 -0
- package/dist/production/src/utils/batchQuery.cjs +22 -0
- package/dist/production/src/utils/batchQuery.cjs.map +1 -0
- package/dist/production/src/utils/batchQuery.js +22 -0
- package/dist/production/src/utils/batchQuery.js.map +1 -0
- package/dist/production/src/utils/exceptions.cjs +9 -0
- package/dist/production/src/utils/exceptions.cjs.map +1 -0
- package/dist/production/src/utils/exceptions.js +9 -0
- package/dist/production/src/utils/exceptions.js.map +1 -0
- package/dist/production/src/utils/tick.cjs +5 -0
- package/dist/production/src/utils/tick.cjs.map +1 -0
- package/dist/production/src/utils/tick.js +5 -0
- package/dist/production/src/utils/tick.js.map +1 -0
- package/dist/production/src/utils/tuple.cjs +5 -0
- package/dist/production/src/utils/tuple.cjs.map +1 -0
- package/dist/production/src/utils/tuple.js +5 -0
- package/dist/production/src/utils/tuple.js.map +1 -0
- package/dist/tests/cases/migrations/2020-05-06-150000-composed-primary.test.d.ts +2 -0
- package/dist/tests/cases/migrations/2020-05-06-150000-composed-primary.test.d.ts.map +1 -0
- package/dist/tests/cases/migrations/2020-06-01-103000-event-trigger-perf.test.d.ts +2 -0
- package/dist/tests/cases/migrations/2020-06-01-103000-event-trigger-perf.test.d.ts.map +1 -0
- package/dist/tests/cases/migrations/2022-10-03-110000-table-on-delete.test.d.ts +2 -0
- package/dist/tests/cases/migrations/2022-10-03-110000-table-on-delete.test.d.ts.map +1 -0
- package/dist/tests/cases/migrations/2023-09-11-174000-fix-on-delete.test.d.ts +2 -0
- package/dist/tests/cases/migrations/2023-09-11-174000-fix-on-delete.test.d.ts.map +1 -0
- package/dist/tests/cases/migrations/2023-10-19-173000-fix-unique.test.d.ts +2 -0
- package/dist/tests/cases/migrations/2023-10-19-173000-fix-unique.test.d.ts.map +1 -0
- package/dist/tests/cases/migrations/2025-03-14-110000-fix-missing-index.test.d.ts +2 -0
- package/dist/tests/cases/migrations/2025-03-14-110000-fix-missing-index.test.d.ts.map +1 -0
- package/dist/tests/cases/unit/eventsQuery.test.d.ts +2 -0
- package/dist/tests/cases/unit/eventsQuery.test.d.ts.map +1 -0
- package/dist/tests/src/constants.d.ts +2 -0
- package/dist/tests/src/constants.d.ts.map +1 -0
- package/dist/tests/src/utils.d.ts +6 -0
- package/dist/tests/src/utils.d.ts.map +1 -0
- package/dist/tests/src/uuid.d.ts +3 -0
- package/dist/tests/src/uuid.d.ts.map +1 -0
- package/dist/tests/tsconfig.tsbuildinfo +1 -0
- package/dist/types/StagingDisabledError.d.ts +3 -0
- package/dist/types/StagingDisabledError.d.ts.map +1 -0
- package/dist/types/SystemContainer.d.ts +79 -0
- package/dist/types/SystemContainer.d.ts.map +1 -0
- package/dist/types/bin/runMigrations.d.ts +2 -0
- package/dist/types/bin/runMigrations.d.ts.map +1 -0
- package/dist/types/index.d.ts +9 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/migrations/2018-08-04-102200-init.d.ts +3 -0
- package/dist/types/migrations/2018-08-04-102200-init.d.ts.map +1 -0
- package/dist/types/migrations/2018-08-05-130501-trigger-event-function.d.ts +3 -0
- package/dist/types/migrations/2018-08-05-130501-trigger-event-function.d.ts.map +1 -0
- package/dist/types/migrations/2019-01-14-143432-event-trx-id.d.ts +3 -0
- package/dist/types/migrations/2019-01-14-143432-event-trx-id.d.ts.map +1 -0
- package/dist/types/migrations/2019-02-04-154500-event-rebase.d.ts +3 -0
- package/dist/types/migrations/2019-02-04-154500-event-rebase.d.ts.map +1 -0
- package/dist/types/migrations/2019-03-18-104147-event-run-migration-struct.d.ts +3 -0
- package/dist/types/migrations/2019-03-18-104147-event-run-migration-struct.d.ts.map +1 -0
- package/dist/types/migrations/2019-07-29-103000-trigger-event-function-fix.d.ts +3 -0
- package/dist/types/migrations/2019-07-29-103000-trigger-event-function-fix.d.ts.map +1 -0
- package/dist/types/migrations/2019-11-28-100000-missing-setting-fallback.d.ts +3 -0
- package/dist/types/migrations/2019-11-28-100000-missing-setting-fallback.d.ts.map +1 -0
- package/dist/types/migrations/2020-03-27-130000-project-migrations.d.ts +4 -0
- package/dist/types/migrations/2020-03-27-130000-project-migrations.d.ts.map +1 -0
- package/dist/types/migrations/2020-05-06-150000-composed-primary.d.ts +5 -0
- package/dist/types/migrations/2020-05-06-150000-composed-primary.d.ts.map +1 -0
- package/dist/types/migrations/2020-06-01-103000-event-trigger-perf.d.ts +5 -0
- package/dist/types/migrations/2020-06-01-103000-event-trigger-perf.d.ts.map +1 -0
- package/dist/types/migrations/2021-03-23-110000-timestamp-fix.d.ts +3 -0
- package/dist/types/migrations/2021-03-23-110000-timestamp-fix.d.ts.map +1 -0
- package/dist/types/migrations/2021-05-07-155800-event-log-rework.d.ts +5 -0
- package/dist/types/migrations/2021-05-07-155800-event-log-rework.d.ts.map +1 -0
- package/dist/types/migrations/2021-05-19-1232000-event-log-fix-constraint.d.ts +5 -0
- package/dist/types/migrations/2021-05-19-1232000-event-log-fix-constraint.d.ts.map +1 -0
- package/dist/types/migrations/2021-12-21-155500-events-up.d.ts +3 -0
- package/dist/types/migrations/2021-12-21-155500-events-up.d.ts.map +1 -0
- package/dist/types/migrations/2022-02-08-132600-fn-search-path.d.ts +3 -0
- package/dist/types/migrations/2022-02-08-132600-fn-search-path.d.ts.map +1 -0
- package/dist/types/migrations/2022-02-08-140500-drop-deadcode.d.ts +3 -0
- package/dist/types/migrations/2022-02-08-140500-drop-deadcode.d.ts.map +1 -0
- package/dist/types/migrations/2022-02-08-144400-dynamic-stage-schema.d.ts +3 -0
- package/dist/types/migrations/2022-02-08-144400-dynamic-stage-schema.d.ts.map +1 -0
- package/dist/types/migrations/2022-10-03-110000-table-on-delete.d.ts +4 -0
- package/dist/types/migrations/2022-10-03-110000-table-on-delete.d.ts.map +1 -0
- package/dist/types/migrations/2023-09-11-174000-fix-on-delete.d.ts +4 -0
- package/dist/types/migrations/2023-09-11-174000-fix-on-delete.d.ts.map +1 -0
- package/dist/types/migrations/2023-10-19-173000-fix-unique.d.ts +4 -0
- package/dist/types/migrations/2023-10-19-173000-fix-unique.d.ts.map +1 -0
- package/dist/types/migrations/2023-10-24-140000-schema-nullable-checksum.d.ts +3 -0
- package/dist/types/migrations/2023-10-24-140000-schema-nullable-checksum.d.ts.map +1 -0
- package/dist/types/migrations/2024-06-28-150000-migrations-drop-sequence.d.ts +3 -0
- package/dist/types/migrations/2024-06-28-150000-migrations-drop-sequence.d.ts.map +1 -0
- package/dist/types/migrations/2024-06-28-153000-schema.d.ts +3 -0
- package/dist/types/migrations/2024-06-28-153000-schema.d.ts.map +1 -0
- package/dist/types/migrations/2024-06-28-153001-schema-init.d.ts +4 -0
- package/dist/types/migrations/2024-06-28-153001-schema-init.d.ts.map +1 -0
- package/dist/types/migrations/2024-07-29-150000-event-data-index.d.ts +3 -0
- package/dist/types/migrations/2024-07-29-150000-event-data-index.d.ts.map +1 -0
- package/dist/types/migrations/2025-03-14-110000-fix-missing-index.d.ts +4 -0
- package/dist/types/migrations/2025-03-14-110000-fix-missing-index.d.ts.map +1 -0
- package/dist/types/migrations/index.d.ts +3 -0
- package/dist/types/migrations/index.d.ts.map +1 -0
- package/dist/types/migrations/runner.d.ts +17 -0
- package/dist/types/migrations/runner.d.ts.map +1 -0
- package/dist/types/migrations/snapshot-factory.d.ts +6 -0
- package/dist/types/migrations/snapshot-factory.d.ts.map +1 -0
- package/dist/types/migrations/snapshot.d.ts +3 -0
- package/dist/types/migrations/snapshot.d.ts.map +1 -0
- package/dist/types/migrations/types.d.ts +9 -0
- package/dist/types/migrations/types.d.ts.map +1 -0
- package/dist/types/model/ProjectInitializer.d.ts +15 -0
- package/dist/types/model/ProjectInitializer.d.ts.map +1 -0
- package/dist/types/model/ProjectTruncateExecutor.d.ts +7 -0
- package/dist/types/model/ProjectTruncateExecutor.d.ts.map +1 -0
- package/dist/types/model/SchemaGetter.d.ts +6 -0
- package/dist/types/model/SchemaGetter.d.ts.map +1 -0
- package/dist/types/model/authorization/AuthorizationActions.d.ts +27 -0
- package/dist/types/model/authorization/AuthorizationActions.d.ts.map +1 -0
- package/dist/types/model/authorization/Identity.d.ts +6 -0
- package/dist/types/model/authorization/Identity.d.ts.map +1 -0
- package/dist/types/model/authorization/PermissionsFactory.d.ts +5 -0
- package/dist/types/model/authorization/PermissionsFactory.d.ts.map +1 -0
- package/dist/types/model/authorization/StagePermissionsFactory.d.ts +9 -0
- package/dist/types/model/authorization/StagePermissionsFactory.d.ts.map +1 -0
- package/dist/types/model/authorization/StageScope.d.ts +10 -0
- package/dist/types/model/authorization/StageScope.d.ts.map +1 -0
- package/dist/types/model/authorization/SwitchEvaluatorNode.d.ts +8 -0
- package/dist/types/model/authorization/SwitchEvaluatorNode.d.ts.map +1 -0
- package/dist/types/model/authorization/index.d.ts +4 -0
- package/dist/types/model/authorization/index.d.ts.map +1 -0
- package/dist/types/model/commands/Command.d.ts +15 -0
- package/dist/types/model/commands/Command.d.ts.map +1 -0
- package/dist/types/model/commands/CommandBus.d.ts +11 -0
- package/dist/types/model/commands/CommandBus.d.ts.map +1 -0
- package/dist/types/model/commands/events/TruncateEventsCommand.d.ts +5 -0
- package/dist/types/model/commands/events/TruncateEventsCommand.d.ts.map +1 -0
- package/dist/types/model/commands/events/index.d.ts +2 -0
- package/dist/types/model/commands/events/index.d.ts.map +1 -0
- package/dist/types/model/commands/index.d.ts +6 -0
- package/dist/types/model/commands/index.d.ts.map +1 -0
- package/dist/types/model/commands/migrations/DeleteMigrationCommand.d.ts +7 -0
- package/dist/types/model/commands/migrations/DeleteMigrationCommand.d.ts.map +1 -0
- package/dist/types/model/commands/migrations/ModifyMigrationCommand.d.ts +9 -0
- package/dist/types/model/commands/migrations/ModifyMigrationCommand.d.ts.map +1 -0
- package/dist/types/model/commands/migrations/SaveMigrationCommand.d.ts +8 -0
- package/dist/types/model/commands/migrations/SaveMigrationCommand.d.ts.map +1 -0
- package/dist/types/model/commands/migrations/index.d.ts +3 -0
- package/dist/types/model/commands/migrations/index.d.ts.map +1 -0
- package/dist/types/model/commands/schema/SaveSchemaCommand.d.ts +8 -0
- package/dist/types/model/commands/schema/SaveSchemaCommand.d.ts.map +1 -0
- package/dist/types/model/commands/stages/CreateStageCommand.d.ts +8 -0
- package/dist/types/model/commands/stages/CreateStageCommand.d.ts.map +1 -0
- package/dist/types/model/commands/stages/TruncateStagesCommand.d.ts +5 -0
- package/dist/types/model/commands/stages/TruncateStagesCommand.d.ts.map +1 -0
- package/dist/types/model/commands/stages/index.d.ts +3 -0
- package/dist/types/model/commands/stages/index.d.ts.map +1 -0
- package/dist/types/model/database/DatabaseContext.d.ts +19 -0
- package/dist/types/model/database/DatabaseContext.d.ts.map +1 -0
- package/dist/types/model/database/index.d.ts +2 -0
- package/dist/types/model/database/index.d.ts.map +1 -0
- package/dist/types/model/dependencies/content/ContentQueryExecutor.d.ts +36 -0
- package/dist/types/model/dependencies/content/ContentQueryExecutor.d.ts.map +1 -0
- package/dist/types/model/dependencies/index.d.ts +3 -0
- package/dist/types/model/dependencies/index.d.ts.map +1 -0
- package/dist/types/model/dependencies/tenant/IdentityFetcher.d.ts +18 -0
- package/dist/types/model/dependencies/tenant/IdentityFetcher.d.ts.map +1 -0
- package/dist/types/model/dependencies/tenant/index.d.ts +2 -0
- package/dist/types/model/dependencies/tenant/index.d.ts.map +1 -0
- package/dist/types/model/dtos/ExecutedMigration.d.ts +13 -0
- package/dist/types/model/dtos/ExecutedMigration.d.ts.map +1 -0
- package/dist/types/model/dtos/Stage.d.ts +7 -0
- package/dist/types/model/dtos/Stage.d.ts.map +1 -0
- package/dist/types/model/dtos/index.d.ts +3 -0
- package/dist/types/model/dtos/index.d.ts.map +1 -0
- package/dist/types/model/events/EventResponseBuilder.d.ts +10 -0
- package/dist/types/model/events/EventResponseBuilder.d.ts.map +1 -0
- package/dist/types/model/events/EventResponseHelper.d.ts +22 -0
- package/dist/types/model/events/EventResponseHelper.d.ts.map +1 -0
- package/dist/types/model/events/identityUtils.d.ts +3 -0
- package/dist/types/model/events/identityUtils.d.ts.map +1 -0
- package/dist/types/model/events/index.d.ts +3 -0
- package/dist/types/model/events/index.d.ts.map +1 -0
- package/dist/types/model/events/types.d.ts +56 -0
- package/dist/types/model/events/types.d.ts.map +1 -0
- package/dist/types/model/helpers/index.d.ts +3 -0
- package/dist/types/model/helpers/index.d.ts.map +1 -0
- package/dist/types/model/helpers/modelHelpers.d.ts +3 -0
- package/dist/types/model/helpers/modelHelpers.d.ts.map +1 -0
- package/dist/types/model/helpers/stageHelpers.d.ts +3 -0
- package/dist/types/model/helpers/stageHelpers.d.ts.map +1 -0
- package/dist/types/model/index.d.ts +14 -0
- package/dist/types/model/index.d.ts.map +1 -0
- package/dist/types/model/metadata/SchemaDatabaseMetadataResolverStore.d.ts +16 -0
- package/dist/types/model/metadata/SchemaDatabaseMetadataResolverStore.d.ts.map +1 -0
- package/dist/types/model/metadata/index.d.ts +2 -0
- package/dist/types/model/metadata/index.d.ts.map +1 -0
- package/dist/types/model/migrations/ExecutedMigrationsResolver.d.ts +7 -0
- package/dist/types/model/migrations/ExecutedMigrationsResolver.d.ts.map +1 -0
- package/dist/types/model/migrations/MigrationAlterer.d.ts +18 -0
- package/dist/types/model/migrations/MigrationAlterer.d.ts.map +1 -0
- package/dist/types/model/migrations/MigrationInput.d.ts +18 -0
- package/dist/types/model/migrations/MigrationInput.d.ts.map +1 -0
- package/dist/types/model/migrations/ProjectMigrator.d.ts +63 -0
- package/dist/types/model/migrations/ProjectMigrator.d.ts.map +1 -0
- package/dist/types/model/migrations/SchemaProvider.d.ts +28 -0
- package/dist/types/model/migrations/SchemaProvider.d.ts.map +1 -0
- package/dist/types/model/migrations/index.d.ts +5 -0
- package/dist/types/model/migrations/index.d.ts.map +1 -0
- package/dist/types/model/queries/events/EventQueryHelpers.d.ts +14 -0
- package/dist/types/model/queries/events/EventQueryHelpers.d.ts.map +1 -0
- package/dist/types/model/queries/events/EventsQuery.d.ts +12 -0
- package/dist/types/model/queries/events/EventsQuery.d.ts.map +1 -0
- package/dist/types/model/queries/events/LatestTransactionIdByStageQuery.d.ts +7 -0
- package/dist/types/model/queries/events/LatestTransactionIdByStageQuery.d.ts.map +1 -0
- package/dist/types/model/queries/events/OldValuesQuery.d.ts +7 -0
- package/dist/types/model/queries/events/OldValuesQuery.d.ts.map +1 -0
- package/dist/types/model/queries/events/index.d.ts +4 -0
- package/dist/types/model/queries/events/index.d.ts.map +1 -0
- package/dist/types/model/queries/index.d.ts +5 -0
- package/dist/types/model/queries/index.d.ts.map +1 -0
- package/dist/types/model/queries/migrations/ExecutedMigrationByVersionQuery.d.ts +8 -0
- package/dist/types/model/queries/migrations/ExecutedMigrationByVersionQuery.d.ts.map +1 -0
- package/dist/types/model/queries/migrations/ExecutedMigrationsQuery.d.ts +8 -0
- package/dist/types/model/queries/migrations/ExecutedMigrationsQuery.d.ts.map +1 -0
- package/dist/types/model/queries/migrations/ExecutedMigrationsQueryHelper.d.ts +14 -0
- package/dist/types/model/queries/migrations/ExecutedMigrationsQueryHelper.d.ts.map +1 -0
- package/dist/types/model/queries/migrations/index.d.ts +4 -0
- package/dist/types/model/queries/migrations/index.d.ts.map +1 -0
- package/dist/types/model/queries/schema/SchemaQuery.d.ts +8 -0
- package/dist/types/model/queries/schema/SchemaQuery.d.ts.map +1 -0
- package/dist/types/model/queries/schema/index.d.ts +2 -0
- package/dist/types/model/queries/schema/index.d.ts.map +1 -0
- package/dist/types/model/queries/stages/StageBySlugQuery.d.ts +12 -0
- package/dist/types/model/queries/stages/StageBySlugQuery.d.ts.map +1 -0
- package/dist/types/model/queries/stages/StageQueryFactory.d.ts +4 -0
- package/dist/types/model/queries/stages/StageQueryFactory.d.ts.map +1 -0
- package/dist/types/model/queries/stages/StagesQuery.d.ts +7 -0
- package/dist/types/model/queries/stages/StagesQuery.d.ts.map +1 -0
- package/dist/types/model/queries/stages/index.d.ts +4 -0
- package/dist/types/model/queries/stages/index.d.ts.map +1 -0
- package/dist/types/model/stages/StageCreator.d.ts +7 -0
- package/dist/types/model/stages/StageCreator.d.ts.map +1 -0
- package/dist/types/model/stages/index.d.ts +2 -0
- package/dist/types/model/stages/index.d.ts.map +1 -0
- package/dist/types/resolvers/Resolver.d.ts +16 -0
- package/dist/types/resolvers/Resolver.d.ts.map +1 -0
- package/dist/types/resolvers/ResolverFactory.d.ts +20 -0
- package/dist/types/resolvers/ResolverFactory.d.ts.map +1 -0
- package/dist/types/resolvers/SystemResolverContext.d.ts +21 -0
- package/dist/types/resolvers/SystemResolverContext.d.ts.map +1 -0
- package/dist/types/resolvers/index.d.ts +6 -0
- package/dist/types/resolvers/index.d.ts.map +1 -0
- package/dist/types/resolvers/mutation/MigrateMutationResolver.d.ts +13 -0
- package/dist/types/resolvers/mutation/MigrateMutationResolver.d.ts.map +1 -0
- package/dist/types/resolvers/mutation/MigrationAlterMutationResolver.d.ts +12 -0
- package/dist/types/resolvers/mutation/MigrationAlterMutationResolver.d.ts.map +1 -0
- package/dist/types/resolvers/mutation/TruncateMutationResolver.d.ts +11 -0
- package/dist/types/resolvers/mutation/TruncateMutationResolver.d.ts.map +1 -0
- package/dist/types/resolvers/mutation/index.d.ts +4 -0
- package/dist/types/resolvers/mutation/index.d.ts.map +1 -0
- package/dist/types/resolvers/query/EventsQueryResolver.d.ts +11 -0
- package/dist/types/resolvers/query/EventsQueryResolver.d.ts.map +1 -0
- package/dist/types/resolvers/query/ExecutedMigrationsQueryResolver.d.ts +8 -0
- package/dist/types/resolvers/query/ExecutedMigrationsQueryResolver.d.ts.map +1 -0
- package/dist/types/resolvers/query/SchemaQueryResolver.d.ts +7 -0
- package/dist/types/resolvers/query/SchemaQueryResolver.d.ts.map +1 -0
- package/dist/types/resolvers/query/StagesQueryResolver.d.ts +8 -0
- package/dist/types/resolvers/query/StagesQueryResolver.d.ts.map +1 -0
- package/dist/types/resolvers/query/index.d.ts +4 -0
- package/dist/types/resolvers/query/index.d.ts.map +1 -0
- package/dist/types/resolvers/types/EventOldValuesResolver.d.ts +6 -0
- package/dist/types/resolvers/types/EventOldValuesResolver.d.ts.map +1 -0
- package/dist/types/resolvers/types/OldValuesHelpers.d.ts +3 -0
- package/dist/types/resolvers/types/OldValuesHelpers.d.ts.map +1 -0
- package/dist/types/resolvers/types/index.d.ts +2 -0
- package/dist/types/resolvers/types/index.d.ts.map +1 -0
- package/dist/types/schema/dev.graphql.d.ts +4 -0
- package/dist/types/schema/dev.graphql.d.ts.map +1 -0
- package/dist/types/schema/index.d.ts +6 -0
- package/dist/types/schema/index.d.ts.map +1 -0
- package/dist/types/schema/system.graphql.d.ts +4 -0
- package/dist/types/schema/system.graphql.d.ts.map +1 -0
- package/dist/types/schema/types.d.ts +566 -0
- package/dist/types/schema/types.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -0
- package/dist/types/types.d.ts +12 -0
- package/dist/types/types.d.ts.map +1 -0
- package/dist/types/utils/MapSet.d.ts +10 -0
- package/dist/types/utils/MapSet.d.ts.map +1 -0
- package/dist/types/utils/Response.d.ts +13 -0
- package/dist/types/utils/Response.d.ts.map +1 -0
- package/dist/types/utils/assertNever.d.ts +2 -0
- package/dist/types/utils/assertNever.d.ts.map +1 -0
- package/dist/types/utils/batchQuery.d.ts +3 -0
- package/dist/types/utils/batchQuery.d.ts.map +1 -0
- package/dist/types/utils/exceptions.d.ts +5 -0
- package/dist/types/utils/exceptions.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +8 -0
- package/dist/types/utils/index.d.ts.map +1 -0
- package/dist/types/utils/providers.d.ts +3 -0
- package/dist/types/utils/providers.d.ts.map +1 -0
- package/dist/types/utils/set.d.ts +3 -0
- package/dist/types/utils/set.d.ts.map +1 -0
- package/dist/types/utils/tick.d.ts +2 -0
- package/dist/types/utils/tick.d.ts.map +1 -0
- package/dist/types/utils/tuple.d.ts +2 -0
- package/dist/types/utils/tuple.d.ts.map +1 -0
- package/dist/types/utils/uuid.d.ts +4 -0
- package/dist/types/utils/uuid.d.ts.map +1 -0
- package/package.json +19 -19
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const schemaMigrations = require("@contember/schema-migrations");
|
|
4
|
+
const Database = require("@contember/database");
|
|
5
|
+
const SaveMigrationCommand = require("../commands/migrations/SaveMigrationCommand.cjs");
|
|
6
|
+
const schemaUtils = require("@contember/schema-utils");
|
|
7
|
+
const types = require("../../schema/types.cjs");
|
|
8
|
+
require("../../schema/dev.graphql.cjs");
|
|
9
|
+
require("../../schema/system.graphql.cjs");
|
|
10
|
+
const logger = require("@contember/logger");
|
|
11
|
+
const SaveSchemaCommand = require("../commands/schema/SaveSchemaCommand.cjs");
|
|
12
|
+
const exceptions = require("../../utils/exceptions.cjs");
|
|
13
|
+
var __defProp = Object.defineProperty;
|
|
14
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
15
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, key + "", value);
|
|
16
|
+
class ProjectMigrator {
|
|
17
|
+
constructor(migrationDescriber, schemaProvider, executedMigrationsResolver, migrationsDatabaseMetadataResolverStoreFactory, contentQueryExecutor) {
|
|
18
|
+
this.migrationDescriber = migrationDescriber;
|
|
19
|
+
this.schemaProvider = schemaProvider;
|
|
20
|
+
this.executedMigrationsResolver = executedMigrationsResolver;
|
|
21
|
+
this.migrationsDatabaseMetadataResolverStoreFactory = migrationsDatabaseMetadataResolverStoreFactory;
|
|
22
|
+
this.contentQueryExecutor = contentQueryExecutor;
|
|
23
|
+
}
|
|
24
|
+
async migrate({ db, project, identity, options: { ignoreOrder = false, skipExecuted = false }, migrationsToExecute, stages }) {
|
|
25
|
+
if (migrationsToExecute.length === 0) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const schemaWithMeta = await this.schemaProvider.fetch({ db });
|
|
29
|
+
let schema = schemaWithMeta.schema;
|
|
30
|
+
let id = schemaWithMeta.meta.id;
|
|
31
|
+
const validated = await this.validateMigrations(db, schema, schemaWithMeta.meta.version ?? null, migrationsToExecute, { ignoreOrder, skipExecuted });
|
|
32
|
+
if (validated.length === 0) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
const sorted = [...validated].sort((a, b) => a.version.localeCompare(b.version));
|
|
36
|
+
const metadataStore = this.migrationsDatabaseMetadataResolverStoreFactory.create(db);
|
|
37
|
+
for (const migration of sorted) {
|
|
38
|
+
if (migration.type === "schema") {
|
|
39
|
+
const formatVersion = migration.formatVersion;
|
|
40
|
+
for (const modification of migration.modifications) {
|
|
41
|
+
[schema] = await this.applyModification(
|
|
42
|
+
db.client,
|
|
43
|
+
stages,
|
|
44
|
+
schema,
|
|
45
|
+
modification,
|
|
46
|
+
formatVersion,
|
|
47
|
+
migration.version,
|
|
48
|
+
project,
|
|
49
|
+
metadataStore
|
|
50
|
+
);
|
|
51
|
+
}
|
|
52
|
+
} else if (migration.type === "content") {
|
|
53
|
+
if (!id) {
|
|
54
|
+
throw new FailedContentMigrationError(migration.version, `Cannot execute content migration without schema`);
|
|
55
|
+
}
|
|
56
|
+
for (const query of migration.queries) {
|
|
57
|
+
await this.executeContentMigration({
|
|
58
|
+
version: migration.version,
|
|
59
|
+
query,
|
|
60
|
+
db,
|
|
61
|
+
schema,
|
|
62
|
+
schemaMeta: { id },
|
|
63
|
+
stages,
|
|
64
|
+
databaseMetadata: await metadataStore.getMetadata(db.client.schema),
|
|
65
|
+
identity,
|
|
66
|
+
project
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
await db.client.query(`SET CONSTRAINTS ALL IMMEDIATE`);
|
|
70
|
+
await db.client.query(`SET CONSTRAINTS ALL DEFERRED`);
|
|
71
|
+
}
|
|
72
|
+
id = await db.commandBus.execute(new SaveMigrationCommand.SaveMigrationCommand(migration));
|
|
73
|
+
}
|
|
74
|
+
if (!id) {
|
|
75
|
+
throw new exceptions.ImplementationException();
|
|
76
|
+
}
|
|
77
|
+
await db.commandBus.execute(
|
|
78
|
+
new SaveSchemaCommand.SaveSchemaCommand({
|
|
79
|
+
schema,
|
|
80
|
+
meta: {
|
|
81
|
+
id,
|
|
82
|
+
updatedAt: /* @__PURE__ */ new Date(),
|
|
83
|
+
version: sorted[sorted.length - 1].version,
|
|
84
|
+
checksum: schemaUtils.calculateSchemaChecksum(schema)
|
|
85
|
+
}
|
|
86
|
+
})
|
|
87
|
+
);
|
|
88
|
+
}
|
|
89
|
+
async executeContentMigration({ query, stages, version, ...ctx }) {
|
|
90
|
+
const queryStages = query.stage ? stages.filter((it) => it.slug === query.stage) : stages;
|
|
91
|
+
for (const stage of queryStages) {
|
|
92
|
+
const response = await this.contentQueryExecutor.execute({
|
|
93
|
+
stage,
|
|
94
|
+
...ctx
|
|
95
|
+
}, query);
|
|
96
|
+
if (!response.ok) {
|
|
97
|
+
throw new FailedContentMigrationError(version, response.errors.join(", "));
|
|
98
|
+
}
|
|
99
|
+
if (query.checkMutationResult !== false) {
|
|
100
|
+
for (const [key, value] of Object.entries(response.result.data ?? {})) {
|
|
101
|
+
if (typeof value === "object" && value !== null && "ok" in value && !value.ok) {
|
|
102
|
+
const errorDetails = "errorMessage" in value ? value.errorMessage : "No details available. Please fetch errorMessage field.";
|
|
103
|
+
throw new NotSuccessfulContentMigrationError(version, `Mutation ${key} failed: ${errorDetails}`);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
async validateMigrations(db, schema, version, migrationsToExecute, { ignoreOrder, skipExecuted }) {
|
|
110
|
+
const executedMigrations = await this.executedMigrationsResolver.getMigrations(db);
|
|
111
|
+
const toExecute = [];
|
|
112
|
+
let skippedErrors = [];
|
|
113
|
+
for (const migration of migrationsToExecute) {
|
|
114
|
+
const executedMigration = executedMigrations.find((it) => it.version === migration.version);
|
|
115
|
+
if (executedMigration) {
|
|
116
|
+
if (skipExecuted && (migration.type !== "schema" || executedMigration.checksum === schemaMigrations.calculateMigrationChecksum(migration))) {
|
|
117
|
+
continue;
|
|
118
|
+
} else {
|
|
119
|
+
throw new AlreadyExecutedMigrationError(migration.version, `Migration is already executed`);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
if (version && migration.version < version && !ignoreOrder) {
|
|
123
|
+
throw new MustFollowLatestMigrationError(migration.version, `Must follow latest executed migration ${version}`);
|
|
124
|
+
}
|
|
125
|
+
if (migration.type === "schema") {
|
|
126
|
+
const described = this.migrationDescriber.describeModifications(schema, migration);
|
|
127
|
+
if (described.length === 0) {
|
|
128
|
+
continue;
|
|
129
|
+
}
|
|
130
|
+
const latestModification = described[described.length - 1];
|
|
131
|
+
schema = latestModification.schema;
|
|
132
|
+
skippedErrors = [
|
|
133
|
+
...skippedErrors.filter((it) => it.skipUntil && schemaMigrations.MigrationVersionHelper.extractVersion(it.skipUntil) >= migration.version),
|
|
134
|
+
...migration.skippedErrors ?? []
|
|
135
|
+
];
|
|
136
|
+
const errors2 = schemaUtils.SchemaValidator.validate(schema, skippedErrors);
|
|
137
|
+
if (errors2.length > 0) {
|
|
138
|
+
throw new InvalidSchemaError(
|
|
139
|
+
migration.version,
|
|
140
|
+
"Migration generates invalid schema: \n" + errors2.map((it) => `${it.path.join(".")}: [${it.code}] ${it.message}`).join("\n")
|
|
141
|
+
);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
toExecute.push(migration);
|
|
145
|
+
}
|
|
146
|
+
const errors = schemaUtils.SchemaValidator.validate(schema);
|
|
147
|
+
if (errors.length > 0) {
|
|
148
|
+
throw new InvalidSchemaError(
|
|
149
|
+
toExecute[toExecute.length - 1].version,
|
|
150
|
+
"Migration generates invalid schema: \n" + errors.map((it) => it.path.join(".") + ": " + it.message).join("\n")
|
|
151
|
+
);
|
|
152
|
+
}
|
|
153
|
+
return toExecute;
|
|
154
|
+
}
|
|
155
|
+
sqlPreprocessor(text, variables) {
|
|
156
|
+
return Object.entries(variables).reduce(
|
|
157
|
+
(content, [key, value]) => content.replace(new RegExp(`\\{\\{${key}\\}\\}`, "g"), value),
|
|
158
|
+
text
|
|
159
|
+
);
|
|
160
|
+
}
|
|
161
|
+
async applyModification(db, stages, schema, modification, formatVersion, migrationVersion, project, metadataStore) {
|
|
162
|
+
const {
|
|
163
|
+
getSql,
|
|
164
|
+
schema: newSchema
|
|
165
|
+
} = this.migrationDescriber.describeModification(schema, modification, { formatVersion });
|
|
166
|
+
for (const stage of stages) {
|
|
167
|
+
const databaseMetadata = await metadataStore.getMetadata(stage.schema);
|
|
168
|
+
const sql = getSql({
|
|
169
|
+
systemSchema: project.systemSchema,
|
|
170
|
+
databaseMetadata,
|
|
171
|
+
invalidateDatabaseMetadata: () => metadataStore.invalidate(stage.schema)
|
|
172
|
+
});
|
|
173
|
+
const processedSql = this.sqlPreprocessor(sql, {
|
|
174
|
+
project_slug: project.slug,
|
|
175
|
+
system_schema: project.systemSchema
|
|
176
|
+
});
|
|
177
|
+
await this.executeOnStage(db, stage, processedSql, migrationVersion);
|
|
178
|
+
}
|
|
179
|
+
return [newSchema];
|
|
180
|
+
}
|
|
181
|
+
async executeOnStage(db, stage, sql, migrationVersion) {
|
|
182
|
+
await db.query("SET LOCAL search_path TO " + Database.wrapIdentifier(stage.schema));
|
|
183
|
+
try {
|
|
184
|
+
await db.query(sql);
|
|
185
|
+
} catch (e) {
|
|
186
|
+
if (e instanceof Database.QueryError) {
|
|
187
|
+
logger.logger.error(e, { message: "Migration failed" });
|
|
188
|
+
throw new MigrationFailedError(migrationVersion, e.message);
|
|
189
|
+
}
|
|
190
|
+
throw e;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
class MigrationError extends Error {
|
|
195
|
+
constructor(version, migrationError) {
|
|
196
|
+
super(`${version}: ${migrationError}`);
|
|
197
|
+
this.version = version;
|
|
198
|
+
this.migrationError = migrationError;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
class MustFollowLatestMigrationError extends MigrationError {
|
|
202
|
+
constructor() {
|
|
203
|
+
super(...arguments);
|
|
204
|
+
__publicField(this, "code", types.MigrateErrorCode.MustFollowLatest);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
class AlreadyExecutedMigrationError extends MigrationError {
|
|
208
|
+
constructor() {
|
|
209
|
+
super(...arguments);
|
|
210
|
+
__publicField(this, "code", types.MigrateErrorCode.AlreadyExecuted);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
class MigrationFailedError extends MigrationError {
|
|
214
|
+
constructor() {
|
|
215
|
+
super(...arguments);
|
|
216
|
+
__publicField(this, "code", types.MigrateErrorCode.MigrationFailed);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
class InvalidSchemaError extends MigrationError {
|
|
220
|
+
constructor() {
|
|
221
|
+
super(...arguments);
|
|
222
|
+
__publicField(this, "code", types.MigrateErrorCode.InvalidSchema);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
class FailedContentMigrationError extends MigrationError {
|
|
226
|
+
constructor() {
|
|
227
|
+
super(...arguments);
|
|
228
|
+
__publicField(this, "code", types.MigrateErrorCode.ContentMigrationFailed);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
class NotSuccessfulContentMigrationError extends MigrationError {
|
|
232
|
+
constructor() {
|
|
233
|
+
super(...arguments);
|
|
234
|
+
__publicField(this, "code", types.MigrateErrorCode.ContentMigrationNotSuccessful);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
exports.AlreadyExecutedMigrationError = AlreadyExecutedMigrationError;
|
|
238
|
+
exports.FailedContentMigrationError = FailedContentMigrationError;
|
|
239
|
+
exports.InvalidSchemaError = InvalidSchemaError;
|
|
240
|
+
exports.MigrationError = MigrationError;
|
|
241
|
+
exports.MigrationFailedError = MigrationFailedError;
|
|
242
|
+
exports.MustFollowLatestMigrationError = MustFollowLatestMigrationError;
|
|
243
|
+
exports.NotSuccessfulContentMigrationError = NotSuccessfulContentMigrationError;
|
|
244
|
+
exports.ProjectMigrator = ProjectMigrator;
|
|
245
|
+
//# sourceMappingURL=ProjectMigrator.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectMigrator.cjs","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":["SaveMigrationCommand","ImplementationException","SaveSchemaCommand","calculateSchemaChecksum","calculateMigrationChecksum","MigrationVersionHelper","errors","SchemaValidator","wrapIdentifier","QueryError","logger","MigrateErrorCode"],"mappings":"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"}
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
import { calculateMigrationChecksum, MigrationVersionHelper } from "@contember/schema-migrations";
|
|
2
|
+
import { wrapIdentifier, QueryError } from "@contember/database";
|
|
3
|
+
import { SaveMigrationCommand } from "../commands/migrations/SaveMigrationCommand.js";
|
|
4
|
+
import { calculateSchemaChecksum, SchemaValidator } from "@contember/schema-utils";
|
|
5
|
+
import { MigrateErrorCode } from "../../schema/types.js";
|
|
6
|
+
import "../../schema/dev.graphql.js";
|
|
7
|
+
import "../../schema/system.graphql.js";
|
|
8
|
+
import { logger } from "@contember/logger";
|
|
9
|
+
import { SaveSchemaCommand } from "../commands/schema/SaveSchemaCommand.js";
|
|
10
|
+
import { ImplementationException } from "../../utils/exceptions.js";
|
|
11
|
+
var __defProp = Object.defineProperty;
|
|
12
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
13
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, key + "", value);
|
|
14
|
+
class ProjectMigrator {
|
|
15
|
+
constructor(migrationDescriber, schemaProvider, executedMigrationsResolver, migrationsDatabaseMetadataResolverStoreFactory, contentQueryExecutor) {
|
|
16
|
+
this.migrationDescriber = migrationDescriber;
|
|
17
|
+
this.schemaProvider = schemaProvider;
|
|
18
|
+
this.executedMigrationsResolver = executedMigrationsResolver;
|
|
19
|
+
this.migrationsDatabaseMetadataResolverStoreFactory = migrationsDatabaseMetadataResolverStoreFactory;
|
|
20
|
+
this.contentQueryExecutor = contentQueryExecutor;
|
|
21
|
+
}
|
|
22
|
+
async migrate({ db, project, identity, options: { ignoreOrder = false, skipExecuted = false }, migrationsToExecute, stages }) {
|
|
23
|
+
if (migrationsToExecute.length === 0) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
const schemaWithMeta = await this.schemaProvider.fetch({ db });
|
|
27
|
+
let schema = schemaWithMeta.schema;
|
|
28
|
+
let id = schemaWithMeta.meta.id;
|
|
29
|
+
const validated = await this.validateMigrations(db, schema, schemaWithMeta.meta.version ?? null, migrationsToExecute, { ignoreOrder, skipExecuted });
|
|
30
|
+
if (validated.length === 0) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
const sorted = [...validated].sort((a, b) => a.version.localeCompare(b.version));
|
|
34
|
+
const metadataStore = this.migrationsDatabaseMetadataResolverStoreFactory.create(db);
|
|
35
|
+
for (const migration of sorted) {
|
|
36
|
+
if (migration.type === "schema") {
|
|
37
|
+
const formatVersion = migration.formatVersion;
|
|
38
|
+
for (const modification of migration.modifications) {
|
|
39
|
+
[schema] = await this.applyModification(
|
|
40
|
+
db.client,
|
|
41
|
+
stages,
|
|
42
|
+
schema,
|
|
43
|
+
modification,
|
|
44
|
+
formatVersion,
|
|
45
|
+
migration.version,
|
|
46
|
+
project,
|
|
47
|
+
metadataStore
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
} else if (migration.type === "content") {
|
|
51
|
+
if (!id) {
|
|
52
|
+
throw new FailedContentMigrationError(migration.version, `Cannot execute content migration without schema`);
|
|
53
|
+
}
|
|
54
|
+
for (const query of migration.queries) {
|
|
55
|
+
await this.executeContentMigration({
|
|
56
|
+
version: migration.version,
|
|
57
|
+
query,
|
|
58
|
+
db,
|
|
59
|
+
schema,
|
|
60
|
+
schemaMeta: { id },
|
|
61
|
+
stages,
|
|
62
|
+
databaseMetadata: await metadataStore.getMetadata(db.client.schema),
|
|
63
|
+
identity,
|
|
64
|
+
project
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
await db.client.query(`SET CONSTRAINTS ALL IMMEDIATE`);
|
|
68
|
+
await db.client.query(`SET CONSTRAINTS ALL DEFERRED`);
|
|
69
|
+
}
|
|
70
|
+
id = await db.commandBus.execute(new SaveMigrationCommand(migration));
|
|
71
|
+
}
|
|
72
|
+
if (!id) {
|
|
73
|
+
throw new ImplementationException();
|
|
74
|
+
}
|
|
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
|
+
);
|
|
86
|
+
}
|
|
87
|
+
async executeContentMigration({ query, stages, version, ...ctx }) {
|
|
88
|
+
const queryStages = query.stage ? stages.filter((it) => it.slug === query.stage) : stages;
|
|
89
|
+
for (const stage of queryStages) {
|
|
90
|
+
const response = await this.contentQueryExecutor.execute({
|
|
91
|
+
stage,
|
|
92
|
+
...ctx
|
|
93
|
+
}, query);
|
|
94
|
+
if (!response.ok) {
|
|
95
|
+
throw new FailedContentMigrationError(version, response.errors.join(", "));
|
|
96
|
+
}
|
|
97
|
+
if (query.checkMutationResult !== false) {
|
|
98
|
+
for (const [key, value] of Object.entries(response.result.data ?? {})) {
|
|
99
|
+
if (typeof value === "object" && value !== null && "ok" in value && !value.ok) {
|
|
100
|
+
const errorDetails = "errorMessage" in value ? value.errorMessage : "No details available. Please fetch errorMessage field.";
|
|
101
|
+
throw new NotSuccessfulContentMigrationError(version, `Mutation ${key} failed: ${errorDetails}`);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
async validateMigrations(db, schema, version, migrationsToExecute, { ignoreOrder, skipExecuted }) {
|
|
108
|
+
const executedMigrations = await this.executedMigrationsResolver.getMigrations(db);
|
|
109
|
+
const toExecute = [];
|
|
110
|
+
let skippedErrors = [];
|
|
111
|
+
for (const migration of migrationsToExecute) {
|
|
112
|
+
const executedMigration = executedMigrations.find((it) => it.version === migration.version);
|
|
113
|
+
if (executedMigration) {
|
|
114
|
+
if (skipExecuted && (migration.type !== "schema" || executedMigration.checksum === calculateMigrationChecksum(migration))) {
|
|
115
|
+
continue;
|
|
116
|
+
} else {
|
|
117
|
+
throw new AlreadyExecutedMigrationError(migration.version, `Migration is already executed`);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
if (version && migration.version < version && !ignoreOrder) {
|
|
121
|
+
throw new MustFollowLatestMigrationError(migration.version, `Must follow latest executed migration ${version}`);
|
|
122
|
+
}
|
|
123
|
+
if (migration.type === "schema") {
|
|
124
|
+
const described = this.migrationDescriber.describeModifications(schema, migration);
|
|
125
|
+
if (described.length === 0) {
|
|
126
|
+
continue;
|
|
127
|
+
}
|
|
128
|
+
const latestModification = described[described.length - 1];
|
|
129
|
+
schema = latestModification.schema;
|
|
130
|
+
skippedErrors = [
|
|
131
|
+
...skippedErrors.filter((it) => it.skipUntil && MigrationVersionHelper.extractVersion(it.skipUntil) >= migration.version),
|
|
132
|
+
...migration.skippedErrors ?? []
|
|
133
|
+
];
|
|
134
|
+
const errors2 = SchemaValidator.validate(schema, skippedErrors);
|
|
135
|
+
if (errors2.length > 0) {
|
|
136
|
+
throw new InvalidSchemaError(
|
|
137
|
+
migration.version,
|
|
138
|
+
"Migration generates invalid schema: \n" + errors2.map((it) => `${it.path.join(".")}: [${it.code}] ${it.message}`).join("\n")
|
|
139
|
+
);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
toExecute.push(migration);
|
|
143
|
+
}
|
|
144
|
+
const errors = SchemaValidator.validate(schema);
|
|
145
|
+
if (errors.length > 0) {
|
|
146
|
+
throw new InvalidSchemaError(
|
|
147
|
+
toExecute[toExecute.length - 1].version,
|
|
148
|
+
"Migration generates invalid schema: \n" + errors.map((it) => it.path.join(".") + ": " + it.message).join("\n")
|
|
149
|
+
);
|
|
150
|
+
}
|
|
151
|
+
return toExecute;
|
|
152
|
+
}
|
|
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) {
|
|
160
|
+
const {
|
|
161
|
+
getSql,
|
|
162
|
+
schema: newSchema
|
|
163
|
+
} = this.migrationDescriber.describeModification(schema, modification, { formatVersion });
|
|
164
|
+
for (const stage of stages) {
|
|
165
|
+
const databaseMetadata = await metadataStore.getMetadata(stage.schema);
|
|
166
|
+
const sql = getSql({
|
|
167
|
+
systemSchema: project.systemSchema,
|
|
168
|
+
databaseMetadata,
|
|
169
|
+
invalidateDatabaseMetadata: () => metadataStore.invalidate(stage.schema)
|
|
170
|
+
});
|
|
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);
|
|
176
|
+
}
|
|
177
|
+
return [newSchema];
|
|
178
|
+
}
|
|
179
|
+
async executeOnStage(db, stage, sql, migrationVersion) {
|
|
180
|
+
await db.query("SET LOCAL search_path TO " + wrapIdentifier(stage.schema));
|
|
181
|
+
try {
|
|
182
|
+
await db.query(sql);
|
|
183
|
+
} catch (e) {
|
|
184
|
+
if (e instanceof QueryError) {
|
|
185
|
+
logger.error(e, { message: "Migration failed" });
|
|
186
|
+
throw new MigrationFailedError(migrationVersion, e.message);
|
|
187
|
+
}
|
|
188
|
+
throw e;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
class MigrationError extends Error {
|
|
193
|
+
constructor(version, migrationError) {
|
|
194
|
+
super(`${version}: ${migrationError}`);
|
|
195
|
+
this.version = version;
|
|
196
|
+
this.migrationError = migrationError;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
class MustFollowLatestMigrationError extends MigrationError {
|
|
200
|
+
constructor() {
|
|
201
|
+
super(...arguments);
|
|
202
|
+
__publicField(this, "code", MigrateErrorCode.MustFollowLatest);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
class AlreadyExecutedMigrationError extends MigrationError {
|
|
206
|
+
constructor() {
|
|
207
|
+
super(...arguments);
|
|
208
|
+
__publicField(this, "code", MigrateErrorCode.AlreadyExecuted);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
class MigrationFailedError extends MigrationError {
|
|
212
|
+
constructor() {
|
|
213
|
+
super(...arguments);
|
|
214
|
+
__publicField(this, "code", MigrateErrorCode.MigrationFailed);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
class InvalidSchemaError extends MigrationError {
|
|
218
|
+
constructor() {
|
|
219
|
+
super(...arguments);
|
|
220
|
+
__publicField(this, "code", MigrateErrorCode.InvalidSchema);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
class FailedContentMigrationError extends MigrationError {
|
|
224
|
+
constructor() {
|
|
225
|
+
super(...arguments);
|
|
226
|
+
__publicField(this, "code", MigrateErrorCode.ContentMigrationFailed);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
class NotSuccessfulContentMigrationError extends MigrationError {
|
|
230
|
+
constructor() {
|
|
231
|
+
super(...arguments);
|
|
232
|
+
__publicField(this, "code", MigrateErrorCode.ContentMigrationNotSuccessful);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
export {
|
|
236
|
+
AlreadyExecutedMigrationError,
|
|
237
|
+
FailedContentMigrationError,
|
|
238
|
+
InvalidSchemaError,
|
|
239
|
+
MigrationError,
|
|
240
|
+
MigrationFailedError,
|
|
241
|
+
MustFollowLatestMigrationError,
|
|
242
|
+
NotSuccessfulContentMigrationError,
|
|
243
|
+
ProjectMigrator
|
|
244
|
+
};
|
|
245
|
+
//# sourceMappingURL=ProjectMigrator.js.map
|
|
@@ -0,0 +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\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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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
require("@contember/database");
|
|
4
|
+
require("@contember/schema-migrations");
|
|
5
|
+
require("../../schema/dev.graphql.cjs");
|
|
6
|
+
require("../../schema/system.graphql.cjs");
|
|
7
|
+
const SchemaQuery = require("../queries/schema/SchemaQuery.cjs");
|
|
8
|
+
const schemaUtils = require("@contember/schema-utils");
|
|
9
|
+
const emptyVersionedSchema = {
|
|
10
|
+
schema: schemaUtils.emptySchema,
|
|
11
|
+
meta: {}
|
|
12
|
+
};
|
|
13
|
+
class SchemaProvider {
|
|
14
|
+
constructor(executedMigrationsResolver, schemaMigrator) {
|
|
15
|
+
this.executedMigrationsResolver = executedMigrationsResolver;
|
|
16
|
+
this.schemaMigrator = schemaMigrator;
|
|
17
|
+
}
|
|
18
|
+
async buildSchemaFromMigrations(db) {
|
|
19
|
+
const newMigrations = await this.executedMigrationsResolver.getMigrations(db);
|
|
20
|
+
const partialResult = newMigrations.reduce(
|
|
21
|
+
(schema, migration) => {
|
|
22
|
+
return {
|
|
23
|
+
schema: migration.type !== "schema" ? schema.schema : this.schemaMigrator.applyModifications(schema.schema, migration.modifications, migration.formatVersion),
|
|
24
|
+
meta: {
|
|
25
|
+
version: migration.version,
|
|
26
|
+
id: migration.id,
|
|
27
|
+
updatedAt: migration.executedAt,
|
|
28
|
+
checksum: ""
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
},
|
|
32
|
+
emptyVersionedSchema
|
|
33
|
+
);
|
|
34
|
+
if (!partialResult.meta.version) {
|
|
35
|
+
return emptyVersionedSchema;
|
|
36
|
+
}
|
|
37
|
+
return {
|
|
38
|
+
schema: partialResult.schema,
|
|
39
|
+
meta: {
|
|
40
|
+
...partialResult.meta,
|
|
41
|
+
checksum: schemaUtils.calculateSchemaChecksum(partialResult.schema)
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
async fetch({ db, currentSchema }) {
|
|
46
|
+
const newSchema = await db.queryHandler.fetch(new SchemaQuery.SchemaQuery(currentSchema?.meta.checksum));
|
|
47
|
+
if (!newSchema) {
|
|
48
|
+
return currentSchema ?? emptyVersionedSchema;
|
|
49
|
+
}
|
|
50
|
+
return newSchema;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.SchemaProvider = SchemaProvider;
|
|
54
|
+
exports.emptyVersionedSchema = emptyVersionedSchema;
|
|
55
|
+
//# sourceMappingURL=SchemaProvider.cjs.map
|
|
@@ -0,0 +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\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;;;"}
|