@contember/engine-system-api 1.3.0-alpha.7 → 1.3.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/SystemContainer.d.ts +6 -2
- package/dist/src/SystemContainer.d.ts.map +1 -1
- package/dist/src/SystemContainer.js +3 -1
- package/dist/src/SystemContainer.js.map +1 -1
- package/dist/src/bin/runMigrations.js +4 -1
- package/dist/src/bin/runMigrations.js.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/migrations/2022-10-03-110000-table-on-delete.d.ts.map +1 -1
- package/dist/src/migrations/2022-10-03-110000-table-on-delete.js +17 -12
- package/dist/src/migrations/2022-10-03-110000-table-on-delete.js.map +1 -1
- package/dist/src/migrations/runner.d.ts +3 -1
- package/dist/src/migrations/runner.d.ts.map +1 -1
- package/dist/src/migrations/runner.js +6 -1
- package/dist/src/migrations/runner.js.map +1 -1
- package/dist/src/migrations/types.d.ts +2 -0
- package/dist/src/migrations/types.d.ts.map +1 -1
- package/dist/src/model/authorization/AuthorizationActions.js +1 -1
- package/dist/src/model/authorization/AuthorizationActions.js.map +1 -1
- package/dist/src/model/dependencies/tenant/IdentityFetcher.d.ts +1 -1
- package/dist/src/model/dependencies/tenant/IdentityFetcher.d.ts.map +1 -1
- package/dist/src/model/events/types.d.ts +1 -1
- package/dist/src/model/events/types.d.ts.map +1 -1
- package/dist/src/model/events/types.js +1 -1
- package/dist/src/model/events/types.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/MigrationAlterer.js +2 -2
- package/dist/src/model/migrations/MigrationAlterer.js.map +1 -1
- 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 +20 -6
- package/dist/src/model/migrations/ProjectMigrator.js.map +1 -1
- package/dist/src/model/migrations/SchemaVersionBuilder.d.ts +1 -1
- package/dist/src/model/migrations/SchemaVersionBuilder.d.ts.map +1 -1
- package/dist/src/model/queries/events/EventQueryHelpers.d.ts +1 -1
- package/dist/src/model/queries/events/EventQueryHelpers.d.ts.map +1 -1
- package/dist/src/model/queries/migrations/ExecutedMigrationsQueryHelper.d.ts +1 -1
- package/dist/src/model/queries/migrations/ExecutedMigrationsQueryHelper.d.ts.map +1 -1
- package/dist/src/resolvers/Resolver.d.ts +2 -2
- package/dist/src/resolvers/Resolver.d.ts.map +1 -1
- package/dist/src/resolvers/SystemResolverContext.d.ts +1 -1
- package/dist/src/resolvers/SystemResolverContext.d.ts.map +1 -1
- package/dist/src/schema/types.d.ts +67 -67
- package/dist/src/schema/types.d.ts.map +1 -1
- package/dist/src/schema/types.js +5 -5
- package/dist/src/schema/types.js.map +1 -1
- package/dist/src/tsconfig.tsbuildinfo +1 -1
- package/dist/src/utils/Response.d.ts +1 -1
- package/dist/src/utils/Response.d.ts.map +1 -1
- package/dist/src/utils/batchQuery.d.ts +1 -1
- package/dist/src/utils/batchQuery.d.ts.map +1 -1
- package/dist/src/utils/providers.d.ts +1 -1
- package/dist/src/utils/providers.d.ts.map +1 -1
- package/dist/src/utils/set.d.ts +1 -1
- package/dist/src/utils/set.d.ts.map +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.js +5 -2
- package/dist/tests/cases/migrations/2022-10-03-110000-table-on-delete.test.js.map +1 -1
- package/dist/tests/src/utils.d.ts +1 -1
- package/dist/tests/src/utils.d.ts.map +1 -1
- package/dist/tests/tsconfig.tsbuildinfo +1 -1
- package/package.json +15 -15
- package/src/SystemContainer.ts +8 -3
- package/src/bin/runMigrations.ts +8 -1
- package/src/index.ts +1 -0
- package/src/migrations/2022-10-03-110000-table-on-delete.ts +18 -19
- package/src/migrations/runner.ts +7 -1
- package/src/migrations/types.ts +2 -0
- 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 +26 -7
- 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 +6 -3
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AccessEvaluator, Authorizator } from '@contember/authorization';
|
|
2
2
|
import { Builder, Container } from '@contember/dic';
|
|
3
3
|
import { MigrationDescriber, ModificationHandlerFactory, SchemaDiffer, SchemaMigrator } from '@contember/schema-migrations';
|
|
4
|
-
import { EventResponseBuilder, ExecutedMigrationsResolver, IdentityFetcher, MigrationAlterer, ProjectMigrator, ProjectTruncateExecutor, SchemaVersionBuilder } from './model';
|
|
4
|
+
import { EventResponseBuilder, ExecutedMigrationsResolver, IdentityFetcher, MigrationAlterer, MigrationsDatabaseMetadataResolverStoreFactory, ProjectMigrator, ProjectTruncateExecutor, SchemaDatabaseMetadataResolver, SchemaVersionBuilder } from './model';
|
|
5
5
|
import { UuidProvider } from './utils';
|
|
6
6
|
import { EventsQueryResolver, ExecutedMigrationsQueryResolver, MigrateMutationResolver, MigrationAlterMutationResolver, ResolverFactory, StagesQueryResolver, SystemResolverContextFactory, TruncateMutationResolver } from './resolvers';
|
|
7
7
|
import { EventOldValuesResolver } from './resolvers/types';
|
|
@@ -11,7 +11,7 @@ export interface SystemContainer {
|
|
|
11
11
|
resolverContextFactory: SystemResolverContextFactory;
|
|
12
12
|
schemaVersionBuilder: SchemaVersionBuilder;
|
|
13
13
|
}
|
|
14
|
-
|
|
14
|
+
type Args = {
|
|
15
15
|
identityFetcher: IdentityFetcher;
|
|
16
16
|
};
|
|
17
17
|
export declare class SystemContainerFactory {
|
|
@@ -39,6 +39,10 @@ export declare class SystemContainerFactory {
|
|
|
39
39
|
schemaDiffer: SchemaDiffer;
|
|
40
40
|
} & {
|
|
41
41
|
migrationDescriber: MigrationDescriber;
|
|
42
|
+
} & {
|
|
43
|
+
databaseMetadataResolver: SchemaDatabaseMetadataResolver;
|
|
44
|
+
} & {
|
|
45
|
+
migrationsDatabaseMetadataResolverStoreFactory: MigrationsDatabaseMetadataResolverStoreFactory;
|
|
42
46
|
} & {
|
|
43
47
|
projectMigrator: ProjectMigrator;
|
|
44
48
|
} & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SystemContainer.d.ts","sourceRoot":"","sources":["../../src/SystemContainer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACxE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EACN,kBAAkB,EAClB,0BAA0B,EAC1B,YAAY,EACZ,cAAc,EACd,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACN,oBAAoB,EACpB,0BAA0B,EAC1B,eAAe,EACf,gBAAgB,
|
|
1
|
+
{"version":3,"file":"SystemContainer.d.ts","sourceRoot":"","sources":["../../src/SystemContainer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACxE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EACN,kBAAkB,EAClB,0BAA0B,EAC1B,YAAY,EACZ,cAAc,EACd,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACN,oBAAoB,EACpB,0BAA0B,EAC1B,eAAe,EACf,gBAAgB,EAChB,8CAA8C,EAE9C,eAAe,EACf,uBAAuB,EAAE,8BAA8B,EACvD,oBAAoB,EACpB,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EACN,mBAAmB,EACnB,+BAA+B,EAC/B,uBAAuB,EACvB,8BAA8B,EAC9B,eAAe,EACf,mBAAmB,EACnB,4BAA4B,EAC5B,wBAAwB,EACxB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,MAAM,WAAW,eAAe;IAC/B,sBAAsB,EAAE,eAAe,CAAA;IACvC,YAAY,EAAE,YAAY,CAAA;IAC1B,sBAAsB,EAAE,4BAA4B,CAAA;IACpD,oBAAoB,EAAE,oBAAoB,CAAA;CAC1C;AAED,KAAK,IAAI,GAAG;IACX,eAAe,EAAE,eAAe,CAAA;CAChC,CAAA;AAED,qBAAa,sBAAsB;IAEjC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,0BAA0B;gBAD1B,SAAS,EAAE,YAAY,EACvB,0BAA0B,EAAE,0BAA0B;IAIjE,MAAM,CAAC,SAAS,EAAE,IAAI,GAAG,SAAS,CAAC,eAAe,CAAC;IAUnD,aAAa,CAAC,EAAE,eAAe,EAAE,EAAE,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqD9C"}
|
|
@@ -29,7 +29,9 @@ class SystemContainerFactory {
|
|
|
29
29
|
.addService('authorizator', ({ accessEvaluator }) => new authorization_1.Authorizator.Default(accessEvaluator))
|
|
30
30
|
.addService('schemaDiffer', ({ schemaMigrator }) => new schema_migrations_1.SchemaDiffer(schemaMigrator))
|
|
31
31
|
.addService('migrationDescriber', ({ modificationHandlerFactory }) => new schema_migrations_1.MigrationDescriber(modificationHandlerFactory))
|
|
32
|
-
.addService('
|
|
32
|
+
.addService('databaseMetadataResolver', () => new model_1.SchemaDatabaseMetadataResolver())
|
|
33
|
+
.addService('migrationsDatabaseMetadataResolverStoreFactory', ({ databaseMetadataResolver }) => new model_1.MigrationsDatabaseMetadataResolverStoreFactory(databaseMetadataResolver))
|
|
34
|
+
.addService('projectMigrator', ({ migrationDescriber, schemaVersionBuilder, executedMigrationsResolver, migrationsDatabaseMetadataResolverStoreFactory }) => new model_1.ProjectMigrator(migrationDescriber, schemaVersionBuilder, executedMigrationsResolver, migrationsDatabaseMetadataResolverStoreFactory))
|
|
33
35
|
.addService('projectTruncateExecutor', () => new model_1.ProjectTruncateExecutor())
|
|
34
36
|
.addService('migrationAlterer', () => new model_1.MigrationAlterer())
|
|
35
37
|
.addService('eventResponseBuilder', ({ identityFetcher }) => new model_1.EventResponseBuilder(identityFetcher))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SystemContainer.js","sourceRoot":"","sources":["../../src/SystemContainer.ts"],"names":[],"mappings":";;;AAAA,4DAAwE;AACxE,wCAAmD;AACnD,oEAKqC;AACrC,
|
|
1
|
+
{"version":3,"file":"SystemContainer.js","sourceRoot":"","sources":["../../src/SystemContainer.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ const migrations_1 = require("../migrations");
|
|
|
4
4
|
const model_1 = require("../model");
|
|
5
5
|
const database_1 = require("@contember/database");
|
|
6
6
|
const logger_1 = require("@contember/logger");
|
|
7
|
+
const schema_utils_1 = require("@contember/schema-utils");
|
|
7
8
|
(async () => {
|
|
8
9
|
const dbConfig = {
|
|
9
10
|
database: process.env.PGDATABASE,
|
|
@@ -20,7 +21,9 @@ const logger_1 = require("@contember/logger");
|
|
|
20
21
|
},
|
|
21
22
|
}), { db: dbConfig, slug: 'test', stages: [] }, 'system', {
|
|
22
23
|
buildSchema: () => Promise.resolve(model_1.emptyVersionedSchema),
|
|
23
|
-
}, {}
|
|
24
|
+
}, {}, {
|
|
25
|
+
resolveMetadata: () => Promise.resolve(schema_utils_1.dummySchemaDatabaseMetadata),
|
|
26
|
+
});
|
|
24
27
|
// eslint-disable-next-line no-console
|
|
25
28
|
await migrationsRunner.run((0, logger_1.createLogger)(new logger_1.PrettyPrintLoggerHandler(process.stderr)));
|
|
26
29
|
})().catch(e => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runMigrations.js","sourceRoot":"","sources":["../../../src/bin/runMigrations.ts"],"names":[],"mappings":";;AAAA,8CAAsD;AACtD,oCAA6F;AAC7F,kDAAgD;AAChD,
|
|
1
|
+
{"version":3,"file":"runMigrations.js","sourceRoot":"","sources":["../../../src/bin/runMigrations.ts"],"names":[],"mappings":";;AAAA,8CAAsD;AACtD,oCAA6F;AAC7F,kDAAgD;AAChD,8CAA0E;AAI1E,0DAAsE;AAEtE,CAAC,KAAK,IAAI,EAAE;IACX,MAAM,QAAQ,GAAG;QAChB,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,UAAoB;QAC1C,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,MAAgB;QAClC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,UAAoB;QAC1C,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,MAAgB;QAClC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI;KAC5D,CAAA;IACD,sCAAsC;IACtC,MAAM,UAAU,GAAG,qBAAU,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;IAC/E,MAAM,gBAAgB,GAAG,IAAI,mCAAsB,CAClD,IAAI,8BAAsB,CAAC,QAAQ,EAAE,UAAU,EAAE;QAChD,IAAI,EAAE,GAAG,EAAE;YACV,MAAM,IAAI,KAAK,EAAE,CAAA;QAClB,CAAC;KACD,CAAC,EACF,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,EAC1C,QAAQ,EACR;QACC,WAAW,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,4BAAoB,CAAC;KACrB,EACpC,EAAE,EACF;QACC,eAAe,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,0CAA2B,CAAC;KACtB,CAC9C,CAAA;IACD,sCAAsC;IACtC,MAAM,gBAAgB,CAAC,GAAG,CAAC,IAAA,qBAAY,EAAC,IAAI,iCAAwB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;AACvF,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;IACd,sCAAsC;IACtC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAChB,CAAC,CAAC,CAAA"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { SchemaMigrator, MigrationsResolver } from '@contember/schema-migrations';
|
|
2
2
|
export { typeDefs, devTypeDefs, Schema } from './schema';
|
|
3
|
-
export { DatabaseContext, DatabaseContextFactory, Command, formatSchemaName, getJunctionTables, Identity, LatestTransactionIdByStageQuery, ProjectInitializer, ProjectMigrator, SchemaVersionBuilder, Stage, StageBySlugQuery, StageCreator, StagesQuery, VersionedSchema, } from './model';
|
|
3
|
+
export { DatabaseContext, DatabaseContextFactory, Command, formatSchemaName, getJunctionTables, Identity, LatestTransactionIdByStageQuery, ProjectInitializer, ProjectMigrator, SchemaDatabaseMetadataResolver, SchemaVersionBuilder, Stage, StageBySlugQuery, StageCreator, StagesQuery, VersionedSchema, } from './model';
|
|
4
4
|
export * from './SystemContainer';
|
|
5
5
|
export * from './resolvers';
|
|
6
6
|
export * from './types';
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAEjF,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAExD,OAAO,EACN,eAAe,EACf,sBAAsB,EACtB,OAAO,EACP,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,EACR,+BAA+B,EAC/B,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,KAAK,EACL,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,eAAe,GACf,MAAM,SAAS,CAAA;AAChB,cAAc,mBAAmB,CAAA;AACjC,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,cAAc,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAEjF,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAExD,OAAO,EACN,eAAe,EACf,sBAAsB,EACtB,OAAO,EACP,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,EACR,+BAA+B,EAC/B,kBAAkB,EAClB,eAAe,EACf,8BAA8B,EAC9B,oBAAoB,EACpB,KAAK,EACL,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,eAAe,GACf,MAAM,SAAS,CAAA;AAChB,cAAc,mBAAmB,CAAA;AACjC,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,cAAc,CAAA"}
|
package/dist/src/index.js
CHANGED
|
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.StagesQuery = exports.StageCreator = exports.StageBySlugQuery = exports.SchemaVersionBuilder = exports.ProjectMigrator = exports.ProjectInitializer = exports.LatestTransactionIdByStageQuery = exports.Identity = exports.getJunctionTables = exports.formatSchemaName = exports.DatabaseContextFactory = exports.Schema = exports.devTypeDefs = exports.typeDefs = exports.MigrationsResolver = exports.SchemaMigrator = void 0;
|
|
17
|
+
exports.StagesQuery = exports.StageCreator = exports.StageBySlugQuery = exports.SchemaVersionBuilder = exports.SchemaDatabaseMetadataResolver = exports.ProjectMigrator = exports.ProjectInitializer = exports.LatestTransactionIdByStageQuery = exports.Identity = exports.getJunctionTables = exports.formatSchemaName = exports.DatabaseContextFactory = exports.Schema = exports.devTypeDefs = exports.typeDefs = exports.MigrationsResolver = exports.SchemaMigrator = void 0;
|
|
18
18
|
var schema_migrations_1 = require("@contember/schema-migrations");
|
|
19
19
|
Object.defineProperty(exports, "SchemaMigrator", { enumerable: true, get: function () { return schema_migrations_1.SchemaMigrator; } });
|
|
20
20
|
Object.defineProperty(exports, "MigrationsResolver", { enumerable: true, get: function () { return schema_migrations_1.MigrationsResolver; } });
|
|
@@ -30,6 +30,7 @@ Object.defineProperty(exports, "Identity", { enumerable: true, get: function ()
|
|
|
30
30
|
Object.defineProperty(exports, "LatestTransactionIdByStageQuery", { enumerable: true, get: function () { return model_1.LatestTransactionIdByStageQuery; } });
|
|
31
31
|
Object.defineProperty(exports, "ProjectInitializer", { enumerable: true, get: function () { return model_1.ProjectInitializer; } });
|
|
32
32
|
Object.defineProperty(exports, "ProjectMigrator", { enumerable: true, get: function () { return model_1.ProjectMigrator; } });
|
|
33
|
+
Object.defineProperty(exports, "SchemaDatabaseMetadataResolver", { enumerable: true, get: function () { return model_1.SchemaDatabaseMetadataResolver; } });
|
|
33
34
|
Object.defineProperty(exports, "SchemaVersionBuilder", { enumerable: true, get: function () { return model_1.SchemaVersionBuilder; } });
|
|
34
35
|
Object.defineProperty(exports, "StageBySlugQuery", { enumerable: true, get: function () { return model_1.StageBySlugQuery; } });
|
|
35
36
|
Object.defineProperty(exports, "StageCreator", { enumerable: true, get: function () { return model_1.StageCreator; } });
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,kEAAiF;AAAxE,mHAAA,cAAc,OAAA;AAAE,uHAAA,kBAAkB,OAAA;AAE3C,mCAAwD;AAA/C,kGAAA,QAAQ,OAAA;AAAE,qGAAA,WAAW,OAAA;AAAE,gGAAA,MAAM,OAAA;AAEtC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,kEAAiF;AAAxE,mHAAA,cAAc,OAAA;AAAE,uHAAA,kBAAkB,OAAA;AAE3C,mCAAwD;AAA/C,kGAAA,QAAQ,OAAA;AAAE,qGAAA,WAAW,OAAA;AAAE,gGAAA,MAAM,OAAA;AAEtC,iCAiBgB;AAff,+GAAA,sBAAsB,OAAA;AAEtB,yGAAA,gBAAgB,OAAA;AAChB,0GAAA,iBAAiB,OAAA;AACjB,iGAAA,QAAQ,OAAA;AACR,wHAAA,+BAA+B,OAAA;AAC/B,2GAAA,kBAAkB,OAAA;AAClB,wGAAA,eAAe,OAAA;AACf,uHAAA,8BAA8B,OAAA;AAC9B,6GAAA,oBAAoB,OAAA;AAEpB,yGAAA,gBAAgB,OAAA;AAChB,qGAAA,YAAY,OAAA;AACZ,oGAAA,WAAW,OAAA;AAGZ,oDAAiC;AACjC,8CAA2B;AAC3B,0CAAuB;AACvB,0CAAuB;AACvB,+CAA4B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"2022-10-03-110000-table-on-delete.d.ts","sourceRoot":"","sources":["../../../src/migrations/2022-10-03-110000-table-on-delete.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAEhF,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAI7C,yBAA+B,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa,CAAC,mBAAmB,CAAC,
|
|
1
|
+
{"version":3,"file":"2022-10-03-110000-table-on-delete.d.ts","sourceRoot":"","sources":["../../../src/migrations/2022-10-03-110000-table-on-delete.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAEhF,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAI7C,yBAA+B,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa,CAAC,mBAAmB,CAAC,iBA0DjG"}
|
|
@@ -4,8 +4,11 @@ const database_1 = require("@contember/database");
|
|
|
4
4
|
const schema_utils_1 = require("@contember/schema-utils");
|
|
5
5
|
const schema_1 = require("@contember/schema");
|
|
6
6
|
async function default_1(builder, args) {
|
|
7
|
+
var _a;
|
|
8
|
+
var _b;
|
|
7
9
|
const schema = await args.schemaResolver(args.connection);
|
|
8
10
|
const stages = (await args.connection.query('SELECT schema FROM stage')).rows;
|
|
11
|
+
const metadataByStage = {};
|
|
9
12
|
for (const entity of Object.values(schema.model.entities)) {
|
|
10
13
|
for (const field of Object.values(entity.fields)) {
|
|
11
14
|
const result = (0, schema_utils_1.acceptFieldVisitor)(schema.model, entity, field, {
|
|
@@ -32,22 +35,24 @@ async function default_1(builder, args) {
|
|
|
32
35
|
continue;
|
|
33
36
|
}
|
|
34
37
|
for (const stage of stages) {
|
|
35
|
-
const
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
+
const databaseMetadata = (_a = metadataByStage[_b = stage.schema]) !== null && _a !== void 0 ? _a : (metadataByStage[_b] = await args.databaseMetadataResolver(args.connection, stage.schema));
|
|
39
|
+
const fkNames = databaseMetadata.getForeignKeyConstraintNames({
|
|
40
|
+
fromTable: entity.tableName,
|
|
41
|
+
fromColumn: relation.joiningColumn.columnName,
|
|
42
|
+
toTable: targetEntity.tableName,
|
|
43
|
+
toColumn: targetEntity.primaryColumn,
|
|
44
|
+
});
|
|
45
|
+
for (const name of fkNames) {
|
|
46
|
+
builder.sql(`ALTER TABLE ${(0, database_1.wrapIdentifier)(stage.schema)}.${(0, database_1.wrapIdentifier)(entity.tableName)} DROP CONSTRAINT ${(0, database_1.wrapIdentifier)(name)}`);
|
|
47
|
+
}
|
|
38
48
|
const onDelete = {
|
|
39
49
|
[schema_1.Model.OnDelete.setNull]: 'SET NULL',
|
|
40
50
|
[schema_1.Model.OnDelete.cascade]: 'CASCADE',
|
|
41
51
|
}[relation.joiningColumn.onDelete];
|
|
42
|
-
builder.
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
onDelete: onDelete,
|
|
47
|
-
},
|
|
48
|
-
deferrable: true,
|
|
49
|
-
deferred: false,
|
|
50
|
-
});
|
|
52
|
+
builder.sql(`ALTER TABLE ${(0, database_1.wrapIdentifier)(stage.schema)}.${(0, database_1.wrapIdentifier)(entity.tableName)}
|
|
53
|
+
ADD FOREIGN KEY (${(0, database_1.wrapIdentifier)(relation.joiningColumn.columnName)})
|
|
54
|
+
REFERENCES ${(0, database_1.wrapIdentifier)(stage.schema)}.${(0, database_1.wrapIdentifier)(targetEntity.tableName)} (${(0, database_1.wrapIdentifier)(targetEntity.primaryColumn)}) ON DELETE ${onDelete} DEFERRABLE INITIALLY IMMEDIATE
|
|
55
|
+
`);
|
|
51
56
|
}
|
|
52
57
|
}
|
|
53
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"2022-10-03-110000-table-on-delete.js","sourceRoot":"","sources":["../../../src/migrations/2022-10-03-110000-table-on-delete.ts"],"names":[],"mappings":";;AACA,kDAAoD;AAEpD,
|
|
1
|
+
{"version":3,"file":"2022-10-03-110000-table-on-delete.js","sourceRoot":"","sources":["../../../src/migrations/2022-10-03-110000-table-on-delete.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,15 +3,17 @@ import { DatabaseConfig } from '@contember/database';
|
|
|
3
3
|
import { DatabaseContextFactory, SchemaVersionBuilder } from '../model';
|
|
4
4
|
import { ProjectConfig } from '../types';
|
|
5
5
|
import { Logger } from '@contember/logger';
|
|
6
|
+
import { SchemaDatabaseMetadataResolver } from '../model/metadata/SchemaDatabaseMetadataResolver';
|
|
6
7
|
export declare class SystemMigrationsRunner {
|
|
7
8
|
private readonly databaseContextFactory;
|
|
8
9
|
private readonly project;
|
|
9
10
|
private readonly schema;
|
|
10
11
|
private readonly schemaVersionBuilder;
|
|
11
12
|
private readonly migrationGroups;
|
|
13
|
+
private readonly databaseMetadataResolver;
|
|
12
14
|
constructor(databaseContextFactory: DatabaseContextFactory, project: ProjectConfig & {
|
|
13
15
|
db: DatabaseConfig;
|
|
14
|
-
}, schema: string, schemaVersionBuilder: SchemaVersionBuilder, migrationGroups: Record<string, MigrationGroup<unknown
|
|
16
|
+
}, schema: string, schemaVersionBuilder: SchemaVersionBuilder, migrationGroups: Record<string, MigrationGroup<unknown>>, databaseMetadataResolver: SchemaDatabaseMetadataResolver);
|
|
15
17
|
run(logger: Logger): Promise<void>;
|
|
16
18
|
}
|
|
17
19
|
//# sourceMappingURL=runner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../src/migrations/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAA0C,MAAM,gCAAgC,CAAA;AAqBvG,OAAO,EAAiD,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACnG,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../src/migrations/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAA0C,MAAM,gCAAgC,CAAA;AAqBvG,OAAO,EAAiD,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACnG,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAG1C,OAAO,EAAE,8BAA8B,EAAE,MAAM,kDAAkD,CAAA;AAwBjG,qBAAa,sBAAsB;IAEjC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,wBAAwB;gBALxB,sBAAsB,EAAE,sBAAsB,EAC9C,OAAO,EAAE,aAAa,GAAG;QAAE,EAAE,EAAE,cAAc,CAAA;KAAE,EAC/C,MAAM,EAAE,MAAM,EACd,oBAAoB,EAAE,oBAAoB,EAC1C,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,EACxD,wBAAwB,EAAE,8BAA8B;IAGpE,GAAG,CAAC,MAAM,EAAE,MAAM;CAyBxB"}
|
|
@@ -48,12 +48,13 @@ const migrations = {
|
|
|
48
48
|
'2022-10-03-110000-table-on-delete': _2022_10_03_110000_table_on_delete_1.default,
|
|
49
49
|
};
|
|
50
50
|
class SystemMigrationsRunner {
|
|
51
|
-
constructor(databaseContextFactory, project, schema, schemaVersionBuilder, migrationGroups) {
|
|
51
|
+
constructor(databaseContextFactory, project, schema, schemaVersionBuilder, migrationGroups, databaseMetadataResolver) {
|
|
52
52
|
this.databaseContextFactory = databaseContextFactory;
|
|
53
53
|
this.project = project;
|
|
54
54
|
this.schema = schema;
|
|
55
55
|
this.schemaVersionBuilder = schemaVersionBuilder;
|
|
56
56
|
this.migrationGroups = migrationGroups;
|
|
57
|
+
this.databaseMetadataResolver = databaseMetadataResolver;
|
|
57
58
|
}
|
|
58
59
|
async run(logger) {
|
|
59
60
|
await (0, database_1.createDatabaseIfNotExists)(this.project.db, message => typeof message === 'string' ? logger.warn(message) : logger.error(message));
|
|
@@ -68,6 +69,10 @@ class SystemMigrationsRunner {
|
|
|
68
69
|
await migrationsRunner.migrate(message => logger.warn(message), {
|
|
69
70
|
project: this.project,
|
|
70
71
|
schemaResolver,
|
|
72
|
+
databaseMetadataResolver: (connection, schema) => {
|
|
73
|
+
const dbContextMigrations = this.databaseContextFactory.create(connection);
|
|
74
|
+
return this.databaseMetadataResolver.resolveMetadata(dbContextMigrations, schema);
|
|
75
|
+
},
|
|
71
76
|
});
|
|
72
77
|
});
|
|
73
78
|
await singleConnection.end();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/migrations/runner.ts"],"names":[],"mappings":";;;;;;AAAA,wEAAuG;AACvG,uFAA0D;AAC1D,2HAA4F;AAC5F,uGAAwE;AACxE,uGAAyE;AACzE,mIAAmG;AACnG,mIAAmG;AACnG,+HAAgG;AAChG,mHAAqF;AACrF,+GAAiF;AACjF,mHAAoF;AACpF,yGAA2E;AAC3E,+GAAgF;AAChF,iIAAiG;AACjG,iGAAmE;AACnE,2GAA4E;AAC5E,yGAA2E;AAC3E,uHAAwF;AACxF,6GAA8E;AAC9E,0DAAiC;AAEjC,kDAAmG;AAInG,wEAAwE;AACxE,wEAA0E;
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/migrations/runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -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"}
|
|
@@ -10,5 +10,5 @@ var AuthorizationActions;
|
|
|
10
10
|
})(Resources = AuthorizationActions.Resources || (AuthorizationActions.Resources = {}));
|
|
11
11
|
AuthorizationActions.PROJECT_HISTORY_ANY = authorization_1.Authorizator.createAction(Resources.project, 'historyAny');
|
|
12
12
|
AuthorizationActions.PROJECT_MIGRATE = authorization_1.Authorizator.createAction(Resources.project, 'migrate');
|
|
13
|
-
})(AuthorizationActions
|
|
13
|
+
})(AuthorizationActions || (exports.AuthorizationActions = AuthorizationActions = {}));
|
|
14
14
|
//# sourceMappingURL=AuthorizationActions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthorizationActions.js","sourceRoot":"","sources":["../../../../src/model/authorization/AuthorizationActions.ts"],"names":[],"mappings":";;;AAAA,4DAAuD;AAEvD,IAAiB,oBAAoB,CAQpC;AARD,WAAiB,oBAAoB;IACpC,IAAY,SAEX;IAFD,WAAY,SAAS;QACpB,gCAAmB,CAAA;IACpB,CAAC,EAFW,SAAS,GAAT,8BAAS,KAAT,8BAAS,QAEpB;IAEY,wCAAmB,GAAG,4BAAY,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;IAEhF,oCAAe,GAAG,4BAAY,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;AACvF,CAAC,EARgB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"AuthorizationActions.js","sourceRoot":"","sources":["../../../../src/model/authorization/AuthorizationActions.ts"],"names":[],"mappings":";;;AAAA,4DAAuD;AAEvD,IAAiB,oBAAoB,CAQpC;AARD,WAAiB,oBAAoB;IACpC,IAAY,SAEX;IAFD,WAAY,SAAS;QACpB,gCAAmB,CAAA;IACpB,CAAC,EAFW,SAAS,GAAT,8BAAS,KAAT,8BAAS,QAEpB;IAEY,wCAAmB,GAAG,4BAAY,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;IAEhF,oCAAe,GAAG,4BAAY,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;AACvF,CAAC,EARgB,oBAAoB,oCAApB,oBAAoB,QAQpC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export interface IdentityFetcher {
|
|
2
2
|
fetchIdentities(ids: string[]): Promise<TenantIdentity[]>;
|
|
3
3
|
}
|
|
4
|
-
export
|
|
4
|
+
export type TenantIdentity = PersonIdentity | ApiKeyIdentity;
|
|
5
5
|
export interface PersonIdentity {
|
|
6
6
|
readonly type: 'person';
|
|
7
7
|
readonly identityId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IdentityFetcher.d.ts","sourceRoot":"","sources":["../../../../../src/model/dependencies/tenant/IdentityFetcher.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,eAAe;IAC/B,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAA;CACzD;AAED,
|
|
1
|
+
{"version":3,"file":"IdentityFetcher.d.ts","sourceRoot":"","sources":["../../../../../src/model/dependencies/tenant/IdentityFetcher.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,eAAe;IAC/B,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAA;CACzD;AAED,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG,cAAc,CAAA;AAE5D,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE;QAChB,EAAE,EAAE,MAAM,CAAA;QACV,IAAI,EAAE,MAAM,CAAA;KACZ,CAAA;CACD;AAED,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAC5B"}
|
|
@@ -3,7 +3,7 @@ export declare enum EventType {
|
|
|
3
3
|
update = "update",
|
|
4
4
|
create = "create"
|
|
5
5
|
}
|
|
6
|
-
export
|
|
6
|
+
export type ContentEvent = UpdateEvent | CreateEvent | DeleteEvent;
|
|
7
7
|
export interface Event {
|
|
8
8
|
readonly type: EventType;
|
|
9
9
|
readonly id: string;
|
|
@@ -1 +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,
|
|
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,MAAM,MAAM,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"}
|
|
@@ -6,7 +6,7 @@ var EventType;
|
|
|
6
6
|
EventType["delete"] = "delete";
|
|
7
7
|
EventType["update"] = "update";
|
|
8
8
|
EventType["create"] = "create";
|
|
9
|
-
})(EventType
|
|
9
|
+
})(EventType || (exports.EventType = EventType = {}));
|
|
10
10
|
class UpdateEvent {
|
|
11
11
|
constructor(id, createdAt, appliedAt, identityId, transactionId, rowId, tableName, values) {
|
|
12
12
|
this.id = id;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/model/events/types.ts"],"names":[],"mappings":";;;AAAA,IAAY,SAIX;AAJD,WAAY,SAAS;IACpB,8BAAiB,CAAA;IACjB,8BAAiB,CAAA;IACjB,8BAAiB,CAAA;AAClB,CAAC,EAJW,SAAS,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/model/events/types.ts"],"names":[],"mappings":";;;AAAA,IAAY,SAIX;AAJD,WAAY,SAAS;IACpB,8BAAiB,CAAA;IACjB,8BAAiB,CAAA;IACjB,8BAAiB,CAAA;AAClB,CAAC,EAJW,SAAS,yBAAT,SAAS,QAIpB;AAYD,MAAa,WAAW;IAGvB,YACiB,EAAU,EACV,SAAe,EACf,SAAe,EACf,UAAkB,EAClB,aAAqB,EACrB,KAAe,EACf,SAAiB,EACjB,MAAiC;QAPjC,OAAE,GAAF,EAAE,CAAQ;QACV,cAAS,GAAT,SAAS,CAAM;QACf,cAAS,GAAT,SAAS,CAAM;QACf,eAAU,GAAV,UAAU,CAAQ;QAClB,kBAAa,GAAb,aAAa,CAAQ;QACrB,UAAK,GAAL,KAAK,CAAU;QACf,cAAS,GAAT,SAAS,CAAQ;QACjB,WAAM,GAAN,MAAM,CAA2B;QAVlC,SAAI,GAAG,SAAS,CAAC,MAAM,CAAA;IAYvC,CAAC;CACD;AAdD,kCAcC;AAED,MAAa,WAAW;IAGvB,YACiB,EAAU,EACV,SAAe,EACf,SAAe,EACf,UAAkB,EAClB,aAAqB,EACrB,KAAe,EACf,SAAiB,EACjB,MAAiC;QAPjC,OAAE,GAAF,EAAE,CAAQ;QACV,cAAS,GAAT,SAAS,CAAM;QACf,cAAS,GAAT,SAAS,CAAM;QACf,eAAU,GAAV,UAAU,CAAQ;QAClB,kBAAa,GAAb,aAAa,CAAQ;QACrB,UAAK,GAAL,KAAK,CAAU;QACf,cAAS,GAAT,SAAS,CAAQ;QACjB,WAAM,GAAN,MAAM,CAA2B;QAVlC,SAAI,GAAG,SAAS,CAAC,MAAM,CAAA;IAYvC,CAAC;CACD;AAdD,kCAcC;AAED,MAAa,WAAW;IAGvB,YACiB,EAAU,EACV,SAAe,EACf,SAAe,EACf,UAAkB,EAClB,aAAqB,EACrB,KAAe,EACf,SAAiB;QANjB,OAAE,GAAF,EAAE,CAAQ;QACV,cAAS,GAAT,SAAS,CAAM;QACf,cAAS,GAAT,SAAS,CAAM;QACf,eAAU,GAAV,UAAU,CAAQ;QAClB,kBAAa,GAAb,aAAa,CAAQ;QACrB,UAAK,GAAL,KAAK,CAAU;QACf,cAAS,GAAT,SAAS,CAAQ;QATlB,SAAI,GAAG,SAAS,CAAC,MAAM,CAAA;IAWvC,CAAC;CACD;AAbD,kCAaC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/model/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,QAAQ,CAAA;AACtB,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,sBAAsB,CAAA;AACpC,cAAc,2BAA2B,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/model/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,QAAQ,CAAA;AACtB,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,sBAAsB,CAAA;AACpC,cAAc,2BAA2B,CAAA"}
|
package/dist/src/model/index.js
CHANGED
|
@@ -21,6 +21,7 @@ __exportStar(require("./dependencies"), exports);
|
|
|
21
21
|
__exportStar(require("./dtos"), exports);
|
|
22
22
|
__exportStar(require("./events"), exports);
|
|
23
23
|
__exportStar(require("./helpers"), exports);
|
|
24
|
+
__exportStar(require("./metadata"), exports);
|
|
24
25
|
__exportStar(require("./migrations"), exports);
|
|
25
26
|
__exportStar(require("./queries"), exports);
|
|
26
27
|
__exportStar(require("./stages"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/model/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAA+B;AAC/B,6CAA0B;AAC1B,6CAA0B;AAC1B,iDAA8B;AAC9B,yCAAsB;AACtB,2CAAwB;AACxB,4CAAyB;AACzB,+CAA4B;AAC5B,4CAAyB;AACzB,2CAAwB;AACxB,uDAAoC;AACpC,4DAAyC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/model/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAA+B;AAC/B,6CAA0B;AAC1B,6CAA0B;AAC1B,iDAA8B;AAC9B,yCAAsB;AACtB,2CAAwB;AACxB,4CAAyB;AACzB,6CAA0B;AAC1B,+CAA4B;AAC5B,4CAAyB;AACzB,2CAAwB;AACxB,uDAAoC;AACpC,4DAAyC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ForeignKeyConstraintMetadata, GetForeignKeyConstraintNameArgs, GetIndexNameArgs, GetUniqueConstraintNameArgs, IndexMetadata, SchemaDatabaseMetadata, UniqueConstraintMetadata } from '@contember/schema-utils';
|
|
2
|
+
export declare class ResolvedDatabaseMetadata implements SchemaDatabaseMetadata {
|
|
3
|
+
private readonly foreignKeys;
|
|
4
|
+
private readonly uniqueConstraints;
|
|
5
|
+
private readonly indexes;
|
|
6
|
+
constructor(foreignKeys: ForeignKeyConstraintMetadata[], uniqueConstraints: UniqueConstraintMetadata[], indexes: IndexMetadata[]);
|
|
7
|
+
getUniqueConstraint(tableName: string, constraintName: string): UniqueConstraintMetadata | null;
|
|
8
|
+
getForeignKeyConstraint(tableName: string, constraintName: string): ForeignKeyConstraintMetadata | null;
|
|
9
|
+
getForeignKeyConstraintNames({ fromTable, fromColumn, toTable, toColumn }: GetForeignKeyConstraintNameArgs): string[];
|
|
10
|
+
getUniqueConstraintNames({ tableName, columnNames }: GetUniqueConstraintNameArgs): string[];
|
|
11
|
+
getIndexNames({ tableName, columnNames }: GetIndexNameArgs): string[];
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=ResolvedDatabaseMetadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResolvedDatabaseMetadata.d.ts","sourceRoot":"","sources":["../../../../src/model/metadata/ResolvedDatabaseMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,4BAA4B,EAC5B,+BAA+B,EAC/B,gBAAgB,EAChB,2BAA2B,EAC3B,aAAa,EACb,sBAAsB,EACtB,wBAAwB,EACxB,MAAM,yBAAyB,CAAA;AAOhC,qBAAa,wBAAyB,YAAW,sBAAsB;IAErE,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAFP,WAAW,EAAE,4BAA4B,EAAE,EAC3C,iBAAiB,EAAE,wBAAwB,EAAE,EAC7C,OAAO,EAAE,aAAa,EAAE;IAI1C,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,wBAAwB,GAAG,IAAI;IAI/F,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,4BAA4B,GAAG,IAAI;IAIvG,4BAA4B,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,+BAA+B,GAAG,MAAM,EAAE;IAWrH,wBAAwB,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,2BAA2B,GAAG,MAAM,EAAE;IAM3F,aAAa,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,gBAAgB,GAAG,MAAM,EAAE;CAKrE"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ResolvedDatabaseMetadata = void 0;
|
|
4
|
+
const stringArrayEquals = (colA, colB) => {
|
|
5
|
+
return colA.length === colB.length
|
|
6
|
+
&& colA.every((it, index) => it === colB[index]);
|
|
7
|
+
};
|
|
8
|
+
class ResolvedDatabaseMetadata {
|
|
9
|
+
constructor(foreignKeys, uniqueConstraints, indexes) {
|
|
10
|
+
this.foreignKeys = foreignKeys;
|
|
11
|
+
this.uniqueConstraints = uniqueConstraints;
|
|
12
|
+
this.indexes = indexes;
|
|
13
|
+
}
|
|
14
|
+
getUniqueConstraint(tableName, constraintName) {
|
|
15
|
+
var _a;
|
|
16
|
+
return (_a = this.uniqueConstraints.find(it => it.tableName === tableName && it.constraintName === constraintName)) !== null && _a !== void 0 ? _a : null;
|
|
17
|
+
}
|
|
18
|
+
getForeignKeyConstraint(tableName, constraintName) {
|
|
19
|
+
var _a;
|
|
20
|
+
return (_a = this.foreignKeys.find(it => it.fromTable === tableName && it.constraintName === constraintName)) !== null && _a !== void 0 ? _a : null;
|
|
21
|
+
}
|
|
22
|
+
getForeignKeyConstraintNames({ fromTable, fromColumn, toTable, toColumn }) {
|
|
23
|
+
return this.foreignKeys
|
|
24
|
+
.filter(it => it.fromTable === fromTable
|
|
25
|
+
&& it.toTable === toTable
|
|
26
|
+
&& it.fromColumn === fromColumn
|
|
27
|
+
&& it.toColumn === toColumn)
|
|
28
|
+
.map(it => it.constraintName);
|
|
29
|
+
}
|
|
30
|
+
getUniqueConstraintNames({ tableName, columnNames }) {
|
|
31
|
+
return this.uniqueConstraints
|
|
32
|
+
.filter(it => it.tableName === tableName && stringArrayEquals(columnNames, it.columnNames))
|
|
33
|
+
.map(it => it.constraintName);
|
|
34
|
+
}
|
|
35
|
+
getIndexNames({ tableName, columnNames }) {
|
|
36
|
+
return this.indexes
|
|
37
|
+
.filter(it => it.tableName === tableName && stringArrayEquals(columnNames, it.columnNames))
|
|
38
|
+
.map(it => it.indexName);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.ResolvedDatabaseMetadata = ResolvedDatabaseMetadata;
|
|
42
|
+
//# sourceMappingURL=ResolvedDatabaseMetadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResolvedDatabaseMetadata.js","sourceRoot":"","sources":["../../../../src/model/metadata/ResolvedDatabaseMetadata.ts"],"names":[],"mappings":";;;AAUA,MAAM,iBAAiB,GAAG,CAAC,IAAc,EAAE,IAAc,EAAE,EAAE;IAC5D,OAAO,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;WAC9B,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;AAClD,CAAC,CAAA;AAED,MAAa,wBAAwB;IACpC,YACkB,WAA2C,EAC3C,iBAA6C,EAC7C,OAAwB;QAFxB,gBAAW,GAAX,WAAW,CAAgC;QAC3C,sBAAiB,GAAjB,iBAAiB,CAA4B;QAC7C,YAAO,GAAP,OAAO,CAAiB;IAE1C,CAAC;IAED,mBAAmB,CAAC,SAAiB,EAAE,cAAsB;;QAC5D,OAAO,MAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,CAAC,cAAc,KAAK,cAAc,CAAC,mCAAI,IAAI,CAAA;IACrH,CAAC;IAED,uBAAuB,CAAC,SAAiB,EAAE,cAAsB;;QAChE,OAAO,MAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,CAAC,cAAc,KAAK,cAAc,CAAC,mCAAI,IAAI,CAAA;IAC/G,CAAC;IAED,4BAA4B,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAmC;QACzG,OAAO,IAAI,CAAC,WAAW;aACrB,MAAM,CAAC,EAAE,CAAC,EAAE,CACZ,EAAE,CAAC,SAAS,KAAK,SAAS;eACvB,EAAE,CAAC,OAAO,KAAK,OAAO;eACtB,EAAE,CAAC,UAAU,KAAK,UAAU;eAC5B,EAAE,CAAC,QAAQ,KAAK,QAAQ,CAC3B;aACA,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,CAAA;IAC/B,CAAC;IAED,wBAAwB,CAAC,EAAE,SAAS,EAAE,WAAW,EAA+B;QAC/E,OAAO,IAAI,CAAC,iBAAiB;aAC3B,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,KAAK,SAAS,IAAI,iBAAiB,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC;aAC1F,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,CAAA;IAC/B,CAAC;IAED,aAAa,CAAC,EAAE,SAAS,EAAE,WAAW,EAAoB;QACzD,OAAO,IAAI,CAAC,OAAO;aACjB,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,KAAK,SAAS,IAAI,iBAAiB,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC;aAC1F,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,CAAA;IAC1B,CAAC;CACD;AAtCD,4DAsCC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { SchemaDatabaseMetadata } from '@contember/schema-utils';
|
|
2
|
+
import { DatabaseContext } from '../database';
|
|
3
|
+
export declare class SchemaDatabaseMetadataResolver {
|
|
4
|
+
resolveMetadata(db: DatabaseContext, contentSchema: string): Promise<SchemaDatabaseMetadata>;
|
|
5
|
+
private fetchConstraints;
|
|
6
|
+
private fetchIndexes;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=SchemaDatabaseMetadataResolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SchemaDatabaseMetadataResolver.d.ts","sourceRoot":"","sources":["../../../../src/model/metadata/SchemaDatabaseMetadataResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,sBAAsB,EAEtB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAI7C,qBAAa,8BAA8B;IACpC,eAAe,CAAC,EAAE,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;YAkCpF,gBAAgB;YA+BhB,YAAY;CAsB1B"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SchemaDatabaseMetadataResolver = void 0;
|
|
4
|
+
const ResolvedDatabaseMetadata_1 = require("./ResolvedDatabaseMetadata");
|
|
5
|
+
class SchemaDatabaseMetadataResolver {
|
|
6
|
+
async resolveMetadata(db, contentSchema) {
|
|
7
|
+
const constraintRows = await this.fetchConstraints(db.client, contentSchema);
|
|
8
|
+
const indexRows = await this.fetchIndexes(db.client, contentSchema);
|
|
9
|
+
const fkConstraints = constraintRows
|
|
10
|
+
.filter((it) => it.type === ConstraintTypes.foreignKey)
|
|
11
|
+
.map((it) => ({
|
|
12
|
+
constraintName: it.constraint_name,
|
|
13
|
+
fromColumn: it.columns[0],
|
|
14
|
+
toColumn: it.target_columns[0],
|
|
15
|
+
fromTable: it.table_name,
|
|
16
|
+
toTable: it.target_table,
|
|
17
|
+
}));
|
|
18
|
+
const uniqueConstraints = constraintRows
|
|
19
|
+
.filter((it) => it.type === ConstraintTypes.unique)
|
|
20
|
+
.map((it) => ({
|
|
21
|
+
constraintName: it.constraint_name,
|
|
22
|
+
tableName: it.table_name,
|
|
23
|
+
columnNames: it.columns,
|
|
24
|
+
}));
|
|
25
|
+
const indexes = indexRows
|
|
26
|
+
.map((it) => ({
|
|
27
|
+
indexName: it.index_name,
|
|
28
|
+
tableName: it.table_name,
|
|
29
|
+
columnNames: it.columns,
|
|
30
|
+
}));
|
|
31
|
+
return new ResolvedDatabaseMetadata_1.ResolvedDatabaseMetadata(fkConstraints, uniqueConstraints, indexes);
|
|
32
|
+
}
|
|
33
|
+
async fetchConstraints(connection, schema) {
|
|
34
|
+
return (await connection.query(`
|
|
35
|
+
SELECT
|
|
36
|
+
MAX(pg_constraint.conname) AS constraint_name,
|
|
37
|
+
MAX(pg_class.relname) AS table_name,
|
|
38
|
+
JSONB_AGG(DISTINCT pg_attribute.attname) AS columns,
|
|
39
|
+
MAX(pg_constraint.contype) AS type,
|
|
40
|
+
MAX(pg_constraint_table.relname) AS target_table,
|
|
41
|
+
JSONB_AGG(DISTINCT pg_attribute_target.attname)
|
|
42
|
+
FILTER ( WHERE pg_attribute_target.attname IS NOT NULL) AS target_columns,
|
|
43
|
+
BOOL_OR(condeferrable),
|
|
44
|
+
BOOL_OR(condeferred)
|
|
45
|
+
FROM pg_constraint
|
|
46
|
+
JOIN pg_class
|
|
47
|
+
ON pg_constraint.conrelid = pg_class.oid
|
|
48
|
+
JOIN pg_namespace
|
|
49
|
+
ON pg_class.relnamespace = pg_namespace.oid
|
|
50
|
+
JOIN pg_attribute
|
|
51
|
+
ON pg_attribute.attrelid = pg_class.oid AND pg_attribute.attnum = ANY (pg_constraint.conkey)
|
|
52
|
+
LEFT JOIN pg_attribute pg_attribute_target
|
|
53
|
+
ON pg_constraint.confrelid = pg_attribute_target.attrelid AND
|
|
54
|
+
pg_attribute_target.attnum = ANY (pg_constraint.confkey)
|
|
55
|
+
LEFT JOIN pg_class pg_constraint_table
|
|
56
|
+
ON pg_constraint_table.oid = pg_constraint.confrelid
|
|
57
|
+
WHERE pg_namespace.nspname = ?
|
|
58
|
+
AND pg_constraint.contype = ANY (ARRAY ['f', 'u'])
|
|
59
|
+
GROUP BY pg_constraint.oid
|
|
60
|
+
`, [schema]))
|
|
61
|
+
.rows;
|
|
62
|
+
}
|
|
63
|
+
async fetchIndexes(connection, schema) {
|
|
64
|
+
return (await connection.query(`
|
|
65
|
+
SELECT
|
|
66
|
+
MAX(idx_class.relname) AS index_name,
|
|
67
|
+
MAX(table_class.relname) AS table_name,
|
|
68
|
+
JSONB_AGG(DISTINCT pg_attribute.attname) AS columns
|
|
69
|
+
FROM pg_index
|
|
70
|
+
JOIN pg_class AS table_class
|
|
71
|
+
ON pg_index.indrelid = table_class.oid
|
|
72
|
+
JOIN pg_class AS idx_class
|
|
73
|
+
ON pg_index.indexrelid = idx_class.oid
|
|
74
|
+
JOIN pg_namespace
|
|
75
|
+
ON table_class.relnamespace = pg_namespace.oid
|
|
76
|
+
JOIN pg_attribute
|
|
77
|
+
ON pg_attribute.attrelid = table_class.oid AND pg_attribute.attnum = ANY (pg_index.indkey)
|
|
78
|
+
WHERE pg_namespace.nspname = ?
|
|
79
|
+
AND indisprimary = FALSE
|
|
80
|
+
AND indisunique = FALSE
|
|
81
|
+
GROUP BY pg_index.indexrelid
|
|
82
|
+
`, [schema]))
|
|
83
|
+
.rows;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
exports.SchemaDatabaseMetadataResolver = SchemaDatabaseMetadataResolver;
|
|
87
|
+
var ConstraintTypes;
|
|
88
|
+
(function (ConstraintTypes) {
|
|
89
|
+
ConstraintTypes["foreignKey"] = "f";
|
|
90
|
+
ConstraintTypes["unique"] = "u";
|
|
91
|
+
})(ConstraintTypes || (ConstraintTypes = {}));
|
|
92
|
+
//# sourceMappingURL=SchemaDatabaseMetadataResolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SchemaDatabaseMetadataResolver.js","sourceRoot":"","sources":["../../../../src/model/metadata/SchemaDatabaseMetadataResolver.ts"],"names":[],"mappings":";;;AAQA,yEAAqE;AAErE,MAAa,8BAA8B;IAC1C,KAAK,CAAC,eAAe,CAAC,EAAmB,EAAE,aAAqB;QAC/D,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;QAC5E,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;QAEnE,MAAM,aAAa,GAAG,cAAc;aAClC,MAAM,CAAC,CAAC,EAAE,EAAkC,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,eAAe,CAAC,UAAU,CAAC;aACtF,GAAG,CAAC,CAAC,EAAE,EAAgC,EAAE,CAAC,CAAC;YAC3C,cAAc,EAAE,EAAE,CAAC,eAAe;YAClC,UAAU,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;YACzB,QAAQ,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;YAC9B,SAAS,EAAE,EAAE,CAAC,UAAU;YACxB,OAAO,EAAE,EAAE,CAAC,YAAY;SACxB,CAAC,CAAC,CAAA;QACJ,MAAM,iBAAiB,GAAG,cAAc;aACtC,MAAM,CAAC,CAAC,EAAE,EAA8B,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,eAAe,CAAC,MAAM,CAAC;aAC9E,GAAG,CAAC,CAAC,EAAE,EAA4B,EAAE,CAAC,CAAC;YACvC,cAAc,EAAE,EAAE,CAAC,eAAe;YAClC,SAAS,EAAE,EAAE,CAAC,UAAU;YACxB,WAAW,EAAE,EAAE,CAAC,OAAO;SACvB,CAAC,CAAC,CAAA;QACJ,MAAM,OAAO,GAAG,SAAS;aACvB,GAAG,CAAC,CAAC,EAAE,EAAiB,EAAE,CAAC,CAAC;YAC5B,SAAS,EAAE,EAAE,CAAC,UAAU;YACxB,SAAS,EAAE,EAAE,CAAC,UAAU;YACxB,WAAW,EAAE,EAAE,CAAC,OAAO;SACvB,CAAC,CAAC,CAAA;QAEJ,OAAO,IAAI,mDAAwB,CAClC,aAAa,EACb,iBAAiB,EACjB,OAAO,CACP,CAAA;IACF,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,UAAgC,EAAE,MAAc;QAC9E,OAAO,CAAC,MAAM,UAAU,CAAC,KAAK,CAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;GA0B9C,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;aACX,IAAI,CAAA;IACP,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,UAAgC,EAAE,MAAc;QAC1E,OAAO,CAAC,MAAM,UAAU,CAAC,KAAK,CAAW;;;;;;;;;;;;;;;;;;GAkBxC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;aACX,IAAI,CAAA;IACP,CAAC;CACD;AAxFD,wEAwFC;AAED,IAAK,eAGJ;AAHD,WAAK,eAAe;IACnB,mCAAgB,CAAA;IAChB,+BAAY,CAAA;AACb,CAAC,EAHI,eAAe,KAAf,eAAe,QAGnB"}
|