@nocobase/app-plugin-projects 0.1.0-beta.2 → 0.1.0-beta.20
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.
- package/CHANGELOG.md +438 -0
- package/README.md +83 -106
- package/dist/client/api/changed-issues.d.ts +12 -0
- package/dist/client/api/changed-issues.d.ts.map +1 -0
- package/dist/client/api/changed-issues.js +30 -0
- package/dist/client/api/changed-issues.js.map +1 -0
- package/dist/client/api/client.d.ts +8 -25
- package/dist/client/api/client.d.ts.map +1 -1
- package/dist/client/api/client.js +12 -51
- package/dist/client/api/client.js.map +1 -1
- package/dist/client/api/invalidate-queries.d.ts +7 -0
- package/dist/client/api/invalidate-queries.d.ts.map +1 -0
- package/dist/client/api/invalidate-queries.js +65 -0
- package/dist/client/api/invalidate-queries.js.map +1 -0
- package/dist/client/api/keys.d.ts +4 -10
- package/dist/client/api/keys.d.ts.map +1 -1
- package/dist/client/api/keys.js +4 -31
- package/dist/client/api/keys.js.map +1 -1
- package/dist/client/components/attachment-list.d.ts +77 -0
- package/dist/client/components/attachment-list.d.ts.map +1 -0
- package/dist/client/components/attachment-list.js +147 -0
- package/dist/client/components/attachment-list.js.map +1 -0
- package/dist/client/components/pm-badges.d.ts +1 -1
- package/dist/client/components/pm-badges.d.ts.map +1 -1
- package/dist/client/components/pm-description-image.d.ts +4 -0
- package/dist/client/components/pm-description-image.d.ts.map +1 -0
- package/dist/client/components/pm-description-image.js +61 -0
- package/dist/client/components/pm-description-image.js.map +1 -0
- package/dist/client/components/pm-executor-select.d.ts +3 -1
- package/dist/client/components/pm-executor-select.d.ts.map +1 -1
- package/dist/client/components/pm-executor-select.js +6 -1
- package/dist/client/components/pm-executor-select.js.map +1 -1
- package/dist/client/components/pm-markdown.d.ts +1 -1
- package/dist/client/components/pm-markdown.d.ts.map +1 -1
- package/dist/client/components/pm-markdown.js +28 -15
- package/dist/client/components/pm-markdown.js.map +1 -1
- package/dist/client/components/pm-rich-text-editor.d.ts +4 -1
- package/dist/client/components/pm-rich-text-editor.d.ts.map +1 -1
- package/dist/client/components/pm-rich-text-editor.js +44 -4
- package/dist/client/components/pm-rich-text-editor.js.map +1 -1
- package/dist/client/components/pm-rich-text-extensions.d.ts +1 -0
- package/dist/client/components/pm-rich-text-extensions.d.ts.map +1 -1
- package/dist/client/components/pm-rich-text-extensions.js +2 -0
- package/dist/client/components/pm-rich-text-extensions.js.map +1 -1
- package/dist/client/components/ui/radio-group.d.ts +7 -0
- package/dist/client/components/ui/radio-group.d.ts.map +1 -0
- package/dist/client/components/ui/radio-group.js +12 -0
- package/dist/client/components/ui/radio-group.js.map +1 -0
- package/dist/client/components/ui/spinner.d.ts.map +1 -1
- package/dist/client/components/ui/spinner.js +3 -2
- package/dist/client/components/ui/spinner.js.map +1 -1
- package/dist/client/config.d.ts +0 -2
- package/dist/client/config.d.ts.map +1 -1
- package/dist/client/config.js +1 -5
- package/dist/client/config.js.map +1 -1
- package/dist/client/hooks/use-attachment-uploads.d.ts +2 -2
- package/dist/client/hooks/use-attachment-uploads.d.ts.map +1 -1
- package/dist/client/hooks/use-attachment-uploads.js +28 -13
- package/dist/client/hooks/use-attachment-uploads.js.map +1 -1
- package/dist/client/hooks/use-notify.d.ts +3 -0
- package/dist/client/hooks/use-notify.d.ts.map +1 -1
- package/dist/client/hooks/use-notify.js +59 -6
- package/dist/client/hooks/use-notify.js.map +1 -1
- package/dist/client/issues.d.ts +3 -5
- package/dist/client/issues.d.ts.map +1 -1
- package/dist/client/issues.js +3 -4
- package/dist/client/issues.js.map +1 -1
- package/dist/client/kit/executor-presentation.d.ts +15 -0
- package/dist/client/kit/executor-presentation.d.ts.map +1 -0
- package/dist/client/kit/executor-presentation.js +4 -0
- package/dist/client/kit/executor-presentation.js.map +1 -0
- package/dist/client/kit/intake-draft.d.ts +21 -0
- package/dist/client/kit/intake-draft.d.ts.map +1 -0
- package/dist/client/kit/intake-draft.js +20 -0
- package/dist/client/kit/intake-draft.js.map +1 -0
- package/dist/client/kit/issue-creation.d.ts +4 -0
- package/dist/client/kit/issue-creation.d.ts.map +1 -0
- package/dist/client/kit/issue-creation.js +4 -0
- package/dist/client/kit/issue-creation.js.map +1 -0
- package/dist/client/kit/plans/lookup.d.ts +2 -2
- package/dist/client/kit/plans/lookup.js +3 -3
- package/dist/client/kit/plans/lookup.js.map +1 -1
- package/dist/client/kit/plans/plan-confirm.d.ts.map +1 -1
- package/dist/client/kit/plans/plan-confirm.js +2 -2
- package/dist/client/kit/plans/plan-confirm.js.map +1 -1
- package/dist/client/kit/plans/plan-row.js +2 -2
- package/dist/client/kit/plans/plan-row.js.map +1 -1
- package/dist/client/kit.d.ts +9 -9
- package/dist/client/kit.d.ts.map +1 -1
- package/dist/client/kit.js +9 -9
- package/dist/client/kit.js.map +1 -1
- package/dist/client/lib/format.d.ts.map +1 -1
- package/dist/client/lib/format.js +14 -2
- package/dist/client/lib/format.js.map +1 -1
- package/dist/client/lib/kinds.d.ts +3 -29
- package/dist/client/lib/kinds.d.ts.map +1 -1
- package/dist/client/lib/kinds.js +7 -46
- package/dist/client/lib/kinds.js.map +1 -1
- package/dist/client/lib/status-events.d.ts +21 -0
- package/dist/client/lib/status-events.d.ts.map +1 -0
- package/dist/client/lib/status-events.js +31 -0
- package/dist/client/lib/status-events.js.map +1 -0
- package/dist/client/lib/status.d.ts +5 -7
- package/dist/client/lib/status.d.ts.map +1 -1
- package/dist/client/lib/status.js +5 -7
- package/dist/client/lib/status.js.map +1 -1
- package/dist/client/locales/de-DE.d.ts +5 -0
- package/dist/client/locales/de-DE.d.ts.map +1 -0
- package/dist/client/locales/de-DE.js +1327 -0
- package/dist/client/locales/de-DE.js.map +1 -0
- package/dist/client/locales/en-US.d.ts +17 -252
- package/dist/client/locales/en-US.d.ts.map +1 -1
- package/dist/client/locales/en-US.js +21 -252
- package/dist/client/locales/en-US.js.map +1 -1
- package/dist/client/locales/es-ES.d.ts +5 -0
- package/dist/client/locales/es-ES.d.ts.map +1 -0
- package/dist/client/locales/es-ES.js +1341 -0
- package/dist/client/locales/es-ES.js.map +1 -0
- package/dist/client/locales/fr-FR.d.ts +5 -0
- package/dist/client/locales/fr-FR.d.ts.map +1 -0
- package/dist/client/locales/fr-FR.js +1341 -0
- package/dist/client/locales/fr-FR.js.map +1 -0
- package/dist/client/locales/id-ID.d.ts +5 -0
- package/dist/client/locales/id-ID.d.ts.map +1 -0
- package/dist/client/locales/id-ID.js +1327 -0
- package/dist/client/locales/id-ID.js.map +1 -0
- package/dist/client/locales/index.d.ts.map +1 -1
- package/dist/client/locales/index.js +8 -0
- package/dist/client/locales/index.js.map +1 -1
- package/dist/client/locales/ja-JP.d.ts +5 -0
- package/dist/client/locales/ja-JP.d.ts.map +1 -0
- package/dist/client/locales/ja-JP.js +1327 -0
- package/dist/client/locales/ja-JP.js.map +1 -0
- package/dist/client/locales/plans.en-US.js +1 -1
- package/dist/client/locales/plans.en-US.js.map +1 -1
- package/dist/client/locales/plans.zh-CN.js +1 -1
- package/dist/client/locales/plans.zh-CN.js.map +1 -1
- package/dist/client/locales/pt-BR.d.ts +5 -0
- package/dist/client/locales/pt-BR.d.ts.map +1 -0
- package/dist/client/locales/pt-BR.js +1341 -0
- package/dist/client/locales/pt-BR.js.map +1 -0
- package/dist/client/locales/vi-VN.d.ts +5 -0
- package/dist/client/locales/vi-VN.d.ts.map +1 -0
- package/dist/client/locales/vi-VN.js +1327 -0
- package/dist/client/locales/vi-VN.js.map +1 -0
- package/dist/client/locales/zh-CN.d.ts.map +1 -1
- package/dist/client/locales/zh-CN.js +22 -245
- package/dist/client/locales/zh-CN.js.map +1 -1
- package/dist/client/locales/zh-TW.d.ts +5 -0
- package/dist/client/locales/zh-TW.d.ts.map +1 -0
- package/dist/client/locales/zh-TW.js +1327 -0
- package/dist/client/locales/zh-TW.js.map +1 -0
- package/dist/client/pages/config/members/invitations-section.d.ts.map +1 -1
- package/dist/client/pages/config/members/invitations-section.js +34 -12
- package/dist/client/pages/config/members/invitations-section.js.map +1 -1
- package/dist/client/pages/config/members/invite-dialog.d.ts +5 -4
- package/dist/client/pages/config/members/invite-dialog.d.ts.map +1 -1
- package/dist/client/pages/config/members/invite-dialog.js +18 -17
- package/dist/client/pages/config/members/invite-dialog.js.map +1 -1
- package/dist/client/pages/intake/intake-files.d.ts.map +1 -1
- package/dist/client/pages/intake/intake-files.js +38 -2
- package/dist/client/pages/intake/intake-files.js.map +1 -1
- package/dist/client/pages/intake/intake-panel.d.ts.map +1 -1
- package/dist/client/pages/intake/intake-panel.js +19 -7
- package/dist/client/pages/intake/intake-panel.js.map +1 -1
- package/dist/client/pages/intake/use-intake-ai.d.ts +1 -1
- package/dist/client/pages/intake/use-intake-ai.d.ts.map +1 -1
- package/dist/client/pages/intake/use-intake-ai.js +3 -2
- package/dist/client/pages/intake/use-intake-ai.js.map +1 -1
- package/dist/client/pages/intake/use-intake-uploads.d.ts.map +1 -1
- package/dist/client/pages/intake/use-intake-uploads.js +10 -3
- package/dist/client/pages/intake/use-intake-uploads.js.map +1 -1
- package/dist/client/pages/issues/board/board-model.d.ts +1 -1
- package/dist/client/pages/issues/board/board-model.js +1 -1
- package/dist/client/pages/issues/board/use-board-move.d.ts +2 -8
- package/dist/client/pages/issues/board/use-board-move.d.ts.map +1 -1
- package/dist/client/pages/issues/board/use-board-move.js +5 -42
- package/dist/client/pages/issues/board/use-board-move.js.map +1 -1
- package/dist/client/pages/issues/detail/new-subtask.d.ts +0 -1
- package/dist/client/pages/issues/detail/new-subtask.d.ts.map +1 -1
- package/dist/client/pages/issues/detail/new-subtask.js +10 -31
- package/dist/client/pages/issues/detail/new-subtask.js.map +1 -1
- package/dist/client/pages/issues/detail/subtask-model.d.ts +1 -1
- package/dist/client/pages/issues/detail/subtask-model.js +1 -1
- package/dist/client/pages/issues/detail/use-confirmed-update.d.ts +4 -10
- package/dist/client/pages/issues/detail/use-confirmed-update.d.ts.map +1 -1
- package/dist/client/pages/issues/detail/use-confirmed-update.js +6 -42
- package/dist/client/pages/issues/detail/use-confirmed-update.js.map +1 -1
- package/dist/client/pages/issues/detail/use-issue-activity.d.ts.map +1 -1
- package/dist/client/pages/issues/detail/use-issue-activity.js +56 -10
- package/dist/client/pages/issues/detail/use-issue-activity.js.map +1 -1
- package/dist/client/pages/issues/detail/use-issue-page.d.ts +0 -4
- package/dist/client/pages/issues/detail/use-issue-page.d.ts.map +1 -1
- package/dist/client/pages/issues/detail/use-issue-page.js +0 -14
- package/dist/client/pages/issues/detail/use-issue-page.js.map +1 -1
- package/dist/client/pages/issues/detail/use-issue-update.d.ts +2 -2
- package/dist/client/pages/issues/detail/use-issue-update.d.ts.map +1 -1
- package/dist/client/pages/issues/detail/use-issue-update.js +8 -8
- package/dist/client/pages/issues/detail/use-issue-update.js.map +1 -1
- package/dist/client/pages/issues/detail/use-older-activities.d.ts +1 -1
- package/dist/client/pages/issues/detail/use-older-activities.d.ts.map +1 -1
- package/dist/client/pages/issues/detail/use-older-activities.js +7 -24
- package/dist/client/pages/issues/detail/use-older-activities.js.map +1 -1
- package/dist/client/pages/issues/detail/use-older-pages.d.ts +14 -0
- package/dist/client/pages/issues/detail/use-older-pages.d.ts.map +1 -0
- package/dist/client/pages/issues/detail/use-older-pages.js +86 -0
- package/dist/client/pages/issues/detail/use-older-pages.js.map +1 -0
- package/dist/client/pages/issues/detail/use-older-threads.d.ts +1 -1
- package/dist/client/pages/issues/detail/use-older-threads.d.ts.map +1 -1
- package/dist/client/pages/issues/detail/use-older-threads.js +7 -23
- package/dist/client/pages/issues/detail/use-older-threads.js.map +1 -1
- package/dist/client/pages/issues/filters.d.ts +1 -1
- package/dist/client/pages/issues/filters.d.ts.map +1 -1
- package/dist/client/pages/issues/filters.js +2 -0
- package/dist/client/pages/issues/filters.js.map +1 -1
- package/dist/client/pages/issues/new-issue-button.d.ts.map +1 -1
- package/dist/client/pages/issues/new-issue-button.js +1 -1
- package/dist/client/pages/issues/new-issue-button.js.map +1 -1
- package/dist/client/pages/issues/new-issue-form.d.ts +13 -8
- package/dist/client/pages/issues/new-issue-form.d.ts.map +1 -1
- package/dist/client/pages/issues/new-issue-form.js +87 -83
- package/dist/client/pages/issues/new-issue-form.js.map +1 -1
- package/dist/client/pages/issues/new.d.ts.map +1 -1
- package/dist/client/pages/issues/new.js +19 -12
- package/dist/client/pages/issues/new.js.map +1 -1
- package/dist/client/pages/issues/use-executor-options.d.ts +3 -2
- package/dist/client/pages/issues/use-executor-options.d.ts.map +1 -1
- package/dist/client/pages/issues/use-executor-options.js +5 -23
- package/dist/client/pages/issues/use-executor-options.js.map +1 -1
- package/dist/client/pages/my-issues/my-issues-model.d.ts +2 -5
- package/dist/client/pages/my-issues/my-issues-model.d.ts.map +1 -1
- package/dist/client/pages/my-issues/my-issues-model.js +6 -7
- package/dist/client/pages/my-issues/my-issues-model.js.map +1 -1
- package/dist/client/pages/projects/detail/use-project-page.d.ts +4 -26
- package/dist/client/pages/projects/detail/use-project-page.d.ts.map +1 -1
- package/dist/client/pages/projects/detail/use-project-page.js +7 -53
- package/dist/client/pages/projects/detail/use-project-page.js.map +1 -1
- package/dist/client/pages/projects/new.d.ts +1 -1
- package/dist/client/pages/projects/new.d.ts.map +1 -1
- package/dist/client/pages/projects/new.js +3 -7
- package/dist/client/pages/projects/new.js.map +1 -1
- package/dist/client/plugin.d.ts +3 -0
- package/dist/client/plugin.d.ts.map +1 -1
- package/dist/client/plugin.js +8 -1
- package/dist/client/plugin.js.map +1 -1
- package/dist/client/projects.d.ts +2 -2
- package/dist/client/projects.d.ts.map +1 -1
- package/dist/client/projects.js +2 -2
- package/dist/client/projects.js.map +1 -1
- package/dist/client/providers/query-provider.d.ts.map +1 -1
- package/dist/client/providers/query-provider.js +66 -28
- package/dist/client/providers/query-provider.js.map +1 -1
- package/dist/database/migrations/.manifest.json +16 -0
- package/dist/database/migrations/202610110001_pm_issue_graph_revision.d.ts +4 -0
- package/dist/database/migrations/202610110001_pm_issue_graph_revision.d.ts.map +1 -0
- package/dist/database/migrations/202610110001_pm_issue_graph_revision.js +20 -0
- package/dist/database/migrations/202610110001_pm_issue_graph_revision.js.map +1 -0
- package/dist/database/migrations/202610240010_pm_fixed_statuses.d.ts +4 -0
- package/dist/database/migrations/202610240010_pm_fixed_statuses.d.ts.map +1 -0
- package/dist/database/migrations/202610240010_pm_fixed_statuses.js +189 -0
- package/dist/database/migrations/202610240010_pm_fixed_statuses.js.map +1 -0
- package/dist/database/migrations/202610240011_pm_issue_progress.d.ts +4 -0
- package/dist/database/migrations/202610240011_pm_issue_progress.d.ts.map +1 -0
- package/dist/database/migrations/202610240011_pm_issue_progress.js +19 -0
- package/dist/database/migrations/202610240011_pm_issue_progress.js.map +1 -0
- package/dist/database/migrations/202610240012_pm_issue_acceptance.d.ts +4 -0
- package/dist/database/migrations/202610240012_pm_issue_acceptance.d.ts.map +1 -0
- package/dist/database/migrations/202610240012_pm_issue_acceptance.js +17 -0
- package/dist/database/migrations/202610240012_pm_issue_acceptance.js.map +1 -0
- package/dist/server/access/viewer.d.ts +3 -0
- package/dist/server/access/viewer.d.ts.map +1 -1
- package/dist/server/access/viewer.js.map +1 -1
- package/dist/server/composition.d.ts +11 -17
- package/dist/server/composition.d.ts.map +1 -1
- package/dist/server/composition.js +15 -58
- package/dist/server/composition.js.map +1 -1
- package/dist/server/domains/attachments/attachment.routes.d.ts.map +1 -1
- package/dist/server/domains/attachments/attachment.routes.js +13 -1
- package/dist/server/domains/attachments/attachment.routes.js.map +1 -1
- package/dist/server/domains/attachments/attachment.service.d.ts +3 -1
- package/dist/server/domains/attachments/attachment.service.d.ts.map +1 -1
- package/dist/server/domains/attachments/attachment.service.js +36 -2
- package/dist/server/domains/attachments/attachment.service.js.map +1 -1
- package/dist/server/domains/attachments/attachment.store.d.ts +5 -0
- package/dist/server/domains/attachments/attachment.store.d.ts.map +1 -1
- package/dist/server/domains/attachments/attachment.store.js +27 -0
- package/dist/server/domains/attachments/attachment.store.js.map +1 -1
- package/dist/server/domains/comments/comment.queries.d.ts +42 -8
- package/dist/server/domains/comments/comment.queries.d.ts.map +1 -1
- package/dist/server/domains/comments/comment.queries.js +69 -8
- package/dist/server/domains/comments/comment.queries.js.map +1 -1
- package/dist/server/domains/comments/comment.routes.d.ts +1 -1
- package/dist/server/domains/comments/comment.routes.js +4 -4
- package/dist/server/domains/comments/comment.routes.js.map +1 -1
- package/dist/server/domains/comments/comment.service.d.ts +2 -2
- package/dist/server/domains/comments/comment.service.d.ts.map +1 -1
- package/dist/server/domains/comments/comment.service.js +18 -10
- package/dist/server/domains/comments/comment.service.js.map +1 -1
- package/dist/server/domains/comments/comment.store.d.ts +22 -1
- package/dist/server/domains/comments/comment.store.d.ts.map +1 -1
- package/dist/server/domains/comments/comment.store.js +65 -2
- package/dist/server/domains/comments/comment.store.js.map +1 -1
- package/dist/server/domains/comments/index.d.ts +1 -1
- package/dist/server/domains/comments/index.d.ts.map +1 -1
- package/dist/server/domains/comments/index.js.map +1 -1
- package/dist/server/domains/comments/ports.d.ts +7 -2
- package/dist/server/domains/comments/ports.d.ts.map +1 -1
- package/dist/server/domains/invitations/invitation.routes.d.ts +2 -1
- package/dist/server/domains/invitations/invitation.routes.d.ts.map +1 -1
- package/dist/server/domains/invitations/invitation.routes.js +27 -10
- package/dist/server/domains/invitations/invitation.routes.js.map +1 -1
- package/dist/server/domains/invitations/invitation.service.d.ts +1 -1
- package/dist/server/domains/invitations/invitation.service.d.ts.map +1 -1
- package/dist/server/domains/invitations/invitation.service.js +19 -3
- package/dist/server/domains/invitations/invitation.service.js.map +1 -1
- package/dist/server/domains/issues/index.d.ts +4 -4
- package/dist/server/domains/issues/index.d.ts.map +1 -1
- package/dist/server/domains/issues/index.js +3 -3
- package/dist/server/domains/issues/index.js.map +1 -1
- package/dist/server/domains/issues/issue.access.d.ts +2 -0
- package/dist/server/domains/issues/issue.access.d.ts.map +1 -1
- package/dist/server/domains/issues/issue.access.js +8 -1
- package/dist/server/domains/issues/issue.access.js.map +1 -1
- package/dist/server/domains/issues/issue.context.d.ts +6 -22
- package/dist/server/domains/issues/issue.context.d.ts.map +1 -1
- package/dist/server/domains/issues/issue.context.js +88 -105
- package/dist/server/domains/issues/issue.context.js.map +1 -1
- package/dist/server/domains/issues/issue.events.d.ts +5 -1
- package/dist/server/domains/issues/issue.events.d.ts.map +1 -1
- package/dist/server/domains/issues/issue.fields.d.ts +5 -3
- package/dist/server/domains/issues/issue.fields.d.ts.map +1 -1
- package/dist/server/domains/issues/issue.fields.js +42 -16
- package/dist/server/domains/issues/issue.fields.js.map +1 -1
- package/dist/server/domains/issues/issue.projects.d.ts +2 -2
- package/dist/server/domains/issues/issue.projects.d.ts.map +1 -1
- package/dist/server/domains/issues/issue.projects.js +1 -2
- package/dist/server/domains/issues/issue.projects.js.map +1 -1
- package/dist/server/domains/issues/issue.queries.d.ts +26 -7
- package/dist/server/domains/issues/issue.queries.d.ts.map +1 -1
- package/dist/server/domains/issues/issue.queries.js +139 -60
- package/dist/server/domains/issues/issue.queries.js.map +1 -1
- package/dist/server/domains/issues/issue.routes.d.ts +3 -1
- package/dist/server/domains/issues/issue.routes.d.ts.map +1 -1
- package/dist/server/domains/issues/issue.routes.js +72 -46
- package/dist/server/domains/issues/issue.routes.js.map +1 -1
- package/dist/server/domains/issues/issue.service.d.ts +26 -51
- package/dist/server/domains/issues/issue.service.d.ts.map +1 -1
- package/dist/server/domains/issues/issue.service.js +89 -87
- package/dist/server/domains/issues/issue.service.js.map +1 -1
- package/dist/server/domains/issues/issue.status.d.ts +7 -10
- package/dist/server/domains/issues/issue.status.d.ts.map +1 -1
- package/dist/server/domains/issues/issue.status.js +6 -22
- package/dist/server/domains/issues/issue.status.js.map +1 -1
- package/dist/server/domains/issues/issue.store.d.ts +13 -0
- package/dist/server/domains/issues/issue.store.d.ts.map +1 -1
- package/dist/server/domains/issues/issue.store.js +45 -0
- package/dist/server/domains/issues/issue.store.js.map +1 -1
- package/dist/server/domains/issues/ports.d.ts +39 -38
- package/dist/server/domains/issues/ports.d.ts.map +1 -1
- package/dist/server/domains/issues/ports.js +1 -5
- package/dist/server/domains/issues/ports.js.map +1 -1
- package/dist/server/domains/notices/notice.planner.d.ts +2 -1
- package/dist/server/domains/notices/notice.planner.d.ts.map +1 -1
- package/dist/server/domains/notices/notice.planner.js +2 -1
- package/dist/server/domains/notices/notice.planner.js.map +1 -1
- package/dist/server/domains/notices/notice.rules.d.ts +1 -4
- package/dist/server/domains/notices/notice.rules.d.ts.map +1 -1
- package/dist/server/domains/notices/notice.rules.js +4 -5
- package/dist/server/domains/notices/notice.rules.js.map +1 -1
- package/dist/server/domains/plans/intake/intake.service.d.ts +2 -0
- package/dist/server/domains/plans/intake/intake.service.d.ts.map +1 -1
- package/dist/server/domains/plans/intake/intake.service.js +14 -0
- package/dist/server/domains/plans/intake/intake.service.js.map +1 -1
- package/dist/server/domains/plans/intake/intake.text.d.ts +5 -6
- package/dist/server/domains/plans/intake/intake.text.d.ts.map +1 -1
- package/dist/server/domains/plans/intake/intake.text.js +5 -6
- package/dist/server/domains/plans/intake/intake.text.js.map +1 -1
- package/dist/server/domains/plans/plan.engine.d.ts.map +1 -1
- package/dist/server/domains/plans/plan.engine.js +6 -0
- package/dist/server/domains/plans/plan.engine.js.map +1 -1
- package/dist/server/domains/plans/plan.ops.d.ts +3 -3
- package/dist/server/domains/plans/plan.ops.d.ts.map +1 -1
- package/dist/server/domains/plans/plan.ops.js +23 -16
- package/dist/server/domains/plans/plan.ops.js.map +1 -1
- package/dist/server/domains/plans/plan.schemas.d.ts.map +1 -1
- package/dist/server/domains/plans/plan.schemas.js +26 -10
- package/dist/server/domains/plans/plan.schemas.js.map +1 -1
- package/dist/server/domains/projects/index.d.ts +1 -1
- package/dist/server/domains/projects/index.d.ts.map +1 -1
- package/dist/server/domains/projects/index.js.map +1 -1
- package/dist/server/domains/projects/project-resources.d.ts +5 -0
- package/dist/server/domains/projects/project-resources.d.ts.map +1 -1
- package/dist/server/domains/projects/project-resources.js +43 -1
- package/dist/server/domains/projects/project-resources.js.map +1 -1
- package/dist/server/domains/projects/project.events.d.ts +10 -0
- package/dist/server/domains/projects/project.events.d.ts.map +1 -0
- package/dist/server/domains/projects/project.events.js +2 -0
- package/dist/server/domains/projects/project.events.js.map +1 -0
- package/dist/server/domains/projects/project.routes.d.ts.map +1 -1
- package/dist/server/domains/projects/project.routes.js +1 -3
- package/dist/server/domains/projects/project.routes.js.map +1 -1
- package/dist/server/domains/projects/project.service.d.ts +1 -7
- package/dist/server/domains/projects/project.service.d.ts.map +1 -1
- package/dist/server/domains/projects/project.service.js +2 -17
- package/dist/server/domains/projects/project.service.js.map +1 -1
- package/dist/server/domains/projects/project.store.d.ts +0 -1
- package/dist/server/domains/projects/project.store.d.ts.map +1 -1
- package/dist/server/domains/projects/project.store.js +0 -1
- package/dist/server/domains/projects/project.store.js.map +1 -1
- package/dist/server/domains/reports/report.service.d.ts +1 -12
- package/dist/server/domains/reports/report.service.d.ts.map +1 -1
- package/dist/server/domains/reports/report.service.js +92 -136
- package/dist/server/domains/reports/report.service.js.map +1 -1
- package/dist/server/domains/settings/settings.store.d.ts +4 -4
- package/dist/server/domains/settings/settings.store.js +2 -2
- package/dist/server/domains/statuses/event-types.d.ts +16 -0
- package/dist/server/domains/statuses/event-types.d.ts.map +1 -0
- package/dist/server/domains/statuses/event-types.js +31 -0
- package/dist/server/domains/statuses/event-types.js.map +1 -0
- package/dist/server/domains/statuses/index.d.ts +4 -0
- package/dist/server/domains/statuses/index.d.ts.map +1 -0
- package/dist/server/domains/statuses/index.js +4 -0
- package/dist/server/domains/statuses/index.js.map +1 -0
- package/dist/server/domains/statuses/status.catalog.d.ts +15 -0
- package/dist/server/domains/statuses/status.catalog.d.ts.map +1 -0
- package/dist/server/domains/statuses/status.catalog.js +123 -0
- package/dist/server/domains/statuses/status.catalog.js.map +1 -0
- package/dist/server/domains/statuses/status.events.d.ts +15 -0
- package/dist/server/domains/statuses/status.events.d.ts.map +1 -0
- package/dist/server/domains/statuses/status.events.js +2 -0
- package/dist/server/domains/statuses/status.events.js.map +1 -0
- package/dist/server/domains/statuses/status.fire.d.ts +50 -0
- package/dist/server/domains/statuses/status.fire.d.ts.map +1 -0
- package/dist/server/domains/statuses/status.fire.js +42 -0
- package/dist/server/domains/statuses/status.fire.js.map +1 -0
- package/dist/server/domains/subscriptions/subscription.routes.d.ts.map +1 -1
- package/dist/server/domains/subscriptions/subscription.routes.js +4 -2
- package/dist/server/domains/subscriptions/subscription.routes.js.map +1 -1
- package/dist/server/domains/subtasks/index.d.ts +1 -0
- package/dist/server/domains/subtasks/index.d.ts.map +1 -1
- package/dist/server/domains/subtasks/index.js +1 -0
- package/dist/server/domains/subtasks/index.js.map +1 -1
- package/dist/server/domains/subtasks/subtask.blocking.d.ts +10 -5
- package/dist/server/domains/subtasks/subtask.blocking.d.ts.map +1 -1
- package/dist/server/domains/subtasks/subtask.blocking.js +35 -15
- package/dist/server/domains/subtasks/subtask.blocking.js.map +1 -1
- package/dist/server/domains/subtasks/subtask.guard.d.ts +12 -0
- package/dist/server/domains/subtasks/subtask.guard.d.ts.map +1 -0
- package/dist/server/domains/subtasks/subtask.guard.js +23 -0
- package/dist/server/domains/subtasks/subtask.guard.js.map +1 -0
- package/dist/server/domains/subtasks/subtask.release.d.ts +7 -11
- package/dist/server/domains/subtasks/subtask.release.d.ts.map +1 -1
- package/dist/server/domains/subtasks/subtask.release.js +9 -7
- package/dist/server/domains/subtasks/subtask.release.js.map +1 -1
- package/dist/server/domains/subtasks/subtask.routes.d.ts +1 -0
- package/dist/server/domains/subtasks/subtask.routes.d.ts.map +1 -1
- package/dist/server/domains/subtasks/subtask.routes.js +31 -3
- package/dist/server/domains/subtasks/subtask.routes.js.map +1 -1
- package/dist/server/domains/subtasks/subtask.service.d.ts +5 -5
- package/dist/server/domains/subtasks/subtask.service.d.ts.map +1 -1
- package/dist/server/domains/subtasks/subtask.service.js +118 -50
- package/dist/server/domains/subtasks/subtask.service.js.map +1 -1
- package/dist/server/domains/subtasks/subtask.store.d.ts +7 -0
- package/dist/server/domains/subtasks/subtask.store.d.ts.map +1 -1
- package/dist/server/domains/subtasks/subtask.store.js +34 -0
- package/dist/server/domains/subtasks/subtask.store.js.map +1 -1
- package/dist/server/index.d.ts +1 -0
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +1 -0
- package/dist/server/index.js.map +1 -1
- package/dist/server/kernel/activity.d.ts +5 -2
- package/dist/server/kernel/activity.d.ts.map +1 -1
- package/dist/server/kernel/activity.js +28 -1
- package/dist/server/kernel/activity.js.map +1 -1
- package/dist/server/kernel/actor.d.ts +2 -0
- package/dist/server/kernel/actor.d.ts.map +1 -1
- package/dist/server/kernel/actor.js.map +1 -1
- package/dist/server/kernel/http.d.ts.map +1 -1
- package/dist/server/kernel/http.js +2 -3
- package/dist/server/kernel/http.js.map +1 -1
- package/dist/server/kernel/kinds.d.ts +24 -6
- package/dist/server/kernel/kinds.d.ts.map +1 -1
- package/dist/server/kernel/kinds.js +21 -1
- package/dist/server/kernel/kinds.js.map +1 -1
- package/dist/server/kernel/transaction-read.d.ts +4 -0
- package/dist/server/kernel/transaction-read.d.ts.map +1 -0
- package/dist/server/kernel/transaction-read.js +30 -0
- package/dist/server/kernel/transaction-read.js.map +1 -0
- package/dist/server/kernel/work.d.ts +18 -6
- package/dist/server/kernel/work.d.ts.map +1 -1
- package/dist/server/kernel/work.js +37 -14
- package/dist/server/kernel/work.js.map +1 -1
- package/dist/server/lifecycle/move.d.ts +1 -0
- package/dist/server/lifecycle/move.d.ts.map +1 -1
- package/dist/server/lifecycle/move.js +2 -0
- package/dist/server/lifecycle/move.js.map +1 -1
- package/dist/server/lifecycle/registry.d.ts +5 -0
- package/dist/server/lifecycle/registry.d.ts.map +1 -1
- package/dist/server/lifecycle/registry.js.map +1 -1
- package/dist/server/locales/de-DE.d.ts +5 -0
- package/dist/server/locales/de-DE.d.ts.map +1 -0
- package/dist/server/locales/de-DE.js +202 -0
- package/dist/server/locales/de-DE.js.map +1 -0
- package/dist/server/locales/en-US.d.ts +0 -9
- package/dist/server/locales/en-US.d.ts.map +1 -1
- package/dist/server/locales/en-US.js +0 -9
- package/dist/server/locales/en-US.js.map +1 -1
- package/dist/server/locales/es-ES.d.ts +5 -0
- package/dist/server/locales/es-ES.d.ts.map +1 -0
- package/dist/server/locales/es-ES.js +202 -0
- package/dist/server/locales/es-ES.js.map +1 -0
- package/dist/server/locales/fr-FR.d.ts +5 -0
- package/dist/server/locales/fr-FR.d.ts.map +1 -0
- package/dist/server/locales/fr-FR.js +202 -0
- package/dist/server/locales/fr-FR.js.map +1 -0
- package/dist/server/locales/id-ID.d.ts +5 -0
- package/dist/server/locales/id-ID.d.ts.map +1 -0
- package/dist/server/locales/id-ID.js +202 -0
- package/dist/server/locales/id-ID.js.map +1 -0
- package/dist/server/locales/index.d.ts.map +1 -1
- package/dist/server/locales/index.js +8 -0
- package/dist/server/locales/index.js.map +1 -1
- package/dist/server/locales/ja-JP.d.ts +5 -0
- package/dist/server/locales/ja-JP.d.ts.map +1 -0
- package/dist/server/locales/ja-JP.js +202 -0
- package/dist/server/locales/ja-JP.js.map +1 -0
- package/dist/server/locales/pt-BR.d.ts +5 -0
- package/dist/server/locales/pt-BR.d.ts.map +1 -0
- package/dist/server/locales/pt-BR.js +202 -0
- package/dist/server/locales/pt-BR.js.map +1 -0
- package/dist/server/locales/vi-VN.d.ts +5 -0
- package/dist/server/locales/vi-VN.d.ts.map +1 -0
- package/dist/server/locales/vi-VN.js +202 -0
- package/dist/server/locales/vi-VN.js.map +1 -0
- package/dist/server/locales/zh-CN.d.ts.map +1 -1
- package/dist/server/locales/zh-CN.js +2 -11
- package/dist/server/locales/zh-CN.js.map +1 -1
- package/dist/server/locales/zh-TW.d.ts +5 -0
- package/dist/server/locales/zh-TW.d.ts.map +1 -0
- package/dist/server/locales/zh-TW.js +202 -0
- package/dist/server/locales/zh-TW.js.map +1 -0
- package/dist/server/providers/change-announcer.d.ts +28 -0
- package/dist/server/providers/change-announcer.d.ts.map +1 -0
- package/dist/server/providers/change-announcer.js +75 -0
- package/dist/server/providers/change-announcer.js.map +1 -0
- package/dist/server/providers/notifications.d.ts +1 -0
- package/dist/server/providers/notifications.d.ts.map +1 -1
- package/dist/server/providers/notifications.js +8 -121
- package/dist/server/providers/notifications.js.map +1 -1
- package/dist/server/providers/projects.d.ts +3 -8
- package/dist/server/providers/projects.d.ts.map +1 -1
- package/dist/server/providers/projects.js +16 -37
- package/dist/server/providers/projects.js.map +1 -1
- package/dist/server/routes/api.d.ts.map +1 -1
- package/dist/server/routes/api.js +5 -8
- package/dist/server/routes/api.js.map +1 -1
- package/dist/server/routes/schemas.d.ts +20 -29
- package/dist/server/routes/schemas.d.ts.map +1 -1
- package/dist/server/routes/schemas.js +395 -290
- package/dist/server/routes/schemas.js.map +1 -1
- package/dist/server/tokens.d.ts +22 -35
- package/dist/server/tokens.d.ts.map +1 -1
- package/dist/server/tokens.js +5 -16
- package/dist/server/tokens.js.map +1 -1
- package/dist/shared/access.d.ts +0 -1
- package/dist/shared/access.d.ts.map +1 -1
- package/dist/shared/access.js +2 -11
- package/dist/shared/access.js.map +1 -1
- package/dist/shared/attachments.d.ts +29 -0
- package/dist/shared/attachments.d.ts.map +1 -1
- package/dist/shared/attachments.js +7 -0
- package/dist/shared/attachments.js.map +1 -1
- package/dist/shared/comments.d.ts +3 -0
- package/dist/shared/comments.d.ts.map +1 -1
- package/dist/shared/comments.js.map +1 -1
- package/dist/shared/invitations.d.ts +1 -1
- package/dist/shared/invitations.d.ts.map +1 -1
- package/dist/shared/issues.d.ts +32 -40
- package/dist/shared/issues.d.ts.map +1 -1
- package/dist/shared/issues.js +5 -0
- package/dist/shared/issues.js.map +1 -1
- package/dist/shared/kinds.d.ts +3 -1
- package/dist/shared/kinds.d.ts.map +1 -1
- package/dist/shared/kinds.js +1 -1
- package/dist/shared/locales/access.en-US.d.ts +0 -1
- package/dist/shared/locales/access.en-US.d.ts.map +1 -1
- package/dist/shared/locales/access.en-US.js +1 -2
- package/dist/shared/locales/access.en-US.js.map +1 -1
- package/dist/shared/locales/access.zh-CN.d.ts.map +1 -1
- package/dist/shared/locales/access.zh-CN.js +1 -2
- package/dist/shared/locales/access.zh-CN.js.map +1 -1
- package/dist/shared/plans.d.ts +29 -13
- package/dist/shared/plans.d.ts.map +1 -1
- package/dist/shared/plans.js +2 -1
- package/dist/shared/plans.js.map +1 -1
- package/dist/shared/projects.d.ts +0 -4
- package/dist/shared/projects.d.ts.map +1 -1
- package/dist/shared/projects.js.map +1 -1
- package/dist/shared/realtime.d.ts +10 -3
- package/dist/shared/realtime.d.ts.map +1 -1
- package/dist/shared/realtime.js +3 -2
- package/dist/shared/realtime.js.map +1 -1
- package/dist/shared/statuses.d.ts +42 -0
- package/dist/shared/statuses.d.ts.map +1 -0
- package/dist/shared/statuses.js +73 -0
- package/dist/shared/statuses.js.map +1 -0
- package/dist/shared/subtasks.d.ts +8 -3
- package/dist/shared/subtasks.d.ts.map +1 -1
- package/package.json +21 -29
- package/skills/nocobase-app-plugin-projects/SKILL.md +38 -57
- package/dist/client/lib/built-in-rule-editors.d.ts +0 -13
- package/dist/client/lib/built-in-rule-editors.d.ts.map +0 -1
- package/dist/client/lib/built-in-rule-editors.js +0 -86
- package/dist/client/lib/built-in-rule-editors.js.map +0 -1
- package/dist/client/lib/built-in-rule-types.d.ts +0 -3
- package/dist/client/lib/built-in-rule-types.d.ts.map +0 -1
- package/dist/client/lib/built-in-rule-types.js +0 -63
- package/dist/client/lib/built-in-rule-types.js.map +0 -1
- package/dist/client/lib/status-rule-types.d.ts +0 -60
- package/dist/client/lib/status-rule-types.d.ts.map +0 -1
- package/dist/client/lib/status-rule-types.js +0 -38
- package/dist/client/lib/status-rule-types.js.map +0 -1
- package/dist/client/lib/workflow-events.d.ts +0 -25
- package/dist/client/lib/workflow-events.d.ts.map +0 -1
- package/dist/client/lib/workflow-events.js +0 -30
- package/dist/client/lib/workflow-events.js.map +0 -1
- package/dist/client/pages/config/workflow-detail.d.ts +0 -10
- package/dist/client/pages/config/workflow-detail.d.ts.map +0 -1
- package/dist/client/pages/config/workflow-detail.js +0 -182
- package/dist/client/pages/config/workflow-detail.js.map +0 -1
- package/dist/client/pages/config/workflows/flow-editor.d.ts +0 -15
- package/dist/client/pages/config/workflows/flow-editor.d.ts.map +0 -1
- package/dist/client/pages/config/workflows/flow-editor.js +0 -76
- package/dist/client/pages/config/workflows/flow-editor.js.map +0 -1
- package/dist/client/pages/config/workflows/status-rules.d.ts +0 -21
- package/dist/client/pages/config/workflows/status-rules.d.ts.map +0 -1
- package/dist/client/pages/config/workflows/status-rules.js +0 -203
- package/dist/client/pages/config/workflows/status-rules.js.map +0 -1
- package/dist/client/pages/config/workflows/transitions-matrix.d.ts +0 -20
- package/dist/client/pages/config/workflows/transitions-matrix.d.ts.map +0 -1
- package/dist/client/pages/config/workflows/transitions-matrix.js +0 -114
- package/dist/client/pages/config/workflows/transitions-matrix.js.map +0 -1
- package/dist/client/pages/config/workflows/use-status-name.d.ts +0 -4
- package/dist/client/pages/config/workflows/use-status-name.d.ts.map +0 -1
- package/dist/client/pages/config/workflows/use-status-name.js +0 -17
- package/dist/client/pages/config/workflows/use-status-name.js.map +0 -1
- package/dist/client/pages/config/workflows/workflow-diagram.d.ts +0 -17
- package/dist/client/pages/config/workflows/workflow-diagram.d.ts.map +0 -1
- package/dist/client/pages/config/workflows/workflow-diagram.js +0 -298
- package/dist/client/pages/config/workflows/workflow-diagram.js.map +0 -1
- package/dist/client/pages/config/workflows/workflow-model.d.ts +0 -157
- package/dist/client/pages/config/workflows/workflow-model.d.ts.map +0 -1
- package/dist/client/pages/config/workflows/workflow-model.js +0 -403
- package/dist/client/pages/config/workflows/workflow-model.js.map +0 -1
- package/dist/client/pages/config/workflows/workflow-views.d.ts +0 -31
- package/dist/client/pages/config/workflows/workflow-views.d.ts.map +0 -1
- package/dist/client/pages/config/workflows/workflow-views.js +0 -76
- package/dist/client/pages/config/workflows/workflow-views.js.map +0 -1
- package/dist/client/pages/config/workflows.d.ts +0 -8
- package/dist/client/pages/config/workflows.d.ts.map +0 -1
- package/dist/client/pages/config/workflows.js +0 -139
- package/dist/client/pages/config/workflows.js.map +0 -1
- package/dist/client/pages/issues/detail/start-dialog.d.ts +0 -20
- package/dist/client/pages/issues/detail/start-dialog.d.ts.map +0 -1
- package/dist/client/pages/issues/detail/start-dialog.js +0 -31
- package/dist/client/pages/issues/detail/start-dialog.js.map +0 -1
- package/dist/client/pages/projects/workflow-select.d.ts +0 -14
- package/dist/client/pages/projects/workflow-select.d.ts.map +0 -1
- package/dist/client/pages/projects/workflow-select.js +0 -34
- package/dist/client/pages/projects/workflow-select.js.map +0 -1
- package/dist/server/domains/approvals/approval.events.d.ts +0 -47
- package/dist/server/domains/approvals/approval.events.d.ts.map +0 -1
- package/dist/server/domains/approvals/approval.events.js +0 -2
- package/dist/server/domains/approvals/approval.events.js.map +0 -1
- package/dist/server/domains/approvals/approval.lifecycle.d.ts +0 -8
- package/dist/server/domains/approvals/approval.lifecycle.d.ts.map +0 -1
- package/dist/server/domains/approvals/approval.lifecycle.js +0 -54
- package/dist/server/domains/approvals/approval.lifecycle.js.map +0 -1
- package/dist/server/domains/approvals/approval.routes.d.ts +0 -10
- package/dist/server/domains/approvals/approval.routes.d.ts.map +0 -1
- package/dist/server/domains/approvals/approval.routes.js +0 -86
- package/dist/server/domains/approvals/approval.routes.js.map +0 -1
- package/dist/server/domains/approvals/approval.service.d.ts +0 -72
- package/dist/server/domains/approvals/approval.service.d.ts.map +0 -1
- package/dist/server/domains/approvals/approval.service.js +0 -261
- package/dist/server/domains/approvals/approval.service.js.map +0 -1
- package/dist/server/domains/approvals/approval.store.d.ts +0 -42
- package/dist/server/domains/approvals/approval.store.d.ts.map +0 -1
- package/dist/server/domains/approvals/approval.store.js +0 -66
- package/dist/server/domains/approvals/approval.store.js.map +0 -1
- package/dist/server/domains/approvals/index.d.ts +0 -4
- package/dist/server/domains/approvals/index.d.ts.map +0 -1
- package/dist/server/domains/approvals/index.js +0 -3
- package/dist/server/domains/approvals/index.js.map +0 -1
- package/dist/server/domains/checklists/checklist.routes.d.ts +0 -9
- package/dist/server/domains/checklists/checklist.routes.d.ts.map +0 -1
- package/dist/server/domains/checklists/checklist.routes.js +0 -62
- package/dist/server/domains/checklists/checklist.routes.js.map +0 -1
- package/dist/server/domains/checklists/checklist.service.d.ts +0 -26
- package/dist/server/domains/checklists/checklist.service.d.ts.map +0 -1
- package/dist/server/domains/checklists/checklist.service.js +0 -80
- package/dist/server/domains/checklists/checklist.service.js.map +0 -1
- package/dist/server/domains/checklists/checklist.store.d.ts +0 -32
- package/dist/server/domains/checklists/checklist.store.d.ts.map +0 -1
- package/dist/server/domains/checklists/checklist.store.js +0 -66
- package/dist/server/domains/checklists/checklist.store.js.map +0 -1
- package/dist/server/domains/checklists/index.d.ts +0 -4
- package/dist/server/domains/checklists/index.d.ts.map +0 -1
- package/dist/server/domains/checklists/index.js +0 -4
- package/dist/server/domains/checklists/index.js.map +0 -1
- package/dist/server/domains/workflows/built-in-rule-types.d.ts +0 -40
- package/dist/server/domains/workflows/built-in-rule-types.d.ts.map +0 -1
- package/dist/server/domains/workflows/built-in-rule-types.js +0 -260
- package/dist/server/domains/workflows/built-in-rule-types.js.map +0 -1
- package/dist/server/domains/workflows/event-types.d.ts +0 -21
- package/dist/server/domains/workflows/event-types.d.ts.map +0 -1
- package/dist/server/domains/workflows/event-types.js +0 -31
- package/dist/server/domains/workflows/event-types.js.map +0 -1
- package/dist/server/domains/workflows/index.d.ts +0 -10
- package/dist/server/domains/workflows/index.d.ts.map +0 -1
- package/dist/server/domains/workflows/index.js +0 -10
- package/dist/server/domains/workflows/index.js.map +0 -1
- package/dist/server/domains/workflows/rule-types.d.ts +0 -125
- package/dist/server/domains/workflows/rule-types.d.ts.map +0 -1
- package/dist/server/domains/workflows/rule-types.js +0 -33
- package/dist/server/domains/workflows/rule-types.js.map +0 -1
- package/dist/server/domains/workflows/templates.d.ts +0 -62
- package/dist/server/domains/workflows/templates.d.ts.map +0 -1
- package/dist/server/domains/workflows/templates.js +0 -63
- package/dist/server/domains/workflows/templates.js.map +0 -1
- package/dist/server/domains/workflows/workflow.diff.d.ts +0 -14
- package/dist/server/domains/workflows/workflow.diff.d.ts.map +0 -1
- package/dist/server/domains/workflows/workflow.diff.js +0 -80
- package/dist/server/domains/workflows/workflow.diff.js.map +0 -1
- package/dist/server/domains/workflows/workflow.events.d.ts +0 -26
- package/dist/server/domains/workflows/workflow.events.d.ts.map +0 -1
- package/dist/server/domains/workflows/workflow.events.js +0 -2
- package/dist/server/domains/workflows/workflow.events.js.map +0 -1
- package/dist/server/domains/workflows/workflow.fire.d.ts +0 -38
- package/dist/server/domains/workflows/workflow.fire.d.ts.map +0 -1
- package/dist/server/domains/workflows/workflow.fire.js +0 -57
- package/dist/server/domains/workflows/workflow.fire.js.map +0 -1
- package/dist/server/domains/workflows/workflow.registry.d.ts +0 -27
- package/dist/server/domains/workflows/workflow.registry.d.ts.map +0 -1
- package/dist/server/domains/workflows/workflow.registry.js +0 -130
- package/dist/server/domains/workflows/workflow.registry.js.map +0 -1
- package/dist/server/domains/workflows/workflow.routes.d.ts +0 -6
- package/dist/server/domains/workflows/workflow.routes.d.ts.map +0 -1
- package/dist/server/domains/workflows/workflow.routes.js +0 -148
- package/dist/server/domains/workflows/workflow.routes.js.map +0 -1
- package/dist/server/domains/workflows/workflow.rules.d.ts +0 -14
- package/dist/server/domains/workflows/workflow.rules.d.ts.map +0 -1
- package/dist/server/domains/workflows/workflow.rules.js +0 -190
- package/dist/server/domains/workflows/workflow.rules.js.map +0 -1
- package/dist/server/domains/workflows/workflow.service.d.ts +0 -71
- package/dist/server/domains/workflows/workflow.service.d.ts.map +0 -1
- package/dist/server/domains/workflows/workflow.service.js +0 -365
- package/dist/server/domains/workflows/workflow.service.js.map +0 -1
- package/dist/server/domains/workflows/workflow.store.d.ts +0 -33
- package/dist/server/domains/workflows/workflow.store.d.ts.map +0 -1
- package/dist/server/domains/workflows/workflow.store.js +0 -148
- package/dist/server/domains/workflows/workflow.store.js.map +0 -1
- package/dist/shared/approvals.d.ts +0 -37
- package/dist/shared/approvals.d.ts.map +0 -1
- package/dist/shared/approvals.js +0 -4
- package/dist/shared/approvals.js.map +0 -1
- package/dist/shared/checklists.d.ts +0 -27
- package/dist/shared/checklists.d.ts.map +0 -1
- package/dist/shared/checklists.js +0 -7
- package/dist/shared/checklists.js.map +0 -1
- package/dist/shared/workflows.d.ts +0 -267
- package/dist/shared/workflows.d.ts.map +0 -1
- package/dist/shared/workflows.js +0 -149
- package/dist/shared/workflows.js.map +0 -1
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Status rule types: the ones other plugins contribute (`projectsStatusRulesToken`) and this plugin's own
|
|
3
|
-
* (`built-in-rule-types.ts`), which follow the same contract and are put in front of the contributed ones
|
|
4
|
-
* (`withBuiltInTypes`). A type names itself, checks its settings, says what it does in a sentence, and
|
|
5
|
-
* acts once an issue entered a status carrying it, inside the transaction of the move: what it cannot do there is a
|
|
6
|
-
* skip, not a refusal.
|
|
7
|
-
*
|
|
8
|
-
* A type may also hold an entry condition (`canEnter`): asked inside the move's transaction before the issue enters a
|
|
9
|
-
* status carrying the rule, it lets the move through (null) or refuses it with 400 (`FAILED_PRECONDITION`) and its own code. Every move asks
|
|
10
|
-
* it, whoever moves: a person, an agent, a plan's row, an approved request when it is applied, and the system moving
|
|
11
|
-
* an issue on a workflow event (`StatusRuleCheck.event` says which). A refusal of an event move does not fail the
|
|
12
|
-
* event: the issue stays, `auto_move_skipped` records the code, and the firer hears it as `refused`. A condition that
|
|
13
|
-
* should let the system through says so itself (`actor.type === 'system'`). Nothing is asked when the rule's plugin is
|
|
14
|
-
* gone. A type may likewise hold an exit condition (`canLeave`), asked before an issue leaves a status carrying the
|
|
15
|
-
* rule (the checklist waits for its required items this way).
|
|
16
|
-
*
|
|
17
|
-
* - A type is looked up on each use, so a plugin may add it after this plugin's services are created.
|
|
18
|
-
* - A definition may keep a rule whose type is gone (its plugin was removed): saving leaves it as it was, entering the
|
|
19
|
-
* status skips it (`unavailable`), and the editor shows it as unavailable.
|
|
20
|
-
* - Each outcome is recorded on the issue (`stage_action_applied`, `stage_action_skipped` with `reason`, or
|
|
21
|
-
* `stage_action_failed` when it throws); what the issue's owner should hear about is the type's to tell, through
|
|
22
|
-
* the notice rules (`projectsNoticeRulesToken`).
|
|
23
|
-
*/
|
|
24
|
-
import type { Executor, Issue } from '../../../shared/issues.js';
|
|
25
|
-
import type { StatusCategory } from '../../../shared/issues.js';
|
|
26
|
-
import { type WorkflowValidationIssue } from '../../../shared/workflows.js';
|
|
27
|
-
import type { Actor } from '../../kernel/actor.js';
|
|
28
|
-
import type { Tx } from '../../kernel/tx.js';
|
|
29
|
-
import type { RuleConfig } from '../../lifecycle/index.js';
|
|
30
|
-
/** The status an issue entered, as a rule sees it. */
|
|
31
|
-
export interface EnteredStatus {
|
|
32
|
-
readonly key: string;
|
|
33
|
-
/** As the workflow names it. */
|
|
34
|
-
readonly name: string;
|
|
35
|
-
readonly category: StatusCategory;
|
|
36
|
-
}
|
|
37
|
-
/** What a rule gets when an issue entered its status. */
|
|
38
|
-
export interface StatusRuleEntry {
|
|
39
|
-
/** The move's transaction: what the rule writes commits with the move. Its events are kept only when it succeeds. */
|
|
40
|
-
readonly tx: Tx;
|
|
41
|
-
/** The issue as it is now, in the status it entered. */
|
|
42
|
-
readonly issue: Issue;
|
|
43
|
-
/** The status it came from. */
|
|
44
|
-
readonly from: string;
|
|
45
|
-
readonly status: EnteredStatus;
|
|
46
|
-
/** Who moved it: a person, the system, or a principal of another kind. */
|
|
47
|
-
readonly actor: Actor;
|
|
48
|
-
/**
|
|
49
|
-
* Makes `executor` the issue's executor, recorded as `executor_changed` with `trigger: 'stageEntered'`; the change
|
|
50
|
-
* reaches the executor's kind like any other once the move is announced. Returns the issue as it is then.
|
|
51
|
-
*/
|
|
52
|
-
setExecutor(executor: Executor): Promise<Issue>;
|
|
53
|
-
}
|
|
54
|
-
/** What an entry or exit condition is asked, before the issue moves. */
|
|
55
|
-
export interface StatusRuleCheck {
|
|
56
|
-
/** The move's transaction; read only. */
|
|
57
|
-
readonly tx: Tx;
|
|
58
|
-
/** The issue as it is before the move. */
|
|
59
|
-
readonly issue: Issue;
|
|
60
|
-
/** The status it would leave: the one carrying the rule, for an exit condition. */
|
|
61
|
-
readonly from: string;
|
|
62
|
-
/** The status it would enter. */
|
|
63
|
-
readonly status: EnteredStatus;
|
|
64
|
-
/** Who moves it: a person, the system, or a principal of another kind. */
|
|
65
|
-
readonly actor: Actor;
|
|
66
|
-
/** The workflow event the move answers, or null for an ordinary move. */
|
|
67
|
-
readonly event: string | null;
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Why an entry condition refuses a move: reaches the caller as 400 with `code` (upper snake case, prefixed by the
|
|
71
|
-
* plugin so it cannot be mistaken for this plugin's own, such as `ACME_PR_NOT_MERGED`), the message, and `details`
|
|
72
|
-
* plus `rule` (the type) in the error's details.
|
|
73
|
-
*/
|
|
74
|
-
export interface StatusRuleRefusal {
|
|
75
|
-
readonly code: string;
|
|
76
|
-
readonly message: string;
|
|
77
|
-
readonly details?: Readonly<Record<string, unknown>>;
|
|
78
|
-
}
|
|
79
|
-
/** What a rule did; `undefined` counts as applied. `details` are recorded with it. */
|
|
80
|
-
export type StatusRuleOutcome = undefined | {
|
|
81
|
-
readonly status: 'applied';
|
|
82
|
-
readonly details?: Readonly<Record<string, unknown>>;
|
|
83
|
-
} | {
|
|
84
|
-
readonly status: 'skipped';
|
|
85
|
-
readonly reason: string;
|
|
86
|
-
readonly details?: Readonly<Record<string, unknown>>;
|
|
87
|
-
};
|
|
88
|
-
/** A rule in a sentence, for a workflow's change summary. */
|
|
89
|
-
export interface StatusRuleDescription {
|
|
90
|
-
/** English, such as "Runs Reviewer with an instruction." */
|
|
91
|
-
readonly summary: string;
|
|
92
|
-
/** Entering the status wakes someone without anybody confirming it: a change summary points it out. */
|
|
93
|
-
readonly attention?: boolean;
|
|
94
|
-
}
|
|
95
|
-
export interface StatusRuleType {
|
|
96
|
-
/** `^[a-z][A-Za-z0-9]{1,63}$`; a contributed type cannot take a built-in type's key. */
|
|
97
|
-
readonly type: string;
|
|
98
|
-
/** The categories of status it may be put on; every category when left out. */
|
|
99
|
-
readonly categories?: readonly StatusCategory[];
|
|
100
|
-
/** Problems with its settings, at paths relative to them (`agentId`). */
|
|
101
|
-
validate?(config: RuleConfig): readonly WorkflowValidationIssue[];
|
|
102
|
-
describe?(config: RuleConfig): StatusRuleDescription;
|
|
103
|
-
/** An entry condition: null lets the issue enter a status carrying the rule, a refusal stops the move (400). */
|
|
104
|
-
canEnter?(check: StatusRuleCheck, config: RuleConfig): Promise<StatusRuleRefusal | null>;
|
|
105
|
-
/** An exit condition: null lets the issue leave a status carrying the rule, a refusal stops the move (400). */
|
|
106
|
-
canLeave?(check: StatusRuleCheck, config: RuleConfig): Promise<StatusRuleRefusal | null>;
|
|
107
|
-
/**
|
|
108
|
-
* Runs after an issue entered a status carrying the rule; a failure never undoes the move. Left out by a type that
|
|
109
|
-
* is only a condition.
|
|
110
|
-
*/
|
|
111
|
-
entered?(entry: StatusRuleEntry, config: RuleConfig): Promise<StatusRuleOutcome>;
|
|
112
|
-
}
|
|
113
|
-
export interface StatusRuleTypes {
|
|
114
|
-
/** Adds a contributed type; returns what removes it. Throws when the key is taken (or built in) or malformed. */
|
|
115
|
-
add(type: StatusRuleType): () => void;
|
|
116
|
-
get(type: string): StatusRuleType | undefined;
|
|
117
|
-
list(): readonly StatusRuleType[];
|
|
118
|
-
}
|
|
119
|
-
export declare function createStatusRuleTypes(): StatusRuleTypes;
|
|
120
|
-
/**
|
|
121
|
-
* `types` with this plugin's own types in front: what the workflows domain looks every rule up in. `add` goes to
|
|
122
|
-
* `types`, so a plugin contributing through the view is the same as contributing through `types`.
|
|
123
|
-
*/
|
|
124
|
-
export declare function withBuiltInTypes(types: StatusRuleTypes, builtIn: readonly StatusRuleType[]): StatusRuleTypes;
|
|
125
|
-
//# sourceMappingURL=rule-types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rule-types.d.ts","sourceRoot":"","sources":["../../../../server/domains/workflows/rule-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { STATUS_RULE_TYPES, STATUS_RULE_TYPE_PATTERN, } from '../../../shared/workflows.js';
|
|
2
|
-
export function createStatusRuleTypes() {
|
|
3
|
-
const types = new Map();
|
|
4
|
-
return {
|
|
5
|
-
add(type) {
|
|
6
|
-
if (!STATUS_RULE_TYPE_PATTERN.test(type.type))
|
|
7
|
-
throw new TypeError(`Status rule type ${type.type} must match ${String(STATUS_RULE_TYPE_PATTERN)}.`);
|
|
8
|
-
if (STATUS_RULE_TYPES.includes(type.type) ||
|
|
9
|
-
types.has(type.type))
|
|
10
|
-
throw new TypeError(`Status rule type ${type.type} is registered already.`);
|
|
11
|
-
types.set(type.type, type);
|
|
12
|
-
return () => {
|
|
13
|
-
if (types.get(type.type) === type)
|
|
14
|
-
types.delete(type.type);
|
|
15
|
-
};
|
|
16
|
-
},
|
|
17
|
-
get: (type) => types.get(type),
|
|
18
|
-
list: () => [...types.values()],
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* `types` with this plugin's own types in front: what the workflows domain looks every rule up in. `add` goes to
|
|
23
|
-
* `types`, so a plugin contributing through the view is the same as contributing through `types`.
|
|
24
|
-
*/
|
|
25
|
-
export function withBuiltInTypes(types, builtIn) {
|
|
26
|
-
const own = new Map(builtIn.map((type) => [type.type, type]));
|
|
27
|
-
return {
|
|
28
|
-
add: (type) => types.add(type),
|
|
29
|
-
get: (type) => own.get(type) ?? types.get(type),
|
|
30
|
-
list: () => [...own.values(), ...types.list()],
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=rule-types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rule-types.js","sourceRoot":"","sources":["../../../../server/domains/workflows/rule-types.ts"],"names":[],"mappings":"AAyBA,OAAO,EACL,iBAAiB,EACjB,wBAAwB,GAEzB,MAAM,8BAA8B,CAAC;AAkHtC,MAAM,UAAU,qBAAqB;IACnC,MAAM,KAAK,GAAG,IAAI,GAAG,EAA0B,CAAC;IAChD,OAAO;QACL,GAAG,CAAC,IAAI;YACN,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC3C,MAAM,IAAI,SAAS,CACjB,oBAAoB,IAAI,CAAC,IAAI,eAAe,MAAM,CAAC,wBAAwB,CAAC,GAAG,CAChF,CAAC;YACJ,IACG,iBAAuC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC5D,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;gBAEpB,MAAM,IAAI,SAAS,CACjB,oBAAoB,IAAI,CAAC,IAAI,yBAAyB,CACvD,CAAC;YACJ,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC3B,OAAO,GAAG,EAAE;gBACV,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI;oBAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7D,CAAC,CAAC;QACJ,CAAC;QACD,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;QAC9B,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;KAChC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAAsB,EACtB,OAAkC;IAElC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9D,OAAO;QACL,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;QAC9B,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;QAC/C,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;KAC/C,CAAC;AACJ,CAAC"}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Workflow templates other plugins contribute (`projectsWorkflowTemplatesToken`): built-in workflows this plugin
|
|
3
|
-
* cannot spell out itself, because they name another plugin's kinds or rule types (an agent runtime's agent moves and
|
|
4
|
-
* `runAgent`, say). The plugin itself ships no workflow: without one, every project uses the built-in statuses.
|
|
5
|
-
*
|
|
6
|
-
* A template is installed once (`WorkflowService.installTemplate`): it becomes a workflow marked with the template's
|
|
7
|
-
* key, validated like any other, and the default workflow when it says `makeDefault` and none is the default yet.
|
|
8
|
-
* People may then change, rename or delete it like any workflow; a deleted one is not installed again, because the
|
|
9
|
-
* settings remember every template installed.
|
|
10
|
-
*
|
|
11
|
-
* The plugin installs templates in the background, from its `boot()` on: those added before then at once, the others as
|
|
12
|
-
* they are added. `installed()` waits for them; the plugin awaits it in its `ready()` phase, so an application that
|
|
13
|
-
* starts the usual way serves no request before the templates its plugins added while booting are workflows.
|
|
14
|
-
*/
|
|
15
|
-
import type { KindTitle } from '../../../shared/kinds.js';
|
|
16
|
-
import type { WorkflowDefinition } from '../../../shared/workflows.js';
|
|
17
|
-
/** A template's translatable text: stored as `defaultValue`, shown as `key` in `ns` while unchanged. */
|
|
18
|
-
export interface WorkflowTemplateText {
|
|
19
|
-
readonly key: string;
|
|
20
|
-
readonly ns: string;
|
|
21
|
-
readonly defaultValue: string;
|
|
22
|
-
}
|
|
23
|
-
export interface WorkflowTemplate {
|
|
24
|
-
/** The workflow's `builtInKey`: `^[a-z][A-Za-z0-9]{1,63}$`, unique across templates. */
|
|
25
|
-
readonly key: string;
|
|
26
|
-
/** Its stored name, in English; unique among workflows. */
|
|
27
|
-
readonly name: string;
|
|
28
|
-
/** Its name in the reader's language while nobody renamed it. */
|
|
29
|
-
readonly title?: KindTitle;
|
|
30
|
-
/**
|
|
31
|
-
* Its stored description: a plain string, or an i18n key in the contributing plugin's namespace whose
|
|
32
|
-
* `defaultValue` (English) is stored and translated for the reader while nobody changed it.
|
|
33
|
-
*/
|
|
34
|
-
readonly description?: string | WorkflowTemplateText;
|
|
35
|
-
readonly definition: WorkflowDefinition;
|
|
36
|
-
/**
|
|
37
|
-
* Installed as the default workflow when no workflow is the default at that moment (and the issues on the built-in
|
|
38
|
-
* statuses all have their status in it). Afterwards the administrators choose the default.
|
|
39
|
-
*/
|
|
40
|
-
readonly makeDefault?: boolean;
|
|
41
|
-
}
|
|
42
|
-
/** Installs one template; what it returns or throws is its own business (the plugin logs a failure). */
|
|
43
|
-
export type WorkflowTemplateInstaller = (template: WorkflowTemplate) => Promise<unknown>;
|
|
44
|
-
export interface WorkflowTemplates {
|
|
45
|
-
/** Adds a template; returns what removes it (an installed workflow stays). */
|
|
46
|
-
add(template: WorkflowTemplate): () => void;
|
|
47
|
-
get(key: string): WorkflowTemplate | undefined;
|
|
48
|
-
list(): readonly WorkflowTemplate[];
|
|
49
|
-
/**
|
|
50
|
-
* Resolves once every template added so far has been installed, or failed to be. Never rejects. A template added
|
|
51
|
-
* before the plugin booted waits for it, so call this after the plugins' `boot()` (from a provider's `boot()`
|
|
52
|
-
* registered after the plugins, or from `start()`/`ready()`).
|
|
53
|
-
*/
|
|
54
|
-
installed(): Promise<void>;
|
|
55
|
-
/**
|
|
56
|
-
* Installs each template with `installer`: those added before now, then each one as it is added. The plugin calls it
|
|
57
|
-
* once, at boot; returns what stops it.
|
|
58
|
-
*/
|
|
59
|
-
installWith(installer: WorkflowTemplateInstaller): () => void;
|
|
60
|
-
}
|
|
61
|
-
export declare function createWorkflowTemplates(): WorkflowTemplates;
|
|
62
|
-
//# sourceMappingURL=templates.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../../../server/domains/workflows/templates.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,wGAAwG;AACxG,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAC/B,wFAAwF;IACxF,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,iEAAiE;IACjE,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,oBAAoB,CAAC;IACrD,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;IACxC;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,wGAAwG;AACxG,MAAM,MAAM,yBAAyB,GAAG,CACtC,QAAQ,EAAE,gBAAgB,KACvB,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB,MAAM,WAAW,iBAAiB;IAChC,8EAA8E;IAC9E,GAAG,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,IAAI,CAAC;IAC5C,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAAC;IAC/C,IAAI,IAAI,SAAS,gBAAgB,EAAE,CAAC;IACpC;;;;OAIG;IACH,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B;;;OAGG;IACH,WAAW,CAAC,SAAS,EAAE,yBAAyB,GAAG,MAAM,IAAI,CAAC;CAC/D;AAMD,wBAAgB,uBAAuB,IAAI,iBAAiB,CA8D3D"}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
const KEY = /^[a-z][A-Za-z0-9]{1,63}$/u;
|
|
2
|
-
const ignore = () => undefined;
|
|
3
|
-
export function createWorkflowTemplates() {
|
|
4
|
-
const templates = new Map();
|
|
5
|
-
/** Each template's installation, settled once it is a workflow (or failed to become one). */
|
|
6
|
-
const installations = new Map();
|
|
7
|
-
/** Templates added while nothing installs them, with what settles their installation. */
|
|
8
|
-
const waiting = new Map();
|
|
9
|
-
let installer;
|
|
10
|
-
const run = (template) => {
|
|
11
|
-
const install = installer;
|
|
12
|
-
if (!install)
|
|
13
|
-
return Promise.resolve();
|
|
14
|
-
try {
|
|
15
|
-
return install(template).then(ignore, ignore);
|
|
16
|
-
}
|
|
17
|
-
catch {
|
|
18
|
-
return Promise.resolve();
|
|
19
|
-
}
|
|
20
|
-
};
|
|
21
|
-
return {
|
|
22
|
-
add(template) {
|
|
23
|
-
if (!KEY.test(template.key))
|
|
24
|
-
throw new TypeError(`Workflow template ${template.key} must match ${String(KEY)}.`);
|
|
25
|
-
if (templates.has(template.key))
|
|
26
|
-
throw new TypeError(`Workflow template ${template.key} is registered already.`);
|
|
27
|
-
templates.set(template.key, template);
|
|
28
|
-
installations.set(template.key, installer
|
|
29
|
-
? run(template)
|
|
30
|
-
: new Promise((resolve) => {
|
|
31
|
-
waiting.set(template.key, resolve);
|
|
32
|
-
}));
|
|
33
|
-
return () => {
|
|
34
|
-
if (templates.get(template.key) !== template)
|
|
35
|
-
return;
|
|
36
|
-
templates.delete(template.key);
|
|
37
|
-
waiting.get(template.key)?.();
|
|
38
|
-
waiting.delete(template.key);
|
|
39
|
-
};
|
|
40
|
-
},
|
|
41
|
-
get: (key) => templates.get(key),
|
|
42
|
-
list: () => [...templates.values()],
|
|
43
|
-
async installed() {
|
|
44
|
-
await Promise.all(installations.values());
|
|
45
|
-
},
|
|
46
|
-
installWith(next) {
|
|
47
|
-
installer = next;
|
|
48
|
-
for (const [key, settle] of [...waiting]) {
|
|
49
|
-
waiting.delete(key);
|
|
50
|
-
const template = templates.get(key);
|
|
51
|
-
if (template)
|
|
52
|
-
void run(template).then(settle);
|
|
53
|
-
else
|
|
54
|
-
settle();
|
|
55
|
-
}
|
|
56
|
-
return () => {
|
|
57
|
-
if (installer === next)
|
|
58
|
-
installer = undefined;
|
|
59
|
-
};
|
|
60
|
-
},
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
//# sourceMappingURL=templates.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../../server/domains/workflows/templates.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* What a new definition changes in a workflow's status rules, for the editor to show before it saves: rules added and
|
|
3
|
-
* removed per status (a changed rule is one removed and one added), each in a sentence, and the rules that wake
|
|
4
|
-
* someone on entering their status without anybody confirming it, which the editor points out. Pure.
|
|
5
|
-
*
|
|
6
|
-
* Each rule is described by its type (`StatusRuleType.describe`, the built-in types' included), and a rule whose type
|
|
7
|
-
* is gone is listed as unavailable.
|
|
8
|
-
*/
|
|
9
|
-
import type { WorkflowDefinition, WorkflowPreview, WorkflowStatusRule } from '../../../shared/workflows.js';
|
|
10
|
-
import type { StatusRuleDescription, StatusRuleTypes } from './rule-types.js';
|
|
11
|
-
/** A rule in a sentence, or null when its type is unavailable. */
|
|
12
|
-
export declare function describeRule(rule: WorkflowStatusRule, types: StatusRuleTypes | undefined): StatusRuleDescription | null;
|
|
13
|
-
export declare function previewRules(base: WorkflowDefinition, next: WorkflowDefinition, types: StatusRuleTypes | undefined): WorkflowPreview;
|
|
14
|
-
//# sourceMappingURL=workflow.diff.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.diff.d.ts","sourceRoot":"","sources":["../../../../server/domains/workflows/workflow.diff.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EACV,kBAAkB,EAClB,eAAe,EAEf,kBAAkB,EACnB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAe9E,kEAAkE;AAClE,wBAAgB,YAAY,CAC1B,IAAI,EAAE,kBAAkB,EACxB,KAAK,EAAE,eAAe,GAAG,SAAS,GACjC,qBAAqB,GAAG,IAAI,CAS9B;AAoBD,wBAAgB,YAAY,CAC1B,IAAI,EAAE,kBAAkB,EACxB,IAAI,EAAE,kBAAkB,EACxB,KAAK,EAAE,eAAe,GAAG,SAAS,GACjC,eAAe,CAkDjB"}
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
function canonical(value) {
|
|
2
|
-
if (Array.isArray(value))
|
|
3
|
-
return `[${value.map(canonical).join(',')}]`;
|
|
4
|
-
if (value && typeof value === 'object') {
|
|
5
|
-
const record = value;
|
|
6
|
-
return `{${Object.keys(record)
|
|
7
|
-
.filter((key) => record[key] !== undefined)
|
|
8
|
-
.sort()
|
|
9
|
-
.map((key) => `${JSON.stringify(key)}:${canonical(record[key])}`)
|
|
10
|
-
.join(',')}}`;
|
|
11
|
-
}
|
|
12
|
-
return JSON.stringify(value ?? null);
|
|
13
|
-
}
|
|
14
|
-
/** A rule in a sentence, or null when its type is unavailable. */
|
|
15
|
-
export function describeRule(rule, types) {
|
|
16
|
-
const type = types?.get(rule.type);
|
|
17
|
-
if (!type)
|
|
18
|
-
return null;
|
|
19
|
-
const config = ('config' in rule ? rule.config : undefined) ?? {};
|
|
20
|
-
return (type.describe?.(config) ?? {
|
|
21
|
-
summary: `Runs the ${rule.type} rule.`,
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
/** Rules of `a` not matched one for one in `b`. */
|
|
25
|
-
function missingFrom(a, b) {
|
|
26
|
-
const pool = b.map(canonical);
|
|
27
|
-
const missing = [];
|
|
28
|
-
for (const rule of a) {
|
|
29
|
-
const index = pool.indexOf(canonical(rule));
|
|
30
|
-
if (index >= 0)
|
|
31
|
-
pool.splice(index, 1);
|
|
32
|
-
else
|
|
33
|
-
missing.push(rule);
|
|
34
|
-
}
|
|
35
|
-
return missing;
|
|
36
|
-
}
|
|
37
|
-
const rulesByStatus = (definition) => new Map(definition.states.map((state) => [state.key, state.rules ?? []]));
|
|
38
|
-
export function previewRules(base, next, types) {
|
|
39
|
-
const before = rulesByStatus(base);
|
|
40
|
-
const after = rulesByStatus(next);
|
|
41
|
-
const keys = [
|
|
42
|
-
...next.states.map((state) => state.key),
|
|
43
|
-
...base.states.map((state) => state.key).filter((key) => !after.has(key)),
|
|
44
|
-
];
|
|
45
|
-
const change = (statusKey, kind, rule) => {
|
|
46
|
-
const described = describeRule(rule, types);
|
|
47
|
-
return {
|
|
48
|
-
statusKey,
|
|
49
|
-
change: kind,
|
|
50
|
-
rule,
|
|
51
|
-
available: described !== null,
|
|
52
|
-
summary: described?.summary ?? null,
|
|
53
|
-
attention: described?.attention ?? false,
|
|
54
|
-
};
|
|
55
|
-
};
|
|
56
|
-
const rules = keys.flatMap((statusKey) => {
|
|
57
|
-
const old = before.get(statusKey) ?? [];
|
|
58
|
-
const now = after.get(statusKey) ?? [];
|
|
59
|
-
return [
|
|
60
|
-
...missingFrom(old, now).map((rule) => change(statusKey, 'removed', rule)),
|
|
61
|
-
...missingFrom(now, old).map((rule) => change(statusKey, 'added', rule)),
|
|
62
|
-
];
|
|
63
|
-
});
|
|
64
|
-
const attention = next.states.flatMap((state) => (state.rules ?? []).flatMap((rule) => {
|
|
65
|
-
const described = describeRule(rule, types);
|
|
66
|
-
if (!described?.attention)
|
|
67
|
-
return [];
|
|
68
|
-
const had = (before.get(state.key) ?? []).some((old) => canonical(old) === canonical(rule));
|
|
69
|
-
return [
|
|
70
|
-
{
|
|
71
|
-
statusKey: state.key,
|
|
72
|
-
rule,
|
|
73
|
-
summary: described.summary,
|
|
74
|
-
isNew: !had,
|
|
75
|
-
},
|
|
76
|
-
];
|
|
77
|
-
}));
|
|
78
|
-
return { rules, attention };
|
|
79
|
-
}
|
|
80
|
-
//# sourceMappingURL=workflow.diff.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.diff.js","sourceRoot":"","sources":["../../../../server/domains/workflows/workflow.diff.ts"],"names":[],"mappings":"AAgBA,SAAS,SAAS,CAAC,KAAc;IAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IACvE,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,KAAgC,CAAC;QAChD,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;aAC3B,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC;aAC1C,IAAI,EAAE;aACN,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;aAChE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IAClB,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,YAAY,CAC1B,IAAwB,EACxB,KAAkC;IAElC,MAAM,IAAI,GAAG,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,MAAM,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAClE,OAAO,CACL,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI;QACzB,OAAO,EAAE,YAAY,IAAI,CAAC,IAAI,QAAQ;KACvC,CACF,CAAC;AACJ,CAAC;AAED,mDAAmD;AACnD,SAAS,WAAW,CAClB,CAAgC,EAChC,CAAgC;IAEhC,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC9B,MAAM,OAAO,GAAyB,EAAE,CAAC;IACzC,KAAK,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5C,IAAI,KAAK,IAAI,CAAC;YAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;;YACjC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,aAAa,GAAG,CAAC,UAA8B,EAAE,EAAE,CACvD,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAE5E,MAAM,UAAU,YAAY,CAC1B,IAAwB,EACxB,IAAwB,EACxB,KAAkC;IAElC,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG;QACX,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;QACxC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;KAC1E,CAAC;IACF,MAAM,MAAM,GAAG,CACb,SAAiB,EACjB,IAAkC,EAClC,IAAwB,EACJ,EAAE;QACtB,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC5C,OAAO;YACL,SAAS;YACT,MAAM,EAAE,IAAI;YACZ,IAAI;YACJ,SAAS,EAAE,SAAS,KAAK,IAAI;YAC7B,OAAO,EAAE,SAAS,EAAE,OAAO,IAAI,IAAI;YACnC,SAAS,EAAE,SAAS,EAAE,SAAS,IAAI,KAAK;SACzC,CAAC;IACJ,CAAC,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;QACvC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACvC,OAAO;YACL,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACpC,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CACnC;YACD,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;SACzE,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAC9C,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACnC,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,SAAS,EAAE,SAAS;YAAE,OAAO,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAC5C,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,IAAI,CAAC,CAC5C,CAAC;QACF,OAAO;YACL;gBACE,SAAS,EAAE,KAAK,CAAC,GAAG;gBACpB,IAAI;gBACJ,OAAO,EAAE,SAAS,CAAC,OAAO;gBAC1B,KAAK,EAAE,CAAC,GAAG;aACZ;SACF,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAC9B,CAAC"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import type { RuleMessage } from '../../../shared/workflows.js';
|
|
2
|
-
declare module '../../kernel/events.js' {
|
|
3
|
-
interface DomainEventMap {
|
|
4
|
-
/**
|
|
5
|
-
* A workflow changed, was created, deleted or made the default, or a project switched to it (null: the default):
|
|
6
|
-
* the statuses and moves of its issues may be different now.
|
|
7
|
-
*/
|
|
8
|
-
'workflow.changed': {
|
|
9
|
-
readonly workflowId: string | null;
|
|
10
|
-
};
|
|
11
|
-
/** An issue entered a status whose workflow tells its owner (`notifyOwner`). */
|
|
12
|
-
'workflow.ownerNotified': {
|
|
13
|
-
readonly issueId: string;
|
|
14
|
-
readonly identifier: string;
|
|
15
|
-
readonly title: string;
|
|
16
|
-
readonly ownerUserId: string;
|
|
17
|
-
readonly statusKey: string;
|
|
18
|
-
/** As the workflow names it; a built-in status with its default name is translated instead. */
|
|
19
|
-
readonly statusName: string;
|
|
20
|
-
/** Plain text, or a key the reader's side translates (`LocalizedMessage`). */
|
|
21
|
-
readonly message: RuleMessage | null;
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
export {};
|
|
26
|
-
//# sourceMappingURL=workflow.events.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.events.d.ts","sourceRoot":"","sources":["../../../../server/domains/workflows/workflow.events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,QAAQ,wBAAwB,CAAC;IACtC,UAAU,cAAc;QACtB;;;WAGG;QACH,kBAAkB,EAAE;YAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,CAAC;QAC3D,gFAAgF;QAChF,wBAAwB,EAAE;YACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;YACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;YAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;YACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;YAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;YAC3B,+FAA+F;YAC/F,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;YAC5B,8EAA8E;YAC9E,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;SACtC,CAAC;KACH;CACF;AAED,OAAO,EAAE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.events.js","sourceRoot":"","sources":["../../../../server/domains/workflows/workflow.events.ts"],"names":[],"mappings":""}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import type { Actor } from '../../kernel/actor.js';
|
|
2
|
-
import type { Tx, TxRunner } from '../../kernel/tx.js';
|
|
3
|
-
import type { EventMove, EventTarget, IssueService } from '../issues/index.js';
|
|
4
|
-
import type { WorkflowEventTypes } from './event-types.js';
|
|
5
|
-
export declare const EVENT_NOTE_MAX = 200;
|
|
6
|
-
export declare const EVENT_BATCH_MAX = 500;
|
|
7
|
-
export interface WorkflowEventFiring {
|
|
8
|
-
/** A registered, contributed event's key. */
|
|
9
|
-
readonly event: string;
|
|
10
|
-
/** The issues it happened to, by id or identifier, each once; at most `EVENT_BATCH_MAX`. */
|
|
11
|
-
readonly issueIds: readonly string[];
|
|
12
|
-
/** Whose action the event reports (the person who merged, say), named by the activity; the system when left out. */
|
|
13
|
-
readonly actor?: Actor;
|
|
14
|
-
/** A short phrase shown with the move, as it is, at most `EVENT_NOTE_MAX` characters. */
|
|
15
|
-
readonly note?: string;
|
|
16
|
-
/** Kept with each activity, opaque to this plugin. */
|
|
17
|
-
readonly details?: Readonly<Record<string, unknown>>;
|
|
18
|
-
}
|
|
19
|
-
export type WorkflowEventMove = EventMove;
|
|
20
|
-
export type WorkflowEventTarget = EventTarget;
|
|
21
|
-
export interface WorkflowEventService {
|
|
22
|
-
/** Where other plugins register their events (`projectsWorkflowEventsToken`). */
|
|
23
|
-
readonly types: WorkflowEventTypes;
|
|
24
|
-
/** One result per issue, in the order given. 400 `INVALID_EVENT_FIRING` for a bad batch or note. */
|
|
25
|
-
fire(firing: WorkflowEventFiring, tx?: Tx): Promise<WorkflowEventMove[]>;
|
|
26
|
-
/**
|
|
27
|
-
* Where firing the event would take one issue (by id or identifier), without moving it: for a confirmation that
|
|
28
|
-
* says what an action will do. Read on `conn` when given, else outside any transaction. Entry conditions are not
|
|
29
|
-
* checked.
|
|
30
|
-
*/
|
|
31
|
-
target(event: string, issueId: string, conn?: Tx['conn']): Promise<WorkflowEventTarget>;
|
|
32
|
-
}
|
|
33
|
-
export declare function createWorkflowEventService(deps: {
|
|
34
|
-
readonly tx: TxRunner;
|
|
35
|
-
readonly types: WorkflowEventTypes;
|
|
36
|
-
readonly issues: () => Pick<IssueService, 'fireEvent' | 'eventTarget'>;
|
|
37
|
-
}): WorkflowEventService;
|
|
38
|
-
//# sourceMappingURL=workflow.fire.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.fire.d.ts","sourceRoot":"","sources":["../../../../server/domains/workflows/workflow.fire.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,eAAO,MAAM,cAAc,MAAM,CAAC;AAClC,eAAO,MAAM,eAAe,MAAM,CAAC;AAEnC,MAAM,WAAW,mBAAmB;IAClC,6CAA6C;IAC7C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,4FAA4F;IAC5F,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,oHAAoH;IACpH,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IACvB,yFAAyF;IACzF,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,sDAAsD;IACtD,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACtD;AAED,MAAM,MAAM,iBAAiB,GAAG,SAAS,CAAC;AAC1C,MAAM,MAAM,mBAAmB,GAAG,WAAW,CAAC;AAE9C,MAAM,WAAW,oBAAoB;IACnC,iFAAiF;IACjF,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC;IACnC,oGAAoG;IACpG,IAAI,CAAC,MAAM,EAAE,mBAAmB,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACzE;;;;OAIG;IACH,MAAM,CACJ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAChB,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACjC;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE;IAC/C,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,YAAY,EAAE,WAAW,GAAG,aAAa,CAAC,CAAC;CACxE,GAAG,oBAAoB,CA6CvB"}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Firing a contributed workflow event (`event-types.ts`) for a batch of issues: the plugin that registered the event
|
|
3
|
-
* says it happened, and each issue moves along its workflow's transition on it, if there is one. This plugin never
|
|
4
|
-
* knows what the event means.
|
|
5
|
-
*
|
|
6
|
-
* - The move is the system's: the transition is `on` the event with `actors: ['system']`, nobody approves it, and the
|
|
7
|
-
* issue's triggers and notices see the system. The activity names `actor`, the person (or principal) whose action
|
|
8
|
-
* the event reports, with `note` and `details`.
|
|
9
|
-
* - Entry conditions still apply (built-in and contributed `canEnter`, a checklist left incomplete): a refusal leaves
|
|
10
|
-
* that issue where it is, records `auto_move_skipped` with the code, and comes back as `refused`; the other issues
|
|
11
|
-
* still move.
|
|
12
|
-
* - Everything runs in one transaction: the caller's `tx` when given (so its own writes commit with the moves), else
|
|
13
|
-
* a new one. An error that is not a refusal rolls the whole batch back.
|
|
14
|
-
* - Only a registered, contributed event may be fired: the built-in `subtasks.done` is this plugin's own, and an event
|
|
15
|
-
* nobody registered is a programming error (`TypeError`).
|
|
16
|
-
*/
|
|
17
|
-
import { isBuiltInEvent } from '../../../shared/workflows.js';
|
|
18
|
-
import { invalid } from '../../kernel/errors.js';
|
|
19
|
-
export const EVENT_NOTE_MAX = 200;
|
|
20
|
-
export const EVENT_BATCH_MAX = 500;
|
|
21
|
-
export function createWorkflowEventService(deps) {
|
|
22
|
-
function registered(event) {
|
|
23
|
-
if (isBuiltInEvent(event))
|
|
24
|
-
throw new TypeError(`${event} is a built-in workflow event; only its own plugin fires it.`);
|
|
25
|
-
if (!deps.types.get(event))
|
|
26
|
-
throw new TypeError(`No plugin registered the workflow event ${event}.`);
|
|
27
|
-
}
|
|
28
|
-
return {
|
|
29
|
-
types: deps.types,
|
|
30
|
-
target(event, issueId, conn) {
|
|
31
|
-
registered(event);
|
|
32
|
-
return deps.issues().eventTarget(conn ?? deps.tx.read(), issueId, event);
|
|
33
|
-
},
|
|
34
|
-
async fire(firing, outer) {
|
|
35
|
-
registered(firing.event);
|
|
36
|
-
const ids = [...new Set(firing.issueIds)];
|
|
37
|
-
if (ids.length > EVENT_BATCH_MAX)
|
|
38
|
-
throw invalid('INVALID_EVENT_FIRING', `At most ${EVENT_BATCH_MAX} issues at once.`);
|
|
39
|
-
const note = firing.note?.trim();
|
|
40
|
-
if (note && note.length > EVENT_NOTE_MAX)
|
|
41
|
-
throw invalid('INVALID_EVENT_FIRING', `A note is at most ${EVENT_NOTE_MAX} characters.`);
|
|
42
|
-
if (ids.length === 0)
|
|
43
|
-
return [];
|
|
44
|
-
return deps.tx.run(async (tx) => {
|
|
45
|
-
const moves = [];
|
|
46
|
-
for (const id of ids)
|
|
47
|
-
moves.push(await deps.issues().fireEvent(tx, id, firing.event, {
|
|
48
|
-
...(firing.actor ? { actor: firing.actor } : {}),
|
|
49
|
-
...(note ? { note } : {}),
|
|
50
|
-
...(firing.details ? { details: firing.details } : {}),
|
|
51
|
-
}));
|
|
52
|
-
return moves;
|
|
53
|
-
}, outer);
|
|
54
|
-
},
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
//# sourceMappingURL=workflow.fire.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.fire.js","sourceRoot":"","sources":["../../../../server/domains/workflows/workflow.fire.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAKjD,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAC;AAClC,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAC;AAmCnC,MAAM,UAAU,0BAA0B,CAAC,IAI1C;IACC,SAAS,UAAU,CAAC,KAAa;QAC/B,IAAI,cAAc,CAAC,KAAK,CAAC;YACvB,MAAM,IAAI,SAAS,CACjB,GAAG,KAAK,8DAA8D,CACvE,CAAC;QACJ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;YACxB,MAAM,IAAI,SAAS,CAAC,2CAA2C,KAAK,GAAG,CAAC,CAAC;IAC7E,CAAC;IAED,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI;YACzB,UAAU,CAAC,KAAK,CAAC,CAAC;YAClB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QAC3E,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK;YACtB,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACzB,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC1C,IAAI,GAAG,CAAC,MAAM,GAAG,eAAe;gBAC9B,MAAM,OAAO,CACX,sBAAsB,EACtB,WAAW,eAAe,kBAAkB,CAC7C,CAAC;YACJ,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;YACjC,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,cAAc;gBACtC,MAAM,OAAO,CACX,sBAAsB,EACtB,qBAAqB,cAAc,cAAc,CAClD,CAAC;YACJ,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;gBAC9B,MAAM,KAAK,GAAwB,EAAE,CAAC;gBACtC,KAAK,MAAM,EAAE,IAAI,GAAG;oBAClB,KAAK,CAAC,IAAI,CACR,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,EAAE;wBAClD,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAChD,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACzB,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBACvD,CAAC,CACH,CAAC;gBACJ,OAAO,KAAK,CAAC;YACf,CAAC,EAAE,KAAK,CAAC,CAAC;QACZ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The rules a workflow of this plugin may name (`shared/workflows.ts`), registered on the lifecycle registry that
|
|
3
|
-
* validates definitions and moves issues. Rules run in the transaction of the move: `context` is its `Tx`.
|
|
4
|
-
*
|
|
5
|
-
* Every status rule type, this plugin's own (`built-in-rule-types.ts`) and those other plugins contribute
|
|
6
|
-
* (`rule-types.ts`), is looked up in one `StatusRuleTypes` on each use and adapted here to a lifecycle state rule.
|
|
7
|
-
*
|
|
8
|
-
* Approvers (`APPROVER_ROLES`): `owner` is the issue's owner, `projectLead` the lead of its project (nobody without a
|
|
9
|
-
* project), `admin` every active holder of the admin or owner role.
|
|
10
|
-
*/
|
|
11
|
-
import type { DatabaseConnection } from '@nocobase/db';
|
|
12
|
-
import type { ActivityRecorder } from '../../kernel/activity.js';
|
|
13
|
-
import { type IssueRules } from '../issues/index.js';
|
|
14
|
-
import type { StatusRuleTypes } from './rule-types.js';
|
|
15
|
-
export type { RelationChecks } from './built-in-rule-types.js';
|
|
16
|
-
/** Who the approver roles are, read in the transaction of the move. */
|
|
17
|
-
export interface ApproverDirectory {
|
|
18
|
-
projectLead(conn: DatabaseConnection, projectId: string): Promise<string | null>;
|
|
19
|
-
admins(conn: DatabaseConnection): Promise<readonly string[]>;
|
|
20
|
-
}
|
|
21
|
-
export declare function createIssueRegistry(deps: {
|
|
22
|
-
readonly activity: ActivityRecorder;
|
|
23
|
-
readonly approvers: ApproverDirectory;
|
|
24
|
-
/** Every status rule type: this plugin's own and those other plugins contribute (`withBuiltInTypes`). */
|
|
25
|
-
readonly types: StatusRuleTypes;
|
|
26
|
-
}): IssueRules;
|
|
27
|
-
//# sourceMappingURL=workflow.registry.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.registry.d.ts","sourceRoot":"","sources":["../../../../server/domains/workflows/workflow.registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAOvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AASjE,OAAO,EAA0B,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,KAAK,EAIV,eAAe,EAChB,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAU/D,uEAAuE;AACvE,MAAM,WAAW,iBAAiB;IAChC,WAAW,CACT,IAAI,EAAE,kBAAkB,EACxB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC1B,MAAM,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;CAC9D;AA8GD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,yGAAyG;IACzG,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;CACjC,GAAG,UAAU,CAgBb"}
|