@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 @@
1
+ {"version":3,"file":"end.js","sourceRoot":"","sources":["../../../server/controllers/process-instance/end.ts"],"names":[],"mappings":";;;AAAA,sFAAwG;AACxG,gFAAiF;AACjF,sCAAoD;AAE7C,KAAK,UAAU,GAAG,CACvB,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAoD,EACxE,OAAwB;IAExB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAC1C,MAAM,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,kCAAe,CAAC,CAAA;IAEpD,IAAI,eAAe,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;QAC7C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;QACxC,SAAS,EAAE;YACT,QAAQ;YACR,SAAS;YACT,gBAAgB;YAChB,cAAc;YACd,iBAAiB;YACjB,SAAS;YACT,SAAS;YACT,SAAS;YACT,YAAY;SACb;KACF,CAAC,CAAA;IAEF,IAAI,CAAC,eAAe,EAAE;QACpB,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,kCAAkC,EAAE;YAC5C,eAAe,EAAE,EAAE;SACpB,CAAC,CACH,CAAA;KACF;IAED;;;;MAIE;IACF,IAAI,eAAe,CAAC,KAAK,IAAI,wCAAqB,CAAC,OAAO,IAAI,eAAe,CAAC,KAAK,IAAI,wCAAqB,CAAC,KAAK,EAAE;QAClH,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,8CAA8C,EAAE;YACxD,EAAE;YACF,KAAK,EAAE,eAAe,CAAC,KAAK;SAC7B,CAAC,CACH,CAAA;KACF;IAED,MAAM,UAAU,GAAG,CAAC,oCAAmB,CAAC,OAAO,EAAE,oCAAmB,CAAC,SAAS,EAAE,oCAAmB,CAAC,KAAK,CAAC,CAAA;IAE1G,KAAK,IAAI,aAAa,IAAI,eAAe,CAAC,cAAc,EAAE;QACxD,IAAI,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;YAC5C,SAAQ;SACT;QAED,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,gDAAgD,EAAE;YAC1D,aAAa,EAAE,aAAa,CAAC,EAAE;YAC/B,KAAK,EAAE,eAAe,CAAC,KAAK;SAC7B,CAAC,CACH,CAAA;KACF;IAED,OAAO,MAAM,UAAU,CAAC,IAAI,CAAC,gCACxB,eAAe,KAClB,MAAM;QACN,MAAM,EACN,WAAW,EAAE,KAAK,EAClB,KAAK,EAAE,MAAM,IAAA,iCAAwB,EAAC,EAAE,EAAE,OAAO,CAAC,EAClD,OAAO,EAAE,IAAI,EACb,YAAY,EAAE,IAAI,IAAI,EAAE,EACxB,UAAU,EAAE,IAAI,GACV,CAAC,CAAA;AACX,CAAC;AArED,kBAqEC","sourcesContent":["import { ProcessInstance, ProcessInstanceStatus } from '../../service/process-instance/process-instance'\nimport { ProcessThreadStatus } from '../../service/process-thread/process-thread'\nimport { evalProcessInstanceState } from '../common'\n\nexport async function end(\n { id, output, reason }: { id: string; output?: object; reason?: string },\n context: ResolverContext\n): Promise<ProcessInstance> {\n const { domain, user, tx } = context.state\n const repository = tx.getRepository(ProcessInstance)\n\n var processInstance = await repository.findOne({\n where: { domain: { id: domain.id }, id },\n relations: [\n 'domain',\n 'process',\n 'processThreads',\n 'assigneeRole',\n 'supervisoryRole',\n 'updater',\n 'creator',\n 'starter',\n 'terminator'\n ]\n })\n\n if (!processInstance) {\n throw new Error(\n context.t('error.process-instance not found', {\n processInstance: id\n })\n )\n }\n\n /* \n Prerequisites for a Task to Be End.\n - The previous state of the task must not be End or Aborted.\n - There should be no unfinished process threads.\n */\n if (processInstance.state == ProcessInstanceStatus.Aborted || processInstance.state == ProcessInstanceStatus.Ended) {\n throw new Error(\n context.t(`error.process-instance is already terminated`, {\n id,\n state: processInstance.state\n })\n )\n }\n\n const TERMINATED = [ProcessThreadStatus.Aborted, ProcessThreadStatus.Delegated, ProcessThreadStatus.Ended]\n\n for (let processThread of processInstance.processThreads) {\n if (TERMINATED.includes(processThread.state)) {\n continue\n }\n\n throw new Error(\n context.t(`error.all process threads should be terminated`, {\n processThread: processThread.id,\n state: processInstance.state\n })\n )\n }\n\n return await repository.save({\n ...processInstance,\n reason,\n output,\n transaction: 'end',\n state: await evalProcessInstanceState(id, context),\n updater: user,\n terminatedAt: new Date(),\n terminator: user\n } as any)\n}\n"]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./abort"), exports);
5
+ tslib_1.__exportStar(require("./end"), exports);
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/controllers/process-instance/index.ts"],"names":[],"mappings":";;;AAAA,kDAAuB;AACvB,gDAAqB","sourcesContent":["export * from './abort'\nexport * from './end'\n"]}
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.issue = void 0;
4
+ const process_1 = require("../../service/process/process");
5
+ const process_instance_1 = require("../../service/process-instance/process-instance");
6
+ const common_1 = require("../common");
7
+ const submit_1 = require("../process-thread/submit");
8
+ async function issue(processInstance, context) {
9
+ const { domain, user, tx } = context.state;
10
+ const issuedAt = new Date();
11
+ var { id, name, description, assignees, uiType, uiSource, viewType, viewSource, dueAt, priority, approvalLine, processId, processType, assigneeRole, supervisoryRole, input } = processInstance;
12
+ var origin = id
13
+ ? await tx.getRepository(process_instance_1.ProcessInstance).findOne({
14
+ where: { domain: { id: domain.id }, id },
15
+ relations: [
16
+ 'domain',
17
+ 'process',
18
+ 'assigneeRole',
19
+ 'supervisoryRole',
20
+ 'updater',
21
+ 'creator',
22
+ 'starter',
23
+ 'terminator'
24
+ ]
25
+ })
26
+ : null;
27
+ /*
28
+ Prerequisites for a Task to Be Issued.
29
+ - The previous state of the task should be Draft.
30
+ */
31
+ if (origin && origin.state !== process_instance_1.ProcessInstanceStatus.Draft) {
32
+ throw new Error(context.t(`error.process-instance is already issued`, {
33
+ id: id,
34
+ state: origin.state
35
+ }));
36
+ }
37
+ var repository = tx.getRepository(process_1.Process);
38
+ var process = (origin === null || origin === void 0 ? void 0 : origin.process) ||
39
+ (await repository.findOne({
40
+ where: { domain: { id: domain.id }, id: processId },
41
+ relations: ['assigneeRole', 'supervisoryRole']
42
+ }));
43
+ if (!process) {
44
+ throw new Error(context.t('error.process not found', {
45
+ process: processId
46
+ }));
47
+ }
48
+ if (!origin) {
49
+ processInstance.name = name || process.name;
50
+ processInstance.description = description || process.description;
51
+ processInstance.processType = processType || process.processType;
52
+ processInstance.uiType = uiType || process.uiType;
53
+ processInstance.uiSource = uiSource || process.uiSource;
54
+ processInstance.viewType = viewType || process.viewType;
55
+ processInstance.viewSource = viewSource || process.viewSource;
56
+ processInstance.assigneeRole = assigneeRole || process.assigneeRole;
57
+ processInstance.supervisoryRole = supervisoryRole || process.supervisoryRole;
58
+ processInstance.priority = priority !== null && priority !== void 0 ? priority : process.priority;
59
+ if (!assignees || !approvalLine) {
60
+ processInstance.adhocType = 'standard';
61
+ processInstance.refBy = processId;
62
+ if (!assignees) {
63
+ assignees = processInstance.assignees = process.assignees;
64
+ }
65
+ if (!approvalLine) {
66
+ approvalLine = processInstance.approvalLine = process.approvalLine;
67
+ }
68
+ if (!dueAt && process.standardTime) {
69
+ processInstance.dueAt = new Date(issuedAt.getTime() + process.standardTime * 1000);
70
+ }
71
+ }
72
+ }
73
+ const processSearchKeys = (0, common_1.fillProcessSearchKeys)(process === null || process === void 0 ? void 0 : process.searchKeys, input);
74
+ if (process.startingType == 'post') {
75
+ /*
76
+ startingType이 'post'이면,
77
+ processInstance 이슈와 동시에 issuer에게 할당된 processThread가 생성되고 submit까지 모두 완료되게 된다.
78
+ 만일, 결재선이 있다면, 상신되게 된다.
79
+ */
80
+ const posted = await tx.getRepository(process_instance_1.ProcessInstance).save(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ creator: user }, origin), processInstance), { transaction: 'post', process }), processSearchKeys), { state: process_instance_1.ProcessInstanceStatus.Started, domain, issuer: user, updater: user, issuedAt, startedAt: issuedAt }));
81
+ const thread = await (0, common_1.createProcessThreadForUser)('post', posted, user, context);
82
+ const data = Object.assign(Object.assign({}, processInstance.input), processInstance.output);
83
+ const output = (process.model || [])
84
+ .filter(item => item.inout === 'inout' || item.inout === 'out')
85
+ .reduce((inout, item) => {
86
+ inout[item.name] = data[item.name];
87
+ return inout;
88
+ }, {});
89
+ await (0, submit_1.submit)({ id: thread.id, output }, context);
90
+ return await tx.getRepository(process_instance_1.ProcessInstance).findOneBy({ id: posted.id });
91
+ }
92
+ else {
93
+ const issued = await tx.getRepository(process_instance_1.ProcessInstance).save(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ creator: user }, origin), processInstance), { transaction: 'issue', process }), processSearchKeys), { state: process_instance_1.ProcessInstanceStatus.Issued, domain, issuer: user, updater: user, issuedAt }));
94
+ const assignedUsers = await Promise.all((assignees || []).map(assignee => (0, common_1.getSystemUserFromOrgMemberItem)(assignee, context)));
95
+ if (assignedUsers.length == 0 && issued.threadsMin === 0 && issued.assigneeRoleId) {
96
+ await (0, common_1.createProcessThreadsForAllRoleUsers)('issue', issued, context);
97
+ }
98
+ if (assignedUsers.length > 0) {
99
+ await (0, common_1.createProcessThreadsForUsers)('issue', issued, assignedUsers, context);
100
+ }
101
+ return await tx.getRepository(process_instance_1.ProcessInstance).findOneBy({ id: issued.id });
102
+ }
103
+ }
104
+ exports.issue = issue;
105
+ //# sourceMappingURL=issue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issue.js","sourceRoot":"","sources":["../../../server/controllers/process-instance/issue.ts"],"names":[],"mappings":"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","sourcesContent":["import { Process } from '../../service/process/process'\nimport { ProcessInstance, ProcessInstanceStatus } from '../../service/process-instance/process-instance'\nimport { ProcessInstanceIssue } from '../../service/process-instance/process-instance-type'\nimport {\n createProcessThreadsForAllRoleUsers,\n createProcessThreadsForUsers,\n getSystemUserFromOrgMemberItem,\n createProcessThreadForUser,\n fillProcessSearchKeys\n} from '../common'\nimport { submit } from '../process-thread/submit'\n\nexport async function issue(processInstance: ProcessInstanceIssue, context: ResolverContext): Promise<ProcessInstance> {\n const { domain, user, tx } = context.state\n const issuedAt = new Date()\n var {\n id,\n name,\n description,\n assignees,\n uiType,\n uiSource,\n viewType,\n viewSource,\n dueAt,\n priority,\n approvalLine,\n processId,\n processType,\n assigneeRole,\n supervisoryRole,\n input\n } = processInstance\n\n var origin = id\n ? await tx.getRepository(ProcessInstance).findOne({\n where: { domain: { id: domain.id }, id },\n relations: [\n 'domain',\n 'process',\n 'assigneeRole',\n 'supervisoryRole',\n 'updater',\n 'creator',\n 'starter',\n 'terminator'\n ]\n })\n : null\n\n /* \n Prerequisites for a Task to Be Issued.\n - The previous state of the task should be Draft.\n */\n if (origin && origin.state !== ProcessInstanceStatus.Draft) {\n throw new Error(\n context.t(`error.process-instance is already issued`, {\n id: id,\n state: origin.state\n })\n )\n }\n\n var repository = tx.getRepository(Process)\n var process =\n origin?.process ||\n (await repository.findOne({\n where: { domain: { id: domain.id }, id: processId },\n relations: ['assigneeRole', 'supervisoryRole']\n }))\n\n if (!process) {\n throw new Error(\n context.t('error.process not found', {\n process: processId\n })\n )\n }\n\n if (!origin) {\n processInstance.name = name || process.name\n processInstance.description = description || process.description\n processInstance.processType = processType || process.processType\n processInstance.uiType = uiType || process.uiType\n processInstance.uiSource = uiSource || process.uiSource\n processInstance.viewType = viewType || process.viewType\n processInstance.viewSource = viewSource || process.viewSource\n processInstance.assigneeRole = assigneeRole || process.assigneeRole\n processInstance.supervisoryRole = supervisoryRole || process.supervisoryRole\n processInstance.priority = priority ?? process.priority\n\n if (!assignees || !approvalLine) {\n processInstance.adhocType = 'standard'\n processInstance.refBy = processId\n if (!assignees) {\n assignees = processInstance.assignees = process.assignees\n }\n if (!approvalLine) {\n approvalLine = processInstance.approvalLine = process.approvalLine\n }\n\n if (!dueAt && process.standardTime) {\n processInstance.dueAt = new Date(issuedAt.getTime() + process.standardTime * 1000)\n }\n }\n }\n\n const processSearchKeys = fillProcessSearchKeys(process?.searchKeys, input)\n\n if (process.startingType == 'post') {\n /* \n startingType이 'post'이면, \n processInstance 이슈와 동시에 issuer에게 할당된 processThread가 생성되고 submit까지 모두 완료되게 된다.\n 만일, 결재선이 있다면, 상신되게 된다.\n */\n const posted = await tx.getRepository(ProcessInstance).save({\n creator: user,\n ...origin,\n ...processInstance,\n transaction: 'post',\n process,\n ...processSearchKeys,\n state: ProcessInstanceStatus.Started,\n domain,\n issuer: user,\n updater: user,\n issuedAt,\n startedAt: issuedAt\n })\n\n const thread = await createProcessThreadForUser('post', posted, user, context)\n const data = { ...processInstance.input, ...processInstance.output }\n const output = (process.model || [])\n .filter(item => item.inout === 'inout' || item.inout === 'out')\n .reduce((inout, item) => {\n inout[item.name] = data[item.name]\n return inout\n }, {})\n\n await submit({ id: thread.id, output }, context)\n\n return await tx.getRepository(ProcessInstance).findOneBy({ id: posted.id })\n } else {\n const issued = await tx.getRepository(ProcessInstance).save({\n creator: user,\n ...origin,\n ...processInstance,\n transaction: 'issue',\n process,\n ...processSearchKeys,\n state: ProcessInstanceStatus.Issued,\n domain,\n issuer: user,\n updater: user,\n issuedAt\n })\n\n const assignedUsers = await Promise.all(\n (assignees || []).map(assignee => getSystemUserFromOrgMemberItem(assignee, context))\n )\n\n if (assignedUsers.length == 0 && issued.threadsMin === 0 && issued.assigneeRoleId) {\n await createProcessThreadsForAllRoleUsers('issue', issued, context)\n }\n\n if (assignedUsers.length > 0) {\n await createProcessThreadsForUsers('issue', issued, assignedUsers, context)\n }\n\n return await tx.getRepository(ProcessInstance).findOneBy({ id: issued.id })\n }\n}\n"]}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.pick = void 0;
4
+ const process_instance_1 = require("../../service/process-instance/process-instance");
5
+ const common_1 = require("../common");
6
+ async function pick(id, context) {
7
+ const { domain, user, tx } = context.state;
8
+ const repository = tx.getRepository(process_instance_1.ProcessInstance);
9
+ var processInstance = await repository.findOne({
10
+ where: { domain: { id: domain.id }, id },
11
+ relations: ['domain', 'process', 'assigneeRole', 'supervisoryRole', 'updater', 'creator', 'starter', 'terminator']
12
+ });
13
+ if (!processInstance) {
14
+ throw new Error(context.t('error.process-instance not found', {
15
+ processInstance: id
16
+ }));
17
+ }
18
+ /*
19
+ Prerequisites for a Task to Be Picked.
20
+ - The previous state of the task must not be Assigned.
21
+ */
22
+ if (processInstance.state !== process_instance_1.ProcessInstanceStatus.Issued &&
23
+ processInstance.state !== process_instance_1.ProcessInstanceStatus.PendingAssignment) {
24
+ throw new Error(context.t(`error.process-instance should not be assigned`, {
25
+ id,
26
+ actual: processInstance.state
27
+ }));
28
+ }
29
+ const picked = await repository.save(Object.assign(Object.assign({}, processInstance), { transaction: 'pick', updater: user }));
30
+ return (await (0, common_1.createProcessThreadsForUsers)('pick', picked, [user], context))[0];
31
+ }
32
+ exports.pick = pick;
33
+ //# sourceMappingURL=pick.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pick.js","sourceRoot":"","sources":["../../../server/controllers/process-instance/pick.ts"],"names":[],"mappings":";;;AAAA,sFAAwG;AAExG,sCAAwD;AAEjD,KAAK,UAAU,IAAI,CAAC,EAAU,EAAE,OAAwB;IAC7D,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAC1C,MAAM,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,kCAAe,CAAC,CAAA;IAEpD,IAAI,eAAe,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;QAC7C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;QACxC,SAAS,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,iBAAiB,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,CAAC;KACnH,CAAC,CAAA;IAEF,IAAI,CAAC,eAAe,EAAE;QACpB,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,kCAAkC,EAAE;YAC5C,eAAe,EAAE,EAAE;SACpB,CAAC,CACH,CAAA;KACF;IAED;;;MAGE;IACF,IACE,eAAe,CAAC,KAAK,KAAK,wCAAqB,CAAC,MAAM;QACtD,eAAe,CAAC,KAAK,KAAK,wCAAqB,CAAC,iBAAiB,EACjE;QACA,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,+CAA+C,EAAE;YACzD,EAAE;YACF,MAAM,EAAE,eAAe,CAAC,KAAK;SAC9B,CAAC,CACH,CAAA;KACF;IAED,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,iCAC/B,eAAe,KAClB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,IAAI,IACb,CAAA;IAEF,OAAO,CAAC,MAAM,IAAA,qCAA4B,EAAC,MAAM,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACjF,CAAC;AAxCD,oBAwCC","sourcesContent":["import { ProcessInstance, ProcessInstanceStatus } from '../../service/process-instance/process-instance'\nimport { ProcessThread } from '../../service/process-thread/process-thread'\nimport { createProcessThreadsForUsers } from '../common'\n\nexport async function pick(id: string, context: ResolverContext): Promise<ProcessThread> {\n const { domain, user, tx } = context.state\n const repository = tx.getRepository(ProcessInstance)\n\n var processInstance = await repository.findOne({\n where: { domain: { id: domain.id }, id },\n relations: ['domain', 'process', 'assigneeRole', 'supervisoryRole', 'updater', 'creator', 'starter', 'terminator']\n })\n\n if (!processInstance) {\n throw new Error(\n context.t('error.process-instance not found', {\n processInstance: id\n })\n )\n }\n\n /* \n Prerequisites for a Task to Be Picked.\n - The previous state of the task must not be Assigned.\n */\n if (\n processInstance.state !== ProcessInstanceStatus.Issued &&\n processInstance.state !== ProcessInstanceStatus.PendingAssignment\n ) {\n throw new Error(\n context.t(`error.process-instance should not be assigned`, {\n id,\n actual: processInstance.state\n })\n )\n }\n\n const picked = await repository.save({\n ...processInstance,\n transaction: 'pick',\n updater: user\n })\n\n return (await createProcessThreadsForUsers('pick', picked, [user], context))[0]\n}\n"]}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports._abort = void 0;
4
+ const process_thread_1 = require("../../service/process-thread/process-thread");
5
+ async function _abort({ processThread, reason }, context) {
6
+ const { domain, user, tx } = context.state;
7
+ var repository = tx.getRepository(process_thread_1.ProcessThread);
8
+ return await repository.save(Object.assign(Object.assign({}, processThread), { reason, state: process_thread_1.ProcessThreadStatus.Aborted, transaction: 'abort', updater: user, terminatedAt: new Date(), terminator: user }));
9
+ }
10
+ exports._abort = _abort;
11
+ //# sourceMappingURL=_abort.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_abort.js","sourceRoot":"","sources":["../../../server/controllers/process-thread/_abort.ts"],"names":[],"mappings":";;;AAAA,gFAAgG;AAEzF,KAAK,UAAU,MAAM,CAC1B,EAAE,aAAa,EAAE,MAAM,EAAoD,EAC3E,OAAwB;IAExB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAE1C,IAAI,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,8BAAa,CAAC,CAAA;IAEhD,OAAO,MAAM,UAAU,CAAC,IAAI,iCACvB,aAAa,KAChB,MAAM,EACN,KAAK,EAAE,oCAAmB,CAAC,OAAO,EAClC,WAAW,EAAE,OAAO,EACpB,OAAO,EAAE,IAAI,EACb,YAAY,EAAE,IAAI,IAAI,EAAE,EACxB,UAAU,EAAE,IAAI,IAChB,CAAA;AACJ,CAAC;AAjBD,wBAiBC","sourcesContent":["import { ProcessThread, ProcessThreadStatus } from '../../service/process-thread/process-thread'\n\nexport async function _abort(\n { processThread, reason }: { processThread: ProcessThread; reason: string },\n context: ResolverContext\n): Promise<ProcessThread> {\n const { domain, user, tx } = context.state\n\n var repository = tx.getRepository(ProcessThread)\n\n return await repository.save({\n ...processThread,\n reason,\n state: ProcessThreadStatus.Aborted,\n transaction: 'abort',\n updater: user,\n terminatedAt: new Date(),\n terminator: user\n })\n}\n"]}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.abort = void 0;
4
+ const process_thread_1 = require("../../service/process-thread/process-thread");
5
+ const common_1 = require("../common");
6
+ const _abort_1 = require("./_abort");
7
+ async function abort({ id, reason }, context) {
8
+ const { domain, user, tx } = context.state;
9
+ var repository = tx.getRepository(process_thread_1.ProcessThread);
10
+ var processThread = await repository.findOne({
11
+ where: { domain: { id: domain.id }, id },
12
+ relations: ['domain', 'processInstance', 'assignee', 'creator', 'updater']
13
+ });
14
+ if (!processThread) {
15
+ throw new Error(context.t('error.process-thread not found', {
16
+ processThread: id
17
+ }));
18
+ }
19
+ /*
20
+ Prerequisites for a process thread to Be Aborted.
21
+ - The previous state of the process thread must not be End or Aborted.
22
+ */
23
+ if (processThread.state == process_thread_1.ProcessThreadStatus.Aborted ||
24
+ processThread.state == process_thread_1.ProcessThreadStatus.Ended ||
25
+ processThread.state == process_thread_1.ProcessThreadStatus.Delegated) {
26
+ throw new Error(context.t(`error.process-thread is already terminated`, {
27
+ id,
28
+ state: processThread.state
29
+ }));
30
+ }
31
+ const result = await (0, _abort_1._abort)({ processThread, reason }, context);
32
+ await (0, common_1.updateProcessInstanceState)(processThread.processInstanceId, context);
33
+ return result;
34
+ }
35
+ exports.abort = abort;
36
+ //# sourceMappingURL=abort.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abort.js","sourceRoot":"","sources":["../../../server/controllers/process-thread/abort.ts"],"names":[],"mappings":";;;AAAA,gFAAgG;AAChG,sCAAsD;AACtD,qCAAiC;AAE1B,KAAK,UAAU,KAAK,CACzB,EAAE,EAAE,EAAE,MAAM,EAAkC,EAC9C,OAAwB;IAExB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAE1C,IAAI,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,8BAAa,CAAC,CAAA;IAEhD,IAAI,aAAa,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;QAC3C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;QACxC,SAAS,EAAE,CAAC,QAAQ,EAAE,iBAAiB,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC;KAC3E,CAAC,CAAA;IAEF,IAAI,CAAC,aAAa,EAAE;QAClB,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,gCAAgC,EAAE;YAC1C,aAAa,EAAE,EAAE;SAClB,CAAC,CACH,CAAA;KACF;IAED;;;MAGE;IACF,IACE,aAAa,CAAC,KAAK,IAAI,oCAAmB,CAAC,OAAO;QAClD,aAAa,CAAC,KAAK,IAAI,oCAAmB,CAAC,KAAK;QAChD,aAAa,CAAC,KAAK,IAAI,oCAAmB,CAAC,SAAS,EACpD;QACA,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,4CAA4C,EAAE;YACtD,EAAE;YACF,KAAK,EAAE,aAAa,CAAC,KAAK;SAC3B,CAAC,CACH,CAAA;KACF;IAED,MAAM,MAAM,GAAG,MAAM,IAAA,eAAM,EAAC,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,CAAA;IAE/D,MAAM,IAAA,mCAA0B,EAAC,aAAa,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAA;IAE1E,OAAO,MAAM,CAAA;AACf,CAAC;AA3CD,sBA2CC","sourcesContent":["import { ProcessThread, ProcessThreadStatus } from '../../service/process-thread/process-thread'\nimport { updateProcessInstanceState } from '../common'\nimport { _abort } from './_abort'\n\nexport async function abort(\n { id, reason }: { id: string; reason: string },\n context: ResolverContext\n): Promise<ProcessThread> {\n const { domain, user, tx } = context.state\n\n var repository = tx.getRepository(ProcessThread)\n\n var processThread = await repository.findOne({\n where: { domain: { id: domain.id }, id },\n relations: ['domain', 'processInstance', 'assignee', 'creator', 'updater']\n })\n\n if (!processThread) {\n throw new Error(\n context.t('error.process-thread not found', {\n processThread: id\n })\n )\n }\n\n /* \n Prerequisites for a process thread to Be Aborted.\n - The previous state of the process thread must not be End or Aborted.\n */\n if (\n processThread.state == ProcessThreadStatus.Aborted ||\n processThread.state == ProcessThreadStatus.Ended ||\n processThread.state == ProcessThreadStatus.Delegated\n ) {\n throw new Error(\n context.t(`error.process-thread is already terminated`, {\n id,\n state: processThread.state\n })\n )\n }\n\n const result = await _abort({ processThread, reason }, context)\n\n await updateProcessInstanceState(processThread.processInstanceId, context)\n\n return result\n}\n"]}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.delegate = void 0;
4
+ const process_thread_1 = require("../../service/process-thread/process-thread");
5
+ const common_1 = require("../common");
6
+ async function delegate({ id, assigneeRole, dueAt, reason }, context) {
7
+ const { domain, user, tx } = context.state;
8
+ const repository = tx.getRepository(process_thread_1.ProcessThread);
9
+ var processThread = await repository.findOne({
10
+ where: { domain: { id: domain.id }, id }
11
+ });
12
+ if (!processThread) {
13
+ throw new Error(context.t('error.process-thread not found', {
14
+ processThread: id
15
+ }));
16
+ }
17
+ /*
18
+ Prerequisites for a process thread to Be Delegated.
19
+ - The previous state of the process thread should be assigned or started.
20
+ */
21
+ if (processThread.state !== process_thread_1.ProcessThreadStatus.Assigned && processThread.state !== process_thread_1.ProcessThreadStatus.Started) {
22
+ throw new Error(context.t(`error.process-thread is already terminated`, {
23
+ id,
24
+ actual: processThread.state
25
+ }));
26
+ }
27
+ if (dueAt) {
28
+ processThread.dueAt = dueAt;
29
+ }
30
+ const result = await repository.save(Object.assign(Object.assign({}, processThread), { reason,
31
+ assigneeRole, transaction: 'delegate', state: process_thread_1.ProcessThreadStatus.Delegated, updater: user, assignedAt: new Date() }));
32
+ await (0, common_1.updateProcessInstanceState)(processThread.processInstanceId, context);
33
+ return result;
34
+ }
35
+ exports.delegate = delegate;
36
+ //# sourceMappingURL=delegate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegate.js","sourceRoot":"","sources":["../../../server/controllers/process-thread/delegate.ts"],"names":[],"mappings":";;;AAAA,gFAAgG;AAChG,sCAAsD;AAE/C,KAAK,UAAU,QAAQ,CAC5B,EACE,EAAE,EACF,YAAY,EACZ,KAAK,EACL,MAAM,EAMP,EACD,OAAwB;IAExB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAE1C,MAAM,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,8BAAa,CAAC,CAAA;IAElD,IAAI,aAAa,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;QAC3C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;KACzC,CAAC,CAAA;IAEF,IAAI,CAAC,aAAa,EAAE;QAClB,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,gCAAgC,EAAE;YAC1C,aAAa,EAAE,EAAE;SAClB,CAAC,CACH,CAAA;KACF;IAED;;;MAGE;IACF,IAAI,aAAa,CAAC,KAAK,KAAK,oCAAmB,CAAC,QAAQ,IAAI,aAAa,CAAC,KAAK,KAAK,oCAAmB,CAAC,OAAO,EAAE;QAC/G,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,4CAA4C,EAAE;YACtD,EAAE;YACF,MAAM,EAAE,aAAa,CAAC,KAAK;SAC5B,CAAC,CACH,CAAA;KACF;IAED,IAAI,KAAK,EAAE;QACT,aAAa,CAAC,KAAK,GAAG,KAAK,CAAA;KAC5B;IAED,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,iCAC/B,aAAa,KAChB,MAAM;QACN,YAAY,EACZ,WAAW,EAAE,UAAU,EACvB,KAAK,EAAE,oCAAmB,CAAC,SAAS,EACpC,OAAO,EAAE,IAAI,EACb,UAAU,EAAE,IAAI,IAAI,EAAE,IACtB,CAAA;IAEF,MAAM,IAAA,mCAA0B,EAAC,aAAa,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAA;IAE1E,OAAO,MAAM,CAAA;AACf,CAAC;AA5DD,4BA4DC","sourcesContent":["import { ProcessThread, ProcessThreadStatus } from '../../service/process-thread/process-thread'\nimport { updateProcessInstanceState } from '../common'\n\nexport async function delegate(\n {\n id,\n assigneeRole,\n dueAt,\n reason\n }: {\n id: string\n assigneeRole?: object\n dueAt?: Date\n reason?: string\n },\n context: ResolverContext\n): Promise<ProcessThread> {\n const { domain, user, tx } = context.state\n\n const repository = tx.getRepository(ProcessThread)\n\n var processThread = await repository.findOne({\n where: { domain: { id: domain.id }, id }\n })\n\n if (!processThread) {\n throw new Error(\n context.t('error.process-thread not found', {\n processThread: id\n })\n )\n }\n\n /* \n Prerequisites for a process thread to Be Delegated.\n - The previous state of the process thread should be assigned or started.\n */\n if (processThread.state !== ProcessThreadStatus.Assigned && processThread.state !== ProcessThreadStatus.Started) {\n throw new Error(\n context.t(`error.process-thread is already terminated`, {\n id,\n actual: processThread.state\n })\n )\n }\n\n if (dueAt) {\n processThread.dueAt = dueAt\n }\n\n const result = await repository.save({\n ...processThread,\n reason,\n assigneeRole,\n transaction: 'delegate',\n state: ProcessThreadStatus.Delegated,\n updater: user,\n assignedAt: new Date()\n })\n\n await updateProcessInstanceState(processThread.processInstanceId, context)\n\n return result\n}\n"]}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.end = void 0;
4
+ const process_thread_1 = require("../../service/process-thread/process-thread");
5
+ const common_1 = require("../common");
6
+ async function end({ id, output, reason }, context) {
7
+ const { domain, user, tx } = context.state;
8
+ const repository = tx.getRepository(process_thread_1.ProcessThread);
9
+ var processThread = await repository.findOne({
10
+ where: { domain: { id: domain.id }, id }
11
+ });
12
+ if (!processThread) {
13
+ throw new Error(context.t('error.process-thread not found', {
14
+ processThread: id
15
+ }));
16
+ }
17
+ /*
18
+ Prerequisites for a process thread to Be End.
19
+ - The previous state of the process thread must not be End or End.
20
+ */
21
+ if (processThread.state == process_thread_1.ProcessThreadStatus.Aborted ||
22
+ processThread.state == process_thread_1.ProcessThreadStatus.Ended ||
23
+ processThread.state == process_thread_1.ProcessThreadStatus.Delegated) {
24
+ throw new Error(context.t(`error.process-thread is already terminated`, {
25
+ id,
26
+ actual: processThread.state
27
+ }));
28
+ }
29
+ processThread = await repository.save(Object.assign(Object.assign({}, processThread), { reason,
30
+ output, transaction: 'end', state: process_thread_1.ProcessThreadStatus.Ended, updater: user, terminatedAt: new Date() }));
31
+ await (0, common_1.updateProcessInstanceState)(processThread.processInstanceId, context);
32
+ return processThread;
33
+ }
34
+ exports.end = end;
35
+ //# sourceMappingURL=end.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"end.js","sourceRoot":"","sources":["../../../server/controllers/process-thread/end.ts"],"names":[],"mappings":";;;AAAA,gFAAgG;AAChG,sCAAsD;AAE/C,KAAK,UAAU,GAAG,CACvB,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAoD,EACxE,OAAwB;IAExB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAE1C,MAAM,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,8BAAa,CAAC,CAAA;IAElD,IAAI,aAAa,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;QAC3C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;KACzC,CAAC,CAAA;IAEF,IAAI,CAAC,aAAa,EAAE;QAClB,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,gCAAgC,EAAE;YAC1C,aAAa,EAAE,EAAE;SAClB,CAAC,CACH,CAAA;KACF;IAED;;;MAGE;IACF,IACE,aAAa,CAAC,KAAK,IAAI,oCAAmB,CAAC,OAAO;QAClD,aAAa,CAAC,KAAK,IAAI,oCAAmB,CAAC,KAAK;QAChD,aAAa,CAAC,KAAK,IAAI,oCAAmB,CAAC,SAAS,EACpD;QACA,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,4CAA4C,EAAE;YACtD,EAAE;YACF,MAAM,EAAE,aAAa,CAAC,KAAK;SAC5B,CAAC,CACH,CAAA;KACF;IAED,aAAa,GAAG,MAAM,UAAU,CAAC,IAAI,iCAChC,aAAa,KAChB,MAAM;QACN,MAAM,EACN,WAAW,EAAE,KAAK,EAClB,KAAK,EAAE,oCAAmB,CAAC,KAAK,EAChC,OAAO,EAAE,IAAI,EACb,YAAY,EAAE,IAAI,IAAI,EAAE,IACxB,CAAA;IAEF,MAAM,IAAA,mCAA0B,EAAC,aAAa,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAA;IAE1E,OAAO,aAAa,CAAA;AACtB,CAAC;AAlDD,kBAkDC","sourcesContent":["import { ProcessThread, ProcessThreadStatus } from '../../service/process-thread/process-thread'\nimport { updateProcessInstanceState } from '../common'\n\nexport async function end(\n { id, output, reason }: { id: string; output?: object; reason?: string },\n context: ResolverContext\n): Promise<ProcessThread> {\n const { domain, user, tx } = context.state\n\n const repository = tx.getRepository(ProcessThread)\n\n var processThread = await repository.findOne({\n where: { domain: { id: domain.id }, id }\n })\n\n if (!processThread) {\n throw new Error(\n context.t('error.process-thread not found', {\n processThread: id\n })\n )\n }\n\n /* \n Prerequisites for a process thread to Be End.\n - The previous state of the process thread must not be End or End.\n */\n if (\n processThread.state == ProcessThreadStatus.Aborted ||\n processThread.state == ProcessThreadStatus.Ended ||\n processThread.state == ProcessThreadStatus.Delegated\n ) {\n throw new Error(\n context.t(`error.process-thread is already terminated`, {\n id,\n actual: processThread.state\n })\n )\n }\n\n processThread = await repository.save({\n ...processThread,\n reason,\n output,\n transaction: 'end',\n state: ProcessThreadStatus.Ended,\n updater: user,\n terminatedAt: new Date()\n })\n\n await updateProcessInstanceState(processThread.processInstanceId, context)\n\n return processThread\n}\n"]}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./abort"), exports);
5
+ tslib_1.__exportStar(require("./end"), exports);
6
+ tslib_1.__exportStar(require("./start"), exports);
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/controllers/process-thread/index.ts"],"names":[],"mappings":";;;AAAA,kDAAuB;AACvB,gDAAqB;AACrB,kDAAuB","sourcesContent":["export * from './abort'\nexport * from './end'\nexport * from './start'\n"]}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.restart = void 0;
4
+ const process_thread_1 = require("../../service/process-thread/process-thread");
5
+ const common_1 = require("../common");
6
+ async function restart(id, output, reason, context) {
7
+ const { domain, user, tx } = context.state;
8
+ const repository = tx.getRepository(process_thread_1.ProcessThread);
9
+ const processThread = await repository.findOne({
10
+ where: { domain: { id: domain.id }, id }
11
+ });
12
+ if (!processThread) {
13
+ throw new Error(context.t('error.process-thread not found', {
14
+ processThread: id
15
+ }));
16
+ }
17
+ /*
18
+ Prerequisites for a process thread to Be Delegated.
19
+ - The previous state of the process thread should be Rejected.
20
+ */
21
+ if (processThread.state !== process_thread_1.ProcessThreadStatus.Rejected) {
22
+ throw new Error(context.t(`error.process-thread should be the state`, {
23
+ id,
24
+ state: process_thread_1.ProcessThreadStatus.Rejected,
25
+ actual: processThread.state
26
+ }));
27
+ }
28
+ if (output) {
29
+ processThread.output = output;
30
+ }
31
+ const result = await tx.getRepository(process_thread_1.ProcessThread).save(Object.assign(Object.assign({}, processThread), { reason, state: process_thread_1.ProcessThreadStatus.Started, transaction: 'restart', round: processThread.round + 1, updater: user, startedAt: new Date() }));
32
+ await (0, common_1.updateProcessInstanceState)(processThread.processInstanceId, context);
33
+ return result;
34
+ }
35
+ exports.restart = restart;
36
+ //# sourceMappingURL=restart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"restart.js","sourceRoot":"","sources":["../../../server/controllers/process-thread/restart.ts"],"names":[],"mappings":";;;AAAA,gFAAgG;AAChG,sCAAsD;AAE/C,KAAK,UAAU,OAAO,CAC3B,EAAU,EACV,MAAc,EACd,MAAc,EACd,OAAwB;IAExB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAE1C,MAAM,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,8BAAa,CAAC,CAAA;IAClD,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;QAC7C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;KACzC,CAAC,CAAA;IAEF,IAAI,CAAC,aAAa,EAAE;QAClB,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,gCAAgC,EAAE;YAC1C,aAAa,EAAE,EAAE;SAClB,CAAC,CACH,CAAA;KACF;IAED;;;MAGE;IACF,IAAI,aAAa,CAAC,KAAK,KAAK,oCAAmB,CAAC,QAAQ,EAAE;QACxD,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,0CAA0C,EAAE;YACpD,EAAE;YACF,KAAK,EAAE,oCAAmB,CAAC,QAAQ;YACnC,MAAM,EAAE,aAAa,CAAC,KAAK;SAC5B,CAAC,CACH,CAAA;KACF;IAED,IAAI,MAAM,EAAE;QACV,aAAa,CAAC,MAAM,GAAG,MAAM,CAAA;KAC9B;IAED,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,8BAAa,CAAC,CAAC,IAAI,iCACpD,aAAa,KAChB,MAAM,EACN,KAAK,EAAE,oCAAmB,CAAC,OAAO,EAClC,WAAW,EAAE,SAAS,EACtB,KAAK,EAAE,aAAa,CAAC,KAAK,GAAG,CAAC,EAC9B,OAAO,EAAE,IAAI,EACb,SAAS,EAAE,IAAI,IAAI,EAAE,IACrB,CAAA;IAEF,MAAM,IAAA,mCAA0B,EAAC,aAAa,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAA;IAE1E,OAAO,MAAM,CAAA;AACf,CAAC;AApDD,0BAoDC","sourcesContent":["import { ProcessThread, ProcessThreadStatus } from '../../service/process-thread/process-thread'\nimport { updateProcessInstanceState } from '../common'\n\nexport async function restart(\n id: string,\n output: object,\n reason: string,\n context: ResolverContext\n): Promise<ProcessThread> {\n const { domain, user, tx } = context.state\n\n const repository = tx.getRepository(ProcessThread)\n const processThread = await repository.findOne({\n where: { domain: { id: domain.id }, id }\n })\n\n if (!processThread) {\n throw new Error(\n context.t('error.process-thread not found', {\n processThread: id\n })\n )\n }\n\n /* \n Prerequisites for a process thread to Be Delegated.\n - The previous state of the process thread should be Rejected.\n */\n if (processThread.state !== ProcessThreadStatus.Rejected) {\n throw new Error(\n context.t(`error.process-thread should be the state`, {\n id,\n state: ProcessThreadStatus.Rejected,\n actual: processThread.state\n })\n )\n }\n\n if (output) {\n processThread.output = output\n }\n\n const result = await tx.getRepository(ProcessThread).save({\n ...processThread,\n reason,\n state: ProcessThreadStatus.Started,\n transaction: 'restart',\n round: processThread.round + 1,\n updater: user,\n startedAt: new Date()\n })\n\n await updateProcessInstanceState(processThread.processInstanceId, context)\n\n return result\n}\n"]}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.save = void 0;
4
+ const common_1 = require("../common");
5
+ const process_thread_1 = require("../../service/process-thread/process-thread");
6
+ async function save(id, save, context) {
7
+ const { domain, user, tx } = context.state;
8
+ const repository = tx.getRepository(process_thread_1.ProcessThread);
9
+ var processThread = await repository.findOne({
10
+ where: { domain: { id: domain.id }, id }
11
+ });
12
+ if (!processThread) {
13
+ throw new Error(context.t('error.process-thread not found', {
14
+ processThread: id
15
+ }));
16
+ }
17
+ /*
18
+ Prerequisites for a process thread to Be Saved.
19
+ - The previous state of the process thread must not be terminated.
20
+ */
21
+ if (processThread.state == process_thread_1.ProcessThreadStatus.Aborted ||
22
+ processThread.state == process_thread_1.ProcessThreadStatus.Ended ||
23
+ processThread.state == process_thread_1.ProcessThreadStatus.Delegated) {
24
+ throw new Error(context.t(`error.process-thread is already terminated`, {
25
+ id,
26
+ actual: processThread.state
27
+ }));
28
+ }
29
+ if (!processThread.startedAt) {
30
+ /* The act of saving means automatically starting the work. */
31
+ processThread.startedAt = new Date();
32
+ }
33
+ processThread = await repository.save(Object.assign(Object.assign(Object.assign({}, processThread), save), { state: process_thread_1.ProcessThreadStatus.Started, transaction: 'save', updater: user }));
34
+ await (0, common_1.updateProcessInstanceState)(processThread.processInstanceId, context);
35
+ return processThread;
36
+ }
37
+ exports.save = save;
38
+ //# sourceMappingURL=save.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"save.js","sourceRoot":"","sources":["../../../server/controllers/process-thread/save.ts"],"names":[],"mappings":";;;AACA,sCAAsD;AACtD,gFAAgG;AAEzF,KAAK,UAAU,IAAI,CAAC,EAAU,EAAE,IAAuB,EAAE,OAAwB;IACtF,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAC1C,MAAM,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,8BAAa,CAAC,CAAA;IAElD,IAAI,aAAa,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;QAC3C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;KACzC,CAAC,CAAA;IAEF,IAAI,CAAC,aAAa,EAAE;QAClB,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,gCAAgC,EAAE;YAC1C,aAAa,EAAE,EAAE;SAClB,CAAC,CACH,CAAA;KACF;IAED;;;MAGE;IACF,IACE,aAAa,CAAC,KAAK,IAAI,oCAAmB,CAAC,OAAO;QAClD,aAAa,CAAC,KAAK,IAAI,oCAAmB,CAAC,KAAK;QAChD,aAAa,CAAC,KAAK,IAAI,oCAAmB,CAAC,SAAS,EACpD;QACA,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,4CAA4C,EAAE;YACtD,EAAE;YACF,MAAM,EAAE,aAAa,CAAC,KAAK;SAC5B,CAAC,CACH,CAAA;KACF;IAED,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE;QAC5B,8DAA8D;QAC9D,aAAa,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAA;KACrC;IAED,aAAa,GAAG,MAAM,UAAU,CAAC,IAAI,+CAChC,aAAa,GACb,IAAI,KACP,KAAK,EAAE,oCAAmB,CAAC,OAAO,EAClC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,IAAI,IACb,CAAA;IAEF,MAAM,IAAA,mCAA0B,EAAC,aAAa,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAA;IAE1E,OAAO,aAAa,CAAA;AACtB,CAAC;AAjDD,oBAiDC","sourcesContent":["import { ProcessThreadSave } from '../../service/process-thread/process-thread-type'\nimport { updateProcessInstanceState } from '../common'\nimport { ProcessThread, ProcessThreadStatus } from '../../service/process-thread/process-thread'\n\nexport async function save(id: string, save: ProcessThreadSave, context: ResolverContext): Promise<ProcessThread> {\n const { domain, user, tx } = context.state\n const repository = tx.getRepository(ProcessThread)\n\n var processThread = await repository.findOne({\n where: { domain: { id: domain.id }, id }\n })\n\n if (!processThread) {\n throw new Error(\n context.t('error.process-thread not found', {\n processThread: id\n })\n )\n }\n\n /* \n Prerequisites for a process thread to Be Saved.\n - The previous state of the process thread must not be terminated.\n */\n if (\n processThread.state == ProcessThreadStatus.Aborted ||\n processThread.state == ProcessThreadStatus.Ended ||\n processThread.state == ProcessThreadStatus.Delegated\n ) {\n throw new Error(\n context.t(`error.process-thread is already terminated`, {\n id,\n actual: processThread.state\n })\n )\n }\n\n if (!processThread.startedAt) {\n /* The act of saving means automatically starting the work. */\n processThread.startedAt = new Date()\n }\n\n processThread = await repository.save({\n ...processThread,\n ...save,\n state: ProcessThreadStatus.Started,\n transaction: 'save',\n updater: user\n })\n\n await updateProcessInstanceState(processThread.processInstanceId, context)\n\n return processThread\n}\n"]}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.start = void 0;
4
+ const process_thread_1 = require("../../service/process-thread/process-thread");
5
+ const common_1 = require("../common");
6
+ async function start(id, output, reason, context) {
7
+ const { domain, user, tx } = context.state;
8
+ const repository = tx.getRepository(process_thread_1.ProcessThread);
9
+ const processThread = await repository.findOne({
10
+ where: { domain: { id: domain.id }, id }
11
+ });
12
+ if (!processThread) {
13
+ throw new Error(context.t('error.process-thread not found', {
14
+ processThread: id
15
+ }));
16
+ }
17
+ /*
18
+ Prerequisites for a process thread to Be Started.
19
+ - The previous state of the process thread must not be terminated.
20
+ */
21
+ if (processThread.state !== process_thread_1.ProcessThreadStatus.Assigned) {
22
+ throw new Error(context.t(`error.process-thread should not be started`, {
23
+ id,
24
+ actual: processThread.state
25
+ }));
26
+ }
27
+ const result = await tx.getRepository(process_thread_1.ProcessThread).save(Object.assign(Object.assign({}, processThread), { reason, state: process_thread_1.ProcessThreadStatus.Started, transaction: 'start', updater: user }));
28
+ await (0, common_1.updateProcessInstanceState)(processThread.processInstanceId, context);
29
+ return result;
30
+ }
31
+ exports.start = start;
32
+ //# sourceMappingURL=start.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../server/controllers/process-thread/start.ts"],"names":[],"mappings":";;;AAAA,gFAAgG;AAChG,sCAAsD;AAE/C,KAAK,UAAU,KAAK,CACzB,EAAU,EACV,MAAc,EACd,MAAc,EACd,OAAwB;IAExB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAE1C,MAAM,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,8BAAa,CAAC,CAAA;IAClD,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;QAC7C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;KACzC,CAAC,CAAA;IAEF,IAAI,CAAC,aAAa,EAAE;QAClB,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,gCAAgC,EAAE;YAC1C,aAAa,EAAE,EAAE;SAClB,CAAC,CACH,CAAA;KACF;IAED;;;MAGE;IACF,IAAI,aAAa,CAAC,KAAK,KAAK,oCAAmB,CAAC,QAAQ,EAAE;QACxD,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,4CAA4C,EAAE;YACtD,EAAE;YACF,MAAM,EAAE,aAAa,CAAC,KAAK;SAC5B,CAAC,CACH,CAAA;KACF;IAED,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,8BAAa,CAAC,CAAC,IAAI,iCACpD,aAAa,KAChB,MAAM,EACN,KAAK,EAAE,oCAAmB,CAAC,OAAO,EAClC,WAAW,EAAE,OAAO,EACpB,OAAO,EAAE,IAAI,IACb,CAAA;IAEF,MAAM,IAAA,mCAA0B,EAAC,aAAa,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAA;IAE1E,OAAO,MAAM,CAAA;AACf,CAAC;AA7CD,sBA6CC","sourcesContent":["import { ProcessThread, ProcessThreadStatus } from '../../service/process-thread/process-thread'\nimport { updateProcessInstanceState } from '../common'\n\nexport async function start(\n id: string,\n output: object,\n reason: string,\n context: ResolverContext\n): Promise<ProcessThread> {\n const { domain, user, tx } = context.state\n\n const repository = tx.getRepository(ProcessThread)\n const processThread = await repository.findOne({\n where: { domain: { id: domain.id }, id }\n })\n\n if (!processThread) {\n throw new Error(\n context.t('error.process-thread not found', {\n processThread: id\n })\n )\n }\n\n /* \n Prerequisites for a process thread to Be Started.\n - The previous state of the process thread must not be terminated.\n */\n if (processThread.state !== ProcessThreadStatus.Assigned) {\n throw new Error(\n context.t(`error.process-thread should not be started`, {\n id,\n actual: processThread.state\n })\n )\n }\n\n const result = await tx.getRepository(ProcessThread).save({\n ...processThread,\n reason,\n state: ProcessThreadStatus.Started,\n transaction: 'start',\n updater: user\n })\n\n await updateProcessInstanceState(processThread.processInstanceId, context)\n\n return result\n}\n"]}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.submit = void 0;
4
+ const process_thread_1 = require("../../service/process-thread/process-thread");
5
+ const common_1 = require("../common");
6
+ async function submit({ id, output, reason }, context) {
7
+ const { domain, user, tx } = context.state;
8
+ const repository = tx.getRepository(process_thread_1.ProcessThread);
9
+ var processThread = await repository.findOne({
10
+ where: { domain: { id: domain.id }, id },
11
+ relations: ['processInstance']
12
+ });
13
+ if (!processThread) {
14
+ throw new Error(context.t('error.process-thread not found', {
15
+ processThread: id
16
+ }));
17
+ }
18
+ /*
19
+ Prerequisites for a process thread to Be Started.
20
+ - The previous state of the process thread must not be terminated.
21
+ */
22
+ if (processThread.state !== process_thread_1.ProcessThreadStatus.Assigned && processThread.state !== process_thread_1.ProcessThreadStatus.Started) {
23
+ throw new Error(context.t(`error.process-thread should not be submitted`, {
24
+ id,
25
+ actual: processThread.state
26
+ }));
27
+ }
28
+ if (!processThread.startedAt) {
29
+ processThread.startedAt = new Date();
30
+ }
31
+ processThread = await repository.save(Object.assign(Object.assign({}, processThread), { reason,
32
+ output, transaction: 'end', state: process_thread_1.ProcessThreadStatus.Ended, updater: user, terminator: user, terminatedAt: new Date() }));
33
+ await (0, common_1.updateProcessInstanceState)(processThread.processInstanceId, context);
34
+ return processThread;
35
+ }
36
+ exports.submit = submit;
37
+ //# sourceMappingURL=submit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"submit.js","sourceRoot":"","sources":["../../../server/controllers/process-thread/submit.ts"],"names":[],"mappings":";;;AAAA,gFAAgG;AAChG,sCAAsD;AAG/C,KAAK,UAAU,MAAM,CAC1B,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAoD,EACxE,OAAwB;IAExB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAE1C,MAAM,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,8BAAa,CAAC,CAAA;IAElD,IAAI,aAAa,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;QAC3C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;QACxC,SAAS,EAAE,CAAC,iBAAiB,CAAC;KAC/B,CAAC,CAAA;IAEF,IAAI,CAAC,aAAa,EAAE;QAClB,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,gCAAgC,EAAE;YAC1C,aAAa,EAAE,EAAE;SAClB,CAAC,CACH,CAAA;KACF;IAED;;;MAGE;IACF,IAAI,aAAa,CAAC,KAAK,KAAK,oCAAmB,CAAC,QAAQ,IAAI,aAAa,CAAC,KAAK,KAAK,oCAAmB,CAAC,OAAO,EAAE;QAC/G,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,8CAA8C,EAAE;YACxD,EAAE;YACF,MAAM,EAAE,aAAa,CAAC,KAAK;SAC5B,CAAC,CACH,CAAA;KACF;IAED,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE;QAC5B,aAAa,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAA;KACrC;IAED,aAAa,GAAG,MAAM,UAAU,CAAC,IAAI,iCAChC,aAAa,KAChB,MAAM;QACN,MAAM,EACN,WAAW,EAAE,KAAK,EAClB,KAAK,EAAE,oCAAmB,CAAC,KAAK,EAChC,OAAO,EAAE,IAAI,EACb,UAAU,EAAE,IAAI,EAChB,YAAY,EAAE,IAAI,IAAI,EAAE,IACxB,CAAA;IAEF,MAAM,IAAA,mCAA0B,EAAC,aAAa,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAA;IAE1E,OAAO,aAAa,CAAA;AACtB,CAAC;AApDD,wBAoDC","sourcesContent":["import { ProcessThread, ProcessThreadStatus } from '../../service/process-thread/process-thread'\nimport { updateProcessInstanceState } from '../common'\nimport { User } from '@things-factory/auth-base'\n\nexport async function submit(\n { id, output, reason }: { id: string; output?: object; reason?: string },\n context: ResolverContext\n): Promise<ProcessThread> {\n const { domain, user, tx } = context.state\n\n const repository = tx.getRepository(ProcessThread)\n\n var processThread = await repository.findOne({\n where: { domain: { id: domain.id }, id },\n relations: ['processInstance']\n })\n\n if (!processThread) {\n throw new Error(\n context.t('error.process-thread not found', {\n processThread: id\n })\n )\n }\n\n /* \n Prerequisites for a process thread to Be Started.\n - The previous state of the process thread must not be terminated.\n */\n if (processThread.state !== ProcessThreadStatus.Assigned && processThread.state !== ProcessThreadStatus.Started) {\n throw new Error(\n context.t(`error.process-thread should not be submitted`, {\n id,\n actual: processThread.state\n })\n )\n }\n\n if (!processThread.startedAt) {\n processThread.startedAt = new Date()\n }\n\n processThread = await repository.save({\n ...processThread,\n reason,\n output,\n transaction: 'end',\n state: ProcessThreadStatus.Ended,\n updater: user,\n terminator: user,\n terminatedAt: new Date()\n })\n\n await updateProcessInstanceState(processThread.processInstanceId, context)\n\n return processThread\n}\n"]}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./migrations"), exports);
5
+ tslib_1.__exportStar(require("./middlewares"), exports);
6
+ require("./routes");
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../server/index.ts"],"names":[],"mappings":";;;AAAA,uDAA4B;AAC5B,wDAA6B;AAE7B,oBAAiB","sourcesContent":["export * from './migrations'\nexport * from './middlewares'\n\nimport './routes'\n"]}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.initMiddlewares = void 0;
4
+ function initMiddlewares(app) {
5
+ /* can add middlewares into app */
6
+ }
7
+ exports.initMiddlewares = initMiddlewares;
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/middlewares/index.ts"],"names":[],"mappings":";;;AAAA,SAAgB,eAAe,CAAC,GAAG;IACjC,kCAAkC;AACpC,CAAC;AAFD,0CAEC","sourcesContent":["export function initMiddlewares(app) {\n /* can add middlewares into app */\n}\n"]}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.migrations = void 0;
4
+ const glob = require('glob');
5
+ const path = require('path');
6
+ exports.migrations = [];
7
+ glob.sync(path.resolve(__dirname, '.', '**', '*.js')).forEach(function (file) {
8
+ if (file.indexOf('index.js') !== -1)
9
+ return;
10
+ exports.migrations = exports.migrations.concat(Object.values(require(path.resolve(file))) || []);
11
+ });
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/migrations/index.ts"],"names":[],"mappings":";;;AAAA,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAEjB,QAAA,UAAU,GAAG,EAAE,CAAA;AAE1B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,UAAS,IAAI;IACzE,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAAE,OAAM;IAC3C,kBAAU,GAAG,kBAAU,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;AAClF,CAAC,CAAC,CAAA","sourcesContent":["const glob = require('glob')\nconst path = require('path')\n\nexport var migrations = []\n\nglob.sync(path.resolve(__dirname, '.', '**', '*.js')).forEach(function(file) {\n if (file.indexOf('index.js') !== -1) return\n migrations = migrations.concat(Object.values(require(path.resolve(file))) || [])\n})\n"]}
@@ -0,0 +1,25 @@
1
+ const debug = require('debug')('things-factory:process:routes');
2
+ process.on('bootstrap-module-global-public-route', (app, globalPublicRouter) => {
3
+ /*
4
+ * can add global public routes to application (auth not required, tenancy not required)
5
+ *
6
+ * ex) routes.get('/path', async(context, next) => {})
7
+ * ex) routes.post('/path', async(context, next) => {})
8
+ */
9
+ });
10
+ process.on('bootstrap-module-global-private-route', (app, globalPrivateRouter) => {
11
+ /*
12
+ * can add global private routes to application (auth required, tenancy not required)
13
+ */
14
+ });
15
+ process.on('bootstrap-module-domain-public-route', (app, domainPublicRouter) => {
16
+ /*
17
+ * can add domain public routes to application (auth not required, tenancy required)
18
+ */
19
+ });
20
+ process.on('bootstrap-module-domain-private-route', (app, domainPrivateRouter) => {
21
+ /*
22
+ * can add domain private routes to application (auth required, tenancy required)
23
+ */
24
+ });
25
+ //# sourceMappingURL=routes.js.map