monday-cli 0.2.0 → 0.4.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 +675 -2
- package/README.md +223 -31
- package/dist/api/assets.d.ts +326 -0
- package/dist/api/assets.d.ts.map +1 -0
- package/dist/api/assets.js +519 -0
- package/dist/api/assets.js.map +1 -0
- 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 +37 -14
- package/dist/api/column-types.d.ts.map +1 -1
- package/dist/api/column-types.js +47 -6
- package/dist/api/column-types.js.map +1 -1
- package/dist/api/column-values.d.ts +234 -31
- package/dist/api/column-values.d.ts.map +1 -1
- package/dist/api/column-values.js +560 -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/documents.d.ts +519 -0
- package/dist/api/documents.d.ts.map +1 -0
- package/dist/api/documents.js +586 -0
- package/dist/api/documents.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/item-watch.d.ts +263 -0
- package/dist/api/item-watch.d.ts.map +1 -0
- package/dist/api/item-watch.js +709 -0
- package/dist/api/item-watch.js.map +1 -0
- package/dist/api/multipart-transport.d.ts +223 -0
- package/dist/api/multipart-transport.d.ts.map +1 -0
- package/dist/api/multipart-transport.js +274 -0
- package/dist/api/multipart-transport.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/parallel-dispatch.d.ts +155 -0
- package/dist/api/parallel-dispatch.d.ts.map +1 -0
- package/dist/api/parallel-dispatch.js +243 -0
- package/dist/api/parallel-dispatch.js.map +1 -0
- package/dist/api/partial-success-bulk.d.ts +480 -0
- package/dist/api/partial-success-bulk.d.ts.map +1 -0
- package/dist/api/partial-success-bulk.js +436 -0
- package/dist/api/partial-success-bulk.js.map +1 -0
- package/dist/api/partial-success-mutation.d.ts +13 -1
- package/dist/api/partial-success-mutation.d.ts.map +1 -1
- package/dist/api/partial-success-mutation.js +5 -1
- package/dist/api/partial-success-mutation.js.map +1 -1
- 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 +12 -4
- package/dist/api/raw-write.d.ts.map +1 -1
- package/dist/api/raw-write.js +32 -14
- 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 +22 -0
- package/dist/api/resolve-client.d.ts.map +1 -1
- package/dist/api/resolve-client.js +9 -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 +32 -0
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +3 -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 +9 -8
- package/dist/commands/board/column-create.d.ts.map +1 -1
- package/dist/commands/board/column-create.js +61 -51
- 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/completion.d.ts +188 -0
- package/dist/commands/completion.d.ts.map +1 -0
- package/dist/commands/completion.js +418 -0
- package/dist/commands/completion.js.map +1 -0
- 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/doc/get.d.ts +46 -0
- package/dist/commands/doc/get.d.ts.map +1 -0
- package/dist/commands/doc/get.js +95 -0
- package/dist/commands/doc/get.js.map +1 -0
- package/dist/commands/doc/list.d.ts +83 -0
- package/dist/commands/doc/list.d.ts.map +1 -0
- package/dist/commands/doc/list.js +248 -0
- package/dist/commands/doc/list.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 +141 -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 +2 -0
- package/dist/commands/item/update.d.ts.map +1 -1
- package/dist/commands/item/update.js +164 -113
- package/dist/commands/item/update.js.map +1 -1
- package/dist/commands/item/upload.d.ts +108 -0
- package/dist/commands/item/upload.d.ts.map +1 -0
- package/dist/commands/item/upload.js +370 -0
- package/dist/commands/item/upload.js.map +1 -0
- 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/item/watch.d.ts +90 -0
- package/dist/commands/item/watch.d.ts.map +1 -0
- package/dist/commands/item/watch.js +342 -0
- package/dist/commands/item/watch.js.map +1 -0
- 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/update/upload.d.ts +69 -0
- package/dist/commands/update/upload.d.ts.map +1 -0
- package/dist/commands/update/upload.js +235 -0
- package/dist/commands/update/upload.js.map +1 -0
- 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 +4 -0
- package/dist/types/ids.d.ts.map +1 -1
- package/dist/types/ids.js +12 -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/mime.d.ts +24 -0
- package/dist/utils/mime.d.ts.map +1 -0
- package/dist/utils/mime.js +64 -0
- package/dist/utils/mime.js.map +1 -0
- package/dist/utils/output/envelope.d.ts +30 -0
- package/dist/utils/output/envelope.d.ts.map +1 -1
- package/dist/utils/output/envelope.js +26 -0
- package/dist/utils/output/envelope.js.map +1 -1
- package/dist/utils/output/ndjson.d.ts +90 -3
- package/dist/utils/output/ndjson.d.ts.map +1 -1
- package/dist/utils/output/ndjson.js +33 -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/dist/utils/signal.d.ts +42 -0
- package/dist/utils/signal.d.ts.map +1 -0
- package/dist/utils/signal.js +45 -0
- package/dist/utils/signal.js.map +1 -0
- 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
package/dist/cli/run.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { type ExitCode } from '../utils/errors.js';
|
|
|
3
3
|
import { type RequestIdGenerator } from '../utils/request-id.js';
|
|
4
4
|
import { type MetaBuilder } from './envelope-out.js';
|
|
5
5
|
import type { Transport } from '../api/transport.js';
|
|
6
|
+
import type { MultipartTransport } from '../api/multipart-transport.js';
|
|
6
7
|
import type { CommandModule } from '../commands/types.js';
|
|
7
8
|
/**
|
|
8
9
|
* Testable CLI runner (`v0.1-plan.md` §3 M0).
|
|
@@ -27,6 +28,17 @@ export interface RunOptions {
|
|
|
27
28
|
readonly cliDescription?: string;
|
|
28
29
|
readonly clock?: () => Date;
|
|
29
30
|
readonly transport?: Transport;
|
|
31
|
+
/**
|
|
32
|
+
* Multipart-transport seam for the v0.4-M31 asset-upload verbs
|
|
33
|
+
* (`item upload` / `update upload`). Mirrors `transport` for the
|
|
34
|
+
* JSON path: integration tests inject a `MultipartFixtureTransport`
|
|
35
|
+
* here so the runner-level multipart wire is deterministic. When
|
|
36
|
+
* unset, `commands/item/upload.ts` + `commands/update/upload.ts`
|
|
37
|
+
* build a real `createMultipartFetchTransport(...)` instance from
|
|
38
|
+
* the resolved config (mirroring `resolveClient`'s
|
|
39
|
+
* `ctx.transport ?? createFetchTransport(...)` shape).
|
|
40
|
+
*/
|
|
41
|
+
readonly multipartTransport?: MultipartTransport;
|
|
30
42
|
readonly requestIdGenerator?: RequestIdGenerator;
|
|
31
43
|
/**
|
|
32
44
|
* External abort source. `runWithSignals` provides one tied to
|
|
@@ -71,6 +83,14 @@ export interface RunContext {
|
|
|
71
83
|
readonly isTTY: boolean;
|
|
72
84
|
readonly clock: () => Date;
|
|
73
85
|
readonly transport: Transport | undefined;
|
|
86
|
+
/**
|
|
87
|
+
* Optional multipart-transport override threaded from
|
|
88
|
+
* {@link RunOptions.multipartTransport}. Asset-upload action bodies
|
|
89
|
+
* (`item upload` / `update upload`) read this slot and fall back to
|
|
90
|
+
* `createMultipartFetchTransport(...)` when unset — same shape as
|
|
91
|
+
* `transport`'s production-vs-test split.
|
|
92
|
+
*/
|
|
93
|
+
readonly multipartTransport: MultipartTransport | undefined;
|
|
74
94
|
readonly requestId: string;
|
|
75
95
|
readonly cliVersion: string;
|
|
76
96
|
/**
|
|
@@ -90,6 +110,18 @@ export interface RunContext {
|
|
|
90
110
|
* `envelope-out.ts` (M2.5 R2).
|
|
91
111
|
*/
|
|
92
112
|
readonly meta: MetaBuilder;
|
|
113
|
+
/**
|
|
114
|
+
* Per-run accumulator of literal secret values to scrub from every
|
|
115
|
+
* emitted byte (cli-design §7.4.3 redaction-runtime extension). The
|
|
116
|
+
* `program.ts` preAction hook pushes every loaded credentials-file
|
|
117
|
+
* `access_token` value here once, before any command action runs;
|
|
118
|
+
* `collectSecrets(ctx.env, ctx.runtimeSecrets)` then folds those
|
|
119
|
+
* values into the secret-bag passed to `redact()` on every emission
|
|
120
|
+
* path. The field is a mutable array via a `readonly` reference —
|
|
121
|
+
* commands never reassign it, but the preAction hook pushes into
|
|
122
|
+
* it during context setup.
|
|
123
|
+
*/
|
|
124
|
+
readonly runtimeSecrets: string[];
|
|
93
125
|
}
|
|
94
126
|
export declare const run: (options: RunOptions) => Promise<RunResult>;
|
|
95
127
|
/**
|
package/dist/cli/run.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAGL,KAAK,QAAQ,EACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAKL,KAAK,WAAW,EACjB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC/B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACjD;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B;;;;;;;OAOG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IAClD;;;;;;;OAOG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC;CACzE;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC7B;AAED;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B;;;;;;;;OAQG;IACH,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/run.js
CHANGED
|
@@ -35,10 +35,12 @@ export const run = async (options) => {
|
|
|
35
35
|
isTTY: options.isTTY,
|
|
36
36
|
clock,
|
|
37
37
|
transport: options.transport,
|
|
38
|
+
multipartTransport: options.multipartTransport,
|
|
38
39
|
requestId,
|
|
39
40
|
cliVersion: options.cliVersion,
|
|
40
41
|
signal: combinedSignal,
|
|
41
42
|
meta,
|
|
43
|
+
runtimeSecrets: [],
|
|
42
44
|
};
|
|
43
45
|
const program = buildProgram(options, ctx);
|
|
44
46
|
try {
|
|
@@ -65,6 +67,7 @@ export const run = async (options) => {
|
|
|
65
67
|
writeErrorEnvelope(cliError, {
|
|
66
68
|
stderr: options.stderr,
|
|
67
69
|
env: options.env,
|
|
70
|
+
runtimeSecrets: ctx.runtimeSecrets,
|
|
68
71
|
meta: buildBaseMeta({
|
|
69
72
|
snapshot: meta.snapshot(),
|
|
70
73
|
env: options.env,
|
package/dist/cli/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAgB,MAAM,WAAW,CAAC;AACzD,OAAO,EACL,gBAAgB,GAGjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,yBAAyB,GAE1B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,kBAAkB,GAEnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `monday account tags` — emits the per-account tag directory
|
|
3
|
+
* (`cli-design.md` §4.3, M19 Commit 5).
|
|
4
|
+
*
|
|
5
|
+
* GraphQL operation(s) called (via the cache-aware loader):
|
|
6
|
+
* - `account { tags { id, name } }` (AccountTags) — fired on cache
|
|
7
|
+
* miss / expiry / `--no-cache`.
|
|
8
|
+
*
|
|
9
|
+
* Idempotent: yes — pure read.
|
|
10
|
+
*
|
|
11
|
+
* **Why this verb is M19-fold mandatory.** The `tag_not_found` error
|
|
12
|
+
* (cli-design §6.5, registered at `4c652d5`) emits a default hint
|
|
13
|
+
* pointing at `monday account tags` so an agent who hits an unknown
|
|
14
|
+
* tag has a self-fulfilling next step. Without this verb the hint
|
|
15
|
+
* would dangle. Codex round-1 P2-9 closed this question.
|
|
16
|
+
*
|
|
17
|
+
* The output schema mirrors the cache-on-disk shape — `tags: [{id,
|
|
18
|
+
* name}]` plus a `total` count that's redundant with `tags.length`
|
|
19
|
+
* but makes table rendering one-line and saves agents the count.
|
|
20
|
+
* `meta.source` / `meta.cache_age_seconds` / `meta.complexity`
|
|
21
|
+
* surface through the standard envelope so an agent can verify
|
|
22
|
+
* cache health on a per-call basis.
|
|
23
|
+
*/
|
|
24
|
+
import { z } from 'zod';
|
|
25
|
+
import { type CommandModule } from '../types.js';
|
|
26
|
+
export declare const accountTagsOutputSchema: z.ZodObject<{
|
|
27
|
+
tags: z.ZodArray<z.ZodObject<{
|
|
28
|
+
id: z.ZodString;
|
|
29
|
+
name: z.ZodString;
|
|
30
|
+
}, z.core.$strict>>;
|
|
31
|
+
total: z.ZodNumber;
|
|
32
|
+
}, z.core.$strict>;
|
|
33
|
+
export type AccountTagsOutput = z.infer<typeof accountTagsOutputSchema>;
|
|
34
|
+
declare const inputSchema: z.ZodObject<{}, z.core.$strict>;
|
|
35
|
+
export declare const accountTagsCommand: CommandModule<z.infer<typeof inputSchema>, AccountTagsOutput>;
|
|
36
|
+
export {};
|
|
37
|
+
//# sourceMappingURL=tags.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../../../src/commands/account/tags.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAYnE,eAAO,MAAM,uBAAuB;;;;;;kBAKzB,CAAC;AAEZ,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,QAAA,MAAM,WAAW,iCAAwB,CAAC;AAE1C,eAAO,MAAM,kBAAkB,EAAE,aAAa,CAC5C,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,EAC3B,iBAAiB,CAgDlB,CAAC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `monday account tags` — emits the per-account tag directory
|
|
3
|
+
* (`cli-design.md` §4.3, M19 Commit 5).
|
|
4
|
+
*
|
|
5
|
+
* GraphQL operation(s) called (via the cache-aware loader):
|
|
6
|
+
* - `account { tags { id, name } }` (AccountTags) — fired on cache
|
|
7
|
+
* miss / expiry / `--no-cache`.
|
|
8
|
+
*
|
|
9
|
+
* Idempotent: yes — pure read.
|
|
10
|
+
*
|
|
11
|
+
* **Why this verb is M19-fold mandatory.** The `tag_not_found` error
|
|
12
|
+
* (cli-design §6.5, registered at `4c652d5`) emits a default hint
|
|
13
|
+
* pointing at `monday account tags` so an agent who hits an unknown
|
|
14
|
+
* tag has a self-fulfilling next step. Without this verb the hint
|
|
15
|
+
* would dangle. Codex round-1 P2-9 closed this question.
|
|
16
|
+
*
|
|
17
|
+
* The output schema mirrors the cache-on-disk shape — `tags: [{id,
|
|
18
|
+
* name}]` plus a `total` count that's redundant with `tags.length`
|
|
19
|
+
* but makes table rendering one-line and saves agents the count.
|
|
20
|
+
* `meta.source` / `meta.cache_age_seconds` / `meta.complexity`
|
|
21
|
+
* surface through the standard envelope so an agent can verify
|
|
22
|
+
* cache health on a per-call basis.
|
|
23
|
+
*/
|
|
24
|
+
import { z } from 'zod';
|
|
25
|
+
import { ensureSubcommand } from '../types.js';
|
|
26
|
+
import { emitSuccess } from '../emit.js';
|
|
27
|
+
import { resolveClient } from '../../api/resolve-client.js';
|
|
28
|
+
import { loadAccountTags } from '../../api/tag-directory.js';
|
|
29
|
+
const tagSchema = z
|
|
30
|
+
.object({
|
|
31
|
+
id: z.string().min(1),
|
|
32
|
+
name: z.string(),
|
|
33
|
+
})
|
|
34
|
+
.strict();
|
|
35
|
+
export const accountTagsOutputSchema = z
|
|
36
|
+
.object({
|
|
37
|
+
tags: z.array(tagSchema),
|
|
38
|
+
total: z.number().int().nonnegative(),
|
|
39
|
+
})
|
|
40
|
+
.strict();
|
|
41
|
+
const inputSchema = z.object({}).strict();
|
|
42
|
+
export const accountTagsCommand = {
|
|
43
|
+
name: 'account.tags',
|
|
44
|
+
summary: 'List the per-account tag directory (cache-aware)',
|
|
45
|
+
examples: [
|
|
46
|
+
'monday account tags',
|
|
47
|
+
'monday account tags --json',
|
|
48
|
+
'monday account tags --no-cache',
|
|
49
|
+
],
|
|
50
|
+
idempotent: true,
|
|
51
|
+
inputSchema,
|
|
52
|
+
outputSchema: accountTagsOutputSchema,
|
|
53
|
+
attach: (program, ctx) => {
|
|
54
|
+
const noun = ensureSubcommand(program, 'account', 'Account commands');
|
|
55
|
+
noun
|
|
56
|
+
.command('tags')
|
|
57
|
+
.description(accountTagsCommand.summary)
|
|
58
|
+
.addHelpText('after', ['', 'Examples:', ...accountTagsCommand.examples.map((e) => ` ${e}`), ''].join('\n'))
|
|
59
|
+
.action(async (opts) => {
|
|
60
|
+
accountTagsCommand.inputSchema.parse(opts);
|
|
61
|
+
const { client, globalFlags, apiVersion } = resolveClient(ctx, program.opts());
|
|
62
|
+
const result = await loadAccountTags({
|
|
63
|
+
client,
|
|
64
|
+
env: ctx.env,
|
|
65
|
+
noCache: globalFlags.noCache,
|
|
66
|
+
});
|
|
67
|
+
ctx.meta.setSource(result.source);
|
|
68
|
+
emitSuccess({
|
|
69
|
+
ctx,
|
|
70
|
+
data: {
|
|
71
|
+
tags: [...result.tags],
|
|
72
|
+
total: result.tags.length,
|
|
73
|
+
},
|
|
74
|
+
schema: accountTagsCommand.outputSchema,
|
|
75
|
+
programOpts: program.opts(),
|
|
76
|
+
source: result.source,
|
|
77
|
+
apiVersion,
|
|
78
|
+
complexity: result.complexity,
|
|
79
|
+
cacheAgeSeconds: result.cacheAgeSeconds,
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
//# sourceMappingURL=tags.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tags.js","sourceRoot":"","sources":["../../../src/commands/account/tags.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAsB,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,MAAM,SAAS,GAAG,CAAC;KAChB,MAAM,CAAC;IACN,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;CACjB,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC;KACrC,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;IACxB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;CACtC,CAAC;KACD,MAAM,EAAE,CAAC;AAIZ,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AAE1C,MAAM,CAAC,MAAM,kBAAkB,GAG3B;IACF,IAAI,EAAE,cAAc;IACpB,OAAO,EAAE,kDAAkD;IAC3D,QAAQ,EAAE;QACR,qBAAqB;QACrB,4BAA4B;QAC5B,gCAAgC;KACjC;IACD,UAAU,EAAE,IAAI;IAChB,WAAW;IACX,YAAY,EAAE,uBAAuB;IACrC,MAAM,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;QACvB,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC;QACtE,IAAI;aACD,OAAO,CAAC,MAAM,CAAC;aACf,WAAW,CAAC,kBAAkB,CAAC,OAAO,CAAC;aACvC,WAAW,CACV,OAAO,EACP,CAAC,EAAE,EAAE,WAAW,EAAE,GAAG,kBAAkB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACtF;aACA,MAAM,CAAC,KAAK,EAAE,IAAa,EAAE,EAAE;YAC9B,kBAAkB,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3C,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,aAAa,CACvD,GAAG,EACH,OAAO,CAAC,IAAI,EAAE,CACf,CAAC;YACF,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;gBACnC,MAAM;gBACN,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,OAAO,EAAE,WAAW,CAAC,OAAO;aAC7B,CAAC,CAAC;YACH,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAClC,WAAW,CAAC;gBACV,GAAG;gBACH,IAAI,EAAE;oBACJ,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;oBACtB,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;iBAC1B;gBACD,MAAM,EAAE,kBAAkB,CAAC,YAAY;gBACvC,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE;gBAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,UAAU;gBACV,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,eAAe,EAAE,MAAM,CAAC,eAAe;aACxC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { type CommandModule } from '../types.js';
|
|
3
|
+
declare const inputSchema: z.ZodObject<{
|
|
4
|
+
profile: z.ZodString;
|
|
5
|
+
}, z.core.$strict>;
|
|
6
|
+
declare const loginOutputSchema: z.ZodObject<{
|
|
7
|
+
profile: z.ZodString;
|
|
8
|
+
account_id: z.ZodString;
|
|
9
|
+
scopes: z.ZodArray<z.ZodString>;
|
|
10
|
+
}, z.core.$strict>;
|
|
11
|
+
export type AuthLoginOutput = z.infer<typeof loginOutputSchema>;
|
|
12
|
+
export declare const authLoginCommand: CommandModule<z.infer<typeof inputSchema>, AuthLoginOutput>;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=login.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/commands/auth/login.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAgCnE,QAAA,MAAM,WAAW;;kBAIN,CAAC;AAEZ,QAAA,MAAM,iBAAiB;;;;kBAMZ,CAAC;AAEZ,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAkHhE,eAAO,MAAM,gBAAgB,EAAE,aAAa,CAC1C,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,EAC3B,eAAe,CAwNhB,CAAC"}
|
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `monday auth login --profile <name>` — OAuth flow + credentials cache
|
|
3
|
+
* write per cli-design §7.3 / §7.4 (v0.3-plan §3 M21).
|
|
4
|
+
*
|
|
5
|
+
* **Flow shape (cli-design §7.3.1):**
|
|
6
|
+
*
|
|
7
|
+
* 1. Generate per-attempt CSRF state.
|
|
8
|
+
* 2. Bind a local listener on `127.0.0.1:9876` (or call the
|
|
9
|
+
* `__test_oauth_helper` seam when set).
|
|
10
|
+
* 3. Build the consent URL + open the browser; print the URL to
|
|
11
|
+
* stderr as a headless-friendly fallback.
|
|
12
|
+
* 4. Wait for the redirect.
|
|
13
|
+
* 5. Verify CSRF (constant-time compare; length mismatches route to
|
|
14
|
+
* `csrf_mismatch`, NOT `internal_error`).
|
|
15
|
+
* 6. Map redirect kind: `code` → exchange; `error: 'access_denied'`
|
|
16
|
+
* → `oauth_failed.user_denied`; any other error →
|
|
17
|
+
* `oauth_failed.authorization_failed`.
|
|
18
|
+
* 7. Exchange the code at `/oauth2/token`.
|
|
19
|
+
* 8. Query `account { id }` with the new token to populate the
|
|
20
|
+
* success envelope's `account_id`.
|
|
21
|
+
* 9. Persist via {@link setProfileCredentials}.
|
|
22
|
+
* 10. Emit success envelope (token NEVER in `data` per §7.4.3).
|
|
23
|
+
*/
|
|
24
|
+
import { spawn } from 'node:child_process';
|
|
25
|
+
import { z } from 'zod';
|
|
26
|
+
import { ensureSubcommand } from '../types.js';
|
|
27
|
+
import { ApiError, UsageError } from '../../utils/errors.js';
|
|
28
|
+
import { unwrapOrThrow } from '../../utils/parse-boundary.js';
|
|
29
|
+
import { parseGlobalFlags } from '../../types/global-flags.js';
|
|
30
|
+
import { emitSuccess } from '../emit.js';
|
|
31
|
+
import { bindOAuthListener, exchangeCode, generateOAuthState, verifyCsrf, OAUTH_AUTHORIZE_URL, OAUTH_CALLBACK_PATH, OAUTH_CLIENT_ID, OAUTH_CLIENT_SECRET, OAUTH_UNREGISTERED_PLACEHOLDER, OAUTH_DEFAULT_REQUESTED_SCOPES, } from '../../api/oauth.js';
|
|
32
|
+
import { buildTestOAuthListener, readTestOAuthFixture, TEST_OAUTH_HELPER_ENV_VAR, } from '../../api/oauth-test-helper.js';
|
|
33
|
+
import { setProfileCredentials, } from '../../config/credentials.js';
|
|
34
|
+
import { createFetchTransport } from '../../api/transport.js';
|
|
35
|
+
import { MondayClient, PINNED_API_VERSION } from '../../api/client.js';
|
|
36
|
+
const inputSchema = z
|
|
37
|
+
.object({
|
|
38
|
+
profile: z.string().min(1),
|
|
39
|
+
})
|
|
40
|
+
.strict();
|
|
41
|
+
const loginOutputSchema = z
|
|
42
|
+
.object({
|
|
43
|
+
profile: z.string().min(1),
|
|
44
|
+
account_id: z.string().min(1),
|
|
45
|
+
scopes: z.array(z.string()),
|
|
46
|
+
})
|
|
47
|
+
.strict();
|
|
48
|
+
const accountIdQuery = 'query AuthLoginAccountId { account { id } }';
|
|
49
|
+
const accountIdResponseSchema = z
|
|
50
|
+
.object({
|
|
51
|
+
account: z
|
|
52
|
+
.object({
|
|
53
|
+
id: z.string().min(1),
|
|
54
|
+
})
|
|
55
|
+
.loose(),
|
|
56
|
+
})
|
|
57
|
+
.loose();
|
|
58
|
+
/**
|
|
59
|
+
* Best-effort browser-open via the platform's default opener. Spawned
|
|
60
|
+
* detached + unref'd so a missing opener doesn't keep the parent
|
|
61
|
+
* process alive. Returns `true` if the spawn appeared to start; the
|
|
62
|
+
* fallback URL print runs regardless so headless boxes still see the
|
|
63
|
+
* link.
|
|
64
|
+
*/
|
|
65
|
+
/* c8 ignore start — production-only browser-open path; tests bypass
|
|
66
|
+
it via the __test_oauth_helper seam. */
|
|
67
|
+
const tryOpenBrowser = (url) => {
|
|
68
|
+
const opener = process.platform === 'darwin'
|
|
69
|
+
? 'open'
|
|
70
|
+
: process.platform === 'win32'
|
|
71
|
+
? 'start'
|
|
72
|
+
: 'xdg-open';
|
|
73
|
+
try {
|
|
74
|
+
const child = spawn(opener, [url], {
|
|
75
|
+
detached: true,
|
|
76
|
+
stdio: 'ignore',
|
|
77
|
+
});
|
|
78
|
+
child.unref();
|
|
79
|
+
child.on('error', () => {
|
|
80
|
+
// Swallow — the URL print covers headless boxes.
|
|
81
|
+
});
|
|
82
|
+
return true;
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
/* c8 ignore stop */
|
|
89
|
+
/**
|
|
90
|
+
* Fetches `account { id }` with the just-obtained token. Honours
|
|
91
|
+
* `ctx.transport` if present (test path) — production builds a fresh
|
|
92
|
+
* `FetchTransport` carrying the new token.
|
|
93
|
+
*/
|
|
94
|
+
const fetchAccountId = async (accessToken, ctx) => {
|
|
95
|
+
// Tests inject `ctx.transport` (FixtureTransport); production hits
|
|
96
|
+
// the `createFetchTransport` fallback to issue a fresh client
|
|
97
|
+
// carrying the just-obtained OAuth token.
|
|
98
|
+
/* c8 ignore next 8 */
|
|
99
|
+
const transport = ctx.transport ??
|
|
100
|
+
createFetchTransport({
|
|
101
|
+
endpoint: 'https://api.monday.com/v2',
|
|
102
|
+
apiToken: accessToken,
|
|
103
|
+
apiVersion: PINNED_API_VERSION,
|
|
104
|
+
timeoutMs: 30_000,
|
|
105
|
+
});
|
|
106
|
+
const client = new MondayClient({
|
|
107
|
+
transport,
|
|
108
|
+
signal: ctx.signal,
|
|
109
|
+
retries: 0,
|
|
110
|
+
verbose: false,
|
|
111
|
+
});
|
|
112
|
+
const response = await client.raw(accountIdQuery, undefined, {
|
|
113
|
+
operationName: 'AuthLoginAccountId',
|
|
114
|
+
});
|
|
115
|
+
// R-NEW-19 lift — canonical parse-failure via `unwrapOrThrow`;
|
|
116
|
+
// Monday's `account { id }` surface is contract-stable so this
|
|
117
|
+
// path stays defensive (c8-ignore-wrapped — the helper itself is
|
|
118
|
+
// tested end-to-end, the per-site failure is not reachable from
|
|
119
|
+
// unit tests).
|
|
120
|
+
/* c8 ignore start */
|
|
121
|
+
const parsedData = unwrapOrThrow(accountIdResponseSchema.safeParse(response.data), {
|
|
122
|
+
context: 'post-OAuth `account { id }` response',
|
|
123
|
+
});
|
|
124
|
+
return parsedData.account.id;
|
|
125
|
+
/* c8 ignore stop */
|
|
126
|
+
};
|
|
127
|
+
const credentialsHomeOptions = (ctx) => {
|
|
128
|
+
const home = ctx.env.HOME;
|
|
129
|
+
// The HOME-undefined arm falls through to homedir() inside
|
|
130
|
+
// resolveCredentialsPath; testing it would write to the user's
|
|
131
|
+
// real ~/.monday-cli/credentials, so the branch is production-only.
|
|
132
|
+
/* c8 ignore next 3 */
|
|
133
|
+
return home !== undefined && home.length > 0
|
|
134
|
+
? { home, env: ctx.env }
|
|
135
|
+
: { env: ctx.env };
|
|
136
|
+
};
|
|
137
|
+
const buildConsentUrl = (state, redirectUri) => {
|
|
138
|
+
const url = new URL(OAUTH_AUTHORIZE_URL);
|
|
139
|
+
url.searchParams.set('client_id', OAUTH_CLIENT_ID);
|
|
140
|
+
url.searchParams.set('redirect_uri', redirectUri);
|
|
141
|
+
url.searchParams.set('state', state);
|
|
142
|
+
url.searchParams.set('scope', OAUTH_DEFAULT_REQUESTED_SCOPES.join(' '));
|
|
143
|
+
return url.toString();
|
|
144
|
+
};
|
|
145
|
+
export const authLoginCommand = {
|
|
146
|
+
name: 'auth.login',
|
|
147
|
+
summary: 'OAuth flow that writes a per-profile credentials cache entry',
|
|
148
|
+
examples: [
|
|
149
|
+
'monday auth login --profile work',
|
|
150
|
+
'monday auth login --profile personal',
|
|
151
|
+
],
|
|
152
|
+
// OAuth flow itself is non-idempotent (each `code` is single-use per
|
|
153
|
+
// OAuth's spec) but the credentials-write layer is idempotent
|
|
154
|
+
// (re-running overwrites the named profile entry per §7.3.2).
|
|
155
|
+
idempotent: true,
|
|
156
|
+
inputSchema,
|
|
157
|
+
outputSchema: loginOutputSchema,
|
|
158
|
+
attach: (program, ctx) => {
|
|
159
|
+
const noun = ensureSubcommand(program, 'auth', 'OAuth-issued credentials cache (cli-design §7.3 / §7.4)');
|
|
160
|
+
noun
|
|
161
|
+
.command('login')
|
|
162
|
+
.description(authLoginCommand.summary)
|
|
163
|
+
.addHelpText('after', [
|
|
164
|
+
'',
|
|
165
|
+
'Examples:',
|
|
166
|
+
...authLoginCommand.examples.map((e) => ` ${e}`),
|
|
167
|
+
'',
|
|
168
|
+
].join('\n'))
|
|
169
|
+
.action(async () => {
|
|
170
|
+
// Production-only placeholder guard. When the shipped OAuth
|
|
171
|
+
// credentials are still the `<UNREGISTERED_PENDING_OAUTH_APP>`
|
|
172
|
+
// placeholders, the upstream `/oauth2/token` exchange would
|
|
173
|
+
// fail with a cryptic `oauth_failed.code_exchange_failed`.
|
|
174
|
+
// Surface a clear `usage_error` pointing at the API-token
|
|
175
|
+
// path instead. OAuth login is deferred to a future version
|
|
176
|
+
// per v0.3-plan §8 Decision 11 rejection. The test seam
|
|
177
|
+
// (`__test_oauth_helper`) bypasses this — integration tests
|
|
178
|
+
// stub `/oauth2/token` and don't depend on real credentials.
|
|
179
|
+
const helperPath = ctx.env[TEST_OAUTH_HELPER_ENV_VAR];
|
|
180
|
+
if (OAUTH_CLIENT_ID === OAUTH_UNREGISTERED_PLACEHOLDER &&
|
|
181
|
+
(helperPath === undefined || helperPath.length === 0)) {
|
|
182
|
+
throw new UsageError('`monday auth login` is not available in this release; authenticate via the MONDAY_API_TOKEN env var instead. OAuth login is deferred to a future version.', {
|
|
183
|
+
details: {
|
|
184
|
+
reason: 'oauth_unregistered',
|
|
185
|
+
hint: 'set MONDAY_API_TOKEN=<your-monday-api-token> (mint from Monday → Profile → Developers → My Access Tokens) and re-run any `monday` command without `monday auth login`',
|
|
186
|
+
},
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
const flags = parseGlobalFlags(program.opts(), ctx.env);
|
|
190
|
+
if (flags.profile === undefined || flags.profile.length === 0) {
|
|
191
|
+
throw new UsageError('`monday auth login` requires `--profile <name>` (or `MONDAY_PROFILE` env)', {
|
|
192
|
+
details: {
|
|
193
|
+
hint: 'each profile authenticates against a (possibly different) Monday account; the credentials cache is per-profile so the verb cannot infer a target.',
|
|
194
|
+
},
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
authLoginCommand.inputSchema.parse({ profile: flags.profile });
|
|
198
|
+
const state = generateOAuthState();
|
|
199
|
+
// Step 2: bind listener (or test seam).
|
|
200
|
+
let listener;
|
|
201
|
+
if (helperPath !== undefined && helperPath.length > 0) {
|
|
202
|
+
const fixture = await readTestOAuthFixture(helperPath);
|
|
203
|
+
listener = buildTestOAuthListener(fixture, state);
|
|
204
|
+
}
|
|
205
|
+
else {
|
|
206
|
+
// Production-only socket bind path; unit tests use the test
|
|
207
|
+
// seam, integration tests stub the env.
|
|
208
|
+
/* c8 ignore start */
|
|
209
|
+
listener = await bindOAuthListener();
|
|
210
|
+
/* c8 ignore stop */
|
|
211
|
+
}
|
|
212
|
+
try {
|
|
213
|
+
const redirectUri = `http://127.0.0.1:${String(
|
|
214
|
+
// Production listener.port > 0; only the test-helper path
|
|
215
|
+
// (port: 0) reaches the truthy arm.
|
|
216
|
+
/* c8 ignore next */
|
|
217
|
+
listener.port === 0 ? 9876 : listener.port)}${OAUTH_CALLBACK_PATH}`;
|
|
218
|
+
const consentUrl = buildConsentUrl(state, redirectUri);
|
|
219
|
+
// Step 3: open browser + print URL fallback. Skipped under
|
|
220
|
+
// the test seam (no browser to open in tests; the helper
|
|
221
|
+
// synthesises the redirect directly). Production-only path.
|
|
222
|
+
/* c8 ignore start */
|
|
223
|
+
if (helperPath === undefined) {
|
|
224
|
+
tryOpenBrowser(consentUrl);
|
|
225
|
+
ctx.stderr.write(`Open this URL in your browser to continue: ${consentUrl}\n`);
|
|
226
|
+
}
|
|
227
|
+
/* c8 ignore stop */
|
|
228
|
+
// Step 4: wait for redirect.
|
|
229
|
+
const payload = await listener.awaitRedirect();
|
|
230
|
+
// Step 5: verify CSRF.
|
|
231
|
+
if (!verifyCsrf(payload.state, state)) {
|
|
232
|
+
throw new ApiError('oauth_failed', 'CSRF state mismatch on OAuth redirect — refusing to exchange code', {
|
|
233
|
+
details: {
|
|
234
|
+
reason: 'csrf_mismatch',
|
|
235
|
+
hint: 're-run `monday auth login --profile <name>` to start a fresh OAuth flow',
|
|
236
|
+
},
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
// Step 6: map error redirects.
|
|
240
|
+
if (payload.kind === 'error') {
|
|
241
|
+
if (payload.error === 'access_denied') {
|
|
242
|
+
throw new ApiError('oauth_failed', 'OAuth authorization was denied at the consent screen', {
|
|
243
|
+
details: {
|
|
244
|
+
reason: 'user_denied',
|
|
245
|
+
hint: 're-run `monday auth login --profile <name>` and approve the consent screen',
|
|
246
|
+
},
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
throw new ApiError('oauth_failed', `OAuth authorization failed: ${payload.error}${payload.errorDescription !== undefined ? ` — ${payload.errorDescription}` : ''}`, {
|
|
250
|
+
mondayCode: payload.error,
|
|
251
|
+
details: {
|
|
252
|
+
reason: 'authorization_failed',
|
|
253
|
+
monday_code: payload.error,
|
|
254
|
+
...(payload.errorDescription !== undefined
|
|
255
|
+
? { monday_description: payload.errorDescription }
|
|
256
|
+
: {}),
|
|
257
|
+
hint: 'check the OAuth app configuration (scopes / client settings) and retry; for `temporary_unavailable`, retry shortly',
|
|
258
|
+
},
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
// Step 7: exchange code.
|
|
262
|
+
const tokenResponse = await exchangeCode({
|
|
263
|
+
code: payload.code,
|
|
264
|
+
redirectUri,
|
|
265
|
+
clientId: OAUTH_CLIENT_ID,
|
|
266
|
+
clientSecret: OAUTH_CLIENT_SECRET,
|
|
267
|
+
});
|
|
268
|
+
// Fold the just-obtained token into the value-scan secret
|
|
269
|
+
// bag BEFORE any subsequent emission can echo it. The
|
|
270
|
+
// preAction redaction-runtime preload (program.ts) runs
|
|
271
|
+
// BEFORE the OAuth exchange so the new token isn't in
|
|
272
|
+
// `ctx.runtimeSecrets` yet; if the post-exchange
|
|
273
|
+
// `account { id }` probe below fails with a GraphQL
|
|
274
|
+
// error.message echoing the presented Authorization
|
|
275
|
+
// header, the error envelope's value-scan layer needs
|
|
276
|
+
// this entry to scrub it (cli-design §7.4.3 — Codex
|
|
277
|
+
// M21 Part 2 P1 finding).
|
|
278
|
+
ctx.runtimeSecrets.push(tokenResponse.accessToken);
|
|
279
|
+
// Step 8: post-exchange `account { id }`.
|
|
280
|
+
const accountId = await fetchAccountId(tokenResponse.accessToken, ctx);
|
|
281
|
+
// Step 9: persist credentials.
|
|
282
|
+
const scopesArray = tokenResponse.scope
|
|
283
|
+
.split(' ')
|
|
284
|
+
.filter((s) => s.length > 0);
|
|
285
|
+
const entry = {
|
|
286
|
+
access_token: tokenResponse.accessToken,
|
|
287
|
+
obtained_at: ctx.clock().toISOString(),
|
|
288
|
+
expires_at: null,
|
|
289
|
+
scopes: scopesArray,
|
|
290
|
+
account_id: accountId,
|
|
291
|
+
};
|
|
292
|
+
await setProfileCredentials({ profileName: flags.profile, entry }, credentialsHomeOptions(ctx));
|
|
293
|
+
// Step 10: emit success envelope. Token NEVER in `data`.
|
|
294
|
+
emitSuccess({
|
|
295
|
+
ctx,
|
|
296
|
+
data: {
|
|
297
|
+
profile: flags.profile,
|
|
298
|
+
account_id: accountId,
|
|
299
|
+
scopes: scopesArray,
|
|
300
|
+
},
|
|
301
|
+
schema: authLoginCommand.outputSchema,
|
|
302
|
+
programOpts: program.opts(),
|
|
303
|
+
source: 'live',
|
|
304
|
+
apiVersion: PINNED_API_VERSION,
|
|
305
|
+
cacheAgeSeconds: null,
|
|
306
|
+
});
|
|
307
|
+
}
|
|
308
|
+
finally {
|
|
309
|
+
listener.close();
|
|
310
|
+
}
|
|
311
|
+
});
|
|
312
|
+
},
|
|
313
|
+
};
|
|
314
|
+
//# sourceMappingURL=login.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/commands/auth/login.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `monday auth logout --profile <name>` — deletes the named profile's
|
|
3
|
+
* entry from the credentials cache per cli-design §7.3.2 (v0.3-plan
|
|
4
|
+
* §3 M21).
|
|
5
|
+
*
|
|
6
|
+
* Idempotent — deletes the named profile entry; no-op + `ok: true`
|
|
7
|
+
* with `was_present: false` on a missing entry. NOT under the
|
|
8
|
+
* destructive-confirmation gate (§3.1) — credential rotation is a
|
|
9
|
+
* routine agent operation, not data mutation requiring `--yes`.
|
|
10
|
+
*
|
|
11
|
+
* When the post-delete profiles map is empty, the credentials file
|
|
12
|
+
* is **still written** as `{schema_version: '1', profiles: {}}`
|
|
13
|
+
* rather than deleted outright (cli-design §7.3.2 — keeps the
|
|
14
|
+
* schema-version pin discoverable + avoids fresh-install ambiguity).
|
|
15
|
+
*/
|
|
16
|
+
import { z } from 'zod';
|
|
17
|
+
import { type CommandModule } from '../types.js';
|
|
18
|
+
declare const inputSchema: z.ZodObject<{
|
|
19
|
+
profile: z.ZodString;
|
|
20
|
+
}, z.core.$strict>;
|
|
21
|
+
declare const logoutOutputSchema: z.ZodObject<{
|
|
22
|
+
profile: z.ZodString;
|
|
23
|
+
was_present: z.ZodBoolean;
|
|
24
|
+
}, z.core.$strict>;
|
|
25
|
+
export type AuthLogoutOutput = z.infer<typeof logoutOutputSchema>;
|
|
26
|
+
export declare const authLogoutCommand: CommandModule<z.infer<typeof inputSchema>, AuthLogoutOutput>;
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=logout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logout.d.ts","sourceRoot":"","sources":["../../../src/commands/auth/logout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAQnE,QAAA,MAAM,WAAW;;kBAIN,CAAC;AAEZ,QAAA,MAAM,kBAAkB;;;kBAKb,CAAC;AAEZ,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAelE,eAAO,MAAM,iBAAiB,EAAE,aAAa,CAC3C,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,EAC3B,gBAAgB,CAiEjB,CAAC"}
|