@nocobase/app-plugin-projects 0.1.0-beta.7 → 0.1.0-beta.9

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 (491) hide show
  1. package/CHANGELOG.md +58 -0
  2. package/README.md +60 -104
  3. package/dist/client/api/changed-issues.d.ts +12 -0
  4. package/dist/client/api/changed-issues.d.ts.map +1 -0
  5. package/dist/client/api/changed-issues.js +30 -0
  6. package/dist/client/api/changed-issues.js.map +1 -0
  7. package/dist/client/api/client.d.ts +4 -23
  8. package/dist/client/api/client.d.ts.map +1 -1
  9. package/dist/client/api/client.js +4 -48
  10. package/dist/client/api/client.js.map +1 -1
  11. package/dist/client/api/keys.d.ts +2 -8
  12. package/dist/client/api/keys.d.ts.map +1 -1
  13. package/dist/client/api/keys.js +2 -17
  14. package/dist/client/api/keys.js.map +1 -1
  15. package/dist/client/components/pm-badges.d.ts +1 -1
  16. package/dist/client/components/pm-badges.d.ts.map +1 -1
  17. package/dist/client/components/pm-executor-select.d.ts +2 -0
  18. package/dist/client/components/pm-executor-select.d.ts.map +1 -1
  19. package/dist/client/components/pm-executor-select.js.map +1 -1
  20. package/dist/client/components/ui/radio-group.d.ts +7 -0
  21. package/dist/client/components/ui/radio-group.d.ts.map +1 -0
  22. package/dist/client/components/ui/radio-group.js +12 -0
  23. package/dist/client/components/ui/radio-group.js.map +1 -0
  24. package/dist/client/config.d.ts +0 -2
  25. package/dist/client/config.d.ts.map +1 -1
  26. package/dist/client/config.js +1 -5
  27. package/dist/client/config.js.map +1 -1
  28. package/dist/client/issues.d.ts +2 -4
  29. package/dist/client/issues.d.ts.map +1 -1
  30. package/dist/client/issues.js +2 -3
  31. package/dist/client/issues.js.map +1 -1
  32. package/dist/client/kit/plans/lookup.d.ts +2 -2
  33. package/dist/client/kit/plans/lookup.js +3 -3
  34. package/dist/client/kit/plans/lookup.js.map +1 -1
  35. package/dist/client/kit/plans/plan-row.js +2 -2
  36. package/dist/client/kit/plans/plan-row.js.map +1 -1
  37. package/dist/client/kit.d.ts +3 -9
  38. package/dist/client/kit.d.ts.map +1 -1
  39. package/dist/client/kit.js +3 -9
  40. package/dist/client/kit.js.map +1 -1
  41. package/dist/client/lib/kinds.d.ts +3 -29
  42. package/dist/client/lib/kinds.d.ts.map +1 -1
  43. package/dist/client/lib/kinds.js +7 -46
  44. package/dist/client/lib/kinds.js.map +1 -1
  45. package/dist/client/lib/status-events.d.ts +21 -0
  46. package/dist/client/lib/status-events.d.ts.map +1 -0
  47. package/dist/client/lib/status-events.js +31 -0
  48. package/dist/client/lib/status-events.js.map +1 -0
  49. package/dist/client/lib/status.d.ts +5 -7
  50. package/dist/client/lib/status.d.ts.map +1 -1
  51. package/dist/client/lib/status.js +5 -7
  52. package/dist/client/lib/status.js.map +1 -1
  53. package/dist/client/locales/en-US.d.ts +6 -256
  54. package/dist/client/locales/en-US.d.ts.map +1 -1
  55. package/dist/client/locales/en-US.js +9 -255
  56. package/dist/client/locales/en-US.js.map +1 -1
  57. package/dist/client/locales/zh-CN.d.ts.map +1 -1
  58. package/dist/client/locales/zh-CN.js +10 -248
  59. package/dist/client/locales/zh-CN.js.map +1 -1
  60. package/dist/client/pages/issues/board/board-model.d.ts +1 -1
  61. package/dist/client/pages/issues/board/board-model.js +1 -1
  62. package/dist/client/pages/issues/board/use-board-move.d.ts +2 -8
  63. package/dist/client/pages/issues/board/use-board-move.d.ts.map +1 -1
  64. package/dist/client/pages/issues/board/use-board-move.js +5 -42
  65. package/dist/client/pages/issues/board/use-board-move.js.map +1 -1
  66. package/dist/client/pages/issues/detail/new-subtask.d.ts.map +1 -1
  67. package/dist/client/pages/issues/detail/new-subtask.js +6 -28
  68. package/dist/client/pages/issues/detail/new-subtask.js.map +1 -1
  69. package/dist/client/pages/issues/detail/subtask-model.d.ts +1 -1
  70. package/dist/client/pages/issues/detail/subtask-model.js +1 -1
  71. package/dist/client/pages/issues/detail/use-confirmed-update.d.ts +6 -8
  72. package/dist/client/pages/issues/detail/use-confirmed-update.d.ts.map +1 -1
  73. package/dist/client/pages/issues/detail/use-confirmed-update.js +9 -42
  74. package/dist/client/pages/issues/detail/use-confirmed-update.js.map +1 -1
  75. package/dist/client/pages/issues/detail/use-issue-page.d.ts +0 -4
  76. package/dist/client/pages/issues/detail/use-issue-page.d.ts.map +1 -1
  77. package/dist/client/pages/issues/detail/use-issue-page.js +0 -14
  78. package/dist/client/pages/issues/detail/use-issue-page.js.map +1 -1
  79. package/dist/client/pages/issues/detail/use-issue-update.d.ts +2 -2
  80. package/dist/client/pages/issues/detail/use-issue-update.d.ts.map +1 -1
  81. package/dist/client/pages/issues/detail/use-issue-update.js +4 -6
  82. package/dist/client/pages/issues/detail/use-issue-update.js.map +1 -1
  83. package/dist/client/pages/issues/new-issue-form.d.ts +11 -8
  84. package/dist/client/pages/issues/new-issue-form.d.ts.map +1 -1
  85. package/dist/client/pages/issues/new-issue-form.js +47 -79
  86. package/dist/client/pages/issues/new-issue-form.js.map +1 -1
  87. package/dist/client/pages/issues/new.d.ts.map +1 -1
  88. package/dist/client/pages/issues/new.js +2 -1
  89. package/dist/client/pages/issues/new.js.map +1 -1
  90. package/dist/client/pages/issues/use-executor-options.d.ts +3 -2
  91. package/dist/client/pages/issues/use-executor-options.d.ts.map +1 -1
  92. package/dist/client/pages/issues/use-executor-options.js +5 -23
  93. package/dist/client/pages/issues/use-executor-options.js.map +1 -1
  94. package/dist/client/pages/projects/detail/use-project-page.d.ts +4 -26
  95. package/dist/client/pages/projects/detail/use-project-page.d.ts.map +1 -1
  96. package/dist/client/pages/projects/detail/use-project-page.js +7 -53
  97. package/dist/client/pages/projects/detail/use-project-page.js.map +1 -1
  98. package/dist/client/pages/projects/new.d.ts +1 -1
  99. package/dist/client/pages/projects/new.d.ts.map +1 -1
  100. package/dist/client/pages/projects/new.js +3 -7
  101. package/dist/client/pages/projects/new.js.map +1 -1
  102. package/dist/client/plugin.d.ts +3 -0
  103. package/dist/client/plugin.d.ts.map +1 -1
  104. package/dist/client/plugin.js +8 -1
  105. package/dist/client/plugin.js.map +1 -1
  106. package/dist/client/projects.d.ts +2 -2
  107. package/dist/client/projects.d.ts.map +1 -1
  108. package/dist/client/projects.js +2 -2
  109. package/dist/client/projects.js.map +1 -1
  110. package/dist/client/providers/query-provider.d.ts.map +1 -1
  111. package/dist/client/providers/query-provider.js +13 -10
  112. package/dist/client/providers/query-provider.js.map +1 -1
  113. package/dist/database/migrations/.manifest.json +8 -0
  114. package/dist/database/migrations/202610240010_pm_fixed_statuses.d.ts +4 -0
  115. package/dist/database/migrations/202610240010_pm_fixed_statuses.d.ts.map +1 -0
  116. package/dist/database/migrations/202610240010_pm_fixed_statuses.js +189 -0
  117. package/dist/database/migrations/202610240010_pm_fixed_statuses.js.map +1 -0
  118. package/dist/database/migrations/202610240011_pm_issue_progress.d.ts +4 -0
  119. package/dist/database/migrations/202610240011_pm_issue_progress.d.ts.map +1 -0
  120. package/dist/database/migrations/202610240011_pm_issue_progress.js +19 -0
  121. package/dist/database/migrations/202610240011_pm_issue_progress.js.map +1 -0
  122. package/dist/server/composition.d.ts +11 -17
  123. package/dist/server/composition.d.ts.map +1 -1
  124. package/dist/server/composition.js +11 -56
  125. package/dist/server/composition.js.map +1 -1
  126. package/dist/server/domains/comments/comment.queries.d.ts +31 -0
  127. package/dist/server/domains/comments/comment.queries.d.ts.map +1 -1
  128. package/dist/server/domains/comments/comment.queries.js +27 -1
  129. package/dist/server/domains/comments/comment.queries.js.map +1 -1
  130. package/dist/server/domains/comments/comment.store.d.ts +19 -0
  131. package/dist/server/domains/comments/comment.store.d.ts.map +1 -1
  132. package/dist/server/domains/comments/comment.store.js +55 -0
  133. package/dist/server/domains/comments/comment.store.js.map +1 -1
  134. package/dist/server/domains/comments/index.d.ts +1 -1
  135. package/dist/server/domains/comments/index.d.ts.map +1 -1
  136. package/dist/server/domains/comments/index.js.map +1 -1
  137. package/dist/server/domains/issues/index.d.ts +1 -1
  138. package/dist/server/domains/issues/index.d.ts.map +1 -1
  139. package/dist/server/domains/issues/index.js +1 -1
  140. package/dist/server/domains/issues/index.js.map +1 -1
  141. package/dist/server/domains/issues/issue.context.d.ts +6 -22
  142. package/dist/server/domains/issues/issue.context.d.ts.map +1 -1
  143. package/dist/server/domains/issues/issue.context.js +1 -22
  144. package/dist/server/domains/issues/issue.context.js.map +1 -1
  145. package/dist/server/domains/issues/issue.fields.d.ts +5 -3
  146. package/dist/server/domains/issues/issue.fields.d.ts.map +1 -1
  147. package/dist/server/domains/issues/issue.fields.js +37 -16
  148. package/dist/server/domains/issues/issue.fields.js.map +1 -1
  149. package/dist/server/domains/issues/issue.projects.d.ts +2 -2
  150. package/dist/server/domains/issues/issue.projects.d.ts.map +1 -1
  151. package/dist/server/domains/issues/issue.projects.js +1 -2
  152. package/dist/server/domains/issues/issue.projects.js.map +1 -1
  153. package/dist/server/domains/issues/issue.queries.d.ts +10 -7
  154. package/dist/server/domains/issues/issue.queries.d.ts.map +1 -1
  155. package/dist/server/domains/issues/issue.queries.js +15 -41
  156. package/dist/server/domains/issues/issue.queries.js.map +1 -1
  157. package/dist/server/domains/issues/issue.routes.d.ts +1 -1
  158. package/dist/server/domains/issues/issue.routes.d.ts.map +1 -1
  159. package/dist/server/domains/issues/issue.routes.js +20 -38
  160. package/dist/server/domains/issues/issue.routes.js.map +1 -1
  161. package/dist/server/domains/issues/issue.service.d.ts +20 -44
  162. package/dist/server/domains/issues/issue.service.d.ts.map +1 -1
  163. package/dist/server/domains/issues/issue.service.js +26 -81
  164. package/dist/server/domains/issues/issue.service.js.map +1 -1
  165. package/dist/server/domains/issues/issue.status.d.ts +6 -10
  166. package/dist/server/domains/issues/issue.status.d.ts.map +1 -1
  167. package/dist/server/domains/issues/issue.status.js +3 -20
  168. package/dist/server/domains/issues/issue.status.js.map +1 -1
  169. package/dist/server/domains/issues/issue.store.d.ts +2 -0
  170. package/dist/server/domains/issues/issue.store.d.ts.map +1 -1
  171. package/dist/server/domains/issues/issue.store.js +2 -0
  172. package/dist/server/domains/issues/issue.store.js.map +1 -1
  173. package/dist/server/domains/issues/ports.d.ts +19 -36
  174. package/dist/server/domains/issues/ports.d.ts.map +1 -1
  175. package/dist/server/domains/issues/ports.js +0 -5
  176. package/dist/server/domains/issues/ports.js.map +1 -1
  177. package/dist/server/domains/notices/notice.planner.d.ts +2 -1
  178. package/dist/server/domains/notices/notice.planner.d.ts.map +1 -1
  179. package/dist/server/domains/notices/notice.planner.js +2 -1
  180. package/dist/server/domains/notices/notice.planner.js.map +1 -1
  181. package/dist/server/domains/notices/notice.rules.d.ts +1 -4
  182. package/dist/server/domains/notices/notice.rules.d.ts.map +1 -1
  183. package/dist/server/domains/notices/notice.rules.js +4 -5
  184. package/dist/server/domains/notices/notice.rules.js.map +1 -1
  185. package/dist/server/domains/plans/plan.ops.d.ts +3 -3
  186. package/dist/server/domains/plans/plan.ops.d.ts.map +1 -1
  187. package/dist/server/domains/plans/plan.ops.js +23 -13
  188. package/dist/server/domains/plans/plan.ops.js.map +1 -1
  189. package/dist/server/domains/projects/index.d.ts +1 -1
  190. package/dist/server/domains/projects/index.d.ts.map +1 -1
  191. package/dist/server/domains/projects/index.js.map +1 -1
  192. package/dist/server/domains/projects/project.events.d.ts +10 -0
  193. package/dist/server/domains/projects/project.events.d.ts.map +1 -0
  194. package/dist/server/domains/projects/project.events.js +2 -0
  195. package/dist/server/domains/projects/project.events.js.map +1 -0
  196. package/dist/server/domains/projects/project.routes.d.ts.map +1 -1
  197. package/dist/server/domains/projects/project.routes.js +1 -3
  198. package/dist/server/domains/projects/project.routes.js.map +1 -1
  199. package/dist/server/domains/projects/project.service.d.ts +1 -7
  200. package/dist/server/domains/projects/project.service.d.ts.map +1 -1
  201. package/dist/server/domains/projects/project.service.js +2 -17
  202. package/dist/server/domains/projects/project.service.js.map +1 -1
  203. package/dist/server/domains/projects/project.store.d.ts +0 -1
  204. package/dist/server/domains/projects/project.store.d.ts.map +1 -1
  205. package/dist/server/domains/projects/project.store.js +0 -1
  206. package/dist/server/domains/projects/project.store.js.map +1 -1
  207. package/dist/server/domains/reports/report.service.d.ts +1 -12
  208. package/dist/server/domains/reports/report.service.d.ts.map +1 -1
  209. package/dist/server/domains/reports/report.service.js +23 -79
  210. package/dist/server/domains/reports/report.service.js.map +1 -1
  211. package/dist/server/domains/statuses/event-types.d.ts +16 -0
  212. package/dist/server/domains/statuses/event-types.d.ts.map +1 -0
  213. package/dist/server/domains/statuses/event-types.js +31 -0
  214. package/dist/server/domains/statuses/event-types.js.map +1 -0
  215. package/dist/server/domains/statuses/index.d.ts +4 -0
  216. package/dist/server/domains/statuses/index.d.ts.map +1 -0
  217. package/dist/server/domains/statuses/index.js +4 -0
  218. package/dist/server/domains/statuses/index.js.map +1 -0
  219. package/dist/server/domains/statuses/status.catalog.d.ts +15 -0
  220. package/dist/server/domains/statuses/status.catalog.d.ts.map +1 -0
  221. package/dist/server/domains/statuses/status.catalog.js +119 -0
  222. package/dist/server/domains/statuses/status.catalog.js.map +1 -0
  223. package/dist/server/domains/statuses/status.events.d.ts +15 -0
  224. package/dist/server/domains/statuses/status.events.d.ts.map +1 -0
  225. package/dist/server/domains/statuses/status.events.js +2 -0
  226. package/dist/server/domains/statuses/status.events.js.map +1 -0
  227. package/dist/server/domains/statuses/status.fire.d.ts +48 -0
  228. package/dist/server/domains/statuses/status.fire.d.ts.map +1 -0
  229. package/dist/server/domains/statuses/status.fire.js +38 -0
  230. package/dist/server/domains/statuses/status.fire.js.map +1 -0
  231. package/dist/server/domains/subscriptions/subscription.routes.d.ts.map +1 -1
  232. package/dist/server/domains/subscriptions/subscription.routes.js +4 -2
  233. package/dist/server/domains/subscriptions/subscription.routes.js.map +1 -1
  234. package/dist/server/domains/subtasks/subtask.blocking.d.ts +4 -4
  235. package/dist/server/domains/subtasks/subtask.blocking.d.ts.map +1 -1
  236. package/dist/server/domains/subtasks/subtask.blocking.js +2 -10
  237. package/dist/server/domains/subtasks/subtask.blocking.js.map +1 -1
  238. package/dist/server/domains/subtasks/subtask.release.d.ts +5 -9
  239. package/dist/server/domains/subtasks/subtask.release.d.ts.map +1 -1
  240. package/dist/server/domains/subtasks/subtask.release.js +0 -4
  241. package/dist/server/domains/subtasks/subtask.release.js.map +1 -1
  242. package/dist/server/domains/subtasks/subtask.service.d.ts +1 -3
  243. package/dist/server/domains/subtasks/subtask.service.d.ts.map +1 -1
  244. package/dist/server/domains/subtasks/subtask.service.js +0 -12
  245. package/dist/server/domains/subtasks/subtask.service.js.map +1 -1
  246. package/dist/server/kernel/http.d.ts.map +1 -1
  247. package/dist/server/kernel/http.js +0 -3
  248. package/dist/server/kernel/http.js.map +1 -1
  249. package/dist/server/kernel/kinds.d.ts +24 -6
  250. package/dist/server/kernel/kinds.d.ts.map +1 -1
  251. package/dist/server/kernel/kinds.js +21 -1
  252. package/dist/server/kernel/kinds.js.map +1 -1
  253. package/dist/server/kernel/work.d.ts +8 -4
  254. package/dist/server/kernel/work.d.ts.map +1 -1
  255. package/dist/server/kernel/work.js +21 -10
  256. package/dist/server/kernel/work.js.map +1 -1
  257. package/dist/server/locales/en-US.d.ts +0 -9
  258. package/dist/server/locales/en-US.d.ts.map +1 -1
  259. package/dist/server/locales/en-US.js +0 -9
  260. package/dist/server/locales/en-US.js.map +1 -1
  261. package/dist/server/locales/zh-CN.d.ts.map +1 -1
  262. package/dist/server/locales/zh-CN.js +2 -11
  263. package/dist/server/locales/zh-CN.js.map +1 -1
  264. package/dist/server/providers/change-announcer.d.ts +27 -0
  265. package/dist/server/providers/change-announcer.d.ts.map +1 -0
  266. package/dist/server/providers/change-announcer.js +74 -0
  267. package/dist/server/providers/change-announcer.js.map +1 -0
  268. package/dist/server/providers/notifications.d.ts +1 -0
  269. package/dist/server/providers/notifications.d.ts.map +1 -1
  270. package/dist/server/providers/notifications.js +6 -120
  271. package/dist/server/providers/notifications.js.map +1 -1
  272. package/dist/server/providers/projects.d.ts +3 -8
  273. package/dist/server/providers/projects.d.ts.map +1 -1
  274. package/dist/server/providers/projects.js +14 -37
  275. package/dist/server/providers/projects.js.map +1 -1
  276. package/dist/server/routes/api.d.ts.map +1 -1
  277. package/dist/server/routes/api.js +0 -6
  278. package/dist/server/routes/api.js.map +1 -1
  279. package/dist/server/routes/schemas.d.ts +1 -27
  280. package/dist/server/routes/schemas.d.ts.map +1 -1
  281. package/dist/server/routes/schemas.js +23 -167
  282. package/dist/server/routes/schemas.js.map +1 -1
  283. package/dist/server/tokens.d.ts +12 -34
  284. package/dist/server/tokens.d.ts.map +1 -1
  285. package/dist/server/tokens.js +4 -16
  286. package/dist/server/tokens.js.map +1 -1
  287. package/dist/shared/access.d.ts +0 -1
  288. package/dist/shared/access.d.ts.map +1 -1
  289. package/dist/shared/access.js +2 -11
  290. package/dist/shared/access.js.map +1 -1
  291. package/dist/shared/issues.d.ts +14 -36
  292. package/dist/shared/issues.d.ts.map +1 -1
  293. package/dist/shared/issues.js +1 -0
  294. package/dist/shared/issues.js.map +1 -1
  295. package/dist/shared/kinds.d.ts +3 -1
  296. package/dist/shared/kinds.d.ts.map +1 -1
  297. package/dist/shared/kinds.js +1 -1
  298. package/dist/shared/locales/access.en-US.d.ts +0 -1
  299. package/dist/shared/locales/access.en-US.d.ts.map +1 -1
  300. package/dist/shared/locales/access.en-US.js +1 -2
  301. package/dist/shared/locales/access.en-US.js.map +1 -1
  302. package/dist/shared/locales/access.zh-CN.d.ts.map +1 -1
  303. package/dist/shared/locales/access.zh-CN.js +1 -2
  304. package/dist/shared/locales/access.zh-CN.js.map +1 -1
  305. package/dist/shared/plans.d.ts +6 -6
  306. package/dist/shared/plans.d.ts.map +1 -1
  307. package/dist/shared/plans.js +2 -1
  308. package/dist/shared/plans.js.map +1 -1
  309. package/dist/shared/projects.d.ts +0 -4
  310. package/dist/shared/projects.d.ts.map +1 -1
  311. package/dist/shared/projects.js.map +1 -1
  312. package/dist/shared/realtime.d.ts +9 -3
  313. package/dist/shared/realtime.d.ts.map +1 -1
  314. package/dist/shared/realtime.js +3 -2
  315. package/dist/shared/realtime.js.map +1 -1
  316. package/dist/shared/statuses.d.ts +42 -0
  317. package/dist/shared/statuses.d.ts.map +1 -0
  318. package/dist/shared/statuses.js +73 -0
  319. package/dist/shared/statuses.js.map +1 -0
  320. package/dist/shared/subtasks.d.ts +3 -3
  321. package/dist/shared/subtasks.d.ts.map +1 -1
  322. package/package.json +9 -17
  323. package/skills/nocobase-app-plugin-projects/SKILL.md +27 -51
  324. package/dist/client/hooks/use-workflow-leave-guard.d.ts +0 -3
  325. package/dist/client/hooks/use-workflow-leave-guard.d.ts.map +0 -1
  326. package/dist/client/hooks/use-workflow-leave-guard.js +0 -31
  327. package/dist/client/hooks/use-workflow-leave-guard.js.map +0 -1
  328. package/dist/client/lib/built-in-rule-editors.d.ts +0 -13
  329. package/dist/client/lib/built-in-rule-editors.d.ts.map +0 -1
  330. package/dist/client/lib/built-in-rule-editors.js +0 -86
  331. package/dist/client/lib/built-in-rule-editors.js.map +0 -1
  332. package/dist/client/lib/built-in-rule-types.d.ts +0 -3
  333. package/dist/client/lib/built-in-rule-types.d.ts.map +0 -1
  334. package/dist/client/lib/built-in-rule-types.js +0 -63
  335. package/dist/client/lib/built-in-rule-types.js.map +0 -1
  336. package/dist/client/lib/status-rule-types.d.ts +0 -60
  337. package/dist/client/lib/status-rule-types.d.ts.map +0 -1
  338. package/dist/client/lib/status-rule-types.js +0 -38
  339. package/dist/client/lib/status-rule-types.js.map +0 -1
  340. package/dist/client/lib/workflow-events.d.ts +0 -25
  341. package/dist/client/lib/workflow-events.d.ts.map +0 -1
  342. package/dist/client/lib/workflow-events.js +0 -30
  343. package/dist/client/lib/workflow-events.js.map +0 -1
  344. package/dist/client/pages/config/workflow-detail.d.ts +0 -10
  345. package/dist/client/pages/config/workflow-detail.d.ts.map +0 -1
  346. package/dist/client/pages/config/workflow-detail.js +0 -207
  347. package/dist/client/pages/config/workflow-detail.js.map +0 -1
  348. package/dist/client/pages/config/workflows/flow-editor.d.ts +0 -15
  349. package/dist/client/pages/config/workflows/flow-editor.d.ts.map +0 -1
  350. package/dist/client/pages/config/workflows/flow-editor.js +0 -76
  351. package/dist/client/pages/config/workflows/flow-editor.js.map +0 -1
  352. package/dist/client/pages/config/workflows/status-rules.d.ts +0 -21
  353. package/dist/client/pages/config/workflows/status-rules.d.ts.map +0 -1
  354. package/dist/client/pages/config/workflows/status-rules.js +0 -203
  355. package/dist/client/pages/config/workflows/status-rules.js.map +0 -1
  356. package/dist/client/pages/config/workflows/transitions-matrix.d.ts +0 -20
  357. package/dist/client/pages/config/workflows/transitions-matrix.d.ts.map +0 -1
  358. package/dist/client/pages/config/workflows/transitions-matrix.js +0 -114
  359. package/dist/client/pages/config/workflows/transitions-matrix.js.map +0 -1
  360. package/dist/client/pages/config/workflows/use-status-name.d.ts +0 -4
  361. package/dist/client/pages/config/workflows/use-status-name.d.ts.map +0 -1
  362. package/dist/client/pages/config/workflows/use-status-name.js +0 -17
  363. package/dist/client/pages/config/workflows/use-status-name.js.map +0 -1
  364. package/dist/client/pages/config/workflows/workflow-diagram.d.ts +0 -17
  365. package/dist/client/pages/config/workflows/workflow-diagram.d.ts.map +0 -1
  366. package/dist/client/pages/config/workflows/workflow-diagram.js +0 -298
  367. package/dist/client/pages/config/workflows/workflow-diagram.js.map +0 -1
  368. package/dist/client/pages/config/workflows/workflow-model.d.ts +0 -157
  369. package/dist/client/pages/config/workflows/workflow-model.d.ts.map +0 -1
  370. package/dist/client/pages/config/workflows/workflow-model.js +0 -403
  371. package/dist/client/pages/config/workflows/workflow-model.js.map +0 -1
  372. package/dist/client/pages/config/workflows/workflow-views.d.ts +0 -31
  373. package/dist/client/pages/config/workflows/workflow-views.d.ts.map +0 -1
  374. package/dist/client/pages/config/workflows/workflow-views.js +0 -76
  375. package/dist/client/pages/config/workflows/workflow-views.js.map +0 -1
  376. package/dist/client/pages/config/workflows.d.ts +0 -8
  377. package/dist/client/pages/config/workflows.d.ts.map +0 -1
  378. package/dist/client/pages/config/workflows.js +0 -139
  379. package/dist/client/pages/config/workflows.js.map +0 -1
  380. package/dist/client/pages/issues/detail/start-dialog.d.ts +0 -20
  381. package/dist/client/pages/issues/detail/start-dialog.d.ts.map +0 -1
  382. package/dist/client/pages/issues/detail/start-dialog.js +0 -31
  383. package/dist/client/pages/issues/detail/start-dialog.js.map +0 -1
  384. package/dist/client/pages/projects/workflow-select.d.ts +0 -14
  385. package/dist/client/pages/projects/workflow-select.d.ts.map +0 -1
  386. package/dist/client/pages/projects/workflow-select.js +0 -34
  387. package/dist/client/pages/projects/workflow-select.js.map +0 -1
  388. package/dist/server/domains/approvals/approval.events.d.ts +0 -47
  389. package/dist/server/domains/approvals/approval.events.d.ts.map +0 -1
  390. package/dist/server/domains/approvals/approval.events.js +0 -2
  391. package/dist/server/domains/approvals/approval.events.js.map +0 -1
  392. package/dist/server/domains/approvals/approval.lifecycle.d.ts +0 -8
  393. package/dist/server/domains/approvals/approval.lifecycle.d.ts.map +0 -1
  394. package/dist/server/domains/approvals/approval.lifecycle.js +0 -54
  395. package/dist/server/domains/approvals/approval.lifecycle.js.map +0 -1
  396. package/dist/server/domains/approvals/approval.routes.d.ts +0 -10
  397. package/dist/server/domains/approvals/approval.routes.d.ts.map +0 -1
  398. package/dist/server/domains/approvals/approval.routes.js +0 -87
  399. package/dist/server/domains/approvals/approval.routes.js.map +0 -1
  400. package/dist/server/domains/approvals/approval.service.d.ts +0 -72
  401. package/dist/server/domains/approvals/approval.service.d.ts.map +0 -1
  402. package/dist/server/domains/approvals/approval.service.js +0 -261
  403. package/dist/server/domains/approvals/approval.service.js.map +0 -1
  404. package/dist/server/domains/approvals/approval.store.d.ts +0 -42
  405. package/dist/server/domains/approvals/approval.store.d.ts.map +0 -1
  406. package/dist/server/domains/approvals/approval.store.js +0 -66
  407. package/dist/server/domains/approvals/approval.store.js.map +0 -1
  408. package/dist/server/domains/approvals/index.d.ts +0 -4
  409. package/dist/server/domains/approvals/index.d.ts.map +0 -1
  410. package/dist/server/domains/approvals/index.js +0 -3
  411. package/dist/server/domains/approvals/index.js.map +0 -1
  412. package/dist/server/domains/checklists/checklist.routes.d.ts +0 -9
  413. package/dist/server/domains/checklists/checklist.routes.d.ts.map +0 -1
  414. package/dist/server/domains/checklists/checklist.routes.js +0 -62
  415. package/dist/server/domains/checklists/checklist.routes.js.map +0 -1
  416. package/dist/server/domains/checklists/checklist.service.d.ts +0 -26
  417. package/dist/server/domains/checklists/checklist.service.d.ts.map +0 -1
  418. package/dist/server/domains/checklists/checklist.service.js +0 -80
  419. package/dist/server/domains/checklists/checklist.service.js.map +0 -1
  420. package/dist/server/domains/checklists/checklist.store.d.ts +0 -32
  421. package/dist/server/domains/checklists/checklist.store.d.ts.map +0 -1
  422. package/dist/server/domains/checklists/checklist.store.js +0 -66
  423. package/dist/server/domains/checklists/checklist.store.js.map +0 -1
  424. package/dist/server/domains/checklists/index.d.ts +0 -4
  425. package/dist/server/domains/checklists/index.d.ts.map +0 -1
  426. package/dist/server/domains/checklists/index.js +0 -4
  427. package/dist/server/domains/checklists/index.js.map +0 -1
  428. package/dist/server/domains/workflows/built-in-rule-types.d.ts +0 -40
  429. package/dist/server/domains/workflows/built-in-rule-types.d.ts.map +0 -1
  430. package/dist/server/domains/workflows/built-in-rule-types.js +0 -260
  431. package/dist/server/domains/workflows/built-in-rule-types.js.map +0 -1
  432. package/dist/server/domains/workflows/event-types.d.ts +0 -21
  433. package/dist/server/domains/workflows/event-types.d.ts.map +0 -1
  434. package/dist/server/domains/workflows/event-types.js +0 -31
  435. package/dist/server/domains/workflows/event-types.js.map +0 -1
  436. package/dist/server/domains/workflows/index.d.ts +0 -10
  437. package/dist/server/domains/workflows/index.d.ts.map +0 -1
  438. package/dist/server/domains/workflows/index.js +0 -10
  439. package/dist/server/domains/workflows/index.js.map +0 -1
  440. package/dist/server/domains/workflows/rule-types.d.ts +0 -129
  441. package/dist/server/domains/workflows/rule-types.d.ts.map +0 -1
  442. package/dist/server/domains/workflows/rule-types.js +0 -33
  443. package/dist/server/domains/workflows/rule-types.js.map +0 -1
  444. package/dist/server/domains/workflows/templates.d.ts +0 -62
  445. package/dist/server/domains/workflows/templates.d.ts.map +0 -1
  446. package/dist/server/domains/workflows/templates.js +0 -63
  447. package/dist/server/domains/workflows/templates.js.map +0 -1
  448. package/dist/server/domains/workflows/workflow.diff.d.ts +0 -14
  449. package/dist/server/domains/workflows/workflow.diff.d.ts.map +0 -1
  450. package/dist/server/domains/workflows/workflow.diff.js +0 -80
  451. package/dist/server/domains/workflows/workflow.diff.js.map +0 -1
  452. package/dist/server/domains/workflows/workflow.events.d.ts +0 -26
  453. package/dist/server/domains/workflows/workflow.events.d.ts.map +0 -1
  454. package/dist/server/domains/workflows/workflow.events.js +0 -2
  455. package/dist/server/domains/workflows/workflow.events.js.map +0 -1
  456. package/dist/server/domains/workflows/workflow.fire.d.ts +0 -38
  457. package/dist/server/domains/workflows/workflow.fire.d.ts.map +0 -1
  458. package/dist/server/domains/workflows/workflow.fire.js +0 -57
  459. package/dist/server/domains/workflows/workflow.fire.js.map +0 -1
  460. package/dist/server/domains/workflows/workflow.registry.d.ts +0 -27
  461. package/dist/server/domains/workflows/workflow.registry.d.ts.map +0 -1
  462. package/dist/server/domains/workflows/workflow.registry.js +0 -132
  463. package/dist/server/domains/workflows/workflow.registry.js.map +0 -1
  464. package/dist/server/domains/workflows/workflow.routes.d.ts +0 -6
  465. package/dist/server/domains/workflows/workflow.routes.d.ts.map +0 -1
  466. package/dist/server/domains/workflows/workflow.routes.js +0 -148
  467. package/dist/server/domains/workflows/workflow.routes.js.map +0 -1
  468. package/dist/server/domains/workflows/workflow.rules.d.ts +0 -14
  469. package/dist/server/domains/workflows/workflow.rules.d.ts.map +0 -1
  470. package/dist/server/domains/workflows/workflow.rules.js +0 -212
  471. package/dist/server/domains/workflows/workflow.rules.js.map +0 -1
  472. package/dist/server/domains/workflows/workflow.service.d.ts +0 -71
  473. package/dist/server/domains/workflows/workflow.service.d.ts.map +0 -1
  474. package/dist/server/domains/workflows/workflow.service.js +0 -366
  475. package/dist/server/domains/workflows/workflow.service.js.map +0 -1
  476. package/dist/server/domains/workflows/workflow.store.d.ts +0 -33
  477. package/dist/server/domains/workflows/workflow.store.d.ts.map +0 -1
  478. package/dist/server/domains/workflows/workflow.store.js +0 -148
  479. package/dist/server/domains/workflows/workflow.store.js.map +0 -1
  480. package/dist/shared/approvals.d.ts +0 -37
  481. package/dist/shared/approvals.d.ts.map +0 -1
  482. package/dist/shared/approvals.js +0 -4
  483. package/dist/shared/approvals.js.map +0 -1
  484. package/dist/shared/checklists.d.ts +0 -27
  485. package/dist/shared/checklists.d.ts.map +0 -1
  486. package/dist/shared/checklists.js +0 -7
  487. package/dist/shared/checklists.js.map +0 -1
  488. package/dist/shared/workflows.d.ts +0 -276
  489. package/dist/shared/workflows.d.ts.map +0 -1
  490. package/dist/shared/workflows.js +0 -151
  491. package/dist/shared/workflows.js.map +0 -1
