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,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSON renderer (`cli-design.md` §3.1, §6).
|
|
3
|
+
*
|
|
4
|
+
* Pretty-prints with 2-space indent, trailing newline. Indentation
|
|
5
|
+
* keeps casual `cat`'d output readable; `jq` and other consumers
|
|
6
|
+
* tolerate whitespace fine. JSON output **never truncates** — that's
|
|
7
|
+
* the whole point of the format-vs-presentation split (§3.2).
|
|
8
|
+
*/
|
|
9
|
+
export const renderJson = (envelope, stream) => {
|
|
10
|
+
stream.write(`${JSON.stringify(envelope, null, 2)}\n`);
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.js","sourceRoot":"","sources":["../../../src/utils/output/json.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,QAAiB,EACjB,MAA6B,EACvB,EAAE;IACR,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACzD,CAAC,CAAC"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import type { Meta, Warning } from './envelope.js';
|
|
2
|
+
/**
|
|
3
|
+
* NDJSON renderer for collections (`cli-design.md` §6.3).
|
|
4
|
+
*
|
|
5
|
+
* Streaming-friendly shape: one resource per line, no envelope
|
|
6
|
+
* wrapping. Final line is a `{"_meta": ...}` trailer carrying the
|
|
7
|
+
* pagination state and source so agents can pin behaviour without
|
|
8
|
+
* a second request.
|
|
9
|
+
*
|
|
10
|
+
* §6.3 fixes the trailer shape exactly: `{"_meta":{...}}` — one
|
|
11
|
+
* key, one object, nothing else. NDJSON has no envelope, so it has
|
|
12
|
+
* no `warnings` array; surfacing them out-of-band would mean a
|
|
13
|
+
* consumer keeps reading after the trailer to look for them, which
|
|
14
|
+
* defeats "trailer = stream-end sentinel". If a future milestone
|
|
15
|
+
* needs to deliver warnings in the streaming path, the agreed home
|
|
16
|
+
* is `_meta.warnings` (additive, contract-clean) — extend the
|
|
17
|
+
* `Meta` type, don't add a sibling key here.
|
|
18
|
+
*
|
|
19
|
+
* NDJSON **never truncates**: streaming exists so agents can start
|
|
20
|
+
* processing without waiting for the whole walk, not so the
|
|
21
|
+
* presentation layer can drop bytes.
|
|
22
|
+
*
|
|
23
|
+
* Two surfaces:
|
|
24
|
+
*
|
|
25
|
+
* - `renderNdjson` (collect-then-emit) — used when the caller
|
|
26
|
+
* already has the full data array. Single function, no streaming
|
|
27
|
+
* semantics.
|
|
28
|
+
*
|
|
29
|
+
* - `startNdjsonStream` (R52, M18 lift) — used when the caller is
|
|
30
|
+
* walking a paginated source (`paginate.onItem` /
|
|
31
|
+
* `walkPages.onItem`). Returns a `{ onItem, writeTrailer }`
|
|
32
|
+
* handle so the caller can emit per-item-arrival and write the
|
|
33
|
+
* trailer after the walk completes. Three consumers: `item list`
|
|
34
|
+
* (M7), `item search` (M18), `update list` (M18). Was previously
|
|
35
|
+
* a private helper in `src/commands/item/list.ts`; lifted at the
|
|
36
|
+
* 3-consumer trigger.
|
|
37
|
+
*/
|
|
38
|
+
export interface NdjsonInput {
|
|
39
|
+
readonly data: readonly unknown[];
|
|
40
|
+
readonly meta: Meta;
|
|
41
|
+
/**
|
|
42
|
+
* Warnings are accepted on the input for symmetry with other
|
|
43
|
+
* renderers but are NOT written to the trailer — see the comment
|
|
44
|
+
* above. They're consumed by the table/JSON path on TTY mode and
|
|
45
|
+
* may be surfaced via `meta.warnings` in a later milestone.
|
|
46
|
+
*/
|
|
47
|
+
readonly warnings: readonly Warning[];
|
|
48
|
+
}
|
|
49
|
+
export declare const renderNdjson: (input: NdjsonInput, stream: NodeJS.WritableStream) => void;
|
|
50
|
+
/**
|
|
51
|
+
* Inputs to `startNdjsonStream`. Three fields — well below the
|
|
52
|
+
* >4-parameter heuristic that deferred R44 / R49 / R50:
|
|
53
|
+
*
|
|
54
|
+
* - `stream` — the writable stream items + trailer write to
|
|
55
|
+
* (typically `ctx.stdout`).
|
|
56
|
+
* - `secrets` — token bytes the redactor scrubs from every emitted
|
|
57
|
+
* line (per `.claude/rules/security.md` "value-scanning filter").
|
|
58
|
+
* Caller passes `collectSecrets(ctx.env)`.
|
|
59
|
+
* - `project` — per-item projection callback. Decouples the helper
|
|
60
|
+
* from per-noun output shape: item list/search projects raw
|
|
61
|
+
* Monday rows through `projectFromRaw`; update list runs items
|
|
62
|
+
* through `normaliseReplies` + the per-update zod parse.
|
|
63
|
+
*
|
|
64
|
+
* The trailer-side `Meta` is built by the caller (`buildMeta(...)`)
|
|
65
|
+
* and passed into `writeTrailer`. This keeps the per-noun trailer-
|
|
66
|
+
* shape variance at the call site — item list/search carries
|
|
67
|
+
* `meta.columns`, `update list` does not — without parameterising
|
|
68
|
+
* a `meta` builder inside the helper.
|
|
69
|
+
*/
|
|
70
|
+
export interface NdjsonStreamInputs<T> {
|
|
71
|
+
readonly stream: NodeJS.WritableStream;
|
|
72
|
+
readonly secrets: readonly string[];
|
|
73
|
+
readonly project: (item: T) => unknown;
|
|
74
|
+
}
|
|
75
|
+
export interface NdjsonStreamHandle<T> {
|
|
76
|
+
/**
|
|
77
|
+
* Per-item callback for the stream. Returns a `Promise<void>`
|
|
78
|
+
* that resolves once the bytes are flushed (or, when
|
|
79
|
+
* `stream.write` returns `false`, once the stream's `'drain'`
|
|
80
|
+
* event fires). Threaded through `paginate.onItem` /
|
|
81
|
+
* `walkPages.onItem` so a slow downstream consumer (a piped
|
|
82
|
+
* `jq`, an open-ended `tee`) backpressures the cursor walk
|
|
83
|
+
* for real — not just in spirit. Without the await on `'drain'`,
|
|
84
|
+
* a fast walker against a slow stdout would buffer items in
|
|
85
|
+
* Node's internal write queue and the "backpressure" comment in
|
|
86
|
+
* `walk-pages.ts` / `pagination.ts` would be aspirational.
|
|
87
|
+
*/
|
|
88
|
+
readonly onItem: (item: T) => Promise<void>;
|
|
89
|
+
readonly writeTrailer: (meta: Meta) => void;
|
|
90
|
+
}
|
|
91
|
+
export declare const startNdjsonStream: <T>(inputs: NdjsonStreamInputs<T>) => NdjsonStreamHandle<T>;
|
|
92
|
+
//# sourceMappingURL=ndjson.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ndjson.d.ts","sourceRoot":"","sources":["../../../src/utils/output/ndjson.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,SAAS,OAAO,EAAE,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAC;CACvC;AAED,eAAO,MAAM,YAAY,GACvB,OAAO,WAAW,EAClB,QAAQ,MAAM,CAAC,cAAc,KAC5B,IAKF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC;CACxC;AAED,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,QAAQ,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;CAC7C;AAgBD,eAAO,MAAM,iBAAiB,GAAI,CAAC,EACjC,QAAQ,kBAAkB,CAAC,CAAC,CAAC,KAC5B,kBAAkB,CAAC,CAAC,CAatB,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { redact } from '../redact.js';
|
|
2
|
+
export const renderNdjson = (input, stream) => {
|
|
3
|
+
for (const resource of input.data) {
|
|
4
|
+
stream.write(`${JSON.stringify(resource)}\n`);
|
|
5
|
+
}
|
|
6
|
+
stream.write(`${JSON.stringify({ _meta: input.meta })}\n`);
|
|
7
|
+
};
|
|
8
|
+
const writeAndDrain = async (stream, bytes) => {
|
|
9
|
+
if (stream.write(bytes))
|
|
10
|
+
return;
|
|
11
|
+
// High-water mark hit; wait for the next 'drain' before resolving.
|
|
12
|
+
// The walker awaits this, so the next item waits with us.
|
|
13
|
+
await new Promise((resolve) => {
|
|
14
|
+
stream.once('drain', () => {
|
|
15
|
+
resolve();
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
export const startNdjsonStream = (inputs) => {
|
|
20
|
+
const { stream, secrets, project } = inputs;
|
|
21
|
+
return {
|
|
22
|
+
onItem: async (item) => {
|
|
23
|
+
const projected = project(item);
|
|
24
|
+
const redacted = redact(projected, { secrets });
|
|
25
|
+
await writeAndDrain(stream, `${JSON.stringify(redacted)}\n`);
|
|
26
|
+
},
|
|
27
|
+
writeTrailer: (meta) => {
|
|
28
|
+
const trailer = redact({ _meta: meta }, { secrets });
|
|
29
|
+
stream.write(`${JSON.stringify(trailer)}\n`);
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=ndjson.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ndjson.js","sourceRoot":"","sources":["../../../src/utils/output/ndjson.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAkDtC,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,KAAkB,EAClB,MAA6B,EACvB,EAAE;IACR,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QAClC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC;AAC7D,CAAC,CAAC;AA6CF,MAAM,aAAa,GAAG,KAAK,EACzB,MAA6B,EAC7B,KAAa,EACE,EAAE;IACjB,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;QAAE,OAAO;IAChC,mEAAmE;IACnE,0DAA0D;IAC1D,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAClC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;YACxB,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,MAA6B,EACN,EAAE;IACzB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAC5C,OAAO;QACL,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACrB,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAChC,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAChD,MAAM,aAAa,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/D,CAAC;QACD,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE;YACrB,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YACrD,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/C,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Output-format selection (`cli-design.md` §3.1 #2, §4.4).
|
|
3
|
+
*
|
|
4
|
+
* Resolution priority (first match wins):
|
|
5
|
+
* 1. `--json` / `--table` shorthand flags (mutually exclusive).
|
|
6
|
+
* 2. `--output <fmt>` explicit choice.
|
|
7
|
+
* 3. `MONDAY_OUTPUT` env override (sticky agent contexts).
|
|
8
|
+
* 4. `process.stdout.isTTY` — table when typing in a terminal,
|
|
9
|
+
* JSON when piped or redirected so `monday item list | jq`
|
|
10
|
+
* just works.
|
|
11
|
+
*/
|
|
12
|
+
export declare const OUTPUT_FORMATS: readonly ["json", "table", "text", "ndjson"];
|
|
13
|
+
export type OutputFormat = (typeof OUTPUT_FORMATS)[number];
|
|
14
|
+
export interface SelectOutputInput {
|
|
15
|
+
readonly json?: boolean;
|
|
16
|
+
readonly table?: boolean;
|
|
17
|
+
readonly output?: string;
|
|
18
|
+
readonly env?: NodeJS.ProcessEnv;
|
|
19
|
+
readonly isTTY: boolean;
|
|
20
|
+
}
|
|
21
|
+
export declare const selectOutput: (input: SelectOutputInput) => OutputFormat;
|
|
22
|
+
//# sourceMappingURL=select.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../src/utils/output/select.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc,8CAA+C,CAAC;AAC3E,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAKD,eAAO,MAAM,YAAY,GAAI,OAAO,iBAAiB,KAAG,YA6CvD,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { UsageError } from '../errors.js';
|
|
2
|
+
/**
|
|
3
|
+
* Output-format selection (`cli-design.md` §3.1 #2, §4.4).
|
|
4
|
+
*
|
|
5
|
+
* Resolution priority (first match wins):
|
|
6
|
+
* 1. `--json` / `--table` shorthand flags (mutually exclusive).
|
|
7
|
+
* 2. `--output <fmt>` explicit choice.
|
|
8
|
+
* 3. `MONDAY_OUTPUT` env override (sticky agent contexts).
|
|
9
|
+
* 4. `process.stdout.isTTY` — table when typing in a terminal,
|
|
10
|
+
* JSON when piped or redirected so `monday item list | jq`
|
|
11
|
+
* just works.
|
|
12
|
+
*/
|
|
13
|
+
export const OUTPUT_FORMATS = ['json', 'table', 'text', 'ndjson'];
|
|
14
|
+
const isOutputFormat = (value) => OUTPUT_FORMATS.includes(value);
|
|
15
|
+
export const selectOutput = (input) => {
|
|
16
|
+
const { json = false, table = false, output, env, isTTY } = input;
|
|
17
|
+
if (json && table) {
|
|
18
|
+
throw new UsageError('--json and --table are mutually exclusive');
|
|
19
|
+
}
|
|
20
|
+
if (output !== undefined && !isOutputFormat(output)) {
|
|
21
|
+
throw new UsageError(`--output must be one of ${OUTPUT_FORMATS.join(', ')} (got "${output}")`);
|
|
22
|
+
}
|
|
23
|
+
if (json && output !== undefined && output !== 'json') {
|
|
24
|
+
throw new UsageError(`--json conflicts with --output ${output} (use one or the other)`);
|
|
25
|
+
}
|
|
26
|
+
if (table && output !== undefined && output !== 'table') {
|
|
27
|
+
throw new UsageError(`--table conflicts with --output ${output} (use one or the other)`);
|
|
28
|
+
}
|
|
29
|
+
if (json) {
|
|
30
|
+
return 'json';
|
|
31
|
+
}
|
|
32
|
+
if (table) {
|
|
33
|
+
return 'table';
|
|
34
|
+
}
|
|
35
|
+
if (output !== undefined) {
|
|
36
|
+
return output;
|
|
37
|
+
}
|
|
38
|
+
const fromEnv = env?.MONDAY_OUTPUT;
|
|
39
|
+
if (fromEnv !== undefined && fromEnv !== '') {
|
|
40
|
+
if (!isOutputFormat(fromEnv)) {
|
|
41
|
+
throw new UsageError(`MONDAY_OUTPUT must be one of ${OUTPUT_FORMATS.join(', ')} (got "${fromEnv}")`);
|
|
42
|
+
}
|
|
43
|
+
return fromEnv;
|
|
44
|
+
}
|
|
45
|
+
return isTTY ? 'table' : 'json';
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=select.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select.js","sourceRoot":"","sources":["../../../src/utils/output/select.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAU,CAAC;AAW3E,MAAM,cAAc,GAAG,CAAC,KAAa,EAAyB,EAAE,CAC7D,cAAoC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAExD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAwB,EAAgB,EAAE;IACrE,MAAM,EAAE,IAAI,GAAG,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IAElE,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;QAClB,MAAM,IAAI,UAAU,CAAC,2CAA2C,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,UAAU,CAClB,2BAA2B,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,MAAM,IAAI,CACzE,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtD,MAAM,IAAI,UAAU,CAClB,kCAAkC,MAAM,yBAAyB,CAClE,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QACxD,MAAM,IAAI,UAAU,CAClB,mCAAmC,MAAM,yBAAyB,CACnE,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,EAAE,aAAa,CAAC;IACnC,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;QAC5C,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,UAAU,CAClB,gCAAgC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,OAAO,IAAI,CAC/E,CAAC;QACJ,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;AAClC,CAAC,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export declare const COLUMN_FLOOR = 12;
|
|
2
|
+
export interface TableOptions {
|
|
3
|
+
/** Disable truncation (the `--full` flag). */
|
|
4
|
+
readonly full?: boolean;
|
|
5
|
+
/** Target terminal width. Falls back to 80 when not provided. */
|
|
6
|
+
readonly width?: number;
|
|
7
|
+
/**
|
|
8
|
+
* Restrict to these columns, by key. Order is preserved. Unknown
|
|
9
|
+
* keys are silently dropped — the command-layer caller validated
|
|
10
|
+
* already, and a truncated header is more useful than an error here.
|
|
11
|
+
*/
|
|
12
|
+
readonly columns?: readonly string[];
|
|
13
|
+
}
|
|
14
|
+
export interface SingleResourceTableInput {
|
|
15
|
+
readonly kind: 'single';
|
|
16
|
+
readonly data: Readonly<Record<string, unknown>>;
|
|
17
|
+
readonly options?: TableOptions;
|
|
18
|
+
}
|
|
19
|
+
export interface CollectionTableInput {
|
|
20
|
+
readonly kind: 'collection';
|
|
21
|
+
readonly data: readonly Readonly<Record<string, unknown>>[];
|
|
22
|
+
readonly options?: TableOptions;
|
|
23
|
+
}
|
|
24
|
+
export type TableInput = SingleResourceTableInput | CollectionTableInput;
|
|
25
|
+
/**
|
|
26
|
+
* Truncates `value` to fit within `width` characters. The width
|
|
27
|
+
* floor (per `cli-design.md` §3.2) is honoured by callers — this
|
|
28
|
+
* function only does the cut.
|
|
29
|
+
*/
|
|
30
|
+
export declare const truncate: (value: string, width: number) => string;
|
|
31
|
+
export declare const renderTable: (input: TableInput, stream: NodeJS.WritableStream) => void;
|
|
32
|
+
//# sourceMappingURL=table.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../src/utils/output/table.ts"],"names":[],"mappings":"AAwBA,eAAO,MAAM,YAAY,KAAK,CAAC;AAI/B,MAAM,WAAW,YAAY;IAC3B,8CAA8C;IAC9C,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,iEAAiE;IACjE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACjD,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC;CACjC;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;IAC5D,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC;CACjC;AAED,MAAM,MAAM,UAAU,GAAG,wBAAwB,GAAG,oBAAoB,CAAC;AAkBzE;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,MAAM,EAAE,OAAO,MAAM,KAAG,MAQvD,CAAC;AAiGF,eAAO,MAAM,WAAW,GACtB,OAAO,UAAU,EACjB,QAAQ,MAAM,CAAC,cAAc,KAC5B,IAGF,CAAC"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import Table from 'cli-table3';
|
|
2
|
+
/**
|
|
3
|
+
* Table renderer for TTY output (`cli-design.md` §3.2).
|
|
4
|
+
*
|
|
5
|
+
* Two layouts:
|
|
6
|
+
* - **Single resource** — key/value rows (one row per top-level
|
|
7
|
+
* field of `data`).
|
|
8
|
+
* - **Collection** — N-column table; columns are the union of keys
|
|
9
|
+
* across rows, in first-seen order; header row is the column names.
|
|
10
|
+
*
|
|
11
|
+
* Truncation is honoured here and only here — JSON / NDJSON callers
|
|
12
|
+
* never reach this code, so the §3.2 invariant "truncation never
|
|
13
|
+
* affects JSON output" is enforced by construction.
|
|
14
|
+
*
|
|
15
|
+
* Truncation rules (matching the design):
|
|
16
|
+
* - Per-column floor of 12 chars before the ellipsis kicks in.
|
|
17
|
+
* - Trailing ellipsis is a single `…` character (U+2026).
|
|
18
|
+
* - `--full` disables truncation.
|
|
19
|
+
* - `--width <N>` forces the target terminal width.
|
|
20
|
+
* - `--columns <c1,c2,...>` restricts the visible column set.
|
|
21
|
+
*/
|
|
22
|
+
const ELLIPSIS = '…';
|
|
23
|
+
export const COLUMN_FLOOR = 12;
|
|
24
|
+
const FALLBACK_WIDTH = 80;
|
|
25
|
+
const DEFAULT_PADDING = 2;
|
|
26
|
+
const formatCell = (value) => {
|
|
27
|
+
if (value === null) {
|
|
28
|
+
return 'null';
|
|
29
|
+
}
|
|
30
|
+
if (value === undefined) {
|
|
31
|
+
return '';
|
|
32
|
+
}
|
|
33
|
+
if (typeof value === 'string') {
|
|
34
|
+
return value;
|
|
35
|
+
}
|
|
36
|
+
if (typeof value === 'number' || typeof value === 'boolean') {
|
|
37
|
+
return String(value);
|
|
38
|
+
}
|
|
39
|
+
return JSON.stringify(value);
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Truncates `value` to fit within `width` characters. The width
|
|
43
|
+
* floor (per `cli-design.md` §3.2) is honoured by callers — this
|
|
44
|
+
* function only does the cut.
|
|
45
|
+
*/
|
|
46
|
+
export const truncate = (value, width) => {
|
|
47
|
+
if (value.length <= width) {
|
|
48
|
+
return value;
|
|
49
|
+
}
|
|
50
|
+
if (width <= 1) {
|
|
51
|
+
return ELLIPSIS;
|
|
52
|
+
}
|
|
53
|
+
return value.slice(0, width - 1) + ELLIPSIS;
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Splits the available horizontal budget across `columnCount`
|
|
57
|
+
* columns, each at least `COLUMN_FLOOR` wide. Returns the per-column
|
|
58
|
+
* width (in characters of cell content). cli-table3 adds borders +
|
|
59
|
+
* padding around what we hand it; account for that up front so the
|
|
60
|
+
* rendered table actually fits.
|
|
61
|
+
*/
|
|
62
|
+
const computeColumnWidth = (columnCount, width) => {
|
|
63
|
+
// Each cell carries 2 padding chars + 1 border char; an extra +1
|
|
64
|
+
// border closes off the right edge.
|
|
65
|
+
const overhead = columnCount * (DEFAULT_PADDING + 1) + 1;
|
|
66
|
+
const usable = Math.max(width - overhead, columnCount * COLUMN_FLOOR);
|
|
67
|
+
return Math.max(Math.floor(usable / columnCount), COLUMN_FLOOR);
|
|
68
|
+
};
|
|
69
|
+
const filterAndOrderKeys = (keys, selected) => {
|
|
70
|
+
if (selected === undefined) {
|
|
71
|
+
return keys;
|
|
72
|
+
}
|
|
73
|
+
const present = new Set(keys);
|
|
74
|
+
return selected.filter((k) => present.has(k));
|
|
75
|
+
};
|
|
76
|
+
const collectKeysInOrder = (rows) => {
|
|
77
|
+
const seen = new Set();
|
|
78
|
+
const ordered = [];
|
|
79
|
+
for (const row of rows) {
|
|
80
|
+
for (const key of Object.keys(row)) {
|
|
81
|
+
if (!seen.has(key)) {
|
|
82
|
+
seen.add(key);
|
|
83
|
+
ordered.push(key);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return ordered;
|
|
88
|
+
};
|
|
89
|
+
const renderSingle = (input) => {
|
|
90
|
+
const { data, options = {} } = input;
|
|
91
|
+
const { full = false, width = FALLBACK_WIDTH, columns } = options;
|
|
92
|
+
const allKeys = Object.keys(data);
|
|
93
|
+
const keys = filterAndOrderKeys(allKeys, columns);
|
|
94
|
+
const valueColWidth = full ? Number.POSITIVE_INFINITY : computeColumnWidth(2, width);
|
|
95
|
+
const table = new Table({
|
|
96
|
+
head: ['field', 'value'],
|
|
97
|
+
});
|
|
98
|
+
for (const key of keys) {
|
|
99
|
+
const cell = formatCell(data[key]);
|
|
100
|
+
table.push([
|
|
101
|
+
full ? key : truncate(key, valueColWidth),
|
|
102
|
+
full ? cell : truncate(cell, valueColWidth),
|
|
103
|
+
]);
|
|
104
|
+
}
|
|
105
|
+
return table.toString();
|
|
106
|
+
};
|
|
107
|
+
const renderCollection = (input) => {
|
|
108
|
+
const { data, options = {} } = input;
|
|
109
|
+
const { full = false, width = FALLBACK_WIDTH, columns } = options;
|
|
110
|
+
const allKeys = collectKeysInOrder(data);
|
|
111
|
+
const keys = filterAndOrderKeys(allKeys, columns);
|
|
112
|
+
if (keys.length === 0) {
|
|
113
|
+
// Empty collection still emits a table-shaped sentinel; an empty
|
|
114
|
+
// string would let the renderer-selection bug ride silently.
|
|
115
|
+
return new Table({ head: [] }).toString();
|
|
116
|
+
}
|
|
117
|
+
const colWidth = full ? Number.POSITIVE_INFINITY : computeColumnWidth(keys.length, width);
|
|
118
|
+
const table = new Table({
|
|
119
|
+
head: full ? [...keys] : keys.map((k) => truncate(k, colWidth)),
|
|
120
|
+
});
|
|
121
|
+
for (const row of data) {
|
|
122
|
+
table.push(keys.map((key) => {
|
|
123
|
+
const formatted = formatCell(row[key]);
|
|
124
|
+
return full ? formatted : truncate(formatted, colWidth);
|
|
125
|
+
}));
|
|
126
|
+
}
|
|
127
|
+
return table.toString();
|
|
128
|
+
};
|
|
129
|
+
export const renderTable = (input, stream) => {
|
|
130
|
+
const text = input.kind === 'single' ? renderSingle(input) : renderCollection(input);
|
|
131
|
+
stream.write(`${text}\n`);
|
|
132
|
+
};
|
|
133
|
+
//# sourceMappingURL=table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.js","sourceRoot":"","sources":["../../../src/utils/output/table.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../src/utils/output/text.ts"],"names":[],"mappings":"AA2BA,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAClD;AAED,eAAO,MAAM,UAAU,GACrB,OAAO,SAAS,EAChB,QAAQ,MAAM,CAAC,cAAc,KAC5B,IAIF,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Text renderer for single-resource commands (`cli-design.md` §3.2,
|
|
3
|
+
* §4 DoD #8).
|
|
4
|
+
*
|
|
5
|
+
* Flat `key: value` dump — one line per top-level field. Nested
|
|
6
|
+
* objects (column values, etc.) get JSON-stringified inline since
|
|
7
|
+
* a deeper indent-tree usually hurts more than helps for typical
|
|
8
|
+
* `monday <noun> get` callers reading in a terminal. Tables are the
|
|
9
|
+
* shape humans want for collections; text is the fallback for
|
|
10
|
+
* single-resource calls when JSON looks too noisy.
|
|
11
|
+
*/
|
|
12
|
+
const formatValue = (value) => {
|
|
13
|
+
if (value === null) {
|
|
14
|
+
return 'null';
|
|
15
|
+
}
|
|
16
|
+
if (value === undefined) {
|
|
17
|
+
return '';
|
|
18
|
+
}
|
|
19
|
+
if (typeof value === 'string') {
|
|
20
|
+
return value;
|
|
21
|
+
}
|
|
22
|
+
if (typeof value === 'number' || typeof value === 'boolean') {
|
|
23
|
+
return String(value);
|
|
24
|
+
}
|
|
25
|
+
return JSON.stringify(value);
|
|
26
|
+
};
|
|
27
|
+
export const renderText = (input, stream) => {
|
|
28
|
+
for (const [key, value] of Object.entries(input.data)) {
|
|
29
|
+
stream.write(`${key}: ${formatValue(value)}\n`);
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=text.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text.js","sourceRoot":"","sources":["../../../src/utils/output/text.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,WAAW,GAAG,CAAC,KAAc,EAAU,EAAE;IAC7C,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC5D,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC,CAAC;AAMF,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,KAAgB,EAChB,MAA6B,EACvB,EAAE;IACR,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACtD,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parse-boundary helper (R18).
|
|
3
|
+
*
|
|
4
|
+
* Per `.claude/rules/validation.md` "Never bubble raw ZodError out of
|
|
5
|
+
* a parse boundary": a raw `ZodError` reaching the runner's catch-all
|
|
6
|
+
* does map to `internal_error` (right semantic code) but loses the
|
|
7
|
+
* `details.issues` array — agents debugging a malformed Monday
|
|
8
|
+
* response see only the bare message. Wrapping every parse boundary
|
|
9
|
+
* with `safeParse` + `ApiError(internal_error)` carrying
|
|
10
|
+
* `details.issues` keeps the failing field path visible in the
|
|
11
|
+
* envelope.
|
|
12
|
+
*
|
|
13
|
+
* R17 fixed `userByEmail`'s parse boundary; the M5a-closing dry-run
|
|
14
|
+
* commit extended the same pattern to its `rawItemSchema.parse`
|
|
15
|
+
* boundary. R18 sweeps the remaining ZodError surfaces in:
|
|
16
|
+
* - `api/board-metadata.ts` (live-fetch `responseSchema.parse` +
|
|
17
|
+
* per-board `boardMetadataSchema.parse`);
|
|
18
|
+
* - `api/item-helpers.ts` (the new `parseRawItem` helper that the
|
|
19
|
+
* four item commands consume);
|
|
20
|
+
* - `commands/emit.ts` (`schema.parse` drift catch).
|
|
21
|
+
*
|
|
22
|
+
* Cache-read parse callbacks (`board-metadata.ts parseCacheEntry`,
|
|
23
|
+
* `resolvers.ts readDirectoryCache`) intentionally swallow ZodError
|
|
24
|
+
* via the surrounding cache-miss try/catch — a corrupt cache file
|
|
25
|
+
* is treated as a miss and a live fetch follows. Wrapping there
|
|
26
|
+
* would not change behaviour; left as-is to keep the surface narrow.
|
|
27
|
+
*/
|
|
28
|
+
import type { z } from 'zod';
|
|
29
|
+
export interface WrapZodErrorOptions {
|
|
30
|
+
/**
|
|
31
|
+
* Free-form context — populates the error message and lands on
|
|
32
|
+
* `details` so agents see the failing operation. Keep short; the
|
|
33
|
+
* `issues` array carries the per-field detail.
|
|
34
|
+
*/
|
|
35
|
+
readonly context: string;
|
|
36
|
+
/** Optional `details` extras merged alongside `issues`. */
|
|
37
|
+
readonly details?: Readonly<Record<string, unknown>>;
|
|
38
|
+
/** Override hint text. Default points at "Monday response shape drift / schema mismatch". */
|
|
39
|
+
readonly hint?: string;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Returns the parsed value when `result.success` is true; otherwise
|
|
43
|
+
* throws a typed `ApiError(internal_error)` carrying
|
|
44
|
+
* `details.issues` (path + message + zod code per failing field).
|
|
45
|
+
*
|
|
46
|
+
* Use at every parse boundary that consumes data from outside the
|
|
47
|
+
* compiled bundle (live API responses, freshly-projected types
|
|
48
|
+
* returned from action bodies, on-disk JSON). Cache parses
|
|
49
|
+
* deliberately don't use this — they fall through to a live fetch
|
|
50
|
+
* on parse failure rather than surfacing the drift.
|
|
51
|
+
*/
|
|
52
|
+
export declare const unwrapOrThrow: <T>(result: z.ZodSafeParseResult<T>, options: WrapZodErrorOptions) => T;
|
|
53
|
+
//# sourceMappingURL=parse-boundary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-boundary.d.ts","sourceRoot":"","sources":["../../src/utils/parse-boundary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,2DAA2D;IAC3D,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACrD,6FAA6F;IAC7F,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,EAC7B,QAAQ,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAC/B,SAAS,mBAAmB,KAC3B,CAyBF,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parse-boundary helper (R18).
|
|
3
|
+
*
|
|
4
|
+
* Per `.claude/rules/validation.md` "Never bubble raw ZodError out of
|
|
5
|
+
* a parse boundary": a raw `ZodError` reaching the runner's catch-all
|
|
6
|
+
* does map to `internal_error` (right semantic code) but loses the
|
|
7
|
+
* `details.issues` array — agents debugging a malformed Monday
|
|
8
|
+
* response see only the bare message. Wrapping every parse boundary
|
|
9
|
+
* with `safeParse` + `ApiError(internal_error)` carrying
|
|
10
|
+
* `details.issues` keeps the failing field path visible in the
|
|
11
|
+
* envelope.
|
|
12
|
+
*
|
|
13
|
+
* R17 fixed `userByEmail`'s parse boundary; the M5a-closing dry-run
|
|
14
|
+
* commit extended the same pattern to its `rawItemSchema.parse`
|
|
15
|
+
* boundary. R18 sweeps the remaining ZodError surfaces in:
|
|
16
|
+
* - `api/board-metadata.ts` (live-fetch `responseSchema.parse` +
|
|
17
|
+
* per-board `boardMetadataSchema.parse`);
|
|
18
|
+
* - `api/item-helpers.ts` (the new `parseRawItem` helper that the
|
|
19
|
+
* four item commands consume);
|
|
20
|
+
* - `commands/emit.ts` (`schema.parse` drift catch).
|
|
21
|
+
*
|
|
22
|
+
* Cache-read parse callbacks (`board-metadata.ts parseCacheEntry`,
|
|
23
|
+
* `resolvers.ts readDirectoryCache`) intentionally swallow ZodError
|
|
24
|
+
* via the surrounding cache-miss try/catch — a corrupt cache file
|
|
25
|
+
* is treated as a miss and a live fetch follows. Wrapping there
|
|
26
|
+
* would not change behaviour; left as-is to keep the surface narrow.
|
|
27
|
+
*/
|
|
28
|
+
import { ApiError } from './errors.js';
|
|
29
|
+
/**
|
|
30
|
+
* Returns the parsed value when `result.success` is true; otherwise
|
|
31
|
+
* throws a typed `ApiError(internal_error)` carrying
|
|
32
|
+
* `details.issues` (path + message + zod code per failing field).
|
|
33
|
+
*
|
|
34
|
+
* Use at every parse boundary that consumes data from outside the
|
|
35
|
+
* compiled bundle (live API responses, freshly-projected types
|
|
36
|
+
* returned from action bodies, on-disk JSON). Cache parses
|
|
37
|
+
* deliberately don't use this — they fall through to a live fetch
|
|
38
|
+
* on parse failure rather than surfacing the drift.
|
|
39
|
+
*/
|
|
40
|
+
export const unwrapOrThrow = (result, options) => {
|
|
41
|
+
if (result.success)
|
|
42
|
+
return result.data;
|
|
43
|
+
const issues = result.error.issues.map((i) => ({
|
|
44
|
+
path: i.path.join('.'),
|
|
45
|
+
message: i.message,
|
|
46
|
+
code: i.code,
|
|
47
|
+
}));
|
|
48
|
+
const hint = options.hint ??
|
|
49
|
+
'this is a data-integrity error in Monday\'s response (or a ' +
|
|
50
|
+
'schema drift); verify the response shape and update the ' +
|
|
51
|
+
'schema if Monday\'s contract has changed.';
|
|
52
|
+
throw new ApiError('internal_error', `${options.context} — schema rejected the payload at ` +
|
|
53
|
+
`${String(issues.length)} issue${issues.length === 1 ? '' : 's'}.`, {
|
|
54
|
+
cause: result.error,
|
|
55
|
+
details: {
|
|
56
|
+
...(options.details ?? {}),
|
|
57
|
+
issues,
|
|
58
|
+
hint,
|
|
59
|
+
},
|
|
60
|
+
});
|
|
61
|
+
};
|
|
62
|
+
//# sourceMappingURL=parse-boundary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-boundary.js","sourceRoot":"","sources":["../../src/utils/parse-boundary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAgBvC;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,MAA+B,EAC/B,OAA4B,EACzB,EAAE;IACL,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC;IACvC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7C,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QACtB,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,IAAI,EAAE,CAAC,CAAC,IAAI;KACb,CAAC,CAAC,CAAC;IACJ,MAAM,IAAI,GACR,OAAO,CAAC,IAAI;QACZ,6DAA6D;YAC3D,0DAA0D;YAC1D,2CAA2C,CAAC;IAChD,MAAM,IAAI,QAAQ,CAChB,gBAAgB,EAChB,GAAG,OAAO,CAAC,OAAO,oCAAoC;QACpD,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,EACpE;QACE,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,OAAO,EAAE;YACP,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;YAC1B,MAAM;YACN,IAAI;SACL;KACF,CACF,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deep-clone-and-redact helper.
|
|
3
|
+
*
|
|
4
|
+
* The CLI holds a Monday API token with the user's full account
|
|
5
|
+
* permissions; the security rules in `.claude/rules/security.md`
|
|
6
|
+
* forbid that token appearing in *any* emitted byte — log lines,
|
|
7
|
+
* error messages, debug payloads, JSON envelopes. Every output
|
|
8
|
+
* path funnels through this function.
|
|
9
|
+
*
|
|
10
|
+
* Two independent layers (a key-based filter alone is not enough —
|
|
11
|
+
* Codex review §1 caught this gap):
|
|
12
|
+
*
|
|
13
|
+
* - **Key-based filter.** Values under sensitive keys (`apiToken`,
|
|
14
|
+
* `Authorization`, `MONDAY_API_TOKEN`, plus a generic
|
|
15
|
+
* `(token|secret|password|api[-_]?key)` regex) are replaced
|
|
16
|
+
* wholesale.
|
|
17
|
+
* - **Value-scanning filter.** When the caller provides a `secrets`
|
|
18
|
+
* list (typically the literal Monday API token loaded at startup),
|
|
19
|
+
* every string in the tree is scanned and any occurrence of any
|
|
20
|
+
* listed secret is replaced with the placeholder. This catches
|
|
21
|
+
* `Error.message`, `Error.stack`, fetch URLs, debug payloads —
|
|
22
|
+
* anywhere a token could land outside a sensitively-named key.
|
|
23
|
+
*
|
|
24
|
+
* Circular references are tracked via a `WeakSet` and replaced
|
|
25
|
+
* with a `[Circular]` marker — never the original value, never a
|
|
26
|
+
* thrown error that could leak in a stack trace.
|
|
27
|
+
*/
|
|
28
|
+
export interface RedactOptions {
|
|
29
|
+
/** Extra exact-match key names to redact (case-insensitive). */
|
|
30
|
+
readonly extraKeys?: readonly string[];
|
|
31
|
+
/** Additional regex applied to keys (case-insensitive recommended). */
|
|
32
|
+
readonly extraPattern?: RegExp;
|
|
33
|
+
/** Marker substituted in place of the redacted value. */
|
|
34
|
+
readonly placeholder?: string;
|
|
35
|
+
/**
|
|
36
|
+
* Literal secret values to scrub from any string anywhere in the
|
|
37
|
+
* tree. Typically the loaded Monday API token; the runner threads
|
|
38
|
+
* it through so a token landing in `Error.message` or a fetch URL
|
|
39
|
+
* still gets redacted before emit. Entries shorter than 8 chars
|
|
40
|
+
* are ignored (false-positive risk).
|
|
41
|
+
*/
|
|
42
|
+
readonly secrets?: readonly string[];
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Deep-clone `value`, replacing values under sensitive keys with
|
|
46
|
+
* `[REDACTED]` and any literal secrets in `options.secrets` with
|
|
47
|
+
* the same placeholder. The input is never mutated. Circular
|
|
48
|
+
* references resolve to `[Circular]`. Returns `unknown` because the
|
|
49
|
+
* redaction step erases type information about which keys were
|
|
50
|
+
* present — callers cast at the consumption point if they know the
|
|
51
|
+
* shape.
|
|
52
|
+
*/
|
|
53
|
+
export declare const redact: (value: unknown, options?: RedactOptions) => unknown;
|
|
54
|
+
//# sourceMappingURL=redact.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redact.d.ts","sourceRoot":"","sources":["../../src/utils/redact.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AA+BH,MAAM,WAAW,aAAa;IAC5B,gEAAgE;IAChE,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,uEAAuE;IACvE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,yDAAyD;IACzD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AA0GD;;;;;;;;GAQG;AACH,eAAO,MAAM,MAAM,GAAI,OAAO,OAAO,EAAE,UAAS,aAAkB,KAAG,OASpE,CAAC"}
|