monday-cli 0.2.0 → 0.3.0
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 +324 -2
- package/README.md +128 -30
- package/dist/api/board-favorites.d.ts +329 -0
- package/dist/api/board-favorites.d.ts.map +1 -0
- package/dist/api/board-favorites.js +353 -0
- package/dist/api/board-favorites.js.map +1 -0
- package/dist/api/board-mutation-result.d.ts +9 -5
- package/dist/api/board-mutation-result.d.ts.map +1 -1
- package/dist/api/board-mutation-result.js +9 -5
- package/dist/api/board-mutation-result.js.map +1 -1
- package/dist/api/board-relation-validation.d.ts +161 -0
- package/dist/api/board-relation-validation.d.ts.map +1 -0
- package/dist/api/board-relation-validation.js +317 -0
- package/dist/api/board-relation-validation.js.map +1 -0
- package/dist/api/cache.d.ts +14 -5
- package/dist/api/cache.d.ts.map +1 -1
- package/dist/api/cache.js +8 -10
- package/dist/api/cache.js.map +1 -1
- package/dist/api/column-mapping.js +2 -2
- package/dist/api/column-mapping.js.map +1 -1
- package/dist/api/column-mutation-result.d.ts +9 -5
- package/dist/api/column-mutation-result.d.ts.map +1 -1
- package/dist/api/column-mutation-result.js +9 -5
- package/dist/api/column-mutation-result.js.map +1 -1
- package/dist/api/column-types.d.ts +26 -7
- package/dist/api/column-types.d.ts.map +1 -1
- package/dist/api/column-types.js +42 -3
- package/dist/api/column-types.js.map +1 -1
- package/dist/api/column-values.d.ts +228 -31
- package/dist/api/column-values.d.ts.map +1 -1
- package/dist/api/column-values.js +551 -124
- package/dist/api/column-values.js.map +1 -1
- package/dist/api/cross-board-search.d.ts +501 -0
- package/dist/api/cross-board-search.d.ts.map +1 -0
- package/dist/api/cross-board-search.js +547 -0
- package/dist/api/cross-board-search.js.map +1 -0
- package/dist/api/dev-conventions.d.ts +1038 -0
- package/dist/api/dev-conventions.d.ts.map +1 -0
- package/dist/api/dev-conventions.js +1556 -0
- package/dist/api/dev-conventions.js.map +1 -0
- package/dist/api/dry-run.d.ts +32 -5
- package/dist/api/dry-run.d.ts.map +1 -1
- package/dist/api/dry-run.js +149 -32
- package/dist/api/dry-run.js.map +1 -1
- package/dist/api/errors.d.ts.map +1 -1
- package/dist/api/errors.js +28 -7
- package/dist/api/errors.js.map +1 -1
- package/dist/api/group-mutation-result.d.ts +9 -5
- package/dist/api/group-mutation-result.d.ts.map +1 -1
- package/dist/api/group-mutation-result.js +9 -5
- package/dist/api/group-mutation-result.js.map +1 -1
- package/dist/api/item-history-projection.d.ts +919 -0
- package/dist/api/item-history-projection.d.ts.map +1 -0
- package/dist/api/item-history-projection.js +1104 -0
- package/dist/api/item-history-projection.js.map +1 -0
- package/dist/api/item-mutation-execute.d.ts +82 -0
- package/dist/api/item-mutation-execute.d.ts.map +1 -0
- package/dist/api/item-mutation-execute.js +199 -0
- package/dist/api/item-mutation-execute.js.map +1 -0
- package/dist/api/notifications.d.ts +156 -0
- package/dist/api/notifications.d.ts.map +1 -0
- package/dist/api/notifications.js +215 -0
- package/dist/api/notifications.js.map +1 -0
- package/dist/api/oauth-test-helper.d.ts +64 -0
- package/dist/api/oauth-test-helper.d.ts.map +1 -0
- package/dist/api/oauth-test-helper.js +179 -0
- package/dist/api/oauth-test-helper.js.map +1 -0
- package/dist/api/oauth.d.ts +198 -0
- package/dist/api/oauth.d.ts.map +1 -0
- package/dist/api/oauth.js +471 -0
- package/dist/api/oauth.js.map +1 -0
- package/dist/api/partial-success-bulk.d.ts +422 -0
- package/dist/api/partial-success-bulk.d.ts.map +1 -0
- package/dist/api/partial-success-bulk.js +378 -0
- package/dist/api/partial-success-bulk.js.map +1 -0
- package/dist/api/people.d.ts +54 -1
- package/dist/api/people.d.ts.map +1 -1
- package/dist/api/people.js +27 -3
- package/dist/api/people.js.map +1 -1
- package/dist/api/probes.d.ts +487 -0
- package/dist/api/probes.d.ts.map +1 -0
- package/dist/api/probes.js +881 -0
- package/dist/api/probes.js.map +1 -0
- package/dist/api/raw-document.d.ts.map +1 -1
- package/dist/api/raw-document.js +2 -2
- package/dist/api/raw-document.js.map +1 -1
- package/dist/api/raw-write.d.ts.map +1 -1
- package/dist/api/raw-write.js +11 -3
- package/dist/api/raw-write.js.map +1 -1
- package/dist/api/resolution-context.d.ts +23 -11
- package/dist/api/resolution-context.d.ts.map +1 -1
- package/dist/api/resolution-context.js +53 -12
- package/dist/api/resolution-context.js.map +1 -1
- package/dist/api/resolution-pass.d.ts +30 -1
- package/dist/api/resolution-pass.d.ts.map +1 -1
- package/dist/api/resolution-pass.js +36 -1
- package/dist/api/resolution-pass.js.map +1 -1
- package/dist/api/resolve-client.d.ts +11 -0
- package/dist/api/resolve-client.d.ts.map +1 -1
- package/dist/api/resolve-client.js +1 -1
- package/dist/api/resolve-client.js.map +1 -1
- package/dist/api/response-root.d.ts +92 -46
- package/dist/api/response-root.d.ts.map +1 -1
- package/dist/api/response-root.js +93 -41
- package/dist/api/response-root.js.map +1 -1
- package/dist/api/tag-directory.d.ts +154 -0
- package/dist/api/tag-directory.d.ts.map +1 -0
- package/dist/api/tag-directory.js +325 -0
- package/dist/api/tag-directory.js.map +1 -0
- package/dist/api/time-tracking.d.ts +165 -0
- package/dist/api/time-tracking.d.ts.map +1 -0
- package/dist/api/time-tracking.js +135 -0
- package/dist/api/time-tracking.js.map +1 -0
- package/dist/api/transport.js +3 -3
- package/dist/api/transport.js.map +1 -1
- package/dist/api/usage.d.ts +190 -0
- package/dist/api/usage.d.ts.map +1 -0
- package/dist/api/usage.js +194 -0
- package/dist/api/usage.js.map +1 -0
- package/dist/api/users-fan-out-mutation.d.ts.map +1 -1
- package/dist/api/users-fan-out-mutation.js +10 -5
- package/dist/api/users-fan-out-mutation.js.map +1 -1
- package/dist/api/webhooks.d.ts +357 -0
- package/dist/api/webhooks.d.ts.map +1 -0
- package/dist/api/webhooks.js +333 -0
- package/dist/api/webhooks.js.map +1 -0
- package/dist/cli/envelope-out.d.ts +18 -1
- package/dist/cli/envelope-out.d.ts.map +1 -1
- package/dist/cli/envelope-out.js +16 -2
- package/dist/cli/envelope-out.js.map +1 -1
- package/dist/cli/program.d.ts.map +1 -1
- package/dist/cli/program.js +120 -1
- package/dist/cli/program.js.map +1 -1
- package/dist/cli/run.d.ts +12 -0
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +2 -0
- package/dist/cli/run.js.map +1 -1
- package/dist/commands/account/tags.d.ts +37 -0
- package/dist/commands/account/tags.d.ts.map +1 -0
- package/dist/commands/account/tags.js +84 -0
- package/dist/commands/account/tags.js.map +1 -0
- package/dist/commands/auth/login.d.ts +14 -0
- package/dist/commands/auth/login.d.ts.map +1 -0
- package/dist/commands/auth/login.js +314 -0
- package/dist/commands/auth/login.js.map +1 -0
- package/dist/commands/auth/logout.d.ts +28 -0
- package/dist/commands/auth/logout.d.ts.map +1 -0
- package/dist/commands/auth/logout.js +94 -0
- package/dist/commands/auth/logout.js.map +1 -0
- package/dist/commands/board/archive.d.ts.map +1 -1
- package/dist/commands/board/archive.js +14 -14
- package/dist/commands/board/archive.js.map +1 -1
- package/dist/commands/board/column-create.d.ts +3 -3
- package/dist/commands/board/column-create.d.ts.map +1 -1
- package/dist/commands/board/column-create.js +52 -45
- package/dist/commands/board/column-create.js.map +1 -1
- package/dist/commands/board/column-delete.d.ts.map +1 -1
- package/dist/commands/board/column-delete.js +15 -16
- package/dist/commands/board/column-delete.js.map +1 -1
- package/dist/commands/board/column-update.d.ts.map +1 -1
- package/dist/commands/board/column-update.js +23 -22
- package/dist/commands/board/column-update.js.map +1 -1
- package/dist/commands/board/create.d.ts.map +1 -1
- package/dist/commands/board/create.js +14 -17
- package/dist/commands/board/create.js.map +1 -1
- package/dist/commands/board/delete.d.ts.map +1 -1
- package/dist/commands/board/delete.js +12 -15
- package/dist/commands/board/delete.js.map +1 -1
- package/dist/commands/board/describe.d.ts.map +1 -1
- package/dist/commands/board/describe.js +30 -0
- package/dist/commands/board/describe.js.map +1 -1
- package/dist/commands/board/duplicate.d.ts.map +1 -1
- package/dist/commands/board/duplicate.js +12 -13
- package/dist/commands/board/duplicate.js.map +1 -1
- package/dist/commands/board/favorites.d.ts +33 -0
- package/dist/commands/board/favorites.d.ts.map +1 -0
- package/dist/commands/board/favorites.js +74 -0
- package/dist/commands/board/favorites.js.map +1 -0
- package/dist/commands/board/find.d.ts +1 -1
- package/dist/commands/board/group-archive.d.ts.map +1 -1
- package/dist/commands/board/group-archive.js +12 -16
- package/dist/commands/board/group-archive.js.map +1 -1
- package/dist/commands/board/group-create.d.ts.map +1 -1
- package/dist/commands/board/group-create.js +9 -19
- package/dist/commands/board/group-create.js.map +1 -1
- package/dist/commands/board/group-delete.d.ts.map +1 -1
- package/dist/commands/board/group-delete.js +12 -16
- package/dist/commands/board/group-delete.js.map +1 -1
- package/dist/commands/board/group-duplicate.d.ts.map +1 -1
- package/dist/commands/board/group-duplicate.js +12 -16
- package/dist/commands/board/group-duplicate.js.map +1 -1
- package/dist/commands/board/group-update.d.ts.map +1 -1
- package/dist/commands/board/group-update.js +12 -11
- package/dist/commands/board/group-update.js.map +1 -1
- package/dist/commands/board/list.d.ts +1 -1
- package/dist/commands/board/update.d.ts.map +1 -1
- package/dist/commands/board/update.js +16 -11
- package/dist/commands/board/update.js.map +1 -1
- package/dist/commands/cache/list.d.ts +2 -0
- package/dist/commands/cache/list.d.ts.map +1 -1
- package/dist/commands/cache/list.js +2 -2
- package/dist/commands/cache/list.js.map +1 -1
- package/dist/commands/dev/_shared.d.ts +40 -0
- package/dist/commands/dev/_shared.d.ts.map +1 -0
- package/dist/commands/dev/_shared.js +104 -0
- package/dist/commands/dev/_shared.js.map +1 -0
- package/dist/commands/dev/configure.d.ts +36 -0
- package/dist/commands/dev/configure.d.ts.map +1 -0
- package/dist/commands/dev/configure.js +145 -0
- package/dist/commands/dev/configure.js.map +1 -0
- package/dist/commands/dev/discover.d.ts +34 -0
- package/dist/commands/dev/discover.d.ts.map +1 -0
- package/dist/commands/dev/discover.js +117 -0
- package/dist/commands/dev/discover.js.map +1 -0
- package/dist/commands/dev/doctor.d.ts +39 -0
- package/dist/commands/dev/doctor.d.ts.map +1 -0
- package/dist/commands/dev/doctor.js +91 -0
- package/dist/commands/dev/doctor.js.map +1 -0
- package/dist/commands/dev/epic/items.d.ts +24 -0
- package/dist/commands/dev/epic/items.d.ts.map +1 -0
- package/dist/commands/dev/epic/items.js +103 -0
- package/dist/commands/dev/epic/items.js.map +1 -0
- package/dist/commands/dev/epic/list.d.ts +36 -0
- package/dist/commands/dev/epic/list.d.ts.map +1 -0
- package/dist/commands/dev/epic/list.js +120 -0
- package/dist/commands/dev/epic/list.js.map +1 -0
- package/dist/commands/dev/release/list.d.ts +21 -0
- package/dist/commands/dev/release/list.d.ts.map +1 -0
- package/dist/commands/dev/release/list.js +73 -0
- package/dist/commands/dev/release/list.js.map +1 -0
- package/dist/commands/dev/sprint/current.d.ts +24 -0
- package/dist/commands/dev/sprint/current.d.ts.map +1 -0
- package/dist/commands/dev/sprint/current.js +90 -0
- package/dist/commands/dev/sprint/current.js.map +1 -0
- package/dist/commands/dev/sprint/items.d.ts +34 -0
- package/dist/commands/dev/sprint/items.d.ts.map +1 -0
- package/dist/commands/dev/sprint/items.js +118 -0
- package/dist/commands/dev/sprint/items.js.map +1 -0
- package/dist/commands/dev/sprint/list.d.ts +41 -0
- package/dist/commands/dev/sprint/list.d.ts.map +1 -0
- package/dist/commands/dev/sprint/list.js +104 -0
- package/dist/commands/dev/sprint/list.js.map +1 -0
- package/dist/commands/dev/task/block.d.ts +29 -0
- package/dist/commands/dev/task/block.d.ts.map +1 -0
- package/dist/commands/dev/task/block.js +106 -0
- package/dist/commands/dev/task/block.js.map +1 -0
- package/dist/commands/dev/task/done.d.ts +30 -0
- package/dist/commands/dev/task/done.d.ts.map +1 -0
- package/dist/commands/dev/task/done.js +113 -0
- package/dist/commands/dev/task/done.js.map +1 -0
- package/dist/commands/dev/task/list.d.ts +42 -0
- package/dist/commands/dev/task/list.d.ts.map +1 -0
- package/dist/commands/dev/task/list.js +227 -0
- package/dist/commands/dev/task/list.js.map +1 -0
- package/dist/commands/dev/task/start.d.ts +29 -0
- package/dist/commands/dev/task/start.d.ts.map +1 -0
- package/dist/commands/dev/task/start.js +90 -0
- package/dist/commands/dev/task/start.js.map +1 -0
- package/dist/commands/emit.d.ts.map +1 -1
- package/dist/commands/emit.js +5 -3
- package/dist/commands/emit.js.map +1 -1
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +95 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/item/archive.d.ts.map +1 -1
- package/dist/commands/item/archive.js +11 -0
- package/dist/commands/item/archive.js.map +1 -1
- package/dist/commands/item/clear.d.ts.map +1 -1
- package/dist/commands/item/clear.js +15 -0
- package/dist/commands/item/clear.js.map +1 -1
- package/dist/commands/item/create.d.ts.map +1 -1
- package/dist/commands/item/create.js +41 -8
- package/dist/commands/item/create.js.map +1 -1
- package/dist/commands/item/delete.d.ts.map +1 -1
- package/dist/commands/item/delete.js +11 -0
- package/dist/commands/item/delete.js.map +1 -1
- package/dist/commands/item/duplicate.d.ts.map +1 -1
- package/dist/commands/item/duplicate.js +12 -0
- package/dist/commands/item/duplicate.js.map +1 -1
- package/dist/commands/item/history.d.ts +60 -0
- package/dist/commands/item/history.d.ts.map +1 -0
- package/dist/commands/item/history.js +309 -0
- package/dist/commands/item/history.js.map +1 -0
- package/dist/commands/item/list.d.ts.map +1 -1
- package/dist/commands/item/list.js +16 -13
- package/dist/commands/item/list.js.map +1 -1
- package/dist/commands/item/move.d.ts.map +1 -1
- package/dist/commands/item/move.js +41 -7
- package/dist/commands/item/move.js.map +1 -1
- package/dist/commands/item/search.d.ts +99 -15
- package/dist/commands/item/search.d.ts.map +1 -1
- package/dist/commands/item/search.js +480 -36
- package/dist/commands/item/search.js.map +1 -1
- package/dist/commands/item/set.d.ts.map +1 -1
- package/dist/commands/item/set.js +52 -8
- package/dist/commands/item/set.js.map +1 -1
- package/dist/commands/item/time-track/start.d.ts +61 -0
- package/dist/commands/item/time-track/start.d.ts.map +1 -0
- package/dist/commands/item/time-track/start.js +138 -0
- package/dist/commands/item/time-track/start.js.map +1 -0
- package/dist/commands/item/time-track/stop.d.ts +32 -0
- package/dist/commands/item/time-track/stop.d.ts.map +1 -0
- package/dist/commands/item/time-track/stop.js +97 -0
- package/dist/commands/item/time-track/stop.js.map +1 -0
- package/dist/commands/item/update.d.ts +1 -0
- package/dist/commands/item/update.d.ts.map +1 -1
- package/dist/commands/item/update.js +103 -113
- package/dist/commands/item/update.js.map +1 -1
- package/dist/commands/item/upsert.d.ts.map +1 -1
- package/dist/commands/item/upsert.js +48 -1
- package/dist/commands/item/upsert.js.map +1 -1
- package/dist/commands/notification/send.d.ts +60 -0
- package/dist/commands/notification/send.d.ts.map +1 -0
- package/dist/commands/notification/send.js +147 -0
- package/dist/commands/notification/send.js.map +1 -0
- package/dist/commands/parse-argv.d.ts.map +1 -1
- package/dist/commands/parse-argv.js +14 -4
- package/dist/commands/parse-argv.js.map +1 -1
- package/dist/commands/raw/index.d.ts.map +1 -1
- package/dist/commands/raw/index.js +13 -15
- package/dist/commands/raw/index.js.map +1 -1
- package/dist/commands/run-by-id-lookup.d.ts.map +1 -1
- package/dist/commands/run-by-id-lookup.js +2 -2
- package/dist/commands/run-by-id-lookup.js.map +1 -1
- package/dist/commands/schema/index.d.ts +2 -0
- package/dist/commands/schema/index.d.ts.map +1 -1
- package/dist/commands/status.d.ts +120 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +365 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/update/body-source.d.ts.map +1 -1
- package/dist/commands/update/body-source.js +2 -2
- package/dist/commands/update/body-source.js.map +1 -1
- package/dist/commands/update/create.d.ts +2 -3
- package/dist/commands/update/create.d.ts.map +1 -1
- package/dist/commands/update/create.js +15 -3
- package/dist/commands/update/create.js.map +1 -1
- package/dist/commands/update/delete.d.ts.map +1 -1
- package/dist/commands/update/delete.js +11 -0
- package/dist/commands/update/delete.js.map +1 -1
- package/dist/commands/update/edit.d.ts.map +1 -1
- package/dist/commands/update/edit.js +11 -0
- package/dist/commands/update/edit.js.map +1 -1
- package/dist/commands/update/list.d.ts.map +1 -1
- package/dist/commands/update/list.js +15 -12
- package/dist/commands/update/list.js.map +1 -1
- package/dist/commands/update/reply.d.ts.map +1 -1
- package/dist/commands/update/reply.js +11 -0
- package/dist/commands/update/reply.js.map +1 -1
- package/dist/commands/update/toggle.d.ts.map +1 -1
- package/dist/commands/update/toggle.js +13 -0
- package/dist/commands/update/toggle.js.map +1 -1
- package/dist/commands/usage.d.ts +58 -0
- package/dist/commands/usage.d.ts.map +1 -0
- package/dist/commands/usage.js +94 -0
- package/dist/commands/usage.js.map +1 -0
- package/dist/commands/webhook/create.d.ts +74 -0
- package/dist/commands/webhook/create.d.ts.map +1 -0
- package/dist/commands/webhook/create.js +150 -0
- package/dist/commands/webhook/create.js.map +1 -0
- package/dist/commands/webhook/delete.d.ts +46 -0
- package/dist/commands/webhook/delete.d.ts.map +1 -0
- package/dist/commands/webhook/delete.js +141 -0
- package/dist/commands/webhook/delete.js.map +1 -0
- package/dist/commands/webhook/list.d.ts +23 -0
- package/dist/commands/webhook/list.d.ts.map +1 -0
- package/dist/commands/webhook/list.js +68 -0
- package/dist/commands/webhook/list.js.map +1 -0
- package/dist/commands/workspace/create.d.ts.map +1 -1
- package/dist/commands/workspace/create.js +16 -0
- package/dist/commands/workspace/create.js.map +1 -1
- package/dist/commands/workspace/delete.d.ts.map +1 -1
- package/dist/commands/workspace/delete.js +13 -13
- package/dist/commands/workspace/delete.js.map +1 -1
- package/dist/commands/workspace/list.d.ts +1 -1
- package/dist/commands/workspace/update.d.ts.map +1 -1
- package/dist/commands/workspace/update.js +15 -15
- package/dist/commands/workspace/update.js.map +1 -1
- package/dist/config/credentials.d.ts +189 -0
- package/dist/config/credentials.d.ts.map +1 -0
- package/dist/config/credentials.js +300 -0
- package/dist/config/credentials.js.map +1 -0
- package/dist/config/profiles.d.ts +125 -0
- package/dist/config/profiles.d.ts.map +1 -0
- package/dist/config/profiles.js +227 -0
- package/dist/config/profiles.js.map +1 -0
- package/dist/types/global-flags.d.ts +1 -1
- package/dist/types/global-flags.d.ts.map +1 -1
- package/dist/types/global-flags.js +28 -16
- package/dist/types/global-flags.js.map +1 -1
- package/dist/types/ids.d.ts +2 -0
- package/dist/types/ids.d.ts.map +1 -1
- package/dist/types/ids.js +5 -3
- package/dist/types/ids.js.map +1 -1
- package/dist/utils/errors.d.ts +57 -3
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +69 -2
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/fs.d.ts +35 -0
- package/dist/utils/fs.d.ts.map +1 -0
- package/dist/utils/fs.js +36 -0
- package/dist/utils/fs.js.map +1 -0
- package/dist/utils/json.d.ts +60 -0
- package/dist/utils/json.d.ts.map +1 -0
- package/dist/utils/json.js +86 -0
- package/dist/utils/json.js.map +1 -0
- package/dist/utils/output/ndjson.d.ts +65 -3
- package/dist/utils/output/ndjson.d.ts.map +1 -1
- package/dist/utils/output/ndjson.js +21 -0
- package/dist/utils/output/ndjson.js.map +1 -1
- package/dist/utils/redact.d.ts.map +1 -1
- package/dist/utils/redact.js +31 -0
- package/dist/utils/redact.js.map +1 -1
- package/package.json +2 -1
- package/dist/commands/account/client-helper.d.ts +0 -37
- package/dist/commands/account/client-helper.d.ts.map +0 -1
- package/dist/commands/account/client-helper.js +0 -55
- package/dist/commands/account/client-helper.js.map +0 -1
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `monday dev epic list [--state active|done]` — list epics filtered
|
|
3
|
+
* by completion state (cli-design §4.3 + §5.9; v0.3-plan §3 M26b).
|
|
4
|
+
*
|
|
5
|
+
* **Runtime body landed at M26b IMPL.** Loads the active profile's
|
|
6
|
+
* dev mapping, walks `items_page` on the configured `epics_board`,
|
|
7
|
+
* and filters client-side by the per-row status column — `active` =
|
|
8
|
+
* NOT `Done`/`Cancelled`; `done` = `Done`/`Cancelled`. Epics without
|
|
9
|
+
* a resolvable status column fall through to the `active` bucket;
|
|
10
|
+
* the structural misconfiguration is diagnosed via `dev doctor`'s
|
|
11
|
+
* board-existence check (no warning code registered at M26 pre-flight
|
|
12
|
+
* — see the M26 round-1 Codex P2-3 clarification).
|
|
13
|
+
*
|
|
14
|
+
* **Status-column heuristic.** Walks every column on a row looking for
|
|
15
|
+
* the first `status` or `color` column whose projected `text` /
|
|
16
|
+
* `label` field carries a non-empty string. The first such field
|
|
17
|
+
* decides the row's state. Reading from `column_values` (already
|
|
18
|
+
* carried on the items_page projection's columns map) means no extra
|
|
19
|
+
* round-trip; the epic board's column ID isn't needed up front.
|
|
20
|
+
*
|
|
21
|
+
* Idempotent: yes (pure read).
|
|
22
|
+
*/
|
|
23
|
+
import { z } from 'zod';
|
|
24
|
+
import { ensureSubcommand } from '../../types.js';
|
|
25
|
+
import { parseArgv } from '../../parse-argv.js';
|
|
26
|
+
import { emitSuccess } from '../../emit.js';
|
|
27
|
+
import { resolveClient } from '../../../api/resolve-client.js';
|
|
28
|
+
import { loadDevMapping, walkDevBoardItems, } from '../../../api/dev-conventions.js';
|
|
29
|
+
import { resolveActiveDevProfile, requireDevBoard } from '../_shared.js';
|
|
30
|
+
import { projectedItemSchema, } from '../../../api/item-projection.js';
|
|
31
|
+
const EPIC_STATE_LITERALS = ['active', 'done'];
|
|
32
|
+
const inputSchema = z
|
|
33
|
+
.object({
|
|
34
|
+
state: z.enum(EPIC_STATE_LITERALS).optional(),
|
|
35
|
+
})
|
|
36
|
+
.strict();
|
|
37
|
+
const outputSchema = z.array(projectedItemSchema);
|
|
38
|
+
const DONE_LABELS = new Set([
|
|
39
|
+
'done',
|
|
40
|
+
'cancelled',
|
|
41
|
+
'canceled',
|
|
42
|
+
]);
|
|
43
|
+
/**
|
|
44
|
+
* Returns the projected status-label string for an item, if any.
|
|
45
|
+
* Walks the projected columns looking for the first status / color
|
|
46
|
+
* column with a non-empty `label` or `text`.
|
|
47
|
+
*/
|
|
48
|
+
const projectedStatusLabel = (item) => {
|
|
49
|
+
for (const col of Object.values(item.columns)) {
|
|
50
|
+
if (col.type !== 'status' && col.type !== 'color')
|
|
51
|
+
continue;
|
|
52
|
+
if (typeof col.label === 'string' && col.label.length > 0) {
|
|
53
|
+
return col.label;
|
|
54
|
+
}
|
|
55
|
+
if (typeof col.text === 'string' && col.text.length > 0) {
|
|
56
|
+
return col.text;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return null;
|
|
60
|
+
};
|
|
61
|
+
const isDoneEpic = (item) => {
|
|
62
|
+
const label = projectedStatusLabel(item);
|
|
63
|
+
if (label === null)
|
|
64
|
+
return false;
|
|
65
|
+
return DONE_LABELS.has(label.toLocaleLowerCase('und'));
|
|
66
|
+
};
|
|
67
|
+
export const devEpicListCommand = {
|
|
68
|
+
name: 'dev.epic.list',
|
|
69
|
+
summary: 'List epics for the configured epics board (filter by completion state)',
|
|
70
|
+
examples: [
|
|
71
|
+
'monday dev epic list',
|
|
72
|
+
'monday dev epic list --state active',
|
|
73
|
+
'monday dev epic list --state done --json',
|
|
74
|
+
],
|
|
75
|
+
idempotent: true,
|
|
76
|
+
inputSchema,
|
|
77
|
+
outputSchema,
|
|
78
|
+
attach: (program, ctx) => {
|
|
79
|
+
const dev = ensureSubcommand(program, 'dev', 'Monday Dev workflow shortcuts (cli-design §2.7 — convention, not API)');
|
|
80
|
+
const epic = ensureSubcommand(dev, 'epic', 'Epic workflow verbs (three-level depth per cli-design §5.2 carve-out 1)');
|
|
81
|
+
epic
|
|
82
|
+
.command('list')
|
|
83
|
+
.description(devEpicListCommand.summary)
|
|
84
|
+
.option('--state <state>', 'Filter epics by completion state: active | done. Without --state, returns every epic on the board.')
|
|
85
|
+
.addHelpText('after', [
|
|
86
|
+
'',
|
|
87
|
+
'Examples:',
|
|
88
|
+
...devEpicListCommand.examples.map((e) => ` ${e}`),
|
|
89
|
+
'',
|
|
90
|
+
].join('\n'))
|
|
91
|
+
.action(async (rawOpts) => {
|
|
92
|
+
const opts = parseArgv(devEpicListCommand.inputSchema, rawOpts);
|
|
93
|
+
const profile = await resolveActiveDevProfile(ctx, program.opts());
|
|
94
|
+
const mapping = await loadDevMapping(profile.name, profile.homeOptions);
|
|
95
|
+
const boardId = requireDevBoard(mapping, 'epics_board', profile.name);
|
|
96
|
+
const { client, apiVersion } = resolveClient(ctx, program.opts());
|
|
97
|
+
const { items, complexity } = await walkDevBoardItems({
|
|
98
|
+
client,
|
|
99
|
+
boardId,
|
|
100
|
+
operationName: 'DevEpicList',
|
|
101
|
+
now: ctx.clock,
|
|
102
|
+
});
|
|
103
|
+
const filtered = opts.state === undefined
|
|
104
|
+
? items
|
|
105
|
+
: items.filter((i) => opts.state === 'done' ? isDoneEpic(i) : !isDoneEpic(i));
|
|
106
|
+
emitSuccess({
|
|
107
|
+
ctx,
|
|
108
|
+
data: filtered,
|
|
109
|
+
schema: devEpicListCommand.outputSchema,
|
|
110
|
+
programOpts: program.opts(),
|
|
111
|
+
kind: 'collection',
|
|
112
|
+
apiVersion,
|
|
113
|
+
source: 'live',
|
|
114
|
+
cacheAgeSeconds: null,
|
|
115
|
+
complexity,
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
},
|
|
119
|
+
};
|
|
120
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/commands/dev/epic/list.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `monday dev release list` — list releases for the configured
|
|
3
|
+
* releases board (cli-design §4.3 + §5.9; v0.3-plan §3 M26b).
|
|
4
|
+
*
|
|
5
|
+
* **Runtime body landed at M26b IMPL.** Loads the active profile's
|
|
6
|
+
* dev mapping, walks `items_page` on the configured `releases_board`,
|
|
7
|
+
* and surfaces every release as a {@link ProjectedItem}. No per-state
|
|
8
|
+
* filter at v0.3 — releases don't carry a documented per-release-
|
|
9
|
+
* state taxonomy yet; a future v0.3.x / v0.4 may add
|
|
10
|
+
* `--state shipped|upcoming` once the date-column conventions
|
|
11
|
+
* stabilise.
|
|
12
|
+
*
|
|
13
|
+
* Idempotent: yes (pure read).
|
|
14
|
+
*/
|
|
15
|
+
import { z } from 'zod';
|
|
16
|
+
import { type CommandModule } from '../../types.js';
|
|
17
|
+
import { type ProjectedItem } from '../../../api/item-projection.js';
|
|
18
|
+
declare const inputSchema: z.ZodObject<{}, z.core.$strict>;
|
|
19
|
+
export declare const devReleaseListCommand: CommandModule<z.infer<typeof inputSchema>, readonly ProjectedItem[]>;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=list.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../src/commands/dev/release/list.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAStE,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,iCAAiC,CAAC;AAEzC,QAAA,MAAM,WAAW,iCAAwB,CAAC;AAI1C,eAAO,MAAM,qBAAqB,EAAE,aAAa,CAC/C,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,EAC3B,SAAS,aAAa,EAAE,CA8DzB,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `monday dev release list` — list releases for the configured
|
|
3
|
+
* releases board (cli-design §4.3 + §5.9; v0.3-plan §3 M26b).
|
|
4
|
+
*
|
|
5
|
+
* **Runtime body landed at M26b IMPL.** Loads the active profile's
|
|
6
|
+
* dev mapping, walks `items_page` on the configured `releases_board`,
|
|
7
|
+
* and surfaces every release as a {@link ProjectedItem}. No per-state
|
|
8
|
+
* filter at v0.3 — releases don't carry a documented per-release-
|
|
9
|
+
* state taxonomy yet; a future v0.3.x / v0.4 may add
|
|
10
|
+
* `--state shipped|upcoming` once the date-column conventions
|
|
11
|
+
* stabilise.
|
|
12
|
+
*
|
|
13
|
+
* Idempotent: yes (pure read).
|
|
14
|
+
*/
|
|
15
|
+
import { z } from 'zod';
|
|
16
|
+
import { ensureSubcommand } from '../../types.js';
|
|
17
|
+
import { parseArgv } from '../../parse-argv.js';
|
|
18
|
+
import { emitSuccess } from '../../emit.js';
|
|
19
|
+
import { resolveClient } from '../../../api/resolve-client.js';
|
|
20
|
+
import { loadDevMapping, walkDevBoardItems, } from '../../../api/dev-conventions.js';
|
|
21
|
+
import { resolveActiveDevProfile, requireDevBoard } from '../_shared.js';
|
|
22
|
+
import { projectedItemSchema, } from '../../../api/item-projection.js';
|
|
23
|
+
const inputSchema = z.object({}).strict();
|
|
24
|
+
const outputSchema = z.array(projectedItemSchema);
|
|
25
|
+
export const devReleaseListCommand = {
|
|
26
|
+
name: 'dev.release.list',
|
|
27
|
+
summary: 'List releases for the configured releases board',
|
|
28
|
+
examples: [
|
|
29
|
+
'monday dev release list',
|
|
30
|
+
'monday dev release list --json',
|
|
31
|
+
],
|
|
32
|
+
idempotent: true,
|
|
33
|
+
inputSchema,
|
|
34
|
+
outputSchema,
|
|
35
|
+
attach: (program, ctx) => {
|
|
36
|
+
const dev = ensureSubcommand(program, 'dev', 'Monday Dev workflow shortcuts (cli-design §2.7 — convention, not API)');
|
|
37
|
+
const release = ensureSubcommand(dev, 'release', 'Release workflow verbs (three-level depth per cli-design §5.2 carve-out 1)');
|
|
38
|
+
release
|
|
39
|
+
.command('list')
|
|
40
|
+
.description(devReleaseListCommand.summary)
|
|
41
|
+
.addHelpText('after', [
|
|
42
|
+
'',
|
|
43
|
+
'Examples:',
|
|
44
|
+
...devReleaseListCommand.examples.map((e) => ` ${e}`),
|
|
45
|
+
'',
|
|
46
|
+
].join('\n'))
|
|
47
|
+
.action(async (rawOpts) => {
|
|
48
|
+
parseArgv(devReleaseListCommand.inputSchema, rawOpts);
|
|
49
|
+
const profile = await resolveActiveDevProfile(ctx, program.opts());
|
|
50
|
+
const mapping = await loadDevMapping(profile.name, profile.homeOptions);
|
|
51
|
+
const boardId = requireDevBoard(mapping, 'releases_board', profile.name);
|
|
52
|
+
const { client, apiVersion } = resolveClient(ctx, program.opts());
|
|
53
|
+
const { items, complexity } = await walkDevBoardItems({
|
|
54
|
+
client,
|
|
55
|
+
boardId,
|
|
56
|
+
operationName: 'DevReleaseList',
|
|
57
|
+
now: ctx.clock,
|
|
58
|
+
});
|
|
59
|
+
emitSuccess({
|
|
60
|
+
ctx,
|
|
61
|
+
data: items,
|
|
62
|
+
schema: devReleaseListCommand.outputSchema,
|
|
63
|
+
programOpts: program.opts(),
|
|
64
|
+
kind: 'collection',
|
|
65
|
+
apiVersion,
|
|
66
|
+
source: 'live',
|
|
67
|
+
cacheAgeSeconds: null,
|
|
68
|
+
complexity,
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
},
|
|
72
|
+
};
|
|
73
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/commands/dev/release/list.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAsB,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EACL,cAAc,EACd,iBAAiB,GAClB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,EACL,mBAAmB,GAEpB,MAAM,iCAAiC,CAAC;AAEzC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AAE1C,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;AAElD,MAAM,CAAC,MAAM,qBAAqB,GAG9B;IACF,IAAI,EAAE,kBAAkB;IACxB,OAAO,EAAE,iDAAiD;IAC1D,QAAQ,EAAE;QACR,yBAAyB;QACzB,gCAAgC;KACjC;IACD,UAAU,EAAE,IAAI;IAChB,WAAW;IACX,YAAY;IACZ,MAAM,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;QACvB,MAAM,GAAG,GAAG,gBAAgB,CAC1B,OAAO,EACP,KAAK,EACL,uEAAuE,CACxE,CAAC;QACF,MAAM,OAAO,GAAG,gBAAgB,CAC9B,GAAG,EACH,SAAS,EACT,4EAA4E,CAC7E,CAAC;QACF,OAAO;aACJ,OAAO,CAAC,MAAM,CAAC;aACf,WAAW,CAAC,qBAAqB,CAAC,OAAO,CAAC;aAC1C,WAAW,CACV,OAAO,EACP;YACE,EAAE;YACF,WAAW;YACX,GAAG,qBAAqB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;YACtD,EAAE;SACH,CAAC,IAAI,CAAC,IAAI,CAAC,CACb;aACA,MAAM,CAAC,KAAK,EAAE,OAAgB,EAAE,EAAE;YACjC,SAAS,CAAC,qBAAqB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAEtD,MAAM,OAAO,GAAG,MAAM,uBAAuB,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YACnE,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;YACxE,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,EAAE,gBAAgB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YAEzE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YAClE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,iBAAiB,CAAC;gBACpD,MAAM;gBACN,OAAO;gBACP,aAAa,EAAE,gBAAgB;gBAC/B,GAAG,EAAE,GAAG,CAAC,KAAK;aACf,CAAC,CAAC;YAEH,WAAW,CAAC;gBACV,GAAG;gBACH,IAAI,EAAE,KAAK;gBACX,MAAM,EAAE,qBAAqB,CAAC,YAAY;gBAC1C,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE;gBAC3B,IAAI,EAAE,YAAY;gBAClB,UAAU;gBACV,MAAM,EAAE,MAAM;gBACd,eAAe,EAAE,IAAI;gBACrB,UAAU;aACX,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `monday dev sprint current` — the active sprint for the active
|
|
3
|
+
* profile (cli-design §4.3 + §5.9 + §11.3; v0.3-plan §3 M26b).
|
|
4
|
+
*
|
|
5
|
+
* **Runtime body landed at M26b IMPL.** Loads the active profile's
|
|
6
|
+
* `sprints_board`, walks `items_page`, picks the first sprint whose
|
|
7
|
+
* date range straddles `ctx.clock()` (per the same date-range
|
|
8
|
+
* derivation `dev sprint list` uses). Throws `not_found` when no
|
|
9
|
+
* sprint is active, with a hint pointing at
|
|
10
|
+
* `monday dev sprint list --state future` for upcoming sprints.
|
|
11
|
+
*
|
|
12
|
+
* Idempotent: yes (pure read). Output is non-deterministic at the
|
|
13
|
+
* day boundary — agents polling on the cutover should expect the
|
|
14
|
+
* sprint to flip mid-day if their workspace's sprints have adjacent
|
|
15
|
+
* date ranges. When two sprints overlap (rare but legal), the first
|
|
16
|
+
* encountered (per the items_page sort-by-id-asc walker) wins.
|
|
17
|
+
*/
|
|
18
|
+
import { z } from 'zod';
|
|
19
|
+
import { type CommandModule } from '../../types.js';
|
|
20
|
+
import { type ProjectedItem } from '../../../api/item-projection.js';
|
|
21
|
+
declare const inputSchema: z.ZodObject<{}, z.core.$strict>;
|
|
22
|
+
export declare const devSprintCurrentCommand: CommandModule<z.infer<typeof inputSchema>, ProjectedItem>;
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=current.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"current.d.ts","sourceRoot":"","sources":["../../../../src/commands/dev/sprint/current.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAYtE,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,iCAAiC,CAAC;AAEzC,QAAA,MAAM,WAAW,iCAAwB,CAAC;AAE1C,eAAO,MAAM,uBAAuB,EAAE,aAAa,CACjD,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,EAC3B,aAAa,CAmFd,CAAC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `monday dev sprint current` — the active sprint for the active
|
|
3
|
+
* profile (cli-design §4.3 + §5.9 + §11.3; v0.3-plan §3 M26b).
|
|
4
|
+
*
|
|
5
|
+
* **Runtime body landed at M26b IMPL.** Loads the active profile's
|
|
6
|
+
* `sprints_board`, walks `items_page`, picks the first sprint whose
|
|
7
|
+
* date range straddles `ctx.clock()` (per the same date-range
|
|
8
|
+
* derivation `dev sprint list` uses). Throws `not_found` when no
|
|
9
|
+
* sprint is active, with a hint pointing at
|
|
10
|
+
* `monday dev sprint list --state future` for upcoming sprints.
|
|
11
|
+
*
|
|
12
|
+
* Idempotent: yes (pure read). Output is non-deterministic at the
|
|
13
|
+
* day boundary — agents polling on the cutover should expect the
|
|
14
|
+
* sprint to flip mid-day if their workspace's sprints have adjacent
|
|
15
|
+
* date ranges. When two sprints overlap (rare but legal), the first
|
|
16
|
+
* encountered (per the items_page sort-by-id-asc walker) wins.
|
|
17
|
+
*/
|
|
18
|
+
import { z } from 'zod';
|
|
19
|
+
import { ApiError } from '../../../utils/errors.js';
|
|
20
|
+
import { ensureSubcommand } from '../../types.js';
|
|
21
|
+
import { parseArgv } from '../../parse-argv.js';
|
|
22
|
+
import { emitSuccess } from '../../emit.js';
|
|
23
|
+
import { resolveClient } from '../../../api/resolve-client.js';
|
|
24
|
+
import { classifySprint, dayEpoch, extractDateRange, loadDevMapping, walkDevBoardItems, } from '../../../api/dev-conventions.js';
|
|
25
|
+
import { resolveActiveDevProfile, requireDevBoard } from '../_shared.js';
|
|
26
|
+
import { projectedItemSchema, } from '../../../api/item-projection.js';
|
|
27
|
+
const inputSchema = z.object({}).strict();
|
|
28
|
+
export const devSprintCurrentCommand = {
|
|
29
|
+
name: 'dev.sprint.current',
|
|
30
|
+
summary: 'Show the active sprint for the configured sprints board',
|
|
31
|
+
examples: [
|
|
32
|
+
'monday dev sprint current',
|
|
33
|
+
'monday dev sprint current --json',
|
|
34
|
+
],
|
|
35
|
+
idempotent: true,
|
|
36
|
+
inputSchema,
|
|
37
|
+
outputSchema: projectedItemSchema,
|
|
38
|
+
attach: (program, ctx) => {
|
|
39
|
+
const dev = ensureSubcommand(program, 'dev', 'Monday Dev workflow shortcuts (cli-design §2.7 — convention, not API)');
|
|
40
|
+
const sprint = ensureSubcommand(dev, 'sprint', 'Sprint workflow verbs (three-level depth per cli-design §5.2 carve-out 1)');
|
|
41
|
+
sprint
|
|
42
|
+
.command('current')
|
|
43
|
+
.description(devSprintCurrentCommand.summary)
|
|
44
|
+
.addHelpText('after', [
|
|
45
|
+
'',
|
|
46
|
+
'Examples:',
|
|
47
|
+
...devSprintCurrentCommand.examples.map((e) => ` ${e}`),
|
|
48
|
+
'',
|
|
49
|
+
].join('\n'))
|
|
50
|
+
.action(async (rawOpts) => {
|
|
51
|
+
parseArgv(devSprintCurrentCommand.inputSchema, rawOpts);
|
|
52
|
+
const profile = await resolveActiveDevProfile(ctx, program.opts());
|
|
53
|
+
const mapping = await loadDevMapping(profile.name, profile.homeOptions);
|
|
54
|
+
const boardId = requireDevBoard(mapping, 'sprints_board', profile.name);
|
|
55
|
+
const { client, apiVersion } = resolveClient(ctx, program.opts());
|
|
56
|
+
const { items, complexity } = await walkDevBoardItems({
|
|
57
|
+
client,
|
|
58
|
+
boardId,
|
|
59
|
+
operationName: 'DevSprintCurrent',
|
|
60
|
+
now: ctx.clock,
|
|
61
|
+
});
|
|
62
|
+
const todayEpoch = dayEpoch(ctx.clock().toISOString());
|
|
63
|
+
/* c8 ignore next 3 */
|
|
64
|
+
if (todayEpoch === null) {
|
|
65
|
+
throw new Error('unreachable: ctx.clock() produced an unparseable ISO string');
|
|
66
|
+
}
|
|
67
|
+
const active = items.find((i) => classifySprint(extractDateRange(i), todayEpoch) === 'active');
|
|
68
|
+
if (active === undefined) {
|
|
69
|
+
throw new ApiError('not_found', `no active sprint on board ${boardId} for profile \`${profile.name}\``, {
|
|
70
|
+
details: {
|
|
71
|
+
profile: profile.name,
|
|
72
|
+
board_id: boardId,
|
|
73
|
+
hint: 'inspect upcoming sprints with `monday dev sprint list --state future`',
|
|
74
|
+
},
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
emitSuccess({
|
|
78
|
+
ctx,
|
|
79
|
+
data: active,
|
|
80
|
+
schema: devSprintCurrentCommand.outputSchema,
|
|
81
|
+
programOpts: program.opts(),
|
|
82
|
+
apiVersion,
|
|
83
|
+
source: 'live',
|
|
84
|
+
cacheAgeSeconds: null,
|
|
85
|
+
complexity,
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
},
|
|
89
|
+
};
|
|
90
|
+
//# sourceMappingURL=current.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"current.js","sourceRoot":"","sources":["../../../../src/commands/dev/sprint/current.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `monday dev sprint items <sid>` — list the task items linked to
|
|
3
|
+
* a named sprint (cli-design §4.3 + §5.9; v0.3-plan §3 M26b).
|
|
4
|
+
*
|
|
5
|
+
* **Runtime body landed at M26b IMPL.** Loads the active profile's
|
|
6
|
+
* dev mapping, hydrates the configured `tasks_board`'s columns to
|
|
7
|
+
* locate the `board_relation` column that references the configured
|
|
8
|
+
* `sprints_board` (`tasks_to_sprints_relation` per the M26a doctor
|
|
9
|
+
* check), walks all tasks, and filters client-side by inspecting
|
|
10
|
+
* the relation column's `value.linkedPulseIds` / `value.item_ids`
|
|
11
|
+
* payload.
|
|
12
|
+
*
|
|
13
|
+
* **<sid> resolution.** Positional sprint ID is an item ID on the
|
|
14
|
+
* sprints board (sprints are items, not first-class entities).
|
|
15
|
+
* `ItemIdSchema` validates the shape at the argv layer; invalid IDs
|
|
16
|
+
* surface `usage_error`. The sprint item is NOT hydrated by this
|
|
17
|
+
* verb — only the tasks linked to it.
|
|
18
|
+
*
|
|
19
|
+
* **`dev_board_misconfigured` surfaces** when the tasks board has no
|
|
20
|
+
* `board_relation` column linking to `sprints_board` (the
|
|
21
|
+
* `tasks_to_sprints_relation` doctor check would fail). Points the
|
|
22
|
+
* agent at `monday dev doctor` for diagnostics.
|
|
23
|
+
*
|
|
24
|
+
* Idempotent: yes (pure read).
|
|
25
|
+
*/
|
|
26
|
+
import { z } from 'zod';
|
|
27
|
+
import { type CommandModule } from '../../types.js';
|
|
28
|
+
import { type ProjectedItem } from '../../../api/item-projection.js';
|
|
29
|
+
declare const inputSchema: z.ZodObject<{
|
|
30
|
+
sprintId: z.core.$ZodBranded<z.ZodString, "ItemId", "out">;
|
|
31
|
+
}, z.core.$strict>;
|
|
32
|
+
export declare const devSprintItemsCommand: CommandModule<z.infer<typeof inputSchema>, readonly ProjectedItem[]>;
|
|
33
|
+
export {};
|
|
34
|
+
//# sourceMappingURL=items.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"items.d.ts","sourceRoot":"","sources":["../../../../src/commands/dev/sprint/items.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAatE,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,iCAAiC,CAAC;AAEzC,QAAA,MAAM,WAAW;;kBAIN,CAAC;AAIZ,eAAO,MAAM,qBAAqB,EAAE,aAAa,CAC/C,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,EAC3B,SAAS,aAAa,EAAE,CAwGzB,CAAC"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `monday dev sprint items <sid>` — list the task items linked to
|
|
3
|
+
* a named sprint (cli-design §4.3 + §5.9; v0.3-plan §3 M26b).
|
|
4
|
+
*
|
|
5
|
+
* **Runtime body landed at M26b IMPL.** Loads the active profile's
|
|
6
|
+
* dev mapping, hydrates the configured `tasks_board`'s columns to
|
|
7
|
+
* locate the `board_relation` column that references the configured
|
|
8
|
+
* `sprints_board` (`tasks_to_sprints_relation` per the M26a doctor
|
|
9
|
+
* check), walks all tasks, and filters client-side by inspecting
|
|
10
|
+
* the relation column's `value.linkedPulseIds` / `value.item_ids`
|
|
11
|
+
* payload.
|
|
12
|
+
*
|
|
13
|
+
* **<sid> resolution.** Positional sprint ID is an item ID on the
|
|
14
|
+
* sprints board (sprints are items, not first-class entities).
|
|
15
|
+
* `ItemIdSchema` validates the shape at the argv layer; invalid IDs
|
|
16
|
+
* surface `usage_error`. The sprint item is NOT hydrated by this
|
|
17
|
+
* verb — only the tasks linked to it.
|
|
18
|
+
*
|
|
19
|
+
* **`dev_board_misconfigured` surfaces** when the tasks board has no
|
|
20
|
+
* `board_relation` column linking to `sprints_board` (the
|
|
21
|
+
* `tasks_to_sprints_relation` doctor check would fail). Points the
|
|
22
|
+
* agent at `monday dev doctor` for diagnostics.
|
|
23
|
+
*
|
|
24
|
+
* Idempotent: yes (pure read).
|
|
25
|
+
*/
|
|
26
|
+
import { z } from 'zod';
|
|
27
|
+
import { ApiError } from '../../../utils/errors.js';
|
|
28
|
+
import { ensureSubcommand } from '../../types.js';
|
|
29
|
+
import { parseArgv } from '../../parse-argv.js';
|
|
30
|
+
import { emitSuccess } from '../../emit.js';
|
|
31
|
+
import { resolveClient } from '../../../api/resolve-client.js';
|
|
32
|
+
import { ItemIdSchema } from '../../../types/ids.js';
|
|
33
|
+
import { extractLinkedItemIds, findRelationColumnIdToBoard, hydrateDevBoardColumns, loadDevMapping, walkDevBoardItems, } from '../../../api/dev-conventions.js';
|
|
34
|
+
import { resolveActiveDevProfile, requireDevBoard } from '../_shared.js';
|
|
35
|
+
import { projectedItemSchema, } from '../../../api/item-projection.js';
|
|
36
|
+
const inputSchema = z
|
|
37
|
+
.object({
|
|
38
|
+
sprintId: ItemIdSchema,
|
|
39
|
+
})
|
|
40
|
+
.strict();
|
|
41
|
+
const outputSchema = z.array(projectedItemSchema);
|
|
42
|
+
export const devSprintItemsCommand = {
|
|
43
|
+
name: 'dev.sprint.items',
|
|
44
|
+
summary: 'List task items linked to a named sprint via the board_relation column',
|
|
45
|
+
examples: [
|
|
46
|
+
'monday dev sprint items 12345678',
|
|
47
|
+
'monday dev sprint items 12345678 --json',
|
|
48
|
+
],
|
|
49
|
+
idempotent: true,
|
|
50
|
+
inputSchema,
|
|
51
|
+
outputSchema,
|
|
52
|
+
attach: (program, ctx) => {
|
|
53
|
+
const dev = ensureSubcommand(program, 'dev', 'Monday Dev workflow shortcuts (cli-design §2.7 — convention, not API)');
|
|
54
|
+
const sprint = ensureSubcommand(dev, 'sprint', 'Sprint workflow verbs (three-level depth per cli-design §5.2 carve-out 1)');
|
|
55
|
+
sprint
|
|
56
|
+
.command('items <sprintId>')
|
|
57
|
+
.description(devSprintItemsCommand.summary)
|
|
58
|
+
.addHelpText('after', [
|
|
59
|
+
'',
|
|
60
|
+
'Examples:',
|
|
61
|
+
...devSprintItemsCommand.examples.map((e) => ` ${e}`),
|
|
62
|
+
'',
|
|
63
|
+
].join('\n'))
|
|
64
|
+
.action(async (sprintIdArg) => {
|
|
65
|
+
const parsed = parseArgv(devSprintItemsCommand.inputSchema, {
|
|
66
|
+
sprintId: sprintIdArg,
|
|
67
|
+
});
|
|
68
|
+
const profile = await resolveActiveDevProfile(ctx, program.opts());
|
|
69
|
+
const mapping = await loadDevMapping(profile.name, profile.homeOptions);
|
|
70
|
+
const tasksBoard = requireDevBoard(mapping, 'tasks_board', profile.name);
|
|
71
|
+
const sprintsBoard = requireDevBoard(mapping, 'sprints_board', profile.name);
|
|
72
|
+
const { client, apiVersion } = resolveClient(ctx, program.opts());
|
|
73
|
+
// Resolve the board_relation column on tasks_board linking to
|
|
74
|
+
// sprints_board. Doctor's `tasks_to_sprints_relation` check
|
|
75
|
+
// validates this wiring at diagnostic time; the workflow verb
|
|
76
|
+
// re-resolves at runtime since the relation column ID isn't
|
|
77
|
+
// stored in the mapping.
|
|
78
|
+
const { columns, complexity: hydrateComplexity } = await hydrateDevBoardColumns(client, tasksBoard, 'DevSprintItemsHydrate');
|
|
79
|
+
const relationColumnId = findRelationColumnIdToBoard(columns, sprintsBoard);
|
|
80
|
+
if (relationColumnId === undefined) {
|
|
81
|
+
throw new ApiError('dev_board_misconfigured', `tasks board ${tasksBoard} has no board_relation column linking to sprints board ${sprintsBoard}`, {
|
|
82
|
+
details: {
|
|
83
|
+
board_id: tasksBoard,
|
|
84
|
+
target_slot: 'sprints_board',
|
|
85
|
+
target_board_id: sprintsBoard,
|
|
86
|
+
reason: 'no_matching_relation',
|
|
87
|
+
hint: 'run `monday dev doctor` for the `tasks_to_sprints_relation` check, then add or fix the Connect Boards column on the tasks board',
|
|
88
|
+
},
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
const { items, complexity: walkComplexity } = await walkDevBoardItems({
|
|
92
|
+
client,
|
|
93
|
+
boardId: tasksBoard,
|
|
94
|
+
operationName: 'DevSprintItemsWalk',
|
|
95
|
+
now: ctx.clock,
|
|
96
|
+
});
|
|
97
|
+
const filtered = items.filter((task) => {
|
|
98
|
+
const relCol = task.columns[relationColumnId];
|
|
99
|
+
if (relCol === undefined)
|
|
100
|
+
return false;
|
|
101
|
+
const linked = extractLinkedItemIds(relCol.value);
|
|
102
|
+
return linked.includes(parsed.sprintId);
|
|
103
|
+
});
|
|
104
|
+
emitSuccess({
|
|
105
|
+
ctx,
|
|
106
|
+
data: filtered,
|
|
107
|
+
schema: devSprintItemsCommand.outputSchema,
|
|
108
|
+
programOpts: program.opts(),
|
|
109
|
+
kind: 'collection',
|
|
110
|
+
apiVersion,
|
|
111
|
+
source: 'live',
|
|
112
|
+
cacheAgeSeconds: null,
|
|
113
|
+
complexity: walkComplexity ?? hydrateComplexity,
|
|
114
|
+
});
|
|
115
|
+
});
|
|
116
|
+
},
|
|
117
|
+
};
|
|
118
|
+
//# sourceMappingURL=items.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"items.js","sourceRoot":"","sources":["../../../../src/commands/dev/sprint/items.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `monday dev sprint list [--state active|past|future]` — list
|
|
3
|
+
* sprints filtered by date-range state (cli-design §4.3 + §5.9 +
|
|
4
|
+
* §11.3; v0.3-plan §3 M26b).
|
|
5
|
+
*
|
|
6
|
+
* **Runtime body landed at M26b IMPL.** Loads the active profile's
|
|
7
|
+
* dev mapping, walks `items_page` on the configured `sprints_board`,
|
|
8
|
+
* and filters client-side by date-range against `ctx.clock()`:
|
|
9
|
+
* - `active` = today within `[start, end]`
|
|
10
|
+
* - `past` = `end < today`
|
|
11
|
+
* - `future` = `start > today`
|
|
12
|
+
*
|
|
13
|
+
* Sprints without a resolvable date-range column fall through to
|
|
14
|
+
* `past` (defensive — the structural misconfiguration is diagnosed
|
|
15
|
+
* via `dev doctor`'s `sprints_date_columns_present` check; no
|
|
16
|
+
* warning code registered at M26 pre-flight). NaN-guards on
|
|
17
|
+
* `Date.parse` returns per the M24 round-2 P3-1 precedent
|
|
18
|
+
* (`4c83860`) prevent NaN-shaped state buckets.
|
|
19
|
+
*
|
|
20
|
+
* **Date-range extraction.** Prefers the `timeline` column when
|
|
21
|
+
* present (single column carrying `value.from` + `value.to`); falls
|
|
22
|
+
* back to the first two `date` columns (sorted by id, treating the
|
|
23
|
+
* lower id as start). When only one date column is present, the
|
|
24
|
+
* sprint counts as `active` if today equals the date, `past` if
|
|
25
|
+
* date is before today, `future` otherwise (1-day-wide range).
|
|
26
|
+
*
|
|
27
|
+
* Idempotent: yes (pure read).
|
|
28
|
+
*/
|
|
29
|
+
import { z } from 'zod';
|
|
30
|
+
import { type CommandModule } from '../../types.js';
|
|
31
|
+
import { type ProjectedItem } from '../../../api/item-projection.js';
|
|
32
|
+
export type { SprintState } from '../../../api/dev-conventions.js';
|
|
33
|
+
declare const inputSchema: z.ZodObject<{
|
|
34
|
+
state: z.ZodOptional<z.ZodEnum<{
|
|
35
|
+
future: "future";
|
|
36
|
+
active: "active";
|
|
37
|
+
past: "past";
|
|
38
|
+
}>>;
|
|
39
|
+
}, z.core.$strict>;
|
|
40
|
+
export declare const devSprintListCommand: CommandModule<z.infer<typeof inputSchema>, readonly ProjectedItem[]>;
|
|
41
|
+
//# sourceMappingURL=list.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../src/commands/dev/sprint/list.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAatE,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,iCAAiC,CAAC;AAEzC,YAAY,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAEnE,QAAA,MAAM,WAAW;;;;;;kBAIN,CAAC;AAIZ,eAAO,MAAM,oBAAoB,EAAE,aAAa,CAC9C,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,EAC3B,SAAS,aAAa,EAAE,CAiFzB,CAAC"}
|