@things-factory/integration-base 7.0.1-beta.8 → 7.0.1-rc.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 (285) 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 +11 -6
  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.map +1 -1
  10. package/dist-server/engine/connector/echo-back-connector.d.ts +9 -0
  11. package/dist-server/engine/connector/echo-back-connector.js.map +1 -1
  12. package/dist-server/engine/connector/echo-back-server.d.ts +8 -0
  13. package/dist-server/engine/connector/echo-back-server.js.map +1 -1
  14. package/dist-server/engine/connector/graphql-connector.d.ts +19 -0
  15. package/dist-server/engine/connector/graphql-connector.js +1 -1
  16. package/dist-server/engine/connector/graphql-connector.js.map +1 -1
  17. package/dist-server/engine/connector/http-connector.d.ts +25 -0
  18. package/dist-server/engine/connector/http-connector.js.map +1 -1
  19. package/dist-server/engine/connector/index.d.ts +12 -0
  20. package/dist-server/engine/connector/mqtt-connector.d.ts +14 -0
  21. package/dist-server/engine/connector/mqtt-connector.js.map +1 -1
  22. package/dist-server/engine/connector/mssql-connector.d.ts +30 -0
  23. package/dist-server/engine/connector/mssql-connector.js +20 -4
  24. package/dist-server/engine/connector/mssql-connector.js.map +1 -1
  25. package/dist-server/engine/connector/mysql-connector.d.ts +13 -0
  26. package/dist-server/engine/connector/mysql-connector.js.map +1 -1
  27. package/dist-server/engine/connector/operato-connector.d.ts +27 -0
  28. package/dist-server/engine/connector/operato-connector.js +1 -1
  29. package/dist-server/engine/connector/operato-connector.js.map +1 -1
  30. package/dist-server/engine/connector/oracle-connector.d.ts +29 -0
  31. package/dist-server/engine/connector/oracle-connector.js.map +1 -1
  32. package/dist-server/engine/connector/postgresql-connector.d.ts +14 -0
  33. package/dist-server/engine/connector/postgresql-connector.js.map +1 -1
  34. package/dist-server/engine/connector/proxy-connector.d.ts +15 -0
  35. package/dist-server/engine/connector/socket-server.d.ts +9 -0
  36. package/dist-server/engine/connector/socket-server.js.map +1 -1
  37. package/dist-server/engine/connector/sqlite-connector.d.ts +10 -0
  38. package/dist-server/engine/connector/sqlite-connector.js.map +1 -1
  39. package/dist-server/engine/edge-client.d.ts +18 -0
  40. package/dist-server/engine/edge-client.js +5 -6
  41. package/dist-server/engine/edge-client.js.map +1 -1
  42. package/dist-server/engine/index.d.ts +8 -0
  43. package/dist-server/engine/index.js.map +1 -1
  44. package/dist-server/engine/pending-queue.d.ts +24 -0
  45. package/dist-server/engine/pending-queue.js.map +1 -1
  46. package/dist-server/engine/scenario-engine.d.ts +11 -0
  47. package/dist-server/engine/scenario-engine.js.map +1 -1
  48. package/dist-server/engine/task/book-up-scenario.d.ts +1 -0
  49. package/dist-server/engine/task/csv-readline.d.ts +1 -0
  50. package/dist-server/engine/task/csv-readline.js.map +1 -1
  51. package/dist-server/engine/task/data-accessor.d.ts +1 -0
  52. package/dist-server/engine/task/data-mapper.d.ts +1 -0
  53. package/dist-server/engine/task/data-mapper.js.map +1 -1
  54. package/dist-server/engine/task/database-query.d.ts +1 -0
  55. package/dist-server/engine/task/echo-receive.d.ts +1 -0
  56. package/dist-server/engine/task/echo-send.d.ts +1 -0
  57. package/dist-server/engine/task/echo-send.js.map +1 -1
  58. package/dist-server/engine/task/empty-check.d.ts +1 -0
  59. package/dist-server/engine/task/empty-check.js.map +1 -1
  60. package/dist-server/engine/task/end.d.ts +1 -0
  61. package/dist-server/engine/task/floating-point.d.ts +1 -0
  62. package/dist-server/engine/task/floating-point.js.map +1 -1
  63. package/dist-server/engine/task/goto.d.ts +1 -0
  64. package/dist-server/engine/task/graphql-mutate.d.ts +1 -0
  65. package/dist-server/engine/task/graphql-query.d.ts +1 -0
  66. package/dist-server/engine/task/headless-post.d.ts +1 -0
  67. package/dist-server/engine/task/headless-post.js.map +1 -1
  68. package/dist-server/engine/task/headless-scrap.d.ts +1 -0
  69. package/dist-server/engine/task/headless-scrap.js.map +1 -1
  70. package/dist-server/engine/task/http-get.d.ts +1 -0
  71. package/dist-server/engine/task/http-get.js.map +1 -1
  72. package/dist-server/engine/task/http-post.d.ts +1 -0
  73. package/dist-server/engine/task/http-post.js.map +1 -1
  74. package/dist-server/engine/task/index.d.ts +43 -0
  75. package/dist-server/engine/task/jsonata.d.ts +1 -0
  76. package/dist-server/engine/task/local-graphql-mutate.d.ts +1 -0
  77. package/dist-server/engine/task/local-graphql-mutate.js.map +1 -1
  78. package/dist-server/engine/task/local-graphql-query.d.ts +1 -0
  79. package/dist-server/engine/task/local-graphql-query.js.map +1 -1
  80. package/dist-server/engine/task/log.d.ts +1 -0
  81. package/dist-server/engine/task/log.js.map +1 -1
  82. package/dist-server/engine/task/mqtt-publish.d.ts +1 -0
  83. package/dist-server/engine/task/mqtt-publish.js.map +1 -1
  84. package/dist-server/engine/task/mqtt-subscribe.d.ts +1 -0
  85. package/dist-server/engine/task/mqtt-subscribe.js.map +1 -1
  86. package/dist-server/engine/task/oracle-procedure.d.ts +1 -0
  87. package/dist-server/engine/task/oracle-procedure.js.map +1 -1
  88. package/dist-server/engine/task/pick-pending-scenario.d.ts +1 -0
  89. package/dist-server/engine/task/pick-pending-scenario.js.map +1 -1
  90. package/dist-server/engine/task/publish.d.ts +1 -0
  91. package/dist-server/engine/task/publish.js.map +1 -1
  92. package/dist-server/engine/task/random.d.ts +1 -0
  93. package/dist-server/engine/task/reset-pending-queue.d.ts +1 -0
  94. package/dist-server/engine/task/script.d.ts +1 -0
  95. package/dist-server/engine/task/set-domain.d.ts +1 -0
  96. package/dist-server/engine/task/set-domain.js.map +1 -1
  97. package/dist-server/engine/task/sleep.d.ts +1 -0
  98. package/dist-server/engine/task/sleep.js.map +1 -1
  99. package/dist-server/engine/task/socket-listener.d.ts +1 -0
  100. package/dist-server/engine/task/socket-listener.js.map +1 -1
  101. package/dist-server/engine/task/state-read.d.ts +1 -0
  102. package/dist-server/engine/task/state-read.js.map +1 -1
  103. package/dist-server/engine/task/state-write.d.ts +1 -0
  104. package/dist-server/engine/task/state-write.js.map +1 -1
  105. package/dist-server/engine/task/stop-scenario.d.ts +1 -0
  106. package/dist-server/engine/task/sub-scenario.d.ts +1 -0
  107. package/dist-server/engine/task/switch-goto.d.ts +1 -0
  108. package/dist-server/engine/task/switch-range-goto.d.ts +1 -0
  109. package/dist-server/engine/task/switch-range-goto.js.map +1 -1
  110. package/dist-server/engine/task/switch-range-scenario.d.ts +1 -0
  111. package/dist-server/engine/task/switch-range-scenario.js.map +1 -1
  112. package/dist-server/engine/task/switch-range-set.d.ts +1 -0
  113. package/dist-server/engine/task/switch-range-set.js.map +1 -1
  114. package/dist-server/engine/task/switch-scenario.d.ts +1 -0
  115. package/dist-server/engine/task/switch-set.d.ts +1 -0
  116. package/dist-server/engine/task/throw.d.ts +1 -0
  117. package/dist-server/engine/task/utils/headless-pool-for-scenario.d.ts +1 -0
  118. package/dist-server/engine/task/utils/headless-pool-for-scenario.js +1 -2
  119. package/dist-server/engine/task/utils/headless-pool-for-scenario.js.map +1 -1
  120. package/dist-server/engine/task/utils/substitute.d.ts +1 -0
  121. package/dist-server/engine/task/utils/substitute.js +1 -2
  122. package/dist-server/engine/task/utils/substitute.js.map +1 -1
  123. package/dist-server/engine/task/variables.d.ts +1 -0
  124. package/dist-server/engine/task-registry.d.ts +12 -0
  125. package/dist-server/engine/types.d.ts +94 -0
  126. package/dist-server/engine/types.js.map +1 -1
  127. package/dist-server/index.d.ts +6 -0
  128. package/dist-server/index.js.map +1 -1
  129. package/dist-server/migrations/index.d.ts +1 -0
  130. package/dist-server/restful/index.d.ts +1 -0
  131. package/dist-server/restful/unstable/index.d.ts +7 -0
  132. package/dist-server/restful/unstable/run-scenario.d.ts +1 -0
  133. package/dist-server/restful/unstable/run-scenario.js +0 -1
  134. package/dist-server/restful/unstable/run-scenario.js.map +1 -1
  135. package/dist-server/restful/unstable/scenario-instance.d.ts +1 -0
  136. package/dist-server/restful/unstable/scenario-instances.d.ts +1 -0
  137. package/dist-server/restful/unstable/scenario.d.ts +1 -0
  138. package/dist-server/restful/unstable/scenarios.d.ts +1 -0
  139. package/dist-server/restful/unstable/start-scenario.d.ts +1 -0
  140. package/dist-server/restful/unstable/stop-scenario.d.ts +1 -0
  141. package/dist-server/routers/scenario-schedule-callback-router.d.ts +1 -0
  142. package/dist-server/routers/scenario-schedule-callback-router.js +2 -3
  143. package/dist-server/routers/scenario-schedule-callback-router.js.map +1 -1
  144. package/dist-server/routers/scenario-view-router.d.ts +1 -0
  145. package/dist-server/routers/scenario-view-router.js.map +1 -1
  146. package/dist-server/routes.d.ts +1 -0
  147. package/dist-server/routes.js.map +1 -1
  148. package/dist-server/service/analysis/analysis-query.d.ts +3 -0
  149. package/dist-server/service/analysis/analysis-query.js +2 -2
  150. package/dist-server/service/analysis/analysis-query.js.map +1 -1
  151. package/dist-server/service/analysis/index.d.ts +2 -0
  152. package/dist-server/service/connection/connection-mutation.d.ts +30 -0
  153. package/dist-server/service/connection/connection-mutation.js +2 -2
  154. package/dist-server/service/connection/connection-mutation.js.map +1 -1
  155. package/dist-server/service/connection/connection-query.d.ts +12 -0
  156. package/dist-server/service/connection/connection-query.js +10 -6
  157. package/dist-server/service/connection/connection-query.js.map +1 -1
  158. package/dist-server/service/connection/connection-subscription.d.ts +10 -0
  159. package/dist-server/service/connection/connection-subscription.js +2 -2
  160. package/dist-server/service/connection/connection-subscription.js.map +1 -1
  161. package/dist-server/service/connection/connection-type.d.ts +133 -0
  162. package/dist-server/service/connection/connection-type.js +11 -11
  163. package/dist-server/service/connection/connection-type.js.map +1 -1
  164. package/dist-server/service/connection/index.d.ts +6 -0
  165. package/dist-server/service/connector/connector-query.d.ts +6 -0
  166. package/dist-server/service/connector/connector-query.js +2 -2
  167. package/dist-server/service/connector/connector-query.js.map +1 -1
  168. package/dist-server/service/connector/connector-type.d.ts +12 -0
  169. package/dist-server/service/connector/connector-type.js +4 -4
  170. package/dist-server/service/connector/connector-type.js.map +1 -1
  171. package/dist-server/service/connector/index.d.ts +3 -0
  172. package/dist-server/service/index.d.ts +17 -0
  173. package/dist-server/service/payload-log/index.d.ts +5 -0
  174. package/dist-server/service/payload-log/payload-log-mutation.d.ts +10 -0
  175. package/dist-server/service/payload-log/payload-log-mutation.js +4 -4
  176. package/dist-server/service/payload-log/payload-log-mutation.js.map +1 -1
  177. package/dist-server/service/payload-log/payload-log-query.d.ts +11 -0
  178. package/dist-server/service/payload-log/payload-log-query.js +3 -3
  179. package/dist-server/service/payload-log/payload-log-query.js.map +1 -1
  180. package/dist-server/service/payload-log/payload-log-type.d.ts +15 -0
  181. package/dist-server/service/payload-log/payload-log-type.js +6 -6
  182. package/dist-server/service/payload-log/payload-log-type.js.map +1 -1
  183. package/dist-server/service/payload-log/payload-log.d.ts +23 -0
  184. package/dist-server/service/payload-log/payload-log.js +5 -5
  185. package/dist-server/service/payload-log/payload-log.js.map +1 -1
  186. package/dist-server/service/property-spec.d.ts +12 -0
  187. package/dist-server/service/property-spec.js +2 -2
  188. package/dist-server/service/property-spec.js.map +1 -1
  189. package/dist-server/service/scenario/index.d.ts +5 -0
  190. package/dist-server/service/scenario/scenario-mutation.d.ts +13 -0
  191. package/dist-server/service/scenario/scenario-mutation.js +3 -3
  192. package/dist-server/service/scenario/scenario-mutation.js.map +1 -1
  193. package/dist-server/service/scenario/scenario-query.d.ts +18 -0
  194. package/dist-server/service/scenario/scenario-query.js +3 -3
  195. package/dist-server/service/scenario/scenario-query.js.map +1 -1
  196. package/dist-server/service/scenario/scenario-type.d.ts +30 -0
  197. package/dist-server/service/scenario/scenario-type.js +14 -6
  198. package/dist-server/service/scenario/scenario-type.js.map +1 -1
  199. package/dist-server/service/scenario/scenario.d.ts +27 -0
  200. package/dist-server/service/scenario/scenario.js +9 -4
  201. package/dist-server/service/scenario/scenario.js.map +1 -1
  202. package/dist-server/service/scenario-flow/scenario-flow.d.ts +6 -0
  203. package/dist-server/service/scenario-flow/scenario-flow.js +2 -2
  204. package/dist-server/service/scenario-flow/scenario-flow.js.map +1 -1
  205. package/dist-server/service/scenario-instance/index.d.ts +5 -0
  206. package/dist-server/service/scenario-instance/scenario-instance-mutation.d.ts +6 -0
  207. package/dist-server/service/scenario-instance/scenario-instance-mutation.js +3 -3
  208. package/dist-server/service/scenario-instance/scenario-instance-mutation.js.map +1 -1
  209. package/dist-server/service/scenario-instance/scenario-instance-query.d.ts +6 -0
  210. package/dist-server/service/scenario-instance/scenario-instance-query.js +3 -67
  211. package/dist-server/service/scenario-instance/scenario-instance-query.js.map +1 -1
  212. package/dist-server/service/scenario-instance/scenario-instance-subscription.d.ts +10 -0
  213. package/dist-server/service/scenario-instance/scenario-instance-subscription.js +2 -2
  214. package/dist-server/service/scenario-instance/scenario-instance-subscription.js.map +1 -1
  215. package/dist-server/service/scenario-instance/scenario-instance-type.d.ts +102 -0
  216. package/dist-server/service/scenario-instance/scenario-instance-type.js +109 -23
  217. package/dist-server/service/scenario-instance/scenario-instance-type.js.map +1 -1
  218. package/dist-server/service/scenario-queue/index.d.ts +3 -0
  219. package/dist-server/service/scenario-queue/scenario-queue-subscription.d.ts +6 -0
  220. package/dist-server/service/scenario-queue/scenario-queue-subscription.js +2 -2
  221. package/dist-server/service/scenario-queue/scenario-queue-subscription.js.map +1 -1
  222. package/dist-server/service/scenario-queue/scenario-queue-type.d.ts +11 -0
  223. package/dist-server/service/scenario-queue/scenario-queue-type.js +4 -4
  224. package/dist-server/service/scenario-queue/scenario-queue-type.js.map +1 -1
  225. package/dist-server/service/state-register/index.d.ts +6 -0
  226. package/dist-server/service/state-register/state-register-mutation.d.ts +11 -0
  227. package/dist-server/service/state-register/state-register-mutation.js +2 -2
  228. package/dist-server/service/state-register/state-register-mutation.js.map +1 -1
  229. package/dist-server/service/state-register/state-register-query.d.ts +14 -0
  230. package/dist-server/service/state-register/state-register-query.js +3 -3
  231. package/dist-server/service/state-register/state-register-query.js.map +1 -1
  232. package/dist-server/service/state-register/state-register-type.d.ts +23 -0
  233. package/dist-server/service/state-register/state-register-type.js +6 -6
  234. package/dist-server/service/state-register/state-register-type.js.map +1 -1
  235. package/dist-server/service/state-register/state-register.d.ts +22 -0
  236. package/dist-server/service/state-register/state-register.js +2 -2
  237. package/dist-server/service/state-register/state-register.js.map +1 -1
  238. package/dist-server/service/step/index.d.ts +5 -0
  239. package/dist-server/service/step/step-mutation.d.ts +5 -0
  240. package/dist-server/service/step/step-mutation.js +2 -2
  241. package/dist-server/service/step/step-mutation.js.map +1 -1
  242. package/dist-server/service/step/step-query.d.ts +12 -0
  243. package/dist-server/service/step/step-query.js +3 -3
  244. package/dist-server/service/step/step-query.js.map +1 -1
  245. package/dist-server/service/step/step-type.d.ts +111 -0
  246. package/dist-server/service/step/step-type.js +8 -8
  247. package/dist-server/service/step/step-type.js.map +1 -1
  248. package/dist-server/service/task-type/index.d.ts +3 -0
  249. package/dist-server/service/task-type/task-type-query.d.ts +6 -0
  250. package/dist-server/service/task-type/task-type-query.js +2 -2
  251. package/dist-server/service/task-type/task-type-query.js.map +1 -1
  252. package/dist-server/service/task-type/task-type-type.d.ts +12 -0
  253. package/dist-server/service/task-type/task-type-type.js +4 -4
  254. package/dist-server/service/task-type/task-type-type.js.map +1 -1
  255. package/dist-server/tsconfig.tsbuildinfo +1 -1
  256. package/helps/integration/connector/mssql-connector.ja.md +13 -9
  257. package/helps/integration/connector/mssql-connector.ko.md +13 -9
  258. package/helps/integration/connector/mssql-connector.md +13 -9
  259. package/helps/integration/connector/mssql-connector.ms.md +13 -9
  260. package/helps/integration/connector/mssql-connector.zh.md +13 -9
  261. package/helps/integration/connector/operato-connector.ja.md +0 -3
  262. package/package.json +11 -10
  263. package/server/controllers/scenario-controller.ts +55 -19
  264. package/server/engine/connector/mssql-connector.ts +20 -4
  265. package/server/engine/index.ts +1 -1
  266. package/server/engine/types.ts +2 -2
  267. package/server/restful/unstable/run-scenario.ts +0 -1
  268. package/server/routers/scenario-schedule-callback-router.ts +2 -2
  269. package/server/service/connection/connection-query.ts +13 -4
  270. package/server/service/payload-log/payload-log-query.ts +4 -1
  271. package/server/service/payload-log/payload-log.ts +2 -2
  272. package/server/service/scenario/scenario-query.ts +1 -1
  273. package/server/service/scenario/scenario-type.ts +6 -0
  274. package/server/service/scenario/scenario.ts +6 -2
  275. package/server/service/scenario-instance/scenario-instance-mutation.ts +7 -4
  276. package/server/service/scenario-instance/scenario-instance-query.ts +4 -30
  277. package/server/service/scenario-instance/scenario-instance-type.ts +87 -9
  278. package/server/service/state-register/state-register-query.ts +4 -1
  279. package/server/service/step/step-query.ts +1 -1
  280. package/server/service/step/step-type.ts +22 -22
  281. package/translations/en.json +2 -1
  282. package/translations/ja.json +2 -1
  283. package/translations/ko.json +2 -1
  284. package/translations/ms.json +2 -1
  285. package/translations/zh.json +2 -1
