@contember/engine-system-api 0.9.4 → 0.9.5

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.
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectMigrator.d.ts","sourceRoot":"","sources":["../../../../src/model/migrations/ProjectMigrator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAgB,MAAM,8BAA8B,CAAA;AAe1F,OAAO,EAA6B,cAAc,EAAE,MAAM,WAAW,CAAA;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAA;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAI7D,qBAAa,eAAe;IAE1B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,0BAA0B;gBAH1B,kBAAkB,EAAE,kBAAkB,EACtC,cAAc,EAAE,cAAc,EAC9B,oBAAoB,EAAE,oBAAoB,EAC1C,0BAA0B,EAAE,0BAA0B;IAG3D,OAAO,CACnB,EAAE,EAAE,eAAe,EACnB,OAAO,EAAE,aAAa,EACtB,mBAAmB,EAAE,SAAS,SAAS,EAAE,EACzC,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI;YAkDxB,kBAAkB;YA8BlB,iBAAiB;YAqBjB,eAAe;YA4Bf,cAAc;YAcd,gBAAgB;YA2BhB,cAAc;CAgB5B;AAED,8BAAsB,cAAe,SAAQ,KAAK;aAGrB,OAAO,EAAE,MAAM;aAAkB,cAAc,EAAE,MAAM;IAFnF,SAAgB,IAAI,EAAE,gBAAgB,CAAA;gBAEV,OAAO,EAAE,MAAM,EAAkB,cAAc,EAAE,MAAM;CAGnF;AAED,qBAAa,8BAA+B,SAAQ,cAAc;IACjE,IAAI,mBAAoC;CACxC;AAED,qBAAa,6BAA8B,SAAQ,cAAc;IAChE,IAAI,mBAAmC;CACvC;AAED,qBAAa,oBAAqB,SAAQ,cAAc;IACvD,IAAI,mBAAmC;CACvC;AAED,qBAAa,kBAAmB,SAAQ,cAAc;IACrD,IAAI,mBAAiC;CACrC"}
1
+ {"version":3,"file":"ProjectMigrator.d.ts","sourceRoot":"","sources":["../../../../src/model/migrations/ProjectMigrator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAgB,MAAM,8BAA8B,CAAA;AAe1F,OAAO,EAA6B,cAAc,EAAE,MAAM,WAAW,CAAA;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAA;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAI7D,qBAAa,eAAe;IAE1B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,0BAA0B;gBAH1B,kBAAkB,EAAE,kBAAkB,EACtC,cAAc,EAAE,cAAc,EAC9B,oBAAoB,EAAE,oBAAoB,EAC1C,0BAA0B,EAAE,0BAA0B;IAG3D,OAAO,CACnB,EAAE,EAAE,eAAe,EACnB,OAAO,EAAE,aAAa,EACtB,mBAAmB,EAAE,SAAS,SAAS,EAAE,EACzC,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI;YAwDxB,kBAAkB;YA8BlB,iBAAiB;YAqBjB,eAAe;YA4Bf,cAAc;YAcd,gBAAgB;YA2BhB,cAAc;CAgB5B;AAED,8BAAsB,cAAe,SAAQ,KAAK;aAGrB,OAAO,EAAE,MAAM;aAAkB,cAAc,EAAE,MAAM;IAFnF,SAAgB,IAAI,EAAE,gBAAgB,CAAA;gBAEV,OAAO,EAAE,MAAM,EAAkB,cAAc,EAAE,MAAM;CAGnF;AAED,qBAAa,8BAA+B,SAAQ,cAAc;IACjE,IAAI,mBAAoC;CACxC;AAED,qBAAa,6BAA8B,SAAQ,cAAc;IAChE,IAAI,mBAAmC;CACvC;AAED,qBAAa,oBAAqB,SAAQ,cAAc;IACvD,IAAI,mBAAmC;CACvC;AAED,qBAAa,kBAAmB,SAAQ,cAAc;IACrD,IAAI,mBAAiC;CACrC"}
@@ -26,9 +26,17 @@ class ProjectMigrator {
26
26
  const sorted = [...migrationsToExecute].sort((a, b) => a.version.localeCompare(b.version));
27
27
  await this.rebaseExecutor.rebaseAll(db, project);
28
28
  const rootStage = stageTree.getRoot();
29
- const commonEventsMatrix = await db.queryHandler.fetch(new queries_1.StageCommonEventsMatrixQuery());
30
- let stageEvents = await this.fetchStageEvents(db.queryHandler, stageTree, commonEventsMatrix, rootStage);
31
- let previousId = commonEventsMatrix[rootStage.slug][rootStage.slug].stageAEventId;
29
+ let previousId;
30
+ let stageEvents;
31
+ if (stageTree.getChildren(rootStage).length === 0) {
32
+ previousId = await db.queryHandler.fetch(new queries_1.LatestEventIdByStageQuery(rootStage.slug));
33
+ stageEvents = {};
34
+ }
35
+ else {
36
+ const commonEventsMatrix = await db.queryHandler.fetch(new queries_1.StageCommonEventsMatrixQuery());
37
+ stageEvents = await this.fetchStageEvents(db.queryHandler, stageTree, commonEventsMatrix, rootStage);
38
+ previousId = commonEventsMatrix[rootStage.slug][rootStage.slug].stageAEventId;
39
+ }
32
40
  for (const migration of sorted) {
33
41
  progressCb(migration.version);
34
42
  const formatVersion = migration.formatVersion;
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectMigrator.js","sourceRoot":"","sources":["../../../../src/model/migrations/ProjectMigrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProjectMigrator.js","sourceRoot":"","sources":["../../../../src/model/migrations/ProjectMigrator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"StageCommonEventsMatrixQuery.d.ts","sourceRoot":"","sources":["../../../../../src/model/queries/events/StageCommonEventsMatrixQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAWtE,cAAM,4BAA6B,SAAQ,aAAa,CAAC,4BAA4B,CAAC,MAAM,CAAC;;IAKtF,KAAK,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,4BAA4B,CAAC,MAAM,CAAC;CAoDvF;AAED,kBAAU,4BAA4B,CAAC;IACtC,KAAY,MAAM,GAAG;QACpB,CAAC,UAAU,EAAE,MAAM,GAAG;YACrB,CAAC,UAAU,EAAE,MAAM,GAAG;gBACrB,aAAa,EAAE,MAAM,CAAA;gBACrB,aAAa,EAAE,MAAM,CAAA;gBACrB,aAAa,EAAE,MAAM,CAAA;gBACrB,QAAQ,EAAE,MAAM,CAAA;aAChB,CAAA;SACD,CAAA;KACD,CAAA;CACD;AAED,OAAO,EAAE,4BAA4B,EAAE,CAAA"}
1
+ {"version":3,"file":"StageCommonEventsMatrixQuery.d.ts","sourceRoot":"","sources":["../../../../../src/model/queries/events/StageCommonEventsMatrixQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAWtE,cAAM,4BAA6B,SAAQ,aAAa,CAAC,4BAA4B,CAAC,MAAM,CAAC;;IAKtF,KAAK,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,4BAA4B,CAAC,MAAM,CAAC;CA0DvF;AAED,kBAAU,4BAA4B,CAAC;IACtC,KAAY,MAAM,GAAG;QACpB,CAAC,UAAU,EAAE,MAAM,GAAG;YACrB,CAAC,UAAU,EAAE,MAAM,GAAG;gBACrB,aAAa,EAAE,MAAM,CAAA;gBACrB,aAAa,EAAE,MAAM,CAAA;gBACrB,aAAa,EAAE,MAAM,CAAA;gBACrB,QAAQ,EAAE,MAAM,CAAA;aAChB,CAAA;SACD,CAAA;KACD,CAAA;CACD;AAED,OAAO,EAAE,4BAA4B,EAAE,CAAA"}
@@ -7,6 +7,11 @@ class StageCommonEventsMatrixQuery extends database_1.DatabaseQuery {
7
7
  super();
8
8
  }
9
9
  async fetch(queryable) {
10
+ /**
11
+ * the stages join seems useless, but it stops postgresql from inlining the CTE
12
+ * see https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=608b167f9f9c4553c35bb1ec0eab9ddae643989b
13
+ * it should be solved using stages AS MATERIALIZED, but currently we don't know the postgresql version
14
+ */
10
15
  const res = await queryable.db.query(`
11
16
  WITH RECURSIVE
12
17
  events(id, previous_id, index, stage) AS (
@@ -40,8 +45,9 @@ class StageCommonEventsMatrixQuery extends database_1.DatabaseQuery {
40
45
  JOIN events eventsA ON eventsA.stage = stages.stage_a_id
41
46
  JOIN events eventsB ON eventsB.id = eventsA.id AND eventsB.stage = stages.stage_b_id
42
47
  )
43
- SELECT stage_a_slug, stage_a_event_id, stage_b_slug, stage_b_event_id, distance, common_event_id
48
+ SELECT matrix.stage_a_slug, matrix.stage_a_event_id, matrix.stage_b_slug, matrix.stage_b_event_id, distance, common_event_id
44
49
  FROM matrix
50
+ JOIN stages ON matrix.stage_a_slug = stages.stage_a_slug AND matrix.stage_b_slug = stages.stage_b_slug
45
51
  WHERE num = 1
46
52
  `);
47
53
  const rows = res.rows;
@@ -1 +1 @@
1
- {"version":3,"file":"StageCommonEventsMatrixQuery.js","sourceRoot":"","sources":["../../../../../src/model/queries/events/StageCommonEventsMatrixQuery.ts"],"names":[],"mappings":";;;AAAA,kDAAsE;AAWtE,MAAM,4BAA6B,SAAQ,wBAAkD;IAC5F;QACC,KAAK,EAAE,CAAA;IACR,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,SAA4B;QACvC,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,EAAE,CAAC,KAAK,CAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoC/C,CAAC,CAAA;QACF,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAA;QACrB,MAAM,MAAM,GAAwC,EAAE,CAAA;QACtD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACvB,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAA;YACzD,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG;gBAC5C,aAAa,EAAE,GAAG,CAAC,eAAe;gBAClC,aAAa,EAAE,GAAG,CAAC,gBAAgB;gBACnC,aAAa,EAAE,GAAG,CAAC,gBAAgB;gBACnC,QAAQ,EAAE,GAAG,CAAC,QAAQ;aACtB,CAAA;SACD;QAED,OAAO,MAAM,CAAA;IACd,CAAC;CACD;AAeQ,oEAA4B"}
1
+ {"version":3,"file":"StageCommonEventsMatrixQuery.js","sourceRoot":"","sources":["../../../../../src/model/queries/events/StageCommonEventsMatrixQuery.ts"],"names":[],"mappings":";;;AAAA,kDAAsE;AAWtE,MAAM,4BAA6B,SAAQ,wBAAkD;IAC5F;QACC,KAAK,EAAE,CAAA;IACR,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,SAA4B;QACvC;;;;WAIG;QACH,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,EAAE,CAAC,KAAK,CAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqC/C,CAAC,CAAA;QACF,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAA;QACrB,MAAM,MAAM,GAAwC,EAAE,CAAA;QACtD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACvB,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAA;YACzD,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG;gBAC5C,aAAa,EAAE,GAAG,CAAC,eAAe;gBAClC,aAAa,EAAE,GAAG,CAAC,gBAAgB;gBACnC,aAAa,EAAE,GAAG,CAAC,gBAAgB;gBACnC,QAAQ,EAAE,GAAG,CAAC,QAAQ;aACtB,CAAA;SACD;QAED,OAAO,MAAM,CAAA;IACd,CAAC;CACD;AAeQ,oEAA4B"}
@@ -1907,7 +1907,7 @@
1907
1907
  "affectsGlobalScope": false
1908
1908
  },
1909
1909
  "../../src/model/migrations/ProjectMigrator.ts": {
1910
- "version": "6071cfbf4233bbb7ab94bf0a1782e235c9dfa1681b9015a3feb0db0b20e11be1",
1910
+ "version": "232a40742725640d9e043068be045d2ad2d06af075b8ee42fe9ab25816c470e3",
1911
1911
  "signature": "62e39fd278232e43ca7c6f51cdbbf0bea705c71631695b08be5e6e0815079c58",
1912
1912
  "affectsGlobalScope": false
1913
1913
  },
@@ -2012,7 +2012,7 @@
2012
2012
  "affectsGlobalScope": false
2013
2013
  },
2014
2014
  "../../src/model/queries/events/StageCommonEventsMatrixQuery.ts": {
2015
- "version": "5984dc5c62af39642d2b2230dc8ec9d63eb6f8d424fb810d7df52e92f1625c8a",
2015
+ "version": "d5d18f22201d02b8e7bf7f4d4be5014a8db81097e7a7e9b814515183cbb1ac8d",
2016
2016
  "signature": "2a6ee4650574bc64ae9cb033ab2d550c54ebf9b853d17bc7eb9983e16bf029ff",
2017
2017
  "affectsGlobalScope": false
2018
2018
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contember/engine-system-api",
3
- "version": "0.9.4",
3
+ "version": "0.9.5",
4
4
  "license": "Apache-2.0",
5
5
  "main": "dist/src/index.js",
6
6
  "typings": "dist/src/index.d.ts",
@@ -9,24 +9,24 @@
9
9
  "test": "jasmine --config=jasmine.json"
10
10
  },
11
11
  "dependencies": {
12
- "@contember/authorization": "^0.9.4",
13
- "@contember/database": "^0.9.4",
14
- "@contember/database-migrations": "^0.9.4",
15
- "@contember/dic": "^0.9.4",
16
- "@contember/engine-common": "^0.9.4",
17
- "@contember/queryable": "^0.9.4",
18
- "@contember/schema": "^0.9.4",
19
- "@contember/schema-migrations": "^0.9.4",
20
- "@contember/schema-utils": "^0.9.4",
21
- "@contember/graphql-utils": "^0.9.4",
12
+ "@contember/authorization": "^0.9.5",
13
+ "@contember/database": "^0.9.5",
14
+ "@contember/database-migrations": "^0.9.5",
15
+ "@contember/dic": "^0.9.5",
16
+ "@contember/engine-common": "^0.9.5",
17
+ "@contember/queryable": "^0.9.5",
18
+ "@contember/schema": "^0.9.5",
19
+ "@contember/schema-migrations": "^0.9.5",
20
+ "@contember/schema-utils": "^0.9.5",
21
+ "@contember/graphql-utils": "^0.9.5",
22
22
  "apollo-server-core": "^2.9.1",
23
23
  "apollo-server-errors": "^2.4.0",
24
24
  "graphql": "^14.6.0",
25
25
  "pg": "^7.17.1"
26
26
  },
27
27
  "devDependencies": {
28
- "@contember/engine-api-tester": "^0.9.4",
29
- "@contember/schema-definition": "^0.9.4",
28
+ "@contember/engine-api-tester": "^0.9.5",
29
+ "@contember/schema-definition": "^0.9.5",
30
30
  "@graphql-codegen/cli": "^1.15.2",
31
31
  "@graphql-codegen/typescript": "^1.15.2",
32
32
  "@graphql-codegen/typescript-operations": "^1.15.2",
@@ -1,7 +1,7 @@
1
1
  import { createStageTree, StageTree } from '../stages'
2
2
  import { Migration, MigrationDescriber, Modification } from '@contember/schema-migrations'
3
3
  import { Client, ConnectionError, DatabaseQueryable, wrapIdentifier } from '@contember/database'
4
- import { DiffQuery, StageCommonEventsMatrixQuery } from '../queries'
4
+ import { DiffQuery, LatestEventIdByStageQuery, StageCommonEventsMatrixQuery } from '../queries'
5
5
  import { formatSchemaName } from '../helpers'
6
6
  import { Schema } from '@contember/schema'
7
7
  import {
@@ -48,10 +48,16 @@ export class ProjectMigrator {
48
48
 
49
49
  await this.rebaseExecutor.rebaseAll(db, project)
50
50
  const rootStage = stageTree.getRoot()
51
- const commonEventsMatrix = await db.queryHandler.fetch(new StageCommonEventsMatrixQuery())
52
- let stageEvents = await this.fetchStageEvents(db.queryHandler, stageTree, commonEventsMatrix, rootStage)
53
-
54
- let previousId = commonEventsMatrix[rootStage.slug][rootStage.slug].stageAEventId
51
+ let previousId: string
52
+ let stageEvents: StageEventsMap
53
+ if (stageTree.getChildren(rootStage).length === 0) {
54
+ previousId = await db.queryHandler.fetch(new LatestEventIdByStageQuery(rootStage.slug))
55
+ stageEvents = {}
56
+ } else {
57
+ const commonEventsMatrix = await db.queryHandler.fetch(new StageCommonEventsMatrixQuery())
58
+ stageEvents = await this.fetchStageEvents(db.queryHandler, stageTree, commonEventsMatrix, rootStage)
59
+ previousId = commonEventsMatrix[rootStage.slug][rootStage.slug].stageAEventId
60
+ }
55
61
  for (const migration of sorted) {
56
62
  progressCb(migration.version)
57
63
  const formatVersion = migration.formatVersion
@@ -15,6 +15,11 @@ class StageCommonEventsMatrixQuery extends DatabaseQuery<StageCommonEventsMatrix
15
15
  }
16
16
 
17
17
  async fetch(queryable: DatabaseQueryable): Promise<StageCommonEventsMatrixQuery.Result> {
18
+ /**
19
+ * the stages join seems useless, but it stops postgresql from inlining the CTE
20
+ * see https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=608b167f9f9c4553c35bb1ec0eab9ddae643989b
21
+ * it should be solved using stages AS MATERIALIZED, but currently we don't know the postgresql version
22
+ */
18
23
  const res = await queryable.db.query<MatrixRow>(`
19
24
  WITH RECURSIVE
20
25
  events(id, previous_id, index, stage) AS (
@@ -48,8 +53,9 @@ class StageCommonEventsMatrixQuery extends DatabaseQuery<StageCommonEventsMatrix
48
53
  JOIN events eventsA ON eventsA.stage = stages.stage_a_id
49
54
  JOIN events eventsB ON eventsB.id = eventsA.id AND eventsB.stage = stages.stage_b_id
50
55
  )
51
- SELECT stage_a_slug, stage_a_event_id, stage_b_slug, stage_b_event_id, distance, common_event_id
56
+ SELECT matrix.stage_a_slug, matrix.stage_a_event_id, matrix.stage_b_slug, matrix.stage_b_event_id, distance, common_event_id
52
57
  FROM matrix
58
+ JOIN stages ON matrix.stage_a_slug = stages.stage_a_slug AND matrix.stage_b_slug = stages.stage_b_slug
53
59
  WHERE num = 1
54
60
  `)
55
61
  const rows = res.rows