@things-factory/process 6.0.57

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 (212) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/assets/images/hatiolab-logo.png +0 -0
  3. package/client/actions/main.ts +1 -0
  4. package/client/bootstrap.ts +8 -0
  5. package/client/index.ts +1 -0
  6. package/client/pages/main.ts +25 -0
  7. package/client/pages/process/process-importer.ts +97 -0
  8. package/client/pages/process/process-list-page.ts +348 -0
  9. package/client/pages/process-instance/process-instance-importer.ts +97 -0
  10. package/client/pages/process-instance/process-instance-list-page.ts +348 -0
  11. package/client/pages/process-thread/process-thread-importer.ts +97 -0
  12. package/client/pages/process-thread/process-thread-list-page.ts +348 -0
  13. package/client/reducers/main.ts +17 -0
  14. package/client/route.ts +19 -0
  15. package/client/tsconfig.json +11 -0
  16. package/dist-client/actions/main.d.ts +1 -0
  17. package/dist-client/actions/main.js +2 -0
  18. package/dist-client/actions/main.js.map +1 -0
  19. package/dist-client/bootstrap.d.ts +1 -0
  20. package/dist-client/bootstrap.js +8 -0
  21. package/dist-client/bootstrap.js.map +1 -0
  22. package/dist-client/index.d.ts +1 -0
  23. package/dist-client/index.js +2 -0
  24. package/dist-client/index.js.map +1 -0
  25. package/dist-client/pages/main.d.ts +1 -0
  26. package/dist-client/pages/main.js +27 -0
  27. package/dist-client/pages/main.js.map +1 -0
  28. package/dist-client/pages/process/process-importer.d.ts +22 -0
  29. package/dist-client/pages/process/process-importer.js +100 -0
  30. package/dist-client/pages/process/process-importer.js.map +1 -0
  31. package/dist-client/pages/process/process-list-page.d.ts +62 -0
  32. package/dist-client/pages/process/process-list-page.js +326 -0
  33. package/dist-client/pages/process/process-list-page.js.map +1 -0
  34. package/dist-client/pages/process-instance/process-instance-importer.d.ts +22 -0
  35. package/dist-client/pages/process-instance/process-instance-importer.js +100 -0
  36. package/dist-client/pages/process-instance/process-instance-importer.js.map +1 -0
  37. package/dist-client/pages/process-instance/process-instance-list-page.d.ts +62 -0
  38. package/dist-client/pages/process-instance/process-instance-list-page.js +326 -0
  39. package/dist-client/pages/process-instance/process-instance-list-page.js.map +1 -0
  40. package/dist-client/pages/process-thread/process-thread-importer.d.ts +22 -0
  41. package/dist-client/pages/process-thread/process-thread-importer.js +100 -0
  42. package/dist-client/pages/process-thread/process-thread-importer.js.map +1 -0
  43. package/dist-client/pages/process-thread/process-thread-list-page.d.ts +62 -0
  44. package/dist-client/pages/process-thread/process-thread-list-page.js +326 -0
  45. package/dist-client/pages/process-thread/process-thread-list-page.js.map +1 -0
  46. package/dist-client/reducers/main.d.ts +6 -0
  47. package/dist-client/reducers/main.js +14 -0
  48. package/dist-client/reducers/main.js.map +1 -0
  49. package/dist-client/route.d.ts +1 -0
  50. package/dist-client/route.js +17 -0
  51. package/dist-client/route.js.map +1 -0
  52. package/dist-client/tsconfig.tsbuildinfo +1 -0
  53. package/dist-server/controllers/common.js +70 -0
  54. package/dist-server/controllers/common.js.map +1 -0
  55. package/dist-server/controllers/index.js +1 -0
  56. package/dist-server/controllers/index.js.map +1 -0
  57. package/dist-server/controllers/process-instance/abort.js +54 -0
  58. package/dist-server/controllers/process-instance/abort.js.map +1 -0
  59. package/dist-server/controllers/process-instance/assign.js +41 -0
  60. package/dist-server/controllers/process-instance/assign.js.map +1 -0
  61. package/dist-server/controllers/process-instance/draft.js +74 -0
  62. package/dist-server/controllers/process-instance/draft.js.map +1 -0
  63. package/dist-server/controllers/process-instance/end.js +54 -0
  64. package/dist-server/controllers/process-instance/end.js.map +1 -0
  65. package/dist-server/controllers/process-instance/index.js +6 -0
  66. package/dist-server/controllers/process-instance/index.js.map +1 -0
  67. package/dist-server/controllers/process-instance/issue.js +105 -0
  68. package/dist-server/controllers/process-instance/issue.js.map +1 -0
  69. package/dist-server/controllers/process-instance/pick.js +33 -0
  70. package/dist-server/controllers/process-instance/pick.js.map +1 -0
  71. package/dist-server/controllers/process-thread/_abort.js +11 -0
  72. package/dist-server/controllers/process-thread/_abort.js.map +1 -0
  73. package/dist-server/controllers/process-thread/abort.js +36 -0
  74. package/dist-server/controllers/process-thread/abort.js.map +1 -0
  75. package/dist-server/controllers/process-thread/delegate.js +36 -0
  76. package/dist-server/controllers/process-thread/delegate.js.map +1 -0
  77. package/dist-server/controllers/process-thread/end.js +35 -0
  78. package/dist-server/controllers/process-thread/end.js.map +1 -0
  79. package/dist-server/controllers/process-thread/index.js +7 -0
  80. package/dist-server/controllers/process-thread/index.js.map +1 -0
  81. package/dist-server/controllers/process-thread/restart.js +36 -0
  82. package/dist-server/controllers/process-thread/restart.js.map +1 -0
  83. package/dist-server/controllers/process-thread/save.js +38 -0
  84. package/dist-server/controllers/process-thread/save.js.map +1 -0
  85. package/dist-server/controllers/process-thread/start.js +32 -0
  86. package/dist-server/controllers/process-thread/start.js.map +1 -0
  87. package/dist-server/controllers/process-thread/submit.js +37 -0
  88. package/dist-server/controllers/process-thread/submit.js.map +1 -0
  89. package/dist-server/index.js +7 -0
  90. package/dist-server/index.js.map +1 -0
  91. package/dist-server/middlewares/index.js +8 -0
  92. package/dist-server/middlewares/index.js.map +1 -0
  93. package/dist-server/migrations/index.js +12 -0
  94. package/dist-server/migrations/index.js.map +1 -0
  95. package/dist-server/routes.js +25 -0
  96. package/dist-server/routes.js.map +1 -0
  97. package/dist-server/service/index.js +33 -0
  98. package/dist-server/service/index.js.map +1 -0
  99. package/dist-server/service/process/event-subscriber.js +21 -0
  100. package/dist-server/service/process/event-subscriber.js.map +1 -0
  101. package/dist-server/service/process/index.js +12 -0
  102. package/dist-server/service/process/index.js.map +1 -0
  103. package/dist-server/service/process/process-history.js +113 -0
  104. package/dist-server/service/process/process-history.js.map +1 -0
  105. package/dist-server/service/process/process-model-type.js +138 -0
  106. package/dist-server/service/process/process-model-type.js.map +1 -0
  107. package/dist-server/service/process/process-mutation.js +179 -0
  108. package/dist-server/service/process/process-mutation.js.map +1 -0
  109. package/dist-server/service/process/process-query.js +160 -0
  110. package/dist-server/service/process/process-query.js.map +1 -0
  111. package/dist-server/service/process/process-search-key-item-type.js +28 -0
  112. package/dist-server/service/process/process-search-key-item-type.js.map +1 -0
  113. package/dist-server/service/process/process-type.js +91 -0
  114. package/dist-server/service/process/process-type.js.map +1 -0
  115. package/dist-server/service/process/process.js +112 -0
  116. package/dist-server/service/process/process.js.map +1 -0
  117. package/dist-server/service/process-instance/event-subscriber.js +43 -0
  118. package/dist-server/service/process-instance/event-subscriber.js.map +1 -0
  119. package/dist-server/service/process-instance/index.js +13 -0
  120. package/dist-server/service/process-instance/index.js.map +1 -0
  121. package/dist-server/service/process-instance/process-instance-history.js +173 -0
  122. package/dist-server/service/process-instance/process-instance-history.js.map +1 -0
  123. package/dist-server/service/process-instance/process-instance-mutation.js +44 -0
  124. package/dist-server/service/process-instance/process-instance-mutation.js.map +1 -0
  125. package/dist-server/service/process-instance/process-instance-query.js +176 -0
  126. package/dist-server/service/process-instance/process-instance-query.js.map +1 -0
  127. package/dist-server/service/process-instance/process-instance-subscription.js +54 -0
  128. package/dist-server/service/process-instance/process-instance-subscription.js.map +1 -0
  129. package/dist-server/service/process-instance/process-instance-type.js +103 -0
  130. package/dist-server/service/process-instance/process-instance-type.js.map +1 -0
  131. package/dist-server/service/process-instance/process-instance.js +177 -0
  132. package/dist-server/service/process-instance/process-instance.js.map +1 -0
  133. package/dist-server/service/process-stats/index.js +6 -0
  134. package/dist-server/service/process-stats/index.js.map +1 -0
  135. package/dist-server/service/process-stats/process-stats-query.js +61 -0
  136. package/dist-server/service/process-stats/process-stats-query.js.map +1 -0
  137. package/dist-server/service/process-stats/process-stats-type.js +43 -0
  138. package/dist-server/service/process-stats/process-stats-type.js.map +1 -0
  139. package/dist-server/service/process-summary/index.js +8 -0
  140. package/dist-server/service/process-summary/index.js.map +1 -0
  141. package/dist-server/service/process-summary/process-summary-query.js +109 -0
  142. package/dist-server/service/process-summary/process-summary-query.js.map +1 -0
  143. package/dist-server/service/process-summary/process-summary.js +28 -0
  144. package/dist-server/service/process-summary/process-summary.js.map +1 -0
  145. package/dist-server/service/process-thread/event-subscriber.js +31 -0
  146. package/dist-server/service/process-thread/event-subscriber.js.map +1 -0
  147. package/dist-server/service/process-thread/index.js +12 -0
  148. package/dist-server/service/process-thread/index.js.map +1 -0
  149. package/dist-server/service/process-thread/process-thread-history.js +194 -0
  150. package/dist-server/service/process-thread/process-thread-history.js.map +1 -0
  151. package/dist-server/service/process-thread/process-thread-mutation.js +45 -0
  152. package/dist-server/service/process-thread/process-thread-mutation.js.map +1 -0
  153. package/dist-server/service/process-thread/process-thread-query.js +92 -0
  154. package/dist-server/service/process-thread/process-thread-query.js.map +1 -0
  155. package/dist-server/service/process-thread/process-thread-subscription.js +45 -0
  156. package/dist-server/service/process-thread/process-thread-subscription.js.map +1 -0
  157. package/dist-server/service/process-thread/process-thread-type.js +21 -0
  158. package/dist-server/service/process-thread/process-thread-type.js.map +1 -0
  159. package/dist-server/service/process-thread/process-thread.js +101 -0
  160. package/dist-server/service/process-thread/process-thread.js.map +1 -0
  161. package/dist-server/tsconfig.tsbuildinfo +1 -0
  162. package/helps/process/process-instance.md +160 -0
  163. package/helps/process/process-thread.md +160 -0
  164. package/helps/process/process.md +160 -0
  165. package/package.json +44 -0
  166. package/server/controllers/common.ts +90 -0
  167. package/server/controllers/index.ts +0 -0
  168. package/server/controllers/process-instance/abort.ts +75 -0
  169. package/server/controllers/process-instance/end.ts +74 -0
  170. package/server/controllers/process-instance/index.ts +2 -0
  171. package/server/controllers/process-thread/_abort.ts +20 -0
  172. package/server/controllers/process-thread/abort.ts +48 -0
  173. package/server/controllers/process-thread/end.ts +54 -0
  174. package/server/controllers/process-thread/index.ts +3 -0
  175. package/server/controllers/process-thread/start.ts +49 -0
  176. package/server/index.ts +4 -0
  177. package/server/middlewares/index.ts +3 -0
  178. package/server/migrations/index.ts +9 -0
  179. package/server/routes.ts +28 -0
  180. package/server/service/index.ts +32 -0
  181. package/server/service/process/event-subscriber.ts +17 -0
  182. package/server/service/process/index.ts +9 -0
  183. package/server/service/process/process-history.ts +102 -0
  184. package/server/service/process/process-mutation.ts +210 -0
  185. package/server/service/process/process-query.ts +117 -0
  186. package/server/service/process/process-search-key-item-type.ts +16 -0
  187. package/server/service/process/process-type.ts +65 -0
  188. package/server/service/process/process.ts +97 -0
  189. package/server/service/process-instance/event-subscriber.ts +44 -0
  190. package/server/service/process-instance/index.ts +10 -0
  191. package/server/service/process-instance/process-instance-history.ts +148 -0
  192. package/server/service/process-instance/process-instance-mutation.ts +33 -0
  193. package/server/service/process-instance/process-instance-query.ts +138 -0
  194. package/server/service/process-instance/process-instance-subscription.ts +52 -0
  195. package/server/service/process-instance/process-instance-type.ts +71 -0
  196. package/server/service/process-instance/process-instance.ts +147 -0
  197. package/server/service/process-stats/index.ts +3 -0
  198. package/server/service/process-stats/process-stats-query.ts +57 -0
  199. package/server/service/process-stats/process-stats-type.ts +31 -0
  200. package/server/service/process-thread/event-subscriber.ts +31 -0
  201. package/server/service/process-thread/index.ts +9 -0
  202. package/server/service/process-thread/process-thread-mutation.ts +34 -0
  203. package/server/service/process-thread/process-thread-query.ts +58 -0
  204. package/server/service/process-thread/process-thread-subscription.ts +41 -0
  205. package/server/service/process-thread/process-thread-type.ts +15 -0
  206. package/server/service/process-thread/process-thread.ts +90 -0
  207. package/server/tsconfig.json +10 -0
  208. package/things-factory.config.js +13 -0
  209. package/translations/en.json +1 -0
  210. package/translations/ko.json +1 -0
  211. package/translations/ms.json +1 -0
  212. package/translations/zh.json +1 -0
