@things-factory/integration-base 4.3.671 → 4.3.673

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 (249) hide show
  1. package/dist-server/engine/connection-manager.js +141 -0
  2. package/dist-server/engine/connection-manager.js.map +1 -0
  3. package/dist-server/engine/connector/echo-back-connector.js +41 -0
  4. package/dist-server/engine/connector/echo-back-connector.js.map +1 -0
  5. package/dist-server/engine/connector/echo-back-server.js +60 -0
  6. package/dist-server/engine/connector/echo-back-server.js.map +1 -0
  7. package/dist-server/engine/connector/graphql-connector.js +91 -0
  8. package/dist-server/engine/connector/graphql-connector.js.map +1 -0
  9. package/dist-server/engine/connector/http-connector.js +52 -0
  10. package/dist-server/engine/connector/http-connector.js.map +1 -0
  11. package/dist-server/engine/connector/index.js +14 -0
  12. package/dist-server/engine/connector/index.js.map +1 -0
  13. package/dist-server/engine/connector/mqtt-connector.js +44 -0
  14. package/dist-server/engine/connector/mqtt-connector.js.map +1 -0
  15. package/dist-server/engine/connector/mssql-connector.js +88 -0
  16. package/dist-server/engine/connector/mssql-connector.js.map +1 -0
  17. package/dist-server/engine/connector/mysql-connector.js +82 -0
  18. package/dist-server/engine/connector/mysql-connector.js.map +1 -0
  19. package/dist-server/engine/connector/oracle-connector.js +80 -0
  20. package/dist-server/engine/connector/oracle-connector.js.map +1 -0
  21. package/dist-server/engine/connector/postgresql-connector.js +88 -0
  22. package/dist-server/engine/connector/postgresql-connector.js.map +1 -0
  23. package/dist-server/engine/connector/socket-server.js +78 -0
  24. package/dist-server/engine/connector/socket-server.js.map +1 -0
  25. package/dist-server/engine/connector/sqlite-connector.js +57 -0
  26. package/dist-server/engine/connector/sqlite-connector.js.map +1 -0
  27. package/dist-server/engine/index.js +22 -0
  28. package/dist-server/engine/index.js.map +1 -0
  29. package/dist-server/engine/pending-queue.js +75 -0
  30. package/dist-server/engine/pending-queue.js.map +1 -0
  31. package/dist-server/engine/scenario-engine.js +74 -0
  32. package/dist-server/engine/scenario-engine.js.map +1 -0
  33. package/dist-server/engine/task/book-up-scenario.js +63 -0
  34. package/dist-server/engine/task/book-up-scenario.js.map +1 -0
  35. package/dist-server/engine/task/database-query.js +30 -0
  36. package/dist-server/engine/task/database-query.js.map +1 -0
  37. package/dist-server/engine/task/echo-receive.js +15 -0
  38. package/dist-server/engine/task/echo-receive.js.map +1 -0
  39. package/dist-server/engine/task/echo-send.js +24 -0
  40. package/dist-server/engine/task/echo-send.js.map +1 -0
  41. package/dist-server/engine/task/empty-check.js +29 -0
  42. package/dist-server/engine/task/empty-check.js.map +1 -0
  43. package/dist-server/engine/task/end.js +14 -0
  44. package/dist-server/engine/task/end.js.map +1 -0
  45. package/dist-server/engine/task/floating-point.js +64 -0
  46. package/dist-server/engine/task/floating-point.js.map +1 -0
  47. package/dist-server/engine/task/goto.js +20 -0
  48. package/dist-server/engine/task/goto.js.map +1 -0
  49. package/dist-server/engine/task/graphql-mutate.js +41 -0
  50. package/dist-server/engine/task/graphql-mutate.js.map +1 -0
  51. package/dist-server/engine/task/graphql-query.js +40 -0
  52. package/dist-server/engine/task/graphql-query.js.map +1 -0
  53. package/dist-server/engine/task/http-get.js +67 -0
  54. package/dist-server/engine/task/http-get.js.map +1 -0
  55. package/dist-server/engine/task/http-post.js +106 -0
  56. package/dist-server/engine/task/http-post.js.map +1 -0
  57. package/dist-server/engine/task/index.js +35 -0
  58. package/dist-server/engine/task/index.js.map +1 -0
  59. package/dist-server/engine/task/local-graphql-mutate.js +51 -0
  60. package/dist-server/engine/task/local-graphql-mutate.js.map +1 -0
  61. package/dist-server/engine/task/local-graphql-query.js +51 -0
  62. package/dist-server/engine/task/local-graphql-query.js.map +1 -0
  63. package/dist-server/engine/task/log.js +48 -0
  64. package/dist-server/engine/task/log.js.map +1 -0
  65. package/dist-server/engine/task/mqtt-publish.js +35 -0
  66. package/dist-server/engine/task/mqtt-publish.js.map +1 -0
  67. package/dist-server/engine/task/mqtt-subscribe.js +109 -0
  68. package/dist-server/engine/task/mqtt-subscribe.js.map +1 -0
  69. package/dist-server/engine/task/pick-pending-scenario.js +61 -0
  70. package/dist-server/engine/task/pick-pending-scenario.js.map +1 -0
  71. package/dist-server/engine/task/publish.js +31 -0
  72. package/dist-server/engine/task/publish.js.map +1 -0
  73. package/dist-server/engine/task/reset-pending-queue.js +13 -0
  74. package/dist-server/engine/task/reset-pending-queue.js.map +1 -0
  75. package/dist-server/engine/task/script.js +32 -0
  76. package/dist-server/engine/task/script.js.map +1 -0
  77. package/dist-server/engine/task/sleep.js +26 -0
  78. package/dist-server/engine/task/sleep.js.map +1 -0
  79. package/dist-server/engine/task/socket-listener.js +86 -0
  80. package/dist-server/engine/task/socket-listener.js.map +1 -0
  81. package/dist-server/engine/task/sub-scenario.js +45 -0
  82. package/dist-server/engine/task/sub-scenario.js.map +1 -0
  83. package/dist-server/engine/task/switch-goto.js +32 -0
  84. package/dist-server/engine/task/switch-goto.js.map +1 -0
  85. package/dist-server/engine/task/switch-range-goto.js +39 -0
  86. package/dist-server/engine/task/switch-range-goto.js.map +1 -0
  87. package/dist-server/engine/task/switch-range-scenario.js +60 -0
  88. package/dist-server/engine/task/switch-range-scenario.js.map +1 -0
  89. package/dist-server/engine/task/switch-range-set.js +35 -0
  90. package/dist-server/engine/task/switch-range-set.js.map +1 -0
  91. package/dist-server/engine/task/switch-scenario.js +53 -0
  92. package/dist-server/engine/task/switch-scenario.js.map +1 -0
  93. package/dist-server/engine/task/switch-set.js +28 -0
  94. package/dist-server/engine/task/switch-set.js.map +1 -0
  95. package/dist-server/engine/task/throw.js +19 -0
  96. package/dist-server/engine/task/throw.js.map +1 -0
  97. package/dist-server/engine/task/utils/substitute.js +46 -0
  98. package/dist-server/engine/task/utils/substitute.js.map +1 -0
  99. package/dist-server/engine/task/variables.js +13 -0
  100. package/dist-server/engine/task/variables.js.map +1 -0
  101. package/dist-server/engine/task-registry.js +20 -0
  102. package/dist-server/engine/task-registry.js.map +1 -0
  103. package/dist-server/engine/types.js +3 -0
  104. package/dist-server/engine/types.js.map +1 -0
  105. package/dist-server/index.js +25 -0
  106. package/dist-server/index.js.map +1 -0
  107. package/dist-server/migrations/index.js +12 -0
  108. package/dist-server/migrations/index.js.map +1 -0
  109. package/dist-server/restful/index.js +4 -0
  110. package/dist-server/restful/index.js.map +1 -0
  111. package/dist-server/restful/unstable/index.js +10 -0
  112. package/dist-server/restful/unstable/index.js.map +1 -0
  113. package/dist-server/restful/unstable/run-scenario.js +40 -0
  114. package/dist-server/restful/unstable/run-scenario.js.map +1 -0
  115. package/dist-server/restful/unstable/scenario-instance.js +54 -0
  116. package/dist-server/restful/unstable/scenario-instance.js.map +1 -0
  117. package/dist-server/restful/unstable/scenario-instances.js +76 -0
  118. package/dist-server/restful/unstable/scenario-instances.js.map +1 -0
  119. package/dist-server/restful/unstable/scenario.js +44 -0
  120. package/dist-server/restful/unstable/scenario.js.map +1 -0
  121. package/dist-server/restful/unstable/scenarios.js +65 -0
  122. package/dist-server/restful/unstable/scenarios.js.map +1 -0
  123. package/dist-server/restful/unstable/start-scenario.js +35 -0
  124. package/dist-server/restful/unstable/start-scenario.js.map +1 -0
  125. package/dist-server/restful/unstable/stop-scenario.js +32 -0
  126. package/dist-server/restful/unstable/stop-scenario.js.map +1 -0
  127. package/dist-server/routers/scenario-view-router.js +42 -0
  128. package/dist-server/routers/scenario-view-router.js.map +1 -0
  129. package/dist-server/routes.js +14 -0
  130. package/dist-server/routes.js.map +1 -0
  131. package/dist-server/service/connection/connection-mutation.js +162 -0
  132. package/dist-server/service/connection/connection-mutation.js.map +1 -0
  133. package/dist-server/service/connection/connection-query.js +112 -0
  134. package/dist-server/service/connection/connection-query.js.map +1 -0
  135. package/dist-server/service/connection/connection-subscription.js +114 -0
  136. package/dist-server/service/connection/connection-subscription.js.map +1 -0
  137. package/dist-server/service/connection/connection-type.js +253 -0
  138. package/dist-server/service/connection/connection-type.js.map +1 -0
  139. package/dist-server/service/connection/index.js +10 -0
  140. package/dist-server/service/connection/index.js.map +1 -0
  141. package/dist-server/service/connector/connector-query.js +88 -0
  142. package/dist-server/service/connector/connector-query.js.map +1 -0
  143. package/dist-server/service/connector/connector-type.js +55 -0
  144. package/dist-server/service/connector/connector-type.js.map +1 -0
  145. package/dist-server/service/connector/index.js +7 -0
  146. package/dist-server/service/connector/index.js.map +1 -0
  147. package/dist-server/service/index.js +81 -0
  148. package/dist-server/service/index.js.map +1 -0
  149. package/dist-server/service/integration/index.js +9 -0
  150. package/dist-server/service/integration/index.js.map +1 -0
  151. package/dist-server/service/integration/integration-mutation.js +120 -0
  152. package/dist-server/service/integration/integration-mutation.js.map +1 -0
  153. package/dist-server/service/integration/integration-query.js +87 -0
  154. package/dist-server/service/integration/integration-query.js.map +1 -0
  155. package/dist-server/service/integration/integration-type.js +77 -0
  156. package/dist-server/service/integration/integration-type.js.map +1 -0
  157. package/dist-server/service/integration/integration.js +147 -0
  158. package/dist-server/service/integration/integration.js.map +1 -0
  159. package/dist-server/service/payload-log/index.js +9 -0
  160. package/dist-server/service/payload-log/index.js.map +1 -0
  161. package/dist-server/service/payload-log/payload-log-mutation.js +144 -0
  162. package/dist-server/service/payload-log/payload-log-mutation.js.map +1 -0
  163. package/dist-server/service/payload-log/payload-log-query.js +77 -0
  164. package/dist-server/service/payload-log/payload-log-query.js.map +1 -0
  165. package/dist-server/service/payload-log/payload-log-type.js +65 -0
  166. package/dist-server/service/payload-log/payload-log-type.js.map +1 -0
  167. package/dist-server/service/payload-log/payload-log.js +109 -0
  168. package/dist-server/service/payload-log/payload-log.js.map +1 -0
  169. package/dist-server/service/property-spec.js +42 -0
  170. package/dist-server/service/property-spec.js.map +1 -0
  171. package/dist-server/service/scenario/index.js +9 -0
  172. package/dist-server/service/scenario/index.js.map +1 -0
  173. package/dist-server/service/scenario/scenario-mutation.js +213 -0
  174. package/dist-server/service/scenario/scenario-mutation.js.map +1 -0
  175. package/dist-server/service/scenario/scenario-query.js +130 -0
  176. package/dist-server/service/scenario/scenario-query.js.map +1 -0
  177. package/dist-server/service/scenario/scenario-type.js +220 -0
  178. package/dist-server/service/scenario/scenario-type.js.map +1 -0
  179. package/dist-server/service/scenario-flow/scenario-flow.js +37 -0
  180. package/dist-server/service/scenario-flow/scenario-flow.js.map +1 -0
  181. package/dist-server/service/scenario-instance/index.js +9 -0
  182. package/dist-server/service/scenario-instance/index.js.map +1 -0
  183. package/dist-server/service/scenario-instance/scenario-instance-mutation.js +115 -0
  184. package/dist-server/service/scenario-instance/scenario-instance-mutation.js.map +1 -0
  185. package/dist-server/service/scenario-instance/scenario-instance-query.js +122 -0
  186. package/dist-server/service/scenario-instance/scenario-instance-query.js.map +1 -0
  187. package/dist-server/service/scenario-instance/scenario-instance-subscription.js +122 -0
  188. package/dist-server/service/scenario-instance/scenario-instance-subscription.js.map +1 -0
  189. package/dist-server/service/scenario-instance/scenario-instance-type.js +428 -0
  190. package/dist-server/service/scenario-instance/scenario-instance-type.js.map +1 -0
  191. package/dist-server/service/scenario-queue/index.js +7 -0
  192. package/dist-server/service/scenario-queue/index.js.map +1 -0
  193. package/dist-server/service/scenario-queue/scenario-queue-subscription.js +69 -0
  194. package/dist-server/service/scenario-queue/scenario-queue-subscription.js.map +1 -0
  195. package/dist-server/service/scenario-queue/scenario-queue-type.js +52 -0
  196. package/dist-server/service/scenario-queue/scenario-queue-type.js.map +1 -0
  197. package/dist-server/service/step/index.js +9 -0
  198. package/dist-server/service/step/index.js.map +1 -0
  199. package/dist-server/service/step/step-mutation.js +66 -0
  200. package/dist-server/service/step/step-mutation.js.map +1 -0
  201. package/dist-server/service/step/step-query.js +97 -0
  202. package/dist-server/service/step/step-query.js.map +1 -0
  203. package/dist-server/service/step/step-type.js +194 -0
  204. package/dist-server/service/step/step-type.js.map +1 -0
  205. package/dist-server/service/task-type/index.js +7 -0
  206. package/dist-server/service/task-type/index.js.map +1 -0
  207. package/dist-server/service/task-type/task-type-query.js +119 -0
  208. package/dist-server/service/task-type/task-type-query.js.map +1 -0
  209. package/dist-server/service/task-type/task-type-type.js +55 -0
  210. package/dist-server/service/task-type/task-type-type.js.map +1 -0
  211. package/dist-server/service/webhook/index.js +9 -0
  212. package/dist-server/service/webhook/index.js.map +1 -0
  213. package/dist-server/service/webhook/webhook-mutation.js +19 -0
  214. package/dist-server/service/webhook/webhook-mutation.js.map +1 -0
  215. package/dist-server/service/webhook/webhook-query.js +18 -0
  216. package/dist-server/service/webhook/webhook-query.js.map +1 -0
  217. package/dist-server/service/webhook/webhook-type.js +77 -0
  218. package/dist-server/service/webhook/webhook-type.js.map +1 -0
  219. package/dist-server/service/webhook/webhook.js +82 -0
  220. package/dist-server/service/webhook/webhook.js.map +1 -0
  221. package/dist-server/service/webhook-event/index.js +9 -0
  222. package/dist-server/service/webhook-event/index.js.map +1 -0
  223. package/dist-server/service/webhook-event/webhook-event-enums.js +36 -0
  224. package/dist-server/service/webhook-event/webhook-event-enums.js.map +1 -0
  225. package/dist-server/service/webhook-event/webhook-event-mutation.js +18 -0
  226. package/dist-server/service/webhook-event/webhook-event-mutation.js.map +1 -0
  227. package/dist-server/service/webhook-event/webhook-event-query.js +18 -0
  228. package/dist-server/service/webhook-event/webhook-event-query.js.map +1 -0
  229. package/dist-server/service/webhook-event/webhook-event-type.js +77 -0
  230. package/dist-server/service/webhook-event/webhook-event-type.js.map +1 -0
  231. package/dist-server/service/webhook-event/webhook-event.js +60 -0
  232. package/dist-server/service/webhook-event/webhook-event.js.map +1 -0
  233. package/dist-server/service/webhook-handler/lambda-handler.js +30 -0
  234. package/dist-server/service/webhook-handler/lambda-handler.js.map +1 -0
  235. package/dist-server/service/webhook-handler/webhook-controller.js +54 -0
  236. package/dist-server/service/webhook-handler/webhook-controller.js.map +1 -0
  237. package/dist-server/sqs-client.js +29 -0
  238. package/dist-server/sqs-client.js.map +1 -0
  239. package/dist-server/sqs-const.js +6 -0
  240. package/dist-server/sqs-const.js.map +1 -0
  241. package/dist-server/util/index.js +19 -0
  242. package/dist-server/util/index.js.map +1 -0
  243. package/dist-server/util/lambda/lambda-const.js +7 -0
  244. package/dist-server/util/lambda/lambda-const.js.map +1 -0
  245. package/dist-server/util/lambda/lambda-service.js +33 -0
  246. package/dist-server/util/lambda/lambda-service.js.map +1 -0
  247. package/dist-server/util/sqs-send-message.js +11 -0
  248. package/dist-server/util/sqs-send-message.js.map +1 -0
  249. package/package.json +6 -6
