@things-factory/integration-base 4.0.22 → 4.0.26

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 (175) hide show
  1. package/package.json +7 -7
  2. package/dist-server/engine/connector/socket-client.js +0 -47
  3. package/dist-server/engine/connector/socket-client.js.map +0 -1
  4. package/dist-server/engine/scenario-instance.js +0 -283
  5. package/dist-server/engine/scenario-instance.js.map +0 -1
  6. package/dist-server/entities/connection.js +0 -102
  7. package/dist-server/entities/connection.js.map +0 -1
  8. package/dist-server/entities/index.js +0 -11
  9. package/dist-server/entities/index.js.map +0 -1
  10. package/dist-server/entities/scenario-flow.js +0 -37
  11. package/dist-server/entities/scenario-flow.js.map +0 -1
  12. package/dist-server/entities/scenario.js +0 -105
  13. package/dist-server/entities/scenario.js.map +0 -1
  14. package/dist-server/entities/step.js +0 -101
  15. package/dist-server/entities/step.js.map +0 -1
  16. package/dist-server/graphql/index.js +0 -30
  17. package/dist-server/graphql/index.js.map +0 -1
  18. package/dist-server/graphql/resolvers/connection/connect-connection.js +0 -19
  19. package/dist-server/graphql/resolvers/connection/connect-connection.js.map +0 -1
  20. package/dist-server/graphql/resolvers/connection/connection-log.js +0 -36
  21. package/dist-server/graphql/resolvers/connection/connection-log.js.map +0 -1
  22. package/dist-server/graphql/resolvers/connection/connection-query.js +0 -34
  23. package/dist-server/graphql/resolvers/connection/connection-query.js.map +0 -1
  24. package/dist-server/graphql/resolvers/connection/connection-state.js +0 -52
  25. package/dist-server/graphql/resolvers/connection/connection-state.js.map +0 -1
  26. package/dist-server/graphql/resolvers/connection/create-connection.js +0 -11
  27. package/dist-server/graphql/resolvers/connection/create-connection.js.map +0 -1
  28. package/dist-server/graphql/resolvers/connection/delete-connection.js +0 -12
  29. package/dist-server/graphql/resolvers/connection/delete-connection.js.map +0 -1
  30. package/dist-server/graphql/resolvers/connection/delete-connections.js +0 -16
  31. package/dist-server/graphql/resolvers/connection/delete-connections.js.map +0 -1
  32. package/dist-server/graphql/resolvers/connection/disconnect-connection.js +0 -20
  33. package/dist-server/graphql/resolvers/connection/disconnect-connection.js.map +0 -1
  34. package/dist-server/graphql/resolvers/connection/fetch-connection-state.js +0 -18
  35. package/dist-server/graphql/resolvers/connection/fetch-connection-state.js.map +0 -1
  36. package/dist-server/graphql/resolvers/connection/index.js +0 -36
  37. package/dist-server/graphql/resolvers/connection/index.js.map +0 -1
  38. package/dist-server/graphql/resolvers/connection/update-connection.js +0 -15
  39. package/dist-server/graphql/resolvers/connection/update-connection.js.map +0 -1
  40. package/dist-server/graphql/resolvers/connection/update-multiple-connection.js +0 -30
  41. package/dist-server/graphql/resolvers/connection/update-multiple-connection.js.map +0 -1
  42. package/dist-server/graphql/resolvers/connector/connector.js +0 -27
  43. package/dist-server/graphql/resolvers/connector/connector.js.map +0 -1
  44. package/dist-server/graphql/resolvers/connector/connectors.js +0 -28
  45. package/dist-server/graphql/resolvers/connector/connectors.js.map +0 -1
  46. package/dist-server/graphql/resolvers/connector/index.js +0 -27
  47. package/dist-server/graphql/resolvers/connector/index.js.map +0 -1
  48. package/dist-server/graphql/resolvers/data/index.js +0 -25
  49. package/dist-server/graphql/resolvers/data/index.js.map +0 -1
  50. package/dist-server/graphql/resolvers/data/subscribe-data.js +0 -34
  51. package/dist-server/graphql/resolvers/data/subscribe-data.js.map +0 -1
  52. package/dist-server/graphql/resolvers/index.js +0 -18
  53. package/dist-server/graphql/resolvers/index.js.map +0 -1
  54. package/dist-server/graphql/resolvers/scenario/copy-scenarios.js +0 -62
  55. package/dist-server/graphql/resolvers/scenario/copy-scenarios.js.map +0 -1
  56. package/dist-server/graphql/resolvers/scenario/create-scenario.js +0 -14
  57. package/dist-server/graphql/resolvers/scenario/create-scenario.js.map +0 -1
  58. package/dist-server/graphql/resolvers/scenario/delete-scenario.js +0 -12
  59. package/dist-server/graphql/resolvers/scenario/delete-scenario.js.map +0 -1
  60. package/dist-server/graphql/resolvers/scenario/delete-scenarios.js +0 -16
  61. package/dist-server/graphql/resolvers/scenario/delete-scenarios.js.map +0 -1
  62. package/dist-server/graphql/resolvers/scenario/index.js +0 -39
  63. package/dist-server/graphql/resolvers/scenario/index.js.map +0 -1
  64. package/dist-server/graphql/resolvers/scenario/run-scenario.js +0 -37
  65. package/dist-server/graphql/resolvers/scenario/run-scenario.js.map +0 -1
  66. package/dist-server/graphql/resolvers/scenario/scenario-instance-log.js +0 -41
  67. package/dist-server/graphql/resolvers/scenario/scenario-instance-log.js.map +0 -1
  68. package/dist-server/graphql/resolvers/scenario/scenario-instance-query.js +0 -44
  69. package/dist-server/graphql/resolvers/scenario/scenario-instance-query.js.map +0 -1
  70. package/dist-server/graphql/resolvers/scenario/scenario-instance-state.js +0 -50
  71. package/dist-server/graphql/resolvers/scenario/scenario-instance-state.js.map +0 -1
  72. package/dist-server/graphql/resolvers/scenario/scenario-query.js +0 -46
  73. package/dist-server/graphql/resolvers/scenario/scenario-query.js.map +0 -1
  74. package/dist-server/graphql/resolvers/scenario/scenario-queue-state.js +0 -42
  75. package/dist-server/graphql/resolvers/scenario/scenario-queue-state.js.map +0 -1
  76. package/dist-server/graphql/resolvers/scenario/start-scenario.js +0 -26
  77. package/dist-server/graphql/resolvers/scenario/start-scenario.js.map +0 -1
  78. package/dist-server/graphql/resolvers/scenario/stop-scenario.js +0 -26
  79. package/dist-server/graphql/resolvers/scenario/stop-scenario.js.map +0 -1
  80. package/dist-server/graphql/resolvers/scenario/update-multiple-scenario.js +0 -30
  81. package/dist-server/graphql/resolvers/scenario/update-multiple-scenario.js.map +0 -1
  82. package/dist-server/graphql/resolvers/scenario/update-scenario.js +0 -20
  83. package/dist-server/graphql/resolvers/scenario/update-scenario.js.map +0 -1
  84. package/dist-server/graphql/resolvers/step/create-step.js +0 -14
  85. package/dist-server/graphql/resolvers/step/create-step.js.map +0 -1
  86. package/dist-server/graphql/resolvers/step/delete-step.js +0 -12
  87. package/dist-server/graphql/resolvers/step/delete-step.js.map +0 -1
  88. package/dist-server/graphql/resolvers/step/delete-steps.js +0 -16
  89. package/dist-server/graphql/resolvers/step/delete-steps.js.map +0 -1
  90. package/dist-server/graphql/resolvers/step/index.js +0 -31
  91. package/dist-server/graphql/resolvers/step/index.js.map +0 -1
  92. package/dist-server/graphql/resolvers/step/step-query.js +0 -25
  93. package/dist-server/graphql/resolvers/step/step-query.js.map +0 -1
  94. package/dist-server/graphql/resolvers/step/update-multiple-step.js +0 -20
  95. package/dist-server/graphql/resolvers/step/update-multiple-step.js.map +0 -1
  96. package/dist-server/graphql/resolvers/step/update-step.js +0 -15
  97. package/dist-server/graphql/resolvers/step/update-step.js.map +0 -1
  98. package/dist-server/graphql/resolvers/task-type/index.js +0 -27
  99. package/dist-server/graphql/resolvers/task-type/index.js.map +0 -1
  100. package/dist-server/graphql/resolvers/task-type/task-type.js +0 -17
  101. package/dist-server/graphql/resolvers/task-type/task-type.js.map +0 -1
  102. package/dist-server/graphql/resolvers/task-type/task-types.js +0 -68
  103. package/dist-server/graphql/resolvers/task-type/task-types.js.map +0 -1
  104. package/dist-server/graphql/resolvers/video/index.js +0 -25
  105. package/dist-server/graphql/resolvers/video/index.js.map +0 -1
  106. package/dist-server/graphql/resolvers/video/subscribe-video.js +0 -20
  107. package/dist-server/graphql/resolvers/video/subscribe-video.js.map +0 -1
  108. package/dist-server/graphql/types/connection/connection-list.js +0 -14
  109. package/dist-server/graphql/types/connection/connection-list.js.map +0 -1
  110. package/dist-server/graphql/types/connection/connection-patch.js +0 -20
  111. package/dist-server/graphql/types/connection/connection-patch.js.map +0 -1
  112. package/dist-server/graphql/types/connection/connection-state.js +0 -24
  113. package/dist-server/graphql/types/connection/connection-state.js.map +0 -1
  114. package/dist-server/graphql/types/connection/connection.js +0 -25
  115. package/dist-server/graphql/types/connection/connection.js.map +0 -1
  116. package/dist-server/graphql/types/connection/domain-connection.js +0 -13
  117. package/dist-server/graphql/types/connection/domain-connection.js.map +0 -1
  118. package/dist-server/graphql/types/connection/index.js +0 -46
  119. package/dist-server/graphql/types/connection/index.js.map +0 -1
  120. package/dist-server/graphql/types/connection/new-connection.js +0 -17
  121. package/dist-server/graphql/types/connection/new-connection.js.map +0 -1
  122. package/dist-server/graphql/types/connector/connector-list.js +0 -14
  123. package/dist-server/graphql/types/connector/connector-list.js.map +0 -1
  124. package/dist-server/graphql/types/connector/connector.js +0 -17
  125. package/dist-server/graphql/types/connector/connector.js.map +0 -1
  126. package/dist-server/graphql/types/connector/index.js +0 -27
  127. package/dist-server/graphql/types/connector/index.js.map +0 -1
  128. package/dist-server/graphql/types/data/data.js +0 -15
  129. package/dist-server/graphql/types/data/data.js.map +0 -1
  130. package/dist-server/graphql/types/data/index.js +0 -24
  131. package/dist-server/graphql/types/data/index.js.map +0 -1
  132. package/dist-server/graphql/types/index.js +0 -19
  133. package/dist-server/graphql/types/index.js.map +0 -1
  134. package/dist-server/graphql/types/property-spec.js +0 -17
  135. package/dist-server/graphql/types/property-spec.js.map +0 -1
  136. package/dist-server/graphql/types/scenario/domain-scenario.js +0 -14
  137. package/dist-server/graphql/types/scenario/domain-scenario.js.map +0 -1
  138. package/dist-server/graphql/types/scenario/index.js +0 -53
  139. package/dist-server/graphql/types/scenario/index.js.map +0 -1
  140. package/dist-server/graphql/types/scenario/new-scenario.js +0 -18
  141. package/dist-server/graphql/types/scenario/new-scenario.js.map +0 -1
  142. package/dist-server/graphql/types/scenario/pending-object.js +0 -16
  143. package/dist-server/graphql/types/scenario/pending-object.js.map +0 -1
  144. package/dist-server/graphql/types/scenario/scenario-instance-list.js +0 -14
  145. package/dist-server/graphql/types/scenario/scenario-instance-list.js.map +0 -1
  146. package/dist-server/graphql/types/scenario/scenario-instance.js +0 -37
  147. package/dist-server/graphql/types/scenario/scenario-instance.js.map +0 -1
  148. package/dist-server/graphql/types/scenario/scenario-list.js +0 -14
  149. package/dist-server/graphql/types/scenario/scenario-list.js.map +0 -1
  150. package/dist-server/graphql/types/scenario/scenario-patch.js +0 -20
  151. package/dist-server/graphql/types/scenario/scenario-patch.js.map +0 -1
  152. package/dist-server/graphql/types/scenario/scenario-queue-state.js +0 -14
  153. package/dist-server/graphql/types/scenario/scenario-queue-state.js.map +0 -1
  154. package/dist-server/graphql/types/scenario/scenario.js +0 -27
  155. package/dist-server/graphql/types/scenario/scenario.js.map +0 -1
  156. package/dist-server/graphql/types/step/index.js +0 -36
  157. package/dist-server/graphql/types/step/index.js.map +0 -1
  158. package/dist-server/graphql/types/step/new-step.js +0 -20
  159. package/dist-server/graphql/types/step/new-step.js.map +0 -1
  160. package/dist-server/graphql/types/step/step-list.js +0 -14
  161. package/dist-server/graphql/types/step/step-list.js.map +0 -1
  162. package/dist-server/graphql/types/step/step-patch.js +0 -22
  163. package/dist-server/graphql/types/step/step-patch.js.map +0 -1
  164. package/dist-server/graphql/types/step/step.js +0 -27
  165. package/dist-server/graphql/types/step/step.js.map +0 -1
  166. package/dist-server/graphql/types/task-type/index.js +0 -27
  167. package/dist-server/graphql/types/task-type/index.js.map +0 -1
  168. package/dist-server/graphql/types/task-type/task-type-list.js +0 -14
  169. package/dist-server/graphql/types/task-type/task-type-list.js.map +0 -1
  170. package/dist-server/graphql/types/task-type/task-type.js +0 -17
  171. package/dist-server/graphql/types/task-type/task-type.js.map +0 -1
  172. package/dist-server/graphql/types/video/index.js +0 -24
  173. package/dist-server/graphql/types/video/index.js.map +0 -1
  174. package/dist-server/graphql/types/video/video.js +0 -17
  175. package/dist-server/graphql/types/video/video.js.map +0 -1
