@or-sdk/idw 1.4.0-beta.1530.0 → 1.4.0-beta.1545.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/cjs/idw.js +22 -16
  3. package/dist/cjs/idw.js.map +1 -1
  4. package/dist/cjs/migration-base.js +7 -6
  5. package/dist/cjs/migration-base.js.map +1 -1
  6. package/dist/cjs/migration-handler.js +17 -18
  7. package/dist/cjs/migration-handler.js.map +1 -1
  8. package/dist/cjs/migrations/Migration__3.js +108 -0
  9. package/dist/cjs/migrations/Migration__3.js.map +1 -0
  10. package/dist/cjs/migrations/Migration__4.js +148 -0
  11. package/dist/cjs/migrations/Migration__4.js.map +1 -0
  12. package/dist/cjs/migrations/index.js +5 -1
  13. package/dist/cjs/migrations/index.js.map +1 -1
  14. package/dist/esm/idw.js +12 -4
  15. package/dist/esm/idw.js.map +1 -1
  16. package/dist/esm/migration-base.js +7 -6
  17. package/dist/esm/migration-base.js.map +1 -1
  18. package/dist/esm/migration-handler.js +8 -10
  19. package/dist/esm/migration-handler.js.map +1 -1
  20. package/dist/esm/migrations/Migration__3.js +53 -0
  21. package/dist/esm/migrations/Migration__3.js.map +1 -0
  22. package/dist/esm/migrations/Migration__4.js +66 -0
  23. package/dist/esm/migrations/Migration__4.js.map +1 -0
  24. package/dist/esm/migrations/index.js +2 -0
  25. package/dist/esm/migrations/index.js.map +1 -1
  26. package/dist/types/idw.d.ts +1 -0
  27. package/dist/types/idw.d.ts.map +1 -1
  28. package/dist/types/migration-base.d.ts +3 -1
  29. package/dist/types/migration-base.d.ts.map +1 -1
  30. package/dist/types/migration-handler.d.ts +3 -1
  31. package/dist/types/migration-handler.d.ts.map +1 -1
  32. package/dist/types/migrations/Migration__3.d.ts +5 -0
  33. package/dist/types/migrations/Migration__3.d.ts.map +1 -0
  34. package/dist/types/migrations/Migration__4.d.ts +8 -0
  35. package/dist/types/migrations/Migration__4.d.ts.map +1 -0
  36. package/dist/types/migrations/index.d.ts +2 -0
  37. package/dist/types/migrations/index.d.ts.map +1 -1
  38. package/package.json +3 -2
  39. package/src/idw.ts +11 -1
  40. package/src/migration-base.ts +9 -12
  41. package/src/migration-handler.ts +23 -11
  42. package/src/migrations/Migration__3.ts +45 -0
  43. package/src/migrations/Migration__4.ts +55 -0
  44. package/src/migrations/index.ts +2 -0
@@ -8,12 +8,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  });
9
9
  };
