@things-factory/integration-base 4.0.22 → 4.0.23

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 +6 -6
  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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/integration-base",
3
- "version": "4.0.22",
3
+ "version": "4.0.23",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "client/index.js",
6
6
  "things-factory": true,
@@ -26,10 +26,10 @@
26
26
  },
27
27
  "dependencies": {
28
28
  "@apollo/client": "^3.4.17",
29
- "@things-factory/api": "^4.0.22",
30
- "@things-factory/auth-base": "^4.0.22",
31
- "@things-factory/oauth2-client": "^4.0.22",
32
- "@things-factory/shell": "^4.0.22",
29
+ "@things-factory/api": "^4.0.23",
30
+ "@things-factory/auth-base": "^4.0.23",
31
+ "@things-factory/oauth2-client": "^4.0.23",
32
+ "@things-factory/shell": "^4.0.23",
33
33
  "async-mqtt": "^2.5.0",
34
34
  "cron": "^1.7.2",
35
35
  "cross-fetch": "^3.0.4",
@@ -40,5 +40,5 @@
40
40
  "promise-socket": "^7.0.0",
41
41
  "vm2": "^3.9.2"
42
42
  },
43
- "gitHead": "8267638c3bd77dfc8fa9629b490d681c6854e423"
43
+ "gitHead": "49ba662dea1d349e9608a9a58c8fcfbc1310a5d6"
44
44
  }
