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,205 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Monday GraphQL client over the injected `Transport`
|
|
3
|
+
* (`v0.1-plan.md` §3 M2).
|
|
4
|
+
*
|
|
5
|
+
* Why not the SDK's `ApiClient`. The plan's wording is
|
|
6
|
+
* "wraps `@mondaydotcomorg/api`'s `ApiClient`" but the SDK's
|
|
7
|
+
* `request()` doesn't accept an external `AbortSignal` — it builds
|
|
8
|
+
* its own controller per-call, which means the runner's SIGINT-ware
|
|
9
|
+
* abort can't cancel an in-flight request. Tests also need to swap
|
|
10
|
+
* the network stack without monkey-patching SDK internals (Codex
|
|
11
|
+
* review §2 of M0). Both problems are solved by the existing
|
|
12
|
+
* `Transport` interface, so the client routes every call through
|
|
13
|
+
* `transport.request()` and uses the SDK only for *types* — `Account`,
|
|
14
|
+
* `User`, `Complexity`, `Version`, `CURRENT_VERSION`.
|
|
15
|
+
*
|
|
16
|
+
* Header injection (`Authorization`, `API-Version`, `Content-Type`)
|
|
17
|
+
* lives in `FetchTransport` and is locked down (Codex review M0 §1
|
|
18
|
+
* follow-up). Caller-supplied headers can't override it; this client
|
|
19
|
+
* passes only operation-name and any future trace headers.
|
|
20
|
+
*
|
|
21
|
+
* Internal callers see `Record<string, unknown>` for variables. The
|
|
22
|
+
* SDK's `QueryVariables = Record<string, any>` boundary leak is
|
|
23
|
+
* contained at this module's edge — no `any` flows into `commands/*`.
|
|
24
|
+
*/
|
|
25
|
+
import { AvailableVersions } from '@mondaydotcomorg/api';
|
|
26
|
+
import { mapResponse, wrapTransportError } from './errors.js';
|
|
27
|
+
import { withRetry } from './retry.js';
|
|
28
|
+
import { injectComplexity, parseComplexity } from './complexity.js';
|
|
29
|
+
/**
|
|
30
|
+
* The Monday API version pinned to the SDK install. Re-exported so
|
|
31
|
+
* the production runner and `monday account version` read the same
|
|
32
|
+
* source of truth — bumping the SDK is the only way this changes.
|
|
33
|
+
*/
|
|
34
|
+
export const PINNED_API_VERSION = AvailableVersions.CURRENT_VERSION;
|
|
35
|
+
const ME_QUERY = `
|
|
36
|
+
query Whoami {
|
|
37
|
+
me {
|
|
38
|
+
id
|
|
39
|
+
name
|
|
40
|
+
email
|
|
41
|
+
account {
|
|
42
|
+
id
|
|
43
|
+
name
|
|
44
|
+
slug
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
`;
|
|
49
|
+
const ACCOUNT_QUERY = `
|
|
50
|
+
query AccountInfo {
|
|
51
|
+
account {
|
|
52
|
+
id
|
|
53
|
+
name
|
|
54
|
+
slug
|
|
55
|
+
country_code
|
|
56
|
+
first_day_of_the_week
|
|
57
|
+
active_members_count
|
|
58
|
+
logo
|
|
59
|
+
plan {
|
|
60
|
+
version
|
|
61
|
+
tier
|
|
62
|
+
max_users
|
|
63
|
+
period
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
`;
|
|
68
|
+
const VERSIONS_QUERY = `
|
|
69
|
+
query Versions {
|
|
70
|
+
versions {
|
|
71
|
+
display_name
|
|
72
|
+
kind
|
|
73
|
+
value
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
`;
|
|
77
|
+
const COMPLEXITY_PROBE_QUERY = `
|
|
78
|
+
query ComplexityProbe {
|
|
79
|
+
complexity {
|
|
80
|
+
before
|
|
81
|
+
after
|
|
82
|
+
query
|
|
83
|
+
reset_in_x_seconds
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
`;
|
|
87
|
+
/**
|
|
88
|
+
* Returns `data` with any top-level `complexity` field removed.
|
|
89
|
+
* Used in `--verbose` mode where the injected selection lands in
|
|
90
|
+
* the data object alongside the typed leaf — the per-command
|
|
91
|
+
* outputSchema (strict) doesn't model it.
|
|
92
|
+
*
|
|
93
|
+
* Non-mutating: `data` is returned unchanged when no field is
|
|
94
|
+
* present, otherwise a shallow copy minus the field.
|
|
95
|
+
*/
|
|
96
|
+
const stripComplexity = (data) => {
|
|
97
|
+
if (data === null ||
|
|
98
|
+
typeof data !== 'object' ||
|
|
99
|
+
Array.isArray(data) ||
|
|
100
|
+
!('complexity' in data)) {
|
|
101
|
+
return data;
|
|
102
|
+
}
|
|
103
|
+
const { complexity: _complexity, ...rest } = data;
|
|
104
|
+
return rest;
|
|
105
|
+
};
|
|
106
|
+
export class MondayClient {
|
|
107
|
+
transport;
|
|
108
|
+
signal;
|
|
109
|
+
retries;
|
|
110
|
+
verbose;
|
|
111
|
+
retrySleep;
|
|
112
|
+
retryRandom;
|
|
113
|
+
constructor(config) {
|
|
114
|
+
this.transport = config.transport;
|
|
115
|
+
this.signal = config.signal;
|
|
116
|
+
this.retries = config.retries;
|
|
117
|
+
this.verbose = config.verbose;
|
|
118
|
+
this.retrySleep = config.retrySleep;
|
|
119
|
+
this.retryRandom = config.retryRandom;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Low-level escape hatch (`v0.1-plan.md` §3 M2 deliverable).
|
|
123
|
+
* `commands/raw` (M6) calls this directly; M2 commands use the
|
|
124
|
+
* typed wrappers. Returns the parsed `data` plus the per-request
|
|
125
|
+
* complexity meta and retry stats.
|
|
126
|
+
*
|
|
127
|
+
* Variables are typed `Record<string, unknown>` rather than the
|
|
128
|
+
* SDK's `any`-laced `QueryVariables` so the surface stays sealed.
|
|
129
|
+
*/
|
|
130
|
+
raw = async (query, variables, options = {}) => {
|
|
131
|
+
// Only the verbose path injects the `complexity { ... }`
|
|
132
|
+
// selection at the operation root. We track whether we actually
|
|
133
|
+
// *added* it (vs the query already having it as a deliberate
|
|
134
|
+
// selection — e.g. `account complexity` queries the field as
|
|
135
|
+
// its only payload) so we know whether to strip it from `data`
|
|
136
|
+
// afterwards.
|
|
137
|
+
const injection = this.verbose
|
|
138
|
+
? injectComplexity(query)
|
|
139
|
+
: { query, injected: false };
|
|
140
|
+
const finalQuery = injection.query;
|
|
141
|
+
const operationName = options.operationName;
|
|
142
|
+
const result = await withRetry(async () => {
|
|
143
|
+
try {
|
|
144
|
+
const response = await this.transport.request({
|
|
145
|
+
query: finalQuery,
|
|
146
|
+
...(variables === undefined ? {} : { variables }),
|
|
147
|
+
...(operationName === undefined ? {} : { operationName }),
|
|
148
|
+
signal: this.signal,
|
|
149
|
+
});
|
|
150
|
+
const mapped = mapResponse({
|
|
151
|
+
status: response.status,
|
|
152
|
+
headers: response.headers,
|
|
153
|
+
body: response.body,
|
|
154
|
+
});
|
|
155
|
+
if (!mapped.ok) {
|
|
156
|
+
throw mapped.error;
|
|
157
|
+
}
|
|
158
|
+
// Parse complexity off the *original* body — not the
|
|
159
|
+
// mapped data, which is shaped to the typed leaf.
|
|
160
|
+
const complexity = this.verbose
|
|
161
|
+
? parseComplexity(response.body)
|
|
162
|
+
: null;
|
|
163
|
+
// Strip the `complexity` field from `data` *only* if we
|
|
164
|
+
// injected it ourselves — Monday returns the selection
|
|
165
|
+
// adjacent to whatever the operation requested, and the
|
|
166
|
+
// per-command outputSchema (strict) doesn't model it.
|
|
167
|
+
// When the caller's own query selects `complexity`
|
|
168
|
+
// directly (e.g. `account complexity`), leave it in
|
|
169
|
+
// place so the typed leaf survives.
|
|
170
|
+
let cleanedData = mapped.data;
|
|
171
|
+
if (injection.injected && complexity !== null) {
|
|
172
|
+
cleanedData = stripComplexity(mapped.data);
|
|
173
|
+
}
|
|
174
|
+
return { data: cleanedData, complexity };
|
|
175
|
+
}
|
|
176
|
+
catch (err) {
|
|
177
|
+
// ApiError passes through unchanged; anything else (a bug
|
|
178
|
+
// in the transport, a rogue throw from a future SDK retry
|
|
179
|
+
// layer) becomes internal_error with cause set. The retry
|
|
180
|
+
// layer reads .retryable to decide.
|
|
181
|
+
throw wrapTransportError(err);
|
|
182
|
+
}
|
|
183
|
+
}, {
|
|
184
|
+
retries: this.retries,
|
|
185
|
+
signal: this.signal,
|
|
186
|
+
...(this.retrySleep === undefined ? {} : { sleep: this.retrySleep }),
|
|
187
|
+
...(this.retryRandom === undefined ? {} : { random: this.retryRandom }),
|
|
188
|
+
});
|
|
189
|
+
return {
|
|
190
|
+
data: result.value.data,
|
|
191
|
+
complexity: result.value.complexity,
|
|
192
|
+
stats: result.stats,
|
|
193
|
+
};
|
|
194
|
+
};
|
|
195
|
+
whoami = () => this.raw(ME_QUERY, undefined, { operationName: 'Whoami' });
|
|
196
|
+
account = () => this.raw(ACCOUNT_QUERY, undefined, { operationName: 'AccountInfo' });
|
|
197
|
+
versions = () => this.raw(VERSIONS_QUERY, undefined, { operationName: 'Versions' });
|
|
198
|
+
/**
|
|
199
|
+
* Cheapest possible call: just selects the `complexity` field with
|
|
200
|
+
* no payload. Used by `monday account complexity` to probe the
|
|
201
|
+
* budget without any other side-effect.
|
|
202
|
+
*/
|
|
203
|
+
complexityProbe = () => this.raw(COMPLEXITY_PROBE_QUERY, undefined, { operationName: 'ComplexityProbe' });
|
|
204
|
+
}
|
|
205
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `--columns-mapping <json>` parser (M11 — `monday item move`).
|
|
3
|
+
*
|
|
4
|
+
* The cross-board `item move` accepts a JSON object mapping source
|
|
5
|
+
* column IDs to target column IDs:
|
|
6
|
+
*
|
|
7
|
+
* monday item move 12345 --to-group g --to-board 67890 \
|
|
8
|
+
* --columns-mapping '{"status_4": "status_42", "due": "deadline"}'
|
|
9
|
+
*
|
|
10
|
+
* Maps directly to Monday's `move_item_to_board(columns_mapping:
|
|
11
|
+
* [ColumnMappingInput!])` parameter where `ColumnMappingInput =
|
|
12
|
+
* { source: ID!, target?: ID }` (verifiable in the SDK at
|
|
13
|
+
* `node_modules/@mondaydotcomorg/api/dist/esm/index.d.ts:551`) — the
|
|
14
|
+
* cli-side `{<src>: <target>}` shape transposes one-for-one onto the
|
|
15
|
+
* wire array `[{source: <src>, target: <target>}, ...]`.
|
|
16
|
+
*
|
|
17
|
+
* **What lives here.** Argv-time JSON parse + zod validation of the
|
|
18
|
+
* shape (object whose keys + values are non-empty strings).
|
|
19
|
+
* `usage_error` on any parse failure so agents see exit 1 with a
|
|
20
|
+
* useful detail decoration, not exit 2 `internal_error` from a bare
|
|
21
|
+
* ZodError.
|
|
22
|
+
*
|
|
23
|
+
* **What lives at the call site (`commands/item/move.ts`).** The
|
|
24
|
+
* unmatched-column check (whether each source ID exists on target,
|
|
25
|
+
* either via verbatim match or via the mapping). That's per-board
|
|
26
|
+
* metadata work — the parse boundary doesn't see metadata.
|
|
27
|
+
*
|
|
28
|
+
* **Value-overrides deferred to v0.3.** v0.2-plan §3 M11 mentioned
|
|
29
|
+
* accepting a richer `{<src>: { id: <target>, value: <override> }}`
|
|
30
|
+
* form whose `value` would re-run through M5a/M8's translator on
|
|
31
|
+
* target metadata. Monday's `ColumnMappingInput` doesn't carry a
|
|
32
|
+
* value slot, so the only way to ship value-overrides would be a
|
|
33
|
+
* non-atomic post-move `change_multiple_column_values` mutation —
|
|
34
|
+
* which adds partial-failure semantics with no precedent. Deferred;
|
|
35
|
+
* agents fire `monday item set <iid> <target>=<value>` post-move
|
|
36
|
+
* when they need value overrides. The simple form is enough for
|
|
37
|
+
* the M11 surface. v0.2-plan §15 captures the SDK-shape discovery.
|
|
38
|
+
*
|
|
39
|
+
* The argv layer in `commands/item/move.ts` calls
|
|
40
|
+
* `parseColumnMappingJson(rawString)` before the command's zod
|
|
41
|
+
* `inputSchema` runs; the schema then sees a typed `ColumnMapping`
|
|
42
|
+
* (not a JSON-blob string), keeping the schema narrow.
|
|
43
|
+
*/
|
|
44
|
+
/**
|
|
45
|
+
* The validated mapping shape. Keys are source column IDs (slugs),
|
|
46
|
+
* values are target column IDs (slugs). Empty `{}` is valid — the
|
|
47
|
+
* explicit "drop everything (Monday's permissive default)" opt-in
|
|
48
|
+
* per cli-design §8 decision 5.
|
|
49
|
+
*/
|
|
50
|
+
export type ColumnMapping = Readonly<Record<string, string>>;
|
|
51
|
+
/**
|
|
52
|
+
* Parses + validates the raw `--columns-mapping <json>` argv value.
|
|
53
|
+
* Throws `UsageError` (exit 1) on any failure so agents see a useful
|
|
54
|
+
* decoration on the envelope rather than the runner's generic
|
|
55
|
+
* `internal_error`.
|
|
56
|
+
*
|
|
57
|
+
* Failure modes (all `usage_error`):
|
|
58
|
+
* - Argv didn't supply a string (commander quirk, defensive).
|
|
59
|
+
* - Empty string.
|
|
60
|
+
* - Malformed JSON.
|
|
61
|
+
* - JSON root isn't an object (`null`, array, primitive).
|
|
62
|
+
* - Any value isn't a non-empty string (e.g. `{src: 42}`,
|
|
63
|
+
* `{src: {id: "tgt"}}` — the latter is the v0.2-plan rich form
|
|
64
|
+
* deferred to v0.3; we reject loudly so agents reading the error
|
|
65
|
+
* know to omit the `value` slot for now).
|
|
66
|
+
*/
|
|
67
|
+
export declare const parseColumnMappingJson: (raw: unknown) => ColumnMapping;
|
|
68
|
+
//# sourceMappingURL=column-mapping.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"column-mapping.d.ts","sourceRoot":"","sources":["../../src/api/column-mapping.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAKH;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAe7D;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,sBAAsB,GAAI,KAAK,OAAO,KAAG,aAoErD,CAAC"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `--columns-mapping <json>` parser (M11 — `monday item move`).
|
|
3
|
+
*
|
|
4
|
+
* The cross-board `item move` accepts a JSON object mapping source
|
|
5
|
+
* column IDs to target column IDs:
|
|
6
|
+
*
|
|
7
|
+
* monday item move 12345 --to-group g --to-board 67890 \
|
|
8
|
+
* --columns-mapping '{"status_4": "status_42", "due": "deadline"}'
|
|
9
|
+
*
|
|
10
|
+
* Maps directly to Monday's `move_item_to_board(columns_mapping:
|
|
11
|
+
* [ColumnMappingInput!])` parameter where `ColumnMappingInput =
|
|
12
|
+
* { source: ID!, target?: ID }` (verifiable in the SDK at
|
|
13
|
+
* `node_modules/@mondaydotcomorg/api/dist/esm/index.d.ts:551`) — the
|
|
14
|
+
* cli-side `{<src>: <target>}` shape transposes one-for-one onto the
|
|
15
|
+
* wire array `[{source: <src>, target: <target>}, ...]`.
|
|
16
|
+
*
|
|
17
|
+
* **What lives here.** Argv-time JSON parse + zod validation of the
|
|
18
|
+
* shape (object whose keys + values are non-empty strings).
|
|
19
|
+
* `usage_error` on any parse failure so agents see exit 1 with a
|
|
20
|
+
* useful detail decoration, not exit 2 `internal_error` from a bare
|
|
21
|
+
* ZodError.
|
|
22
|
+
*
|
|
23
|
+
* **What lives at the call site (`commands/item/move.ts`).** The
|
|
24
|
+
* unmatched-column check (whether each source ID exists on target,
|
|
25
|
+
* either via verbatim match or via the mapping). That's per-board
|
|
26
|
+
* metadata work — the parse boundary doesn't see metadata.
|
|
27
|
+
*
|
|
28
|
+
* **Value-overrides deferred to v0.3.** v0.2-plan §3 M11 mentioned
|
|
29
|
+
* accepting a richer `{<src>: { id: <target>, value: <override> }}`
|
|
30
|
+
* form whose `value` would re-run through M5a/M8's translator on
|
|
31
|
+
* target metadata. Monday's `ColumnMappingInput` doesn't carry a
|
|
32
|
+
* value slot, so the only way to ship value-overrides would be a
|
|
33
|
+
* non-atomic post-move `change_multiple_column_values` mutation —
|
|
34
|
+
* which adds partial-failure semantics with no precedent. Deferred;
|
|
35
|
+
* agents fire `monday item set <iid> <target>=<value>` post-move
|
|
36
|
+
* when they need value overrides. The simple form is enough for
|
|
37
|
+
* the M11 surface. v0.2-plan §15 captures the SDK-shape discovery.
|
|
38
|
+
*
|
|
39
|
+
* The argv layer in `commands/item/move.ts` calls
|
|
40
|
+
* `parseColumnMappingJson(rawString)` before the command's zod
|
|
41
|
+
* `inputSchema` runs; the schema then sees a typed `ColumnMapping`
|
|
42
|
+
* (not a JSON-blob string), keeping the schema narrow.
|
|
43
|
+
*/
|
|
44
|
+
import { z } from 'zod';
|
|
45
|
+
import { UsageError } from '../utils/errors.js';
|
|
46
|
+
const columnMappingSchema = z.record(z.string().min(1, { message: 'expected a non-empty source column ID' }), z.string().min(1, { message: 'expected a non-empty target column ID' }));
|
|
47
|
+
const summariseIssues = (err) => err.issues.map((issue) => ({
|
|
48
|
+
path: issue.path.map((p) => String(p)).join('.'),
|
|
49
|
+
message: issue.message,
|
|
50
|
+
}));
|
|
51
|
+
/**
|
|
52
|
+
* Parses + validates the raw `--columns-mapping <json>` argv value.
|
|
53
|
+
* Throws `UsageError` (exit 1) on any failure so agents see a useful
|
|
54
|
+
* decoration on the envelope rather than the runner's generic
|
|
55
|
+
* `internal_error`.
|
|
56
|
+
*
|
|
57
|
+
* Failure modes (all `usage_error`):
|
|
58
|
+
* - Argv didn't supply a string (commander quirk, defensive).
|
|
59
|
+
* - Empty string.
|
|
60
|
+
* - Malformed JSON.
|
|
61
|
+
* - JSON root isn't an object (`null`, array, primitive).
|
|
62
|
+
* - Any value isn't a non-empty string (e.g. `{src: 42}`,
|
|
63
|
+
* `{src: {id: "tgt"}}` — the latter is the v0.2-plan rich form
|
|
64
|
+
* deferred to v0.3; we reject loudly so agents reading the error
|
|
65
|
+
* know to omit the `value` slot for now).
|
|
66
|
+
*/
|
|
67
|
+
export const parseColumnMappingJson = (raw) => {
|
|
68
|
+
if (typeof raw !== 'string' || raw.length === 0) {
|
|
69
|
+
throw new UsageError('--columns-mapping requires a non-empty JSON object literal', {
|
|
70
|
+
details: {
|
|
71
|
+
hint: "example: --columns-mapping '{\"status_4\": \"status_42\"}'; " +
|
|
72
|
+
"use '{}' to accept Monday's permissive default (drop unmatched).",
|
|
73
|
+
},
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
let parsed;
|
|
77
|
+
try {
|
|
78
|
+
parsed = JSON.parse(raw);
|
|
79
|
+
}
|
|
80
|
+
catch (err) {
|
|
81
|
+
throw new UsageError(`--columns-mapping value isn't valid JSON: ${err instanceof Error ? err.message : String(err)}`, {
|
|
82
|
+
cause: err,
|
|
83
|
+
details: {
|
|
84
|
+
hint: "example: --columns-mapping '{\"status_4\": \"status_42\"}' " +
|
|
85
|
+
'(quote the JSON in your shell to escape spaces and braces).',
|
|
86
|
+
},
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
// JSON.parse returns `unknown`; the zod schema rejects any non-
|
|
90
|
+
// object root (arrays + primitives). z.record's "expected object"
|
|
91
|
+
// path/code combination tells the agent the root shape was wrong.
|
|
92
|
+
if (parsed === null || typeof parsed !== 'object' || Array.isArray(parsed)) {
|
|
93
|
+
throw new UsageError('--columns-mapping must be a JSON object (e.g. {"status_4": "status_42"})', {
|
|
94
|
+
details: {
|
|
95
|
+
received_kind: parsed === null ? 'null' : Array.isArray(parsed) ? 'array' : typeof parsed,
|
|
96
|
+
hint: "use {} to accept Monday's permissive default (drop unmatched columns silently); " +
|
|
97
|
+
'rich {id, value?} forms for cross-board value-overrides are deferred to v0.3.',
|
|
98
|
+
},
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
const result = columnMappingSchema.safeParse(parsed);
|
|
102
|
+
if (!result.success) {
|
|
103
|
+
throw new UsageError(`--columns-mapping shape rejected: ${summariseIssues(result.error)
|
|
104
|
+
.map((i) => (i.path.length > 0 ? `${i.path}: ${i.message}` : i.message))
|
|
105
|
+
.join('; ')}`, {
|
|
106
|
+
cause: result.error,
|
|
107
|
+
details: {
|
|
108
|
+
issues: summariseIssues(result.error),
|
|
109
|
+
hint: 'expected {"<source_col_id>": "<target_col_id>", ...}; ' +
|
|
110
|
+
'rich {id, value?} forms for value-overrides are deferred to v0.3 — fire ' +
|
|
111
|
+
'`monday item set <iid> <target>=<value>` post-move when you need them.',
|
|
112
|
+
},
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
return result.data;
|
|
116
|
+
};
|
|
117
|
+
//# sourceMappingURL=column-mapping.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"column-mapping.js","sourceRoot":"","sources":["../../src/api/column-mapping.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Live-mutation null-result projection for the M16 column lifecycle
|
|
3
|
+
* cluster (`v0.2-plan.md` §22 R45 lift).
|
|
4
|
+
*
|
|
5
|
+
* Three M16 verbs share a near-verbatim shape: null-check the wire
|
|
6
|
+
* payload, throw a typed ApiError on null carrying both
|
|
7
|
+
* `details.board_id` and `details.column_id` (the column-mutation
|
|
8
|
+
* wire signature is two-tuple — `create_column` carries
|
|
9
|
+
* `board_id` only pre-id, but the read-side projection always pairs
|
|
10
|
+
* the two), then parse through `columnProjectionSchema` to surface
|
|
11
|
+
* the §6.4 mutation envelope's `data: <projected snapshot>`.
|
|
12
|
+
*
|
|
13
|
+
* Lifted alongside the first M16 column verb commit (mirroring R39's
|
|
14
|
+
* "ship the projection helper alongside the first new mutation
|
|
15
|
+
* rather than as a follow-up R-class" precedent — the three M16
|
|
16
|
+
* verbs land in the same milestone, so adopting the helper from day
|
|
17
|
+
* one avoids three parallel inline implementations of the same
|
|
18
|
+
* shape). cf. R28 (`projectMutationItem`), R37 (`projectMutationUpdate`),
|
|
19
|
+
* R43 (`projectMutationBoard`); R45 ships the fourth per-noun
|
|
20
|
+
* helper at the same 3-consumer threshold.
|
|
21
|
+
*
|
|
22
|
+
* **Why parameterised on `errorCode` + `errorMessage`.** Like R28 /
|
|
23
|
+
* R37 / R43, the M16 verbs diverge in error semantics:
|
|
24
|
+
* - `column-create` chose `internal_error` (every successful call
|
|
25
|
+
* returns a Column — a null payload means Monday glitched server-
|
|
26
|
+
* side, abnormal); the `details` carry `board_id` + `title` (no
|
|
27
|
+
* column_id yet).
|
|
28
|
+
* - `column-update` and `column-delete` chose `not_found`
|
|
29
|
+
* (Monday's idiomatic null-for-missing-or-no-access response —
|
|
30
|
+
* a typed agent-recovery story); both carry `board_id` +
|
|
31
|
+
* `column_id`.
|
|
32
|
+
* The helper owns the boilerplate (null check, `details: { board_id,
|
|
33
|
+
* [columnIdKey]: columnIdValue }` envelope, the `unwrapOrThrow`
|
|
34
|
+
* schema parse); each call site supplies its own typed error parts.
|
|
35
|
+
*
|
|
36
|
+
* **`COLUMN_FIELDS_FRAGMENT` + `columnProjectionSchema` co-ship.**
|
|
37
|
+
* Mirrors R39's `WORKSPACE_FIELDS_FRAGMENT` + `workspaceProjection
|
|
38
|
+
* Schema` and R43's `BOARD_FIELDS_FRAGMENT` + `boardProjectionSchema`
|
|
39
|
+
* pattern. The schema mirrors the `columnSchema` already in
|
|
40
|
+
* `src/api/board-metadata.ts` (the read-side cache projection) but
|
|
41
|
+
* exists as an exported strict projection schema so M16's three
|
|
42
|
+
* mutation verbs share one source of truth for the on-the-wire
|
|
43
|
+
* Column shape.
|
|
44
|
+
*
|
|
45
|
+
* **What stays at the call site.** The wire-shape parse of the full
|
|
46
|
+
* mutation response (`responseSchema.safeParse(response.data)`) stays
|
|
47
|
+
* inline because each verb's response root key (`create_column` /
|
|
48
|
+
* `change_column_title` / `change_column_metadata` / `delete_column`)
|
|
49
|
+
* is per-verb. The missing-root-key check (schema-drift →
|
|
50
|
+
* `internal_error` with a `hint`) stays inline too — that's Codex
|
|
51
|
+
* M15 implementation round-2 F1's distinction between schema-drift
|
|
52
|
+
* and null-payload, deliberately preserved at each site. R42 would
|
|
53
|
+
* unify the missing-root-key check across all pre-M14 mutation verbs
|
|
54
|
+
* once scheduled.
|
|
55
|
+
*/
|
|
56
|
+
import { z } from 'zod';
|
|
57
|
+
import { type ErrorCode } from '../utils/errors.js';
|
|
58
|
+
/**
|
|
59
|
+
* Shared GraphQL selection set for the M16 column projection. 6-space
|
|
60
|
+
* continuation indent matches the column every consumer interpolates
|
|
61
|
+
* `${COLUMN_FIELDS_FRAGMENT}` at, so rendered query bytes stay
|
|
62
|
+
* stable across consumers. Mirrors `BOARD_FIELDS_FRAGMENT` (R43) and
|
|
63
|
+
* `WORKSPACE_FIELDS_FRAGMENT` (R39).
|
|
64
|
+
*
|
|
65
|
+
* Field set tracks `boardMetadataSchema.columns[*]` (the read-side
|
|
66
|
+
* cache projection) so a `board describe` after a successful column
|
|
67
|
+
* mutation returns the same JSON shape the mutation envelope did.
|
|
68
|
+
*/
|
|
69
|
+
export declare const COLUMN_FIELDS_FRAGMENT = "id\n title\n type\n description\n archived\n settings_str\n width";
|
|
70
|
+
/**
|
|
71
|
+
* Strict zod schema for the column projection — the exact shape
|
|
72
|
+
* `COLUMN_FIELDS_FRAGMENT` selects from the wire. Shared by
|
|
73
|
+
* M16's `column-create` / `column-update` / `column-delete`; each
|
|
74
|
+
* verb's `CommandModule.outputSchema` aliases this so the schema-
|
|
75
|
+
* export pipeline emits one canonical shape.
|
|
76
|
+
*
|
|
77
|
+
* Mirrors `boardMetadataSchema.columns[*]` in `board-metadata.ts`
|
|
78
|
+
* verbatim — same fields, same nullability — so a `board describe`
|
|
79
|
+
* after a successful column mutation reads the same JSON shape the
|
|
80
|
+
* mutation envelope wrote.
|
|
81
|
+
*/
|
|
82
|
+
export declare const columnProjectionSchema: z.ZodObject<{
|
|
83
|
+
id: z.ZodString;
|
|
84
|
+
title: z.ZodString;
|
|
85
|
+
type: z.ZodString;
|
|
86
|
+
description: z.ZodNullable<z.ZodString>;
|
|
87
|
+
archived: z.ZodNullable<z.ZodBoolean>;
|
|
88
|
+
settings_str: z.ZodNullable<z.ZodString>;
|
|
89
|
+
width: z.ZodNullable<z.ZodNumber>;
|
|
90
|
+
}, z.core.$strict>;
|
|
91
|
+
export type ColumnProjection = z.infer<typeof columnProjectionSchema>;
|
|
92
|
+
/**
|
|
93
|
+
* Column-mutation detail key — varies between create (`title` echo,
|
|
94
|
+
* since the new column id doesn't exist pre-call) and update / delete
|
|
95
|
+
* (`column_id`, since both operate on an existing column). All M16
|
|
96
|
+
* verbs additionally echo `board_id` because the column-mutation wire
|
|
97
|
+
* signature is two-tuple.
|
|
98
|
+
*/
|
|
99
|
+
export type ColumnMutationDetailKey = 'column_id' | 'title';
|
|
100
|
+
export interface ProjectMutationColumnInputs {
|
|
101
|
+
readonly raw: unknown;
|
|
102
|
+
readonly errorCode: ErrorCode;
|
|
103
|
+
/**
|
|
104
|
+
* Full caller-formatted message for the null-payload throw — e.g.
|
|
105
|
+
* `"Monday returned no column payload from delete_column for board
|
|
106
|
+
* 12345 column status_4"`. Per-verb phrasing is preserved verbatim
|
|
107
|
+
* because agents key off the message text in error logs.
|
|
108
|
+
*/
|
|
109
|
+
readonly errorMessage: string;
|
|
110
|
+
readonly boardId: string;
|
|
111
|
+
/**
|
|
112
|
+
* Whether the call site identifies the column by its already-known
|
|
113
|
+
* id (`column_id`, used by update / delete) or by the agent-supplied
|
|
114
|
+
* title (`title`, used by create — no id exists pre-call). The
|
|
115
|
+
* helper keys `details.<columnIdKey>` accordingly so agents key off
|
|
116
|
+
* the right field without having to switch on the verb.
|
|
117
|
+
*/
|
|
118
|
+
readonly columnIdKey: ColumnMutationDetailKey;
|
|
119
|
+
readonly columnIdValue: string;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Parses + projects a live-mutation `Column` payload, throwing the
|
|
123
|
+
* supplied typed error on null/undefined. Caller owns the error code
|
|
124
|
+
* + message so create's `internal_error` / "no column payload from
|
|
125
|
+
* create_column for board <X> title <Y>" and update's / delete's
|
|
126
|
+
* `not_found` / "no column payload from <op> for board <X> column
|
|
127
|
+
* <Y>" both survive the lift byte-for-byte.
|
|
128
|
+
*
|
|
129
|
+
* `details: { board_id, [columnIdKey]: columnIdValue }` is supplied
|
|
130
|
+
* by the helper so every consumer carries the same envelope shape —
|
|
131
|
+
* agents key off `details.board_id` + `details.column_id` (or
|
|
132
|
+
* `details.title` on create's pre-id path) regardless of which verb
|
|
133
|
+
* threw (cli-design §6.5).
|
|
134
|
+
*/
|
|
135
|
+
export declare const projectMutationColumn: ({ raw, errorCode, errorMessage, boardId, columnIdKey, columnIdValue, }: ProjectMutationColumnInputs) => ColumnProjection;
|
|
136
|
+
//# sourceMappingURL=column-mutation-result.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"column-mutation-result.d.ts","sourceRoot":"","sources":["../../src/api/column-mutation-result.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG9D;;;;;;;;;;GAUG;AACH,eAAO,MAAM,sBAAsB,oGAMvB,CAAC;AAEb;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;kBAUxB,CAAC;AAEZ,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE;;;;;;GAMG;AACH,MAAM,MAAM,uBAAuB,GAAG,WAAW,GAAG,OAAO,CAAC;AAE5D,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;;;;;;OAMG;IACH,QAAQ,CAAC,WAAW,EAAE,uBAAuB,CAAC;IAC9C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,qBAAqB,GAAI,wEAOnC,2BAA2B,KAAG,gBAgBhC,CAAC"}
|