@things-factory/integration-base 7.0.0-alpha.0 → 7.0.0-alpha.4

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 (136) hide show
  1. package/dist-server/engine/connector/echo-back-connector.js +1 -1
  2. package/dist-server/engine/connector/echo-back-connector.js.map +1 -1
  3. package/dist-server/engine/connector/echo-back-server.js +1 -1
  4. package/dist-server/engine/connector/echo-back-server.js.map +1 -1
  5. package/dist-server/engine/connector/graphql-connector.js.map +1 -1
  6. package/dist-server/engine/connector/http-connector.js.map +1 -1
  7. package/dist-server/engine/connector/mqtt-connector.js.map +1 -1
  8. package/dist-server/engine/connector/mssql-connector.js.map +1 -1
  9. package/dist-server/engine/connector/mysql-connector.js +3 -3
  10. package/dist-server/engine/connector/mysql-connector.js.map +1 -1
  11. package/dist-server/engine/connector/operato-connector.js.map +1 -1
  12. package/dist-server/engine/connector/oracle-connector.js.map +1 -1
  13. package/dist-server/engine/connector/postgresql-connector.js.map +1 -1
  14. package/dist-server/engine/connector/socket-server.js +1 -1
  15. package/dist-server/engine/connector/socket-server.js.map +1 -1
  16. package/dist-server/engine/connector/sqlite-connector.js.map +1 -1
  17. package/dist-server/engine/task/book-up-scenario.js.map +1 -1
  18. package/dist-server/engine/task/csv-readline.js.map +1 -1
  19. package/dist-server/engine/task/data-accessor.js.map +1 -1
  20. package/dist-server/engine/task/data-mapper.js.map +1 -1
  21. package/dist-server/engine/task/database-query.js.map +1 -1
  22. package/dist-server/engine/task/echo-receive.js.map +1 -1
  23. package/dist-server/engine/task/echo-send.js.map +1 -1
  24. package/dist-server/engine/task/empty-check.js.map +1 -1
  25. package/dist-server/engine/task/end.js.map +1 -1
  26. package/dist-server/engine/task/floating-point.js.map +1 -1
  27. package/dist-server/engine/task/goto.js.map +1 -1
  28. package/dist-server/engine/task/graphql-mutate.js.map +1 -1
  29. package/dist-server/engine/task/graphql-query.js.map +1 -1
  30. package/dist-server/engine/task/headless-post.js.map +1 -1
  31. package/dist-server/engine/task/headless-scrap.js.map +1 -1
  32. package/dist-server/engine/task/http-get.js.map +1 -1
  33. package/dist-server/engine/task/http-post.js.map +1 -1
  34. package/dist-server/engine/task/jsonata.js +1 -1
  35. package/dist-server/engine/task/jsonata.js.map +1 -1
  36. package/dist-server/engine/task/local-graphql-mutate.js.map +1 -1
  37. package/dist-server/engine/task/local-graphql-query.js.map +1 -1
  38. package/dist-server/engine/task/log.js.map +1 -1
  39. package/dist-server/engine/task/mqtt-publish.js.map +1 -1
  40. package/dist-server/engine/task/mqtt-subscribe.js.map +1 -1
  41. package/dist-server/engine/task/oracle-procedure.js.map +1 -1
  42. package/dist-server/engine/task/pick-pending-scenario.js.map +1 -1
  43. package/dist-server/engine/task/publish.js.map +1 -1
  44. package/dist-server/engine/task/random.js.map +1 -1
  45. package/dist-server/engine/task/reset-pending-queue.js.map +1 -1
  46. package/dist-server/engine/task/script.js.map +1 -1
  47. package/dist-server/engine/task/set-domain.js.map +1 -1
  48. package/dist-server/engine/task/sleep.js.map +1 -1
  49. package/dist-server/engine/task/socket-listener.js.map +1 -1
  50. package/dist-server/engine/task/state-read.js.map +1 -1
  51. package/dist-server/engine/task/state-write.js.map +1 -1
  52. package/dist-server/engine/task/stop-scenario.js.map +1 -1
  53. package/dist-server/engine/task/sub-scenario.js.map +1 -1
  54. package/dist-server/engine/task/switch-goto.js.map +1 -1
  55. package/dist-server/engine/task/switch-range-goto.js.map +1 -1
  56. package/dist-server/engine/task/switch-range-scenario.js.map +1 -1
  57. package/dist-server/engine/task/switch-range-set.js.map +1 -1
  58. package/dist-server/engine/task/switch-scenario.js.map +1 -1
  59. package/dist-server/engine/task/switch-set.js.map +1 -1
  60. package/dist-server/engine/task/throw.js.map +1 -1
  61. package/dist-server/engine/task/variables.js.map +1 -1
  62. package/dist-server/engine/types.js.map +1 -1
  63. package/dist-server/service/connection/connection-subscription.js +10 -13
  64. package/dist-server/service/connection/connection-subscription.js.map +1 -1
  65. package/dist-server/service/connection/connection-type.js +34 -5
  66. package/dist-server/service/connection/connection-type.js.map +1 -1
  67. package/dist-server/service/scenario-instance/scenario-instance-subscription.js +8 -9
  68. package/dist-server/service/scenario-instance/scenario-instance-subscription.js.map +1 -1
  69. package/dist-server/service/scenario-queue/scenario-queue-subscription.js +4 -4
  70. package/dist-server/service/scenario-queue/scenario-queue-subscription.js.map +1 -1
  71. package/dist-server/service/step/step-type.js +41 -28
  72. package/dist-server/service/step/step-type.js.map +1 -1
  73. package/dist-server/tsconfig.tsbuildinfo +1 -1
  74. package/package.json +8 -7
  75. package/server/engine/connector/echo-back-connector.ts +4 -3
  76. package/server/engine/connector/echo-back-server.ts +5 -4
  77. package/server/engine/connector/graphql-connector.ts +4 -3
  78. package/server/engine/connector/http-connector.ts +4 -3
  79. package/server/engine/connector/mqtt-connector.ts +4 -3
  80. package/server/engine/connector/mssql-connector.ts +4 -3
  81. package/server/engine/connector/mysql-connector.ts +8 -6
  82. package/server/engine/connector/operato-connector.ts +5 -3
  83. package/server/engine/connector/oracle-connector.ts +6 -3
  84. package/server/engine/connector/postgresql-connector.ts +4 -3
  85. package/server/engine/connector/socket-server.ts +5 -4
  86. package/server/engine/connector/sqlite-connector.ts +5 -3
  87. package/server/engine/task/book-up-scenario.ts +3 -1
  88. package/server/engine/task/csv-readline.ts +4 -1
  89. package/server/engine/task/data-accessor.ts +4 -1
  90. package/server/engine/task/data-mapper.ts +4 -1
  91. package/server/engine/task/database-query.ts +3 -1
  92. package/server/engine/task/echo-receive.ts +4 -1
  93. package/server/engine/task/echo-send.ts +3 -1
  94. package/server/engine/task/empty-check.ts +4 -1
  95. package/server/engine/task/end.ts +4 -1
  96. package/server/engine/task/floating-point.ts +4 -1
  97. package/server/engine/task/goto.ts +4 -1
  98. package/server/engine/task/graphql-mutate.ts +3 -1
  99. package/server/engine/task/graphql-query.ts +3 -1
  100. package/server/engine/task/headless-post.ts +4 -1
  101. package/server/engine/task/headless-scrap.ts +3 -1
  102. package/server/engine/task/http-get.ts +3 -1
  103. package/server/engine/task/http-post.ts +3 -1
  104. package/server/engine/task/jsonata.ts +5 -2
  105. package/server/engine/task/local-graphql-mutate.ts +5 -1
  106. package/server/engine/task/local-graphql-query.ts +3 -1
  107. package/server/engine/task/log.ts +3 -1
  108. package/server/engine/task/mqtt-publish.ts +3 -1
  109. package/server/engine/task/mqtt-subscribe.ts +3 -1
  110. package/server/engine/task/oracle-procedure.ts +3 -1
  111. package/server/engine/task/pick-pending-scenario.ts +3 -1
  112. package/server/engine/task/publish.ts +3 -1
  113. package/server/engine/task/random.ts +4 -1
  114. package/server/engine/task/reset-pending-queue.ts +3 -1
  115. package/server/engine/task/script.ts +4 -1
  116. package/server/engine/task/set-domain.ts +4 -1
  117. package/server/engine/task/sleep.ts +3 -1
  118. package/server/engine/task/socket-listener.ts +3 -1
  119. package/server/engine/task/state-read.ts +3 -1
  120. package/server/engine/task/state-write.ts +3 -1
  121. package/server/engine/task/stop-scenario.ts +3 -1
  122. package/server/engine/task/sub-scenario.ts +3 -1
  123. package/server/engine/task/switch-goto.ts +4 -1
  124. package/server/engine/task/switch-range-goto.ts +3 -1
  125. package/server/engine/task/switch-range-scenario.ts +3 -1
  126. package/server/engine/task/switch-range-set.ts +3 -1
  127. package/server/engine/task/switch-scenario.ts +3 -1
  128. package/server/engine/task/switch-set.ts +3 -1
  129. package/server/engine/task/throw.ts +3 -1
  130. package/server/engine/task/variables.ts +3 -1
  131. package/server/engine/types.ts +81 -4
  132. package/server/service/connection/connection-subscription.ts +17 -23
  133. package/server/service/connection/connection-type.ts +67 -0
  134. package/server/service/scenario-instance/scenario-instance-subscription.ts +16 -23
  135. package/server/service/scenario-queue/scenario-queue-subscription.ts +7 -7
  136. package/server/service/step/step-type.ts +78 -22
