@things-factory/worklist 10.1.248 → 10.1.249

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/dist-client/activity-cells.d.ts +21 -0
  2. package/dist-client/activity-cells.js +117 -0
  3. package/dist-client/activity-cells.js.map +1 -0
  4. package/dist-client/activity-state-counts.d.ts +6 -0
  5. package/dist-client/activity-state-counts.js +23 -0
  6. package/dist-client/activity-state-counts.js.map +1 -0
  7. package/dist-client/activity-summary-generator.d.ts +2 -0
  8. package/dist-client/activity-summary-generator.js +155 -0
  9. package/dist-client/activity-summary-generator.js.map +1 -0
  10. package/dist-client/approval-progress.d.ts +18 -0
  11. package/dist-client/approval-progress.js +31 -0
  12. package/dist-client/approval-progress.js.map +1 -0
  13. package/dist-client/bootstrap.d.ts +5 -0
  14. package/dist-client/bootstrap.js +63 -0
  15. package/dist-client/bootstrap.js.map +1 -0
  16. package/dist-client/chip-counts.d.ts +7 -0
  17. package/dist-client/chip-counts.js +11 -0
  18. package/dist-client/chip-counts.js.map +1 -0
  19. package/dist-client/chip-filters.d.ts +60 -0
  20. package/dist-client/chip-filters.js +102 -0
  21. package/dist-client/chip-filters.js.map +1 -0
  22. package/dist-client/components/activity-/bowner-view.d.ts +1 -0
  23. package/dist-client/components/activity-/bowner-view.js +104 -0
  24. package/dist-client/components/activity-/bowner-view.js.map +1 -0
  25. package/dist-client/components/activity-approval-ribon.d.ts +31 -0
  26. package/dist-client/components/activity-approval-ribon.js +103 -0
  27. package/dist-client/components/activity-approval-ribon.js.map +1 -0
  28. package/dist-client/components/activity-fields.d.ts +77 -0
  29. package/dist-client/components/activity-fields.js +424 -0
  30. package/dist-client/components/activity-fields.js.map +1 -0
  31. package/dist-client/components/activity-instance-preview.d.ts +2 -0
  32. package/dist-client/components/activity-instance-preview.js +177 -0
  33. package/dist-client/components/activity-instance-preview.js.map +1 -0
  34. package/dist-client/components/activity-instance-ribon.d.ts +32 -0
  35. package/dist-client/components/activity-instance-ribon.js +91 -0
  36. package/dist-client/components/activity-instance-ribon.js.map +1 -0
  37. package/dist-client/components/activity-intro-view.d.ts +1 -0
  38. package/dist-client/components/activity-intro-view.js +104 -0
  39. package/dist-client/components/activity-intro-view.js.map +1 -0
  40. package/dist-client/components/activity-reporter-view.d.ts +1 -0
  41. package/dist-client/components/activity-reporter-view.js +103 -0
  42. package/dist-client/components/activity-reporter-view.js.map +1 -0
  43. package/dist-client/components/activity-starter-form.d.ts +19 -0
  44. package/dist-client/components/activity-starter-form.js +264 -0
  45. package/dist-client/components/activity-starter-form.js.map +1 -0
  46. package/dist-client/components/activity-thread-ribon.d.ts +38 -0
  47. package/dist-client/components/activity-thread-ribon.js +95 -0
  48. package/dist-client/components/activity-thread-ribon.js.map +1 -0
  49. package/dist-client/components/activity-thread-timeline.d.ts +28 -0
  50. package/dist-client/components/activity-thread-timeline.js +339 -0
  51. package/dist-client/components/activity-thread-timeline.js.map +1 -0
  52. package/dist-client/components/can-pick.d.ts +15 -0
  53. package/dist-client/components/can-pick.js +16 -0
  54. package/dist-client/components/can-pick.js.map +1 -0
  55. package/dist-client/components/decision-content.d.ts +35 -0
  56. package/dist-client/components/decision-content.js +331 -0
  57. package/dist-client/components/decision-content.js.map +1 -0
  58. package/dist-client/components/decision-slots.d.ts +153 -0
  59. package/dist-client/components/decision-slots.js +152 -0
  60. package/dist-client/components/decision-slots.js.map +1 -0
  61. package/dist-client/components/mutation-outcome.d.ts +57 -0
  62. package/dist-client/components/mutation-outcome.js +78 -0
  63. package/dist-client/components/mutation-outcome.js.map +1 -0
  64. package/dist-client/components/say-outcome.d.ts +25 -0
  65. package/dist-client/components/say-outcome.js +51 -0
  66. package/dist-client/components/say-outcome.js.map +1 -0
  67. package/dist-client/components/state-ribon.d.ts +48 -0
  68. package/dist-client/components/state-ribon.js +225 -0
  69. package/dist-client/components/state-ribon.js.map +1 -0
  70. package/dist-client/components/timeline-entries.d.ts +38 -0
  71. package/dist-client/components/timeline-entries.js +62 -0
  72. package/dist-client/components/timeline-entries.js.map +1 -0
  73. package/dist-client/components/work-box-groups.d.ts +25 -0
  74. package/dist-client/components/work-box-groups.js +98 -0
  75. package/dist-client/components/work-box-groups.js.map +1 -0
  76. package/dist-client/due.d.ts +16 -0
  77. package/dist-client/due.js +78 -0
  78. package/dist-client/due.js.map +1 -0
  79. package/dist-client/entity360/person-open-work-section.d.ts +23 -0
  80. package/dist-client/entity360/person-open-work-section.js +79 -0
  81. package/dist-client/entity360/person-open-work-section.js.map +1 -0
  82. package/dist-client/grist-editor/grist-editor-activity-search-key.d.ts +12 -0
  83. package/dist-client/grist-editor/grist-editor-activity-search-key.js +70 -0
  84. package/dist-client/grist-editor/grist-editor-activity-search-key.js.map +1 -0
  85. package/dist-client/grist-editor/grist-renderer-activity-search-key.d.ts +3 -0
  86. package/dist-client/grist-editor/grist-renderer-activity-search-key.js +25 -0
  87. package/dist-client/grist-editor/grist-renderer-activity-search-key.js.map +1 -0
  88. package/dist-client/grist-editor/popup-activity-search-keys-input.d.ts +17 -0
  89. package/dist-client/grist-editor/popup-activity-search-keys-input.js +175 -0
  90. package/dist-client/grist-editor/popup-activity-search-keys-input.js.map +1 -0
  91. package/dist-client/index.d.ts +6 -0
  92. package/dist-client/index.js +7 -0
  93. package/dist-client/index.js.map +1 -0
  94. package/dist-client/my-work-menus.d.ts +90 -0
  95. package/dist-client/my-work-menus.js +20 -0
  96. package/dist-client/my-work-menus.js.map +1 -0
  97. package/dist-client/pages/activity/activity-list-page.d.ts +53 -0
  98. package/dist-client/pages/activity/activity-list-page.js +600 -0
  99. package/dist-client/pages/activity/activity-list-page.js.map +1 -0
  100. package/dist-client/pages/activity/activity-model-item-list.d.ts +24 -0
  101. package/dist-client/pages/activity/activity-model-item-list.js +292 -0
  102. package/dist-client/pages/activity/activity-model-item-list.js.map +1 -0
  103. package/dist-client/pages/activity/activity-page.d.ts +56 -0
  104. package/dist-client/pages/activity/activity-page.js +396 -0
  105. package/dist-client/pages/activity/activity-page.js.map +1 -0
  106. package/dist-client/pages/activity/activity-partial-view.d.ts +13 -0
  107. package/dist-client/pages/activity/activity-partial-view.js +56 -0
  108. package/dist-client/pages/activity/activity-partial-view.js.map +1 -0
  109. package/dist-client/pages/activity/assignee-roles-cell.d.ts +32 -0
  110. package/dist-client/pages/activity/assignee-roles-cell.js +26 -0
  111. package/dist-client/pages/activity/assignee-roles-cell.js.map +1 -0
  112. package/dist-client/pages/activity/starter-list-page.d.ts +31 -0
  113. package/dist-client/pages/activity/starter-list-page.js +172 -0
  114. package/dist-client/pages/activity/starter-list-page.js.map +1 -0
  115. package/dist-client/pages/activity-approval/activity-approval-importer.d.ts +23 -0
  116. package/dist-client/pages/activity-approval/activity-approval-importer.js +94 -0
  117. package/dist-client/pages/activity-approval/activity-approval-importer.js.map +1 -0
  118. package/dist-client/pages/activity-approval/activity-approval-list-page.d.ts +55 -0
  119. package/dist-client/pages/activity-approval/activity-approval-list-page.js +253 -0
  120. package/dist-client/pages/activity-approval/activity-approval-list-page.js.map +1 -0
  121. package/dist-client/pages/activity-approval/activity-approval-page.d.ts +158 -0
  122. package/dist-client/pages/activity-approval/activity-approval-page.js +875 -0
  123. package/dist-client/pages/activity-approval/activity-approval-page.js.map +1 -0
  124. package/dist-client/pages/activity-approval/approval-gate.d.ts +29 -0
  125. package/dist-client/pages/activity-approval/approval-gate.js +21 -0
  126. package/dist-client/pages/activity-approval/approval-gate.js.map +1 -0
  127. package/dist-client/pages/activity-catalog/activity-catalog-page.d.ts +31 -0
  128. package/dist-client/pages/activity-catalog/activity-catalog-page.js +420 -0
  129. package/dist-client/pages/activity-catalog/activity-catalog-page.js.map +1 -0
  130. package/dist-client/pages/activity-catalog/activity-detail-actions.d.ts +34 -0
  131. package/dist-client/pages/activity-catalog/activity-detail-actions.js +18 -0
  132. package/dist-client/pages/activity-catalog/activity-detail-actions.js.map +1 -0
  133. package/dist-client/pages/activity-catalog/activity-detail-page.d.ts +90 -0
  134. package/dist-client/pages/activity-catalog/activity-detail-page.js +525 -0
  135. package/dist-client/pages/activity-catalog/activity-detail-page.js.map +1 -0
  136. package/dist-client/pages/activity-catalog/activity-guide.d.ts +16 -0
  137. package/dist-client/pages/activity-catalog/activity-guide.js +5 -0
  138. package/dist-client/pages/activity-catalog/activity-guide.js.map +1 -0
  139. package/dist-client/pages/activity-catalog/activity-panels.d.ts +80 -0
  140. package/dist-client/pages/activity-catalog/activity-panels.js +53 -0
  141. package/dist-client/pages/activity-catalog/activity-panels.js.map +1 -0
  142. package/dist-client/pages/activity-catalog/activity-stage.d.ts +31 -0
  143. package/dist-client/pages/activity-catalog/activity-stage.js +44 -0
  144. package/dist-client/pages/activity-catalog/activity-stage.js.map +1 -0
  145. package/dist-client/pages/activity-instance/activity-instance-list-page.d.ts +42 -0
  146. package/dist-client/pages/activity-instance/activity-instance-list-page.js +306 -0
  147. package/dist-client/pages/activity-instance/activity-instance-list-page.js.map +1 -0
  148. package/dist-client/pages/activity-instance/activity-instance-search-page.d.ts +69 -0
  149. package/dist-client/pages/activity-instance/activity-instance-search-page.js +309 -0
  150. package/dist-client/pages/activity-instance/activity-instance-search-page.js.map +1 -0
  151. package/dist-client/pages/activity-instance/activity-instance-start-page.d.ts +54 -0
  152. package/dist-client/pages/activity-instance/activity-instance-start-page.js +557 -0
  153. package/dist-client/pages/activity-instance/activity-instance-start-page.js.map +1 -0
  154. package/dist-client/pages/activity-instance/activity-instance-view.d.ts +36 -0
  155. package/dist-client/pages/activity-instance/activity-instance-view.js +494 -0
  156. package/dist-client/pages/activity-instance/activity-instance-view.js.map +1 -0
  157. package/dist-client/pages/activity-instance/discard-offer.d.ts +11 -0
  158. package/dist-client/pages/activity-instance/discard-offer.js +11 -0
  159. package/dist-client/pages/activity-instance/discard-offer.js.map +1 -0
  160. package/dist-client/pages/activity-stats/activity-stats-importer.d.ts +23 -0
  161. package/dist-client/pages/activity-stats/activity-stats-importer.js +94 -0
  162. package/dist-client/pages/activity-stats/activity-stats-importer.js.map +1 -0
  163. package/dist-client/pages/activity-stats/activity-stats-list-page.d.ts +55 -0
  164. package/dist-client/pages/activity-stats/activity-stats-list-page.js +253 -0
  165. package/dist-client/pages/activity-stats/activity-stats-list-page.js.map +1 -0
  166. package/dist-client/pages/activity-store/activity-store-page.d.ts +41 -0
  167. package/dist-client/pages/activity-store/activity-store-page.js +210 -0
  168. package/dist-client/pages/activity-store/activity-store-page.js.map +1 -0
  169. package/dist-client/pages/activity-supervisor/reporter-list-page.d.ts +30 -0
  170. package/dist-client/pages/activity-supervisor/reporter-list-page.js +190 -0
  171. package/dist-client/pages/activity-supervisor/reporter-list-page.js.map +1 -0
  172. package/dist-client/pages/activity-template/activity-template-importer.d.ts +11 -0
  173. package/dist-client/pages/activity-template/activity-template-importer.js +98 -0
  174. package/dist-client/pages/activity-template/activity-template-importer.js.map +1 -0
  175. package/dist-client/pages/activity-template/activity-template-list-page.d.ts +53 -0
  176. package/dist-client/pages/activity-template/activity-template-list-page.js +377 -0
  177. package/dist-client/pages/activity-template/activity-template-list-page.js.map +1 -0
  178. package/dist-client/pages/activity-template/activity-template-model-item-list.d.ts +1 -0
  179. package/dist-client/pages/activity-template/activity-template-model-item-list.js +41 -0
  180. package/dist-client/pages/activity-template/activity-template-model-item-list.js.map +1 -0
  181. package/dist-client/pages/activity-thread/activity-thread-importer.d.ts +11 -0
  182. package/dist-client/pages/activity-thread/activity-thread-importer.js +96 -0
  183. package/dist-client/pages/activity-thread/activity-thread-importer.js.map +1 -0
  184. package/dist-client/pages/activity-thread/activity-thread-list-page.d.ts +52 -0
  185. package/dist-client/pages/activity-thread/activity-thread-list-page.js +248 -0
  186. package/dist-client/pages/activity-thread/activity-thread-list-page.js.map +1 -0
  187. package/dist-client/pages/activity-thread/activity-thread-page.d.ts +91 -0
  188. package/dist-client/pages/activity-thread/activity-thread-page.js +593 -0
  189. package/dist-client/pages/activity-thread/activity-thread-page.js.map +1 -0
  190. package/dist-client/pages/activity-thread/activity-thread-view-page.d.ts +56 -0
  191. package/dist-client/pages/activity-thread/activity-thread-view-page.js +385 -0
  192. package/dist-client/pages/activity-thread/activity-thread-view-page.js.map +1 -0
  193. package/dist-client/pages/activity-thread/activity-thread-view.d.ts +31 -0
  194. package/dist-client/pages/activity-thread/activity-thread-view.js +134 -0
  195. package/dist-client/pages/activity-thread/activity-thread-view.js.map +1 -0
  196. package/dist-client/pages/activity-thread/thread-sections.d.ts +34 -0
  197. package/dist-client/pages/activity-thread/thread-sections.js +36 -0
  198. package/dist-client/pages/activity-thread/thread-sections.js.map +1 -0
  199. package/dist-client/pages/installable-activity/installable-activity-list-page.d.ts +64 -0
  200. package/dist-client/pages/installable-activity/installable-activity-list-page.js +424 -0
  201. package/dist-client/pages/installable-activity/installable-activity-list-page.js.map +1 -0
  202. package/dist-client/pages/installable-activity/installable-activity-model-item-list.d.ts +1 -0
  203. package/dist-client/pages/installable-activity/installable-activity-model-item-list.js +20 -0
  204. package/dist-client/pages/installable-activity/installable-activity-model-item-list.js.map +1 -0
  205. package/dist-client/pages/todo/approval-done-list-page.d.ts +42 -0
  206. package/dist-client/pages/todo/approval-done-list-page.js +365 -0
  207. package/dist-client/pages/todo/approval-done-list-page.js.map +1 -0
  208. package/dist-client/pages/todo/approval-pending-list-page.d.ts +79 -0
  209. package/dist-client/pages/todo/approval-pending-list-page.js +683 -0
  210. package/dist-client/pages/todo/approval-pending-list-page.js.map +1 -0
  211. package/dist-client/pages/todo/done-list-calendar-page.d.ts +47 -0
  212. package/dist-client/pages/todo/done-list-calendar-page.js +379 -0
  213. package/dist-client/pages/todo/done-list-calendar-page.js.map +1 -0
  214. package/dist-client/pages/todo/draft-list-page.d.ts +64 -0
  215. package/dist-client/pages/todo/draft-list-page.js +404 -0
  216. package/dist-client/pages/todo/draft-list-page.js.map +1 -0
  217. package/dist-client/pages/todo/list-thumbnail.d.ts +25 -0
  218. package/dist-client/pages/todo/list-thumbnail.js +25 -0
  219. package/dist-client/pages/todo/list-thumbnail.js.map +1 -0
  220. package/dist-client/pages/todo/pickable-list-page.d.ts +37 -0
  221. package/dist-client/pages/todo/pickable-list-page.js +271 -0
  222. package/dist-client/pages/todo/pickable-list-page.js.map +1 -0
  223. package/dist-client/pages/todo/todo-list-page.d.ts +66 -0
  224. package/dist-client/pages/todo/todo-list-page.js +503 -0
  225. package/dist-client/pages/todo/todo-list-page.js.map +1 -0
  226. package/dist-client/pages/todo/work-box.d.ts +52 -0
  227. package/dist-client/pages/todo/work-box.js +54 -0
  228. package/dist-client/pages/todo/work-box.js.map +1 -0
  229. package/dist-client/pages/work-door/door-links.d.ts +22 -0
  230. package/dist-client/pages/work-door/door-links.js +20 -0
  231. package/dist-client/pages/work-door/door-links.js.map +1 -0
  232. package/dist-client/pages/work-door/door-sentence.d.ts +75 -0
  233. package/dist-client/pages/work-door/door-sentence.js +107 -0
  234. package/dist-client/pages/work-door/door-sentence.js.map +1 -0
  235. package/dist-client/pages/work-door/door-words.d.ts +48 -0
  236. package/dist-client/pages/work-door/door-words.js +84 -0
  237. package/dist-client/pages/work-door/door-words.js.map +1 -0
  238. package/dist-client/route.d.ts +1 -0
  239. package/dist-client/route.js +77 -0
  240. package/dist-client/route.js.map +1 -0
  241. package/dist-client/templates/activity-approval-context-template.d.ts +3 -0
  242. package/dist-client/templates/activity-approval-context-template.js +105 -0
  243. package/dist-client/templates/activity-approval-context-template.js.map +1 -0
  244. package/dist-client/templates/activity-instance-context-template.d.ts +3 -0
  245. package/dist-client/templates/activity-instance-context-template.js +118 -0
  246. package/dist-client/templates/activity-instance-context-template.js.map +1 -0
  247. package/dist-client/templates/activity-thread-context-template.d.ts +3 -0
  248. package/dist-client/templates/activity-thread-context-template.js +74 -0
  249. package/dist-client/templates/activity-thread-context-template.js.map +1 -0
  250. package/dist-client/templates/context-panel.d.ts +26 -0
  251. package/dist-client/templates/context-panel.js +182 -0
  252. package/dist-client/templates/context-panel.js.map +1 -0
  253. package/dist-client/tsconfig.tsbuildinfo +1 -0
  254. package/dist-client/types/activity-approval.d.ts +36 -0
  255. package/dist-client/types/activity-approval.js +17 -0
  256. package/dist-client/types/activity-approval.js.map +1 -0
  257. package/dist-client/types/activity-instance-type.d.ts +77 -0
  258. package/dist-client/types/activity-instance-type.js +11 -0
  259. package/dist-client/types/activity-instance-type.js.map +1 -0
  260. package/dist-client/types/activity-instance.d.ts +72 -0
  261. package/dist-client/types/activity-instance.js +36 -0
  262. package/dist-client/types/activity-instance.js.map +1 -0
  263. package/dist-client/types/activity-model-type.d.ts +31 -0
  264. package/dist-client/types/activity-model-type.js +18 -0
  265. package/dist-client/types/activity-model-type.js.map +1 -0
  266. package/dist-client/types/activity-search-key-item-type.d.ts +6 -0
  267. package/dist-client/types/activity-search-key-item-type.js +3 -0
  268. package/dist-client/types/activity-search-key-item-type.js.map +1 -0
  269. package/dist-client/types/activity-thread-history.d.ts +28 -0
  270. package/dist-client/types/activity-thread-history.js +7 -0
  271. package/dist-client/types/activity-thread-history.js.map +1 -0
  272. package/dist-client/types/activity-thread-type.d.ts +15 -0
  273. package/dist-client/types/activity-thread-type.js +7 -0
  274. package/dist-client/types/activity-thread-type.js.map +1 -0
  275. package/dist-client/types/activity-thread.d.ts +39 -0
  276. package/dist-client/types/activity-thread.js +18 -0
  277. package/dist-client/types/activity-thread.js.map +1 -0
  278. package/dist-client/types/activity.d.ts +68 -0
  279. package/dist-client/types/activity.js +40 -0
  280. package/dist-client/types/activity.js.map +1 -0
  281. package/dist-client/types/types.d.ts +23 -0
  282. package/dist-client/types/types.js +42 -0
  283. package/dist-client/types/types.js.map +1 -0
  284. package/dist-client/when.d.ts +4 -0
  285. package/dist-client/when.js +72 -0
  286. package/dist-client/when.js.map +1 -0
  287. package/dist-client/work-calendar-sources.d.ts +96 -0
  288. package/dist-client/work-calendar-sources.js +88 -0
  289. package/dist-client/work-calendar-sources.js.map +1 -0
  290. package/dist-server/controllers/activity-approval/_abort.d.ts +5 -0
  291. package/dist-server/controllers/activity-approval/_abort.js +29 -0
  292. package/dist-server/controllers/activity-approval/_abort.js.map +1 -0
  293. package/dist-server/controllers/activity-approval/abort.d.ts +5 -0
  294. package/dist-server/controllers/activity-approval/abort.js +35 -0
  295. package/dist-server/controllers/activity-approval/abort.js.map +1 -0
  296. package/dist-server/controllers/activity-approval/approval-line.d.ts +138 -0
  297. package/dist-server/controllers/activity-approval/approval-line.js +186 -0
  298. package/dist-server/controllers/activity-approval/approval-line.js.map +1 -0
  299. package/dist-server/controllers/activity-approval/approve.d.ts +5 -0
  300. package/dist-server/controllers/activity-approval/approve.js +142 -0
  301. package/dist-server/controllers/activity-approval/approve.js.map +1 -0
  302. package/dist-server/controllers/activity-approval/check-authority.d.ts +8 -0
  303. package/dist-server/controllers/activity-approval/check-authority.js +29 -0
  304. package/dist-server/controllers/activity-approval/check-authority.js.map +1 -0
  305. package/dist-server/controllers/activity-approval/claim.d.ts +42 -0
  306. package/dist-server/controllers/activity-approval/claim.js +77 -0
  307. package/dist-server/controllers/activity-approval/claim.js.map +1 -0
  308. package/dist-server/controllers/activity-approval/create-approval.d.ts +41 -0
  309. package/dist-server/controllers/activity-approval/create-approval.js +85 -0
  310. package/dist-server/controllers/activity-approval/create-approval.js.map +1 -0
  311. package/dist-server/controllers/activity-approval/delegate.d.ts +23 -0
  312. package/dist-server/controllers/activity-approval/delegate.js +113 -0
  313. package/dist-server/controllers/activity-approval/delegate.js.map +1 -0
  314. package/dist-server/controllers/activity-approval/delegation.d.ts +21 -0
  315. package/dist-server/controllers/activity-approval/delegation.js +17 -0
  316. package/dist-server/controllers/activity-approval/delegation.js.map +1 -0
  317. package/dist-server/controllers/activity-approval/opinion.d.ts +10 -0
  318. package/dist-server/controllers/activity-approval/opinion.js +43 -0
  319. package/dist-server/controllers/activity-approval/opinion.js.map +1 -0
  320. package/dist-server/controllers/activity-approval/reject.d.ts +5 -0
  321. package/dist-server/controllers/activity-approval/reject.js +93 -0
  322. package/dist-server/controllers/activity-approval/reject.js.map +1 -0
  323. package/dist-server/controllers/activity-approval/resolve-judgeable-seats.d.ts +21 -0
  324. package/dist-server/controllers/activity-approval/resolve-judgeable-seats.js +60 -0
  325. package/dist-server/controllers/activity-approval/resolve-judgeable-seats.js.map +1 -0
  326. package/dist-server/controllers/activity-approval/save.d.ts +5 -0
  327. package/dist-server/controllers/activity-approval/save.js +56 -0
  328. package/dist-server/controllers/activity-approval/save.js.map +1 -0
  329. package/dist-server/controllers/activity-approval/seat-standing.d.ts +66 -0
  330. package/dist-server/controllers/activity-approval/seat-standing.js +57 -0
  331. package/dist-server/controllers/activity-approval/seat-standing.js.map +1 -0
  332. package/dist-server/controllers/activity-installation/activity-installation-controller.d.ts +79 -0
  333. package/dist-server/controllers/activity-installation/activity-installation-controller.js +99 -0
  334. package/dist-server/controllers/activity-installation/activity-installation-controller.js.map +1 -0
  335. package/dist-server/controllers/activity-installation/call-webhook.d.ts +3 -0
  336. package/dist-server/controllers/activity-installation/call-webhook.js +42 -0
  337. package/dist-server/controllers/activity-installation/call-webhook.js.map +1 -0
  338. package/dist-server/controllers/activity-installation/installable-to-activity.d.ts +77 -0
  339. package/dist-server/controllers/activity-installation/installable-to-activity.js +68 -0
  340. package/dist-server/controllers/activity-installation/installable-to-activity.js.map +1 -0
  341. package/dist-server/controllers/activity-installation/registry-conflict.d.ts +47 -0
  342. package/dist-server/controllers/activity-installation/registry-conflict.js +47 -0
  343. package/dist-server/controllers/activity-installation/registry-conflict.js.map +1 -0
  344. package/dist-server/controllers/activity-instance/abort.d.ts +5 -0
  345. package/dist-server/controllers/activity-instance/abort.js +62 -0
  346. package/dist-server/controllers/activity-instance/abort.js.map +1 -0
  347. package/dist-server/controllers/activity-instance/approval-expectation.d.ts +34 -0
  348. package/dist-server/controllers/activity-instance/approval-expectation.js +18 -0
  349. package/dist-server/controllers/activity-instance/approval-expectation.js.map +1 -0
  350. package/dist-server/controllers/activity-instance/approval-line-input.d.ts +29 -0
  351. package/dist-server/controllers/activity-instance/approval-line-input.js +44 -0
  352. package/dist-server/controllers/activity-instance/approval-line-input.js.map +1 -0
  353. package/dist-server/controllers/activity-instance/assign.d.ts +8 -0
  354. package/dist-server/controllers/activity-instance/assign.js +152 -0
  355. package/dist-server/controllers/activity-instance/assign.js.map +1 -0
  356. package/dist-server/controllers/activity-instance/assignee-input.d.ts +25 -0
  357. package/dist-server/controllers/activity-instance/assignee-input.js +28 -0
  358. package/dist-server/controllers/activity-instance/assignee-input.js.map +1 -0
  359. package/dist-server/controllers/activity-instance/claim-draft.d.ts +17 -0
  360. package/dist-server/controllers/activity-instance/claim-draft.js +30 -0
  361. package/dist-server/controllers/activity-instance/claim-draft.js.map +1 -0
  362. package/dist-server/controllers/activity-instance/discard-draft.d.ts +22 -0
  363. package/dist-server/controllers/activity-instance/discard-draft.js +54 -0
  364. package/dist-server/controllers/activity-instance/discard-draft.js.map +1 -0
  365. package/dist-server/controllers/activity-instance/draft.d.ts +3 -0
  366. package/dist-server/controllers/activity-instance/draft.js +93 -0
  367. package/dist-server/controllers/activity-instance/draft.js.map +1 -0
  368. package/dist-server/controllers/activity-instance/end.d.ts +6 -0
  369. package/dist-server/controllers/activity-instance/end.js +65 -0
  370. package/dist-server/controllers/activity-instance/end.js.map +1 -0
  371. package/dist-server/controllers/activity-instance/entitlement.d.ts +25 -0
  372. package/dist-server/controllers/activity-instance/entitlement.js +110 -0
  373. package/dist-server/controllers/activity-instance/entitlement.js.map +1 -0
  374. package/dist-server/controllers/activity-instance/index.d.ts +6 -0
  375. package/dist-server/controllers/activity-instance/index.js +10 -0
  376. package/dist-server/controllers/activity-instance/index.js.map +1 -0
  377. package/dist-server/controllers/activity-instance/issue.d.ts +3 -0
  378. package/dist-server/controllers/activity-instance/issue.js +272 -0
  379. package/dist-server/controllers/activity-instance/issue.js.map +1 -0
  380. package/dist-server/controllers/activity-instance/pick.d.ts +2 -0
  381. package/dist-server/controllers/activity-instance/pick.js +112 -0
  382. package/dist-server/controllers/activity-instance/pick.js.map +1 -0
  383. package/dist-server/controllers/activity-read/assert-may-read.d.ts +20 -0
  384. package/dist-server/controllers/activity-read/assert-may-read.js +108 -0
  385. package/dist-server/controllers/activity-read/assert-may-read.js.map +1 -0
  386. package/dist-server/controllers/activity-read/participates.d.ts +41 -0
  387. package/dist-server/controllers/activity-read/participates.js +42 -0
  388. package/dist-server/controllers/activity-read/participates.js.map +1 -0
  389. package/dist-server/controllers/activity-thread/_abort.d.ts +5 -0
  390. package/dist-server/controllers/activity-thread/_abort.js +36 -0
  391. package/dist-server/controllers/activity-thread/_abort.js.map +1 -0
  392. package/dist-server/controllers/activity-thread/abort.d.ts +5 -0
  393. package/dist-server/controllers/activity-thread/abort.js +45 -0
  394. package/dist-server/controllers/activity-thread/abort.js.map +1 -0
  395. package/dist-server/controllers/activity-thread/check-authority.d.ts +2 -0
  396. package/dist-server/controllers/activity-thread/check-authority.js +65 -0
  397. package/dist-server/controllers/activity-thread/check-authority.js.map +1 -0
  398. package/dist-server/controllers/activity-thread/delegate.d.ts +7 -0
  399. package/dist-server/controllers/activity-thread/delegate.js +66 -0
  400. package/dist-server/controllers/activity-thread/delegate.js.map +1 -0
  401. package/dist-server/controllers/activity-thread/end.d.ts +6 -0
  402. package/dist-server/controllers/activity-thread/end.js +44 -0
  403. package/dist-server/controllers/activity-thread/end.js.map +1 -0
  404. package/dist-server/controllers/activity-thread/index.d.ts +7 -0
  405. package/dist-server/controllers/activity-thread/index.js +11 -0
  406. package/dist-server/controllers/activity-thread/index.js.map +1 -0
  407. package/dist-server/controllers/activity-thread/restart.d.ts +2 -0
  408. package/dist-server/controllers/activity-thread/restart.js +63 -0
  409. package/dist-server/controllers/activity-thread/restart.js.map +1 -0
  410. package/dist-server/controllers/activity-thread/save.d.ts +3 -0
  411. package/dist-server/controllers/activity-thread/save.js +45 -0
  412. package/dist-server/controllers/activity-thread/save.js.map +1 -0
  413. package/dist-server/controllers/activity-thread/start.d.ts +2 -0
  414. package/dist-server/controllers/activity-thread/start.js +43 -0
  415. package/dist-server/controllers/activity-thread/start.js.map +1 -0
  416. package/dist-server/controllers/activity-thread/submit.d.ts +6 -0
  417. package/dist-server/controllers/activity-thread/submit.js +90 -0
  418. package/dist-server/controllers/activity-thread/submit.js.map +1 -0
  419. package/dist-server/controllers/common.d.ts +34 -0
  420. package/dist-server/controllers/common.js +346 -0
  421. package/dist-server/controllers/common.js.map +1 -0
  422. package/dist-server/controllers/index.d.ts +5 -0
  423. package/dist-server/controllers/index.js +18 -0
  424. package/dist-server/controllers/index.js.map +1 -0
  425. package/dist-server/index.d.ts +6 -0
  426. package/dist-server/index.js +18 -0
  427. package/dist-server/index.js.map +1 -0
  428. package/dist-server/role-tasks.d.ts +2 -0
  429. package/dist-server/role-tasks.js +16 -0
  430. package/dist-server/role-tasks.js.map +1 -0
  431. package/dist-server/routes.d.ts +1 -0
  432. package/dist-server/routes.js +57 -0
  433. package/dist-server/routes.js.map +1 -0
  434. package/dist-server/service/activity/activity-decision-key-item-type.d.ts +206 -0
  435. package/dist-server/service/activity/activity-decision-key-item-type.js +182 -0
  436. package/dist-server/service/activity/activity-decision-key-item-type.js.map +1 -0
  437. package/dist-server/service/activity/activity-history.d.ts +44 -0
  438. package/dist-server/service/activity/activity-history.js +220 -0
  439. package/dist-server/service/activity/activity-history.js.map +1 -0
  440. package/dist-server/service/activity/activity-model-type.d.ts +49 -0
  441. package/dist-server/service/activity/activity-model-type.js +138 -0
  442. package/dist-server/service/activity/activity-model-type.js.map +1 -0
  443. package/dist-server/service/activity/activity-mutation.d.ts +12 -0
  444. package/dist-server/service/activity/activity-mutation.js +416 -0
  445. package/dist-server/service/activity/activity-mutation.js.map +1 -0
  446. package/dist-server/service/activity/activity-query.d.ts +24 -0
  447. package/dist-server/service/activity/activity-query.js +310 -0
  448. package/dist-server/service/activity/activity-query.js.map +1 -0
  449. package/dist-server/service/activity/activity-search-key-item-type.d.ts +6 -0
  450. package/dist-server/service/activity/activity-search-key-item-type.js +28 -0
  451. package/dist-server/service/activity/activity-search-key-item-type.js.map +1 -0
  452. package/dist-server/service/activity/activity-type.d.ts +84 -0
  453. package/dist-server/service/activity/activity-type.js +269 -0
  454. package/dist-server/service/activity/activity-type.js.map +1 -0
  455. package/dist-server/service/activity/activity.d.ts +135 -0
  456. package/dist-server/service/activity/activity.js +328 -0
  457. package/dist-server/service/activity/activity.js.map +1 -0
  458. package/dist-server/service/activity/approval-line-seats.d.ts +12 -0
  459. package/dist-server/service/activity/approval-line-seats.js +68 -0
  460. package/dist-server/service/activity/approval-line-seats.js.map +1 -0
  461. package/dist-server/service/activity/credential-field.d.ts +35 -0
  462. package/dist-server/service/activity/credential-field.js +89 -0
  463. package/dist-server/service/activity/credential-field.js.map +1 -0
  464. package/dist-server/service/activity/decision-key-declaration.d.ts +106 -0
  465. package/dist-server/service/activity/decision-key-declaration.js +181 -0
  466. package/dist-server/service/activity/decision-key-declaration.js.map +1 -0
  467. package/dist-server/service/activity/declaration-guard-subscriber.d.ts +24 -0
  468. package/dist-server/service/activity/declaration-guard-subscriber.js +46 -0
  469. package/dist-server/service/activity/declaration-guard-subscriber.js.map +1 -0
  470. package/dist-server/service/activity/event-subscriber.d.ts +7 -0
  471. package/dist-server/service/activity/event-subscriber.js +21 -0
  472. package/dist-server/service/activity/event-subscriber.js.map +1 -0
  473. package/dist-server/service/activity/freeze-decision-sentences-for.d.ts +11 -0
  474. package/dist-server/service/activity/freeze-decision-sentences-for.js +18 -0
  475. package/dist-server/service/activity/freeze-decision-sentences-for.js.map +1 -0
  476. package/dist-server/service/activity/index.d.ts +9 -0
  477. package/dist-server/service/activity/index.js +13 -0
  478. package/dist-server/service/activity/index.js.map +1 -0
  479. package/dist-server/service/activity/search-key-declaration.d.ts +38 -0
  480. package/dist-server/service/activity/search-key-declaration.js +49 -0
  481. package/dist-server/service/activity/search-key-declaration.js.map +1 -0
  482. package/dist-server/service/activity-approval/activity-approval-mutation.d.ts +8 -0
  483. package/dist-server/service/activity-approval/activity-approval-mutation.js +81 -0
  484. package/dist-server/service/activity-approval/activity-approval-mutation.js.map +1 -0
  485. package/dist-server/service/activity-approval/activity-approval-query.d.ts +42 -0
  486. package/dist-server/service/activity-approval/activity-approval-query.js +391 -0
  487. package/dist-server/service/activity-approval/activity-approval-query.js.map +1 -0
  488. package/dist-server/service/activity-approval/activity-approval-subscription.d.ts +6 -0
  489. package/dist-server/service/activity-approval/activity-approval-subscription.js +39 -0
  490. package/dist-server/service/activity-approval/activity-approval-subscription.js.map +1 -0
  491. package/dist-server/service/activity-approval/activity-approval-type.d.ts +10 -0
  492. package/dist-server/service/activity-approval/activity-approval-type.js +39 -0
  493. package/dist-server/service/activity-approval/activity-approval-type.js.map +1 -0
  494. package/dist-server/service/activity-approval/activity-approval.d.ts +67 -0
  495. package/dist-server/service/activity-approval/activity-approval.js +183 -0
  496. package/dist-server/service/activity-approval/activity-approval.js.map +1 -0
  497. package/dist-server/service/activity-approval/event-subscriber.d.ts +7 -0
  498. package/dist-server/service/activity-approval/event-subscriber.js +46 -0
  499. package/dist-server/service/activity-approval/event-subscriber.js.map +1 -0
  500. package/dist-server/service/activity-approval/index.d.ts +8 -0
  501. package/dist-server/service/activity-approval/index.js +12 -0
  502. package/dist-server/service/activity-approval/index.js.map +1 -0
  503. package/dist-server/service/activity-approval/my-pending-approvals.d.ts +33 -0
  504. package/dist-server/service/activity-approval/my-pending-approvals.js +52 -0
  505. package/dist-server/service/activity-approval/my-pending-approvals.js.map +1 -0
  506. package/dist-server/service/activity-instance/activity-instance-history.d.ts +60 -0
  507. package/dist-server/service/activity-instance/activity-instance-history.js +294 -0
  508. package/dist-server/service/activity-instance/activity-instance-history.js.map +1 -0
  509. package/dist-server/service/activity-instance/activity-instance-mutation.d.ts +16 -0
  510. package/dist-server/service/activity-instance/activity-instance-mutation.js +185 -0
  511. package/dist-server/service/activity-instance/activity-instance-mutation.js.map +1 -0
  512. package/dist-server/service/activity-instance/activity-instance-query.d.ts +27 -0
  513. package/dist-server/service/activity-instance/activity-instance-query.js +386 -0
  514. package/dist-server/service/activity-instance/activity-instance-query.js.map +1 -0
  515. package/dist-server/service/activity-instance/activity-instance-subscription.d.ts +6 -0
  516. package/dist-server/service/activity-instance/activity-instance-subscription.js +39 -0
  517. package/dist-server/service/activity-instance/activity-instance-subscription.js.map +1 -0
  518. package/dist-server/service/activity-instance/activity-instance-type.d.ts +107 -0
  519. package/dist-server/service/activity-instance/activity-instance-type.js +301 -0
  520. package/dist-server/service/activity-instance/activity-instance-type.js.map +1 -0
  521. package/dist-server/service/activity-instance/activity-instance.d.ts +81 -0
  522. package/dist-server/service/activity-instance/activity-instance.js +324 -0
  523. package/dist-server/service/activity-instance/activity-instance.js.map +1 -0
  524. package/dist-server/service/activity-instance/assignee-pool.d.ts +59 -0
  525. package/dist-server/service/activity-instance/assignee-pool.js +99 -0
  526. package/dist-server/service/activity-instance/assignee-pool.js.map +1 -0
  527. package/dist-server/service/activity-instance/draft-list-states.d.ts +39 -0
  528. package/dist-server/service/activity-instance/draft-list-states.js +51 -0
  529. package/dist-server/service/activity-instance/draft-list-states.js.map +1 -0
  530. package/dist-server/service/activity-instance/event-subscriber.d.ts +21 -0
  531. package/dist-server/service/activity-instance/event-subscriber.js +59 -0
  532. package/dist-server/service/activity-instance/event-subscriber.js.map +1 -0
  533. package/dist-server/service/activity-instance/index.d.ts +9 -0
  534. package/dist-server/service/activity-instance/index.js +13 -0
  535. package/dist-server/service/activity-instance/index.js.map +1 -0
  536. package/dist-server/service/activity-instance/request-box.d.ts +2 -0
  537. package/dist-server/service/activity-instance/request-box.js +18 -0
  538. package/dist-server/service/activity-instance/request-box.js.map +1 -0
  539. package/dist-server/service/activity-stats/activity-stats-query.d.ts +9 -0
  540. package/dist-server/service/activity-stats/activity-stats-query.js +230 -0
  541. package/dist-server/service/activity-stats/activity-stats-query.js.map +1 -0
  542. package/dist-server/service/activity-stats/activity-stats-type.d.ts +27 -0
  543. package/dist-server/service/activity-stats/activity-stats-type.js +74 -0
  544. package/dist-server/service/activity-stats/activity-stats-type.js.map +1 -0
  545. package/dist-server/service/activity-stats/event-placement.d.ts +55 -0
  546. package/dist-server/service/activity-stats/event-placement.js +82 -0
  547. package/dist-server/service/activity-stats/event-placement.js.map +1 -0
  548. package/dist-server/service/activity-stats/index.d.ts +2 -0
  549. package/dist-server/service/activity-stats/index.js +6 -0
  550. package/dist-server/service/activity-stats/index.js.map +1 -0
  551. package/dist-server/service/activity-summary/activity-summary-query.d.ts +8 -0
  552. package/dist-server/service/activity-summary/activity-summary-query.js +137 -0
  553. package/dist-server/service/activity-summary/activity-summary-query.js.map +1 -0
  554. package/dist-server/service/activity-summary/activity-summary.d.ts +6 -0
  555. package/dist-server/service/activity-summary/activity-summary.js +28 -0
  556. package/dist-server/service/activity-summary/activity-summary.js.map +1 -0
  557. package/dist-server/service/activity-summary/index.d.ts +5 -0
  558. package/dist-server/service/activity-summary/index.js +9 -0
  559. package/dist-server/service/activity-summary/index.js.map +1 -0
  560. package/dist-server/service/activity-summary/open-work.d.ts +4 -0
  561. package/dist-server/service/activity-summary/open-work.js +51 -0
  562. package/dist-server/service/activity-summary/open-work.js.map +1 -0
  563. package/dist-server/service/activity-summary/person-open-work.d.ts +17 -0
  564. package/dist-server/service/activity-summary/person-open-work.js +68 -0
  565. package/dist-server/service/activity-summary/person-open-work.js.map +1 -0
  566. package/dist-server/service/activity-template/activity-template-history.d.ts +32 -0
  567. package/dist-server/service/activity-template/activity-template-history.js +165 -0
  568. package/dist-server/service/activity-template/activity-template-history.js.map +1 -0
  569. package/dist-server/service/activity-template/activity-template-mutation.d.ts +10 -0
  570. package/dist-server/service/activity-template/activity-template-mutation.js +194 -0
  571. package/dist-server/service/activity-template/activity-template-mutation.js.map +1 -0
  572. package/dist-server/service/activity-template/activity-template-query.d.ts +14 -0
  573. package/dist-server/service/activity-template/activity-template-query.js +112 -0
  574. package/dist-server/service/activity-template/activity-template-query.js.map +1 -0
  575. package/dist-server/service/activity-template/activity-template-type.d.ts +44 -0
  576. package/dist-server/service/activity-template/activity-template-type.js +164 -0
  577. package/dist-server/service/activity-template/activity-template-type.js.map +1 -0
  578. package/dist-server/service/activity-template/activity-template.d.ts +36 -0
  579. package/dist-server/service/activity-template/activity-template.js +154 -0
  580. package/dist-server/service/activity-template/activity-template.js.map +1 -0
  581. package/dist-server/service/activity-template/event-subscriber.d.ts +7 -0
  582. package/dist-server/service/activity-template/event-subscriber.js +21 -0
  583. package/dist-server/service/activity-template/event-subscriber.js.map +1 -0
  584. package/dist-server/service/activity-template/index.d.ts +8 -0
  585. package/dist-server/service/activity-template/index.js +12 -0
  586. package/dist-server/service/activity-template/index.js.map +1 -0
  587. package/dist-server/service/activity-thread/activity-thread-history-query.d.ts +10 -0
  588. package/dist-server/service/activity-thread/activity-thread-history-query.js +69 -0
  589. package/dist-server/service/activity-thread/activity-thread-history-query.js.map +1 -0
  590. package/dist-server/service/activity-thread/activity-thread-history.d.ts +39 -0
  591. package/dist-server/service/activity-thread/activity-thread-history.js +211 -0
  592. package/dist-server/service/activity-thread/activity-thread-history.js.map +1 -0
  593. package/dist-server/service/activity-thread/activity-thread-mutation.d.ts +20 -0
  594. package/dist-server/service/activity-thread/activity-thread-mutation.js +115 -0
  595. package/dist-server/service/activity-thread/activity-thread-mutation.js.map +1 -0
  596. package/dist-server/service/activity-thread/activity-thread-query.d.ts +24 -0
  597. package/dist-server/service/activity-thread/activity-thread-query.js +276 -0
  598. package/dist-server/service/activity-thread/activity-thread-query.js.map +1 -0
  599. package/dist-server/service/activity-thread/activity-thread-subscription.d.ts +6 -0
  600. package/dist-server/service/activity-thread/activity-thread-subscription.js +38 -0
  601. package/dist-server/service/activity-thread/activity-thread-subscription.js.map +1 -0
  602. package/dist-server/service/activity-thread/activity-thread-type.d.ts +15 -0
  603. package/dist-server/service/activity-thread/activity-thread-type.js +50 -0
  604. package/dist-server/service/activity-thread/activity-thread-type.js.map +1 -0
  605. package/dist-server/service/activity-thread/activity-thread.d.ts +47 -0
  606. package/dist-server/service/activity-thread/activity-thread.js +197 -0
  607. package/dist-server/service/activity-thread/activity-thread.js.map +1 -0
  608. package/dist-server/service/activity-thread/event-subscriber.d.ts +13 -0
  609. package/dist-server/service/activity-thread/event-subscriber.js +45 -0
  610. package/dist-server/service/activity-thread/event-subscriber.js.map +1 -0
  611. package/dist-server/service/activity-thread/index.d.ts +10 -0
  612. package/dist-server/service/activity-thread/index.js +14 -0
  613. package/dist-server/service/activity-thread/index.js.map +1 -0
  614. package/dist-server/service/activity-thread/my-open-threads.d.ts +33 -0
  615. package/dist-server/service/activity-thread/my-open-threads.js +85 -0
  616. package/dist-server/service/activity-thread/my-open-threads.js.map +1 -0
  617. package/dist-server/service/activity-thread/todo-order.d.ts +49 -0
  618. package/dist-server/service/activity-thread/todo-order.js +70 -0
  619. package/dist-server/service/activity-thread/todo-order.js.map +1 -0
  620. package/dist-server/service/approval-notice/approval-notice-rules.d.ts +67 -0
  621. package/dist-server/service/approval-notice/approval-notice-rules.js +67 -0
  622. package/dist-server/service/approval-notice/approval-notice-rules.js.map +1 -0
  623. package/dist-server/service/approval-notice/approval-notice.d.ts +11 -0
  624. package/dist-server/service/approval-notice/approval-notice.js +76 -0
  625. package/dist-server/service/approval-notice/approval-notice.js.map +1 -0
  626. package/dist-server/service/index.d.ts +23 -0
  627. package/dist-server/service/index.js +75 -0
  628. package/dist-server/service/index.js.map +1 -0
  629. package/dist-server/service/installable-activity/activity-readiness.d.ts +58 -0
  630. package/dist-server/service/installable-activity/activity-readiness.js +105 -0
  631. package/dist-server/service/installable-activity/activity-readiness.js.map +1 -0
  632. package/dist-server/service/installable-activity/index.d.ts +6 -0
  633. package/dist-server/service/installable-activity/index.js +10 -0
  634. package/dist-server/service/installable-activity/index.js.map +1 -0
  635. package/dist-server/service/installable-activity/installable-activity-mutation.d.ts +11 -0
  636. package/dist-server/service/installable-activity/installable-activity-mutation.js +83 -0
  637. package/dist-server/service/installable-activity/installable-activity-mutation.js.map +1 -0
  638. package/dist-server/service/installable-activity/installable-activity-query.d.ts +22 -0
  639. package/dist-server/service/installable-activity/installable-activity-query.js +127 -0
  640. package/dist-server/service/installable-activity/installable-activity-query.js.map +1 -0
  641. package/dist-server/service/installable-activity/installable-activity-type.d.ts +5 -0
  642. package/dist-server/service/installable-activity/installable-activity-type.js +21 -0
  643. package/dist-server/service/installable-activity/installable-activity-type.js.map +1 -0
  644. package/dist-server/service/installable-activity/installable-activity.d.ts +92 -0
  645. package/dist-server/service/installable-activity/installable-activity.js +140 -0
  646. package/dist-server/service/installable-activity/installable-activity.js.map +1 -0
  647. package/dist-server/service/nulls-last.d.ts +30 -0
  648. package/dist-server/service/nulls-last.js +37 -0
  649. package/dist-server/service/nulls-last.js.map +1 -0
  650. package/dist-server/service/subscription/roles-of.d.ts +9 -0
  651. package/dist-server/service/subscription/roles-of.js +17 -0
  652. package/dist-server/service/subscription/roles-of.js.map +1 -0
  653. package/dist-server/service/subscription/subscription-filters.d.ts +47 -0
  654. package/dist-server/service/subscription/subscription-filters.js +57 -0
  655. package/dist-server/service/subscription/subscription-filters.js.map +1 -0
  656. package/dist-server/service/work-door/activity-lookup.d.ts +70 -0
  657. package/dist-server/service/work-door/activity-lookup.js +110 -0
  658. package/dist-server/service/work-door/activity-lookup.js.map +1 -0
  659. package/dist-server/service/work-door/approval-line-standing.d.ts +106 -0
  660. package/dist-server/service/work-door/approval-line-standing.js +65 -0
  661. package/dist-server/service/work-door/approval-line-standing.js.map +1 -0
  662. package/dist-server/service/work-door/index.d.ts +15 -0
  663. package/dist-server/service/work-door/index.js +20 -0
  664. package/dist-server/service/work-door/index.js.map +1 -0
  665. package/dist-server/service/work-door/pass-work-door.d.ts +74 -0
  666. package/dist-server/service/work-door/pass-work-door.js +45 -0
  667. package/dist-server/service/work-door/pass-work-door.js.map +1 -0
  668. package/dist-server/service/work-door/work-door-declaration.d.ts +135 -0
  669. package/dist-server/service/work-door/work-door-declaration.js +87 -0
  670. package/dist-server/service/work-door/work-door-declaration.js.map +1 -0
  671. package/dist-server/service/work-door/work-door-event.d.ts +20 -0
  672. package/dist-server/service/work-door/work-door-event.js +25 -0
  673. package/dist-server/service/work-door/work-door-event.js.map +1 -0
  674. package/dist-server/service/work-door/work-door-journal-service.d.ts +47 -0
  675. package/dist-server/service/work-door/work-door-journal-service.js +75 -0
  676. package/dist-server/service/work-door/work-door-journal-service.js.map +1 -0
  677. package/dist-server/service/work-door/work-door-journal.d.ts +30 -0
  678. package/dist-server/service/work-door/work-door-journal.js +94 -0
  679. package/dist-server/service/work-door/work-door-journal.js.map +1 -0
  680. package/dist-server/service/work-door/work-door-not-used.d.ts +39 -0
  681. package/dist-server/service/work-door/work-door-not-used.js +86 -0
  682. package/dist-server/service/work-door/work-door-not-used.js.map +1 -0
  683. package/dist-server/service/work-door/work-door-resolver.d.ts +32 -0
  684. package/dist-server/service/work-door/work-door-resolver.js +152 -0
  685. package/dist-server/service/work-door/work-door-resolver.js.map +1 -0
  686. package/dist-server/service/work-door/work-door-service.d.ts +36 -0
  687. package/dist-server/service/work-door/work-door-service.js +127 -0
  688. package/dist-server/service/work-door/work-door-service.js.map +1 -0
  689. package/dist-server/service/work-door/work-door-type.d.ts +88 -0
  690. package/dist-server/service/work-door/work-door-type.js +206 -0
  691. package/dist-server/service/work-door/work-door-type.js.map +1 -0
  692. package/dist-server/service/work-door/work-door.d.ts +187 -0
  693. package/dist-server/service/work-door/work-door.js +119 -0
  694. package/dist-server/service/work-door/work-door.js.map +1 -0
  695. package/dist-server/tsconfig.tsbuildinfo +1 -0
  696. package/package.json +2 -2
