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,238 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `monday item duplicate <iid> [--with-updates] [--dry-run]` —
|
|
3
|
+
* duplicate an item (`cli-design.md` §4.3 line 531, `v0.2-plan.md`
|
|
4
|
+
* §3 M10).
|
|
5
|
+
*
|
|
6
|
+
* Third sibling of M10's lifecycle cluster — joins `archive` + `delete`
|
|
7
|
+
* to round out the four-verb set Monday's API exposes (`archive_item`
|
|
8
|
+
* / `delete_item` / `duplicate_item`; the fourth, `move_item_to_*`,
|
|
9
|
+
* lands in M11). Unlike its M10 siblings duplicate is **creative**,
|
|
10
|
+
* not destructive, so it skips the `--yes` gate (cli-design §3.1 #7
|
|
11
|
+
* is for destructive ops only — `monday item create` sets the
|
|
12
|
+
* precedent for creative verbs without confirmation).
|
|
13
|
+
*
|
|
14
|
+
* **`board_id` derivation.** Monday's `duplicate_item` mutation requires
|
|
15
|
+
* `board_id: ID!` (the SDK signature, verified at
|
|
16
|
+
* `node_modules/@mondaydotcomorg/api/dist/esm/index.d.ts:2130`). Unlike
|
|
17
|
+
* archive + delete (which only take `item_id`) the live path here is
|
|
18
|
+
* **two-leg**: a `lookupItemBoard` round-trip first to derive the
|
|
19
|
+
* source item's `board_id`, then the mutation. Both legs are
|
|
20
|
+
* guaranteed live — no cache plays a role — so `meta.source: "live"`
|
|
21
|
+
* directly without invoking `mergeSource` (the aggregator is for
|
|
22
|
+
* paths that mix cache + live).
|
|
23
|
+
*
|
|
24
|
+
* **`--dry-run` shape.** Reads the source item via the same
|
|
25
|
+
* `ITEM_FIELDS_FRAGMENT` projection archive + delete use, then emits
|
|
26
|
+
* the §6.4 dry-run envelope with `operation: "duplicate_item"`,
|
|
27
|
+
* `item_id`, `with_updates`, and `item: <projected source snapshot>`.
|
|
28
|
+
* The dry-run is **single-leg** (no separate board-id lookup needed —
|
|
29
|
+
* the source-item read carries everything we'd display, and the
|
|
30
|
+
* mutation isn't fired). `meta.source: "live"` because the read
|
|
31
|
+
* leg fired (mirrors archive's dry-run shape).
|
|
32
|
+
*
|
|
33
|
+
* **Live path.** Two round-trips: `ItemBoardLookup($ids)` →
|
|
34
|
+
* `ItemDuplicate($itemId, $boardId, $withUpdates)`. Monday's
|
|
35
|
+
* `duplicate_item` returns the new `Item` directly with a fresh
|
|
36
|
+
* `id` (and the same `board_id`, because Monday duplicates onto the
|
|
37
|
+
* source's board); a null result surfaces as `not_found` matching
|
|
38
|
+
* the dry-run path's null-handling so agents key off one stable code
|
|
39
|
+
* regardless of which path they took.
|
|
40
|
+
*
|
|
41
|
+
* **Mutation envelope** (cli-design §6.4 line 1827-1831 precedent).
|
|
42
|
+
* `data` extends `projectedItemSchema` with one field —
|
|
43
|
+
* `duplicated_from_id: <source-iid>`. The lineage is a meaningful
|
|
44
|
+
* relationship of the new item, mirroring upsert's `created: true |
|
|
45
|
+
* false` flag pattern: a per-verb `data` extension for a
|
|
46
|
+
* business-signal an agent reading the envelope needs to thread into
|
|
47
|
+
* subsequent operations. v0.2-plan §3 M10's binding requirement
|
|
48
|
+
* ("Returns the new item's ID + the source item's ID") is satisfied
|
|
49
|
+
* by `data.id` (new) + `data.duplicated_from_id` (source).
|
|
50
|
+
*
|
|
51
|
+
* **Idempotent: false.** Re-running with the same args creates a
|
|
52
|
+
* second duplicate. Same shape `monday item create`'s idempotency
|
|
53
|
+
* marker uses (cli-design §9.1 idempotency table — `duplicate_item`
|
|
54
|
+
* inherits `create_item`'s "every call creates a new item" semantics,
|
|
55
|
+
* which is why the table doesn't list it separately). Agents
|
|
56
|
+
* needing idempotent duplicate-or-update use `monday item upsert`
|
|
57
|
+
* (M12).
|
|
58
|
+
*
|
|
59
|
+
* **Not_found semantics.** A missing source item or one the token
|
|
60
|
+
* can't read surfaces as `not_found` with `details.item_id`. Mirrors
|
|
61
|
+
* archive + delete + `monday item get` — same code, same details
|
|
62
|
+
* key, same agent-recovery story.
|
|
63
|
+
*/
|
|
64
|
+
import { z } from 'zod';
|
|
65
|
+
import { ensureSubcommand } from '../types.js';
|
|
66
|
+
import { emitDryRun, emitMutation } from '../emit.js';
|
|
67
|
+
import { resolveClient } from '../../api/resolve-client.js';
|
|
68
|
+
import { ItemIdSchema } from '../../types/ids.js';
|
|
69
|
+
import { parseArgv } from '../parse-argv.js';
|
|
70
|
+
import { ITEM_FIELDS_FRAGMENT } from '../../api/item-helpers.js';
|
|
71
|
+
import { projectMutationItem } from '../../api/item-mutation-result.js';
|
|
72
|
+
import { lookupItemBoard } from '../../api/item-board-lookup.js';
|
|
73
|
+
import { readSourceItemForDryRun } from '../../api/item-source-read.js';
|
|
74
|
+
import { projectedItemSchema } from '../../api/item-projection.js';
|
|
75
|
+
// The live mutation returns an `Item` shape — same fragment as
|
|
76
|
+
// `item get`. The dry-run source-item read goes through
|
|
77
|
+
// `readSourceItemForDryRun` (R27) so the query string + null-handling
|
|
78
|
+
// stay one-source-of-truth across the M10 lifecycle verbs (archive
|
|
79
|
+
// + delete + duplicate).
|
|
80
|
+
const DUPLICATE_ITEM_MUTATION = `
|
|
81
|
+
mutation ItemDuplicate($itemId: ID!, $boardId: ID!, $withUpdates: Boolean) {
|
|
82
|
+
duplicate_item(item_id: $itemId, board_id: $boardId, with_updates: $withUpdates) {
|
|
83
|
+
${ITEM_FIELDS_FRAGMENT}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
`;
|
|
87
|
+
/**
|
|
88
|
+
* The mutation envelope's `data` extends `projectedItemSchema` with
|
|
89
|
+
* one field — `duplicated_from_id` — pointing at the source item ID
|
|
90
|
+
* the agent passed positionally. v0.2-plan §3 M10 commits the CLI to
|
|
91
|
+
* "Returns the new item's ID + the source item's ID"; the new ID is
|
|
92
|
+
* `data.id` (already in the projection), the source ID lands here.
|
|
93
|
+
*
|
|
94
|
+
* Why the extension lives in `data` rather than as a top-level
|
|
95
|
+
* envelope slot: cli-design §6.4 (line 1827-1831) sets the precedent
|
|
96
|
+
* with upsert's `data.created: true | false` flag — verb-specific
|
|
97
|
+
* business signals extend `data`; top-level slots are reserved for
|
|
98
|
+
* cross-verb shapes (`resolved_ids`, `side_effects`). `duplicated_
|
|
99
|
+
* from_id` is duplicate-specific lineage, so it belongs with the
|
|
100
|
+
* resource it describes. JSON-schema (`monday schema`) reflects the
|
|
101
|
+
* extended shape automatically because the registry walks
|
|
102
|
+
* `outputSchema`.
|
|
103
|
+
*/
|
|
104
|
+
export const itemDuplicateOutputSchema = projectedItemSchema.extend({
|
|
105
|
+
duplicated_from_id: ItemIdSchema,
|
|
106
|
+
});
|
|
107
|
+
const inputSchema = z
|
|
108
|
+
.object({
|
|
109
|
+
itemId: ItemIdSchema,
|
|
110
|
+
// Commander emits `{ withUpdates: true }` when the flag is
|
|
111
|
+
// present, omits the key otherwise (per cli.md "Commander's
|
|
112
|
+
// runtime option shape"). The schema defaults to `false` so the
|
|
113
|
+
// GraphQL variable always has a defined boolean — matches Monday's
|
|
114
|
+
// optional-flag-defaults-false behaviour.
|
|
115
|
+
withUpdates: z.boolean().optional().default(false),
|
|
116
|
+
})
|
|
117
|
+
.strict();
|
|
118
|
+
export const itemDuplicateCommand = {
|
|
119
|
+
name: 'item.duplicate',
|
|
120
|
+
summary: 'Duplicate an item (optionally including its updates)',
|
|
121
|
+
examples: [
|
|
122
|
+
'monday item duplicate 12345',
|
|
123
|
+
'monday item duplicate 12345 --with-updates',
|
|
124
|
+
'monday item duplicate 12345 --dry-run',
|
|
125
|
+
'monday item duplicate 12345 --with-updates --json',
|
|
126
|
+
],
|
|
127
|
+
// Re-running with the same args creates a second duplicate. Mirrors
|
|
128
|
+
// `monday item create`'s idempotency marker — Monday's
|
|
129
|
+
// `duplicate_item` shares `create_item`'s "every call creates a
|
|
130
|
+
// new item" semantics (cli-design §9.1: the idempotency table
|
|
131
|
+
// doesn't list `duplicate_item` separately because it inherits
|
|
132
|
+
// create's behaviour). Agents needing idempotent dup-or-update
|
|
133
|
+
// use `monday item upsert` (M12).
|
|
134
|
+
idempotent: false,
|
|
135
|
+
inputSchema,
|
|
136
|
+
outputSchema: itemDuplicateOutputSchema,
|
|
137
|
+
attach: (program, ctx) => {
|
|
138
|
+
const noun = ensureSubcommand(program, 'item', 'Item commands');
|
|
139
|
+
noun
|
|
140
|
+
.command('duplicate <itemId>')
|
|
141
|
+
.description(itemDuplicateCommand.summary)
|
|
142
|
+
.option('--with-updates', "include the source item's updates (Monday's `with_updates` flag)")
|
|
143
|
+
.addHelpText('after', ['', 'Examples:', ...itemDuplicateCommand.examples.map((e) => ` ${e}`), ''].join('\n'))
|
|
144
|
+
.action(async (itemId, opts) => {
|
|
145
|
+
const parsed = parseArgv(itemDuplicateCommand.inputSchema, {
|
|
146
|
+
itemId,
|
|
147
|
+
...opts,
|
|
148
|
+
});
|
|
149
|
+
// Unlike archive + delete, no confirmation gate fires —
|
|
150
|
+
// duplicate is creative (cli-design §3.1 #7 reserves the
|
|
151
|
+
// gate for destructive verbs). resolveClient runs first so
|
|
152
|
+
// a missing token surfaces as config_error before any wire
|
|
153
|
+
// attempt, matching `monday item create`'s ordering.
|
|
154
|
+
const { client, globalFlags, apiVersion, toEmit } = resolveClient(ctx, program.opts());
|
|
155
|
+
if (globalFlags.dryRun) {
|
|
156
|
+
// Dry-run path: single round-trip. Read the source item so
|
|
157
|
+
// the agent can verify the ID before re-running without
|
|
158
|
+
// `--dry-run`. The dry-run shape carries `with_updates` so
|
|
159
|
+
// the agent reading the planned change knows whether they
|
|
160
|
+
// requested update copying. No board lookup needed — we
|
|
161
|
+
// aren't firing the mutation. Lifted to
|
|
162
|
+
// `readSourceItemForDryRun` (R27) — same query body archive
|
|
163
|
+
// + delete share.
|
|
164
|
+
const projected = await readSourceItemForDryRun({
|
|
165
|
+
client,
|
|
166
|
+
itemId: parsed.itemId,
|
|
167
|
+
operationName: 'ItemDuplicateRead',
|
|
168
|
+
});
|
|
169
|
+
emitDryRun({
|
|
170
|
+
ctx,
|
|
171
|
+
programOpts: program.opts(),
|
|
172
|
+
plannedChanges: [
|
|
173
|
+
{
|
|
174
|
+
operation: 'duplicate_item',
|
|
175
|
+
item_id: parsed.itemId,
|
|
176
|
+
with_updates: parsed.withUpdates,
|
|
177
|
+
item: projected,
|
|
178
|
+
},
|
|
179
|
+
],
|
|
180
|
+
// Source-item read fired — `'live'` reflects the wire
|
|
181
|
+
// round-trip (same shape archive's + delete's dry-runs use).
|
|
182
|
+
source: 'live',
|
|
183
|
+
cacheAgeSeconds: null,
|
|
184
|
+
warnings: [],
|
|
185
|
+
apiVersion,
|
|
186
|
+
});
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
// Live path: two round-trips. duplicate_item requires a
|
|
190
|
+
// `board_id: ID!` parameter (SDK signature line 2131), so we
|
|
191
|
+
// look up the source item's board before firing the mutation.
|
|
192
|
+
// Both legs are guaranteed live — `lookupItemBoard` doesn't
|
|
193
|
+
// touch the cache and the mutation always hits the wire — so
|
|
194
|
+
// `meta.source: "live"` directly without `mergeSource`
|
|
195
|
+
// (the aggregator is for cache + live combinations).
|
|
196
|
+
const { boardId } = await lookupItemBoard({
|
|
197
|
+
client,
|
|
198
|
+
itemId: parsed.itemId,
|
|
199
|
+
});
|
|
200
|
+
const response = await client.raw(DUPLICATE_ITEM_MUTATION, {
|
|
201
|
+
itemId: parsed.itemId,
|
|
202
|
+
boardId,
|
|
203
|
+
withUpdates: parsed.withUpdates,
|
|
204
|
+
}, { operationName: 'ItemDuplicate' });
|
|
205
|
+
// Defence-in-depth — `lookupItemBoard` already verified the
|
|
206
|
+
// source item exists, so a null `duplicate_item` here implies
|
|
207
|
+
// a permission edge case (token can read but not duplicate)
|
|
208
|
+
// or a transient Monday-side rejection. `projectMutationItem`
|
|
209
|
+
// (R28) surfaces it as `not_found` matching the dry-run
|
|
210
|
+
// path's shape so agents key off one stable code regardless
|
|
211
|
+
// of which leg failed.
|
|
212
|
+
const projected = projectMutationItem({
|
|
213
|
+
raw: response.data.duplicate_item,
|
|
214
|
+
itemId: parsed.itemId,
|
|
215
|
+
errorCode: 'not_found',
|
|
216
|
+
errorMessage: `Monday returned no item from duplicate_item for id ${parsed.itemId}`,
|
|
217
|
+
});
|
|
218
|
+
emitMutation({
|
|
219
|
+
ctx,
|
|
220
|
+
// Extend the projection with the lineage echo — see the
|
|
221
|
+
// outputSchema header comment for why this lives in `data`
|
|
222
|
+
// rather than at envelope top-level (cli-design §6.4 line
|
|
223
|
+
// 1827-1831 precedent: upsert's `data.created`).
|
|
224
|
+
data: { ...projected, duplicated_from_id: parsed.itemId },
|
|
225
|
+
schema: itemDuplicateCommand.outputSchema,
|
|
226
|
+
programOpts: program.opts(),
|
|
227
|
+
warnings: [],
|
|
228
|
+
...toEmit(response),
|
|
229
|
+
// Both legs (lookup + mutation) fire live — `'live'` is
|
|
230
|
+
// the only correct value here. `cacheAgeSeconds` stays null
|
|
231
|
+
// because no cache leg participated.
|
|
232
|
+
source: 'live',
|
|
233
|
+
cacheAgeSeconds: null,
|
|
234
|
+
});
|
|
235
|
+
});
|
|
236
|
+
},
|
|
237
|
+
};
|
|
238
|
+
//# sourceMappingURL=duplicate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"duplicate.js","sourceRoot":"","sources":["../../../src/commands/item/duplicate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `monday item find <name> --board <bid>` — name-based item lookup
|
|
3
|
+
* (`cli-design.md` §5.7, `v0.1-plan.md` §3 M4).
|
|
4
|
+
*
|
|
5
|
+
* Why a client-side walk: Monday's `items_page` filter rules are
|
|
6
|
+
* column-based, and item name isn't a column. The only way to find
|
|
7
|
+
* an item by name is to read the board's items and match
|
|
8
|
+
* client-side. Same trade-off `board find` makes for the same
|
|
9
|
+
* reason. The walk caps at `--limit-pages × pageSize` to keep the
|
|
10
|
+
* per-call cost bounded; agents that need to search a giant board
|
|
11
|
+
* narrow the scope with `--group` first.
|
|
12
|
+
*
|
|
13
|
+
* Idempotent: yes.
|
|
14
|
+
*/
|
|
15
|
+
import { z } from 'zod';
|
|
16
|
+
import { type CommandModule } from '../types.js';
|
|
17
|
+
import { type ProjectedItem } from '../../api/item-projection.js';
|
|
18
|
+
export declare const itemFindOutputSchema: z.ZodObject<{
|
|
19
|
+
id: z.ZodString;
|
|
20
|
+
name: z.ZodString;
|
|
21
|
+
board_id: z.ZodNullable<z.ZodString>;
|
|
22
|
+
group_id: z.ZodNullable<z.ZodString>;
|
|
23
|
+
parent_item_id: z.ZodNullable<z.ZodString>;
|
|
24
|
+
state: z.ZodNullable<z.ZodString>;
|
|
25
|
+
url: z.ZodNullable<z.ZodString>;
|
|
26
|
+
created_at: z.ZodNullable<z.ZodString>;
|
|
27
|
+
updated_at: z.ZodNullable<z.ZodString>;
|
|
28
|
+
columns: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
29
|
+
id: z.ZodString;
|
|
30
|
+
type: z.ZodString;
|
|
31
|
+
title: z.ZodOptional<z.ZodString>;
|
|
32
|
+
text: z.ZodNullable<z.ZodString>;
|
|
33
|
+
value: z.ZodUnknown;
|
|
34
|
+
label: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
35
|
+
index: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
36
|
+
date: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
37
|
+
time: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
38
|
+
people: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
39
|
+
id: z.ZodString;
|
|
40
|
+
kind: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
41
|
+
}, z.core.$loose>>>;
|
|
42
|
+
}, z.core.$loose>>;
|
|
43
|
+
}, z.core.$strict>;
|
|
44
|
+
export type ItemFindOutput = ProjectedItem;
|
|
45
|
+
declare const inputSchema: z.ZodObject<{
|
|
46
|
+
name: z.ZodString;
|
|
47
|
+
board: z.core.$ZodBranded<z.ZodString, "BoardId", "out">;
|
|
48
|
+
group: z.ZodOptional<z.core.$ZodBranded<z.ZodString, "GroupId", "out">>;
|
|
49
|
+
first: z.ZodOptional<z.ZodBoolean>;
|
|
50
|
+
pageSize: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
|
|
51
|
+
limitPages: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
|
|
52
|
+
}, z.core.$strict>;
|
|
53
|
+
export declare const itemFindCommand: CommandModule<z.infer<typeof inputSchema>, ItemFindOutput>;
|
|
54
|
+
export {};
|
|
55
|
+
//# sourceMappingURL=find.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../../../src/commands/item/find.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAQnE,OAAO,EAIL,KAAK,aAAa,EAEnB,MAAM,8BAA8B,CAAC;AAoEtC,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;kBAAsB,CAAC;AACxD,MAAM,MAAM,cAAc,GAAG,aAAa,CAAC;AAE3C,QAAA,MAAM,WAAW;;;;;;;kBASN,CAAC;AAkDZ,eAAO,MAAM,eAAe,EAAE,aAAa,CACzC,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,EAC3B,cAAc,CA0If,CAAC"}
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `monday item find <name> --board <bid>` — name-based item lookup
|
|
3
|
+
* (`cli-design.md` §5.7, `v0.1-plan.md` §3 M4).
|
|
4
|
+
*
|
|
5
|
+
* Why a client-side walk: Monday's `items_page` filter rules are
|
|
6
|
+
* column-based, and item name isn't a column. The only way to find
|
|
7
|
+
* an item by name is to read the board's items and match
|
|
8
|
+
* client-side. Same trade-off `board find` makes for the same
|
|
9
|
+
* reason. The walk caps at `--limit-pages × pageSize` to keep the
|
|
10
|
+
* per-call cost bounded; agents that need to search a giant board
|
|
11
|
+
* narrow the scope with `--group` first.
|
|
12
|
+
*
|
|
13
|
+
* Idempotent: yes.
|
|
14
|
+
*/
|
|
15
|
+
import { z } from 'zod';
|
|
16
|
+
import { ensureSubcommand } from '../types.js';
|
|
17
|
+
import { emitSuccess } from '../emit.js';
|
|
18
|
+
import { resolveClient } from '../../api/resolve-client.js';
|
|
19
|
+
import { findOne } from '../../api/resolvers.js';
|
|
20
|
+
import { BoardIdSchema, GroupIdSchema } from '../../types/ids.js';
|
|
21
|
+
import { parseArgv } from '../parse-argv.js';
|
|
22
|
+
import { ApiError } from '../../utils/errors.js';
|
|
23
|
+
import { paginate } from '../../api/pagination.js';
|
|
24
|
+
import { idFromRawItem, projectItem, projectedItemSchema, } from '../../api/item-projection.js';
|
|
25
|
+
import { ITEM_FIELDS_FRAGMENT, parseRawItem, } from '../../api/item-helpers.js';
|
|
26
|
+
const ITEM_FIND_QUERY = `
|
|
27
|
+
query ItemFind(
|
|
28
|
+
$boardId: ID!
|
|
29
|
+
$limit: Int!
|
|
30
|
+
) {
|
|
31
|
+
boards(ids: [$boardId]) {
|
|
32
|
+
items_page(limit: $limit) {
|
|
33
|
+
cursor
|
|
34
|
+
items {
|
|
35
|
+
${ITEM_FIELDS_FRAGMENT}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
`;
|
|
41
|
+
const ITEM_FIND_BY_GROUP_QUERY = `
|
|
42
|
+
query ItemFindByGroup(
|
|
43
|
+
$boardId: ID!
|
|
44
|
+
$groupId: String!
|
|
45
|
+
$limit: Int!
|
|
46
|
+
) {
|
|
47
|
+
boards(ids: [$boardId]) {
|
|
48
|
+
groups(ids: [$groupId]) {
|
|
49
|
+
items_page(limit: $limit) {
|
|
50
|
+
cursor
|
|
51
|
+
items {
|
|
52
|
+
${ITEM_FIELDS_FRAGMENT}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
`;
|
|
59
|
+
const ITEM_FIND_NEXT_QUERY = `
|
|
60
|
+
query ItemFindNext($cursor: String!, $limit: Int!) {
|
|
61
|
+
next_items_page(limit: $limit, cursor: $cursor) {
|
|
62
|
+
cursor
|
|
63
|
+
items {
|
|
64
|
+
${ITEM_FIELDS_FRAGMENT}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
`;
|
|
69
|
+
export const itemFindOutputSchema = projectedItemSchema;
|
|
70
|
+
const inputSchema = z
|
|
71
|
+
.object({
|
|
72
|
+
name: z.string().min(1),
|
|
73
|
+
board: BoardIdSchema,
|
|
74
|
+
group: GroupIdSchema.optional(),
|
|
75
|
+
first: z.boolean().optional(),
|
|
76
|
+
pageSize: z.coerce.number().int().positive().max(500).optional(),
|
|
77
|
+
limitPages: z.coerce.number().int().positive().max(500).optional(),
|
|
78
|
+
})
|
|
79
|
+
.strict();
|
|
80
|
+
const PAGE_SIZE = 100;
|
|
81
|
+
const DEFAULT_PAGES = 5;
|
|
82
|
+
const initialFetcher = (client, boardId, group) => {
|
|
83
|
+
return (effectiveLimit) => {
|
|
84
|
+
const variables = { boardId, limit: effectiveLimit };
|
|
85
|
+
if (group !== undefined) {
|
|
86
|
+
variables.groupId = group;
|
|
87
|
+
return client.raw(ITEM_FIND_BY_GROUP_QUERY, variables, {
|
|
88
|
+
operationName: 'ItemFindByGroup',
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
return client.raw(ITEM_FIND_QUERY, variables, {
|
|
92
|
+
operationName: 'ItemFind',
|
|
93
|
+
});
|
|
94
|
+
};
|
|
95
|
+
};
|
|
96
|
+
const nextFetcher = (client) => {
|
|
97
|
+
return (cursor, effectiveLimit) => client.raw(ITEM_FIND_NEXT_QUERY, { cursor, limit: effectiveLimit }, { operationName: 'ItemFindNext' });
|
|
98
|
+
};
|
|
99
|
+
const extractInitial = (r) => {
|
|
100
|
+
const board = r.data.boards?.[0];
|
|
101
|
+
const page = board?.groups?.[0]?.items_page ?? board?.items_page;
|
|
102
|
+
/* c8 ignore next 2 — defensive nullish-coalescing for missing
|
|
103
|
+
items_page; same rationale as item/list.ts. */
|
|
104
|
+
return { cursor: page?.cursor ?? null, items: page?.items ?? [] };
|
|
105
|
+
};
|
|
106
|
+
const extractNext = (r) => {
|
|
107
|
+
const page = r.data.next_items_page;
|
|
108
|
+
/* c8 ignore next 2 — defensive nullish-coalescing for missing
|
|
109
|
+
next_items_page; same rationale as item/list.ts. */
|
|
110
|
+
return { cursor: page?.cursor ?? null, items: page?.items ?? [] };
|
|
111
|
+
};
|
|
112
|
+
export const itemFindCommand = {
|
|
113
|
+
name: 'item.find',
|
|
114
|
+
summary: 'Find a single item on a board by name (uses findOne semantics)',
|
|
115
|
+
examples: [
|
|
116
|
+
'monday item find "Refactor login" --board 12345',
|
|
117
|
+
'monday item find "Many matches" --board 12345 --first',
|
|
118
|
+
'monday item find "In group" --board 12345 --group topics',
|
|
119
|
+
],
|
|
120
|
+
idempotent: true,
|
|
121
|
+
inputSchema,
|
|
122
|
+
outputSchema: itemFindOutputSchema,
|
|
123
|
+
attach: (program, ctx) => {
|
|
124
|
+
const noun = ensureSubcommand(program, 'item', 'Item commands');
|
|
125
|
+
noun
|
|
126
|
+
.command('find <name>')
|
|
127
|
+
.description(itemFindCommand.summary)
|
|
128
|
+
.requiredOption('--board <bid>', 'board ID (required)')
|
|
129
|
+
.option('--group <gid>', 'restrict scan to one group')
|
|
130
|
+
.option('--first', 'on multiple matches, pick the lowest-ID match')
|
|
131
|
+
.option('--page-size <n>', `page size (default ${String(PAGE_SIZE)})`)
|
|
132
|
+
.option('--limit-pages <n>', `max pages to scan (default ${String(DEFAULT_PAGES)})`)
|
|
133
|
+
.addHelpText('after', ['', 'Examples:', ...itemFindCommand.examples.map((e) => ` ${e}`), ''].join('\n'))
|
|
134
|
+
.action(async (name, opts) => {
|
|
135
|
+
const parsed = parseArgv(itemFindCommand.inputSchema, {
|
|
136
|
+
name,
|
|
137
|
+
...opts,
|
|
138
|
+
});
|
|
139
|
+
const { client, toEmit } = resolveClient(ctx, program.opts());
|
|
140
|
+
const pageSize = parsed.pageSize ?? PAGE_SIZE;
|
|
141
|
+
const cap = parsed.limitPages ?? DEFAULT_PAGES;
|
|
142
|
+
// Walk up to `cap` pages, collecting items for the client-
|
|
143
|
+
// side findOne match. paginate honours --all + --limit; we
|
|
144
|
+
// approximate "scan up to cap pages" by passing
|
|
145
|
+
// limit = cap × pageSize.
|
|
146
|
+
const result = await paginate({
|
|
147
|
+
fetchInitial: initialFetcher(client, parsed.board, parsed.group),
|
|
148
|
+
fetchNext: nextFetcher(client),
|
|
149
|
+
now: ctx.clock,
|
|
150
|
+
extractPage: (r) => {
|
|
151
|
+
if ('next_items_page' in r.data)
|
|
152
|
+
return extractNext(r);
|
|
153
|
+
return extractInitial(r);
|
|
154
|
+
},
|
|
155
|
+
getId: idFromRawItem,
|
|
156
|
+
all: true,
|
|
157
|
+
limit: cap * pageSize,
|
|
158
|
+
pageSize,
|
|
159
|
+
});
|
|
160
|
+
// Project the haystack — findOne reads name + id only, so the
|
|
161
|
+
// raw shape is enough; full projection happens once a winner
|
|
162
|
+
// is selected.
|
|
163
|
+
// R18 parse-boundary wrap: malformed haystack item surfaces
|
|
164
|
+
// as typed `internal_error` carrying `details.issues` and
|
|
165
|
+
// the find-scope `query`/`board_id` for triage.
|
|
166
|
+
const haystack = result.items.map((raw) => parseRawItem(raw, { query: parsed.name, board_id: parsed.board }));
|
|
167
|
+
let found;
|
|
168
|
+
try {
|
|
169
|
+
found = findOne(haystack, parsed.name, (i) => ({ id: i.id, name: i.name }), {
|
|
170
|
+
kind: 'item',
|
|
171
|
+
...(parsed.first === undefined ? {} : { first: parsed.first }),
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
catch (err) {
|
|
175
|
+
// Cap-hit before findOne resolved → re-throw with the cap
|
|
176
|
+
// information so agents can widen --limit-pages or narrow
|
|
177
|
+
// the query (Codex M4 §6: a partial scan can produce a
|
|
178
|
+
// false not_found / false uniqueness, must surface).
|
|
179
|
+
if (err instanceof ApiError && err.code === 'not_found' && result.hasMore) {
|
|
180
|
+
throw new ApiError('not_found', `No item matched ${JSON.stringify(parsed.name)} in the scanned ${String(result.totalReturned)} item(s); scan was capped at ${String(cap)} pages — widen --limit-pages or narrow with --group / --where.`, {
|
|
181
|
+
details: {
|
|
182
|
+
query: parsed.name,
|
|
183
|
+
kind: 'item',
|
|
184
|
+
scan_truncated: true,
|
|
185
|
+
pages_scanned: result.pagesFetched,
|
|
186
|
+
cap_pages: cap,
|
|
187
|
+
items_scanned: result.totalReturned,
|
|
188
|
+
},
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
throw err;
|
|
192
|
+
}
|
|
193
|
+
const data = projectItem({ raw: found.resource });
|
|
194
|
+
const warnings = [];
|
|
195
|
+
if (result.hasMore) {
|
|
196
|
+
// Match resolved within the cap, but the scan was
|
|
197
|
+
// truncated — uniqueness isn't guaranteed. Surface a
|
|
198
|
+
// warning so agents can widen the cap if they need
|
|
199
|
+
// certainty.
|
|
200
|
+
warnings.push({
|
|
201
|
+
code: 'pagination_cap_reached',
|
|
202
|
+
message: `find scan capped at ${String(cap)} pages; uniqueness not verified — widen --limit-pages to confirm.`,
|
|
203
|
+
details: {
|
|
204
|
+
pages_scanned: result.pagesFetched,
|
|
205
|
+
items_scanned: result.totalReturned,
|
|
206
|
+
cap_pages: cap,
|
|
207
|
+
hint: 'pass --limit-pages <larger> or narrow the query with --group / --where',
|
|
208
|
+
},
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
if (found.firstOfMany) {
|
|
212
|
+
warnings.push({
|
|
213
|
+
code: 'first_of_many',
|
|
214
|
+
message: `--first picked one of ${String(found.candidates.length)} matches`,
|
|
215
|
+
details: {
|
|
216
|
+
candidates: found.candidates.map((c) => ({ id: c.id, name: c.name })),
|
|
217
|
+
},
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
emitSuccess({
|
|
221
|
+
ctx,
|
|
222
|
+
data,
|
|
223
|
+
schema: itemFindCommand.outputSchema,
|
|
224
|
+
programOpts: program.opts(),
|
|
225
|
+
warnings,
|
|
226
|
+
...toEmit(result.lastResponse),
|
|
227
|
+
});
|
|
228
|
+
});
|
|
229
|
+
},
|
|
230
|
+
};
|
|
231
|
+
//# sourceMappingURL=find.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find.js","sourceRoot":"","sources":["../../../src/commands/item/find.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `monday item get <iid>` — single item by ID (`cli-design.md` §6.2).
|
|
3
|
+
*
|
|
4
|
+
* GraphQL: `items(ids: [<iid>])` with full column_values inline. The
|
|
5
|
+
* Monday `items` query is the only way to fetch a single item;
|
|
6
|
+
* passing exactly one ID returns at most one element. A null result
|
|
7
|
+
* (item archived to a board the token can't read, or genuinely
|
|
8
|
+
* non-existent) surfaces as `not_found`.
|
|
9
|
+
*
|
|
10
|
+
* Idempotent: yes — pure read.
|
|
11
|
+
*/
|
|
12
|
+
import { z } from 'zod';
|
|
13
|
+
import { type CommandModule } from '../types.js';
|
|
14
|
+
import { type ProjectedItem } from '../../api/item-projection.js';
|
|
15
|
+
export declare const itemGetOutputSchema: z.ZodObject<{
|
|
16
|
+
id: z.ZodString;
|
|
17
|
+
name: z.ZodString;
|
|
18
|
+
board_id: z.ZodNullable<z.ZodString>;
|
|
19
|
+
group_id: z.ZodNullable<z.ZodString>;
|
|
20
|
+
parent_item_id: z.ZodNullable<z.ZodString>;
|
|
21
|
+
state: z.ZodNullable<z.ZodString>;
|
|
22
|
+
url: z.ZodNullable<z.ZodString>;
|
|
23
|
+
created_at: z.ZodNullable<z.ZodString>;
|
|
24
|
+
updated_at: z.ZodNullable<z.ZodString>;
|
|
25
|
+
columns: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
26
|
+
id: z.ZodString;
|
|
27
|
+
type: z.ZodString;
|
|
28
|
+
title: z.ZodOptional<z.ZodString>;
|
|
29
|
+
text: z.ZodNullable<z.ZodString>;
|
|
30
|
+
value: z.ZodUnknown;
|
|
31
|
+
label: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
32
|
+
index: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
33
|
+
date: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
34
|
+
time: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
35
|
+
people: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
36
|
+
id: z.ZodString;
|
|
37
|
+
kind: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
38
|
+
}, z.core.$loose>>>;
|
|
39
|
+
}, z.core.$loose>>;
|
|
40
|
+
}, z.core.$strict>;
|
|
41
|
+
export type ItemGetOutput = ProjectedItem;
|
|
42
|
+
declare const inputSchema: z.ZodObject<{
|
|
43
|
+
itemId: z.core.$ZodBranded<z.ZodString, "ItemId", "out">;
|
|
44
|
+
}, z.core.$strict>;
|
|
45
|
+
export declare const itemGetCommand: CommandModule<z.infer<typeof inputSchema>, ItemGetOutput>;
|
|
46
|
+
export {};
|
|
47
|
+
//# sourceMappingURL=get.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../src/commands/item/get.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAInE,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,8BAA8B,CAAC;AActC,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;kBAAsB,CAAC;AACvD,MAAM,MAAM,aAAa,GAAG,aAAa,CAAC;AAE1C,QAAA,MAAM,WAAW;;kBAA8C,CAAC;AAEhE,eAAO,MAAM,cAAc,EAAE,aAAa,CACxC,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,EAC3B,aAAa,CA0Cd,CAAC"}
|