@nocobase/app-plugin-projects 0.1.0-beta.1 → 0.1.0-beta.11

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 (666) hide show
  1. package/CHANGELOG.md +276 -0
  2. package/README.md +78 -105
  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 +8 -25
  8. package/dist/client/api/client.d.ts.map +1 -1
  9. package/dist/client/api/client.js +12 -51
  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/attachment-list.d.ts +77 -0
  16. package/dist/client/components/attachment-list.d.ts.map +1 -0
  17. package/dist/client/components/attachment-list.js +147 -0
  18. package/dist/client/components/attachment-list.js.map +1 -0
  19. package/dist/client/components/pm-badges.d.ts +1 -1
  20. package/dist/client/components/pm-badges.d.ts.map +1 -1
  21. package/dist/client/components/pm-description-image.d.ts +4 -0
  22. package/dist/client/components/pm-description-image.d.ts.map +1 -0
  23. package/dist/client/components/pm-description-image.js +61 -0
  24. package/dist/client/components/pm-description-image.js.map +1 -0
  25. package/dist/client/components/pm-executor-select.d.ts +2 -0
  26. package/dist/client/components/pm-executor-select.d.ts.map +1 -1
  27. package/dist/client/components/pm-executor-select.js.map +1 -1
  28. package/dist/client/components/pm-rich-text-editor.d.ts +4 -1
  29. package/dist/client/components/pm-rich-text-editor.d.ts.map +1 -1
  30. package/dist/client/components/pm-rich-text-editor.js +44 -4
  31. package/dist/client/components/pm-rich-text-editor.js.map +1 -1
  32. package/dist/client/components/pm-rich-text-extensions.d.ts +1 -0
  33. package/dist/client/components/pm-rich-text-extensions.d.ts.map +1 -1
  34. package/dist/client/components/pm-rich-text-extensions.js +2 -0
  35. package/dist/client/components/pm-rich-text-extensions.js.map +1 -1
  36. package/dist/client/components/ui/radio-group.d.ts +7 -0
  37. package/dist/client/components/ui/radio-group.d.ts.map +1 -0
  38. package/dist/client/components/ui/radio-group.js +12 -0
  39. package/dist/client/components/ui/radio-group.js.map +1 -0
  40. package/dist/client/config.d.ts +0 -2
  41. package/dist/client/config.d.ts.map +1 -1
  42. package/dist/client/config.js +1 -5
  43. package/dist/client/config.js.map +1 -1
  44. package/dist/client/hooks/use-attachment-uploads.d.ts +2 -2
  45. package/dist/client/hooks/use-attachment-uploads.d.ts.map +1 -1
  46. package/dist/client/hooks/use-attachment-uploads.js +28 -13
  47. package/dist/client/hooks/use-attachment-uploads.js.map +1 -1
  48. package/dist/client/issues.d.ts +3 -5
  49. package/dist/client/issues.d.ts.map +1 -1
  50. package/dist/client/issues.js +3 -4
  51. package/dist/client/issues.js.map +1 -1
  52. package/dist/client/kit/intake-draft.d.ts +21 -0
  53. package/dist/client/kit/intake-draft.d.ts.map +1 -0
  54. package/dist/client/kit/intake-draft.js +20 -0
  55. package/dist/client/kit/intake-draft.js.map +1 -0
  56. package/dist/client/kit/plans/lookup.d.ts +2 -2
  57. package/dist/client/kit/plans/lookup.js +3 -3
  58. package/dist/client/kit/plans/lookup.js.map +1 -1
  59. package/dist/client/kit/plans/plan-confirm.d.ts.map +1 -1
  60. package/dist/client/kit/plans/plan-confirm.js +2 -2
  61. package/dist/client/kit/plans/plan-confirm.js.map +1 -1
  62. package/dist/client/kit/plans/plan-row.js +2 -2
  63. package/dist/client/kit/plans/plan-row.js.map +1 -1
  64. package/dist/client/kit.d.ts +7 -9
  65. package/dist/client/kit.d.ts.map +1 -1
  66. package/dist/client/kit.js +7 -9
  67. package/dist/client/kit.js.map +1 -1
  68. package/dist/client/lib/intake-wait.d.ts +16 -0
  69. package/dist/client/lib/intake-wait.d.ts.map +1 -0
  70. package/dist/client/lib/intake-wait.js +12 -0
  71. package/dist/client/lib/intake-wait.js.map +1 -0
  72. package/dist/client/lib/kinds.d.ts +3 -29
  73. package/dist/client/lib/kinds.d.ts.map +1 -1
  74. package/dist/client/lib/kinds.js +7 -46
  75. package/dist/client/lib/kinds.js.map +1 -1
  76. package/dist/client/lib/status-events.d.ts +21 -0
  77. package/dist/client/lib/status-events.d.ts.map +1 -0
  78. package/dist/client/lib/status-events.js +31 -0
  79. package/dist/client/lib/status-events.js.map +1 -0
  80. package/dist/client/lib/status.d.ts +5 -7
  81. package/dist/client/lib/status.d.ts.map +1 -1
  82. package/dist/client/lib/status.js +5 -7
  83. package/dist/client/lib/status.js.map +1 -1
  84. package/dist/client/locales/en-US.d.ts +17 -252
  85. package/dist/client/locales/en-US.d.ts.map +1 -1
  86. package/dist/client/locales/en-US.js +21 -252
  87. package/dist/client/locales/en-US.js.map +1 -1
  88. package/dist/client/locales/plans.en-US.d.ts +1 -8
  89. package/dist/client/locales/plans.en-US.d.ts.map +1 -1
  90. package/dist/client/locales/plans.en-US.js +2 -9
  91. package/dist/client/locales/plans.en-US.js.map +1 -1
  92. package/dist/client/locales/plans.zh-CN.d.ts.map +1 -1
  93. package/dist/client/locales/plans.zh-CN.js +2 -9
  94. package/dist/client/locales/plans.zh-CN.js.map +1 -1
  95. package/dist/client/locales/zh-CN.d.ts.map +1 -1
  96. package/dist/client/locales/zh-CN.js +22 -245
  97. package/dist/client/locales/zh-CN.js.map +1 -1
  98. package/dist/client/pages/config/members/invitations-section.d.ts.map +1 -1
  99. package/dist/client/pages/config/members/invitations-section.js +34 -12
  100. package/dist/client/pages/config/members/invitations-section.js.map +1 -1
  101. package/dist/client/pages/config/members/invite-dialog.d.ts +5 -4
  102. package/dist/client/pages/config/members/invite-dialog.d.ts.map +1 -1
  103. package/dist/client/pages/config/members/invite-dialog.js +14 -9
  104. package/dist/client/pages/config/members/invite-dialog.js.map +1 -1
  105. package/dist/client/pages/intake/intake-ai-progress.d.ts.map +1 -1
  106. package/dist/client/pages/intake/intake-ai-progress.js +10 -13
  107. package/dist/client/pages/intake/intake-ai-progress.js.map +1 -1
  108. package/dist/client/pages/intake/intake-files.d.ts.map +1 -1
  109. package/dist/client/pages/intake/intake-files.js +38 -2
  110. package/dist/client/pages/intake/intake-files.js.map +1 -1
  111. package/dist/client/pages/intake/intake-panel.d.ts.map +1 -1
  112. package/dist/client/pages/intake/intake-panel.js +15 -5
  113. package/dist/client/pages/intake/intake-panel.js.map +1 -1
  114. package/dist/client/pages/intake/use-intake-uploads.d.ts.map +1 -1
  115. package/dist/client/pages/intake/use-intake-uploads.js +9 -3
  116. package/dist/client/pages/intake/use-intake-uploads.js.map +1 -1
  117. package/dist/client/pages/issues/board/board-model.d.ts +1 -1
  118. package/dist/client/pages/issues/board/board-model.js +1 -1
  119. package/dist/client/pages/issues/board/use-board-move.d.ts +2 -8
  120. package/dist/client/pages/issues/board/use-board-move.d.ts.map +1 -1
  121. package/dist/client/pages/issues/board/use-board-move.js +5 -42
  122. package/dist/client/pages/issues/board/use-board-move.js.map +1 -1
  123. package/dist/client/pages/issues/detail/new-subtask.d.ts.map +1 -1
  124. package/dist/client/pages/issues/detail/new-subtask.js +6 -28
  125. package/dist/client/pages/issues/detail/new-subtask.js.map +1 -1
  126. package/dist/client/pages/issues/detail/subtask-model.d.ts +1 -1
  127. package/dist/client/pages/issues/detail/subtask-model.js +1 -1
  128. package/dist/client/pages/issues/detail/use-confirmed-update.d.ts +6 -8
  129. package/dist/client/pages/issues/detail/use-confirmed-update.d.ts.map +1 -1
  130. package/dist/client/pages/issues/detail/use-confirmed-update.js +9 -42
  131. package/dist/client/pages/issues/detail/use-confirmed-update.js.map +1 -1
  132. package/dist/client/pages/issues/detail/use-issue-page.d.ts +0 -4
  133. package/dist/client/pages/issues/detail/use-issue-page.d.ts.map +1 -1
  134. package/dist/client/pages/issues/detail/use-issue-page.js +0 -14
  135. package/dist/client/pages/issues/detail/use-issue-page.js.map +1 -1
  136. package/dist/client/pages/issues/detail/use-issue-update.d.ts +2 -2
  137. package/dist/client/pages/issues/detail/use-issue-update.d.ts.map +1 -1
  138. package/dist/client/pages/issues/detail/use-issue-update.js +8 -8
  139. package/dist/client/pages/issues/detail/use-issue-update.js.map +1 -1
  140. package/dist/client/pages/issues/filters.d.ts +1 -1
  141. package/dist/client/pages/issues/filters.d.ts.map +1 -1
  142. package/dist/client/pages/issues/filters.js +2 -0
  143. package/dist/client/pages/issues/filters.js.map +1 -1
  144. package/dist/client/pages/issues/new-issue-button.d.ts.map +1 -1
  145. package/dist/client/pages/issues/new-issue-button.js +1 -1
  146. package/dist/client/pages/issues/new-issue-button.js.map +1 -1
  147. package/dist/client/pages/issues/new-issue-form.d.ts +13 -8
  148. package/dist/client/pages/issues/new-issue-form.d.ts.map +1 -1
  149. package/dist/client/pages/issues/new-issue-form.js +87 -83
  150. package/dist/client/pages/issues/new-issue-form.js.map +1 -1
  151. package/dist/client/pages/issues/new.d.ts.map +1 -1
  152. package/dist/client/pages/issues/new.js +3 -1
  153. package/dist/client/pages/issues/new.js.map +1 -1
  154. package/dist/client/pages/issues/use-executor-options.d.ts +3 -2
  155. package/dist/client/pages/issues/use-executor-options.d.ts.map +1 -1
  156. package/dist/client/pages/issues/use-executor-options.js +5 -23
  157. package/dist/client/pages/issues/use-executor-options.js.map +1 -1
  158. package/dist/client/pages/my-issues/my-issues-model.d.ts +2 -5
  159. package/dist/client/pages/my-issues/my-issues-model.d.ts.map +1 -1
  160. package/dist/client/pages/my-issues/my-issues-model.js +6 -7
  161. package/dist/client/pages/my-issues/my-issues-model.js.map +1 -1
  162. package/dist/client/pages/projects/detail/use-project-page.d.ts +4 -26
  163. package/dist/client/pages/projects/detail/use-project-page.d.ts.map +1 -1
  164. package/dist/client/pages/projects/detail/use-project-page.js +7 -53
  165. package/dist/client/pages/projects/detail/use-project-page.js.map +1 -1
  166. package/dist/client/pages/projects/new.d.ts +1 -1
  167. package/dist/client/pages/projects/new.d.ts.map +1 -1
  168. package/dist/client/pages/projects/new.js +3 -7
  169. package/dist/client/pages/projects/new.js.map +1 -1
  170. package/dist/client/plugin.d.ts +3 -0
  171. package/dist/client/plugin.d.ts.map +1 -1
  172. package/dist/client/plugin.js +8 -1
  173. package/dist/client/plugin.js.map +1 -1
  174. package/dist/client/projects.d.ts +2 -2
  175. package/dist/client/projects.d.ts.map +1 -1
  176. package/dist/client/projects.js +2 -2
  177. package/dist/client/projects.js.map +1 -1
  178. package/dist/client/providers/query-provider.d.ts.map +1 -1
  179. package/dist/client/providers/query-provider.js +15 -11
  180. package/dist/client/providers/query-provider.js.map +1 -1
  181. package/dist/database/migrations/.manifest.json +16 -0
  182. package/dist/database/migrations/202610110001_pm_issue_graph_revision.d.ts +4 -0
  183. package/dist/database/migrations/202610110001_pm_issue_graph_revision.d.ts.map +1 -0
  184. package/dist/database/migrations/202610110001_pm_issue_graph_revision.js +20 -0
  185. package/dist/database/migrations/202610110001_pm_issue_graph_revision.js.map +1 -0
  186. package/dist/database/migrations/202610240010_pm_fixed_statuses.d.ts +4 -0
  187. package/dist/database/migrations/202610240010_pm_fixed_statuses.d.ts.map +1 -0
  188. package/dist/database/migrations/202610240010_pm_fixed_statuses.js +189 -0
  189. package/dist/database/migrations/202610240010_pm_fixed_statuses.js.map +1 -0
  190. package/dist/database/migrations/202610240011_pm_issue_progress.d.ts +4 -0
  191. package/dist/database/migrations/202610240011_pm_issue_progress.d.ts.map +1 -0
  192. package/dist/database/migrations/202610240011_pm_issue_progress.js +19 -0
  193. package/dist/database/migrations/202610240011_pm_issue_progress.js.map +1 -0
  194. package/dist/database/migrations/202610240012_pm_issue_acceptance.d.ts +4 -0
  195. package/dist/database/migrations/202610240012_pm_issue_acceptance.d.ts.map +1 -0
  196. package/dist/database/migrations/202610240012_pm_issue_acceptance.js +17 -0
  197. package/dist/database/migrations/202610240012_pm_issue_acceptance.js.map +1 -0
  198. package/dist/server/access/viewer.d.ts +3 -0
  199. package/dist/server/access/viewer.d.ts.map +1 -1
  200. package/dist/server/access/viewer.js.map +1 -1
  201. package/dist/server/composition.d.ts +11 -17
  202. package/dist/server/composition.d.ts.map +1 -1
  203. package/dist/server/composition.js +15 -58
  204. package/dist/server/composition.js.map +1 -1
  205. package/dist/server/domains/attachments/attachment.routes.d.ts.map +1 -1
  206. package/dist/server/domains/attachments/attachment.routes.js +13 -1
  207. package/dist/server/domains/attachments/attachment.routes.js.map +1 -1
  208. package/dist/server/domains/attachments/attachment.service.d.ts +3 -1
  209. package/dist/server/domains/attachments/attachment.service.d.ts.map +1 -1
  210. package/dist/server/domains/attachments/attachment.service.js +36 -2
  211. package/dist/server/domains/attachments/attachment.service.js.map +1 -1
  212. package/dist/server/domains/attachments/attachment.store.d.ts +5 -0
  213. package/dist/server/domains/attachments/attachment.store.d.ts.map +1 -1
  214. package/dist/server/domains/attachments/attachment.store.js +27 -0
  215. package/dist/server/domains/attachments/attachment.store.js.map +1 -1
  216. package/dist/server/domains/comments/comment.queries.d.ts +42 -8
  217. package/dist/server/domains/comments/comment.queries.d.ts.map +1 -1
  218. package/dist/server/domains/comments/comment.queries.js +69 -8
  219. package/dist/server/domains/comments/comment.queries.js.map +1 -1
  220. package/dist/server/domains/comments/comment.routes.d.ts +1 -1
  221. package/dist/server/domains/comments/comment.routes.js +4 -4
  222. package/dist/server/domains/comments/comment.routes.js.map +1 -1
  223. package/dist/server/domains/comments/comment.service.d.ts +2 -2
  224. package/dist/server/domains/comments/comment.service.d.ts.map +1 -1
  225. package/dist/server/domains/comments/comment.service.js +18 -10
  226. package/dist/server/domains/comments/comment.service.js.map +1 -1
  227. package/dist/server/domains/comments/comment.store.d.ts +22 -1
  228. package/dist/server/domains/comments/comment.store.d.ts.map +1 -1
  229. package/dist/server/domains/comments/comment.store.js +65 -2
  230. package/dist/server/domains/comments/comment.store.js.map +1 -1
  231. package/dist/server/domains/comments/index.d.ts +1 -1
  232. package/dist/server/domains/comments/index.d.ts.map +1 -1
  233. package/dist/server/domains/comments/index.js.map +1 -1
  234. package/dist/server/domains/comments/ports.d.ts +7 -2
  235. package/dist/server/domains/comments/ports.d.ts.map +1 -1
  236. package/dist/server/domains/invitations/invitation.routes.d.ts +2 -1
  237. package/dist/server/domains/invitations/invitation.routes.d.ts.map +1 -1
  238. package/dist/server/domains/invitations/invitation.routes.js +27 -10
  239. package/dist/server/domains/invitations/invitation.routes.js.map +1 -1
  240. package/dist/server/domains/invitations/invitation.service.d.ts +1 -1
  241. package/dist/server/domains/invitations/invitation.service.d.ts.map +1 -1
  242. package/dist/server/domains/invitations/invitation.service.js +19 -3
  243. package/dist/server/domains/invitations/invitation.service.js.map +1 -1
  244. package/dist/server/domains/issues/index.d.ts +3 -3
  245. package/dist/server/domains/issues/index.d.ts.map +1 -1
  246. package/dist/server/domains/issues/index.js +2 -2
  247. package/dist/server/domains/issues/index.js.map +1 -1
  248. package/dist/server/domains/issues/issue.context.d.ts +6 -22
  249. package/dist/server/domains/issues/issue.context.d.ts.map +1 -1
  250. package/dist/server/domains/issues/issue.context.js +88 -105
  251. package/dist/server/domains/issues/issue.context.js.map +1 -1
  252. package/dist/server/domains/issues/issue.events.d.ts +5 -1
  253. package/dist/server/domains/issues/issue.events.d.ts.map +1 -1
  254. package/dist/server/domains/issues/issue.fields.d.ts +5 -3
  255. package/dist/server/domains/issues/issue.fields.d.ts.map +1 -1
  256. package/dist/server/domains/issues/issue.fields.js +50 -16
  257. package/dist/server/domains/issues/issue.fields.js.map +1 -1
  258. package/dist/server/domains/issues/issue.projects.d.ts +2 -2
  259. package/dist/server/domains/issues/issue.projects.d.ts.map +1 -1
  260. package/dist/server/domains/issues/issue.projects.js +1 -2
  261. package/dist/server/domains/issues/issue.projects.js.map +1 -1
  262. package/dist/server/domains/issues/issue.queries.d.ts +26 -7
  263. package/dist/server/domains/issues/issue.queries.d.ts.map +1 -1
  264. package/dist/server/domains/issues/issue.queries.js +137 -58
  265. package/dist/server/domains/issues/issue.queries.js.map +1 -1
  266. package/dist/server/domains/issues/issue.routes.d.ts +3 -1
  267. package/dist/server/domains/issues/issue.routes.d.ts.map +1 -1
  268. package/dist/server/domains/issues/issue.routes.js +74 -46
  269. package/dist/server/domains/issues/issue.routes.js.map +1 -1
  270. package/dist/server/domains/issues/issue.service.d.ts +22 -44
  271. package/dist/server/domains/issues/issue.service.d.ts.map +1 -1
  272. package/dist/server/domains/issues/issue.service.js +68 -82
  273. package/dist/server/domains/issues/issue.service.js.map +1 -1
  274. package/dist/server/domains/issues/issue.status.d.ts +7 -10
  275. package/dist/server/domains/issues/issue.status.d.ts.map +1 -1
  276. package/dist/server/domains/issues/issue.status.js +6 -22
  277. package/dist/server/domains/issues/issue.status.js.map +1 -1
  278. package/dist/server/domains/issues/issue.store.d.ts +11 -0
  279. package/dist/server/domains/issues/issue.store.d.ts.map +1 -1
  280. package/dist/server/domains/issues/issue.store.js +37 -0
  281. package/dist/server/domains/issues/issue.store.js.map +1 -1
  282. package/dist/server/domains/issues/ports.d.ts +35 -36
  283. package/dist/server/domains/issues/ports.d.ts.map +1 -1
  284. package/dist/server/domains/issues/ports.js +1 -5
  285. package/dist/server/domains/issues/ports.js.map +1 -1
  286. package/dist/server/domains/notices/notice.planner.d.ts +2 -1
  287. package/dist/server/domains/notices/notice.planner.d.ts.map +1 -1
  288. package/dist/server/domains/notices/notice.planner.js +2 -1
  289. package/dist/server/domains/notices/notice.planner.js.map +1 -1
  290. package/dist/server/domains/notices/notice.rules.d.ts +1 -4
  291. package/dist/server/domains/notices/notice.rules.d.ts.map +1 -1
  292. package/dist/server/domains/notices/notice.rules.js +4 -5
  293. package/dist/server/domains/notices/notice.rules.js.map +1 -1
  294. package/dist/server/domains/plans/intake/intake.service.d.ts +2 -0
  295. package/dist/server/domains/plans/intake/intake.service.d.ts.map +1 -1
  296. package/dist/server/domains/plans/intake/intake.service.js +14 -0
  297. package/dist/server/domains/plans/intake/intake.service.js.map +1 -1
  298. package/dist/server/domains/plans/intake/intake.text.d.ts +5 -6
  299. package/dist/server/domains/plans/intake/intake.text.d.ts.map +1 -1
  300. package/dist/server/domains/plans/intake/intake.text.js +5 -6
  301. package/dist/server/domains/plans/intake/intake.text.js.map +1 -1
  302. package/dist/server/domains/plans/plan.engine.d.ts.map +1 -1
  303. package/dist/server/domains/plans/plan.engine.js +6 -0
  304. package/dist/server/domains/plans/plan.engine.js.map +1 -1
  305. package/dist/server/domains/plans/plan.ops.d.ts +3 -3
  306. package/dist/server/domains/plans/plan.ops.d.ts.map +1 -1
  307. package/dist/server/domains/plans/plan.ops.js +23 -13
  308. package/dist/server/domains/plans/plan.ops.js.map +1 -1
  309. package/dist/server/domains/plans/plan.schemas.d.ts.map +1 -1
  310. package/dist/server/domains/plans/plan.schemas.js +26 -10
  311. package/dist/server/domains/plans/plan.schemas.js.map +1 -1
  312. package/dist/server/domains/projects/index.d.ts +1 -1
  313. package/dist/server/domains/projects/index.d.ts.map +1 -1
  314. package/dist/server/domains/projects/index.js.map +1 -1
  315. package/dist/server/domains/projects/project-resources.d.ts +5 -0
  316. package/dist/server/domains/projects/project-resources.d.ts.map +1 -1
  317. package/dist/server/domains/projects/project-resources.js +43 -1
  318. package/dist/server/domains/projects/project-resources.js.map +1 -1
  319. package/dist/server/domains/projects/project.events.d.ts +10 -0
  320. package/dist/server/domains/projects/project.events.d.ts.map +1 -0
  321. package/dist/server/domains/projects/project.events.js +2 -0
  322. package/dist/server/domains/projects/project.events.js.map +1 -0
  323. package/dist/server/domains/projects/project.routes.d.ts.map +1 -1
  324. package/dist/server/domains/projects/project.routes.js +1 -3
  325. package/dist/server/domains/projects/project.routes.js.map +1 -1
  326. package/dist/server/domains/projects/project.service.d.ts +1 -7
  327. package/dist/server/domains/projects/project.service.d.ts.map +1 -1
  328. package/dist/server/domains/projects/project.service.js +2 -17
  329. package/dist/server/domains/projects/project.service.js.map +1 -1
  330. package/dist/server/domains/projects/project.store.d.ts +0 -1
  331. package/dist/server/domains/projects/project.store.d.ts.map +1 -1
  332. package/dist/server/domains/projects/project.store.js +0 -1
  333. package/dist/server/domains/projects/project.store.js.map +1 -1
  334. package/dist/server/domains/reports/report.service.d.ts +1 -12
  335. package/dist/server/domains/reports/report.service.d.ts.map +1 -1
  336. package/dist/server/domains/reports/report.service.js +92 -136
  337. package/dist/server/domains/reports/report.service.js.map +1 -1
  338. package/dist/server/domains/settings/settings.store.d.ts +4 -4
  339. package/dist/server/domains/settings/settings.store.js +2 -2
  340. package/dist/server/domains/statuses/event-types.d.ts +16 -0
  341. package/dist/server/domains/statuses/event-types.d.ts.map +1 -0
  342. package/dist/server/domains/statuses/event-types.js +31 -0
  343. package/dist/server/domains/statuses/event-types.js.map +1 -0
  344. package/dist/server/domains/statuses/index.d.ts +4 -0
  345. package/dist/server/domains/statuses/index.d.ts.map +1 -0
  346. package/dist/server/domains/statuses/index.js +4 -0
  347. package/dist/server/domains/statuses/index.js.map +1 -0
  348. package/dist/server/domains/statuses/status.catalog.d.ts +15 -0
  349. package/dist/server/domains/statuses/status.catalog.d.ts.map +1 -0
  350. package/dist/server/domains/statuses/status.catalog.js +119 -0
  351. package/dist/server/domains/statuses/status.catalog.js.map +1 -0
  352. package/dist/server/domains/statuses/status.events.d.ts +15 -0
  353. package/dist/server/domains/statuses/status.events.d.ts.map +1 -0
  354. package/dist/server/domains/statuses/status.events.js +2 -0
  355. package/dist/server/domains/statuses/status.events.js.map +1 -0
  356. package/dist/server/domains/statuses/status.fire.d.ts +48 -0
  357. package/dist/server/domains/statuses/status.fire.d.ts.map +1 -0
  358. package/dist/server/domains/statuses/status.fire.js +38 -0
  359. package/dist/server/domains/statuses/status.fire.js.map +1 -0
  360. package/dist/server/domains/subscriptions/subscription.routes.d.ts.map +1 -1
  361. package/dist/server/domains/subscriptions/subscription.routes.js +4 -2
  362. package/dist/server/domains/subscriptions/subscription.routes.js.map +1 -1
  363. package/dist/server/domains/subtasks/index.d.ts +1 -0
  364. package/dist/server/domains/subtasks/index.d.ts.map +1 -1
  365. package/dist/server/domains/subtasks/index.js +1 -0
  366. package/dist/server/domains/subtasks/index.js.map +1 -1
  367. package/dist/server/domains/subtasks/subtask.blocking.d.ts +10 -5
  368. package/dist/server/domains/subtasks/subtask.blocking.d.ts.map +1 -1
  369. package/dist/server/domains/subtasks/subtask.blocking.js +35 -15
  370. package/dist/server/domains/subtasks/subtask.blocking.js.map +1 -1
  371. package/dist/server/domains/subtasks/subtask.guard.d.ts +12 -0
  372. package/dist/server/domains/subtasks/subtask.guard.d.ts.map +1 -0
  373. package/dist/server/domains/subtasks/subtask.guard.js +23 -0
  374. package/dist/server/domains/subtasks/subtask.guard.js.map +1 -0
  375. package/dist/server/domains/subtasks/subtask.release.d.ts +7 -11
  376. package/dist/server/domains/subtasks/subtask.release.d.ts.map +1 -1
  377. package/dist/server/domains/subtasks/subtask.release.js +9 -7
  378. package/dist/server/domains/subtasks/subtask.release.js.map +1 -1
  379. package/dist/server/domains/subtasks/subtask.routes.d.ts +1 -0
  380. package/dist/server/domains/subtasks/subtask.routes.d.ts.map +1 -1
  381. package/dist/server/domains/subtasks/subtask.routes.js +31 -3
  382. package/dist/server/domains/subtasks/subtask.routes.js.map +1 -1
  383. package/dist/server/domains/subtasks/subtask.service.d.ts +5 -5
  384. package/dist/server/domains/subtasks/subtask.service.d.ts.map +1 -1
  385. package/dist/server/domains/subtasks/subtask.service.js +98 -20
  386. package/dist/server/domains/subtasks/subtask.service.js.map +1 -1
  387. package/dist/server/domains/subtasks/subtask.store.d.ts +7 -0
  388. package/dist/server/domains/subtasks/subtask.store.d.ts.map +1 -1
  389. package/dist/server/domains/subtasks/subtask.store.js +34 -0
  390. package/dist/server/domains/subtasks/subtask.store.js.map +1 -1
  391. package/dist/server/index.d.ts +1 -0
  392. package/dist/server/index.d.ts.map +1 -1
  393. package/dist/server/index.js +1 -0
  394. package/dist/server/index.js.map +1 -1
  395. package/dist/server/kernel/activity.d.ts +5 -2
  396. package/dist/server/kernel/activity.d.ts.map +1 -1
  397. package/dist/server/kernel/activity.js +28 -1
  398. package/dist/server/kernel/activity.js.map +1 -1
  399. package/dist/server/kernel/actor.d.ts +2 -0
  400. package/dist/server/kernel/actor.d.ts.map +1 -1
  401. package/dist/server/kernel/actor.js.map +1 -1
  402. package/dist/server/kernel/http.d.ts.map +1 -1
  403. package/dist/server/kernel/http.js +2 -3
  404. package/dist/server/kernel/http.js.map +1 -1
  405. package/dist/server/kernel/kinds.d.ts +24 -6
  406. package/dist/server/kernel/kinds.d.ts.map +1 -1
  407. package/dist/server/kernel/kinds.js +21 -1
  408. package/dist/server/kernel/kinds.js.map +1 -1
  409. package/dist/server/kernel/transaction-read.d.ts +4 -0
  410. package/dist/server/kernel/transaction-read.d.ts.map +1 -0
  411. package/dist/server/kernel/transaction-read.js +30 -0
  412. package/dist/server/kernel/transaction-read.js.map +1 -0
  413. package/dist/server/kernel/work.d.ts +16 -6
  414. package/dist/server/kernel/work.d.ts.map +1 -1
  415. package/dist/server/kernel/work.js +33 -14
  416. package/dist/server/kernel/work.js.map +1 -1
  417. package/dist/server/lifecycle/move.d.ts +1 -0
  418. package/dist/server/lifecycle/move.d.ts.map +1 -1
  419. package/dist/server/lifecycle/move.js +2 -0
  420. package/dist/server/lifecycle/move.js.map +1 -1
  421. package/dist/server/lifecycle/registry.d.ts +5 -0
  422. package/dist/server/lifecycle/registry.d.ts.map +1 -1
  423. package/dist/server/lifecycle/registry.js.map +1 -1
  424. package/dist/server/locales/en-US.d.ts +0 -9
  425. package/dist/server/locales/en-US.d.ts.map +1 -1
  426. package/dist/server/locales/en-US.js +0 -9
  427. package/dist/server/locales/en-US.js.map +1 -1
  428. package/dist/server/locales/zh-CN.d.ts.map +1 -1
  429. package/dist/server/locales/zh-CN.js +2 -11
  430. package/dist/server/locales/zh-CN.js.map +1 -1
  431. package/dist/server/providers/change-announcer.d.ts +28 -0
  432. package/dist/server/providers/change-announcer.d.ts.map +1 -0
  433. package/dist/server/providers/change-announcer.js +75 -0
  434. package/dist/server/providers/change-announcer.js.map +1 -0
  435. package/dist/server/providers/notifications.d.ts +1 -0
  436. package/dist/server/providers/notifications.d.ts.map +1 -1
  437. package/dist/server/providers/notifications.js +6 -120
  438. package/dist/server/providers/notifications.js.map +1 -1
  439. package/dist/server/providers/projects.d.ts +3 -8
  440. package/dist/server/providers/projects.d.ts.map +1 -1
  441. package/dist/server/providers/projects.js +14 -37
  442. package/dist/server/providers/projects.js.map +1 -1
  443. package/dist/server/routes/api.d.ts.map +1 -1
  444. package/dist/server/routes/api.js +5 -8
  445. package/dist/server/routes/api.js.map +1 -1
  446. package/dist/server/routes/schemas.d.ts +20 -29
  447. package/dist/server/routes/schemas.d.ts.map +1 -1
  448. package/dist/server/routes/schemas.js +405 -289
  449. package/dist/server/routes/schemas.js.map +1 -1
  450. package/dist/server/tokens.d.ts +22 -35
  451. package/dist/server/tokens.d.ts.map +1 -1
  452. package/dist/server/tokens.js +5 -16
  453. package/dist/server/tokens.js.map +1 -1
  454. package/dist/shared/access.d.ts +0 -1
  455. package/dist/shared/access.d.ts.map +1 -1
  456. package/dist/shared/access.js +2 -11
  457. package/dist/shared/access.js.map +1 -1
  458. package/dist/shared/attachments.d.ts +29 -0
  459. package/dist/shared/attachments.d.ts.map +1 -1
  460. package/dist/shared/attachments.js +7 -0
  461. package/dist/shared/attachments.js.map +1 -1
  462. package/dist/shared/comments.d.ts +3 -0
  463. package/dist/shared/comments.d.ts.map +1 -1
  464. package/dist/shared/comments.js.map +1 -1
  465. package/dist/shared/intake-ai.d.ts +3 -1
  466. package/dist/shared/intake-ai.d.ts.map +1 -1
  467. package/dist/shared/intake-ai.js.map +1 -1
  468. package/dist/shared/invitations.d.ts +1 -1
  469. package/dist/shared/invitations.d.ts.map +1 -1
  470. package/dist/shared/issues.d.ts +32 -36
  471. package/dist/shared/issues.d.ts.map +1 -1
  472. package/dist/shared/issues.js +5 -0
  473. package/dist/shared/issues.js.map +1 -1
  474. package/dist/shared/kinds.d.ts +3 -1
  475. package/dist/shared/kinds.d.ts.map +1 -1
  476. package/dist/shared/kinds.js +1 -1
  477. package/dist/shared/locales/access.en-US.d.ts +0 -1
  478. package/dist/shared/locales/access.en-US.d.ts.map +1 -1
  479. package/dist/shared/locales/access.en-US.js +1 -2
  480. package/dist/shared/locales/access.en-US.js.map +1 -1
  481. package/dist/shared/locales/access.zh-CN.d.ts.map +1 -1
  482. package/dist/shared/locales/access.zh-CN.js +1 -2
  483. package/dist/shared/locales/access.zh-CN.js.map +1 -1
  484. package/dist/shared/plans.d.ts +28 -10
  485. package/dist/shared/plans.d.ts.map +1 -1
  486. package/dist/shared/plans.js +2 -1
  487. package/dist/shared/plans.js.map +1 -1
  488. package/dist/shared/projects.d.ts +0 -4
  489. package/dist/shared/projects.d.ts.map +1 -1
  490. package/dist/shared/projects.js.map +1 -1
  491. package/dist/shared/realtime.d.ts +10 -3
  492. package/dist/shared/realtime.d.ts.map +1 -1
  493. package/dist/shared/realtime.js +3 -2
  494. package/dist/shared/realtime.js.map +1 -1
  495. package/dist/shared/statuses.d.ts +42 -0
  496. package/dist/shared/statuses.d.ts.map +1 -0
  497. package/dist/shared/statuses.js +73 -0
  498. package/dist/shared/statuses.js.map +1 -0
  499. package/dist/shared/subtasks.d.ts +8 -3
  500. package/dist/shared/subtasks.d.ts.map +1 -1
  501. package/package.json +21 -29
  502. package/skills/nocobase-app-plugin-projects/SKILL.md +34 -57
  503. package/dist/client/lib/built-in-rule-editors.d.ts +0 -13
  504. package/dist/client/lib/built-in-rule-editors.d.ts.map +0 -1
  505. package/dist/client/lib/built-in-rule-editors.js +0 -86
  506. package/dist/client/lib/built-in-rule-editors.js.map +0 -1
  507. package/dist/client/lib/built-in-rule-types.d.ts +0 -3
  508. package/dist/client/lib/built-in-rule-types.d.ts.map +0 -1
  509. package/dist/client/lib/built-in-rule-types.js +0 -63
  510. package/dist/client/lib/built-in-rule-types.js.map +0 -1
  511. package/dist/client/lib/status-rule-types.d.ts +0 -60
  512. package/dist/client/lib/status-rule-types.d.ts.map +0 -1
  513. package/dist/client/lib/status-rule-types.js +0 -38
  514. package/dist/client/lib/status-rule-types.js.map +0 -1
  515. package/dist/client/lib/workflow-events.d.ts +0 -25
  516. package/dist/client/lib/workflow-events.d.ts.map +0 -1
  517. package/dist/client/lib/workflow-events.js +0 -30
  518. package/dist/client/lib/workflow-events.js.map +0 -1
  519. package/dist/client/pages/config/workflow-detail.d.ts +0 -10
  520. package/dist/client/pages/config/workflow-detail.d.ts.map +0 -1
  521. package/dist/client/pages/config/workflow-detail.js +0 -182
  522. package/dist/client/pages/config/workflow-detail.js.map +0 -1
  523. package/dist/client/pages/config/workflows/flow-editor.d.ts +0 -15
  524. package/dist/client/pages/config/workflows/flow-editor.d.ts.map +0 -1
  525. package/dist/client/pages/config/workflows/flow-editor.js +0 -76
  526. package/dist/client/pages/config/workflows/flow-editor.js.map +0 -1
  527. package/dist/client/pages/config/workflows/status-rules.d.ts +0 -21
  528. package/dist/client/pages/config/workflows/status-rules.d.ts.map +0 -1
  529. package/dist/client/pages/config/workflows/status-rules.js +0 -203
  530. package/dist/client/pages/config/workflows/status-rules.js.map +0 -1
  531. package/dist/client/pages/config/workflows/transitions-matrix.d.ts +0 -20
  532. package/dist/client/pages/config/workflows/transitions-matrix.d.ts.map +0 -1
  533. package/dist/client/pages/config/workflows/transitions-matrix.js +0 -114
  534. package/dist/client/pages/config/workflows/transitions-matrix.js.map +0 -1
  535. package/dist/client/pages/config/workflows/use-status-name.d.ts +0 -4
  536. package/dist/client/pages/config/workflows/use-status-name.d.ts.map +0 -1
  537. package/dist/client/pages/config/workflows/use-status-name.js +0 -17
  538. package/dist/client/pages/config/workflows/use-status-name.js.map +0 -1
  539. package/dist/client/pages/config/workflows/workflow-diagram.d.ts +0 -17
  540. package/dist/client/pages/config/workflows/workflow-diagram.d.ts.map +0 -1
  541. package/dist/client/pages/config/workflows/workflow-diagram.js +0 -298
  542. package/dist/client/pages/config/workflows/workflow-diagram.js.map +0 -1
  543. package/dist/client/pages/config/workflows/workflow-model.d.ts +0 -157
  544. package/dist/client/pages/config/workflows/workflow-model.d.ts.map +0 -1
  545. package/dist/client/pages/config/workflows/workflow-model.js +0 -403
  546. package/dist/client/pages/config/workflows/workflow-model.js.map +0 -1
  547. package/dist/client/pages/config/workflows/workflow-views.d.ts +0 -31
  548. package/dist/client/pages/config/workflows/workflow-views.d.ts.map +0 -1
  549. package/dist/client/pages/config/workflows/workflow-views.js +0 -76
  550. package/dist/client/pages/config/workflows/workflow-views.js.map +0 -1
  551. package/dist/client/pages/config/workflows.d.ts +0 -8
  552. package/dist/client/pages/config/workflows.d.ts.map +0 -1
  553. package/dist/client/pages/config/workflows.js +0 -139
  554. package/dist/client/pages/config/workflows.js.map +0 -1
  555. package/dist/client/pages/issues/detail/start-dialog.d.ts +0 -20
  556. package/dist/client/pages/issues/detail/start-dialog.d.ts.map +0 -1
  557. package/dist/client/pages/issues/detail/start-dialog.js +0 -31
  558. package/dist/client/pages/issues/detail/start-dialog.js.map +0 -1
  559. package/dist/client/pages/projects/workflow-select.d.ts +0 -14
  560. package/dist/client/pages/projects/workflow-select.d.ts.map +0 -1
  561. package/dist/client/pages/projects/workflow-select.js +0 -34
  562. package/dist/client/pages/projects/workflow-select.js.map +0 -1
  563. package/dist/server/domains/approvals/approval.events.d.ts +0 -47
  564. package/dist/server/domains/approvals/approval.events.d.ts.map +0 -1
  565. package/dist/server/domains/approvals/approval.events.js +0 -2
  566. package/dist/server/domains/approvals/approval.events.js.map +0 -1
  567. package/dist/server/domains/approvals/approval.lifecycle.d.ts +0 -8
  568. package/dist/server/domains/approvals/approval.lifecycle.d.ts.map +0 -1
  569. package/dist/server/domains/approvals/approval.lifecycle.js +0 -54
  570. package/dist/server/domains/approvals/approval.lifecycle.js.map +0 -1
  571. package/dist/server/domains/approvals/approval.routes.d.ts +0 -10
  572. package/dist/server/domains/approvals/approval.routes.d.ts.map +0 -1
  573. package/dist/server/domains/approvals/approval.routes.js +0 -86
  574. package/dist/server/domains/approvals/approval.routes.js.map +0 -1
  575. package/dist/server/domains/approvals/approval.service.d.ts +0 -72
  576. package/dist/server/domains/approvals/approval.service.d.ts.map +0 -1
  577. package/dist/server/domains/approvals/approval.service.js +0 -261
  578. package/dist/server/domains/approvals/approval.service.js.map +0 -1
  579. package/dist/server/domains/approvals/approval.store.d.ts +0 -42
  580. package/dist/server/domains/approvals/approval.store.d.ts.map +0 -1
  581. package/dist/server/domains/approvals/approval.store.js +0 -66
  582. package/dist/server/domains/approvals/approval.store.js.map +0 -1
  583. package/dist/server/domains/approvals/index.d.ts +0 -4
  584. package/dist/server/domains/approvals/index.d.ts.map +0 -1
  585. package/dist/server/domains/approvals/index.js +0 -3
  586. package/dist/server/domains/approvals/index.js.map +0 -1
  587. package/dist/server/domains/checklists/checklist.routes.d.ts +0 -9
  588. package/dist/server/domains/checklists/checklist.routes.d.ts.map +0 -1
  589. package/dist/server/domains/checklists/checklist.routes.js +0 -62
  590. package/dist/server/domains/checklists/checklist.routes.js.map +0 -1
  591. package/dist/server/domains/checklists/checklist.service.d.ts +0 -26
  592. package/dist/server/domains/checklists/checklist.service.d.ts.map +0 -1
  593. package/dist/server/domains/checklists/checklist.service.js +0 -80
  594. package/dist/server/domains/checklists/checklist.service.js.map +0 -1
  595. package/dist/server/domains/checklists/checklist.store.d.ts +0 -32
  596. package/dist/server/domains/checklists/checklist.store.d.ts.map +0 -1
  597. package/dist/server/domains/checklists/checklist.store.js +0 -66
  598. package/dist/server/domains/checklists/checklist.store.js.map +0 -1
  599. package/dist/server/domains/checklists/index.d.ts +0 -4
  600. package/dist/server/domains/checklists/index.d.ts.map +0 -1
  601. package/dist/server/domains/checklists/index.js +0 -4
  602. package/dist/server/domains/checklists/index.js.map +0 -1
  603. package/dist/server/domains/workflows/built-in-rule-types.d.ts +0 -40
  604. package/dist/server/domains/workflows/built-in-rule-types.d.ts.map +0 -1
  605. package/dist/server/domains/workflows/built-in-rule-types.js +0 -260
  606. package/dist/server/domains/workflows/built-in-rule-types.js.map +0 -1
  607. package/dist/server/domains/workflows/event-types.d.ts +0 -21
  608. package/dist/server/domains/workflows/event-types.d.ts.map +0 -1
  609. package/dist/server/domains/workflows/event-types.js +0 -31
  610. package/dist/server/domains/workflows/event-types.js.map +0 -1
  611. package/dist/server/domains/workflows/index.d.ts +0 -10
  612. package/dist/server/domains/workflows/index.d.ts.map +0 -1
  613. package/dist/server/domains/workflows/index.js +0 -10
  614. package/dist/server/domains/workflows/index.js.map +0 -1
  615. package/dist/server/domains/workflows/rule-types.d.ts +0 -125
  616. package/dist/server/domains/workflows/rule-types.d.ts.map +0 -1
  617. package/dist/server/domains/workflows/rule-types.js +0 -33
  618. package/dist/server/domains/workflows/rule-types.js.map +0 -1
  619. package/dist/server/domains/workflows/templates.d.ts +0 -62
  620. package/dist/server/domains/workflows/templates.d.ts.map +0 -1
  621. package/dist/server/domains/workflows/templates.js +0 -63
  622. package/dist/server/domains/workflows/templates.js.map +0 -1
  623. package/dist/server/domains/workflows/workflow.diff.d.ts +0 -14
  624. package/dist/server/domains/workflows/workflow.diff.d.ts.map +0 -1
  625. package/dist/server/domains/workflows/workflow.diff.js +0 -80
  626. package/dist/server/domains/workflows/workflow.diff.js.map +0 -1
  627. package/dist/server/domains/workflows/workflow.events.d.ts +0 -26
  628. package/dist/server/domains/workflows/workflow.events.d.ts.map +0 -1
  629. package/dist/server/domains/workflows/workflow.events.js +0 -2
  630. package/dist/server/domains/workflows/workflow.events.js.map +0 -1
  631. package/dist/server/domains/workflows/workflow.fire.d.ts +0 -38
  632. package/dist/server/domains/workflows/workflow.fire.d.ts.map +0 -1
  633. package/dist/server/domains/workflows/workflow.fire.js +0 -57
  634. package/dist/server/domains/workflows/workflow.fire.js.map +0 -1
  635. package/dist/server/domains/workflows/workflow.registry.d.ts +0 -27
  636. package/dist/server/domains/workflows/workflow.registry.d.ts.map +0 -1
  637. package/dist/server/domains/workflows/workflow.registry.js +0 -130
  638. package/dist/server/domains/workflows/workflow.registry.js.map +0 -1
  639. package/dist/server/domains/workflows/workflow.routes.d.ts +0 -6
  640. package/dist/server/domains/workflows/workflow.routes.d.ts.map +0 -1
  641. package/dist/server/domains/workflows/workflow.routes.js +0 -148
  642. package/dist/server/domains/workflows/workflow.routes.js.map +0 -1
  643. package/dist/server/domains/workflows/workflow.rules.d.ts +0 -14
  644. package/dist/server/domains/workflows/workflow.rules.d.ts.map +0 -1
  645. package/dist/server/domains/workflows/workflow.rules.js +0 -190
  646. package/dist/server/domains/workflows/workflow.rules.js.map +0 -1
  647. package/dist/server/domains/workflows/workflow.service.d.ts +0 -71
  648. package/dist/server/domains/workflows/workflow.service.d.ts.map +0 -1
  649. package/dist/server/domains/workflows/workflow.service.js +0 -365
  650. package/dist/server/domains/workflows/workflow.service.js.map +0 -1
  651. package/dist/server/domains/workflows/workflow.store.d.ts +0 -33
  652. package/dist/server/domains/workflows/workflow.store.d.ts.map +0 -1
  653. package/dist/server/domains/workflows/workflow.store.js +0 -148
  654. package/dist/server/domains/workflows/workflow.store.js.map +0 -1
  655. package/dist/shared/approvals.d.ts +0 -37
  656. package/dist/shared/approvals.d.ts.map +0 -1
  657. package/dist/shared/approvals.js +0 -4
  658. package/dist/shared/approvals.js.map +0 -1
  659. package/dist/shared/checklists.d.ts +0 -27
  660. package/dist/shared/checklists.d.ts.map +0 -1
  661. package/dist/shared/checklists.js +0 -7
  662. package/dist/shared/checklists.js.map +0 -1
  663. package/dist/shared/workflows.d.ts +0 -267
  664. package/dist/shared/workflows.d.ts.map +0 -1
  665. package/dist/shared/workflows.js +0 -149
  666. package/dist/shared/workflows.js.map +0 -1
