@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
@@ -1 +1 @@
1
- {"version":3,"file":"scenario-instance-type.js","sourceRoot":"","sources":["../../../server/service/scenario-instance/scenario-instance-type.ts"],"names":[],"mappings":"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","sourcesContent":["import 'winston-daily-rotate-file'\n\nimport orderBy from 'lodash/orderBy'\nimport moment from 'moment-timezone'\nimport { Field, Int, ObjectType, registerEnumType } from 'type-graphql'\nimport util from 'util'\nimport { createLogger, format, transports } from 'winston'\n\nimport { Domain, pubsub, PubSubLogTransport, ScalarObject } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { sleep } from '@things-factory/utils'\n\nimport { ConnectionManager } from '../../engine/connection-manager'\nimport { TaskRegistry } from '../../engine'\nimport { Context } from '../../engine/types'\nimport { Step } from '../step/step-type'\nimport { handler as edgeHandler } from '../../engine/edge-client'\n\nconst debug = require('debug')('things-factory:integration-base:scenario-instance')\nconst { combine, timestamp, splat, printf } = format\n\nconst LOGFORMAT = printf(({ level, message, timestamp }) => {\n return `${timestamp} ${level}: ${message}`\n})\n\nconst SYSTEM_TZ = Intl.DateTimeFormat().resolvedOptions().timeZone\nconst systemTimestamp = format((info, opts) => {\n if (opts.tz) info.timestamp = moment().tz(opts.tz).format()\n return info\n})\n\nexport enum ScenarioInstanceStatus {\n READY = 'READY',\n STARTED = 'STARTED',\n STOPPED = 'STOPPED',\n HALTED = 'HALTED',\n UNLOADED = 'UNLOADED'\n}\n\nregisterEnumType(ScenarioInstanceStatus, {\n name: 'ScenarioInstanceStatus',\n description: 'state enumeration of a scenario-instance'\n})\n\n@ObjectType()\nexport class ScenarioInstanceProgress {\n @Field(type => Int)\n rounds: number\n\n @Field(type => Int)\n rate: number\n\n @Field(type => Int)\n steps: number\n\n @Field(type => Int)\n step: number\n}\n\n@ObjectType()\nexport class ScenarioInstanceState {\n @Field({ nullable: true })\n public domain: Domain\n\n @Field({ nullable: true })\n public instanceName: string\n\n @Field({ nullable: true })\n public scenarioName: string\n\n @Field(type => ScenarioInstanceStatus, { nullable: true })\n public state: ScenarioInstanceStatus\n\n @Field(type => ScalarObject, { nullable: true })\n public variables: any\n\n @Field(type => ScalarObject, { nullable: true })\n public data: any\n\n @Field(type => ScenarioInstanceProgress, { nullable: true })\n public progress: ScenarioInstanceProgress\n\n @Field({ nullable: true })\n public message: string\n\n @Field({ nullable: true })\n public timestamp: Date\n}\n\n@ObjectType()\nexport class ScenarioInstance {\n private subScenarioInstances: ScenarioInstance[] = [] // TODO Imple by WeakSet\n\n public context: Context\n\n @Field({ nullable: true })\n public domain: Domain\n\n @Field({ nullable: true })\n public user: User\n\n @Field({ nullable: true })\n public scenarioName: string\n\n @Field({ nullable: true })\n public instanceName: string\n\n @Field({ nullable: true })\n root: ScenarioInstance\n\n @Field({ nullable: true })\n state: ScenarioInstanceStatus\n\n @Field(type => ScenarioInstanceProgress, { nullable: true })\n progress: ScenarioInstanceProgress\n\n @Field(type => ScalarObject, { nullable: true })\n variables: any\n\n @Field(type => ScalarObject, { nullable: true })\n data: any\n\n @Field(type => ScalarObject, { nullable: true })\n result: any\n\n @Field({ nullable: true })\n timestamp: Date\n\n @Field({ nullable: true })\n public message: string\n\n private steps: Step[]\n private rounds: number = 0\n\n private lastStep: number = -1\n private nextStep: number = -1\n private disposer: any\n public addSubScenarioInstance(instance: ScenarioInstance): ScenarioInstance[] {\n this.subScenarioInstances.push(instance)\n return this.subScenarioInstances\n }\n\n public getSubScenarioInstances(): ScenarioInstance[] {\n return this.subScenarioInstances\n }\n\n public async stopSubScenarios() {\n var subScenarioInstances = this.getSubScenarioInstances()\n\n var subInstance = subScenarioInstances.pop()\n while (subInstance) {\n await subInstance.dispose()\n subInstance = subScenarioInstances.pop()\n }\n }\n\n constructor(instanceName, { name: scenarioName, steps, domain: scenarioDomain }, context?) {\n var { domain, user, lng, unsafeIP, prohibitedPrivileges } = context || {}\n domain ||= scenarioDomain\n\n this.instanceName = instanceName\n this.scenarioName = scenarioName\n this.steps = orderBy(steps || [], step => step.sequence)\n this.domain = domain\n this.user = user\n this.disposer = context?.disposer\n\n this.context = {\n domain,\n user,\n lng,\n unsafeIP,\n prohibitedPrivileges,\n logger:\n context?.logger ||\n createLogger({\n format: combine(systemTimestamp({ tz: SYSTEM_TZ }), splat(), LOGFORMAT),\n transports: [\n new (transports as any).DailyRotateFile({\n filename: `logs/${domain.subdomain}/scenario-${scenarioName}-%DATE%.log`,\n datePattern: 'YYYY-MM-DD-HH',\n zippedArchive: false,\n maxSize: '5m',\n maxFiles: '14d',\n level: 'info'\n }),\n new PubSubLogTransport({\n topic: 'scenario-instance-log',\n source: { domain, scenarioName, instanceName }\n })\n ]\n }),\n publish: context?.publish || this.publishData.bind(this),\n load: context?.load || this.loadSubscenario.bind(this),\n data: context?.data || {},\n variables: context?.variables || {},\n client: context?.client,\n state: ScenarioInstanceStatus.STOPPED,\n root: context?.root || this,\n closures: [],\n checkState(state = ScenarioInstanceStatus.STARTED) {\n return this.state == state\n }\n }\n\n this.setState(ScenarioInstanceStatus.READY)\n }\n\n async run() {\n var state = this.getState()\n if (state == ScenarioInstanceStatus.STARTED || this.steps.length == 0) {\n return\n }\n\n this.setState(ScenarioInstanceStatus.STARTED)\n var context = this.context\n\n try {\n while (this.getState() == ScenarioInstanceStatus.STARTED) {\n if (this.nextStep == -1) {\n this.setNextStep(0)\n }\n\n if (this.nextStep == 0) {\n this.rounds++\n this.context.logger.info(`Start ${this.rounds} Rounds #######`)\n }\n\n var step = this.steps[this.nextStep]\n var next, data\n\n if (!step.skip) {\n // @ts-ignore: Initializer provides no value for this binding element and the binding element has no default value.\n var { next, state: stepState, data } = (await this.process(step, context)) || {}\n context.data[step.name] = data\n } else {\n next = ''\n stepState = undefined\n }\n\n this.publishState()\n\n await sleep(1)\n\n if (next) {\n this.setNextStep(\n this.steps.findIndex(step => {\n return step.name == next\n })\n )\n if (this.nextStep == -1) {\n throw 'Not Found Next Step'\n }\n } else if (this.nextStep == this.steps.length - 1) {\n this.setState(ScenarioInstanceStatus.STOPPED)\n } else {\n this.setNextStep(this.nextStep + 1)\n }\n\n /* last step 에 의해서 시나리오 state를 변경할 수 있도록 함. */\n if (stepState !== undefined) {\n this.setState(stepState)\n }\n }\n } catch (ex) {\n const message = ex.stack ? ex.stack : ex\n const { scenarioName, domain } = this\n\n this.context.logger.error(ex.message ? ex.message : ex)\n\n debug('failed to run ', `[ Domain: ${domain.name}, Scenario: ${scenarioName} ]\\n`, ex)\n this.setState(ScenarioInstanceStatus.HALTED, typeof message == 'object' ? JSON.stringify(message, null, 2) : message)\n\n throw ex\n }\n\n this.result = this.steps\n .filter(step => !!step.result)\n .reduce((sum, step) => {\n sum[step.name] = this.context.data[step.name]\n return sum\n }, {})\n }\n\n async loadSubscenario(step, scenarioConfig, context) {\n var { name: stepName, params } = step\n var { preventErrorPropagation } = params || {}\n\n debug('load-subscenario', this.instanceName, stepName, scenarioConfig.name)\n\n context.data[stepName] = {}\n\n let subContext = {\n ...context,\n data: context.data[stepName],\n closures: [],\n state: ScenarioInstanceStatus.READY\n }\n\n if (!scenarioConfig.domain) {\n scenarioConfig.domain = context.domain\n }\n\n var subScenarioInstance = new ScenarioInstance(`${this.instanceName}$${stepName}`, scenarioConfig, subContext)\n this.addSubScenarioInstance(subScenarioInstance)\n await subScenarioInstance.run()\n\n if (!preventErrorPropagation && subScenarioInstance.getState() == ScenarioInstanceStatus.HALTED) {\n throw new Error(`Sub-scenario[${this.instanceName}$${stepName}] is halted.`)\n }\n\n return subContext\n }\n\n publishData(tag, data) {\n pubsub.publish('data', {\n data: {\n domain: this.context.domain,\n tag,\n data\n }\n })\n }\n\n publishState() {\n const {\n instanceName,\n scenarioName,\n steps,\n domain,\n message,\n context: { data, variables, state }\n } = this\n\n pubsub.publish('scenario-instance-state', {\n scenarioInstanceState: {\n domain,\n instanceName,\n scenarioName,\n state,\n variables,\n progress: this.calcProgress(),\n data,\n message,\n timestamp: new Date()\n }\n })\n\n this.context.logger.info(this.message)\n }\n\n calcProgress(): ScenarioInstanceProgress {\n var steps = this.steps.length\n var step = Math.max(this.lastStep, 0)\n\n return {\n rounds: this.rounds,\n rate: steps ? Math.round(100 * (step / steps)) : 0,\n steps,\n step\n }\n }\n\n setNextStep(step) {\n this.lastStep = this.nextStep + 1\n this.nextStep = step\n }\n\n getState(): ScenarioInstanceStatus {\n return this.context.state\n }\n\n setState(state, message?) {\n if (this.context.state == state) {\n return\n }\n\n this.message = `${this.instanceName}:[state changed] ${ScenarioInstanceStatus[this.getState()]} => ${ScenarioInstanceStatus[state]}${\n message ? ' caused by ' + util.inspect(message, false, 2, true) : ''\n }`\n\n this.context.state = state\n\n if (state == ScenarioInstanceStatus.STOPPED || state == ScenarioInstanceStatus.HALTED) {\n this.setNextStep(-1)\n this.setState(ScenarioInstanceStatus.UNLOADED)\n } else if (state == ScenarioInstanceStatus.UNLOADED) {\n this.setNextStep(-1)\n this.dispose()\n }\n\n this.publishState()\n }\n\n async start() {\n await this.run()\n }\n\n stop() {\n if (this.getState() !== ScenarioInstanceStatus.HALTED) {\n this.setState(ScenarioInstanceStatus.STOPPED)\n }\n }\n\n unload() {\n this.setState(ScenarioInstanceStatus.UNLOADED)\n }\n\n async dispose() {\n await this.stopSubScenarios()\n\n this.unload()\n\n var closure = this.context?.closures?.pop()\n while (closure) {\n closure.call(this)\n closure = this.context?.closures?.pop()\n }\n\n if (this.disposer) {\n await this.disposer.call(this)\n }\n\n // {{ CHECKPOINT 본 인스턴스를 위해서 생성된 logger를 닫는다.\n if (this.context?.logger) {\n this.context.logger.close()\n }\n // }}\n }\n\n async process(step, context): Promise<{ next: string; state: ScenarioInstanceStatus; data: object }> {\n this.context.logger.info(`Step '${step.name}'(${step.id}) started.`)\n\n step = {\n ...step\n } // copy step\n\n try {\n step.params = JSON.parse(step.params)\n } catch (ex) {\n this.context.logger.error(`params(${step.params}) parsing error. params must be a JSON.`)\n }\n step.params = step.params || {}\n\n const connection = step.connection && ConnectionManager.getConnectionInstanceEntityByName(this.domain, step.connection)\n\n if (!connection || !connection.edgeId) {\n var handler = TaskRegistry.getTaskHandler(step.task)\n if (!handler) {\n throw new Error(`no task handler for step '${step.name}'(${step.id})`)\n }\n\n var retval: any = await handler(step, context)\n } else {\n var retval: any = await edgeHandler(step, context)\n }\n\n if (step.log) {\n var { data } = retval || {}\n this.context.logger.info(`returns ${typeof data == 'string' ? data : JSON.stringify(data, null, 2)}`)\n }\n\n this.context.logger.info(`Step done.`)\n return retval\n }\n}\n\n@ObjectType()\nexport class ScenarioInstanceList {\n @Field(type => [ScenarioInstance])\n items: ScenarioInstance[]\n\n @Field(type => Int)\n total: number\n}\n"]}
1
+ {"version":3,"file":"scenario-instance-type.js","sourceRoot":"","sources":["../../../server/service/scenario-instance/scenario-instance-type.ts"],"names":[],"mappings":"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","sourcesContent":["import 'winston-daily-rotate-file'\n\nimport orderBy from 'lodash/orderBy'\nimport moment from 'moment-timezone'\nimport { Field, Int, ObjectType, registerEnumType } from 'type-graphql'\nimport util from 'util'\nimport { createLogger, format, transports } from 'winston'\n\nimport { Domain, pubsub, PubSubLogTransport, ScalarObject } from '@things-factory/shell'\nimport { cacheService } from '@things-factory/cache-service'\nimport { User } from '@things-factory/auth-base'\nimport { sleep } from '@things-factory/utils'\n\nimport { ConnectionManager } from '../../engine/connection-manager'\nimport { TaskRegistry } from '../../engine'\nimport { Context } from '../../engine/types'\nimport { Step } from '../step/step-type'\nimport { handler as edgeHandler } from '../../engine/edge-client'\n\nconst debug = require('debug')('things-factory:integration-base:scenario-instance')\nconst { combine, timestamp, splat, printf } = format\n\nconst LOGFORMAT = printf(({ level, message, timestamp }) => {\n return `${timestamp} ${level}: ${message}`\n})\n\nconst SYSTEM_TZ = Intl.DateTimeFormat().resolvedOptions().timeZone\nconst systemTimestamp = format((info, opts) => {\n if (opts.tz) info.timestamp = moment().tz(opts.tz).format()\n return info\n})\n\nexport enum ScenarioInstanceStatus {\n READY = 'READY',\n STARTED = 'STARTED',\n STOPPED = 'STOPPED',\n HALTED = 'HALTED',\n UNLOADED = 'UNLOADED'\n}\n\nregisterEnumType(ScenarioInstanceStatus, {\n name: 'ScenarioInstanceStatus',\n description: 'state enumeration of a scenario-instance'\n})\n\n@ObjectType()\nexport class ScenarioInstanceProgress {\n @Field(type => Int)\n rounds: number\n\n @Field(type => Int)\n rate: number\n\n @Field(type => Int)\n steps: number\n\n @Field(type => Int)\n step: number\n}\n\n@ObjectType()\nexport class ScenarioInstanceState {\n @Field({ nullable: true })\n public domain: Domain\n\n @Field({ nullable: true })\n public instanceName: string\n\n @Field({ nullable: true })\n public scenarioName: string\n\n @Field(type => ScenarioInstanceStatus, { nullable: true })\n public state: ScenarioInstanceStatus\n\n @Field(type => ScalarObject, { nullable: true })\n public variables: any\n\n @Field(type => ScalarObject, { nullable: true })\n public data: any\n\n @Field(type => ScenarioInstanceProgress, { nullable: true })\n public progress: ScenarioInstanceProgress\n\n @Field({ nullable: true })\n public message: string\n\n @Field({ nullable: true })\n public timestamp: Date\n}\n\n@ObjectType()\nexport class ScenarioInstanceRunResult {\n @Field({ nullable: true })\n public scenarioName: string\n\n @Field({ nullable: true })\n public instanceName: string\n\n @Field(type => ScalarObject, { nullable: true })\n public variables: any\n\n @Field(type => ScalarObject, { nullable: true })\n public data: any\n\n @Field(type => ScalarObject, { nullable: true })\n public result: any\n\n @Field({ nullable: true })\n public timestamp: Date\n\n @Field({ nullable: true })\n public message: string\n\n @Field({ nullable: true })\n public state: ScenarioInstanceStatus\n}\n\n@ObjectType()\nexport class ScenarioInstance {\n private subScenarioInstances: ScenarioInstance[] = [] // TODO Imple by WeakSet\n\n public context: Context\n\n @Field({ nullable: true })\n public domain: Domain\n\n @Field({ nullable: true })\n public user: User\n\n @Field({ nullable: true })\n public scenarioName: string\n\n @Field({ nullable: true })\n public instanceName: string\n\n @Field({ nullable: true })\n get root(): ScenarioInstance {\n return this.context?.root\n }\n\n @Field({ nullable: true })\n get state(): ScenarioInstanceStatus {\n return this.context?.state\n }\n\n @Field(type => ScenarioInstanceProgress, { nullable: true })\n get progress(): ScenarioInstanceProgress {\n return this.calcProgress()\n }\n\n @Field(type => ScalarObject, { nullable: true })\n get variables(): any {\n return this.context?.variables\n }\n\n @Field(type => ScalarObject, { nullable: true })\n get data(): any {\n return this.context?.data\n }\n\n @Field(type => ScalarObject, { nullable: true })\n result: any\n\n @Field({ nullable: true })\n get timestamp(): Date {\n return new Date()\n }\n\n @Field({ nullable: true })\n public message: string\n\n private scenarioId: string\n private scenarioTtl: number\n private steps: Step[]\n private rounds: number = 0\n\n private lastStep: number = -1\n private nextStep: number = -1\n private disposer: any\n public addSubScenarioInstance(instance: ScenarioInstance): ScenarioInstance[] {\n this.subScenarioInstances.push(instance)\n return this.subScenarioInstances\n }\n\n public getSubScenarioInstances(): ScenarioInstance[] {\n return this.subScenarioInstances\n }\n\n public async stopSubScenarios() {\n var subScenarioInstances = this.getSubScenarioInstances()\n\n var subInstance = subScenarioInstances.pop()\n while (subInstance) {\n await subInstance.dispose()\n subInstance = subScenarioInstances.pop()\n }\n }\n\n constructor(\n instanceName,\n {\n id: scenarioId,\n ttl: scenarioTtl,\n name: scenarioName,\n steps,\n domain: scenarioDomain\n }: { id: string; ttl?: number; name: string; steps: Step[]; domain: Domain },\n context?\n ) {\n var { domain, user, lng, unsafeIP, prohibitedPrivileges } = context || {}\n domain ||= scenarioDomain\n\n this.scenarioId = scenarioId\n this.scenarioTtl = scenarioTtl\n this.instanceName = instanceName\n this.scenarioName = scenarioName\n this.steps = orderBy(steps || [], step => step.sequence)\n this.domain = domain\n this.user = user\n this.disposer = context?.disposer\n\n this.context = {\n domain,\n user,\n lng,\n unsafeIP,\n prohibitedPrivileges,\n logger:\n context?.logger ||\n createLogger({\n format: combine(systemTimestamp({ tz: SYSTEM_TZ }), splat(), LOGFORMAT),\n transports: [\n new (transports as any).DailyRotateFile({\n filename: `logs/${domain.subdomain}/scenario-${scenarioName}-%DATE%.log`,\n datePattern: 'YYYY-MM-DD-HH',\n zippedArchive: false,\n maxSize: '5m',\n maxFiles: '14d',\n level: 'info'\n }),\n new PubSubLogTransport({\n topic: 'scenario-instance-log',\n source: { domain, scenarioName, instanceName }\n })\n ]\n }),\n publish: context?.publish || this.publishData.bind(this),\n load: context?.load || this.loadSubscenario.bind(this),\n data: context?.data || {},\n variables: context?.variables || {},\n client: context?.client,\n state: ScenarioInstanceStatus.STOPPED,\n root: context?.root || this,\n closures: [],\n checkState(state = ScenarioInstanceStatus.STARTED) {\n return this.state == state\n }\n }\n\n this.setState(ScenarioInstanceStatus.READY)\n }\n\n async run() {\n var state = this.getState()\n if (state == ScenarioInstanceStatus.STARTED || this.steps.length == 0) {\n return\n }\n\n this.setState(ScenarioInstanceStatus.STARTED)\n var context = this.context\n\n try {\n while (this.getState() == ScenarioInstanceStatus.STARTED) {\n if (this.nextStep == -1) {\n this.setNextStep(0)\n }\n\n if (this.nextStep == 0) {\n this.rounds++\n this.context.logger.info(`Start ${this.rounds} Rounds #######`)\n }\n\n var step = this.steps[this.nextStep]\n var next, data\n\n if (!step.skip) {\n // @ts-ignore: Initializer provides no value for this binding element and the binding element has no default value.\n var { next, state: stepState, data } = (await this.process(step, context)) || {}\n context.data[step.name] = data\n } else {\n next = ''\n stepState = undefined\n }\n\n this.publishState()\n\n await sleep(1)\n\n if (next) {\n this.setNextStep(\n this.steps.findIndex(step => {\n return step.name == next\n })\n )\n if (this.nextStep == -1) {\n throw 'Not Found Next Step'\n }\n } else if (this.nextStep == this.steps.length - 1) {\n this.setState(ScenarioInstanceStatus.STOPPED)\n } else {\n this.setNextStep(this.nextStep + 1)\n }\n\n /* last step 에 의해서 시나리오 state를 변경할 수 있도록 함. */\n if (stepState !== undefined) {\n this.setState(stepState)\n }\n }\n } catch (ex) {\n const message = ex.stack ? ex.stack : ex\n const { scenarioName, domain } = this\n\n this.context.logger.error(ex.message ? ex.message : ex)\n\n debug('failed to run ', `[ Domain: ${domain.name}, Scenario: ${scenarioName} ]\\n`, ex)\n this.setState(\n ScenarioInstanceStatus.HALTED,\n typeof message == 'object' ? JSON.stringify(message, null, 2) : message\n )\n\n throw ex\n }\n\n this.result = this.steps\n .filter(step => !!step.result)\n .reduce((sum, step) => {\n sum[step.name] = this.context.data[step.name]\n return sum\n }, {})\n\n const { scenarioId, scenarioTtl, variables, message, scenarioName, instanceName, result, domain } = this\n const obj = {\n scenarioName,\n instanceName,\n variables,\n data: this.data,\n result,\n timestamp: new Date(),\n message,\n state: ScenarioInstanceStatus.STOPPED /* redundent, no meaning */\n }\n\n if (this.scenarioTtl && this.scenarioId) {\n setTimeout(() => {\n cacheService.setInCache(scenarioId, { domain: domain.id, variables: variables || {} }, obj, scenarioTtl)\n })\n }\n\n return obj\n }\n\n async loadSubscenario(step, scenarioConfig, context) {\n var { name: stepName, params } = step\n var { preventErrorPropagation } = params || {}\n\n debug('load-subscenario', this.instanceName, stepName, scenarioConfig.name)\n\n context.data[stepName] = {}\n\n let subContext = {\n ...context,\n data: context.data[stepName],\n closures: [],\n state: ScenarioInstanceStatus.READY\n }\n\n if (!scenarioConfig.domain) {\n scenarioConfig.domain = context.domain\n }\n\n var subScenarioInstance = new ScenarioInstance(`${this.instanceName}$${stepName}`, scenarioConfig, subContext)\n this.addSubScenarioInstance(subScenarioInstance)\n await subScenarioInstance.run()\n\n if (!preventErrorPropagation && subScenarioInstance.getState() == ScenarioInstanceStatus.HALTED) {\n throw new Error(`Sub-scenario[${this.instanceName}$${stepName}] is halted.`)\n }\n\n return subContext\n }\n\n publishData(tag, data) {\n pubsub.publish('data', {\n data: {\n domain: this.context.domain,\n tag,\n data\n }\n })\n }\n\n publishState() {\n const {\n instanceName,\n scenarioName,\n steps,\n domain,\n message,\n context: { data, variables, state }\n } = this\n\n pubsub.publish('scenario-instance-state', {\n scenarioInstanceState: {\n domain,\n instanceName,\n scenarioName,\n state,\n variables,\n progress: this.calcProgress(),\n data,\n message,\n timestamp: new Date()\n }\n })\n\n this.context.logger.info(this.message)\n }\n\n calcProgress(): ScenarioInstanceProgress {\n var steps = this.steps.length\n var step = Math.max(this.lastStep, 0)\n\n return {\n rounds: this.rounds,\n rate: steps ? Math.round(100 * (step / steps)) : 0,\n steps,\n step\n }\n }\n\n setNextStep(step) {\n this.lastStep = this.nextStep + 1\n this.nextStep = step\n }\n\n getState(): ScenarioInstanceStatus {\n return this.context.state\n }\n\n setState(state, message?) {\n if (this.context.state == state) {\n return\n }\n\n this.message = `${this.instanceName}:[state changed] ${ScenarioInstanceStatus[this.getState()]} => ${ScenarioInstanceStatus[state]}${\n message ? ' caused by ' + util.inspect(message, false, 2, true) : ''\n }`\n\n this.context.state = state\n\n if (state == ScenarioInstanceStatus.STOPPED || state == ScenarioInstanceStatus.HALTED) {\n this.setNextStep(-1)\n this.setState(ScenarioInstanceStatus.UNLOADED)\n } else if (state == ScenarioInstanceStatus.UNLOADED) {\n this.setNextStep(-1)\n this.dispose()\n }\n\n this.publishState()\n }\n\n async start() {\n await this.run()\n }\n\n stop() {\n if (this.getState() !== ScenarioInstanceStatus.HALTED) {\n this.setState(ScenarioInstanceStatus.STOPPED)\n }\n }\n\n unload() {\n this.setState(ScenarioInstanceStatus.UNLOADED)\n }\n\n async dispose() {\n await this.stopSubScenarios()\n\n this.unload()\n\n var closure = this.context?.closures?.pop()\n while (closure) {\n closure.call(this)\n closure = this.context?.closures?.pop()\n }\n\n if (this.disposer) {\n await this.disposer.call(this)\n }\n\n // {{ CHECKPOINT 본 인스턴스를 위해서 생성된 logger를 닫는다.\n if (this.context?.logger) {\n this.context.logger.close()\n }\n // }}\n }\n\n async process(step, context): Promise<{ next: string; state: ScenarioInstanceStatus; data: object }> {\n this.context.logger.info(`Step '${step.name}'(${step.id}) started.`)\n\n step = {\n ...step\n } // copy step\n\n try {\n step.params = JSON.parse(step.params)\n } catch (ex) {\n this.context.logger.error(`params(${step.params}) parsing error. params must be a JSON.`)\n }\n step.params = step.params || {}\n\n const connection =\n step.connection && ConnectionManager.getConnectionInstanceEntityByName(this.domain, step.connection)\n\n if (!connection || !connection.edgeId) {\n var handler = TaskRegistry.getTaskHandler(step.task)\n if (!handler) {\n throw new Error(`no task handler for step '${step.name}'(${step.id})`)\n }\n\n var retval: any = await handler(step, context)\n } else {\n var retval: any = await edgeHandler(step, context)\n }\n\n if (step.log) {\n var { data } = retval || {}\n this.context.logger.info(`returns ${typeof data == 'string' ? data : JSON.stringify(data, null, 2)}`)\n }\n\n this.context.logger.info(`Step done.`)\n return retval\n }\n}\n\n@ObjectType()\nexport class ScenarioInstanceList {\n @Field(type => [ScenarioInstance])\n items: ScenarioInstance[]\n\n @Field(type => Int)\n total: number\n}\n"]}
@@ -0,0 +1,3 @@
1
+ import { ScenarioQueueSubscription } from './scenario-queue-subscription';
2
+ export declare const entities: any[];
3
+ export declare const resolvers: (typeof ScenarioQueueSubscription)[];
@@ -0,0 +1,6 @@
1
+ import { ScenarioQueueState } from './scenario-queue-type';
2
+ export declare class ScenarioQueueSubscription {
3
+ scenarioQueueState(payload: {
4
+ scenarioQueueState: ScenarioQueueState;
5
+ }): ScenarioQueueState;
6
+ }
@@ -13,6 +13,7 @@ let ScenarioQueueSubscription = class ScenarioQueueSubscription {
13
13
  return payload.scenarioQueueState;
14
14
  }
