monday-cli 0.2.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 +439 -0
- package/LICENSE +21 -0
- package/README.md +431 -0
- package/dist/api/board-child-finder.d.ts +95 -0
- package/dist/api/board-child-finder.d.ts.map +1 -0
- package/dist/api/board-child-finder.js +89 -0
- package/dist/api/board-child-finder.js.map +1 -0
- package/dist/api/board-metadata.d.ts +162 -0
- package/dist/api/board-metadata.d.ts.map +1 -0
- package/dist/api/board-metadata.js +238 -0
- package/dist/api/board-metadata.js.map +1 -0
- package/dist/api/board-mutation-invalidation.d.ts +153 -0
- package/dist/api/board-mutation-invalidation.d.ts.map +1 -0
- package/dist/api/board-mutation-invalidation.js +136 -0
- package/dist/api/board-mutation-invalidation.js.map +1 -0
- package/dist/api/board-mutation-result.d.ts +97 -0
- package/dist/api/board-mutation-result.d.ts.map +1 -0
- package/dist/api/board-mutation-result.js +99 -0
- package/dist/api/board-mutation-result.js.map +1 -0
- package/dist/api/board-projection.d.ts +68 -0
- package/dist/api/board-projection.d.ts.map +1 -0
- package/dist/api/board-projection.js +79 -0
- package/dist/api/board-projection.js.map +1 -0
- package/dist/api/cache.d.ts +150 -0
- package/dist/api/cache.d.ts.map +1 -0
- package/dist/api/cache.js +418 -0
- package/dist/api/cache.js.map +1 -0
- package/dist/api/client.d.ts +162 -0
- package/dist/api/client.d.ts.map +1 -0
- package/dist/api/client.js +205 -0
- package/dist/api/client.js.map +1 -0
- package/dist/api/column-mapping.d.ts +68 -0
- package/dist/api/column-mapping.d.ts.map +1 -0
- package/dist/api/column-mapping.js +117 -0
- package/dist/api/column-mapping.js.map +1 -0
- package/dist/api/column-mutation-result.d.ts +136 -0
- package/dist/api/column-mutation-result.d.ts.map +1 -0
- package/dist/api/column-mutation-result.js +130 -0
- package/dist/api/column-mutation-result.js.map +1 -0
- package/dist/api/column-types.d.ts +215 -0
- package/dist/api/column-types.d.ts.map +1 -0
- package/dist/api/column-types.js +195 -0
- package/dist/api/column-types.js.map +1 -0
- package/dist/api/column-values.d.ts +446 -0
- package/dist/api/column-values.d.ts.map +1 -0
- package/dist/api/column-values.js +795 -0
- package/dist/api/column-values.js.map +1 -0
- package/dist/api/columns.d.ts +205 -0
- package/dist/api/columns.d.ts.map +1 -0
- package/dist/api/columns.js +343 -0
- package/dist/api/columns.js.map +1 -0
- package/dist/api/complexity.d.ts +90 -0
- package/dist/api/complexity.d.ts.map +1 -0
- package/dist/api/complexity.js +194 -0
- package/dist/api/complexity.js.map +1 -0
- package/dist/api/dates.d.ts +150 -0
- package/dist/api/dates.d.ts.map +1 -0
- package/dist/api/dates.js +490 -0
- package/dist/api/dates.js.map +1 -0
- package/dist/api/destructive-gate.d.ts +107 -0
- package/dist/api/destructive-gate.d.ts.map +1 -0
- package/dist/api/destructive-gate.js +19 -0
- package/dist/api/destructive-gate.js.map +1 -0
- package/dist/api/dry-run.d.ts +338 -0
- package/dist/api/dry-run.d.ts.map +1 -0
- package/dist/api/dry-run.js +607 -0
- package/dist/api/dry-run.js.map +1 -0
- package/dist/api/emails.d.ts +60 -0
- package/dist/api/emails.d.ts.map +1 -0
- package/dist/api/emails.js +113 -0
- package/dist/api/emails.js.map +1 -0
- package/dist/api/errors.d.ts +82 -0
- package/dist/api/errors.d.ts.map +1 -0
- package/dist/api/errors.js +434 -0
- package/dist/api/errors.js.map +1 -0
- package/dist/api/filters.d.ts +198 -0
- package/dist/api/filters.d.ts.map +1 -0
- package/dist/api/filters.js +328 -0
- package/dist/api/filters.js.map +1 -0
- package/dist/api/group-color.d.ts +33 -0
- package/dist/api/group-color.d.ts.map +1 -0
- package/dist/api/group-color.js +80 -0
- package/dist/api/group-color.js.map +1 -0
- package/dist/api/group-mutation-result.d.ts +150 -0
- package/dist/api/group-mutation-result.d.ts.map +1 -0
- package/dist/api/group-mutation-result.js +141 -0
- package/dist/api/group-mutation-result.js.map +1 -0
- package/dist/api/iso-country-codes.d.ts +45 -0
- package/dist/api/iso-country-codes.d.ts.map +1 -0
- package/dist/api/iso-country-codes.js +71 -0
- package/dist/api/iso-country-codes.js.map +1 -0
- package/dist/api/item-board-lookup.d.ts +86 -0
- package/dist/api/item-board-lookup.d.ts.map +1 -0
- package/dist/api/item-board-lookup.js +140 -0
- package/dist/api/item-board-lookup.js.map +1 -0
- package/dist/api/item-helpers.d.ts +133 -0
- package/dist/api/item-helpers.d.ts.map +1 -0
- package/dist/api/item-helpers.js +139 -0
- package/dist/api/item-helpers.js.map +1 -0
- package/dist/api/item-mutation-result.d.ts +60 -0
- package/dist/api/item-mutation-result.d.ts.map +1 -0
- package/dist/api/item-mutation-result.js +63 -0
- package/dist/api/item-mutation-result.js.map +1 -0
- package/dist/api/item-projection.d.ts +165 -0
- package/dist/api/item-projection.d.ts.map +1 -0
- package/dist/api/item-projection.js +235 -0
- package/dist/api/item-projection.js.map +1 -0
- package/dist/api/item-source-read.d.ts +45 -0
- package/dist/api/item-source-read.d.ts.map +1 -0
- package/dist/api/item-source-read.js +57 -0
- package/dist/api/item-source-read.js.map +1 -0
- package/dist/api/items-page-walker.d.ts +126 -0
- package/dist/api/items-page-walker.d.ts.map +1 -0
- package/dist/api/items-page-walker.js +256 -0
- package/dist/api/items-page-walker.js.map +1 -0
- package/dist/api/links.d.ts +70 -0
- package/dist/api/links.d.ts.map +1 -0
- package/dist/api/links.js +128 -0
- package/dist/api/links.js.map +1 -0
- package/dist/api/me-token.d.ts +52 -0
- package/dist/api/me-token.d.ts.map +1 -0
- package/dist/api/me-token.js +55 -0
- package/dist/api/me-token.js.map +1 -0
- package/dist/api/pagination.d.ts +201 -0
- package/dist/api/pagination.d.ts.map +1 -0
- package/dist/api/pagination.js +223 -0
- package/dist/api/pagination.js.map +1 -0
- package/dist/api/partial-success-mutation.d.ts +28 -0
- package/dist/api/partial-success-mutation.d.ts.map +1 -0
- package/dist/api/partial-success-mutation.js +68 -0
- package/dist/api/partial-success-mutation.js.map +1 -0
- package/dist/api/people.d.ts +182 -0
- package/dist/api/people.d.ts.map +1 -0
- package/dist/api/people.js +260 -0
- package/dist/api/people.js.map +1 -0
- package/dist/api/phones.d.ts +74 -0
- package/dist/api/phones.d.ts.map +1 -0
- package/dist/api/phones.js +167 -0
- package/dist/api/phones.js.map +1 -0
- package/dist/api/raw-document.d.ts +53 -0
- package/dist/api/raw-document.d.ts.map +1 -0
- package/dist/api/raw-document.js +177 -0
- package/dist/api/raw-document.js.map +1 -0
- package/dist/api/raw-write.d.ts +127 -0
- package/dist/api/raw-write.d.ts.map +1 -0
- package/dist/api/raw-write.js +233 -0
- package/dist/api/raw-write.js.map +1 -0
- package/dist/api/resolution-context.d.ts +32 -0
- package/dist/api/resolution-context.d.ts.map +1 -0
- package/dist/api/resolution-context.js +42 -0
- package/dist/api/resolution-context.js.map +1 -0
- package/dist/api/resolution-pass.d.ts +163 -0
- package/dist/api/resolution-pass.d.ts.map +1 -0
- package/dist/api/resolution-pass.js +254 -0
- package/dist/api/resolution-pass.js.map +1 -0
- package/dist/api/resolve-client.d.ts +69 -0
- package/dist/api/resolve-client.d.ts.map +1 -0
- package/dist/api/resolve-client.js +70 -0
- package/dist/api/resolve-client.js.map +1 -0
- package/dist/api/resolver-error-fold.d.ts +176 -0
- package/dist/api/resolver-error-fold.d.ts.map +1 -0
- package/dist/api/resolver-error-fold.js +230 -0
- package/dist/api/resolver-error-fold.js.map +1 -0
- package/dist/api/resolvers.d.ts +131 -0
- package/dist/api/resolvers.d.ts.map +1 -0
- package/dist/api/resolvers.js +262 -0
- package/dist/api/resolvers.js.map +1 -0
- package/dist/api/response-root.d.ts +65 -0
- package/dist/api/response-root.d.ts.map +1 -0
- package/dist/api/response-root.js +61 -0
- package/dist/api/response-root.js.map +1 -0
- package/dist/api/retry.d.ts +112 -0
- package/dist/api/retry.d.ts.map +1 -0
- package/dist/api/retry.js +181 -0
- package/dist/api/retry.js.map +1 -0
- package/dist/api/set-expression.d.ts +23 -0
- package/dist/api/set-expression.d.ts.map +1 -0
- package/dist/api/set-expression.js +31 -0
- package/dist/api/set-expression.js.map +1 -0
- package/dist/api/sort.d.ts +59 -0
- package/dist/api/sort.d.ts.map +1 -0
- package/dist/api/sort.js +73 -0
- package/dist/api/sort.js.map +1 -0
- package/dist/api/source-aggregator.d.ts +94 -0
- package/dist/api/source-aggregator.d.ts.map +1 -0
- package/dist/api/source-aggregator.js +111 -0
- package/dist/api/source-aggregator.js.map +1 -0
- package/dist/api/transport.d.ts +58 -0
- package/dist/api/transport.d.ts.map +1 -0
- package/dist/api/transport.js +190 -0
- package/dist/api/transport.js.map +1 -0
- package/dist/api/update-mutation-result.d.ts +133 -0
- package/dist/api/update-mutation-result.d.ts.map +1 -0
- package/dist/api/update-mutation-result.js +145 -0
- package/dist/api/update-mutation-result.js.map +1 -0
- package/dist/api/users-fan-out-mutation.d.ts +124 -0
- package/dist/api/users-fan-out-mutation.d.ts.map +1 -0
- package/dist/api/users-fan-out-mutation.js +331 -0
- package/dist/api/users-fan-out-mutation.js.map +1 -0
- package/dist/api/walk-pages.d.ts +91 -0
- package/dist/api/walk-pages.d.ts.map +1 -0
- package/dist/api/walk-pages.js +84 -0
- package/dist/api/walk-pages.js.map +1 -0
- package/dist/api/workspace-projection.d.ts +64 -0
- package/dist/api/workspace-projection.d.ts.map +1 -0
- package/dist/api/workspace-projection.js +83 -0
- package/dist/api/workspace-projection.js.map +1 -0
- package/dist/cli/envelope-out.d.ts +128 -0
- package/dist/cli/envelope-out.d.ts.map +1 -0
- package/dist/cli/envelope-out.js +146 -0
- package/dist/cli/envelope-out.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +27 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/program.d.ts +29 -0
- package/dist/cli/program.d.ts.map +1 -0
- package/dist/cli/program.js +109 -0
- package/dist/cli/program.js.map +1 -0
- package/dist/cli/run.d.ts +108 -0
- package/dist/cli/run.d.ts.map +1 -0
- package/dist/cli/run.js +105 -0
- package/dist/cli/run.js.map +1 -0
- package/dist/commands/account/client-helper.d.ts +37 -0
- package/dist/commands/account/client-helper.d.ts.map +1 -0
- package/dist/commands/account/client-helper.js +55 -0
- package/dist/commands/account/client-helper.js.map +1 -0
- package/dist/commands/account/complexity.d.ts +29 -0
- package/dist/commands/account/complexity.d.ts.map +1 -0
- package/dist/commands/account/complexity.js +70 -0
- package/dist/commands/account/complexity.js.map +1 -0
- package/dist/commands/account/info.d.ts +36 -0
- package/dist/commands/account/info.d.ts.map +1 -0
- package/dist/commands/account/info.js +74 -0
- package/dist/commands/account/info.js.map +1 -0
- package/dist/commands/account/version.d.ts +44 -0
- package/dist/commands/account/version.d.ts.map +1 -0
- package/dist/commands/account/version.js +98 -0
- package/dist/commands/account/version.js.map +1 -0
- package/dist/commands/account/whoami.d.ts +34 -0
- package/dist/commands/account/whoami.d.ts.map +1 -0
- package/dist/commands/account/whoami.js +77 -0
- package/dist/commands/account/whoami.js.map +1 -0
- package/dist/commands/board/add-users.d.ts +60 -0
- package/dist/commands/board/add-users.d.ts.map +1 -0
- package/dist/commands/board/add-users.js +133 -0
- package/dist/commands/board/add-users.js.map +1 -0
- package/dist/commands/board/archive.d.ts +64 -0
- package/dist/commands/board/archive.d.ts.map +1 -0
- package/dist/commands/board/archive.js +226 -0
- package/dist/commands/board/archive.js.map +1 -0
- package/dist/commands/board/column-create.d.ts +146 -0
- package/dist/commands/board/column-create.d.ts.map +1 -0
- package/dist/commands/board/column-create.js +564 -0
- package/dist/commands/board/column-create.js.map +1 -0
- package/dist/commands/board/column-delete.d.ts +76 -0
- package/dist/commands/board/column-delete.d.ts.map +1 -0
- package/dist/commands/board/column-delete.js +224 -0
- package/dist/commands/board/column-delete.js.map +1 -0
- package/dist/commands/board/column-update.d.ts +92 -0
- package/dist/commands/board/column-update.d.ts.map +1 -0
- package/dist/commands/board/column-update.js +364 -0
- package/dist/commands/board/column-update.js.map +1 -0
- package/dist/commands/board/columns.d.ts +30 -0
- package/dist/commands/board/columns.d.ts.map +1 -0
- package/dist/commands/board/columns.js +102 -0
- package/dist/commands/board/columns.js.map +1 -0
- package/dist/commands/board/create.d.ts +67 -0
- package/dist/commands/board/create.d.ts.map +1 -0
- package/dist/commands/board/create.js +226 -0
- package/dist/commands/board/create.js.map +1 -0
- package/dist/commands/board/delete.d.ts +60 -0
- package/dist/commands/board/delete.d.ts.map +1 -0
- package/dist/commands/board/delete.js +192 -0
- package/dist/commands/board/delete.js.map +1 -0
- package/dist/commands/board/describe.d.ts +68 -0
- package/dist/commands/board/describe.d.ts.map +1 -0
- package/dist/commands/board/describe.js +241 -0
- package/dist/commands/board/describe.js.map +1 -0
- package/dist/commands/board/doctor.d.ts +108 -0
- package/dist/commands/board/doctor.d.ts.map +1 -0
- package/dist/commands/board/doctor.js +417 -0
- package/dist/commands/board/doctor.js.map +1 -0
- package/dist/commands/board/duplicate.d.ts +85 -0
- package/dist/commands/board/duplicate.d.ts.map +1 -0
- package/dist/commands/board/duplicate.js +281 -0
- package/dist/commands/board/duplicate.js.map +1 -0
- package/dist/commands/board/find.d.ts +47 -0
- package/dist/commands/board/find.d.ts.map +1 -0
- package/dist/commands/board/find.js +153 -0
- package/dist/commands/board/find.js.map +1 -0
- package/dist/commands/board/get.d.ts +41 -0
- package/dist/commands/board/get.d.ts.map +1 -0
- package/dist/commands/board/get.js +66 -0
- package/dist/commands/board/get.js.map +1 -0
- package/dist/commands/board/group-archive.d.ts +83 -0
- package/dist/commands/board/group-archive.d.ts.map +1 -0
- package/dist/commands/board/group-archive.js +264 -0
- package/dist/commands/board/group-archive.js.map +1 -0
- package/dist/commands/board/group-create.d.ts +118 -0
- package/dist/commands/board/group-create.d.ts.map +1 -0
- package/dist/commands/board/group-create.js +239 -0
- package/dist/commands/board/group-create.js.map +1 -0
- package/dist/commands/board/group-delete.d.ts +79 -0
- package/dist/commands/board/group-delete.d.ts.map +1 -0
- package/dist/commands/board/group-delete.js +222 -0
- package/dist/commands/board/group-delete.js.map +1 -0
- package/dist/commands/board/group-duplicate.d.ts +70 -0
- package/dist/commands/board/group-duplicate.d.ts.map +1 -0
- package/dist/commands/board/group-duplicate.js +219 -0
- package/dist/commands/board/group-duplicate.js.map +1 -0
- package/dist/commands/board/group-update.d.ts +145 -0
- package/dist/commands/board/group-update.d.ts.map +1 -0
- package/dist/commands/board/group-update.js +341 -0
- package/dist/commands/board/group-update.js.map +1 -0
- package/dist/commands/board/groups.d.ts +28 -0
- package/dist/commands/board/groups.d.ts.map +1 -0
- package/dist/commands/board/groups.js +85 -0
- package/dist/commands/board/groups.js.map +1 -0
- package/dist/commands/board/list.d.ts +39 -0
- package/dist/commands/board/list.d.ts.map +1 -0
- package/dist/commands/board/list.js +135 -0
- package/dist/commands/board/list.js.map +1 -0
- package/dist/commands/board/subscribers.d.ts +24 -0
- package/dist/commands/board/subscribers.d.ts.map +1 -0
- package/dist/commands/board/subscribers.js +89 -0
- package/dist/commands/board/subscribers.js.map +1 -0
- package/dist/commands/board/update.d.ts +82 -0
- package/dist/commands/board/update.d.ts.map +1 -0
- package/dist/commands/board/update.js +328 -0
- package/dist/commands/board/update.js.map +1 -0
- package/dist/commands/cache/clear.d.ts +34 -0
- package/dist/commands/cache/clear.d.ts.map +1 -0
- package/dist/commands/cache/clear.js +113 -0
- package/dist/commands/cache/clear.js.map +1 -0
- package/dist/commands/cache/list.d.ts +50 -0
- package/dist/commands/cache/list.d.ts.map +1 -0
- package/dist/commands/cache/list.js +77 -0
- package/dist/commands/cache/list.js.map +1 -0
- package/dist/commands/cache/stats.d.ts +22 -0
- package/dist/commands/cache/stats.d.ts.map +1 -0
- package/dist/commands/cache/stats.js +56 -0
- package/dist/commands/cache/stats.js.map +1 -0
- package/dist/commands/config/path.d.ts +22 -0
- package/dist/commands/config/path.d.ts.map +1 -0
- package/dist/commands/config/path.js +74 -0
- package/dist/commands/config/path.js.map +1 -0
- package/dist/commands/config/show.d.ts +61 -0
- package/dist/commands/config/show.d.ts.map +1 -0
- package/dist/commands/config/show.js +137 -0
- package/dist/commands/config/show.js.map +1 -0
- package/dist/commands/emit.d.ts +156 -0
- package/dist/commands/emit.d.ts.map +1 -0
- package/dist/commands/emit.js +212 -0
- package/dist/commands/emit.js.map +1 -0
- package/dist/commands/index.d.ts +5 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +195 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/item/archive.d.ts +81 -0
- package/dist/commands/item/archive.d.ts.map +1 -0
- package/dist/commands/item/archive.js +187 -0
- package/dist/commands/item/archive.js.map +1 -0
- package/dist/commands/item/clear.d.ts +140 -0
- package/dist/commands/item/clear.d.ts.map +1 -0
- package/dist/commands/item/clear.js +748 -0
- package/dist/commands/item/clear.js.map +1 -0
- package/dist/commands/item/create.d.ts +77 -0
- package/dist/commands/item/create.d.ts.map +1 -0
- package/dist/commands/item/create.js +802 -0
- package/dist/commands/item/create.js.map +1 -0
- package/dist/commands/item/delete.d.ts +82 -0
- package/dist/commands/item/delete.d.ts.map +1 -0
- package/dist/commands/item/delete.js +179 -0
- package/dist/commands/item/delete.js.map +1 -0
- package/dist/commands/item/duplicate.d.ts +117 -0
- package/dist/commands/item/duplicate.d.ts.map +1 -0
- package/dist/commands/item/duplicate.js +238 -0
- package/dist/commands/item/duplicate.js.map +1 -0
- package/dist/commands/item/find.d.ts +55 -0
- package/dist/commands/item/find.d.ts.map +1 -0
- package/dist/commands/item/find.js +231 -0
- package/dist/commands/item/find.js.map +1 -0
- package/dist/commands/item/get.d.ts +47 -0
- package/dist/commands/item/get.d.ts.map +1 -0
- package/dist/commands/item/get.js +66 -0
- package/dist/commands/item/get.js.map +1 -0
- package/dist/commands/item/list.d.ts +73 -0
- package/dist/commands/item/list.d.ts.map +1 -0
- package/dist/commands/item/list.js +284 -0
- package/dist/commands/item/list.js.map +1 -0
- package/dist/commands/item/move.d.ts +181 -0
- package/dist/commands/item/move.d.ts.map +1 -0
- package/dist/commands/item/move.js +560 -0
- package/dist/commands/item/move.js.map +1 -0
- package/dist/commands/item/search.d.ts +67 -0
- package/dist/commands/item/search.d.ts.map +1 -0
- package/dist/commands/item/search.js +322 -0
- package/dist/commands/item/search.js.map +1 -0
- package/dist/commands/item/set.d.ts +88 -0
- package/dist/commands/item/set.d.ts.map +1 -0
- package/dist/commands/item/set.js +387 -0
- package/dist/commands/item/set.js.map +1 -0
- package/dist/commands/item/subitems.d.ts +50 -0
- package/dist/commands/item/subitems.d.ts.map +1 -0
- package/dist/commands/item/subitems.js +86 -0
- package/dist/commands/item/subitems.js.map +1 -0
- package/dist/commands/item/update.d.ts +99 -0
- package/dist/commands/item/update.d.ts.map +1 -0
- package/dist/commands/item/update.js +884 -0
- package/dist/commands/item/update.js.map +1 -0
- package/dist/commands/item/upsert.d.ts +105 -0
- package/dist/commands/item/upsert.d.ts.map +1 -0
- package/dist/commands/item/upsert.js +998 -0
- package/dist/commands/item/upsert.js.map +1 -0
- package/dist/commands/parse-argv.d.ts +20 -0
- package/dist/commands/parse-argv.d.ts.map +1 -0
- package/dist/commands/parse-argv.js +40 -0
- package/dist/commands/parse-argv.js.map +1 -0
- package/dist/commands/raw/index.d.ts +23 -0
- package/dist/commands/raw/index.d.ts.map +1 -0
- package/dist/commands/raw/index.js +416 -0
- package/dist/commands/raw/index.js.map +1 -0
- package/dist/commands/run-by-id-lookup.d.ts +72 -0
- package/dist/commands/run-by-id-lookup.d.ts.map +1 -0
- package/dist/commands/run-by-id-lookup.js +58 -0
- package/dist/commands/run-by-id-lookup.js.map +1 -0
- package/dist/commands/schema/index.d.ts +104 -0
- package/dist/commands/schema/index.d.ts.map +1 -0
- package/dist/commands/schema/index.js +183 -0
- package/dist/commands/schema/index.js.map +1 -0
- package/dist/commands/types.d.ts +66 -0
- package/dist/commands/types.d.ts.map +1 -0
- package/dist/commands/types.js +15 -0
- package/dist/commands/types.js.map +1 -0
- package/dist/commands/update/body-source.d.ts +38 -0
- package/dist/commands/update/body-source.d.ts.map +1 -0
- package/dist/commands/update/body-source.js +80 -0
- package/dist/commands/update/body-source.js.map +1 -0
- package/dist/commands/update/clear-all.d.ts +67 -0
- package/dist/commands/update/clear-all.d.ts.map +1 -0
- package/dist/commands/update/clear-all.js +281 -0
- package/dist/commands/update/clear-all.js.map +1 -0
- package/dist/commands/update/create.d.ts +51 -0
- package/dist/commands/update/create.d.ts.map +1 -0
- package/dist/commands/update/create.js +167 -0
- package/dist/commands/update/create.js.map +1 -0
- package/dist/commands/update/delete.d.ts +53 -0
- package/dist/commands/update/delete.d.ts.map +1 -0
- package/dist/commands/update/delete.js +148 -0
- package/dist/commands/update/delete.js.map +1 -0
- package/dist/commands/update/edit.d.ts +37 -0
- package/dist/commands/update/edit.d.ts.map +1 -0
- package/dist/commands/update/edit.js +129 -0
- package/dist/commands/update/edit.js.map +1 -0
- package/dist/commands/update/get.d.ts +37 -0
- package/dist/commands/update/get.d.ts.map +1 -0
- package/dist/commands/update/get.js +92 -0
- package/dist/commands/update/get.js.map +1 -0
- package/dist/commands/update/like.d.ts +17 -0
- package/dist/commands/update/like.d.ts.map +1 -0
- package/dist/commands/update/like.js +23 -0
- package/dist/commands/update/like.js.map +1 -0
- package/dist/commands/update/list.d.ts +58 -0
- package/dist/commands/update/list.d.ts.map +1 -0
- package/dist/commands/update/list.js +322 -0
- package/dist/commands/update/list.js.map +1 -0
- package/dist/commands/update/pin.d.ts +17 -0
- package/dist/commands/update/pin.d.ts.map +1 -0
- package/dist/commands/update/pin.js +23 -0
- package/dist/commands/update/pin.js.map +1 -0
- package/dist/commands/update/reply.d.ts +47 -0
- package/dist/commands/update/reply.d.ts.map +1 -0
- package/dist/commands/update/reply.js +149 -0
- package/dist/commands/update/reply.js.map +1 -0
- package/dist/commands/update/toggle.d.ts +70 -0
- package/dist/commands/update/toggle.d.ts.map +1 -0
- package/dist/commands/update/toggle.js +118 -0
- package/dist/commands/update/toggle.js.map +1 -0
- package/dist/commands/update/unlike.d.ts +17 -0
- package/dist/commands/update/unlike.d.ts.map +1 -0
- package/dist/commands/update/unlike.js +22 -0
- package/dist/commands/update/unlike.js.map +1 -0
- package/dist/commands/update/unpin.d.ts +17 -0
- package/dist/commands/update/unpin.d.ts.map +1 -0
- package/dist/commands/update/unpin.js +21 -0
- package/dist/commands/update/unpin.js.map +1 -0
- package/dist/commands/user/get.d.ts +31 -0
- package/dist/commands/user/get.d.ts.map +1 -0
- package/dist/commands/user/get.js +81 -0
- package/dist/commands/user/get.js.map +1 -0
- package/dist/commands/user/list.d.ts +61 -0
- package/dist/commands/user/list.d.ts.map +1 -0
- package/dist/commands/user/list.js +148 -0
- package/dist/commands/user/list.js.map +1 -0
- package/dist/commands/user/me.d.ts +17 -0
- package/dist/commands/user/me.d.ts.map +1 -0
- package/dist/commands/user/me.js +49 -0
- package/dist/commands/user/me.js.map +1 -0
- package/dist/commands/workspace/add-users.d.ts +76 -0
- package/dist/commands/workspace/add-users.d.ts.map +1 -0
- package/dist/commands/workspace/add-users.js +154 -0
- package/dist/commands/workspace/add-users.js.map +1 -0
- package/dist/commands/workspace/create.d.ts +59 -0
- package/dist/commands/workspace/create.d.ts.map +1 -0
- package/dist/commands/workspace/create.js +163 -0
- package/dist/commands/workspace/create.js.map +1 -0
- package/dist/commands/workspace/delete.d.ts +67 -0
- package/dist/commands/workspace/delete.d.ts.map +1 -0
- package/dist/commands/workspace/delete.js +182 -0
- package/dist/commands/workspace/delete.js.map +1 -0
- package/dist/commands/workspace/folders.d.ts +40 -0
- package/dist/commands/workspace/folders.d.ts.map +1 -0
- package/dist/commands/workspace/folders.js +124 -0
- package/dist/commands/workspace/folders.js.map +1 -0
- package/dist/commands/workspace/get.d.ts +35 -0
- package/dist/commands/workspace/get.d.ts.map +1 -0
- package/dist/commands/workspace/get.js +62 -0
- package/dist/commands/workspace/get.js.map +1 -0
- package/dist/commands/workspace/list.d.ts +57 -0
- package/dist/commands/workspace/list.d.ts.map +1 -0
- package/dist/commands/workspace/list.js +125 -0
- package/dist/commands/workspace/list.js.map +1 -0
- package/dist/commands/workspace/remove-users.d.ts +47 -0
- package/dist/commands/workspace/remove-users.d.ts.map +1 -0
- package/dist/commands/workspace/remove-users.js +122 -0
- package/dist/commands/workspace/remove-users.js.map +1 -0
- package/dist/commands/workspace/update.d.ts +68 -0
- package/dist/commands/workspace/update.d.ts.map +1 -0
- package/dist/commands/workspace/update.js +237 -0
- package/dist/commands/workspace/update.js.map +1 -0
- package/dist/config/load.d.ts +33 -0
- package/dist/config/load.d.ts.map +1 -0
- package/dist/config/load.js +81 -0
- package/dist/config/load.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/types/global-flags.d.ts +69 -0
- package/dist/types/global-flags.d.ts.map +1 -0
- package/dist/types/global-flags.js +170 -0
- package/dist/types/global-flags.js.map +1 -0
- package/dist/types/ids.d.ts +38 -0
- package/dist/types/ids.d.ts.map +1 -0
- package/dist/types/ids.js +51 -0
- package/dist/types/ids.js.map +1 -0
- package/dist/types/json.d.ts +60 -0
- package/dist/types/json.d.ts.map +1 -0
- package/dist/types/json.js +33 -0
- package/dist/types/json.js.map +1 -0
- package/dist/utils/errors.d.ts +121 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +264 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/logger.d.ts +39 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +49 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/output/envelope.d.ts +140 -0
- package/dist/utils/output/envelope.d.ts.map +1 -0
- package/dist/utils/output/envelope.js +120 -0
- package/dist/utils/output/envelope.js.map +1 -0
- package/dist/utils/output/json.d.ts +10 -0
- package/dist/utils/output/json.d.ts.map +1 -0
- package/dist/utils/output/json.js +12 -0
- package/dist/utils/output/json.js.map +1 -0
- package/dist/utils/output/ndjson.d.ts +92 -0
- package/dist/utils/output/ndjson.d.ts.map +1 -0
- package/dist/utils/output/ndjson.js +33 -0
- package/dist/utils/output/ndjson.js.map +1 -0
- package/dist/utils/output/select.d.ts +22 -0
- package/dist/utils/output/select.d.ts.map +1 -0
- package/dist/utils/output/select.js +47 -0
- package/dist/utils/output/select.js.map +1 -0
- package/dist/utils/output/table.d.ts +32 -0
- package/dist/utils/output/table.d.ts.map +1 -0
- package/dist/utils/output/table.js +133 -0
- package/dist/utils/output/table.js.map +1 -0
- package/dist/utils/output/text.d.ts +5 -0
- package/dist/utils/output/text.d.ts.map +1 -0
- package/dist/utils/output/text.js +32 -0
- package/dist/utils/output/text.js.map +1 -0
- package/dist/utils/parse-boundary.d.ts +53 -0
- package/dist/utils/parse-boundary.d.ts.map +1 -0
- package/dist/utils/parse-boundary.js +62 -0
- package/dist/utils/parse-boundary.js.map +1 -0
- package/dist/utils/redact.d.ts +54 -0
- package/dist/utils/redact.d.ts.map +1 -0
- package/dist/utils/redact.js +154 -0
- package/dist/utils/redact.js.map +1 -0
- package/dist/utils/request-id.d.ts +17 -0
- package/dist/utils/request-id.d.ts.map +1 -0
- package/dist/utils/request-id.js +26 -0
- package/dist/utils/request-id.js.map +1 -0
- package/package.json +87 -0
|
@@ -0,0 +1,341 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `monday board group-update <bid> <gid> [--name <n>] [--color <c>]
|
|
3
|
+
* [--dry-run]` — change one or more group fields (`cli-design.md`
|
|
4
|
+
* §4.3 line 1245, `v0.2-plan.md` §3 M17).
|
|
5
|
+
*
|
|
6
|
+
* **Wire shape — per-attribute fan-out across a single surface.**
|
|
7
|
+
* Monday's `update_group(board_id, group_id, group_attribute:
|
|
8
|
+
* GroupAttributes!, new_value: String!)` per SDK 14.0.0
|
|
9
|
+
* `MutationUpdate_GroupArgs`. Both `group_attribute` and `new_value`
|
|
10
|
+
* are required at the wire (unlike column-update's `change_column_
|
|
11
|
+
* metadata` whose arguments are both optional). Per-attribute fan-
|
|
12
|
+
* out routes every `--name` / `--color` flag through the same
|
|
13
|
+
* mutation with a different `group_attribute` enum value. The
|
|
14
|
+
* `GroupAttributes` enum carries five values total (`title` /
|
|
15
|
+
* `color` / `position` / `relative_position_after` / `relative_
|
|
16
|
+
* position_before`); v0.2 surfaces only `title` (via `--name`) and
|
|
17
|
+
* `color` (via `--color`). M17 deliberately OMITS the position-
|
|
18
|
+
* related flags — `position` is per-changelog deprecated and the
|
|
19
|
+
* literal `top|bottom` semantics through `update_group` are
|
|
20
|
+
* unreliable; repositioning is deferred to v0.3 with `--before
|
|
21
|
+
* <gid>` / `--after <gid>` flags mapping to the non-deprecated
|
|
22
|
+
* `relative_position_after` / `relative_position_before` enum
|
|
23
|
+
* values. Multi-flag invocations fan out N sequential wire calls
|
|
24
|
+
* (sequential per §8 decision 8 — parallel waits for v0.4
|
|
25
|
+
* `--concurrency`).
|
|
26
|
+
*
|
|
27
|
+
* **Whole-call envelope — no partial-success leak.** The envelope
|
|
28
|
+
* is `ok: true` only when EVERY per-field call succeeded; on any
|
|
29
|
+
* per-field failure the envelope is `ok: false` with the failed
|
|
30
|
+
* call's error code. Mirrors `column-update` / `board-update`
|
|
31
|
+
* contract.
|
|
32
|
+
*
|
|
33
|
+
* **Live-path partial-application caveat.** Server-side state is
|
|
34
|
+
* NOT transactional across per-attribute mutations: if call #1
|
|
35
|
+
* succeeds and call #2 fails, fields from #1 stay committed and
|
|
36
|
+
* are NOT rolled back. Agents re-issuing after failure should re-
|
|
37
|
+
* read the group to see what landed before retrying the unapplied
|
|
38
|
+
* tail.
|
|
39
|
+
*
|
|
40
|
+
* **Data projects from the trailing call (no force-live read leg).**
|
|
41
|
+
* Monday's `update_group` returns `Maybe<Group>` post-mutation with
|
|
42
|
+
* the FULL Group projection — the trailing call's response is
|
|
43
|
+
* authoritative for every group-metadata field. Mirrors `column-
|
|
44
|
+
* update`'s no-force-live shape and DIVERGES from `board update`'s
|
|
45
|
+
* force-live shape (board's per-attribute calls return the changed
|
|
46
|
+
* slice only, requiring a final whole-board read leg). This is the
|
|
47
|
+
* load-bearing M17-pre-flight finding (cli-design §6.4 group-update
|
|
48
|
+
* partial-application caveat).
|
|
49
|
+
*
|
|
50
|
+
* **Argv discipline.** At least one of `--name` / `--color` is
|
|
51
|
+
* required — zero-flag invocation surfaces as `usage_error` (exit
|
|
52
|
+
* 1) at argv-parse, before any network leg. Mirrors `column-
|
|
53
|
+
* update`'s rule.
|
|
54
|
+
*
|
|
55
|
+
* **Dry-run shape** per cli-design §6.4 group-update variant: a
|
|
56
|
+
* field-level `from → to` diff per provided field. The `from`
|
|
57
|
+
* state requires a preflight `board describe`-shaped read — routed
|
|
58
|
+
* through `loadBoardMetadata` so cache hits are observable;
|
|
59
|
+
* `meta.source: 'live' | 'cache'`. When the board doesn't exist
|
|
60
|
+
* the preflight surfaces `not_found` (exit 2). When the group ID
|
|
61
|
+
* isn't on the board, the dry-run surfaces `not_found` with
|
|
62
|
+
* `details.group_id`. Cache-staleness caveat: the `from` snapshot
|
|
63
|
+
* may lag live state up to the cache TTL; pass `--no-cache` for a
|
|
64
|
+
* force-live preflight when preview freshness is critical.
|
|
65
|
+
*
|
|
66
|
+
* **Eager invalidation** (cli-design §8 fan-out call-site contract).
|
|
67
|
+
* After the per-attribute loop settles, `invalidateBoard(boardId)`
|
|
68
|
+
* fires ONCE — conditional on at least one per-attribute call
|
|
69
|
+
* having succeeded (the wire-state high-water mark). On whole-call
|
|
70
|
+
* success this is the same trigger as the single-leg case; on
|
|
71
|
+
* whole-call partial-application failure (call N+1 fails after
|
|
72
|
+
* call N succeeded), invalidation still fires because the cache
|
|
73
|
+
* must reflect the partially-applied server state. Zero-legs-
|
|
74
|
+
* succeeded skips invalidation (server state unchanged). The
|
|
75
|
+
* contract generalises cleanly to N-leg fan-out by gating on the
|
|
76
|
+
* loop's high-water-mark counter rather than per-call timing.
|
|
77
|
+
*
|
|
78
|
+
* **Idempotent: yes.** Re-applying the same field values is a
|
|
79
|
+
* no-op on Monday's side (same input leaves same group metadata).
|
|
80
|
+
* NOT destructive (no `--yes` gate).
|
|
81
|
+
*/
|
|
82
|
+
import { z } from 'zod';
|
|
83
|
+
import { ensureSubcommand } from '../types.js';
|
|
84
|
+
import { emitDryRun, emitMutation } from '../emit.js';
|
|
85
|
+
import { resolveClient } from '../../api/resolve-client.js';
|
|
86
|
+
import { BoardIdSchema, GroupIdSchema } from '../../types/ids.js';
|
|
87
|
+
import { parseArgv } from '../parse-argv.js';
|
|
88
|
+
import { ApiError } from '../../utils/errors.js';
|
|
89
|
+
import { unwrapOrThrow } from '../../utils/parse-boundary.js';
|
|
90
|
+
import { withBoardInvalidationFanOut } from '../../api/board-mutation-invalidation.js';
|
|
91
|
+
import { findBoardChildOrThrow } from '../../api/board-child-finder.js';
|
|
92
|
+
import { loadBoardMetadata } from '../../api/board-metadata.js';
|
|
93
|
+
import { GROUP_COLOR_VALUES } from '../../api/group-color.js';
|
|
94
|
+
import { GROUP_FIELDS_FRAGMENT, groupProjectionSchema, projectMutationGroup, } from '../../api/group-mutation-result.js';
|
|
95
|
+
const UPDATE_GROUP_MUTATION = `
|
|
96
|
+
mutation GroupUpdate(
|
|
97
|
+
$boardId: ID!,
|
|
98
|
+
$groupId: String!,
|
|
99
|
+
$groupAttribute: GroupAttributes!,
|
|
100
|
+
$newValue: String!
|
|
101
|
+
) {
|
|
102
|
+
update_group(
|
|
103
|
+
board_id: $boardId,
|
|
104
|
+
group_id: $groupId,
|
|
105
|
+
group_attribute: $groupAttribute,
|
|
106
|
+
new_value: $newValue
|
|
107
|
+
) {
|
|
108
|
+
${GROUP_FIELDS_FRAGMENT}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
`;
|
|
112
|
+
export const boardGroupUpdateOutputSchema = groupProjectionSchema;
|
|
113
|
+
const inputSchema = z
|
|
114
|
+
.object({
|
|
115
|
+
boardId: BoardIdSchema,
|
|
116
|
+
// Group ids are stable lower-snake-case slugs ("topics", etc.)
|
|
117
|
+
// — not numeric. Branded `GroupIdSchema` in `types/ids.ts`
|
|
118
|
+
// distinguishes them from ColumnId / BoardId at the type
|
|
119
|
+
// level.
|
|
120
|
+
groupId: GroupIdSchema,
|
|
121
|
+
name: z
|
|
122
|
+
.string()
|
|
123
|
+
.refine((s) => s.trim().length > 0, {
|
|
124
|
+
message: '--name must be non-empty (whitespace-only is rejected)',
|
|
125
|
+
})
|
|
126
|
+
.optional(),
|
|
127
|
+
// Per cli-design §4.3 group-update: --color is argv-parse
|
|
128
|
+
// validated against the same pinned palette group-create uses
|
|
129
|
+
// (see api/group-color.ts). Sharing the constant means a value
|
|
130
|
+
// accepted by group-create round-trips through group-update
|
|
131
|
+
// without surprise rejections.
|
|
132
|
+
color: z.enum(GROUP_COLOR_VALUES).optional(),
|
|
133
|
+
})
|
|
134
|
+
.strict()
|
|
135
|
+
.refine((v) => v.name !== undefined || v.color !== undefined, {
|
|
136
|
+
message: 'group update requires at least one of --name / --color',
|
|
137
|
+
});
|
|
138
|
+
const responseSchema = z
|
|
139
|
+
.object({
|
|
140
|
+
update_group: z.unknown(),
|
|
141
|
+
})
|
|
142
|
+
.loose();
|
|
143
|
+
// Deterministic dispatch order: name (→ title) first, then color.
|
|
144
|
+
// The iteration order isn't observable on whole-call success
|
|
145
|
+
// (single envelope) but IS observable on partial-application
|
|
146
|
+
// failure (server-side state shows fields applied in order before
|
|
147
|
+
// the failure). Mirrors `column-update`'s FIELD_DISPATCH_ORDER pin.
|
|
148
|
+
const FIELD_DISPATCH_ORDER = ['name', 'color'];
|
|
149
|
+
export const boardGroupUpdateCommand = {
|
|
150
|
+
name: 'board.group-update',
|
|
151
|
+
summary: 'Update one or more fields of a group',
|
|
152
|
+
examples: [
|
|
153
|
+
'monday board group-update 12345 topics --name "Sprint 42"',
|
|
154
|
+
'monday board group-update 12345 topics --color blue',
|
|
155
|
+
'monday board group-update 12345 topics --name "Sprint 42" --color blue',
|
|
156
|
+
'monday board group-update 12345 topics --name "Preview" --dry-run --json',
|
|
157
|
+
],
|
|
158
|
+
// Re-applying the same field values is a server-side no-op —
|
|
159
|
+
// safe to retry on transient failure. Mirrors `column-update` /
|
|
160
|
+
// `board update` rationale.
|
|
161
|
+
idempotent: true,
|
|
162
|
+
inputSchema,
|
|
163
|
+
outputSchema: boardGroupUpdateOutputSchema,
|
|
164
|
+
attach: (program, ctx) => {
|
|
165
|
+
const noun = ensureSubcommand(program, 'board', 'Board commands');
|
|
166
|
+
noun
|
|
167
|
+
.command('group-update <boardId> <groupId>')
|
|
168
|
+
.description(boardGroupUpdateCommand.summary)
|
|
169
|
+
.option('--name <n>', 'new group name (maps to wire group_attribute: title)')
|
|
170
|
+
.option('--color <c>', 'new group color (maps to wire group_attribute: color)')
|
|
171
|
+
.addHelpText('after', ['', 'Examples:', ...boardGroupUpdateCommand.examples.map((e) => ` ${e}`), ''].join('\n'))
|
|
172
|
+
.action(async (boardId, groupId, opts) => {
|
|
173
|
+
const parsed = parseArgv(boardGroupUpdateCommand.inputSchema, {
|
|
174
|
+
boardId,
|
|
175
|
+
groupId,
|
|
176
|
+
...opts,
|
|
177
|
+
});
|
|
178
|
+
const trimmedName = parsed.name?.trim();
|
|
179
|
+
// No trim on color — the enum check on inputSchema rejects
|
|
180
|
+
// anything outside GROUP_COLOR_VALUES; values that survive
|
|
181
|
+
// are exact palette-name matches.
|
|
182
|
+
const colorValue = parsed.color;
|
|
183
|
+
const { client, globalFlags, apiVersion, toEmit } = resolveClient(ctx, program.opts());
|
|
184
|
+
if (globalFlags.dryRun) {
|
|
185
|
+
// Preflight `boards(ids:)` read via loadBoardMetadata so
|
|
186
|
+
// the v0.1 board-metadata cache can serve fresh entries.
|
|
187
|
+
// `meta.source: 'live' | 'cache'`. Cache-staleness
|
|
188
|
+
// caveat: `from` values may lag up to TTL; agents pass
|
|
189
|
+
// `--no-cache` when preview freshness is critical.
|
|
190
|
+
const preflight = await loadBoardMetadata({
|
|
191
|
+
client,
|
|
192
|
+
boardId: parsed.boardId,
|
|
193
|
+
env: ctx.env,
|
|
194
|
+
noCache: globalFlags.noCache,
|
|
195
|
+
});
|
|
196
|
+
// R51 lift — `findBoardChildOrThrow` consolidates the
|
|
197
|
+
// board-level read succeeded but the group ID isn't on
|
|
198
|
+
// the board → not_found-with-details.group_id carve-out
|
|
199
|
+
// shared with `column-update` + `group-archive`.
|
|
200
|
+
const current = findBoardChildOrThrow({
|
|
201
|
+
metadata: preflight.metadata,
|
|
202
|
+
kind: 'groups',
|
|
203
|
+
id: parsed.groupId,
|
|
204
|
+
boardId: parsed.boardId,
|
|
205
|
+
});
|
|
206
|
+
const diff = {};
|
|
207
|
+
if (trimmedName !== undefined) {
|
|
208
|
+
// Surface the diff key as `name` (the CLI flag name)
|
|
209
|
+
// even though the wire's GroupAttributes value is
|
|
210
|
+
// `title` — agents reading the dry-run shouldn't need
|
|
211
|
+
// to know about the wire-level rename. The current
|
|
212
|
+
// value comes from the cached projection's `title`
|
|
213
|
+
// field.
|
|
214
|
+
diff.name = { from: current.title, to: trimmedName };
|
|
215
|
+
}
|
|
216
|
+
if (colorValue !== undefined) {
|
|
217
|
+
diff.color = { from: current.color, to: colorValue };
|
|
218
|
+
}
|
|
219
|
+
emitDryRun({
|
|
220
|
+
ctx,
|
|
221
|
+
programOpts: program.opts(),
|
|
222
|
+
plannedChanges: [
|
|
223
|
+
{
|
|
224
|
+
operation: 'update_group',
|
|
225
|
+
board_id: parsed.boardId,
|
|
226
|
+
group_id: parsed.groupId,
|
|
227
|
+
diff,
|
|
228
|
+
},
|
|
229
|
+
],
|
|
230
|
+
source: preflight.source,
|
|
231
|
+
cacheAgeSeconds: preflight.cacheAgeSeconds,
|
|
232
|
+
warnings: [],
|
|
233
|
+
apiVersion,
|
|
234
|
+
});
|
|
235
|
+
return;
|
|
236
|
+
}
|
|
237
|
+
// Live path. Build the dispatch plan in deterministic order
|
|
238
|
+
// (name → color) so partial-application failure modes are
|
|
239
|
+
// testable.
|
|
240
|
+
const dispatchPlan = [];
|
|
241
|
+
for (const field of FIELD_DISPATCH_ORDER) {
|
|
242
|
+
if (field === 'name' && trimmedName !== undefined) {
|
|
243
|
+
dispatchPlan.push({
|
|
244
|
+
field: 'name',
|
|
245
|
+
value: trimmedName,
|
|
246
|
+
groupAttribute: 'title',
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
else if (field === 'color' && colorValue !== undefined) {
|
|
250
|
+
dispatchPlan.push({
|
|
251
|
+
field: 'color',
|
|
252
|
+
value: colorValue,
|
|
253
|
+
groupAttribute: 'color',
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
// Fan-out: per-attribute calls in order. The R46 helper
|
|
258
|
+
// (`withBoardInvalidationFanOut`) owns the §8 high-water-
|
|
259
|
+
// mark counter and the post-loop invalidation gate; the
|
|
260
|
+
// closure here just calls `recordLegSuccess()` after each
|
|
261
|
+
// successful leg and returns `{data, response}` for the
|
|
262
|
+
// emitMutation step below. The trailing per-attribute
|
|
263
|
+
// call's response is authoritative for the projection AND
|
|
264
|
+
// for `meta.request_id` / complexity — Monday's
|
|
265
|
+
// `update_group` returns the FULL Group post-mutation, so
|
|
266
|
+
// no force-live read leg fires (distinguishes group-update
|
|
267
|
+
// from board-update).
|
|
268
|
+
const { data: projected, response: lastResponse } = await withBoardInvalidationFanOut({
|
|
269
|
+
boardId: parsed.boardId,
|
|
270
|
+
env: ctx.env,
|
|
271
|
+
runFanOut: async ({ recordLegSuccess }) => {
|
|
272
|
+
let lastProjected;
|
|
273
|
+
let trailingResponse;
|
|
274
|
+
for (const entry of dispatchPlan) {
|
|
275
|
+
const response = await client.raw(UPDATE_GROUP_MUTATION, {
|
|
276
|
+
boardId: parsed.boardId,
|
|
277
|
+
groupId: parsed.groupId,
|
|
278
|
+
groupAttribute: entry.groupAttribute,
|
|
279
|
+
newValue: entry.value,
|
|
280
|
+
}, { operationName: 'GroupUpdate' });
|
|
281
|
+
const data = unwrapOrThrow(responseSchema.safeParse(response.data), {
|
|
282
|
+
context: 'Monday returned a malformed GroupUpdate response',
|
|
283
|
+
details: {
|
|
284
|
+
board_id: parsed.boardId,
|
|
285
|
+
group_id: parsed.groupId,
|
|
286
|
+
},
|
|
287
|
+
hint: "this is a data-integrity error in Monday's response; " +
|
|
288
|
+
'verify the mutation response shape and update the schema ' +
|
|
289
|
+
"if Monday's contract has changed.",
|
|
290
|
+
});
|
|
291
|
+
if (!('update_group' in data)) {
|
|
292
|
+
throw new ApiError('internal_error', `Monday's GroupUpdate response is missing the update_group root field`, {
|
|
293
|
+
details: {
|
|
294
|
+
board_id: parsed.boardId,
|
|
295
|
+
group_id: parsed.groupId,
|
|
296
|
+
hint: "this is a schema-drift error in Monday's GraphQL " +
|
|
297
|
+
'response; verify the mutation declaration and update ' +
|
|
298
|
+
"the response schema if Monday's contract has changed.",
|
|
299
|
+
},
|
|
300
|
+
});
|
|
301
|
+
}
|
|
302
|
+
// R48 lift: null-payload guard + projection. group-
|
|
303
|
+
// update's null path uses `not_found` (Monday's
|
|
304
|
+
// idiomatic missing-or-no-access response).
|
|
305
|
+
lastProjected = projectMutationGroup({
|
|
306
|
+
raw: data.update_group,
|
|
307
|
+
errorCode: 'not_found',
|
|
308
|
+
errorMessage: `Monday returned no group payload from update_group for board ${parsed.boardId} group ${parsed.groupId}`,
|
|
309
|
+
boardId: parsed.boardId,
|
|
310
|
+
idKey: 'group_id',
|
|
311
|
+
idValue: parsed.groupId,
|
|
312
|
+
});
|
|
313
|
+
trailingResponse = response;
|
|
314
|
+
recordLegSuccess();
|
|
315
|
+
}
|
|
316
|
+
// Defensive — TS can't narrow that the success path
|
|
317
|
+
// always sets these (the loop only runs when at
|
|
318
|
+
// least one flag is set, and the .refine() on
|
|
319
|
+
// inputSchema enforces ≥1 flag, but the type system
|
|
320
|
+
// doesn't see the cross-block invariant).
|
|
321
|
+
/* c8 ignore next 6 */
|
|
322
|
+
if (lastProjected === undefined || trailingResponse === undefined) {
|
|
323
|
+
throw new ApiError('internal_error', 'group update completed without a trailing wire response — this is a CLI bug', { details: { board_id: parsed.boardId, group_id: parsed.groupId } });
|
|
324
|
+
}
|
|
325
|
+
return { data: lastProjected, response: trailingResponse };
|
|
326
|
+
},
|
|
327
|
+
});
|
|
328
|
+
emitMutation({
|
|
329
|
+
ctx,
|
|
330
|
+
data: projected,
|
|
331
|
+
schema: boardGroupUpdateCommand.outputSchema,
|
|
332
|
+
programOpts: program.opts(),
|
|
333
|
+
warnings: [],
|
|
334
|
+
...toEmit(lastResponse),
|
|
335
|
+
source: 'live',
|
|
336
|
+
cacheAgeSeconds: null,
|
|
337
|
+
});
|
|
338
|
+
});
|
|
339
|
+
},
|
|
340
|
+
};
|
|
341
|
+
//# sourceMappingURL=group-update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"group-update.js","sourceRoot":"","sources":["../../../src/commands/board/group-update.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `monday board groups <bid>` — list a board's groups
|
|
3
|
+
* (`cli-design.md` §4.3).
|
|
4
|
+
*
|
|
5
|
+
* Reads through `loadBoardMetadata` so the shared cache covers
|
|
6
|
+
* `board describe` / `board columns` / `board groups` with one
|
|
7
|
+
* fetch.
|
|
8
|
+
*
|
|
9
|
+
* Idempotent: yes.
|
|
10
|
+
*/
|
|
11
|
+
import { z } from 'zod';
|
|
12
|
+
import { type CommandModule } from '../types.js';
|
|
13
|
+
export declare const boardGroupsOutputSchema: z.ZodArray<z.ZodObject<{
|
|
14
|
+
id: z.ZodString;
|
|
15
|
+
title: z.ZodString;
|
|
16
|
+
color: z.ZodNullable<z.ZodString>;
|
|
17
|
+
position: z.ZodNullable<z.ZodString>;
|
|
18
|
+
archived: z.ZodNullable<z.ZodBoolean>;
|
|
19
|
+
deleted: z.ZodNullable<z.ZodBoolean>;
|
|
20
|
+
}, z.core.$strict>>;
|
|
21
|
+
export type BoardGroupsOutput = z.infer<typeof boardGroupsOutputSchema>;
|
|
22
|
+
declare const inputSchema: z.ZodObject<{
|
|
23
|
+
boardId: z.core.$ZodBranded<z.ZodString, "BoardId", "out">;
|
|
24
|
+
includeArchived: z.ZodOptional<z.ZodBoolean>;
|
|
25
|
+
}, z.core.$strict>;
|
|
26
|
+
export declare const boardGroupsCommand: CommandModule<z.infer<typeof inputSchema>, BoardGroupsOutput>;
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=groups.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"groups.d.ts","sourceRoot":"","sources":["../../../src/commands/board/groups.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAkBnE,eAAO,MAAM,uBAAuB;;;;;;;mBAA0B,CAAC;AAC/D,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,QAAA,MAAM,WAAW;;;kBAKN,CAAC;AAEZ,eAAO,MAAM,kBAAkB,EAAE,aAAa,CAC5C,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,EAC3B,iBAAiB,CA8DlB,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `monday board groups <bid>` — list a board's groups
|
|
3
|
+
* (`cli-design.md` §4.3).
|
|
4
|
+
*
|
|
5
|
+
* Reads through `loadBoardMetadata` so the shared cache covers
|
|
6
|
+
* `board describe` / `board columns` / `board groups` with one
|
|
7
|
+
* fetch.
|
|
8
|
+
*
|
|
9
|
+
* Idempotent: yes.
|
|
10
|
+
*/
|
|
11
|
+
import { z } from 'zod';
|
|
12
|
+
import { ensureSubcommand } from '../types.js';
|
|
13
|
+
import { emitSuccess } from '../emit.js';
|
|
14
|
+
import { resolveClient } from '../../api/resolve-client.js';
|
|
15
|
+
import { BoardIdSchema } from '../../types/ids.js';
|
|
16
|
+
import { parseArgv } from '../parse-argv.js';
|
|
17
|
+
import { loadBoardMetadata } from '../../api/board-metadata.js';
|
|
18
|
+
const groupOutSchema = z
|
|
19
|
+
.object({
|
|
20
|
+
id: z.string().min(1),
|
|
21
|
+
title: z.string(),
|
|
22
|
+
color: z.string().nullable(),
|
|
23
|
+
position: z.string().nullable(),
|
|
24
|
+
archived: z.boolean().nullable(),
|
|
25
|
+
deleted: z.boolean().nullable(),
|
|
26
|
+
})
|
|
27
|
+
.strict();
|
|
28
|
+
export const boardGroupsOutputSchema = z.array(groupOutSchema);
|
|
29
|
+
const inputSchema = z
|
|
30
|
+
.object({
|
|
31
|
+
boardId: BoardIdSchema,
|
|
32
|
+
includeArchived: z.boolean().optional(),
|
|
33
|
+
})
|
|
34
|
+
.strict();
|
|
35
|
+
export const boardGroupsCommand = {
|
|
36
|
+
name: 'board.groups',
|
|
37
|
+
summary: "List a board's groups",
|
|
38
|
+
examples: [
|
|
39
|
+
'monday board groups 12345',
|
|
40
|
+
'monday board groups 12345 --include-archived --json',
|
|
41
|
+
],
|
|
42
|
+
idempotent: true,
|
|
43
|
+
inputSchema,
|
|
44
|
+
outputSchema: boardGroupsOutputSchema,
|
|
45
|
+
attach: (program, ctx) => {
|
|
46
|
+
const noun = ensureSubcommand(program, 'board', 'Board commands');
|
|
47
|
+
noun
|
|
48
|
+
.command('groups <boardId>')
|
|
49
|
+
.description(boardGroupsCommand.summary)
|
|
50
|
+
.option('--include-archived', 'show archived/deleted groups too')
|
|
51
|
+
.addHelpText('after', ['', 'Examples:', ...boardGroupsCommand.examples.map((e) => ` ${e}`), ''].join('\n'))
|
|
52
|
+
.action(async (boardId, opts) => {
|
|
53
|
+
const parsed = parseArgv(boardGroupsCommand.inputSchema, {
|
|
54
|
+
boardId,
|
|
55
|
+
...opts,
|
|
56
|
+
});
|
|
57
|
+
const { client, globalFlags, apiVersion } = resolveClient(ctx, program.opts());
|
|
58
|
+
const result = await loadBoardMetadata({
|
|
59
|
+
client,
|
|
60
|
+
boardId: parsed.boardId,
|
|
61
|
+
env: ctx.env,
|
|
62
|
+
noCache: globalFlags.noCache,
|
|
63
|
+
});
|
|
64
|
+
const groups = parsed.includeArchived === true
|
|
65
|
+
? result.metadata.groups
|
|
66
|
+
: result.metadata.groups.filter((g) => g.archived !== true && g.deleted !== true);
|
|
67
|
+
ctx.meta.setSource(result.source);
|
|
68
|
+
emitSuccess({
|
|
69
|
+
ctx,
|
|
70
|
+
data: boardGroupsCommand.outputSchema.parse(groups),
|
|
71
|
+
schema: boardGroupsCommand.outputSchema,
|
|
72
|
+
programOpts: program.opts(),
|
|
73
|
+
kind: 'collection',
|
|
74
|
+
// Single-fetch payload (Monday returns the full group list
|
|
75
|
+
// in one request), so `has_more` is unconditionally false.
|
|
76
|
+
hasMore: false,
|
|
77
|
+
source: result.source,
|
|
78
|
+
apiVersion,
|
|
79
|
+
complexity: result.complexity,
|
|
80
|
+
cacheAgeSeconds: result.cacheAgeSeconds,
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
},
|
|
84
|
+
};
|
|
85
|
+
//# sourceMappingURL=groups.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"groups.js","sourceRoot":"","sources":["../../../src/commands/board/groups.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `monday board list` — list visible boards (`cli-design.md` §4.3, §6.3).
|
|
3
|
+
*
|
|
4
|
+
* GraphQL: `boards(limit:, page:, ids:, workspace_ids:, state:,
|
|
5
|
+
* order_by:)`. Page-based, same flag surface as `workspace list`.
|
|
6
|
+
*
|
|
7
|
+
* Idempotent: yes — pure read.
|
|
8
|
+
*/
|
|
9
|
+
import { z } from 'zod';
|
|
10
|
+
import { type CommandModule } from '../types.js';
|
|
11
|
+
export declare const boardListOutputSchema: z.ZodArray<z.ZodObject<{
|
|
12
|
+
id: z.ZodString;
|
|
13
|
+
name: z.ZodString;
|
|
14
|
+
description: z.ZodNullable<z.ZodString>;
|
|
15
|
+
state: z.ZodNullable<z.ZodString>;
|
|
16
|
+
board_kind: z.ZodNullable<z.ZodString>;
|
|
17
|
+
board_folder_id: z.ZodNullable<z.ZodString>;
|
|
18
|
+
workspace_id: z.ZodNullable<z.ZodString>;
|
|
19
|
+
url: z.ZodNullable<z.ZodString>;
|
|
20
|
+
items_count: z.ZodNullable<z.ZodNumber>;
|
|
21
|
+
updated_at: z.ZodNullable<z.ZodString>;
|
|
22
|
+
}, z.core.$strict>>;
|
|
23
|
+
export type BoardListOutput = z.infer<typeof boardListOutputSchema>;
|
|
24
|
+
declare const inputSchema: z.ZodObject<{
|
|
25
|
+
workspace: z.ZodOptional<z.core.$ZodBranded<z.ZodString, "WorkspaceId", "out">>;
|
|
26
|
+
state: z.ZodOptional<z.ZodEnum<{
|
|
27
|
+
archived: "archived";
|
|
28
|
+
deleted: "deleted";
|
|
29
|
+
all: "all";
|
|
30
|
+
active: "active";
|
|
31
|
+
}>>;
|
|
32
|
+
limit: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
|
|
33
|
+
page: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
|
|
34
|
+
all: z.ZodOptional<z.ZodBoolean>;
|
|
35
|
+
limitPages: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
|
|
36
|
+
}, z.core.$strict>;
|
|
37
|
+
export declare const boardListCommand: CommandModule<z.infer<typeof inputSchema>, BoardListOutput>;
|
|
38
|
+
export {};
|
|
39
|
+
//# sourceMappingURL=list.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/board/list.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAuDnE,eAAO,MAAM,qBAAqB;;;;;;;;;;;mBAAuB,CAAC;AAC1D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,QAAA,MAAM,WAAW;;;;;;;;;;;;kBASN,CAAC;AAMZ,eAAO,MAAM,gBAAgB,EAAE,aAAa,CAC1C,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,EAC3B,eAAe,CA0EhB,CAAC"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `monday board list` — list visible boards (`cli-design.md` §4.3, §6.3).
|
|
3
|
+
*
|
|
4
|
+
* GraphQL: `boards(limit:, page:, ids:, workspace_ids:, state:,
|
|
5
|
+
* order_by:)`. Page-based, same flag surface as `workspace list`.
|
|
6
|
+
*
|
|
7
|
+
* Idempotent: yes — pure read.
|
|
8
|
+
*/
|
|
9
|
+
import { z } from 'zod';
|
|
10
|
+
import { ensureSubcommand } from '../types.js';
|
|
11
|
+
import { emitSuccess } from '../emit.js';
|
|
12
|
+
import { resolveClient } from '../../api/resolve-client.js';
|
|
13
|
+
import { UsageError } from '../../utils/errors.js';
|
|
14
|
+
import { WorkspaceIdSchema } from '../../types/ids.js';
|
|
15
|
+
import { parseArgv } from '../parse-argv.js';
|
|
16
|
+
import { buildCapWarning, DEFAULT_MAX_PAGES, walkPages, } from '../../api/walk-pages.js';
|
|
17
|
+
const BOARD_LIST_QUERY = `
|
|
18
|
+
query BoardList(
|
|
19
|
+
$limit: Int
|
|
20
|
+
$page: Int
|
|
21
|
+
$workspaceIds: [ID]
|
|
22
|
+
$state: State
|
|
23
|
+
) {
|
|
24
|
+
boards(
|
|
25
|
+
limit: $limit
|
|
26
|
+
page: $page
|
|
27
|
+
workspace_ids: $workspaceIds
|
|
28
|
+
state: $state
|
|
29
|
+
) {
|
|
30
|
+
id
|
|
31
|
+
name
|
|
32
|
+
description
|
|
33
|
+
state
|
|
34
|
+
board_kind
|
|
35
|
+
board_folder_id
|
|
36
|
+
workspace_id
|
|
37
|
+
url
|
|
38
|
+
items_count
|
|
39
|
+
updated_at
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
`;
|
|
43
|
+
const boardSchema = z
|
|
44
|
+
.object({
|
|
45
|
+
id: z.string().min(1),
|
|
46
|
+
name: z.string(),
|
|
47
|
+
description: z.string().nullable(),
|
|
48
|
+
state: z.string().nullable(),
|
|
49
|
+
board_kind: z.string().nullable(),
|
|
50
|
+
board_folder_id: z.string().nullable(),
|
|
51
|
+
workspace_id: z.string().nullable(),
|
|
52
|
+
url: z.string().nullable(),
|
|
53
|
+
items_count: z.number().int().nullable(),
|
|
54
|
+
updated_at: z.string().nullable(),
|
|
55
|
+
})
|
|
56
|
+
.strict();
|
|
57
|
+
export const boardListOutputSchema = z.array(boardSchema);
|
|
58
|
+
const inputSchema = z
|
|
59
|
+
.object({
|
|
60
|
+
workspace: WorkspaceIdSchema.optional(),
|
|
61
|
+
state: z.enum(['active', 'archived', 'deleted', 'all']).optional(),
|
|
62
|
+
limit: z.coerce.number().int().positive().max(100).optional(),
|
|
63
|
+
page: z.coerce.number().int().positive().optional(),
|
|
64
|
+
all: z.boolean().optional(),
|
|
65
|
+
limitPages: z.coerce.number().int().positive().max(500).optional(),
|
|
66
|
+
})
|
|
67
|
+
.strict();
|
|
68
|
+
export const boardListCommand = {
|
|
69
|
+
name: 'board.list',
|
|
70
|
+
summary: 'List boards (optionally scoped to a workspace)',
|
|
71
|
+
examples: [
|
|
72
|
+
'monday board list',
|
|
73
|
+
'monday board list --workspace 12345 --state active',
|
|
74
|
+
'monday board list --all --json',
|
|
75
|
+
],
|
|
76
|
+
idempotent: true,
|
|
77
|
+
inputSchema,
|
|
78
|
+
outputSchema: boardListOutputSchema,
|
|
79
|
+
attach: (program, ctx) => {
|
|
80
|
+
const noun = ensureSubcommand(program, 'board', 'Board commands');
|
|
81
|
+
noun
|
|
82
|
+
.command('list')
|
|
83
|
+
.description(boardListCommand.summary)
|
|
84
|
+
.option('--workspace <wid>', 'restrict to one workspace')
|
|
85
|
+
.option('--state <s>', 'active|archived|deleted|all')
|
|
86
|
+
.option('--limit <n>', 'page size (1-100, default 25)')
|
|
87
|
+
.option('--page <n>', '1-indexed page')
|
|
88
|
+
.option('--all', 'walk every page')
|
|
89
|
+
.option('--limit-pages <n>', `max pages under --all (1-500, default ${String(DEFAULT_MAX_PAGES)})`)
|
|
90
|
+
.addHelpText('after', ['', 'Examples:', ...boardListCommand.examples.map((e) => ` ${e}`), ''].join('\n'))
|
|
91
|
+
.action(async (opts) => {
|
|
92
|
+
const parsed = parseArgv(boardListCommand.inputSchema, opts);
|
|
93
|
+
if (parsed.all === true && parsed.page !== undefined) {
|
|
94
|
+
throw new UsageError('--all and --page are mutually exclusive');
|
|
95
|
+
}
|
|
96
|
+
const { client, toEmit } = resolveClient(ctx, program.opts());
|
|
97
|
+
const limit = parsed.limit ?? 25;
|
|
98
|
+
const maxPages = parsed.limitPages ?? DEFAULT_MAX_PAGES;
|
|
99
|
+
const result = await walkPages({
|
|
100
|
+
fetchPage: (page) => {
|
|
101
|
+
const variables = { limit, page };
|
|
102
|
+
if (parsed.workspace !== undefined) {
|
|
103
|
+
variables.workspaceIds = [parsed.workspace];
|
|
104
|
+
}
|
|
105
|
+
if (parsed.state !== undefined)
|
|
106
|
+
variables.state = parsed.state;
|
|
107
|
+
return client.raw(BOARD_LIST_QUERY, variables, {
|
|
108
|
+
operationName: 'BoardList',
|
|
109
|
+
});
|
|
110
|
+
},
|
|
111
|
+
extractItems: (r) => r.data.boards ?? [],
|
|
112
|
+
pageSize: limit,
|
|
113
|
+
all: parsed.all === true,
|
|
114
|
+
startPage: parsed.page ?? 1,
|
|
115
|
+
maxPages,
|
|
116
|
+
});
|
|
117
|
+
const projected = boardListCommand.outputSchema.parse(result.items);
|
|
118
|
+
const warnings = [];
|
|
119
|
+
if (parsed.all === true && result.hasMore) {
|
|
120
|
+
warnings.push(buildCapWarning(result.pagesFetched));
|
|
121
|
+
}
|
|
122
|
+
emitSuccess({
|
|
123
|
+
ctx,
|
|
124
|
+
data: projected,
|
|
125
|
+
schema: boardListCommand.outputSchema,
|
|
126
|
+
programOpts: program.opts(),
|
|
127
|
+
kind: 'collection',
|
|
128
|
+
hasMore: result.hasMore,
|
|
129
|
+
warnings,
|
|
130
|
+
...toEmit(result.lastResponse),
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
},
|
|
134
|
+
};
|
|
135
|
+
//# sourceMappingURL=list.js.map
|