@@ -1,47 +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.SocketClient = void 0;
7
- const net_1 = __importDefault(require("net"));
8
- const connection_manager_1 = require("../connection-manager");
9
- const events_1 = require("events");
10
- class SocketClient {
11
- async ready(connectionConfigs) {
12
- await Promise.all(connectionConfigs.map(this.connect));
13
- connection_manager_1.ConnectionManager.logger.info('socket client are ready');
14
- }
15
- async connect(connection) {
16
- var em = new events_1.EventEmitter();
17
- const [host, port] = connection.endpoint.split(':');
18
- return new Promise((resolve, reject) => {
19
- var client = net_1.default.connect(port, host, () => {
20
- connection_manager_1.ConnectionManager.addConnectionInstance(connection, net_1.default);
21
- connection_manager_1.ConnectionManager.logger.info('Client connected');
22
- });
23
- client.on('data', (data) => {
24
- var message = String.fromCharCode(data);
25
- em.emit('socket-message-arrive', message);
26
- connection_manager_1.ConnectionManager.logger.info(`socket ${message}`);
27
- });
28
- client.on('close', () => {
29
- connection_manager_1.ConnectionManager.logger.info(`[client] connection closed`);
30
- });
31
- });
32
- }
33
- async disconnect(connection) {
34
- let socket = connection_manager_1.ConnectionManager.removeConnectionInstance(connection);
35
- await socket.destroy();
36
- connection_manager_1.ConnectionManager.logger.info(`socket-client connection(${connection.name}) is disconnected`);
37
- }
38
- get parameterSpec() {
39
- return [];
40
- }
41
- get taskPrefixes() {
42
- return ['socket-client'];
43
- }
44
- }
45
- exports.SocketClient = SocketClient;
46
- connection_manager_1.ConnectionManager.registerConnector('socket-client', new SocketClient());
47
- //# sourceMappingURL=socket-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"socket-client.js","sourceRoot":"","sources":["../../../server/engine/connector/socket-client.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAqB;AAErB,8DAAyD;AACzD,mCAAqC;AAErC,MAAa,YAAY;IACvB,KAAK,CAAC,KAAK,CAAC,iBAAiB;QAC3B,MAAM,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;QACtD,sCAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;IAC1D,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,UAAU;QACtB,IAAI,EAAE,GAAG,IAAI,qBAAY,EAAE,CAAA;QAC3B,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAEnD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,MAAM,GAAG,aAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;gBACxC,sCAAiB,CAAC,qBAAqB,CAAC,UAAU,EAAE,aAAG,CAAC,CAAA;gBACxD,sCAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;YACnD,CAAC,CAAC,CAAA;YAEF,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAS,EAAE,EAAE;gBAC9B,IAAI,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;gBACvC,EAAE,CAAC,IAAI,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAA;gBACzC,sCAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,OAAO,EAAE,CAAC,CAAA;YACpD,CAAC,CAAC,CAAA;YAEF,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBACtB,sCAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YAC9D,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,UAAU;QACzB,IAAI,MAAM,GAAG,sCAAiB,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAA;QAEnE,MAAM,MAAM,CAAC,OAAO,EAAE,CAAA;QAEtB,sCAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,UAAU,CAAC,IAAI,mBAAmB,CAAC,CAAA;IAC/F,CAAC;IAED,IAAI,aAAa;QACf,OAAO,EAAE,CAAA;IACX,CAAC;IAED,IAAI,YAAY;QACd,OAAO,CAAC,eAAe,CAAC,CAAA;IAC1B,CAAC;CACF;AA3CD,oCA2CC;AAED,sCAAiB,CAAC,iBAAiB,CAAC,eAAe,EAAE,IAAI,YAAY,EAAE,CAAC,CAAA"}
@@ -1,283 +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.ScenarioInstance = exports.ScenarioInstanceStatus = void 0;
7
- const util_1 = __importDefault(require("util"));
8
- const winston_1 = require("winston");
9
- require("winston-daily-rotate-file");
10
- const shell_1 = require("@things-factory/shell");
11
- const utils_1 = require("@things-factory/utils");
12
- const task_registry_1 = require("./task-registry");
13
- const types_1 = require("./types");
14
- const cron_1 = require("cron");
15
- const orderBy_1 = __importDefault(require("lodash/orderBy"));
16
- const debug = require('debug')('things-factory:integration-base:scenario-instance');
17
- const { combine, timestamp, splat, printf } = winston_1.format;
18
- const LOGFORMAT = printf(({ level, message, timestamp }) => {
19
- return `${timestamp} ${level}: ${message}`;
20
- });
21
- exports.ScenarioInstanceStatus = ['READY', 'STARTED', 'STOPPED', 'HALTED', 'UNLOADED'];
22
- class ScenarioInstance {
23
- constructor(instanceName, { name: scenarioName, steps, schedule = '', timezone = 'Asia/Seoul', domain }, context) {
24
- this.subScenarioInstances = []; // TODO Imple by WeakSet
25
- this.rounds = 0;
26
- this.lastStep = -1;
27
- this.nextStep = -1;
28
- this.instanceName = instanceName;
29
- this.scenarioName = scenarioName;
30
- this.schedule = schedule;
31
- this.timezone = timezone;
32
- this.steps = orderBy_1.default(steps || [], step => step.sequence);
33
- this.domain = domain;
34
- this.disposer = context === null || context === void 0 ? void 0 : context.disposer;
35
- this.context = {
36
- domain,
37
- logger: (context === null || context === void 0 ? void 0 : context.logger) ||
38
- winston_1.createLogger({
39
- format: combine(timestamp(), splat(), LOGFORMAT),
40
- transports: [
41
- new winston_1.transports.DailyRotateFile({
42
- filename: `logs/${domain.subdomain}/scenario-${scenarioName}-%DATE%.log`,
43
- datePattern: 'YYYY-MM-DD-HH',
44
- zippedArchive: false,
45
- maxSize: '5m',
46
- maxFiles: '14d',
47
- level: 'info'
48
- }),
49
- new shell_1.PubSubLogTransport({
50
- topic: 'scenario-instance-log',
51
- source: { domain, scenarioName, instanceName }
52
- })
53
- ]
54
- }),
55
- publish: (context === null || context === void 0 ? void 0 : context.publish) || this.publishData.bind(this),
56
- load: (context === null || context === void 0 ? void 0 : context.load) || this.loadSubscenario.bind(this),
57
- data: (context === null || context === void 0 ? void 0 : context.data) || {},
58
- variables: (context === null || context === void 0 ? void 0 : context.variables) || {},
59
- client: context === null || context === void 0 ? void 0 : context.client,
60
- state: types_1.SCENARIO_STATE.STOPPED,
61
- root: (context === null || context === void 0 ? void 0 : context.root) || this,
62
- closures: [],
63
- checkState(state = types_1.SCENARIO_STATE.STARTED) {
64
- return this.state == state;
65
- }
66
- };
67
- this.setState(types_1.SCENARIO_STATE.READY);
68
- }
69
- addSubScenarioInstance(instance) {
70
- this.subScenarioInstances.push(instance);
71
- return this.subScenarioInstances;
72
- }
73
- getSubScenarioInstances() {
74
- return this.subScenarioInstances;
75
- }
76
- async stopSubScenarios() {
77
- var subScenarioInstances = this.getSubScenarioInstances();
78
- var subInstance = subScenarioInstances.pop();
79
- while (subInstance) {
80
- await subInstance.dispose();
81
- subInstance = subScenarioInstances.pop();
82
- }
83
- }
84
- serialize() {
85
- const { instanceName, scenarioName, schedule, timezone, steps, domain, context: { data, variables, client, state } } = this;
86
- return {
87
- instanceName,
88
- scenarioName,
89
- schedule,
90
- timezone,
91
- steps,
92
- domain,
93
- context: {
94
- domain,
95
- data,
96
- variables,
97
- client,
98
- state
99
- }
100
- };
101
- }
102
- async run() {
103
- var state = this.getState();
104
- if (state == types_1.SCENARIO_STATE.STARTED || this.steps.length == 0) {
105
- return;
106
- }
107
- this.setState(types_1.SCENARIO_STATE.STARTED);
108
- var context = this.context;
109
- try {
110
- while (this.getState() == types_1.SCENARIO_STATE.STARTED) {
111
- if (this.nextStep == -1) {
112
- this.setNextStep(0);
113
- }
114
- if (this.nextStep == 0) {
115
- this.rounds++;
116
- this.context.logger.info(`Start ${this.rounds} Rounds #######`);
117
- }
118
- var step = this.steps[this.nextStep];
119
- var next, data;
120
- if (!step.skip) {
121
- // @ts-ignore: Initializer provides no value for this binding element and the binding element has no default value.
122
- var { next, state: stepState, data } = (await this.process(step, context)) || {};
123
- context.data[step.name] = data;
124
- }
125
- else {
126
- next = '';
127
- stepState = undefined;
128
- }
129
- this.publishState();
130
- await utils_1.sleep(1);
131
- if (next) {
132
- this.setNextStep(this.steps.findIndex(step => {
133
- return step.name == next;
134
- }));
135
- if (this.nextStep == -1) {
136
- throw 'Not Found Next Step';
137
- }
138
- }
139
- else if (this.nextStep == this.steps.length - 1) {
140
- this.setState(types_1.SCENARIO_STATE.STOPPED);
141
- }
142
- else {
143
- this.setNextStep(this.nextStep + 1);
144
- }
145
- /* last step 에 의해서 시나리오 state를 변경할 수 있도록 함. */
146
- if (stepState !== undefined) {
147
- this.setState(stepState);
148
- }
149
- }
150
- }
151
- catch (ex) {
152
- let message = ex.stack ? ex.stack : ex;
153
- debug('run', ex);
154
- this.setState(types_1.SCENARIO_STATE.HALTED, typeof message == 'object' ? JSON.stringify(message, null, 2) : message);
155
- }
156
- }
157
- async loadSubscenario(step, scenarioConfig, context) {
158
- var { name: stepName, params } = step;
159
- var { preventErrorPropagation } = params || {};
160
- debug('load-subscenario', this.instanceName, stepName, scenarioConfig.name);
161
- context.data[stepName] = {};
162
- let subContext = Object.assign(Object.assign({}, context), { data: context.data[stepName], closures: [], state: types_1.SCENARIO_STATE.READY });
163
- if (!scenarioConfig.domain) {
164
- scenarioConfig.domain = context.domain;
165
- }
166
- var subScenarioInstance = new ScenarioInstance(`${this.instanceName}$${stepName}`, scenarioConfig, subContext);
167
- this.addSubScenarioInstance(subScenarioInstance);
168
- await subScenarioInstance.run();
169
- if (!preventErrorPropagation && subScenarioInstance.getState() == types_1.SCENARIO_STATE.HALTED) {
170
- throw new Error(`Sub-scenario[${this.instanceName}$${stepName}] is halted.`);
171
- }
172
- return subContext;
173
- }
174
- publishData(tag, data) {
175
- shell_1.pubsub.publish('data', {
176
- data: {
177
- domain: this.context.domain,
178
- tag,
179
- data
180
- }
181
- });
182
- }
183
- publishState() {
184
- shell_1.pubsub.publish('scenario-instance-state', {
185
- scenarioInstanceState: this.serialize()
186
- });
187
- this.context.logger.info(this.message);
188
- }
189
- get progress() {
190
- var steps = this.steps.length;
191
- var step = Math.max(this.lastStep, 0);
192
- return {
193
- rounds: this.rounds,
194
- rate: steps ? Math.round(100 * (step / steps)) : 0,
195
- steps,
196
- step
197
- };
198
- }
199
- setNextStep(step) {
200
- this.lastStep = this.nextStep + 1;
201
- this.nextStep = step;
202
- }
203
- getState() {
204
- return this.context.state;
205
- }
206
- setState(state, message) {
207
- if (this.context.state == state) {
208
- return;
209
- }
210
- this.message = `${this.instanceName}:[state changed] ${exports.ScenarioInstanceStatus[this.getState()]} => ${exports.ScenarioInstanceStatus[state]}${message ? ' caused by ' + util_1.default.inspect(message, false, 2, true) : ''}`;
211
- this.context.state = state;
212
- if (state == types_1.SCENARIO_STATE.STOPPED || state == types_1.SCENARIO_STATE.HALTED) {
213
- this.setNextStep(-1);
214
- if (!this.cronjob) {
215
- this.setState(types_1.SCENARIO_STATE.UNLOADED);
216
- }
217
- }
218
- else if (state == types_1.SCENARIO_STATE.UNLOADED) {
219
- this.setNextStep(-1);
220
- this.dispose();
221
- }
222
- this.publishState();
223
- }
224
- start() {
225
- if (this.schedule) {
226
- if (!this.cronjob) {
227
- this.cronjob = new cron_1.CronJob(this.schedule, this.run.bind(this), null, true, this.timezone);
228
- }
229
- }
230
- else {
231
- this.run();
232
- }
233
- }
234
- stop() {
235
- if (this.getState() !== types_1.SCENARIO_STATE.HALTED) {
236
- this.setState(types_1.SCENARIO_STATE.STOPPED);
237
- }
238
- }
239
- unload() {
240
- this.setState(types_1.SCENARIO_STATE.UNLOADED);
241
- }
242
- async dispose() {
243
- var _a, _b, _c, _d;
244
- if (this.cronjob) {
245
- this.cronjob.stop();
246
- delete this.cronjob;
247
- }
248
- await this.stopSubScenarios();
249
- this.unload();
250
- var closure = (_b = (_a = this.context) === null || _a === void 0 ? void 0 : _a.closures) === null || _b === void 0 ? void 0 : _b.pop();
251
- while (closure) {
252
- closure.call(this);
253
- closure = (_d = (_c = this.context) === null || _c === void 0 ? void 0 : _c.closures) === null || _d === void 0 ? void 0 : _d.pop();
254
- }
255
- if (this.disposer) {
256
- await this.disposer.call(this);
257
- }
258
- }
259
- async process(step, context) {
260
- this.context.logger.info(`Step '${step.name}'(${step.id}) started.`);
261
- step = Object.assign({}, step); // copy step
262
- try {
263
- step.params = JSON.parse(step.params);
264
- }
265
- catch (ex) {
266
- this.context.logger.error(`params(${step.params}) parsing error. params must be a JSON.`);
267
- }
268
- step.params = step.params || {};
269
- var handler = task_registry_1.TaskRegistry.getTaskHandler(step.task);
270
- if (!handler) {
271
- throw new Error(`no task handler for step '${step.name}'(${step.id})`);
272
- }
273
- var retval = await handler(step, context);
274
- if (step.log) {
275
- var { data } = retval || {};
276
- this.context.logger.info(`returns ${typeof data == 'string' ? data : JSON.stringify(data, null, 2)}`);
277
- }
278
- this.context.logger.info(`Step done.`);
279
- return retval;
280
- }
281
- }
282
- exports.ScenarioInstance = ScenarioInstance;
283
- //# sourceMappingURL=scenario-instance.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scenario-instance.js","sourceRoot":"","sources":["../../server/engine/scenario-instance.ts"],"names":[],"mappings":"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"}
@@ -1,102 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var _a, _b, _c;
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.Connection = void 0;
14
- const typeorm_1 = require("typeorm");
15
- const shell_1 = require("@things-factory/shell");
16
- const auth_base_1 = require("@things-factory/auth-base");
17
- const engine_1 = require("../engine");
18
- let Connection = class Connection {
19
- async connect() {
20
- var connector = engine_1.ConnectionManager.getConnector(this.type);
21
- var params = {};
22
- try {
23
- params = JSON.parse(this.params || '{}');
24
- }
25
- catch (ex) {
26
- console.error(`connection '${this.name}' params should be JSON format`, ex);
27
- }
28
- await connector.connect(Object.assign(Object.assign({}, this), { params }));
29
- }
30
- async disconnect() {
31
- try {
32
- var connector = engine_1.ConnectionManager.getConnector(this.type);
33
- await connector.disconnect(this);
34
- }
35
- finally {
36
- }
37
- }
38
- };
39
- __decorate([
40
- typeorm_1.PrimaryGeneratedColumn('uuid'),
41
- __metadata("design:type", String)
42
- ], Connection.prototype, "id", void 0);
43
- __decorate([
44
- typeorm_1.ManyToOne(type => shell_1.Domain),
45
- __metadata("design:type", typeof (_a = typeof shell_1.Domain !== "undefined" && shell_1.Domain) === "function" ? _a : Object)
46
- ], Connection.prototype, "domain", void 0);
47
- __decorate([
48
- typeorm_1.Column(),
49
- __metadata("design:type", String)
50
- ], Connection.prototype, "name", void 0);
51
- __decorate([
52
- typeorm_1.Column({
53
- nullable: true
54
- }),
55
- __metadata("design:type", String)
56
- ], Connection.prototype, "description", void 0);
57
- __decorate([
58
- typeorm_1.Column(),
59
- __metadata("design:type", String)
60
- ], Connection.prototype, "type", void 0);
61
- __decorate([
62
- typeorm_1.Column(),
63
- __metadata("design:type", String)
64
- ], Connection.prototype, "endpoint", void 0);
65
- __decorate([
66
- typeorm_1.Column({
67
- nullable: true
68
- }),
69
- __metadata("design:type", Boolean)
70
- ], Connection.prototype, "active", void 0);
71
- __decorate([
72
- typeorm_1.Column({
73
- nullable: true
74
- }),
75
- __metadata("design:type", String)
76
- ], Connection.prototype, "params", void 0);
77
- __decorate([
78
- typeorm_1.CreateDateColumn(),
79
- __metadata("design:type", Date)
80
- ], Connection.prototype, "createdAt", void 0);
81
- __decorate([
82
- typeorm_1.UpdateDateColumn(),
83
- __metadata("design:type", Date)
84
- ], Connection.prototype, "updatedAt", void 0);
85
- __decorate([
86
- typeorm_1.ManyToOne(type => auth_base_1.User, {
87
- nullable: true
88
- }),
89
- __metadata("design:type", typeof (_b = typeof auth_base_1.User !== "undefined" && auth_base_1.User) === "function" ? _b : Object)
90
- ], Connection.prototype, "creator", void 0);
91
- __decorate([
92
- typeorm_1.ManyToOne(type => auth_base_1.User, {
93
- nullable: true
94
- }),
95
- __metadata("design:type", typeof (_c = typeof auth_base_1.User !== "undefined" && auth_base_1.User) === "function" ? _c : Object)
96
- ], Connection.prototype, "updater", void 0);
97
- Connection = __decorate([
98
- typeorm_1.Entity(),
99
- typeorm_1.Index('ix_connection_0', (connection) => [connection.domain, connection.name], { unique: true })
100
- ], Connection);
101
- exports.Connection = Connection;
102
- //# sourceMappingURL=connection.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../server/entities/connection.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,qCASgB;AAChB,iDAA8C;AAC9C,yDAAgD;AAEhD,sCAA6C;AAI7C,IAAa,UAAU,GAAvB,MAAa,UAAU;IA+CrB,KAAK,CAAC,OAAO;QACX,IAAI,SAAS,GAAG,0BAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACzD,IAAI,MAAM,GAAG,EAAE,CAAA;QAEf,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAA;SACzC;QAAC,OAAO,EAAE,EAAE;YACX,OAAO,CAAC,KAAK,CAAC,eAAe,IAAI,CAAC,IAAI,gCAAgC,EAAE,EAAE,CAAC,CAAA;SAC5E;QAED,MAAM,SAAS,CAAC,OAAO,iCAClB,IAAI,KACP,MAAM,IACN,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI;YACF,IAAI,SAAS,GAAG,0BAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACzD,MAAM,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;SACjC;gBAAS;SACT;IACH,CAAC;CACF,CAAA;AApEC;IADC,gCAAsB,CAAC,MAAM,CAAC;;sCACrB;AAGV;IADC,mBAAS,CAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;kDAClB,cAAM,oBAAN,cAAM;0CAAA;AAGd;IADC,gBAAM,EAAE;;wCACG;AAKZ;IAHC,gBAAM,CAAC;QACN,QAAQ,EAAE,IAAI;KACf,CAAC;;+CACiB;AAGnB;IADC,gBAAM,EAAE;;wCACG;AAGZ;IADC,gBAAM,EAAE;;4CACO;AAKhB;IAHC,gBAAM,CAAC;QACN,QAAQ,EAAE,IAAI;KACf,CAAC;;0CACa;AAKf;IAHC,gBAAM,CAAC;QACN,QAAQ,EAAE,IAAI;KACf,CAAC;;0CACY;AAGd;IADC,0BAAgB,EAAE;8BACR,IAAI;6CAAA;AAGf;IADC,0BAAgB,EAAE;8BACR,IAAI;6CAAA;AAKf;IAHC,mBAAS,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE;QACvB,QAAQ,EAAE,IAAI;KACf,CAAC;kDACO,gBAAI,oBAAJ,gBAAI;2CAAA;AAKb;IAHC,mBAAS,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE;QACvB,QAAQ,EAAE,IAAI;KACf,CAAC;kDACO,gBAAI,oBAAJ,gBAAI;2CAAA;AA7CF,UAAU;IAFtB,gBAAM,EAAE;IACR,eAAK,CAAC,iBAAiB,EAAE,CAAC,UAAsB,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;GAChG,UAAU,CAsEtB;AAtEY,gCAAU"}
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Step = exports.Scenario = exports.Connection = exports.entities = void 0;
4
- const connection_1 = require("./connection");
5
- Object.defineProperty(exports, "Connection", { enumerable: true, get: function () { return connection_1.Connection; } });
6
- const scenario_1 = require("./scenario");
7
- Object.defineProperty(exports, "Scenario", { enumerable: true, get: function () { return scenario_1.Scenario; } });
8
- const step_1 = require("./step");
9
- Object.defineProperty(exports, "Step", { enumerable: true, get: function () { return step_1.Step; } });
10
- exports.entities = [connection_1.Connection, scenario_1.Scenario, step_1.Step];
11
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/entities/index.ts"],"names":[],"mappings":";;;AAAA,6CAAyC;AAMhC,2FANA,uBAAU,OAMA;AALnB,yCAAqC;AAKhB,yFALZ,mBAAQ,OAKY;AAJ7B,iCAA6B;AAIE,qFAJtB,WAAI,OAIsB;AAFtB,QAAA,QAAQ,GAAG,CAAC,uBAAU,EAAE,mBAAQ,EAAE,WAAI,CAAC,CAAA"}
@@ -1,37 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var _a;
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.ScenarioFlow = void 0;
14
- const shell_1 = require("@things-factory/shell");
15
- const typeorm_1 = require("typeorm");
16
- let ScenarioFlow = class ScenarioFlow {
17
- };
18
- __decorate([
19
- typeorm_1.PrimaryGeneratedColumn('uuid'),
20
- __metadata("design:type", String)
21
- ], ScenarioFlow.prototype, "id", void 0);
22
- __decorate([
23
- typeorm_1.ManyToOne(type => shell_1.Domain),
24
- __metadata("design:type", typeof (_a = typeof shell_1.Domain !== "undefined" && shell_1.Domain) === "function" ? _a : Object)
25
- ], ScenarioFlow.prototype, "domain", void 0);
26
- __decorate([
27
- typeorm_1.Column({
28
- nullable: true
29
- }),
30
- __metadata("design:type", String)
31
- ], ScenarioFlow.prototype, "flow", void 0);
32
- ScenarioFlow = __decorate([
33
- typeorm_1.Entity(),
34
- typeorm_1.Index('ix_scenario_flows_0', (scenarioFlow) => [scenarioFlow.domain], { unique: true })
35
- ], ScenarioFlow);
36
- exports.ScenarioFlow = ScenarioFlow;
37
- //# sourceMappingURL=scenario-flow.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scenario-flow.js","sourceRoot":"","sources":["../../server/entities/scenario-flow.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,iDAA8C;AAC9C,qCAAkF;AAIlF,IAAa,YAAY,GAAzB,MAAa,YAAY;CAWxB,CAAA;AATC;IADC,gCAAsB,CAAC,MAAM,CAAC;;wCACrB;AAGV;IADC,mBAAS,CAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;kDAClB,cAAM,oBAAN,cAAM;4CAAA;AAKd;IAHC,gBAAM,CAAC;QACN,QAAQ,EAAE,IAAI;KACf,CAAC;;0CACU;AAVD,YAAY;IAFxB,gBAAM,EAAE;IACR,eAAK,CAAC,qBAAqB,EAAE,CAAC,YAA0B,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;GACzF,YAAY,CAWxB;AAXY,oCAAY"}
@@ -1,105 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var _a, _b, _c;
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.Scenario = void 0;
14
- const typeorm_1 = require("typeorm");
15
- const shell_1 = require("@things-factory/shell");
16
- const auth_base_1 = require("@things-factory/auth-base");
17
- const step_1 = require("./step");
18
- const engine_1 = require("../engine");
19
- let Scenario = class Scenario {
20
- async start(instanceName, variables) {
21
- try {
22
- await engine_1.ScenarioEngine.load(instanceName || this.name, this, { variables });
23
- }
24
- catch (ex) { }
25
- }
26
- async stop(instanceName) {
27
- try {
28
- await engine_1.ScenarioEngine.unload(this.domain, instanceName || this.name);
29
- }
30
- finally {
31
- }
32
- }
33
- };
34
- __decorate([
35
- typeorm_1.PrimaryGeneratedColumn('uuid'),
36
- __metadata("design:type", String)
37
- ], Scenario.prototype, "id", void 0);
38
- __decorate([
39
- typeorm_1.ManyToOne(type => shell_1.Domain),
40
- __metadata("design:type", typeof (_a = typeof shell_1.Domain !== "undefined" && shell_1.Domain) === "function" ? _a : Object)
41
- ], Scenario.prototype, "domain", void 0);
42
- __decorate([
43
- typeorm_1.Column(),
44
- __metadata("design:type", String)
45
- ], Scenario.prototype, "name", void 0);
46
- __decorate([
47
- typeorm_1.Column({
48
- nullable: true
49
- }),
50
- __metadata("design:type", String)
51
- ], Scenario.prototype, "description", void 0);
52
- __decorate([
53
- typeorm_1.Column({
54
- nullable: true
55
- }),
56
- __metadata("design:type", String)
57
- ], Scenario.prototype, "type", void 0);
58
- __decorate([
59
- typeorm_1.Column({
60
- nullable: true
61
- }),
62
- __metadata("design:type", Boolean)
63
- ], Scenario.prototype, "active", void 0);
64
- __decorate([
65
- typeorm_1.Column({
66
- nullable: true
67
- }),
68
- __metadata("design:type", String)
69
- ], Scenario.prototype, "schedule", void 0);
70
- __decorate([
71
- typeorm_1.Column({
72
- nullable: true
73
- }),
74
- __metadata("design:type", String)
75
- ], Scenario.prototype, "timezone", void 0);
76
- __decorate([
77
- typeorm_1.OneToMany(type => step_1.Step, step => step.scenario),
78
- __metadata("design:type", Array)
79
- ], Scenario.prototype, "steps", void 0);
80
- __decorate([
81
- typeorm_1.CreateDateColumn(),
82
- __metadata("design:type", Date)
83
- ], Scenario.prototype, "createdAt", void 0);
84
- __decorate([
85
- typeorm_1.UpdateDateColumn(),
86
- __metadata("design:type", Date)
87
- ], Scenario.prototype, "updatedAt", void 0);
88
- __decorate([
89
- typeorm_1.ManyToOne(type => auth_base_1.User, {
90
- nullable: true
91
- }),
92
- __metadata("design:type", typeof (_b = typeof auth_base_1.User !== "undefined" && auth_base_1.User) === "function" ? _b : Object)
93
- ], Scenario.prototype, "creator", void 0);
94
- __decorate([
95
- typeorm_1.ManyToOne(type => auth_base_1.User, {
96
- nullable: true
97
- }),
98
- __metadata("design:type", typeof (_c = typeof auth_base_1.User !== "undefined" && auth_base_1.User) === "function" ? _c : Object)
99
- ], Scenario.prototype, "updater", void 0);
100
- Scenario = __decorate([
101
- typeorm_1.Entity(),
102
- typeorm_1.Index('ix_scenario_0', (scenario) => [scenario.domain, scenario.name], { unique: true })
103
- ], Scenario);
104
- exports.Scenario = Scenario;
105
- //# sourceMappingURL=scenario.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scenario.js","sourceRoot":"","sources":["../../server/entities/scenario.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,qCASgB;AAChB,iDAA8C;AAC9C,yDAAgD;AAChD,iCAA6B;AAE7B,sCAA0C;AAI1C,IAAa,QAAQ,GAArB,MAAa,QAAQ;IAsDnB,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,SAAe;QACvC,IAAI;YACF,MAAM,uBAAc,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,CAAA;SAC1E;QAAC,OAAO,EAAE,EAAE,GAAE;IACjB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,YAAa;QACtB,IAAI;YACF,MAAM,uBAAc,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,CAAA;SACpE;gBAAS;SACT;IACH,CAAC;CACF,CAAA;AAhEC;IADC,gCAAsB,CAAC,MAAM,CAAC;;oCACrB;AAGV;IADC,mBAAS,CAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;kDAClB,cAAM,oBAAN,cAAM;wCAAA;AAGd;IADC,gBAAM,EAAE;;sCACG;AAKZ;IAHC,gBAAM,CAAC;QACN,QAAQ,EAAE,IAAI;KACf,CAAC;;6CACiB;AAKnB;IAHC,gBAAM,CAAC;QACN,QAAQ,EAAE,IAAI;KACf,CAAC;;sCACU;AAKZ;IAHC,gBAAM,CAAC;QACN,QAAQ,EAAE,IAAI;KACf,CAAC;;wCACa;AAKf;IAHC,gBAAM,CAAC;QACN,QAAQ,EAAE,IAAI;KACf,CAAC;;0CACc;AAKhB;IAHC,gBAAM,CAAC;QACN,QAAQ,EAAE,IAAI;KACf,CAAC;;0CACc;AAGhB;IADC,mBAAS,CAAC,IAAI,CAAC,EAAE,CAAC,WAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;;uCAClC;AAGb;IADC,0BAAgB,EAAE;8BACR,IAAI;2CAAA;AAGf;IADC,0BAAgB,EAAE;8BACR,IAAI;2CAAA;AAKf;IAHC,mBAAS,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE;QACvB,QAAQ,EAAE,IAAI;KACf,CAAC;kDACO,gBAAI,oBAAJ,gBAAI;yCAAA;AAKb;IAHC,mBAAS,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE;QACvB,QAAQ,EAAE,IAAI;KACf,CAAC;kDACO,gBAAI,oBAAJ,gBAAI;yCAAA;AApDF,QAAQ;IAFpB,gBAAM,EAAE;IACR,eAAK,CAAC,eAAe,EAAE,CAAC,QAAkB,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;GACtF,QAAQ,CAkEpB;AAlEY,4BAAQ"}