@@ -0,0 +1,152 @@
1
+ /**
2
+ * Turns an activity's decisionKeys declaration plus an instance's input into the slots a decision
3
+ * screen draws.
4
+ *
5
+ * ── Nothing heavy is imported ─────────────────────────────────────────────
6
+ * No lit, no i18next — only the pure reading of the input in `shared/decision-sentences`, which the
7
+ * server freezes sentences with. The rule is a mapping from a declaration and a payload to an ordered list,
8
+ * and keeping it free of imports is what lets the test runner hold it: that runner parses
9
+ * TypeScript by stripping types and reads neither decorators nor enums, so one heavy import takes
10
+ * a whole test file down with it. Labels and markup are the caller's half.
11
+ */
12
+ import { paramsFrom, valueAtPath } from '../../shared/decision-sentences.js';
13
+ /* The blanks are read the same way the server freezes them — one reading, in `shared/decision-sentences`. */
14
+ export { valueAtPath };
15
+ /** The roles that may appear more than once. Every other role names one value. */
16
+ export const REPEATABLE_ROLES = ['consequence', 'evidence'];
17
+ /** Listed in the order the screen reads them: what is asked, then past, present, future. */
18
+ export const DECISION_ROLES = [
19
+ 'headline',
20
+ 'subject',
21
+ 'reversibility',
22
+ 'reason',
23
+ 'evidence',
24
+ 'currentState',
25
+ 'consequence'
26
+ ];
27
+ /**
28
+ * The slots to draw, in the order they were declared.
29
+ *
30
+ * Declaration order is the screen's hierarchy: plant wrote four of these screens by hand and all
31
+ * four put the headline first, then the subject, the reason, what changes, and why it came up. That
32
+ * agreement is what makes the order part of the contract rather than a preference, so this function
33
+ * neither sorts nor groups.
34
+ *
35
+ * Every declared key produces a slot, including one whose path leads nowhere. Dropping those would
36
+ * leave the screen unable to say that a declaration and a payload disagree, and a reader would see
37
+ * a screen that looks complete.
38
+ */
39
+ export function decisionSlots(decisionKeys, input) {
40
+ if (!decisionKeys?.length) {
41
+ return [];
42
+ }
43
+ return decisionKeys.map(key => {
44
+ const { value, found } = valueAtPath(input, String(key?.inputPath ?? ''));
45
+ return {
46
+ role: String(key?.role ?? ''),
47
+ inputPath: String(key?.inputPath ?? ''),
48
+ name: key?.name,
49
+ tKey: key?.tKey,
50
+ unit: key?.unit,
51
+ valueTKey: key?.valueTKey,
52
+ params: paramsFrom(key?.params, input),
53
+ value,
54
+ found
55
+ };
56
+ });
57
+ }
58
+ /** The slots for one role, in declared order. Empty when the activity declared none. */
59
+ export function slotsOfRole(slots, role) {
60
+ return slots.filter(slot => slot.role === role);
61
+ }
62
+ /**
63
+ * The single slot for a role that names one value, or undefined.
64
+ *
65
+ * Reaching for a second one would be reading a declaration the guard refuses, so this answers the
66
+ * first and does not quietly merge.
67
+ */
68
+ export function slotOfRole(slots, role) {
69
+ return slots.find(slot => slot.role === role);
70
+ }
71
+ /**
72
+ * What the declaration says about undoing this approval.
73
+ *
74
+ * The value is an object: `reversible` is required and `caveat` is the module's own sentence about
75
+ * it. The asymmetry is the point — the boolean decides how heavily the screen draws the band, and
76
+ * a sentence alone cannot decide that.
77
+ *
78
+ * { reversible: false, caveat: '버린 자재는 돌아오지 않습니다' }
79
+ *
80
+ * ── A condition is written as false ───────────────────────────────────────
81
+ * 「되돌릴 수 있습니다 — 단, 실적이 마감되기 전까지」 is written `false` with the condition in the
82
+ * caveat. Written `true` the screen draws it lightly and the reader walks past the condition. There
83
+ * is no third value: a middle one always draws ambiguously, and the reader has to guess which side
84
+ * it is on. (2026-09-11, architect's ruling)
85
+ *
86
+ * ── Not `note` ───────────────────────────────────────────────────────────
87
+ * ops-contract already has CommandApproval.note, and that one is **the approver's own comment** —
88
+ * a person's words, in the same neighbourhood as this screen. Same word for a module's sentence
89
+ * would be read as the person's. `caveat` is used nowhere in the three repositories.
90
+ */
91
+ /**
92
+ * The kinds of an effect, as shell names them (shell server/reversibility, ADR-0064 decision 1).
93
+ *
94
+ * A copy, and the only one on this side: shell's client entry carries side effects and a client
95
+ * importing server code moves the build, so the shell file itself says screens do not import it.
96
+ * test/reversibility-kinds.test.ts holds this list to shell's, word for word.
97
+ */
98
+ export const REVERSIBILITY_KINDS = ['irreversible', 'compensable', 'reversible', 'unknown'];
99
+ /** The one kind that is not undone and still not destructive: the original stays, a new record corrects it. */
100
+ export const COMPENSABLE = 'compensable';
101
+ /** Undone by a paired operation. The only kind that agrees with reversible: true. */
102
+ export const REVERSIBLE = 'reversible';
103
+ /**
104
+ * What the slot says, or undefined when it does not say.
105
+ *
106
+ * Undefined covers both "the path led nowhere" and "nobody declared the role". Drawing nothing is
107
+ * right for both: telling an approver an action can be taken back when the payload never said so
108
+ * is the one mistake this line cannot make, and a truthy read would make it — the string
109
+ * '되돌릴 수 없습니다…' is truthy.
110
+ */
111
+ export function reversibilityOf(slot) {
112
+ const value = slot?.value;
113
+ if (!value || typeof value !== 'object' || typeof value.reversible !== 'boolean') {
114
+ return undefined;
115
+ }
116
+ if (value.kind !== undefined && (!REVERSIBILITY_KINDS.includes(value.kind) || (value.kind === REVERSIBLE) !== value.reversible))
117
+ return undefined;
118
+ return {
119
+ reversible: value.reversible,
120
+ ...(value.kind ? { kind: value.kind } : {}),
121
+ ...(typeof value.caveat === 'string' && value.caveat.trim() ? { caveat: value.caveat } : {})
122
+ };
123
+ }
124
+ /**
125
+ * The value is there but not the shape this role takes.
126
+ *
127
+ * plant declared the role and put a sentence at that path, so the band drew nothing at all and the
128
+ * heaviest line on the screen was silently missing. Reporting nothing to the reader is right — the
129
+ * screen cannot tell which way it goes — but a developer should not have to find it by hand. The
130
+ * caller logs this; the rule stays free of side effects so a test can hold it.
131
+ */
132
+ export function reversibilityIsMalformed(slot) {
133
+ return !!slot && slot.found && slot.value != null && reversibilityOf(slot) === undefined;
134
+ }
135
+ /**
136
+ * Whether these slots draw anything at all.
137
+ *
138
+ * Every declared slot can miss a payload - an older instance predates the field a declaration
139
+ * names. Then a screen falls back to the model rather than drawing an empty decision box. `reason`
140
+ * draws even when missing, as the grey "nobody wrote one" line, so declaring it is enough.
141
+ */
142
+ export function decisionDrawable(slots) {
143
+ const found = (role) => slotsOfRole(slots, role).some(slot => slot.found);
144
+ return (found('headline') ||
145
+ found('subject') ||
146
+ found('currentState') ||
147
+ !!slotOfRole(slots, 'reason') ||
148
+ found('consequence') ||
149
+ found('evidence') ||
150
+ reversibilityOf(slotOfRole(slots, 'reversibility')) !== undefined);
151
+ }
152
+ //# sourceMappingURL=decision-slots.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decision-slots.js","sourceRoot":"","sources":["../../client/components/decision-slots.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAA;AAE5E,6GAA6G;AAC7G,OAAO,EAAE,WAAW,EAAE,CAAA;AAEtB,kFAAkF;AAClF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,aAAa,EAAE,UAAU,CAAU,CAAA;AAEpE,4FAA4F;AAC5F,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,UAAU;IACV,SAAS;IACT,eAAe;IACf,QAAQ;IACR,UAAU;IACV,cAAc;IACd,aAAa;CACL,CAAA;AAmDV;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa,CAC3B,YAAyD,EACzD,KAAU;IAEV,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAA;IACX,CAAC;IAED,OAAO,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QAC5B,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,CAAA;QAEzE,OAAO;YACL,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,IAAI,EAAE,CAAC;YAC7B,SAAS,EAAE,MAAM,CAAC,GAAG,EAAE,SAAS,IAAI,EAAE,CAAC;YACvC,IAAI,EAAE,GAAG,EAAE,IAAI;YACf,IAAI,EAAE,GAAG,EAAE,IAAI;YACf,IAAI,EAAE,GAAG,EAAE,IAAI;YACf,SAAS,EAAE,GAAG,EAAE,SAAS;YACzB,MAAM,EAAE,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC;YACtC,KAAK;YACL,KAAK;SACN,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAGD,wFAAwF;AACxF,MAAM,UAAU,WAAW,CAAC,KAAqB,EAAE,IAAY;IAC7D,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;AACjD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,KAAqB,EAAE,IAAY;IAC5D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;AAC/C,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,CAAU,CAAA;AAGpG,+GAA+G;AAC/G,MAAM,CAAC,MAAM,WAAW,GAAsB,aAAa,CAAA;AAE3D,qFAAqF;AACrF,MAAM,CAAC,MAAM,UAAU,GAAsB,YAAY,CAAA;AAIzD;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,IAAmB;IACjD,MAAM,KAAK,GAAQ,IAAI,EAAE,KAAK,CAAA;IAE9B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACjF,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAE,mBAAyC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,KAAK,KAAK,CAAC,UAAU,CAAC;QAAE,OAAO,SAAS,CAAA;IAExK,OAAO;QACL,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,GAAG,CAAC,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7F,CAAA;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAAmB;IAC1D,OAAO,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,SAAS,CAAA;AAC1F,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAqB;IACpD,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAEjF,OAAO,CACL,KAAK,CAAC,UAAU,CAAC;QACjB,KAAK,CAAC,SAAS,CAAC;QAChB,KAAK,CAAC,cAAc,CAAC;QACrB,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC;QAC7B,KAAK,CAAC,aAAa,CAAC;QACpB,KAAK,CAAC,UAAU,CAAC;QACjB,eAAe,CAAC,UAAU,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,KAAK,SAAS,CAClE,CAAA;AACH,CAAC","sourcesContent":["/**\n * Turns an activity's decisionKeys declaration plus an instance's input into the slots a decision\n * screen draws.\n *\n * ── Nothing heavy is imported ─────────────────────────────────────────────\n * No lit, no i18next — only the pure reading of the input in `shared/decision-sentences`, which the\n * server freezes sentences with. The rule is a mapping from a declaration and a payload to an ordered list,\n * and keeping it free of imports is what lets the test runner hold it: that runner parses\n * TypeScript by stripping types and reads neither decorators nor enums, so one heavy import takes\n * a whole test file down with it. Labels and markup are the caller's half.\n */\n\nimport { paramsFrom, valueAtPath } from '../../shared/decision-sentences.js'\n\n/* The blanks are read the same way the server freezes them — one reading, in `shared/decision-sentences`. */\nexport { valueAtPath }\n\n/** The roles that may appear more than once. Every other role names one value. */\nexport const REPEATABLE_ROLES = ['consequence', 'evidence'] as const\n\n/** Listed in the order the screen reads them: what is asked, then past, present, future. */\nexport const DECISION_ROLES = [\n 'headline',\n 'subject',\n 'reversibility',\n 'reason',\n 'evidence',\n 'currentState',\n 'consequence'\n] as const\n\nexport type DecisionKeyDeclaration = {\n role?: string\n inputPath?: string\n name?: string\n tKey?: string\n unit?: string\n /** i18n key for the value **sentence** — `approval.<door>.<inputPath>`, computed by the server. */\n valueTKey?: string\n /** What the sentence puts in its blanks: name in the sentence → inputPath to read it from. */\n params?: { [name: string]: string }\n}\n\nexport type DecisionSlot = {\n role: string\n inputPath: string\n /**\n * 번역이 없을 때 화면이 보일 수 있는 단 하나의 글.\n *\n * 선언은 늘 이것을 주는데 슬롯이 버리고 있었다. 그래서 `tKey` 가 다섯 언어 어디에도 없으면 화면에\n * 남는 것이 점 섞인 키뿐이었다 — 보일 것이 없는 게 아니라 **가진 것을 안 나른 것**이다.\n */\n name?: string\n tKey?: string\n unit?: string\n /** i18n key for the value sentence. Absent means the frozen `value` is what this slot has. */\n valueTKey?: string\n /**\n * The sentence's blanks, **already read out of the input.**\n *\n * The declaration says where each value lives; this says what was there. Resolving here rather\n * than on the screen keeps the path language in one place — the same `valueAtPath` the slot's own\n * value goes through, so a params path that leads nowhere behaves the way an inputPath does\n * instead of inventing a second rule.\n */\n params?: { [name: string]: unknown }\n /** What the path led to. Undefined both when the path leads nowhere and when the value is unset. */\n value: unknown\n /**\n * Whether the path led anywhere at all.\n *\n * A reason nobody wrote and a reason whose path is wrong look identical in `value`, and the screen\n * owes different answers: the first is 「사유 없음」 in grey, the second is a declaration that does\n * not match the payload and must not be drawn as if the person left it blank. Folding them into\n * one value is the fallback that shifts meaning.\n */\n found: boolean\n}\n\n\n/**\n * The slots to draw, in the order they were declared.\n *\n * Declaration order is the screen's hierarchy: plant wrote four of these screens by hand and all\n * four put the headline first, then the subject, the reason, what changes, and why it came up. That\n * agreement is what makes the order part of the contract rather than a preference, so this function\n * neither sorts nor groups.\n *\n * Every declared key produces a slot, including one whose path leads nowhere. Dropping those would\n * leave the screen unable to say that a declaration and a payload disagree, and a reader would see\n * a screen that looks complete.\n */\nexport function decisionSlots(\n decisionKeys: DecisionKeyDeclaration[] | null | undefined,\n input: any\n): DecisionSlot[] {\n if (!decisionKeys?.length) {\n return []\n }\n\n return decisionKeys.map(key => {\n const { value, found } = valueAtPath(input, String(key?.inputPath ?? ''))\n\n return {\n role: String(key?.role ?? ''),\n inputPath: String(key?.inputPath ?? ''),\n name: key?.name,\n tKey: key?.tKey,\n unit: key?.unit,\n valueTKey: key?.valueTKey,\n params: paramsFrom(key?.params, input),\n value,\n found\n }\n })\n}\n\n\n/** The slots for one role, in declared order. Empty when the activity declared none. */\nexport function slotsOfRole(slots: DecisionSlot[], role: string): DecisionSlot[] {\n return slots.filter(slot => slot.role === role)\n}\n\n/**\n * The single slot for a role that names one value, or undefined.\n *\n * Reaching for a second one would be reading a declaration the guard refuses, so this answers the\n * first and does not quietly merge.\n */\nexport function slotOfRole(slots: DecisionSlot[], role: string): DecisionSlot | undefined {\n return slots.find(slot => slot.role === role)\n}\n\n/**\n * What the declaration says about undoing this approval.\n *\n * The value is an object: `reversible` is required and `caveat` is the module's own sentence about\n * it. The asymmetry is the point — the boolean decides how heavily the screen draws the band, and\n * a sentence alone cannot decide that.\n *\n * { reversible: false, caveat: '버린 자재는 돌아오지 않습니다' }\n *\n * ── A condition is written as false ───────────────────────────────────────\n * 「되돌릴 수 있습니다 — 단, 실적이 마감되기 전까지」 is written `false` with the condition in the\n * caveat. Written `true` the screen draws it lightly and the reader walks past the condition. There\n * is no third value: a middle one always draws ambiguously, and the reader has to guess which side\n * it is on. (2026-09-11, architect's ruling)\n *\n * ── Not `note` ───────────────────────────────────────────────────────────\n * ops-contract already has CommandApproval.note, and that one is **the approver's own comment** —\n * a person's words, in the same neighbourhood as this screen. Same word for a module's sentence\n * would be read as the person's. `caveat` is used nowhere in the three repositories.\n */\n/**\n * The kinds of an effect, as shell names them (shell server/reversibility, ADR-0064 decision 1).\n *\n * A copy, and the only one on this side: shell's client entry carries side effects and a client\n * importing server code moves the build, so the shell file itself says screens do not import it.\n * test/reversibility-kinds.test.ts holds this list to shell's, word for word.\n */\nexport const REVERSIBILITY_KINDS = ['irreversible', 'compensable', 'reversible', 'unknown'] as const\nexport type ReversibilityKind = (typeof REVERSIBILITY_KINDS)[number]\n\n/** The one kind that is not undone and still not destructive: the original stays, a new record corrects it. */\nexport const COMPENSABLE: ReversibilityKind = 'compensable'\n\n/** Undone by a paired operation. The only kind that agrees with reversible: true. */\nexport const REVERSIBLE: ReversibilityKind = 'reversible'\n\nexport type Reversibility = { reversible: boolean; kind?: ReversibilityKind; caveat?: string }\n\n/**\n * What the slot says, or undefined when it does not say.\n *\n * Undefined covers both \"the path led nowhere\" and \"nobody declared the role\". Drawing nothing is\n * right for both: telling an approver an action can be taken back when the payload never said so\n * is the one mistake this line cannot make, and a truthy read would make it — the string\n * '되돌릴 수 없습니다…' is truthy.\n */\nexport function reversibilityOf(slot?: DecisionSlot): Reversibility | undefined {\n const value: any = slot?.value\n\n if (!value || typeof value !== 'object' || typeof value.reversible !== 'boolean') {\n return undefined\n }\n if (value.kind !== undefined && (!(REVERSIBILITY_KINDS as readonly string[]).includes(value.kind) || (value.kind === REVERSIBLE) !== value.reversible)) return undefined\n\n return {\n reversible: value.reversible,\n ...(value.kind ? { kind: value.kind } : {}),\n ...(typeof value.caveat === 'string' && value.caveat.trim() ? { caveat: value.caveat } : {})\n }\n}\n\n/**\n * The value is there but not the shape this role takes.\n *\n * plant declared the role and put a sentence at that path, so the band drew nothing at all and the\n * heaviest line on the screen was silently missing. Reporting nothing to the reader is right — the\n * screen cannot tell which way it goes — but a developer should not have to find it by hand. The\n * caller logs this; the rule stays free of side effects so a test can hold it.\n */\nexport function reversibilityIsMalformed(slot?: DecisionSlot): boolean {\n return !!slot && slot.found && slot.value != null && reversibilityOf(slot) === undefined\n}\n\n/**\n * Whether these slots draw anything at all.\n *\n * Every declared slot can miss a payload - an older instance predates the field a declaration\n * names. Then a screen falls back to the model rather than drawing an empty decision box. `reason`\n * draws even when missing, as the grey \"nobody wrote one\" line, so declaring it is enough.\n */\nexport function decisionDrawable(slots: DecisionSlot[]): boolean {\n const found = (role: string) => slotsOfRole(slots, role).some(slot => slot.found)\n\n return (\n found('headline') ||\n found('subject') ||\n found('currentState') ||\n !!slotOfRole(slots, 'reason') ||\n found('consequence') ||\n found('evidence') ||\n reversibilityOf(slotOfRole(slots, 'reversibility')) !== undefined\n )\n}\n"]}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * What came back from a mutation, in the terms a screen has to speak.
3
+ *
4
+ * ── Two failures that arrive by different roads ───────────────────────────
5
+ * A privilege refusal is a GraphQL error. The server marks it itself
6
+ * ([읽었음] auth-base/server/service/privilege/privilege-rejection.ts:61) with
7
+ * `extensions: { code: 'FORBIDDEN', requires }`, and `mutate` is configured with
8
+ * `errorPolicy: 'all'` ([읽었음] operato/webcomponents/graphql/src/graphql-client.ts:18), so it
9
+ * **resolves** with `errors` rather than throwing.
10
+ *
11
+ * A missing or expired session never reaches GraphQL at all:
12
+ *
13
+ * [확인함] curl -X POST http://localhost:4000/graphql -d '{"query":"{ __typename }"}'
14
+ * HTTP 401 · body: No auth token
15
+ *
16
+ * That is an HTTP failure with a plain-text body, so it arrives as a thrown error, not as `errors`.
17
+ * A handler that only looks at `errors` misses it, and the throw takes the rest of the handler with
18
+ * it. Both roads are handled here so a caller does not have to remember there are two.
19
+ *
20
+ * ── Why they must not share a sentence ────────────────────────────────────
21
+ * Telling someone whose session expired to ask an administrator for a privilege sends them to the
22
+ * wrong place, and they will wait for something nobody is going to do. (2026-09-11, architect)
23
+ *
24
+ * Nothing is imported: the test runner strips types without reading decorators, and one heavy
25
+ * import takes a whole test file down — that happened three times in one day.
26
+ */
27
+ export type MutationOutcome =
28
+ /** It went through. `data` is what the mutation answered, so the caller need not keep the response. */
29
+ {
30
+ ok: true;
31
+ data: any;
32
+ }
33
+ /** The server said this user may not. `requires` is what it said is needed, when it said. */
34
+ | {
35
+ ok: false;
36
+ kind: 'forbidden';
37
+ said: string;
38
+ requires?: unknown;
39
+ }
40
+ /** No session reached the server. Signing in again is the answer, not a privilege. */
41
+ | {
42
+ ok: false;
43
+ kind: 'signed-out';
44
+ said: string;
45
+ }
46
+ /** Something else. `said` is the server's own sentence — this side does not know the cause. */
47
+ | {
48
+ ok: false;
49
+ kind: 'failed';
50
+ said: string;
51
+ };
52
+ /** Reading a resolved response. */
53
+ export declare function outcomeOf(response: any): MutationOutcome;
54
+ /** Reading a thrown error — the road a 401 takes. */
55
+ export declare function outcomeOfThrow(thrown: any): MutationOutcome;
56
+ /** The i18n key for a failure, so every screen says the same thing about the same thing. */
57
+ export declare function outcomeKey(outcome: MutationOutcome): string;
@@ -0,0 +1,78 @@
1
+ /**
2
+ * What came back from a mutation, in the terms a screen has to speak.
3
+ *
4
+ * ── Two failures that arrive by different roads ───────────────────────────
5
+ * A privilege refusal is a GraphQL error. The server marks it itself
6
+ * ([읽었음] auth-base/server/service/privilege/privilege-rejection.ts:61) with
7
+ * `extensions: { code: 'FORBIDDEN', requires }`, and `mutate` is configured with
8
+ * `errorPolicy: 'all'` ([읽었음] operato/webcomponents/graphql/src/graphql-client.ts:18), so it
9
+ * **resolves** with `errors` rather than throwing.
10
+ *
11
+ * A missing or expired session never reaches GraphQL at all:
12
+ *
13
+ * [확인함] curl -X POST http://localhost:4000/graphql -d '{"query":"{ __typename }"}'
14
+ * HTTP 401 · body: No auth token
15
+ *
16
+ * That is an HTTP failure with a plain-text body, so it arrives as a thrown error, not as `errors`.
17
+ * A handler that only looks at `errors` misses it, and the throw takes the rest of the handler with
18
+ * it. Both roads are handled here so a caller does not have to remember there are two.
19
+ *
20
+ * ── Why they must not share a sentence ────────────────────────────────────
21
+ * Telling someone whose session expired to ask an administrator for a privilege sends them to the
22
+ * wrong place, and they will wait for something nobody is going to do. (2026-09-11, architect)
23
+ *
24
+ * Nothing is imported: the test runner strips types without reading decorators, and one heavy
25
+ * import takes a whole test file down — that happened three times in one day.
26
+ */
27
+ /** Reading a resolved response. */
28
+ export function outcomeOf(response) {
29
+ const errors = response?.errors || [];
30
+ if (!errors.length && response?.data) {
31
+ return { ok: true, data: response.data };
32
+ }
33
+ const forbidden = errors.find((error) => error?.extensions?.code == 'FORBIDDEN');
34
+ if (forbidden) {
35
+ return {
36
+ ok: false,
37
+ kind: 'forbidden',
38
+ said: String(forbidden.message || ''),
39
+ requires: forbidden.extensions?.requires
40
+ };
41
+ }
42
+ const signedOut = errors.find((error) => looksSignedOut(error?.message));
43
+ if (signedOut) {
44
+ return { ok: false, kind: 'signed-out', said: String(signedOut.message || '') };
45
+ }
46
+ return { ok: false, kind: 'failed', said: String(errors[0]?.message || '') };
47
+ }
48
+ /** Reading a thrown error — the road a 401 takes. */
49
+ export function outcomeOfThrow(thrown) {
50
+ const said = String(thrown?.message || thrown || '');
51
+ /*
52
+ * Apollo wraps an HTTP failure, so the 401's body travels inside the message. Matching the text
53
+ * is not ideal; it is what the server gives, since the body is plain text rather than a GraphQL
54
+ * error with a code. If the server ever answers 401 as a GraphQL error, outcomeOf catches it on
55
+ * the other road and this one keeps working.
56
+ */
57
+ if (looksSignedOut(said) || thrown?.statusCode == 401 || thrown?.networkError?.statusCode == 401) {
58
+ return { ok: false, kind: 'signed-out', said };
59
+ }
60
+ return { ok: false, kind: 'failed', said };
61
+ }
62
+ /** The sentence a session failure carries. Matched loosely because the wording is not ours. */
63
+ function looksSignedOut(message) {
64
+ const text = String(message || '').toLowerCase();
65
+ return text.includes('no auth token') || text.includes('jwt expired') || text.includes('unauthenticated');
66
+ }
67
+ /** The i18n key for a failure, so every screen says the same thing about the same thing. */
68
+ export function outcomeKey(outcome) {
69
+ if (outcome.ok) {
70
+ return '';
71
+ }
72
+ return {
73
+ forbidden: 'text.not-allowed-to-do-this',
74
+ 'signed-out': 'text.signed-out-sign-in-again',
75
+ failed: 'text.it-did-not-go-through'
76
+ }[outcome.kind];
77
+ }
78
+ //# sourceMappingURL=mutation-outcome.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutation-outcome.js","sourceRoot":"","sources":["../../client/components/mutation-outcome.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAYH,mCAAmC;AACnC,MAAM,UAAU,SAAS,CAAC,QAAa;IACrC,MAAM,MAAM,GAAG,QAAQ,EAAE,MAAM,IAAI,EAAE,CAAA;IAErC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,QAAQ,EAAE,IAAI,EAAE,CAAC;QACrC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAA;IAC1C,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,IAAI,WAAW,CAAC,CAAA;IAErF,IAAI,SAAS,EAAE,CAAC;QACd,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,IAAI,EAAE,CAAC;YACrC,QAAQ,EAAE,SAAS,CAAC,UAAU,EAAE,QAAQ;SACzC,CAAA;IACH,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAA;IAE7E,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAA;IACjF,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,EAAE,CAAC,EAAE,CAAA;AAC9E,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,cAAc,CAAC,MAAW;IACxC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,IAAI,MAAM,IAAI,EAAE,CAAC,CAAA;IAEpD;;;;;OAKG;IACH,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE,UAAU,IAAI,GAAG,IAAI,MAAM,EAAE,YAAY,EAAE,UAAU,IAAI,GAAG,EAAE,CAAC;QACjG,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAA;IAChD,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;AAC5C,CAAC;AAED,+FAA+F;AAC/F,SAAS,cAAc,CAAC,OAAY;IAClC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;IAEhD,OAAO,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAA;AAC3G,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,UAAU,CAAC,OAAwB;IACjD,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;QACf,OAAO,EAAE,CAAA;IACX,CAAC;IAED,OAAO;QACL,SAAS,EAAE,6BAA6B;QACxC,YAAY,EAAE,+BAA+B;QAC7C,MAAM,EAAE,4BAA4B;KACrC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;AACjB,CAAC","sourcesContent":["/**\n * What came back from a mutation, in the terms a screen has to speak.\n *\n * ── Two failures that arrive by different roads ───────────────────────────\n * A privilege refusal is a GraphQL error. The server marks it itself\n * ([읽었음] auth-base/server/service/privilege/privilege-rejection.ts:61) with\n * `extensions: { code: 'FORBIDDEN', requires }`, and `mutate` is configured with\n * `errorPolicy: 'all'` ([읽었음] operato/webcomponents/graphql/src/graphql-client.ts:18), so it\n * **resolves** with `errors` rather than throwing.\n *\n * A missing or expired session never reaches GraphQL at all:\n *\n * [확인함] curl -X POST http://localhost:4000/graphql -d '{\"query\":\"{ __typename }\"}'\n * HTTP 401 · body: No auth token\n *\n * That is an HTTP failure with a plain-text body, so it arrives as a thrown error, not as `errors`.\n * A handler that only looks at `errors` misses it, and the throw takes the rest of the handler with\n * it. Both roads are handled here so a caller does not have to remember there are two.\n *\n * ── Why they must not share a sentence ────────────────────────────────────\n * Telling someone whose session expired to ask an administrator for a privilege sends them to the\n * wrong place, and they will wait for something nobody is going to do. (2026-09-11, architect)\n *\n * Nothing is imported: the test runner strips types without reading decorators, and one heavy\n * import takes a whole test file down — that happened three times in one day.\n */\n\nexport type MutationOutcome =\n /** It went through. `data` is what the mutation answered, so the caller need not keep the response. */\n | { ok: true; data: any }\n /** The server said this user may not. `requires` is what it said is needed, when it said. */\n | { ok: false; kind: 'forbidden'; said: string; requires?: unknown }\n /** No session reached the server. Signing in again is the answer, not a privilege. */\n | { ok: false; kind: 'signed-out'; said: string }\n /** Something else. `said` is the server's own sentence — this side does not know the cause. */\n | { ok: false; kind: 'failed'; said: string }\n\n/** Reading a resolved response. */\nexport function outcomeOf(response: any): MutationOutcome {\n const errors = response?.errors || []\n\n if (!errors.length && response?.data) {\n return { ok: true, data: response.data }\n }\n\n const forbidden = errors.find((error: any) => error?.extensions?.code == 'FORBIDDEN')\n\n if (forbidden) {\n return {\n ok: false,\n kind: 'forbidden',\n said: String(forbidden.message || ''),\n requires: forbidden.extensions?.requires\n }\n }\n\n const signedOut = errors.find((error: any) => looksSignedOut(error?.message))\n\n if (signedOut) {\n return { ok: false, kind: 'signed-out', said: String(signedOut.message || '') }\n }\n\n return { ok: false, kind: 'failed', said: String(errors[0]?.message || '') }\n}\n\n/** Reading a thrown error — the road a 401 takes. */\nexport function outcomeOfThrow(thrown: any): MutationOutcome {\n const said = String(thrown?.message || thrown || '')\n\n /*\n * Apollo wraps an HTTP failure, so the 401's body travels inside the message. Matching the text\n * is not ideal; it is what the server gives, since the body is plain text rather than a GraphQL\n * error with a code. If the server ever answers 401 as a GraphQL error, outcomeOf catches it on\n * the other road and this one keeps working.\n */\n if (looksSignedOut(said) || thrown?.statusCode == 401 || thrown?.networkError?.statusCode == 401) {\n return { ok: false, kind: 'signed-out', said }\n }\n\n return { ok: false, kind: 'failed', said }\n}\n\n/** The sentence a session failure carries. Matched loosely because the wording is not ours. */\nfunction looksSignedOut(message: any): boolean {\n const text = String(message || '').toLowerCase()\n\n return text.includes('no auth token') || text.includes('jwt expired') || text.includes('unauthenticated')\n}\n\n/** The i18n key for a failure, so every screen says the same thing about the same thing. */\nexport function outcomeKey(outcome: MutationOutcome): string {\n if (outcome.ok) {\n return ''\n }\n\n return {\n forbidden: 'text.not-allowed-to-do-this',\n 'signed-out': 'text.signed-out-sign-in-again',\n failed: 'text.it-did-not-go-through'\n }[outcome.kind]\n}\n"]}
@@ -0,0 +1,25 @@
1
+ import { MutationOutcome } from './mutation-outcome.js';
2
+ /**
3
+ * Run a mutation and say so when it does not go through.
4
+ *
5
+ * ── Why a wrapper and not a check at each call ────────────────────────────
6
+ * A failure arrives by two roads — a privilege refusal resolves with `errors`, a missing session
7
+ * throws an HTTP 401 — and every call site would have to remember both. Six handlers in this package
8
+ * remembered neither: they read `errors` only to skip the success branch, with no `else`, so a
9
+ * failed save changed nothing on screen and said nothing. The worker presses the button again.
10
+ *
11
+ * The caller keeps its success path and stops carrying the failure one:
12
+ *
13
+ * const outcome = await ranMutation(() => client.mutate({ … }))
14
+ * if (!outcome.ok) return
15
+ * … what to do when it worked …
16
+ */
17
+ export declare function ranMutation(run: () => Promise<any>): Promise<MutationOutcome>;
18
+ /**
19
+ * One sentence per kind of failure.
20
+ *
21
+ * `said` is the server's own sentence and only the last kind prints it — for the other two this
22
+ * side knows what happened and can say what to do about it. Telling someone whose session expired
23
+ * to ask an administrator for a privilege would send them where nobody can help.
24
+ */
25
+ export declare function sayFailure(outcome: MutationOutcome): void;
@@ -0,0 +1,51 @@
1
+ import { i18next } from '@operato/i18n';
2
+ import { outcomeKey, outcomeOf, outcomeOfThrow } from './mutation-outcome.js';
3
+ /**
4
+ * Run a mutation and say so when it does not go through.
5
+ *
6
+ * ── Why a wrapper and not a check at each call ────────────────────────────
7
+ * A failure arrives by two roads — a privilege refusal resolves with `errors`, a missing session
8
+ * throws an HTTP 401 — and every call site would have to remember both. Six handlers in this package
9
+ * remembered neither: they read `errors` only to skip the success branch, with no `else`, so a
10
+ * failed save changed nothing on screen and said nothing. The worker presses the button again.
11
+ *
12
+ * The caller keeps its success path and stops carrying the failure one:
13
+ *
14
+ * const outcome = await ranMutation(() => client.mutate({ … }))
15
+ * if (!outcome.ok) return
16
+ * … what to do when it worked …
17
+ */
18
+ export async function ranMutation(run) {
19
+ let outcome;
20
+ try {
21
+ outcome = outcomeOf(await run());
22
+ }
23
+ catch (thrown) {
24
+ outcome = outcomeOfThrow(thrown);
25
+ }
26
+ if (!outcome.ok) {
27
+ sayFailure(outcome);
28
+ }
29
+ return outcome;
30
+ }
31
+ /**
32
+ * One sentence per kind of failure.
33
+ *
34
+ * `said` is the server's own sentence and only the last kind prints it — for the other two this
35
+ * side knows what happened and can say what to do about it. Telling someone whose session expired
36
+ * to ask an administrator for a privilege would send them where nobody can help.
37
+ */
38
+ export function sayFailure(outcome) {
39
+ if (outcome.ok) {
40
+ return;
41
+ }
42
+ const key = outcomeKey(outcome);
43
+ document.dispatchEvent(new CustomEvent('notify', {
44
+ detail: {
45
+ level: 'error',
46
+ message: i18next.t(key, { said: outcome.said || '' })
47
+ }
48
+ }));
49
+ console.error(`[worklist] ${outcome.kind} — ${outcome.said}`);
50
+ }
51
+ //# sourceMappingURL=say-outcome.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"say-outcome.js","sourceRoot":"","sources":["../../client/components/say-outcome.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAEvC,OAAO,EAAmB,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAE9F;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAAuB;IACvD,IAAI,OAAwB,CAAA;IAE5B,IAAI,CAAC;QACH,OAAO,GAAG,SAAS,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;IAClC,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,CAAA;IAClC,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QAChB,UAAU,CAAC,OAAO,CAAC,CAAA;IACrB,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,OAAwB;IACjD,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;QACf,OAAM;IACR,CAAC;IAED,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;IAE/B,QAAQ,CAAC,aAAa,CACpB,IAAI,WAAW,CAAC,QAAQ,EAAE;QACxB,MAAM,EAAE;YACN,KAAK,EAAE,OAAO;YACd,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;SACtD;KACF,CAAC,CACH,CAAA;IAED,OAAO,CAAC,KAAK,CAAC,cAAc,OAAO,CAAC,IAAI,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;AAC/D,CAAC","sourcesContent":["import { i18next } from '@operato/i18n'\n\nimport { MutationOutcome, outcomeKey, outcomeOf, outcomeOfThrow } from './mutation-outcome.js'\n\n/**\n * Run a mutation and say so when it does not go through.\n *\n * ── Why a wrapper and not a check at each call ────────────────────────────\n * A failure arrives by two roads — a privilege refusal resolves with `errors`, a missing session\n * throws an HTTP 401 — and every call site would have to remember both. Six handlers in this package\n * remembered neither: they read `errors` only to skip the success branch, with no `else`, so a\n * failed save changed nothing on screen and said nothing. The worker presses the button again.\n *\n * The caller keeps its success path and stops carrying the failure one:\n *\n * const outcome = await ranMutation(() => client.mutate({ … }))\n * if (!outcome.ok) return\n * … what to do when it worked …\n */\nexport async function ranMutation(run: () => Promise<any>): Promise<MutationOutcome> {\n let outcome: MutationOutcome\n\n try {\n outcome = outcomeOf(await run())\n } catch (thrown) {\n outcome = outcomeOfThrow(thrown)\n }\n\n if (!outcome.ok) {\n sayFailure(outcome)\n }\n\n return outcome\n}\n\n/**\n * One sentence per kind of failure.\n *\n * `said` is the server's own sentence and only the last kind prints it — for the other two this\n * side knows what happened and can say what to do about it. Telling someone whose session expired\n * to ask an administrator for a privilege would send them where nobody can help.\n */\nexport function sayFailure(outcome: MutationOutcome) {\n if (outcome.ok) {\n return\n }\n\n const key = outcomeKey(outcome)\n\n document.dispatchEvent(\n new CustomEvent('notify', {\n detail: {\n level: 'error',\n message: i18next.t(key, { said: outcome.said || '' })\n }\n })\n )\n\n console.error(`[worklist] ${outcome.kind} — ${outcome.said}`)\n}\n"]}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * 업무 · 결재 화면의 머리 띠 — **세 화면이 한 모양을 쓴다.**
3
+ *
4
+ * activity-thread-ribon · activity-approval-ribon · activity-instance-ribon 이 같은 자리에 같은
5
+ * 것을 보인다(상태 · 설명 · 결재선 또는 담당자). 그런데 셋이 각자 100여 줄의 CSS 를 갖고 있었고,
6
+ * 상태색 여덟 개가 세 벌로 복사되어 있었다.
7
+ *
8
+ * ── 채운 띠를 걷은 이유 — 글자가 안 읽혔다 ─────────────────────────────────
9
+ * 전에는 상태마다 다른 색으로 띠 전체를 채우고 그 위에 흰 글자를 얹었다. 색은 하드코딩된 hex 여덟
10
+ * 개였고, --md-sys-color-on-primary(대개 흰색)를 글자색으로 썼다. contrast 를 계산하면 12px 글자
11
+ * 기준 AA(4.5:1)에 네 개가 못 미친다.
12
+ *
13
+ * started #56af45 2.76 ← 작업자가 가장 오래 보는 상태
14
+ * ended #02acae 2.79
15
+ * rejected #f27429 2.87
16
+ * submitted #428df3 3.31
17
+ * unassigned #5f7184 5.02 (통과)
18
+ * escalated #595de5 5.09 (통과)
19
+ * aborted #cb3a33 5.01 (통과)
20
+ * delegated #8654b0 5.37 (통과)
21
+ *
22
+ * 색을 여덟 개 다시 고르는 대신 **띠를 채우지 않는다.** SurfaceStyles 가 정한 규칙과 같다 —
23
+ * 흰 면에 1px 선을 두르고, 색은 상태 앞의 점 하나가 말한다. 글자는 --ui-ink 라 어느 상태에서든
24
+ * 읽히고, 점은 UI 요소라 3:1 기준으로 판단한다.
25
+ *
26
+ * ── 색 여덟 개를 뜻 여섯 개로 ──────────────────────────────────────────────
27
+ * 하드코딩된 hex 는 앱 팔레트를 따르지 않는다. worklist 는 framework 패키지라 operato-plant ·
28
+ * operato-gangsters · operato-dataset 이 모두 이 화면을 쓰는데, 어느 앱에서도 그 앱 색이 아니었다.
29
+ * 토큰으로 바꾸면 앱마다 자기 라이트 · 다크 테마를 따라온다.
30
+ *
31
+ * unassigned · assigned --ui-muted 아직 시작하지 않았다
32
+ * started --ui-accent 내 손에서 진행 중이다
33
+ * submitted · escalated · delegated --ui-info 남의 판단을 기다린다
34
+ * rejected --ui-warn 되돌아왔다. 다시 해야 한다
35
+ * ended · approved --ui-good 끝났다
36
+ * aborted --ui-crit 중단됐다
37
+ *
38
+ * 색만으로 뜻을 전하지 않는다 — 상태 이름을 항상 함께 적는다.
39
+ */
40
+ /**
41
+ * The state → colour mapping above, alone - for anything that shows a worklist state, not only the
42
+ * ribbon. Set on `:host([state=...])`; read `--worklist-state-color`. The activity instance view kept
43
+ * a fourth copy of the old eight hex colours after the ribbons moved to meanings; three of them were
44
+ * under 3:1 on a light surface (started 2.62 · rejected 2.73 · ended 2.65, measured on :4000
45
+ * 2026-09-24) and `unassigned` had none, so it drew tomato.
46
+ */
47
+ export declare const WorklistStateColors: import("lit").CSSResult;
48
+ export declare const StateRibonStyles: import("lit").CSSResult[];