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,239 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `monday board group-create <bid> --name <n> [--color <c>]
|
|
3
|
+
* [--dry-run]` — create a new group on a board (`cli-design.md`
|
|
4
|
+
* §4.3 line 1174, `v0.2-plan.md` §3 M17).
|
|
5
|
+
*
|
|
6
|
+
* **Wire shape.** Single round-trip via `create_group(board_id,
|
|
7
|
+
* group_name, position?, position_relative_method?, relative_to?,
|
|
8
|
+
* group_color?)` per SDK 14.0.0 `MutationCreate_GroupArgs`. The CLI
|
|
9
|
+
* flag `--name` maps to wire `group_name: String!`; `--color` maps
|
|
10
|
+
* to wire `group_color: String?`. M17 deliberately OMITS all three
|
|
11
|
+
* placement surfaces (`position` is per-changelog deprecated and
|
|
12
|
+
* `top|bottom` literal semantics are wire-ambiguous; the relative-
|
|
13
|
+
* position pair `position_relative_method` + `relative_to` is
|
|
14
|
+
* deferred to v0.3 with `--before <gid>` / `--after <gid>` flags).
|
|
15
|
+
* Agents needing placement today call the wire mutation via M9's
|
|
16
|
+
* `dev mutate` escape hatch.
|
|
17
|
+
*
|
|
18
|
+
* **`--color` validation.** Monday's accepted colour names are
|
|
19
|
+
* documented outside the SDK's typed surface (the SDK types
|
|
20
|
+
* `group_color` as plain `String?`); the v0.2 implementation owns
|
|
21
|
+
* the field set per cli-design §4.3 group-create. Argv-parses
|
|
22
|
+
* against the pinned `GROUP_COLOR_VALUES` palette in
|
|
23
|
+
* `src/api/group-color.ts` (shared with `group-update` so a colour
|
|
24
|
+
* accepted by create round-trips through update without surprise
|
|
25
|
+
* rejections). Bogus palette names surface as `usage_error` (exit
|
|
26
|
+
* 1) BEFORE any network call. Mirrors M16 column-create's per-type
|
|
27
|
+
* `--settings` field-set ownership rationale — pinning specific
|
|
28
|
+
* values inline in the contract would force docs revisions every
|
|
29
|
+
* time Monday tweaks the palette; the implementation owns the
|
|
30
|
+
* field set so the contract pins only the SHAPE.
|
|
31
|
+
*
|
|
32
|
+
* **Live-envelope projection.** Returned `Maybe<Group>` is projected
|
|
33
|
+
* through `groupProjectionSchema` (the M17 R48-lifted shared shape)
|
|
34
|
+
* via `projectMutationGroup`. Sharing the schema keeps create /
|
|
35
|
+
* update / archive / duplicate / delete envelopes byte-identical
|
|
36
|
+
* for the same record.
|
|
37
|
+
*
|
|
38
|
+
* **Dry-run shape** per cli-design §6.4 group-create variant:
|
|
39
|
+
* minimal `{operation: "create_group", board_id, name, color?}`. No
|
|
40
|
+
* preflight read fires; the dry-run is purely argv-derived.
|
|
41
|
+
* `meta.source: 'none'`.
|
|
42
|
+
*
|
|
43
|
+
* **Eager invalidation** (cli-design §8 single-leg call-site
|
|
44
|
+
* contract). On success, calls `invalidateBoard(boardId)` AFTER
|
|
45
|
+
* the success envelope's `data` projection completes — never
|
|
46
|
+
* before the wire mutation, never between mutation and projection.
|
|
47
|
+
* Skipped on the error path (a failed single-leg call didn't
|
|
48
|
+
* change board state). The cache entry's stale `groups: [...]`
|
|
49
|
+
* list is dropped so subsequent reads in the same process see
|
|
50
|
+
* fresh state without TTL eviction.
|
|
51
|
+
*
|
|
52
|
+
* **Idempotent: false.** Re-running creates a second group with
|
|
53
|
+
* the same name (Monday auto-generates a fresh group id per call).
|
|
54
|
+
* NOT destructive (no --yes gate).
|
|
55
|
+
*/
|
|
56
|
+
import { z } from 'zod';
|
|
57
|
+
import { ensureSubcommand } from '../types.js';
|
|
58
|
+
import { emitDryRun, emitMutation } from '../emit.js';
|
|
59
|
+
import { resolveClient } from '../../api/resolve-client.js';
|
|
60
|
+
import { parseArgv } from '../parse-argv.js';
|
|
61
|
+
import { ApiError } from '../../utils/errors.js';
|
|
62
|
+
import { unwrapOrThrow } from '../../utils/parse-boundary.js';
|
|
63
|
+
import { BoardIdSchema } from '../../types/ids.js';
|
|
64
|
+
import { withBoardInvalidationSingleLeg } from '../../api/board-mutation-invalidation.js';
|
|
65
|
+
import { GROUP_COLOR_VALUES } from '../../api/group-color.js';
|
|
66
|
+
import { GROUP_FIELDS_FRAGMENT, groupProjectionSchema, projectMutationGroup, } from '../../api/group-mutation-result.js';
|
|
67
|
+
const CREATE_GROUP_MUTATION = `
|
|
68
|
+
mutation GroupCreate(
|
|
69
|
+
$boardId: ID!,
|
|
70
|
+
$groupName: String!,
|
|
71
|
+
$groupColor: String
|
|
72
|
+
) {
|
|
73
|
+
create_group(
|
|
74
|
+
board_id: $boardId,
|
|
75
|
+
group_name: $groupName,
|
|
76
|
+
group_color: $groupColor
|
|
77
|
+
) {
|
|
78
|
+
${GROUP_FIELDS_FRAGMENT}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
`;
|
|
82
|
+
export const boardGroupCreateOutputSchema = groupProjectionSchema;
|
|
83
|
+
const inputSchema = z
|
|
84
|
+
.object({
|
|
85
|
+
boardId: BoardIdSchema,
|
|
86
|
+
name: z.string().refine((s) => s.trim().length > 0, {
|
|
87
|
+
message: '--name must be non-empty (whitespace-only is rejected)',
|
|
88
|
+
}),
|
|
89
|
+
// Per cli-design §4.3 group-create: --color is argv-parse
|
|
90
|
+
// validated against the pinned Monday-supported palette.
|
|
91
|
+
// M17 implementation owns the field set (see api/group-color.ts);
|
|
92
|
+
// values outside the set surface as usage_error (exit 1) before
|
|
93
|
+
// any network call. Mirrors M16 column-create's per-type
|
|
94
|
+
// `--settings` field-set ownership rationale.
|
|
95
|
+
color: z.enum(GROUP_COLOR_VALUES).optional(),
|
|
96
|
+
})
|
|
97
|
+
.strict();
|
|
98
|
+
const responseSchema = z
|
|
99
|
+
.object({
|
|
100
|
+
create_group: z.unknown(),
|
|
101
|
+
})
|
|
102
|
+
.loose();
|
|
103
|
+
export const boardGroupCreateCommand = {
|
|
104
|
+
name: 'board.group-create',
|
|
105
|
+
summary: 'Create a new group on a board',
|
|
106
|
+
examples: [
|
|
107
|
+
'monday board group-create 12345 --name "Sprint 42"',
|
|
108
|
+
'monday board group-create 12345 --name "Sprint 42" --color blue',
|
|
109
|
+
'monday board group-create 12345 --name "Preview" --dry-run --json',
|
|
110
|
+
],
|
|
111
|
+
// create_group is non-idempotent — re-running creates a second
|
|
112
|
+
// group with the same name (Monday auto-generates a fresh group
|
|
113
|
+
// id per call). Mirrors `board create` / `workspace create` /
|
|
114
|
+
// `item create` / `column-create` rationale.
|
|
115
|
+
idempotent: false,
|
|
116
|
+
inputSchema,
|
|
117
|
+
outputSchema: boardGroupCreateOutputSchema,
|
|
118
|
+
attach: (program, ctx) => {
|
|
119
|
+
const noun = ensureSubcommand(program, 'board', 'Board commands');
|
|
120
|
+
noun
|
|
121
|
+
.command('group-create <boardId>')
|
|
122
|
+
.description(boardGroupCreateCommand.summary)
|
|
123
|
+
.requiredOption('--name <n>', 'group name')
|
|
124
|
+
.option('--color <c>', 'group color (Monday-supported palette name)')
|
|
125
|
+
.addHelpText('after', ['', 'Examples:', ...boardGroupCreateCommand.examples.map((e) => ` ${e}`), ''].join('\n'))
|
|
126
|
+
.action(async (boardId, opts) => {
|
|
127
|
+
const parsed = parseArgv(boardGroupCreateCommand.inputSchema, {
|
|
128
|
+
boardId,
|
|
129
|
+
...opts,
|
|
130
|
+
});
|
|
131
|
+
const name = parsed.name.trim();
|
|
132
|
+
// No trim on color — the enum check on inputSchema rejects
|
|
133
|
+
// anything outside GROUP_COLOR_VALUES, which already covers
|
|
134
|
+
// exact-match shapes.
|
|
135
|
+
const color = parsed.color;
|
|
136
|
+
const { client, globalFlags, apiVersion, toEmit } = resolveClient(ctx, program.opts());
|
|
137
|
+
if (globalFlags.dryRun) {
|
|
138
|
+
// Per cli-design §6.4 group-create variant: minimal
|
|
139
|
+
// `{operation, board_id, name, color?}`. No preflight
|
|
140
|
+
// read fires — purely argv-derived; meta.source: 'none'.
|
|
141
|
+
const planned = {
|
|
142
|
+
operation: 'create_group',
|
|
143
|
+
board_id: parsed.boardId,
|
|
144
|
+
name,
|
|
145
|
+
};
|
|
146
|
+
if (color !== undefined) {
|
|
147
|
+
planned.color = color;
|
|
148
|
+
}
|
|
149
|
+
emitDryRun({
|
|
150
|
+
ctx,
|
|
151
|
+
programOpts: program.opts(),
|
|
152
|
+
plannedChanges: [planned],
|
|
153
|
+
source: 'none',
|
|
154
|
+
cacheAgeSeconds: null,
|
|
155
|
+
warnings: [],
|
|
156
|
+
apiVersion,
|
|
157
|
+
});
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
// Live path. Send each optional arg only when the agent
|
|
161
|
+
// provided one — passing `null` would explicitly clear /
|
|
162
|
+
// reject Monday's server-side default.
|
|
163
|
+
const variables = {
|
|
164
|
+
boardId: parsed.boardId,
|
|
165
|
+
groupName: name,
|
|
166
|
+
};
|
|
167
|
+
if (color !== undefined) {
|
|
168
|
+
variables.groupColor = color;
|
|
169
|
+
}
|
|
170
|
+
// §8 single-leg call-site contract via `withBoardInvalidation
|
|
171
|
+
// SingleLeg` (R46): the helper invalidates AFTER the closure
|
|
172
|
+
// returns (i.e. after `data` projection completes). On the
|
|
173
|
+
// error path the closure's throw bypasses invalidation —
|
|
174
|
+
// matching the §8 "skip on error" rule. Ordered BEFORE
|
|
175
|
+
// emitMutation so a cache-unlink failure surfaces through
|
|
176
|
+
// the runner's catch-all rather than double-emitting after
|
|
177
|
+
// a success envelope hit stdout.
|
|
178
|
+
const { data: projected, response } = await withBoardInvalidationSingleLeg({
|
|
179
|
+
boardId: parsed.boardId,
|
|
180
|
+
env: ctx.env,
|
|
181
|
+
perform: async () => {
|
|
182
|
+
const wireResponse = await client.raw(CREATE_GROUP_MUTATION, variables, { operationName: 'GroupCreate' });
|
|
183
|
+
const data = unwrapOrThrow(responseSchema.safeParse(wireResponse.data), {
|
|
184
|
+
context: 'Monday returned a malformed GroupCreate response',
|
|
185
|
+
details: { board_id: parsed.boardId, name },
|
|
186
|
+
hint: "this is a data-integrity error in Monday's response; " +
|
|
187
|
+
'verify the response shape and update responseSchema if ' +
|
|
188
|
+
"Monday's contract has changed.",
|
|
189
|
+
});
|
|
190
|
+
// Distinguish missing-root-key (schema-drift →
|
|
191
|
+
// internal_error with schema-drift hint) from null
|
|
192
|
+
// payload (Monday returned no group → also internal_
|
|
193
|
+
// error here since create's contract is "every
|
|
194
|
+
// successful call returns a Group"). Mirrors the M16
|
|
195
|
+
// column-create / M15 board-create missing-root-key vs
|
|
196
|
+
// null-payload split.
|
|
197
|
+
if (!('create_group' in data)) {
|
|
198
|
+
throw new ApiError('internal_error', `Monday's GroupCreate response is missing the create_group root field`, {
|
|
199
|
+
details: {
|
|
200
|
+
board_id: parsed.boardId,
|
|
201
|
+
name,
|
|
202
|
+
hint: "this is a schema-drift error in Monday's GraphQL " +
|
|
203
|
+
'response; verify the mutation declaration and update ' +
|
|
204
|
+
"the response schema if Monday's contract has changed.",
|
|
205
|
+
},
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
// R48 lift (api/group-mutation-result.ts): null-payload
|
|
209
|
+
// guard + projection. Create's null path uses `internal_
|
|
210
|
+
// error` because the contract is "every successful call
|
|
211
|
+
// returns a Group"; the helper carries the agent-
|
|
212
|
+
// supplied `name` in `details` (paired with `board_id`)
|
|
213
|
+
// because the new group id doesn't exist yet on the
|
|
214
|
+
// null path.
|
|
215
|
+
const projection = projectMutationGroup({
|
|
216
|
+
raw: data.create_group,
|
|
217
|
+
errorCode: 'internal_error',
|
|
218
|
+
errorMessage: `Monday returned no group payload from create_group for board ${parsed.boardId} name ${JSON.stringify(name)}.`,
|
|
219
|
+
boardId: parsed.boardId,
|
|
220
|
+
idKey: 'name',
|
|
221
|
+
idValue: name,
|
|
222
|
+
});
|
|
223
|
+
return { data: projection, response: wireResponse };
|
|
224
|
+
},
|
|
225
|
+
});
|
|
226
|
+
emitMutation({
|
|
227
|
+
ctx,
|
|
228
|
+
data: projected,
|
|
229
|
+
schema: boardGroupCreateCommand.outputSchema,
|
|
230
|
+
programOpts: program.opts(),
|
|
231
|
+
warnings: [],
|
|
232
|
+
...toEmit(response),
|
|
233
|
+
source: 'live',
|
|
234
|
+
cacheAgeSeconds: null,
|
|
235
|
+
});
|
|
236
|
+
});
|
|
237
|
+
},
|
|
238
|
+
};
|
|
239
|
+
//# sourceMappingURL=group-create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"group-create.js","sourceRoot":"","sources":["../../../src/commands/board/group-create.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `monday board group-delete <bid> <gid> --yes [--dry-run]` —
|
|
3
|
+
* delete a group from a board (`cli-design.md` §4.3 line 1506,
|
|
4
|
+
* `v0.2-plan.md` §3 M17).
|
|
5
|
+
*
|
|
6
|
+
* **Confirmation gate** (cli-design §3.1 #7 + §10.2). `--yes` is
|
|
7
|
+
* mandatory for the live path; without `--yes` AND without
|
|
8
|
+
* `--dry-run` the command fails fast with `confirmation_required`
|
|
9
|
+
* (exit 1) carrying `details.{board_id, group_id, hint}` per
|
|
10
|
+
* cli-design §6.5 single-target shape — the wire signature
|
|
11
|
+
* (`delete_group(board_id, group_id)`) is two-tuple, so both ids
|
|
12
|
+
* echo. Same gate-before-`resolveClient()` ordering as `item
|
|
13
|
+
* delete` / `workspace delete` / `board delete` / `column-delete`
|
|
14
|
+
* / `group-archive`. R29 helper count: 9 → 10 (group-delete is the
|
|
15
|
+
* 10th consumer of `enforceDestructiveGate`); 3rd two-tuple
|
|
16
|
+
* `extraDetails` consumer after column-delete + group-archive.
|
|
17
|
+
*
|
|
18
|
+
* **`--dry-run` bypasses the confirmation gate** per cli-design
|
|
19
|
+
* §3.1 #7 — dry-run is non-executing and the gate is for live
|
|
20
|
+
* destructive writes only. `group-delete <bid> <gid> --dry-run`
|
|
21
|
+
* without `--yes` emits the dry-run envelope with `meta.source:
|
|
22
|
+
* 'none'`, matching `item delete` / `update delete` / `workspace
|
|
23
|
+
* delete` / `board delete` / `column-delete` precedent.
|
|
24
|
+
*
|
|
25
|
+
* **Wire shape.** Single round-trip via `delete_group(board_id,
|
|
26
|
+
* group_id)` per SDK 14.0.0 `MutationDelete_GroupArgs`. Monday
|
|
27
|
+
* returns `Maybe<Group>` (the group's last-look projection before
|
|
28
|
+
* deletion). A null result surfaces as `not_found` — the standard
|
|
29
|
+
* "id was bogus / already deleted" mapping.
|
|
30
|
+
*
|
|
31
|
+
* **Dry-run shape** per cli-design §6.4 group-delete variant:
|
|
32
|
+
* minimal `{operation: "delete_group", board_id, group_id}`. No
|
|
33
|
+
* preflight read fires; the dry-run is purely argv-derived.
|
|
34
|
+
* `meta.source: 'none'`. Mirrors the destructive-no-read pattern
|
|
35
|
+
* uniform across `item delete` / `update delete` / `workspace
|
|
36
|
+
* delete` / `board delete` / M16 `column-delete`. Note the
|
|
37
|
+
* deliberate divergence from `group-archive`'s snapshot-bearing
|
|
38
|
+
* dry-run shape: archive carries the source snapshot
|
|
39
|
+
* (item-archive / board-archive precedent — recoverable
|
|
40
|
+
* destructive; preview shows what will be hidden), delete is
|
|
41
|
+
* minimal (workspace-delete / board-delete / column-delete
|
|
42
|
+
* precedent — irrecoverable destructive past Monday's retention
|
|
43
|
+
* window; the agent already knows what they're deleting).
|
|
44
|
+
*
|
|
45
|
+
* **Eager invalidation** (cli-design §8 single-leg call-site
|
|
46
|
+
* contract). On success, calls `invalidateBoard(boardId)` AFTER
|
|
47
|
+
* the success envelope's `data` projection completes; ordered
|
|
48
|
+
* BEFORE `emitMutation` so a cache-unlink failure surfaces
|
|
49
|
+
* through the runner's catch-all. Skipped on the error path.
|
|
50
|
+
* Required because the deleted group must drop from the cached
|
|
51
|
+
* `groups: [...]` list; without invalidation a same-process
|
|
52
|
+
* `board describe` / `monday board groups <bid>` would surface a
|
|
53
|
+
* phantom group until TTL eviction.
|
|
54
|
+
*
|
|
55
|
+
* **Idempotent: false.** Re-deleting an already-deleted group
|
|
56
|
+
* surfaces `not_found` past the first call — the wire-level
|
|
57
|
+
* converges, but the CLI-level surfaces a different envelope.
|
|
58
|
+
* Mirrors `item delete` / `update delete` / `workspace delete` /
|
|
59
|
+
* `board delete` / `column-delete` rationale.
|
|
60
|
+
*/
|
|
61
|
+
import { z } from 'zod';
|
|
62
|
+
import { type CommandModule } from '../types.js';
|
|
63
|
+
import { type GroupProjection } from '../../api/group-mutation-result.js';
|
|
64
|
+
export declare const boardGroupDeleteOutputSchema: z.ZodObject<{
|
|
65
|
+
id: z.ZodString;
|
|
66
|
+
title: z.ZodString;
|
|
67
|
+
color: z.ZodNullable<z.ZodString>;
|
|
68
|
+
position: z.ZodNullable<z.ZodString>;
|
|
69
|
+
archived: z.ZodNullable<z.ZodBoolean>;
|
|
70
|
+
deleted: z.ZodNullable<z.ZodBoolean>;
|
|
71
|
+
}, z.core.$strict>;
|
|
72
|
+
export type BoardGroupDeleteOutput = GroupProjection;
|
|
73
|
+
declare const inputSchema: z.ZodObject<{
|
|
74
|
+
boardId: z.core.$ZodBranded<z.ZodString, "BoardId", "out">;
|
|
75
|
+
groupId: z.core.$ZodBranded<z.ZodString, "GroupId", "out">;
|
|
76
|
+
}, z.core.$strict>;
|
|
77
|
+
export declare const boardGroupDeleteCommand: CommandModule<z.infer<typeof inputSchema>, BoardGroupDeleteOutput>;
|
|
78
|
+
export {};
|
|
79
|
+
//# sourceMappingURL=group-delete.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"group-delete.d.ts","sourceRoot":"","sources":["../../../src/commands/board/group-delete.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAUnE,OAAO,EAIL,KAAK,eAAe,EACrB,MAAM,oCAAoC,CAAC;AAU5C,eAAO,MAAM,4BAA4B;;;;;;;kBAAwB,CAAC;AAClE,MAAM,MAAM,sBAAsB,GAAG,eAAe,CAAC;AAErD,QAAA,MAAM,WAAW;;;kBAKN,CAAC;AAQZ,eAAO,MAAM,uBAAuB,EAAE,aAAa,CACjD,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,EAC3B,sBAAsB,CAwJvB,CAAC"}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `monday board group-delete <bid> <gid> --yes [--dry-run]` —
|
|
3
|
+
* delete a group from a board (`cli-design.md` §4.3 line 1506,
|
|
4
|
+
* `v0.2-plan.md` §3 M17).
|
|
5
|
+
*
|
|
6
|
+
* **Confirmation gate** (cli-design §3.1 #7 + §10.2). `--yes` is
|
|
7
|
+
* mandatory for the live path; without `--yes` AND without
|
|
8
|
+
* `--dry-run` the command fails fast with `confirmation_required`
|
|
9
|
+
* (exit 1) carrying `details.{board_id, group_id, hint}` per
|
|
10
|
+
* cli-design §6.5 single-target shape — the wire signature
|
|
11
|
+
* (`delete_group(board_id, group_id)`) is two-tuple, so both ids
|
|
12
|
+
* echo. Same gate-before-`resolveClient()` ordering as `item
|
|
13
|
+
* delete` / `workspace delete` / `board delete` / `column-delete`
|
|
14
|
+
* / `group-archive`. R29 helper count: 9 → 10 (group-delete is the
|
|
15
|
+
* 10th consumer of `enforceDestructiveGate`); 3rd two-tuple
|
|
16
|
+
* `extraDetails` consumer after column-delete + group-archive.
|
|
17
|
+
*
|
|
18
|
+
* **`--dry-run` bypasses the confirmation gate** per cli-design
|
|
19
|
+
* §3.1 #7 — dry-run is non-executing and the gate is for live
|
|
20
|
+
* destructive writes only. `group-delete <bid> <gid> --dry-run`
|
|
21
|
+
* without `--yes` emits the dry-run envelope with `meta.source:
|
|
22
|
+
* 'none'`, matching `item delete` / `update delete` / `workspace
|
|
23
|
+
* delete` / `board delete` / `column-delete` precedent.
|
|
24
|
+
*
|
|
25
|
+
* **Wire shape.** Single round-trip via `delete_group(board_id,
|
|
26
|
+
* group_id)` per SDK 14.0.0 `MutationDelete_GroupArgs`. Monday
|
|
27
|
+
* returns `Maybe<Group>` (the group's last-look projection before
|
|
28
|
+
* deletion). A null result surfaces as `not_found` — the standard
|
|
29
|
+
* "id was bogus / already deleted" mapping.
|
|
30
|
+
*
|
|
31
|
+
* **Dry-run shape** per cli-design §6.4 group-delete variant:
|
|
32
|
+
* minimal `{operation: "delete_group", board_id, group_id}`. No
|
|
33
|
+
* preflight read fires; the dry-run is purely argv-derived.
|
|
34
|
+
* `meta.source: 'none'`. Mirrors the destructive-no-read pattern
|
|
35
|
+
* uniform across `item delete` / `update delete` / `workspace
|
|
36
|
+
* delete` / `board delete` / M16 `column-delete`. Note the
|
|
37
|
+
* deliberate divergence from `group-archive`'s snapshot-bearing
|
|
38
|
+
* dry-run shape: archive carries the source snapshot
|
|
39
|
+
* (item-archive / board-archive precedent — recoverable
|
|
40
|
+
* destructive; preview shows what will be hidden), delete is
|
|
41
|
+
* minimal (workspace-delete / board-delete / column-delete
|
|
42
|
+
* precedent — irrecoverable destructive past Monday's retention
|
|
43
|
+
* window; the agent already knows what they're deleting).
|
|
44
|
+
*
|
|
45
|
+
* **Eager invalidation** (cli-design §8 single-leg call-site
|
|
46
|
+
* contract). On success, calls `invalidateBoard(boardId)` AFTER
|
|
47
|
+
* the success envelope's `data` projection completes; ordered
|
|
48
|
+
* BEFORE `emitMutation` so a cache-unlink failure surfaces
|
|
49
|
+
* through the runner's catch-all. Skipped on the error path.
|
|
50
|
+
* Required because the deleted group must drop from the cached
|
|
51
|
+
* `groups: [...]` list; without invalidation a same-process
|
|
52
|
+
* `board describe` / `monday board groups <bid>` would surface a
|
|
53
|
+
* phantom group until TTL eviction.
|
|
54
|
+
*
|
|
55
|
+
* **Idempotent: false.** Re-deleting an already-deleted group
|
|
56
|
+
* surfaces `not_found` past the first call — the wire-level
|
|
57
|
+
* converges, but the CLI-level surfaces a different envelope.
|
|
58
|
+
* Mirrors `item delete` / `update delete` / `workspace delete` /
|
|
59
|
+
* `board delete` / `column-delete` rationale.
|
|
60
|
+
*/
|
|
61
|
+
import { z } from 'zod';
|
|
62
|
+
import { ensureSubcommand } from '../types.js';
|
|
63
|
+
import { emitDryRun, emitMutation } from '../emit.js';
|
|
64
|
+
import { resolveClient } from '../../api/resolve-client.js';
|
|
65
|
+
import { BoardIdSchema, GroupIdSchema } from '../../types/ids.js';
|
|
66
|
+
import { parseArgv } from '../parse-argv.js';
|
|
67
|
+
import { parseGlobalFlags } from '../../types/global-flags.js';
|
|
68
|
+
import { ApiError } from '../../utils/errors.js';
|
|
69
|
+
import { enforceDestructiveGate } from '../../api/destructive-gate.js';
|
|
70
|
+
import { unwrapOrThrow } from '../../utils/parse-boundary.js';
|
|
71
|
+
import { withBoardInvalidationSingleLeg } from '../../api/board-mutation-invalidation.js';
|
|
72
|
+
import { GROUP_FIELDS_FRAGMENT, groupProjectionSchema, projectMutationGroup, } from '../../api/group-mutation-result.js';
|
|
73
|
+
const DELETE_GROUP_MUTATION = `
|
|
74
|
+
mutation GroupDelete($boardId: ID!, $groupId: String!) {
|
|
75
|
+
delete_group(board_id: $boardId, group_id: $groupId) {
|
|
76
|
+
${GROUP_FIELDS_FRAGMENT}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
`;
|
|
80
|
+
export const boardGroupDeleteOutputSchema = groupProjectionSchema;
|
|
81
|
+
const inputSchema = z
|
|
82
|
+
.object({
|
|
83
|
+
boardId: BoardIdSchema,
|
|
84
|
+
groupId: GroupIdSchema,
|
|
85
|
+
})
|
|
86
|
+
.strict();
|
|
87
|
+
const responseSchema = z
|
|
88
|
+
.object({
|
|
89
|
+
delete_group: z.unknown(),
|
|
90
|
+
})
|
|
91
|
+
.loose();
|
|
92
|
+
export const boardGroupDeleteCommand = {
|
|
93
|
+
name: 'board.group-delete',
|
|
94
|
+
summary: 'Delete a group from a board — --yes required',
|
|
95
|
+
examples: [
|
|
96
|
+
'monday board group-delete 12345 topics --yes',
|
|
97
|
+
'monday board group-delete 12345 topics --dry-run',
|
|
98
|
+
'monday board group-delete 12345 topics --yes --json',
|
|
99
|
+
],
|
|
100
|
+
// Re-deleting an already-deleted group surfaces not_found —
|
|
101
|
+
// same rationale as workspace / board / update / item / column
|
|
102
|
+
// delete.
|
|
103
|
+
idempotent: false,
|
|
104
|
+
inputSchema,
|
|
105
|
+
outputSchema: boardGroupDeleteOutputSchema,
|
|
106
|
+
attach: (program, ctx) => {
|
|
107
|
+
const noun = ensureSubcommand(program, 'board', 'Board commands');
|
|
108
|
+
noun
|
|
109
|
+
.command('group-delete <boardId> <groupId>')
|
|
110
|
+
.description(boardGroupDeleteCommand.summary)
|
|
111
|
+
.addHelpText('after', ['', 'Examples:', ...boardGroupDeleteCommand.examples.map((e) => ` ${e}`), ''].join('\n'))
|
|
112
|
+
.action(async (boardId, groupId) => {
|
|
113
|
+
const parsed = parseArgv(boardGroupDeleteCommand.inputSchema, {
|
|
114
|
+
boardId,
|
|
115
|
+
groupId,
|
|
116
|
+
});
|
|
117
|
+
// Gate fires BEFORE resolveClient() so a missing --yes
|
|
118
|
+
// surfaces as confirmation_required, not config_error
|
|
119
|
+
// (M10 round-1 P2 ordering invariant; R29 helper preserves
|
|
120
|
+
// it via already-parsed globalFlags). The two-tuple wire
|
|
121
|
+
// signature carries both ids in the confirmation envelope
|
|
122
|
+
// per cli-design §6.5: `extraDetails: {board_id}` rides
|
|
123
|
+
// alongside the canonical `group_id` detailKey.
|
|
124
|
+
const globalFlags = parseGlobalFlags(program.opts(), ctx.env);
|
|
125
|
+
enforceDestructiveGate({
|
|
126
|
+
globalFlags,
|
|
127
|
+
verb: 'board group-delete',
|
|
128
|
+
target: parsed.groupId,
|
|
129
|
+
detailKey: 'group_id',
|
|
130
|
+
extraDetails: { board_id: parsed.boardId },
|
|
131
|
+
action: `delete group ${parsed.groupId} from board ${parsed.boardId}`,
|
|
132
|
+
hint: 'delete is destructive — Monday retains deleted groups ' +
|
|
133
|
+
'past their retention window; pass `--dry-run` first to ' +
|
|
134
|
+
'preview, or use `monday board group-archive` for a ' +
|
|
135
|
+
'recoverable hide (cli-design §4.3 group-delete + §8 ' +
|
|
136
|
+
'decision 9).',
|
|
137
|
+
});
|
|
138
|
+
if (globalFlags.dryRun) {
|
|
139
|
+
// Minimal dry-run shape per §6.4 group-delete variant —
|
|
140
|
+
// no preflight read; meta.source: 'none'. Live surfaces
|
|
141
|
+
// not_found for bogus ids on its own.
|
|
142
|
+
const { apiVersion } = resolveClient(ctx, program.opts());
|
|
143
|
+
emitDryRun({
|
|
144
|
+
ctx,
|
|
145
|
+
programOpts: program.opts(),
|
|
146
|
+
plannedChanges: [
|
|
147
|
+
{
|
|
148
|
+
operation: 'delete_group',
|
|
149
|
+
board_id: parsed.boardId,
|
|
150
|
+
group_id: parsed.groupId,
|
|
151
|
+
},
|
|
152
|
+
],
|
|
153
|
+
source: 'none',
|
|
154
|
+
cacheAgeSeconds: null,
|
|
155
|
+
warnings: [],
|
|
156
|
+
apiVersion,
|
|
157
|
+
});
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
const { client, toEmit } = resolveClient(ctx, program.opts());
|
|
161
|
+
// §8 single-leg call-site contract via `withBoardInvalidation
|
|
162
|
+
// SingleLeg` (R46): invalidate AFTER the closure returns
|
|
163
|
+
// (i.e. after `data` projection completes), BEFORE
|
|
164
|
+
// emitMutation so a cache-unlink failure surfaces through
|
|
165
|
+
// the runner's catch-all. The closure's throws on schema
|
|
166
|
+
// drift / null payload bypass invalidation — a failed call
|
|
167
|
+
// didn't change board state.
|
|
168
|
+
const { data: projected, response } = await withBoardInvalidationSingleLeg({
|
|
169
|
+
boardId: parsed.boardId,
|
|
170
|
+
env: ctx.env,
|
|
171
|
+
perform: async () => {
|
|
172
|
+
const wireResponse = await client.raw(DELETE_GROUP_MUTATION, { boardId: parsed.boardId, groupId: parsed.groupId }, { operationName: 'GroupDelete' });
|
|
173
|
+
const data = unwrapOrThrow(responseSchema.safeParse(wireResponse.data), {
|
|
174
|
+
context: 'Monday returned a malformed GroupDelete response',
|
|
175
|
+
details: { board_id: parsed.boardId, group_id: parsed.groupId },
|
|
176
|
+
hint: "this is a data-integrity error in Monday's response; " +
|
|
177
|
+
'verify the response shape and update responseSchema if ' +
|
|
178
|
+
"Monday's contract has changed.",
|
|
179
|
+
});
|
|
180
|
+
// Distinguish missing-root-key (schema-drift →
|
|
181
|
+
// internal_error) from null payload (group missing →
|
|
182
|
+
// not_found). Mirrors the M15 board-delete + M16
|
|
183
|
+
// column-delete distinction.
|
|
184
|
+
if (!('delete_group' in data)) {
|
|
185
|
+
throw new ApiError('internal_error', `Monday's GroupDelete response is missing the delete_group root field`, {
|
|
186
|
+
details: {
|
|
187
|
+
board_id: parsed.boardId,
|
|
188
|
+
group_id: parsed.groupId,
|
|
189
|
+
hint: "this is a schema-drift error in Monday's GraphQL " +
|
|
190
|
+
'response; verify the mutation declaration and update ' +
|
|
191
|
+
"the response schema if Monday's contract has changed.",
|
|
192
|
+
},
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
// R48 lift: null-payload guard + projection. Delete's
|
|
196
|
+
// null path uses `not_found` (Monday's "id was bogus /
|
|
197
|
+
// already deleted" mapping).
|
|
198
|
+
const projection = projectMutationGroup({
|
|
199
|
+
raw: data.delete_group,
|
|
200
|
+
errorCode: 'not_found',
|
|
201
|
+
errorMessage: `Monday returned no group payload from delete_group for board ${parsed.boardId} group ${parsed.groupId}`,
|
|
202
|
+
boardId: parsed.boardId,
|
|
203
|
+
idKey: 'group_id',
|
|
204
|
+
idValue: parsed.groupId,
|
|
205
|
+
});
|
|
206
|
+
return { data: projection, response: wireResponse };
|
|
207
|
+
},
|
|
208
|
+
});
|
|
209
|
+
emitMutation({
|
|
210
|
+
ctx,
|
|
211
|
+
data: projected,
|
|
212
|
+
schema: boardGroupDeleteCommand.outputSchema,
|
|
213
|
+
programOpts: program.opts(),
|
|
214
|
+
warnings: [],
|
|
215
|
+
...toEmit(response),
|
|
216
|
+
source: 'live',
|
|
217
|
+
cacheAgeSeconds: null,
|
|
218
|
+
});
|
|
219
|
+
});
|
|
220
|
+
},
|
|
221
|
+
};
|
|
222
|
+
//# sourceMappingURL=group-delete.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"group-delete.js","sourceRoot":"","sources":["../../../src/commands/board/group-delete.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `monday board group-duplicate <bid> <gid> [--name <n>]
|
|
3
|
+
* [--dry-run]` — duplicate a group on a board (`cli-design.md`
|
|
4
|
+
* §4.3 line 1441, `v0.2-plan.md` §3 M17).
|
|
5
|
+
*
|
|
6
|
+
* **Wire shape.** Single round-trip via `duplicate_group(board_id,
|
|
7
|
+
* group_id, add_to_top?, group_title?)` per SDK 14.0.0
|
|
8
|
+
* `MutationDuplicate_GroupArgs`. Returns `Maybe<Group>` (the
|
|
9
|
+
* newly-duplicated group, with a fresh ID auto-generated by
|
|
10
|
+
* Monday). `--name <n>` maps to wire `group_title?` (when omitted,
|
|
11
|
+
* Monday's wire-side default naming applies — typically
|
|
12
|
+
* `"<source name> (copy)"`, but the exact convention is server-
|
|
13
|
+
* side, not pinned by the CLI). M17 deliberately OMITS
|
|
14
|
+
* `add_to_top: Boolean` — agents needing placement control call
|
|
15
|
+
* the wire mutation via M9's `dev mutate` escape hatch (mirrors
|
|
16
|
+
* M16 column-create's omission of `after_column_id`).
|
|
17
|
+
*
|
|
18
|
+
* **Load-bearing divergence from sibling duplicate verbs.** `monday
|
|
19
|
+
* item duplicate` and `monday board duplicate` both surface
|
|
20
|
+
* `--with-updates` (mapping to wire `with_updates: Boolean` on
|
|
21
|
+
* `duplicate_item` / `duplicate_board`); `monday board group-
|
|
22
|
+
* duplicate` does NOT, because Monday's `duplicate_group` wire
|
|
23
|
+
* signature has no equivalent argument. The pre-pre-flight
|
|
24
|
+
* v0.2-plan §3 M17 draft listed `[--with-updates]` for group-
|
|
25
|
+
* duplicate; the M17 pre-flight pinned the wire truth and dropped
|
|
26
|
+
* the flag.
|
|
27
|
+
*
|
|
28
|
+
* **Live-envelope projection.** Returned `Maybe<Group>` is
|
|
29
|
+
* projected through `groupProjectionSchema` via
|
|
30
|
+
* `projectMutationGroup`. The CLI's success envelope's `data` is
|
|
31
|
+
* the new group's projection (not the source's).
|
|
32
|
+
*
|
|
33
|
+
* **Dry-run shape** per cli-design §6.4 group-duplicate variant:
|
|
34
|
+
* minimal `{operation: "duplicate_group", board_id, group_id,
|
|
35
|
+
* name?}`. No preflight read leg fires (Monday's `duplicate_group`
|
|
36
|
+
* reports `not_found` if the IDs are bogus and the dry-run is
|
|
37
|
+
* purely argv-derived — mirrors `column-delete`'s no-read pattern,
|
|
38
|
+
* even though group-duplicate is non-destructive). `meta.source:
|
|
39
|
+
* 'none'`.
|
|
40
|
+
*
|
|
41
|
+
* **Eager invalidation** (cli-design §8 single-leg call-site
|
|
42
|
+
* contract). On success, calls `invalidateBoard(boardId)` AFTER
|
|
43
|
+
* the success envelope's `data` projection completes. The cached
|
|
44
|
+
* `groups: [...]` list grew by one entry, so subsequent reads in
|
|
45
|
+
* the same process see the new group without TTL eviction.
|
|
46
|
+
*
|
|
47
|
+
* **Idempotent: false.** Every call creates a new group with a
|
|
48
|
+
* fresh ID (mirrors `item duplicate` / `board duplicate`). NOT
|
|
49
|
+
* destructive (no `--yes` gate).
|
|
50
|
+
*/
|
|
51
|
+
import { z } from 'zod';
|
|
52
|
+
import { type CommandModule } from '../types.js';
|
|
53
|
+
import { type GroupProjection } from '../../api/group-mutation-result.js';
|
|
54
|
+
export declare const boardGroupDuplicateOutputSchema: z.ZodObject<{
|
|
55
|
+
id: z.ZodString;
|
|
56
|
+
title: z.ZodString;
|
|
57
|
+
color: z.ZodNullable<z.ZodString>;
|
|
58
|
+
position: z.ZodNullable<z.ZodString>;
|
|
59
|
+
archived: z.ZodNullable<z.ZodBoolean>;
|
|
60
|
+
deleted: z.ZodNullable<z.ZodBoolean>;
|
|
61
|
+
}, z.core.$strict>;
|
|
62
|
+
export type BoardGroupDuplicateOutput = GroupProjection;
|
|
63
|
+
declare const inputSchema: z.ZodObject<{
|
|
64
|
+
boardId: z.core.$ZodBranded<z.ZodString, "BoardId", "out">;
|
|
65
|
+
groupId: z.core.$ZodBranded<z.ZodString, "GroupId", "out">;
|
|
66
|
+
name: z.ZodOptional<z.ZodString>;
|
|
67
|
+
}, z.core.$strict>;
|
|
68
|
+
export declare const boardGroupDuplicateCommand: CommandModule<z.infer<typeof inputSchema>, BoardGroupDuplicateOutput>;
|
|
69
|
+
export {};
|
|
70
|
+
//# sourceMappingURL=group-duplicate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"group-duplicate.d.ts","sourceRoot":"","sources":["../../../src/commands/board/group-duplicate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAQnE,OAAO,EAIL,KAAK,eAAe,EACrB,MAAM,oCAAoC,CAAC;AAkB5C,eAAO,MAAM,+BAA+B;;;;;;;kBAAwB,CAAC;AACrE,MAAM,MAAM,yBAAyB,GAAG,eAAe,CAAC;AAExD,QAAA,MAAM,WAAW;;;;kBAWN,CAAC;AAQZ,eAAO,MAAM,0BAA0B,EAAE,aAAa,CACpD,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,EAC3B,yBAAyB,CAqJ1B,CAAC"}
|