@@ -30,72 +30,126 @@ registerEnumType(ConnectionStatus, {
30
30
  @Index('ix_connection_0', (connection: Connection) => [connection.domain, connection.name], { unique: true })
31
31
  @ObjectType()
32
32
  export class Connection {
33
+ /**
34
+ * Unique identifier for the connection, generated in UUID format.
35
+ */
33
36
  @PrimaryGeneratedColumn('uuid')
34
37
  @Field(type => ID)
35
38
  readonly id: string
36
39
 
40
+ /**
41
+ * Many-to-One relationship with the Domain entity.
42
+ */
37
43
  @ManyToOne(type => Domain)
38
44
  @Field({ nullable: true })
39
45
  domain: Domain
40
46
 
47
+ /**
48
+ * Stores the ID of the associated Domain.
49
+ */
41
50
  @RelationId((connection: Connection) => connection.domain)
42
51
  domainId: string
43
52
 
53
+ /**
54
+ * The name of the connection.
55
+ */
44
56
  @Column()
45
57
  @Field()
46
58
  name: string
47
59
 
60
+ /**
61
+ * Optional description for the connection.
62
+ */
48
63
  @Column({
49
64
  nullable: true
50
65
  })
51
66
  @Field({ nullable: true })
52
67
  description: string
53
68
 
69
+ /**
70
+ * The type of the connection.
71
+ */
54
72
  @Column()
55
73
  @Field({ nullable: true })
56
74
  type: string
57
75
 
76
+ /**
77
+ * The endpoint for the connection.
78
+ */
58
79
  @Column()
59
80
  @Field({ nullable: true })
60
81
  endpoint: string
61
82
 
83
+ /**
84
+ * Indicates the active status of the connection.
85
+ */
62
86
  @Column({
63
87
  nullable: true
64
88
  })
65
89
  @Field({ nullable: true })
66
90
  active: boolean
67
91
 
92
+ /**
93
+ * The status of the connection, using the ConnectionStatus type.
94
+ */
68
95
  @Field({ nullable: true })
69
96
  state: ConnectionStatus
70
97
 
98
+ /**
99
+ * Additional parameters for the connection, stored as a JSON string.
100
+ */
71
101
  @Column({
72
102
  nullable: true
73
103
  })
74
104
  @Field({ nullable: true })
75
105
  params: string
76
106
 
107
+ /**
108
+ * The date and time when the connection was created.
109
+ */
77
110
  @CreateDateColumn()
78
111
  @Field({ nullable: true })
79
112
  createdAt: Date
80
113
 
114
+ /**
115
+ * The date and time when the connection was last updated.
116
+ */
81
117
  @UpdateDateColumn()
82
118
  @Field({ nullable: true })
83
119
  updatedAt: Date
84
120
 
121
+ /**
122
+ * Many-to-One relationship with the User entity who created the connection. Optional field.
123
+ */
85
124
  @ManyToOne(type => User, { nullable: true })
86
125
  @Field({ nullable: true })
87
126
  creator: User
88
127
 
128
+ /**
129
+ * Stores the ID of the User who created the connection.
130
+ */
89
131
  @RelationId((connection: Connection) => connection.creator)
90
132
  creatorId: string
91
133
 
134
+ /**
135
+ * Many-to-One relationship with the User entity who last updated the connection.
136
+ * Optional field.
137
+ */
92
138
  @ManyToOne(type => User, { nullable: true })
93
139
  @Field({ nullable: true })
94
140
  updater: User
95
141
 
142
+ /**
143
+ * Stores the ID of the User who last updated the connection.
144
+ *
145
+ */
96
146
  @RelationId((connection: Connection) => connection.updater)
97
147
  updaterId: string
98
148
 
149
+ /**
150
+ * Asynchronous method to establish the connection.
151
+ *
152
+ */
99
153
  async connect() {
100
154
  var connector = ConnectionManager.getConnector(this.type)
101
155
  var params = {}
@@ -112,6 +166,10 @@ export class Connection {
112
166
  })
113
167
  }
114
168
 
169
+ /**
170
+ * @brief Asynchronous method to disconnect the connection.
171
+ *
172
+ */
115
173
  async disconnect() {
116
174
  try {
117
175
  var connector = ConnectionManager.getConnector(this.type)
@@ -121,6 +179,15 @@ export class Connection {
121
179
  }
122
180
  }
123
181
 
182
+ /**
183
+ * Connection의 params의 원 타입과 사용 시에 타입 불일치로 인해 임시적으로 생성한 타입으로
184
+ * 추후, 타입 일치를 통해서 제거할 예정임.
185
+ *
186
+ */
187
+ export interface InputConnection extends Connection {
188
+ params: any;
189
+ }
190
+
124
191
  @ObjectType()
125
192
  export class ConnectionState {
126
193
  @Field({ nullable: true })
@@ -1,5 +1,5 @@
1
1
  import { Resolver, Subscription, Root, Arg } from 'type-graphql'
2
- import { withFilter } from 'graphql-subscriptions'
2
+ import { filter, pipe } from 'graphql-yoga'
3
3
  import { pubsub, Log } from '@things-factory/shell'
4
4
  import { ScenarioInstance, ScenarioInstanceState } from './scenario-instance-type'
5
5
  import { ScenarioEngine } from '../../engine'
@@ -9,7 +9,7 @@ const debug = require('debug')('things-factory:integration:scenario-instance-sub
9
9
  @Resolver(ScenarioInstance)
10
10
  export class ScenarioInstanceSubscription {
11
11
  @Subscription({
12
- subscribe: (_, args, context, info) => {
12
+ subscribe: ({ args, context, info }) => {
13
13
  const { domain, user } = context.state
14
14
  const { instanceName, scenarioName, level } = args
15
15
  const subdomain = domain?.subdomain
@@ -24,11 +24,11 @@ export class ScenarioInstanceSubscription {
24
24
  throw new Error(`domain(${subdomain}) is not working for user(${user.email}).`)
25
25
  }
26
26
 
27
- return withFilter(
28
- () => pubsub.asyncIterator('scenario-instance-log'),
29
- (payload, variables, context, info) => {
27
+ return pipe(
28
+ pubsub.subscribe('scenario-instance-log'),
29
+ filter((payload: { scenarioInstanceLog: Log }) => {
30
30
  const { source, level: plevel } = payload.scenarioInstanceLog
31
- const { domain: pdomain, scenarioName: pscenarioName, instanceName: pinstanceName } = source
31
+ const { domain: pdomain, scenarioName: pscenarioName, instanceName: pinstanceName } = source as any
32
32
 
33
33
  if (subdomain !== pdomain?.subdomain) {
34
34
  return false
@@ -47,8 +47,8 @@ export class ScenarioInstanceSubscription {
47
47
  }
48
48
 
49
49
  return true
50
- }
51
- )(_, args, context, info)
50
+ })
51
+ )
52
52
  }
53
53
  })
54
54
  scenarioInstanceLog(
@@ -61,7 +61,7 @@ export class ScenarioInstanceSubscription {
61
61
  }
62
62
 
63
63
  @Subscription({
64
- subscribe: (_, args, context, info) => {
64
+ subscribe: ({ args, context, info }) => {
65
65
  const { domain, user } = context.state
66
66
  const { instanceName, scenarioName } = args
67
67
  const subdomain = domain?.subdomain
@@ -79,24 +79,17 @@ export class ScenarioInstanceSubscription {
79
79
  process.nextTick(() => {
80
80
  ScenarioEngine.getScenarioInstances(domain)
81
81
  .filter(instance => {
82
- return (
83
- (!instanceName || instance.instanceName === instanceName) &&
84
- (!scenarioName || instance.scenarioName === scenarioName)
85
- )
82
+ return (!instanceName || instance.instanceName === instanceName) && (!scenarioName || instance.scenarioName === scenarioName)
86
83
  })
87
84
  .forEach(instance => {
88
85
  instance.publishState()
89
86
  })
90
87
  })
91
88
 
92
- return withFilter(
93
- () => pubsub.asyncIterator('scenario-instance-state'),
94
- (payload, variables, context, info) => {
95
- const {
96
- domain: pdomain,
97
- scenarioName: pscenarioName,
98
- instanceName: pinstanceName
99
- } = payload.scenarioInstanceState
89
+ return pipe(
90
+ pubsub.subscribe('scenario-instance-state'),
91
+ filter((payload: { scenarioInstanceState: ScenarioInstanceState }) => {
92
+ const { domain: pdomain, scenarioName: pscenarioName, instanceName: pinstanceName } = payload.scenarioInstanceState
100
93
 
101
94
  if (subdomain !== pdomain?.subdomain) {
102
95
  return false
@@ -111,8 +104,8 @@ export class ScenarioInstanceSubscription {
111
104
  }
112
105
 
113
106
  return true
114
- }
115
- )(_, args, context, info)
107
+ })
108
+ )
116
109
  }
117
110
  })
118
111
  scenarioInstanceState(
@@ -1,7 +1,7 @@
1
1
  import { Resolver, Subscription, Root, Arg } from 'type-graphql'
2
2
  import { ScenarioQueueState } from './scenario-queue-type'
3
3
  import { pubsub } from '@things-factory/shell'
4
- import { withFilter } from 'graphql-subscriptions'
4
+ import { filter, pipe } from 'graphql-yoga'
5
5
  import { ScenarioEngine } from '../../engine'
6
6
 
7
7
  const debug = require('debug')('things-factory:integration:connection-subscription')
@@ -9,7 +9,7 @@ const debug = require('debug')('things-factory:integration:connection-subscripti
9
9
  @Resolver()
10
10
  export class ScenarioQueueSubscription {
11
11
  @Subscription({
12
- subscribe: (_, args, context, info) => {
12
+ subscribe: ({ args, context, info }) => {
13
13
  const { domain, user } = context.state
14
14
  const subdomain = domain?.subdomain
15
15
 
@@ -35,9 +35,9 @@ export class ScenarioQueueSubscription {
35
35
  }
36
36
  })
37
37
 
38
- return withFilter(
39
- () => pubsub.asyncIterator('scenario-queue-state'),
40
- (payload, variables, context, info) => {
38
+ return pipe(
39
+ pubsub.subscribe('scenario-queue-state'),
40
+ filter((payload: { scenarioQueueState: ScenarioQueueState }) => {
41
41
  const { domain: pdomain } = payload.scenarioQueueState
42
42
 
43
43
  if (pdomain?.subdomain !== subdomain) {
@@ -45,8 +45,8 @@ export class ScenarioQueueSubscription {
45
45
  }
46
46
 
47
47
  return true
48
- }
49
- )(_, args, context, info)
48
+ })
49
+ )
50
50
  }
51
51
  })
52
52
  scenarioQueueState(@Root() payload: { scenarioQueueState: ScenarioQueueState }): ScenarioQueueState {
@@ -15,98 +15,145 @@ import { Domain } from '@things-factory/shell'
15
15
 
16
16
  import { Scenario } from '../scenario/scenario'
17
17
 
18
+
18
19
  @Entity()
19
20
  @Index('ix_step_0', (step: Step) => [step.scenario, step.sequence], { unique: true })
20
21
  @ObjectType()
21
22
  export class Step {
23
+ /**
24
+ * The unique identifier for each step.
25
+ */
22
26
  @PrimaryGeneratedColumn('uuid')
23
27
  @Field(type => ID)
24
28
  readonly id: string
25
29
 
30
+ /**
31
+ * The domain to which this step belongs.
32
+ */
26
33
  @ManyToOne(type => Domain)
27
34
  @Field({ nullable: true })
28
35
  domain: Domain
29
36
 
37
+ /**
38
+ * The ID of the domain associated with this step.
39
+ */
30
40
  @RelationId((step: Step) => step.domain)
31
41
  domainId: string
32
42
 
33
- @Column({
34
- nullable: true
35
- })
43
+ /**
44
+ * The name of the step.
45
+ */
46
+ @Column({ nullable: true })
36
47
  @Field()
37
48
  name: string
38
49
 
39
- @Column({
40
- nullable: true
41
- })
50
+ /**
51
+ * A description of what the step involves.
52
+ */
53
+ @Column({ nullable: true })
42
54
  @Field({ nullable: true })
43
55
  description: string
44
56
 
57
+ /**
58
+ * The scenario that includes this step.
59
+ */
45
60
  @ManyToOne(type => Scenario, scenario => scenario.steps, { onDelete: 'CASCADE' })
46
61
  @Field(type => Scenario, { nullable: true })
47
62
  scenario: Scenario
48
63
 
64
+ /**
65
+ * The ID of the scenario associated with this step.
66
+ */
49
67
  @RelationId((step: Step) => step.scenario)
50
68
  scenarioId: string
51
69
 
70
+ /**
71
+ * The sequence number of the step within its scenario.
72
+ */
52
73
  @Column()
53
74
  @Field({ nullable: true })
54
75
  sequence: number
55
76
 
77
+ /**
78
+ * The specific task associated with this step.
79
+ */
56
80
  @Column()
57
81
  @Field({ nullable: true })
58
82
  task: string
59
83
 
60
- @Column({
61
- nullable: true
62
- })
84
+ /**
85
+ * Boolean value to indicate if the step should be skipped.
86
+ */
87
+ @Column({ nullable: true })
63
88
  @Field({ nullable: true })
64
89
  skip: boolean
65
90
 
66
- @Column({
67
- nullable: true
68
- })
91
+ /**
92
+ * Boolean value to indicate if the step should be logged.
93
+ */
94
+ @Column({ nullable: true })
69
95
  @Field({ nullable: true })
70
96
  log: boolean
71
97
 
72
- @Column({
73
- nullable: true
74
- })
98
+ /**
99
+ * The connection details associated with this step.
100
+ */
101
+ @Column({ nullable: true })
75
102
  @Field({ nullable: true })
76
103
  connection: string
77
104
 
78
- @Column({
79
- nullable: true
80
- })
105
+ /**
106
+ * The parameters for the step.
107
+ */
108
+ @Column({ nullable: true })
81
109
  @Field({ nullable: true })
82
110
  params: string
83
111
 
112
+ /**
113
+ * A boolean attribute indicating the inclusion status of an element in the result.
114
+ */
84
115
  @Column({ nullable: true, default: true })
85
- @Field({
86
- nullable: true,
87
- description: 'a boolean attribute indicating the inclusion status of an element in the result'
88
- })
116
+ @Field({ nullable: true, description: 'A boolean attribute indicating the inclusion status of an element in the result' })
89
117
  result: boolean = true
90
118
 
119
+ /**
120
+ * The timestamp when the step was created.
121
+ */
91
122
  @CreateDateColumn()
92
123
  @Field({ nullable: true })
93
124
  createdAt: Date
94
125
 
126
+ /**
127
+ * The timestamp when
128
+ the step was last updated.
129
+ */
95
130
  @UpdateDateColumn()
96
131
  @Field({ nullable: true })
97
132
  updatedAt: Date
98
133
 
134
+ /**
135
+ * The user who created this step.
136
+ */
99
137
  @ManyToOne(type => User, { nullable: true })
100
138
  @Field({ nullable: true })
101
139
  creator: User
102
140
 
141
+ /**
142
+ * The ID of the user who created this step.
143
+ */
103
144
  @RelationId((step: Step) => step.creator)
104
145
  creatorId: string
105
146
 
147
+ /**
148
+ * The user who last updated this step.
149
+ */
106
150
  @ManyToOne(type => User, { nullable: true })
107
151
  @Field({ nullable: true })
108
152
  updater: User
109
153
 
154
+ /**
155
+ * The ID of the user who last updated this step.
156
+ */
110
157
  @RelationId((step: Step) => step.updater)
111
158
  updaterId: string
112
159
  }
@@ -147,6 +194,15 @@ export class StepPatch {
147
194
  cuFlag?: string
148
195
  }
149
196
 
197
+ /**
198
+ * Step의 params의 원 타입과 사용 시에 타입 불일치로 인해 임시적으로 생성한 타입으로
199
+ * 추후, 타입 일치를 통해서 제거할 예정임.
200
+ *
201
+ */
202
+ export interface InputStep extends Step {
203
+ params: any
204
+ }
205
+
150
206
  @ObjectType()
151
207
  export class StepList {
152
208
  @Field(type => [Step])