@things-factory/integration-base 9.0.0-beta.27 → 9.0.0-beta.29

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 (407) hide show
  1. package/dist-server/controllers/index.d.ts +2 -0
  2. package/dist-server/controllers/index.js +6 -0
  3. package/dist-server/controllers/index.js.map +1 -0
  4. package/dist-server/controllers/publish-data.d.ts +6 -0
  5. package/dist-server/controllers/publish-data.js +22 -0
  6. package/dist-server/controllers/publish-data.js.map +1 -0
  7. package/dist-server/controllers/scenario-controller.d.ts +6 -0
  8. package/dist-server/controllers/scenario-controller.js +99 -0
  9. package/dist-server/controllers/scenario-controller.js.map +1 -0
  10. package/dist-server/engine/analyzer/analyze-integration.d.ts +5 -0
  11. package/dist-server/engine/analyzer/analyze-integration.js +96 -0
  12. package/dist-server/engine/analyzer/analyze-integration.js.map +1 -0
  13. package/dist-server/engine/connection-manager.d.ts +35 -0
  14. package/dist-server/engine/connection-manager.js +192 -0
  15. package/dist-server/engine/connection-manager.js.map +1 -0
  16. package/dist-server/engine/connector/echo-back-connector.d.ts +9 -0
  17. package/dist-server/engine/connector/echo-back-connector.js +39 -0
  18. package/dist-server/engine/connector/echo-back-connector.js.map +1 -0
  19. package/dist-server/engine/connector/echo-back-server.d.ts +8 -0
  20. package/dist-server/engine/connector/echo-back-server.js +58 -0
  21. package/dist-server/engine/connector/echo-back-server.js.map +1 -0
  22. package/dist-server/engine/connector/graphql-connector.d.ts +19 -0
  23. package/dist-server/engine/connector/graphql-connector.js +94 -0
  24. package/dist-server/engine/connector/graphql-connector.js.map +1 -0
  25. package/dist-server/engine/connector/headless-connector.d.ts +23 -0
  26. package/dist-server/engine/connector/headless-connector.js +357 -0
  27. package/dist-server/engine/connector/headless-connector.js.map +1 -0
  28. package/dist-server/engine/connector/http-connector.d.ts +25 -0
  29. package/dist-server/engine/connector/http-connector.js +52 -0
  30. package/dist-server/engine/connector/http-connector.js.map +1 -0
  31. package/dist-server/engine/connector/index.d.ts +13 -0
  32. package/dist-server/engine/connector/index.js +16 -0
  33. package/dist-server/engine/connector/index.js.map +1 -0
  34. package/dist-server/engine/connector/mqtt-connector.d.ts +14 -0
  35. package/dist-server/engine/connector/mqtt-connector.js +62 -0
  36. package/dist-server/engine/connector/mqtt-connector.js.map +1 -0
  37. package/dist-server/engine/connector/mssql-connector.d.ts +40 -0
  38. package/dist-server/engine/connector/mssql-connector.js +137 -0
  39. package/dist-server/engine/connector/mssql-connector.js.map +1 -0
  40. package/dist-server/engine/connector/mysql-connector.d.ts +13 -0
  41. package/dist-server/engine/connector/mysql-connector.js +80 -0
  42. package/dist-server/engine/connector/mysql-connector.js.map +1 -0
  43. package/dist-server/engine/connector/operato-connector.d.ts +27 -0
  44. package/dist-server/engine/connector/operato-connector.js +205 -0
  45. package/dist-server/engine/connector/operato-connector.js.map +1 -0
  46. package/dist-server/engine/connector/oracle-connector.d.ts +29 -0
  47. package/dist-server/engine/connector/oracle-connector.js +187 -0
  48. package/dist-server/engine/connector/oracle-connector.js.map +1 -0
  49. package/dist-server/engine/connector/postgresql-connector.d.ts +20 -0
  50. package/dist-server/engine/connector/postgresql-connector.js +136 -0
  51. package/dist-server/engine/connector/postgresql-connector.js.map +1 -0
  52. package/dist-server/engine/connector/proxy-connector.d.ts +15 -0
  53. package/dist-server/engine/connector/proxy-connector.js +44 -0
  54. package/dist-server/engine/connector/proxy-connector.js.map +1 -0
  55. package/dist-server/engine/connector/socket-server.d.ts +9 -0
  56. package/dist-server/engine/connector/socket-server.js +76 -0
  57. package/dist-server/engine/connector/socket-server.js.map +1 -0
  58. package/dist-server/engine/connector/sqlite-connector.d.ts +10 -0
  59. package/dist-server/engine/connector/sqlite-connector.js +58 -0
  60. package/dist-server/engine/connector/sqlite-connector.js.map +1 -0
  61. package/dist-server/engine/edge-client.d.ts +18 -0
  62. package/dist-server/engine/edge-client.js +37 -0
  63. package/dist-server/engine/edge-client.js.map +1 -0
  64. package/dist-server/engine/index.d.ts +9 -0
  65. package/dist-server/engine/index.js +12 -0
  66. package/dist-server/engine/index.js.map +1 -0
  67. package/dist-server/engine/pending-queue.d.ts +24 -0
  68. package/dist-server/engine/pending-queue.js +75 -0
  69. package/dist-server/engine/pending-queue.js.map +1 -0
  70. package/dist-server/engine/resource-pool/headless-pool.d.ts +1 -0
  71. package/dist-server/engine/resource-pool/headless-pool.js +62 -0
  72. package/dist-server/engine/resource-pool/headless-pool.js.map +1 -0
  73. package/dist-server/engine/resource-pool/index.d.ts +1 -0
  74. package/dist-server/engine/resource-pool/index.js +5 -0
  75. package/dist-server/engine/resource-pool/index.js.map +1 -0
  76. package/dist-server/engine/scenario-engine.d.ts +11 -0
  77. package/dist-server/engine/scenario-engine.js +79 -0
  78. package/dist-server/engine/scenario-engine.js.map +1 -0
  79. package/dist-server/engine/task/book-up-scenario.d.ts +1 -0
  80. package/dist-server/engine/task/book-up-scenario.js +63 -0
  81. package/dist-server/engine/task/book-up-scenario.js.map +1 -0
  82. package/dist-server/engine/task/csv-readline.d.ts +1 -0
  83. package/dist-server/engine/task/csv-readline.js +103 -0
  84. package/dist-server/engine/task/csv-readline.js.map +1 -0
  85. package/dist-server/engine/task/data-accessor.d.ts +1 -0
  86. package/dist-server/engine/task/data-accessor.js +28 -0
  87. package/dist-server/engine/task/data-accessor.js.map +1 -0
  88. package/dist-server/engine/task/data-mapper.d.ts +1 -0
  89. package/dist-server/engine/task/data-mapper.js +37 -0
  90. package/dist-server/engine/task/data-mapper.js.map +1 -0
  91. package/dist-server/engine/task/database-query.d.ts +1 -0
  92. package/dist-server/engine/task/database-query.js +46 -0
  93. package/dist-server/engine/task/database-query.js.map +1 -0
  94. package/dist-server/engine/task/echo-receive.d.ts +1 -0
  95. package/dist-server/engine/task/echo-receive.js +15 -0
  96. package/dist-server/engine/task/echo-receive.js.map +1 -0
  97. package/dist-server/engine/task/echo-send.d.ts +1 -0
  98. package/dist-server/engine/task/echo-send.js +24 -0
  99. package/dist-server/engine/task/echo-send.js.map +1 -0
  100. package/dist-server/engine/task/empty-check.d.ts +1 -0
  101. package/dist-server/engine/task/empty-check.js +30 -0
  102. package/dist-server/engine/task/empty-check.js.map +1 -0
  103. package/dist-server/engine/task/end.d.ts +1 -0
  104. package/dist-server/engine/task/end.js +14 -0
  105. package/dist-server/engine/task/end.js.map +1 -0
  106. package/dist-server/engine/task/floating-point.d.ts +1 -0
  107. package/dist-server/engine/task/floating-point.js +62 -0
  108. package/dist-server/engine/task/floating-point.js.map +1 -0
  109. package/dist-server/engine/task/goto.d.ts +1 -0
  110. package/dist-server/engine/task/goto.js +20 -0
  111. package/dist-server/engine/task/goto.js.map +1 -0
  112. package/dist-server/engine/task/graphql-mutate.d.ts +1 -0
  113. package/dist-server/engine/task/graphql-mutate.js +70 -0
  114. package/dist-server/engine/task/graphql-mutate.js.map +1 -0
  115. package/dist-server/engine/task/graphql-query.d.ts +1 -0
  116. package/dist-server/engine/task/graphql-query.js +70 -0
  117. package/dist-server/engine/task/graphql-query.js.map +1 -0
  118. package/dist-server/engine/task/headless-post.d.ts +1 -0
  119. package/dist-server/engine/task/headless-post.js +110 -0
  120. package/dist-server/engine/task/headless-post.js.map +1 -0
  121. package/dist-server/engine/task/headless-scrap.d.ts +1 -0
  122. package/dist-server/engine/task/headless-scrap.js +71 -0
  123. package/dist-server/engine/task/headless-scrap.js.map +1 -0
  124. package/dist-server/engine/task/http-get.d.ts +1 -0
  125. package/dist-server/engine/task/http-get.js +101 -0
  126. package/dist-server/engine/task/http-get.js.map +1 -0
  127. package/dist-server/engine/task/http-post.d.ts +1 -0
  128. package/dist-server/engine/task/http-post.js +130 -0
  129. package/dist-server/engine/task/http-post.js.map +1 -0
  130. package/dist-server/engine/task/index.d.ts +45 -0
  131. package/dist-server/engine/task/index.js +48 -0
  132. package/dist-server/engine/task/index.js.map +1 -0
  133. package/dist-server/engine/task/jsonata.d.ts +1 -0
  134. package/dist-server/engine/task/jsonata.js +37 -0
  135. package/dist-server/engine/task/jsonata.js.map +1 -0
  136. package/dist-server/engine/task/local-graphql-mutate.d.ts +1 -0
  137. package/dist-server/engine/task/local-graphql-mutate.js +89 -0
  138. package/dist-server/engine/task/local-graphql-mutate.js.map +1 -0
  139. package/dist-server/engine/task/local-graphql-query.d.ts +1 -0
  140. package/dist-server/engine/task/local-graphql-query.js +89 -0
  141. package/dist-server/engine/task/local-graphql-query.js.map +1 -0
  142. package/dist-server/engine/task/log.d.ts +1 -0
  143. package/dist-server/engine/task/log.js +68 -0
  144. package/dist-server/engine/task/log.js.map +1 -0
  145. package/dist-server/engine/task/mqtt-publish.d.ts +1 -0
  146. package/dist-server/engine/task/mqtt-publish.js +35 -0
  147. package/dist-server/engine/task/mqtt-publish.js.map +1 -0
  148. package/dist-server/engine/task/mqtt-subscribe.d.ts +1 -0
  149. package/dist-server/engine/task/mqtt-subscribe.js +113 -0
  150. package/dist-server/engine/task/mqtt-subscribe.js.map +1 -0
  151. package/dist-server/engine/task/mssql-procedure.d.ts +1 -0
  152. package/dist-server/engine/task/mssql-procedure.js +94 -0
  153. package/dist-server/engine/task/mssql-procedure.js.map +1 -0
  154. package/dist-server/engine/task/oracle-procedure.d.ts +1 -0
  155. package/dist-server/engine/task/oracle-procedure.js +91 -0
  156. package/dist-server/engine/task/oracle-procedure.js.map +1 -0
  157. package/dist-server/engine/task/pick-pending-scenario.d.ts +1 -0
  158. package/dist-server/engine/task/pick-pending-scenario.js +61 -0
  159. package/dist-server/engine/task/pick-pending-scenario.js.map +1 -0
  160. package/dist-server/engine/task/publish.d.ts +1 -0
  161. package/dist-server/engine/task/publish.js +31 -0
  162. package/dist-server/engine/task/publish.js.map +1 -0
  163. package/dist-server/engine/task/random.d.ts +1 -0
  164. package/dist-server/engine/task/random.js +45 -0
  165. package/dist-server/engine/task/random.js.map +1 -0
  166. package/dist-server/engine/task/reset-pending-queue.d.ts +1 -0
  167. package/dist-server/engine/task/reset-pending-queue.js +13 -0
  168. package/dist-server/engine/task/reset-pending-queue.js.map +1 -0
  169. package/dist-server/engine/task/script.d.ts +1 -0
  170. package/dist-server/engine/task/script.js +55 -0
  171. package/dist-server/engine/task/script.js.map +1 -0
  172. package/dist-server/engine/task/set-domain.d.ts +1 -0
  173. package/dist-server/engine/task/set-domain.js +27 -0
  174. package/dist-server/engine/task/set-domain.js.map +1 -0
  175. package/dist-server/engine/task/sleep.d.ts +1 -0
  176. package/dist-server/engine/task/sleep.js +26 -0
  177. package/dist-server/engine/task/sleep.js.map +1 -0
  178. package/dist-server/engine/task/socket-listener.d.ts +1 -0
  179. package/dist-server/engine/task/socket-listener.js +86 -0
  180. package/dist-server/engine/task/socket-listener.js.map +1 -0
  181. package/dist-server/engine/task/state-group-read.d.ts +1 -0
  182. package/dist-server/engine/task/state-group-read.js +62 -0
  183. package/dist-server/engine/task/state-group-read.js.map +1 -0
  184. package/dist-server/engine/task/state-read.d.ts +1 -0
  185. package/dist-server/engine/task/state-read.js +49 -0
  186. package/dist-server/engine/task/state-read.js.map +1 -0
  187. package/dist-server/engine/task/state-write.d.ts +1 -0
  188. package/dist-server/engine/task/state-write.js +57 -0
  189. package/dist-server/engine/task/state-write.js.map +1 -0
  190. package/dist-server/engine/task/stop-scenario.d.ts +1 -0
  191. package/dist-server/engine/task/stop-scenario.js +35 -0
  192. package/dist-server/engine/task/stop-scenario.js.map +1 -0
  193. package/dist-server/engine/task/sub-scenario.d.ts +1 -0
  194. package/dist-server/engine/task/sub-scenario.js +45 -0
  195. package/dist-server/engine/task/sub-scenario.js.map +1 -0
  196. package/dist-server/engine/task/switch-goto.d.ts +1 -0
  197. package/dist-server/engine/task/switch-goto.js +32 -0
  198. package/dist-server/engine/task/switch-goto.js.map +1 -0
  199. package/dist-server/engine/task/switch-range-goto.d.ts +1 -0
  200. package/dist-server/engine/task/switch-range-goto.js +39 -0
  201. package/dist-server/engine/task/switch-range-goto.js.map +1 -0
  202. package/dist-server/engine/task/switch-range-scenario.d.ts +1 -0
  203. package/dist-server/engine/task/switch-range-scenario.js +60 -0
  204. package/dist-server/engine/task/switch-range-scenario.js.map +1 -0
  205. package/dist-server/engine/task/switch-range-set.d.ts +1 -0
  206. package/dist-server/engine/task/switch-range-set.js +35 -0
  207. package/dist-server/engine/task/switch-range-set.js.map +1 -0
  208. package/dist-server/engine/task/switch-scenario.d.ts +1 -0
  209. package/dist-server/engine/task/switch-scenario.js +53 -0
  210. package/dist-server/engine/task/switch-scenario.js.map +1 -0
  211. package/dist-server/engine/task/switch-set.d.ts +1 -0
  212. package/dist-server/engine/task/switch-set.js +28 -0
  213. package/dist-server/engine/task/switch-set.js.map +1 -0
  214. package/dist-server/engine/task/throw.d.ts +1 -0
  215. package/dist-server/engine/task/throw.js +19 -0
  216. package/dist-server/engine/task/throw.js.map +1 -0
  217. package/dist-server/engine/task/utils/headless-pool-for-scenario.d.ts +1 -0
  218. package/dist-server/engine/task/utils/headless-pool-for-scenario.js +64 -0
  219. package/dist-server/engine/task/utils/headless-pool-for-scenario.js.map +1 -0
  220. package/dist-server/engine/task/utils/substitute.d.ts +1 -0
  221. package/dist-server/engine/task/utils/substitute.js +45 -0
  222. package/dist-server/engine/task/utils/substitute.js.map +1 -0
  223. package/dist-server/engine/task/variables.d.ts +1 -0
  224. package/dist-server/engine/task/variables.js +13 -0
  225. package/dist-server/engine/task/variables.js.map +1 -0
  226. package/dist-server/engine/task-registry.d.ts +12 -0
  227. package/dist-server/engine/task-registry.js +20 -0
  228. package/dist-server/engine/task-registry.js.map +1 -0
  229. package/dist-server/engine/types.d.ts +94 -0
  230. package/dist-server/engine/types.js +3 -0
  231. package/dist-server/engine/types.js.map +1 -0
  232. package/dist-server/index.d.ts +6 -0
  233. package/dist-server/index.js +21 -0
  234. package/dist-server/index.js.map +1 -0
  235. package/dist-server/migrations/index.d.ts +1 -0
  236. package/dist-server/migrations/index.js +12 -0
  237. package/dist-server/migrations/index.js.map +1 -0
  238. package/dist-server/restful/index.d.ts +1 -0
  239. package/dist-server/restful/index.js +4 -0
  240. package/dist-server/restful/index.js.map +1 -0
  241. package/dist-server/restful/unstable/index.d.ts +7 -0
  242. package/dist-server/restful/unstable/index.js +10 -0
  243. package/dist-server/restful/unstable/index.js.map +1 -0
  244. package/dist-server/restful/unstable/run-scenario.d.ts +1 -0
  245. package/dist-server/restful/unstable/run-scenario.js +45 -0
  246. package/dist-server/restful/unstable/run-scenario.js.map +1 -0
  247. package/dist-server/restful/unstable/scenario-instance.d.ts +1 -0
  248. package/dist-server/restful/unstable/scenario-instance.js +52 -0
  249. package/dist-server/restful/unstable/scenario-instance.js.map +1 -0
  250. package/dist-server/restful/unstable/scenario-instances.d.ts +1 -0
  251. package/dist-server/restful/unstable/scenario-instances.js +74 -0
  252. package/dist-server/restful/unstable/scenario-instances.js.map +1 -0
  253. package/dist-server/restful/unstable/scenario.d.ts +1 -0
  254. package/dist-server/restful/unstable/scenario.js +41 -0
  255. package/dist-server/restful/unstable/scenario.js.map +1 -0
  256. package/dist-server/restful/unstable/scenarios.d.ts +1 -0
  257. package/dist-server/restful/unstable/scenarios.js +63 -0
  258. package/dist-server/restful/unstable/scenarios.js.map +1 -0
  259. package/dist-server/restful/unstable/start-scenario.d.ts +1 -0
  260. package/dist-server/restful/unstable/start-scenario.js +33 -0
  261. package/dist-server/restful/unstable/start-scenario.js.map +1 -0
  262. package/dist-server/restful/unstable/stop-scenario.d.ts +1 -0
  263. package/dist-server/restful/unstable/stop-scenario.js +30 -0
  264. package/dist-server/restful/unstable/stop-scenario.js.map +1 -0
  265. package/dist-server/routers/scenario-schedule-callback-router.d.ts +1 -0
  266. package/dist-server/routers/scenario-schedule-callback-router.js +55 -0
  267. package/dist-server/routers/scenario-schedule-callback-router.js.map +1 -0
  268. package/dist-server/routers/scenario-view-router.d.ts +1 -0
  269. package/dist-server/routers/scenario-view-router.js +41 -0
  270. package/dist-server/routers/scenario-view-router.js.map +1 -0
  271. package/dist-server/routes.d.ts +1 -0
  272. package/dist-server/routes.js +23 -0
  273. package/dist-server/routes.js.map +1 -0
  274. package/dist-server/service/analysis/analysis-query.d.ts +3 -0
  275. package/dist-server/service/analysis/analysis-query.js +25 -0
  276. package/dist-server/service/analysis/analysis-query.js.map +1 -0
  277. package/dist-server/service/analysis/index.d.ts +2 -0
  278. package/dist-server/service/analysis/index.js +6 -0
  279. package/dist-server/service/analysis/index.js.map +1 -0
  280. package/dist-server/service/connection/connection-mutation.d.ts +30 -0
  281. package/dist-server/service/connection/connection-mutation.js +182 -0
  282. package/dist-server/service/connection/connection-mutation.js.map +1 -0
  283. package/dist-server/service/connection/connection-query.d.ts +12 -0
  284. package/dist-server/service/connection/connection-query.js +112 -0
  285. package/dist-server/service/connection/connection-query.js.map +1 -0
  286. package/dist-server/service/connection/connection-subscription.d.ts +10 -0
  287. package/dist-server/service/connection/connection-subscription.js +98 -0
  288. package/dist-server/service/connection/connection-subscription.js.map +1 -0
  289. package/dist-server/service/connection/connection-type.d.ts +133 -0
  290. package/dist-server/service/connection/connection-type.js +294 -0
  291. package/dist-server/service/connection/connection-type.js.map +1 -0
  292. package/dist-server/service/connection/index.d.ts +6 -0
  293. package/dist-server/service/connection/index.js +10 -0
  294. package/dist-server/service/connection/index.js.map +1 -0
  295. package/dist-server/service/connector/connector-query.d.ts +6 -0
  296. package/dist-server/service/connector/connector-query.js +77 -0
  297. package/dist-server/service/connector/connector-query.js.map +1 -0
  298. package/dist-server/service/connector/connector-type.d.ts +12 -0
  299. package/dist-server/service/connector/connector-type.js +47 -0
  300. package/dist-server/service/connector/connector-type.js.map +1 -0
  301. package/dist-server/service/connector/index.d.ts +3 -0
  302. package/dist-server/service/connector/index.js +7 -0
  303. package/dist-server/service/connector/index.js.map +1 -0
  304. package/dist-server/service/index.d.ts +17 -0
  305. package/dist-server/service/index.js +55 -0
  306. package/dist-server/service/index.js.map +1 -0
  307. package/dist-server/service/payload-log/index.d.ts +5 -0
  308. package/dist-server/service/payload-log/index.js +9 -0
  309. package/dist-server/service/payload-log/index.js.map +1 -0
  310. package/dist-server/service/payload-log/payload-log-mutation.d.ts +10 -0
  311. package/dist-server/service/payload-log/payload-log-mutation.js +134 -0
  312. package/dist-server/service/payload-log/payload-log-mutation.js.map +1 -0
  313. package/dist-server/service/payload-log/payload-log-query.d.ts +11 -0
  314. package/dist-server/service/payload-log/payload-log-query.js +76 -0
  315. package/dist-server/service/payload-log/payload-log-query.js.map +1 -0
  316. package/dist-server/service/payload-log/payload-log-type.d.ts +15 -0
  317. package/dist-server/service/payload-log/payload-log-type.js +57 -0
  318. package/dist-server/service/payload-log/payload-log-type.js.map +1 -0
  319. package/dist-server/service/payload-log/payload-log.d.ts +23 -0
  320. package/dist-server/service/payload-log/payload-log.js +110 -0
  321. package/dist-server/service/payload-log/payload-log.js.map +1 -0
  322. package/dist-server/service/property-spec.d.ts +12 -0
  323. package/dist-server/service/property-spec.js +37 -0
  324. package/dist-server/service/property-spec.js.map +1 -0
  325. package/dist-server/service/scenario/index.d.ts +5 -0
  326. package/dist-server/service/scenario/index.js +9 -0
  327. package/dist-server/service/scenario/index.js.map +1 -0
  328. package/dist-server/service/scenario/scenario-mutation.d.ts +13 -0
  329. package/dist-server/service/scenario/scenario-mutation.js +327 -0
  330. package/dist-server/service/scenario/scenario-mutation.js.map +1 -0
  331. package/dist-server/service/scenario/scenario-query.d.ts +19 -0
  332. package/dist-server/service/scenario/scenario-query.js +167 -0
  333. package/dist-server/service/scenario/scenario-query.js.map +1 -0
  334. package/dist-server/service/scenario/scenario-type.d.ts +30 -0
  335. package/dist-server/service/scenario/scenario-type.js +111 -0
  336. package/dist-server/service/scenario/scenario-type.js.map +1 -0
  337. package/dist-server/service/scenario/scenario.d.ts +38 -0
  338. package/dist-server/service/scenario/scenario.js +142 -0
  339. package/dist-server/service/scenario/scenario.js.map +1 -0
  340. package/dist-server/service/scenario-flow/scenario-flow.d.ts +6 -0
  341. package/dist-server/service/scenario-flow/scenario-flow.js +28 -0
  342. package/dist-server/service/scenario-flow/scenario-flow.js.map +1 -0
  343. package/dist-server/service/scenario-instance/index.d.ts +5 -0
  344. package/dist-server/service/scenario-instance/index.js +9 -0
  345. package/dist-server/service/scenario-instance/index.js.map +1 -0
  346. package/dist-server/service/scenario-instance/scenario-instance-mutation.d.ts +6 -0
  347. package/dist-server/service/scenario-instance/scenario-instance-mutation.js +54 -0
  348. package/dist-server/service/scenario-instance/scenario-instance-mutation.js.map +1 -0
  349. package/dist-server/service/scenario-instance/scenario-instance-query.d.ts +6 -0
  350. package/dist-server/service/scenario-instance/scenario-instance-query.js +45 -0
  351. package/dist-server/service/scenario-instance/scenario-instance-query.js.map +1 -0
  352. package/dist-server/service/scenario-instance/scenario-instance-subscription.d.ts +10 -0
  353. package/dist-server/service/scenario-instance/scenario-instance-subscription.js +109 -0
  354. package/dist-server/service/scenario-instance/scenario-instance-subscription.js.map +1 -0
  355. package/dist-server/service/scenario-instance/scenario-instance-type.d.ts +102 -0
  356. package/dist-server/service/scenario-instance/scenario-instance-type.js +533 -0
  357. package/dist-server/service/scenario-instance/scenario-instance-type.js.map +1 -0
  358. package/dist-server/service/scenario-queue/index.d.ts +3 -0
  359. package/dist-server/service/scenario-queue/index.js +7 -0
  360. package/dist-server/service/scenario-queue/index.js.map +1 -0
  361. package/dist-server/service/scenario-queue/scenario-queue-subscription.d.ts +6 -0
  362. package/dist-server/service/scenario-queue/scenario-queue-subscription.js +58 -0
  363. package/dist-server/service/scenario-queue/scenario-queue-subscription.js.map +1 -0
  364. package/dist-server/service/scenario-queue/scenario-queue-type.d.ts +11 -0
  365. package/dist-server/service/scenario-queue/scenario-queue-type.js +43 -0
  366. package/dist-server/service/scenario-queue/scenario-queue-type.js.map +1 -0
  367. package/dist-server/service/state-register/data-resolver.d.ts +6 -0
  368. package/dist-server/service/state-register/data-resolver.js +61 -0
  369. package/dist-server/service/state-register/data-resolver.js.map +1 -0
  370. package/dist-server/service/state-register/index.d.ts +7 -0
  371. package/dist-server/service/state-register/index.js +11 -0
  372. package/dist-server/service/state-register/index.js.map +1 -0
  373. package/dist-server/service/state-register/state-register-mutation.d.ts +11 -0
  374. package/dist-server/service/state-register/state-register-mutation.js +153 -0
  375. package/dist-server/service/state-register/state-register-mutation.js.map +1 -0
  376. package/dist-server/service/state-register/state-register-query.d.ts +14 -0
  377. package/dist-server/service/state-register/state-register-query.js +123 -0
  378. package/dist-server/service/state-register/state-register-query.js.map +1 -0
  379. package/dist-server/service/state-register/state-register-type.d.ts +29 -0
  380. package/dist-server/service/state-register/state-register-type.js +114 -0
  381. package/dist-server/service/state-register/state-register-type.js.map +1 -0
  382. package/dist-server/service/state-register/state-register.d.ts +25 -0
  383. package/dist-server/service/state-register/state-register.js +128 -0
  384. package/dist-server/service/state-register/state-register.js.map +1 -0
  385. package/dist-server/service/step/index.d.ts +5 -0
  386. package/dist-server/service/step/index.js +9 -0
  387. package/dist-server/service/step/index.js.map +1 -0
  388. package/dist-server/service/step/step-mutation.d.ts +5 -0
  389. package/dist-server/service/step/step-mutation.js +55 -0
  390. package/dist-server/service/step/step-mutation.js.map +1 -0
  391. package/dist-server/service/step/step-query.d.ts +12 -0
  392. package/dist-server/service/step/step-query.js +89 -0
  393. package/dist-server/service/step/step-query.js.map +1 -0
  394. package/dist-server/service/step/step-type.d.ts +111 -0
  395. package/dist-server/service/step/step-type.js +212 -0
  396. package/dist-server/service/step/step-type.js.map +1 -0
  397. package/dist-server/service/task-type/index.d.ts +3 -0
  398. package/dist-server/service/task-type/index.js +7 -0
  399. package/dist-server/service/task-type/index.js.map +1 -0
  400. package/dist-server/service/task-type/task-type-query.d.ts +6 -0
  401. package/dist-server/service/task-type/task-type-query.js +108 -0
  402. package/dist-server/service/task-type/task-type-query.js.map +1 -0
  403. package/dist-server/service/task-type/task-type-type.d.ts +12 -0
  404. package/dist-server/service/task-type/task-type-type.js +47 -0
  405. package/dist-server/service/task-type/task-type-type.js.map +1 -0
  406. package/dist-server/tsconfig.tsbuildinfo +1 -0
  407. package/package.json +10 -10