15
15
  };
16
+ exports.ScenarioQueueSubscription = ScenarioQueueSubscription;
16
17
  tslib_1.__decorate([
17
18
  (0, type_graphql_1.Subscription)({
18
19
  subscribe: ({ args, context, info }) => {
@@ -51,8 +52,7 @@ tslib_1.__decorate([
51
52
  tslib_1.__metadata("design:paramtypes", [Object]),
52
53
  tslib_1.__metadata("design:returntype", scenario_queue_type_1.ScenarioQueueState)
53
54
  ], ScenarioQueueSubscription.prototype, "scenarioQueueState", null);
54
- ScenarioQueueSubscription = tslib_1.__decorate([
55
+ exports.ScenarioQueueSubscription = ScenarioQueueSubscription = tslib_1.__decorate([
55
56
  (0, type_graphql_1.Resolver)()
56
57
  ], ScenarioQueueSubscription);
57
- exports.ScenarioQueueSubscription = ScenarioQueueSubscription;
58
58
  //# sourceMappingURL=scenario-queue-subscription.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scenario-queue-subscription.js","sourceRoot":"","sources":["../../../server/service/scenario-queue/scenario-queue-subscription.ts"],"names":[],"mappings":";;;;AAAA,+CAAgE;AAChE,+DAA0D;AAC1D,iDAA8C;AAC9C,+CAA2C;AAC3C,yCAA6C;AAE7C,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,oDAAoD,CAAC,CAAA;AAG7E,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;IA0CpC,kBAAkB,CAAS,OAAmD;QAC5E,OAAO,OAAO,CAAC,kBAAkB,CAAA;IACnC,CAAC;CACF,CAAA;AA5CC;IAAC,IAAA,2BAAY,EAAC;QACZ,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;;YACrC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;YACtC,MAAM,SAAS,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,CAAA;YAEnC,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;YAE7B,IAAI,CAAC,MAAM,EAAE;gBACX,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;aACpC;YAED,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAA,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;gBAClG,MAAM,IAAI,KAAK,CAAC,UAAU,SAAS,6BAA6B,IAAI,CAAC,KAAK,IAAI,CAAC,CAAA;aAChF;YAED,OAAO,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;gBAC1B,IAAI,KAAK,GAAG,uBAAc,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;gBAClD,IAAI,KAAK,EAAE;oBACT,cAAM,CAAC,OAAO,CAAC,sBAAsB,EAAE;wBACrC,kBAAkB,EAAE;4BAClB,MAAM;4BACN,KAAK,EAAE,KAAK,CAAC,KAAK;yBACnB;qBACF,CAAC,CAAA;iBACH;YACH,CAAC,CAAC,CAAA;YAEF,OAAO,IAAA,mBAAI,EACT,cAAM,CAAC,SAAS,CAAC,sBAAsB,CAAC,EACxC,IAAA,qBAAM,EAAC,CAAC,OAAmD,EAAE,EAAE;gBAC7D,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAA;gBAEtD,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,MAAK,SAAS,EAAE;oBACpC,OAAO,KAAK,CAAA;iBACb;gBAED,OAAO,IAAI,CAAA;YACb,CAAC,CAAC,CACH,CAAA;QACH,CAAC;KACF,CAAC;IACkB,mBAAA,IAAA,mBAAI,GAAE,CAAA;;;4CAAuD,wCAAkB;mEAElG;AA5CU,yBAAyB;IADrC,IAAA,uBAAQ,GAAE;GACE,yBAAyB,CA6CrC;AA7CY,8DAAyB","sourcesContent":["import { Resolver, Subscription, Root, Arg } from 'type-graphql'\nimport { ScenarioQueueState } from './scenario-queue-type'\nimport { pubsub } from '@things-factory/shell'\nimport { filter, pipe } from 'graphql-yoga'\nimport { ScenarioEngine } from '../../engine'\n\nconst debug = require('debug')('things-factory:integration:connection-subscription')\n\n@Resolver()\nexport class ScenarioQueueSubscription {\n @Subscription({\n subscribe: ({ args, context, info }) => {\n const { domain, user } = context.state\n const subdomain = domain?.subdomain\n\n debug('subscribe', subdomain)\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(async () => {\n var queue = ScenarioEngine.getPendingQueue(domain)\n if (queue) {\n pubsub.publish('scenario-queue-state', {\n scenarioQueueState: {\n domain,\n queue: queue.queue\n }\n })\n }\n })\n\n return pipe(\n pubsub.subscribe('scenario-queue-state'),\n filter((payload: { scenarioQueueState: ScenarioQueueState }) => {\n const { domain: pdomain } = payload.scenarioQueueState\n\n if (pdomain?.subdomain !== subdomain) {\n return false\n }\n\n return true\n })\n )\n }\n })\n scenarioQueueState(@Root() payload: { scenarioQueueState: ScenarioQueueState }): ScenarioQueueState {\n return payload.scenarioQueueState\n }\n}\n"]}
1
+ {"version":3,"file":"scenario-queue-subscription.js","sourceRoot":"","sources":["../../../server/service/scenario-queue/scenario-queue-subscription.ts"],"names":[],"mappings":";;;;AAAA,+CAAgE;AAChE,+DAA0D;AAC1D,iDAA8C;AAC9C,+CAA2C;AAC3C,yCAA6C;AAE7C,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,oDAAoD,CAAC,CAAA;AAG7E,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;IA0CpC,kBAAkB,CAAS,OAAmD;QAC5E,OAAO,OAAO,CAAC,kBAAkB,CAAA;IACnC,CAAC;CACF,CAAA;AA7CY,8DAAyB;AA0CpC;IAzCC,IAAA,2BAAY,EAAC;QACZ,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;;YACrC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;YACtC,MAAM,SAAS,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,CAAA;YAEnC,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;YAE7B,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;YACrC,CAAC;YAED,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAA,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;gBACnG,MAAM,IAAI,KAAK,CAAC,UAAU,SAAS,6BAA6B,IAAI,CAAC,KAAK,IAAI,CAAC,CAAA;YACjF,CAAC;YAED,OAAO,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;gBAC1B,IAAI,KAAK,GAAG,uBAAc,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;gBAClD,IAAI,KAAK,EAAE,CAAC;oBACV,cAAM,CAAC,OAAO,CAAC,sBAAsB,EAAE;wBACrC,kBAAkB,EAAE;4BAClB,MAAM;4BACN,KAAK,EAAE,KAAK,CAAC,KAAK;yBACnB;qBACF,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC,CAAC,CAAA;YAEF,OAAO,IAAA,mBAAI,EACT,cAAM,CAAC,SAAS,CAAC,sBAAsB,CAAC,EACxC,IAAA,qBAAM,EAAC,CAAC,OAAmD,EAAE,EAAE;gBAC7D,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAA;gBAEtD,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,MAAK,SAAS,EAAE,CAAC;oBACrC,OAAO,KAAK,CAAA;gBACd,CAAC;gBAED,OAAO,IAAI,CAAA;YACb,CAAC,CAAC,CACH,CAAA;QACH,CAAC;KACF,CAAC;IACkB,mBAAA,IAAA,mBAAI,GAAE,CAAA;;;4CAAuD,wCAAkB;mEAElG;oCA5CU,yBAAyB;IADrC,IAAA,uBAAQ,GAAE;GACE,yBAAyB,CA6CrC","sourcesContent":["import { Resolver, Subscription, Root, Arg } from 'type-graphql'\nimport { ScenarioQueueState } from './scenario-queue-type'\nimport { pubsub } from '@things-factory/shell'\nimport { filter, pipe } from 'graphql-yoga'\nimport { ScenarioEngine } from '../../engine'\n\nconst debug = require('debug')('things-factory:integration:connection-subscription')\n\n@Resolver()\nexport class ScenarioQueueSubscription {\n @Subscription({\n subscribe: ({ args, context, info }) => {\n const { domain, user } = context.state\n const subdomain = domain?.subdomain\n\n debug('subscribe', subdomain)\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(async () => {\n var queue = ScenarioEngine.getPendingQueue(domain)\n if (queue) {\n pubsub.publish('scenario-queue-state', {\n scenarioQueueState: {\n domain,\n queue: queue.queue\n }\n })\n }\n })\n\n return pipe(\n pubsub.subscribe('scenario-queue-state'),\n filter((payload: { scenarioQueueState: ScenarioQueueState }) => {\n const { domain: pdomain } = payload.scenarioQueueState\n\n if (pdomain?.subdomain !== subdomain) {\n return false\n }\n\n return true\n })\n )\n }\n })\n scenarioQueueState(@Root() payload: { scenarioQueueState: ScenarioQueueState }): ScenarioQueueState {\n return payload.scenarioQueueState\n }\n}\n"]}
@@ -0,0 +1,11 @@
1
+ import { Domain } from '@things-factory/shell';
2
+ export declare class PendingObject {
3
+ stuff: any;
4
+ due: string;
5
+ priority: number;
6
+ tag: String;
7
+ }
8
+ export declare class ScenarioQueueState {
9
+ domain: Domain;
10
+ queue: PendingObject[];
11
+ }
@@ -6,6 +6,7 @@ const type_graphql_1 = require("type-graphql");
6
6
  const shell_1 = require("@things-factory/shell");
7
7
  let PendingObject = class PendingObject {
8
8
  };
9
+ exports.PendingObject = PendingObject;
9
10
  tslib_1.__decorate([
10
11
  (0, type_graphql_1.Field)(type => shell_1.ScalarObject),
11
12
  tslib_1.__metadata("design:type", Object)
@@ -22,12 +23,12 @@ tslib_1.__decorate([
22
23
  (0, type_graphql_1.Field)({ nullable: true }),
23
24
  tslib_1.__metadata("design:type", String)
24
25
  ], PendingObject.prototype, "tag", void 0);
25
- PendingObject = tslib_1.__decorate([
26
+ exports.PendingObject = PendingObject = tslib_1.__decorate([
26
27
  (0, type_graphql_1.ObjectType)()
27
28
  ], PendingObject);
28
- exports.PendingObject = PendingObject;
29
29
  let ScenarioQueueState = class ScenarioQueueState {
30
30
  };
31
+ exports.ScenarioQueueState = ScenarioQueueState;
31
32
  tslib_1.__decorate([
32
33
  (0, type_graphql_1.Field)(),
33
34
  tslib_1.__metadata("design:type", shell_1.Domain)
@@ -36,8 +37,7 @@ tslib_1.__decorate([
36
37
  (0, type_graphql_1.Field)(type => [PendingObject]),
37
38
  tslib_1.__metadata("design:type", Array)
38
39
  ], ScenarioQueueState.prototype, "queue", void 0);
39
- ScenarioQueueState = tslib_1.__decorate([
40
+ exports.ScenarioQueueState = ScenarioQueueState = tslib_1.__decorate([
40
41
  (0, type_graphql_1.ObjectType)()
41
42
  ], ScenarioQueueState);
42
- exports.ScenarioQueueState = ScenarioQueueState;
43
43
  //# sourceMappingURL=scenario-queue-type.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scenario-queue-type.js","sourceRoot":"","sources":["../../../server/service/scenario-queue/scenario-queue-type.ts"],"names":[],"mappings":";;;;AAAA,+CAAqD;AAErD,iDAA4D;AAGrD,IAAM,aAAa,GAAnB,MAAM,aAAa;CAYzB,CAAA;AAXC;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAY,CAAC;;4CAClB;AAEV;IAAC,IAAA,oBAAK,GAAE;;0CACG;AAEX;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,CAAC;;+CACH;AAEhB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACrB,MAAM;0CAAA;AAXA,aAAa;IADzB,IAAA,yBAAU,GAAE;GACA,aAAa,CAYzB;AAZY,sCAAa;AAenB,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;CAM9B,CAAA;AALC;IAAC,IAAA,oBAAK,GAAE;sCACA,cAAM;kDAAA;AAEd;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC;;iDACT;AALX,kBAAkB;IAD9B,IAAA,yBAAU,GAAE;GACA,kBAAkB,CAM9B;AANY,gDAAkB","sourcesContent":["import { Field, Int, ObjectType } from 'type-graphql'\n\nimport { Domain, ScalarObject } from '@things-factory/shell'\n\n@ObjectType()\nexport class PendingObject {\n @Field(type => ScalarObject)\n stuff: any\n\n @Field()\n due: string\n\n @Field(type => Int)\n priority: number\n\n @Field({ nullable: true })\n tag: String\n}\n\n@ObjectType()\nexport class ScenarioQueueState {\n @Field()\n domain: Domain\n\n @Field(type => [PendingObject])\n queue: PendingObject[]\n}\n"]}
1
+ {"version":3,"file":"scenario-queue-type.js","sourceRoot":"","sources":["../../../server/service/scenario-queue/scenario-queue-type.ts"],"names":[],"mappings":";;;;AAAA,+CAAqD;AAErD,iDAA4D;AAGrD,IAAM,aAAa,GAAnB,MAAM,aAAa;CAYzB,CAAA;AAZY,sCAAa;AAExB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAY,CAAC;;4CAClB;AAGV;IADC,IAAA,oBAAK,GAAE;;0CACG;AAGX;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,CAAC;;+CACH;AAGhB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACrB,MAAM;0CAAA;wBAXA,aAAa;IADzB,IAAA,yBAAU,GAAE;GACA,aAAa,CAYzB;AAGM,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;CAM9B,CAAA;AANY,gDAAkB;AAE7B;IADC,IAAA,oBAAK,GAAE;sCACA,cAAM;kDAAA;AAGd;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC;;iDACT;6BALX,kBAAkB;IAD9B,IAAA,yBAAU,GAAE;GACA,kBAAkB,CAM9B","sourcesContent":["import { Field, Int, ObjectType } from 'type-graphql'\n\nimport { Domain, ScalarObject } from '@things-factory/shell'\n\n@ObjectType()\nexport class PendingObject {\n @Field(type => ScalarObject)\n stuff: any\n\n @Field()\n due: string\n\n @Field(type => Int)\n priority: number\n\n @Field({ nullable: true })\n tag: String\n}\n\n@ObjectType()\nexport class ScenarioQueueState {\n @Field()\n domain: Domain\n\n @Field(type => [PendingObject])\n queue: PendingObject[]\n}\n"]}
@@ -0,0 +1,6 @@
1
+ import { StateRegister } from './state-register';
2
+ import { StateRegisterQuery } from './state-register-query';
3
+ import { StateRegisterMutation } from './state-register-mutation';
4
+ export declare const entities: (typeof StateRegister)[];
5
+ export declare const resolvers: (typeof StateRegisterQuery | typeof StateRegisterMutation)[];
6
+ export declare const subscribers: any[];
@@ -0,0 +1,11 @@
1
+ import { StateRegister } from './state-register';
2
+ import { NewStateRegister, StateRegisterPatch } from './state-register-type';
3
+ export declare class StateRegisterMutation {
4
+ createStateRegister(stateRegister: NewStateRegister, context: ResolverContext): Promise<StateRegister>;
5
+ updateStateRegister(id: string, patch: StateRegisterPatch, context: ResolverContext): Promise<StateRegister>;
6
+ updateMultipleStateRegister(patches: StateRegisterPatch[], context: ResolverContext): Promise<StateRegister[]>;
7
+ updateStateRegisterByName(name: string, state: any, context: ResolverContext): Promise<StateRegister>;
8
+ deleteStateRegister(id: string, context: ResolverContext): Promise<boolean>;
9
+ deleteStateRegisters(ids: string[], context: ResolverContext): Promise<boolean>;
10
+ importStateRegisters(stateRegisters: StateRegisterPatch[], context: ResolverContext): Promise<boolean>;
11
+ }
@@ -74,6 +74,7 @@ let StateRegisterMutation = class StateRegisterMutation {
74
74
  return true;
75
75
  }
76
76
  };
77
+ exports.StateRegisterMutation = StateRegisterMutation;
77
78
  tslib_1.__decorate([
78
79
  (0, type_graphql_1.Directive)('@transaction'),
79
80
  (0, type_graphql_1.Directive)('@privilege(category: "state-register", privilege: "mutation", domainOwnerGranted: true)'),
@@ -146,8 +147,7 @@ tslib_1.__decorate([
146
147
  tslib_1.__metadata("design:paramtypes", [Array, Object]),
147
148
  tslib_1.__metadata("design:returntype", Promise)
148
149
  ], StateRegisterMutation.prototype, "importStateRegisters", null);
149
- StateRegisterMutation = tslib_1.__decorate([
150
+ exports.StateRegisterMutation = StateRegisterMutation = tslib_1.__decorate([
150
151
  (0, type_graphql_1.Resolver)(state_register_1.StateRegister)
151
152
  ], StateRegisterMutation);
152
- exports.StateRegisterMutation = StateRegisterMutation;
153
153
  //# sourceMappingURL=state-register-mutation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"state-register-mutation.js","sourceRoot":"","sources":["../../../server/service/state-register/state-register-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Resolver, Mutation, Arg, Ctx, Directive } from 'type-graphql'\nimport { In } from 'typeorm'\n\nimport { ScalarObject } from '@things-factory/shell'\nimport { StateRegister } from './state-register'\nimport { NewStateRegister, StateRegisterPatch } from './state-register-type'\n\n@Resolver(StateRegister)\nexport class StateRegisterMutation {\n @Directive('@transaction')\n @Directive('@privilege(category: \"state-register\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => StateRegister, { description: 'To create new StateRegister' })\n async createStateRegister(\n @Arg('stateRegister') stateRegister: NewStateRegister,\n @Ctx() context: ResolverContext\n ): Promise<StateRegister> {\n const { domain, user, tx } = context.state\n\n return await tx.getRepository(StateRegister).save({\n ...stateRegister,\n domain,\n creator: user,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"state-register\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => StateRegister, { description: 'To modify StateRegister information' })\n async updateStateRegister(\n @Arg('id') id: string,\n @Arg('patch') patch: StateRegisterPatch,\n @Ctx() context: ResolverContext\n ): Promise<StateRegister> {\n const { domain, user, tx } = context.state\n\n const repository = tx.getRepository(StateRegister)\n const stateRegister = await repository.findOne({\n where: { domain: { id: domain.id }, id }\n })\n\n return await repository.save({\n ...stateRegister,\n ...patch,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"state-register\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => [StateRegister], { description: \"To modify multiple StateRegisters' information\" })\n async updateMultipleStateRegister(\n @Arg('patches', type => [StateRegisterPatch]) patches: StateRegisterPatch[],\n @Ctx() context: ResolverContext\n ): Promise<StateRegister[]> {\n const { domain, user, tx } = context.state\n\n let results = []\n const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n const stateRegisterRepo = tx.getRepository(StateRegister)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n const result = await stateRegisterRepo.save({\n ...newRecord,\n domain,\n creator: user,\n updater: user\n })\n\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n const updateRecord = _updateRecords[i]\n const stateRegister = await stateRegisterRepo.findOneBy({ id: updateRecord.id })\n\n const result = await stateRegisterRepo.save({\n ...stateRegister,\n ...updateRecord,\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n return results\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"state-register\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => StateRegister, { description: 'To update state of StateRegister by name' })\n async updateStateRegisterByName(\n @Arg('name') name: string,\n @Arg('state', type => ScalarObject) state: any,\n @Ctx() context: ResolverContext\n ): Promise<StateRegister> {\n const { domain, user = null, tx } = context.state\n\n const repository = tx.getRepository(StateRegister)\n const stateRegister = await repository.findOne({\n where: { domain: { id: domain?.id }, name }\n })\n\n return await repository.save({\n ...stateRegister,\n state,\n writer: user,\n wroteAt: new Date()\n })\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"state-register\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean, { description: 'To delete StateRegister' })\n async deleteStateRegister(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(StateRegister).delete({ domain: { id: domain.id }, id })\n\n return true\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"state-register\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean, { description: 'To delete multiple StateRegisters' })\n async deleteStateRegisters(\n @Arg('ids', type => [String]) ids: string[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(StateRegister).delete({\n domain: { id: domain.id },\n id: In(ids)\n })\n\n return true\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"state-register\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean, { description: 'To import multiple StateRegisters' })\n async importStateRegisters(\n @Arg('stateRegisters', type => [StateRegisterPatch]) stateRegisters: StateRegisterPatch[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, tx } = context.state\n\n await Promise.all(\n stateRegisters.map(async (stateRegister: StateRegisterPatch) => {\n const createdStateRegister: StateRegister = await tx\n .getRepository(StateRegister)\n .save({ domain, ...stateRegister })\n })\n )\n\n return true\n }\n}\n"]}
1
+ {"version":3,"file":"state-register-mutation.js","sourceRoot":"","sources":["../../../server/service/state-register/state-register-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Resolver, Mutation, Arg, Ctx, Directive } from 'type-graphql'\nimport { In } from 'typeorm'\n\nimport { ScalarObject } from '@things-factory/shell'\nimport { StateRegister } from './state-register'\nimport { NewStateRegister, StateRegisterPatch } from './state-register-type'\n\n@Resolver(StateRegister)\nexport class StateRegisterMutation {\n @Directive('@transaction')\n @Directive('@privilege(category: \"state-register\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => StateRegister, { description: 'To create new StateRegister' })\n async createStateRegister(\n @Arg('stateRegister') stateRegister: NewStateRegister,\n @Ctx() context: ResolverContext\n ): Promise<StateRegister> {\n const { domain, user, tx } = context.state\n\n return await tx.getRepository(StateRegister).save({\n ...stateRegister,\n domain,\n creator: user,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"state-register\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => StateRegister, { description: 'To modify StateRegister information' })\n async updateStateRegister(\n @Arg('id') id: string,\n @Arg('patch') patch: StateRegisterPatch,\n @Ctx() context: ResolverContext\n ): Promise<StateRegister> {\n const { domain, user, tx } = context.state\n\n const repository = tx.getRepository(StateRegister)\n const stateRegister = await repository.findOne({\n where: { domain: { id: domain.id }, id }\n })\n\n return await repository.save({\n ...stateRegister,\n ...patch,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"state-register\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => [StateRegister], { description: \"To modify multiple StateRegisters' information\" })\n async updateMultipleStateRegister(\n @Arg('patches', type => [StateRegisterPatch]) patches: StateRegisterPatch[],\n @Ctx() context: ResolverContext\n ): Promise<StateRegister[]> {\n const { domain, user, tx } = context.state\n\n let results = []\n const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n const stateRegisterRepo = tx.getRepository(StateRegister)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n const result = await stateRegisterRepo.save({\n ...newRecord,\n domain,\n creator: user,\n updater: user\n })\n\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n const updateRecord = _updateRecords[i]\n const stateRegister = await stateRegisterRepo.findOneBy({ id: updateRecord.id })\n\n const result = await stateRegisterRepo.save({\n ...stateRegister,\n ...updateRecord,\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n return results\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"state-register\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => StateRegister, { description: 'To update state of StateRegister by name' })\n async updateStateRegisterByName(\n @Arg('name') name: string,\n @Arg('state', type => ScalarObject) state: any,\n @Ctx() context: ResolverContext\n ): Promise<StateRegister> {\n const { domain, user = null, tx } = context.state\n\n const repository = tx.getRepository(StateRegister)\n const stateRegister = await repository.findOne({\n where: { domain: { id: domain?.id }, name }\n })\n\n return await repository.save({\n ...stateRegister,\n state,\n writer: user,\n wroteAt: new Date()\n })\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"state-register\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean, { description: 'To delete StateRegister' })\n async deleteStateRegister(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(StateRegister).delete({ domain: { id: domain.id }, id })\n\n return true\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"state-register\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean, { description: 'To delete multiple StateRegisters' })\n async deleteStateRegisters(\n @Arg('ids', type => [String]) ids: string[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(StateRegister).delete({\n domain: { id: domain.id },\n id: In(ids)\n })\n\n return true\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"state-register\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean, { description: 'To import multiple StateRegisters' })\n async importStateRegisters(\n @Arg('stateRegisters', type => [StateRegisterPatch]) stateRegisters: StateRegisterPatch[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, tx } = context.state\n\n await Promise.all(\n stateRegisters.map(async (stateRegister: StateRegisterPatch) => {\n const createdStateRegister: StateRegister = await tx\n .getRepository(StateRegister)\n .save({ domain, ...stateRegister })\n })\n )\n\n return true\n }\n}\n"]}
@@ -0,0 +1,14 @@
1
+ import { Domain, ListParam } from '@things-factory/shell';
2
+ import { User } from '@things-factory/auth-base';
3
+ import { StateRegister } from './state-register';
4
+ import { StateRegisterList } from './state-register-type';
5
+ export declare class StateRegisterQuery {
6
+ stateRegister(id: string, context: ResolverContext): Promise<StateRegister>;
7
+ stateRegisterByName(name: string, context: ResolverContext): Promise<StateRegister>;
8
+ stateRegisters(params: ListParam, context: ResolverContext): Promise<StateRegisterList>;
9
+ state(stateRegister: StateRegister): Promise<any>;
10
+ domain(stateRegister: StateRegister): Promise<Domain>;
11
+ writer(stateRegister: StateRegister): Promise<User>;
12
+ updater(stateRegister: StateRegister): Promise<User>;
13
+ creator(stateRegister: StateRegister): Promise<User>;
14
+ }
@@ -54,6 +54,7 @@ let StateRegisterQuery = class StateRegisterQuery {
54
54
  return stateRegister.creatorId && (await (0, shell_1.getRepository)(auth_base_1.User).findOneBy({ id: stateRegister.creatorId }));
55
55
  }
56
56
  };
57
+ exports.StateRegisterQuery = StateRegisterQuery;
57
58
  tslib_1.__decorate([
58
59
  (0, type_graphql_1.Directive)('@privilege(category: "state-register", privilege: "query", domainOwnerGranted: true)'),
59
60
  (0, type_graphql_1.Query)(returns => state_register_1.StateRegister, { nullable: true, description: 'To fetch a StateRegister' }),
@@ -75,7 +76,7 @@ tslib_1.__decorate([
75
76
  tslib_1.__decorate([
76
77
  (0, type_graphql_1.Directive)('@privilege(category: "state-register", privilege: "query", domainOwnerGranted: true)'),
77
78
  (0, type_graphql_1.Query)(returns => state_register_type_1.StateRegisterList, { description: 'To fetch multiple StateRegisters' }),
78
- tslib_1.__param(0, (0, type_graphql_1.Args)()),
79
+ tslib_1.__param(0, (0, type_graphql_1.Args)(type => shell_1.ListParam)),
79
80
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
80
81
  tslib_1.__metadata("design:type", Function),
81
82
  tslib_1.__metadata("design:paramtypes", [shell_1.ListParam, Object]),
@@ -116,8 +117,7 @@ tslib_1.__decorate([
116
117
  tslib_1.__metadata("design:paramtypes", [state_register_1.StateRegister]),
117
118
  tslib_1.__metadata("design:returntype", Promise)
118
119
  ], StateRegisterQuery.prototype, "creator", null);
119
- StateRegisterQuery = tslib_1.__decorate([
120
+ exports.StateRegisterQuery = StateRegisterQuery = tslib_1.__decorate([
120
121
  (0, type_graphql_1.Resolver)(state_register_1.StateRegister)
121
122
  ], StateRegisterQuery);
122
- exports.StateRegisterQuery = StateRegisterQuery;
123
123
  //# sourceMappingURL=state-register-query.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"state-register-query.js","sourceRoot":"","sources":["../../../server/service/state-register/state-register-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Resolver, Query, FieldResolver, Root, Args, Arg, Ctx, Directive } from 'type-graphql'\nimport { Domain, getQueryBuilderFromListParams, getRepository, ListParam, ScalarObject } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { StateRegister } from './state-register'\nimport { StateRegisterList } from './state-register-type'\n\n@Resolver(StateRegister)\nexport class StateRegisterQuery {\n @Directive('@privilege(category: \"state-register\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => StateRegister!, { nullable: true, description: 'To fetch a StateRegister' })\n async stateRegister(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<StateRegister> {\n const { domain } = context.state\n\n return await getRepository(StateRegister).findOne({\n where: { domain: { id: domain.id }, id }\n })\n }\n\n @Directive('@privilege(category: \"state-register\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => StateRegister!, { nullable: true, description: 'To fetch a StateRegister by name' })\n async stateRegisterByName(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<StateRegister> {\n const { domain } = context.state\n\n return await getRepository(StateRegister).findOne({\n where: { domain: { id: domain.id }, name }\n })\n }\n\n @Directive('@privilege(category: \"state-register\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => StateRegisterList, { description: 'To fetch multiple StateRegisters' })\n async stateRegisters(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<StateRegisterList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n domain,\n params,\n repository: await getRepository(StateRegister),\n searchables: ['name', 'description']\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @FieldResolver(type => ScalarObject)\n async state(@Root() stateRegister: StateRegister): Promise<any> {\n const { state, wroteAt, ttl } = stateRegister\n\n if (!isNaN(ttl) && Number(ttl) > 0) {\n const expired = (wroteAt?.getTime() || 0) + Number(ttl) * 1000 < Date.now()\n return expired ? null : state\n } else {\n return state\n }\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() stateRegister: StateRegister): Promise<Domain> {\n return stateRegister.domainId && (await getRepository(Domain).findOneBy({ id: stateRegister.domainId }))\n }\n\n @FieldResolver(type => User)\n async writer(@Root() stateRegister: StateRegister): Promise<User> {\n return stateRegister.writerId && (await getRepository(User).findOneBy({ id: stateRegister.writerId }))\n }\n\n @FieldResolver(type => User)\n async updater(@Root() stateRegister: StateRegister): Promise<User> {\n return stateRegister.updaterId && (await getRepository(User).findOneBy({ id: stateRegister.updaterId }))\n }\n\n @FieldResolver(type => User)\n async creator(@Root() stateRegister: StateRegister): Promise<User> {\n return stateRegister.creatorId && (await getRepository(User).findOneBy({ id: stateRegister.creatorId }))\n }\n}\n"]}
1
+ {"version":3,"file":"state-register-query.js","sourceRoot":"","sources":["../../../server/service/state-register/state-register-query.ts"],"names":[],"mappings":";;;;AAAA,+CAA8F;AAC9F,iDAAqH;AACrH,yDAAgD;AAChD,qDAAgD;AAChD,+DAAyD;AAGlD,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAGvB,AAAN,KAAK,CAAC,aAAa,CAAY,EAAU,EAAS,OAAwB;QACxE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC,OAAO,MAAM,IAAA,qBAAa,EAAC,8BAAa,CAAC,CAAC,OAAO,CAAC;YAChD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;SACzC,CAAC,CAAA;IACJ,CAAC;IAIK,AAAN,KAAK,CAAC,mBAAmB,CAAc,IAAY,EAAS,OAAwB;QAClF,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC,OAAO,MAAM,IAAA,qBAAa,EAAC,8BAAa,CAAC,CAAC,OAAO,CAAC;YAChD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE;SAC3C,CAAC,CAAA;IACJ,CAAC;IAIK,AAAN,KAAK,CAAC,cAAc,CACO,MAAiB,EACnC,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC,MAAM,YAAY,GAAG,IAAA,qCAA6B,EAAC;YACjD,MAAM;YACN,MAAM;YACN,UAAU,EAAE,MAAM,IAAA,qBAAa,EAAC,8BAAa,CAAC;YAC9C,WAAW,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC;SACrC,CAAC,CAAA;QAEF,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAA;QAE3D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;IAGK,AAAN,KAAK,CAAC,KAAK,CAAS,aAA4B;QAC9C,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,aAAa,CAAA;QAE7C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,MAAM,OAAO,GAAG,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,EAAE,KAAI,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAC3E,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAA;QAC/B,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAGK,AAAN,KAAK,CAAC,MAAM,CAAS,aAA4B;QAC/C,OAAO,aAAa,CAAC,QAAQ,IAAI,CAAC,MAAM,IAAA,qBAAa,EAAC,cAAM,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;IAC1G,CAAC;IAGK,AAAN,KAAK,CAAC,MAAM,CAAS,aAA4B;QAC/C,OAAO,aAAa,CAAC,QAAQ,IAAI,CAAC,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;IACxG,CAAC;IAGK,AAAN,KAAK,CAAC,OAAO,CAAS,aAA4B;QAChD,OAAO,aAAa,CAAC,SAAS,IAAI,CAAC,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;IAC1G,CAAC;IAGK,AAAN,KAAK,CAAC,OAAO,CAAS,aAA4B;QAChD,OAAO,aAAa,CAAC,SAAS,IAAI,CAAC,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;IAC1G,CAAC;CACF,CAAA;AAxEY,gDAAkB;AAGvB;IAFL,IAAA,wBAAS,EAAC,sFAAsF,CAAC;IACjG,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,8BAAc,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAC;IACzE,mBAAA,IAAA,kBAAG,EAAC,IAAI,CAAC,CAAA;IAAc,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;uDAMhD;AAIK;IAFL,IAAA,wBAAS,EAAC,sFAAsF,CAAC;IACjG,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,8BAAc,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,kCAAkC,EAAE,CAAC;IAC3E,mBAAA,IAAA,kBAAG,EAAC,MAAM,CAAC,CAAA;IAAgB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;6DAM1D;AAIK;IAFL,IAAA,wBAAS,EAAC,sFAAsF,CAAC;IACjG,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,uCAAiB,EAAE,EAAE,WAAW,EAAE,kCAAkC,EAAE,CAAC;IAEtF,mBAAA,IAAA,mBAAI,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAS,CAAC,CAAA;IACvB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CAD2B,iBAAS;;wDAe3C;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAY,CAAC;IACvB,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAgB,8BAAa;;+CAS/C;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;IAChB,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAgB,8BAAa;;gDAEhD;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,CAAC;IACd,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAgB,8BAAa;;gDAEhD;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,CAAC;IACb,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAgB,8BAAa;;iDAEjD;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,CAAC;IACb,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAgB,8BAAa;;iDAEjD;6BAvEU,kBAAkB;IAD9B,IAAA,uBAAQ,EAAC,8BAAa,CAAC;GACX,kBAAkB,CAwE9B","sourcesContent":["import { Resolver, Query, FieldResolver, Root, Args, Arg, Ctx, Directive } from 'type-graphql'\nimport { Domain, getQueryBuilderFromListParams, getRepository, ListParam, ScalarObject } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { StateRegister } from './state-register'\nimport { StateRegisterList } from './state-register-type'\n\n@Resolver(StateRegister)\nexport class StateRegisterQuery {\n @Directive('@privilege(category: \"state-register\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => StateRegister!, { nullable: true, description: 'To fetch a StateRegister' })\n async stateRegister(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<StateRegister> {\n const { domain } = context.state\n\n return await getRepository(StateRegister).findOne({\n where: { domain: { id: domain.id }, id }\n })\n }\n\n @Directive('@privilege(category: \"state-register\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => StateRegister!, { nullable: true, description: 'To fetch a StateRegister by name' })\n async stateRegisterByName(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<StateRegister> {\n const { domain } = context.state\n\n return await getRepository(StateRegister).findOne({\n where: { domain: { id: domain.id }, name }\n })\n }\n\n @Directive('@privilege(category: \"state-register\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => StateRegisterList, { description: 'To fetch multiple StateRegisters' })\n async stateRegisters(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<StateRegisterList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n domain,\n params,\n repository: await getRepository(StateRegister),\n searchables: ['name', 'description']\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @FieldResolver(type => ScalarObject)\n async state(@Root() stateRegister: StateRegister): Promise<any> {\n const { state, wroteAt, ttl } = stateRegister\n\n if (!isNaN(ttl) && Number(ttl) > 0) {\n const expired = (wroteAt?.getTime() || 0) + Number(ttl) * 1000 < Date.now()\n return expired ? null : state\n } else {\n return state\n }\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() stateRegister: StateRegister): Promise<Domain> {\n return stateRegister.domainId && (await getRepository(Domain).findOneBy({ id: stateRegister.domainId }))\n }\n\n @FieldResolver(type => User)\n async writer(@Root() stateRegister: StateRegister): Promise<User> {\n return stateRegister.writerId && (await getRepository(User).findOneBy({ id: stateRegister.writerId }))\n }\n\n @FieldResolver(type => User)\n async updater(@Root() stateRegister: StateRegister): Promise<User> {\n return stateRegister.updaterId && (await getRepository(User).findOneBy({ id: stateRegister.updaterId }))\n }\n\n @FieldResolver(type => User)\n async creator(@Root() stateRegister: StateRegister): Promise<User> {\n return stateRegister.creatorId && (await getRepository(User).findOneBy({ id: stateRegister.creatorId }))\n }\n}\n"]}
@@ -0,0 +1,23 @@
1
+ import { StateRegister } from './state-register';
2
+ export declare class NewStateRegister {
3
+ name: string;
4
+ description?: string;
5
+ type?: string;
6
+ state?: any;
7
+ ttl?: number;
8
+ refBy?: string;
9
+ }
10
+ export declare class StateRegisterPatch {
11
+ id?: string;
12
+ name?: string;
13
+ description?: string;
14
+ type?: string;
15
+ state?: any;
16
+ ttl?: number;
17
+ refBy?: string;
18
+ cuFlag?: string;
19
+ }
20
+ export declare class StateRegisterList {
21
+ items: StateRegister[];
22
+ total: number;
23
+ }
@@ -7,6 +7,7 @@ const shell_1 = require("@things-factory/shell");
7
7
  const state_register_1 = require("./state-register");
8
8
  let NewStateRegister = class NewStateRegister {
9
9
  };
10
+ exports.NewStateRegister = NewStateRegister;
10
11
  tslib_1.__decorate([
11
12
  (0, type_graphql_1.Field)(),
12
13
  tslib_1.__metadata("design:type", String)
@@ -31,12 +32,12 @@ tslib_1.__decorate([
31
32
  (0, type_graphql_1.Field)({ nullable: true }),
32
33
  tslib_1.__metadata("design:type", String)
33
34
  ], NewStateRegister.prototype, "refBy", void 0);
34
- NewStateRegister = tslib_1.__decorate([
35
+ exports.NewStateRegister = NewStateRegister = tslib_1.__decorate([
35
36
  (0, type_graphql_1.InputType)()
36
37
  ], NewStateRegister);
37
- exports.NewStateRegister = NewStateRegister;
38
38
  let StateRegisterPatch = class StateRegisterPatch {
39
39
  };
40
+ exports.StateRegisterPatch = StateRegisterPatch;
40
41
  tslib_1.__decorate([
41
42
  (0, type_graphql_1.Field)(type => type_graphql_1.ID, { nullable: true }),
42
43
  tslib_1.__metadata("design:type", String)
@@ -69,12 +70,12 @@ tslib_1.__decorate([
69
70
  (0, type_graphql_1.Field)({ nullable: true }),
70
71
  tslib_1.__metadata("design:type", String)
71
72
  ], StateRegisterPatch.prototype, "cuFlag", void 0);
72
- StateRegisterPatch = tslib_1.__decorate([
73
+ exports.StateRegisterPatch = StateRegisterPatch = tslib_1.__decorate([
73
74
  (0, type_graphql_1.InputType)()
74
75
  ], StateRegisterPatch);
75
- exports.StateRegisterPatch = StateRegisterPatch;
76
76
  let StateRegisterList = class StateRegisterList {
77
77
  };
78
+ exports.StateRegisterList = StateRegisterList;
78
79
  tslib_1.__decorate([
79
80
  (0, type_graphql_1.Field)(type => [state_register_1.StateRegister]),
80
81
  tslib_1.__metadata("design:type", Array)
@@ -83,8 +84,7 @@ tslib_1.__decorate([
83
84
  (0, type_graphql_1.Field)(type => type_graphql_1.Int),
84
85
  tslib_1.__metadata("design:type", Number)
85
86
  ], StateRegisterList.prototype, "total", void 0);
86
- StateRegisterList = tslib_1.__decorate([
87
+ exports.StateRegisterList = StateRegisterList = tslib_1.__decorate([
87
88
  (0, type_graphql_1.ObjectType)()
88
89
  ], StateRegisterList);
89
- exports.StateRegisterList = StateRegisterList;
90
90
  //# sourceMappingURL=state-register-type.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"state-register-type.js","sourceRoot":"","sources":["../../../server/service/state-register/state-register-type.ts"],"names":[],"mappings":";;;;AAEA,+CAAsF;AAEtF,iDAA+D;AAE/D,qDAAgD;AAGzC,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;CAkB5B,CAAA;AAjBC;IAAC,IAAA,oBAAK,GAAE;;8CACI;AAEZ;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACN;AAEpB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8CACb;AAEb;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CACrC;AAEX;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CAC3B;AAEZ;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CACZ;AAjBH,gBAAgB;IAD5B,IAAA,wBAAS,GAAE;GACC,gBAAgB,CAkB5B;AAlBY,4CAAgB;AAqBtB,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;CAwB9B,CAAA;AAvBC;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8CAC3B;AAEX;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDACb;AAEb;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uDACN;AAEpB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDACb;AAEb;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDACrC;AAEX;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CAC3B;AAEZ;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDACZ;AAEd;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kDACX;AAvBJ,kBAAkB;IAD9B,IAAA,wBAAS,GAAE;GACC,kBAAkB,CAwB9B;AAxBY,gDAAkB;AA2BxB,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;CAM7B,CAAA;AALC;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,8BAAa,CAAC,CAAC;;gDACT;AAEtB;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,CAAC;;gDACN;AALF,iBAAiB;IAD7B,IAAA,yBAAU,GAAE;GACA,iBAAiB,CAM7B;AANY,8CAAiB","sourcesContent":["import type { FileUpload } from 'graphql-upload/GraphQLUpload.js'\nimport GraphQLUpload from 'graphql-upload/GraphQLUpload.js'\nimport { ObjectType, Field, InputType, Int, ID, registerEnumType } from 'type-graphql'\n\nimport { ObjectRef, ScalarObject } from '@things-factory/shell'\n\nimport { StateRegister } from './state-register'\n\n@InputType()\nexport class NewStateRegister {\n @Field()\n name: string\n\n @Field({ nullable: true })\n description?: string\n\n @Field({ nullable: true })\n type?: string\n\n @Field(type => ScalarObject, { nullable: true })\n state?: any\n\n @Field(type => Int, { nullable: true })\n ttl?: number\n\n @Field({ nullable: true })\n refBy?: string\n}\n\n@InputType()\nexport class StateRegisterPatch {\n @Field(type => ID, { nullable: true })\n id?: string\n\n @Field({ nullable: true })\n name?: string\n\n @Field({ nullable: true })\n description?: string\n\n @Field({ nullable: true })\n type?: string\n\n @Field(type => ScalarObject, { nullable: true })\n state?: any\n\n @Field(type => Int, { nullable: true })\n ttl?: number\n\n @Field({ nullable: true })\n refBy?: string\n\n @Field({ nullable: true })\n cuFlag?: string\n}\n\n@ObjectType()\nexport class StateRegisterList {\n @Field(type => [StateRegister])\n items: StateRegister[]\n\n @Field(type => Int)\n total: number\n}\n"]}
1
+ {"version":3,"file":"state-register-type.js","sourceRoot":"","sources":["../../../server/service/state-register/state-register-type.ts"],"names":[],"mappings":";;;;AAEA,+CAAsF;AAEtF,iDAA+D;AAE/D,qDAAgD;AAGzC,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;CAkB5B,CAAA;AAlBY,4CAAgB;AAE3B;IADC,IAAA,oBAAK,GAAE;;8CACI;AAGZ;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACN;AAGpB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8CACb;AAGb;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CACrC;AAGX;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CAC3B;AAGZ;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CACZ;2BAjBH,gBAAgB;IAD5B,IAAA,wBAAS,GAAE;GACC,gBAAgB,CAkB5B;AAGM,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;CAwB9B,CAAA;AAxBY,gDAAkB;AAE7B;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8CAC3B;AAGX;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDACb;AAGb;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uDACN;AAGpB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDACb;AAGb;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDACrC;AAGX;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CAC3B;AAGZ;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDACZ;AAGd;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kDACX;6BAvBJ,kBAAkB;IAD9B,IAAA,wBAAS,GAAE;GACC,kBAAkB,CAwB9B;AAGM,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;CAM7B,CAAA;AANY,8CAAiB;AAE5B;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,8BAAa,CAAC,CAAC;;gDACT;AAGtB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,CAAC;;gDACN;4BALF,iBAAiB;IAD7B,IAAA,yBAAU,GAAE;GACA,iBAAiB,CAM7B","sourcesContent":["import type { FileUpload } from 'graphql-upload/GraphQLUpload.js'\nimport GraphQLUpload from 'graphql-upload/GraphQLUpload.js'\nimport { ObjectType, Field, InputType, Int, ID, registerEnumType } from 'type-graphql'\n\nimport { ObjectRef, ScalarObject } from '@things-factory/shell'\n\nimport { StateRegister } from './state-register'\n\n@InputType()\nexport class NewStateRegister {\n @Field()\n name: string\n\n @Field({ nullable: true })\n description?: string\n\n @Field({ nullable: true })\n type?: string\n\n @Field(type => ScalarObject, { nullable: true })\n state?: any\n\n @Field(type => Int, { nullable: true })\n ttl?: number\n\n @Field({ nullable: true })\n refBy?: string\n}\n\n@InputType()\nexport class StateRegisterPatch {\n @Field(type => ID, { nullable: true })\n id?: string\n\n @Field({ nullable: true })\n name?: string\n\n @Field({ nullable: true })\n description?: string\n\n @Field({ nullable: true })\n type?: string\n\n @Field(type => ScalarObject, { nullable: true })\n state?: any\n\n @Field(type => Int, { nullable: true })\n ttl?: number\n\n @Field({ nullable: true })\n refBy?: string\n\n @Field({ nullable: true })\n cuFlag?: string\n}\n\n@ObjectType()\nexport class StateRegisterList {\n @Field(type => [StateRegister])\n items: StateRegister[]\n\n @Field(type => Int)\n total: number\n}\n"]}
@@ -0,0 +1,22 @@
1
+ import { Domain } from '@things-factory/shell';
2
+ import { User } from '@things-factory/auth-base';
3
+ export declare class StateRegister {
4
+ readonly id: string;
5
+ domain?: Domain;
6
+ domainId?: string;
7
+ name?: string;
8
+ description?: string;
9
+ type?: string;
10
+ state?: any;
11
+ ttl?: number;
12
+ refBy?: string;
13
+ wroteAt?: Date;
14
+ createdAt?: Date;
15
+ updatedAt?: Date;
16
+ writer?: User;
17
+ writerId?: string;
18
+ creator?: User;
19
+ creatorId?: string;
20
+ updater?: User;
21
+ updaterId?: string;
22
+ }
@@ -8,6 +8,7 @@ const shell_1 = require("@things-factory/shell");
8
8
  const auth_base_1 = require("@things-factory/auth-base");
9
9
  let StateRegister = class StateRegister {
10
10
  };
11
+ exports.StateRegister = StateRegister;
11
12
  tslib_1.__decorate([
12
13
  (0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
13
14
  (0, type_graphql_1.Field)(type => type_graphql_1.ID),
@@ -94,12 +95,11 @@ tslib_1.__decorate([
94
95
  (0, typeorm_1.RelationId)((stateRegister) => stateRegister.updater),
95
96
  tslib_1.__metadata("design:type", String)
96
97
  ], StateRegister.prototype, "updaterId", void 0);
97
- StateRegister = tslib_1.__decorate([
98
+ exports.StateRegister = StateRegister = tslib_1.__decorate([
98
99
  (0, typeorm_1.Entity)(),
99
100
  (0, typeorm_1.Index)('ix_state_register_0', (stateRegister) => [stateRegister.domain, stateRegister.name], {
100
101
  unique: true
101
102
  }),
102
103
  (0, type_graphql_1.ObjectType)({ description: 'Entity for StateRegister' })
103
104
  ], StateRegister);
104
- exports.StateRegister = StateRegister;
105
105
  //# sourceMappingURL=state-register.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"state-register.js","sourceRoot":"","sources":["../../../server/service/state-register/state-register.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n CreateDateColumn,\n UpdateDateColumn,\n DeleteDateColumn,\n Entity,\n Index,\n Column,\n RelationId,\n ManyToOne,\n PrimaryGeneratedColumn,\n VersionColumn\n} from 'typeorm'\nimport { ObjectType, Field, Int, ID, registerEnumType } from 'type-graphql'\n\nimport { Domain, ScalarObject } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\n\n@Entity()\n@Index('ix_state_register_0', (stateRegister: StateRegister) => [stateRegister.domain, stateRegister.name], {\n unique: true\n})\n@ObjectType({ description: 'Entity for StateRegister' })\nexport class StateRegister {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field(type => Domain)\n domain?: Domain\n\n @RelationId((stateRegister: StateRegister) => stateRegister.domain)\n domainId?: string\n\n @Column()\n @Field({ nullable: true })\n name?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n description?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n type?: string\n\n @Column('simple-json', { nullable: true, default: null })\n @Field(type => ScalarObject, { nullable: true })\n state?: any\n\n @Column({ nullable: true, default: null })\n @Field(type => Int, { nullable: true })\n ttl?: number\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n refBy?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n wroteAt?: Date\n\n @CreateDateColumn()\n @Field({ nullable: true })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true })\n updatedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n writer?: User\n\n @RelationId((stateRegister: StateRegister) => stateRegister.writer)\n writerId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n creator?: User\n\n @RelationId((stateRegister: StateRegister) => stateRegister.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n updater?: User\n\n @RelationId((stateRegister: StateRegister) => stateRegister.updater)\n updaterId?: string\n}\n"]}
1
+ {"version":3,"file":"state-register.js","sourceRoot":"","sources":["../../../server/service/state-register/state-register.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n CreateDateColumn,\n UpdateDateColumn,\n DeleteDateColumn,\n Entity,\n Index,\n Column,\n RelationId,\n ManyToOne,\n PrimaryGeneratedColumn,\n VersionColumn\n} from 'typeorm'\nimport { ObjectType, Field, Int, ID, registerEnumType } from 'type-graphql'\n\nimport { Domain, ScalarObject } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\n\n@Entity()\n@Index('ix_state_register_0', (stateRegister: StateRegister) => [stateRegister.domain, stateRegister.name], {\n unique: true\n})\n@ObjectType({ description: 'Entity for StateRegister' })\nexport class StateRegister {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field(type => Domain)\n domain?: Domain\n\n @RelationId((stateRegister: StateRegister) => stateRegister.domain)\n domainId?: string\n\n @Column()\n @Field({ nullable: true })\n name?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n description?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n type?: string\n\n @Column('simple-json', { nullable: true, default: null })\n @Field(type => ScalarObject, { nullable: true })\n state?: any\n\n @Column({ nullable: true, default: null })\n @Field(type => Int, { nullable: true })\n ttl?: number\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n refBy?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n wroteAt?: Date\n\n @CreateDateColumn()\n @Field({ nullable: true })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true })\n updatedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n writer?: User\n\n @RelationId((stateRegister: StateRegister) => stateRegister.writer)\n writerId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n creator?: User\n\n @RelationId((stateRegister: StateRegister) => stateRegister.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n updater?: User\n\n @RelationId((stateRegister: StateRegister) => stateRegister.updater)\n updaterId?: string\n}\n"]}
@@ -0,0 +1,5 @@
1
+ import { Step } from './step-type';
2
+ import { StepQuery } from './step-query';
3
+ import { StepMutation } from './step-mutation';
4
+ export declare const entities: (typeof Step)[];
5
+ export declare const resolvers: (typeof StepQuery | typeof StepMutation)[];
@@ -0,0 +1,5 @@
1
+ import { Step, StepPatch } from './step-type';
2
+ export declare class StepMutation {
3
+ updateMultipleStep(scenarioId: string, patches: StepPatch[], context: ResolverContext): Promise<Step[]>;
4
+ deleteSteps(ids: string[], context: ResolverContext): Promise<boolean>;
5
+ }