@@ -2,7 +2,7 @@ import { Arg, Ctx, Mutation, Resolver } from 'type-graphql'
2
2
 
3
3
  import { ScalarObject } from '@things-factory/shell'
4
4
 
5
- import { ScenarioInstance } from './scenario-instance-type'
5
+ import { ScenarioInstance, ScenarioInstanceRunResult } from './scenario-instance-type'
6
6
 
7
7
  import {
8
8
  runScenario as controllerRunScenario,
@@ -12,7 +12,7 @@ import {
12
12
 
13
13
  @Resolver(ScenarioInstance)
14
14
  export class ScenarioInstanceMutation {
15
- @Mutation(returns => ScenarioInstance, {
15
+ @Mutation(returns => ScenarioInstanceRunResult, {
16
16
  description: 'To run new scenario instance and will return the result after the scenario stop.'
17
17
  })
18
18
  async runScenario(
@@ -20,7 +20,7 @@ export class ScenarioInstanceMutation {
20
20
  @Arg('scenarioName') scenarioName: string,
21
21
  @Arg('variables', type => ScalarObject, { nullable: true }) variables: any,
22
22
  @Ctx() context: ResolverContext
23
- ): Promise<ScenarioInstance> {
23
+ ): Promise<ScenarioInstanceRunResult> {
24
24
  return await controllerRunScenario(instanceName, scenarioName, variables, context)
25
25
  }
26
26
 
@@ -35,7 +35,10 @@ export class ScenarioInstanceMutation {
35
35
  }
36
36
 
37
37
  @Mutation(returns => ScenarioInstance, { nullable: true, description: 'To start new scenario instance' })
38
- async stopScenario(@Arg('instanceName', { nullable: true }) instanceName: string, @Ctx() context: ResolverContext): Promise<ScenarioInstance | undefined> {
38
+ async stopScenario(
39
+ @Arg('instanceName', { nullable: true }) instanceName: string,
40
+ @Ctx() context: ResolverContext
41
+ ): Promise<ScenarioInstance | undefined> {
39
42
  return await controllerStopScenario(instanceName, context)
40
43
  }
41
44
  }
@@ -23,7 +23,10 @@ export class ScenarioInstanceQuery {
23
23
  }
24
24
 
25
25
  @Query(returns => ScenarioInstanceList, { description: 'To fetch multiple scenario instances' })
26
- async scenarioInstances(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<ScenarioInstanceList> {
26
+ async scenarioInstances(
27
+ @Args(type => ListParam) params: ListParam,
28
+ @Ctx() context: ResolverContext
29
+ ): Promise<ScenarioInstanceList> {
27
30
  const { domain } = context.state
28
31
 
29
32
  var scenarioInstances = ScenarioEngine.getScenarioInstances(domain)
@@ -36,33 +39,4 @@ export class ScenarioInstanceQuery {
36
39
  total: items.length
37
40
  }
38
41
  }
39
-
40
- @FieldResolver(type => ScenarioInstance)
41
- async root(@Root() scenarioInstance: ScenarioInstance): Promise<ScenarioInstance> {
42
- return scenarioInstance.context?.root as ScenarioInstance
43
- }
44
-
45
- @FieldResolver(type => ScenarioInstanceStatus)
46
- async state(@Root() scenarioInstance: ScenarioInstance): Promise<ScenarioInstanceStatus> {
47
- return scenarioInstance.context?.state
48
- }
49
-
50
- @FieldResolver(type => ScenarioInstanceProgress)
51
- progress(@Root() scenarioInstance: ScenarioInstance): ScenarioInstanceProgress {
52
- return scenarioInstance.calcProgress()
53
- }
54
- @FieldResolver(type => ScalarObject)
55
- async variables(@Root() scenarioInstance: ScenarioInstance): Promise<Object> {
56
- return scenarioInstance.context?.variables
57
- }
58
-
59
- @FieldResolver(type => ScalarObject)
60
- async data(@Root() scenarioInstance: ScenarioInstance): Promise<Object> {
61
- return scenarioInstance.context?.data
62
- }
63
-
64
- @FieldResolver()
65
- async timestamp(@Root() scenarioInstance: ScenarioInstance): Promise<Date> {
66
- return new Date()
67
- }
68
42
  }
@@ -7,6 +7,7 @@ import util from 'util'
7
7
  import { createLogger, format, transports } from 'winston'
8
8
 
9
9
  import { Domain, pubsub, PubSubLogTransport, ScalarObject } from '@things-factory/shell'
10
+ import { cacheService } from '@things-factory/cache-service'
10
11
  import { User } from '@things-factory/auth-base'
11
12
  import { sleep } from '@things-factory/utils'
12
13
 
@@ -87,6 +88,33 @@ export class ScenarioInstanceState {
87
88
  public timestamp: Date
88
89
  }
89
90
 
91
+ @ObjectType()
92
+ export class ScenarioInstanceRunResult {
93
+ @Field({ nullable: true })
94
+ public scenarioName: string
95
+
96
+ @Field({ nullable: true })
97
+ public instanceName: string
98
+
99
+ @Field(type => ScalarObject, { nullable: true })
100
+ public variables: any
101
+
102
+ @Field(type => ScalarObject, { nullable: true })
103
+ public data: any
104
+
105
+ @Field(type => ScalarObject, { nullable: true })
106
+ public result: any
107
+
108
+ @Field({ nullable: true })
109
+ public timestamp: Date
110
+
111
+ @Field({ nullable: true })
112
+ public message: string
113
+
114
+ @Field({ nullable: true })
115
+ public state: ScenarioInstanceStatus
116
+ }
117
+
90
118
  @ObjectType()
91
119
  export class ScenarioInstance {
92
120
  private subScenarioInstances: ScenarioInstance[] = [] // TODO Imple by WeakSet
@@ -106,29 +134,43 @@ export class ScenarioInstance {
106
134
  public instanceName: string
107
135
 
108
136
  @Field({ nullable: true })
109
- root: ScenarioInstance
137
+ get root(): ScenarioInstance {
138
+ return this.context?.root
139
+ }
110
140
 
111
141
  @Field({ nullable: true })
112
- state: ScenarioInstanceStatus
142
+ get state(): ScenarioInstanceStatus {
143
+ return this.context?.state
144
+ }
113
145
 
114
146
  @Field(type => ScenarioInstanceProgress, { nullable: true })
115
- progress: ScenarioInstanceProgress
147
+ get progress(): ScenarioInstanceProgress {
148
+ return this.calcProgress()
149
+ }
116
150
 
117
151
  @Field(type => ScalarObject, { nullable: true })
118
- variables: any
152
+ get variables(): any {
153
+ return this.context?.variables
154
+ }
119
155
 
120
156
  @Field(type => ScalarObject, { nullable: true })
121
- data: any
157
+ get data(): any {
158
+ return this.context?.data
159
+ }
122
160
 
123
161
  @Field(type => ScalarObject, { nullable: true })
124
162
  result: any
125
163
 
126
164
  @Field({ nullable: true })
127
- timestamp: Date
165
+ get timestamp(): Date {
166
+ return new Date()
167
+ }
128
168
 
129
169
  @Field({ nullable: true })
130
170
  public message: string
131
171
 
172
+ private scenarioId: string
173
+ private scenarioTtl: number
132
174
  private steps: Step[]
133
175
  private rounds: number = 0
134
176
 
@@ -154,10 +196,22 @@ export class ScenarioInstance {
154
196
  }
155
197
  }
156
198
 
157
- constructor(instanceName, { name: scenarioName, steps, domain: scenarioDomain }, context?) {
199
+ constructor(
200
+ instanceName,
201
+ {
202
+ id: scenarioId,
203
+ ttl: scenarioTtl,
204
+ name: scenarioName,
205
+ steps,
206
+ domain: scenarioDomain
207
+ }: { id: string; ttl?: number; name: string; steps: Step[]; domain: Domain },
208
+ context?
209
+ ) {
158
210
  var { domain, user, lng, unsafeIP, prohibitedPrivileges } = context || {}
159
211
  domain ||= scenarioDomain
160
212
 
213
+ this.scenarioId = scenarioId
214
+ this.scenarioTtl = scenarioTtl
161
215
  this.instanceName = instanceName
162
216
  this.scenarioName = scenarioName
163
217
  this.steps = orderBy(steps || [], step => step.sequence)
@@ -269,7 +323,10 @@ export class ScenarioInstance {
269
323
  this.context.logger.error(ex.message ? ex.message : ex)
270
324
 
271
325
  debug('failed to run ', `[ Domain: ${domain.name}, Scenario: ${scenarioName} ]\n`, ex)
272
- this.setState(ScenarioInstanceStatus.HALTED, typeof message == 'object' ? JSON.stringify(message, null, 2) : message)
326
+ this.setState(
327
+ ScenarioInstanceStatus.HALTED,
328
+ typeof message == 'object' ? JSON.stringify(message, null, 2) : message
329
+ )
273
330
 
274
331
  throw ex
275
332
  }
@@ -280,6 +337,26 @@ export class ScenarioInstance {
280
337
  sum[step.name] = this.context.data[step.name]
281
338
  return sum
282
339
  }, {})
340
+
341
+ const { scenarioId, scenarioTtl, variables, message, scenarioName, instanceName, result, domain } = this
342
+ const obj = {
343
+ scenarioName,
344
+ instanceName,
345
+ variables,
346
+ data: this.data,
347
+ result,
348
+ timestamp: new Date(),
349
+ message,
350
+ state: ScenarioInstanceStatus.STOPPED /* redundent, no meaning */
351
+ }
352
+
353
+ if (this.scenarioTtl && this.scenarioId) {
354
+ setTimeout(() => {
355
+ cacheService.setInCache(scenarioId, { domain: domain.id, variables: variables || {} }, obj, scenarioTtl)
356
+ })
357
+ }
358
+
359
+ return obj
283
360
  }
284
361
 
285
362
  async loadSubscenario(step, scenarioConfig, context) {
@@ -442,7 +519,8 @@ export class ScenarioInstance {
442
519
  }
443
520
  step.params = step.params || {}
444
521
 
445
- const connection = step.connection && ConnectionManager.getConnectionInstanceEntityByName(this.domain, step.connection)
522
+ const connection =
523
+ step.connection && ConnectionManager.getConnectionInstanceEntityByName(this.domain, step.connection)
446
524
 
447
525
  if (!connection || !connection.edgeId) {
448
526
  var handler = TaskRegistry.getTaskHandler(step.task)
@@ -28,7 +28,10 @@ export class StateRegisterQuery {
28
28
 
29
29
  @Directive('@privilege(category: "state-register", privilege: "query", domainOwnerGranted: true)')
30
30
  @Query(returns => StateRegisterList, { description: 'To fetch multiple StateRegisters' })
31
- async stateRegisters(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<StateRegisterList> {
31
+ async stateRegisters(
32
+ @Args(type => ListParam) params: ListParam,
33
+ @Ctx() context: ResolverContext
34
+ ): Promise<StateRegisterList> {
32
35
  const { domain } = context.state
33
36
 
34
37
  const queryBuilder = getQueryBuilderFromListParams({
@@ -18,7 +18,7 @@ export class StepQuery {
18
18
  }
19
19
 
20
20
  @Query(returns => StepList, { description: 'To fetch multiple steps' })
21
- async steps(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<StepList> {
21
+ async steps(@Args(type => ListParam) params: ListParam, @Ctx() context: ResolverContext): Promise<StepList> {
22
22
  const { domain } = context.state
23
23
 
24
24
  const queryBuilder = getQueryBuilderFromListParams({
@@ -24,89 +24,89 @@ export class Step {
24
24
  */
25
25
  @PrimaryGeneratedColumn('uuid')
26
26
  @Field(type => ID)
27
- readonly id: string
27
+ readonly id?: string
28
28
 
29
29
  /**
30
30
  * The domain to which this step belongs.
31
31
  */
32
32
  @ManyToOne(type => Domain)
33
33
  @Field(type => Domain, { nullable: true })
34
- domain: Domain
34
+ domain?: Domain
35
35
 
36
36
  /**
37
37
  * The ID of the domain associated with this step.
38
38
  */
39
39
  @RelationId((step: Step) => step.domain)
40
- domainId: string
40
+ domainId?: string
41
41
 
42
42
  /**
43
43
  * The name of the step.
44
44
  */
45
45
  @Column({ nullable: true })
46
46
  @Field()
47
- name: string
47
+ name?: string
48
48
 
49
49
  /**
50
50
  * A description of what the step involves.
51
51
  */
52
52
  @Column({ nullable: true })
53
53
  @Field({ nullable: true })
54
- description: string
54
+ description?: string
55
55
 
56
56
  /**
57
57
  * The scenario that includes this step.
58
58
  */
59
59
  @ManyToOne(type => Scenario, scenario => scenario.steps, { onDelete: 'CASCADE' })
60
60
  @Field(type => Scenario, { nullable: true })
61
- scenario: Scenario
61
+ scenario?: Scenario
62
62
 
63
63
  /**
64
64
  * The ID of the scenario associated with this step.
65
65
  */
66
66
  @RelationId((step: Step) => step.scenario)
67
- scenarioId: string
67
+ scenarioId?: string
68
68
 
69
69
  /**
70
70
  * The sequence number of the step within its scenario.
71
71
  */
72
72
  @Column()
73
73
  @Field({ nullable: true })
74
- sequence: number
74
+ sequence?: number
75
75
 
76
76
  /**
77
77
  * The specific task associated with this step.
78
78
  */
79
79
  @Column()
80
80
  @Field({ nullable: true })
81
- task: string
81
+ task?: string
82
82
 
83
83
  /**
84
84
  * Boolean value to indicate if the step should be skipped.
85
85
  */
86
86
  @Column({ nullable: true })
87
87
  @Field({ nullable: true })
88
- skip: boolean
88
+ skip?: boolean
89
89
 
90
90
  /**
91
91
  * Boolean value to indicate if the step should be logged.
92
92
  */
93
93
  @Column({ nullable: true })
94
94
  @Field({ nullable: true })
95
- log: boolean
95
+ log?: boolean
96
96
 
97
97
  /**
98
98
  * The connection details associated with this step.
99
99
  */
100
100
  @Column({ nullable: true })
101
101
  @Field({ nullable: true })
102
- connection: string
102
+ connection?: string
103
103
 
104
104
  /**
105
105
  * The parameters for the step.
106
106
  */
107
107
  @Column({ nullable: true })
108
108
  @Field({ nullable: true })
109
- params: string
109
+ params?: string
110
110
 
111
111
  /**
112
112
  * A boolean attribute indicating the inclusion status of an element in the result.
@@ -116,14 +116,14 @@ export class Step {
116
116
  nullable: true,
117
117
  description: 'A boolean attribute indicating the inclusion status of an element in the result'
118
118
  })
119
- result: boolean = true
119
+ result?: boolean = true
120
120
 
121
121
  /**
122
122
  * The timestamp when the step was created.
123
123
  */
124
124
  @CreateDateColumn()
125
125
  @Field({ nullable: true })
126
- createdAt: Date
126
+ createdAt?: Date
127
127
 
128
128
  /**
129
129
  * The timestamp when
@@ -131,33 +131,33 @@ export class Step {
131
131
  */
132
132
  @UpdateDateColumn()
133
133
  @Field({ nullable: true })
134
- updatedAt: Date
134
+ updatedAt?: Date
135
135
 
136
136
  /**
137
137
  * The user who created this step.
138
138
  */
139
139
  @ManyToOne(type => User, { nullable: true })
140
- @Field({ nullable: true })
141
- creator: User
140
+ @Field(type => User, { nullable: true })
141
+ creator?: User
142
142
 
143
143
  /**
144
144
  * The ID of the user who created this step.
145
145
  */
146
146
  @RelationId((step: Step) => step.creator)
147
- creatorId: string
147
+ creatorId?: string
148
148
 
149
149
  /**
150
150
  * The user who last updated this step.
151
151
  */
152
152
  @ManyToOne(type => User, { nullable: true })
153
- @Field({ nullable: true })
154
- updater: User
153
+ @Field(type => User, { nullable: true })
154
+ updater?: User
155
155
 
156
156
  /**
157
157
  * The ID of the user who last updated this step.
158
158
  */
159
159
  @RelationId((step: Step) => step.updater)
160
- updaterId: string
160
+ updaterId?: string
161
161
  }
162
162
 
163
163
  @InputType()
@@ -6,5 +6,6 @@
6
6
  "error.timezone is not set": "timezone should be set for the scenario '{scenario}' in order to register as a schedule",
7
7
  "error.scenario instance not found": "scenario instance '{instance}' not found.",
8
8
  "label.auth-key": "authentication key",
9
- "label.subscription-handlers": "subscription handlers"
9
+ "label.subscription-handlers": "subscription handlers",
10
+ "label.trust-server-certificate": "trust server certificate"
10
11
  }
@@ -6,5 +6,6 @@
6
6
  "error.timezone is not set": "スケジュールとして登録するためにはシナリオ'{scenario}'にタイム ゾーン情報が設定される必要があります.",
7
7
  "error.scenario instance not found": "シナリオ インスタンス'{instance}'が見つかりません. 既に終了している可能性があります.",
8
8
  "label.auth-key": "認証キー",
9
- "label.subscription-handlers": "サブスクリプションハンドラー"
9
+ "label.subscription-handlers": "サブスクリプションハンドラー",
10
+ "label.trust-server-certificate": "サーバー証明書を信頼する"
10
11
  }
@@ -6,5 +6,6 @@
6
6
  "error.timezone is not set": "스케쥴로 등록하기 위해서는 시나리오 '{scenario}'에 타임존 정보가 설정되어야 합니다.",
7
7
  "error.scenario instance not found": "시나리오 인스턴스 '{instance}'를 찾을 수 없습니다. 이미 종료되었을 수 있습니다.",
8
8
  "label.auth-key": "인증 키",
9
- "label.subscription-handlers": "구독 핸들러"
9
+ "label.subscription-handlers": "구독 핸들러",
10
+ "label.trust-server-certificate": "서버 인증서 신뢰"
10
11
  }
@@ -6,5 +6,6 @@
6
6
  "error.timezone is not set": "Untuk mendaftarkan sebagai jadual, maklumat zon masa mesti diset dalam senario '{scenario}'.",
7
7
  "error.scenario instance not found": "Tidak dapat mencari instans senario '{instance}'. Mungkin telah berakhir.",
8
8
  "label.auth-key": "Kunci pengesahan",
9
- "label.subscription-handlers": "pengendali langganan"
9
+ "label.subscription-handlers": "pengendali langganan",
10
+ "label.trust-server-certificate": "percaya sijil pelayan"
10
11
  }
@@ -6,5 +6,6 @@
6
6
  "error.timezone is not set": "要注册为计划,场景 '{scenario}' 需要设置时区信息。",
7
7
  "error.scenario instance not found": "无法找到场景实例 '{instance}'。它可能已经结束。",
8
8
  "label.auth-key": "认证密钥",
9
- "label.subscription-handlers": "订阅处理程序"
9
+ "label.subscription-handlers": "订阅处理程序",
10
+ "label.trust-server-certificate": "信任服务器证书"
10
11
  }