@@ -0,0 +1 @@
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
+ }
@@ -0,0 +1,533 @@
1
+ "use strict";
2
+ var ScenarioInstance_1;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.ScenarioInstanceList = exports.ScenarioInstance = exports.ScenarioInstanceRunResult = exports.ScenarioInstanceState = exports.ScenarioInstanceProgress = exports.ScenarioInstanceStatus = void 0;
5
+ const tslib_1 = require("tslib");
6
+ require("winston-daily-rotate-file");
7
+ const orderBy_1 = tslib_1.__importDefault(require("lodash/orderBy"));
8
+ const moment_timezone_1 = tslib_1.__importDefault(require("moment-timezone"));
9
+ const type_graphql_1 = require("type-graphql");
10
+ const util_1 = tslib_1.__importDefault(require("util"));
11
+ const winston_1 = require("winston");
12
+ const shell_1 = require("@things-factory/shell");
13
+ const cache_service_1 = require("@things-factory/cache-service");
14
+ const auth_base_1 = require("@things-factory/auth-base");
15
+ const utils_1 = require("@things-factory/utils");
16
+ const publish_data_1 = require("../../controllers/publish-data");
17
+ const connection_manager_1 = require("../../engine/connection-manager");
18
+ const engine_1 = require("../../engine");
19
+ const edge_client_1 = require("../../engine/edge-client");
20
+ const debug = require('debug')('things-factory:integration-base:scenario-instance');
21
+ const { combine, errors, splat, printf } = winston_1.format;
22
+ const LOGFORMAT = printf(({ level, message, timestamp, stack }) => {
23
+ return `${timestamp} ${level}: ${stack || message}`;
24
+ });
25
+ function getSystemTimeZone() {
26
+ try {
27
+ const timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
28
+ if (!timeZone) {
29
+ throw new Error('Unable to resolve timeZone');
30
+ }
31
+ return timeZone;
32
+ }
33
+ catch (e) {
34
+ console.warn('Failed to get system timeZone, falling back to UTC.', e);
35
+ return 'UTC';
36
+ }
37
+ }
38
+ const SYSTEM_TZ = getSystemTimeZone();
39
+ const systemTimestamp = (0, winston_1.format)((info, opts) => {
40
+ if (opts.tz)
41
+ info.timestamp = (0, moment_timezone_1.default)().tz(opts.tz).format();
42
+ return info;
43
+ });
44
+ var ScenarioInstanceStatus;
45
+ (function (ScenarioInstanceStatus) {
46
+ ScenarioInstanceStatus["READY"] = "READY";
47
+ ScenarioInstanceStatus["STARTED"] = "STARTED";
48
+ ScenarioInstanceStatus["STOPPED"] = "STOPPED";
49
+ ScenarioInstanceStatus["HALTED"] = "HALTED";
50
+ ScenarioInstanceStatus["UNLOADED"] = "UNLOADED";
51
+ })(ScenarioInstanceStatus || (exports.ScenarioInstanceStatus = ScenarioInstanceStatus = {}));
52
+ (0, type_graphql_1.registerEnumType)(ScenarioInstanceStatus, {
53
+ name: 'ScenarioInstanceStatus',
54
+ description: 'state enumeration of a scenario-instance'
55
+ });
56
+ let ScenarioInstanceProgress = class ScenarioInstanceProgress {
57
+ };
58
+ exports.ScenarioInstanceProgress = ScenarioInstanceProgress;
59
+ tslib_1.__decorate([
60
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int),
61
+ tslib_1.__metadata("design:type", Number)
62
+ ], ScenarioInstanceProgress.prototype, "rounds", void 0);
63
+ tslib_1.__decorate([
64
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int),
65
+ tslib_1.__metadata("design:type", Number)
66
+ ], ScenarioInstanceProgress.prototype, "rate", void 0);
67
+ tslib_1.__decorate([
68
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int),
69
+ tslib_1.__metadata("design:type", Number)
70
+ ], ScenarioInstanceProgress.prototype, "steps", void 0);
71
+ tslib_1.__decorate([
72
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int),
73
+ tslib_1.__metadata("design:type", Number)
74
+ ], ScenarioInstanceProgress.prototype, "step", void 0);
75
+ exports.ScenarioInstanceProgress = ScenarioInstanceProgress = tslib_1.__decorate([
76
+ (0, type_graphql_1.ObjectType)()
77
+ ], ScenarioInstanceProgress);
78
+ let ScenarioInstanceState = class ScenarioInstanceState {
79
+ };
80
+ exports.ScenarioInstanceState = ScenarioInstanceState;
81
+ tslib_1.__decorate([
82
+ (0, type_graphql_1.Field)({ nullable: true }),
83
+ tslib_1.__metadata("design:type", shell_1.Domain)
84
+ ], ScenarioInstanceState.prototype, "domain", void 0);
85
+ tslib_1.__decorate([
86
+ (0, type_graphql_1.Field)({ nullable: true }),
87
+ tslib_1.__metadata("design:type", String)
88
+ ], ScenarioInstanceState.prototype, "instanceName", void 0);
89
+ tslib_1.__decorate([
90
+ (0, type_graphql_1.Field)({ nullable: true }),
91
+ tslib_1.__metadata("design:type", String)
92
+ ], ScenarioInstanceState.prototype, "scenarioName", void 0);
93
+ tslib_1.__decorate([
94
+ (0, type_graphql_1.Field)(type => ScenarioInstanceStatus, { nullable: true }),
95
+ tslib_1.__metadata("design:type", String)
96
+ ], ScenarioInstanceState.prototype, "state", void 0);
97
+ tslib_1.__decorate([
98
+ (0, type_graphql_1.Field)(type => shell_1.ScalarObject, { nullable: true }),
99
+ tslib_1.__metadata("design:type", Object)
100
+ ], ScenarioInstanceState.prototype, "variables", void 0);
101
+ tslib_1.__decorate([
102
+ (0, type_graphql_1.Field)(type => shell_1.ScalarObject, { nullable: true }),
103
+ tslib_1.__metadata("design:type", Object)
104
+ ], ScenarioInstanceState.prototype, "data", void 0);
105
+ tslib_1.__decorate([
106
+ (0, type_graphql_1.Field)(type => ScenarioInstanceProgress, { nullable: true }),
107
+ tslib_1.__metadata("design:type", ScenarioInstanceProgress)
108
+ ], ScenarioInstanceState.prototype, "progress", void 0);
109
+ tslib_1.__decorate([
110
+ (0, type_graphql_1.Field)({ nullable: true }),
111
+ tslib_1.__metadata("design:type", String)
112
+ ], ScenarioInstanceState.prototype, "message", void 0);
113
+ tslib_1.__decorate([
114
+ (0, type_graphql_1.Field)({ nullable: true }),
115
+ tslib_1.__metadata("design:type", Date)
116
+ ], ScenarioInstanceState.prototype, "timestamp", void 0);
117
+ exports.ScenarioInstanceState = ScenarioInstanceState = tslib_1.__decorate([
118
+ (0, type_graphql_1.ObjectType)()
119
+ ], ScenarioInstanceState);
120
+ let ScenarioInstanceRunResult = class ScenarioInstanceRunResult {
121
+ };
122
+ exports.ScenarioInstanceRunResult = ScenarioInstanceRunResult;
123
+ tslib_1.__decorate([
124
+ (0, type_graphql_1.Field)({ nullable: true }),
125
+ tslib_1.__metadata("design:type", String)
126
+ ], ScenarioInstanceRunResult.prototype, "scenarioName", void 0);
127
+ tslib_1.__decorate([
128
+ (0, type_graphql_1.Field)({ nullable: true }),
129
+ tslib_1.__metadata("design:type", String)
130
+ ], ScenarioInstanceRunResult.prototype, "instanceName", void 0);
131
+ tslib_1.__decorate([
132
+ (0, type_graphql_1.Field)(type => shell_1.ScalarObject, { nullable: true }),
133
+ tslib_1.__metadata("design:type", Object)
134
+ ], ScenarioInstanceRunResult.prototype, "variables", void 0);
135
+ tslib_1.__decorate([
136
+ (0, type_graphql_1.Field)(type => shell_1.ScalarObject, { nullable: true }),
137
+ tslib_1.__metadata("design:type", Object)
138
+ ], ScenarioInstanceRunResult.prototype, "data", void 0);
139
+ tslib_1.__decorate([
140
+ (0, type_graphql_1.Field)(type => shell_1.ScalarObject, { nullable: true }),
141
+ tslib_1.__metadata("design:type", Object)
142
+ ], ScenarioInstanceRunResult.prototype, "result", void 0);
143
+ tslib_1.__decorate([
144
+ (0, type_graphql_1.Field)({ nullable: true }),
145
+ tslib_1.__metadata("design:type", Date)
146
+ ], ScenarioInstanceRunResult.prototype, "timestamp", void 0);
147
+ tslib_1.__decorate([
148
+ (0, type_graphql_1.Field)({ nullable: true }),
149
+ tslib_1.__metadata("design:type", String)
150
+ ], ScenarioInstanceRunResult.prototype, "message", void 0);
151
+ tslib_1.__decorate([
152
+ (0, type_graphql_1.Field)({ nullable: true }),
153
+ tslib_1.__metadata("design:type", String)
154
+ ], ScenarioInstanceRunResult.prototype, "state", void 0);
155
+ exports.ScenarioInstanceRunResult = ScenarioInstanceRunResult = tslib_1.__decorate([
156
+ (0, type_graphql_1.ObjectType)()
157
+ ], ScenarioInstanceRunResult);
158
+ let ScenarioInstance = ScenarioInstance_1 = class ScenarioInstance {
159
+ get root() {
160
+ var _a;
161
+ return (_a = this.context) === null || _a === void 0 ? void 0 : _a.root;
162
+ }
163
+ get state() {
164
+ var _a;
165
+ return (_a = this.context) === null || _a === void 0 ? void 0 : _a.state;
166
+ }
167
+ get progress() {
168
+ return this.calcProgress();
169
+ }
170
+ get variables() {
171
+ var _a;
172
+ return (_a = this.context) === null || _a === void 0 ? void 0 : _a.variables;
173
+ }
174
+ get data() {
175
+ var _a;
176
+ return (_a = this.context) === null || _a === void 0 ? void 0 : _a.data;
177
+ }
178
+ get timestamp() {
179
+ return new Date();
180
+ }
181
+ addSubScenarioInstance(instance) {
182
+ this.subScenarioInstances.push(instance);
183
+ return this.subScenarioInstances;
184
+ }
185
+ getSubScenarioInstances() {
186
+ return this.subScenarioInstances;
187
+ }
188
+ async stopSubScenarios() {
189
+ var subScenarioInstances = this.getSubScenarioInstances();
190
+ var subInstance = subScenarioInstances.pop();
191
+ while (subInstance) {
192
+ await subInstance.dispose();
193
+ subInstance = subScenarioInstances.pop();
194
+ }
195
+ }
196
+ constructor(instanceName, { id: scenarioId, ttl: scenarioTtl, name: scenarioName, steps, domain: scenarioDomain }, context) {
197
+ this.subScenarioInstances = []; // TODO Imple by WeakSet
198
+ this.rounds = 0;
199
+ this.lastStep = -1;
200
+ this.nextStep = -1;
201
+ var { domain, user, lng, unsafeIP, prohibitedPrivileges } = context || {};
202
+ domain || (domain = scenarioDomain);
203
+ this.scenarioId = scenarioId;
204
+ this.scenarioTtl = scenarioTtl;
205
+ this.instanceName = instanceName;
206
+ this.scenarioName = scenarioName;
207
+ this.steps = (0, orderBy_1.default)(steps || [], step => step.sequence);
208
+ this.domain = domain;
209
+ this.user = user;
210
+ this.disposer = context === null || context === void 0 ? void 0 : context.disposer;
211
+ this.context = {
212
+ domain,
213
+ user,
214
+ lng,
215
+ unsafeIP,
216
+ prohibitedPrivileges,
217
+ logger: (context === null || context === void 0 ? void 0 : context.logger) ||
218
+ (0, winston_1.createLogger)({
219
+ format: combine(errors({ stack: true }), systemTimestamp({ tz: SYSTEM_TZ }), splat(), LOGFORMAT),
220
+ transports: [
221
+ new winston_1.transports.DailyRotateFile({
222
+ filename: `logs/${domain.subdomain}/scenario-${scenarioName}-%DATE%.log`,
223
+ datePattern: 'YYYY-MM-DD-HH',
224
+ zippedArchive: false,
225
+ maxSize: '5m',
226
+ maxFiles: '14d',
227
+ level: 'info'
228
+ }),
229
+ new shell_1.PubSubLogTransport({
230
+ topic: 'scenario-instance-log',
231
+ source: { domain, scenarioName, instanceName }
232
+ })
233
+ ]
234
+ }),
235
+ publish: (context === null || context === void 0 ? void 0 : context.publish) || this.publishData.bind(this),
236
+ load: (context === null || context === void 0 ? void 0 : context.load) || this.loadSubscenario.bind(this),
237
+ data: (context === null || context === void 0 ? void 0 : context.data) || {},
238
+ variables: (context === null || context === void 0 ? void 0 : context.variables) || {},
239
+ client: context === null || context === void 0 ? void 0 : context.client,
240
+ state: ScenarioInstanceStatus.STOPPED,
241
+ root: (context === null || context === void 0 ? void 0 : context.root) || this,
242
+ closures: [],
243
+ checkState(state = ScenarioInstanceStatus.STARTED) {
244
+ return this.state == state;
245
+ }
246
+ };
247
+ this.setState(ScenarioInstanceStatus.READY);
248
+ }
249
+ async run() {
250
+ var state = this.getState();
251
+ if (state == ScenarioInstanceStatus.STARTED || this.steps.length == 0) {
252
+ return;
253
+ }
254
+ this.setState(ScenarioInstanceStatus.STARTED);
255
+ var context = this.context;
256
+ try {
257
+ while (this.getState() == ScenarioInstanceStatus.STARTED) {
258
+ if (this.nextStep == -1) {
259
+ this.setNextStep(0);
260
+ }
261
+ if (this.nextStep == 0) {
262
+ this.rounds++;
263
+ this.context.logger.info(`Start ${this.rounds} Rounds #######`);
264
+ }
265
+ var step = this.steps[this.nextStep];
266
+ var next, data;
267
+ if (!step.skip) {
268
+ // @ts-ignore: Initializer provides no value for this binding element and the binding element has no default value.
269
+ var { next, state: stepState, data } = (await this.process(step, context)) || {};
270
+ context.data[step.name] = data;
271
+ }
272
+ else {
273
+ next = '';
274
+ stepState = undefined;
275
+ }
276
+ this.publishState();
277
+ await (0, utils_1.sleep)(1);
278
+ if (next) {
279
+ this.setNextStep(this.steps.findIndex(step => {
280
+ return step.name == next;
281
+ }));
282
+ if (this.nextStep == -1) {
283
+ throw 'Not Found Next Step';
284
+ }
285
+ }
286
+ else if (this.nextStep == this.steps.length - 1) {
287
+ this.setState(ScenarioInstanceStatus.STOPPED);
288
+ }
289
+ else {
290
+ this.setNextStep(this.nextStep + 1);
291
+ }
292
+ /* last step 에 의해서 시나리오 state를 변경할 수 있도록 함. */
293
+ if (stepState !== undefined) {
294
+ this.setState(stepState);
295
+ }
296
+ }
297
+ }
298
+ catch (ex) {
299
+ const message = ex.stack ? ex.stack : ex;
300
+ const { scenarioName, domain } = this;
301
+ this.context.logger.error(ex);
302
+ debug('failed to run ', `[ Domain: ${domain.name}, Scenario: ${scenarioName} ]\n`, ex);
303
+ this.setState(ScenarioInstanceStatus.HALTED, typeof message == 'object' ? JSON.stringify(message, null, 2) : message);
304
+ throw ex;
305
+ }
306
+ this.result = this.steps
307
+ .filter(step => !!step.result)
308
+ .reduce((sum, step) => {
309
+ sum[step.name] = this.context.data[step.name];
310
+ return sum;
311
+ }, {});
312
+ const { scenarioId, scenarioTtl, variables, message, scenarioName, instanceName, result, domain } = this;
313
+ const obj = {
314
+ scenarioName,
315
+ instanceName,
316
+ variables,
317
+ data: this.data,
318
+ result,
319
+ timestamp: new Date(),
320
+ message,
321
+ state: ScenarioInstanceStatus.STOPPED /* redundent, no meaning */
322
+ };
323
+ if (this.scenarioTtl && this.scenarioId) {
324
+ setTimeout(() => {
325
+ cache_service_1.cacheService.setInCache(scenarioId, { domain: domain.id, variables: variables || {} }, obj, scenarioTtl);
326
+ });
327
+ }
328
+ return obj;
329
+ }
330
+ async loadSubscenario(step, scenarioConfig, context) {
331
+ var { name: stepName, params } = step;
332
+ var { preventErrorPropagation } = params || {};
333
+ debug('load-subscenario', this.instanceName, stepName, scenarioConfig.name);
334
+ context.data[stepName] = {};
335
+ let subContext = Object.assign(Object.assign({}, context), { data: context.data[stepName], closures: [], state: ScenarioInstanceStatus.READY });
336
+ if (!scenarioConfig.domain) {
337
+ scenarioConfig.domain = context.domain;
338
+ }
339
+ var subScenarioInstance = new ScenarioInstance_1(`${this.instanceName}$${stepName}`, scenarioConfig, subContext);
340
+ this.addSubScenarioInstance(subScenarioInstance);
341
+ await subScenarioInstance.run();
342
+ if (!preventErrorPropagation && subScenarioInstance.getState() == ScenarioInstanceStatus.HALTED) {
343
+ throw new Error(`Sub-scenario[${this.instanceName}$${stepName}] is halted.`);
344
+ }
345
+ return subContext;
346
+ }
347
+ publishData(tag, data) {
348
+ (0, publish_data_1.publishData)(tag, data, this.context);
349
+ }
350
+ publishState() {
351
+ const { instanceName, scenarioName, steps, domain, message, context: { data, variables, state } } = this;
352
+ shell_1.pubsub.publish('scenario-instance-state', {
353
+ scenarioInstanceState: {
354
+ domain,
355
+ instanceName,
356
+ scenarioName,
357
+ state,
358
+ variables,
359
+ progress: this.calcProgress(),
360
+ data,
361
+ message,
362
+ timestamp: new Date()
363
+ }
364
+ });
365
+ this.context.logger.info(this.message);
366
+ }
367
+ calcProgress() {
368
+ var steps = this.steps.length;
369
+ var step = Math.max(this.lastStep, 0);
370
+ return {
371
+ rounds: this.rounds,
372
+ rate: steps ? Math.round(100 * (step / steps)) : 0,
373
+ steps,
374
+ step
375
+ };
376
+ }
377
+ setNextStep(step) {
378
+ this.lastStep = this.nextStep + 1;
379
+ this.nextStep = step;
380
+ }
381
+ getState() {
382
+ return this.context.state;
383
+ }
384
+ setState(state, message) {
385
+ if (this.context.state == state) {
386
+ return;
387
+ }
388
+ this.message = `${this.instanceName}:[state changed] ${ScenarioInstanceStatus[this.getState()]} => ${ScenarioInstanceStatus[state]}${message ? ' caused by ' + util_1.default.inspect(message, false, 2, true) : ''}`;
389
+ this.context.state = state;
390
+ if (state == ScenarioInstanceStatus.STOPPED || state == ScenarioInstanceStatus.HALTED) {
391
+ this.setNextStep(-1);
392
+ this.setState(ScenarioInstanceStatus.UNLOADED);
393
+ }
394
+ else if (state == ScenarioInstanceStatus.UNLOADED) {
395
+ this.setNextStep(-1);
396
+ this.dispose();
397
+ }
398
+ this.publishState();
399
+ }
400
+ async start() {
401
+ await this.run();
402
+ }
403
+ stop() {
404
+ if (this.getState() !== ScenarioInstanceStatus.HALTED) {
405
+ this.setState(ScenarioInstanceStatus.STOPPED);
406
+ }
407
+ }
408
+ unload() {
409
+ this.setState(ScenarioInstanceStatus.UNLOADED);
410
+ }
411
+ async dispose() {
412
+ var _a, _b, _c, _d, _e;
413
+ await this.stopSubScenarios();
414
+ this.unload();
415
+ var closure = (_b = (_a = this.context) === null || _a === void 0 ? void 0 : _a.closures) === null || _b === void 0 ? void 0 : _b.pop();
416
+ while (closure) {
417
+ closure.call(this);
418
+ closure = (_d = (_c = this.context) === null || _c === void 0 ? void 0 : _c.closures) === null || _d === void 0 ? void 0 : _d.pop();
419
+ }
420
+ if (this.disposer) {
421
+ await this.disposer.call(this);
422
+ }
423
+ // {{ CHECKPOINT 본 인스턴스를 위해서 생성된 logger를 닫는다. 사용을 완료하고 닫기위해서 지연해서 수행한다.
424
+ if ((_e = this.context) === null || _e === void 0 ? void 0 : _e.logger) {
425
+ setTimeout(() => {
426
+ this.context.logger.close();
427
+ }, 300);
428
+ }
429
+ // }}
430
+ }
431
+ async process(step, context) {
432
+ this.context.logger.info(`Step '${step.name}'(${step.id}) started.`);
433
+ step = Object.assign({}, step); // copy step
434
+ try {
435
+ step.params = JSON.parse(step.params);
436
+ }
437
+ catch (ex) {
438
+ this.context.logger.error(`params(${step.params}) parsing error. params must be a JSON.`, ex);
439
+ }
440
+ step.params = step.params || {};
441
+ const connection = step.connection && connection_manager_1.ConnectionManager.getConnectionInstanceEntityByName(this.domain, step.connection);
442
+ if (!connection || !connection.edgeId) {
443
+ var handler = engine_1.TaskRegistry.getTaskHandler(step.task);
444
+ if (!handler) {
445
+ throw new Error(`no task handler for step '${step.name}'(${step.id})`);
446
+ }
447
+ var retval = await handler(step, context);
448
+ }
449
+ else {
450
+ var retval = await (0, edge_client_1.handler)(step, context);
451
+ }
452
+ if (step.log) {
453
+ var { data } = retval || {};
454
+ this.context.logger.info(`returns ${typeof data == 'string' ? data : JSON.stringify(data, null, 2)}`);
455
+ }
456
+ this.context.logger.info(`Step done.`);
457
+ return retval;
458
+ }
459
+ };
460
+ exports.ScenarioInstance = ScenarioInstance;
461
+ tslib_1.__decorate([
462
+ (0, type_graphql_1.Field)({ nullable: true }),
463
+ tslib_1.__metadata("design:type", shell_1.Domain)
464
+ ], ScenarioInstance.prototype, "domain", void 0);
465
+ tslib_1.__decorate([
466
+ (0, type_graphql_1.Field)({ nullable: true }),
467
+ tslib_1.__metadata("design:type", auth_base_1.User)
468
+ ], ScenarioInstance.prototype, "user", void 0);
469
+ tslib_1.__decorate([
470
+ (0, type_graphql_1.Field)({ nullable: true }),
471
+ tslib_1.__metadata("design:type", String)
472
+ ], ScenarioInstance.prototype, "scenarioName", void 0);
473
+ tslib_1.__decorate([
474
+ (0, type_graphql_1.Field)({ nullable: true }),
475
+ tslib_1.__metadata("design:type", String)
476
+ ], ScenarioInstance.prototype, "instanceName", void 0);
477
+ tslib_1.__decorate([
478
+ (0, type_graphql_1.Field)({ nullable: true }),
479
+ tslib_1.__metadata("design:type", ScenarioInstance),
480
+ tslib_1.__metadata("design:paramtypes", [])
481
+ ], ScenarioInstance.prototype, "root", null);
482
+ tslib_1.__decorate([
483
+ (0, type_graphql_1.Field)({ nullable: true }),
484
+ tslib_1.__metadata("design:type", String),
485
+ tslib_1.__metadata("design:paramtypes", [])
486
+ ], ScenarioInstance.prototype, "state", null);
487
+ tslib_1.__decorate([
488
+ (0, type_graphql_1.Field)(type => ScenarioInstanceProgress, { nullable: true }),
489
+ tslib_1.__metadata("design:type", ScenarioInstanceProgress),
490
+ tslib_1.__metadata("design:paramtypes", [])
491
+ ], ScenarioInstance.prototype, "progress", null);
492
+ tslib_1.__decorate([
493
+ (0, type_graphql_1.Field)(type => shell_1.ScalarObject, { nullable: true }),
494
+ tslib_1.__metadata("design:type", Object),
495
+ tslib_1.__metadata("design:paramtypes", [])
496
+ ], ScenarioInstance.prototype, "variables", null);
497
+ tslib_1.__decorate([
498
+ (0, type_graphql_1.Field)(type => shell_1.ScalarObject, { nullable: true }),
499
+ tslib_1.__metadata("design:type", Object),
500
+ tslib_1.__metadata("design:paramtypes", [])
501
+ ], ScenarioInstance.prototype, "data", null);
502
+ tslib_1.__decorate([
503
+ (0, type_graphql_1.Field)(type => shell_1.ScalarObject, { nullable: true }),
504
+ tslib_1.__metadata("design:type", Object)
505
+ ], ScenarioInstance.prototype, "result", void 0);
506
+ tslib_1.__decorate([
507
+ (0, type_graphql_1.Field)({ nullable: true }),
508
+ tslib_1.__metadata("design:type", Date),
509
+ tslib_1.__metadata("design:paramtypes", [])
510
+ ], ScenarioInstance.prototype, "timestamp", null);
511
+ tslib_1.__decorate([
512
+ (0, type_graphql_1.Field)({ nullable: true }),
513
+ tslib_1.__metadata("design:type", String)
514
+ ], ScenarioInstance.prototype, "message", void 0);
515
+ exports.ScenarioInstance = ScenarioInstance = ScenarioInstance_1 = tslib_1.__decorate([
516
+ (0, type_graphql_1.ObjectType)(),
517
+ tslib_1.__metadata("design:paramtypes", [Object, Object, Object])
518
+ ], ScenarioInstance);
519
+ let ScenarioInstanceList = class ScenarioInstanceList {
520
+ };
521
+ exports.ScenarioInstanceList = ScenarioInstanceList;
522
+ tslib_1.__decorate([
523
+ (0, type_graphql_1.Field)(type => [ScenarioInstance]),
524
+ tslib_1.__metadata("design:type", Array)
525
+ ], ScenarioInstanceList.prototype, "items", void 0);
526
+ tslib_1.__decorate([
527
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int),
528
+ tslib_1.__metadata("design:type", Number)
529
+ ], ScenarioInstanceList.prototype, "total", void 0);
530
+ exports.ScenarioInstanceList = ScenarioInstanceList = tslib_1.__decorate([
531
+ (0, type_graphql_1.ObjectType)()
532
+ ], ScenarioInstanceList);
533
+ //# sourceMappingURL=scenario-instance-type.js.map