@@ -1,32 +0,0 @@
1
- /**
2
- * `pmIssueChecklistItems`: each issue's copy of the checklist of a status it entered, one row per item.
3
- */
4
- import type { DatabaseConnection } from '@nocobase/db';
5
- import type { ChecklistItemDefinition } from '../../../shared/workflows.js';
6
- export declare const CHECKLIST_ITEMS = "pmIssueChecklistItems";
7
- export interface ChecklistItemRecord {
8
- readonly id: string;
9
- readonly issueId: string;
10
- readonly statusKey: string;
11
- readonly itemKey: string;
12
- readonly label: string;
13
- readonly required: boolean | number;
14
- readonly position: number;
15
- /** A kind's key (`shared/kinds.ts`). */
16
- readonly checkedByType: string | null;
17
- readonly checkedById: string | null;
18
- readonly checkedAt: Date | string | null;
19
- readonly createdAt: Date | string;
20
- readonly updatedAt: Date | string;
21
- }
22
- /** The issue's items, of one status or of all, in the order they were added and then by position. */
23
- export declare function findItems(conn: DatabaseConnection, issueId: string, statusKey?: string): Promise<ChecklistItemRecord[]>;
24
- /** Adds the items the issue's copy of `statusKey` lacks; returns how many. */
25
- export declare function addMissingItems(conn: DatabaseConnection, nextId: () => string, issueId: string, statusKey: string, definitions: readonly ChecklistItemDefinition[]): Promise<number>;
26
- /** The labels of the required items of `statusKey` nobody checked yet. */
27
- export declare function uncheckedRequired(conn: DatabaseConnection, issueId: string, statusKey: string): Promise<string[]>;
28
- export declare function setChecked(conn: DatabaseConnection, id: string, checkedBy: {
29
- readonly type: string;
30
- readonly id: string;
31
- } | null): Promise<void>;
32
- //# sourceMappingURL=checklist.store.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"checklist.store.d.ts","sourceRoot":"","sources":["../../../../server/domains/checklists/checklist.store.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEvD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAE5E,eAAO,MAAM,eAAe,0BAA0B,CAAC;AAEvD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,wCAAwC;IACxC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,CAAC;CACnC;AAKD,qGAAqG;AACrG,wBAAsB,SAAS,CAC7B,IAAI,EAAE,kBAAkB,EACxB,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAQhC;AAED,8EAA8E;AAC9E,wBAAsB,eAAe,CACnC,IAAI,EAAE,kBAAkB,EACxB,MAAM,EAAE,MAAM,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,SAAS,uBAAuB,EAAE,GAC9C,OAAO,CAAC,MAAM,CAAC,CA2BjB;AAED,0EAA0E;AAC1E,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,kBAAkB,EACxB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,EAAE,CAAC,CAanB;AAED,wBAAsB,UAAU,CAC9B,IAAI,EAAE,kBAAkB,EACxB,EAAE,EAAE,MAAM,EACV,SAAS,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GAC/D,OAAO,CAAC,IAAI,CAAC,CAUf"}
@@ -1,66 +0,0 @@
1
- export const CHECKLIST_ITEMS = 'pmIssueChecklistItems';
2
- const items = (conn) => conn.repository(CHECKLIST_ITEMS);
3
- /** The issue's items, of one status or of all, in the order they were added and then by position. */
4
- export async function findItems(conn, issueId, statusKey) {
5
- return items(conn).findMany({
6
- filter: statusKey === undefined ? { issueId } : { issueId, statusKey },
7
- sort: (sort) => [
8
- sort.field('createdAt').asc(),
9
- sort.field('position').asc(),
10
- ],
11
- });
12
- }
13
- /** Adds the items the issue's copy of `statusKey` lacks; returns how many. */
14
- export async function addMissingItems(conn, nextId, issueId, statusKey, definitions) {
15
- const have = new Set((await findItems(conn, issueId, statusKey)).map((item) => item.itemKey));
16
- const now = new Date();
17
- let added = 0;
18
- for (const [position, item] of definitions.entries()) {
19
- if (have.has(item.key))
20
- continue;
21
- await items(conn).createOne({
22
- values: {
23
- id: nextId(),
24
- issueId,
25
- statusKey,
26
- itemKey: item.key,
27
- label: item.label,
28
- required: item.required,
29
- position,
30
- checkedByType: null,
31
- checkedById: null,
32
- checkedAt: null,
33
- createdAt: now,
34
- updatedAt: now,
35
- },
36
- });
37
- added += 1;
38
- }
39
- return added;
40
- }
41
- /** The labels of the required items of `statusKey` nobody checked yet. */
42
- export async function uncheckedRequired(conn, issueId, statusKey) {
43
- const rows = await items(conn).findMany({
44
- filter: (f) => f.and([
45
- f.string('issueId').eq(issueId),
46
- f.string('statusKey').eq(statusKey),
47
- f.boolean('required').isTrue(),
48
- f.date('checkedAt').empty(),
49
- ]),
50
- sort: (sort) => sort.field('position').asc(),
51
- select: (select) => select.fields('label'),
52
- });
53
- return rows.map((row) => row.label);
54
- }
55
- export async function setChecked(conn, id, checkedBy) {
56
- await items(conn).updateOne({
57
- filter: { id },
58
- values: {
59
- checkedByType: checkedBy?.type ?? null,
60
- checkedById: checkedBy?.id ?? null,
61
- checkedAt: checkedBy ? new Date() : null,
62
- updatedAt: new Date(),
63
- },
64
- });
65
- }
66
- //# sourceMappingURL=checklist.store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"checklist.store.js","sourceRoot":"","sources":["../../../../server/domains/checklists/checklist.store.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- export { createChecklistService, type ChecklistService, } from './checklist.service.js';
2
- export { createChecklistRoutes } from './checklist.routes.js';
3
- export { addMissingItems, uncheckedRequired } from './checklist.store.js';
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/domains/checklists/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,KAAK,gBAAgB,GACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -1,4 +0,0 @@
1
- export { createChecklistService, } from './checklist.service.js';
2
- export { createChecklistRoutes } from './checklist.routes.js';
3
- export { addMissingItems, uncheckedRequired } from './checklist.store.js';
4
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/domains/checklists/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,GAEvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -1,40 +0,0 @@
1
- /**
2
- * The status rule types this plugin brings (`shared/workflows.ts`, `BuiltInStatusRule`), written against the same
3
- * contract as the types other plugins contribute (`rule-types.ts`), so the workflows domain validates, describes and
4
- * runs every rule one way. Their stored form is unchanged: `subtasksDone` and `blockersDone` keep no settings.
5
- *
6
- * - `checklist`: entering the status gives the issue its own copy of the items (a copy it already has keeps its
7
- * checks, and gains the items added since); leaving it for anything but a closed status waits until the required
8
- * items are checked (400 `CHECKLIST_INCOMPLETE`).
9
- * - `notifyOwner`: the owner is told the issue entered the status (activity `owner_notified`, event
10
- * `workflow.ownerNotified`, which the provider turns into an in-app notification), unless the owner moved it.
11
- * - `subtasksDone`: entering the status waits until every live sub-issue is finished (400 `SUBTASKS_OPEN`); a closed
12
- * status never waits, so an issue can always be cancelled.
13
- * - `blockersDone`: entering the status waits until nothing holds the issue (400 `ISSUE_BLOCKED`).
14
- * - `startOption`: the New issue form offers the status as a way to start an issue (`IssueStarts`); entering it does
15
- * nothing. Only on a status a new issue may be in: not done or closed.
16
- *
17
- * Their outcomes are not recorded as `stage_action_*` activity (`issue.status.ts`): each records what it did itself.
18
- */
19
- import type { DatabaseConnection } from '@nocobase/db';
20
- import type { Issue } from '../../../shared/issues.js';
21
- import type { Blocker } from '../../../shared/subtasks.js';
22
- import { type RuleMessage } from '../../../shared/workflows.js';
23
- import type { ActivityRecorder } from '../../kernel/activity.js';
24
- import type { IdSource } from '../../kernel/ids.js';
25
- import type { StatusRuleType } from './rule-types.js';
26
- import './workflow.events.js';
27
- /** A valid rule's message as it is kept and sent: trimmed text, the key with what it has, or null for none. */
28
- export declare function ruleMessage(message: unknown): RuleMessage | null;
29
- /** Sub-issues and blockers, as the rules that wait for them read them (`domains/subtasks`). */
30
- export interface RelationChecks {
31
- /** Live sub-issues not finished by their own workflow, by number. */
32
- openChildren(conn: DatabaseConnection, issueId: string): Promise<readonly Pick<Issue, 'identifier'>[]>;
33
- blockers(conn: DatabaseConnection, issue: Issue): Promise<readonly Blocker[]>;
34
- }
35
- export declare function builtInStatusRuleTypes(deps: {
36
- readonly ids: IdSource;
37
- readonly activity: ActivityRecorder;
38
- readonly relations: () => RelationChecks;
39
- }): readonly StatusRuleType[];
40
- //# sourceMappingURL=built-in-rule-types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"built-in-rule-types.d.ts","sourceRoot":"","sources":["../../../../server/domains/workflows/built-in-rule-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEvD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAWL,KAAK,WAAW,EAEjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAGpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,sBAAsB,CAAC;AA8H9B,+GAA+G;AAC/G,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,GAAG,IAAI,CAUhE;AASD,+FAA+F;AAC/F,MAAM,WAAW,cAAc;IAC7B,qEAAqE;IACrE,YAAY,CACV,IAAI,EAAE,kBAAkB,EACxB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,SAAS,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;IACjD,QAAQ,CAAC,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,SAAS,OAAO,EAAE,CAAC,CAAC;CAC/E;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE;IAC3C,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,cAAc,CAAC;CAC1C,GAAG,SAAS,cAAc,EAAE,CAiJ5B"}
@@ -1,260 +0,0 @@
1
- import { CHECKLIST_ITEMS_MAX, CHECKLIST_ITEM_KEY_PATTERN, CHECKLIST_LABEL_MAX, isLocalizedMessage, messageText, MESSAGE_KEY_MAX, MESSAGE_NAMESPACE_PATTERN, NOTIFY_MESSAGE_MAX, START_LABEL_MAX, } from '../../../shared/workflows.js';
2
- import { addMissingItems, uncheckedRequired } from '../checklists/index.js';
3
- import './workflow.events.js';
4
- const isObject = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
5
- function checklistIssues(config) {
6
- const issues = [];
7
- for (const field of Object.keys(config))
8
- if (field !== 'items')
9
- issues.push({ path: field, message: 'Unknown field.' });
10
- const { items } = config;
11
- if (!Array.isArray(items) ||
12
- items.length === 0 ||
13
- items.length > CHECKLIST_ITEMS_MAX)
14
- return [
15
- ...issues,
16
- { path: 'items', message: `1 to ${CHECKLIST_ITEMS_MAX} items.` },
17
- ];
18
- const keys = new Set();
19
- items.forEach((item, index) => {
20
- const at = `items[${index}]`;
21
- if (!isObject(item)) {
22
- issues.push({
23
- path: at,
24
- message: 'An item is { key, label, required }.',
25
- });
26
- return;
27
- }
28
- for (const field of Object.keys(item))
29
- if (!['key', 'label', 'required'].includes(field))
30
- issues.push({ path: `${at}.${field}`, message: 'Unknown field.' });
31
- if (typeof item.key !== 'string' ||
32
- !CHECKLIST_ITEM_KEY_PATTERN.test(item.key))
33
- issues.push({
34
- path: `${at}.key`,
35
- message: 'A key is 1 to 64 lowercase letters, digits, hyphens or underscores.',
36
- });
37
- else if (keys.has(item.key))
38
- issues.push({
39
- path: `${at}.key`,
40
- message: `The key ${item.key} is used twice.`,
41
- });
42
- else
43
- keys.add(item.key);
44
- if (typeof item.label !== 'string' ||
45
- !item.label.trim() ||
46
- item.label.length > CHECKLIST_LABEL_MAX)
47
- issues.push({
48
- path: `${at}.label`,
49
- message: `A label is 1 to ${CHECKLIST_LABEL_MAX} characters.`,
50
- });
51
- if (typeof item.required !== 'boolean')
52
- issues.push({
53
- path: `${at}.required`,
54
- message: 'required is true or false.',
55
- });
56
- });
57
- return issues;
58
- }
59
- /** Problems with a rule's message at `path`: text of at most `max` characters, or `{ key, ns, defaultValue }`. */
60
- function messageIssues(path, message, max) {
61
- const issues = [];
62
- if (message === undefined)
63
- return issues;
64
- if (isLocalizedMessage(message)) {
65
- const fields = message;
66
- for (const field of Object.keys(fields))
67
- if (!['key', 'ns', 'defaultValue'].includes(field))
68
- issues.push({ path: `${path}.${field}`, message: 'Unknown field.' });
69
- if (!message.key.trim() || message.key.length > MESSAGE_KEY_MAX)
70
- issues.push({
71
- path: `${path}.key`,
72
- message: `A message key is 1 to ${MESSAGE_KEY_MAX} characters.`,
73
- });
74
- if (fields.ns !== undefined &&
75
- (typeof fields.ns !== 'string' ||
76
- !MESSAGE_NAMESPACE_PATTERN.test(fields.ns)))
77
- issues.push({ path: `${path}.ns`, message: 'Not a namespace.' });
78
- if (fields.defaultValue !== undefined &&
79
- (typeof fields.defaultValue !== 'string' ||
80
- fields.defaultValue.length > max))
81
- issues.push({
82
- path: `${path}.defaultValue`,
83
- message: `A message is at most ${max} characters.`,
84
- });
85
- }
86
- else if (typeof message !== 'string' || message.length > max)
87
- issues.push({
88
- path,
89
- message: `A message is text of at most ${max} characters, or { key, ns, defaultValue }.`,
90
- });
91
- return issues;
92
- }
93
- function notifyIssues(config) {
94
- return [
95
- ...Object.keys(config)
96
- .filter((field) => field !== 'message')
97
- .map((field) => ({ path: field, message: 'Unknown field.' })),
98
- ...messageIssues('message', config.message, NOTIFY_MESSAGE_MAX),
99
- ];
100
- }
101
- function startOptionIssues(config) {
102
- return [
103
- ...Object.keys(config)
104
- .filter((field) => field !== 'label' && field !== 'hint')
105
- .map((field) => ({ path: field, message: 'Unknown field.' })),
106
- ...messageIssues('label', config.label, START_LABEL_MAX),
107
- ...messageIssues('hint', config.hint, NOTIFY_MESSAGE_MAX),
108
- ];
109
- }
110
- /** A valid rule's message as it is kept and sent: trimmed text, the key with what it has, or null for none. */
111
- export function ruleMessage(message) {
112
- if (typeof message === 'string')
113
- return message.trim() || null;
114
- if (!isLocalizedMessage(message))
115
- return null;
116
- return {
117
- key: message.key,
118
- ...(message.ns ? { ns: message.ns } : {}),
119
- ...(message.defaultValue?.trim()
120
- ? { defaultValue: message.defaultValue.trim() }
121
- : {}),
122
- };
123
- }
124
- function noSettings(config) {
125
- return Object.keys(config).map((field) => ({
126
- path: field,
127
- message: 'Unknown field.',
128
- }));
129
- }
130
- export function builtInStatusRuleTypes(deps) {
131
- return [
132
- {
133
- type: 'checklist',
134
- validate: checklistIssues,
135
- describe: (config) => ({
136
- summary: `Gives the issue a checklist of ${Array.isArray(config.items) ? config.items.length : 0} item(s).`,
137
- }),
138
- async canLeave(check) {
139
- if (check.status.category === 'closed')
140
- return null;
141
- const missing = await uncheckedRequired(check.tx.conn, check.issue.id, check.from);
142
- return missing.length === 0
143
- ? null
144
- : {
145
- code: 'CHECKLIST_INCOMPLETE',
146
- message: `Check the required items of ${check.from} first: ${missing.join('; ')}.`,
147
- details: { statusKey: check.from, items: missing },
148
- };
149
- },
150
- async entered(entry, config) {
151
- const items = (config.items ?? []);
152
- await addMissingItems(entry.tx.conn, () => deps.ids.next(), entry.issue.id, entry.status.key, items.map((item) => ({ ...item, label: item.label.trim() })));
153
- return undefined;
154
- },
155
- },
156
- {
157
- type: 'notifyOwner',
158
- validate: notifyIssues,
159
- describe(config) {
160
- // Described in the words it falls back to, not translated: the summary is the plugin's own English.
161
- const message = messageText(config.message, (key, options) => options?.defaultValue ?? key);
162
- return {
163
- summary: message
164
- ? `Notifies the issue owner: "${message}".`
165
- : 'Notifies the issue owner.',
166
- };
167
- },
168
- async entered(entry, config) {
169
- const { issue, actor, status } = entry;
170
- if (actor.type === 'user' && actor.id === issue.ownerUserId)
171
- return { status: 'skipped', reason: 'ownerMovedIt' };
172
- const message = ruleMessage(config.message);
173
- await deps.activity.record(entry.tx.conn, {
174
- issueId: issue.id,
175
- actor,
176
- action: 'owner_notified',
177
- details: {
178
- statusKey: status.key,
179
- ownerUserId: issue.ownerUserId,
180
- message,
181
- },
182
- });
183
- entry.tx.emit({
184
- type: 'workflow.ownerNotified',
185
- issueId: issue.id,
186
- identifier: issue.identifier,
187
- title: issue.title,
188
- ownerUserId: issue.ownerUserId,
189
- statusKey: status.key,
190
- statusName: status.name,
191
- message,
192
- });
193
- return undefined;
194
- },
195
- },
196
- {
197
- type: 'subtasksDone',
198
- validate: noSettings,
199
- describe: () => ({ summary: 'Waits until every sub-issue is finished.' }),
200
- async canEnter(check) {
201
- if (check.status.category === 'closed')
202
- return null;
203
- const open = await deps
204
- .relations()
205
- .openChildren(check.tx.conn, check.issue.id);
206
- return open.length === 0
207
- ? null
208
- : {
209
- code: 'SUBTASKS_OPEN',
210
- message: `Finish the sub-issues first: ${open
211
- .slice(0, 10)
212
- .map((child) => child.identifier)
213
- .join(', ')}.`,
214
- details: {
215
- count: open.length,
216
- issues: open.slice(0, 10).map((child) => child.identifier),
217
- },
218
- };
219
- },
220
- },
221
- {
222
- type: 'blockersDone',
223
- validate: noSettings,
224
- describe: () => ({ summary: 'Waits until nothing blocks the issue.' }),
225
- async canEnter(check) {
226
- const blockers = await deps
227
- .relations()
228
- .blockers(check.tx.conn, check.issue);
229
- return blockers.length === 0
230
- ? null
231
- : {
232
- code: 'ISSUE_BLOCKED',
233
- message: `The issue waits for ${blockers
234
- .map((blocker) => blocker.identifier)
235
- .join(', ')}.`,
236
- details: {
237
- blockers: blockers.map((blocker) => ({
238
- identifier: blocker.identifier,
239
- reason: blocker.reason,
240
- })),
241
- },
242
- };
243
- },
244
- },
245
- {
246
- type: 'startOption',
247
- categories: ['unstarted', 'started'],
248
- validate: startOptionIssues,
249
- describe(config) {
250
- const label = messageText(config.label, (key, options) => options?.defaultValue ?? key);
251
- return {
252
- summary: label
253
- ? `Offered as "${label}" when creating an issue.`
254
- : 'Offered when creating an issue.',
255
- };
256
- },
257
- },
258
- ];
259
- }
260
- //# sourceMappingURL=built-in-rule-types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"built-in-rule-types.js","sourceRoot":"","sources":["../../../../server/domains/workflows/built-in-rule-types.ts"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- /**
2
- * Workflow events other plugins contribute (`projectsWorkflowEventsToken`), next to the built-in `subtasks.done`. A
3
- * contributed event is a key and where a workflow may use it; this plugin never knows what it means. Its plugin fires
4
- * it for the issues it concerns (`Projects.workflowEvents.fire`), and each issue moves along its workflow's transition
5
- * on the event, if there is one.
6
- *
7
- * - A type is looked up on each use, so a plugin may add it after this plugin's services are created.
8
- * - A definition may keep a transition on an event whose type is gone (its plugin was removed): saving leaves it as it
9
- * was, nobody fires it, and the editor shows it as unavailable. A new transition on it is refused.
10
- * - `from` and `to` limit the categories of status a transition on the event may leave and enter, when saving.
11
- */
12
- import { type WorkflowEventPlacement } from '../../../shared/workflows.js';
13
- export type WorkflowEventType = WorkflowEventPlacement;
14
- export interface WorkflowEventTypes {
15
- /** Adds an event; returns what removes it. Throws when the key is taken, built in or malformed. */
16
- add(type: WorkflowEventType): () => void;
17
- get(key: string): WorkflowEventType | undefined;
18
- list(): readonly WorkflowEventType[];
19
- }
20
- export declare function createWorkflowEventTypes(): WorkflowEventTypes;
21
- //# sourceMappingURL=event-types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"event-types.d.ts","sourceRoot":"","sources":["../../../../server/domains/workflows/event-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAGL,KAAK,sBAAsB,EAC5B,MAAM,8BAA8B,CAAC;AAEtC,MAAM,MAAM,iBAAiB,GAAG,sBAAsB,CAAC;AAEvD,MAAM,WAAW,kBAAkB;IACjC,mGAAmG;IACnG,GAAG,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,IAAI,CAAC;IACzC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAAC;IAChD,IAAI,IAAI,SAAS,iBAAiB,EAAE,CAAC;CACtC;AAED,wBAAgB,wBAAwB,IAAI,kBAAkB,CAoB7D"}
@@ -1,31 +0,0 @@
1
- /**
2
- * Workflow events other plugins contribute (`projectsWorkflowEventsToken`), next to the built-in `subtasks.done`. A
3
- * contributed event is a key and where a workflow may use it; this plugin never knows what it means. Its plugin fires
4
- * it for the issues it concerns (`Projects.workflowEvents.fire`), and each issue moves along its workflow's transition
5
- * on the event, if there is one.
6
- *
7
- * - A type is looked up on each use, so a plugin may add it after this plugin's services are created.
8
- * - A definition may keep a transition on an event whose type is gone (its plugin was removed): saving leaves it as it
9
- * was, nobody fires it, and the editor shows it as unavailable. A new transition on it is refused.
10
- * - `from` and `to` limit the categories of status a transition on the event may leave and enter, when saving.
11
- */
12
- import { WORKFLOW_EVENT_PATTERN, isBuiltInEvent, } from '../../../shared/workflows.js';
13
- export function createWorkflowEventTypes() {
14
- const types = new Map();
15
- return {
16
- add(type) {
17
- if (!WORKFLOW_EVENT_PATTERN.test(type.key))
18
- throw new TypeError(`Workflow event ${type.key} must match ${String(WORKFLOW_EVENT_PATTERN)}.`);
19
- if (isBuiltInEvent(type.key) || types.has(type.key))
20
- throw new TypeError(`Workflow event ${type.key} is registered already.`);
21
- types.set(type.key, type);
22
- return () => {
23
- if (types.get(type.key) === type)
24
- types.delete(type.key);
25
- };
26
- },
27
- get: (key) => types.get(key),
28
- list: () => [...types.values()],
29
- };
30
- }
31
- //# sourceMappingURL=event-types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"event-types.js","sourceRoot":"","sources":["../../../../server/domains/workflows/event-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EACL,sBAAsB,EACtB,cAAc,GAEf,MAAM,8BAA8B,CAAC;AAWtC,MAAM,UAAU,wBAAwB;IACtC,MAAM,KAAK,GAAG,IAAI,GAAG,EAA6B,CAAC;IACnD,OAAO;QACL,GAAG,CAAC,IAAI;YACN,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;gBACxC,MAAM,IAAI,SAAS,CACjB,kBAAkB,IAAI,CAAC,GAAG,eAAe,MAAM,CAAC,sBAAsB,CAAC,GAAG,CAC3E,CAAC;YACJ,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;gBACjD,MAAM,IAAI,SAAS,CACjB,kBAAkB,IAAI,CAAC,GAAG,yBAAyB,CACpD,CAAC;YACJ,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC1B,OAAO,GAAG,EAAE;gBACV,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI;oBAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3D,CAAC,CAAC;QACJ,CAAC;QACD,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;QAC5B,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;KAChC,CAAC;AACJ,CAAC"}
@@ -1,10 +0,0 @@
1
- export { createWorkflowService, type ProjectWorkflows, type WorkflowService, } from './workflow.service.js';
2
- export { createWorkflowRoutes } from './workflow.routes.js';
3
- export { createIssueRegistry, type ApproverDirectory, type RelationChecks, } from './workflow.registry.js';
4
- export { builtInStatusRuleTypes } from './built-in-rule-types.js';
5
- export { createStatusRuleTypes, withBuiltInTypes, type EnteredStatus, type StatusRuleCheck, type StatusRuleDescription, type StatusRuleEntry, type StatusRuleRefusal, type StatusRuleOutcome, type StatusRuleType, type StatusRuleTypes, } from './rule-types.js';
6
- export { createWorkflowTemplates, type WorkflowTemplate, type WorkflowTemplateInstaller, type WorkflowTemplateText, type WorkflowTemplates, } from './templates.js';
7
- export { describeRule, previewRules } from './workflow.diff.js';
8
- export { createWorkflowEventTypes, type WorkflowEventType, type WorkflowEventTypes, } from './event-types.js';
9
- export { createWorkflowEventService, type WorkflowEventFiring, type WorkflowEventMove, type WorkflowEventService, type WorkflowEventTarget, } from './workflow.fire.js';
10
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/domains/workflows/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,KAAK,gBAAgB,EACrB,KAAK,eAAe,GACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EACL,mBAAmB,EACnB,KAAK,iBAAiB,EACtB,KAAK,cAAc,GACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,eAAe,GACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,uBAAuB,EACvB,KAAK,gBAAgB,EACrB,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,GACvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EACL,wBAAwB,EACxB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,GACxB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,0BAA0B,EAC1B,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,GACzB,MAAM,oBAAoB,CAAC"}
@@ -1,10 +0,0 @@
1
- export { createWorkflowService, } from './workflow.service.js';
2
- export { createWorkflowRoutes } from './workflow.routes.js';
3
- export { createIssueRegistry, } from './workflow.registry.js';
4
- export { builtInStatusRuleTypes } from './built-in-rule-types.js';
5
- export { createStatusRuleTypes, withBuiltInTypes, } from './rule-types.js';
6
- export { createWorkflowTemplates, } from './templates.js';
7
- export { describeRule, previewRules } from './workflow.diff.js';
8
- export { createWorkflowEventTypes, } from './event-types.js';
9
- export { createWorkflowEventService, } from './workflow.fire.js';
10
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/domains/workflows/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,GAGtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EACL,mBAAmB,GAGpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EACL,qBAAqB,EACrB,gBAAgB,GASjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,uBAAuB,GAKxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EACL,wBAAwB,GAGzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,0BAA0B,GAK3B,MAAM,oBAAoB,CAAC"}