@things-factory/integration-base 7.0.0-alpha.9 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (351) hide show
  1. package/dist-server/controllers/index.d.ts +1 -0
  2. package/dist-server/controllers/scenario-controller.d.ts +4 -0
  3. package/dist-server/controllers/scenario-controller.js +23 -7
  4. package/dist-server/controllers/scenario-controller.js.map +1 -1
  5. package/dist-server/engine/analyzer/analyze-integration.d.ts +5 -0
  6. package/dist-server/engine/analyzer/analyze-integration.js +1 -2
  7. package/dist-server/engine/analyzer/analyze-integration.js.map +1 -1
  8. package/dist-server/engine/connection-manager.d.ts +35 -0
  9. package/dist-server/engine/connection-manager.js +50 -13
  10. package/dist-server/engine/connection-manager.js.map +1 -1
  11. package/dist-server/engine/connector/echo-back-connector.d.ts +9 -0
  12. package/dist-server/engine/connector/echo-back-connector.js +1 -1
  13. package/dist-server/engine/connector/echo-back-connector.js.map +1 -1
  14. package/dist-server/engine/connector/echo-back-server.d.ts +8 -0
  15. package/dist-server/engine/connector/echo-back-server.js.map +1 -1
  16. package/dist-server/engine/connector/graphql-connector.d.ts +19 -0
  17. package/dist-server/engine/connector/graphql-connector.js +9 -9
  18. package/dist-server/engine/connector/graphql-connector.js.map +1 -1
  19. package/dist-server/engine/connector/http-connector.d.ts +25 -0
  20. package/dist-server/engine/connector/http-connector.js.map +1 -1
  21. package/dist-server/engine/connector/index.d.ts +12 -0
  22. package/dist-server/engine/connector/mqtt-connector.d.ts +14 -0
  23. package/dist-server/engine/connector/mqtt-connector.js +1 -1
  24. package/dist-server/engine/connector/mqtt-connector.js.map +1 -1
  25. package/dist-server/engine/connector/mssql-connector.d.ts +30 -0
  26. package/dist-server/engine/connector/mssql-connector.js +21 -5
  27. package/dist-server/engine/connector/mssql-connector.js.map +1 -1
  28. package/dist-server/engine/connector/mysql-connector.d.ts +13 -0
  29. package/dist-server/engine/connector/mysql-connector.js.map +1 -1
  30. package/dist-server/engine/connector/operato-connector.d.ts +27 -0
  31. package/dist-server/engine/connector/operato-connector.js +21 -24
  32. package/dist-server/engine/connector/operato-connector.js.map +1 -1
  33. package/dist-server/engine/connector/oracle-connector.d.ts +29 -0
  34. package/dist-server/engine/connector/oracle-connector.js +1 -1
  35. package/dist-server/engine/connector/oracle-connector.js.map +1 -1
  36. package/dist-server/engine/connector/postgresql-connector.d.ts +14 -0
  37. package/dist-server/engine/connector/postgresql-connector.js +2 -2
  38. package/dist-server/engine/connector/postgresql-connector.js.map +1 -1
  39. package/dist-server/engine/connector/proxy-connector.d.ts +15 -0
  40. package/dist-server/engine/connector/proxy-connector.js +44 -0
  41. package/dist-server/engine/connector/proxy-connector.js.map +1 -0
  42. package/dist-server/engine/connector/socket-server.d.ts +9 -0
  43. package/dist-server/engine/connector/socket-server.js +1 -1
  44. package/dist-server/engine/connector/socket-server.js.map +1 -1
  45. package/dist-server/engine/connector/sqlite-connector.d.ts +10 -0
  46. package/dist-server/engine/connector/sqlite-connector.js +2 -2
  47. package/dist-server/engine/connector/sqlite-connector.js.map +1 -1
  48. package/dist-server/engine/edge-client.d.ts +18 -0
  49. package/dist-server/engine/edge-client.js +37 -0
  50. package/dist-server/engine/edge-client.js.map +1 -0
  51. package/dist-server/engine/index.d.ts +8 -0
  52. package/dist-server/engine/index.js +1 -0
  53. package/dist-server/engine/index.js.map +1 -1
  54. package/dist-server/engine/pending-queue.d.ts +24 -0
  55. package/dist-server/engine/pending-queue.js.map +1 -1
  56. package/dist-server/engine/scenario-engine.d.ts +11 -0
  57. package/dist-server/engine/scenario-engine.js.map +1 -1
  58. package/dist-server/engine/task/book-up-scenario.d.ts +1 -0
  59. package/dist-server/engine/task/csv-readline.d.ts +1 -0
  60. package/dist-server/engine/task/csv-readline.js.map +1 -1
  61. package/dist-server/engine/task/data-accessor.d.ts +1 -0
  62. package/dist-server/engine/task/data-mapper.d.ts +1 -0
  63. package/dist-server/engine/task/data-mapper.js.map +1 -1
  64. package/dist-server/engine/task/database-query.d.ts +1 -0
  65. package/dist-server/engine/task/database-query.js +21 -12
  66. package/dist-server/engine/task/database-query.js.map +1 -1
  67. package/dist-server/engine/task/echo-receive.d.ts +1 -0
  68. package/dist-server/engine/task/echo-send.d.ts +1 -0
  69. package/dist-server/engine/task/echo-send.js.map +1 -1
  70. package/dist-server/engine/task/empty-check.d.ts +1 -0
  71. package/dist-server/engine/task/empty-check.js.map +1 -1
  72. package/dist-server/engine/task/end.d.ts +1 -0
  73. package/dist-server/engine/task/floating-point.d.ts +1 -0
  74. package/dist-server/engine/task/floating-point.js.map +1 -1
  75. package/dist-server/engine/task/goto.d.ts +1 -0
  76. package/dist-server/engine/task/graphql-mutate.d.ts +1 -0
  77. package/dist-server/engine/task/graphql-mutate.js +23 -12
  78. package/dist-server/engine/task/graphql-mutate.js.map +1 -1
  79. package/dist-server/engine/task/graphql-query.d.ts +1 -0
  80. package/dist-server/engine/task/graphql-query.js +23 -12
  81. package/dist-server/engine/task/graphql-query.js.map +1 -1
  82. package/dist-server/engine/task/headless-post.d.ts +1 -0
  83. package/dist-server/engine/task/headless-post.js.map +1 -1
  84. package/dist-server/engine/task/headless-scrap.d.ts +1 -0
  85. package/dist-server/engine/task/headless-scrap.js.map +1 -1
  86. package/dist-server/engine/task/http-get.d.ts +1 -0
  87. package/dist-server/engine/task/http-get.js +28 -12
  88. package/dist-server/engine/task/http-get.js.map +1 -1
  89. package/dist-server/engine/task/http-post.d.ts +1 -0
  90. package/dist-server/engine/task/http-post.js +22 -11
  91. package/dist-server/engine/task/http-post.js.map +1 -1
  92. package/dist-server/engine/task/index.d.ts +43 -0
  93. package/dist-server/engine/task/jsonata.d.ts +1 -0
  94. package/dist-server/engine/task/jsonata.js +5 -1
  95. package/dist-server/engine/task/jsonata.js.map +1 -1
  96. package/dist-server/engine/task/local-graphql-mutate.d.ts +1 -0
  97. package/dist-server/engine/task/local-graphql-mutate.js +23 -11
  98. package/dist-server/engine/task/local-graphql-mutate.js.map +1 -1
  99. package/dist-server/engine/task/local-graphql-query.d.ts +1 -0
  100. package/dist-server/engine/task/local-graphql-query.js +23 -11
  101. package/dist-server/engine/task/local-graphql-query.js.map +1 -1
  102. package/dist-server/engine/task/log.d.ts +1 -0
  103. package/dist-server/engine/task/log.js +15 -11
  104. package/dist-server/engine/task/log.js.map +1 -1
  105. package/dist-server/engine/task/mqtt-publish.d.ts +1 -0
  106. package/dist-server/engine/task/mqtt-publish.js.map +1 -1
  107. package/dist-server/engine/task/mqtt-subscribe.d.ts +1 -0
  108. package/dist-server/engine/task/mqtt-subscribe.js.map +1 -1
  109. package/dist-server/engine/task/oracle-procedure.d.ts +1 -0
  110. package/dist-server/engine/task/oracle-procedure.js +19 -13
  111. package/dist-server/engine/task/oracle-procedure.js.map +1 -1
  112. package/dist-server/engine/task/pick-pending-scenario.d.ts +1 -0
  113. package/dist-server/engine/task/pick-pending-scenario.js.map +1 -1
  114. package/dist-server/engine/task/publish.d.ts +1 -0
  115. package/dist-server/engine/task/publish.js.map +1 -1
  116. package/dist-server/engine/task/random.d.ts +1 -0
  117. package/dist-server/engine/task/reset-pending-queue.d.ts +1 -0
  118. package/dist-server/engine/task/script.d.ts +1 -0
  119. package/dist-server/engine/task/script.js +35 -18
  120. package/dist-server/engine/task/script.js.map +1 -1
  121. package/dist-server/engine/task/set-domain.d.ts +1 -0
  122. package/dist-server/engine/task/set-domain.js.map +1 -1
  123. package/dist-server/engine/task/sleep.d.ts +1 -0
  124. package/dist-server/engine/task/sleep.js.map +1 -1
  125. package/dist-server/engine/task/socket-listener.d.ts +1 -0
  126. package/dist-server/engine/task/socket-listener.js.map +1 -1
  127. package/dist-server/engine/task/state-read.d.ts +1 -0
  128. package/dist-server/engine/task/state-read.js.map +1 -1
  129. package/dist-server/engine/task/state-write.d.ts +1 -0
  130. package/dist-server/engine/task/state-write.js.map +1 -1
  131. package/dist-server/engine/task/stop-scenario.d.ts +1 -0
  132. package/dist-server/engine/task/sub-scenario.d.ts +1 -0
  133. package/dist-server/engine/task/switch-goto.d.ts +1 -0
  134. package/dist-server/engine/task/switch-range-goto.d.ts +1 -0
  135. package/dist-server/engine/task/switch-range-goto.js.map +1 -1
  136. package/dist-server/engine/task/switch-range-scenario.d.ts +1 -0
  137. package/dist-server/engine/task/switch-range-scenario.js.map +1 -1
  138. package/dist-server/engine/task/switch-range-set.d.ts +1 -0
  139. package/dist-server/engine/task/switch-range-set.js.map +1 -1
  140. package/dist-server/engine/task/switch-scenario.d.ts +1 -0
  141. package/dist-server/engine/task/switch-set.d.ts +1 -0
  142. package/dist-server/engine/task/throw.d.ts +1 -0
  143. package/dist-server/engine/task/utils/headless-pool-for-scenario.d.ts +1 -0
  144. package/dist-server/engine/task/utils/headless-pool-for-scenario.js +1 -2
  145. package/dist-server/engine/task/utils/headless-pool-for-scenario.js.map +1 -1
  146. package/dist-server/engine/task/utils/substitute.d.ts +1 -0
  147. package/dist-server/engine/task/utils/substitute.js +1 -2
  148. package/dist-server/engine/task/utils/substitute.js.map +1 -1
  149. package/dist-server/engine/task/variables.d.ts +1 -0
  150. package/dist-server/engine/task-registry.d.ts +12 -0
  151. package/dist-server/engine/types.d.ts +94 -0
  152. package/dist-server/engine/types.js.map +1 -1
  153. package/dist-server/index.d.ts +6 -0
  154. package/dist-server/index.js +1 -2
  155. package/dist-server/index.js.map +1 -1
  156. package/dist-server/migrations/index.d.ts +1 -0
  157. package/dist-server/restful/index.d.ts +1 -0
  158. package/dist-server/restful/unstable/index.d.ts +7 -0
  159. package/dist-server/restful/unstable/run-scenario.d.ts +1 -0
  160. package/dist-server/restful/unstable/run-scenario.js +0 -1
  161. package/dist-server/restful/unstable/run-scenario.js.map +1 -1
  162. package/dist-server/restful/unstable/scenario-instance.d.ts +1 -0
  163. package/dist-server/restful/unstable/scenario-instances.d.ts +1 -0
  164. package/dist-server/restful/unstable/scenario.d.ts +1 -0
  165. package/dist-server/restful/unstable/scenarios.d.ts +1 -0
  166. package/dist-server/restful/unstable/start-scenario.d.ts +1 -0
  167. package/dist-server/restful/unstable/stop-scenario.d.ts +1 -0
  168. package/dist-server/routers/scenario-schedule-callback-router.d.ts +1 -0
  169. package/dist-server/routers/scenario-schedule-callback-router.js +2 -3
  170. package/dist-server/routers/scenario-schedule-callback-router.js.map +1 -1
  171. package/dist-server/routers/scenario-view-router.d.ts +1 -0
  172. package/dist-server/routers/scenario-view-router.js.map +1 -1
  173. package/dist-server/routes.d.ts +1 -0
  174. package/dist-server/routes.js.map +1 -1
  175. package/dist-server/service/analysis/analysis-query.d.ts +3 -0
  176. package/dist-server/service/analysis/analysis-query.js +2 -2
  177. package/dist-server/service/analysis/analysis-query.js.map +1 -1
  178. package/dist-server/service/analysis/index.d.ts +2 -0
  179. package/dist-server/service/connection/connection-mutation.d.ts +30 -0
  180. package/dist-server/service/connection/connection-mutation.js +6 -10
  181. package/dist-server/service/connection/connection-mutation.js.map +1 -1
  182. package/dist-server/service/connection/connection-query.d.ts +12 -0
  183. package/dist-server/service/connection/connection-query.js +18 -11
  184. package/dist-server/service/connection/connection-query.js.map +1 -1
  185. package/dist-server/service/connection/connection-subscription.d.ts +10 -0
  186. package/dist-server/service/connection/connection-subscription.js +3 -3
  187. package/dist-server/service/connection/connection-subscription.js.map +1 -1
  188. package/dist-server/service/connection/connection-type.d.ts +133 -0
  189. package/dist-server/service/connection/connection-type.js +45 -21
  190. package/dist-server/service/connection/connection-type.js.map +1 -1
  191. package/dist-server/service/connection/index.d.ts +6 -0
  192. package/dist-server/service/connector/connector-query.d.ts +6 -0
  193. package/dist-server/service/connector/connector-query.js +2 -2
  194. package/dist-server/service/connector/connector-query.js.map +1 -1
  195. package/dist-server/service/connector/connector-type.d.ts +12 -0
  196. package/dist-server/service/connector/connector-type.js +4 -4
  197. package/dist-server/service/connector/connector-type.js.map +1 -1
  198. package/dist-server/service/connector/index.d.ts +3 -0
  199. package/dist-server/service/index.d.ts +17 -0
  200. package/dist-server/service/payload-log/index.d.ts +5 -0
  201. package/dist-server/service/payload-log/payload-log-mutation.d.ts +10 -0
  202. package/dist-server/service/payload-log/payload-log-mutation.js +5 -5
  203. package/dist-server/service/payload-log/payload-log-mutation.js.map +1 -1
  204. package/dist-server/service/payload-log/payload-log-query.d.ts +11 -0
  205. package/dist-server/service/payload-log/payload-log-query.js +3 -3
  206. package/dist-server/service/payload-log/payload-log-query.js.map +1 -1
  207. package/dist-server/service/payload-log/payload-log-type.d.ts +15 -0
  208. package/dist-server/service/payload-log/payload-log-type.js +6 -6
  209. package/dist-server/service/payload-log/payload-log-type.js.map +1 -1
  210. package/dist-server/service/payload-log/payload-log.d.ts +23 -0
  211. package/dist-server/service/payload-log/payload-log.js +6 -6
  212. package/dist-server/service/payload-log/payload-log.js.map +1 -1
  213. package/dist-server/service/property-spec.d.ts +12 -0
  214. package/dist-server/service/property-spec.js +6 -2
  215. package/dist-server/service/property-spec.js.map +1 -1
  216. package/dist-server/service/scenario/index.d.ts +5 -0
  217. package/dist-server/service/scenario/scenario-mutation.d.ts +13 -0
  218. package/dist-server/service/scenario/scenario-mutation.js +3 -3
  219. package/dist-server/service/scenario/scenario-mutation.js.map +1 -1
  220. package/dist-server/service/scenario/scenario-query.d.ts +18 -0
  221. package/dist-server/service/scenario/scenario-query.js +3 -3
  222. package/dist-server/service/scenario/scenario-query.js.map +1 -1
  223. package/dist-server/service/scenario/scenario-type.d.ts +30 -0
  224. package/dist-server/service/scenario/scenario-type.js +14 -6
  225. package/dist-server/service/scenario/scenario-type.js.map +1 -1
  226. package/dist-server/service/scenario/scenario.d.ts +36 -0
  227. package/dist-server/service/scenario/scenario.js +18 -9
  228. package/dist-server/service/scenario/scenario.js.map +1 -1
  229. package/dist-server/service/scenario-flow/scenario-flow.d.ts +6 -0
  230. package/dist-server/service/scenario-flow/scenario-flow.js +2 -2
  231. package/dist-server/service/scenario-flow/scenario-flow.js.map +1 -1
  232. package/dist-server/service/scenario-instance/index.d.ts +5 -0
  233. package/dist-server/service/scenario-instance/scenario-instance-mutation.d.ts +6 -0
  234. package/dist-server/service/scenario-instance/scenario-instance-mutation.js +3 -3
  235. package/dist-server/service/scenario-instance/scenario-instance-mutation.js.map +1 -1
  236. package/dist-server/service/scenario-instance/scenario-instance-query.d.ts +6 -0
  237. package/dist-server/service/scenario-instance/scenario-instance-query.js +3 -67
  238. package/dist-server/service/scenario-instance/scenario-instance-query.js.map +1 -1
  239. package/dist-server/service/scenario-instance/scenario-instance-subscription.d.ts +10 -0
  240. package/dist-server/service/scenario-instance/scenario-instance-subscription.js +2 -2
  241. package/dist-server/service/scenario-instance/scenario-instance-subscription.js.map +1 -1
  242. package/dist-server/service/scenario-instance/scenario-instance-type.d.ts +102 -0
  243. package/dist-server/service/scenario-instance/scenario-instance-type.js +127 -33
  244. package/dist-server/service/scenario-instance/scenario-instance-type.js.map +1 -1
  245. package/dist-server/service/scenario-queue/index.d.ts +3 -0
  246. package/dist-server/service/scenario-queue/scenario-queue-subscription.d.ts +6 -0
  247. package/dist-server/service/scenario-queue/scenario-queue-subscription.js +2 -2
  248. package/dist-server/service/scenario-queue/scenario-queue-subscription.js.map +1 -1
  249. package/dist-server/service/scenario-queue/scenario-queue-type.d.ts +11 -0
  250. package/dist-server/service/scenario-queue/scenario-queue-type.js +4 -4
  251. package/dist-server/service/scenario-queue/scenario-queue-type.js.map +1 -1
  252. package/dist-server/service/state-register/index.d.ts +6 -0
  253. package/dist-server/service/state-register/state-register-mutation.d.ts +11 -0
  254. package/dist-server/service/state-register/state-register-mutation.js +2 -2
  255. package/dist-server/service/state-register/state-register-mutation.js.map +1 -1
  256. package/dist-server/service/state-register/state-register-query.d.ts +14 -0
  257. package/dist-server/service/state-register/state-register-query.js +3 -3
  258. package/dist-server/service/state-register/state-register-query.js.map +1 -1
  259. package/dist-server/service/state-register/state-register-type.d.ts +23 -0
  260. package/dist-server/service/state-register/state-register-type.js +6 -6
  261. package/dist-server/service/state-register/state-register-type.js.map +1 -1
  262. package/dist-server/service/state-register/state-register.d.ts +22 -0
  263. package/dist-server/service/state-register/state-register.js +3 -3
  264. package/dist-server/service/state-register/state-register.js.map +1 -1
  265. package/dist-server/service/step/index.d.ts +5 -0
  266. package/dist-server/service/step/step-mutation.d.ts +5 -0
  267. package/dist-server/service/step/step-mutation.js +2 -2
  268. package/dist-server/service/step/step-mutation.js.map +1 -1
  269. package/dist-server/service/step/step-query.d.ts +12 -0
  270. package/dist-server/service/step/step-query.js +3 -3
  271. package/dist-server/service/step/step-query.js.map +1 -1
  272. package/dist-server/service/step/step-type.d.ts +111 -0
  273. package/dist-server/service/step/step-type.js +25 -22
  274. package/dist-server/service/step/step-type.js.map +1 -1
  275. package/dist-server/service/task-type/index.d.ts +3 -0
  276. package/dist-server/service/task-type/task-type-query.d.ts +6 -0
  277. package/dist-server/service/task-type/task-type-query.js +2 -2
  278. package/dist-server/service/task-type/task-type-query.js.map +1 -1
  279. package/dist-server/service/task-type/task-type-type.d.ts +12 -0
  280. package/dist-server/service/task-type/task-type-type.js +4 -4
  281. package/dist-server/service/task-type/task-type-type.js.map +1 -1
  282. package/dist-server/tsconfig.tsbuildinfo +1 -1
  283. package/helps/integration/concept/script-internal-variables.ja.md +21 -1
  284. package/helps/integration/concept/script-internal-variables.ko.md +17 -0
  285. package/helps/integration/concept/script-internal-variables.md +18 -0
  286. package/helps/integration/concept/script-internal-variables.ms.md +19 -1
  287. package/helps/integration/concept/script-internal-variables.zh.md +18 -0
  288. package/helps/integration/connector/mssql-connector.ja.md +13 -9
  289. package/helps/integration/connector/mssql-connector.ko.md +13 -9
  290. package/helps/integration/connector/mssql-connector.md +13 -9
  291. package/helps/integration/connector/mssql-connector.ms.md +13 -9
  292. package/helps/integration/connector/mssql-connector.zh.md +13 -9
  293. package/helps/integration/connector/operato-connector.ja.md +0 -3
  294. package/helps/integration/task/script.ja.md +1 -1
  295. package/helps/integration/task/script.ko.md +1 -1
  296. package/helps/integration/task/script.md +1 -1
  297. package/helps/integration/task/script.ms.md +1 -1
  298. package/helps/integration/task/script.zh.md +1 -1
  299. package/package.json +12 -11
  300. package/server/controllers/scenario-controller.ts +60 -11
  301. package/server/engine/connection-manager.ts +63 -14
  302. package/server/engine/connector/echo-back-connector.ts +2 -1
  303. package/server/engine/connector/graphql-connector.ts +12 -9
  304. package/server/engine/connector/mqtt-connector.ts +2 -1
  305. package/server/engine/connector/mssql-connector.ts +21 -5
  306. package/server/engine/connector/operato-connector.ts +22 -26
  307. package/server/engine/connector/oracle-connector.ts +5 -8
  308. package/server/engine/connector/postgresql-connector.ts +3 -2
  309. package/server/engine/connector/proxy-connector.ts +53 -0
  310. package/server/engine/connector/socket-server.ts +1 -1
  311. package/server/engine/connector/sqlite-connector.ts +2 -5
  312. package/server/engine/edge-client.ts +45 -0
  313. package/server/engine/index.ts +2 -1
  314. package/server/engine/task/database-query.ts +21 -12
  315. package/server/engine/task/graphql-mutate.ts +23 -13
  316. package/server/engine/task/graphql-query.ts +22 -13
  317. package/server/engine/task/http-get.ts +26 -12
  318. package/server/engine/task/http-post.ts +22 -11
  319. package/server/engine/task/jsonata.ts +5 -1
  320. package/server/engine/task/local-graphql-mutate.ts +23 -13
  321. package/server/engine/task/local-graphql-query.ts +23 -11
  322. package/server/engine/task/log.ts +14 -11
  323. package/server/engine/task/oracle-procedure.ts +24 -18
  324. package/server/engine/task/script.ts +33 -18
  325. package/server/engine/types.ts +47 -48
  326. package/server/index.ts +1 -2
  327. package/server/restful/unstable/run-scenario.ts +0 -1
  328. package/server/routers/scenario-schedule-callback-router.ts +2 -2
  329. package/server/service/connection/connection-mutation.ts +9 -29
  330. package/server/service/connection/connection-query.ts +17 -7
  331. package/server/service/connection/connection-subscription.ts +1 -1
  332. package/server/service/connection/connection-type.ts +53 -32
  333. package/server/service/payload-log/payload-log-mutation.ts +1 -1
  334. package/server/service/payload-log/payload-log-query.ts +4 -1
  335. package/server/service/payload-log/payload-log.ts +5 -5
  336. package/server/service/property-spec.ts +3 -0
  337. package/server/service/scenario/scenario-query.ts +1 -1
  338. package/server/service/scenario/scenario-type.ts +6 -0
  339. package/server/service/scenario/scenario.ts +26 -7
  340. package/server/service/scenario-instance/scenario-instance-mutation.ts +7 -4
  341. package/server/service/scenario-instance/scenario-instance-query.ts +4 -30
  342. package/server/service/scenario-instance/scenario-instance-type.ts +105 -19
  343. package/server/service/state-register/state-register-query.ts +4 -1
  344. package/server/service/state-register/state-register.ts +1 -1
  345. package/server/service/step/step-query.ts +1 -1
  346. package/server/service/step/step-type.ts +81 -79
  347. package/translations/en.json +4 -1
  348. package/translations/ja.json +4 -1
  349. package/translations/ko.json +4 -1
  350. package/translations/ms.json +4 -1
  351. package/translations/zh.json +4 -1