@@ -1,12 +1,12 @@
1
- import { isBuiltInEvent, } from '../../../shared/workflows.js';
2
1
  import { scopeOf } from '../../access/viewer.js';
3
2
  import { SYSTEM_ACTOR } from '../../kernel/actor.js';
4
3
  import { DomainError, forbidden, invalid, notFound, } from '../../kernel/errors.js';
5
4
  import { mentions, newMentions } from '../../kernel/mentions.js';
5
+ import { readAttachmentIds, requireUploader, uploaderOf, } from '../attachments/index.js';
6
6
  import { updateProject } from '../projects/index.js';
7
7
  import { requireDeleter, requireCreator, requireEditor, requireVisible, } from './issue.access.js';
8
8
  import './issue.events.js';
9
- import { resolveCreate, resolveUpdate, } from './issue.fields.js';
9
+ import { resolveCreate, resolveUpdate, progressValues, } from './issue.fields.js';
10
10
  import { findIssue, insertIssue, issuesExecutedBy, setIssueLabels, updateIssue, } from './issue.store.js';
11
11
  import { moveIssue } from './issue.status.js';
12
12
  import { isTerminal, } from './ports.js';
@@ -34,15 +34,21 @@ async function reload(tx, id) {
34
34
  }
35
35
  export function createIssueService(deps) {
36
36
  const record = (tx, issueId, actor, action, details = {}) => deps.activity.record(tx.conn, { issueId, actor, action, details });
37
- /** After an update is written: the triggers, the stale approvals, and what changed. */
38
- async function announce(tx, before, after, actor, start, approvedRequest) {
39
- await deps.triggers().onIssueChanged(tx, { before, after, actor, start });
40
- if (before.statusKey !== after.statusKey)
41
- await deps
42
- .approvals()
43
- .supersede(tx, after.id, after.statusKey, approvedRequest);
37
+ /** After an update is written: the triggers, and what changed. */
38
+ async function announce(tx, before, after, actor, start, ownerClaimed = false) {
39
+ await deps
40
+ .triggers()
41
+ .onIssueChanged(tx, { before, after, actor, start, ownerClaimed });
44
42
  await deps.relations().changed(tx, { before, after, actor });
45
- tx.emit({ type: 'issue.changed', issueId: after.id });
43
+ const moved = before.projectId !== after.projectId ||
44
+ before.parentIssueId !== after.parentIssueId ||
45
+ before.executor?.type !== after.executor?.type ||
46
+ before.executor?.id !== after.executor?.id;
47
+ tx.emit({
48
+ type: 'issue.changed',
49
+ issueId: after.id,
50
+ ...(moved ? { moved: true } : {}),
51
+ });
46
52
  for (const parentId of new Set([before.parentIssueId, after.parentIssueId]))
47
53
  if (parentId)
48
54
  tx.emit({ type: 'issue.changed', issueId: parentId });
@@ -59,8 +65,15 @@ export function createIssueService(deps) {
59
65
  const service = {
60
66
  async create(viewer, input) {
61
67
  requireCreator(viewer);
68
+ const attachmentIds = readAttachmentIds(input.attachmentIds);
69
+ if (attachmentIds.length)
70
+ requireUploader(viewer);
62
71
  return deps.tx.run(async (tx) => {
63
72
  const values = await resolveCreate({ ...deps, conn: tx.conn, viewer }, input);
73
+ // Take the graph before the counter even without waits: a later plan row may add relationships.
74
+ await deps
75
+ .relations()
76
+ .lock(tx, Boolean(values.parentIssueId) || values.blockedBy.length > 0);
64
77
  const { number, identifier } = await deps.settings.allocateIssueNumber(tx);
65
78
  const id = deps.ids.next();
66
79
  const now = new Date().toISOString();
@@ -71,6 +84,9 @@ export function createIssueService(deps) {
71
84
  title: values.title,
72
85
  description: values.description,
73
86
  statusKey: values.statusKey,
87
+ needsYou: null,
88
+ next: null,
89
+ acceptance: null,
74
90
  priority: values.priority,
75
91
  ownerUserId: values.ownerUserId,
76
92
  executorType: values.executor?.type ?? null,
@@ -87,7 +103,14 @@ export function createIssueService(deps) {
87
103
  });
88
104
  if (values.labelIds.length > 0)
89
105
  await setIssueLabels(tx.conn, () => deps.ids.next(), id, values.labelIds);
90
- await record(tx, id, viewer.actor, 'issue_created', { identifier });
106
+ if (attachmentIds.length)
107
+ await deps
108
+ .attachments()
109
+ .attach(tx, uploaderOf(viewer.actor, viewer.userId), { issueId: id, commentId: null }, attachmentIds);
110
+ await record(tx, id, viewer.actor, 'issue_created', {
111
+ identifier,
112
+ ...(attachmentIds.length ? { attachmentIds } : {}),
113
+ });
91
114
  // Every issue created in the project from now on waits for this one until it is finished.
92
115
  if (values.projectSetup && values.projectId)
93
116
  await updateProject(tx.conn, values.projectId, { setupIssueId: id });
@@ -122,6 +145,20 @@ export function createIssueService(deps) {
122
145
  return deps.tx.run(async (tx) => {
123
146
  const before = await requireVisible(tx.conn, viewer, idOrKey);
124
147
  requireEditor(viewer);
148
+ const ownerClaimed = patch.ownerUserId === before.ownerUserId &&
149
+ viewer.actor.type === 'user' &&
150
+ viewer.actor.via !== 'agent' &&
151
+ viewer.actor.id === before.ownerUserId;
152
+ // Status and project changes can release waits. Take the graph guard
153
+ // before this issue's first write, in the same order as relationship edits and plan execution.
154
+ if (patch.parentIssueId !== undefined ||
155
+ patch.stage !== undefined ||
156
+ (patch.statusKey !== undefined &&
157
+ patch.statusKey !== before.statusKey) ||
158
+ (patch.projectId !== undefined &&
159
+ patch.projectId !== before.projectId)) {
160
+ await deps.relations().lock(tx);
161
+ }
125
162
  const { values, activities, labelIds, status, placed } = await resolveUpdate({ ...deps, conn: tx.conn, viewer }, before, patch);
126
163
  let written = false;
127
164
  const write = async () => {
@@ -130,7 +167,9 @@ export function createIssueService(deps) {
130
167
  : { added: [], removed: [] };
131
168
  if (labels.added.length > 0 || labels.removed.length > 0)
132
169
  activities.push({ action: 'labels_changed', details: labels });
133
- if (activities.length === 0)
170
+ if (activities.length === 0 &&
171
+ Object.keys(values).length === 0 &&
172
+ !ownerClaimed)
134
173
  return;
135
174
  const now = new Date().toISOString();
136
175
  await updateIssue(tx.conn, before.id, { ...values, updatedAt: now, lastActivityAt: now }, patch.revision);
@@ -138,29 +177,14 @@ export function createIssueService(deps) {
138
177
  await record(tx, before.id, viewer.actor, action, details);
139
178
  written = true;
140
179
  };
141
- if (status) {
142
- const moved = await moveIssue(deps, tx, {
180
+ if (status)
181
+ await moveIssue(deps, tx, {
143
182
  issue: before,
144
183
  catalog: status.catalog,
145
184
  to: status.to,
146
185
  actor: viewer.actor,
147
186
  write,
148
187
  });
149
- if (moved.outcome === 'pending') {
150
- const pendingApproval = await deps.approvals().request(tx, {
151
- issue: before,
152
- toStatus: status.to,
153
- actor: viewer.actor,
154
- approvers: moved.approvers,
155
- approverIds: moved.approverIds,
156
- });
157
- return { ...before, pendingApproval };
158
- }
159
- if (moved.outcome === 'moved' && moved.approval !== 'none')
160
- await record(tx, before.id, viewer.actor, moved.approval === 'self'
161
- ? 'approval_self'
162
- : 'approval_no_approver', { from: before.statusKey, to: status.to });
163
- }
164
188
  else
165
189
  await write();
166
190
  if (!written)
@@ -168,70 +192,28 @@ export function createIssueService(deps) {
168
192
  const after = await reload(tx, before.id);
169
193
  if (placed)
170
194
  await deps.relations().placed(tx, after);
171
- await announce(tx, before, after, viewer.actor, patch.start !== false);
172
- return after;
195
+ await announce(tx, before, after, viewer.actor, patch.start !== false, ownerClaimed);
196
+ // Work hooks may update the issue again within this transaction.
197
+ return reload(tx, before.id);
173
198
  });
174
199
  },
175
- async applyApproved(tx, request, approver) {
176
- const issue = await findIssue(tx.conn, request.issueId);
177
- if (!issue || issue.deletedAt)
178
- return { code: 'ISSUE_GONE', message: 'The issue was deleted.' };
179
- if (issue.statusKey !== request.fromStatus)
180
- return {
181
- code: 'STATUS_CHANGED',
182
- message: `The issue left ${request.fromStatus} meanwhile.`,
183
- };
184
- const catalog = await deps.statuses.forProject(tx.conn, issue.projectId);
185
- try {
186
- await moveIssue(deps, tx, {
187
- issue,
188
- catalog,
189
- to: request.toStatus,
190
- actor: { type: request.requestedByType, id: request.requestedById },
191
- approved: true,
192
- write: async () => {
193
- const now = new Date().toISOString();
194
- await updateIssue(tx.conn, issue.id, {
195
- statusKey: request.toStatus,
196
- updatedAt: now,
197
- lastActivityAt: now,
198
- });
199
- await record(tx, issue.id, SYSTEM_ACTOR, 'status_changed', {
200
- from: issue.statusKey,
201
- to: request.toStatus,
202
- requestId: request.id,
203
- approvedById: approver.id,
204
- });
205
- },
206
- });
207
- }
208
- catch (error) {
209
- if (error instanceof DomainError)
210
- return { code: error.code, message: error.message };
211
- throw error;
212
- }
213
- await announce(tx, issue, await reload(tx, issue.id), SYSTEM_ACTOR, true, request.id);
214
- return null;
215
- },
216
200
  async eventTarget(conn, issueId, event) {
217
201
  const issue = await findIssue(conn, issueId);
218
202
  if (!issue || issue.deletedAt)
219
203
  return { issueId, to: null, reason: 'notFound' };
220
- const catalog = await deps.statuses.forProject(conn, issue.projectId);
221
- if (isBuiltInEvent(event) && isTerminal(catalog, issue.statusKey))
222
- return { issueId: issue.id, to: null, reason: 'finished' };
204
+ const catalog = deps.statuses.catalog();
223
205
  const to = catalog.machine.eventTarget(issue.statusKey, event);
224
206
  return to === null
225
207
  ? { issueId: issue.id, to: null, reason: 'noTransition' }
226
208
  : { issueId: issue.id, from: issue.statusKey, to };
227
209
  },
228
210
  async fireEvent(tx, issueId, event, cause) {
211
+ // A contributed event batch enters here before its first issue write; subtask joins already hold the guard.
212
+ await deps.relations().lock(tx);
229
213
  const issue = await findIssue(tx.conn, issueId);
230
214
  if (!issue || issue.deletedAt)
231
215
  return { issueId, outcome: 'ignored', reason: 'notFound' };
232
- const catalog = await deps.statuses.forProject(tx.conn, issue.projectId);
233
- if (isBuiltInEvent(event) && isTerminal(catalog, issue.statusKey))
234
- return { issueId: issue.id, outcome: 'ignored', reason: 'finished' };
216
+ const catalog = deps.statuses.catalog();
235
217
  const to = catalog.machine.eventTarget(issue.statusKey, event);
236
218
  if (to === null)
237
219
  return {
@@ -241,17 +223,19 @@ export function createIssueService(deps) {
241
223
  };
242
224
  const recorded = cause.actor ?? SYSTEM_ACTOR;
243
225
  try {
226
+ const progress = progressValues(issue, { statusKey: to });
244
227
  await moveIssue(deps, tx, {
245
228
  issue,
246
229
  catalog,
247
230
  to,
248
231
  actor: SYSTEM_ACTOR,
249
- approved: true,
232
+ sourceActor: recorded,
250
233
  event,
251
234
  write: async () => {
252
235
  const now = new Date().toISOString();
253
236
  await updateIssue(tx.conn, issue.id, {
254
237
  statusKey: to,
238
+ ...progress,
255
239
  updatedAt: now,
256
240
  lastActivityAt: now,
257
241
  });
@@ -286,7 +270,7 @@ export function createIssueService(deps) {
286
270
  message: error.message,
287
271
  };
288
272
  }
289
- await announce(tx, issue, await reload(tx, issue.id), SYSTEM_ACTOR, true);
273
+ await announce(tx, issue, await reload(tx, issue.id), recorded, true);
290
274
  return { issueId: issue.id, outcome: 'moved', from: issue.statusKey, to };
291
275
  },
292
276
  async remove(viewer, idOrKey) {
@@ -296,8 +280,7 @@ export function createIssueService(deps) {
296
280
  releaseExecutor: (executor, cause) => deps.tx.run(async (tx) => {
297
281
  const released = [];
298
282
  for (const before of await issuesExecutedBy(tx.conn, executor)) {
299
- const catalog = await deps.statuses.forProject(tx.conn, before.projectId);
300
- if (isTerminal(catalog, before.statusKey))
283
+ if (isTerminal(deps.statuses.catalog(), before.statusKey))
301
284
  continue;
302
285
  const now = new Date().toISOString();
303
286
  await updateIssue(tx.conn, before.id, {
@@ -323,6 +306,7 @@ export function createIssueService(deps) {
323
306
  async restore(viewer, idOrKey) {
324
307
  requireDeleter(viewer);
325
308
  return deps.tx.run(async (tx) => {
309
+ await deps.relations().lock(tx);
326
310
  const issue = await findIssue(tx.conn, idOrKey);
327
311
  if (!issue?.deletedAt)
328
312
  throw notFound('Deleted issue');
@@ -332,6 +316,7 @@ export function createIssueService(deps) {
332
316
  deletedById: null,
333
317
  updatedAt: now,
334
318
  });
319
+ await deps.relations().placed(tx, await reload(tx, issue.id));
335
320
  await record(tx, issue.id, viewer.actor, 'issue_restored');
336
321
  tx.emit({ type: 'issue.changed', issueId: issue.id });
337
322
  tx.emit({
@@ -347,6 +332,7 @@ export function createIssueService(deps) {
347
332
  /** `remove`, or with `retracted` the creator's own removal of what a plan created. */
348
333
  async function softDelete(viewer, idOrKey, retracted) {
349
334
  await deps.tx.run(async (tx) => {
335
+ await deps.relations().lock(tx);
350
336
  const issue = await requireVisible(tx.conn, viewer, idOrKey);
351
337
  if (retracted &&
352
338
  issue.createdById !== viewer.userId &&
@@ -1 +1 @@
1
- {"version":3,"file":"issue.service.js","sourceRoot":"","sources":["../../../../server/domains/issues/issue.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"issue.service.js","sourceRoot":"","sources":["../../../../server/domains/issues/issue.service.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,10 @@
1
1
  /**
2
- * Moving an issue to another status: the workflow's machine and rules (`server/lifecycle`), run in the caller's
3
- * transaction. The lifecycle's refusals become this plugin's errors: an unknown status is 400 `INVALID_STATUS`, a move
4
- * nobody allowed 400 `TRANSITION_NOT_ALLOWED`, and a guard's refusal 400 with the guard's own code (such as
5
- * `CHECKLIST_INCOMPLETE`).
2
+ * Moving an issue to another status: the fixed statuses' machine and rules (`domains/statuses`, `server/lifecycle`),
3
+ * run in the caller's transaction. The lifecycle's refusals become this plugin's errors: an unknown status is 400
4
+ * `INVALID_STATUS` and a move nobody allowed 400 `TRANSITION_NOT_ALLOWED`.
6
5
  *
7
- * Entry actions run each in a savepoint, with their events kept only when they succeed; one that fails is recorded as
8
- * `stage_action_failed` and the move stands. What the rules other plugins contribute did is recorded too
9
- * (`stage_action_applied`, or `stage_action_skipped` with its reason, `unavailable` when the rule's plugin is gone).
6
+ * Entry actions (telling the owner) run each in a savepoint, with their events kept only when they succeed; one that
7
+ * fails is recorded as `stage_action_failed` and the move stands.
10
8
  */
11
9
  import type { Issue } from '../../../shared/issues.js';
12
10
  import type { ActivityRecorder } from '../../kernel/activity.js';
@@ -19,9 +17,8 @@ export interface IssueMove {
19
17
  readonly catalog: StatusCatalog;
20
18
  readonly to: string;
21
19
  readonly actor: Actor;
22
- /** The move was approved already. */
23
- readonly approved?: boolean;
24
- /** The workflow event the move answers: only that event's transitions are taken. */
20
+ readonly sourceActor?: Actor;
21
+ /** The status event the move answers: only that event's transitions are taken. */
25
22
  readonly event?: string;
26
23
  /** Writes the change; runs only when the move may happen now. */
27
24
  readonly write: () => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"issue.status.d.ts","sourceRoot":"","sources":["../../../../server/domains/issues/issue.status.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAEvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAGL,KAAK,UAAU,EAChB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,qCAAqC;IACrC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,oFAAoF;IACpF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,iEAAiE;IACjE,QAAQ,CAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACrC;AAkBD,wBAAsB,SAAS,CAC7B,IAAI,EAAE;IAAE,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAA;CAAE,EAC7C,EAAE,EAAE,EAAE,EACN,KAAK,EAAE,SAAS,GACf,OAAO,CAAC,UAAU,CAAC,CAoErB"}
1
+ {"version":3,"file":"issue.status.d.ts","sourceRoot":"","sources":["../../../../server/domains/issues/issue.status.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAGL,KAAK,UAAU,EAChB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC;IAC7B,kFAAkF;IAClF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,iEAAiE;IACjE,QAAQ,CAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACrC;AAkBD,wBAAsB,SAAS,CAC7B,IAAI,EAAE;IAAE,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAA;CAAE,EAC7C,EAAE,EAAE,EAAE,EACN,KAAK,EAAE,SAAS,GACf,OAAO,CAAC,UAAU,CAAC,CAkDrB"}
@@ -1,4 +1,3 @@
1
- import { STATUS_RULE_TYPES } from '../../../shared/workflows.js';
2
1
  import { conflict, invalid } from '../../kernel/errors.js';
3
2
  import { LifecycleError, move, } from '../../lifecycle/index.js';
4
3
  /** A savepoint around one entry action: its events reach the transaction only when it succeeds. */
@@ -22,11 +21,12 @@ export async function moveIssue(deps, tx, input) {
22
21
  result = await move(catalog.machine, catalog.rules, {
23
22
  from: issue.statusKey,
24
23
  to,
25
- actor: { type: actor.type, id: actor.id },
24
+ actor,
25
+ sourceActor: input.sourceActor ?? actor,
26
26
  subject: issue,
27
27
  context: tx,
28
- // The system's own moves (a merged pull request, say) never wait for a person.
29
- approved: input.approved ?? actor.type === 'system',
28
+ // The fixed statuses never wait for an approval.
29
+ approved: true,
30
30
  ...(input.event === undefined ? {} : { event: input.event }),
31
31
  isolate: isolate(tx),
32
32
  }, input.write);
@@ -42,26 +42,11 @@ export async function moveIssue(deps, tx, input) {
42
42
  throw invalid(error.code === 'UNKNOWN_STATE' ? 'INVALID_STATUS' : error.code, error.message);
43
43
  }
44
44
  if (result.outcome === 'moved')
45
- for (const report of result.entry) {
46
- if (report.status !== 'failed' &&
47
- !STATUS_RULE_TYPES.includes(report.rule))
48
- await deps.activity.record(tx.conn, {
49
- issueId: issue.id,
50
- actor,
51
- action: report.status === 'applied'
52
- ? 'stage_action_applied'
53
- : 'stage_action_skipped',
54
- details: {
55
- ...report.details,
56
- statusKey: to,
57
- rule: report.rule,
58
- ...(report.reason ? { reason: report.reason } : {}),
59
- },
60
- });
45
+ for (const report of result.entry)
61
46
  if (report.status === 'failed')
62
47
  await deps.activity.record(tx.conn, {
63
48
  issueId: issue.id,
64
- actor,
49
+ actor: input.sourceActor ?? actor,
65
50
  action: 'stage_action_failed',
66
51
  details: {
67
52
  statusKey: to,
@@ -71,7 +56,6 @@ export async function moveIssue(deps, tx, input) {
71
56
  : String(report.error),
72
57
  },
73
58
  });
74
- }
75
59
  return result;
76
60
  }
77
61
  //# sourceMappingURL=issue.status.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"issue.status.js","sourceRoot":"","sources":["../../../../server/domains/issues/issue.status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"issue.status.js","sourceRoot":"","sources":["../../../../server/domains/issues/issue.status.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,9 @@ export interface IssueRecord {
13
13
  readonly title: string;
14
14
  readonly description: string;
15
15
  readonly statusKey: string;
16
+ readonly needsYou: string | null;
17
+ readonly next: string | null;
18
+ readonly acceptance: string | null;
16
19
  readonly priority: Priority;
17
20
  /** `PRIORITIES` index of `priority`, kept by the writes below. */
18
21
  readonly priorityRank: number;
@@ -44,6 +47,8 @@ export interface IssueRow extends Issue {
44
47
  readonly labels: readonly Label[];
45
48
  }
46
49
  export declare function toIssue(record: IssueRecord): Issue;
50
+ /** Complete authorized projections without owner, executor, project or label hydration. */
51
+ export declare function hierarchyRecords(conn: DatabaseConnection, filter: RepositoryFilter<IssueRecord>): Promise<Issue[]>;
47
52
  export interface IssueQuery {
48
53
  readonly filter?: RepositoryFilter<IssueRecord>;
49
54
  /** The sort field; `id` breaks ties in the same direction. */
@@ -54,6 +59,10 @@ export interface IssueQuery {
54
59
  }
55
60
  /** Issues with their owner, project and labels, newest first. */
56
61
  export declare function findIssueRows(conn: DatabaseConnection, query: IssueQuery): Promise<IssueRow[]>;
62
+ /** The sort fields of an issue, for placing it in a list without reading what the list shows of it. */
63
+ export type IssueRef = Pick<Issue, 'id' | 'number' | 'priority' | 'createdAt' | 'updatedAt'>;
64
+ /** The ids and sort fields of the issues `query` lists, in its order: a cheap first step before `findIssueRows`. */
65
+ export declare function findIssueRefs(conn: DatabaseConnection, query: IssueQuery): Promise<IssueRef[]>;
57
66
  /** An issue by id or identifier (`PM-12`, any case), deleted or not. */
58
67
  export declare function findIssue(conn: DatabaseConnection, idOrKey: string): Promise<Issue | undefined>;
59
68
  export declare function findIssueRow(conn: DatabaseConnection, id: string): Promise<IssueRow | undefined>;
@@ -96,6 +105,8 @@ export declare function issuesExecutedBy(conn: DatabaseConnection, executor: {
96
105
  export declare function findIssues(conn: DatabaseConnection, ids: readonly string[]): Promise<Issue[]>;
97
106
  /** The live sub-issues of `parentIds`, by number. */
98
107
  export declare function liveChildren(conn: DatabaseConnection, parentIds: readonly string[]): Promise<Issue[]>;
108
+ /** Every live sub-issue in a stage that is not in one of `finishedKeys`, of any parent. */
109
+ export declare function unfinishedStagedChildren(conn: DatabaseConnection, finishedKeys: readonly string[]): Promise<Issue[]>;
99
110
  /** How many live sub-issues each of `ids` has; issues without any are left out. */
100
111
  export declare function childCounts(conn: DatabaseConnection, ids: readonly string[]): Promise<Map<string, number>>;
101
112
  //# sourceMappingURL=issue.store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"issue.store.d.ts","sourceRoot":"","sources":["../../../../server/domains/issues/issue.store.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACtB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAOvD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,kEAAkE;IAClE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,2EAA2E;IAC3E,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,mCAAmC;AACnC,MAAM,MAAM,WAAW,GAAG,OAAO,CAC/B,IAAI,CACF,WAAW,EACX,IAAI,GAAG,QAAQ,GAAG,YAAY,GAAG,UAAU,GAAG,WAAW,GAAG,cAAc,CAC3E,CACF,CAAC;AAEF,4DAA4D;AAC5D,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAEvD;AAQD,4CAA4C;AAC5C,MAAM,WAAW,QAAS,SAAQ,KAAK;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,CAAC;CACnC;AAsCD,wBAAgB,OAAO,CAAC,MAAM,EAAE,WAAW,GAAG,KAAK,CAelD;AAmBD,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAChD,8DAA8D;IAC9D,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,GAAG,QAAQ,GAAG,cAAc,CAAC;IACtE,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAChD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,iEAAiE;AACjE,wBAAsB,aAAa,CACjC,IAAI,EAAE,kBAAkB,EACxB,KAAK,EAAE,UAAU,GAChB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAmBrB;AAID,wEAAwE;AACxE,wBAAsB,SAAS,CAC7B,IAAI,EAAE,kBAAkB,EACxB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,CAY5B;AAED,wBAAsB,YAAY,CAChC,IAAI,EAAE,kBAAkB,EACxB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAO/B;AAED,+DAA+D;AAC/D,wBAAsB,WAAW,CAC/B,IAAI,EAAE,kBAAkB,EACxB,MAAM,EAAE,IAAI,CACV,WAAW,EACX,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,CAC1D,GACA,OAAO,CAAC,IAAI,CAAC,CAIf;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,kBAAkB,EACxB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,WAAW,EACnB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAef;AAED,uDAAuD;AACvD;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,kBAAkB,EACxB,EAAE,EAAE,MAAM,EACV,EAAE,GAAE,IAAiB,GACpB,OAAO,CAAC,IAAI,CAAC,CAMf;AAED,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,kBAAkB,EACxB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAMxB;AAED,iEAAiE;AACjE,wBAAsB,cAAc,CAClC,IAAI,EAAE,kBAAkB,EACxB,GAAG,EAAE,MAAM,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,SAAS,MAAM,EAAE,GAC1B,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CA2BjD;AAED,gDAAgD;AAChD,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,kBAAkB,EACxB,UAAU,EAAE,SAAS,MAAM,EAAE,GAC5B,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,CAapE;AAED,+CAA+C;AAC/C,wBAAsB,UAAU,CAC9B,IAAI,EAAE,kBAAkB,EACxB,MAAM,EAAE,gBAAgB,CAAC,WAAW,CAAC,GAAG,SAAS,GAChD,OAAO,CAAC,MAAM,EAAE,CAAC,CAOnB;AAED,gDAAgD;AAChD,wBAAsB,eAAe,CACnC,IAAI,EAAE,kBAAkB,EACxB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,KAAK,EAAE,CAAC,CAMlB;AAED,2CAA2C;AAC3C,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,kBAAkB,EACxB,QAAQ,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GACvD,OAAO,CAAC,KAAK,EAAE,CAAC,CAWlB;AAED,yEAAyE;AACzE,wBAAsB,UAAU,CAC9B,IAAI,EAAE,kBAAkB,EACxB,GAAG,EAAE,SAAS,MAAM,EAAE,GACrB,OAAO,CAAC,KAAK,EAAE,CAAC,CAOlB;AAED,qDAAqD;AACrD,wBAAsB,YAAY,CAChC,IAAI,EAAE,kBAAkB,EACxB,SAAS,EAAE,SAAS,MAAM,EAAE,GAC3B,OAAO,CAAC,KAAK,EAAE,CAAC,CAYlB;AAED,mFAAmF;AACnF,wBAAsB,WAAW,CAC/B,IAAI,EAAE,kBAAkB,EACxB,GAAG,EAAE,SAAS,MAAM,EAAE,GACrB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAc9B"}
1
+ {"version":3,"file":"issue.store.d.ts","sourceRoot":"","sources":["../../../../server/domains/issues/issue.store.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,9 @@ const FIELDS = [
21
21
  'title',
22
22
  'description',
23
23
  'statusKey',
24
+ 'needsYou',
25
+ 'next',
26
+ 'acceptance',
24
27
  'priority',
25
28
  'ownerUserId',
26
29
  'executorType',
@@ -46,6 +49,14 @@ export function toIssue(record) {
46
49
  : null,
47
50
  };
48
51
  }
52
+ /** Complete authorized projections without owner, executor, project or label hydration. */
53
+ export async function hierarchyRecords(conn, filter) {
54
+ const rows = await issues(conn).findMany({
55
+ filter,
56
+ select: (select) => select.fields(...FIELDS),
57
+ });
58
+ return rows.map((row) => toIssue({ ...row, priorityRank: 0, deletedById: null }));
59
+ }
49
60
  function toRow(record) {
50
61
  const { owner, project, labels, ...issue } = record;
51
62
  return {
@@ -72,6 +83,19 @@ export async function findIssueRows(conn, query) {
72
83
  });
73
84
  return rows.map((row) => toRow(row));
74
85
  }
86
+ /** The ids and sort fields of the issues `query` lists, in its order: a cheap first step before `findIssueRows`. */
87
+ export async function findIssueRefs(conn, query) {
88
+ const rows = await issues(conn).findMany({
89
+ ...(query.filter ? { filter: query.filter } : {}),
90
+ ...(query.cursor ? { cursor: query.cursor } : {}),
91
+ select: (select) => select.fields('id', 'number', 'priority', 'createdAt', 'updatedAt'),
92
+ sort: (sort) => query.direction === 'asc'
93
+ ? [sort.field(query.order).asc(), sort.field('id').asc()]
94
+ : [sort.field(query.order).desc(), sort.field('id').desc()],
95
+ limit: query.limit,
96
+ });
97
+ return rows;
98
+ }
75
99
  const IDENTIFIER = /^[A-Za-z][A-Za-z0-9]*-\d+$/u;
76
100
  /** An issue by id or identifier (`PM-12`, any case), deleted or not. */
77
101
  export async function findIssue(conn, idOrKey) {
@@ -235,6 +259,19 @@ export async function liveChildren(conn, parentIds) {
235
259
  });
236
260
  return rows.map((row) => toIssue(row));
237
261
  }
262
+ /** Every live sub-issue in a stage that is not in one of `finishedKeys`, of any parent. */
263
+ export async function unfinishedStagedChildren(conn, finishedKeys) {
264
+ const rows = await issues(conn).findMany({
265
+ filter: (f) => f.and([
266
+ f.string('parentIssueId').ne(null),
267
+ f.number('stage').ne(null),
268
+ f.date('deletedAt').empty(),
269
+ ...finishedKeys.map((key) => f.string('statusKey').ne(key)),
270
+ ]),
271
+ select: (select) => select.fields(...FIELDS),
272
+ });
273
+ return rows.map((row) => toIssue(row));
274
+ }
238
275
  /** How many live sub-issues each of `ids` has; issues without any are left out. */
239
276
  export async function childCounts(conn, ids) {
240
277
  if (ids.length === 0)