@contember/engine-system-api 1.2.0 → 1.3.0-alpha.13
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/src/SystemContainer.d.ts +5 -12
- package/dist/src/SystemContainer.d.ts.map +1 -1
- package/dist/src/SystemContainer.js +4 -7
- package/dist/src/SystemContainer.js.map +1 -1
- package/dist/src/bin/runMigrations.d.ts +2 -0
- package/dist/src/bin/runMigrations.d.ts.map +1 -0
- package/dist/src/bin/runMigrations.js +34 -0
- package/dist/src/bin/runMigrations.js.map +1 -0
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -3
- package/dist/src/index.js.map +1 -1
- package/dist/src/migrations/2018-08-04-102200-init.d.ts +3 -0
- package/dist/src/migrations/2018-08-04-102200-init.d.ts.map +1 -0
- package/dist/src/migrations/2018-08-04-102200-init.js +37 -0
- package/dist/src/migrations/2018-08-04-102200-init.js.map +1 -0
- package/dist/src/migrations/2018-08-05-130501-trigger-event-function.d.ts +3 -0
- package/dist/src/migrations/2018-08-05-130501-trigger-event-function.d.ts.map +1 -0
- package/dist/src/migrations/2018-08-05-130501-trigger-event-function.js +99 -0
- package/dist/src/migrations/2018-08-05-130501-trigger-event-function.js.map +1 -0
- package/dist/src/migrations/2019-01-14-143432-event-trx-id.d.ts +3 -0
- package/dist/src/migrations/2019-01-14-143432-event-trx-id.d.ts.map +1 -0
- package/dist/src/migrations/2019-01-14-143432-event-trx-id.js +17 -0
- package/dist/src/migrations/2019-01-14-143432-event-trx-id.js.map +1 -0
- package/dist/src/migrations/2019-02-04-154500-event-rebase.d.ts +3 -0
- package/dist/src/migrations/2019-02-04-154500-event-rebase.d.ts.map +1 -0
- package/dist/src/migrations/2019-02-04-154500-event-rebase.js +59 -0
- package/dist/src/migrations/2019-02-04-154500-event-rebase.js.map +1 -0
- package/dist/src/migrations/2019-03-18-104147-event-run-migration-struct.d.ts +3 -0
- package/dist/src/migrations/2019-03-18-104147-event-run-migration-struct.d.ts.map +1 -0
- package/dist/src/migrations/2019-03-18-104147-event-run-migration-struct.js +12 -0
- package/dist/src/migrations/2019-03-18-104147-event-run-migration-struct.js.map +1 -0
- package/dist/src/migrations/2019-07-29-103000-trigger-event-function-fix.d.ts +3 -0
- package/dist/src/migrations/2019-07-29-103000-trigger-event-function-fix.d.ts.map +1 -0
- package/dist/src/migrations/2019-07-29-103000-trigger-event-function-fix.js +66 -0
- package/dist/src/migrations/2019-07-29-103000-trigger-event-function-fix.js.map +1 -0
- package/dist/src/migrations/2019-11-28-100000-missing-setting-fallback.d.ts +3 -0
- package/dist/src/migrations/2019-11-28-100000-missing-setting-fallback.d.ts.map +1 -0
- package/dist/src/migrations/2019-11-28-100000-missing-setting-fallback.js +21 -0
- package/dist/src/migrations/2019-11-28-100000-missing-setting-fallback.js.map +1 -0
- package/dist/src/migrations/2021-03-23-110000-timestamp-fix.d.ts +3 -0
- package/dist/src/migrations/2021-03-23-110000-timestamp-fix.d.ts.map +1 -0
- package/dist/src/migrations/2021-03-23-110000-timestamp-fix.js +15 -0
- package/dist/src/migrations/2021-03-23-110000-timestamp-fix.js.map +1 -0
- package/dist/src/migrations/2021-05-07-155800-event-log-rework.js +2 -2
- package/dist/src/migrations/2021-12-21-155500-events-up.d.ts +3 -0
- package/dist/src/migrations/2021-12-21-155500-events-up.d.ts.map +1 -0
- package/dist/src/migrations/2021-12-21-155500-events-up.js +15 -0
- package/dist/src/migrations/2021-12-21-155500-events-up.js.map +1 -0
- package/dist/src/migrations/2022-02-08-132600-fn-search-path.d.ts +3 -0
- package/dist/src/migrations/2022-02-08-132600-fn-search-path.d.ts.map +1 -0
- package/dist/src/migrations/2022-02-08-132600-fn-search-path.js +16 -0
- package/dist/src/migrations/2022-02-08-132600-fn-search-path.js.map +1 -0
- package/dist/src/migrations/2022-02-08-140500-drop-deadcode.d.ts +3 -0
- package/dist/src/migrations/2022-02-08-140500-drop-deadcode.d.ts.map +1 -0
- package/dist/src/migrations/2022-02-08-140500-drop-deadcode.js +11 -0
- package/dist/src/migrations/2022-02-08-140500-drop-deadcode.js.map +1 -0
- package/dist/src/migrations/2022-02-08-144400-dynamic-stage-schema.d.ts +3 -0
- package/dist/src/migrations/2022-02-08-144400-dynamic-stage-schema.d.ts.map +1 -0
- package/dist/src/migrations/2022-02-08-144400-dynamic-stage-schema.js +50 -0
- package/dist/src/migrations/2022-02-08-144400-dynamic-stage-schema.js.map +1 -0
- package/dist/src/migrations/2022-10-03-110000-table-on-delete.d.ts +4 -0
- package/dist/src/migrations/2022-10-03-110000-table-on-delete.d.ts.map +1 -0
- package/dist/src/migrations/2022-10-03-110000-table-on-delete.js +61 -0
- package/dist/src/migrations/2022-10-03-110000-table-on-delete.js.map +1 -0
- package/dist/src/migrations/runner.d.ts +18 -3
- package/dist/src/migrations/runner.d.ts.map +1 -1
- package/dist/src/migrations/runner.js +69 -10
- package/dist/src/migrations/runner.js.map +1 -1
- package/dist/src/migrations/snapshot-factory.d.ts +6 -0
- package/dist/src/migrations/snapshot-factory.d.ts.map +1 -0
- package/dist/src/migrations/snapshot-factory.js +46 -0
- package/dist/src/migrations/snapshot-factory.js.map +1 -0
- package/dist/src/migrations/snapshot.d.ts +3 -0
- package/dist/src/migrations/snapshot.d.ts.map +1 -0
- package/dist/src/migrations/snapshot.js +172 -0
- package/dist/src/migrations/snapshot.js.map +1 -0
- package/dist/src/migrations/types.d.ts +2 -0
- package/dist/src/migrations/types.d.ts.map +1 -1
- package/dist/src/model/ProjectInitializer.d.ts +6 -10
- package/dist/src/model/ProjectInitializer.d.ts.map +1 -1
- package/dist/src/model/ProjectInitializer.js +11 -29
- package/dist/src/model/ProjectInitializer.js.map +1 -1
- package/dist/src/model/commands/Command.d.ts +1 -5
- package/dist/src/model/commands/Command.d.ts.map +1 -1
- package/dist/src/model/database/DatabaseContext.d.ts +5 -4
- package/dist/src/model/database/DatabaseContext.d.ts.map +1 -1
- package/dist/src/model/database/DatabaseContext.js +7 -7
- package/dist/src/model/database/DatabaseContext.js.map +1 -1
- package/dist/src/model/dtos/ExecutedMigration.d.ts +2 -1
- package/dist/src/model/dtos/ExecutedMigration.d.ts.map +1 -1
- package/dist/src/model/dtos/ExecutedMigration.js +2 -1
- package/dist/src/model/dtos/ExecutedMigration.js.map +1 -1
- package/dist/src/model/events/EventResponseBuilder.d.ts +2 -2
- package/dist/src/model/events/EventResponseBuilder.d.ts.map +1 -1
- package/dist/src/model/events/EventResponseBuilder.js +10 -10
- package/dist/src/model/events/EventResponseBuilder.js.map +1 -1
- package/dist/src/model/events/EventResponseHelper.d.ts +1 -1
- package/dist/src/model/events/EventResponseHelper.d.ts.map +1 -1
- package/dist/src/model/events/index.d.ts +1 -0
- package/dist/src/model/events/index.d.ts.map +1 -1
- package/dist/src/model/events/index.js +1 -0
- package/dist/src/model/events/index.js.map +1 -1
- package/dist/src/model/events/types.d.ts +56 -0
- package/dist/src/model/events/types.d.ts.map +1 -0
- package/dist/src/model/events/types.js +51 -0
- package/dist/src/model/events/types.js.map +1 -0
- package/dist/src/model/helpers/index.d.ts +0 -1
- package/dist/src/model/helpers/index.d.ts.map +1 -1
- package/dist/src/model/helpers/index.js +0 -1
- package/dist/src/model/helpers/index.js.map +1 -1
- package/dist/src/model/index.d.ts +1 -0
- package/dist/src/model/index.d.ts.map +1 -1
- package/dist/src/model/index.js +1 -0
- package/dist/src/model/index.js.map +1 -1
- package/dist/src/model/metadata/ResolvedDatabaseMetadata.d.ts +13 -0
- package/dist/src/model/metadata/ResolvedDatabaseMetadata.d.ts.map +1 -0
- package/dist/src/model/metadata/ResolvedDatabaseMetadata.js +42 -0
- package/dist/src/model/metadata/ResolvedDatabaseMetadata.js.map +1 -0
- package/dist/src/model/metadata/SchemaDatabaseMetadataResolver.d.ts +8 -0
- package/dist/src/model/metadata/SchemaDatabaseMetadataResolver.d.ts.map +1 -0
- package/dist/src/model/metadata/SchemaDatabaseMetadataResolver.js +92 -0
- package/dist/src/model/metadata/SchemaDatabaseMetadataResolver.js.map +1 -0
- package/dist/src/model/metadata/SchemaDatabaseMetadataResolverStore.d.ts +17 -0
- package/dist/src/model/metadata/SchemaDatabaseMetadataResolverStore.d.ts.map +1 -0
- package/dist/src/model/metadata/SchemaDatabaseMetadataResolverStore.js +33 -0
- package/dist/src/model/metadata/SchemaDatabaseMetadataResolverStore.js.map +1 -0
- package/dist/src/model/metadata/index.d.ts +4 -0
- package/dist/src/model/metadata/index.d.ts.map +1 -0
- package/dist/src/model/metadata/index.js +22 -0
- package/dist/src/model/metadata/index.js.map +1 -0
- package/dist/src/model/migrations/ProjectMigrator.d.ts +3 -1
- package/dist/src/model/migrations/ProjectMigrator.d.ts.map +1 -1
- package/dist/src/model/migrations/ProjectMigrator.js +14 -6
- package/dist/src/model/migrations/ProjectMigrator.js.map +1 -1
- package/dist/src/model/migrations/SchemaVersionBuilder.d.ts +20 -0
- package/dist/src/model/migrations/SchemaVersionBuilder.d.ts.map +1 -1
- package/dist/src/model/migrations/SchemaVersionBuilder.js +5 -4
- package/dist/src/model/migrations/SchemaVersionBuilder.js.map +1 -1
- package/dist/src/model/queries/events/EventQueryHelpers.d.ts +2 -2
- package/dist/src/model/queries/events/EventQueryHelpers.d.ts.map +1 -1
- package/dist/src/model/queries/events/EventQueryHelpers.js +7 -7
- package/dist/src/model/queries/events/EventQueryHelpers.js.map +1 -1
- package/dist/src/model/queries/events/EventsQuery.d.ts +2 -2
- package/dist/src/model/queries/events/EventsQuery.d.ts.map +1 -1
- package/dist/src/model/queries/events/EventsQuery.js.map +1 -1
- package/dist/src/model/queries/migrations/ExecutedMigrationsQueryHelper.d.ts +1 -0
- package/dist/src/model/queries/migrations/ExecutedMigrationsQueryHelper.d.ts.map +1 -1
- package/dist/src/model/queries/migrations/ExecutedMigrationsQueryHelper.js +2 -1
- package/dist/src/model/queries/migrations/ExecutedMigrationsQueryHelper.js.map +1 -1
- package/dist/src/tsconfig.tsbuildinfo +1 -1
- package/dist/tests/cases/migrations/2020-05-06-150000-composed-primary.test.js +2 -0
- package/dist/tests/cases/migrations/2020-05-06-150000-composed-primary.test.js.map +1 -1
- package/dist/tests/cases/migrations/2020-06-01-103000-event-trigger-perf.test.js +2 -0
- package/dist/tests/cases/migrations/2020-06-01-103000-event-trigger-perf.test.js.map +1 -1
- 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/2022-10-03-110000-table-on-delete.test.js +43 -0
- package/dist/tests/cases/migrations/2022-10-03-110000-table-on-delete.test.js.map +1 -0
- package/dist/tests/tsconfig.tsbuildinfo +1 -1
- package/package.json +18 -15
- package/src/SystemContainer.ts +8 -18
- package/src/bin/runMigrations.ts +42 -0
- package/src/index.ts +2 -2
- package/src/migrations/{2018-08-04-102200-init.sql → 2018-08-04-102200-init.ts} +8 -0
- package/src/migrations/{2018-08-05-130501-trigger-event-function.sql → 2018-08-05-130501-trigger-event-function.ts} +8 -0
- package/src/migrations/{2019-01-14-143432-event-trx-id.sql → 2019-01-14-143432-event-trx-id.ts} +8 -0
- package/src/migrations/{2019-02-04-154500-event-rebase.sql → 2019-02-04-154500-event-rebase.ts} +9 -0
- package/src/migrations/2019-03-18-104147-event-run-migration-struct.ts +11 -0
- package/src/migrations/{2019-07-29-103000-trigger-event-function-fix.sql → 2019-07-29-103000-trigger-event-function-fix.ts} +8 -0
- package/src/migrations/{2019-11-28-100000-missing-setting-fallback.sql → 2019-11-28-100000-missing-setting-fallback.ts} +8 -0
- package/src/migrations/{2021-03-23-110000-timestamp-fix.sql → 2021-03-23-110000-timestamp-fix.ts} +8 -0
- package/src/migrations/2021-05-07-155800-event-log-rework.ts +2 -2
- package/src/migrations/{2021-12-21-155500-events-up.sql → 2021-12-21-155500-events-up.ts} +8 -0
- package/src/migrations/{2022-02-08-132600-fn-search-path.sql → 2022-02-08-132600-fn-search-path.ts} +8 -0
- package/src/migrations/2022-02-08-140500-drop-deadcode.ts +10 -0
- package/src/migrations/{2022-02-08-144400-dynamic-stage-schema.sql → 2022-02-08-144400-dynamic-stage-schema.ts} +8 -0
- package/src/migrations/2022-10-03-110000-table-on-delete.ts +65 -0
- package/src/migrations/runner.ts +85 -15
- package/src/migrations/snapshot-factory.ts +45 -0
- package/src/migrations/snapshot-template-end.txt +1 -0
- package/src/migrations/snapshot-template-start.txt +2 -0
- package/src/migrations/snapshot.ts +169 -0
- package/src/migrations/types.ts +2 -0
- package/src/model/ProjectInitializer.ts +15 -50
- package/src/model/commands/Command.ts +1 -1
- package/src/model/database/DatabaseContext.ts +12 -8
- package/src/model/dtos/ExecutedMigration.ts +1 -0
- package/src/model/events/EventResponseBuilder.ts +3 -3
- package/src/model/events/EventResponseHelper.ts +1 -1
- package/src/model/events/index.ts +1 -0
- package/src/model/events/types.ts +63 -0
- package/src/model/helpers/index.ts +0 -1
- package/src/model/index.ts +1 -0
- package/src/model/metadata/ResolvedDatabaseMetadata.ts +54 -0
- package/src/model/metadata/SchemaDatabaseMetadataResolver.ts +136 -0
- package/src/model/metadata/SchemaDatabaseMetadataResolverStore.ts +41 -0
- package/src/model/metadata/index.ts +3 -0
- package/src/model/migrations/ProjectMigrator.ts +19 -5
- package/src/model/migrations/SchemaVersionBuilder.ts +3 -2
- package/src/model/queries/events/EventQueryHelpers.ts +2 -2
- package/src/model/queries/events/EventsQuery.ts +2 -2
- package/src/model/queries/migrations/ExecutedMigrationsQueryHelper.ts +3 -1
- package/src/tsconfig.json +10 -33
- package/tests/cases/migrations/2020-05-06-150000-composed-primary.test.ts +2 -0
- package/tests/cases/migrations/2020-06-01-103000-event-trigger-perf.test.ts +2 -0
- package/tests/cases/migrations/2022-10-03-110000-table-on-delete.test.ts +45 -0
- package/tests/tsconfig.json +2 -6
- package/tsconfig.json +2 -6
- package/dist/src/model/helpers/SystemVariablesSetupHelper.d.ts +0 -5
- package/dist/src/model/helpers/SystemVariablesSetupHelper.d.ts.map +0 -1
- package/dist/src/model/helpers/SystemVariablesSetupHelper.js +0 -15
- package/dist/src/model/helpers/SystemVariablesSetupHelper.js.map +0 -1
- package/dist/tests/cases/integration/systemApi/projectInitializer.test.d.ts +0 -2
- package/dist/tests/cases/integration/systemApi/projectInitializer.test.d.ts.map +0 -1
- package/dist/tests/cases/integration/systemApi/projectInitializer.test.js +0 -26
- package/dist/tests/cases/integration/systemApi/projectInitializer.test.js.map +0 -1
- package/src/migrations/2019-03-18-104147-event-run-migration-struct.sql +0 -3
- package/src/migrations/2022-02-08-140500-drop-deadcode.sql +0 -2
- package/src/model/helpers/SystemVariablesSetupHelper.ts +0 -14
- package/tests/cases/integration/systemApi/projectInitializer.test.ts +0 -31
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const snapshot_factory_1 = require("./snapshot-factory");
|
|
4
|
+
exports.default = (0, snapshot_factory_1.snapshotMigration)(({ randomUuidFn }) => `
|
|
5
|
+
CREATE DOMAIN "event_data_type" AS "text"
|
|
6
|
+
CONSTRAINT "event_data_type_check" CHECK ((VALUE = ANY (ARRAY['create'::"text", 'update'::"text", 'delete'::"text"])));
|
|
7
|
+
CREATE DOMAIN "event_type" AS "text"
|
|
8
|
+
CONSTRAINT "event_type_check" CHECK ((VALUE = ANY (ARRAY['init'::"text", 'create'::"text", 'update'::"text", 'delete'::"text", 'run_migration'::"text"])));
|
|
9
|
+
CREATE FUNCTION "trigger_event"() RETURNS "trigger"
|
|
10
|
+
LANGUAGE "plpgsql"
|
|
11
|
+
AS $$
|
|
12
|
+
DECLARE new_event_type TEXT;
|
|
13
|
+
DECLARE table_name TEXT;
|
|
14
|
+
DECLARE values JSONB;
|
|
15
|
+
DECLARE update_diff JSONB;
|
|
16
|
+
DECLARE primary_values JSONB;
|
|
17
|
+
DECLARE old_row JSONB;
|
|
18
|
+
DECLARE new_row JSONB;
|
|
19
|
+
BEGIN
|
|
20
|
+
old_row := CASE WHEN TG_OP = 'DELETE' OR TG_OP = 'UPDATE' THEN TO_JSONB(old) ELSE NULL END;
|
|
21
|
+
new_row := CASE WHEN TG_OP = 'INSERT' OR TG_OP = 'UPDATE' THEN TO_JSONB(new) ELSE NULL END;
|
|
22
|
+
primary_values := (
|
|
23
|
+
SELECT JSONB_AGG(value ORDER BY array_position(TG_ARGV, key))
|
|
24
|
+
FROM JSONB_EACH(COALESCE(old_row, new_row))
|
|
25
|
+
WHERE key = ANY (TG_ARGV)
|
|
26
|
+
);
|
|
27
|
+
table_name := tg_table_name;
|
|
28
|
+
CASE TG_OP
|
|
29
|
+
WHEN 'INSERT' THEN BEGIN
|
|
30
|
+
new_event_type := 'create';
|
|
31
|
+
values := COALESCE(
|
|
32
|
+
(
|
|
33
|
+
SELECT JSONB_OBJECT_AGG(key, value)
|
|
34
|
+
FROM JSONB_EACH(new_row)
|
|
35
|
+
WHERE NOT (key = ANY (TG_ARGV))
|
|
36
|
+
),
|
|
37
|
+
JSONB_BUILD_OBJECT()
|
|
38
|
+
);
|
|
39
|
+
END;
|
|
40
|
+
WHEN 'UPDATE' THEN BEGIN
|
|
41
|
+
update_diff := (
|
|
42
|
+
SELECT JSONB_OBJECT_AGG(COALESCE(n.key, o.key), n.value)
|
|
43
|
+
FROM JSONB_EACH(old_row) o
|
|
44
|
+
FULL OUTER JOIN JSONB_EACH(new_row) n ON n.key = o.key
|
|
45
|
+
WHERE n.value IS DISTINCT FROM o.value
|
|
46
|
+
);
|
|
47
|
+
IF (SELECT COUNT(*) FROM JSONB_OBJECT_KEYS(update_diff)) = 0 THEN
|
|
48
|
+
RETURN NULL;
|
|
49
|
+
END IF;
|
|
50
|
+
new_event_type := 'update';
|
|
51
|
+
values := update_diff;
|
|
52
|
+
END;
|
|
53
|
+
WHEN 'DELETE' THEN BEGIN
|
|
54
|
+
new_event_type := 'delete';
|
|
55
|
+
END;
|
|
56
|
+
ELSE RAISE
|
|
57
|
+
EXCEPTION 'Unknown TG_OP value %', TG_OP;
|
|
58
|
+
END CASE;
|
|
59
|
+
CASE WHEN NULLIF(CURRENT_SETTING('system.schema_id', true), '') IS NULL THEN
|
|
60
|
+
PERFORM SET_CONFIG('system.schema_id', (select MAX("id")::TEXT from schema_migration), TRUE);
|
|
61
|
+
ELSE
|
|
62
|
+
-- do nothing
|
|
63
|
+
END CASE;
|
|
64
|
+
INSERT INTO "event_data" ("id", "type", "table_name", "row_ids", "values", "created_at", schema_id, identity_id)
|
|
65
|
+
VALUES (
|
|
66
|
+
"${randomUuidFn}"(),
|
|
67
|
+
new_event_type,
|
|
68
|
+
table_name,
|
|
69
|
+
primary_values,
|
|
70
|
+
values,
|
|
71
|
+
CLOCK_TIMESTAMP(),
|
|
72
|
+
CURRENT_SETTING('system.schema_id')::INT,
|
|
73
|
+
COALESCE(
|
|
74
|
+
CURRENT_SETTING('tenant.identity_id'::TEXT, TRUE)::UUID,
|
|
75
|
+
'00000000-0000-0000-0000-000000000000'::UUID)
|
|
76
|
+
);
|
|
77
|
+
RETURN NULL;
|
|
78
|
+
END;
|
|
79
|
+
$$;
|
|
80
|
+
CREATE FUNCTION "trigger_event_commit"() RETURNS "trigger"
|
|
81
|
+
LANGUAGE "plpgsql"
|
|
82
|
+
AS $$
|
|
83
|
+
BEGIN
|
|
84
|
+
PERFORM PG_ADVISORY_XACT_LOCK(5218230332970456493); -- well-known random number
|
|
85
|
+
CASE WHEN
|
|
86
|
+
NULLIF(CURRENT_SETTING('system.transaction_id', TRUE), '') IS NOT NULL
|
|
87
|
+
AND NULLIF(CURRENT_SETTING('system.transaction_inserted', TRUE), '') IS NULL
|
|
88
|
+
THEN
|
|
89
|
+
INSERT INTO stage_transaction(transaction_id, stage_id, applied_at)
|
|
90
|
+
VALUES (CURRENT_SETTING('system.transaction_id')::UUID,
|
|
91
|
+
(
|
|
92
|
+
SELECT id
|
|
93
|
+
FROM stage
|
|
94
|
+
WHERE schema = TG_TABLE_SCHEMA
|
|
95
|
+
),
|
|
96
|
+
CLOCK_TIMESTAMP())
|
|
97
|
+
ON CONFLICT DO NOTHING;
|
|
98
|
+
PERFORM SET_CONFIG('system.transaction_inserted', '1', TRUE);
|
|
99
|
+
ELSE
|
|
100
|
+
-- do nothing
|
|
101
|
+
END CASE;
|
|
102
|
+
RETURN NULL;
|
|
103
|
+
END
|
|
104
|
+
$$;
|
|
105
|
+
CREATE TABLE "event_data" (
|
|
106
|
+
"id" "uuid" NOT NULL,
|
|
107
|
+
"type" "event_data_type" NOT NULL,
|
|
108
|
+
"table_name" "text" NOT NULL,
|
|
109
|
+
"row_ids" "jsonb" NOT NULL,
|
|
110
|
+
"values" "jsonb",
|
|
111
|
+
"created_at" timestamp with time zone DEFAULT "clock_timestamp"() NOT NULL,
|
|
112
|
+
"schema_id" integer NOT NULL,
|
|
113
|
+
"identity_id" "uuid" NOT NULL,
|
|
114
|
+
"transaction_id" "uuid" DEFAULT COALESCE((NULLIF("current_setting"('system.transaction_id'::"text", true), ''::"text"))::"uuid", ("set_config"('system.transaction_id'::"text", ("${randomUuidFn}"())::"text", true))::"uuid") NOT NULL
|
|
115
|
+
);
|
|
116
|
+
CREATE TABLE "schema_migration" (
|
|
117
|
+
"id" integer NOT NULL,
|
|
118
|
+
"version" character varying(20) NOT NULL,
|
|
119
|
+
"name" character varying(255) NOT NULL,
|
|
120
|
+
"migration" "json" NOT NULL,
|
|
121
|
+
"checksum" character(32) NOT NULL,
|
|
122
|
+
"executed_at" timestamp with time zone DEFAULT "now"() NOT NULL
|
|
123
|
+
);
|
|
124
|
+
CREATE SEQUENCE "schema_migration_id_seq"
|
|
125
|
+
AS integer
|
|
126
|
+
START WITH 1
|
|
127
|
+
INCREMENT BY 1
|
|
128
|
+
NO MINVALUE
|
|
129
|
+
NO MAXVALUE
|
|
130
|
+
CACHE 1;
|
|
131
|
+
ALTER SEQUENCE "schema_migration_id_seq" OWNED BY "schema_migration"."id";
|
|
132
|
+
CREATE TABLE "stage" (
|
|
133
|
+
"id" "uuid" NOT NULL,
|
|
134
|
+
"name" "text" NOT NULL,
|
|
135
|
+
"slug" "text" NOT NULL,
|
|
136
|
+
"schema" "text" NOT NULL
|
|
137
|
+
);
|
|
138
|
+
CREATE TABLE "stage_transaction" (
|
|
139
|
+
"transaction_id" "uuid" NOT NULL,
|
|
140
|
+
"stage_id" "uuid" NOT NULL,
|
|
141
|
+
"applied_at" timestamp with time zone NOT NULL
|
|
142
|
+
);
|
|
143
|
+
ALTER TABLE ONLY "schema_migration" ALTER COLUMN "id" SET DEFAULT "nextval"('"schema_migration_id_seq"'::"regclass");
|
|
144
|
+
ALTER TABLE ONLY "event_data"
|
|
145
|
+
ADD CONSTRAINT "event_data_pkey" PRIMARY KEY ("id");
|
|
146
|
+
ALTER TABLE ONLY "schema_migration"
|
|
147
|
+
ADD CONSTRAINT "schema_migration_name_key" UNIQUE ("name");
|
|
148
|
+
ALTER TABLE ONLY "schema_migration"
|
|
149
|
+
ADD CONSTRAINT "schema_migration_pkey" PRIMARY KEY ("id");
|
|
150
|
+
ALTER TABLE ONLY "schema_migration"
|
|
151
|
+
ADD CONSTRAINT "schema_migration_version_key" UNIQUE ("version");
|
|
152
|
+
ALTER TABLE ONLY "stage"
|
|
153
|
+
ADD CONSTRAINT "stage_pkey" PRIMARY KEY ("id");
|
|
154
|
+
ALTER TABLE ONLY "stage"
|
|
155
|
+
ADD CONSTRAINT "stage_schema_key" UNIQUE ("schema");
|
|
156
|
+
ALTER TABLE ONLY "stage"
|
|
157
|
+
ADD CONSTRAINT "stage_slug_key" UNIQUE ("slug");
|
|
158
|
+
ALTER TABLE ONLY "stage_transaction"
|
|
159
|
+
ADD CONSTRAINT "stage_transaction_pkey" PRIMARY KEY ("transaction_id", "stage_id");
|
|
160
|
+
CREATE INDEX "event_data_created" ON "event_data" USING "btree" ("created_at");
|
|
161
|
+
CREATE INDEX "system_event2_table_name" ON "event_data" USING "btree" ("table_name");
|
|
162
|
+
CREATE INDEX "system_event2_transaction" ON "event_data" USING "btree" ("transaction_id");
|
|
163
|
+
CREATE INDEX "system_event2_type" ON "event_data" USING "btree" ("type");
|
|
164
|
+
CREATE INDEX "system_event_row_id" ON "event_data" USING "btree" ("row_ids");
|
|
165
|
+
CREATE INDEX "system_schema_migration_version" ON "schema_migration" USING "btree" ("version");
|
|
166
|
+
CREATE INDEX "transaction_applied" ON "stage_transaction" USING "btree" ("applied_at");
|
|
167
|
+
ALTER TABLE ONLY "event_data"
|
|
168
|
+
ADD CONSTRAINT "event_data_schema_id_fkey" FOREIGN KEY ("schema_id") REFERENCES "schema_migration"("id");
|
|
169
|
+
ALTER TABLE ONLY "stage_transaction"
|
|
170
|
+
ADD CONSTRAINT "stage_transaction_stage_id_fkey" FOREIGN KEY ("stage_id") REFERENCES "stage"("id") ON DELETE CASCADE;
|
|
171
|
+
`);
|
|
172
|
+
//# sourceMappingURL=snapshot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../../src/migrations/snapshot.ts"],"names":[],"mappings":";;AAAA,yDAAsD;AACtD,kBAAe,IAAA,oCAAiB,EAAC,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8DhD,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wLAgDqK,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDnM,CAAC,CAAA"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { Schema } from '@contember/schema';
|
|
2
2
|
import { ProjectConfig } from '../types';
|
|
3
3
|
import { Connection } from '@contember/database';
|
|
4
|
+
import { SchemaDatabaseMetadata } from '@contember/schema-utils';
|
|
4
5
|
export interface SystemMigrationArgs {
|
|
5
6
|
schemaResolver: (connection: Connection.ConnectionLike) => Promise<Schema>;
|
|
7
|
+
databaseMetadataResolver: (connection: Connection.ConnectionLike, schema: string) => Promise<SchemaDatabaseMetadata>;
|
|
6
8
|
project: ProjectConfig;
|
|
7
9
|
}
|
|
8
10
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/migrations/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/migrations/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAEhE,MAAM,WAAW,mBAAmB;IACnC,cAAc,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,cAAc,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IAC1E,wBAAwB,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAA;IACpH,OAAO,EAAE,aAAa,CAAA;CACtB"}
|
|
@@ -1,19 +1,15 @@
|
|
|
1
1
|
import { ProjectConfig } from '../types';
|
|
2
|
-
import { ProjectMigrator, SchemaVersionBuilder } from './migrations';
|
|
3
2
|
import { StageCreator } from './stages';
|
|
4
3
|
import { DatabaseContextFactory } from './database';
|
|
5
|
-
import { SystemDbMigrationsRunnerFactory } from '../SystemContainer';
|
|
6
|
-
import { DatabaseConfig } from '@contember/database';
|
|
7
4
|
import { Logger } from '@contember/logger';
|
|
5
|
+
import { SystemMigrationsRunner } from '../migrations';
|
|
8
6
|
export declare class ProjectInitializer {
|
|
9
|
-
private readonly projectMigrator;
|
|
10
7
|
private readonly stageCreator;
|
|
11
|
-
private readonly
|
|
12
|
-
private readonly
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}, logger: Logger): Promise<void>;
|
|
8
|
+
private readonly migrationsRunner;
|
|
9
|
+
private readonly databaseContextFactory;
|
|
10
|
+
private readonly project;
|
|
11
|
+
constructor(stageCreator: StageCreator, migrationsRunner: SystemMigrationsRunner, databaseContextFactory: DatabaseContextFactory, project: ProjectConfig);
|
|
12
|
+
initialize(logger: Logger): Promise<void>;
|
|
17
13
|
private initStages;
|
|
18
14
|
}
|
|
19
15
|
//# sourceMappingURL=ProjectInitializer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectInitializer.d.ts","sourceRoot":"","sources":["../../../src/model/ProjectInitializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ProjectInitializer.d.ts","sourceRoot":"","sources":["../../../src/model/ProjectInitializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAmB,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAEpE,OAAO,EAA8B,MAAM,EAAE,MAAM,mBAAmB,CAAA;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAEtD,qBAAa,kBAAkB;IAE7B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAHP,YAAY,EAAE,YAAY,EAC1B,gBAAgB,EAAE,sBAAsB,EACxC,sBAAsB,EAAE,sBAAsB,EAC9C,OAAO,EAAE,aAAa;IAG3B,UAAU,CAAC,MAAM,EAAE,MAAM;YAiBxB,UAAU;CAWxB"}
|
|
@@ -4,46 +4,28 @@ exports.ProjectInitializer = void 0;
|
|
|
4
4
|
const database_1 = require("@contember/database");
|
|
5
5
|
const logger_1 = require("@contember/logger");
|
|
6
6
|
class ProjectInitializer {
|
|
7
|
-
constructor(
|
|
8
|
-
this.projectMigrator = projectMigrator;
|
|
7
|
+
constructor(stageCreator, migrationsRunner, databaseContextFactory, project) {
|
|
9
8
|
this.stageCreator = stageCreator;
|
|
10
|
-
this.
|
|
11
|
-
this.
|
|
9
|
+
this.migrationsRunner = migrationsRunner;
|
|
10
|
+
this.databaseContextFactory = databaseContextFactory;
|
|
11
|
+
this.project = project;
|
|
12
12
|
}
|
|
13
|
-
async initialize(
|
|
14
|
-
const dbContext = databaseContextFactory.create();
|
|
13
|
+
async initialize(logger) {
|
|
15
14
|
return await logger.scope(async (initLogger) => {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
await (0, database_1.createDatabaseIfNotExists)(project.db, message => typeof message === 'string' ? initLogger.warn(message) : initLogger.error(message));
|
|
20
|
-
const singleConnection = database_1.Connection.createSingle(project.db, err => initLogger.error(err, { message: 'Database client error' }));
|
|
21
|
-
await singleConnection.scope(async (connection) => {
|
|
22
|
-
const systemSchema = dbContext.client.schema;
|
|
23
|
-
const schemaResolver = (connection) => {
|
|
24
|
-
const dbContextMigrations = databaseContextFactory
|
|
25
|
-
.withClient(new database_1.Client(connection, systemSchema, { module: 'system' }))
|
|
26
|
-
.create();
|
|
27
|
-
return this.schemaVersionBuilder.buildSchema(dbContextMigrations);
|
|
28
|
-
};
|
|
29
|
-
await this.systemDbMigrationsRunnerFactory(connection, systemSchema).migrate(message => initLogger.warn(message), {
|
|
30
|
-
schemaResolver,
|
|
31
|
-
project,
|
|
32
|
-
});
|
|
33
|
-
});
|
|
34
|
-
await singleConnection.end();
|
|
35
|
-
}
|
|
15
|
+
initLogger.debug('Executing system schema migrations');
|
|
16
|
+
await this.migrationsRunner.run(initLogger);
|
|
17
|
+
const dbContext = this.databaseContextFactory.create();
|
|
36
18
|
await (0, database_1.retryTransaction)(() => dbContext.transaction(async (trx) => {
|
|
37
|
-
await this.initStages(trx,
|
|
19
|
+
await this.initStages(trx, logger);
|
|
38
20
|
}), message => initLogger.warn(message));
|
|
39
21
|
if (dbContext.client.connection instanceof database_1.Connection) {
|
|
40
22
|
await dbContext.client.connection.clearPool();
|
|
41
23
|
}
|
|
42
24
|
}, {}, { handler: logger_1.FingerCrossedLoggerHandler.factory() });
|
|
43
25
|
}
|
|
44
|
-
async initStages(db,
|
|
26
|
+
async initStages(db, logger) {
|
|
45
27
|
logger.debug(`Creating stages`);
|
|
46
|
-
for (const stage of project.stages) {
|
|
28
|
+
for (const stage of this.project.stages) {
|
|
47
29
|
const created = await this.stageCreator.createStage(db, stage);
|
|
48
30
|
if (created) {
|
|
49
31
|
logger.warn(`Created stage ${stage.slug}`, { stage: stage.slug });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectInitializer.js","sourceRoot":"","sources":["../../../src/model/ProjectInitializer.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"ProjectInitializer.js","sourceRoot":"","sources":["../../../src/model/ProjectInitializer.ts"],"names":[],"mappings":";;;AAGA,kDAAkE;AAClE,8CAAsE;AAGtE,MAAa,kBAAkB;IAC9B,YACkB,YAA0B,EAC1B,gBAAwC,EACxC,sBAA8C,EAC9C,OAAsB;QAHtB,iBAAY,GAAZ,YAAY,CAAc;QAC1B,qBAAgB,GAAhB,gBAAgB,CAAwB;QACxC,2BAAsB,GAAtB,sBAAsB,CAAwB;QAC9C,YAAO,GAAP,OAAO,CAAe;IACrC,CAAC;IAEG,KAAK,CAAC,UAAU,CAAC,MAAc;QACrC,OAAO,MAAM,MAAM,CAAC,KAAK,CAAC,KAAK,EAAC,UAAU,EAAC,EAAE;YAC5C,UAAU,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAA;YACtD,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;YAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,CAAA;YACtD,MAAM,IAAA,2BAAgB,EACrB,GAAG,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,EAAC,GAAG,EAAC,EAAE;gBACvC,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;YACnC,CAAC,CAAC,EACF,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CACnC,CAAA;YACD,IAAI,SAAS,CAAC,MAAM,CAAC,UAAU,YAAY,qBAAU,EAAE;gBACtD,MAAM,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,CAAA;aAC7C;QACF,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,mCAA0B,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;IAC1D,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,EAA+C,EAAE,MAAc;QACvF,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;QAC/B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YACxC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;YAC9D,IAAI,OAAO,EAAE;gBACZ,MAAM,CAAC,IAAI,CAAC,iBAAiB,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;aACjE;iBAAM;gBACN,MAAM,CAAC,KAAK,CAAC,iBAAiB,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;aAClE;SACD;IACF,CAAC;CACD;AApCD,gDAoCC"}
|
|
@@ -2,11 +2,7 @@ import { Client } from '@contember/database';
|
|
|
2
2
|
import { CommandBus } from './CommandBus';
|
|
3
3
|
import { Providers } from '../../utils';
|
|
4
4
|
interface Command<Result> {
|
|
5
|
-
execute(args:
|
|
6
|
-
db: Client;
|
|
7
|
-
providers: Providers;
|
|
8
|
-
bus: CommandBus;
|
|
9
|
-
}): Promise<Result>;
|
|
5
|
+
execute(args: Command.Args): Promise<Result>;
|
|
10
6
|
}
|
|
11
7
|
declare namespace Command {
|
|
12
8
|
interface Args {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Command.d.ts","sourceRoot":"","sources":["../../../../src/model/commands/Command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,UAAU,OAAO,CAAC,MAAM;IACvB,OAAO,CAAC,IAAI,EAAE
|
|
1
|
+
{"version":3,"file":"Command.d.ts","sourceRoot":"","sources":["../../../../src/model/commands/Command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,UAAU,OAAO,CAAC,MAAM;IACvB,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;CAC5C;AAED,kBAAU,OAAO,CAAC;IACjB,UAAiB,IAAI;QACpB,EAAE,EAAE,MAAM,CAAA;QACV,SAAS,EAAE,SAAS,CAAA;QACpB,GAAG,EAAE,UAAU,CAAA;KACf;CACD;AACD,OAAO,EAAE,OAAO,EAAE,CAAA"}
|
|
@@ -6,14 +6,15 @@ export interface DatabaseContext<ConnectionType extends Connection.ConnectionLik
|
|
|
6
6
|
client: Client<ConnectionType>;
|
|
7
7
|
queryHandler: QueryHandler<DatabaseQueryable>;
|
|
8
8
|
transaction: <T>(cb: (db: DatabaseContext<Connection.TransactionLike>) => Promise<T> | T) => Promise<T>;
|
|
9
|
+
scope: <T>(cb: (db: DatabaseContext<ConnectionType & Connection.AcquiredConnectionLike>) => Promise<T> | T) => Promise<T>;
|
|
9
10
|
locked: <T>(lock: number, cb: (db: DatabaseContext<Connection.ConnectionLike>) => Promise<T> | T) => Promise<T>;
|
|
10
11
|
commandBus: CommandBus;
|
|
11
12
|
}
|
|
12
13
|
export declare class DatabaseContextFactory {
|
|
13
|
-
|
|
14
|
+
readonly schemaName: string;
|
|
15
|
+
private readonly connection;
|
|
14
16
|
private readonly providers;
|
|
15
|
-
constructor(
|
|
16
|
-
create(): DatabaseContext;
|
|
17
|
-
withClient(client: Client): DatabaseContextFactory;
|
|
17
|
+
constructor(schemaName: string, connection: Connection, providers: UuidProvider);
|
|
18
|
+
create(connection?: Connection.ConnectionLike): DatabaseContext;
|
|
18
19
|
}
|
|
19
20
|
//# sourceMappingURL=DatabaseContext.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatabaseContext.d.ts","sourceRoot":"","sources":["../../../../src/model/database/DatabaseContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"DatabaseContext.d.ts","sourceRoot":"","sources":["../../../../src/model/database/DatabaseContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,MAAM,WAAW,eAAe,CAAC,cAAc,SAAS,UAAU,CAAC,cAAc,GAAG,UAAU,CAAC,cAAc;IAC5G,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC,CAAA;IAC9B,YAAY,EAAE,YAAY,CAAC,iBAAiB,CAAC,CAAA;IAC7C,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,eAAe,CAAC,UAAU,CAAC,eAAe,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAA;IACvG,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,eAAe,CAAC,cAAc,GAAG,UAAU,CAAC,sBAAsB,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAA;IACzH,MAAM,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,eAAe,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAA;IAC/G,UAAU,EAAE,UAAU,CAAA;CACtB;AAED,qBAAa,sBAAsB;aAEjB,UAAU,EAAE,MAAM;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAFV,UAAU,EAAE,MAAM,EACjB,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,YAAY;IAGlC,MAAM,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,cAAc,GAAG,eAAe;CAItE"}
|
|
@@ -4,15 +4,14 @@ exports.DatabaseContextFactory = void 0;
|
|
|
4
4
|
const database_1 = require("@contember/database");
|
|
5
5
|
const commands_1 = require("../commands");
|
|
6
6
|
class DatabaseContextFactory {
|
|
7
|
-
constructor(
|
|
8
|
-
this.
|
|
7
|
+
constructor(schemaName, connection, providers) {
|
|
8
|
+
this.schemaName = schemaName;
|
|
9
|
+
this.connection = connection;
|
|
9
10
|
this.providers = providers;
|
|
10
11
|
}
|
|
11
|
-
create() {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
withClient(client) {
|
|
15
|
-
return new DatabaseContextFactory(client, this.providers);
|
|
12
|
+
create(connection) {
|
|
13
|
+
const client = new database_1.Client(connection !== null && connection !== void 0 ? connection : this.connection, this.schemaName, { module: 'system' });
|
|
14
|
+
return createDatabaseContext(client, this.providers);
|
|
16
15
|
}
|
|
17
16
|
}
|
|
18
17
|
exports.DatabaseContextFactory = DatabaseContextFactory;
|
|
@@ -23,6 +22,7 @@ const createDatabaseContext = (client, providers) => ({
|
|
|
23
22
|
await client.query(database_1.Connection.REPEATABLE_READ);
|
|
24
23
|
return cb(createDatabaseContext(client, providers));
|
|
25
24
|
}),
|
|
25
|
+
scope: cb => client.scope(client => cb(createDatabaseContext(client, providers))),
|
|
26
26
|
commandBus: new commands_1.CommandBus(client, providers),
|
|
27
27
|
locked: (lock, cb) => client.locked(lock, client => cb(createDatabaseContext(client, providers))),
|
|
28
28
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatabaseContext.js","sourceRoot":"","sources":["../../../../src/model/database/DatabaseContext.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"DatabaseContext.js","sourceRoot":"","sources":["../../../../src/model/database/DatabaseContext.ts"],"names":[],"mappings":";;;AAAA,kDAA2E;AAG3E,0CAAwC;AAWxC,MAAa,sBAAsB;IAClC,YACiB,UAAkB,EACjB,UAAsB,EACtB,SAAuB;QAFxB,eAAU,GAAV,UAAU,CAAQ;QACjB,eAAU,GAAV,UAAU,CAAY;QACtB,cAAS,GAAT,SAAS,CAAc;IACtC,CAAC;IAEG,MAAM,CAAC,UAAsC;QACnD,MAAM,MAAM,GAAG,IAAI,iBAAM,CAAC,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAA;QAC/F,OAAO,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;IACrD,CAAC;CACD;AAXD,wDAWC;AAED,MAAM,qBAAqB,GAAG,CAC7B,MAA8B,EAC9B,SAAuB,EACW,EAAE,CAAC,CAAC;IACtC,MAAM;IACN,YAAY,EAAE,MAAM,CAAC,kBAAkB,EAAE;IACzC,WAAW,EAAE,EAAE,CAAC,EAAE,CACjB,MAAM,CAAC,WAAW,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;QACjC,MAAM,MAAM,CAAC,KAAK,CAAC,qBAAU,CAAC,eAAe,CAAC,CAAA;QAC9C,OAAO,EAAE,CAAC,qBAAqB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAA;IACpD,CAAC,CAAC;IACH,KAAK,EAAE,EAAE,CAAC,EAAE,CACX,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,qBAAqB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IACrE,UAAU,EAAE,IAAI,qBAAU,CAAC,MAAM,EAAE,SAAS,CAAC;IAC7C,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,qBAAqB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;CACjG,CAAC,CAAA"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { Migration } from '@contember/schema-migrations';
|
|
2
2
|
export declare class ExecutedMigration implements Migration {
|
|
3
|
+
readonly id: number;
|
|
3
4
|
readonly name: string;
|
|
4
5
|
readonly formatVersion: number;
|
|
5
6
|
readonly modifications: Migration.Modification[];
|
|
6
7
|
readonly executedAt: Date;
|
|
7
8
|
readonly checksum: string;
|
|
8
9
|
readonly version: string;
|
|
9
|
-
constructor(name: string, formatVersion: number, modifications: Migration.Modification[], executedAt: Date, checksum: string);
|
|
10
|
+
constructor(id: number, name: string, formatVersion: number, modifications: Migration.Modification[], executedAt: Date, checksum: string);
|
|
10
11
|
}
|
|
11
12
|
//# sourceMappingURL=ExecutedMigration.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExecutedMigration.d.ts","sourceRoot":"","sources":["../../../../src/model/dtos/ExecutedMigration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA0B,MAAM,8BAA8B,CAAA;AAEhF,qBAAa,iBAAkB,YAAW,SAAS;aAIjC,IAAI,EAAE,MAAM;aACZ,aAAa,EAAE,MAAM;aACrB,aAAa,EAAE,SAAS,CAAC,YAAY,EAAE;aACvC,UAAU,EAAE,IAAI;aAChB,QAAQ,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"ExecutedMigration.d.ts","sourceRoot":"","sources":["../../../../src/model/dtos/ExecutedMigration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA0B,MAAM,8BAA8B,CAAA;AAEhF,qBAAa,iBAAkB,YAAW,SAAS;aAIjC,EAAE,EAAE,MAAM;aACV,IAAI,EAAE,MAAM;aACZ,aAAa,EAAE,MAAM;aACrB,aAAa,EAAE,SAAS,CAAC,YAAY,EAAE;aACvC,UAAU,EAAE,IAAI;aAChB,QAAQ,EAAE,MAAM;IARjC,SAAgB,OAAO,EAAE,MAAM,CAAA;gBAGd,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,SAAS,CAAC,YAAY,EAAE,EACvC,UAAU,EAAE,IAAI,EAChB,QAAQ,EAAE,MAAM;CAIjC"}
|
|
@@ -3,7 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ExecutedMigration = void 0;
|
|
4
4
|
const schema_migrations_1 = require("@contember/schema-migrations");
|
|
5
5
|
class ExecutedMigration {
|
|
6
|
-
constructor(name, formatVersion, modifications, executedAt, checksum) {
|
|
6
|
+
constructor(id, name, formatVersion, modifications, executedAt, checksum) {
|
|
7
|
+
this.id = id;
|
|
7
8
|
this.name = name;
|
|
8
9
|
this.formatVersion = formatVersion;
|
|
9
10
|
this.modifications = modifications;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExecutedMigration.js","sourceRoot":"","sources":["../../../../src/model/dtos/ExecutedMigration.ts"],"names":[],"mappings":";;;AAAA,oEAAgF;AAEhF,MAAa,iBAAiB;IAG7B,YACiB,IAAY,EACZ,aAAqB,EACrB,aAAuC,EACvC,UAAgB,EAChB,QAAgB;
|
|
1
|
+
{"version":3,"file":"ExecutedMigration.js","sourceRoot":"","sources":["../../../../src/model/dtos/ExecutedMigration.ts"],"names":[],"mappings":";;;AAAA,oEAAgF;AAEhF,MAAa,iBAAiB;IAG7B,YACiB,EAAU,EACV,IAAY,EACZ,aAAqB,EACrB,aAAuC,EACvC,UAAgB,EAChB,QAAgB;QALhB,OAAE,GAAF,EAAE,CAAQ;QACV,SAAI,GAAJ,IAAI,CAAQ;QACZ,kBAAa,GAAb,aAAa,CAAQ;QACrB,kBAAa,GAAb,aAAa,CAA0B;QACvC,eAAU,GAAV,UAAU,CAAM;QAChB,aAAQ,GAAR,QAAQ,CAAQ;QAEhC,IAAI,CAAC,OAAO,GAAG,0CAAsB,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;IAC3D,CAAC;CACD;AAbD,8CAaC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ContentEvent } from './types';
|
|
2
2
|
import { CreateEvent, DeleteEvent, UpdateEvent } from '../../schema';
|
|
3
3
|
import { IdentityFetcher } from '../dependencies';
|
|
4
4
|
export declare class EventResponseBuilder {
|
|
5
5
|
private readonly identityFetcher;
|
|
6
6
|
constructor(identityFetcher: IdentityFetcher);
|
|
7
|
-
buildResponse(events:
|
|
7
|
+
buildResponse(events: ContentEvent[]): Promise<(CreateEvent | DeleteEvent | UpdateEvent)[]>;
|
|
8
8
|
private formatDescription;
|
|
9
9
|
}
|
|
10
10
|
//# sourceMappingURL=EventResponseBuilder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventResponseBuilder.d.ts","sourceRoot":"","sources":["../../../../src/model/events/EventResponseBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"EventResponseBuilder.d.ts","sourceRoot":"","sources":["../../../../src/model/events/EventResponseBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAa,MAAM,SAAS,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,WAAW,EAA6B,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/F,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAIjD,qBAAa,oBAAoB;IACpB,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAAf,eAAe,EAAE,eAAe;IAEhD,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,CAAC,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC,EAAE,CAAC;IAiCxG,OAAO,CAAC,iBAAiB;CAYzB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.EventResponseBuilder = void 0;
|
|
4
|
-
const
|
|
4
|
+
const types_1 = require("./types");
|
|
5
5
|
const schema_1 = require("../../schema");
|
|
6
6
|
const utils_1 = require("../../utils");
|
|
7
7
|
const identityUtils_1 = require("./identityUtils");
|
|
@@ -12,9 +12,9 @@ class EventResponseBuilder {
|
|
|
12
12
|
}
|
|
13
13
|
async buildResponse(events) {
|
|
14
14
|
const apiEventTypeMapping = {
|
|
15
|
-
[
|
|
16
|
-
[
|
|
17
|
-
[
|
|
15
|
+
[types_1.EventType.create]: schema_1.EventType.Create,
|
|
16
|
+
[types_1.EventType.update]: schema_1.EventType.Update,
|
|
17
|
+
[types_1.EventType.delete]: schema_1.EventType.Delete,
|
|
18
18
|
};
|
|
19
19
|
const identityIds = events.map(it => it.identityId).filter((it, index, ids) => ids.indexOf(it) === index);
|
|
20
20
|
const identities = await this.identityFetcher.fetchIdentities(identityIds);
|
|
@@ -31,11 +31,11 @@ class EventResponseBuilder {
|
|
|
31
31
|
identityDescription: (0, identityUtils_1.formatIdentity)(identitiesMap[it.identityId]),
|
|
32
32
|
};
|
|
33
33
|
switch (it.type) {
|
|
34
|
-
case
|
|
34
|
+
case types_1.EventType.create:
|
|
35
35
|
return (() => (0, EventResponseHelper_1.appendCreateSpecificData)(commonData, it))();
|
|
36
|
-
case
|
|
36
|
+
case types_1.EventType.update:
|
|
37
37
|
return (() => (0, EventResponseHelper_1.appendUpdateSpecificData)(commonData, it))();
|
|
38
|
-
case
|
|
38
|
+
case types_1.EventType.delete:
|
|
39
39
|
return (() => (0, EventResponseHelper_1.appendDeleteSpecificData)(commonData, it))();
|
|
40
40
|
}
|
|
41
41
|
(0, utils_1.assertNever)(it);
|
|
@@ -43,11 +43,11 @@ class EventResponseBuilder {
|
|
|
43
43
|
}
|
|
44
44
|
formatDescription(event) {
|
|
45
45
|
switch (event.type) {
|
|
46
|
-
case
|
|
46
|
+
case types_1.EventType.create:
|
|
47
47
|
return `Creating ${event.tableName}#${event.rowId.join(';')}`;
|
|
48
|
-
case
|
|
48
|
+
case types_1.EventType.update:
|
|
49
49
|
return `Updating ${event.tableName}#${event.rowId.join(';')}`;
|
|
50
|
-
case
|
|
50
|
+
case types_1.EventType.delete:
|
|
51
51
|
return `Deleting ${event.tableName}#${event.rowId.join(';')}`;
|
|
52
52
|
default:
|
|
53
53
|
return (0, utils_1.assertNever)(event);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventResponseBuilder.js","sourceRoot":"","sources":["../../../../src/model/events/EventResponseBuilder.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"EventResponseBuilder.js","sourceRoot":"","sources":["../../../../src/model/events/EventResponseBuilder.ts"],"names":[],"mappings":";;;AAAA,mCAAiD;AACjD,yCAA+F;AAC/F,uCAAyC;AAEzC,mDAAgD;AAChD,+DAAoH;AAEpH,MAAa,oBAAoB;IAChC,YAA6B,eAAgC;QAAhC,oBAAe,GAAf,eAAe,CAAiB;IAAG,CAAC;IAE1D,KAAK,CAAC,aAAa,CAAC,MAAsB;QAChD,MAAM,mBAAmB,GAAG;YAC3B,CAAC,iBAAS,CAAC,MAAM,CAAC,EAAE,kBAAY,CAAC,MAAM;YACvC,CAAC,iBAAS,CAAC,MAAM,CAAC,EAAE,kBAAY,CAAC,MAAM;YACvC,CAAC,iBAAS,CAAC,MAAM,CAAC,EAAE,kBAAY,CAAC,MAAM;SACvC,CAAA;QACD,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,CAAA;QACzG,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,WAAW,CAAC,CAAA;QAC1E,MAAM,aAAa,GAAG,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;QAEnF,OAAO,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YACtB,MAAM,UAAU,GAAG;gBAClB,SAAS,EAAE,EAAE,CAAC,SAAS;gBACvB,SAAS,EAAE,EAAE,CAAC,SAAS;gBACvB,EAAE,EAAE,EAAE,CAAC,EAAE;gBACT,IAAI,EAAE,mBAAmB,CAAC,EAAE,CAAC,IAAI,CAAC;gBAClC,WAAW,EAAE,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBACvC,aAAa,EAAE,EAAE,CAAC,aAAa;gBAC/B,UAAU,EAAE,EAAE,CAAC,UAAU;gBACzB,mBAAmB,EAAE,IAAA,8BAAc,EAAC,aAAa,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;aACjE,CAAA;YACD,QAAQ,EAAE,CAAC,IAAI,EAAE;gBAChB,KAAK,iBAAS,CAAC,MAAM;oBACpB,OAAO,CAAC,GAAgB,EAAE,CAAC,IAAA,8CAAwB,EAAC,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,CAAA;gBACvE,KAAK,iBAAS,CAAC,MAAM;oBACpB,OAAO,CAAC,GAAgB,EAAE,CAAC,IAAA,8CAAwB,EAAC,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,CAAA;gBACvE,KAAK,iBAAS,CAAC,MAAM;oBACpB,OAAO,CAAC,GAAgB,EAAE,CAAC,IAAA,8CAAwB,EAAC,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,CAAA;aACvE;YACD,IAAA,mBAAW,EAAC,EAAE,CAAC,CAAA;QAChB,CAAC,CAAC,CAAA;IACH,CAAC;IAEO,iBAAiB,CAAC,KAAmB;QAC5C,QAAQ,KAAK,CAAC,IAAI,EAAE;YACnB,KAAK,iBAAS,CAAC,MAAM;gBACpB,OAAO,YAAY,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;YAC9D,KAAK,iBAAS,CAAC,MAAM;gBACpB,OAAO,YAAY,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;YAC9D,KAAK,iBAAS,CAAC,MAAM;gBACpB,OAAO,YAAY,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;YAC9D;gBACC,OAAO,IAAA,mBAAW,EAAC,KAAK,CAAC,CAAA;SAC1B;IACF,CAAC;CACD;AAhDD,oDAgDC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CreateEvent, DeleteEvent, UpdateEvent } from '
|
|
1
|
+
import { CreateEvent, DeleteEvent, UpdateEvent } from './types';
|
|
2
2
|
export declare const appendUpdateSpecificData: <T>(commonData: T, event: UpdateEvent) => T & {
|
|
3
3
|
tableName: string;
|
|
4
4
|
primaryKey: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventResponseHelper.d.ts","sourceRoot":"","sources":["../../../../src/model/events/EventResponseHelper.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"EventResponseHelper.d.ts","sourceRoot":"","sources":["../../../../src/model/events/EventResponseHelper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE/D,eAAO,MAAM,wBAAwB,4BAA6B,WAAW;;;;;;;CAM3E,CAAA;AAEF,eAAO,MAAM,wBAAwB,4BAA6B,WAAW;;;;;;CAK3E,CAAA;AAEF,eAAO,MAAM,wBAAwB,4BAA6B,WAAW;;;;CAK3E,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/model/events/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/model/events/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,SAAS,CAAA"}
|
|
@@ -15,4 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./EventResponseBuilder"), exports);
|
|
18
|
+
__exportStar(require("./types"), exports);
|
|
18
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/model/events/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAsC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/model/events/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAsC;AACtC,0CAAuB"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
export declare enum EventType {
|
|
2
|
+
delete = "delete",
|
|
3
|
+
update = "update",
|
|
4
|
+
create = "create"
|
|
5
|
+
}
|
|
6
|
+
export declare type ContentEvent = UpdateEvent | CreateEvent | DeleteEvent;
|
|
7
|
+
export interface Event {
|
|
8
|
+
readonly type: EventType;
|
|
9
|
+
readonly id: string;
|
|
10
|
+
readonly createdAt: Date;
|
|
11
|
+
readonly transactionId: string;
|
|
12
|
+
}
|
|
13
|
+
export declare class UpdateEvent implements Event {
|
|
14
|
+
readonly id: string;
|
|
15
|
+
readonly createdAt: Date;
|
|
16
|
+
readonly appliedAt: Date;
|
|
17
|
+
readonly identityId: string;
|
|
18
|
+
readonly transactionId: string;
|
|
19
|
+
readonly rowId: string[];
|
|
20
|
+
readonly tableName: string;
|
|
21
|
+
readonly values: {
|
|
22
|
+
[column: string]: any;
|
|
23
|
+
};
|
|
24
|
+
readonly type = EventType.update;
|
|
25
|
+
constructor(id: string, createdAt: Date, appliedAt: Date, identityId: string, transactionId: string, rowId: string[], tableName: string, values: {
|
|
26
|
+
[column: string]: any;
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
export declare class CreateEvent implements Event {
|
|
30
|
+
readonly id: string;
|
|
31
|
+
readonly createdAt: Date;
|
|
32
|
+
readonly appliedAt: Date;
|
|
33
|
+
readonly identityId: string;
|
|
34
|
+
readonly transactionId: string;
|
|
35
|
+
readonly rowId: string[];
|
|
36
|
+
readonly tableName: string;
|
|
37
|
+
readonly values: {
|
|
38
|
+
[column: string]: any;
|
|
39
|
+
};
|
|
40
|
+
readonly type = EventType.create;
|
|
41
|
+
constructor(id: string, createdAt: Date, appliedAt: Date, identityId: string, transactionId: string, rowId: string[], tableName: string, values: {
|
|
42
|
+
[column: string]: any;
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
export declare class DeleteEvent implements Event {
|
|
46
|
+
readonly id: string;
|
|
47
|
+
readonly createdAt: Date;
|
|
48
|
+
readonly appliedAt: Date;
|
|
49
|
+
readonly identityId: string;
|
|
50
|
+
readonly transactionId: string;
|
|
51
|
+
readonly rowId: string[];
|
|
52
|
+
readonly tableName: string;
|
|
53
|
+
readonly type = EventType.delete;
|
|
54
|
+
constructor(id: string, createdAt: Date, appliedAt: Date, identityId: string, transactionId: string, rowId: string[], tableName: string);
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/model/events/types.ts"],"names":[],"mappings":"AAAA,oBAAY,SAAS;IACpB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,MAAM,WAAW;CACjB;AAED,oBAAY,YAAY,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,CAAA;AAElE,MAAM,WAAW,KAAK;IACrB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAA;IACxB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;CAE9B;AAED,qBAAa,WAAY,YAAW,KAAK;aAIvB,EAAE,EAAE,MAAM;aACV,SAAS,EAAE,IAAI;aACf,SAAS,EAAE,IAAI;aACf,UAAU,EAAE,MAAM;aAClB,aAAa,EAAE,MAAM;aACrB,KAAK,EAAE,MAAM,EAAE;aACf,SAAS,EAAE,MAAM;aACjB,MAAM,EAAE;QAAE,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE;IAVlD,SAAgB,IAAI,oBAAmB;gBAGtB,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,IAAI,EACf,SAAS,EAAE,IAAI,EACf,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,EAAE,EACf,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE;QAAE,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE;CAGlD;AAED,qBAAa,WAAY,YAAW,KAAK;aAIvB,EAAE,EAAE,MAAM;aACV,SAAS,EAAE,IAAI;aACf,SAAS,EAAE,IAAI;aACf,UAAU,EAAE,MAAM;aAClB,aAAa,EAAE,MAAM;aACrB,KAAK,EAAE,MAAM,EAAE;aACf,SAAS,EAAE,MAAM;aACjB,MAAM,EAAE;QAAE,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE;IAVlD,SAAgB,IAAI,oBAAmB;gBAGtB,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,IAAI,EACf,SAAS,EAAE,IAAI,EACf,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,EAAE,EACf,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE;QAAE,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE;CAGlD;AAED,qBAAa,WAAY,YAAW,KAAK;aAIvB,EAAE,EAAE,MAAM;aACV,SAAS,EAAE,IAAI;aACf,SAAS,EAAE,IAAI;aACf,UAAU,EAAE,MAAM;aAClB,aAAa,EAAE,MAAM;aACrB,KAAK,EAAE,MAAM,EAAE;aACf,SAAS,EAAE,MAAM;IATlC,SAAgB,IAAI,oBAAmB;gBAGtB,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,IAAI,EACf,SAAS,EAAE,IAAI,EACf,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,EAAE,EACf,SAAS,EAAE,MAAM;CAGlC"}
|