@@ -21,29 +21,8 @@ let ScenarioInstanceQuery = class ScenarioInstanceQuery {
21
21
  total: items.length
22
22
  };
23
23
  }
24
- async root(scenarioInstance) {
25
- var _a;
26
- return (_a = scenarioInstance.context) === null || _a === void 0 ? void 0 : _a.root;
27
- }
28
- async state(scenarioInstance) {
29
- var _a;
30
- return (_a = scenarioInstance.context) === null || _a === void 0 ? void 0 : _a.state;
31
- }
32
- progress(scenarioInstance) {
33
- return scenarioInstance.calcProgress();
34
- }
35
- async variables(scenarioInstance) {
36
- var _a;
37
- return (_a = scenarioInstance.context) === null || _a === void 0 ? void 0 : _a.variables;
38
- }
39
- async data(scenarioInstance) {
40
- var _a;
41
- return (_a = scenarioInstance.context) === null || _a === void 0 ? void 0 : _a.data;
42
- }
43
- async timestamp(scenarioInstance) {
44
- return new Date();
45
- }
46
24
  };
25
+ exports.ScenarioInstanceQuery = ScenarioInstanceQuery;
47
26
  tslib_1.__decorate([
48
27
  (0, type_graphql_1.Query)(returns => scenario_instance_type_1.ScenarioInstance, { description: 'To fetch a scenario instance' }),
49
28
  tslib_1.__param(0, (0, type_graphql_1.Arg)('instanceName')),
@@ -54,56 +33,13 @@ tslib_1.__decorate([
54
33
  ], ScenarioInstanceQuery.prototype, "scenarioInstance", null);
55
34
  tslib_1.__decorate([
56
35
  (0, type_graphql_1.Query)(returns => scenario_instance_type_1.ScenarioInstanceList, { description: 'To fetch multiple scenario instances' }),
57
- tslib_1.__param(0, (0, type_graphql_1.Args)()),
36
+ tslib_1.__param(0, (0, type_graphql_1.Args)(type => shell_1.ListParam)),
58
37
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
59
38
  tslib_1.__metadata("design:type", Function),
60
39
  tslib_1.__metadata("design:paramtypes", [shell_1.ListParam, Object]),
61
40
  tslib_1.__metadata("design:returntype", Promise)
62
41
  ], ScenarioInstanceQuery.prototype, "scenarioInstances", null);
63
- tslib_1.__decorate([
64
- (0, type_graphql_1.FieldResolver)(type => scenario_instance_type_1.ScenarioInstance),
65
- tslib_1.__param(0, (0, type_graphql_1.Root)()),
66
- tslib_1.__metadata("design:type", Function),
67
- tslib_1.__metadata("design:paramtypes", [scenario_instance_type_1.ScenarioInstance]),
68
- tslib_1.__metadata("design:returntype", Promise)
69
- ], ScenarioInstanceQuery.prototype, "root", null);
70
- tslib_1.__decorate([
71
- (0, type_graphql_1.FieldResolver)(type => scenario_instance_type_1.ScenarioInstanceStatus),
72
- tslib_1.__param(0, (0, type_graphql_1.Root)()),
73
- tslib_1.__metadata("design:type", Function),
74
- tslib_1.__metadata("design:paramtypes", [scenario_instance_type_1.ScenarioInstance]),
75
- tslib_1.__metadata("design:returntype", Promise)
76
- ], ScenarioInstanceQuery.prototype, "state", null);
77
- tslib_1.__decorate([
78
- (0, type_graphql_1.FieldResolver)(type => scenario_instance_type_1.ScenarioInstanceProgress),
79
- tslib_1.__param(0, (0, type_graphql_1.Root)()),
80
- tslib_1.__metadata("design:type", Function),
81
- tslib_1.__metadata("design:paramtypes", [scenario_instance_type_1.ScenarioInstance]),
82
- tslib_1.__metadata("design:returntype", scenario_instance_type_1.ScenarioInstanceProgress)
83
- ], ScenarioInstanceQuery.prototype, "progress", null);
84
- tslib_1.__decorate([
85
- (0, type_graphql_1.FieldResolver)(type => shell_1.ScalarObject),
86
- tslib_1.__param(0, (0, type_graphql_1.Root)()),
87
- tslib_1.__metadata("design:type", Function),
88
- tslib_1.__metadata("design:paramtypes", [scenario_instance_type_1.ScenarioInstance]),
89
- tslib_1.__metadata("design:returntype", Promise)
90
- ], ScenarioInstanceQuery.prototype, "variables", null);
91
- tslib_1.__decorate([
92
- (0, type_graphql_1.FieldResolver)(type => shell_1.ScalarObject),
93
- tslib_1.__param(0, (0, type_graphql_1.Root)()),
94
- tslib_1.__metadata("design:type", Function),
95
- tslib_1.__metadata("design:paramtypes", [scenario_instance_type_1.ScenarioInstance]),
96
- tslib_1.__metadata("design:returntype", Promise)
97
- ], ScenarioInstanceQuery.prototype, "data", null);
98
- tslib_1.__decorate([
99
- (0, type_graphql_1.FieldResolver)(),
100
- tslib_1.__param(0, (0, type_graphql_1.Root)()),
101
- tslib_1.__metadata("design:type", Function),
102
- tslib_1.__metadata("design:paramtypes", [scenario_instance_type_1.ScenarioInstance]),
103
- tslib_1.__metadata("design:returntype", Promise)
104
- ], ScenarioInstanceQuery.prototype, "timestamp", null);
105
- ScenarioInstanceQuery = tslib_1.__decorate([
42
+ exports.ScenarioInstanceQuery = ScenarioInstanceQuery = tslib_1.__decorate([
106
43
  (0, type_graphql_1.Resolver)(scenario_instance_type_1.ScenarioInstance)
107
44
  ], ScenarioInstanceQuery);
108
- exports.ScenarioInstanceQuery = ScenarioInstanceQuery;
109
45
  //# sourceMappingURL=scenario-instance-query.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scenario-instance-query.js","sourceRoot":"","sources":["../../../server/service/scenario-instance/scenario-instance-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'\n\nimport { ListParam, ScalarObject } from '@things-factory/shell'\n\nimport { ScenarioEngine } from '../../engine'\nimport {\n ScenarioInstance,\n ScenarioInstanceList,\n ScenarioInstanceProgress,\n ScenarioInstanceStatus\n} from './scenario-instance-type'\n\n@Resolver(ScenarioInstance)\nexport class ScenarioInstanceQuery {\n @Query(returns => ScenarioInstance, { description: 'To fetch a scenario instance' })\n async scenarioInstance(\n @Arg('instanceName') instanceName: string,\n @Ctx() context: ResolverContext\n ): Promise<ScenarioInstance> {\n const { domain } = context.state\n\n return ScenarioEngine.getScenarioInstance(domain, instanceName)\n }\n\n @Query(returns => ScenarioInstanceList, { description: 'To fetch multiple scenario instances' })\n async scenarioInstances(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<ScenarioInstanceList> {\n const { domain } = context.state\n\n var scenarioInstances = ScenarioEngine.getScenarioInstances(domain)\n\n /* IMPLEMENT-ME 검색 기능.. */\n var items = scenarioInstances\n\n return {\n items,\n total: items.length\n }\n }\n\n @FieldResolver(type => ScenarioInstance)\n async root(@Root() scenarioInstance: ScenarioInstance): Promise<ScenarioInstance> {\n return scenarioInstance.context?.root as ScenarioInstance\n }\n\n @FieldResolver(type => ScenarioInstanceStatus)\n async state(@Root() scenarioInstance: ScenarioInstance): Promise<ScenarioInstanceStatus> {\n return scenarioInstance.context?.state\n }\n\n @FieldResolver(type => ScenarioInstanceProgress)\n progress(@Root() scenarioInstance: ScenarioInstance): ScenarioInstanceProgress {\n return scenarioInstance.calcProgress()\n }\n @FieldResolver(type => ScalarObject)\n async variables(@Root() scenarioInstance: ScenarioInstance): Promise<Object> {\n return scenarioInstance.context?.variables\n }\n\n @FieldResolver(type => ScalarObject)\n async data(@Root() scenarioInstance: ScenarioInstance): Promise<Object> {\n return scenarioInstance.context?.data\n }\n\n @FieldResolver()\n async timestamp(@Root() scenarioInstance: ScenarioInstance): Promise<Date> {\n return new Date()\n }\n}\n"]}
1
+ {"version":3,"file":"scenario-instance-query.js","sourceRoot":"","sources":["../../../server/service/scenario-instance/scenario-instance-query.ts"],"names":[],"mappings":";;;;AAAA,+CAAmF;AAEnF,iDAA+D;AAE/D,yCAA6C;AAC7C,qEAKiC;AAG1B,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAE1B,AAAN,KAAK,CAAC,gBAAgB,CACC,YAAoB,EAClC,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC,OAAO,uBAAc,CAAC,mBAAmB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IACjE,CAAC;IAGK,AAAN,KAAK,CAAC,iBAAiB,CACI,MAAiB,EACnC,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC,IAAI,iBAAiB,GAAG,uBAAc,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAA;QAEnE,0BAA0B;QAC1B,IAAI,KAAK,GAAG,iBAAiB,CAAA;QAE7B,OAAO;YACL,KAAK;YACL,KAAK,EAAE,KAAK,CAAC,MAAM;SACpB,CAAA;IACH,CAAC;CACF,CAAA;AA5BY,sDAAqB;AAE1B;IADL,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,yCAAgB,EAAE,EAAE,WAAW,EAAE,8BAA8B,EAAE,CAAC;IAEjF,mBAAA,IAAA,kBAAG,EAAC,cAAc,CAAC,CAAA;IACnB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;6DAKP;AAGK;IADL,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,6CAAoB,EAAE,EAAE,WAAW,EAAE,sCAAsC,EAAE,CAAC;IAE7F,mBAAA,IAAA,mBAAI,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAS,CAAC,CAAA;IACvB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CAD2B,iBAAS;;8DAc3C;gCA3BU,qBAAqB;IADjC,IAAA,uBAAQ,EAAC,yCAAgB,CAAC;GACd,qBAAqB,CA4BjC","sourcesContent":["import { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'\n\nimport { ListParam, ScalarObject } from '@things-factory/shell'\n\nimport { ScenarioEngine } from '../../engine'\nimport {\n ScenarioInstance,\n ScenarioInstanceList,\n ScenarioInstanceProgress,\n ScenarioInstanceStatus\n} from './scenario-instance-type'\n\n@Resolver(ScenarioInstance)\nexport class ScenarioInstanceQuery {\n @Query(returns => ScenarioInstance, { description: 'To fetch a scenario instance' })\n async scenarioInstance(\n @Arg('instanceName') instanceName: string,\n @Ctx() context: ResolverContext\n ): Promise<ScenarioInstance> {\n const { domain } = context.state\n\n return ScenarioEngine.getScenarioInstance(domain, instanceName)\n }\n\n @Query(returns => ScenarioInstanceList, { description: 'To fetch multiple scenario instances' })\n async scenarioInstances(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<ScenarioInstanceList> {\n const { domain } = context.state\n\n var scenarioInstances = ScenarioEngine.getScenarioInstances(domain)\n\n /* IMPLEMENT-ME 검색 기능.. */\n var items = scenarioInstances\n\n return {\n items,\n total: items.length\n }\n }\n}\n"]}
@@ -0,0 +1,10 @@
1
+ import { Log } from '@things-factory/shell';
2
+ import { ScenarioInstanceState } from './scenario-instance-type';
3
+ export declare class ScenarioInstanceSubscription {
4
+ scenarioInstanceLog(payload: {
5
+ scenarioInstanceLog: Log;
6
+ }, scenarioName: string, instanceName: string, level: string): Log;
7
+ scenarioInstanceState(payload: {
8
+ scenarioInstanceState: ScenarioInstanceState;
9
+ }, scenarioName: string, instanceName: string): ScenarioInstanceState;
10
+ }
@@ -16,6 +16,7 @@ let ScenarioInstanceSubscription = class ScenarioInstanceSubscription {
16
16
  return payload.scenarioInstanceState;
17
17
  }
18
18
  };
19
+ exports.ScenarioInstanceSubscription = ScenarioInstanceSubscription;
19
20
  tslib_1.__decorate([
20
21
  (0, type_graphql_1.Subscription)({
21
22
  subscribe: ({ args, context, info }) => {
@@ -102,8 +103,7 @@ tslib_1.__decorate([
102
103
  tslib_1.__metadata("design:paramtypes", [Object, String, String]),
103
104
  tslib_1.__metadata("design:returntype", scenario_instance_type_1.ScenarioInstanceState)
104
105
  ], ScenarioInstanceSubscription.prototype, "scenarioInstanceState", null);
105
- ScenarioInstanceSubscription = tslib_1.__decorate([
106
+ exports.ScenarioInstanceSubscription = ScenarioInstanceSubscription = tslib_1.__decorate([
106
107
  (0, type_graphql_1.Resolver)(scenario_instance_type_1.ScenarioInstance)
107
108
  ], ScenarioInstanceSubscription);
108
- exports.ScenarioInstanceSubscription = ScenarioInstanceSubscription;
109
109
  //# sourceMappingURL=scenario-instance-subscription.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scenario-instance-subscription.js","sourceRoot":"","sources":["../../../server/service/scenario-instance/scenario-instance-subscription.ts"],"names":[],"mappings":";;;;AAAA,+CAAgE;AAChE,+CAA2C;AAC3C,iDAAmD;AACnD,qEAAkF;AAClF,yCAA6C;AAE7C,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,2DAA2D,CAAC,CAAA;AAGpF,IAAM,4BAA4B,GAAlC,MAAM,4BAA4B;IA4CvC,mBAAmB,CACT,OAAqC,EACJ,YAAoB,EACpB,YAAoB,EAC3B,KAAa;QAE/C,OAAO,OAAO,CAAC,mBAAmB,CAAA;IACpC,CAAC;IAkDD,qBAAqB,CACX,OAAyD,EACxB,YAAoB,EACpB,YAAoB;QAE7D,OAAO,OAAO,CAAC,qBAAqB,CAAA;IACtC,CAAC;CACF,CAAA;AA3GC;IAAC,IAAA,2BAAY,EAAC;QACZ,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;;YACrC,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,CAAC,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAA,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;gBAClG,MAAM,IAAI,KAAK,CAAC,UAAU,SAAS,6BAA6B,IAAI,CAAC,KAAK,IAAI,CAAC,CAAA;aAChF;YAED,OAAO,IAAA,mBAAI,EACT,cAAM,CAAC,SAAS,CAAC,uBAAuB,CAAC,EACzC,IAAA,qBAAM,EAAC,CAAC,OAAqC,EAAE,EAAE;gBAC/C,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,MAAa,CAAA;gBAEnG,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,CAAC,CACH,CAAA;QACH,CAAC;KACF,CAAC;IAEC,mBAAA,IAAA,mBAAI,GAAE,CAAA;IACN,mBAAA,IAAA,kBAAG,EAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;IACvC,mBAAA,IAAA,kBAAG,EAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;IACvC,mBAAA,IAAA,kBAAG,EAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;;;4CAChC,WAAG;uEAEL;AAED;IAAC,IAAA,2BAAY,EAAC;QACZ,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;;YACrC,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,CAAC,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAA,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;gBAClG,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,CAAC,CAAC,YAAY,IAAI,QAAQ,CAAC,YAAY,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC,YAAY,IAAI,QAAQ,CAAC,YAAY,KAAK,YAAY,CAAC,CAAA;gBAC/H,CAAC,CAAC;qBACD,OAAO,CAAC,QAAQ,CAAC,EAAE;oBAClB,QAAQ,CAAC,YAAY,EAAE,CAAA;gBACzB,CAAC,CAAC,CAAA;YACN,CAAC,CAAC,CAAA;YAEF,OAAO,IAAA,mBAAI,EACT,cAAM,CAAC,SAAS,CAAC,yBAAyB,CAAC,EAC3C,IAAA,qBAAM,EAAC,CAAC,OAAyD,EAAE,EAAE;gBACnE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,qBAAqB,CAAA;gBAEnH,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,CAAC,CACH,CAAA;QACH,CAAC;KACF,CAAC;IAEC,mBAAA,IAAA,mBAAI,GAAE,CAAA;IACN,mBAAA,IAAA,kBAAG,EAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;IACvC,mBAAA,IAAA,kBAAG,EAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;;;4CACvC,8CAAqB;yEAEvB;AA3GU,4BAA4B;IADxC,IAAA,uBAAQ,EAAC,yCAAgB,CAAC;GACd,4BAA4B,CA4GxC;AA5GY,oEAA4B","sourcesContent":["import { Resolver, Subscription, Root, Arg } from 'type-graphql'\nimport { filter, pipe } from 'graphql-yoga'\nimport { pubsub, Log } from '@things-factory/shell'\nimport { ScenarioInstance, ScenarioInstanceState } from './scenario-instance-type'\nimport { ScenarioEngine } from '../../engine'\n\nconst debug = require('debug')('things-factory:integration:scenario-instance-subscription')\n\n@Resolver(ScenarioInstance)\nexport class ScenarioInstanceSubscription {\n @Subscription({\n subscribe: ({ args, context, info }) => {\n const { domain, user } = context.state\n const { instanceName, scenarioName, level } = args\n const subdomain = domain?.subdomain\n\n debug('subscribe', subdomain, scenarioName, instanceName)\n\n if (!domain) {\n throw new Error('domain required')\n }\n\n if (!user.domains?.find(d => d.subdomain === subdomain) && !process.superUserGranted(domain, user)) {\n throw new Error(`domain(${subdomain}) is not working for user(${user.email}).`)\n }\n\n return pipe(\n pubsub.subscribe('scenario-instance-log'),\n filter((payload: { scenarioInstanceLog: Log }) => {\n const { source, level: plevel } = payload.scenarioInstanceLog\n const { domain: pdomain, scenarioName: pscenarioName, instanceName: pinstanceName } = source as any\n\n if (subdomain !== pdomain?.subdomain) {\n return false\n }\n\n if (scenarioName && pscenarioName !== scenarioName) {\n return false\n }\n\n if (instanceName && pinstanceName !== instanceName) {\n return false\n }\n\n if (level && level !== plevel) {\n return false\n }\n\n return true\n })\n )\n }\n })\n scenarioInstanceLog(\n @Root() payload: { scenarioInstanceLog: Log },\n @Arg('scenarioName', { nullable: true }) scenarioName: string,\n @Arg('instanceName', { nullable: true }) instanceName: string,\n @Arg('level', { nullable: true }) level: string\n ): Log {\n return payload.scenarioInstanceLog\n }\n\n @Subscription({\n subscribe: ({ args, context, info }) => {\n const { domain, user } = context.state\n const { instanceName, scenarioName } = args\n const subdomain = domain?.subdomain\n\n debug('subscribe', subdomain, scenarioName, instanceName)\n\n if (!domain) {\n throw new Error('domain required')\n }\n\n if (!user.domains?.find(d => d.subdomain === subdomain) && !process.superUserGranted(domain, user)) {\n throw new Error(`domain(${subdomain}) is not working for user(${user.email}).`)\n }\n\n process.nextTick(() => {\n ScenarioEngine.getScenarioInstances(domain)\n .filter(instance => {\n return (!instanceName || instance.instanceName === instanceName) && (!scenarioName || instance.scenarioName === scenarioName)\n })\n .forEach(instance => {\n instance.publishState()\n })\n })\n\n return pipe(\n pubsub.subscribe('scenario-instance-state'),\n filter((payload: { scenarioInstanceState: ScenarioInstanceState }) => {\n const { domain: pdomain, scenarioName: pscenarioName, instanceName: pinstanceName } = payload.scenarioInstanceState\n\n if (subdomain !== pdomain?.subdomain) {\n return false\n }\n\n if (scenarioName && pscenarioName !== scenarioName) {\n return false\n }\n\n if (instanceName && pinstanceName !== instanceName) {\n return false\n }\n\n return true\n })\n )\n }\n })\n scenarioInstanceState(\n @Root() payload: { scenarioInstanceState: ScenarioInstanceState },\n @Arg('scenarioName', { nullable: true }) scenarioName: string,\n @Arg('instanceName', { nullable: true }) instanceName: string\n ): ScenarioInstanceState {\n return payload.scenarioInstanceState\n }\n}\n"]}
1
+ {"version":3,"file":"scenario-instance-subscription.js","sourceRoot":"","sources":["../../../server/service/scenario-instance/scenario-instance-subscription.ts"],"names":[],"mappings":"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","sourcesContent":["import { Resolver, Subscription, Root, Arg } from 'type-graphql'\nimport { filter, pipe } from 'graphql-yoga'\nimport { pubsub, Log } from '@things-factory/shell'\nimport { ScenarioInstance, ScenarioInstanceState } from './scenario-instance-type'\nimport { ScenarioEngine } from '../../engine'\n\nconst debug = require('debug')('things-factory:integration:scenario-instance-subscription')\n\n@Resolver(ScenarioInstance)\nexport class ScenarioInstanceSubscription {\n @Subscription({\n subscribe: ({ args, context, info }) => {\n const { domain, user } = context.state\n const { instanceName, scenarioName, level } = args\n const subdomain = domain?.subdomain\n\n debug('subscribe', subdomain, scenarioName, instanceName)\n\n if (!domain) {\n throw new Error('domain required')\n }\n\n if (!user.domains?.find(d => d.subdomain === subdomain) && !process.superUserGranted(domain, user)) {\n throw new Error(`domain(${subdomain}) is not working for user(${user.email}).`)\n }\n\n return pipe(\n pubsub.subscribe('scenario-instance-log'),\n filter((payload: { scenarioInstanceLog: Log }) => {\n const { source, level: plevel } = payload.scenarioInstanceLog\n const { domain: pdomain, scenarioName: pscenarioName, instanceName: pinstanceName } = source as any\n\n if (subdomain !== pdomain?.subdomain) {\n return false\n }\n\n if (scenarioName && pscenarioName !== scenarioName) {\n return false\n }\n\n if (instanceName && pinstanceName !== instanceName) {\n return false\n }\n\n if (level && level !== plevel) {\n return false\n }\n\n return true\n })\n )\n }\n })\n scenarioInstanceLog(\n @Root() payload: { scenarioInstanceLog: Log },\n @Arg('scenarioName', { nullable: true }) scenarioName: string,\n @Arg('instanceName', { nullable: true }) instanceName: string,\n @Arg('level', { nullable: true }) level: string\n ): Log {\n return payload.scenarioInstanceLog\n }\n\n @Subscription({\n subscribe: ({ args, context, info }) => {\n const { domain, user } = context.state\n const { instanceName, scenarioName } = args\n const subdomain = domain?.subdomain\n\n debug('subscribe', subdomain, scenarioName, instanceName)\n\n if (!domain) {\n throw new Error('domain required')\n }\n\n if (!user.domains?.find(d => d.subdomain === subdomain) && !process.superUserGranted(domain, user)) {\n throw new Error(`domain(${subdomain}) is not working for user(${user.email}).`)\n }\n\n process.nextTick(() => {\n ScenarioEngine.getScenarioInstances(domain)\n .filter(instance => {\n return (!instanceName || instance.instanceName === instanceName) && (!scenarioName || instance.scenarioName === scenarioName)\n })\n .forEach(instance => {\n instance.publishState()\n })\n })\n\n return pipe(\n pubsub.subscribe('scenario-instance-state'),\n filter((payload: { scenarioInstanceState: ScenarioInstanceState }) => {\n const { domain: pdomain, scenarioName: pscenarioName, instanceName: pinstanceName } = payload.scenarioInstanceState\n\n if (subdomain !== pdomain?.subdomain) {\n return false\n }\n\n if (scenarioName && pscenarioName !== scenarioName) {\n return false\n }\n\n if (instanceName && pinstanceName !== instanceName) {\n return false\n }\n\n return true\n })\n )\n }\n })\n scenarioInstanceState(\n @Root() payload: { scenarioInstanceState: ScenarioInstanceState },\n @Arg('scenarioName', { nullable: true }) scenarioName: string,\n @Arg('instanceName', { nullable: true }) instanceName: string\n ): ScenarioInstanceState {\n return payload.scenarioInstanceState\n }\n}\n"]}
@@ -0,0 +1,102 @@
1
+ import 'winston-daily-rotate-file';
2
+ import { Domain } from '@things-factory/shell';
3
+ import { User } from '@things-factory/auth-base';
4
+ import { Context } from '../../engine/types';
5
+ import { Step } from '../step/step-type';
6
+ export declare enum ScenarioInstanceStatus {
7
+ READY = "READY",
8
+ STARTED = "STARTED",
9
+ STOPPED = "STOPPED",
10
+ HALTED = "HALTED",
11
+ UNLOADED = "UNLOADED"
12
+ }
13
+ export declare class ScenarioInstanceProgress {
14
+ rounds: number;
15
+ rate: number;
16
+ steps: number;
17
+ step: number;
18
+ }
19
+ export declare class ScenarioInstanceState {
20
+ domain: Domain;
21
+ instanceName: string;
22
+ scenarioName: string;
23
+ state: ScenarioInstanceStatus;
24
+ variables: any;
25
+ data: any;
26
+ progress: ScenarioInstanceProgress;
27
+ message: string;
28
+ timestamp: Date;
29
+ }
30
+ export declare class ScenarioInstanceRunResult {
31
+ scenarioName: string;
32
+ instanceName: string;
33
+ variables: any;
34
+ data: any;
35
+ result: any;
36
+ timestamp: Date;
37
+ message: string;
38
+ state: ScenarioInstanceStatus;
39
+ }
40
+ export declare class ScenarioInstance {
41
+ private subScenarioInstances;
42
+ context: Context;
43
+ domain: Domain;
44
+ user: User;
45
+ scenarioName: string;
46
+ instanceName: string;
47
+ get root(): ScenarioInstance;
48
+ get state(): ScenarioInstanceStatus;
49
+ get progress(): ScenarioInstanceProgress;
50
+ get variables(): any;
51
+ get data(): any;
52
+ result: any;
53
+ get timestamp(): Date;
54
+ message: string;
55
+ private scenarioId;
56
+ private scenarioTtl;
57
+ private steps;
58
+ private rounds;
59
+ private lastStep;
60
+ private nextStep;
61
+ private disposer;
62
+ addSubScenarioInstance(instance: ScenarioInstance): ScenarioInstance[];
63
+ getSubScenarioInstances(): ScenarioInstance[];
64
+ stopSubScenarios(): Promise<void>;
65
+ constructor(instanceName: any, { id: scenarioId, ttl: scenarioTtl, name: scenarioName, steps, domain: scenarioDomain }: {
66
+ id: string;
67
+ ttl?: number;
68
+ name: string;
69
+ steps: Step[];
70
+ domain: Domain;
71
+ }, context?: any);
72
+ run(): Promise<{
73
+ scenarioName: string;
74
+ instanceName: string;
75
+ variables: any;
76
+ data: any;
77
+ result: any;
78
+ timestamp: Date;
79
+ message: string;
80
+ state: ScenarioInstanceStatus;
81
+ }>;
82
+ loadSubscenario(step: any, scenarioConfig: any, context: any): Promise<any>;
83
+ publishData(tag: any, data: any): void;
84
+ publishState(): void;
85
+ calcProgress(): ScenarioInstanceProgress;
86
+ setNextStep(step: any): void;
87
+ getState(): ScenarioInstanceStatus;
88
+ setState(state: any, message?: any): void;
89
+ start(): Promise<void>;
90
+ stop(): void;
91
+ unload(): void;
92
+ dispose(): Promise<void>;
93
+ process(step: any, context: any): Promise<{
94
+ next: string;
95
+ state: ScenarioInstanceStatus;
96
+ data: object;
97
+ }>;
98
+ }
99
+ export declare class ScenarioInstanceList {
100
+ items: ScenarioInstance[];
101
+ total: number;
102
+ }
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  var ScenarioInstance_1;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.ScenarioInstanceList = exports.ScenarioInstance = exports.ScenarioInstanceState = exports.ScenarioInstanceProgress = exports.ScenarioInstanceStatus = void 0;
4
+ exports.ScenarioInstanceList = exports.ScenarioInstance = exports.ScenarioInstanceRunResult = exports.ScenarioInstanceState = exports.ScenarioInstanceProgress = exports.ScenarioInstanceStatus = void 0;
5
5
  const tslib_1 = require("tslib");
6
6
  require("winston-daily-rotate-file");
7
7
  const orderBy_1 = tslib_1.__importDefault(require("lodash/orderBy"));
@@ -10,13 +10,16 @@ const type_graphql_1 = require("type-graphql");
10
10
  const util_1 = tslib_1.__importDefault(require("util"));
11
11
  const winston_1 = require("winston");
12
12
  const shell_1 = require("@things-factory/shell");
13
+ const cache_service_1 = require("@things-factory/cache-service");
13
14
  const auth_base_1 = require("@things-factory/auth-base");
14
15
  const utils_1 = require("@things-factory/utils");
16
+ const connection_manager_1 = require("../../engine/connection-manager");
15
17
  const engine_1 = require("../../engine");
18
+ const edge_client_1 = require("../../engine/edge-client");
16
19
  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
+ const { combine, errors, splat, printf } = winston_1.format;
21
+ const LOGFORMAT = printf(({ level, message, timestamp, stack }) => {
22
+ return `${timestamp} ${level}: ${stack || message}`;
20
23
  });
21
24
  const SYSTEM_TZ = Intl.DateTimeFormat().resolvedOptions().timeZone;
22
25
  const systemTimestamp = (0, winston_1.format)((info, opts) => {
@@ -31,13 +34,14 @@ var ScenarioInstanceStatus;
31
34
  ScenarioInstanceStatus["STOPPED"] = "STOPPED";
32
35
  ScenarioInstanceStatus["HALTED"] = "HALTED";
33
36
  ScenarioInstanceStatus["UNLOADED"] = "UNLOADED";
34
- })(ScenarioInstanceStatus = exports.ScenarioInstanceStatus || (exports.ScenarioInstanceStatus = {}));
37
+ })(ScenarioInstanceStatus || (exports.ScenarioInstanceStatus = ScenarioInstanceStatus = {}));
35
38
  (0, type_graphql_1.registerEnumType)(ScenarioInstanceStatus, {
36
39
  name: 'ScenarioInstanceStatus',
37
40
  description: 'state enumeration of a scenario-instance'
38
41
  });
39
42
  let ScenarioInstanceProgress = class ScenarioInstanceProgress {
40
43
  };
44
+ exports.ScenarioInstanceProgress = ScenarioInstanceProgress;
41
45
  tslib_1.__decorate([
42
46
  (0, type_graphql_1.Field)(type => type_graphql_1.Int),
43
47
  tslib_1.__metadata("design:type", Number)
@@ -54,12 +58,12 @@ tslib_1.__decorate([
54
58
  (0, type_graphql_1.Field)(type => type_graphql_1.Int),
55
59
  tslib_1.__metadata("design:type", Number)
56
60
  ], ScenarioInstanceProgress.prototype, "step", void 0);
57
- ScenarioInstanceProgress = tslib_1.__decorate([
61
+ exports.ScenarioInstanceProgress = ScenarioInstanceProgress = tslib_1.__decorate([
58
62
  (0, type_graphql_1.ObjectType)()
59
63
  ], ScenarioInstanceProgress);
60
- exports.ScenarioInstanceProgress = ScenarioInstanceProgress;
61
64
  let ScenarioInstanceState = class ScenarioInstanceState {
62
65
  };
66
+ exports.ScenarioInstanceState = ScenarioInstanceState;
63
67
  tslib_1.__decorate([
64
68
  (0, type_graphql_1.Field)({ nullable: true }),
65
69
  tslib_1.__metadata("design:type", shell_1.Domain)
@@ -96,11 +100,70 @@ tslib_1.__decorate([
96
100
  (0, type_graphql_1.Field)({ nullable: true }),
97
101
  tslib_1.__metadata("design:type", Date)
98
102
  ], ScenarioInstanceState.prototype, "timestamp", void 0);
99
- ScenarioInstanceState = tslib_1.__decorate([
103
+ exports.ScenarioInstanceState = ScenarioInstanceState = tslib_1.__decorate([
100
104
  (0, type_graphql_1.ObjectType)()
101
105
  ], ScenarioInstanceState);
102
- exports.ScenarioInstanceState = ScenarioInstanceState;
106
+ let ScenarioInstanceRunResult = class ScenarioInstanceRunResult {
107
+ };
108
+ exports.ScenarioInstanceRunResult = ScenarioInstanceRunResult;
109
+ tslib_1.__decorate([
110
+ (0, type_graphql_1.Field)({ nullable: true }),
111
+ tslib_1.__metadata("design:type", String)
112
+ ], ScenarioInstanceRunResult.prototype, "scenarioName", void 0);
113
+ tslib_1.__decorate([
114
+ (0, type_graphql_1.Field)({ nullable: true }),
115
+ tslib_1.__metadata("design:type", String)
116
+ ], ScenarioInstanceRunResult.prototype, "instanceName", void 0);
117
+ tslib_1.__decorate([
118
+ (0, type_graphql_1.Field)(type => shell_1.ScalarObject, { nullable: true }),
119
+ tslib_1.__metadata("design:type", Object)
120
+ ], ScenarioInstanceRunResult.prototype, "variables", void 0);
121
+ tslib_1.__decorate([
122
+ (0, type_graphql_1.Field)(type => shell_1.ScalarObject, { nullable: true }),
123
+ tslib_1.__metadata("design:type", Object)
124
+ ], ScenarioInstanceRunResult.prototype, "data", void 0);
125
+ tslib_1.__decorate([
126
+ (0, type_graphql_1.Field)(type => shell_1.ScalarObject, { nullable: true }),
127
+ tslib_1.__metadata("design:type", Object)
128
+ ], ScenarioInstanceRunResult.prototype, "result", void 0);
129
+ tslib_1.__decorate([
130
+ (0, type_graphql_1.Field)({ nullable: true }),
131
+ tslib_1.__metadata("design:type", Date)
132
+ ], ScenarioInstanceRunResult.prototype, "timestamp", void 0);
133
+ tslib_1.__decorate([
134
+ (0, type_graphql_1.Field)({ nullable: true }),
135
+ tslib_1.__metadata("design:type", String)
136
+ ], ScenarioInstanceRunResult.prototype, "message", void 0);
137
+ tslib_1.__decorate([
138
+ (0, type_graphql_1.Field)({ nullable: true }),
139
+ tslib_1.__metadata("design:type", String)
140
+ ], ScenarioInstanceRunResult.prototype, "state", void 0);
141
+ exports.ScenarioInstanceRunResult = ScenarioInstanceRunResult = tslib_1.__decorate([
142
+ (0, type_graphql_1.ObjectType)()
143
+ ], ScenarioInstanceRunResult);
103
144
  let ScenarioInstance = ScenarioInstance_1 = class ScenarioInstance {
145
+ get root() {
146
+ var _a;
147
+ return (_a = this.context) === null || _a === void 0 ? void 0 : _a.root;
148
+ }
149
+ get state() {
150
+ var _a;
151
+ return (_a = this.context) === null || _a === void 0 ? void 0 : _a.state;
152
+ }
153
+ get progress() {
154
+ return this.calcProgress();
155
+ }
156
+ get variables() {
157
+ var _a;
158
+ return (_a = this.context) === null || _a === void 0 ? void 0 : _a.variables;
159
+ }
160
+ get data() {
161
+ var _a;
162
+ return (_a = this.context) === null || _a === void 0 ? void 0 : _a.data;
163
+ }
164
+ get timestamp() {
165
+ return new Date();
166
+ }
104
167
  addSubScenarioInstance(instance) {
105
168
  this.subScenarioInstances.push(instance);
106
169
  return this.subScenarioInstances;
@@ -116,13 +179,15 @@ let ScenarioInstance = ScenarioInstance_1 = class ScenarioInstance {
116
179
  subInstance = subScenarioInstances.pop();
117
180
  }
118
181
  }
119
- constructor(instanceName, { name: scenarioName, steps, domain: scenarioDomain }, context) {
182
+ constructor(instanceName, { id: scenarioId, ttl: scenarioTtl, name: scenarioName, steps, domain: scenarioDomain }, context) {
120
183
  this.subScenarioInstances = []; // TODO Imple by WeakSet
121
184
  this.rounds = 0;
122
185
  this.lastStep = -1;
123
186
  this.nextStep = -1;
124
187
  var { domain, user, lng, unsafeIP, prohibitedPrivileges } = context || {};
125
188
  domain || (domain = scenarioDomain);
189
+ this.scenarioId = scenarioId;
190
+ this.scenarioTtl = scenarioTtl;
126
191
  this.instanceName = instanceName;
127
192
  this.scenarioName = scenarioName;
128
193
  this.steps = (0, orderBy_1.default)(steps || [], step => step.sequence);
@@ -137,7 +202,7 @@ let ScenarioInstance = ScenarioInstance_1 = class ScenarioInstance {
137
202
  prohibitedPrivileges,
138
203
  logger: (context === null || context === void 0 ? void 0 : context.logger) ||
139
204
  (0, winston_1.createLogger)({
140
- format: combine(systemTimestamp({ tz: SYSTEM_TZ }), splat(), LOGFORMAT),
205
+ format: combine(errors({ stack: true }), systemTimestamp({ tz: SYSTEM_TZ }), splat(), LOGFORMAT),
141
206
  transports: [
142
207
  new winston_1.transports.DailyRotateFile({
143
208
  filename: `logs/${domain.subdomain}/scenario-${scenarioName}-%DATE%.log`,
@@ -219,7 +284,7 @@ let ScenarioInstance = ScenarioInstance_1 = class ScenarioInstance {
219
284
  catch (ex) {
220
285
  const message = ex.stack ? ex.stack : ex;
221
286
  const { scenarioName, domain } = this;
222
- this.context.logger.error(ex.message ? ex.message : ex);
287
+ this.context.logger.error(ex);
223
288
  debug('failed to run ', `[ Domain: ${domain.name}, Scenario: ${scenarioName} ]\n`, ex);
224
289
  this.setState(ScenarioInstanceStatus.HALTED, typeof message == 'object' ? JSON.stringify(message, null, 2) : message);
225
290
  throw ex;
@@ -230,6 +295,23 @@ let ScenarioInstance = ScenarioInstance_1 = class ScenarioInstance {
230
295
  sum[step.name] = this.context.data[step.name];
231
296
  return sum;
232
297
  }, {});
298
+ const { scenarioId, scenarioTtl, variables, message, scenarioName, instanceName, result, domain } = this;
299
+ const obj = {
300
+ scenarioName,
301
+ instanceName,
302
+ variables,
303
+ data: this.data,
304
+ result,
305
+ timestamp: new Date(),
306
+ message,
307
+ state: ScenarioInstanceStatus.STOPPED /* redundent, no meaning */
308
+ };
309
+ if (this.scenarioTtl && this.scenarioId) {
310
+ setTimeout(() => {
311
+ cache_service_1.cacheService.setInCache(scenarioId, { domain: domain.id, variables: variables || {} }, obj, scenarioTtl);
312
+ });
313
+ }
314
+ return obj;
233
315
  }
234
316
  async loadSubscenario(step, scenarioConfig, context) {
235
317
  var { name: stepName, params } = step;
@@ -343,14 +425,20 @@ let ScenarioInstance = ScenarioInstance_1 = class ScenarioInstance {
343
425
  step.params = JSON.parse(step.params);
344
426
  }
345
427
  catch (ex) {
346
- this.context.logger.error(`params(${step.params}) parsing error. params must be a JSON.`);
428
+ this.context.logger.error(`params(${step.params}) parsing error. params must be a JSON.`, ex);
347
429
  }
348
430
  step.params = step.params || {};
349
- var handler = engine_1.TaskRegistry.getTaskHandler(step.task);
350
- if (!handler) {
351
- throw new Error(`no task handler for step '${step.name}'(${step.id})`);
431
+ const connection = step.connection && connection_manager_1.ConnectionManager.getConnectionInstanceEntityByName(this.domain, step.connection);
432
+ if (!connection || !connection.edgeId) {
433
+ var handler = engine_1.TaskRegistry.getTaskHandler(step.task);
434
+ if (!handler) {
435
+ throw new Error(`no task handler for step '${step.name}'(${step.id})`);
436
+ }
437
+ var retval = await handler(step, context);
438
+ }
439
+ else {
440
+ var retval = await (0, edge_client_1.handler)(step, context);
352
441
  }
353
- var retval = await handler(step, context);
354
442
  if (step.log) {
355
443
  var { data } = retval || {};
356
444
  this.context.logger.info(`returns ${typeof data == 'string' ? data : JSON.stringify(data, null, 2)}`);
@@ -359,6 +447,7 @@ let ScenarioInstance = ScenarioInstance_1 = class ScenarioInstance {
359
447
  return retval;
360
448
  }
361
449
  };
450
+ exports.ScenarioInstance = ScenarioInstance;
362
451
  tslib_1.__decorate([
363
452
  (0, type_graphql_1.Field)({ nullable: true }),
364
453
  tslib_1.__metadata("design:type", shell_1.Domain)
@@ -377,43 +466,49 @@ tslib_1.__decorate([
377
466
  ], ScenarioInstance.prototype, "instanceName", void 0);
378
467
  tslib_1.__decorate([
379
468
  (0, type_graphql_1.Field)({ nullable: true }),
380
- tslib_1.__metadata("design:type", ScenarioInstance)
381
- ], ScenarioInstance.prototype, "root", void 0);
469
+ tslib_1.__metadata("design:type", ScenarioInstance),
470
+ tslib_1.__metadata("design:paramtypes", [])
471
+ ], ScenarioInstance.prototype, "root", null);
382
472
  tslib_1.__decorate([
383
473
  (0, type_graphql_1.Field)({ nullable: true }),
384
- tslib_1.__metadata("design:type", String)
385
- ], ScenarioInstance.prototype, "state", void 0);
474
+ tslib_1.__metadata("design:type", String),
475
+ tslib_1.__metadata("design:paramtypes", [])
476
+ ], ScenarioInstance.prototype, "state", null);
386
477
  tslib_1.__decorate([
387
478
  (0, type_graphql_1.Field)(type => ScenarioInstanceProgress, { nullable: true }),
388
- tslib_1.__metadata("design:type", ScenarioInstanceProgress)
389
- ], ScenarioInstance.prototype, "progress", void 0);
479
+ tslib_1.__metadata("design:type", ScenarioInstanceProgress),
480
+ tslib_1.__metadata("design:paramtypes", [])
481
+ ], ScenarioInstance.prototype, "progress", null);
390
482
  tslib_1.__decorate([
391
483
  (0, type_graphql_1.Field)(type => shell_1.ScalarObject, { nullable: true }),
392
- tslib_1.__metadata("design:type", Object)
393
- ], ScenarioInstance.prototype, "variables", void 0);
484
+ tslib_1.__metadata("design:type", Object),
485
+ tslib_1.__metadata("design:paramtypes", [])
486
+ ], ScenarioInstance.prototype, "variables", null);
394
487
  tslib_1.__decorate([
395
488
  (0, type_graphql_1.Field)(type => shell_1.ScalarObject, { nullable: true }),
396
- tslib_1.__metadata("design:type", Object)
397
- ], ScenarioInstance.prototype, "data", void 0);
489
+ tslib_1.__metadata("design:type", Object),
490
+ tslib_1.__metadata("design:paramtypes", [])
491
+ ], ScenarioInstance.prototype, "data", null);
398
492
  tslib_1.__decorate([
399
493
  (0, type_graphql_1.Field)(type => shell_1.ScalarObject, { nullable: true }),
400
494
  tslib_1.__metadata("design:type", Object)
401
495
  ], ScenarioInstance.prototype, "result", void 0);
402
496
  tslib_1.__decorate([
403
497
  (0, type_graphql_1.Field)({ nullable: true }),
404
- tslib_1.__metadata("design:type", Date)
405
- ], ScenarioInstance.prototype, "timestamp", void 0);
498
+ tslib_1.__metadata("design:type", Date),
499
+ tslib_1.__metadata("design:paramtypes", [])
500
+ ], ScenarioInstance.prototype, "timestamp", null);
406
501
  tslib_1.__decorate([
407
502
  (0, type_graphql_1.Field)({ nullable: true }),
408
503
  tslib_1.__metadata("design:type", String)
409
504
  ], ScenarioInstance.prototype, "message", void 0);
410
- ScenarioInstance = ScenarioInstance_1 = tslib_1.__decorate([
505
+ exports.ScenarioInstance = ScenarioInstance = ScenarioInstance_1 = tslib_1.__decorate([
411
506
  (0, type_graphql_1.ObjectType)(),
412
507
  tslib_1.__metadata("design:paramtypes", [Object, Object, Object])
413
508
  ], ScenarioInstance);
414
- exports.ScenarioInstance = ScenarioInstance;
415
509
  let ScenarioInstanceList = class ScenarioInstanceList {
416
510
  };
511
+ exports.ScenarioInstanceList = ScenarioInstanceList;
417
512
  tslib_1.__decorate([
418
513
  (0, type_graphql_1.Field)(type => [ScenarioInstance]),
419
514
  tslib_1.__metadata("design:type", Array)
@@ -422,8 +517,7 @@ tslib_1.__decorate([
422
517
  (0, type_graphql_1.Field)(type => type_graphql_1.Int),
423
518
  tslib_1.__metadata("design:type", Number)
424
519
  ], ScenarioInstanceList.prototype, "total", void 0);
425
- ScenarioInstanceList = tslib_1.__decorate([
520
+ exports.ScenarioInstanceList = ScenarioInstanceList = tslib_1.__decorate([
426
521
  (0, type_graphql_1.ObjectType)()
427
522
  ], ScenarioInstanceList);
428
- exports.ScenarioInstanceList = ScenarioInstanceList;
429
523
  //# sourceMappingURL=scenario-instance-type.js.map