@nocobase/app-plugin-projects 0.1.0-beta.1 → 0.1.0-beta.10
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 +266 -0
- package/README.md +77 -105
- 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/keys.d.ts +2 -8
- package/dist/client/api/keys.d.ts.map +1 -1
- package/dist/client/api/keys.js +2 -17
- 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 +2 -0
- package/dist/client/components/pm-executor-select.d.ts.map +1 -1
- package/dist/client/components/pm-executor-select.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/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/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/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/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 +7 -9
- package/dist/client/kit.d.ts.map +1 -1
- package/dist/client/kit.js +7 -9
- package/dist/client/kit.js.map +1 -1
- package/dist/client/lib/intake-wait.d.ts +16 -0
- package/dist/client/lib/intake-wait.d.ts.map +1 -0
- package/dist/client/lib/intake-wait.js +12 -0
- package/dist/client/lib/intake-wait.js.map +1 -0
- 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/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/plans.en-US.d.ts +1 -8
- package/dist/client/locales/plans.en-US.d.ts.map +1 -1
- package/dist/client/locales/plans.en-US.js +2 -9
- package/dist/client/locales/plans.en-US.js.map +1 -1
- package/dist/client/locales/plans.zh-CN.d.ts.map +1 -1
- package/dist/client/locales/plans.zh-CN.js +2 -9
- package/dist/client/locales/plans.zh-CN.js.map +1 -1
- 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/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 +7 -7
- package/dist/client/pages/config/members/invite-dialog.js.map +1 -1
- package/dist/client/pages/intake/intake-ai-progress.d.ts.map +1 -1
- package/dist/client/pages/intake/intake-ai-progress.js +10 -13
- package/dist/client/pages/intake/intake-ai-progress.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 +15 -5
- package/dist/client/pages/intake/intake-panel.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 +9 -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.map +1 -1
- package/dist/client/pages/issues/detail/new-subtask.js +6 -28
- 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 +6 -8
- package/dist/client/pages/issues/detail/use-confirmed-update.d.ts.map +1 -1
- package/dist/client/pages/issues/detail/use-confirmed-update.js +9 -42
- package/dist/client/pages/issues/detail/use-confirmed-update.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/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 +3 -1
- 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 +15 -11
- 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/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 +3 -3
- package/dist/server/domains/issues/index.d.ts.map +1 -1
- package/dist/server/domains/issues/index.js +2 -2
- package/dist/server/domains/issues/index.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 +50 -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 +137 -58
- 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 +74 -46
- package/dist/server/domains/issues/issue.routes.js.map +1 -1
- package/dist/server/domains/issues/issue.service.d.ts +22 -44
- package/dist/server/domains/issues/issue.service.d.ts.map +1 -1
- package/dist/server/domains/issues/issue.service.js +68 -82
- 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 +11 -0
- package/dist/server/domains/issues/issue.store.d.ts.map +1 -1
- package/dist/server/domains/issues/issue.store.js +37 -0
- package/dist/server/domains/issues/issue.store.js.map +1 -1
- package/dist/server/domains/issues/ports.d.ts +35 -36
- 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 -13
- 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 +119 -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 +48 -0
- package/dist/server/domains/statuses/status.fire.d.ts.map +1 -0
- package/dist/server/domains/statuses/status.fire.js +38 -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 +98 -20
- 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 +16 -6
- package/dist/server/kernel/work.d.ts.map +1 -1
- package/dist/server/kernel/work.js +33 -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/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/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/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 +6 -120
- 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 +14 -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 +17 -28
- package/dist/server/routes/schemas.d.ts.map +1 -1
- package/dist/server/routes/schemas.js +382 -292
- 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 +4 -0
- package/dist/shared/attachments.d.ts.map +1 -1
- package/dist/shared/attachments.js +4 -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/intake-ai.d.ts +3 -1
- package/dist/shared/intake-ai.d.ts.map +1 -1
- package/dist/shared/intake-ai.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 -36
- 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 +28 -10
- 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 +33 -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,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `pmIssueChecklistItems`: each issue's copy of the checklist of a status it entered, one row per item.
|
|
3
|
-
*/
|
|
4
|
-
import type { DatabaseConnection } from '@nocobase/db';
|
|
5
|
-
import type { ChecklistItemDefinition } from '../../../shared/workflows.js';
|
|
6
|
-
export declare const CHECKLIST_ITEMS = "pmIssueChecklistItems";
|
|
7
|
-
export interface ChecklistItemRecord {
|
|
8
|
-
readonly id: string;
|
|
9
|
-
readonly issueId: string;
|
|
10
|
-
readonly statusKey: string;
|
|
11
|
-
readonly itemKey: string;
|
|
12
|
-
readonly label: string;
|
|
13
|
-
readonly required: boolean | number;
|
|
14
|
-
readonly position: number;
|
|
15
|
-
/** A kind's key (`shared/kinds.ts`). */
|
|
16
|
-
readonly checkedByType: string | null;
|
|
17
|
-
readonly checkedById: string | null;
|
|
18
|
-
readonly checkedAt: Date | string | null;
|
|
19
|
-
readonly createdAt: Date | string;
|
|
20
|
-
readonly updatedAt: Date | string;
|
|
21
|
-
}
|
|
22
|
-
/** The issue's items, of one status or of all, in the order they were added and then by position. */
|
|
23
|
-
export declare function findItems(conn: DatabaseConnection, issueId: string, statusKey?: string): Promise<ChecklistItemRecord[]>;
|
|
24
|
-
/** Adds the items the issue's copy of `statusKey` lacks; returns how many. */
|
|
25
|
-
export declare function addMissingItems(conn: DatabaseConnection, nextId: () => string, issueId: string, statusKey: string, definitions: readonly ChecklistItemDefinition[]): Promise<number>;
|
|
26
|
-
/** The labels of the required items of `statusKey` nobody checked yet. */
|
|
27
|
-
export declare function uncheckedRequired(conn: DatabaseConnection, issueId: string, statusKey: string): Promise<string[]>;
|
|
28
|
-
export declare function setChecked(conn: DatabaseConnection, id: string, checkedBy: {
|
|
29
|
-
readonly type: string;
|
|
30
|
-
readonly id: string;
|
|
31
|
-
} | null): Promise<void>;
|
|
32
|
-
//# sourceMappingURL=checklist.store.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"checklist.store.d.ts","sourceRoot":"","sources":["../../../../server/domains/checklists/checklist.store.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEvD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAE5E,eAAO,MAAM,eAAe,0BAA0B,CAAC;AAEvD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,wCAAwC;IACxC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,CAAC;CACnC;AAKD,qGAAqG;AACrG,wBAAsB,SAAS,CAC7B,IAAI,EAAE,kBAAkB,EACxB,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAQhC;AAED,8EAA8E;AAC9E,wBAAsB,eAAe,CACnC,IAAI,EAAE,kBAAkB,EACxB,MAAM,EAAE,MAAM,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,SAAS,uBAAuB,EAAE,GAC9C,OAAO,CAAC,MAAM,CAAC,CA2BjB;AAED,0EAA0E;AAC1E,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,kBAAkB,EACxB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,EAAE,CAAC,CAanB;AAED,wBAAsB,UAAU,CAC9B,IAAI,EAAE,kBAAkB,EACxB,EAAE,EAAE,MAAM,EACV,SAAS,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GAC/D,OAAO,CAAC,IAAI,CAAC,CAUf"}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
export const CHECKLIST_ITEMS = 'pmIssueChecklistItems';
|
|
2
|
-
const items = (conn) => conn.repository(CHECKLIST_ITEMS);
|
|
3
|
-
/** The issue's items, of one status or of all, in the order they were added and then by position. */
|
|
4
|
-
export async function findItems(conn, issueId, statusKey) {
|
|
5
|
-
return items(conn).findMany({
|
|
6
|
-
filter: statusKey === undefined ? { issueId } : { issueId, statusKey },
|
|
7
|
-
sort: (sort) => [
|
|
8
|
-
sort.field('createdAt').asc(),
|
|
9
|
-
sort.field('position').asc(),
|
|
10
|
-
],
|
|
11
|
-
});
|
|
12
|
-
}
|
|
13
|
-
/** Adds the items the issue's copy of `statusKey` lacks; returns how many. */
|
|
14
|
-
export async function addMissingItems(conn, nextId, issueId, statusKey, definitions) {
|
|
15
|
-
const have = new Set((await findItems(conn, issueId, statusKey)).map((item) => item.itemKey));
|
|
16
|
-
const now = new Date();
|
|
17
|
-
let added = 0;
|
|
18
|
-
for (const [position, item] of definitions.entries()) {
|
|
19
|
-
if (have.has(item.key))
|
|
20
|
-
continue;
|
|
21
|
-
await items(conn).createOne({
|
|
22
|
-
values: {
|
|
23
|
-
id: nextId(),
|
|
24
|
-
issueId,
|
|
25
|
-
statusKey,
|
|
26
|
-
itemKey: item.key,
|
|
27
|
-
label: item.label,
|
|
28
|
-
required: item.required,
|
|
29
|
-
position,
|
|
30
|
-
checkedByType: null,
|
|
31
|
-
checkedById: null,
|
|
32
|
-
checkedAt: null,
|
|
33
|
-
createdAt: now,
|
|
34
|
-
updatedAt: now,
|
|
35
|
-
},
|
|
36
|
-
});
|
|
37
|
-
added += 1;
|
|
38
|
-
}
|
|
39
|
-
return added;
|
|
40
|
-
}
|
|
41
|
-
/** The labels of the required items of `statusKey` nobody checked yet. */
|
|
42
|
-
export async function uncheckedRequired(conn, issueId, statusKey) {
|
|
43
|
-
const rows = await items(conn).findMany({
|
|
44
|
-
filter: (f) => f.and([
|
|
45
|
-
f.string('issueId').eq(issueId),
|
|
46
|
-
f.string('statusKey').eq(statusKey),
|
|
47
|
-
f.boolean('required').isTrue(),
|
|
48
|
-
f.date('checkedAt').empty(),
|
|
49
|
-
]),
|
|
50
|
-
sort: (sort) => sort.field('position').asc(),
|
|
51
|
-
select: (select) => select.fields('label'),
|
|
52
|
-
});
|
|
53
|
-
return rows.map((row) => row.label);
|
|
54
|
-
}
|
|
55
|
-
export async function setChecked(conn, id, checkedBy) {
|
|
56
|
-
await items(conn).updateOne({
|
|
57
|
-
filter: { id },
|
|
58
|
-
values: {
|
|
59
|
-
checkedByType: checkedBy?.type ?? null,
|
|
60
|
-
checkedById: checkedBy?.id ?? null,
|
|
61
|
-
checkedAt: checkedBy ? new Date() : null,
|
|
62
|
-
updatedAt: new Date(),
|
|
63
|
-
},
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
//# sourceMappingURL=checklist.store.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"checklist.store.js","sourceRoot":"","sources":["../../../../server/domains/checklists/checklist.store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/domains/checklists/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,KAAK,gBAAgB,GACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/domains/checklists/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,GAEvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The status rule types this plugin brings (`shared/workflows.ts`, `BuiltInStatusRule`), written against the same
|
|
3
|
-
* contract as the types other plugins contribute (`rule-types.ts`), so the workflows domain validates, describes and
|
|
4
|
-
* runs every rule one way. Their stored form is unchanged: `subtasksDone` and `blockersDone` keep no settings.
|
|
5
|
-
*
|
|
6
|
-
* - `checklist`: entering the status gives the issue its own copy of the items (a copy it already has keeps its
|
|
7
|
-
* checks, and gains the items added since); leaving it for anything but a closed status waits until the required
|
|
8
|
-
* items are checked (400 `CHECKLIST_INCOMPLETE`).
|
|
9
|
-
* - `notifyOwner`: the owner is told the issue entered the status (activity `owner_notified`, event
|
|
10
|
-
* `workflow.ownerNotified`, which the provider turns into an in-app notification), unless the owner moved it.
|
|
11
|
-
* - `subtasksDone`: entering the status waits until every live sub-issue is finished (400 `SUBTASKS_OPEN`); a closed
|
|
12
|
-
* status never waits, so an issue can always be cancelled.
|
|
13
|
-
* - `blockersDone`: entering the status waits until nothing holds the issue (400 `ISSUE_BLOCKED`).
|
|
14
|
-
* - `startOption`: the New issue form offers the status as a way to start an issue (`IssueStarts`); entering it does
|
|
15
|
-
* nothing. Only on a status a new issue may be in: not done or closed.
|
|
16
|
-
*
|
|
17
|
-
* Their outcomes are not recorded as `stage_action_*` activity (`issue.status.ts`): each records what it did itself.
|
|
18
|
-
*/
|
|
19
|
-
import type { DatabaseConnection } from '@nocobase/db';
|
|
20
|
-
import type { Issue } from '../../../shared/issues.js';
|
|
21
|
-
import type { Blocker } from '../../../shared/subtasks.js';
|
|
22
|
-
import { type RuleMessage } from '../../../shared/workflows.js';
|
|
23
|
-
import type { ActivityRecorder } from '../../kernel/activity.js';
|
|
24
|
-
import type { IdSource } from '../../kernel/ids.js';
|
|
25
|
-
import type { StatusRuleType } from './rule-types.js';
|
|
26
|
-
import './workflow.events.js';
|
|
27
|
-
/** A valid rule's message as it is kept and sent: trimmed text, the key with what it has, or null for none. */
|
|
28
|
-
export declare function ruleMessage(message: unknown): RuleMessage | null;
|
|
29
|
-
/** Sub-issues and blockers, as the rules that wait for them read them (`domains/subtasks`). */
|
|
30
|
-
export interface RelationChecks {
|
|
31
|
-
/** Live sub-issues not finished by their own workflow, by number. */
|
|
32
|
-
openChildren(conn: DatabaseConnection, issueId: string): Promise<readonly Pick<Issue, 'identifier'>[]>;
|
|
33
|
-
blockers(conn: DatabaseConnection, issue: Issue): Promise<readonly Blocker[]>;
|
|
34
|
-
}
|
|
35
|
-
export declare function builtInStatusRuleTypes(deps: {
|
|
36
|
-
readonly ids: IdSource;
|
|
37
|
-
readonly activity: ActivityRecorder;
|
|
38
|
-
readonly relations: () => RelationChecks;
|
|
39
|
-
}): readonly StatusRuleType[];
|
|
40
|
-
//# sourceMappingURL=built-in-rule-types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"built-in-rule-types.d.ts","sourceRoot":"","sources":["../../../../server/domains/workflows/built-in-rule-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEvD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAWL,KAAK,WAAW,EAEjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAGpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,sBAAsB,CAAC;AA8H9B,+GAA+G;AAC/G,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,GAAG,IAAI,CAUhE;AASD,+FAA+F;AAC/F,MAAM,WAAW,cAAc;IAC7B,qEAAqE;IACrE,YAAY,CACV,IAAI,EAAE,kBAAkB,EACxB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,SAAS,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;IACjD,QAAQ,CAAC,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,SAAS,OAAO,EAAE,CAAC,CAAC;CAC/E;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE;IAC3C,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,cAAc,CAAC;CAC1C,GAAG,SAAS,cAAc,EAAE,CAiJ5B"}
|
|
@@ -1,260 +0,0 @@
|
|
|
1
|
-
import { CHECKLIST_ITEMS_MAX, CHECKLIST_ITEM_KEY_PATTERN, CHECKLIST_LABEL_MAX, isLocalizedMessage, messageText, MESSAGE_KEY_MAX, MESSAGE_NAMESPACE_PATTERN, NOTIFY_MESSAGE_MAX, START_LABEL_MAX, } from '../../../shared/workflows.js';
|
|
2
|
-
import { addMissingItems, uncheckedRequired } from '../checklists/index.js';
|
|
3
|
-
import './workflow.events.js';
|
|
4
|
-
const isObject = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
5
|
-
function checklistIssues(config) {
|
|
6
|
-
const issues = [];
|
|
7
|
-
for (const field of Object.keys(config))
|
|
8
|
-
if (field !== 'items')
|
|
9
|
-
issues.push({ path: field, message: 'Unknown field.' });
|
|
10
|
-
const { items } = config;
|
|
11
|
-
if (!Array.isArray(items) ||
|
|
12
|
-
items.length === 0 ||
|
|
13
|
-
items.length > CHECKLIST_ITEMS_MAX)
|
|
14
|
-
return [
|
|
15
|
-
...issues,
|
|
16
|
-
{ path: 'items', message: `1 to ${CHECKLIST_ITEMS_MAX} items.` },
|
|
17
|
-
];
|
|
18
|
-
const keys = new Set();
|
|
19
|
-
items.forEach((item, index) => {
|
|
20
|
-
const at = `items[${index}]`;
|
|
21
|
-
if (!isObject(item)) {
|
|
22
|
-
issues.push({
|
|
23
|
-
path: at,
|
|
24
|
-
message: 'An item is { key, label, required }.',
|
|
25
|
-
});
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
for (const field of Object.keys(item))
|
|
29
|
-
if (!['key', 'label', 'required'].includes(field))
|
|
30
|
-
issues.push({ path: `${at}.${field}`, message: 'Unknown field.' });
|
|
31
|
-
if (typeof item.key !== 'string' ||
|
|
32
|
-
!CHECKLIST_ITEM_KEY_PATTERN.test(item.key))
|
|
33
|
-
issues.push({
|
|
34
|
-
path: `${at}.key`,
|
|
35
|
-
message: 'A key is 1 to 64 lowercase letters, digits, hyphens or underscores.',
|
|
36
|
-
});
|
|
37
|
-
else if (keys.has(item.key))
|
|
38
|
-
issues.push({
|
|
39
|
-
path: `${at}.key`,
|
|
40
|
-
message: `The key ${item.key} is used twice.`,
|
|
41
|
-
});
|
|
42
|
-
else
|
|
43
|
-
keys.add(item.key);
|
|
44
|
-
if (typeof item.label !== 'string' ||
|
|
45
|
-
!item.label.trim() ||
|
|
46
|
-
item.label.length > CHECKLIST_LABEL_MAX)
|
|
47
|
-
issues.push({
|
|
48
|
-
path: `${at}.label`,
|
|
49
|
-
message: `A label is 1 to ${CHECKLIST_LABEL_MAX} characters.`,
|
|
50
|
-
});
|
|
51
|
-
if (typeof item.required !== 'boolean')
|
|
52
|
-
issues.push({
|
|
53
|
-
path: `${at}.required`,
|
|
54
|
-
message: 'required is true or false.',
|
|
55
|
-
});
|
|
56
|
-
});
|
|
57
|
-
return issues;
|
|
58
|
-
}
|
|
59
|
-
/** Problems with a rule's message at `path`: text of at most `max` characters, or `{ key, ns, defaultValue }`. */
|
|
60
|
-
function messageIssues(path, message, max) {
|
|
61
|
-
const issues = [];
|
|
62
|
-
if (message === undefined)
|
|
63
|
-
return issues;
|
|
64
|
-
if (isLocalizedMessage(message)) {
|
|
65
|
-
const fields = message;
|
|
66
|
-
for (const field of Object.keys(fields))
|
|
67
|
-
if (!['key', 'ns', 'defaultValue'].includes(field))
|
|
68
|
-
issues.push({ path: `${path}.${field}`, message: 'Unknown field.' });
|
|
69
|
-
if (!message.key.trim() || message.key.length > MESSAGE_KEY_MAX)
|
|
70
|
-
issues.push({
|
|
71
|
-
path: `${path}.key`,
|
|
72
|
-
message: `A message key is 1 to ${MESSAGE_KEY_MAX} characters.`,
|
|
73
|
-
});
|
|
74
|
-
if (fields.ns !== undefined &&
|
|
75
|
-
(typeof fields.ns !== 'string' ||
|
|
76
|
-
!MESSAGE_NAMESPACE_PATTERN.test(fields.ns)))
|
|
77
|
-
issues.push({ path: `${path}.ns`, message: 'Not a namespace.' });
|
|
78
|
-
if (fields.defaultValue !== undefined &&
|
|
79
|
-
(typeof fields.defaultValue !== 'string' ||
|
|
80
|
-
fields.defaultValue.length > max))
|
|
81
|
-
issues.push({
|
|
82
|
-
path: `${path}.defaultValue`,
|
|
83
|
-
message: `A message is at most ${max} characters.`,
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
else if (typeof message !== 'string' || message.length > max)
|
|
87
|
-
issues.push({
|
|
88
|
-
path,
|
|
89
|
-
message: `A message is text of at most ${max} characters, or { key, ns, defaultValue }.`,
|
|
90
|
-
});
|
|
91
|
-
return issues;
|
|
92
|
-
}
|
|
93
|
-
function notifyIssues(config) {
|
|
94
|
-
return [
|
|
95
|
-
...Object.keys(config)
|
|
96
|
-
.filter((field) => field !== 'message')
|
|
97
|
-
.map((field) => ({ path: field, message: 'Unknown field.' })),
|
|
98
|
-
...messageIssues('message', config.message, NOTIFY_MESSAGE_MAX),
|
|
99
|
-
];
|
|
100
|
-
}
|
|
101
|
-
function startOptionIssues(config) {
|
|
102
|
-
return [
|
|
103
|
-
...Object.keys(config)
|
|
104
|
-
.filter((field) => field !== 'label' && field !== 'hint')
|
|
105
|
-
.map((field) => ({ path: field, message: 'Unknown field.' })),
|
|
106
|
-
...messageIssues('label', config.label, START_LABEL_MAX),
|
|
107
|
-
...messageIssues('hint', config.hint, NOTIFY_MESSAGE_MAX),
|
|
108
|
-
];
|
|
109
|
-
}
|
|
110
|
-
/** A valid rule's message as it is kept and sent: trimmed text, the key with what it has, or null for none. */
|
|
111
|
-
export function ruleMessage(message) {
|
|
112
|
-
if (typeof message === 'string')
|
|
113
|
-
return message.trim() || null;
|
|
114
|
-
if (!isLocalizedMessage(message))
|
|
115
|
-
return null;
|
|
116
|
-
return {
|
|
117
|
-
key: message.key,
|
|
118
|
-
...(message.ns ? { ns: message.ns } : {}),
|
|
119
|
-
...(message.defaultValue?.trim()
|
|
120
|
-
? { defaultValue: message.defaultValue.trim() }
|
|
121
|
-
: {}),
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
function noSettings(config) {
|
|
125
|
-
return Object.keys(config).map((field) => ({
|
|
126
|
-
path: field,
|
|
127
|
-
message: 'Unknown field.',
|
|
128
|
-
}));
|
|
129
|
-
}
|
|
130
|
-
export function builtInStatusRuleTypes(deps) {
|
|
131
|
-
return [
|
|
132
|
-
{
|
|
133
|
-
type: 'checklist',
|
|
134
|
-
validate: checklistIssues,
|
|
135
|
-
describe: (config) => ({
|
|
136
|
-
summary: `Gives the issue a checklist of ${Array.isArray(config.items) ? config.items.length : 0} item(s).`,
|
|
137
|
-
}),
|
|
138
|
-
async canLeave(check) {
|
|
139
|
-
if (check.status.category === 'closed')
|
|
140
|
-
return null;
|
|
141
|
-
const missing = await uncheckedRequired(check.tx.conn, check.issue.id, check.from);
|
|
142
|
-
return missing.length === 0
|
|
143
|
-
? null
|
|
144
|
-
: {
|
|
145
|
-
code: 'CHECKLIST_INCOMPLETE',
|
|
146
|
-
message: `Check the required items of ${check.from} first: ${missing.join('; ')}.`,
|
|
147
|
-
details: { statusKey: check.from, items: missing },
|
|
148
|
-
};
|
|
149
|
-
},
|
|
150
|
-
async entered(entry, config) {
|
|
151
|
-
const items = (config.items ?? []);
|
|
152
|
-
await addMissingItems(entry.tx.conn, () => deps.ids.next(), entry.issue.id, entry.status.key, items.map((item) => ({ ...item, label: item.label.trim() })));
|
|
153
|
-
return undefined;
|
|
154
|
-
},
|
|
155
|
-
},
|
|
156
|
-
{
|
|
157
|
-
type: 'notifyOwner',
|
|
158
|
-
validate: notifyIssues,
|
|
159
|
-
describe(config) {
|
|
160
|
-
// Described in the words it falls back to, not translated: the summary is the plugin's own English.
|
|
161
|
-
const message = messageText(config.message, (key, options) => options?.defaultValue ?? key);
|
|
162
|
-
return {
|
|
163
|
-
summary: message
|
|
164
|
-
? `Notifies the issue owner: "${message}".`
|
|
165
|
-
: 'Notifies the issue owner.',
|
|
166
|
-
};
|
|
167
|
-
},
|
|
168
|
-
async entered(entry, config) {
|
|
169
|
-
const { issue, actor, status } = entry;
|
|
170
|
-
if (actor.type === 'user' && actor.id === issue.ownerUserId)
|
|
171
|
-
return { status: 'skipped', reason: 'ownerMovedIt' };
|
|
172
|
-
const message = ruleMessage(config.message);
|
|
173
|
-
await deps.activity.record(entry.tx.conn, {
|
|
174
|
-
issueId: issue.id,
|
|
175
|
-
actor,
|
|
176
|
-
action: 'owner_notified',
|
|
177
|
-
details: {
|
|
178
|
-
statusKey: status.key,
|
|
179
|
-
ownerUserId: issue.ownerUserId,
|
|
180
|
-
message,
|
|
181
|
-
},
|
|
182
|
-
});
|
|
183
|
-
entry.tx.emit({
|
|
184
|
-
type: 'workflow.ownerNotified',
|
|
185
|
-
issueId: issue.id,
|
|
186
|
-
identifier: issue.identifier,
|
|
187
|
-
title: issue.title,
|
|
188
|
-
ownerUserId: issue.ownerUserId,
|
|
189
|
-
statusKey: status.key,
|
|
190
|
-
statusName: status.name,
|
|
191
|
-
message,
|
|
192
|
-
});
|
|
193
|
-
return undefined;
|
|
194
|
-
},
|
|
195
|
-
},
|
|
196
|
-
{
|
|
197
|
-
type: 'subtasksDone',
|
|
198
|
-
validate: noSettings,
|
|
199
|
-
describe: () => ({ summary: 'Waits until every sub-issue is finished.' }),
|
|
200
|
-
async canEnter(check) {
|
|
201
|
-
if (check.status.category === 'closed')
|
|
202
|
-
return null;
|
|
203
|
-
const open = await deps
|
|
204
|
-
.relations()
|
|
205
|
-
.openChildren(check.tx.conn, check.issue.id);
|
|
206
|
-
return open.length === 0
|
|
207
|
-
? null
|
|
208
|
-
: {
|
|
209
|
-
code: 'SUBTASKS_OPEN',
|
|
210
|
-
message: `Finish the sub-issues first: ${open
|
|
211
|
-
.slice(0, 10)
|
|
212
|
-
.map((child) => child.identifier)
|
|
213
|
-
.join(', ')}.`,
|
|
214
|
-
details: {
|
|
215
|
-
count: open.length,
|
|
216
|
-
issues: open.slice(0, 10).map((child) => child.identifier),
|
|
217
|
-
},
|
|
218
|
-
};
|
|
219
|
-
},
|
|
220
|
-
},
|
|
221
|
-
{
|
|
222
|
-
type: 'blockersDone',
|
|
223
|
-
validate: noSettings,
|
|
224
|
-
describe: () => ({ summary: 'Waits until nothing blocks the issue.' }),
|
|
225
|
-
async canEnter(check) {
|
|
226
|
-
const blockers = await deps
|
|
227
|
-
.relations()
|
|
228
|
-
.blockers(check.tx.conn, check.issue);
|
|
229
|
-
return blockers.length === 0
|
|
230
|
-
? null
|
|
231
|
-
: {
|
|
232
|
-
code: 'ISSUE_BLOCKED',
|
|
233
|
-
message: `The issue waits for ${blockers
|
|
234
|
-
.map((blocker) => blocker.identifier)
|
|
235
|
-
.join(', ')}.`,
|
|
236
|
-
details: {
|
|
237
|
-
blockers: blockers.map((blocker) => ({
|
|
238
|
-
identifier: blocker.identifier,
|
|
239
|
-
reason: blocker.reason,
|
|
240
|
-
})),
|
|
241
|
-
},
|
|
242
|
-
};
|
|
243
|
-
},
|
|
244
|
-
},
|
|
245
|
-
{
|
|
246
|
-
type: 'startOption',
|
|
247
|
-
categories: ['unstarted', 'started'],
|
|
248
|
-
validate: startOptionIssues,
|
|
249
|
-
describe(config) {
|
|
250
|
-
const label = messageText(config.label, (key, options) => options?.defaultValue ?? key);
|
|
251
|
-
return {
|
|
252
|
-
summary: label
|
|
253
|
-
? `Offered as "${label}" when creating an issue.`
|
|
254
|
-
: 'Offered when creating an issue.',
|
|
255
|
-
};
|
|
256
|
-
},
|
|
257
|
-
},
|
|
258
|
-
];
|
|
259
|
-
}
|
|
260
|
-
//# sourceMappingURL=built-in-rule-types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"built-in-rule-types.js","sourceRoot":"","sources":["../../../../server/domains/workflows/built-in-rule-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Workflow events other plugins contribute (`projectsWorkflowEventsToken`), next to the built-in `subtasks.done`. A
|
|
3
|
-
* contributed event is a key and where a workflow may use it; this plugin never knows what it means. Its plugin fires
|
|
4
|
-
* it for the issues it concerns (`Projects.workflowEvents.fire`), and each issue moves along its workflow's transition
|
|
5
|
-
* on the event, if there is one.
|
|
6
|
-
*
|
|
7
|
-
* - A type is looked up on each use, so a plugin may add it after this plugin's services are created.
|
|
8
|
-
* - A definition may keep a transition on an event whose type is gone (its plugin was removed): saving leaves it as it
|
|
9
|
-
* was, nobody fires it, and the editor shows it as unavailable. A new transition on it is refused.
|
|
10
|
-
* - `from` and `to` limit the categories of status a transition on the event may leave and enter, when saving.
|
|
11
|
-
*/
|
|
12
|
-
import { type WorkflowEventPlacement } from '../../../shared/workflows.js';
|
|
13
|
-
export type WorkflowEventType = WorkflowEventPlacement;
|
|
14
|
-
export interface WorkflowEventTypes {
|
|
15
|
-
/** Adds an event; returns what removes it. Throws when the key is taken, built in or malformed. */
|
|
16
|
-
add(type: WorkflowEventType): () => void;
|
|
17
|
-
get(key: string): WorkflowEventType | undefined;
|
|
18
|
-
list(): readonly WorkflowEventType[];
|
|
19
|
-
}
|
|
20
|
-
export declare function createWorkflowEventTypes(): WorkflowEventTypes;
|
|
21
|
-
//# sourceMappingURL=event-types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"event-types.d.ts","sourceRoot":"","sources":["../../../../server/domains/workflows/event-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAGL,KAAK,sBAAsB,EAC5B,MAAM,8BAA8B,CAAC;AAEtC,MAAM,MAAM,iBAAiB,GAAG,sBAAsB,CAAC;AAEvD,MAAM,WAAW,kBAAkB;IACjC,mGAAmG;IACnG,GAAG,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,IAAI,CAAC;IACzC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAAC;IAChD,IAAI,IAAI,SAAS,iBAAiB,EAAE,CAAC;CACtC;AAED,wBAAgB,wBAAwB,IAAI,kBAAkB,CAoB7D"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Workflow events other plugins contribute (`projectsWorkflowEventsToken`), next to the built-in `subtasks.done`. A
|
|
3
|
-
* contributed event is a key and where a workflow may use it; this plugin never knows what it means. Its plugin fires
|
|
4
|
-
* it for the issues it concerns (`Projects.workflowEvents.fire`), and each issue moves along its workflow's transition
|
|
5
|
-
* on the event, if there is one.
|
|
6
|
-
*
|
|
7
|
-
* - A type is looked up on each use, so a plugin may add it after this plugin's services are created.
|
|
8
|
-
* - A definition may keep a transition on an event whose type is gone (its plugin was removed): saving leaves it as it
|
|
9
|
-
* was, nobody fires it, and the editor shows it as unavailable. A new transition on it is refused.
|
|
10
|
-
* - `from` and `to` limit the categories of status a transition on the event may leave and enter, when saving.
|
|
11
|
-
*/
|
|
12
|
-
import { WORKFLOW_EVENT_PATTERN, isBuiltInEvent, } from '../../../shared/workflows.js';
|
|
13
|
-
export function createWorkflowEventTypes() {
|
|
14
|
-
const types = new Map();
|
|
15
|
-
return {
|
|
16
|
-
add(type) {
|
|
17
|
-
if (!WORKFLOW_EVENT_PATTERN.test(type.key))
|
|
18
|
-
throw new TypeError(`Workflow event ${type.key} must match ${String(WORKFLOW_EVENT_PATTERN)}.`);
|
|
19
|
-
if (isBuiltInEvent(type.key) || types.has(type.key))
|
|
20
|
-
throw new TypeError(`Workflow event ${type.key} is registered already.`);
|
|
21
|
-
types.set(type.key, type);
|
|
22
|
-
return () => {
|
|
23
|
-
if (types.get(type.key) === type)
|
|
24
|
-
types.delete(type.key);
|
|
25
|
-
};
|
|
26
|
-
},
|
|
27
|
-
get: (key) => types.get(key),
|
|
28
|
-
list: () => [...types.values()],
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
//# sourceMappingURL=event-types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"event-types.js","sourceRoot":"","sources":["../../../../server/domains/workflows/event-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EACL,sBAAsB,EACtB,cAAc,GAEf,MAAM,8BAA8B,CAAC;AAWtC,MAAM,UAAU,wBAAwB;IACtC,MAAM,KAAK,GAAG,IAAI,GAAG,EAA6B,CAAC;IACnD,OAAO;QACL,GAAG,CAAC,IAAI;YACN,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;gBACxC,MAAM,IAAI,SAAS,CACjB,kBAAkB,IAAI,CAAC,GAAG,eAAe,MAAM,CAAC,sBAAsB,CAAC,GAAG,CAC3E,CAAC;YACJ,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;gBACjD,MAAM,IAAI,SAAS,CACjB,kBAAkB,IAAI,CAAC,GAAG,yBAAyB,CACpD,CAAC;YACJ,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC1B,OAAO,GAAG,EAAE;gBACV,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI;oBAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3D,CAAC,CAAC;QACJ,CAAC;QACD,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;QAC5B,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;KAChC,CAAC;AACJ,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export { createWorkflowService, type ProjectWorkflows, type WorkflowService, } from './workflow.service.js';
|
|
2
|
-
export { createWorkflowRoutes } from './workflow.routes.js';
|
|
3
|
-
export { createIssueRegistry, type ApproverDirectory, type RelationChecks, } from './workflow.registry.js';
|
|
4
|
-
export { builtInStatusRuleTypes } from './built-in-rule-types.js';
|
|
5
|
-
export { createStatusRuleTypes, withBuiltInTypes, type EnteredStatus, type StatusRuleCheck, type StatusRuleDescription, type StatusRuleEntry, type StatusRuleRefusal, type StatusRuleOutcome, type StatusRuleType, type StatusRuleTypes, } from './rule-types.js';
|
|
6
|
-
export { createWorkflowTemplates, type WorkflowTemplate, type WorkflowTemplateInstaller, type WorkflowTemplateText, type WorkflowTemplates, } from './templates.js';
|
|
7
|
-
export { describeRule, previewRules } from './workflow.diff.js';
|
|
8
|
-
export { createWorkflowEventTypes, type WorkflowEventType, type WorkflowEventTypes, } from './event-types.js';
|
|
9
|
-
export { createWorkflowEventService, type WorkflowEventFiring, type WorkflowEventMove, type WorkflowEventService, type WorkflowEventTarget, } from './workflow.fire.js';
|
|
10
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/domains/workflows/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,KAAK,gBAAgB,EACrB,KAAK,eAAe,GACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EACL,mBAAmB,EACnB,KAAK,iBAAiB,EACtB,KAAK,cAAc,GACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,eAAe,GACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,uBAAuB,EACvB,KAAK,gBAAgB,EACrB,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,GACvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EACL,wBAAwB,EACxB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,GACxB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,0BAA0B,EAC1B,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,GACzB,MAAM,oBAAoB,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export { createWorkflowService, } from './workflow.service.js';
|
|
2
|
-
export { createWorkflowRoutes } from './workflow.routes.js';
|
|
3
|
-
export { createIssueRegistry, } from './workflow.registry.js';
|
|
4
|
-
export { builtInStatusRuleTypes } from './built-in-rule-types.js';
|
|
5
|
-
export { createStatusRuleTypes, withBuiltInTypes, } from './rule-types.js';
|
|
6
|
-
export { createWorkflowTemplates, } from './templates.js';
|
|
7
|
-
export { describeRule, previewRules } from './workflow.diff.js';
|
|
8
|
-
export { createWorkflowEventTypes, } from './event-types.js';
|
|
9
|
-
export { createWorkflowEventService, } from './workflow.fire.js';
|
|
10
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/domains/workflows/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,GAGtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EACL,mBAAmB,GAGpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EACL,qBAAqB,EACrB,gBAAgB,GASjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,uBAAuB,GAKxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EACL,wBAAwB,GAGzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,0BAA0B,GAK3B,MAAM,oBAAoB,CAAC"}
|