@things-factory/worklist 10.1.246 → 10.1.248

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 (696) hide show
  1. package/package.json +12 -12
  2. package/dist-client/activity-cells.d.ts +0 -21
  3. package/dist-client/activity-cells.js +0 -117
  4. package/dist-client/activity-cells.js.map +0 -1
  5. package/dist-client/activity-state-counts.d.ts +0 -6
  6. package/dist-client/activity-state-counts.js +0 -23
  7. package/dist-client/activity-state-counts.js.map +0 -1
  8. package/dist-client/activity-summary-generator.d.ts +0 -2
  9. package/dist-client/activity-summary-generator.js +0 -155
  10. package/dist-client/activity-summary-generator.js.map +0 -1
  11. package/dist-client/approval-progress.d.ts +0 -18
  12. package/dist-client/approval-progress.js +0 -31
  13. package/dist-client/approval-progress.js.map +0 -1
  14. package/dist-client/bootstrap.d.ts +0 -5
  15. package/dist-client/bootstrap.js +0 -63
  16. package/dist-client/bootstrap.js.map +0 -1
  17. package/dist-client/chip-counts.d.ts +0 -7
  18. package/dist-client/chip-counts.js +0 -11
  19. package/dist-client/chip-counts.js.map +0 -1
  20. package/dist-client/chip-filters.d.ts +0 -60
  21. package/dist-client/chip-filters.js +0 -102
  22. package/dist-client/chip-filters.js.map +0 -1
  23. package/dist-client/components/activity-/bowner-view.d.ts +0 -1
  24. package/dist-client/components/activity-/bowner-view.js +0 -104
  25. package/dist-client/components/activity-/bowner-view.js.map +0 -1
  26. package/dist-client/components/activity-approval-ribon.d.ts +0 -31
  27. package/dist-client/components/activity-approval-ribon.js +0 -103
  28. package/dist-client/components/activity-approval-ribon.js.map +0 -1
  29. package/dist-client/components/activity-fields.d.ts +0 -77
  30. package/dist-client/components/activity-fields.js +0 -424
  31. package/dist-client/components/activity-fields.js.map +0 -1
  32. package/dist-client/components/activity-instance-preview.d.ts +0 -2
  33. package/dist-client/components/activity-instance-preview.js +0 -177
  34. package/dist-client/components/activity-instance-preview.js.map +0 -1
  35. package/dist-client/components/activity-instance-ribon.d.ts +0 -32
  36. package/dist-client/components/activity-instance-ribon.js +0 -91
  37. package/dist-client/components/activity-instance-ribon.js.map +0 -1
  38. package/dist-client/components/activity-intro-view.d.ts +0 -1
  39. package/dist-client/components/activity-intro-view.js +0 -104
  40. package/dist-client/components/activity-intro-view.js.map +0 -1
  41. package/dist-client/components/activity-reporter-view.d.ts +0 -1
  42. package/dist-client/components/activity-reporter-view.js +0 -103
  43. package/dist-client/components/activity-reporter-view.js.map +0 -1
  44. package/dist-client/components/activity-starter-form.d.ts +0 -19
  45. package/dist-client/components/activity-starter-form.js +0 -264
  46. package/dist-client/components/activity-starter-form.js.map +0 -1
  47. package/dist-client/components/activity-thread-ribon.d.ts +0 -38
  48. package/dist-client/components/activity-thread-ribon.js +0 -95
  49. package/dist-client/components/activity-thread-ribon.js.map +0 -1
  50. package/dist-client/components/activity-thread-timeline.d.ts +0 -28
  51. package/dist-client/components/activity-thread-timeline.js +0 -339
  52. package/dist-client/components/activity-thread-timeline.js.map +0 -1
  53. package/dist-client/components/can-pick.d.ts +0 -15
  54. package/dist-client/components/can-pick.js +0 -16
  55. package/dist-client/components/can-pick.js.map +0 -1
  56. package/dist-client/components/decision-content.d.ts +0 -35
  57. package/dist-client/components/decision-content.js +0 -331
  58. package/dist-client/components/decision-content.js.map +0 -1
  59. package/dist-client/components/decision-slots.d.ts +0 -153
  60. package/dist-client/components/decision-slots.js +0 -152
  61. package/dist-client/components/decision-slots.js.map +0 -1
  62. package/dist-client/components/mutation-outcome.d.ts +0 -57
  63. package/dist-client/components/mutation-outcome.js +0 -78
  64. package/dist-client/components/mutation-outcome.js.map +0 -1
  65. package/dist-client/components/say-outcome.d.ts +0 -25
  66. package/dist-client/components/say-outcome.js +0 -51
  67. package/dist-client/components/say-outcome.js.map +0 -1
  68. package/dist-client/components/state-ribon.d.ts +0 -48
  69. package/dist-client/components/state-ribon.js +0 -225
  70. package/dist-client/components/state-ribon.js.map +0 -1
  71. package/dist-client/components/timeline-entries.d.ts +0 -38
  72. package/dist-client/components/timeline-entries.js +0 -62
  73. package/dist-client/components/timeline-entries.js.map +0 -1
  74. package/dist-client/components/work-box-groups.d.ts +0 -25
  75. package/dist-client/components/work-box-groups.js +0 -98
  76. package/dist-client/components/work-box-groups.js.map +0 -1
  77. package/dist-client/due.d.ts +0 -16
  78. package/dist-client/due.js +0 -78
  79. package/dist-client/due.js.map +0 -1
  80. package/dist-client/entity360/person-open-work-section.d.ts +0 -23
  81. package/dist-client/entity360/person-open-work-section.js +0 -79
  82. package/dist-client/entity360/person-open-work-section.js.map +0 -1
  83. package/dist-client/grist-editor/grist-editor-activity-search-key.d.ts +0 -12
  84. package/dist-client/grist-editor/grist-editor-activity-search-key.js +0 -70
  85. package/dist-client/grist-editor/grist-editor-activity-search-key.js.map +0 -1
  86. package/dist-client/grist-editor/grist-renderer-activity-search-key.d.ts +0 -3
  87. package/dist-client/grist-editor/grist-renderer-activity-search-key.js +0 -25
  88. package/dist-client/grist-editor/grist-renderer-activity-search-key.js.map +0 -1
  89. package/dist-client/grist-editor/popup-activity-search-keys-input.d.ts +0 -17
  90. package/dist-client/grist-editor/popup-activity-search-keys-input.js +0 -175
  91. package/dist-client/grist-editor/popup-activity-search-keys-input.js.map +0 -1
  92. package/dist-client/index.d.ts +0 -6
  93. package/dist-client/index.js +0 -7
  94. package/dist-client/index.js.map +0 -1
  95. package/dist-client/my-work-menus.d.ts +0 -90
  96. package/dist-client/my-work-menus.js +0 -20
  97. package/dist-client/my-work-menus.js.map +0 -1
  98. package/dist-client/pages/activity/activity-list-page.d.ts +0 -53
  99. package/dist-client/pages/activity/activity-list-page.js +0 -600
  100. package/dist-client/pages/activity/activity-list-page.js.map +0 -1
  101. package/dist-client/pages/activity/activity-model-item-list.d.ts +0 -24
  102. package/dist-client/pages/activity/activity-model-item-list.js +0 -292
  103. package/dist-client/pages/activity/activity-model-item-list.js.map +0 -1
  104. package/dist-client/pages/activity/activity-page.d.ts +0 -56
  105. package/dist-client/pages/activity/activity-page.js +0 -396
  106. package/dist-client/pages/activity/activity-page.js.map +0 -1
  107. package/dist-client/pages/activity/activity-partial-view.d.ts +0 -13
  108. package/dist-client/pages/activity/activity-partial-view.js +0 -56
  109. package/dist-client/pages/activity/activity-partial-view.js.map +0 -1
  110. package/dist-client/pages/activity/assignee-roles-cell.d.ts +0 -32
  111. package/dist-client/pages/activity/assignee-roles-cell.js +0 -26
  112. package/dist-client/pages/activity/assignee-roles-cell.js.map +0 -1
  113. package/dist-client/pages/activity/starter-list-page.d.ts +0 -31
  114. package/dist-client/pages/activity/starter-list-page.js +0 -172
  115. package/dist-client/pages/activity/starter-list-page.js.map +0 -1
  116. package/dist-client/pages/activity-approval/activity-approval-importer.d.ts +0 -23
  117. package/dist-client/pages/activity-approval/activity-approval-importer.js +0 -94
  118. package/dist-client/pages/activity-approval/activity-approval-importer.js.map +0 -1
  119. package/dist-client/pages/activity-approval/activity-approval-list-page.d.ts +0 -55
  120. package/dist-client/pages/activity-approval/activity-approval-list-page.js +0 -253
  121. package/dist-client/pages/activity-approval/activity-approval-list-page.js.map +0 -1
  122. package/dist-client/pages/activity-approval/activity-approval-page.d.ts +0 -158
  123. package/dist-client/pages/activity-approval/activity-approval-page.js +0 -875
  124. package/dist-client/pages/activity-approval/activity-approval-page.js.map +0 -1
  125. package/dist-client/pages/activity-approval/approval-gate.d.ts +0 -29
  126. package/dist-client/pages/activity-approval/approval-gate.js +0 -21
  127. package/dist-client/pages/activity-approval/approval-gate.js.map +0 -1
  128. package/dist-client/pages/activity-catalog/activity-catalog-page.d.ts +0 -31
  129. package/dist-client/pages/activity-catalog/activity-catalog-page.js +0 -420
  130. package/dist-client/pages/activity-catalog/activity-catalog-page.js.map +0 -1
  131. package/dist-client/pages/activity-catalog/activity-detail-actions.d.ts +0 -34
  132. package/dist-client/pages/activity-catalog/activity-detail-actions.js +0 -18
  133. package/dist-client/pages/activity-catalog/activity-detail-actions.js.map +0 -1
  134. package/dist-client/pages/activity-catalog/activity-detail-page.d.ts +0 -90
  135. package/dist-client/pages/activity-catalog/activity-detail-page.js +0 -525
  136. package/dist-client/pages/activity-catalog/activity-detail-page.js.map +0 -1
  137. package/dist-client/pages/activity-catalog/activity-guide.d.ts +0 -16
  138. package/dist-client/pages/activity-catalog/activity-guide.js +0 -5
  139. package/dist-client/pages/activity-catalog/activity-guide.js.map +0 -1
  140. package/dist-client/pages/activity-catalog/activity-panels.d.ts +0 -80
  141. package/dist-client/pages/activity-catalog/activity-panels.js +0 -53
  142. package/dist-client/pages/activity-catalog/activity-panels.js.map +0 -1
  143. package/dist-client/pages/activity-catalog/activity-stage.d.ts +0 -31
  144. package/dist-client/pages/activity-catalog/activity-stage.js +0 -44
  145. package/dist-client/pages/activity-catalog/activity-stage.js.map +0 -1
  146. package/dist-client/pages/activity-instance/activity-instance-list-page.d.ts +0 -42
  147. package/dist-client/pages/activity-instance/activity-instance-list-page.js +0 -306
  148. package/dist-client/pages/activity-instance/activity-instance-list-page.js.map +0 -1
  149. package/dist-client/pages/activity-instance/activity-instance-search-page.d.ts +0 -69
  150. package/dist-client/pages/activity-instance/activity-instance-search-page.js +0 -309
  151. package/dist-client/pages/activity-instance/activity-instance-search-page.js.map +0 -1
  152. package/dist-client/pages/activity-instance/activity-instance-start-page.d.ts +0 -54
  153. package/dist-client/pages/activity-instance/activity-instance-start-page.js +0 -557
  154. package/dist-client/pages/activity-instance/activity-instance-start-page.js.map +0 -1
  155. package/dist-client/pages/activity-instance/activity-instance-view.d.ts +0 -36
  156. package/dist-client/pages/activity-instance/activity-instance-view.js +0 -494
  157. package/dist-client/pages/activity-instance/activity-instance-view.js.map +0 -1
  158. package/dist-client/pages/activity-instance/discard-offer.d.ts +0 -11
  159. package/dist-client/pages/activity-instance/discard-offer.js +0 -11
  160. package/dist-client/pages/activity-instance/discard-offer.js.map +0 -1
  161. package/dist-client/pages/activity-stats/activity-stats-importer.d.ts +0 -23
  162. package/dist-client/pages/activity-stats/activity-stats-importer.js +0 -94
  163. package/dist-client/pages/activity-stats/activity-stats-importer.js.map +0 -1
  164. package/dist-client/pages/activity-stats/activity-stats-list-page.d.ts +0 -55
  165. package/dist-client/pages/activity-stats/activity-stats-list-page.js +0 -253
  166. package/dist-client/pages/activity-stats/activity-stats-list-page.js.map +0 -1
  167. package/dist-client/pages/activity-store/activity-store-page.d.ts +0 -41
  168. package/dist-client/pages/activity-store/activity-store-page.js +0 -210
  169. package/dist-client/pages/activity-store/activity-store-page.js.map +0 -1
  170. package/dist-client/pages/activity-supervisor/reporter-list-page.d.ts +0 -30
  171. package/dist-client/pages/activity-supervisor/reporter-list-page.js +0 -190
  172. package/dist-client/pages/activity-supervisor/reporter-list-page.js.map +0 -1
  173. package/dist-client/pages/activity-template/activity-template-importer.d.ts +0 -11
  174. package/dist-client/pages/activity-template/activity-template-importer.js +0 -98
  175. package/dist-client/pages/activity-template/activity-template-importer.js.map +0 -1
  176. package/dist-client/pages/activity-template/activity-template-list-page.d.ts +0 -53
  177. package/dist-client/pages/activity-template/activity-template-list-page.js +0 -377
  178. package/dist-client/pages/activity-template/activity-template-list-page.js.map +0 -1
  179. package/dist-client/pages/activity-template/activity-template-model-item-list.d.ts +0 -1
  180. package/dist-client/pages/activity-template/activity-template-model-item-list.js +0 -41
  181. package/dist-client/pages/activity-template/activity-template-model-item-list.js.map +0 -1
  182. package/dist-client/pages/activity-thread/activity-thread-importer.d.ts +0 -11
  183. package/dist-client/pages/activity-thread/activity-thread-importer.js +0 -96
  184. package/dist-client/pages/activity-thread/activity-thread-importer.js.map +0 -1
  185. package/dist-client/pages/activity-thread/activity-thread-list-page.d.ts +0 -52
  186. package/dist-client/pages/activity-thread/activity-thread-list-page.js +0 -248
  187. package/dist-client/pages/activity-thread/activity-thread-list-page.js.map +0 -1
  188. package/dist-client/pages/activity-thread/activity-thread-page.d.ts +0 -91
  189. package/dist-client/pages/activity-thread/activity-thread-page.js +0 -593
  190. package/dist-client/pages/activity-thread/activity-thread-page.js.map +0 -1
  191. package/dist-client/pages/activity-thread/activity-thread-view-page.d.ts +0 -56
  192. package/dist-client/pages/activity-thread/activity-thread-view-page.js +0 -385
  193. package/dist-client/pages/activity-thread/activity-thread-view-page.js.map +0 -1
  194. package/dist-client/pages/activity-thread/activity-thread-view.d.ts +0 -31
  195. package/dist-client/pages/activity-thread/activity-thread-view.js +0 -134
  196. package/dist-client/pages/activity-thread/activity-thread-view.js.map +0 -1
  197. package/dist-client/pages/activity-thread/thread-sections.d.ts +0 -34
  198. package/dist-client/pages/activity-thread/thread-sections.js +0 -36
  199. package/dist-client/pages/activity-thread/thread-sections.js.map +0 -1
  200. package/dist-client/pages/installable-activity/installable-activity-list-page.d.ts +0 -64
  201. package/dist-client/pages/installable-activity/installable-activity-list-page.js +0 -424
  202. package/dist-client/pages/installable-activity/installable-activity-list-page.js.map +0 -1
  203. package/dist-client/pages/installable-activity/installable-activity-model-item-list.d.ts +0 -1
  204. package/dist-client/pages/installable-activity/installable-activity-model-item-list.js +0 -20
  205. package/dist-client/pages/installable-activity/installable-activity-model-item-list.js.map +0 -1
  206. package/dist-client/pages/todo/approval-done-list-page.d.ts +0 -42
  207. package/dist-client/pages/todo/approval-done-list-page.js +0 -365
  208. package/dist-client/pages/todo/approval-done-list-page.js.map +0 -1
  209. package/dist-client/pages/todo/approval-pending-list-page.d.ts +0 -79
  210. package/dist-client/pages/todo/approval-pending-list-page.js +0 -683
  211. package/dist-client/pages/todo/approval-pending-list-page.js.map +0 -1
  212. package/dist-client/pages/todo/done-list-calendar-page.d.ts +0 -47
  213. package/dist-client/pages/todo/done-list-calendar-page.js +0 -379
  214. package/dist-client/pages/todo/done-list-calendar-page.js.map +0 -1
  215. package/dist-client/pages/todo/draft-list-page.d.ts +0 -64
  216. package/dist-client/pages/todo/draft-list-page.js +0 -404
  217. package/dist-client/pages/todo/draft-list-page.js.map +0 -1
  218. package/dist-client/pages/todo/list-thumbnail.d.ts +0 -25
  219. package/dist-client/pages/todo/list-thumbnail.js +0 -25
  220. package/dist-client/pages/todo/list-thumbnail.js.map +0 -1
  221. package/dist-client/pages/todo/pickable-list-page.d.ts +0 -37
  222. package/dist-client/pages/todo/pickable-list-page.js +0 -271
  223. package/dist-client/pages/todo/pickable-list-page.js.map +0 -1
  224. package/dist-client/pages/todo/todo-list-page.d.ts +0 -66
  225. package/dist-client/pages/todo/todo-list-page.js +0 -503
  226. package/dist-client/pages/todo/todo-list-page.js.map +0 -1
  227. package/dist-client/pages/todo/work-box.d.ts +0 -52
  228. package/dist-client/pages/todo/work-box.js +0 -54
  229. package/dist-client/pages/todo/work-box.js.map +0 -1
  230. package/dist-client/pages/work-door/door-links.d.ts +0 -22
  231. package/dist-client/pages/work-door/door-links.js +0 -20
  232. package/dist-client/pages/work-door/door-links.js.map +0 -1
  233. package/dist-client/pages/work-door/door-sentence.d.ts +0 -75
  234. package/dist-client/pages/work-door/door-sentence.js +0 -107
  235. package/dist-client/pages/work-door/door-sentence.js.map +0 -1
  236. package/dist-client/pages/work-door/door-words.d.ts +0 -48
  237. package/dist-client/pages/work-door/door-words.js +0 -84
  238. package/dist-client/pages/work-door/door-words.js.map +0 -1
  239. package/dist-client/route.d.ts +0 -1
  240. package/dist-client/route.js +0 -77
  241. package/dist-client/route.js.map +0 -1
  242. package/dist-client/templates/activity-approval-context-template.d.ts +0 -3
  243. package/dist-client/templates/activity-approval-context-template.js +0 -105
  244. package/dist-client/templates/activity-approval-context-template.js.map +0 -1
  245. package/dist-client/templates/activity-instance-context-template.d.ts +0 -3
  246. package/dist-client/templates/activity-instance-context-template.js +0 -118
  247. package/dist-client/templates/activity-instance-context-template.js.map +0 -1
  248. package/dist-client/templates/activity-thread-context-template.d.ts +0 -3
  249. package/dist-client/templates/activity-thread-context-template.js +0 -74
  250. package/dist-client/templates/activity-thread-context-template.js.map +0 -1
  251. package/dist-client/templates/context-panel.d.ts +0 -26
  252. package/dist-client/templates/context-panel.js +0 -182
  253. package/dist-client/templates/context-panel.js.map +0 -1
  254. package/dist-client/tsconfig.tsbuildinfo +0 -1
  255. package/dist-client/types/activity-approval.d.ts +0 -36
  256. package/dist-client/types/activity-approval.js +0 -17
  257. package/dist-client/types/activity-approval.js.map +0 -1
  258. package/dist-client/types/activity-instance-type.d.ts +0 -77
  259. package/dist-client/types/activity-instance-type.js +0 -11
  260. package/dist-client/types/activity-instance-type.js.map +0 -1
  261. package/dist-client/types/activity-instance.d.ts +0 -72
  262. package/dist-client/types/activity-instance.js +0 -36
  263. package/dist-client/types/activity-instance.js.map +0 -1
  264. package/dist-client/types/activity-model-type.d.ts +0 -31
  265. package/dist-client/types/activity-model-type.js +0 -18
  266. package/dist-client/types/activity-model-type.js.map +0 -1
  267. package/dist-client/types/activity-search-key-item-type.d.ts +0 -6
  268. package/dist-client/types/activity-search-key-item-type.js +0 -3
  269. package/dist-client/types/activity-search-key-item-type.js.map +0 -1
  270. package/dist-client/types/activity-thread-history.d.ts +0 -28
  271. package/dist-client/types/activity-thread-history.js +0 -7
  272. package/dist-client/types/activity-thread-history.js.map +0 -1
  273. package/dist-client/types/activity-thread-type.d.ts +0 -15
  274. package/dist-client/types/activity-thread-type.js +0 -7
  275. package/dist-client/types/activity-thread-type.js.map +0 -1
  276. package/dist-client/types/activity-thread.d.ts +0 -39
  277. package/dist-client/types/activity-thread.js +0 -18
  278. package/dist-client/types/activity-thread.js.map +0 -1
  279. package/dist-client/types/activity.d.ts +0 -68
  280. package/dist-client/types/activity.js +0 -40
  281. package/dist-client/types/activity.js.map +0 -1
  282. package/dist-client/types/types.d.ts +0 -23
  283. package/dist-client/types/types.js +0 -42
  284. package/dist-client/types/types.js.map +0 -1
  285. package/dist-client/when.d.ts +0 -4
  286. package/dist-client/when.js +0 -72
  287. package/dist-client/when.js.map +0 -1
  288. package/dist-client/work-calendar-sources.d.ts +0 -96
  289. package/dist-client/work-calendar-sources.js +0 -88
  290. package/dist-client/work-calendar-sources.js.map +0 -1
  291. package/dist-server/controllers/activity-approval/_abort.d.ts +0 -5
  292. package/dist-server/controllers/activity-approval/_abort.js +0 -29
  293. package/dist-server/controllers/activity-approval/_abort.js.map +0 -1
  294. package/dist-server/controllers/activity-approval/abort.d.ts +0 -5
  295. package/dist-server/controllers/activity-approval/abort.js +0 -35
  296. package/dist-server/controllers/activity-approval/abort.js.map +0 -1
  297. package/dist-server/controllers/activity-approval/approval-line.d.ts +0 -138
  298. package/dist-server/controllers/activity-approval/approval-line.js +0 -186
  299. package/dist-server/controllers/activity-approval/approval-line.js.map +0 -1
  300. package/dist-server/controllers/activity-approval/approve.d.ts +0 -5
  301. package/dist-server/controllers/activity-approval/approve.js +0 -142
  302. package/dist-server/controllers/activity-approval/approve.js.map +0 -1
  303. package/dist-server/controllers/activity-approval/check-authority.d.ts +0 -8
  304. package/dist-server/controllers/activity-approval/check-authority.js +0 -29
  305. package/dist-server/controllers/activity-approval/check-authority.js.map +0 -1
  306. package/dist-server/controllers/activity-approval/claim.d.ts +0 -42
  307. package/dist-server/controllers/activity-approval/claim.js +0 -77
  308. package/dist-server/controllers/activity-approval/claim.js.map +0 -1
  309. package/dist-server/controllers/activity-approval/create-approval.d.ts +0 -41
  310. package/dist-server/controllers/activity-approval/create-approval.js +0 -85
  311. package/dist-server/controllers/activity-approval/create-approval.js.map +0 -1
  312. package/dist-server/controllers/activity-approval/delegate.d.ts +0 -23
  313. package/dist-server/controllers/activity-approval/delegate.js +0 -113
  314. package/dist-server/controllers/activity-approval/delegate.js.map +0 -1
  315. package/dist-server/controllers/activity-approval/delegation.d.ts +0 -21
  316. package/dist-server/controllers/activity-approval/delegation.js +0 -17
  317. package/dist-server/controllers/activity-approval/delegation.js.map +0 -1
  318. package/dist-server/controllers/activity-approval/opinion.d.ts +0 -10
  319. package/dist-server/controllers/activity-approval/opinion.js +0 -43
  320. package/dist-server/controllers/activity-approval/opinion.js.map +0 -1
  321. package/dist-server/controllers/activity-approval/reject.d.ts +0 -5
  322. package/dist-server/controllers/activity-approval/reject.js +0 -93
  323. package/dist-server/controllers/activity-approval/reject.js.map +0 -1
  324. package/dist-server/controllers/activity-approval/resolve-judgeable-seats.d.ts +0 -21
  325. package/dist-server/controllers/activity-approval/resolve-judgeable-seats.js +0 -60
  326. package/dist-server/controllers/activity-approval/resolve-judgeable-seats.js.map +0 -1
  327. package/dist-server/controllers/activity-approval/save.d.ts +0 -5
  328. package/dist-server/controllers/activity-approval/save.js +0 -56
  329. package/dist-server/controllers/activity-approval/save.js.map +0 -1
  330. package/dist-server/controllers/activity-approval/seat-standing.d.ts +0 -66
  331. package/dist-server/controllers/activity-approval/seat-standing.js +0 -57
  332. package/dist-server/controllers/activity-approval/seat-standing.js.map +0 -1
  333. package/dist-server/controllers/activity-installation/activity-installation-controller.d.ts +0 -79
  334. package/dist-server/controllers/activity-installation/activity-installation-controller.js +0 -99
  335. package/dist-server/controllers/activity-installation/activity-installation-controller.js.map +0 -1
  336. package/dist-server/controllers/activity-installation/call-webhook.d.ts +0 -3
  337. package/dist-server/controllers/activity-installation/call-webhook.js +0 -42
  338. package/dist-server/controllers/activity-installation/call-webhook.js.map +0 -1
  339. package/dist-server/controllers/activity-installation/installable-to-activity.d.ts +0 -77
  340. package/dist-server/controllers/activity-installation/installable-to-activity.js +0 -68
  341. package/dist-server/controllers/activity-installation/installable-to-activity.js.map +0 -1
  342. package/dist-server/controllers/activity-installation/registry-conflict.d.ts +0 -47
  343. package/dist-server/controllers/activity-installation/registry-conflict.js +0 -47
  344. package/dist-server/controllers/activity-installation/registry-conflict.js.map +0 -1
  345. package/dist-server/controllers/activity-instance/abort.d.ts +0 -5
  346. package/dist-server/controllers/activity-instance/abort.js +0 -62
  347. package/dist-server/controllers/activity-instance/abort.js.map +0 -1
  348. package/dist-server/controllers/activity-instance/approval-expectation.d.ts +0 -34
  349. package/dist-server/controllers/activity-instance/approval-expectation.js +0 -18
  350. package/dist-server/controllers/activity-instance/approval-expectation.js.map +0 -1
  351. package/dist-server/controllers/activity-instance/approval-line-input.d.ts +0 -29
  352. package/dist-server/controllers/activity-instance/approval-line-input.js +0 -44
  353. package/dist-server/controllers/activity-instance/approval-line-input.js.map +0 -1
  354. package/dist-server/controllers/activity-instance/assign.d.ts +0 -8
  355. package/dist-server/controllers/activity-instance/assign.js +0 -152
  356. package/dist-server/controllers/activity-instance/assign.js.map +0 -1
  357. package/dist-server/controllers/activity-instance/assignee-input.d.ts +0 -25
  358. package/dist-server/controllers/activity-instance/assignee-input.js +0 -28
  359. package/dist-server/controllers/activity-instance/assignee-input.js.map +0 -1
  360. package/dist-server/controllers/activity-instance/claim-draft.d.ts +0 -17
  361. package/dist-server/controllers/activity-instance/claim-draft.js +0 -30
  362. package/dist-server/controllers/activity-instance/claim-draft.js.map +0 -1
  363. package/dist-server/controllers/activity-instance/discard-draft.d.ts +0 -22
  364. package/dist-server/controllers/activity-instance/discard-draft.js +0 -54
  365. package/dist-server/controllers/activity-instance/discard-draft.js.map +0 -1
  366. package/dist-server/controllers/activity-instance/draft.d.ts +0 -3
  367. package/dist-server/controllers/activity-instance/draft.js +0 -93
  368. package/dist-server/controllers/activity-instance/draft.js.map +0 -1
  369. package/dist-server/controllers/activity-instance/end.d.ts +0 -6
  370. package/dist-server/controllers/activity-instance/end.js +0 -65
  371. package/dist-server/controllers/activity-instance/end.js.map +0 -1
  372. package/dist-server/controllers/activity-instance/entitlement.d.ts +0 -25
  373. package/dist-server/controllers/activity-instance/entitlement.js +0 -110
  374. package/dist-server/controllers/activity-instance/entitlement.js.map +0 -1
  375. package/dist-server/controllers/activity-instance/index.d.ts +0 -6
  376. package/dist-server/controllers/activity-instance/index.js +0 -10
  377. package/dist-server/controllers/activity-instance/index.js.map +0 -1
  378. package/dist-server/controllers/activity-instance/issue.d.ts +0 -3
  379. package/dist-server/controllers/activity-instance/issue.js +0 -272
  380. package/dist-server/controllers/activity-instance/issue.js.map +0 -1
  381. package/dist-server/controllers/activity-instance/pick.d.ts +0 -2
  382. package/dist-server/controllers/activity-instance/pick.js +0 -112
  383. package/dist-server/controllers/activity-instance/pick.js.map +0 -1
  384. package/dist-server/controllers/activity-read/assert-may-read.d.ts +0 -20
  385. package/dist-server/controllers/activity-read/assert-may-read.js +0 -108
  386. package/dist-server/controllers/activity-read/assert-may-read.js.map +0 -1
  387. package/dist-server/controllers/activity-read/participates.d.ts +0 -41
  388. package/dist-server/controllers/activity-read/participates.js +0 -42
  389. package/dist-server/controllers/activity-read/participates.js.map +0 -1
  390. package/dist-server/controllers/activity-thread/_abort.d.ts +0 -5
  391. package/dist-server/controllers/activity-thread/_abort.js +0 -36
  392. package/dist-server/controllers/activity-thread/_abort.js.map +0 -1
  393. package/dist-server/controllers/activity-thread/abort.d.ts +0 -5
  394. package/dist-server/controllers/activity-thread/abort.js +0 -45
  395. package/dist-server/controllers/activity-thread/abort.js.map +0 -1
  396. package/dist-server/controllers/activity-thread/check-authority.d.ts +0 -2
  397. package/dist-server/controllers/activity-thread/check-authority.js +0 -65
  398. package/dist-server/controllers/activity-thread/check-authority.js.map +0 -1
  399. package/dist-server/controllers/activity-thread/delegate.d.ts +0 -7
  400. package/dist-server/controllers/activity-thread/delegate.js +0 -66
  401. package/dist-server/controllers/activity-thread/delegate.js.map +0 -1
  402. package/dist-server/controllers/activity-thread/end.d.ts +0 -6
  403. package/dist-server/controllers/activity-thread/end.js +0 -44
  404. package/dist-server/controllers/activity-thread/end.js.map +0 -1
  405. package/dist-server/controllers/activity-thread/index.d.ts +0 -7
  406. package/dist-server/controllers/activity-thread/index.js +0 -11
  407. package/dist-server/controllers/activity-thread/index.js.map +0 -1
  408. package/dist-server/controllers/activity-thread/restart.d.ts +0 -2
  409. package/dist-server/controllers/activity-thread/restart.js +0 -63
  410. package/dist-server/controllers/activity-thread/restart.js.map +0 -1
  411. package/dist-server/controllers/activity-thread/save.d.ts +0 -3
  412. package/dist-server/controllers/activity-thread/save.js +0 -45
  413. package/dist-server/controllers/activity-thread/save.js.map +0 -1
  414. package/dist-server/controllers/activity-thread/start.d.ts +0 -2
  415. package/dist-server/controllers/activity-thread/start.js +0 -43
  416. package/dist-server/controllers/activity-thread/start.js.map +0 -1
  417. package/dist-server/controllers/activity-thread/submit.d.ts +0 -6
  418. package/dist-server/controllers/activity-thread/submit.js +0 -90
  419. package/dist-server/controllers/activity-thread/submit.js.map +0 -1
  420. package/dist-server/controllers/common.d.ts +0 -34
  421. package/dist-server/controllers/common.js +0 -346
  422. package/dist-server/controllers/common.js.map +0 -1
  423. package/dist-server/controllers/index.d.ts +0 -5
  424. package/dist-server/controllers/index.js +0 -18
  425. package/dist-server/controllers/index.js.map +0 -1
  426. package/dist-server/index.d.ts +0 -6
  427. package/dist-server/index.js +0 -18
  428. package/dist-server/index.js.map +0 -1
  429. package/dist-server/role-tasks.d.ts +0 -2
  430. package/dist-server/role-tasks.js +0 -16
  431. package/dist-server/role-tasks.js.map +0 -1
  432. package/dist-server/routes.d.ts +0 -1
  433. package/dist-server/routes.js +0 -57
  434. package/dist-server/routes.js.map +0 -1
  435. package/dist-server/service/activity/activity-decision-key-item-type.d.ts +0 -206
  436. package/dist-server/service/activity/activity-decision-key-item-type.js +0 -182
  437. package/dist-server/service/activity/activity-decision-key-item-type.js.map +0 -1
  438. package/dist-server/service/activity/activity-history.d.ts +0 -44
  439. package/dist-server/service/activity/activity-history.js +0 -220
  440. package/dist-server/service/activity/activity-history.js.map +0 -1
  441. package/dist-server/service/activity/activity-model-type.d.ts +0 -49
  442. package/dist-server/service/activity/activity-model-type.js +0 -138
  443. package/dist-server/service/activity/activity-model-type.js.map +0 -1
  444. package/dist-server/service/activity/activity-mutation.d.ts +0 -12
  445. package/dist-server/service/activity/activity-mutation.js +0 -416
  446. package/dist-server/service/activity/activity-mutation.js.map +0 -1
  447. package/dist-server/service/activity/activity-query.d.ts +0 -24
  448. package/dist-server/service/activity/activity-query.js +0 -310
  449. package/dist-server/service/activity/activity-query.js.map +0 -1
  450. package/dist-server/service/activity/activity-search-key-item-type.d.ts +0 -6
  451. package/dist-server/service/activity/activity-search-key-item-type.js +0 -28
  452. package/dist-server/service/activity/activity-search-key-item-type.js.map +0 -1
  453. package/dist-server/service/activity/activity-type.d.ts +0 -84
  454. package/dist-server/service/activity/activity-type.js +0 -269
  455. package/dist-server/service/activity/activity-type.js.map +0 -1
  456. package/dist-server/service/activity/activity.d.ts +0 -135
  457. package/dist-server/service/activity/activity.js +0 -328
  458. package/dist-server/service/activity/activity.js.map +0 -1
  459. package/dist-server/service/activity/approval-line-seats.d.ts +0 -12
  460. package/dist-server/service/activity/approval-line-seats.js +0 -68
  461. package/dist-server/service/activity/approval-line-seats.js.map +0 -1
  462. package/dist-server/service/activity/credential-field.d.ts +0 -35
  463. package/dist-server/service/activity/credential-field.js +0 -89
  464. package/dist-server/service/activity/credential-field.js.map +0 -1
  465. package/dist-server/service/activity/decision-key-declaration.d.ts +0 -106
  466. package/dist-server/service/activity/decision-key-declaration.js +0 -181
  467. package/dist-server/service/activity/decision-key-declaration.js.map +0 -1
  468. package/dist-server/service/activity/declaration-guard-subscriber.d.ts +0 -24
  469. package/dist-server/service/activity/declaration-guard-subscriber.js +0 -46
  470. package/dist-server/service/activity/declaration-guard-subscriber.js.map +0 -1
  471. package/dist-server/service/activity/event-subscriber.d.ts +0 -7
  472. package/dist-server/service/activity/event-subscriber.js +0 -21
  473. package/dist-server/service/activity/event-subscriber.js.map +0 -1
  474. package/dist-server/service/activity/freeze-decision-sentences-for.d.ts +0 -11
  475. package/dist-server/service/activity/freeze-decision-sentences-for.js +0 -18
  476. package/dist-server/service/activity/freeze-decision-sentences-for.js.map +0 -1
  477. package/dist-server/service/activity/index.d.ts +0 -9
  478. package/dist-server/service/activity/index.js +0 -13
  479. package/dist-server/service/activity/index.js.map +0 -1
  480. package/dist-server/service/activity/search-key-declaration.d.ts +0 -38
  481. package/dist-server/service/activity/search-key-declaration.js +0 -49
  482. package/dist-server/service/activity/search-key-declaration.js.map +0 -1
  483. package/dist-server/service/activity-approval/activity-approval-mutation.d.ts +0 -8
  484. package/dist-server/service/activity-approval/activity-approval-mutation.js +0 -81
  485. package/dist-server/service/activity-approval/activity-approval-mutation.js.map +0 -1
  486. package/dist-server/service/activity-approval/activity-approval-query.d.ts +0 -42
  487. package/dist-server/service/activity-approval/activity-approval-query.js +0 -391
  488. package/dist-server/service/activity-approval/activity-approval-query.js.map +0 -1
  489. package/dist-server/service/activity-approval/activity-approval-subscription.d.ts +0 -6
  490. package/dist-server/service/activity-approval/activity-approval-subscription.js +0 -39
  491. package/dist-server/service/activity-approval/activity-approval-subscription.js.map +0 -1
  492. package/dist-server/service/activity-approval/activity-approval-type.d.ts +0 -10
  493. package/dist-server/service/activity-approval/activity-approval-type.js +0 -39
  494. package/dist-server/service/activity-approval/activity-approval-type.js.map +0 -1
  495. package/dist-server/service/activity-approval/activity-approval.d.ts +0 -67
  496. package/dist-server/service/activity-approval/activity-approval.js +0 -183
  497. package/dist-server/service/activity-approval/activity-approval.js.map +0 -1
  498. package/dist-server/service/activity-approval/event-subscriber.d.ts +0 -7
  499. package/dist-server/service/activity-approval/event-subscriber.js +0 -46
  500. package/dist-server/service/activity-approval/event-subscriber.js.map +0 -1
  501. package/dist-server/service/activity-approval/index.d.ts +0 -8
  502. package/dist-server/service/activity-approval/index.js +0 -12
  503. package/dist-server/service/activity-approval/index.js.map +0 -1
  504. package/dist-server/service/activity-approval/my-pending-approvals.d.ts +0 -33
  505. package/dist-server/service/activity-approval/my-pending-approvals.js +0 -52
  506. package/dist-server/service/activity-approval/my-pending-approvals.js.map +0 -1
  507. package/dist-server/service/activity-instance/activity-instance-history.d.ts +0 -60
  508. package/dist-server/service/activity-instance/activity-instance-history.js +0 -294
  509. package/dist-server/service/activity-instance/activity-instance-history.js.map +0 -1
  510. package/dist-server/service/activity-instance/activity-instance-mutation.d.ts +0 -16
  511. package/dist-server/service/activity-instance/activity-instance-mutation.js +0 -185
  512. package/dist-server/service/activity-instance/activity-instance-mutation.js.map +0 -1
  513. package/dist-server/service/activity-instance/activity-instance-query.d.ts +0 -27
  514. package/dist-server/service/activity-instance/activity-instance-query.js +0 -386
  515. package/dist-server/service/activity-instance/activity-instance-query.js.map +0 -1
  516. package/dist-server/service/activity-instance/activity-instance-subscription.d.ts +0 -6
  517. package/dist-server/service/activity-instance/activity-instance-subscription.js +0 -39
  518. package/dist-server/service/activity-instance/activity-instance-subscription.js.map +0 -1
  519. package/dist-server/service/activity-instance/activity-instance-type.d.ts +0 -107
  520. package/dist-server/service/activity-instance/activity-instance-type.js +0 -301
  521. package/dist-server/service/activity-instance/activity-instance-type.js.map +0 -1
  522. package/dist-server/service/activity-instance/activity-instance.d.ts +0 -81
  523. package/dist-server/service/activity-instance/activity-instance.js +0 -324
  524. package/dist-server/service/activity-instance/activity-instance.js.map +0 -1
  525. package/dist-server/service/activity-instance/assignee-pool.d.ts +0 -59
  526. package/dist-server/service/activity-instance/assignee-pool.js +0 -99
  527. package/dist-server/service/activity-instance/assignee-pool.js.map +0 -1
  528. package/dist-server/service/activity-instance/draft-list-states.d.ts +0 -39
  529. package/dist-server/service/activity-instance/draft-list-states.js +0 -51
  530. package/dist-server/service/activity-instance/draft-list-states.js.map +0 -1
  531. package/dist-server/service/activity-instance/event-subscriber.d.ts +0 -21
  532. package/dist-server/service/activity-instance/event-subscriber.js +0 -59
  533. package/dist-server/service/activity-instance/event-subscriber.js.map +0 -1
  534. package/dist-server/service/activity-instance/index.d.ts +0 -9
  535. package/dist-server/service/activity-instance/index.js +0 -13
  536. package/dist-server/service/activity-instance/index.js.map +0 -1
  537. package/dist-server/service/activity-instance/request-box.d.ts +0 -2
  538. package/dist-server/service/activity-instance/request-box.js +0 -18
  539. package/dist-server/service/activity-instance/request-box.js.map +0 -1
  540. package/dist-server/service/activity-stats/activity-stats-query.d.ts +0 -9
  541. package/dist-server/service/activity-stats/activity-stats-query.js +0 -230
  542. package/dist-server/service/activity-stats/activity-stats-query.js.map +0 -1
  543. package/dist-server/service/activity-stats/activity-stats-type.d.ts +0 -27
  544. package/dist-server/service/activity-stats/activity-stats-type.js +0 -74
  545. package/dist-server/service/activity-stats/activity-stats-type.js.map +0 -1
  546. package/dist-server/service/activity-stats/event-placement.d.ts +0 -55
  547. package/dist-server/service/activity-stats/event-placement.js +0 -82
  548. package/dist-server/service/activity-stats/event-placement.js.map +0 -1
  549. package/dist-server/service/activity-stats/index.d.ts +0 -2
  550. package/dist-server/service/activity-stats/index.js +0 -6
  551. package/dist-server/service/activity-stats/index.js.map +0 -1
  552. package/dist-server/service/activity-summary/activity-summary-query.d.ts +0 -8
  553. package/dist-server/service/activity-summary/activity-summary-query.js +0 -137
  554. package/dist-server/service/activity-summary/activity-summary-query.js.map +0 -1
  555. package/dist-server/service/activity-summary/activity-summary.d.ts +0 -6
  556. package/dist-server/service/activity-summary/activity-summary.js +0 -28
  557. package/dist-server/service/activity-summary/activity-summary.js.map +0 -1
  558. package/dist-server/service/activity-summary/index.d.ts +0 -5
  559. package/dist-server/service/activity-summary/index.js +0 -9
  560. package/dist-server/service/activity-summary/index.js.map +0 -1
  561. package/dist-server/service/activity-summary/open-work.d.ts +0 -4
  562. package/dist-server/service/activity-summary/open-work.js +0 -51
  563. package/dist-server/service/activity-summary/open-work.js.map +0 -1
  564. package/dist-server/service/activity-summary/person-open-work.d.ts +0 -17
  565. package/dist-server/service/activity-summary/person-open-work.js +0 -68
  566. package/dist-server/service/activity-summary/person-open-work.js.map +0 -1
  567. package/dist-server/service/activity-template/activity-template-history.d.ts +0 -32
  568. package/dist-server/service/activity-template/activity-template-history.js +0 -165
  569. package/dist-server/service/activity-template/activity-template-history.js.map +0 -1
  570. package/dist-server/service/activity-template/activity-template-mutation.d.ts +0 -10
  571. package/dist-server/service/activity-template/activity-template-mutation.js +0 -194
  572. package/dist-server/service/activity-template/activity-template-mutation.js.map +0 -1
  573. package/dist-server/service/activity-template/activity-template-query.d.ts +0 -14
  574. package/dist-server/service/activity-template/activity-template-query.js +0 -112
  575. package/dist-server/service/activity-template/activity-template-query.js.map +0 -1
  576. package/dist-server/service/activity-template/activity-template-type.d.ts +0 -44
  577. package/dist-server/service/activity-template/activity-template-type.js +0 -164
  578. package/dist-server/service/activity-template/activity-template-type.js.map +0 -1
  579. package/dist-server/service/activity-template/activity-template.d.ts +0 -36
  580. package/dist-server/service/activity-template/activity-template.js +0 -154
  581. package/dist-server/service/activity-template/activity-template.js.map +0 -1
  582. package/dist-server/service/activity-template/event-subscriber.d.ts +0 -7
  583. package/dist-server/service/activity-template/event-subscriber.js +0 -21
  584. package/dist-server/service/activity-template/event-subscriber.js.map +0 -1
  585. package/dist-server/service/activity-template/index.d.ts +0 -8
  586. package/dist-server/service/activity-template/index.js +0 -12
  587. package/dist-server/service/activity-template/index.js.map +0 -1
  588. package/dist-server/service/activity-thread/activity-thread-history-query.d.ts +0 -10
  589. package/dist-server/service/activity-thread/activity-thread-history-query.js +0 -69
  590. package/dist-server/service/activity-thread/activity-thread-history-query.js.map +0 -1
  591. package/dist-server/service/activity-thread/activity-thread-history.d.ts +0 -39
  592. package/dist-server/service/activity-thread/activity-thread-history.js +0 -211
  593. package/dist-server/service/activity-thread/activity-thread-history.js.map +0 -1
  594. package/dist-server/service/activity-thread/activity-thread-mutation.d.ts +0 -20
  595. package/dist-server/service/activity-thread/activity-thread-mutation.js +0 -115
  596. package/dist-server/service/activity-thread/activity-thread-mutation.js.map +0 -1
  597. package/dist-server/service/activity-thread/activity-thread-query.d.ts +0 -24
  598. package/dist-server/service/activity-thread/activity-thread-query.js +0 -276
  599. package/dist-server/service/activity-thread/activity-thread-query.js.map +0 -1
  600. package/dist-server/service/activity-thread/activity-thread-subscription.d.ts +0 -6
  601. package/dist-server/service/activity-thread/activity-thread-subscription.js +0 -38
  602. package/dist-server/service/activity-thread/activity-thread-subscription.js.map +0 -1
  603. package/dist-server/service/activity-thread/activity-thread-type.d.ts +0 -15
  604. package/dist-server/service/activity-thread/activity-thread-type.js +0 -50
  605. package/dist-server/service/activity-thread/activity-thread-type.js.map +0 -1
  606. package/dist-server/service/activity-thread/activity-thread.d.ts +0 -47
  607. package/dist-server/service/activity-thread/activity-thread.js +0 -197
  608. package/dist-server/service/activity-thread/activity-thread.js.map +0 -1
  609. package/dist-server/service/activity-thread/event-subscriber.d.ts +0 -13
  610. package/dist-server/service/activity-thread/event-subscriber.js +0 -45
  611. package/dist-server/service/activity-thread/event-subscriber.js.map +0 -1
  612. package/dist-server/service/activity-thread/index.d.ts +0 -10
  613. package/dist-server/service/activity-thread/index.js +0 -14
  614. package/dist-server/service/activity-thread/index.js.map +0 -1
  615. package/dist-server/service/activity-thread/my-open-threads.d.ts +0 -33
  616. package/dist-server/service/activity-thread/my-open-threads.js +0 -85
  617. package/dist-server/service/activity-thread/my-open-threads.js.map +0 -1
  618. package/dist-server/service/activity-thread/todo-order.d.ts +0 -49
  619. package/dist-server/service/activity-thread/todo-order.js +0 -70
  620. package/dist-server/service/activity-thread/todo-order.js.map +0 -1
  621. package/dist-server/service/approval-notice/approval-notice-rules.d.ts +0 -67
  622. package/dist-server/service/approval-notice/approval-notice-rules.js +0 -67
  623. package/dist-server/service/approval-notice/approval-notice-rules.js.map +0 -1
  624. package/dist-server/service/approval-notice/approval-notice.d.ts +0 -11
  625. package/dist-server/service/approval-notice/approval-notice.js +0 -76
  626. package/dist-server/service/approval-notice/approval-notice.js.map +0 -1
  627. package/dist-server/service/index.d.ts +0 -23
  628. package/dist-server/service/index.js +0 -75
  629. package/dist-server/service/index.js.map +0 -1
  630. package/dist-server/service/installable-activity/activity-readiness.d.ts +0 -58
  631. package/dist-server/service/installable-activity/activity-readiness.js +0 -105
  632. package/dist-server/service/installable-activity/activity-readiness.js.map +0 -1
  633. package/dist-server/service/installable-activity/index.d.ts +0 -6
  634. package/dist-server/service/installable-activity/index.js +0 -10
  635. package/dist-server/service/installable-activity/index.js.map +0 -1
  636. package/dist-server/service/installable-activity/installable-activity-mutation.d.ts +0 -11
  637. package/dist-server/service/installable-activity/installable-activity-mutation.js +0 -83
  638. package/dist-server/service/installable-activity/installable-activity-mutation.js.map +0 -1
  639. package/dist-server/service/installable-activity/installable-activity-query.d.ts +0 -22
  640. package/dist-server/service/installable-activity/installable-activity-query.js +0 -127
  641. package/dist-server/service/installable-activity/installable-activity-query.js.map +0 -1
  642. package/dist-server/service/installable-activity/installable-activity-type.d.ts +0 -5
  643. package/dist-server/service/installable-activity/installable-activity-type.js +0 -21
  644. package/dist-server/service/installable-activity/installable-activity-type.js.map +0 -1
  645. package/dist-server/service/installable-activity/installable-activity.d.ts +0 -92
  646. package/dist-server/service/installable-activity/installable-activity.js +0 -140
  647. package/dist-server/service/installable-activity/installable-activity.js.map +0 -1
  648. package/dist-server/service/nulls-last.d.ts +0 -30
  649. package/dist-server/service/nulls-last.js +0 -37
  650. package/dist-server/service/nulls-last.js.map +0 -1
  651. package/dist-server/service/subscription/roles-of.d.ts +0 -9
  652. package/dist-server/service/subscription/roles-of.js +0 -17
  653. package/dist-server/service/subscription/roles-of.js.map +0 -1
  654. package/dist-server/service/subscription/subscription-filters.d.ts +0 -47
  655. package/dist-server/service/subscription/subscription-filters.js +0 -57
  656. package/dist-server/service/subscription/subscription-filters.js.map +0 -1
  657. package/dist-server/service/work-door/activity-lookup.d.ts +0 -70
  658. package/dist-server/service/work-door/activity-lookup.js +0 -110
  659. package/dist-server/service/work-door/activity-lookup.js.map +0 -1
  660. package/dist-server/service/work-door/approval-line-standing.d.ts +0 -106
  661. package/dist-server/service/work-door/approval-line-standing.js +0 -65
  662. package/dist-server/service/work-door/approval-line-standing.js.map +0 -1
  663. package/dist-server/service/work-door/index.d.ts +0 -15
  664. package/dist-server/service/work-door/index.js +0 -20
  665. package/dist-server/service/work-door/index.js.map +0 -1
  666. package/dist-server/service/work-door/pass-work-door.d.ts +0 -74
  667. package/dist-server/service/work-door/pass-work-door.js +0 -45
  668. package/dist-server/service/work-door/pass-work-door.js.map +0 -1
  669. package/dist-server/service/work-door/work-door-declaration.d.ts +0 -135
  670. package/dist-server/service/work-door/work-door-declaration.js +0 -87
  671. package/dist-server/service/work-door/work-door-declaration.js.map +0 -1
  672. package/dist-server/service/work-door/work-door-event.d.ts +0 -20
  673. package/dist-server/service/work-door/work-door-event.js +0 -25
  674. package/dist-server/service/work-door/work-door-event.js.map +0 -1
  675. package/dist-server/service/work-door/work-door-journal-service.d.ts +0 -47
  676. package/dist-server/service/work-door/work-door-journal-service.js +0 -75
  677. package/dist-server/service/work-door/work-door-journal-service.js.map +0 -1
  678. package/dist-server/service/work-door/work-door-journal.d.ts +0 -30
  679. package/dist-server/service/work-door/work-door-journal.js +0 -94
  680. package/dist-server/service/work-door/work-door-journal.js.map +0 -1
  681. package/dist-server/service/work-door/work-door-not-used.d.ts +0 -39
  682. package/dist-server/service/work-door/work-door-not-used.js +0 -86
  683. package/dist-server/service/work-door/work-door-not-used.js.map +0 -1
  684. package/dist-server/service/work-door/work-door-resolver.d.ts +0 -32
  685. package/dist-server/service/work-door/work-door-resolver.js +0 -152
  686. package/dist-server/service/work-door/work-door-resolver.js.map +0 -1
  687. package/dist-server/service/work-door/work-door-service.d.ts +0 -36
  688. package/dist-server/service/work-door/work-door-service.js +0 -127
  689. package/dist-server/service/work-door/work-door-service.js.map +0 -1
  690. package/dist-server/service/work-door/work-door-type.d.ts +0 -88
  691. package/dist-server/service/work-door/work-door-type.js +0 -206
  692. package/dist-server/service/work-door/work-door-type.js.map +0 -1
  693. package/dist-server/service/work-door/work-door.d.ts +0 -187
  694. package/dist-server/service/work-door/work-door.js +0 -119
  695. package/dist-server/service/work-door/work-door.js.map +0 -1
  696. package/dist-server/tsconfig.tsbuildinfo +0 -1