10
10
  export class MigrationBase {
11
- constructor(params) {
12
- this.graphApi = params.graphApi;
13
- this.users = params.users;
14
- this.accounts = params.accounts;
15
- this.settings = params.settings;
16
- this.accountId = params.accountId;
11
+ constructor(graphApi, users, accounts, settings, accountId, flows) {
12
+ this.graphApi = graphApi;
13
+ this.users = users;
14
+ this.accounts = accounts;
15
+ this.settings = settings;
16
+ this.accountId = accountId;
17
+ this.flows = flows;
17
18
  }
18
19
  resolveAccountId() {
19
20
  var _a;
@@ -1 +1 @@
1
- {"version":3,"file":"migration-base.js","sourceRoot":"","sources":["../../src/migration-base.ts"],"names":[],"mappings":";;;;;;;;;AAaA,MAAM,OAAgB,aAAa;IAOjC,YAAY,MAAwB;QAClC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IACpC,CAAC;IAIe,gBAAgB;;;YAC9B,OAAO,MAAA,IAAI,CAAC,SAAS,mCAAI,CAAC,GAAS,EAAE;gBACnC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;gBACxD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;gBAC3B,OAAO,SAAS,CAAC;YACnB,CAAC,CAAA,CAAC,EAAE,CAAC;;KACN;CACF"}
1
+ {"version":3,"file":"migration-base.js","sourceRoot":"","sources":["../../src/migration-base.ts"],"names":[],"mappings":";;;;;;;;;AAcA,MAAM,OAAgB,aAAa;IACjC,YACY,QAAgB,EAChB,KAAY,EACZ,QAAkB,EAClB,QAAkB,EAClB,SAA6B,EAC7B,KAAY;QALZ,aAAQ,GAAR,QAAQ,CAAQ;QAChB,UAAK,GAAL,KAAK,CAAO;QACZ,aAAQ,GAAR,QAAQ,CAAU;QAClB,aAAQ,GAAR,QAAQ,CAAU;QAClB,cAAS,GAAT,SAAS,CAAoB;QAC7B,UAAK,GAAL,KAAK,CAAO;IAExB,CAAC;IAIe,gBAAgB;;;YAC9B,OAAO,MAAA,IAAI,CAAC,SAAS,mCAAI,CAAC,GAAS,EAAE;gBACnC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;gBACxD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;gBAC3B,OAAO,SAAS,CAAC;YACnB,CAAC,CAAA,CAAC,EAAE,CAAC;;KACN;CACF"}
@@ -11,24 +11,22 @@ import { SERVICE_KEY, VERSION_PROP } from './constants';
11
11
  import * as migrations from './migrations';
12
12
  const PREFIX = 'Migration__';
13
13
  export default class MigrationHandler {
14
- constructor(graphApi, users, accounts, settings, accountId) {
14
+ constructor(graphApi, users, accounts, settings, accountId, flows) {
15
15
  this.graphApi = graphApi;
16
16
  this.users = users;
17
17
  this.accounts = accounts;
18
18
  this.settings = settings;
19
19
  this.accountId = accountId;
20
- const params = {
21
- graphApi,
22
- users,
23
- accounts,
24
- settings,
25
- accountId,
26
- };
27
- this.migrations = new Map(Object.values(migrations).map(ctor => [ctor.name, new ctor(params)]));
20
+ this.flows = flows;
21
+ this.migrations = new Map(Object.values(migrations)
22
+ .map(ctor => [
23
+ ctor.name, new ctor(this.graphApi, this.users, this.accounts, this.settings, this.accountId, this.flows),
24
+ ]));
28
25
  }
29
26
  applyMigrations() {
27
+ var _a;
30
28
  return __awaiter(this, void 0, void 0, function* () {
31
- const accountsLatestVersion = yield this.findAccountsMigrationVersion();
29
+ const accountsLatestVersion = (_a = (yield this.findAccountsMigrationVersion())) !== null && _a !== void 0 ? _a : 0;
32
30
  const migrationVersions = Array.from(this.migrations.keys()).map(migrationName => {
33
31
  const [, version] = migrationName.split(PREFIX);
34
32
  return Number(version);
@@ -1 +1 @@
1
- {"version":3,"file":"migration-handler.js","sourceRoot":"","sources":["../../src/migration-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migration-handler.js","sourceRoot":"","sources":["../../src/migration-handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { MigrationBase } from '../migration-base';
11
+ import { GRAPH_NAME } from '../constants';
12
+ export default class Migration__3 extends MigrationBase {
13
+ up() {
14
+ return __awaiter(this, void 0, void 0, function* () {
15
+ const flowsIds = yield this.graphApi.query({
16
+ graph: GRAPH_NAME,
17
+ query: `match (flow: FLOW)
18
+ where flow.steps is NULL
19
+ return flow.id as id
20
+ `,
21
+ params: {},
22
+ });
23
+ if (flowsIds.length) {
24
+ const preparedIds = flowsIds.map(f => f.id);
25
+ const flows = yield this.flows.listFlows({
26
+ query: {
27
+ id: preparedIds,
28
+ },
29
+ projection: ['data.trees.main.steps'],
30
+ });
31
+ const pairs = flows.items.map(flow => {
32
+ var _a, _b, _c;
33
+ return ({
34
+ steps: (_c = (_b = (_a = flow.data.trees) === null || _a === void 0 ? void 0 : _a.main.steps) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0,
35
+ id: flow.id,
36
+ });
37
+ });
38
+ yield this.graphApi.query({
39
+ graph: GRAPH_NAME,
40
+ query: `
41
+ unwind $list as pairs
42
+ MERGE (flow:FLOW { id: pairs.id })
43
+ SET flow.steps = pairs.steps
44
+ `,
45
+ params: {
46
+ list: pairs,
47
+ },
48
+ });
49
+ }
50
+ });
51
+ }
52
+ }
53
+ //# sourceMappingURL=Migration__3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Migration__3.js","sourceRoot":"","sources":["../../../src/migrations/Migration__3.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,aAAa;IAC/C,EAAE;;YACN,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAgB;gBACxD,KAAK,EAAE,UAAU;gBACjB,KAAK,EAAE;;;eAGE;gBACT,MAAM,EAAE,EAAE;aACX,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,MAAM,EAAE;gBACnB,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC5C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;oBACvC,KAAK,EAAE;wBACL,EAAE,EAAE,WAAW;qBAChB;oBACD,UAAU,EAAE,CAAC,uBAAuB,CAAC;iBACtC,CAAC,CAAC;gBAEH,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;;oBAAC,OAAA,CACpC;wBACE,KAAK,EAAE,MAAA,MAAA,MAAA,IAAI,CAAC,IAAI,CAAC,KAAK,0CAAE,IAAI,CAAC,KAAK,0CAAE,MAAM,mCAAI,CAAC;wBAC/C,EAAE,EAAE,IAAI,CAAC,EAAE;qBACZ,CAAC,CAAA;iBAAA,CACH,CAAC;gBAEF,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;oBACxB,KAAK,EAAE,UAAU;oBACjB,KAAK,EAAE;;;;eAIA;oBACP,MAAM,EAAE;wBACN,IAAI,EAAE,KAAY;qBACnB;iBACF,CAAC,CAAC;aACJ;QACH,CAAC;KAAA;CACF"}
@@ -0,0 +1,66 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { GRAPH_NAME } from '../constants';
11
+ import { MigrationBase } from '../migration-base';
12
+ export default class Migration__4 extends MigrationBase {
13
+ up() {
14
+ return __awaiter(this, void 0, void 0, function* () {
15
+ const channelsExist = yield this.checkIfDomainsExist();
16
+ if (!channelsExist) {
17
+ yield this.createDefaultDomains();
18
+ yield this.connectNodesToDefaultDomains();
19
+ }
20
+ });
21
+ }
22
+ checkIfDomainsExist() {
23
+ return __awaiter(this, void 0, void 0, function* () {
24
+ const [data] = yield this.graphApi.query({
25
+ graph: GRAPH_NAME,
26
+ query: 'MATCH (domains: DOMAIN) RETURN collect(DISTINCT domains) as domains',
27
+ params: {},
28
+ });
29
+ return data.domains.length > 0;
30
+ });
31
+ }
32
+ createDefaultDomains() {
33
+ return __awaiter(this, void 0, void 0, function* () {
34
+ yield this.graphApi.query({
35
+ graph: GRAPH_NAME,
36
+ query: `CREATE (sd: DOMAIN {id: "skills-default-domain", name: "Default"}),
37
+ (cd: DOMAIN {id: "channels-default-domain", name: "Default"}),
38
+ (md: DOMAIN {id: "memory-default-domain", name: "Default"})`,
39
+ params: {},
40
+ });
41
+ });
42
+ }
43
+ connectNodesToDefaultDomains() {
44
+ return __awaiter(this, void 0, void 0, function* () {
45
+ yield this.graphApi.query({
46
+ graph: GRAPH_NAME,
47
+ query: `MATCH (sd: DOMAIN {id: "skills-default-domain"}), (s: SKILL)
48
+ CREATE (sd)-[r: INCLUDES]->(s)`,
49
+ params: {},
50
+ });
51
+ yield this.graphApi.query({
52
+ graph: GRAPH_NAME,
53
+ query: `MATCH (cd: DOMAIN {id: "channels-default-domain"}), (c: CHANNEL)
54
+ CREATE (cd)-[r: INCLUDES]->(c)`,
55
+ params: {},
56
+ });
57
+ yield this.graphApi.query({
58
+ graph: GRAPH_NAME,
59
+ query: `MATCH (md: DOMAIN {id: "memory-default-domain"}), (m: MEMORY)
60
+ CREATE (md)-[r: INCLUDES]->(m)`,
61
+ params: {},
62
+ });
63
+ });
64
+ }
65
+ }
66
+ //# sourceMappingURL=Migration__4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Migration__4.js","sourceRoot":"","sources":["../../../src/migrations/Migration__4.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGlD,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,aAAa;IAC/C,EAAE;;YACN,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACvD,IAAI,CAAC,aAAa,EAAE;gBAClB,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAClC,MAAM,IAAI,CAAC,4BAA4B,EAAE,CAAC;aAC3C;QACH,CAAC;KAAA;IAEa,mBAAmB;;YAC/B,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAsB;gBAC5D,KAAK,EAAE,UAAU;gBACjB,KAAK,EAAE,qEAAqE;gBAC5E,MAAM,EAAE,EAAE;aACX,CAAC,CAAC;YACH,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QACjC,CAAC;KAAA;IAEa,oBAAoB;;YAChC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACxB,KAAK,EAAE,UAAU;gBACjB,KAAK,EAAE;;oEAEuD;gBAC9D,MAAM,EAAE,EAAE;aACX,CAAC,CAAC;QACL,CAAC;KAAA;IAEa,4BAA4B;;YACxC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACxB,KAAK,EAAE,UAAU;gBACjB,KAAK,EAAE;yCAC4B;gBACnC,MAAM,EAAE,EAAE;aACX,CAAC,CAAC;YAEH,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACxB,KAAK,EAAE,UAAU;gBACjB,KAAK,EAAE;yCAC4B;gBACnC,MAAM,EAAE,EAAE;aACX,CAAC,CAAC;YAEH,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACxB,KAAK,EAAE,UAAU;gBACjB,KAAK,EAAE;yCAC4B;gBACnC,MAAM,EAAE,EAAE;aACX,CAAC,CAAC;QACL,CAAC;KAAA;CACF"}
@@ -1,3 +1,5 @@
1
1
  export { default as Migration__1 } from './Migration__1';
2
2
  export { default as Migration__2 } from './Migration__2';
3
+ export { default as Migration__3 } from './Migration__3';
4
+ export { default as Migration__4 } from './Migration__4';
3
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/migrations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/migrations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
@@ -6,6 +6,7 @@ export declare class IDW extends Base {
6
6
  private readonly users;
7
7
  private readonly accounts;
8
8
  private readonly settings;
9
+ private readonly flows;
9
10
  private accountId;
10
11
  private migrationHandler;
11
12
  constructor(params: IDWConfig);
@@ -1 +1 @@
1
- {"version":3,"file":"idw.d.ts","sourceRoot":"","sources":["../../src/idw.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAKpC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAQxC,qBAAa,GAAI,SAAQ,IAAI;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IACpC,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,gBAAgB,CAAmB;gBAa/B,MAAM,EAAE,SAAS;IAiDvB,aAAa;IAIb,eAAe;YAYP,QAAQ;IAIhB,kBAAkB,CAAC,IAAI,EAAE,IAAI;IAgF7B,UAAU,CAAC,EAAE,EAAE,MAAM;IAOrB,YAAY,CAAC,IAAI,EAAE,IAAI;IA8CvB,cAAc,CAAC,EAAE,EAAE,MAAM;YAajB,UAAU;CAoBzB"}
1
+ {"version":3,"file":"idw.d.ts","sourceRoot":"","sources":["../../src/idw.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAKpC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AASxC,qBAAa,GAAI,SAAQ,IAAI;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,gBAAgB,CAAmB;gBAa/B,MAAM,EAAE,SAAS;IAsDvB,aAAa;IAIb,eAAe;YAYP,QAAQ;IAIhB,kBAAkB,CAAC,IAAI,EAAE,IAAI;IAmF7B,UAAU,CAAC,EAAE,EAAE,MAAM;IAOrB,YAAY,CAAC,IAAI,EAAE,IAAI;IA8CvB,cAAc,CAAC,EAAE,EAAE,MAAM;YAajB,UAAU;CAoBzB"}
@@ -2,6 +2,7 @@ import { Accounts } from '@or-sdk/accounts';
2
2
  import { Graphs } from '@or-sdk/graph';
3
3
  import { Settings } from '@or-sdk/settings';
4
4
  import { Users } from '@or-sdk/users';
5
+ import { Flows } from '@or-sdk/flows';
5
6
  export interface MigrationsParams {
6
7
  graphApi: Graphs;
7
8
  users: Users;
@@ -15,7 +16,8 @@ export declare abstract class MigrationBase {
15
16
  protected accounts: Accounts;
16
17
  protected settings: Settings;
17
18
  protected accountId: string | undefined;
18
- constructor(params: MigrationsParams);
19
+ protected flows: Flows;
20
+ constructor(graphApi: Graphs, users: Users, accounts: Accounts, settings: Settings, accountId: string | undefined, flows: Flows);
19
21
  abstract up(): Promise<void>;
20
22
  protected resolveAccountId(): Promise<string>;
21
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"migration-base.d.ts","sourceRoot":"","sources":["../../src/migration-base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAED,8BAAsB,aAAa;IACjC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC;IACvB,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC7B,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC7B,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;gBAE5B,MAAM,EAAE,gBAAgB;IAQpC,QAAQ,CAAC,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC;cAEZ,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;CAOpD"}
1
+ {"version":3,"file":"migration-base.d.ts","sourceRoot":"","sources":["../../src/migration-base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAED,8BAAsB,aAAa;IAE/B,SAAS,CAAC,QAAQ,EAAE,MAAM;IAC1B,SAAS,CAAC,KAAK,EAAE,KAAK;IACtB,SAAS,CAAC,QAAQ,EAAE,QAAQ;IAC5B,SAAS,CAAC,QAAQ,EAAE,QAAQ;IAC5B,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS;IACvC,SAAS,CAAC,KAAK,EAAE,KAAK;gBALZ,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,KAAK,EAAE,KAAK;IAIxB,QAAQ,CAAC,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC;cAEZ,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;CAOpD"}
@@ -2,14 +2,16 @@ import { Accounts } from '@or-sdk/accounts';
2
2
  import { Graphs } from '@or-sdk/graph';
3
3
  import { Users } from '@or-sdk/users';
4
4
  import { Settings } from '@or-sdk/settings';
5
+ import { Flows } from '@or-sdk/flows';
5
6
  export default class MigrationHandler {
6
7
  private graphApi;
7
8
  private users;
8
9
  private accounts;
9
10
  private settings;
10
11
  private accountId;
12
+ private flows;
11
13
  private migrations;
12
- constructor(graphApi: Graphs, users: Users, accounts: Accounts, settings: Settings, accountId: string | undefined);
14
+ constructor(graphApi: Graphs, users: Users, accounts: Accounts, settings: Settings, accountId: string | undefined, flows: Flows);
13
15
  applyMigrations(): Promise<void>;
14
16
  saveVersion(currentLatestVersion: number): Promise<void>;
15
17
  deleteMigrationVersion(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"migration-handler.d.ts","sourceRoot":"","sources":["../../src/migration-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAA6B,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAOvE,MAAM,CAAC,OAAO,OAAO,gBAAgB;IAGvB,OAAO,CAAC,QAAQ;IAAU,OAAO,CAAC,KAAK;IAAS,OAAO,CAAC,QAAQ;IAC1E,OAAO,CAAC,QAAQ;IAAY,OAAO,CAAC,SAAS;IAH/C,OAAO,CAAC,UAAU,CAA6B;gBAE3B,QAAQ,EAAE,MAAM,EAAU,KAAK,EAAE,KAAK,EAAU,QAAQ,EAAE,QAAQ,EAC5E,QAAQ,EAAE,QAAQ,EAAU,SAAS,EAAE,MAAM,GAAG,SAAS;IAY7D,eAAe;IAwBf,WAAW,CAAC,oBAAoB,EAAE,MAAM;IAaxC,sBAAsB;IAOtB,4BAA4B;CAWnC"}
1
+ {"version":3,"file":"migration-handler.d.ts","sourceRoot":"","sources":["../../src/migration-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAA6B,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAIvE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAItC,MAAM,CAAC,OAAO,OAAO,gBAAgB;IAIjC,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,KAAK;IARf,OAAO,CAAC,UAAU,CAA6B;gBAGrC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,KAAK,EAAE,KAAK;IAkBhB,eAAe;IAwBf,WAAW,CAAC,oBAAoB,EAAE,MAAM;IAaxC,sBAAsB;IAOtB,4BAA4B;CAWnC"}
@@ -0,0 +1,5 @@
1
+ import { MigrationBase } from '../migration-base';
2
+ export default class Migration__3 extends MigrationBase {
3
+ up(): Promise<void>;
4
+ }
5
+ //# sourceMappingURL=Migration__3.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Migration__3.d.ts","sourceRoot":"","sources":["../../../src/migrations/Migration__3.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAIlD,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,aAAa;IAC/C,EAAE;CAuCT"}
@@ -0,0 +1,8 @@
1
+ import { MigrationBase } from '../migration-base';
2
+ export default class Migration__4 extends MigrationBase {
3
+ up(): Promise<void>;
4
+ private checkIfDomainsExist;
5
+ private createDefaultDomains;
6
+ private connectNodesToDefaultDomains;
7
+ }
8
+ //# sourceMappingURL=Migration__4.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Migration__4.d.ts","sourceRoot":"","sources":["../../../src/migrations/Migration__4.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGlD,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,aAAa;IAC/C,EAAE;YAQM,mBAAmB;YASnB,oBAAoB;YAUpB,4BAA4B;CAsB3C"}
@@ -1,3 +1,5 @@
1
1
  export { default as Migration__1 } from './Migration__1';
2
2
  export { default as Migration__2 } from './Migration__2';
3
+ export { default as Migration__3 } from './Migration__3';
4
+ export { default as Migration__4 } from './Migration__4';
3
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/migrations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/migrations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.4.0-beta.1530.0",
2
+ "version": "1.4.0-beta.1545.0",
3
3
  "name": "@or-sdk/idw",
4
4
  "main": "dist/cjs/index.js",
5
5
  "module": "dist/esm/index.js",
@@ -24,9 +24,10 @@
24
24
  "access": "public"
25
25
  },
26
26
  "dependencies": {
27
- "@or-sdk/accounts": "^1.3.0-beta.1530.0",
27
+ "@or-sdk/accounts": "^1.2.13",
28
28
  "@or-sdk/base": "^0.28.3",
29
29
  "@or-sdk/deployer": "^1.1.5",
30
+ "@or-sdk/flows": "^2.0.2",
30
31
  "@or-sdk/graph": "^1.4.1",
31
32
  "@or-sdk/settings": "^0.24.11",
32
33
  "@or-sdk/users": "^0.30.2",
package/src/idw.ts CHANGED
@@ -7,6 +7,7 @@ import { GRAPH_NAME, SERVICE_KEY } from './constants';
7
7
  import { IDWConfig } from './types';
8
8
  import MigrationHandler from './migration-handler';
9
9
  import { Flow } from '@or-sdk/deployer';
10
+ import { Flows } from '@or-sdk/flows';
10
11
  /**
11
12
  * OneReach IDW service client
12
13
  * ## Installation:
@@ -19,6 +20,7 @@ export class IDW extends Base {
19
20
  private readonly users: Users;
20
21
  private readonly accounts: Accounts;
21
22
  private readonly settings: Settings;
23
+ private readonly flows: Flows;
22
24
  private accountId: string | undefined;
23
25
  private migrationHandler: MigrationHandler;
24
26
 
@@ -70,6 +72,10 @@ export class IDW extends Base {
70
72
  token,
71
73
  sdkUrl: sdkApiUrl,
72
74
  });
75
+ this.flows = new Flows({
76
+ token,
77
+ discoveryUrl,
78
+ });
73
79
 
74
80
  this.accountId = accountId;
75
81
 
@@ -78,7 +84,8 @@ export class IDW extends Base {
78
84
  this.users,
79
85
  this.accounts,
80
86
  this.settings,
81
- this.accountId
87
+ this.accountId,
88
+ this.flows
82
89
  );
83
90
  }
84
91
 
@@ -124,6 +131,7 @@ export class IDW extends Base {
124
131
  flow.name = $name,
125
132
  flow.updatedAt = $updatedAt,
126
133
  flow.updatedBy = $username
134
+ flow.steps = $steps
127
135
  ON CREATE
128
136
  SET flow.createdAt = $createdAt,
129
137
  flow.createdBy = $userId,
@@ -133,6 +141,7 @@ export class IDW extends Base {
133
141
  flow.name = $name,
134
142
  flow.updatedAt = $updatedAt,
135
143
  flow.updatedBy = $username
144
+ flow.steps = $steps
136
145
  RETURN flow
137
146
  `, {
138
147
  createdAt: flow.dateCreated,
@@ -143,6 +152,7 @@ export class IDW extends Base {
143
152
  updatedAt: flow.dateModified,
144
153
  username,
145
154
  userId,
155
+ steps: flow.data.trees?.main?.steps?.length ?? 0,
146
156
  });
147
157
 
148
158
  await this.graphQuery(`
@@ -2,6 +2,7 @@ import { Accounts } from '@or-sdk/accounts';
2
2
  import { Graphs } from '@or-sdk/graph';
3
3
  import { Settings } from '@or-sdk/settings';
4
4
  import { Users } from '@or-sdk/users';
5
+ import { Flows } from '@or-sdk/flows';
5
6
 
6
7
  export interface MigrationsParams {
7
8
  graphApi: Graphs;
@@ -12,18 +13,14 @@ export interface MigrationsParams {
12
13
  }
13
14
 
14
15
  export abstract class MigrationBase {
15
- protected graphApi: Graphs;
16
- protected users: Users;
17
- protected accounts: Accounts;
18
- protected settings: Settings;
19
- protected accountId: string | undefined;
20
-
21
- constructor(params: MigrationsParams) {
22
- this.graphApi = params.graphApi;
23
- this.users = params.users;
24
- this.accounts = params.accounts;
25
- this.settings = params.settings;
26
- this.accountId = params.accountId;
16
+ constructor(
17
+ protected graphApi: Graphs,
18
+ protected users: Users,
19
+ protected accounts: Accounts,
20
+ protected settings: Settings,
21
+ protected accountId: string | undefined,
22
+ protected flows: Flows
23
+ ) {
27
24
  }
28
25
 
29
26
  abstract up(): Promise<void>;
@@ -5,27 +5,39 @@ import { AccountRouteDeletePayload, Settings } from '@or-sdk/settings';
5
5
  import { MigrationBase } from './migration-base';
6
6
  import { SERVICE_KEY, VERSION_PROP } from './constants';
7
7
  import * as migrations from './migrations';
8
+ import { Flows } from '@or-sdk/flows';
8
9
 
9
10
  const PREFIX = 'Migration__';
10
11
 
11
12
  export default class MigrationHandler {
12
13
  private migrations: Map<string, MigrationBase>;
13
14
 
14
- constructor(private graphApi: Graphs, private users: Users, private accounts: Accounts,
15
- private settings: Settings, private accountId: string | undefined) {
16
- const params = {
17
- graphApi,
18
- users,
19
- accounts,
20
- settings,
21
- accountId,
22
- };
15
+ constructor(
16
+ private graphApi: Graphs,
17
+ private users: Users,
18
+ private accounts: Accounts,
19
+ private settings: Settings,
20
+ private accountId: string | undefined,
21
+ private flows: Flows
22
+ ) {
23
23
 
24
- this.migrations = new Map(Object.values(migrations).map(ctor => [ctor.name, new ctor(params)]));
24
+ this.migrations = new Map(
25
+ Object.values(migrations)
26
+ .map(ctor => [
27
+ ctor.name, new ctor(
28
+ this.graphApi,
29
+ this.users,
30
+ this.accounts,
31
+ this.settings,
32
+ this.accountId,
33
+ this.flows
34
+ ),
35
+ ])
36
+ );
25
37
  }
26
38
 
27
39
  async applyMigrations() {
28
- const accountsLatestVersion = await this.findAccountsMigrationVersion();
40
+ const accountsLatestVersion = (await this.findAccountsMigrationVersion()) ?? 0;
29
41
 
30
42
  const migrationVersions = Array.from(this.migrations.keys()).map(migrationName => {
31
43
  const [, version] = migrationName.split(PREFIX);
@@ -0,0 +1,45 @@
1
+ import { MigrationBase } from '../migration-base';
2
+ import { GRAPH_NAME } from '../constants';
3
+
4
+ // eslint-disable-next-line @typescript-eslint/naming-convention
5
+ export default class Migration__3 extends MigrationBase {
6
+ async up() {
7
+ const flowsIds = await this.graphApi.query<{id: string;}>({
8
+ graph: GRAPH_NAME,
9
+ query: `match (flow: FLOW)
10
+ where flow.steps is NULL
11
+ return flow.id as id
12
+ `,
13
+ params: {},
14
+ });
15
+
16
+ if (flowsIds.length) {
17
+ const preparedIds = flowsIds.map(f => f.id);
18
+ const flows = await this.flows.listFlows({
19
+ query: {
20
+ id: preparedIds,
21
+ },
22
+ projection: ['data.trees.main.steps'],
23
+ });
24
+
25
+ const pairs = flows.items.map(flow => (
26
+ {
27
+ steps: flow.data.trees?.main.steps?.length ?? 0,
28
+ id: flow.id,
29
+ })
30
+ );
31
+
32
+ await this.graphApi.query({
33
+ graph: GRAPH_NAME,
34
+ query: `
35
+ unwind $list as pairs
36
+ MERGE (flow:FLOW { id: pairs.id })
37
+ SET flow.steps = pairs.steps
38
+ `,
39
+ params: {
40
+ list: pairs as any,
41
+ },
42
+ });
43
+ }
44
+ }
45
+ }
@@ -0,0 +1,55 @@
1
+ import { GRAPH_NAME } from '../constants';
2
+ import { MigrationBase } from '../migration-base';
3
+
4
+ // eslint-disable-next-line @typescript-eslint/naming-convention
5
+ export default class Migration__4 extends MigrationBase {
6
+ async up() {
7
+ const channelsExist = await this.checkIfDomainsExist();
8
+ if (!channelsExist) {
9
+ await this.createDefaultDomains();
10
+ await this.connectNodesToDefaultDomains();
11
+ }
12
+ }
13
+
14
+ private async checkIfDomainsExist() {
15
+ const [data] = await this.graphApi.query<{ domains: any[]; }>({
16
+ graph: GRAPH_NAME,
17
+ query: 'MATCH (domains: DOMAIN) RETURN collect(DISTINCT domains) as domains',
18
+ params: {},
19
+ });
20
+ return data.domains.length > 0;
21
+ }
22
+
23
+ private async createDefaultDomains() {
24
+ await this.graphApi.query({
25
+ graph: GRAPH_NAME,
26
+ query: `CREATE (sd: DOMAIN {id: "skills-default-domain", name: "Default"}),
27
+ (cd: DOMAIN {id: "channels-default-domain", name: "Default"}),
28
+ (md: DOMAIN {id: "memory-default-domain", name: "Default"})`,
29
+ params: {},
30
+ });
31
+ }
32
+
33
+ private async connectNodesToDefaultDomains() {
34
+ await this.graphApi.query({
35
+ graph: GRAPH_NAME,
36
+ query: `MATCH (sd: DOMAIN {id: "skills-default-domain"}), (s: SKILL)
37
+ CREATE (sd)-[r: INCLUDES]->(s)`,
38
+ params: {},
39
+ });
40
+
41
+ await this.graphApi.query({
42
+ graph: GRAPH_NAME,
43
+ query: `MATCH (cd: DOMAIN {id: "channels-default-domain"}), (c: CHANNEL)
44
+ CREATE (cd)-[r: INCLUDES]->(c)`,
45
+ params: {},
46
+ });
47
+
48
+ await this.graphApi.query({
49
+ graph: GRAPH_NAME,
50
+ query: `MATCH (md: DOMAIN {id: "memory-default-domain"}), (m: MEMORY)
51
+ CREATE (md)-[r: INCLUDES]->(m)`,
52
+ params: {},
53
+ });
54
+ }
55
+ }
@@ -1,2 +1,4 @@
1
1
  export { default as Migration__1 } from './Migration__1';
2
2
  export { default as Migration__2 } from './Migration__2';
3
+ export { default as Migration__3 } from './Migration__3';
4
+ export { default as Migration__4 } from './Migration__4';