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,27 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { readFileSync } from 'node:fs';
|
|
3
|
+
import { dirname, join } from 'node:path';
|
|
4
|
+
import { fileURLToPath } from 'node:url';
|
|
5
|
+
import { runWithSignals } from './run.js';
|
|
6
|
+
const here = dirname(fileURLToPath(import.meta.url));
|
|
7
|
+
const pkg = JSON.parse(readFileSync(join(here, '..', '..', 'package.json'), 'utf8'));
|
|
8
|
+
const result = await runWithSignals({
|
|
9
|
+
argv: process.argv,
|
|
10
|
+
env: process.env,
|
|
11
|
+
stdout: process.stdout,
|
|
12
|
+
stderr: process.stderr,
|
|
13
|
+
stdin: process.stdin,
|
|
14
|
+
isTTY: process.stdout.isTTY,
|
|
15
|
+
cliVersion: pkg.version,
|
|
16
|
+
cliDescription: pkg.description,
|
|
17
|
+
});
|
|
18
|
+
// Set the exit code rather than calling `process.exit(...)` directly.
|
|
19
|
+
// `process.exit` terminates the process before stdout / stderr have
|
|
20
|
+
// finished flushing to a pipe, which truncates large outputs (e.g.
|
|
21
|
+
// `monday schema --json` once it crosses the kernel pipe buffer at
|
|
22
|
+
// ~64KB). Using `process.exitCode` lets Node exit naturally once the
|
|
23
|
+
// event loop drains the pending writes — the published exit code
|
|
24
|
+
// stays the same, but every byte the CLI wrote actually reaches the
|
|
25
|
+
// reader. cli.md "exit codes are part of the contract" is preserved.
|
|
26
|
+
process.exitCode = result.exitCode;
|
|
27
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAO1C,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACrD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CACpB,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAC9C,CAAC;AAEjB,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC;IAClC,IAAI,EAAE,OAAO,CAAC,IAAI;IAClB,GAAG,EAAE,OAAO,CAAC,GAAG;IAChB,MAAM,EAAE,OAAO,CAAC,MAAM;IACtB,MAAM,EAAE,OAAO,CAAC,MAAM;IACtB,KAAK,EAAE,OAAO,CAAC,KAAK;IACpB,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK;IAC3B,UAAU,EAAE,GAAG,CAAC,OAAO;IACvB,cAAc,EAAE,GAAG,CAAC,WAAW;CAChC,CAAC,CAAC;AAEH,sEAAsE;AACtE,oEAAoE;AACpE,mEAAmE;AACnE,mEAAmE;AACnE,qEAAqE;AACrE,iEAAiE;AACjE,oEAAoE;AACpE,qEAAqE;AACrE,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Commander program construction (M2.5 R2).
|
|
3
|
+
*
|
|
4
|
+
* Pulled out of `cli/run.ts` so the runner stays focused on argv
|
|
5
|
+
* parsing, signal combining, and error-envelope plumbing. This
|
|
6
|
+
* module owns:
|
|
7
|
+
*
|
|
8
|
+
* - the program-level metadata (`name`, `description`, `version`);
|
|
9
|
+
* - the `configureOutput` adapters that route commander writes to
|
|
10
|
+
* the runner's `stdout`/`stderr` streams;
|
|
11
|
+
* - the global-flag option declarations (one source of truth — the
|
|
12
|
+
* zod-validated shape lives in `src/types/global-flags.ts`);
|
|
13
|
+
* - command attachment (registry → extras → raw `registerCommands`).
|
|
14
|
+
*
|
|
15
|
+
* `buildProgram` doesn't run argv through commander — that's still
|
|
16
|
+
* `run()`'s job. It only constructs the configured `Command`
|
|
17
|
+
* instance.
|
|
18
|
+
*/
|
|
19
|
+
import { Command } from 'commander';
|
|
20
|
+
import type { RunContext, RunOptions } from './run.js';
|
|
21
|
+
/**
|
|
22
|
+
* Subset of `RunOptions` `buildProgram` actually consumes. Keeping the
|
|
23
|
+
* input type narrow makes the dependency obvious — adding a field to
|
|
24
|
+
* `RunOptions` doesn't silently feed into program construction unless
|
|
25
|
+
* it's listed here.
|
|
26
|
+
*/
|
|
27
|
+
export type BuildProgramOptions = Pick<RunOptions, 'cliVersion' | 'cliDescription' | 'stdout' | 'stderr' | 'extraCommands' | 'registerCommands'>;
|
|
28
|
+
export declare const buildProgram: (options: BuildProgramOptions, ctx: RunContext) => Command;
|
|
29
|
+
//# sourceMappingURL=program.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../../src/cli/program.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEvD;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,GAAG,IAAI,CACpC,UAAU,EACR,YAAY,GACZ,gBAAgB,GAChB,QAAQ,GACR,QAAQ,GACR,eAAe,GACf,kBAAkB,CACrB,CAAC;AAEF,eAAO,MAAM,YAAY,GACvB,SAAS,mBAAmB,EAC5B,KAAK,UAAU,KACd,OAyFF,CAAC"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Commander program construction (M2.5 R2).
|
|
3
|
+
*
|
|
4
|
+
* Pulled out of `cli/run.ts` so the runner stays focused on argv
|
|
5
|
+
* parsing, signal combining, and error-envelope plumbing. This
|
|
6
|
+
* module owns:
|
|
7
|
+
*
|
|
8
|
+
* - the program-level metadata (`name`, `description`, `version`);
|
|
9
|
+
* - the `configureOutput` adapters that route commander writes to
|
|
10
|
+
* the runner's `stdout`/`stderr` streams;
|
|
11
|
+
* - the global-flag option declarations (one source of truth — the
|
|
12
|
+
* zod-validated shape lives in `src/types/global-flags.ts`);
|
|
13
|
+
* - command attachment (registry → extras → raw `registerCommands`).
|
|
14
|
+
*
|
|
15
|
+
* `buildProgram` doesn't run argv through commander — that's still
|
|
16
|
+
* `run()`'s job. It only constructs the configured `Command`
|
|
17
|
+
* instance.
|
|
18
|
+
*/
|
|
19
|
+
import { Command } from 'commander';
|
|
20
|
+
import { getCommandRegistry } from '../commands/index.js';
|
|
21
|
+
import { parseGlobalFlags } from '../types/global-flags.js';
|
|
22
|
+
import { PINNED_API_VERSION } from '../api/client.js';
|
|
23
|
+
export const buildProgram = (options, ctx) => {
|
|
24
|
+
const program = new Command();
|
|
25
|
+
program
|
|
26
|
+
.name('monday')
|
|
27
|
+
.description(options.cliDescription ?? 'CLI for Monday.com')
|
|
28
|
+
.version(options.cliVersion, '-V, --version')
|
|
29
|
+
.exitOverride()
|
|
30
|
+
.configureOutput({
|
|
31
|
+
writeOut: (str) => {
|
|
32
|
+
options.stdout.write(str);
|
|
33
|
+
},
|
|
34
|
+
writeErr: (str) => {
|
|
35
|
+
options.stderr.write(str);
|
|
36
|
+
},
|
|
37
|
+
// Swallow commander's plain-text error preamble — the runner's
|
|
38
|
+
// catch-all emits a §6 error envelope with the same content
|
|
39
|
+
// in a stable shape. Without this, stderr would carry both
|
|
40
|
+
// "error: unknown option" *and* the envelope, breaking the
|
|
41
|
+
// "stderr is the envelope, period" contract.
|
|
42
|
+
outputError: () => {
|
|
43
|
+
// intentionally empty
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
// Global flags — see `src/types/global-flags.ts` for the validated
|
|
47
|
+
// shape. We declare the option surface here so commander knows
|
|
48
|
+
// how to parse argv; refinement happens per-command via the zod
|
|
49
|
+
// schema at the action boundary.
|
|
50
|
+
program
|
|
51
|
+
.option('--output <fmt>', 'json | table | text | ndjson')
|
|
52
|
+
.option('--json', 'shorthand for --output json')
|
|
53
|
+
.option('--table', 'shorthand for --output table')
|
|
54
|
+
.option('--full', 'disable table value truncation')
|
|
55
|
+
.option('--width <n>', 'force table target width (TTY only)')
|
|
56
|
+
.option('--columns <list>', 'comma-separated visible columns')
|
|
57
|
+
.option('--minimal', 'omit non-essential fields from JSON')
|
|
58
|
+
.option('-q, --quiet', 'suppress stderr progress and hints')
|
|
59
|
+
.option('-v, --verbose', 'debug logs to stderr (tokens redacted)')
|
|
60
|
+
.option('--no-color', 'disable colour output')
|
|
61
|
+
.option('--no-cache', 'skip the local board-metadata cache')
|
|
62
|
+
.option('--profile <name>', 'config profile (v0.3+; "default" only in v0.1)')
|
|
63
|
+
.option('--api-version <v>', 'override the API-Version header')
|
|
64
|
+
.option('--timeout <ms>', 'per-request timeout in milliseconds')
|
|
65
|
+
.option('--retry <n>', 'max retries on transient errors')
|
|
66
|
+
.option('--dry-run', 'mutations: print planned change, do not execute')
|
|
67
|
+
.option('-y, --yes', 'skip confirmation gate on destructive ops')
|
|
68
|
+
.option('--body-file <path>', 'read --body content from a file (or - for stdin)');
|
|
69
|
+
// Wire the static registry first, then any test-supplied extras /
|
|
70
|
+
// raw hooks. Tests can swap out the registry entirely by passing
|
|
71
|
+
// an empty `extraCommands` and using `registerCommands` for ad-hoc
|
|
72
|
+
// commands; production callers leave both unset and pick up the
|
|
73
|
+
// shipped surface.
|
|
74
|
+
const modules = options.extraCommands ?? getCommandRegistry();
|
|
75
|
+
for (const mod of modules) {
|
|
76
|
+
mod.attach(program, ctx);
|
|
77
|
+
}
|
|
78
|
+
options.registerCommands?.(program, ctx);
|
|
79
|
+
// Commit the resolved `--api-version` to the per-invocation meta
|
|
80
|
+
// builder BEFORE any subcommand action runs. The success path
|
|
81
|
+
// re-commits via `resolveClient`; this preAction hook covers the
|
|
82
|
+
// pre-`resolveClient` failure surface — `parseArgv` throwing a
|
|
83
|
+
// `UsageError` on a bad positional, or any other zod-rejection at
|
|
84
|
+
// the action boundary. Without this, `monday --api-version 2026-04
|
|
85
|
+
// item get bad-id --json` produced a usage_error envelope claiming
|
|
86
|
+
// `meta.api_version: "2026-01"` (the SDK pin), losing the
|
|
87
|
+
// `--api-version` agents passed (Codex M4 pass-2 §3).
|
|
88
|
+
//
|
|
89
|
+
// Resolution priority matches `resolveClient`: explicit flag > env
|
|
90
|
+
// > SDK pin. We don't load config here (that surfaces a separate
|
|
91
|
+
// `config_error` if the token is missing); the apiVersion override
|
|
92
|
+
// is independent of token resolution.
|
|
93
|
+
program.hook('preAction', () => {
|
|
94
|
+
try {
|
|
95
|
+
const flags = parseGlobalFlags(program.opts(), ctx.env);
|
|
96
|
+
const resolvedVersion = flags.apiVersion ??
|
|
97
|
+
ctx.env.MONDAY_API_VERSION ??
|
|
98
|
+
PINNED_API_VERSION;
|
|
99
|
+
ctx.meta.setApiVersion(resolvedVersion);
|
|
100
|
+
}
|
|
101
|
+
catch {
|
|
102
|
+
// Bad global-flag shape is already a usage_error path the
|
|
103
|
+
// runner's catch-all will surface; the preAction hook just
|
|
104
|
+
// tries best-effort.
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
return program;
|
|
108
|
+
};
|
|
109
|
+
//# sourceMappingURL=program.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"program.js","sourceRoot":"","sources":["../../src/cli/program.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { type Command } from 'commander';
|
|
2
|
+
import { type ExitCode } from '../utils/errors.js';
|
|
3
|
+
import { type RequestIdGenerator } from '../utils/request-id.js';
|
|
4
|
+
import { type MetaBuilder } from './envelope-out.js';
|
|
5
|
+
import type { Transport } from '../api/transport.js';
|
|
6
|
+
import type { CommandModule } from '../commands/types.js';
|
|
7
|
+
/**
|
|
8
|
+
* Testable CLI runner (`v0.1-plan.md` §3 M0).
|
|
9
|
+
*
|
|
10
|
+
* Replaces `process.argv` / `process.env` / `process.stdout` direct
|
|
11
|
+
* reads in `cli/index.ts` with an injectable shape so tests exercise
|
|
12
|
+
* the same envelope-conversion / exit-code / SIGINT plumbing the
|
|
13
|
+
* published binary uses. The thin shebang in `cli/index.ts` forwards
|
|
14
|
+
* the live process state into here. Owns the runtime core — argv →
|
|
15
|
+
* commander parse, signal combining, request-id generation, error →
|
|
16
|
+
* envelope conversion. Commander wiring lives in `program.ts`;
|
|
17
|
+
* envelope construction in `envelope-out.ts` (M2.5 R2).
|
|
18
|
+
*/
|
|
19
|
+
export interface RunOptions {
|
|
20
|
+
readonly argv: readonly string[];
|
|
21
|
+
readonly env: NodeJS.ProcessEnv;
|
|
22
|
+
readonly stdout: NodeJS.WritableStream;
|
|
23
|
+
readonly stderr: NodeJS.WritableStream;
|
|
24
|
+
readonly stdin?: NodeJS.ReadableStream;
|
|
25
|
+
readonly isTTY: boolean;
|
|
26
|
+
readonly cliVersion: string;
|
|
27
|
+
readonly cliDescription?: string;
|
|
28
|
+
readonly clock?: () => Date;
|
|
29
|
+
readonly transport?: Transport;
|
|
30
|
+
readonly requestIdGenerator?: RequestIdGenerator;
|
|
31
|
+
/**
|
|
32
|
+
* External abort source. `runWithSignals` provides one tied to
|
|
33
|
+
* `SIGINT`; tests pass their own to drive the cancel path
|
|
34
|
+
* deterministically. The runner combines this with its own
|
|
35
|
+
* controller so either side can trigger a clean shutdown.
|
|
36
|
+
*/
|
|
37
|
+
readonly signal?: AbortSignal;
|
|
38
|
+
/**
|
|
39
|
+
* Test-only override of the static command registry. Production
|
|
40
|
+
* callers leave it unset and the runner walks `commandRegistry`
|
|
41
|
+
* (`src/commands/index.ts`). Tests pass a tailored list to
|
|
42
|
+
* register dummy `self-test`-style commands without touching the
|
|
43
|
+
* production registry — same `attach(program, ctx)` shape, same
|
|
44
|
+
* envelope path, no fork in the action plumbing.
|
|
45
|
+
*/
|
|
46
|
+
readonly extraCommands?: readonly CommandModule[];
|
|
47
|
+
/**
|
|
48
|
+
* Lower-level hook for tests that want to drive commander
|
|
49
|
+
* directly (raw `program.command(...)` calls) without going
|
|
50
|
+
* through the `CommandModule` shape. Receives the program *and*
|
|
51
|
+
* the live `RunContext` so registered actions can read
|
|
52
|
+
* `ctx.signal`, `ctx.transport`, `ctx.env`, etc. Production
|
|
53
|
+
* callers leave it unset.
|
|
54
|
+
*/
|
|
55
|
+
readonly registerCommands?: (program: Command, ctx: RunContext) => void;
|
|
56
|
+
}
|
|
57
|
+
export interface RunResult {
|
|
58
|
+
readonly exitCode: ExitCode;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Public per-invocation context every command receives. Built by
|
|
62
|
+
* `run()` once per call; threaded into `registerCommands(program,
|
|
63
|
+
* ctx)` so actions can pull the signal, transport, env, and logging
|
|
64
|
+
* surfaces without re-deriving them.
|
|
65
|
+
*/
|
|
66
|
+
export interface RunContext {
|
|
67
|
+
readonly env: NodeJS.ProcessEnv;
|
|
68
|
+
readonly stdout: NodeJS.WritableStream;
|
|
69
|
+
readonly stderr: NodeJS.WritableStream;
|
|
70
|
+
readonly stdin?: NodeJS.ReadableStream;
|
|
71
|
+
readonly isTTY: boolean;
|
|
72
|
+
readonly clock: () => Date;
|
|
73
|
+
readonly transport: Transport | undefined;
|
|
74
|
+
readonly requestId: string;
|
|
75
|
+
readonly cliVersion: string;
|
|
76
|
+
/**
|
|
77
|
+
* Aborts when the runner is shutting down — caller cancel,
|
|
78
|
+
* SIGINT, or future timeout. Commands awaiting long work should
|
|
79
|
+
* thread this into `transport.request({signal})` and bail
|
|
80
|
+
* cooperatively when the signal fires.
|
|
81
|
+
*/
|
|
82
|
+
readonly signal: AbortSignal;
|
|
83
|
+
/**
|
|
84
|
+
* Action-resolved meta for the **error** path only. Commands that
|
|
85
|
+
* commit values via `ctx.meta.setApiVersion(v)` / `setSource('live')`
|
|
86
|
+
* get them reported on the error envelope if the action throws.
|
|
87
|
+
* Success envelopes get the same values via `emitSuccess`'s options
|
|
88
|
+
* (the `...toEmit(result)` splat from `resolveClient`); both channels
|
|
89
|
+
* agree because `resolveClient` writes to both. Full rationale:
|
|
90
|
+
* `envelope-out.ts` (M2.5 R2).
|
|
91
|
+
*/
|
|
92
|
+
readonly meta: MetaBuilder;
|
|
93
|
+
}
|
|
94
|
+
export declare const run: (options: RunOptions) => Promise<RunResult>;
|
|
95
|
+
/**
|
|
96
|
+
* Wraps `run()` with `process.on('SIGINT', ...)` so a Ctrl-C
|
|
97
|
+
* triggers a real abort: an `AbortController` fires with reason
|
|
98
|
+
* `{kind:'sigint'}` and the signal is threaded into `ctx.signal`
|
|
99
|
+
* via `RunOptions.signal`. Commands awaiting transport requests
|
|
100
|
+
* see the abort and can bail; the runner then returns 130 without
|
|
101
|
+
* an envelope per `cli-design.md` §3.1 #5.
|
|
102
|
+
*
|
|
103
|
+
* This is the production surface; unit tests typically call `run()`
|
|
104
|
+
* directly with their own `signal` to deterministically drive the
|
|
105
|
+
* cancel path.
|
|
106
|
+
*/
|
|
107
|
+
export declare const runWithSignals: (options: RunOptions) => Promise<RunResult>;
|
|
108
|
+
//# sourceMappingURL=run.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAGL,KAAK,QAAQ,EACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAKL,KAAK,WAAW,EACjB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC/B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACjD;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B;;;;;;;OAOG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IAClD;;;;;;;OAOG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC;CACzE;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC7B;AAED;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B;;;;;;;;OAQG;IACH,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;CAC5B;AAaD,eAAO,MAAM,GAAG,GAAU,SAAS,UAAU,KAAG,OAAO,CAAC,SAAS,CAuEhE,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,cAAc,GACzB,SAAS,UAAU,KAClB,OAAO,CAAC,SAAS,CAYnB,CAAC"}
|
package/dist/cli/run.js
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { CommanderError } from 'commander';
|
|
2
|
+
import { exitCodeForError, } from '../utils/errors.js';
|
|
3
|
+
import { defaultRequestIdGenerator, } from '../utils/request-id.js';
|
|
4
|
+
import { buildBaseMeta, createMetaBuilder, toMondayError, writeErrorEnvelope, } from './envelope-out.js';
|
|
5
|
+
import { buildProgram } from './program.js';
|
|
6
|
+
const isSigintReason = (reason) => {
|
|
7
|
+
/* c8 ignore next 3 — defensive non-object guard. Production
|
|
8
|
+
callers always pass `{kind: 'sigint'}` via `runWithSignals`;
|
|
9
|
+
a primitive reason is only possible via direct `run()` misuse. */
|
|
10
|
+
if (typeof reason !== 'object' || reason === null) {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
const tagged = reason;
|
|
14
|
+
return tagged.kind === 'sigint';
|
|
15
|
+
};
|
|
16
|
+
export const run = async (options) => {
|
|
17
|
+
const requestId = (options.requestIdGenerator ?? defaultRequestIdGenerator)();
|
|
18
|
+
const clock = options.clock ?? (() => new Date());
|
|
19
|
+
const retrievedAt = clock().toISOString();
|
|
20
|
+
// Internal abort controller, optionally combined with a caller-
|
|
21
|
+
// supplied signal so either side can trigger shutdown. Commands
|
|
22
|
+
// read `ctx.signal`; the runner inspects `signal.reason` after
|
|
23
|
+
// the action returns to distinguish SIGINT (exit 130) from other
|
|
24
|
+
// aborts (caller-defined).
|
|
25
|
+
const internalAbort = new AbortController();
|
|
26
|
+
const combinedSignal = options.signal === undefined
|
|
27
|
+
? internalAbort.signal
|
|
28
|
+
: AbortSignal.any([options.signal, internalAbort.signal]);
|
|
29
|
+
const meta = createMetaBuilder();
|
|
30
|
+
const ctx = {
|
|
31
|
+
env: options.env,
|
|
32
|
+
stdout: options.stdout,
|
|
33
|
+
stderr: options.stderr,
|
|
34
|
+
...(options.stdin !== undefined ? { stdin: options.stdin } : {}),
|
|
35
|
+
isTTY: options.isTTY,
|
|
36
|
+
clock,
|
|
37
|
+
transport: options.transport,
|
|
38
|
+
requestId,
|
|
39
|
+
cliVersion: options.cliVersion,
|
|
40
|
+
signal: combinedSignal,
|
|
41
|
+
meta,
|
|
42
|
+
};
|
|
43
|
+
const program = buildProgram(options, ctx);
|
|
44
|
+
try {
|
|
45
|
+
await program.parseAsync(options.argv);
|
|
46
|
+
if (combinedSignal.aborted && isSigintReason(combinedSignal.reason)) {
|
|
47
|
+
return { exitCode: 130 };
|
|
48
|
+
}
|
|
49
|
+
return { exitCode: 0 };
|
|
50
|
+
}
|
|
51
|
+
catch (err) {
|
|
52
|
+
// SIGINT-during-action takes precedence: the design says exit
|
|
53
|
+
// 130 with no envelope on stderr. The action's thrown error is
|
|
54
|
+
// a downstream consequence of the abort; surfacing it would
|
|
55
|
+
// muddle the contract.
|
|
56
|
+
if (combinedSignal.aborted && isSigintReason(combinedSignal.reason)) {
|
|
57
|
+
return { exitCode: 130 };
|
|
58
|
+
}
|
|
59
|
+
// commander.helpDisplayed / commander.version are success-style;
|
|
60
|
+
// treat them as exit 0 with no envelope.
|
|
61
|
+
if (err instanceof CommanderError && err.exitCode === 0) {
|
|
62
|
+
return { exitCode: 0 };
|
|
63
|
+
}
|
|
64
|
+
const cliError = toMondayError(err);
|
|
65
|
+
writeErrorEnvelope(cliError, {
|
|
66
|
+
stderr: options.stderr,
|
|
67
|
+
env: options.env,
|
|
68
|
+
meta: buildBaseMeta({
|
|
69
|
+
snapshot: meta.snapshot(),
|
|
70
|
+
env: options.env,
|
|
71
|
+
cliVersion: options.cliVersion,
|
|
72
|
+
requestId,
|
|
73
|
+
retrievedAt,
|
|
74
|
+
}),
|
|
75
|
+
});
|
|
76
|
+
return { exitCode: exitCodeForError(cliError.code) };
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
/**
|
|
80
|
+
* Wraps `run()` with `process.on('SIGINT', ...)` so a Ctrl-C
|
|
81
|
+
* triggers a real abort: an `AbortController` fires with reason
|
|
82
|
+
* `{kind:'sigint'}` and the signal is threaded into `ctx.signal`
|
|
83
|
+
* via `RunOptions.signal`. Commands awaiting transport requests
|
|
84
|
+
* see the abort and can bail; the runner then returns 130 without
|
|
85
|
+
* an envelope per `cli-design.md` §3.1 #5.
|
|
86
|
+
*
|
|
87
|
+
* This is the production surface; unit tests typically call `run()`
|
|
88
|
+
* directly with their own `signal` to deterministically drive the
|
|
89
|
+
* cancel path.
|
|
90
|
+
*/
|
|
91
|
+
export const runWithSignals = async (options) => {
|
|
92
|
+
const ctrl = new AbortController();
|
|
93
|
+
const onInt = () => {
|
|
94
|
+
const reason = { kind: 'sigint' };
|
|
95
|
+
ctrl.abort(reason);
|
|
96
|
+
};
|
|
97
|
+
process.on('SIGINT', onInt);
|
|
98
|
+
try {
|
|
99
|
+
return await run({ ...options, signal: ctrl.signal });
|
|
100
|
+
}
|
|
101
|
+
finally {
|
|
102
|
+
process.off('SIGINT', onInt);
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
//# sourceMappingURL=run.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared `MondayClient` construction for the `account/*` commands.
|
|
3
|
+
*
|
|
4
|
+
* Each network command needs the same plumbing — load config (for
|
|
5
|
+
* the API token + URL + version), pick up global flags (`--retry`,
|
|
6
|
+
* `--verbose`, `--api-version`, `--timeout`), and either wrap the
|
|
7
|
+
* injected `Transport` (test path) or build a `FetchTransport` from
|
|
8
|
+
* config (production path). Centralising here:
|
|
9
|
+
*
|
|
10
|
+
* - keeps the action body in each command focused on the GraphQL
|
|
11
|
+
* call + envelope mapping;
|
|
12
|
+
* - means the `--api-version` precedence rule (flag > env > SDK
|
|
13
|
+
* pin) lives in one place;
|
|
14
|
+
* - means a future profile switch / OAuth path swaps in here once,
|
|
15
|
+
* not per-command.
|
|
16
|
+
*
|
|
17
|
+
* The injected `ctx.transport` always wins — that's the fixture seam
|
|
18
|
+
* for integration tests. Production callers leave it undefined and
|
|
19
|
+
* a fresh `FetchTransport` is built per command invocation, so each
|
|
20
|
+
* call sees the live config (same as the SDK's per-call client).
|
|
21
|
+
*/
|
|
22
|
+
import { MondayClient } from '../../api/client.js';
|
|
23
|
+
import { type GlobalFlags } from '../../types/global-flags.js';
|
|
24
|
+
import type { RunContext } from '../../cli/run.js';
|
|
25
|
+
export interface ResolvedClient {
|
|
26
|
+
readonly client: MondayClient;
|
|
27
|
+
readonly globalFlags: GlobalFlags;
|
|
28
|
+
/**
|
|
29
|
+
* The actual `API-Version` value sent on the wire — `--api-version`
|
|
30
|
+
* flag > `MONDAY_API_VERSION` env > SDK pin. Surfaced so the
|
|
31
|
+
* envelope's `meta.api_version` carries the same value the request
|
|
32
|
+
* carried.
|
|
33
|
+
*/
|
|
34
|
+
readonly apiVersion: string;
|
|
35
|
+
}
|
|
36
|
+
export declare const resolveClient: (ctx: RunContext, programOpts: unknown) => ResolvedClient;
|
|
37
|
+
//# sourceMappingURL=client-helper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-helper.d.ts","sourceRoot":"","sources":["../../../src/commands/account/client-helper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,EAAE,YAAY,EAAsB,MAAM,qBAAqB,CAAC;AAEvE,OAAO,EAEL,KAAK,WAAW,EACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,eAAO,MAAM,aAAa,GACxB,KAAK,UAAU,EACf,aAAa,OAAO,KACnB,cAoCF,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared `MondayClient` construction for the `account/*` commands.
|
|
3
|
+
*
|
|
4
|
+
* Each network command needs the same plumbing — load config (for
|
|
5
|
+
* the API token + URL + version), pick up global flags (`--retry`,
|
|
6
|
+
* `--verbose`, `--api-version`, `--timeout`), and either wrap the
|
|
7
|
+
* injected `Transport` (test path) or build a `FetchTransport` from
|
|
8
|
+
* config (production path). Centralising here:
|
|
9
|
+
*
|
|
10
|
+
* - keeps the action body in each command focused on the GraphQL
|
|
11
|
+
* call + envelope mapping;
|
|
12
|
+
* - means the `--api-version` precedence rule (flag > env > SDK
|
|
13
|
+
* pin) lives in one place;
|
|
14
|
+
* - means a future profile switch / OAuth path swaps in here once,
|
|
15
|
+
* not per-command.
|
|
16
|
+
*
|
|
17
|
+
* The injected `ctx.transport` always wins — that's the fixture seam
|
|
18
|
+
* for integration tests. Production callers leave it undefined and
|
|
19
|
+
* a fresh `FetchTransport` is built per command invocation, so each
|
|
20
|
+
* call sees the live config (same as the SDK's per-call client).
|
|
21
|
+
*/
|
|
22
|
+
import { createFetchTransport } from '../../api/transport.js';
|
|
23
|
+
import { MondayClient, PINNED_API_VERSION } from '../../api/client.js';
|
|
24
|
+
import { loadConfig } from '../../config/load.js';
|
|
25
|
+
import { parseGlobalFlags, } from '../../types/global-flags.js';
|
|
26
|
+
export const resolveClient = (ctx, programOpts) => {
|
|
27
|
+
const globalFlags = parseGlobalFlags(programOpts, ctx.env);
|
|
28
|
+
const config = loadConfig(ctx.env);
|
|
29
|
+
// Precedence: explicit flag > env-derived config > SDK pin.
|
|
30
|
+
const apiVersion = globalFlags.apiVersion ?? config.apiVersion ?? PINNED_API_VERSION;
|
|
31
|
+
// Honour `--timeout` over the env / config default. Same reading
|
|
32
|
+
// as the design intent: the flag is a *per-invocation* override.
|
|
33
|
+
const timeoutMs = globalFlags.timeout ?? config.requestTimeoutMs;
|
|
34
|
+
const transport = ctx.transport ??
|
|
35
|
+
createFetchTransport({
|
|
36
|
+
endpoint: config.apiUrl,
|
|
37
|
+
apiToken: config.apiToken,
|
|
38
|
+
apiVersion,
|
|
39
|
+
timeoutMs,
|
|
40
|
+
});
|
|
41
|
+
const client = new MondayClient({
|
|
42
|
+
transport,
|
|
43
|
+
signal: ctx.signal,
|
|
44
|
+
retries: globalFlags.retry,
|
|
45
|
+
verbose: globalFlags.verbose,
|
|
46
|
+
});
|
|
47
|
+
// Stash the resolved meta on the runner so an error envelope
|
|
48
|
+
// emitted by the catch-all carries the same api_version + source
|
|
49
|
+
// a success envelope would. Without this, `--api-version 2026-04
|
|
50
|
+
// account whoami` failing with HTTP 401 produced an error envelope
|
|
51
|
+
// claiming `api_version: "2026-01"` (Codex M2 review §2).
|
|
52
|
+
ctx.setMetaHint({ apiVersion, source: 'live' });
|
|
53
|
+
return { client, globalFlags, apiVersion };
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=client-helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-helper.js","sourceRoot":"","sources":["../../../src/commands/account/client-helper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EACL,gBAAgB,GAEjB,MAAM,6BAA6B,CAAC;AAerC,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,GAAe,EACf,WAAoB,EACJ,EAAE;IAClB,MAAM,WAAW,GAAG,gBAAgB,CAAC,WAAW,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAEnC,4DAA4D;IAC5D,MAAM,UAAU,GACd,WAAW,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,IAAI,kBAAkB,CAAC;IAEpE,iEAAiE;IACjE,iEAAiE;IACjE,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,IAAI,MAAM,CAAC,gBAAgB,CAAC;IAEjE,MAAM,SAAS,GACb,GAAG,CAAC,SAAS;QACb,oBAAoB,CAAC;YACnB,QAAQ,EAAE,MAAM,CAAC,MAAM;YACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,UAAU;YACV,SAAS;SACV,CAAC,CAAC;IAEL,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC;QAC9B,SAAS;QACT,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,OAAO,EAAE,WAAW,CAAC,KAAK;QAC1B,OAAO,EAAE,WAAW,CAAC,OAAO;KAC7B,CAAC,CAAC;IAEH,6DAA6D;IAC7D,iEAAiE;IACjE,iEAAiE;IACjE,mEAAmE;IACnE,0DAA0D;IAC1D,GAAG,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAEhD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AAC7C,CAAC,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `monday account complexity` — emits the current complexity budget
|
|
3
|
+
* (`cli-design.md` §4.3, §2.5).
|
|
4
|
+
*
|
|
5
|
+
* GraphQL operation(s) called:
|
|
6
|
+
* - `complexity { before, after, query, reset_in_x_seconds }`
|
|
7
|
+
* (ComplexityProbe — the cheapest possible read on the API)
|
|
8
|
+
*
|
|
9
|
+
* Idempotent: yes — pure read.
|
|
10
|
+
*
|
|
11
|
+
* The output projects Monday's `query`/`after`/`reset_in_x_seconds`
|
|
12
|
+
* onto the CLI's stable `used`/`remaining`/`reset_in_seconds` shape
|
|
13
|
+
* (same fields `meta.complexity` carries on `--verbose`). `before`
|
|
14
|
+
* is also surfaced so an agent that wants the raw budget snapshot
|
|
15
|
+
* can read it without doing the math.
|
|
16
|
+
*/
|
|
17
|
+
import { z } from 'zod';
|
|
18
|
+
import { type CommandModule } from '../types.js';
|
|
19
|
+
export declare const accountComplexityOutputSchema: z.ZodObject<{
|
|
20
|
+
before: z.ZodNumber;
|
|
21
|
+
used: z.ZodNumber;
|
|
22
|
+
remaining: z.ZodNumber;
|
|
23
|
+
reset_in_seconds: z.ZodNumber;
|
|
24
|
+
}, z.core.$strict>;
|
|
25
|
+
export type AccountComplexityOutput = z.infer<typeof accountComplexityOutputSchema>;
|
|
26
|
+
declare const inputSchema: z.ZodObject<{}, z.core.$strict>;
|
|
27
|
+
export declare const accountComplexityCommand: CommandModule<z.infer<typeof inputSchema>, AccountComplexityOutput>;
|
|
28
|
+
export {};
|
|
29
|
+
//# sourceMappingURL=complexity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"complexity.d.ts","sourceRoot":"","sources":["../../../src/commands/account/complexity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAKnE,eAAO,MAAM,6BAA6B;;;;;kBAO/B,CAAC;AAEZ,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF,QAAA,MAAM,WAAW,iCAAwB,CAAC;AAE1C,eAAO,MAAM,wBAAwB,EAAE,aAAa,CAClD,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,EAC3B,uBAAuB,CA6CxB,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `monday account complexity` — emits the current complexity budget
|
|
3
|
+
* (`cli-design.md` §4.3, §2.5).
|
|
4
|
+
*
|
|
5
|
+
* GraphQL operation(s) called:
|
|
6
|
+
* - `complexity { before, after, query, reset_in_x_seconds }`
|
|
7
|
+
* (ComplexityProbe — the cheapest possible read on the API)
|
|
8
|
+
*
|
|
9
|
+
* Idempotent: yes — pure read.
|
|
10
|
+
*
|
|
11
|
+
* The output projects Monday's `query`/`after`/`reset_in_x_seconds`
|
|
12
|
+
* onto the CLI's stable `used`/`remaining`/`reset_in_seconds` shape
|
|
13
|
+
* (same fields `meta.complexity` carries on `--verbose`). `before`
|
|
14
|
+
* is also surfaced so an agent that wants the raw budget snapshot
|
|
15
|
+
* can read it without doing the math.
|
|
16
|
+
*/
|
|
17
|
+
import { z } from 'zod';
|
|
18
|
+
import { ensureSubcommand } from '../types.js';
|
|
19
|
+
import { emitSuccess } from '../emit.js';
|
|
20
|
+
import { resolveClient } from '../../api/resolve-client.js';
|
|
21
|
+
import { ApiError } from '../../utils/errors.js';
|
|
22
|
+
export const accountComplexityOutputSchema = z
|
|
23
|
+
.object({
|
|
24
|
+
before: z.number().int().nonnegative(),
|
|
25
|
+
used: z.number().int().nonnegative(),
|
|
26
|
+
remaining: z.number().int().nonnegative(),
|
|
27
|
+
reset_in_seconds: z.number().int().nonnegative(),
|
|
28
|
+
})
|
|
29
|
+
.strict();
|
|
30
|
+
const inputSchema = z.object({}).strict();
|
|
31
|
+
export const accountComplexityCommand = {
|
|
32
|
+
name: 'account.complexity',
|
|
33
|
+
summary: 'Show the current Monday complexity budget',
|
|
34
|
+
examples: [
|
|
35
|
+
'monday account complexity',
|
|
36
|
+
'monday account complexity --json',
|
|
37
|
+
],
|
|
38
|
+
idempotent: true,
|
|
39
|
+
inputSchema,
|
|
40
|
+
outputSchema: accountComplexityOutputSchema,
|
|
41
|
+
attach: (program, ctx) => {
|
|
42
|
+
const noun = ensureSubcommand(program, 'account', 'Account commands');
|
|
43
|
+
noun
|
|
44
|
+
.command('complexity')
|
|
45
|
+
.description(accountComplexityCommand.summary)
|
|
46
|
+
.addHelpText('after', ['', 'Examples:', ...accountComplexityCommand.examples.map((e) => ` ${e}`), ''].join('\n'))
|
|
47
|
+
.action(async (opts) => {
|
|
48
|
+
accountComplexityCommand.inputSchema.parse(opts);
|
|
49
|
+
const { client, toEmit } = resolveClient(ctx, program.opts());
|
|
50
|
+
const result = await client.complexityProbe();
|
|
51
|
+
const c = result.data.complexity;
|
|
52
|
+
if (c === null) {
|
|
53
|
+
throw new ApiError('internal_error', 'Monday returned no complexity block on the probe query');
|
|
54
|
+
}
|
|
55
|
+
emitSuccess({
|
|
56
|
+
ctx,
|
|
57
|
+
data: {
|
|
58
|
+
before: c.before,
|
|
59
|
+
used: c.query,
|
|
60
|
+
remaining: c.after,
|
|
61
|
+
reset_in_seconds: c.reset_in_x_seconds,
|
|
62
|
+
},
|
|
63
|
+
schema: accountComplexityCommand.outputSchema,
|
|
64
|
+
programOpts: program.opts(),
|
|
65
|
+
...toEmit(result),
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
//# sourceMappingURL=complexity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"complexity.js","sourceRoot":"","sources":["../../../src/commands/account/complexity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAsB,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC;KAC3C,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IACtC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IACpC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IACzC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;CACjD,CAAC;KACD,MAAM,EAAE,CAAC;AAIZ,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AAE1C,MAAM,CAAC,MAAM,wBAAwB,GAGjC;IACF,IAAI,EAAE,oBAAoB;IAC1B,OAAO,EAAE,2CAA2C;IACpD,QAAQ,EAAE;QACR,2BAA2B;QAC3B,kCAAkC;KACnC;IACD,UAAU,EAAE,IAAI;IAChB,WAAW;IACX,YAAY,EAAE,6BAA6B;IAC3C,MAAM,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;QACvB,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC;QACtE,IAAI;aACD,OAAO,CAAC,YAAY,CAAC;aACrB,WAAW,CAAC,wBAAwB,CAAC,OAAO,CAAC;aAC7C,WAAW,CACV,OAAO,EACP,CAAC,EAAE,EAAE,WAAW,EAAE,GAAG,wBAAwB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAC5F;aACA,MAAM,CAAC,KAAK,EAAE,IAAa,EAAE,EAAE;YAC9B,wBAAwB,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACjD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,eAAe,EAAE,CAAC;YAC9C,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YACjC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;gBACf,MAAM,IAAI,QAAQ,CAChB,gBAAgB,EAChB,wDAAwD,CACzD,CAAC;YACJ,CAAC;YACD,WAAW,CAAC;gBACV,GAAG;gBACH,IAAI,EAAE;oBACJ,MAAM,EAAE,CAAC,CAAC,MAAM;oBAChB,IAAI,EAAE,CAAC,CAAC,KAAK;oBACb,SAAS,EAAE,CAAC,CAAC,KAAK;oBAClB,gBAAgB,EAAE,CAAC,CAAC,kBAAkB;iBACvC;gBACD,MAAM,EAAE,wBAAwB,CAAC,YAAY;gBAC7C,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE;gBAC3B,GAAG,MAAM,CAAC,MAAM,CAAC;aAClB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;CACF,CAAC"}
|