@@ -1,25 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
- Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.DataResolver = void 0;
23
- const data = __importStar(require("./subscribe-data"));
24
- exports.DataResolver = data;
25
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/data/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,uDAAwC;AAE3B,QAAA,YAAY,GAAG,IAAI,CAAA"}
@@ -1,34 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Subscription = void 0;
4
- const shell_1 = require("@things-factory/shell");
5
- const graphql_subscriptions_1 = require("graphql-subscriptions");
6
- const debug = require('debug')('things-factory:integraton-base:subscribe-data');
7
- exports.Subscription = {
8
- data: {
9
- subscribe: (_, args, context, info) => {
10
- var _a;
11
- const { domain, user } = context.state;
12
- const { tag } = args;
13
- const subdomain = domain === null || domain === void 0 ? void 0 : domain.subdomain;
14
- debug('subscribe', subdomain, tag);
15
- if (!domain || !tag) {
16
- throw new Error('domain and tag required');
17
- }
18
- if (!((_a = user.domains) === null || _a === void 0 ? void 0 : _a.find(d => d.subdomain === subdomain))) {
19
- throw new Error(`domain(${subdomain}) is not working for user(${user.email}).`);
20
- }
21
- return graphql_subscriptions_1.withFilter(() => shell_1.pubsub.asyncIterator('data'), (payload, variables, context, info) => {
22
- const { domain: pdomain, tag } = payload.data;
23
- if (tag !== variables.tag) {
24
- return false;
25
- }
26
- if (subdomain !== (pdomain === null || pdomain === void 0 ? void 0 : pdomain.subdomain)) {
27
- return false;
28
- }
29
- return true;
30
- })(_, args, context, info);
31
- }
32
- }
33
- };
34
- //# sourceMappingURL=subscribe-data.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"subscribe-data.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/data/subscribe-data.ts"],"names":[],"mappings":";;;AAAA,iDAA8C;AAC9C,iEAAkD;AAElD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,+CAA+C,CAAC,CAAA;AAElE,QAAA,YAAY,GAAG;IAC1B,IAAI,EAAE;QACJ,SAAS,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;;YACpC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;YACtC,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;YACpB,MAAM,SAAS,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,CAAA;YAEnC,KAAK,CAAC,WAAW,EAAE,SAAS,EAAE,GAAG,CAAC,CAAA;YAElC,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE;gBACnB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;aAC3C;YAED,IAAI,QAAC,IAAI,CAAC,OAAO,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,EAAC,EAAE;gBACvD,MAAM,IAAI,KAAK,CAAC,UAAU,SAAS,6BAA6B,IAAI,CAAC,KAAK,IAAI,CAAC,CAAA;aAChF;YAED,OAAO,kCAAU,CACf,GAAG,EAAE,CAAC,cAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAClC,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;gBACpC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAA;gBAE7C,IAAI,GAAG,KAAK,SAAS,CAAC,GAAG,EAAE;oBACzB,OAAO,KAAK,CAAA;iBACb;gBAED,IAAI,SAAS,MAAK,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,CAAA,EAAE;oBACpC,OAAO,KAAK,CAAA;iBACb;gBAED,OAAO,IAAI,CAAA;YACb,CAAC,CACF,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;QAC3B,CAAC;KACF;CACF,CAAA"}
@@ -1,18 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
- for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
11
- };
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- __exportStar(require("./connection"), exports);
14
- __exportStar(require("./step"), exports);
15
- __exportStar(require("./task-type"), exports);
16
- __exportStar(require("./scenario"), exports);
17
- __exportStar(require("./connector"), exports);
18
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/graphql/resolvers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAA4B;AAC5B,yCAAsB;AACtB,8CAA2B;AAC3B,6CAA0B;AAC1B,8CAA2B"}
@@ -1,62 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Mutation = void 0;
7
- const typeorm_1 = require("typeorm");
8
- const entities_1 = require("../../../entities");
9
- const engine_1 = require("../../../engine");
10
- const types_1 = require("../../../engine/types");
11
- const v4_1 = __importDefault(require("uuid/v4"));
12
- exports.Mutation = {
13
- async copyScenarios(_, { ids }, context) {
14
- const { domain, user, tx } = context.state;
15
- const originals = await tx.getRepository(entities_1.Scenario).find({
16
- where: {
17
- id: typeorm_1.In(ids),
18
- domain
19
- },
20
- relations: ['domain', 'steps']
21
- });
22
- if (originals.length == 0)
23
- return false;
24
- var newSteps = [];
25
- var newCopys = originals.map(scenario => {
26
- let scenarioId = v4_1.default();
27
- newSteps.push(...scenario.steps.map(step => {
28
- return {
29
- scenario: scenarioId,
30
- name: step.name,
31
- description: step.description,
32
- sequence: step.sequence,
33
- task: step.task,
34
- connection: step.connection,
35
- params: step.params,
36
- domain,
37
- creator: user,
38
- updater: user
39
- };
40
- }));
41
- return {
42
- id: scenarioId,
43
- name: scenario.name + ' (' + scenarioId + ')',
44
- type: scenario.type,
45
- description: scenario.description,
46
- active: false,
47
- schedule: scenario.schedule,
48
- timezone: scenario.timezone,
49
- domain,
50
- creator: user,
51
- updater: user
52
- };
53
- });
54
- var copiedScenarios = await tx.getRepository(entities_1.Scenario).save(newCopys);
55
- var copiedSteps = await tx.getRepository(entities_1.Step).save(newSteps);
56
- return copiedScenarios.map(scenario => {
57
- scenario.steps = copiedSteps.filter(step => step.scenario == scenario.id);
58
- return Object.assign(Object.assign({}, scenario), { state: engine_1.ScenarioInstanceStatus[types_1.SCENARIO_STATE.UNLOADED] });
59
- });
60
- }
61
- };
62
- //# sourceMappingURL=copy-scenarios.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"copy-scenarios.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/scenario/copy-scenarios.ts"],"names":[],"mappings":";;;;;;AAAA,qCAA4B;AAC5B,gDAAkD;AAClD,4CAAwD;AACxD,iDAAsD;AAEtD,iDAA0B;AAEb,QAAA,QAAQ,GAAG;IACtB,KAAK,CAAC,aAAa,CAAC,CAAM,EAAE,EAAE,GAAG,EAAE,EAAE,OAAY;QAC/C,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE1C,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,mBAAQ,CAAC,CAAC,IAAI,CAAC;YACtD,KAAK,EAAE;gBACL,EAAE,EAAE,YAAE,CAAC,GAAG,CAAC;gBACX,MAAM;aACP;YACD,SAAS,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;SAC/B,CAAC,CAAA;QAEF,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,KAAK,CAAA;QAEvC,IAAI,QAAQ,GAAG,EAAE,CAAA;QAEjB,IAAI,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YACtC,IAAI,UAAU,GAAG,YAAI,EAAE,CAAA;YACvB,QAAQ,CAAC,IAAI,CACX,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAC3B,OAAO;oBACL,QAAQ,EAAE,UAAU;oBACpB,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,WAAW,EAAE,IAAI,CAAC,WAAW;oBAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;oBAEnB,MAAM;oBACN,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,IAAI;iBACd,CAAA;YACH,CAAC,CAAC,CACH,CAAA;YAED,OAAO;gBACL,EAAE,EAAE,UAAU;gBACd,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,GAAG,UAAU,GAAG,GAAG;gBAC7C,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,WAAW,EAAE,QAAQ,CAAC,WAAW;gBACjC,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAE3B,MAAM;gBACN,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,IAAI;aACd,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,IAAI,eAAe,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,mBAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACrE,IAAI,WAAW,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,eAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAE7D,OAAO,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YACpC,QAAQ,CAAC,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,EAAE,CAAC,CAAA;YACzE,uCACK,QAAQ,KACX,KAAK,EAAE,+BAAsB,CAAC,sBAAc,CAAC,QAAQ,CAAC,IACvD;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;CACF,CAAA"}
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Mutation = void 0;
4
- const entities_1 = require("../../../entities");
5
- const engine_1 = require("../../../engine");
6
- const types_1 = require("../../../engine/types");
7
- exports.Mutation = {
8
- async createScenario(_, { scenario }, context) {
9
- const { domain, user, tx } = context.state;
10
- const saved = await tx.getRepository(entities_1.Scenario).save(Object.assign(Object.assign({}, scenario), { domain, creator: user, updater: user }));
11
- return Object.assign(Object.assign({}, saved), { state: engine_1.ScenarioInstanceStatus[types_1.SCENARIO_STATE.UNLOADED] });
12
- }
13
- };
14
- //# sourceMappingURL=create-scenario.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-scenario.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/scenario/create-scenario.ts"],"names":[],"mappings":";;;AAAA,gDAA4C;AAC5C,4CAAwD;AACxD,iDAAsD;AAEzC,QAAA,QAAQ,GAAG;IACtB,KAAK,CAAC,cAAc,CAAC,CAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,OAAY;QACrD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE1C,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,mBAAQ,CAAC,CAAC,IAAI,iCAC9C,QAAQ,KACX,MAAM,EACN,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,IAAI,IACb,CAAA;QAEF,uCACK,KAAK,KACR,KAAK,EAAE,+BAAsB,CAAC,sBAAc,CAAC,QAAQ,CAAC,IACvD;IACH,CAAC;CACF,CAAA"}
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Mutation = void 0;
4
- const entities_1 = require("../../../entities");
5
- exports.Mutation = {
6
- async deleteScenario(_, { name }, context) {
7
- const { domain, tx } = context.state;
8
- await tx.getRepository(entities_1.Scenario).delete({ domain, name });
9
- return true;
10
- }
11
- };
12
- //# sourceMappingURL=delete-scenario.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"delete-scenario.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/scenario/delete-scenario.ts"],"names":[],"mappings":";;;AAAA,gDAA4C;AAE/B,QAAA,QAAQ,GAAG;IACtB,KAAK,CAAC,cAAc,CAAC,CAAM,EAAE,EAAE,IAAI,EAAE,EAAE,OAAY;QACjD,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,MAAM,EAAE,CAAC,aAAa,CAAC,mBAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;QAEzD,OAAO,IAAI,CAAA;IACb,CAAC;CACF,CAAA"}
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Mutation = void 0;
4
- const typeorm_1 = require("typeorm");
5
- const entities_1 = require("../../../entities");
6
- exports.Mutation = {
7
- async deleteScenarios(_, { ids }, context) {
8
- const { domain, tx } = context.state;
9
- await tx.getRepository(entities_1.Scenario).delete({
10
- domain,
11
- id: typeorm_1.In(ids)
12
- });
13
- return true;
14
- }
15
- };
16
- //# sourceMappingURL=delete-scenarios.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"delete-scenarios.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/scenario/delete-scenarios.ts"],"names":[],"mappings":";;;AAAA,qCAA4B;AAC5B,gDAA4C;AAE/B,QAAA,QAAQ,GAAG;IACtB,KAAK,CAAC,eAAe,CAAC,CAAM,EAAE,EAAE,GAAG,EAAE,EAAE,OAAY;QACjD,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,MAAM,EAAE,CAAC,aAAa,CAAC,mBAAQ,CAAC,CAAC,MAAM,CAAC;YACtC,MAAM;YACN,EAAE,EAAE,YAAE,CAAC,GAAG,CAAC;SACZ,CAAC,CAAA;QAEF,OAAO,IAAI,CAAA;IACb,CAAC;CACF,CAAA"}
@@ -1,39 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
- Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.ScenarioResolver = void 0;
23
- const scenarioQuery = __importStar(require("./scenario-query"));
24
- const updateScenario = __importStar(require("./update-scenario"));
25
- const updateMultipleScenario = __importStar(require("./update-multiple-scenario"));
26
- const createScenario = __importStar(require("./create-scenario"));
27
- const deleteScenario = __importStar(require("./delete-scenario"));
28
- const deleteScenarios = __importStar(require("./delete-scenarios"));
29
- const copyScenarios = __importStar(require("./copy-scenarios"));
30
- const startScenario = __importStar(require("./start-scenario"));
31
- const stopScenario = __importStar(require("./stop-scenario"));
32
- const runScenario = __importStar(require("./run-scenario"));
33
- const scenarioInstanceResolver = __importStar(require("./scenario-instance-query"));
34
- const scenarioInstanceState = __importStar(require("./scenario-instance-state"));
35
- const scenarioInstanceLog = __importStar(require("./scenario-instance-log"));
36
- const scenarioQueueState = __importStar(require("./scenario-queue-state"));
37
- const utils_1 = require("@things-factory/utils");
38
- exports.ScenarioResolver = utils_1.deepMerge(scenarioQuery, scenarioInstanceResolver, updateScenario, updateMultipleScenario, createScenario, deleteScenario, deleteScenarios, copyScenarios, startScenario, stopScenario, runScenario, scenarioInstanceState, scenarioInstanceLog, scenarioQueueState);
39
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/scenario/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,gEAAiD;AAEjD,kEAAmD;AACnD,mFAAoE;AACpE,kEAAmD;AACnD,kEAAmD;AACnD,oEAAqD;AACrD,gEAAiD;AAEjD,gEAAiD;AACjD,8DAA+C;AAC/C,4DAA6C;AAE7C,oFAAqE;AACrE,iFAAkE;AAClE,6EAA8D;AAE9D,2EAA4D;AAE5D,iDAAiD;AAEpC,QAAA,gBAAgB,GAAG,iBAAS,CACvC,aAAa,EACb,wBAAwB,EACxB,cAAc,EACd,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,eAAe,EACf,aAAa,EACb,aAAa,EACb,YAAY,EACZ,WAAW,EACX,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,CACnB,CAAA"}
@@ -1,37 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Mutation = void 0;
4
- const typeorm_1 = require("typeorm");
5
- const shell_1 = require("@things-factory/shell");
6
- const entities_1 = require("../../../entities");
7
- const engine_1 = require("../../../engine");
8
- const debug = require('debug')('things-factory:integration-base:run-scenario');
9
- /**
10
- * 동기적인 시나리오 호출
11
- * 호출된 시나리오가 종료된 후 그 결과를 리턴한다.
12
- */
13
- exports.Mutation = {
14
- async runScenario(_, { instanceName, scenarioName, variables }, context) {
15
- const { domain } = context.state;
16
- debug(scenarioName, instanceName, variables);
17
- var repository = typeorm_1.getRepository(entities_1.Scenario);
18
- var scenario = await repository.findOne({
19
- where: { domain, name: scenarioName },
20
- relations: ['domain', 'steps', 'creator', 'updater']
21
- });
22
- if (!scenario) {
23
- throw new Error(context.t('error.scenario not found', {
24
- scenario: scenarioName
25
- }));
26
- }
27
- /* 시나리오 인스턴스를 생성한다. */
28
- instanceName = instanceName || scenarioName + '-' + String(Date.now());
29
- var instance = new engine_1.ScenarioInstance(instanceName, scenario, {
30
- variables,
31
- client: shell_1.GraphqlLocalClient.client
32
- });
33
- await instance.run();
34
- return instance;
35
- }
36
- };
37
- //# sourceMappingURL=run-scenario.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run-scenario.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/scenario/run-scenario.ts"],"names":[],"mappings":";;;AAAA,qCAAuC;AACvC,iDAA0D;AAC1D,gDAA4C;AAC5C,4CAA0E;AAE1E,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,8CAA8C,CAAC,CAAA;AAE9E;;;GAGG;AACU,QAAA,QAAQ,GAAG;IACtB,KAAK,CAAC,WAAW,CAAC,CAAM,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,OAAY;QAC/E,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC,KAAK,CAAC,YAAY,EAAE,YAAY,EAAE,SAAS,CAAC,CAAA;QAE5C,IAAI,UAAU,GAAG,uBAAa,CAAC,mBAAQ,CAAC,CAAA;QACxC,IAAI,QAAQ,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;YACtC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE;YACrC,SAAS,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC;SACrD,CAAC,CAAA;QAEF,IAAI,CAAC,QAAQ,EAAE;YACb,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,0BAA0B,EAAE;gBACpC,QAAQ,EAAE,YAAY;aACvB,CAAC,CACH,CAAA;SACF;QAED,sBAAsB;QACtB,YAAY,GAAG,YAAY,IAAI,YAAY,GAAG,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;QACtE,IAAI,QAAQ,GAAG,IAAI,yBAAgB,CAAC,YAAY,EAAE,QAAQ,EAAE;YAC1D,SAAS;YACT,MAAM,EAAE,0BAAkB,CAAC,MAAM;SAClC,CAAC,CAAA;QACF,MAAM,QAAQ,CAAC,GAAG,EAAE,CAAA;QAEpB,OAAO,QAAQ,CAAA;IACjB,CAAC;CACF,CAAA"}
@@ -1,41 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Subscription = void 0;
4
- const shell_1 = require("@things-factory/shell");
5
- const graphql_subscriptions_1 = require("graphql-subscriptions");
6
- const debug = require('debug')('things-factory:integraton-base:scenario-instance-log');
7
- exports.Subscription = {
8
- scenarioInstanceLog: {
9
- subscribe: (_, args, context, info) => {
10
- var _a;
11
- const { domain, user } = context.state;
12
- const { instanceName, scenarioName, level } = args;
13
- const subdomain = domain === null || domain === void 0 ? void 0 : domain.subdomain;
14
- debug('subscribe', subdomain, scenarioName, instanceName);
15
- if (!domain) {
16
- throw new Error('domain required');
17
- }
18
- if (!((_a = user.domains) === null || _a === void 0 ? void 0 : _a.find(d => d.subdomain === subdomain))) {
19
- throw new Error(`domain(${subdomain}) is not working for user(${user.email}).`);
20
- }
21
- return graphql_subscriptions_1.withFilter(() => shell_1.pubsub.asyncIterator('scenario-instance-log'), (payload, variables, context, info) => {
22
- const { source, level: plevel } = payload.scenarioInstanceLog;
23
- const { domain: pdomain, scenarioName: pscenarioName, instanceName: pinstanceName } = source;
24
- if (subdomain !== (pdomain === null || pdomain === void 0 ? void 0 : pdomain.subdomain)) {
25
- return false;
26
- }
27
- if (scenarioName && pscenarioName !== scenarioName) {
28
- return false;
29
- }
30
- if (instanceName && pinstanceName !== instanceName) {
31
- return false;
32
- }
33
- if (level && level !== plevel) {
34
- return false;
35
- }
36
- return true;
37
- })(_, args, context, info);
38
- }
39
- }
40
- };
41
- //# sourceMappingURL=scenario-instance-log.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scenario-instance-log.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/scenario/scenario-instance-log.ts"],"names":[],"mappings":";;;AAAA,iDAA8C;AAC9C,iEAAkD;AAElD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,sDAAsD,CAAC,CAAA;AAEzE,QAAA,YAAY,GAAG;IAC1B,mBAAmB,EAAE;QACnB,SAAS,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;;YACpC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;YACtC,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,IAAI,CAAA;YAClD,MAAM,SAAS,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,CAAA;YAEnC,KAAK,CAAC,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,CAAC,CAAA;YAEzD,IAAI,CAAC,MAAM,EAAE;gBACX,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;aACnC;YAED,IAAI,QAAC,IAAI,CAAC,OAAO,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,EAAC,EAAE;gBACvD,MAAM,IAAI,KAAK,CAAC,UAAU,SAAS,6BAA6B,IAAI,CAAC,KAAK,IAAI,CAAC,CAAA;aAChF;YAED,OAAO,kCAAU,CACf,GAAG,EAAE,CAAC,cAAM,CAAC,aAAa,CAAC,uBAAuB,CAAC,EACnD,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;gBACpC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,mBAAmB,CAAA;gBAC7D,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,MAAM,CAAA;gBAE5F,IAAI,SAAS,MAAK,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,CAAA,EAAE;oBACpC,OAAO,KAAK,CAAA;iBACb;gBAED,IAAI,YAAY,IAAI,aAAa,KAAK,YAAY,EAAE;oBAClD,OAAO,KAAK,CAAA;iBACb;gBAED,IAAI,YAAY,IAAI,aAAa,KAAK,YAAY,EAAE;oBAClD,OAAO,KAAK,CAAA;iBACb;gBAED,IAAI,KAAK,IAAI,KAAK,KAAK,MAAM,EAAE;oBAC7B,OAAO,KAAK,CAAA;iBACb;gBAED,OAAO,IAAI,CAAA;YACb,CAAC,CACF,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;QAC3B,CAAC;KACF;CACF,CAAA"}
@@ -1,44 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ScenarioInstance = exports.Query = void 0;
4
- const engine_1 = require("../../../engine");
5
- const shell_1 = require("@things-factory/shell");
6
- exports.Query = {
7
- scenarioInstance(_, { instanceName }, context) {
8
- const { domain } = context.state;
9
- return engine_1.ScenarioEngine.getScenarioInstance(domain, instanceName);
10
- },
11
- scenarioInstances(_, params, context) {
12
- const { domain } = context.state;
13
- var scenarioInstances = engine_1.ScenarioEngine.getScenarioInstances(domain);
14
- /* IMPLEMENT-ME 검색 기능.. */
15
- const convertedParams = shell_1.convertListParams(params, domain.id);
16
- var items = scenarioInstances;
17
- return {
18
- items,
19
- total: items.length
20
- };
21
- }
22
- };
23
- exports.ScenarioInstance = {
24
- async root(instance) {
25
- var _a;
26
- return (_a = instance.context) === null || _a === void 0 ? void 0 : _a.root;
27
- },
28
- async state(instance) {
29
- var _a;
30
- return engine_1.ScenarioInstanceStatus[(_a = instance.context) === null || _a === void 0 ? void 0 : _a.state];
31
- },
32
- async variables(instance) {
33
- var _a;
34
- return (_a = instance.context) === null || _a === void 0 ? void 0 : _a.variables;
35
- },
36
- async data(instance) {
37
- var _a;
38
- return (_a = instance.context) === null || _a === void 0 ? void 0 : _a.data;
39
- },
40
- async timestamp(instance) {
41
- return String(Date.now());
42
- }
43
- };
44
- //# sourceMappingURL=scenario-instance-query.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scenario-instance-query.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/scenario/scenario-instance-query.ts"],"names":[],"mappings":";;;AAAA,4CAAwE;AACxE,iDAAoE;AAEvD,QAAA,KAAK,GAAG;IACnB,gBAAgB,CAAC,CAAM,EAAE,EAAE,YAAY,EAAE,EAAE,OAAY;QACrD,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC,OAAO,uBAAc,CAAC,mBAAmB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IACjE,CAAC;IAED,iBAAiB,CAAC,CAAM,EAAE,MAAiB,EAAE,OAAY;QACvD,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC,IAAI,iBAAiB,GAAG,uBAAc,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAA;QACnE,0BAA0B;QAC1B,MAAM,eAAe,GAAG,yBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAA;QAE5D,IAAI,KAAK,GAAG,iBAAiB,CAAA;QAE7B,OAAO;YACL,KAAK;YACL,KAAK,EAAE,KAAK,CAAC,MAAM;SACpB,CAAA;IACH,CAAC;CACF,CAAA;AAEY,QAAA,gBAAgB,GAAG;IAC9B,KAAK,CAAC,IAAI,CAAC,QAAQ;;QACjB,aAAO,QAAQ,CAAC,OAAO,0CAAE,IAAI,CAAA;IAC/B,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,QAAQ;;QAClB,OAAO,+BAAsB,OAAC,QAAQ,CAAC,OAAO,0CAAE,KAAK,CAAC,CAAA;IACxD,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,QAAQ;;QACtB,aAAO,QAAQ,CAAC,OAAO,0CAAE,SAAS,CAAA;IACpC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,QAAQ;;QACjB,aAAO,QAAQ,CAAC,OAAO,0CAAE,IAAI,CAAA;IAC/B,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,QAAQ;QACtB,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;IAC3B,CAAC;CACF,CAAA"}
@@ -1,50 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Subscription = void 0;
4
- const shell_1 = require("@things-factory/shell");
5
- const graphql_subscriptions_1 = require("graphql-subscriptions");
6
- const engine_1 = require("../../../engine");
7
- const debug = require('debug')('things-factory:integraton-base:scenario-instance-state');
8
- exports.Subscription = {
9
- scenarioInstanceState: {
10
- subscribe: (_, args, context, info) => {
11
- var _a;
12
- const { domain, user } = context.state;
13
- const { instanceName, scenarioName } = args;
14
- const subdomain = domain === null || domain === void 0 ? void 0 : domain.subdomain;
15
- debug('subscribe', subdomain, scenarioName, instanceName);
16
- if (!domain) {
17
- throw new Error('domain required');
18
- }
19
- if (!((_a = user.domains) === null || _a === void 0 ? void 0 : _a.find(d => d.subdomain === subdomain))) {
20
- throw new Error(`domain(${subdomain}) is not working for user(${user.email}).`);
21
- }
22
- process.nextTick(() => {
23
- engine_1.ScenarioEngine.getScenarioInstances(domain)
24
- .filter(instance => {
25
- return ((!instanceName || instance.instanceName === instanceName) &&
26
- (!scenarioName || instance.scenarioName === scenarioName));
27
- })
28
- .forEach(instance => {
29
- shell_1.pubsub.publish('scenario-instance-state', {
30
- scenarioInstanceState: instance.serialize()
31
- });
32
- });
33
- });
34
- return graphql_subscriptions_1.withFilter(() => shell_1.pubsub.asyncIterator('scenario-instance-state'), (payload, variables, context, info) => {
35
- const { domain: pdomain, scenarioName: pscenarioName, instanceName: pinstanceName } = payload.scenarioInstanceState;
36
- if (subdomain !== (pdomain === null || pdomain === void 0 ? void 0 : pdomain.subdomain)) {
37
- return false;
38
- }
39
- if (scenarioName && pscenarioName !== scenarioName) {
40
- return false;
41
- }
42
- if (instanceName && pinstanceName !== instanceName) {
43
- return false;
44
- }
45
- return true;
46
- })(_, args, context, info);
47
- }
48
- }
49
- };
50
- //# sourceMappingURL=scenario-instance-state.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scenario-instance-state.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/scenario/scenario-instance-state.ts"],"names":[],"mappings":";;;AAAA,iDAA8C;AAC9C,iEAAkD;AAElD,4CAAgD;AAEhD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,wDAAwD,CAAC,CAAA;AAE3E,QAAA,YAAY,GAAG;IAC1B,qBAAqB,EAAE;QACrB,SAAS,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;;YACpC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;YACtC,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,IAAI,CAAA;YAC3C,MAAM,SAAS,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,CAAA;YAEnC,KAAK,CAAC,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,CAAC,CAAA;YAEzD,IAAI,CAAC,MAAM,EAAE;gBACX,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;aACnC;YAED,IAAI,QAAC,IAAI,CAAC,OAAO,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,EAAC,EAAE;gBACvD,MAAM,IAAI,KAAK,CAAC,UAAU,SAAS,6BAA6B,IAAI,CAAC,KAAK,IAAI,CAAC,CAAA;aAChF;YAED,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE;gBACpB,uBAAc,CAAC,oBAAoB,CAAC,MAAM,CAAC;qBACxC,MAAM,CAAC,QAAQ,CAAC,EAAE;oBACjB,OAAO,CACL,CAAC,CAAC,YAAY,IAAI,QAAQ,CAAC,YAAY,KAAK,YAAY,CAAC;wBACzD,CAAC,CAAC,YAAY,IAAI,QAAQ,CAAC,YAAY,KAAK,YAAY,CAAC,CAC1D,CAAA;gBACH,CAAC,CAAC;qBACD,OAAO,CAAC,QAAQ,CAAC,EAAE;oBAClB,cAAM,CAAC,OAAO,CAAC,yBAAyB,EAAE;wBACxC,qBAAqB,EAAE,QAAQ,CAAC,SAAS,EAAE;qBAC5C,CAAC,CAAA;gBACJ,CAAC,CAAC,CAAA;YACN,CAAC,CAAC,CAAA;YAEF,OAAO,kCAAU,CACf,GAAG,EAAE,CAAC,cAAM,CAAC,aAAa,CAAC,yBAAyB,CAAC,EACrD,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;gBACpC,MAAM,EACJ,MAAM,EAAE,OAAO,EACf,YAAY,EAAE,aAAa,EAC3B,YAAY,EAAE,aAAa,EAC5B,GAAG,OAAO,CAAC,qBAAqB,CAAA;gBAEjC,IAAI,SAAS,MAAK,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,CAAA,EAAE;oBACpC,OAAO,KAAK,CAAA;iBACb;gBAED,IAAI,YAAY,IAAI,aAAa,KAAK,YAAY,EAAE;oBAClD,OAAO,KAAK,CAAA;iBACb;gBAED,IAAI,YAAY,IAAI,aAAa,KAAK,YAAY,EAAE;oBAClD,OAAO,KAAK,CAAA;iBACb;gBAED,OAAO,IAAI,CAAA;YACb,CAAC,CACF,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;QAC3B,CAAC;KACF;CACF,CAAA"}
@@ -1,46 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Domain = exports.Scenario = exports.Query = void 0;
4
- const typeorm_1 = require("typeorm");
5
- const shell_1 = require("@things-factory/shell");
6
- const entities_1 = require("../../../entities");
7
- const engine_1 = require("../../../engine");
8
- exports.Query = {
9
- async scenario(_, { id }, context) {
10
- const { domain } = context.state;
11
- return await typeorm_1.getRepository(entities_1.Scenario).findOne({
12
- where: { domain, id },
13
- relations: ['domain', 'creator', 'updater']
14
- });
15
- },
16
- async scenarios(_, params, context) {
17
- const { domain } = context.state;
18
- const convertedParams = shell_1.convertListParams(params, domain.id);
19
- const [items, total] = await typeorm_1.getRepository(entities_1.Scenario).findAndCount(Object.assign(Object.assign({}, convertedParams), { relations: ['domain', 'creator', 'updater'] }));
20
- return { items, total };
21
- }
22
- };
23
- exports.Scenario = {
24
- async steps(scenario, {}, context) {
25
- const { domain } = context.state;
26
- return await typeorm_1.getRepository(entities_1.Step).find({
27
- where: { domain, scenario }
28
- });
29
- },
30
- async state(scenario) {
31
- var _a;
32
- var instance = engine_1.ScenarioEngine.getScenarioInstance(scenario.domain, scenario.name);
33
- return instance && engine_1.ScenarioInstanceStatus[(_a = instance.context) === null || _a === void 0 ? void 0 : _a.state];
34
- },
35
- async instances(scenario, {}, context) {
36
- return engine_1.ScenarioEngine.getScenarioInstances(scenario.domain, scenario.name);
37
- }
38
- };
39
- exports.Domain = {
40
- async scenarios(domain, {}, context) {
41
- return await typeorm_1.getRepository(entities_1.Scenario).find({
42
- where: { domain }
43
- });
44
- }
45
- };
46
- //# sourceMappingURL=scenario-query.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scenario-query.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/scenario/scenario-query.ts"],"names":[],"mappings":";;;AAAA,qCAAuC;AACvC,iDAAoE;AACpE,gDAAoE;AACpE,4CAAwE;AAE3D,QAAA,KAAK,GAAG;IACnB,KAAK,CAAC,QAAQ,CAAC,CAAM,EAAE,EAAE,EAAE,EAAE,EAAE,OAAY;QACzC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC,OAAO,MAAM,uBAAa,CAAC,mBAAc,CAAC,CAAC,OAAO,CAAC;YACjD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;YACrB,SAAS,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC;SAC5C,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,CAAM,EAAE,MAAiB,EAAE,OAAY;QACrD,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC,MAAM,eAAe,GAAG,yBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAA;QAC5D,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,uBAAa,CAAC,mBAAc,CAAC,CAAC,YAAY,iCAClE,eAAe,KAClB,SAAS,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,IAC3C,CAAA;QAEF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;CACF,CAAA;AAEY,QAAA,QAAQ,GAAG;IACtB,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,EAAE,OAAY;QACpC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC,OAAO,MAAM,uBAAa,CAAC,eAAI,CAAC,CAAC,IAAI,CAAC;YACpC,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;SAC5B,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,QAAQ;;QAClB,IAAI,QAAQ,GAAG,uBAAc,CAAC,mBAAmB,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;QACjF,OAAO,QAAQ,IAAI,+BAAsB,OAAC,QAAQ,CAAC,OAAO,0CAAE,KAAK,CAAC,CAAA;IACpE,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,EAAE,OAAY;QACxC,OAAO,uBAAc,CAAC,oBAAoB,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC5E,CAAC;CACF,CAAA;AAEY,QAAA,MAAM,GAAG;IACpB,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE,OAAY;QACtC,OAAO,MAAM,uBAAa,CAAC,mBAAc,CAAC,CAAC,IAAI,CAAC;YAC9C,KAAK,EAAE,EAAE,MAAM,EAAE;SAClB,CAAC,CAAA;IACJ,CAAC;CACF,CAAA"}
@@ -1,42 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Subscription = void 0;
4
- const shell_1 = require("@things-factory/shell");
5
- const graphql_subscriptions_1 = require("graphql-subscriptions");
6
- const engine_1 = require("../../../engine");
7
- const debug = require('debug')('things-factory:integraton-base:scenario-queue-state');
8
- exports.Subscription = {
9
- scenarioQueueState: {
10
- subscribe: (_, args, context, info) => {
11
- var _a;
12
- const { domain, user } = context.state;
13
- const subdomain = domain === null || domain === void 0 ? void 0 : domain.subdomain;
14
- debug('subscribe', subdomain);
15
- if (!domain) {
16
- throw new Error('domain required.');
17
- }
18
- if (!((_a = user.domains) === null || _a === void 0 ? void 0 : _a.find(d => d.subdomain === subdomain))) {
19
- throw new Error(`domain(${subdomain}) is not working for user(${user.email}).`);
20
- }
21
- process.nextTick(async () => {
22
- var queue = engine_1.ScenarioEngine.getPendingQueue(domain);
23
- if (queue) {
24
- shell_1.pubsub.publish('scenario-queue-state', {
25
- scenarioQueueState: {
26
- domain,
27
- queue: queue.queue
28
- }
29
- });
30
- }
31
- });
32
- return graphql_subscriptions_1.withFilter(() => shell_1.pubsub.asyncIterator('scenario-queue-state'), (payload, variables, context, info) => {
33
- const { domain: pdomain } = payload.scenarioQueueState;
34
- if ((pdomain === null || pdomain === void 0 ? void 0 : pdomain.subdomain) !== subdomain) {
35
- return false;
36
- }
37
- return true;
38
- })(_, args, context, info);
39
- }
40
- }
41
- };
42
- //# sourceMappingURL=scenario-queue-state.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scenario-queue-state.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/scenario/scenario-queue-state.ts"],"names":[],"mappings":";;;AAAA,iDAA8C;AAC9C,iEAAkD;AAElD,4CAAgD;AAEhD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,qDAAqD,CAAC,CAAA;AAExE,QAAA,YAAY,GAAG;IAC1B,kBAAkB,EAAE;QAClB,SAAS,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;;YACpC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;YACtC,MAAM,SAAS,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,CAAA;YAEnC,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;YAE7B,IAAI,CAAC,MAAM,EAAE;gBACX,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;aACpC;YAED,IAAI,QAAC,IAAI,CAAC,OAAO,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,EAAC,EAAE;gBACvD,MAAM,IAAI,KAAK,CAAC,UAAU,SAAS,6BAA6B,IAAI,CAAC,KAAK,IAAI,CAAC,CAAA;aAChF;YAED,OAAO,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;gBAC1B,IAAI,KAAK,GAAG,uBAAc,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;gBAClD,IAAI,KAAK,EAAE;oBACT,cAAM,CAAC,OAAO,CAAC,sBAAsB,EAAE;wBACrC,kBAAkB,EAAE;4BAClB,MAAM;4BACN,KAAK,EAAE,KAAK,CAAC,KAAK;yBACnB;qBACF,CAAC,CAAA;iBACH;YACH,CAAC,CAAC,CAAA;YAEF,OAAO,kCAAU,CACf,GAAG,EAAE,CAAC,cAAM,CAAC,aAAa,CAAC,sBAAsB,CAAC,EAClD,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;gBACpC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAA;gBAEtD,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,MAAK,SAAS,EAAE;oBACpC,OAAO,KAAK,CAAA;iBACb;gBAED,OAAO,IAAI,CAAA;YACb,CAAC,CACF,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;QAC3B,CAAC;KACF;CACF,CAAA"}
@@ -1,26 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Mutation = void 0;
4
- const typeorm_1 = require("typeorm");
5
- const entities_1 = require("../../../entities");
6
- const engine_1 = require("../../../engine");
7
- const debug = require('debug')('things-factory:integration-base:start-scenario');
8
- exports.Mutation = {
9
- async startScenario(_, { instanceName, scenarioName, variables }, context) {
10
- const { domain } = context.state;
11
- debug(instanceName, scenarioName, variables);
12
- var repository = typeorm_1.getRepository(entities_1.Scenario);
13
- var scenario = await repository.findOne({
14
- where: { domain, name: scenarioName },
15
- relations: ['domain', 'steps', 'creator', 'updater']
16
- });
17
- if (!scenario) {
18
- throw new Error(context.t('error.scenario not found', {
19
- scenario: scenarioName
20
- }));
21
- }
22
- instanceName = instanceName || scenarioName;
23
- return await engine_1.ScenarioEngine.load(instanceName, scenario, { variables });
24
- }
25
- };
26
- //# sourceMappingURL=start-scenario.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"start-scenario.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/scenario/start-scenario.ts"],"names":[],"mappings":";;;AAAA,qCAAuC;AACvC,gDAA4C;AAC5C,4CAAgD;AAEhD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,gDAAgD,CAAC,CAAA;AAEnE,QAAA,QAAQ,GAAG;IACtB,KAAK,CAAC,aAAa,CAAC,CAAM,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,OAAY;QACjF,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC,KAAK,CAAC,YAAY,EAAE,YAAY,EAAE,SAAS,CAAC,CAAA;QAE5C,IAAI,UAAU,GAAG,uBAAa,CAAC,mBAAQ,CAAC,CAAA;QACxC,IAAI,QAAQ,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;YACtC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE;YACrC,SAAS,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC;SACrD,CAAC,CAAA;QAEF,IAAI,CAAC,QAAQ,EAAE;YACb,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,0BAA0B,EAAE;gBACpC,QAAQ,EAAE,YAAY;aACvB,CAAC,CACH,CAAA;SACF;QAED,YAAY,GAAG,YAAY,IAAI,YAAY,CAAA;QAC3C,OAAO,MAAM,uBAAc,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,CAAC,CAAA;IACzE,CAAC;CACF,CAAA"}
@@ -1,26 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Mutation = void 0;
4
- const engine_1 = require("../../../engine");
5
- const types_1 = require("../../../engine/types");
6
- const debug = require('debug')('things-factory:integration-base:stop-scenario');
7
- exports.Mutation = {
8
- async stopScenario(_, { instanceName }, context) {
9
- const { domain } = context.state;
10
- debug(instanceName);
11
- var scenarioInstance = engine_1.ScenarioEngine.getScenarioInstance(domain, instanceName);
12
- if (!scenarioInstance) {
13
- debug(`ScenarioInstance(${instanceName}) Not Found.`);
14
- return {
15
- instanceName,
16
- scenarioName: '',
17
- state: engine_1.ScenarioInstanceStatus[types_1.SCENARIO_STATE.UNLOADED],
18
- timestamp: String(Date.now())
19
- };
20
- }
21
- const { scenarioName } = scenarioInstance;
22
- await engine_1.ScenarioEngine.unload(domain, instanceName);
23
- return scenarioInstance;
24
- }
25
- };
26
- //# sourceMappingURL=stop-scenario.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stop-scenario.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/scenario/stop-scenario.ts"],"names":[],"mappings":";;;AAAA,4CAAwE;AACxE,iDAAsD;AAEtD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,+CAA+C,CAAC,CAAA;AAElE,QAAA,QAAQ,GAAG;IACtB,KAAK,CAAC,YAAY,CAAC,CAAM,EAAE,EAAE,YAAY,EAAE,EAAE,OAAY;QACvD,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC,KAAK,CAAC,YAAY,CAAC,CAAA;QAEnB,IAAI,gBAAgB,GAAG,uBAAc,CAAC,mBAAmB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;QAE/E,IAAI,CAAC,gBAAgB,EAAE;YACrB,KAAK,CAAC,oBAAoB,YAAY,cAAc,CAAC,CAAA;YACrD,OAAO;gBACL,YAAY;gBACZ,YAAY,EAAE,EAAE;gBAChB,KAAK,EAAE,+BAAsB,CAAC,sBAAc,CAAC,QAAQ,CAAC;gBACtD,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;aAC9B,CAAA;SACF;QAED,MAAM,EAAE,YAAY,EAAE,GAAG,gBAAgB,CAAA;QACzC,MAAM,uBAAc,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;QAEjD,OAAO,gBAAgB,CAAA;IACzB,CAAC;CACF,CAAA"}