@@ -1,272 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.issue = issue;
4
- const typeorm_1 = require("typeorm");
5
- const activity_js_1 = require("../../service/activity/activity.js");
6
- const activity_instance_js_1 = require("../../service/activity-instance/activity-instance.js");
7
- const common_js_1 = require("../common.js");
8
- const submit_js_1 = require("../activity-thread/submit.js");
9
- const approval_line_input_js_1 = require("./approval-line-input.js");
10
- const assignee_input_js_1 = require("./assignee-input.js");
11
- const assignee_pool_js_1 = require("../../service/activity-instance/assignee-pool.js");
12
- const entitlement_js_1 = require("./entitlement.js");
13
- const claim_draft_js_1 = require("./claim-draft.js");
14
- const approval_expectation_js_1 = require("./approval-expectation.js");
15
- const seat_standing_js_1 = require("../activity-approval/seat-standing.js");
16
- const resolve_judgeable_seats_js_1 = require("../activity-approval/resolve-judgeable-seats.js");
17
- async function issue(activityInstance, context) {
18
- const { domain, user, tx } = context.state;
19
- const issuedAt = new Date();
20
- var { id, name, description, assignees, uiType, uiSource, viewType, viewSource, dueAt, priority, approvalLine, activityId, activityType, assigneeRoles, supervisoryRole, input } = activityInstance;
21
- var origin = id
22
- ? await tx.getRepository(activity_instance_js_1.ActivityInstance).findOne({
23
- where: { domain: { id: domain.id }, id },
24
- relations: [
25
- 'domain',
26
- 'activity',
27
- 'assigneeRoles',
28
- 'supervisoryRole',
29
- 'updater',
30
- 'creator',
31
- 'starter',
32
- 'terminator'
33
- ]
34
- })
35
- : null;
36
- /*
37
- 남의 초안은 못 내보낸다.
38
-
39
- 내보내는 순간 결재선과 담당자가 서고, 그것은 **다른 사람들의 의무**가 된다. 새로 시작하는
40
- 것(id 없음)은 주인이 없으므로 이 검사에 안 걸린다. 자격 규칙은 `entitlement.ts` 에 있다.
41
- */
42
- if (origin) {
43
- await (0, entitlement_js_1.assertMayWorkOnDraft)(origin, context);
44
- }
45
- /*
46
- Prerequisites for a Task to Be Issued.
47
- - The previous state of the task should be Draft.
48
- */
49
- if (origin && origin.state !== activity_instance_js_1.ActivityInstanceStatus.Draft) {
50
- throw new Error(context.t(`error.activity-instance is already issued`, {
51
- id: id,
52
- state: origin.state
53
- }));
54
- }
55
- /*
56
- * An id that is not here is refused - not taken as a new case. Taken as new, a draft discarded a moment
57
- * ago came back under the same id, issued. And a draft that is here is claimed before anything else is
58
- * written, so a discard cannot slip in between - see claim-draft.ts.
59
- */
60
- if (id && !origin) {
61
- throw new Error(context.t('error.activity-instance not found', { activityInstance: id }));
62
- }
63
- if (origin) {
64
- await (0, claim_draft_js_1.claimDraft)(origin.id, context);
65
- }
66
- var repository = tx.getRepository(activity_js_1.Activity);
67
- var activity = origin?.activity ||
68
- (await repository.findOne({
69
- where: { domain: domain.parentId ? { id: (0, typeorm_1.In)([domain.id, domain.parentId]) } : { id: domain.id }, id: activityId },
70
- relations: ['assigneeRoles', 'supervisoryRole']
71
- }));
72
- if (!activity) {
73
- throw new Error(context.t('error.activity not found', {
74
- activity: activityId
75
- }));
76
- }
77
- /*
78
- * The activity's approval line is set on its detail screen and nowhere else (ruling 2026-09-24).
79
- * A line handed in must be absent or the same one - § approval-line-input.ts.
80
- */
81
- if ((0, approval_line_input_js_1.approvalLineInputRefusal)(activity.approvalLine, approvalLine)) {
82
- throw Object.assign(new Error(context.t('error.activity-instance approval line is set')), { code: approval_line_input_js_1.LINE_IS_SET });
83
- }
84
- if (!origin) {
85
- activityInstance.name = name || activity.name;
86
- activityInstance.description = description || activity.description;
87
- activityInstance.activityType = activityType || activity.activityType;
88
- activityInstance.uiType = uiType || activity.uiType;
89
- activityInstance.uiSource = uiSource || activity.uiSource;
90
- activityInstance.viewType = viewType || activity.viewType;
91
- activityInstance.viewSource = viewSource || activity.viewSource;
92
- activityInstance.supervisoryRole = supervisoryRole || activity.supervisoryRole;
93
- activityInstance.priority = priority ?? activity.priority;
94
- activityInstance.adhocType = 'standard';
95
- activityInstance.refBy = activityId;
96
- /*
97
- * 낸 쪽이 직접 주지 않았으면 액티비티의 선언을 따른다.
98
- *
99
- * 위의 `if (!assignees || !approvalLine)` 안에 두지 않는다 — 둘 다 준 건에서는 그 블록에 안 들어가고,
100
- * 그러면 이 축만 조용히 빠진다.
101
- */
102
- if (activityInstance.rejectionIsFinal === undefined || activityInstance.rejectionIsFinal === null) {
103
- activityInstance.rejectionIsFinal = activity.rejectionIsFinal ?? false;
104
- }
105
- if (!assignees || !approvalLine) {
106
- if (!assignees) {
107
- assignees = activityInstance.assignees = activity.assignees;
108
- }
109
- if (!approvalLine) {
110
- approvalLine = activityInstance.approvalLine = activity.approvalLine;
111
- }
112
- if (!dueAt && activity.standardTime) {
113
- activityInstance.dueAt = new Date(issuedAt.getTime() + activity.standardTime * 1000);
114
- }
115
- }
116
- }
117
- /*
118
- * The pool - handed in, else the activity's for a new case (a draft keeps the one it was written with). Every
119
- * role is read in the case's domain, each once, or the case is refused by name: a role nobody here holds only
120
- * looks like a pool. § assignee-pool.ts
121
- */
122
- if (assigneeRoles) {
123
- activityInstance.assigneeRoles = await (0, assignee_pool_js_1.resolvePoolRoles)(assigneeRoles, context);
124
- }
125
- else if (!origin) {
126
- activityInstance.assigneeRoles = await (0, assignee_pool_js_1.resolvePoolRoles)(activity.assigneeRoles, context);
127
- }
128
- /*
129
- * A role is not an assignee - it became the role's first user. Seen after the activity's list is taken
130
- * over, so a list saved on the activity before this is refused too. § assignee-input.ts
131
- */
132
- if ((0, assignee_input_js_1.roleAssigneeRefusal)(assignees)) {
133
- throw Object.assign(new Error(context.t('error.activity-instance a role is not an assignee')), {
134
- code: assignee_input_js_1.ROLE_IS_NOT_AN_ASSIGNEE
135
- });
136
- }
137
- /*
138
- * **결재를 받겠다고 낸 건은 결재선이 있어야 한다.**
139
- *
140
- * 액티비티의 결재선을 물려받은 뒤에 본다 — 낸 쪽이 직접 주지 않아도 액티비티가 들고 있으면 그것이
141
- * 이 건의 결재선이다. 물려받기 전에 보면 멀쩡한 건을 막는다.
142
- *
143
- * 초안을 다시 내는 경우 결재선은 원본이 들고 있으므로 그것까지 함께 본다.
144
- *
145
- * 판단은 `approval-expectation.ts` 가 든다 — 여기서 조건을 적으면 시험할 수 없다.
146
- */
147
- const expectation = (0, approval_expectation_js_1.judgeApprovalExpectation)({
148
- requireApproval: activityInstance.requireApproval,
149
- approvalLine: activityInstance.approvalLine ?? origin?.approvalLine,
150
- activityName: activity.name
151
- });
152
- if ((0, approval_expectation_js_1.expectationBroken)(expectation)) {
153
- throw new Error(context.t('error.approval line is empty but approval was required', {
154
- activity: expectation.activityName,
155
- defaultValue: `"${expectation.activityName}" 에 결재선이 없습니다. 이 건은 결재를 받기로 하고 낸 것이라 올리지 않습니다 — ` +
156
- '그대로 두면 결재 없이 확정됩니다.'
157
- }));
158
- }
159
- /*
160
- * **결재 자리마다 설 사람이 있어야 올릴 수 있다.** 아무도 못 서는 자리가 있으면 그 건은 거기서 영영
161
- * 선다. 올리는 이 자리에서 막아야 결재선을 고칠 수 있는 사람이 무엇을 고쳐야 하는지 읽는다.
162
- * 상신자도 결재 자리에 설 수 있다(2026-10-23, ADR-0052 ② 를 거둠).
163
- *
164
- * 판단은 `seat-standing.ts` 가 들고, 자리를 푸는 것은 `resolve-judgeable-seats.ts` 가 한다 — 여기에
165
- * 조건을 적으면 위의 결재선 검사와 같은 이유로 시험할 수 없다.
166
- */
167
- const standing = (0, seat_standing_js_1.judgeSeatsStand)({
168
- seats: await (0, resolve_judgeable_seats_js_1.resolveJudgeableSeats)(activityInstance.approvalLine ?? origin?.approvalLine, context)
169
- });
170
- if ((0, seat_standing_js_1.standingBroken)(standing)) {
171
- /*
172
- * 사유마다 한 문장씩 — **자리가 같다고 사유를 합치지 않는다.** 관리자가 할 일이 다르다: 하나는
173
- * 「그 자리에 다른 결재자를」이고 하나는 「그 역할에 사람을」이다. (ADR-0047 ② 의 낱말)
174
- */
175
- throw new Error(standing.refusals
176
- .map(refusal => {
177
- /* 이름이 안 풀린 자리는 결재선에 적힌 값이라도 보인다 — 관리자가 고칠 실마리가 그것뿐이다. */
178
- const seats = refusal.seats
179
- .map(seat => `${seat.order}차${seat.name ? ` (${seat.name})` : seat.pointsAt ? ` (${seat.pointsAt})` : ''}`)
180
- .join(', ');
181
- const said = {
182
- 'approval-role-empty': `${seats} 결재 자리가 지목한 역할에 사람이 없습니다. 그대로 올리면 아무도 결재할 수 없습니다 — 그 역할에 사람을 넣어 주십시오.`,
183
- 'approval-person-missing': `${seats} 결재 자리가 지목한 사람을 찾을 수 없습니다. 그대로 올리면 아무도 결재할 수 없습니다 — 그 자리에 지금 있는 사람을 다시 지정해 주십시오.`
184
- }[refusal.because];
185
- return context.t(seat_standing_js_1.STANDING_REFUSAL_KEYS[refusal.because], { seats, defaultValue: said });
186
- })
187
- .join(' '));
188
- }
189
- const activitySearchKeys = (0, common_js_1.fillActivitySearchKeys)(activity?.searchKeys, input);
190
- if (activity.startingType == 'post') {
191
- /*
192
- startingType이 'post'이면,
193
- activityInstance 이슈와 동시에 issuer에게 할당된 activityThread가 생성되고 submit까지 모두 완료되게 된다.
194
- 만일, 결재선이 있다면, 상신되게 된다.
195
- */
196
- const posted = await tx.getRepository(activity_instance_js_1.ActivityInstance).save({
197
- version: 1,
198
- creator: user,
199
- ...origin,
200
- ...activityInstance,
201
- transaction: 'post',
202
- activity,
203
- ...activitySearchKeys,
204
- state: activity_instance_js_1.ActivityInstanceStatus.Started,
205
- domain,
206
- issuer: user,
207
- updater: user,
208
- issuedAt,
209
- startedAt: issuedAt
210
- });
211
- const thread = await (0, common_js_1.createActivityThreadForUser)('post', posted, user, context);
212
- /* post 방식은 thread가 하나이므로, instance의 output을 그대로 thread의 output이라고 판단할 수 있다. 따라서, 아래 로직은 제거한다. */
213
- // const data = { ...activityInstance.input, ...activityInstance.output }
214
- // const output = (activity.model || [])
215
- // .filter(item => item.inout === 'inout' || item.inout === 'out')
216
- // .reduce((inout, item) => {
217
- // inout[item.tag] = data[item.tag]
218
- // return inout
219
- // }, {})
220
- await (0, submit_js_1.submit)({ id: thread.id, output: activityInstance.output }, context);
221
- return await tx.getRepository(activity_instance_js_1.ActivityInstance).findOneBy({ id: posted.id });
222
- }
223
- else {
224
- const issued = await tx.getRepository(activity_instance_js_1.ActivityInstance).save({
225
- version: 1,
226
- creator: user,
227
- ...origin,
228
- ...activityInstance,
229
- transaction: 'issue',
230
- activity,
231
- ...activitySearchKeys,
232
- state: activity_instance_js_1.ActivityInstanceStatus.Issued,
233
- domain,
234
- issuer: user,
235
- updater: user,
236
- issuedAt
237
- });
238
- /*
239
- 1. 하나의 thread가 필요한 경우 (대부분)
240
- 조건 : activityInstance의 threadsMin이 1 이어야 한다.
241
- 로직 1 : getSystemUserFromOrgMemberItem 의 결과가 한명이라면 그대로 activityThread.assignee로 직접 할당한다.
242
- 로직 2 : getSystemUserFromOrgMemberItem 의 결과가 한명이 아니라면, assigneeRoles 가 있는 경우에만 처리가 가능하다.
243
- 이 경우에는 assignee를 비운다. - createActivityThreadWithUnassigned
244
- 2. 할당되지 않은 복수개의 thread가 필요한 경우
245
- 조건 : threadsMin이 1 이상이어야 한다.
246
- 로직 1 : getSystemUserFromOrgMemberItem 의 결과와 threadsMin 값이 같다면, 그대로 activityThread.assignee로 직접 할당한다. createActivityThreadsForAllRoleUsers
247
- 로직 2 : createActivityThreadWithUnassigned
248
- 3. 모든 assignee가 처리를 해야하는 경우
249
- 조건 : threadsMin이 0 이어야 한다.
250
- 로직 : getSystemUserFromOrgMemberItem 의 결과로 createActivityThreadsForUsers
251
- */
252
- // assignees가 복수인 것은 아무 의미가 없다.
253
- const assignedUsers = await Promise.all((assignees || []).map(assignee => (0, common_js_1.getSystemUserFromOrgMemberItem)(assignee, context)));
254
- if (assignedUsers.length == 0) {
255
- if ((0, assignee_pool_js_1.poolIdsOf)(issued).length) {
256
- if (issued.threadsMin === 0) {
257
- /* 풀의 역할들 중 하나라도 가진 사람 모두에게 — 한 사람에 한 번 */
258
- await (0, common_js_1.createActivityThreadsForAllRoleUsers)('issue', issued, context);
259
- }
260
- else {
261
- /* minimum threads 설정에 따른 pending assignment 상태로 activityThread를 만드는 경우 */
262
- await (0, common_js_1.createActivityThreadWithUnassigned)('issue', issued, context);
263
- }
264
- }
265
- }
266
- else {
267
- await (0, common_js_1.createActivityThreadsForUsers)('issue', issued, assignedUsers, context);
268
- }
269
- return await tx.getRepository(activity_instance_js_1.ActivityInstance).findOneBy({ id: issued.id });
270
- }
271
- }
272
- //# sourceMappingURL=issue.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"issue.js","sourceRoot":"","sources":["../../../server/controllers/activity-instance/issue.ts"],"names":[],"mappings":";;AAsBA,sBA0TC;AAhVD,qCAA4B;AAC5B,oEAA6D;AAC7D,+FAA+G;AAE/G,4CAOqB;AACrB,4DAAqD;AACrD,qEAAgF;AAChF,2DAAkF;AAClF,uFAA8F;AAC9F,qDAAuD;AACvD,qDAA6C;AAC7C,uEAAuF;AACvF,4EAA8G;AAC9G,gGAAuF;AAEhF,KAAK,UAAU,KAAK,CACzB,gBAAuC,EACvC,OAAwB;IAExB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAC1C,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAA;IAC3B,IAAI,EACF,EAAE,EACF,IAAI,EACJ,WAAW,EACX,SAAS,EACT,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,aAAa,EACb,eAAe,EACf,KAAK,EACN,GAAG,gBAAgB,CAAA;IAEpB,IAAI,MAAM,GAAG,EAAE;QACb,CAAC,CAAC,MAAM,EAAE,CAAC,aAAa,CAAC,uCAAgB,CAAC,CAAC,OAAO,CAAC;YAC/C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;YACxC,SAAS,EAAE;gBACT,QAAQ;gBACR,UAAU;gBACV,eAAe;gBACf,iBAAiB;gBACjB,SAAS;gBACT,SAAS;gBACT,SAAS;gBACT,YAAY;aACb;SACF,CAAC;QACJ,CAAC,CAAC,IAAI,CAAA;IAER;;;;;MAKE;IACF,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,IAAA,qCAAoB,EAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7C,CAAC;IAED;;;MAGE;IACF,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,KAAK,6CAAsB,CAAC,KAAK,EAAE,CAAC;QAC5D,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,2CAA2C,EAAE;YACrD,EAAE,EAAE,EAAE;YACN,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC,CACH,CAAA;IACH,CAAC;IAED;;;;OAIG;IACH,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,mCAAmC,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;IAC3F,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,IAAA,2BAAU,EAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;IACtC,CAAC;IAED,IAAI,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,sBAAQ,CAAC,CAAA;IAC3C,IAAI,QAAQ,GACV,MAAM,EAAE,QAAQ;QAChB,CAAC,MAAM,UAAU,CAAC,OAAO,CAAC;YACxB,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAA,YAAE,EAAC,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE;YACjH,SAAS,EAAE,CAAC,eAAe,EAAE,iBAAiB,CAAC;SAChD,CAAC,CAAC,CAAA;IAEL,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,0BAA0B,EAAE;YACpC,QAAQ,EAAE,UAAU;SACrB,CAAC,CACH,CAAA;IACH,CAAC;IAED;;;OAGG;IACH,IAAI,IAAA,iDAAwB,EAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE,CAAC;QAClE,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,8CAA8C,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,oCAAW,EAAE,CAAC,CAAA;IAClH,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,gBAAgB,CAAC,IAAI,GAAG,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAA;QAC7C,gBAAgB,CAAC,WAAW,GAAG,WAAW,IAAI,QAAQ,CAAC,WAAW,CAAA;QAClE,gBAAgB,CAAC,YAAY,GAAG,YAAY,IAAI,QAAQ,CAAC,YAAY,CAAA;QACrE,gBAAgB,CAAC,MAAM,GAAG,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAA;QACnD,gBAAgB,CAAC,QAAQ,GAAG,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAA;QACzD,gBAAgB,CAAC,QAAQ,GAAG,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAA;QACzD,gBAAgB,CAAC,UAAU,GAAG,UAAU,IAAI,QAAQ,CAAC,UAAU,CAAA;QAC/D,gBAAgB,CAAC,eAAe,GAAG,eAAe,IAAI,QAAQ,CAAC,eAAe,CAAA;QAC9E,gBAAgB,CAAC,QAAQ,GAAG,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAA;QAEzD,gBAAgB,CAAC,SAAS,GAAG,UAAU,CAAA;QACvC,gBAAgB,CAAC,KAAK,GAAG,UAAU,CAAA;QAEnC;;;;;WAKG;QACH,IAAI,gBAAgB,CAAC,gBAAgB,KAAK,SAAS,IAAI,gBAAgB,CAAC,gBAAgB,KAAK,IAAI,EAAE,CAAC;YAClG,gBAAgB,CAAC,gBAAgB,GAAG,QAAQ,CAAC,gBAAgB,IAAI,KAAK,CAAA;QACxE,CAAC;QAED,IAAI,CAAC,SAAS,IAAI,CAAC,YAAY,EAAE,CAAC;YAChC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,SAAS,GAAG,gBAAgB,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAA;YAC7D,CAAC;YAED,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,YAAY,GAAG,gBAAgB,CAAC,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAA;YACtE,CAAC;YAED,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;gBACpC,gBAAgB,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,CAAA;YACtF,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,IAAI,aAAa,EAAE,CAAC;QAClB,gBAAgB,CAAC,aAAa,GAAG,MAAM,IAAA,mCAAgB,EAAC,aAAa,EAAE,OAAO,CAAC,CAAA;IACjF,CAAC;SAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACnB,gBAAgB,CAAC,aAAa,GAAG,MAAM,IAAA,mCAAgB,EAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;IAC1F,CAAC;IAED;;;OAGG;IACH,IAAI,IAAA,uCAAmB,EAAC,SAAS,CAAC,EAAE,CAAC;QACnC,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,mDAAmD,CAAC,CAAC,EAAE;YAC7F,IAAI,EAAE,2CAAuB;SAC9B,CAAC,CAAA;IACJ,CAAC;IAED;;;;;;;;;OASG;IACH,MAAM,WAAW,GAAG,IAAA,kDAAwB,EAAC;QAC3C,eAAe,EAAE,gBAAgB,CAAC,eAAe;QACjD,YAAY,EAAE,gBAAgB,CAAC,YAAY,IAAI,MAAM,EAAE,YAAY;QACnE,YAAY,EAAE,QAAQ,CAAC,IAAI;KAC5B,CAAC,CAAA;IAEF,IAAI,IAAA,2CAAiB,EAAC,WAAW,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,wDAAwD,EAAE;YAClE,QAAQ,EAAE,WAAW,CAAC,YAAY;YAClC,YAAY,EACV,IAAI,WAAW,CAAC,YAAY,kDAAkD;gBAC9E,qBAAqB;SACxB,CAAC,CACH,CAAA;IACH,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,QAAQ,GAAG,IAAA,kCAAe,EAAC;QAC/B,KAAK,EAAE,MAAM,IAAA,kDAAqB,EAAC,gBAAgB,CAAC,YAAY,IAAI,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC;KACnG,CAAC,CAAA;IAEF,IAAI,IAAA,iCAAc,EAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B;;;WAGG;QACH,MAAM,IAAI,KAAK,CACb,QAAQ,CAAC,QAAQ;aACd,GAAG,CAAC,OAAO,CAAC,EAAE;YACb,yDAAyD;YACzD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK;iBACxB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;iBAC1G,IAAI,CAAC,IAAI,CAAC,CAAA;YAEb,MAAM,IAAI,GAAG;gBACX,qBAAqB,EAAE,GAAG,KAAK,uEAAuE;gBACtG,yBAAyB,EAAE,GAAG,KAAK,kFAAkF;aACtH,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;YAElB,OAAO,OAAO,CAAC,CAAC,CAAC,wCAAqB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAA;QACzF,CAAC,CAAC;aACD,IAAI,CAAC,GAAG,CAAC,CACb,CAAA;IACH,CAAC;IAED,MAAM,kBAAkB,GAAG,IAAA,kCAAsB,EAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC,CAAA;IAE9E,IAAI,QAAQ,CAAC,YAAY,IAAI,MAAM,EAAE,CAAC;QACpC;;;;UAIE;QACF,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,uCAAgB,CAAC,CAAC,IAAI,CAAC;YAC3D,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,IAAI;YACb,GAAG,MAAM;YACT,GAAG,gBAAgB;YACnB,WAAW,EAAE,MAAM;YACnB,QAAQ;YACR,GAAG,kBAAkB;YACrB,KAAK,EAAE,6CAAsB,CAAC,OAAO;YACrC,MAAM;YACN,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,IAAI;YACb,QAAQ;YACR,SAAS,EAAE,QAAQ;SACpB,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,MAAM,IAAA,uCAA2B,EAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;QAE/E,iGAAiG;QACjG,yEAAyE;QACzE,wCAAwC;QACxC,oEAAoE;QACpE,+BAA+B;QAC/B,uCAAuC;QACvC,mBAAmB;QACnB,WAAW;QAEX,MAAM,IAAA,kBAAM,EAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,gBAAgB,CAAC,MAAM,EAAE,EAAE,OAAO,CAAC,CAAA;QAEzE,OAAO,MAAM,EAAE,CAAC,aAAa,CAAC,uCAAgB,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAA;IAC9E,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,uCAAgB,CAAC,CAAC,IAAI,CAAC;YAC3D,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,IAAI;YACb,GAAG,MAAM;YACT,GAAG,gBAAgB;YACnB,WAAW,EAAE,OAAO;YACpB,QAAQ;YACR,GAAG,kBAAkB;YACrB,KAAK,EAAE,6CAAsB,CAAC,MAAM;YACpC,MAAM;YACN,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,IAAI;YACb,QAAQ;SACT,CAAC,CAAA;QAEF;;;;;;;;;;;;;UAaE;QAEF,+BAA+B;QAC/B,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CACrC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAA,0CAA8B,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CACrF,CAAA;QAED,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAC9B,IAAI,IAAA,4BAAS,EAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;gBAC7B,IAAI,MAAM,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;oBAC5B,0CAA0C;oBAC1C,MAAM,IAAA,gDAAoC,EAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;gBACtE,CAAC;qBAAM,CAAC;oBACN,0EAA0E;oBAC1E,MAAM,IAAA,8CAAkC,EAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;gBACpE,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,IAAA,yCAA6B,EAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,CAAA;QAC9E,CAAC;QAED,OAAO,MAAM,EAAE,CAAC,aAAa,CAAC,uCAAgB,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAA;IAC9E,CAAC;AACH,CAAC","sourcesContent":["import { In } from 'typeorm'\nimport { Activity } from '../../service/activity/activity.js'\nimport { ActivityInstance, ActivityInstanceStatus } from '../../service/activity-instance/activity-instance.js'\nimport { ActivityInstanceIssue } from '../../service/activity-instance/activity-instance-type.js'\nimport {\n createActivityThreadWithUnassigned,\n createActivityThreadsForAllRoleUsers,\n createActivityThreadsForUsers,\n getSystemUserFromOrgMemberItem,\n createActivityThreadForUser,\n fillActivitySearchKeys\n} from '../common.js'\nimport { submit } from '../activity-thread/submit.js'\nimport { LINE_IS_SET, approvalLineInputRefusal } from './approval-line-input.js'\nimport { ROLE_IS_NOT_AN_ASSIGNEE, roleAssigneeRefusal } from './assignee-input.js'\nimport { poolIdsOf, resolvePoolRoles } from '../../service/activity-instance/assignee-pool.js'\nimport { assertMayWorkOnDraft } from './entitlement.js'\nimport { claimDraft } from './claim-draft.js'\nimport { expectationBroken, judgeApprovalExpectation } from './approval-expectation.js'\nimport { STANDING_REFUSAL_KEYS, judgeSeatsStand, standingBroken } from '../activity-approval/seat-standing.js'\nimport { resolveJudgeableSeats } from '../activity-approval/resolve-judgeable-seats.js'\n\nexport async function issue(\n activityInstance: ActivityInstanceIssue,\n context: ResolverContext\n): Promise<ActivityInstance> {\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 activityId,\n activityType,\n assigneeRoles,\n supervisoryRole,\n input\n } = activityInstance\n\n var origin = id\n ? await tx.getRepository(ActivityInstance).findOne({\n where: { domain: { id: domain.id }, id },\n relations: [\n 'domain',\n 'activity',\n 'assigneeRoles',\n 'supervisoryRole',\n 'updater',\n 'creator',\n 'starter',\n 'terminator'\n ]\n })\n : null\n\n /*\n 남의 초안은 못 내보낸다.\n\n 내보내는 순간 결재선과 담당자가 서고, 그것은 **다른 사람들의 의무**가 된다. 새로 시작하는\n 것(id 없음)은 주인이 없으므로 이 검사에 안 걸린다. 자격 규칙은 `entitlement.ts` 에 있다.\n */\n if (origin) {\n await assertMayWorkOnDraft(origin, context)\n }\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 !== ActivityInstanceStatus.Draft) {\n throw new Error(\n context.t(`error.activity-instance is already issued`, {\n id: id,\n state: origin.state\n })\n )\n }\n\n /*\n * An id that is not here is refused - not taken as a new case. Taken as new, a draft discarded a moment\n * ago came back under the same id, issued. And a draft that is here is claimed before anything else is\n * written, so a discard cannot slip in between - see claim-draft.ts.\n */\n if (id && !origin) {\n throw new Error(context.t('error.activity-instance not found', { activityInstance: id }))\n }\n\n if (origin) {\n await claimDraft(origin.id, context)\n }\n\n var repository = tx.getRepository(Activity)\n var activity =\n origin?.activity ||\n (await repository.findOne({\n where: { domain: domain.parentId ? { id: In([domain.id, domain.parentId]) } : { id: domain.id }, id: activityId },\n relations: ['assigneeRoles', 'supervisoryRole']\n }))\n\n if (!activity) {\n throw new Error(\n context.t('error.activity not found', {\n activity: activityId\n })\n )\n }\n\n /*\n * The activity's approval line is set on its detail screen and nowhere else (ruling 2026-09-24).\n * A line handed in must be absent or the same one - § approval-line-input.ts.\n */\n if (approvalLineInputRefusal(activity.approvalLine, approvalLine)) {\n throw Object.assign(new Error(context.t('error.activity-instance approval line is set')), { code: LINE_IS_SET })\n }\n\n if (!origin) {\n activityInstance.name = name || activity.name\n activityInstance.description = description || activity.description\n activityInstance.activityType = activityType || activity.activityType\n activityInstance.uiType = uiType || activity.uiType\n activityInstance.uiSource = uiSource || activity.uiSource\n activityInstance.viewType = viewType || activity.viewType\n activityInstance.viewSource = viewSource || activity.viewSource\n activityInstance.supervisoryRole = supervisoryRole || activity.supervisoryRole\n activityInstance.priority = priority ?? activity.priority\n\n activityInstance.adhocType = 'standard'\n activityInstance.refBy = activityId\n\n /*\n * 낸 쪽이 직접 주지 않았으면 액티비티의 선언을 따른다.\n *\n * 위의 `if (!assignees || !approvalLine)` 안에 두지 않는다 — 둘 다 준 건에서는 그 블록에 안 들어가고,\n * 그러면 이 축만 조용히 빠진다.\n */\n if (activityInstance.rejectionIsFinal === undefined || activityInstance.rejectionIsFinal === null) {\n activityInstance.rejectionIsFinal = activity.rejectionIsFinal ?? false\n }\n\n if (!assignees || !approvalLine) {\n if (!assignees) {\n assignees = activityInstance.assignees = activity.assignees\n }\n\n if (!approvalLine) {\n approvalLine = activityInstance.approvalLine = activity.approvalLine\n }\n\n if (!dueAt && activity.standardTime) {\n activityInstance.dueAt = new Date(issuedAt.getTime() + activity.standardTime * 1000)\n }\n }\n }\n\n /*\n * The pool - handed in, else the activity's for a new case (a draft keeps the one it was written with). Every\n * role is read in the case's domain, each once, or the case is refused by name: a role nobody here holds only\n * looks like a pool. § assignee-pool.ts\n */\n if (assigneeRoles) {\n activityInstance.assigneeRoles = await resolvePoolRoles(assigneeRoles, context)\n } else if (!origin) {\n activityInstance.assigneeRoles = await resolvePoolRoles(activity.assigneeRoles, context)\n }\n\n /*\n * A role is not an assignee - it became the role's first user. Seen after the activity's list is taken\n * over, so a list saved on the activity before this is refused too. § assignee-input.ts\n */\n if (roleAssigneeRefusal(assignees)) {\n throw Object.assign(new Error(context.t('error.activity-instance a role is not an assignee')), {\n code: ROLE_IS_NOT_AN_ASSIGNEE\n })\n }\n\n /*\n * **결재를 받겠다고 낸 건은 결재선이 있어야 한다.**\n *\n * 액티비티의 결재선을 물려받은 뒤에 본다 — 낸 쪽이 직접 주지 않아도 액티비티가 들고 있으면 그것이\n * 이 건의 결재선이다. 물려받기 전에 보면 멀쩡한 건을 막는다.\n *\n * 초안을 다시 내는 경우 결재선은 원본이 들고 있으므로 그것까지 함께 본다.\n *\n * 판단은 `approval-expectation.ts` 가 든다 — 여기서 조건을 적으면 시험할 수 없다.\n */\n const expectation = judgeApprovalExpectation({\n requireApproval: activityInstance.requireApproval,\n approvalLine: activityInstance.approvalLine ?? origin?.approvalLine,\n activityName: activity.name\n })\n\n if (expectationBroken(expectation)) {\n throw new Error(\n context.t('error.approval line is empty but approval was required', {\n activity: expectation.activityName,\n defaultValue:\n `\"${expectation.activityName}\" 에 결재선이 없습니다. 이 건은 결재를 받기로 하고 낸 것이라 올리지 않습니다 — ` +\n '그대로 두면 결재 없이 확정됩니다.'\n })\n )\n }\n\n /*\n * **결재 자리마다 설 사람이 있어야 올릴 수 있다.** 아무도 못 서는 자리가 있으면 그 건은 거기서 영영\n * 선다. 올리는 이 자리에서 막아야 결재선을 고칠 수 있는 사람이 무엇을 고쳐야 하는지 읽는다.\n * 상신자도 결재 자리에 설 수 있다(2026-10-23, ADR-0052 ② 를 거둠).\n *\n * 판단은 `seat-standing.ts` 가 들고, 자리를 푸는 것은 `resolve-judgeable-seats.ts` 가 한다 — 여기에\n * 조건을 적으면 위의 결재선 검사와 같은 이유로 시험할 수 없다.\n */\n const standing = judgeSeatsStand({\n seats: await resolveJudgeableSeats(activityInstance.approvalLine ?? origin?.approvalLine, context)\n })\n\n if (standingBroken(standing)) {\n /*\n * 사유마다 한 문장씩 — **자리가 같다고 사유를 합치지 않는다.** 관리자가 할 일이 다르다: 하나는\n * 「그 자리에 다른 결재자를」이고 하나는 「그 역할에 사람을」이다. (ADR-0047 ② 의 낱말)\n */\n throw new Error(\n standing.refusals\n .map(refusal => {\n /* 이름이 안 풀린 자리는 결재선에 적힌 값이라도 보인다 — 관리자가 고칠 실마리가 그것뿐이다. */\n const seats = refusal.seats\n .map(seat => `${seat.order}차${seat.name ? ` (${seat.name})` : seat.pointsAt ? ` (${seat.pointsAt})` : ''}`)\n .join(', ')\n\n const said = {\n 'approval-role-empty': `${seats} 결재 자리가 지목한 역할에 사람이 없습니다. 그대로 올리면 아무도 결재할 수 없습니다 — 그 역할에 사람을 넣어 주십시오.`,\n 'approval-person-missing': `${seats} 결재 자리가 지목한 사람을 찾을 수 없습니다. 그대로 올리면 아무도 결재할 수 없습니다 — 그 자리에 지금 있는 사람을 다시 지정해 주십시오.`\n }[refusal.because]\n\n return context.t(STANDING_REFUSAL_KEYS[refusal.because], { seats, defaultValue: said })\n })\n .join(' ')\n )\n }\n\n const activitySearchKeys = fillActivitySearchKeys(activity?.searchKeys, input)\n\n if (activity.startingType == 'post') {\n /* \n startingType이 'post'이면, \n activityInstance 이슈와 동시에 issuer에게 할당된 activityThread가 생성되고 submit까지 모두 완료되게 된다.\n 만일, 결재선이 있다면, 상신되게 된다.\n */\n const posted = await tx.getRepository(ActivityInstance).save({\n version: 1,\n creator: user,\n ...origin,\n ...activityInstance,\n transaction: 'post',\n activity,\n ...activitySearchKeys,\n state: ActivityInstanceStatus.Started,\n domain,\n issuer: user,\n updater: user,\n issuedAt,\n startedAt: issuedAt\n })\n\n const thread = await createActivityThreadForUser('post', posted, user, context)\n\n /* post 방식은 thread가 하나이므로, instance의 output을 그대로 thread의 output이라고 판단할 수 있다. 따라서, 아래 로직은 제거한다. */\n // const data = { ...activityInstance.input, ...activityInstance.output }\n // const output = (activity.model || [])\n // .filter(item => item.inout === 'inout' || item.inout === 'out')\n // .reduce((inout, item) => {\n // inout[item.tag] = data[item.tag]\n // return inout\n // }, {})\n\n await submit({ id: thread.id, output: activityInstance.output }, context)\n\n return await tx.getRepository(ActivityInstance).findOneBy({ id: posted.id })\n } else {\n const issued = await tx.getRepository(ActivityInstance).save({\n version: 1,\n creator: user,\n ...origin,\n ...activityInstance,\n transaction: 'issue',\n activity,\n ...activitySearchKeys,\n state: ActivityInstanceStatus.Issued,\n domain,\n issuer: user,\n updater: user,\n issuedAt\n })\n\n /*\n 1. 하나의 thread가 필요한 경우 (대부분)\n 조건 : activityInstance의 threadsMin이 1 이어야 한다.\n 로직 1 : getSystemUserFromOrgMemberItem 의 결과가 한명이라면 그대로 activityThread.assignee로 직접 할당한다.\n 로직 2 : getSystemUserFromOrgMemberItem 의 결과가 한명이 아니라면, assigneeRoles 가 있는 경우에만 처리가 가능하다.\n 이 경우에는 assignee를 비운다. - createActivityThreadWithUnassigned\n 2. 할당되지 않은 복수개의 thread가 필요한 경우\n 조건 : threadsMin이 1 이상이어야 한다.\n 로직 1 : getSystemUserFromOrgMemberItem 의 결과와 threadsMin 값이 같다면, 그대로 activityThread.assignee로 직접 할당한다. createActivityThreadsForAllRoleUsers\n 로직 2 : createActivityThreadWithUnassigned\n 3. 모든 assignee가 처리를 해야하는 경우\n 조건 : threadsMin이 0 이어야 한다.\n 로직 : getSystemUserFromOrgMemberItem 의 결과로 createActivityThreadsForUsers\n */\n\n // assignees가 복수인 것은 아무 의미가 없다.\n const assignedUsers = await Promise.all(\n (assignees || []).map(assignee => getSystemUserFromOrgMemberItem(assignee, context))\n )\n\n if (assignedUsers.length == 0) {\n if (poolIdsOf(issued).length) {\n if (issued.threadsMin === 0) {\n /* 풀의 역할들 중 하나라도 가진 사람 모두에게 — 한 사람에 한 번 */\n await createActivityThreadsForAllRoleUsers('issue', issued, context)\n } else {\n /* minimum threads 설정에 따른 pending assignment 상태로 activityThread를 만드는 경우 */\n await createActivityThreadWithUnassigned('issue', issued, context)\n }\n }\n } else {\n await createActivityThreadsForUsers('issue', issued, assignedUsers, context)\n }\n\n return await tx.getRepository(ActivityInstance).findOneBy({ id: issued.id })\n }\n}\n"]}
@@ -1,2 +0,0 @@
1
- import { ActivityThread } from '../../service/activity-thread/activity-thread.js';
2
- export declare function pick(id: string, context: ResolverContext): Promise<ActivityThread>;
@@ -1,112 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.pick = pick;
4
- const typeorm_1 = require("typeorm");
5
- const shell_1 = require("@things-factory/shell");
6
- const activity_instance_js_1 = require("../../service/activity-instance/activity-instance.js");
7
- const activity_thread_js_1 = require("../../service/activity-thread/activity-thread.js");
8
- const common_js_1 = require("../common.js");
9
- const entitlement_js_1 = require("./entitlement.js");
10
- async function pick(id, context) {
11
- const { domain, user, tx } = context.state;
12
- const repository = tx.getRepository(activity_instance_js_1.ActivityInstance);
13
- var activityInstance = await repository.findOne({
14
- where: { domain: { id: domain.id }, id },
15
- relations: ['domain', 'activity', 'assigneeRoles', 'supervisoryRole', 'updater', 'creator', 'starter', 'terminator']
16
- });
17
- if (!activityInstance) {
18
- throw new Error(context.t('error.activity-instance not found', {
19
- activityInstance: id
20
- }));
21
- }
22
- /*
23
- 누가 집을 수 있나 — 상태만 보면 **아무나 집는다.**
24
-
25
- 담당 역할을 relations 로 불러오면서 한 번도 안 봤다. 그래서 그 도메인에 로그인한
26
- 사람이면 특정 역할에 걸어 둔 업무도 집을 수 있었다. 자격 규칙은 `entitlement.ts` 에 있다.
27
- */
28
- await (0, entitlement_js_1.assertMayPick)(activityInstance, context);
29
- /*
30
- Prerequisites for a Task to Be Picked.
31
- - The previous state of the task must not be Assigned.
32
- */
33
- if (activityInstance.state !== activity_instance_js_1.ActivityInstanceStatus.Issued &&
34
- activityInstance.state !== activity_instance_js_1.ActivityInstanceStatus.Unassigned) {
35
- throw new Error(context.t(`error.activity-instance should not be assigned`, {
36
- id,
37
- actual: activityInstance.state
38
- }));
39
- }
40
- /*
41
- * Take hold of it before making a thread. Measured on postgres (tests/pick-race.pg.test.ts): two people
42
- * picking a case that waits for one both read it as issued and both got a thread. The UPDATE matches
43
- * only a case still waiting and holds its row to the end of this transaction; whoever is second waits,
44
- * then finds it assigned and is refused by name. A case waiting for more than one person is still
45
- * unassigned after the first pick, so the second person gets in - as intended.
46
- */
47
- const claimed = await repository.update({
48
- domain: { id: domain.id },
49
- id,
50
- state: (0, typeorm_1.In)([activity_instance_js_1.ActivityInstanceStatus.Issued, activity_instance_js_1.ActivityInstanceStatus.Unassigned])
51
- }, { updater: user });
52
- if (!claimed.affected) {
53
- throw new Error(context.t('error.activity-approval taken by someone else', { activityApproval: id }));
54
- }
55
- /*
56
- * Read it again under the hold, and ask again who may take it. What was read above came before the wait:
57
- * a manager may have put the case in a role's pool meanwhile (assign.ts), and saving that old read back
58
- * would wipe the pool out - and let someone outside the role take it.
59
- */
60
- const current = await repository.findOne({
61
- where: { domain: { id: domain.id }, id },
62
- relations: ['domain', 'activity', 'assigneeRoles', 'supervisoryRole', 'updater', 'creator', 'starter', 'terminator'],
63
- /*
64
- * Lock the case's row only - postgres refuses FOR UPDATE on the nullable side of the relations' outer
65
- * joins. `tables` takes table names, not entity names (typeorm SelectQueryBuilder), so it is read off
66
- * the metadata rather than written here; 'ActivityInstance' failed every pick on postgres.
67
- */
68
- ...((0, shell_1.writeLockSupported)(tx)
69
- ? { lock: { mode: 'pessimistic_write', tables: [repository.metadata.tableNameWithoutPrefix] } }
70
- : {})
71
- });
72
- await (0, entitlement_js_1.assertMayPick)(current, context);
73
- /*
74
- * The case's threads, read under the hold on the case - case first, then thread, the order every way into a
75
- * waiting case takes (assign.ts, activity-thread/check-authority.ts).
76
- */
77
- const threadRepository = tx.getRepository(activity_thread_js_1.ActivityThread);
78
- const threads = await threadRepository.find({
79
- where: { activityInstance: { id } },
80
- /* A locking read is a current read - a plain one may answer from the snapshot taken before the wait. */
81
- ...((0, shell_1.writeLockSupported)(tx) ? { lock: { mode: 'pessimistic_write' } } : {})
82
- });
83
- /* One person, one thread of a case - the database says so too (ix_activity_thread_0), only not by name. */
84
- if (threads.some(thread => thread.assigneeId === user.id)) {
85
- throw new Error(context.t('error.activity-instance already yours', { id }));
86
- }
87
- const picked = await repository.save({
88
- ...current,
89
- transaction: 'pick',
90
- updater: user
91
- });
92
- /*
93
- * A case in a pool waits with one unassigned thread, and that thread is what puts it on the pool's to-do
94
- * lists. The picker takes that very thread. A new thread beside it left the waiting one behind, and the case
95
- * stayed on the list of everyone in the pool after one of them had taken it.
96
- */
97
- const waiting = threads.find(thread => thread.state === activity_thread_js_1.ActivityThreadStatus.Unassigned);
98
- if (!waiting) {
99
- return (await (0, common_js_1.createActivityThreadsForUsers)('pick', picked, [user], context))[0];
100
- }
101
- const taken = await threadRepository.save(Object.assign(waiting, {
102
- assignee: user,
103
- state: activity_thread_js_1.ActivityThreadStatus.Assigned,
104
- transaction: 'pick',
105
- updater: user,
106
- assignedAt: new Date()
107
- }));
108
- await (0, common_js_1.leaveTheRestOfThePoolOneWaiting)('pick', picked, threads, context);
109
- await (0, common_js_1.updateActivityInstanceState)(id, { causedBy: [taken] }, context);
110
- return taken;
111
- }
112
- //# sourceMappingURL=pick.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pick.js","sourceRoot":"","sources":["../../../server/controllers/activity-instance/pick.ts"],"names":[],"mappings":"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","sourcesContent":["import { In } from 'typeorm'\n\nimport { writeLockSupported } from '@things-factory/shell'\n\nimport { ActivityInstance, ActivityInstanceStatus } from '../../service/activity-instance/activity-instance.js'\nimport { ActivityThread, ActivityThreadStatus } from '../../service/activity-thread/activity-thread.js'\nimport { createActivityThreadsForUsers, leaveTheRestOfThePoolOneWaiting, updateActivityInstanceState } from '../common.js'\nimport { assertMayPick } from './entitlement.js'\n\nexport async function pick(id: string, context: ResolverContext): Promise<ActivityThread> {\n const { domain, user, tx } = context.state\n const repository = tx.getRepository(ActivityInstance)\n\n var activityInstance = await repository.findOne({\n where: { domain: { id: domain.id }, id },\n relations: ['domain', 'activity', 'assigneeRoles', 'supervisoryRole', 'updater', 'creator', 'starter', 'terminator']\n })\n\n if (!activityInstance) {\n throw new Error(\n context.t('error.activity-instance not found', {\n activityInstance: id\n })\n )\n }\n\n /*\n 누가 집을 수 있나 — 상태만 보면 **아무나 집는다.**\n\n 담당 역할을 relations 로 불러오면서 한 번도 안 봤다. 그래서 그 도메인에 로그인한\n 사람이면 특정 역할에 걸어 둔 업무도 집을 수 있었다. 자격 규칙은 `entitlement.ts` 에 있다.\n */\n await assertMayPick(activityInstance, context)\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 activityInstance.state !== ActivityInstanceStatus.Issued &&\n activityInstance.state !== ActivityInstanceStatus.Unassigned\n ) {\n throw new Error(\n context.t(`error.activity-instance should not be assigned`, {\n id,\n actual: activityInstance.state\n })\n )\n }\n\n /*\n * Take hold of it before making a thread. Measured on postgres (tests/pick-race.pg.test.ts): two people\n * picking a case that waits for one both read it as issued and both got a thread. The UPDATE matches\n * only a case still waiting and holds its row to the end of this transaction; whoever is second waits,\n * then finds it assigned and is refused by name. A case waiting for more than one person is still\n * unassigned after the first pick, so the second person gets in - as intended.\n */\n const claimed = await repository.update(\n {\n domain: { id: domain.id },\n id,\n state: In([ActivityInstanceStatus.Issued, ActivityInstanceStatus.Unassigned])\n },\n { updater: user }\n )\n\n if (!claimed.affected) {\n throw new Error(context.t('error.activity-approval taken by someone else', { activityApproval: id }))\n }\n\n /*\n * Read it again under the hold, and ask again who may take it. What was read above came before the wait:\n * a manager may have put the case in a role's pool meanwhile (assign.ts), and saving that old read back\n * would wipe the pool out - and let someone outside the role take it.\n */\n const current = await repository.findOne({\n where: { domain: { id: domain.id }, id },\n relations: ['domain', 'activity', 'assigneeRoles', 'supervisoryRole', 'updater', 'creator', 'starter', 'terminator'],\n /*\n * Lock the case's row only - postgres refuses FOR UPDATE on the nullable side of the relations' outer\n * joins. `tables` takes table names, not entity names (typeorm SelectQueryBuilder), so it is read off\n * the metadata rather than written here; 'ActivityInstance' failed every pick on postgres.\n */\n ...(writeLockSupported(tx)\n ? { lock: { mode: 'pessimistic_write' as const, tables: [repository.metadata.tableNameWithoutPrefix] } }\n : {})\n })\n\n await assertMayPick(current, context)\n\n /*\n * The case's threads, read under the hold on the case - case first, then thread, the order every way into a\n * waiting case takes (assign.ts, activity-thread/check-authority.ts).\n */\n const threadRepository = tx.getRepository(ActivityThread)\n const threads = await threadRepository.find({\n where: { activityInstance: { id } },\n /* A locking read is a current read - a plain one may answer from the snapshot taken before the wait. */\n ...(writeLockSupported(tx) ? { lock: { mode: 'pessimistic_write' as const } } : {})\n })\n\n /* One person, one thread of a case - the database says so too (ix_activity_thread_0), only not by name. */\n if (threads.some(thread => thread.assigneeId === user.id)) {\n throw new Error(context.t('error.activity-instance already yours', { id }))\n }\n\n const picked = await repository.save({\n ...current,\n transaction: 'pick',\n updater: user\n })\n\n /*\n * A case in a pool waits with one unassigned thread, and that thread is what puts it on the pool's to-do\n * lists. The picker takes that very thread. A new thread beside it left the waiting one behind, and the case\n * stayed on the list of everyone in the pool after one of them had taken it.\n */\n const waiting = threads.find(thread => thread.state === ActivityThreadStatus.Unassigned)\n\n if (!waiting) {\n return (await createActivityThreadsForUsers('pick', picked, [user], context))[0]\n }\n\n const taken = await threadRepository.save(\n Object.assign(waiting, {\n assignee: user,\n state: ActivityThreadStatus.Assigned,\n transaction: 'pick',\n updater: user,\n assignedAt: new Date()\n })\n )\n\n await leaveTheRestOfThePoolOneWaiting('pick', picked, threads, context)\n await updateActivityInstanceState(id, { causedBy: [taken] }, context)\n\n return taken\n}\n"]}
@@ -1,20 +0,0 @@
1
- import { ActivityApproval } from '../../service/activity-approval/activity-approval.js';
2
- import { ActivityInstance } from '../../service/activity-instance/activity-instance.js';
3
- import { ActivityThread } from '../../service/activity-thread/activity-thread.js';
4
- /**
5
- * Whether the caller takes part in this instance or reads every case - for a module whose record hangs on a case and
6
- * opens to the same people (an expense's receipt to its approvers, ADR-0139).
7
- */
8
- export declare function mayReadInstance(instance: ActivityInstance, context: ResolverContext): Promise<boolean>;
9
- /**
10
- * Throws a named refusal unless the caller takes part in this instance or reads every case.
11
- *
12
- * The draft screen reopens an instance by id. Four of plant's working roles (OPERATOR and the other
13
- * hands-on roles) hold no activity-instance query privilege, so while this door asked it they could
14
- * write a draft, see it under "raised by me", and not open it again.
15
- */
16
- export declare function assertMayReadInstance(instance: ActivityInstance, context: ResolverContext): Promise<void>;
17
- /** Throws a named refusal unless the caller takes part in this thread or reads every case. */
18
- export declare function assertMayReadThread(thread: ActivityThread, context: ResolverContext): Promise<void>;
19
- /** An approval is read through its thread: the same people, the same refusal. */
20
- export declare function assertMayReadApproval(approval: ActivityApproval, context: ResolverContext): Promise<void>;
@@ -1,108 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.mayReadInstance = mayReadInstance;
4
- exports.assertMayReadInstance = assertMayReadInstance;
5
- exports.assertMayReadThread = assertMayReadThread;
6
- exports.assertMayReadApproval = assertMayReadApproval;
7
- const auth_base_1 = require("@things-factory/auth-base");
8
- const typeorm_1 = require("typeorm");
9
- const shell_1 = require("@things-factory/shell");
10
- const activity_approval_js_1 = require("../../service/activity-approval/activity-approval.js");
11
- const activity_instance_js_1 = require("../../service/activity-instance/activity-instance.js");
12
- const assignee_pool_js_1 = require("../../service/activity-instance/assignee-pool.js");
13
- const activity_thread_js_1 = require("../../service/activity-thread/activity-thread.js");
14
- const participates_js_1 = require("./participates.js");
15
- /** Whoever may read every instance may read this one. */
16
- async function readsEveryCase(context) {
17
- const { domain, user, unsafeIP, prohibitedPrivileges } = context.state;
18
- return await (0, auth_base_1.checkPermission)({ category: 'activity-instance', privilege: 'query', owner: true }, user, domain, unsafeIP, prohibitedPrivileges);
19
- }
20
- async function factsOf(thread) {
21
- const instance = thread.activityInstanceId
22
- ? await (0, shell_1.getRepository)(activity_instance_js_1.ActivityInstance).findOne({
23
- where: { domain: { id: thread.domainId }, id: thread.activityInstanceId }
24
- })
25
- : null;
26
- const approvals = await (0, shell_1.getRepository)(activity_approval_js_1.ActivityApproval).find({
27
- where: { domain: { id: thread.domainId }, activityThread: { id: thread.id } }
28
- });
29
- return {
30
- domainId: thread.domainId,
31
- assigneeIds: [thread.assigneeId],
32
- issuerId: instance?.issuerId,
33
- creatorId: instance?.creatorId,
34
- starterId: instance?.starterId,
35
- supervisoryRoleId: instance?.supervisoryRoleId,
36
- approvals: approvals.map(one => ({ approverId: one.approverId, approverRoleId: one.approverRoleId }))
37
- };
38
- }
39
- async function factsOfInstance(instance) {
40
- const threads = await (0, shell_1.getRepository)(activity_thread_js_1.ActivityThread).find({
41
- where: { domain: { id: instance.domainId }, activityInstance: { id: instance.id } }
42
- });
43
- const approvals = threads.length
44
- ? await (0, shell_1.getRepository)(activity_approval_js_1.ActivityApproval).find({
45
- where: { domain: { id: instance.domainId }, activityThread: { id: (0, typeorm_1.In)(threads.map(one => one.id)) } }
46
- })
47
- : [];
48
- return {
49
- domainId: instance.domainId,
50
- assigneeIds: threads.map(one => one.assigneeId),
51
- waitingRoleIds: (0, assignee_pool_js_1.poolIdsOf)(instance),
52
- issuerId: instance.issuerId,
53
- creatorId: instance.creatorId,
54
- starterId: instance.starterId,
55
- supervisoryRoleId: instance.supervisoryRoleId,
56
- approvals: approvals.map(one => ({ approverId: one.approverId, approverRoleId: one.approverRoleId }))
57
- };
58
- }
59
- async function readerOf(context) {
60
- const { domain, user } = context.state;
61
- const withRoles = await (0, shell_1.getRepository)(auth_base_1.User).findOne({ where: { id: user.id }, relations: ['roles'] });
62
- const roleIds = (withRoles?.roles || []).filter(role => role.domainId === domain.id).map(role => role.id);
63
- return { domainId: domain.id, userId: user.id, roleIds };
64
- }
65
- /**
66
- * Whether the caller takes part in this instance or reads every case - for a module whose record hangs on a case and
67
- * opens to the same people (an expense's receipt to its approvers, ADR-0139).
68
- */
69
- async function mayReadInstance(instance, context) {
70
- return (0, participates_js_1.participates)(await factsOfInstance(instance), await readerOf(context)) || (await readsEveryCase(context));
71
- }
72
- /**
73
- * Throws a named refusal unless the caller takes part in this instance or reads every case.
74
- *
75
- * The draft screen reopens an instance by id. Four of plant's working roles (OPERATOR and the other
76
- * hands-on roles) hold no activity-instance query privilege, so while this door asked it they could
77
- * write a draft, see it under "raised by me", and not open it again.
78
- */
79
- async function assertMayReadInstance(instance, context) {
80
- if ((0, participates_js_1.participates)(await factsOfInstance(instance), await readerOf(context)))
81
- return;
82
- if (await readsEveryCase(context))
83
- return;
84
- throw new Error(context.t('error.activity-case not a participant'));
85
- }
86
- /** Throws a named refusal unless the caller takes part in this thread or reads every case. */
87
- async function assertMayReadThread(thread, context) {
88
- if ((0, participates_js_1.participates)(await factsOf(thread), await readerOf(context)))
89
- return;
90
- if (await readsEveryCase(context))
91
- return;
92
- throw new Error(context.t('error.activity-case not a participant'));
93
- }
94
- /** An approval is read through its thread: the same people, the same refusal. */
95
- async function assertMayReadApproval(approval, context) {
96
- const { domain } = context.state;
97
- const thread = approval.activityThreadId
98
- ? await (0, shell_1.getRepository)(activity_thread_js_1.ActivityThread).findOne({ where: { domain: { id: domain.id }, id: approval.activityThreadId } })
99
- : null;
100
- if (!thread) {
101
- /* An approval with no thread in this domain has nobody to take part in it. */
102
- if (await readsEveryCase(context))
103
- return;
104
- throw new Error(context.t('error.activity-case not a participant'));
105
- }
106
- await assertMayReadThread(thread, context);
107
- }
108
- //# sourceMappingURL=assert-may-read.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"assert-may-read.js","sourceRoot":"","sources":["../../../server/controllers/activity-read/assert-may-read.ts"],"names":[],"mappings":"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","sourcesContent":["import { checkPermission, User } from '@things-factory/auth-base'\nimport { In } from 'typeorm'\n\nimport { getRepository } from '@things-factory/shell'\n\nimport { ActivityApproval } from '../../service/activity-approval/activity-approval.js'\nimport { ActivityInstance } from '../../service/activity-instance/activity-instance.js'\nimport { poolIdsOf } from '../../service/activity-instance/assignee-pool.js'\nimport { ActivityThread } from '../../service/activity-thread/activity-thread.js'\nimport { CaseFacts, participates } from './participates.js'\n\n/** Whoever may read every instance may read this one. */\nasync function readsEveryCase(context: ResolverContext): Promise<boolean> {\n const { domain, user, unsafeIP, prohibitedPrivileges } = context.state\n\n return await checkPermission(\n { category: 'activity-instance', privilege: 'query', owner: true },\n user,\n domain,\n unsafeIP,\n prohibitedPrivileges\n )\n}\n\nasync function factsOf(thread: ActivityThread): Promise<CaseFacts> {\n const instance = thread.activityInstanceId\n ? await getRepository(ActivityInstance).findOne({\n where: { domain: { id: thread.domainId }, id: thread.activityInstanceId }\n })\n : null\n\n const approvals = await getRepository(ActivityApproval).find({\n where: { domain: { id: thread.domainId }, activityThread: { id: thread.id } }\n })\n\n return {\n domainId: thread.domainId,\n assigneeIds: [thread.assigneeId],\n issuerId: instance?.issuerId,\n creatorId: instance?.creatorId,\n starterId: instance?.starterId,\n supervisoryRoleId: instance?.supervisoryRoleId,\n approvals: approvals.map(one => ({ approverId: one.approverId, approverRoleId: one.approverRoleId }))\n }\n}\n\nasync function factsOfInstance(instance: ActivityInstance): Promise<CaseFacts> {\n const threads = await getRepository(ActivityThread).find({\n where: { domain: { id: instance.domainId }, activityInstance: { id: instance.id } }\n })\n\n const approvals = threads.length\n ? await getRepository(ActivityApproval).find({\n where: { domain: { id: instance.domainId }, activityThread: { id: In(threads.map(one => one.id)) } }\n })\n : []\n\n return {\n domainId: instance.domainId,\n assigneeIds: threads.map(one => one.assigneeId),\n waitingRoleIds: poolIdsOf(instance),\n issuerId: instance.issuerId,\n creatorId: instance.creatorId,\n starterId: instance.starterId,\n supervisoryRoleId: instance.supervisoryRoleId,\n approvals: approvals.map(one => ({ approverId: one.approverId, approverRoleId: one.approverRoleId }))\n }\n}\n\nasync function readerOf(context: ResolverContext) {\n const { domain, user } = context.state\n\n const withRoles = await getRepository(User).findOne({ where: { id: user.id }, relations: ['roles'] })\n const roleIds = (withRoles?.roles || []).filter(role => role.domainId === domain.id).map(role => role.id)\n\n return { domainId: domain.id, userId: user.id, roleIds }\n}\n\n/**\n * Whether the caller takes part in this instance or reads every case - for a module whose record hangs on a case and\n * opens to the same people (an expense's receipt to its approvers, ADR-0139).\n */\nexport async function mayReadInstance(instance: ActivityInstance, context: ResolverContext): Promise<boolean> {\n return participates(await factsOfInstance(instance), await readerOf(context)) || (await readsEveryCase(context))\n}\n\n/**\n * Throws a named refusal unless the caller takes part in this instance or reads every case.\n *\n * The draft screen reopens an instance by id. Four of plant's working roles (OPERATOR and the other\n * hands-on roles) hold no activity-instance query privilege, so while this door asked it they could\n * write a draft, see it under \"raised by me\", and not open it again.\n */\nexport async function assertMayReadInstance(instance: ActivityInstance, context: ResolverContext): Promise<void> {\n if (participates(await factsOfInstance(instance), await readerOf(context))) return\n if (await readsEveryCase(context)) return\n\n throw new Error(context.t('error.activity-case not a participant'))\n}\n\n/** Throws a named refusal unless the caller takes part in this thread or reads every case. */\nexport async function assertMayReadThread(thread: ActivityThread, context: ResolverContext): Promise<void> {\n if (participates(await factsOf(thread), await readerOf(context))) return\n if (await readsEveryCase(context)) return\n\n throw new Error(context.t('error.activity-case not a participant'))\n}\n\n/** An approval is read through its thread: the same people, the same refusal. */\nexport async function assertMayReadApproval(approval: ActivityApproval, context: ResolverContext): Promise<void> {\n const { domain } = context.state\n\n const thread = approval.activityThreadId\n ? await getRepository(ActivityThread).findOne({ where: { domain: { id: domain.id }, id: approval.activityThreadId } })\n : null\n\n if (!thread) {\n /* An approval with no thread in this domain has nobody to take part in it. */\n if (await readsEveryCase(context)) return\n throw new Error(context.t('error.activity-case not a participant'))\n }\n\n await assertMayReadThread(thread, context)\n}\n"]}