@@ -0,0 +1,173 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProcessInstanceHistory = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const type_graphql_1 = require("type-graphql");
6
+ const typeorm_1 = require("typeorm");
7
+ const typeorm_history_1 = require("@operato/typeorm-history");
8
+ const auth_base_1 = require("@things-factory/auth-base");
9
+ const env_1 = require("@things-factory/env");
10
+ const shell_1 = require("@things-factory/shell");
11
+ const process_instance_1 = require("./process-instance");
12
+ const ORMCONFIG = env_1.config.get('ormconfig', {});
13
+ const DATABASE_TYPE = ORMCONFIG.type;
14
+ let ProcessInstanceHistory = class ProcessInstanceHistory {
15
+ constructor() {
16
+ this.version = 1;
17
+ this.key01 = '';
18
+ this.key02 = '';
19
+ this.key03 = '';
20
+ this.key04 = '';
21
+ this.key05 = '';
22
+ }
23
+ };
24
+ tslib_1.__decorate([
25
+ (0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
26
+ (0, type_graphql_1.Field)(type => type_graphql_1.ID),
27
+ tslib_1.__metadata("design:type", String)
28
+ ], ProcessInstanceHistory.prototype, "id", void 0);
29
+ tslib_1.__decorate([
30
+ (0, typeorm_1.Column)({
31
+ nullable: true,
32
+ default: 1
33
+ }),
34
+ (0, type_graphql_1.Field)({ nullable: true }),
35
+ tslib_1.__metadata("design:type", Number)
36
+ ], ProcessInstanceHistory.prototype, "version", void 0);
37
+ tslib_1.__decorate([
38
+ (0, typeorm_1.ManyToOne)(type => shell_1.Domain),
39
+ (0, type_graphql_1.Field)({ nullable: true }),
40
+ tslib_1.__metadata("design:type", shell_1.Domain)
41
+ ], ProcessInstanceHistory.prototype, "domain", void 0);
42
+ tslib_1.__decorate([
43
+ (0, typeorm_1.RelationId)((processInstance) => processInstance.domain),
44
+ tslib_1.__metadata("design:type", String)
45
+ ], ProcessInstanceHistory.prototype, "domainId", void 0);
46
+ tslib_1.__decorate([
47
+ (0, typeorm_1.Column)(),
48
+ (0, type_graphql_1.Field)({ nullable: true }),
49
+ tslib_1.__metadata("design:type", String)
50
+ ], ProcessInstanceHistory.prototype, "name", void 0);
51
+ tslib_1.__decorate([
52
+ (0, typeorm_1.Column)({ nullable: true }),
53
+ (0, type_graphql_1.Field)({ nullable: true }),
54
+ tslib_1.__metadata("design:type", String)
55
+ ], ProcessInstanceHistory.prototype, "description", void 0);
56
+ tslib_1.__decorate([
57
+ (0, typeorm_1.Column)({ nullable: true, default: '' }),
58
+ (0, type_graphql_1.Field)({ nullable: true }),
59
+ tslib_1.__metadata("design:type", String)
60
+ ], ProcessInstanceHistory.prototype, "key01", void 0);
61
+ tslib_1.__decorate([
62
+ (0, typeorm_1.Column)({ nullable: true, default: '' }),
63
+ (0, type_graphql_1.Field)({ nullable: true }),
64
+ tslib_1.__metadata("design:type", String)
65
+ ], ProcessInstanceHistory.prototype, "key02", void 0);
66
+ tslib_1.__decorate([
67
+ (0, typeorm_1.Column)({ nullable: true, default: '' }),
68
+ (0, type_graphql_1.Field)({ nullable: true }),
69
+ tslib_1.__metadata("design:type", String)
70
+ ], ProcessInstanceHistory.prototype, "key03", void 0);
71
+ tslib_1.__decorate([
72
+ (0, typeorm_1.Column)({ nullable: true, default: '' }),
73
+ (0, type_graphql_1.Field)({ nullable: true }),
74
+ tslib_1.__metadata("design:type", String)
75
+ ], ProcessInstanceHistory.prototype, "key04", void 0);
76
+ tslib_1.__decorate([
77
+ (0, typeorm_1.Column)({ nullable: true, default: '' }),
78
+ (0, type_graphql_1.Field)({ nullable: true }),
79
+ tslib_1.__metadata("design:type", String)
80
+ ], ProcessInstanceHistory.prototype, "key05", void 0);
81
+ tslib_1.__decorate([
82
+ (0, typeorm_1.Column)({ nullable: true }),
83
+ (0, type_graphql_1.Field)({ nullable: true }),
84
+ tslib_1.__metadata("design:type", String)
85
+ ], ProcessInstanceHistory.prototype, "state", void 0);
86
+ tslib_1.__decorate([
87
+ (0, typeorm_1.Column)({ nullable: true }),
88
+ (0, type_graphql_1.Field)({ nullable: true }),
89
+ tslib_1.__metadata("design:type", String)
90
+ ], ProcessInstanceHistory.prototype, "reason", void 0);
91
+ tslib_1.__decorate([
92
+ (0, typeorm_1.Column)({ nullable: true }),
93
+ (0, type_graphql_1.Field)({ nullable: true }),
94
+ tslib_1.__metadata("design:type", String)
95
+ ], ProcessInstanceHistory.prototype, "refBy", void 0);
96
+ tslib_1.__decorate([
97
+ (0, typeorm_1.ManyToOne)(type => auth_base_1.Role, { nullable: true }),
98
+ (0, type_graphql_1.Field)(type => auth_base_1.Role, { nullable: true }),
99
+ tslib_1.__metadata("design:type", auth_base_1.Role)
100
+ ], ProcessInstanceHistory.prototype, "supervisoryRole", void 0);
101
+ tslib_1.__decorate([
102
+ (0, typeorm_1.RelationId)((processInstance) => processInstance.supervisoryRole),
103
+ tslib_1.__metadata("design:type", String)
104
+ ], ProcessInstanceHistory.prototype, "supervisoryRoleId", void 0);
105
+ tslib_1.__decorate([
106
+ (0, typeorm_1.Column)({ nullable: true }),
107
+ (0, type_graphql_1.Field)({ nullable: true }),
108
+ tslib_1.__metadata("design:type", Date)
109
+ ], ProcessInstanceHistory.prototype, "dueAt", void 0);
110
+ tslib_1.__decorate([
111
+ (0, typeorm_1.Column)(),
112
+ (0, type_graphql_1.Field)({ nullable: true }),
113
+ tslib_1.__metadata("design:type", Date)
114
+ ], ProcessInstanceHistory.prototype, "createdAt", void 0);
115
+ tslib_1.__decorate([
116
+ (0, typeorm_1.Column)(),
117
+ (0, type_graphql_1.Field)({ nullable: true }),
118
+ tslib_1.__metadata("design:type", Date)
119
+ ], ProcessInstanceHistory.prototype, "updatedAt", void 0);
120
+ tslib_1.__decorate([
121
+ (0, typeorm_1.Column)({ nullable: true }),
122
+ (0, type_graphql_1.Field)({ nullable: true }),
123
+ tslib_1.__metadata("design:type", Date)
124
+ ], ProcessInstanceHistory.prototype, "terminatedAt", void 0);
125
+ tslib_1.__decorate([
126
+ (0, typeorm_1.ManyToOne)(type => auth_base_1.User, { nullable: true }),
127
+ (0, type_graphql_1.Field)({ nullable: true }),
128
+ tslib_1.__metadata("design:type", auth_base_1.User)
129
+ ], ProcessInstanceHistory.prototype, "creator", void 0);
130
+ tslib_1.__decorate([
131
+ (0, typeorm_1.RelationId)((processInstance) => processInstance.creator),
132
+ tslib_1.__metadata("design:type", String)
133
+ ], ProcessInstanceHistory.prototype, "creatorId", void 0);
134
+ tslib_1.__decorate([
135
+ (0, typeorm_1.ManyToOne)(type => auth_base_1.User, { nullable: true }),
136
+ (0, type_graphql_1.Field)({ nullable: true }),
137
+ tslib_1.__metadata("design:type", auth_base_1.User)
138
+ ], ProcessInstanceHistory.prototype, "updater", void 0);
139
+ tslib_1.__decorate([
140
+ (0, typeorm_1.RelationId)((processInstance) => processInstance.updater),
141
+ tslib_1.__metadata("design:type", String)
142
+ ], ProcessInstanceHistory.prototype, "updaterId", void 0);
143
+ tslib_1.__decorate([
144
+ (0, typeorm_history_1.HistoryOriginalIdColumn)(),
145
+ tslib_1.__metadata("design:type", String)
146
+ ], ProcessInstanceHistory.prototype, "originalId", void 0);
147
+ tslib_1.__decorate([
148
+ (0, typeorm_history_1.HistoryActionColumn)({
149
+ nullable: false,
150
+ type: DATABASE_TYPE == 'postgres' || DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'
151
+ ? 'enum'
152
+ : DATABASE_TYPE == 'oracle'
153
+ ? 'varchar2'
154
+ : 'smallint',
155
+ enum: typeorm_history_1.HistoryActionType
156
+ }),
157
+ tslib_1.__metadata("design:type", String)
158
+ ], ProcessInstanceHistory.prototype, "action", void 0);
159
+ ProcessInstanceHistory = tslib_1.__decorate([
160
+ (0, typeorm_1.Entity)(),
161
+ (0, typeorm_1.Index)('ix_process_instance_history_0', (processInstanceHistory) => [
162
+ processInstanceHistory.originalId,
163
+ processInstanceHistory.version
164
+ ], { unique: true }),
165
+ (0, typeorm_1.Index)('ix_process_instance_history_1', (processInstanceHistory) => [
166
+ processInstanceHistory.domain,
167
+ processInstanceHistory.originalId,
168
+ processInstanceHistory.version
169
+ ], { unique: true }),
170
+ (0, type_graphql_1.ObjectType)({ description: 'History Entity of ProcessInstance' })
171
+ ], ProcessInstanceHistory);
172
+ exports.ProcessInstanceHistory = ProcessInstanceHistory;
173
+ //# sourceMappingURL=process-instance-history.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-instance-history.js","sourceRoot":"","sources":["../../../server/service/process-instance/process-instance-history.ts"],"names":[],"mappings":";;;;AAAA,+CAAyD;AACzD,qCAA8F;AAE9F,8DAKiC;AACjC,yDAAsD;AACtD,6CAA4C;AAC5C,iDAA4D;AAE5D,yDAA2E;AAE3E,MAAM,SAAS,GAAG,YAAM,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;AAC7C,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAA;AAqB7B,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAA5B;QAUL,YAAO,GAAY,CAAC,CAAA;QAmBpB,UAAK,GAAY,EAAE,CAAA;QAInB,UAAK,GAAY,EAAE,CAAA;QAInB,UAAK,GAAY,EAAE,CAAA;QAInB,UAAK,GAAY,EAAE,CAAA;QAInB,UAAK,GAAY,EAAE,CAAA;IAiErB,CAAC;CAAA,CAAA;AA7GC;IAAC,IAAA,gCAAsB,EAAC,MAAM,CAAC;IAC9B,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,CAAC;;kDACC;AAEnB;IAAC,IAAA,gBAAM,EAAC;QACN,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,CAAC;KACX,CAAC;IACD,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uDACN;AAEpB;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;IACzB,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACjB,cAAM;sDAAA;AAEf;IAAC,IAAA,oBAAU,EAAC,CAAC,eAAgC,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC;;wDACxD;AAEjB;IAAC,IAAA,gBAAM,GAAE;IACR,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oDACb;AAEb;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2DACN;AAEpB;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACvC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACP;AAEnB;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACvC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACP;AAEnB;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACvC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACP;AAEnB;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACvC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACP;AAEnB;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACvC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACP;AAEnB;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACG;AAE7B;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sDACX;AAEf;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACZ;AAEd;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC3C,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACtB,gBAAI;+DAAA;AAEtB;IAAC,IAAA,oBAAU,EAAC,CAAC,eAAgC,EAAE,EAAE,CAAC,eAAe,CAAC,eAAe,CAAC;;iEACxD;AAE1B;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCAClB,IAAI;qDAAA;AAEZ;IAAC,IAAA,gBAAM,GAAE;IACR,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACd,IAAI;yDAAA;AAEhB;IAAC,IAAA,gBAAM,GAAE;IACR,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACd,IAAI;yDAAA;AAEhB;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACX,IAAI;4DAAA;AAEnB;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC3C,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCAChB,gBAAI;uDAAA;AAEd;IAAC,IAAA,oBAAU,EAAC,CAAC,eAAgC,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC;;yDACxD;AAElB;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC3C,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCAChB,gBAAI;uDAAA;AAEd;IAAC,IAAA,oBAAU,EAAC,CAAC,eAAgC,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC;;yDACxD;AAElB;IAAC,IAAA,yCAAuB,GAAE;;0DACA;AAE1B;IAAC,IAAA,qCAAmB,EAAC;QACnB,QAAQ,EAAE,KAAK;QACf,IAAI,EACF,aAAa,IAAI,UAAU,IAAI,aAAa,IAAI,OAAO,IAAI,aAAa,IAAI,SAAS;YACnF,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,aAAa,IAAI,QAAQ;gBAC3B,CAAC,CAAC,UAAU;gBACZ,CAAC,CAAC,UAAU;QAChB,IAAI,EAAE,mCAAiB;KACxB,CAAC;;sDAC+B;AA7GtB,sBAAsB;IAnBlC,IAAA,gBAAM,GAAE;IACR,IAAA,eAAK,EACJ,+BAA+B,EAC/B,CAAC,sBAA8C,EAAE,EAAE,CAAC;QAClD,sBAAsB,CAAC,UAAU;QACjC,sBAAsB,CAAC,OAAO;KAC/B,EACD,EAAE,MAAM,EAAE,IAAI,EAAE,CACjB;IACA,IAAA,eAAK,EACJ,+BAA+B,EAC/B,CAAC,sBAA8C,EAAE,EAAE,CAAC;QAClD,sBAAsB,CAAC,MAAM;QAC7B,sBAAsB,CAAC,UAAU;QACjC,sBAAsB,CAAC,OAAO;KAC/B,EACD,EAAE,MAAM,EAAE,IAAI,EAAE,CACjB;IACA,IAAA,yBAAU,EAAC,EAAE,WAAW,EAAE,mCAAmC,EAAE,CAAC;GACpD,sBAAsB,CA8GlC;AA9GY,wDAAsB","sourcesContent":["import { Field, ID, Int, ObjectType } from 'type-graphql'\nimport { Column, Entity, Index, ManyToOne, PrimaryGeneratedColumn, RelationId } from 'typeorm'\n\nimport {\n HistoryActionColumn,\n HistoryActionType,\n HistoryEntityInterface,\n HistoryOriginalIdColumn\n} from '@operato/typeorm-history'\nimport { Role, User } from '@things-factory/auth-base'\nimport { config } from '@things-factory/env'\nimport { Domain, ScalarObject } from '@things-factory/shell'\n\nimport { ProcessInstance, ProcessInstanceStatus } from './process-instance'\n\nconst ORMCONFIG = config.get('ormconfig', {})\nconst DATABASE_TYPE = ORMCONFIG.type\n\n@Entity()\n@Index(\n 'ix_process_instance_history_0',\n (processInstanceHistory: ProcessInstanceHistory) => [\n processInstanceHistory.originalId,\n processInstanceHistory.version\n ],\n { unique: true }\n)\n@Index(\n 'ix_process_instance_history_1',\n (processInstanceHistory: ProcessInstanceHistory) => [\n processInstanceHistory.domain,\n processInstanceHistory.originalId,\n processInstanceHistory.version\n ],\n { unique: true }\n)\n@ObjectType({ description: 'History Entity of ProcessInstance' })\nexport class ProcessInstanceHistory implements HistoryEntityInterface<ProcessInstance> {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @Column({\n nullable: true,\n default: 1\n })\n @Field({ nullable: true })\n version?: number = 1\n\n @ManyToOne(type => Domain)\n @Field({ nullable: true })\n domain?: Domain\n\n @RelationId((processInstance: ProcessInstance) => processInstance.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, default: '' })\n @Field({ nullable: true })\n key01?: string = ''\n\n @Column({ nullable: true, default: '' })\n @Field({ nullable: true })\n key02?: string = ''\n\n @Column({ nullable: true, default: '' })\n @Field({ nullable: true })\n key03?: string = ''\n\n @Column({ nullable: true, default: '' })\n @Field({ nullable: true })\n key04?: string = ''\n\n @Column({ nullable: true, default: '' })\n @Field({ nullable: true })\n key05?: string = ''\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n state?: ProcessInstanceStatus\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n reason?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n refBy?: string\n\n @ManyToOne(type => Role, { nullable: true })\n @Field(type => Role, { nullable: true })\n supervisoryRole?: Role\n\n @RelationId((processInstance: ProcessInstance) => processInstance.supervisoryRole)\n supervisoryRoleId?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n dueAt?: Date\n\n @Column()\n @Field({ nullable: true })\n createdAt?: Date\n\n @Column()\n @Field({ nullable: true })\n updatedAt?: Date\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n terminatedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field({ nullable: true })\n creator?: User\n\n @RelationId((processInstance: ProcessInstance) => processInstance.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field({ nullable: true })\n updater?: User\n\n @RelationId((processInstance: ProcessInstance) => processInstance.updater)\n updaterId?: string\n\n @HistoryOriginalIdColumn()\n public originalId!: string\n\n @HistoryActionColumn({\n nullable: false,\n type:\n DATABASE_TYPE == 'postgres' || DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'\n ? 'enum'\n : DATABASE_TYPE == 'oracle'\n ? 'varchar2'\n : 'smallint',\n enum: HistoryActionType\n })\n public action!: HistoryActionType\n}\n"]}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProcessInstanceMutation = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const type_graphql_1 = require("type-graphql");
6
+ const shell_1 = require("@things-factory/shell");
7
+ const process_instance_1 = require("../../controllers/process-instance");
8
+ const process_instance_2 = require("./process-instance");
9
+ let ProcessInstanceMutation = class ProcessInstanceMutation {
10
+ async endProcessInstance(id, output, reason, context) {
11
+ return await (0, process_instance_1.end)({ id, output, reason }, context);
12
+ }
13
+ async abortProcessInstance(id, reason, context) {
14
+ return await (0, process_instance_1.abort)({ id, reason }, context);
15
+ }
16
+ };
17
+ tslib_1.__decorate([
18
+ (0, type_graphql_1.Directive)('@transaction'),
19
+ (0, type_graphql_1.Directive)('@privilege(category: "process", privilege: "mutation", domainOwnerGranted: true)'),
20
+ (0, type_graphql_1.Mutation)(returns => process_instance_2.ProcessInstance, { description: 'To end a ProcessInstance' }),
21
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
22
+ tslib_1.__param(1, (0, type_graphql_1.Arg)('output', type => shell_1.ScalarObject, { nullable: true })),
23
+ tslib_1.__param(2, (0, type_graphql_1.Arg)('reason', { nullable: true })),
24
+ tslib_1.__param(3, (0, type_graphql_1.Ctx)()),
25
+ tslib_1.__metadata("design:type", Function),
26
+ tslib_1.__metadata("design:paramtypes", [String, Object, String, Object]),
27
+ tslib_1.__metadata("design:returntype", Promise)
28
+ ], ProcessInstanceMutation.prototype, "endProcessInstance", null);
29
+ tslib_1.__decorate([
30
+ (0, type_graphql_1.Directive)('@transaction'),
31
+ (0, type_graphql_1.Directive)('@privilege(category: "process", privilege: "mutation", domainOwnerGranted: true)'),
32
+ (0, type_graphql_1.Mutation)(returns => process_instance_2.ProcessInstance, { description: 'To abort a ProcessInstance' }),
33
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
34
+ tslib_1.__param(1, (0, type_graphql_1.Arg)('reason', { nullable: true })),
35
+ tslib_1.__param(2, (0, type_graphql_1.Ctx)()),
36
+ tslib_1.__metadata("design:type", Function),
37
+ tslib_1.__metadata("design:paramtypes", [String, String, Object]),
38
+ tslib_1.__metadata("design:returntype", Promise)
39
+ ], ProcessInstanceMutation.prototype, "abortProcessInstance", null);
40
+ ProcessInstanceMutation = tslib_1.__decorate([
41
+ (0, type_graphql_1.Resolver)(process_instance_2.ProcessInstance)
42
+ ], ProcessInstanceMutation);
43
+ exports.ProcessInstanceMutation = ProcessInstanceMutation;
44
+ //# sourceMappingURL=process-instance-mutation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-instance-mutation.js","sourceRoot":"","sources":["../../../server/service/process-instance/process-instance-mutation.ts"],"names":[],"mappings":";;;;AAAA,+CAAsE;AAEtE,iDAAoD;AAEpD,yEAA+D;AAC/D,yDAAoD;AAI7C,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;IAI5B,AAAN,KAAK,CAAC,kBAAkB,CACX,EAAU,EACoC,MAA8B,EACpD,MAAc,EAC1C,OAAwB;QAE/B,OAAO,MAAM,IAAA,sBAAG,EAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,CAAA;IACnD,CAAC;IAKK,AAAN,KAAK,CAAC,oBAAoB,CACb,EAAU,EACc,MAAc,EAC1C,OAAwB;QAE/B,OAAO,MAAM,IAAA,wBAAK,EAAC,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,CAAA;IAC7C,CAAC;CACF,CAAA;AAnBO;IAHL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,wBAAS,EAAC,kFAAkF,CAAC;IAC7F,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,kCAAe,EAAE,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAC;IAE/E,mBAAA,IAAA,kBAAG,EAAC,IAAI,CAAC,CAAA;IACT,mBAAA,IAAA,kBAAG,EAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,oBAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;IACvD,mBAAA,IAAA,kBAAG,EAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;IACjC,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;iEAGP;AAKK;IAHL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,wBAAS,EAAC,kFAAkF,CAAC;IAC7F,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,kCAAe,EAAE,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC;IAEjF,mBAAA,IAAA,kBAAG,EAAC,IAAI,CAAC,CAAA;IACT,mBAAA,IAAA,kBAAG,EAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;IACjC,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;mEAGP;AAtBU,uBAAuB;IADnC,IAAA,uBAAQ,EAAC,kCAAe,CAAC;GACb,uBAAuB,CAuBnC;AAvBY,0DAAuB","sourcesContent":["import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\n\nimport { ScalarObject } from '@things-factory/shell'\n\nimport { abort, end } from '../../controllers/process-instance'\nimport { ProcessInstance } from './process-instance'\nimport { ProcessInstanceIssue, ProcessInstanceDraft } from './process-instance-type'\n\n@Resolver(ProcessInstance)\nexport class ProcessInstanceMutation {\n @Directive('@transaction')\n @Directive('@privilege(category: \"process\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => ProcessInstance, { description: 'To end a ProcessInstance' })\n async endProcessInstance(\n @Arg('id') id: string,\n @Arg('output', type => ScalarObject, { nullable: true }) output: { [key: string]: any },\n @Arg('reason', { nullable: true }) reason: string,\n @Ctx() context: ResolverContext\n ): Promise<ProcessInstance> {\n return await end({ id, output, reason }, context)\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"process\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => ProcessInstance, { description: 'To abort a ProcessInstance' })\n async abortProcessInstance(\n @Arg('id') id: string,\n @Arg('reason', { nullable: true }) reason: string,\n @Ctx() context: ResolverContext\n ): Promise<ProcessInstance> {\n return await abort({ id, reason }, context)\n }\n}\n"]}
@@ -0,0 +1,176 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProcessInstanceQuery = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const type_graphql_1 = require("type-graphql");
6
+ const attachment_base_1 = require("@things-factory/attachment-base");
7
+ const auth_base_1 = require("@things-factory/auth-base");
8
+ const shell_1 = require("@things-factory/shell");
9
+ const process_thread_1 = require("../process-thread/process-thread");
10
+ const process_1 = require("../process/process");
11
+ const process_instance_1 = require("./process-instance");
12
+ const process_instance_type_1 = require("./process-instance-type");
13
+ let ProcessInstanceQuery = class ProcessInstanceQuery {
14
+ async processInstance(id, context) {
15
+ const { domain } = context.state;
16
+ return await (0, shell_1.getRepository)(process_instance_1.ProcessInstance).findOne({
17
+ where: { domain: { id: domain.id }, id }
18
+ });
19
+ }
20
+ async processInstances(params, context) {
21
+ const { domain } = context.state;
22
+ const [items, total] = await (0, shell_1.getQueryBuilderFromListParams)({
23
+ domain,
24
+ params,
25
+ repository: (0, shell_1.getRepository)(process_instance_1.ProcessInstance),
26
+ searchables: ['name', 'description']
27
+ }).getManyAndCount();
28
+ return { items, total };
29
+ }
30
+ async processInstancesByProcess(processId, params, context) {
31
+ var _a;
32
+ const { domain } = context.state;
33
+ const process = await (0, shell_1.getRepository)(process_1.Process).findOneBy({ id: processId });
34
+ const searchables = ((_a = process === null || process === void 0 ? void 0 : process.searchKeys) === null || _a === void 0 ? void 0 : _a.map((item, index) => `key0${index + 1}`)) || [];
35
+ const queryBuilder = (0, shell_1.getQueryBuilderFromListParams)({
36
+ repository: (0, shell_1.getRepository)(process_instance_1.ProcessInstance),
37
+ params,
38
+ domain,
39
+ alias: 'pi',
40
+ searchables: ['name', 'description'].concat(searchables)
41
+ }).where('pi.process = :process', { process: processId });
42
+ const [items, total] = await queryBuilder.getManyAndCount();
43
+ return { items, total };
44
+ }
45
+ async process(processInstance) {
46
+ const { processId } = processInstance;
47
+ return await (0, shell_1.getRepository)(process_1.Process).findOneBy({ id: processId });
48
+ }
49
+ async processThreads(processInstance, context) {
50
+ const { user } = context.state;
51
+ const { supervisoryRoleId } = processInstance;
52
+ if (supervisoryRoleId) {
53
+ /* only user having supervisoryRole can get whole processThreads */
54
+ const roles = (await (0, shell_1.getRepository)(auth_base_1.User).findOne({
55
+ where: { id: user.id },
56
+ relations: ['roles']
57
+ })).roles.map(role => role.id);
58
+ if (!roles.includes(supervisoryRoleId)) {
59
+ return;
60
+ }
61
+ }
62
+ return await (0, shell_1.getRepository)(process_thread_1.ProcessThread).findBy({
63
+ processInstance: { id: processInstance.id }
64
+ });
65
+ }
66
+ async supervisoryRole(processInstance) {
67
+ return (processInstance.supervisoryRole ||
68
+ (processInstance.supervisoryRoleId &&
69
+ (await (0, shell_1.getRepository)(auth_base_1.Role).findOneBy({
70
+ id: processInstance.supervisoryRoleId
71
+ }))));
72
+ }
73
+ async thumbnail(processInstance) {
74
+ const { processId } = processInstance;
75
+ const attachment = processId &&
76
+ (await (0, shell_1.getRepository)(attachment_base_1.Attachment).findOne({
77
+ where: {
78
+ domain: { id: processInstance.domainId },
79
+ refBy: processId
80
+ }
81
+ }));
82
+ return attachment === null || attachment === void 0 ? void 0 : attachment.fullpath;
83
+ }
84
+ async domain(processInstance) {
85
+ return await (0, shell_1.getRepository)(shell_1.Domain).findOneBy({ id: processInstance.domainId });
86
+ }
87
+ async updater(processInstance) {
88
+ return processInstance.updater && (await (0, shell_1.getRepository)(auth_base_1.User).findOneBy({ id: processInstance.updaterId }));
89
+ }
90
+ async creator(processInstance) {
91
+ return processInstance.creator && (await (0, shell_1.getRepository)(auth_base_1.User).findOneBy({ id: processInstance.creatorId }));
92
+ }
93
+ };
94
+ tslib_1.__decorate([
95
+ (0, type_graphql_1.Directive)('@privilege(category: "process-instance", privilege: "query", domainOwnerGranted: true)'),
96
+ (0, type_graphql_1.Query)(returns => process_instance_1.ProcessInstance, { nullable: true, description: 'To fetch a ProcessInstance' }),
97
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
98
+ tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
99
+ tslib_1.__metadata("design:type", Function),
100
+ tslib_1.__metadata("design:paramtypes", [String, Object]),
101
+ tslib_1.__metadata("design:returntype", Promise)
102
+ ], ProcessInstanceQuery.prototype, "processInstance", null);
103
+ tslib_1.__decorate([
104
+ (0, type_graphql_1.Directive)('@privilege(category: "process-instance", privilege: "query", domainOwnerGranted: true)'),
105
+ (0, type_graphql_1.Query)(returns => process_instance_type_1.ProcessInstanceList, { description: 'To fetch multiple ProcessInstances' }),
106
+ tslib_1.__param(0, (0, type_graphql_1.Args)()),
107
+ tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
108
+ tslib_1.__metadata("design:type", Function),
109
+ tslib_1.__metadata("design:paramtypes", [shell_1.ListParam, Object]),
110
+ tslib_1.__metadata("design:returntype", Promise)
111
+ ], ProcessInstanceQuery.prototype, "processInstances", null);
112
+ tslib_1.__decorate([
113
+ (0, type_graphql_1.Directive)('@privilege(category: "process-instance", privilege: "query", domainOwnerGranted: true)'),
114
+ (0, type_graphql_1.Query)(returns => process_instance_type_1.ProcessInstanceList, { description: 'To fetch multiple process instances by process' }),
115
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('processId')),
116
+ tslib_1.__param(1, (0, type_graphql_1.Args)()),
117
+ tslib_1.__param(2, (0, type_graphql_1.Ctx)()),
118
+ tslib_1.__metadata("design:type", Function),
119
+ tslib_1.__metadata("design:paramtypes", [String, shell_1.ListParam, Object]),
120
+ tslib_1.__metadata("design:returntype", Promise)
121
+ ], ProcessInstanceQuery.prototype, "processInstancesByProcess", null);
122
+ tslib_1.__decorate([
123
+ (0, type_graphql_1.FieldResolver)(type => process_1.Process),
124
+ tslib_1.__param(0, (0, type_graphql_1.Root)()),
125
+ tslib_1.__metadata("design:type", Function),
126
+ tslib_1.__metadata("design:paramtypes", [process_instance_1.ProcessInstance]),
127
+ tslib_1.__metadata("design:returntype", Promise)
128
+ ], ProcessInstanceQuery.prototype, "process", null);
129
+ tslib_1.__decorate([
130
+ (0, type_graphql_1.FieldResolver)(type => [process_thread_1.ProcessThread]),
131
+ tslib_1.__param(0, (0, type_graphql_1.Root)()),
132
+ tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
133
+ tslib_1.__metadata("design:type", Function),
134
+ tslib_1.__metadata("design:paramtypes", [process_instance_1.ProcessInstance, Object]),
135
+ tslib_1.__metadata("design:returntype", Promise)
136
+ ], ProcessInstanceQuery.prototype, "processThreads", null);
137
+ tslib_1.__decorate([
138
+ (0, type_graphql_1.FieldResolver)(type => auth_base_1.Role),
139
+ tslib_1.__param(0, (0, type_graphql_1.Root)()),
140
+ tslib_1.__metadata("design:type", Function),
141
+ tslib_1.__metadata("design:paramtypes", [process_instance_1.ProcessInstance]),
142
+ tslib_1.__metadata("design:returntype", Promise)
143
+ ], ProcessInstanceQuery.prototype, "supervisoryRole", null);
144
+ tslib_1.__decorate([
145
+ (0, type_graphql_1.FieldResolver)(type => String),
146
+ tslib_1.__param(0, (0, type_graphql_1.Root)()),
147
+ tslib_1.__metadata("design:type", Function),
148
+ tslib_1.__metadata("design:paramtypes", [process_instance_1.ProcessInstance]),
149
+ tslib_1.__metadata("design:returntype", Promise)
150
+ ], ProcessInstanceQuery.prototype, "thumbnail", null);
151
+ tslib_1.__decorate([
152
+ (0, type_graphql_1.FieldResolver)(type => shell_1.Domain),
153
+ tslib_1.__param(0, (0, type_graphql_1.Root)()),
154
+ tslib_1.__metadata("design:type", Function),
155
+ tslib_1.__metadata("design:paramtypes", [process_instance_1.ProcessInstance]),
156
+ tslib_1.__metadata("design:returntype", Promise)
157
+ ], ProcessInstanceQuery.prototype, "domain", null);
158
+ tslib_1.__decorate([
159
+ (0, type_graphql_1.FieldResolver)(type => auth_base_1.User),
160
+ tslib_1.__param(0, (0, type_graphql_1.Root)()),
161
+ tslib_1.__metadata("design:type", Function),
162
+ tslib_1.__metadata("design:paramtypes", [process_instance_1.ProcessInstance]),
163
+ tslib_1.__metadata("design:returntype", Promise)
164
+ ], ProcessInstanceQuery.prototype, "updater", null);
165
+ tslib_1.__decorate([
166
+ (0, type_graphql_1.FieldResolver)(type => auth_base_1.User),
167
+ tslib_1.__param(0, (0, type_graphql_1.Root)()),
168
+ tslib_1.__metadata("design:type", Function),
169
+ tslib_1.__metadata("design:paramtypes", [process_instance_1.ProcessInstance]),
170
+ tslib_1.__metadata("design:returntype", Promise)
171
+ ], ProcessInstanceQuery.prototype, "creator", null);
172
+ ProcessInstanceQuery = tslib_1.__decorate([
173
+ (0, type_graphql_1.Resolver)(process_instance_1.ProcessInstance)
174
+ ], ProcessInstanceQuery);
175
+ exports.ProcessInstanceQuery = ProcessInstanceQuery;
176
+ //# sourceMappingURL=process-instance-query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-instance-query.js","sourceRoot":"","sources":["../../../server/service/process-instance/process-instance-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Args, Ctx, Directive, FieldResolver, Query, Resolver, Root } from 'type-graphql'\n\nimport { Attachment } from '@things-factory/attachment-base'\nimport { Role, User } from '@things-factory/auth-base'\nimport { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\n\nimport { ProcessThread } from '../process-thread/process-thread'\nimport { Process } from '../process/process'\nimport { ProcessInstance, ProcessInstanceStatus } from './process-instance'\nimport { ProcessInstanceList } from './process-instance-type'\n\n@Resolver(ProcessInstance)\nexport class ProcessInstanceQuery {\n @Directive('@privilege(category: \"process-instance\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => ProcessInstance!, { nullable: true, description: 'To fetch a ProcessInstance' })\n async processInstance(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<ProcessInstance> {\n const { domain } = context.state\n\n return await getRepository(ProcessInstance).findOne({\n where: { domain: { id: domain.id }, id }\n })\n }\n\n @Directive('@privilege(category: \"process-instance\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => ProcessInstanceList, { description: 'To fetch multiple ProcessInstances' })\n async processInstances(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<ProcessInstanceList> {\n const { domain } = context.state\n\n const [items, total] = await getQueryBuilderFromListParams({\n domain,\n params,\n repository: getRepository(ProcessInstance),\n searchables: ['name', 'description']\n }).getManyAndCount()\n\n return { items, total }\n }\n\n @Directive('@privilege(category: \"process-instance\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => ProcessInstanceList, { description: 'To fetch multiple process instances by process' })\n async processInstancesByProcess(\n @Arg('processId') processId: string,\n @Args() params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<ProcessInstanceList> {\n const { domain } = context.state\n\n const process = await getRepository(Process).findOneBy({ id: processId })\n const searchables = process?.searchKeys?.map((item, index) => `key0${index + 1}`) || []\n\n const queryBuilder = getQueryBuilderFromListParams({\n repository: getRepository(ProcessInstance),\n params,\n domain,\n alias: 'pi',\n searchables: ['name', 'description'].concat(searchables)\n }).where('pi.process = :process', { process: processId })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @FieldResolver(type => Process)\n async process(@Root() processInstance: ProcessInstance): Promise<Process> {\n const { processId } = processInstance\n\n return await getRepository(Process).findOneBy({ id: processId })\n }\n\n @FieldResolver(type => [ProcessThread])\n async processThreads(\n @Root() processInstance: ProcessInstance,\n @Ctx() context: ResolverContext\n ): Promise<ProcessThread[]> {\n const { user } = context.state\n const { supervisoryRoleId } = processInstance\n\n if (supervisoryRoleId) {\n /* only user having supervisoryRole can get whole processThreads */\n const roles = (\n (await getRepository(User).findOne({\n where: { id: user.id },\n relations: ['roles']\n })) as User\n ).roles.map(role => role.id)\n\n if (!roles.includes(supervisoryRoleId)) {\n return\n }\n }\n\n return await getRepository(ProcessThread).findBy({\n processInstance: { id: processInstance.id }\n })\n }\n\n @FieldResolver(type => Role)\n async supervisoryRole(@Root() processInstance: ProcessInstance): Promise<Role> {\n return (\n processInstance.supervisoryRole ||\n (processInstance.supervisoryRoleId &&\n (await getRepository(Role).findOneBy({\n id: processInstance.supervisoryRoleId\n })))\n )\n }\n\n @FieldResolver(type => String)\n async thumbnail(@Root() processInstance: ProcessInstance): Promise<string | undefined> {\n const { processId } = processInstance\n const attachment: Attachment =\n processId &&\n (await getRepository(Attachment).findOne({\n where: {\n domain: { id: processInstance.domainId },\n refBy: processId\n }\n }))\n\n return attachment?.fullpath\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() processInstance: ProcessInstance): Promise<Domain> {\n return await getRepository(Domain).findOneBy({ id: processInstance.domainId })\n }\n\n @FieldResolver(type => User)\n async updater(@Root() processInstance: ProcessInstance): Promise<User> {\n return processInstance.updater && (await getRepository(User).findOneBy({ id: processInstance.updaterId }))\n }\n\n @FieldResolver(type => User)\n async creator(@Root() processInstance: ProcessInstance): Promise<User> {\n return processInstance.creator && (await getRepository(User).findOneBy({ id: processInstance.creatorId }))\n }\n}\n"]}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProcessInstanceSubscription = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const graphql_subscriptions_1 = require("graphql-subscriptions");
6
+ const type_graphql_1 = require("type-graphql");
7
+ const auth_base_1 = require("@things-factory/auth-base");
8
+ const shell_1 = require("@things-factory/shell");
9
+ const process_instance_1 = require("./process-instance");
10
+ let ProcessInstanceSubscription = class ProcessInstanceSubscription {
11
+ processInstance(payload) {
12
+ return payload.processInstance;
13
+ }
14
+ };
15
+ tslib_1.__decorate([
16
+ (0, type_graphql_1.Subscription)({
17
+ subscribe: (_, args, context, info) => {
18
+ var _a;
19
+ const { domain, user } = context.state;
20
+ const subdomain = domain === null || domain === void 0 ? void 0 : domain.subdomain;
21
+ if (!domain) {
22
+ throw new Error('domain required');
23
+ }
24
+ if (!((_a = user.domains) === null || _a === void 0 ? void 0 : _a.find(d => d.subdomain === subdomain)) && !process.superUserGranted(domain, user)) {
25
+ throw new Error(`domain(${subdomain}) is not working for user(${user.email}).`);
26
+ }
27
+ return (0, graphql_subscriptions_1.withFilter)(() => shell_1.pubsub.asyncIterator('process-instance'), async (payload, variables, context, info) => {
28
+ const { processInstance } = payload;
29
+ const { domainId } = processInstance;
30
+ if (domainId !== (domain === null || domain === void 0 ? void 0 : domain.id)) {
31
+ return false;
32
+ }
33
+ if (processInstance.creatorId === user.id) {
34
+ return true;
35
+ }
36
+ // check if the user has that role
37
+ const userWithRoles = await (0, shell_1.getRepository)(auth_base_1.User).findOne({
38
+ where: { id: user.id },
39
+ relations: ['roles']
40
+ });
41
+ return !!userWithRoles.roles.find(role => role.id === processInstance.assigneeRoleId);
42
+ })(_, args, context, info);
43
+ }
44
+ }),
45
+ tslib_1.__param(0, (0, type_graphql_1.Root)()),
46
+ tslib_1.__metadata("design:type", Function),
47
+ tslib_1.__metadata("design:paramtypes", [Object]),
48
+ tslib_1.__metadata("design:returntype", process_instance_1.ProcessInstance)
49
+ ], ProcessInstanceSubscription.prototype, "processInstance", null);
50
+ ProcessInstanceSubscription = tslib_1.__decorate([
51
+ (0, type_graphql_1.Resolver)(process_instance_1.ProcessInstance)
52
+ ], ProcessInstanceSubscription);
53
+ exports.ProcessInstanceSubscription = ProcessInstanceSubscription;
54
+ //# sourceMappingURL=process-instance-subscription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-instance-subscription.js","sourceRoot":"","sources":["../../../server/service/process-instance/process-instance-subscription.ts"],"names":[],"mappings":";;;;AAAA,iEAAkD;AAClD,+CAA2D;AAE3D,yDAAgD;AAChD,iDAA6D;AAE7D,yDAAoD;AAG7C,IAAM,2BAA2B,GAAjC,MAAM,2BAA2B;IAuCtC,eAAe,CAAS,OAA6C;QACnE,OAAO,OAAO,CAAC,eAAe,CAAA;IAChC,CAAC;CACF,CAAA;AAzCC;IAAC,IAAA,2BAAY,EAAC;QACZ,SAAS,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;;YACpC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;YACtC,MAAM,SAAS,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,CAAA;YAEnC,IAAI,CAAC,MAAM,EAAE;gBACX,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;aACnC;YAED,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAA,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;gBAClG,MAAM,IAAI,KAAK,CAAC,UAAU,SAAS,6BAA6B,IAAI,CAAC,KAAK,IAAI,CAAC,CAAA;aAChF;YAED,OAAO,IAAA,kCAAU,EACf,GAAG,EAAE,CAAC,cAAM,CAAC,aAAa,CAAC,kBAAkB,CAAC,EAC9C,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;gBAC1C,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,CAAA;gBACnC,MAAM,EAAE,QAAQ,EAAE,GAAG,eAAe,CAAA;gBAEpC,IAAI,QAAQ,MAAK,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,EAAE,CAAA,EAAE;oBAC3B,OAAO,KAAK,CAAA;iBACb;gBAED,IAAI,eAAe,CAAC,SAAS,KAAK,IAAI,CAAC,EAAE,EAAE;oBACzC,OAAO,IAAI,CAAA;iBACZ;gBAED,kCAAkC;gBAClC,MAAM,aAAa,GAAS,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,OAAO,CAAC;oBAC5D,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE;oBACtB,SAAS,EAAE,CAAC,OAAO,CAAC;iBACrB,CAAC,CAAA;gBAEF,OAAO,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,eAAe,CAAC,cAAc,CAAC,CAAA;YACvF,CAAC,CACF,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;QAC3B,CAAC;KACF,CAAC;IACe,mBAAA,IAAA,mBAAI,GAAE,CAAA;;;4CAAiD,kCAAe;kEAEtF;AAzCU,2BAA2B;IADvC,IAAA,uBAAQ,EAAC,kCAAe,CAAC;GACb,2BAA2B,CA0CvC;AA1CY,kEAA2B","sourcesContent":["import { withFilter } from 'graphql-subscriptions'\nimport { Resolver, Root, Subscription } from 'type-graphql'\n\nimport { User } from '@things-factory/auth-base'\nimport { getRepository, pubsub } from '@things-factory/shell'\n\nimport { ProcessInstance } from './process-instance'\n\n@Resolver(ProcessInstance)\nexport class ProcessInstanceSubscription {\n @Subscription({\n subscribe: (_, args, context, info) => {\n const { domain, user } = context.state\n const subdomain = domain?.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 return withFilter(\n () => pubsub.asyncIterator('process-instance'),\n async (payload, variables, context, info) => {\n const { processInstance } = payload\n const { domainId } = processInstance\n\n if (domainId !== domain?.id) {\n return false\n }\n\n if (processInstance.creatorId === user.id) {\n return true\n }\n\n // check if the user has that role\n const userWithRoles: User = await getRepository(User).findOne({\n where: { id: user.id },\n relations: ['roles']\n })\n\n return !!userWithRoles.roles.find(role => role.id === processInstance.assigneeRoleId)\n }\n )(_, args, context, info)\n }\n })\n processInstance(@Root() payload: { processInstance: ProcessInstance }): ProcessInstance {\n return payload.processInstance\n }\n}\n"]}
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProcessInstanceList = exports.ProcessInstanceIssue = exports.ProcessInstanceDraft = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const type_graphql_1 = require("type-graphql");
6
+ const auth_base_1 = require("@things-factory/auth-base");
7
+ const shell_1 = require("@things-factory/shell");
8
+ const process_instance_1 = require("./process-instance");
9
+ let ProcessInstanceDraft = class ProcessInstanceDraft {
10
+ };
11
+ tslib_1.__decorate([
12
+ (0, type_graphql_1.Field)(type => type_graphql_1.ID, { nullable: true }),
13
+ tslib_1.__metadata("design:type", String)
14
+ ], ProcessInstanceDraft.prototype, "id", void 0);
15
+ tslib_1.__decorate([
16
+ (0, type_graphql_1.Field)(),
17
+ tslib_1.__metadata("design:type", String)
18
+ ], ProcessInstanceDraft.prototype, "name", void 0);
19
+ tslib_1.__decorate([
20
+ (0, type_graphql_1.Field)({ nullable: true }),
21
+ tslib_1.__metadata("design:type", String)
22
+ ], ProcessInstanceDraft.prototype, "processId", void 0);
23
+ tslib_1.__decorate([
24
+ (0, type_graphql_1.Field)({ nullable: true }),
25
+ tslib_1.__metadata("design:type", String)
26
+ ], ProcessInstanceDraft.prototype, "description", void 0);
27
+ tslib_1.__decorate([
28
+ (0, type_graphql_1.Field)({ nullable: true }),
29
+ tslib_1.__metadata("design:type", String)
30
+ ], ProcessInstanceDraft.prototype, "reason", void 0);
31
+ tslib_1.__decorate([
32
+ (0, type_graphql_1.Field)(type => shell_1.ScalarDate, { nullable: true }),
33
+ tslib_1.__metadata("design:type", Date)
34
+ ], ProcessInstanceDraft.prototype, "dueAt", void 0);
35
+ tslib_1.__decorate([
36
+ (0, type_graphql_1.Field)({ nullable: true }),
37
+ tslib_1.__metadata("design:type", String)
38
+ ], ProcessInstanceDraft.prototype, "refBy", void 0);
39
+ tslib_1.__decorate([
40
+ (0, type_graphql_1.Field)(type => shell_1.ObjectRef, { nullable: true }),
41
+ tslib_1.__metadata("design:type", auth_base_1.Role)
42
+ ], ProcessInstanceDraft.prototype, "supervisoryRole", void 0);
43
+ ProcessInstanceDraft = tslib_1.__decorate([
44
+ (0, type_graphql_1.InputType)()
45
+ ], ProcessInstanceDraft);
46
+ exports.ProcessInstanceDraft = ProcessInstanceDraft;
47
+ let ProcessInstanceIssue = class ProcessInstanceIssue {
48
+ };
49
+ tslib_1.__decorate([
50
+ (0, type_graphql_1.Field)(type => type_graphql_1.ID, { nullable: true }),
51
+ tslib_1.__metadata("design:type", String)
52
+ ], ProcessInstanceIssue.prototype, "id", void 0);
53
+ tslib_1.__decorate([
54
+ (0, type_graphql_1.Field)({ nullable: true }),
55
+ tslib_1.__metadata("design:type", String)
56
+ ], ProcessInstanceIssue.prototype, "name", void 0);
57
+ tslib_1.__decorate([
58
+ (0, type_graphql_1.Field)({ nullable: true }),
59
+ tslib_1.__metadata("design:type", String)
60
+ ], ProcessInstanceIssue.prototype, "processId", void 0);
61
+ tslib_1.__decorate([
62
+ (0, type_graphql_1.Field)({ nullable: true }),
63
+ tslib_1.__metadata("design:type", String)
64
+ ], ProcessInstanceIssue.prototype, "description", void 0);
65
+ tslib_1.__decorate([
66
+ (0, type_graphql_1.Field)({ nullable: true }),
67
+ tslib_1.__metadata("design:type", String)
68
+ ], ProcessInstanceIssue.prototype, "reason", void 0);
69
+ tslib_1.__decorate([
70
+ (0, type_graphql_1.Field)(type => shell_1.ScalarDate, { nullable: true }),
71
+ tslib_1.__metadata("design:type", Date)
72
+ ], ProcessInstanceIssue.prototype, "dueAt", void 0);
73
+ tslib_1.__decorate([
74
+ (0, type_graphql_1.Field)({ nullable: true }),
75
+ tslib_1.__metadata("design:type", String)
76
+ ], ProcessInstanceIssue.prototype, "refBy", void 0);
77
+ tslib_1.__decorate([
78
+ (0, type_graphql_1.Field)({ nullable: true }),
79
+ tslib_1.__metadata("design:type", String)
80
+ ], ProcessInstanceIssue.prototype, "viewSource", void 0);
81
+ tslib_1.__decorate([
82
+ (0, type_graphql_1.Field)(type => shell_1.ObjectRef, { nullable: true }),
83
+ tslib_1.__metadata("design:type", auth_base_1.Role)
84
+ ], ProcessInstanceIssue.prototype, "supervisoryRole", void 0);
85
+ ProcessInstanceIssue = tslib_1.__decorate([
86
+ (0, type_graphql_1.InputType)()
87
+ ], ProcessInstanceIssue);
88
+ exports.ProcessInstanceIssue = ProcessInstanceIssue;
89
+ let ProcessInstanceList = class ProcessInstanceList {
90
+ };
91
+ tslib_1.__decorate([
92
+ (0, type_graphql_1.Field)(type => [process_instance_1.ProcessInstance]),
93
+ tslib_1.__metadata("design:type", Array)
94
+ ], ProcessInstanceList.prototype, "items", void 0);
95
+ tslib_1.__decorate([
96
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int),
97
+ tslib_1.__metadata("design:type", Number)
98
+ ], ProcessInstanceList.prototype, "total", void 0);
99
+ ProcessInstanceList = tslib_1.__decorate([
100
+ (0, type_graphql_1.ObjectType)()
101
+ ], ProcessInstanceList);
102
+ exports.ProcessInstanceList = ProcessInstanceList;
103
+ //# sourceMappingURL=process-instance-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-instance-type.js","sourceRoot":"","sources":["../../../server/service/process-instance/process-instance-type.ts"],"names":[],"mappings":";;;;AAAA,+CAAoE;AAEpE,yDAAgD;AAChD,iDAA2E;AAC3E,yDAAoD;AAG7C,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;CAwBhC,CAAA;AAvBC;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDAC3B;AAEX;IAAC,IAAA,oBAAK,GAAE;;kDACI;AAEZ;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uDACT;AAEjB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yDACN;AAEpB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oDACX;AAEf;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACtC,IAAI;mDAAA;AAEZ;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;mDACZ;AAEd;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCAC3B,gBAAI;6DAAA;AAvBX,oBAAoB;IADhC,IAAA,wBAAS,GAAE;GACC,oBAAoB,CAwBhC;AAxBY,oDAAoB;AA2B1B,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;CA2BhC,CAAA;AA1BC;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDAC3B;AAEX;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kDACb;AAEb;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uDACR;AAElB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yDACN;AAEpB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oDACX;AAEf;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACtC,IAAI;mDAAA;AAEZ;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;mDACZ;AAEd;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wDACP;AAEnB;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCAC3B,gBAAI;6DAAA;AA1BX,oBAAoB;IADhC,IAAA,wBAAS,GAAE;GACC,oBAAoB,CA2BhC;AA3BY,oDAAoB;AA8B1B,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;CAM/B,CAAA;AALC;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,kCAAe,CAAC,CAAC;;kDACT;AAExB;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,CAAC;;kDACN;AALF,mBAAmB;IAD/B,IAAA,yBAAU,GAAE;GACA,mBAAmB,CAM/B;AANY,kDAAmB","sourcesContent":["import { Field, ID, InputType, Int, ObjectType } from 'type-graphql'\n\nimport { Role } from '@things-factory/auth-base'\nimport { ObjectRef, ScalarDate, ScalarObject } from '@things-factory/shell'\nimport { ProcessInstance } from './process-instance'\n\n@InputType()\nexport class ProcessInstanceDraft {\n @Field(type => ID, { nullable: true })\n id?: string\n\n @Field()\n name: string\n\n @Field({ nullable: true })\n processId: string\n\n @Field({ nullable: true })\n description?: string\n\n @Field({ nullable: true })\n reason?: string\n\n @Field(type => ScalarDate, { nullable: true })\n dueAt?: Date\n\n @Field({ nullable: true })\n refBy?: string\n\n @Field(type => ObjectRef, { nullable: true })\n supervisoryRole?: Role\n}\n\n@InputType()\nexport class ProcessInstanceIssue {\n @Field(type => ID, { nullable: true })\n id?: string\n\n @Field({ nullable: true })\n name?: string\n\n @Field({ nullable: true })\n processId?: string\n\n @Field({ nullable: true })\n description?: string\n\n @Field({ nullable: true })\n reason?: string\n\n @Field(type => ScalarDate, { nullable: true })\n dueAt?: Date\n\n @Field({ nullable: true })\n refBy?: string\n\n @Field({ nullable: true })\n viewSource?: string\n\n @Field(type => ObjectRef, { nullable: true })\n supervisoryRole?: Role\n}\n\n@ObjectType()\nexport class ProcessInstanceList {\n @Field(type => [ProcessInstance])\n items: ProcessInstance[]\n\n @Field(type => Int)\n total: number\n}\n"]}