@@ -0,0 +1,130 @@
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 __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var _a;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.ScenarioQuery = void 0;
17
+ const type_graphql_1 = require("type-graphql");
18
+ const typeorm_1 = require("typeorm");
19
+ const shell_1 = require("@things-factory/shell");
20
+ const auth_base_1 = require("@things-factory/auth-base");
21
+ const scenario_type_1 = require("./scenario-type");
22
+ const scenario_instance_type_1 = require("../scenario-instance/scenario-instance-type");
23
+ const step_type_1 = require("../step/step-type");
24
+ const engine_1 = require("../../engine");
25
+ let ScenarioQuery = class ScenarioQuery {
26
+ async scenario(id, context) {
27
+ const { domain } = context.state;
28
+ return await (0, typeorm_1.getRepository)(scenario_type_1.Scenario).findOne({
29
+ where: { domain, id }
30
+ });
31
+ }
32
+ async scenarios(params, context) {
33
+ const { domain } = context.state;
34
+ const convertedParams = (0, shell_1.convertListParams)(params, domain.id);
35
+ const [items, total] = await (0, typeorm_1.getRepository)(scenario_type_1.Scenario).findAndCount(convertedParams);
36
+ return { items, total };
37
+ }
38
+ async domain(scenario) {
39
+ return await (0, typeorm_1.getRepository)(shell_1.Domain).findOne(scenario.domainId);
40
+ }
41
+ async updater(scenario) {
42
+ return await (0, typeorm_1.getRepository)(auth_base_1.User).findOne(scenario.updaterId);
43
+ }
44
+ async creator(scenario) {
45
+ return await (0, typeorm_1.getRepository)(auth_base_1.User).findOne(scenario.creatorId);
46
+ }
47
+ async steps(scenario, context) {
48
+ const { domain } = context.state;
49
+ return await (0, typeorm_1.getRepository)(step_type_1.Step).find({
50
+ where: { domain, scenario }
51
+ });
52
+ }
53
+ /* 아래 두개 FieldResolver는 type에는 정의하지 않았지만, 스키마에는 자동으로 추가되는 것으로 보인다. */
54
+ async state(scenario, context) {
55
+ var _a;
56
+ const { domain } = context.state;
57
+ var instance = engine_1.ScenarioEngine.getScenarioInstance(domain, scenario.name);
58
+ return instance && scenario_instance_type_1.ScenarioInstanceStatus[(_a = instance.context) === null || _a === void 0 ? void 0 : _a.state];
59
+ }
60
+ async instances(scenario, context) {
61
+ const { domain } = context.state;
62
+ return engine_1.ScenarioEngine.getScenarioInstances(domain, scenario.name);
63
+ }
64
+ };
65
+ __decorate([
66
+ (0, type_graphql_1.Query)(returns => scenario_type_1.Scenario, { description: 'To fetch a scenario' }),
67
+ __param(0, (0, type_graphql_1.Arg)('id')),
68
+ __param(1, (0, type_graphql_1.Ctx)()),
69
+ __metadata("design:type", Function),
70
+ __metadata("design:paramtypes", [String, Object]),
71
+ __metadata("design:returntype", Promise)
72
+ ], ScenarioQuery.prototype, "scenario", null);
73
+ __decorate([
74
+ (0, type_graphql_1.Query)(returns => scenario_type_1.ScenarioList, { description: 'To fetch multiple scenarios' }),
75
+ __param(0, (0, type_graphql_1.Args)()),
76
+ __param(1, (0, type_graphql_1.Ctx)()),
77
+ __metadata("design:type", Function),
78
+ __metadata("design:paramtypes", [typeof (_a = typeof shell_1.ListParam !== "undefined" && shell_1.ListParam) === "function" ? _a : Object, Object]),
79
+ __metadata("design:returntype", Promise)
80
+ ], ScenarioQuery.prototype, "scenarios", null);
81
+ __decorate([
82
+ (0, type_graphql_1.FieldResolver)(type => shell_1.Domain),
83
+ __param(0, (0, type_graphql_1.Root)()),
84
+ __metadata("design:type", Function),
85
+ __metadata("design:paramtypes", [scenario_type_1.Scenario]),
86
+ __metadata("design:returntype", Promise)
87
+ ], ScenarioQuery.prototype, "domain", null);
88
+ __decorate([
89
+ (0, type_graphql_1.FieldResolver)(type => auth_base_1.User),
90
+ __param(0, (0, type_graphql_1.Root)()),
91
+ __metadata("design:type", Function),
92
+ __metadata("design:paramtypes", [scenario_type_1.Scenario]),
93
+ __metadata("design:returntype", Promise)
94
+ ], ScenarioQuery.prototype, "updater", null);
95
+ __decorate([
96
+ (0, type_graphql_1.FieldResolver)(type => auth_base_1.User),
97
+ __param(0, (0, type_graphql_1.Root)()),
98
+ __metadata("design:type", Function),
99
+ __metadata("design:paramtypes", [scenario_type_1.Scenario]),
100
+ __metadata("design:returntype", Promise)
101
+ ], ScenarioQuery.prototype, "creator", null);
102
+ __decorate([
103
+ (0, type_graphql_1.FieldResolver)(type => [step_type_1.Step]),
104
+ __param(0, (0, type_graphql_1.Root)()),
105
+ __param(1, (0, type_graphql_1.Ctx)()),
106
+ __metadata("design:type", Function),
107
+ __metadata("design:paramtypes", [scenario_type_1.Scenario, Object]),
108
+ __metadata("design:returntype", Promise)
109
+ ], ScenarioQuery.prototype, "steps", null);
110
+ __decorate([
111
+ (0, type_graphql_1.FieldResolver)(type => String, { nullable: true }),
112
+ __param(0, (0, type_graphql_1.Root)()),
113
+ __param(1, (0, type_graphql_1.Ctx)()),
114
+ __metadata("design:type", Function),
115
+ __metadata("design:paramtypes", [scenario_type_1.Scenario, Object]),
116
+ __metadata("design:returntype", Promise)
117
+ ], ScenarioQuery.prototype, "state", null);
118
+ __decorate([
119
+ (0, type_graphql_1.FieldResolver)(type => [scenario_instance_type_1.ScenarioInstance], { nullable: true }),
120
+ __param(0, (0, type_graphql_1.Root)()),
121
+ __param(1, (0, type_graphql_1.Ctx)()),
122
+ __metadata("design:type", Function),
123
+ __metadata("design:paramtypes", [scenario_type_1.Scenario, Object]),
124
+ __metadata("design:returntype", Promise)
125
+ ], ScenarioQuery.prototype, "instances", null);
126
+ ScenarioQuery = __decorate([
127
+ (0, type_graphql_1.Resolver)(scenario_type_1.Scenario)
128
+ ], ScenarioQuery);
129
+ exports.ScenarioQuery = ScenarioQuery;
130
+ //# sourceMappingURL=scenario-query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scenario-query.js","sourceRoot":"","sources":["../../../server/service/scenario/scenario-query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,220 @@
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.ScenarioList = exports.ScenarioPatch = exports.NewScenario = exports.Scenario = void 0;
14
+ const type_graphql_1 = require("type-graphql");
15
+ const typeorm_1 = require("typeorm");
16
+ const auth_base_1 = require("@things-factory/auth-base");
17
+ const shell_1 = require("@things-factory/shell");
18
+ const engine_1 = require("../../engine");
19
+ const step_type_1 = require("../step/step-type");
20
+ let Scenario = class Scenario {
21
+ async start(instanceName, variables) {
22
+ try {
23
+ await engine_1.ScenarioEngine.load(instanceName || this.name, this, { variables });
24
+ }
25
+ catch (ex) { }
26
+ }
27
+ async stop(instanceName) {
28
+ try {
29
+ await engine_1.ScenarioEngine.unload(this.domain, instanceName || this.name);
30
+ }
31
+ finally {
32
+ }
33
+ }
34
+ };
35
+ __decorate([
36
+ (0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
37
+ (0, type_graphql_1.Field)(type => type_graphql_1.ID),
38
+ __metadata("design:type", String)
39
+ ], Scenario.prototype, "id", void 0);
40
+ __decorate([
41
+ (0, typeorm_1.ManyToOne)(type => shell_1.Domain),
42
+ (0, type_graphql_1.Field)({ nullable: true }),
43
+ __metadata("design:type", typeof (_a = typeof shell_1.Domain !== "undefined" && shell_1.Domain) === "function" ? _a : Object)
44
+ ], Scenario.prototype, "domain", void 0);
45
+ __decorate([
46
+ (0, typeorm_1.RelationId)((scenario) => scenario.domain),
47
+ __metadata("design:type", String)
48
+ ], Scenario.prototype, "domainId", void 0);
49
+ __decorate([
50
+ (0, typeorm_1.Column)(),
51
+ (0, typeorm_1.Index)({ fulltext: true }),
52
+ (0, type_graphql_1.Field)(),
53
+ __metadata("design:type", String)
54
+ ], Scenario.prototype, "name", void 0);
55
+ __decorate([
56
+ (0, typeorm_1.Column)({
57
+ nullable: true
58
+ }),
59
+ (0, typeorm_1.Index)({ fulltext: true }),
60
+ (0, type_graphql_1.Field)({ nullable: true }),
61
+ __metadata("design:type", String)
62
+ ], Scenario.prototype, "description", void 0);
63
+ __decorate([
64
+ (0, typeorm_1.Column)({
65
+ nullable: true
66
+ }),
67
+ (0, type_graphql_1.Field)({ nullable: true }),
68
+ __metadata("design:type", String)
69
+ ], Scenario.prototype, "type", void 0);
70
+ __decorate([
71
+ (0, typeorm_1.Column)({
72
+ nullable: true
73
+ }),
74
+ (0, type_graphql_1.Field)({ nullable: true }),
75
+ __metadata("design:type", Boolean)
76
+ ], Scenario.prototype, "active", void 0);
77
+ __decorate([
78
+ (0, typeorm_1.Column)({
79
+ nullable: true
80
+ }),
81
+ (0, type_graphql_1.Field)({ nullable: true }),
82
+ __metadata("design:type", String)
83
+ ], Scenario.prototype, "schedule", void 0);
84
+ __decorate([
85
+ (0, typeorm_1.Column)({
86
+ nullable: true
87
+ }),
88
+ (0, type_graphql_1.Field)({ nullable: true }),
89
+ __metadata("design:type", String)
90
+ ], Scenario.prototype, "timezone", void 0);
91
+ __decorate([
92
+ (0, typeorm_1.OneToMany)(type => step_type_1.Step, step => step.scenario),
93
+ (0, type_graphql_1.Field)(type => [step_type_1.Step], { nullable: true }),
94
+ __metadata("design:type", Array)
95
+ ], Scenario.prototype, "steps", void 0);
96
+ __decorate([
97
+ (0, typeorm_1.CreateDateColumn)(),
98
+ (0, type_graphql_1.Field)({ nullable: true }),
99
+ __metadata("design:type", Date)
100
+ ], Scenario.prototype, "createdAt", void 0);
101
+ __decorate([
102
+ (0, typeorm_1.UpdateDateColumn)(),
103
+ (0, type_graphql_1.Field)({ nullable: true }),
104
+ __metadata("design:type", Date)
105
+ ], Scenario.prototype, "updatedAt", void 0);
106
+ __decorate([
107
+ (0, typeorm_1.ManyToOne)(type => auth_base_1.User, {
108
+ nullable: true
109
+ }),
110
+ (0, type_graphql_1.Field)({ nullable: true }),
111
+ __metadata("design:type", typeof (_b = typeof auth_base_1.User !== "undefined" && auth_base_1.User) === "function" ? _b : Object)
112
+ ], Scenario.prototype, "creator", void 0);
113
+ __decorate([
114
+ (0, typeorm_1.RelationId)((scenario) => scenario.creator),
115
+ __metadata("design:type", String)
116
+ ], Scenario.prototype, "creatorId", void 0);
117
+ __decorate([
118
+ (0, typeorm_1.ManyToOne)(type => auth_base_1.User, {
119
+ nullable: true
120
+ }),
121
+ (0, type_graphql_1.Field)({ nullable: true }),
122
+ __metadata("design:type", typeof (_c = typeof auth_base_1.User !== "undefined" && auth_base_1.User) === "function" ? _c : Object)
123
+ ], Scenario.prototype, "updater", void 0);
124
+ __decorate([
125
+ (0, typeorm_1.RelationId)((scenario) => scenario.creator),
126
+ __metadata("design:type", String)
127
+ ], Scenario.prototype, "updaterId", void 0);
128
+ Scenario = __decorate([
129
+ (0, typeorm_1.Entity)(),
130
+ (0, typeorm_1.Index)('ix_scenario_0', (scenario) => [scenario.domain, scenario.name], { unique: true }),
131
+ (0, type_graphql_1.ObjectType)()
132
+ ], Scenario);
133
+ exports.Scenario = Scenario;
134
+ let NewScenario = class NewScenario {
135
+ };
136
+ __decorate([
137
+ (0, type_graphql_1.Field)(),
138
+ __metadata("design:type", String)
139
+ ], NewScenario.prototype, "name", void 0);
140
+ __decorate([
141
+ (0, type_graphql_1.Field)({ nullable: true }),
142
+ __metadata("design:type", String)
143
+ ], NewScenario.prototype, "description", void 0);
144
+ __decorate([
145
+ (0, type_graphql_1.Field)({ nullable: true }),
146
+ __metadata("design:type", String)
147
+ ], NewScenario.prototype, "type", void 0);
148
+ __decorate([
149
+ (0, type_graphql_1.Field)({ nullable: true }),
150
+ __metadata("design:type", String)
151
+ ], NewScenario.prototype, "schedule", void 0);
152
+ __decorate([
153
+ (0, type_graphql_1.Field)({ nullable: true }),
154
+ __metadata("design:type", String)
155
+ ], NewScenario.prototype, "timezone", void 0);
156
+ __decorate([
157
+ (0, type_graphql_1.Field)({ nullable: true }),
158
+ __metadata("design:type", Boolean)
159
+ ], NewScenario.prototype, "active", void 0);
160
+ NewScenario = __decorate([
161
+ (0, type_graphql_1.InputType)()
162
+ ], NewScenario);
163
+ exports.NewScenario = NewScenario;
164
+ let ScenarioPatch = class ScenarioPatch {
165
+ };
166
+ __decorate([
167
+ (0, type_graphql_1.Field)(type => type_graphql_1.ID, { nullable: true }),
168
+ __metadata("design:type", String)
169
+ ], ScenarioPatch.prototype, "id", void 0);
170
+ __decorate([
171
+ (0, type_graphql_1.Field)({ nullable: true }),
172
+ __metadata("design:type", String)
173
+ ], ScenarioPatch.prototype, "name", void 0);
174
+ __decorate([
175
+ (0, type_graphql_1.Field)({ nullable: true }),
176
+ __metadata("design:type", String)
177
+ ], ScenarioPatch.prototype, "description", void 0);
178
+ __decorate([
179
+ (0, type_graphql_1.Field)({ nullable: true }),
180
+ __metadata("design:type", String)
181
+ ], ScenarioPatch.prototype, "type", void 0);
182
+ __decorate([
183
+ (0, type_graphql_1.Field)({ nullable: true }),
184
+ __metadata("design:type", String)
185
+ ], ScenarioPatch.prototype, "schedule", void 0);
186
+ __decorate([
187
+ (0, type_graphql_1.Field)({ nullable: true }),
188
+ __metadata("design:type", String)
189
+ ], ScenarioPatch.prototype, "timezone", void 0);
190
+ __decorate([
191
+ (0, type_graphql_1.Field)({ nullable: true }),
192
+ __metadata("design:type", Boolean)
193
+ ], ScenarioPatch.prototype, "active", void 0);
194
+ __decorate([
195
+ (0, type_graphql_1.Field)(type => [step_type_1.StepPatch], { nullable: true }),
196
+ __metadata("design:type", Array)
197
+ ], ScenarioPatch.prototype, "steps", void 0);
198
+ __decorate([
199
+ (0, type_graphql_1.Field)({ nullable: true }),
200
+ __metadata("design:type", String)
201
+ ], ScenarioPatch.prototype, "cuFlag", void 0);
202
+ ScenarioPatch = __decorate([
203
+ (0, type_graphql_1.InputType)()
204
+ ], ScenarioPatch);
205
+ exports.ScenarioPatch = ScenarioPatch;
206
+ let ScenarioList = class ScenarioList {
207
+ };
208
+ __decorate([
209
+ (0, type_graphql_1.Field)(type => [Scenario]),
210
+ __metadata("design:type", Array)
211
+ ], ScenarioList.prototype, "items", void 0);
212
+ __decorate([
213
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int),
214
+ __metadata("design:type", Number)
215
+ ], ScenarioList.prototype, "total", void 0);
216
+ ScenarioList = __decorate([
217
+ (0, type_graphql_1.ObjectType)()
218
+ ], ScenarioList);
219
+ exports.ScenarioList = ScenarioList;
220
+ //# sourceMappingURL=scenario-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scenario-type.js","sourceRoot":"","sources":["../../../server/service/scenario/scenario-type.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
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
+ (0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
20
+ __metadata("design:type", String)
21
+ ], ScenarioFlow.prototype, "id", void 0);
22
+ __decorate([
23
+ (0, 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
+ (0, typeorm_1.Column)({
28
+ nullable: true
29
+ }),
30
+ __metadata("design:type", String)
31
+ ], ScenarioFlow.prototype, "flow", void 0);
32
+ ScenarioFlow = __decorate([
33
+ (0, typeorm_1.Entity)(),
34
+ (0, typeorm_1.Index)('ix_scenario_flows_0', (scenarioFlow) => [scenarioFlow.domain], { unique: true })
35
+ ], ScenarioFlow);
36
+ exports.ScenarioFlow = ScenarioFlow;
37
+ //# sourceMappingURL=scenario-flow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scenario-flow.js","sourceRoot":"","sources":["../../../server/service/scenario-flow/scenario-flow.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,iDAA8C;AAC9C,qCAAkF;AAI3E,IAAM,YAAY,GAAlB,MAAM,YAAY;CAWxB,CAAA;AAVC;IAAC,IAAA,gCAAsB,EAAC,MAAM,CAAC;;wCACrB;AAEV;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;kDAClB,cAAM,oBAAN,cAAM;4CAAA;AAEd;IAAC,IAAA,gBAAM,EAAC;QACN,QAAQ,EAAE,IAAI;KACf,CAAC;;0CACU;AAVD,YAAY;IAFxB,IAAA,gBAAM,GAAE;IACR,IAAA,eAAK,EAAC,qBAAqB,EAAE,CAAC,YAA0B,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;GACzF,YAAY,CAWxB;AAXY,oCAAY"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolvers = exports.entities = void 0;
4
+ const scenario_instance_query_1 = require("./scenario-instance-query");
5
+ const scenario_instance_mutation_1 = require("./scenario-instance-mutation");
6
+ const scenario_instance_subscription_1 = require("./scenario-instance-subscription");
7
+ exports.entities = [];
8
+ exports.resolvers = [scenario_instance_query_1.ScenarioInstanceQuery, scenario_instance_mutation_1.ScenarioInstanceMutation, scenario_instance_subscription_1.ScenarioInstanceSubscription];
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/service/scenario-instance/index.ts"],"names":[],"mappings":";;;AAAA,uEAAiE;AACjE,6EAAuE;AACvE,qFAA+E;AAElE,QAAA,QAAQ,GAAG,EAAE,CAAA;AACb,QAAA,SAAS,GAAG,CAAC,+CAAqB,EAAE,qDAAwB,EAAE,6DAA4B,CAAC,CAAA"}
@@ -0,0 +1,115 @@
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 __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var _a, _b;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.ScenarioInstanceMutation = void 0;
17
+ const type_graphql_1 = require("type-graphql");
18
+ const typeorm_1 = require("typeorm");
19
+ const shell_1 = require("@things-factory/shell");
20
+ const scenario_type_1 = require("../scenario/scenario-type");
21
+ const scenario_instance_type_1 = require("./scenario-instance-type");
22
+ const engine_1 = require("../../engine");
23
+ const debug = require('debug')('things-factory:integration-base:scenario-instance-mutation');
24
+ let ScenarioInstanceMutation = class ScenarioInstanceMutation {
25
+ async runScenario(instanceName, scenarioName, variables, context) {
26
+ const { domain } = context.state;
27
+ debug('runScenario', scenarioName, instanceName, variables);
28
+ var repository = (0, typeorm_1.getRepository)(scenario_type_1.Scenario);
29
+ var scenario = await repository.findOne({
30
+ where: { domain, name: scenarioName },
31
+ relations: ['domain', 'steps', 'creator', 'updater']
32
+ });
33
+ if (!scenario) {
34
+ throw new Error(context.t('error.scenario not found', {
35
+ scenario: scenarioName
36
+ }));
37
+ }
38
+ /* 시나리오 인스턴스를 생성한다. */
39
+ instanceName = instanceName || scenarioName + '-' + String(Date.now());
40
+ var instance = new scenario_instance_type_1.ScenarioInstance(instanceName, scenario, {
41
+ variables,
42
+ client: shell_1.GraphqlLocalClient.client
43
+ });
44
+ await instance.run();
45
+ return instance;
46
+ }
47
+ async startScenario(instanceName, scenarioName, variables, context) {
48
+ const { domain } = context.state;
49
+ debug('startScenario', instanceName, scenarioName, variables);
50
+ var repository = (0, typeorm_1.getRepository)(scenario_type_1.Scenario);
51
+ var scenario = await repository.findOne({
52
+ where: { domain, name: scenarioName },
53
+ relations: ['domain', 'steps', 'creator', 'updater']
54
+ });
55
+ if (!scenario) {
56
+ throw new Error(context.t('error.scenario not found', {
57
+ scenario: scenarioName
58
+ }));
59
+ }
60
+ instanceName = instanceName || scenarioName;
61
+ return await engine_1.ScenarioEngine.load(instanceName, scenario, { variables });
62
+ }
63
+ async stopScenario(instanceName, context) {
64
+ const { domain } = context.state;
65
+ debug('stopScenario', instanceName);
66
+ var scenarioInstance = engine_1.ScenarioEngine.getScenarioInstance(domain, instanceName);
67
+ if (!scenarioInstance) {
68
+ debug('stopScenario', `ScenarioInstance(${instanceName}) Not Found.`);
69
+ return {
70
+ instanceName,
71
+ scenarioName: '',
72
+ state: scenario_instance_type_1.ScenarioInstanceStatus.UNLOADED,
73
+ timestamp: new Date()
74
+ };
75
+ }
76
+ const { scenarioName } = scenarioInstance;
77
+ await engine_1.ScenarioEngine.unload(domain, instanceName);
78
+ return scenarioInstance;
79
+ }
80
+ };
81
+ __decorate([
82
+ (0, type_graphql_1.Mutation)(returns => scenario_instance_type_1.ScenarioInstance, {
83
+ description: 'To run new scenario instance and will return the result after the scenario stop.'
84
+ }),
85
+ __param(0, (0, type_graphql_1.Arg)('instanceName', { nullable: true })),
86
+ __param(1, (0, type_graphql_1.Arg)('scenarioName')),
87
+ __param(2, (0, type_graphql_1.Arg)('variables', type => shell_1.ScalarObject, { nullable: true })),
88
+ __param(3, (0, type_graphql_1.Ctx)()),
89
+ __metadata("design:type", Function),
90
+ __metadata("design:paramtypes", [String, String, typeof (_a = typeof shell_1.ScalarObject !== "undefined" && shell_1.ScalarObject) === "function" ? _a : Object, Object]),
91
+ __metadata("design:returntype", Promise)
92
+ ], ScenarioInstanceMutation.prototype, "runScenario", null);
93
+ __decorate([
94
+ (0, type_graphql_1.Mutation)(returns => scenario_instance_type_1.ScenarioInstance, { description: 'To start new scenario instance' }),
95
+ __param(0, (0, type_graphql_1.Arg)('instanceName', { nullable: true })),
96
+ __param(1, (0, type_graphql_1.Arg)('scenarioName')),
97
+ __param(2, (0, type_graphql_1.Arg)('variables', type => shell_1.ScalarObject, { nullable: true })),
98
+ __param(3, (0, type_graphql_1.Ctx)()),
99
+ __metadata("design:type", Function),
100
+ __metadata("design:paramtypes", [String, String, typeof (_b = typeof shell_1.ScalarObject !== "undefined" && shell_1.ScalarObject) === "function" ? _b : Object, Object]),
101
+ __metadata("design:returntype", Promise)
102
+ ], ScenarioInstanceMutation.prototype, "startScenario", null);
103
+ __decorate([
104
+ (0, type_graphql_1.Mutation)(returns => scenario_instance_type_1.ScenarioInstance, { description: 'To start new scenario instance' }),
105
+ __param(0, (0, type_graphql_1.Arg)('instanceName', { nullable: true })),
106
+ __param(1, (0, type_graphql_1.Ctx)()),
107
+ __metadata("design:type", Function),
108
+ __metadata("design:paramtypes", [String, Object]),
109
+ __metadata("design:returntype", Promise)
110
+ ], ScenarioInstanceMutation.prototype, "stopScenario", null);
111
+ ScenarioInstanceMutation = __decorate([
112
+ (0, type_graphql_1.Resolver)(scenario_instance_type_1.ScenarioInstance)
113
+ ], ScenarioInstanceMutation);
114
+ exports.ScenarioInstanceMutation = ScenarioInstanceMutation;
115
+ //# sourceMappingURL=scenario-instance-mutation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scenario-instance-mutation.js","sourceRoot":"","sources":["../../../server/service/scenario-instance/scenario-instance-mutation.ts"],"names":[],"mappings":"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"}