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,281 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `monday board duplicate <bid> [--name <n>] [--workspace <wid>]
|
|
3
|
+
* [--with-updates] [--dry-run]` — duplicate a board
|
|
4
|
+
* (`cli-design.md` §4.3 line 727, `v0.2-plan.md` §3 M15).
|
|
5
|
+
*
|
|
6
|
+
* **Wire shape.** Single round-trip via `duplicate_board(board_id,
|
|
7
|
+
* duplicate_type: DuplicateBoardType!, board_name?, workspace_id?,
|
|
8
|
+
* folder_id?, keep_subscribers?)`. Returns the M15-unique
|
|
9
|
+
* `BoardDuplication { board, is_async }` SDK type — the only M15
|
|
10
|
+
* verb whose live envelope's `data` wraps because Monday's wire
|
|
11
|
+
* shape carries `is_async`. Per cli-design §6.1 (round-2 F3
|
|
12
|
+
* widening) + §6.4 board-duplicate variant.
|
|
13
|
+
*
|
|
14
|
+
* **`--with-updates` flag mapping.** Selects between Monday's
|
|
15
|
+
* three-armed `DuplicateBoardType` enum: without --with-updates
|
|
16
|
+
* the wire call uses `duplicate_board_with_pulses` (items WITHOUT
|
|
17
|
+
* updates); with --with-updates the wire call uses
|
|
18
|
+
* `duplicate_board_with_pulses_and_updates` (items WITH updates).
|
|
19
|
+
* The third arm (`duplicate_board_with_structure` — skeleton
|
|
20
|
+
* without items) is deferred to a later v0.x; agents needing it
|
|
21
|
+
* use M9's `dev mutate` escape hatch.
|
|
22
|
+
*
|
|
23
|
+
* **`is_async` semantics.** When true, Monday has queued the
|
|
24
|
+
* duplication server-side and the new board may not be fully
|
|
25
|
+
* populated by envelope time. Agents needing to operate on the
|
|
26
|
+
* duplicated items / updates poll `boards(ids: [<new_id>]) {
|
|
27
|
+
* state }` until terminal state. When false, the duplication has
|
|
28
|
+
* fully landed by envelope time and immediate follow-up reads
|
|
29
|
+
* are safe. (cli-design §6.4 board-duplicate live envelope.)
|
|
30
|
+
*
|
|
31
|
+
* **`--workspace` is optional.** Defaults to the source board's
|
|
32
|
+
* workspace; only forwards when the agent provides a value.
|
|
33
|
+
*
|
|
34
|
+
* **`--name` is optional.** Defaults to Monday's server-side
|
|
35
|
+
* "<source name> (Copy)" when omitted.
|
|
36
|
+
*
|
|
37
|
+
* **Dry-run shape** per cli-design §6.4 board-duplicate variant:
|
|
38
|
+
* `{operation: "duplicate_board", board_id, with_updates,
|
|
39
|
+
* target_workspace_id?, target_name?, board: <projected source
|
|
40
|
+
* snapshot>}`. Preflight `board get` read via `loadBoardMetadata`
|
|
41
|
+
* — cache hits observable; `meta.source: 'live' | 'cache'`.
|
|
42
|
+
* Cache-staleness caveat: pass `--no-cache` for force-live
|
|
43
|
+
* preview when freshness matters.
|
|
44
|
+
*
|
|
45
|
+
* **Idempotent: false.** Re-running creates a second copy. NOT
|
|
46
|
+
* destructive (no --yes gate — cli-design §3.1 #7 reserves the
|
|
47
|
+
* gate for destructive verbs). Same shape `monday board create`
|
|
48
|
+
* uses for non-destructive idempotency.
|
|
49
|
+
*/
|
|
50
|
+
import { z } from 'zod';
|
|
51
|
+
import { ensureSubcommand } from '../types.js';
|
|
52
|
+
import { emitDryRun, emitMutation } from '../emit.js';
|
|
53
|
+
import { resolveClient } from '../../api/resolve-client.js';
|
|
54
|
+
import { BoardIdSchema, WorkspaceIdSchema } from '../../types/ids.js';
|
|
55
|
+
import { parseArgv } from '../parse-argv.js';
|
|
56
|
+
import { ApiError } from '../../utils/errors.js';
|
|
57
|
+
import { unwrapOrThrow } from '../../utils/parse-boundary.js';
|
|
58
|
+
import { loadBoardMetadata } from '../../api/board-metadata.js';
|
|
59
|
+
import { BOARD_FIELDS_FRAGMENT, boardProjectionSchema, } from '../../api/board-projection.js';
|
|
60
|
+
import { projectMutationBoard } from '../../api/board-mutation-result.js';
|
|
61
|
+
const DUPLICATE_BOARD_MUTATION = `
|
|
62
|
+
mutation BoardDuplicate(
|
|
63
|
+
$boardId: ID!,
|
|
64
|
+
$duplicateType: DuplicateBoardType!,
|
|
65
|
+
$boardName: String,
|
|
66
|
+
$workspaceId: ID
|
|
67
|
+
) {
|
|
68
|
+
duplicate_board(
|
|
69
|
+
board_id: $boardId,
|
|
70
|
+
duplicate_type: $duplicateType,
|
|
71
|
+
board_name: $boardName,
|
|
72
|
+
workspace_id: $workspaceId
|
|
73
|
+
) {
|
|
74
|
+
board {
|
|
75
|
+
${BOARD_FIELDS_FRAGMENT}
|
|
76
|
+
}
|
|
77
|
+
is_async
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
`;
|
|
81
|
+
/**
|
|
82
|
+
* The mutation envelope's `data` wraps `BoardDuplication { board,
|
|
83
|
+
* is_async }`. Per cli-design §6.4 board-duplicate variant + §6.1
|
|
84
|
+
* universal envelope widening (round-2 F3) — single-target verbs
|
|
85
|
+
* usually surface the projection directly, but `board duplicate`
|
|
86
|
+
* is the M15 wrapper case because `is_async` is load-bearing for
|
|
87
|
+
* agents that duplicate-then-immediately-read.
|
|
88
|
+
*/
|
|
89
|
+
export const boardDuplicateOutputSchema = z
|
|
90
|
+
.object({
|
|
91
|
+
board: boardProjectionSchema,
|
|
92
|
+
is_async: z.boolean(),
|
|
93
|
+
})
|
|
94
|
+
.strict();
|
|
95
|
+
const inputSchema = z
|
|
96
|
+
.object({
|
|
97
|
+
boardId: BoardIdSchema,
|
|
98
|
+
name: z
|
|
99
|
+
.string()
|
|
100
|
+
.refine((s) => s.trim().length > 0, {
|
|
101
|
+
message: '--name must be non-empty (whitespace-only is rejected)',
|
|
102
|
+
})
|
|
103
|
+
.optional(),
|
|
104
|
+
workspace: WorkspaceIdSchema.optional(),
|
|
105
|
+
withUpdates: z.boolean().optional().default(false),
|
|
106
|
+
})
|
|
107
|
+
.strict();
|
|
108
|
+
const responseSchema = z
|
|
109
|
+
.object({
|
|
110
|
+
duplicate_board: z.unknown(),
|
|
111
|
+
})
|
|
112
|
+
.loose();
|
|
113
|
+
const duplicationPayloadSchema = z
|
|
114
|
+
.object({
|
|
115
|
+
board: z.unknown(),
|
|
116
|
+
is_async: z.boolean(),
|
|
117
|
+
})
|
|
118
|
+
.loose();
|
|
119
|
+
export const boardDuplicateCommand = {
|
|
120
|
+
name: 'board.duplicate',
|
|
121
|
+
summary: "Duplicate a board (optionally including its items' updates)",
|
|
122
|
+
examples: [
|
|
123
|
+
'monday board duplicate 12345',
|
|
124
|
+
'monday board duplicate 12345 --name "Engineering — EU" --workspace 5',
|
|
125
|
+
'monday board duplicate 12345 --with-updates',
|
|
126
|
+
'monday board duplicate 12345 --dry-run --json',
|
|
127
|
+
],
|
|
128
|
+
// Re-running creates a second copy. Mirrors `board create` /
|
|
129
|
+
// `item duplicate` rationale.
|
|
130
|
+
idempotent: false,
|
|
131
|
+
inputSchema,
|
|
132
|
+
outputSchema: boardDuplicateOutputSchema,
|
|
133
|
+
attach: (program, ctx) => {
|
|
134
|
+
const noun = ensureSubcommand(program, 'board', 'Board commands');
|
|
135
|
+
noun
|
|
136
|
+
.command('duplicate <boardId>')
|
|
137
|
+
.description(boardDuplicateCommand.summary)
|
|
138
|
+
.option('--name <n>', "new board name (defaults to '<source> (Copy)')")
|
|
139
|
+
.option('--workspace <wid>', "destination workspace ID (defaults to source's workspace)")
|
|
140
|
+
.option('--with-updates', "include the source items' updates (Monday's `with_updates` enum)")
|
|
141
|
+
.addHelpText('after', ['', 'Examples:', ...boardDuplicateCommand.examples.map((e) => ` ${e}`), ''].join('\n'))
|
|
142
|
+
.action(async (boardId, opts) => {
|
|
143
|
+
const parsed = parseArgv(boardDuplicateCommand.inputSchema, {
|
|
144
|
+
boardId,
|
|
145
|
+
...opts,
|
|
146
|
+
});
|
|
147
|
+
const trimmedName = parsed.name?.trim();
|
|
148
|
+
// No confirmation gate — duplicate is creative, not
|
|
149
|
+
// destructive (cli-design §3.1 #7). resolveClient runs
|
|
150
|
+
// first so a missing token surfaces as config_error before
|
|
151
|
+
// any wire attempt.
|
|
152
|
+
const { client, globalFlags, apiVersion, toEmit } = resolveClient(ctx, program.opts());
|
|
153
|
+
if (globalFlags.dryRun) {
|
|
154
|
+
// Preflight via loadBoardMetadata so the v0.1 board-
|
|
155
|
+
// metadata cache can serve fresh entries. Cache-staleness
|
|
156
|
+
// caveat applies — agents pass --no-cache for force-live
|
|
157
|
+
// preview when freshness is critical.
|
|
158
|
+
const preflight = await loadBoardMetadata({
|
|
159
|
+
client,
|
|
160
|
+
boardId: parsed.boardId,
|
|
161
|
+
env: ctx.env,
|
|
162
|
+
noCache: globalFlags.noCache,
|
|
163
|
+
});
|
|
164
|
+
const current = preflight.metadata;
|
|
165
|
+
// Project to the full BoardProjection shape — Codex M15
|
|
166
|
+
// implementation round-1 F2: cli-design pins the dry-run
|
|
167
|
+
// snapshot as the §6.2 single-resource projection
|
|
168
|
+
// (mirrors board archive's snapshot fix in the same
|
|
169
|
+
// round).
|
|
170
|
+
const snapshot = {
|
|
171
|
+
id: current.id,
|
|
172
|
+
name: current.name,
|
|
173
|
+
description: current.description,
|
|
174
|
+
state: current.state,
|
|
175
|
+
board_kind: current.board_kind,
|
|
176
|
+
board_folder_id: current.board_folder_id,
|
|
177
|
+
workspace_id: current.workspace_id,
|
|
178
|
+
url: current.url,
|
|
179
|
+
items_count: current.items_count ?? null,
|
|
180
|
+
updated_at: current.updated_at,
|
|
181
|
+
permissions: current.permissions ?? null,
|
|
182
|
+
};
|
|
183
|
+
const planned = {
|
|
184
|
+
operation: 'duplicate_board',
|
|
185
|
+
board_id: parsed.boardId,
|
|
186
|
+
with_updates: parsed.withUpdates,
|
|
187
|
+
board: snapshot,
|
|
188
|
+
};
|
|
189
|
+
if (parsed.workspace !== undefined) {
|
|
190
|
+
planned.target_workspace_id = parsed.workspace;
|
|
191
|
+
}
|
|
192
|
+
if (trimmedName !== undefined) {
|
|
193
|
+
planned.target_name = trimmedName;
|
|
194
|
+
}
|
|
195
|
+
emitDryRun({
|
|
196
|
+
ctx,
|
|
197
|
+
programOpts: program.opts(),
|
|
198
|
+
plannedChanges: [planned],
|
|
199
|
+
source: preflight.source,
|
|
200
|
+
cacheAgeSeconds: preflight.cacheAgeSeconds,
|
|
201
|
+
warnings: [],
|
|
202
|
+
apiVersion,
|
|
203
|
+
});
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
// Live path. Map --with-updates to the DuplicateBoardType
|
|
207
|
+
// enum: false → duplicate_board_with_pulses (items only,
|
|
208
|
+
// no updates); true → duplicate_board_with_pulses_and_
|
|
209
|
+
// updates (items + their updates).
|
|
210
|
+
const duplicateType = parsed.withUpdates
|
|
211
|
+
? 'duplicate_board_with_pulses_and_updates'
|
|
212
|
+
: 'duplicate_board_with_pulses';
|
|
213
|
+
const variables = {
|
|
214
|
+
boardId: parsed.boardId,
|
|
215
|
+
duplicateType,
|
|
216
|
+
};
|
|
217
|
+
if (trimmedName !== undefined) {
|
|
218
|
+
variables.boardName = trimmedName;
|
|
219
|
+
}
|
|
220
|
+
if (parsed.workspace !== undefined) {
|
|
221
|
+
variables.workspaceId = parsed.workspace;
|
|
222
|
+
}
|
|
223
|
+
const response = await client.raw(DUPLICATE_BOARD_MUTATION, variables, { operationName: 'BoardDuplicate' });
|
|
224
|
+
const data = unwrapOrThrow(responseSchema.safeParse(response.data), {
|
|
225
|
+
context: 'Monday returned a malformed BoardDuplicate response',
|
|
226
|
+
details: { board_id: parsed.boardId },
|
|
227
|
+
hint: 'this is a data-integrity error in Monday\'s response; ' +
|
|
228
|
+
'verify the response shape and update responseSchema if ' +
|
|
229
|
+
'Monday\'s contract has changed.',
|
|
230
|
+
});
|
|
231
|
+
// Distinguish missing-root-key (schema-drift →
|
|
232
|
+
// internal_error) from null payload (board missing →
|
|
233
|
+
// not_found). Same M14 round-2/round-3 distinction.
|
|
234
|
+
if (!('duplicate_board' in data)) {
|
|
235
|
+
throw new ApiError('internal_error', `Monday's BoardDuplicate response is missing the duplicate_board root field`, {
|
|
236
|
+
details: {
|
|
237
|
+
board_id: parsed.boardId,
|
|
238
|
+
hint: 'this is a schema-drift error in Monday\'s GraphQL ' +
|
|
239
|
+
'response; verify the mutation declaration and update ' +
|
|
240
|
+
'the response schema if Monday\'s contract has changed.',
|
|
241
|
+
},
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
if (data.duplicate_board === null || data.duplicate_board === undefined) {
|
|
245
|
+
throw new ApiError('not_found', `Monday returned no BoardDuplication payload from duplicate_board for id ${parsed.boardId}`, { details: { board_id: parsed.boardId } });
|
|
246
|
+
}
|
|
247
|
+
// BoardDuplication has two fields — `board` (the
|
|
248
|
+
// duplicated board's projection) and `is_async`. Parse the
|
|
249
|
+
// wrapper here (R43 only covers the inner-board projection,
|
|
250
|
+
// not the wrapped envelope unique to duplicate), then
|
|
251
|
+
// project the inner board through `projectMutationBoard`
|
|
252
|
+
// (api/board-mutation-result.ts). Inner-board null path
|
|
253
|
+
// uses `internal_error` because the wrapper succeeded
|
|
254
|
+
// server-side but the projection is empty — schema-drift /
|
|
255
|
+
// server-side glitch rather than the agent-recovery
|
|
256
|
+
// story `not_found` carries.
|
|
257
|
+
const wrapper = unwrapOrThrow(duplicationPayloadSchema.safeParse(data.duplicate_board), {
|
|
258
|
+
context: 'Monday returned a malformed BoardDuplication payload',
|
|
259
|
+
details: { board_id: parsed.boardId },
|
|
260
|
+
});
|
|
261
|
+
const projectedBoard = projectMutationBoard({
|
|
262
|
+
raw: wrapper.board,
|
|
263
|
+
errorCode: 'internal_error',
|
|
264
|
+
errorMessage: `Monday returned no board inside BoardDuplication for source id ${parsed.boardId}`,
|
|
265
|
+
detailKey: 'board_id',
|
|
266
|
+
detailValue: parsed.boardId,
|
|
267
|
+
});
|
|
268
|
+
emitMutation({
|
|
269
|
+
ctx,
|
|
270
|
+
data: { board: projectedBoard, is_async: wrapper.is_async },
|
|
271
|
+
schema: boardDuplicateCommand.outputSchema,
|
|
272
|
+
programOpts: program.opts(),
|
|
273
|
+
warnings: [],
|
|
274
|
+
...toEmit(response),
|
|
275
|
+
source: 'live',
|
|
276
|
+
cacheAgeSeconds: null,
|
|
277
|
+
});
|
|
278
|
+
});
|
|
279
|
+
},
|
|
280
|
+
};
|
|
281
|
+
//# sourceMappingURL=duplicate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"duplicate.js","sourceRoot":"","sources":["../../../src/commands/board/duplicate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `monday board find <name>` — name-based lookup against `boards`
|
|
3
|
+
* (`cli-design.md` §5.7).
|
|
4
|
+
*
|
|
5
|
+
* GraphQL: a paged `boards` walk filtered by `--workspace`/`--state`,
|
|
6
|
+
* then `findOne` selects the unique match. Multi-match raises
|
|
7
|
+
* `ambiguous_name` with `details.candidates`; zero matches →
|
|
8
|
+
* `not_found`. `--first` opts into the lowest-ID match, with a
|
|
9
|
+
* `warnings: [{ code: 'first_of_many' }]` entry attached.
|
|
10
|
+
*
|
|
11
|
+
* Why a client-side walk rather than a server-side filter: Monday's
|
|
12
|
+
* `boards` query has no name-substring filter — the only way to
|
|
13
|
+
* find by name is to read every visible board. The walk caps at
|
|
14
|
+
* `--limit-pages × 100` to avoid pathological reads on giant
|
|
15
|
+
* accounts; default 5 pages × 100 = 500 boards. Real-world boards-
|
|
16
|
+
* per-account counts run hundreds in the heaviest cases. Agents
|
|
17
|
+
* that hit the cap can pass `--workspace <wid>` to narrow.
|
|
18
|
+
*
|
|
19
|
+
* Idempotent: yes.
|
|
20
|
+
*/
|
|
21
|
+
import { z } from 'zod';
|
|
22
|
+
import { type CommandModule } from '../types.js';
|
|
23
|
+
export declare const boardFindOutputSchema: z.ZodObject<{
|
|
24
|
+
id: z.ZodString;
|
|
25
|
+
name: z.ZodString;
|
|
26
|
+
description: z.ZodNullable<z.ZodString>;
|
|
27
|
+
state: z.ZodNullable<z.ZodString>;
|
|
28
|
+
board_kind: z.ZodNullable<z.ZodString>;
|
|
29
|
+
workspace_id: z.ZodNullable<z.ZodString>;
|
|
30
|
+
url: z.ZodNullable<z.ZodString>;
|
|
31
|
+
}, z.core.$strict>;
|
|
32
|
+
export type BoardFindOutput = z.infer<typeof boardFindOutputSchema>;
|
|
33
|
+
declare const inputSchema: z.ZodObject<{
|
|
34
|
+
name: z.ZodString;
|
|
35
|
+
workspace: z.ZodOptional<z.core.$ZodBranded<z.ZodString, "WorkspaceId", "out">>;
|
|
36
|
+
state: z.ZodOptional<z.ZodEnum<{
|
|
37
|
+
archived: "archived";
|
|
38
|
+
deleted: "deleted";
|
|
39
|
+
all: "all";
|
|
40
|
+
active: "active";
|
|
41
|
+
}>>;
|
|
42
|
+
first: z.ZodOptional<z.ZodBoolean>;
|
|
43
|
+
limitPages: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
|
|
44
|
+
}, z.core.$strict>;
|
|
45
|
+
export declare const boardFindCommand: CommandModule<z.infer<typeof inputSchema>, BoardFindOutput>;
|
|
46
|
+
export {};
|
|
47
|
+
//# sourceMappingURL=find.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../../../src/commands/board/find.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AA6CnE,eAAO,MAAM,qBAAqB;;;;;;;;kBAAc,CAAC;AACjD,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,QAAA,MAAM,WAAW;;;;;;;;;;;kBAQN,CAAC;AASZ,eAAO,MAAM,gBAAgB,EAAE,aAAa,CAC1C,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,EAC3B,eAAe,CA6FhB,CAAC"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `monday board find <name>` — name-based lookup against `boards`
|
|
3
|
+
* (`cli-design.md` §5.7).
|
|
4
|
+
*
|
|
5
|
+
* GraphQL: a paged `boards` walk filtered by `--workspace`/`--state`,
|
|
6
|
+
* then `findOne` selects the unique match. Multi-match raises
|
|
7
|
+
* `ambiguous_name` with `details.candidates`; zero matches →
|
|
8
|
+
* `not_found`. `--first` opts into the lowest-ID match, with a
|
|
9
|
+
* `warnings: [{ code: 'first_of_many' }]` entry attached.
|
|
10
|
+
*
|
|
11
|
+
* Why a client-side walk rather than a server-side filter: Monday's
|
|
12
|
+
* `boards` query has no name-substring filter — the only way to
|
|
13
|
+
* find by name is to read every visible board. The walk caps at
|
|
14
|
+
* `--limit-pages × 100` to avoid pathological reads on giant
|
|
15
|
+
* accounts; default 5 pages × 100 = 500 boards. Real-world boards-
|
|
16
|
+
* per-account counts run hundreds in the heaviest cases. Agents
|
|
17
|
+
* that hit the cap can pass `--workspace <wid>` to narrow.
|
|
18
|
+
*
|
|
19
|
+
* Idempotent: yes.
|
|
20
|
+
*/
|
|
21
|
+
import { z } from 'zod';
|
|
22
|
+
import { ensureSubcommand } from '../types.js';
|
|
23
|
+
import { emitSuccess } from '../emit.js';
|
|
24
|
+
import { resolveClient } from '../../api/resolve-client.js';
|
|
25
|
+
import { findOne } from '../../api/resolvers.js';
|
|
26
|
+
import { WorkspaceIdSchema } from '../../types/ids.js';
|
|
27
|
+
import { parseArgv } from '../parse-argv.js';
|
|
28
|
+
import { walkPages } from '../../api/walk-pages.js';
|
|
29
|
+
const BOARD_FIND_QUERY = `
|
|
30
|
+
query BoardFind(
|
|
31
|
+
$limit: Int
|
|
32
|
+
$page: Int
|
|
33
|
+
$workspaceIds: [ID]
|
|
34
|
+
$state: State
|
|
35
|
+
) {
|
|
36
|
+
boards(
|
|
37
|
+
limit: $limit
|
|
38
|
+
page: $page
|
|
39
|
+
workspace_ids: $workspaceIds
|
|
40
|
+
state: $state
|
|
41
|
+
) {
|
|
42
|
+
id
|
|
43
|
+
name
|
|
44
|
+
description
|
|
45
|
+
state
|
|
46
|
+
board_kind
|
|
47
|
+
workspace_id
|
|
48
|
+
url
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
`;
|
|
52
|
+
const boardSchema = z
|
|
53
|
+
.object({
|
|
54
|
+
id: z.string().min(1),
|
|
55
|
+
name: z.string(),
|
|
56
|
+
description: z.string().nullable(),
|
|
57
|
+
state: z.string().nullable(),
|
|
58
|
+
board_kind: z.string().nullable(),
|
|
59
|
+
workspace_id: z.string().nullable(),
|
|
60
|
+
url: z.string().nullable(),
|
|
61
|
+
})
|
|
62
|
+
.strict();
|
|
63
|
+
export const boardFindOutputSchema = boardSchema;
|
|
64
|
+
const inputSchema = z
|
|
65
|
+
.object({
|
|
66
|
+
name: z.string().min(1),
|
|
67
|
+
workspace: WorkspaceIdSchema.optional(),
|
|
68
|
+
state: z.enum(['active', 'archived', 'deleted', 'all']).optional(),
|
|
69
|
+
first: z.boolean().optional(),
|
|
70
|
+
limitPages: z.coerce.number().int().positive().max(50).optional(),
|
|
71
|
+
})
|
|
72
|
+
.strict();
|
|
73
|
+
const PAGE_SIZE = 100;
|
|
74
|
+
const DEFAULT_PAGES = 5;
|
|
75
|
+
export const boardFindCommand = {
|
|
76
|
+
name: 'board.find',
|
|
77
|
+
summary: 'Find a single board by name (uses findOne semantics)',
|
|
78
|
+
examples: [
|
|
79
|
+
'monday board find "Refactor login"',
|
|
80
|
+
'monday board find "Roadmap" --workspace 12345',
|
|
81
|
+
'monday board find "Many matches" --first --json',
|
|
82
|
+
],
|
|
83
|
+
idempotent: true,
|
|
84
|
+
inputSchema,
|
|
85
|
+
outputSchema: boardFindOutputSchema,
|
|
86
|
+
attach: (program, ctx) => {
|
|
87
|
+
const noun = ensureSubcommand(program, 'board', 'Board commands');
|
|
88
|
+
noun
|
|
89
|
+
.command('find <name>')
|
|
90
|
+
.description(boardFindCommand.summary)
|
|
91
|
+
.option('--workspace <wid>', 'restrict scope to one workspace')
|
|
92
|
+
.option('--state <s>', 'active|archived|deleted|all (default active)')
|
|
93
|
+
.option('--first', 'on multiple matches, pick the lowest-ID match')
|
|
94
|
+
.option('--limit-pages <n>', `how many 100-board pages to scan (default ${String(DEFAULT_PAGES)})`)
|
|
95
|
+
.addHelpText('after', ['', 'Examples:', ...boardFindCommand.examples.map((e) => ` ${e}`), ''].join('\n'))
|
|
96
|
+
.action(async (name, opts) => {
|
|
97
|
+
const parsed = parseArgv(boardFindCommand.inputSchema, {
|
|
98
|
+
name,
|
|
99
|
+
...opts,
|
|
100
|
+
});
|
|
101
|
+
const { client, toEmit } = resolveClient(ctx, program.opts());
|
|
102
|
+
const cap = parsed.limitPages ?? DEFAULT_PAGES;
|
|
103
|
+
const walked = await walkPages({
|
|
104
|
+
fetchPage: (page) => {
|
|
105
|
+
const variables = {
|
|
106
|
+
limit: PAGE_SIZE,
|
|
107
|
+
page,
|
|
108
|
+
};
|
|
109
|
+
if (parsed.workspace !== undefined) {
|
|
110
|
+
variables.workspaceIds = [parsed.workspace];
|
|
111
|
+
}
|
|
112
|
+
if (parsed.state !== undefined)
|
|
113
|
+
variables.state = parsed.state;
|
|
114
|
+
return client.raw(BOARD_FIND_QUERY, variables, {
|
|
115
|
+
operationName: 'BoardFind',
|
|
116
|
+
});
|
|
117
|
+
},
|
|
118
|
+
extractItems: (r) => r.data.boards ?? [],
|
|
119
|
+
pageSize: PAGE_SIZE,
|
|
120
|
+
all: true,
|
|
121
|
+
maxPages: cap,
|
|
122
|
+
});
|
|
123
|
+
const lastResponse = walked.lastResponse;
|
|
124
|
+
// Strict-parse the haystack so a malformed response surfaces
|
|
125
|
+
// as `internal_error` from the runner — mirrors how every
|
|
126
|
+
// other M3 list-shaped command behaves.
|
|
127
|
+
const haystack = z.array(boardSchema).parse(walked.items);
|
|
128
|
+
const result = findOne(haystack, parsed.name, (b) => ({ id: b.id, name: b.name }), {
|
|
129
|
+
kind: 'board',
|
|
130
|
+
...(parsed.first === undefined ? {} : { first: parsed.first }),
|
|
131
|
+
});
|
|
132
|
+
const warnings = [];
|
|
133
|
+
if (result.firstOfMany) {
|
|
134
|
+
warnings.push({
|
|
135
|
+
code: 'first_of_many',
|
|
136
|
+
message: `--first picked one of ${String(result.candidates.length)} matches`,
|
|
137
|
+
details: {
|
|
138
|
+
candidates: result.candidates.map((c) => ({ id: c.id, name: c.name })),
|
|
139
|
+
},
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
emitSuccess({
|
|
143
|
+
ctx,
|
|
144
|
+
data: result.resource,
|
|
145
|
+
schema: boardFindCommand.outputSchema,
|
|
146
|
+
programOpts: program.opts(),
|
|
147
|
+
warnings,
|
|
148
|
+
...toEmit(lastResponse),
|
|
149
|
+
});
|
|
150
|
+
});
|
|
151
|
+
},
|
|
152
|
+
};
|
|
153
|
+
//# sourceMappingURL=find.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find.js","sourceRoot":"","sources":["../../../src/commands/board/find.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `monday board get <bid>` — single board by ID (`cli-design.md` §6.2).
|
|
3
|
+
*
|
|
4
|
+
* Single-resource shape; columns and groups are NOT inlined here —
|
|
5
|
+
* `board describe` is the heavier read for that. Keeps `board get`
|
|
6
|
+
* cheap for agents who just need name / state / kind.
|
|
7
|
+
*
|
|
8
|
+
* **Projection-helper migration (M15).** The output schema + GraphQL
|
|
9
|
+
* field set live in `api/board-projection.ts` from M15 onwards, shared
|
|
10
|
+
* with the M15 board lifecycle cluster (`board create` / `update` /
|
|
11
|
+
* `archive` / `duplicate`). Pre-M15 the schema was inlined here;
|
|
12
|
+
* lifting it kept rendered wire bytes byte-identical (6-space
|
|
13
|
+
* continuation indent matches the existing column) and lets the
|
|
14
|
+
* mutation cluster reuse the same projection. Mirrors the R39
|
|
15
|
+
* workspace-projection lift.
|
|
16
|
+
*
|
|
17
|
+
* Idempotent: yes.
|
|
18
|
+
*/
|
|
19
|
+
import { z } from 'zod';
|
|
20
|
+
import { type CommandModule } from '../types.js';
|
|
21
|
+
import { type BoardProjection } from '../../api/board-projection.js';
|
|
22
|
+
export declare const boardGetOutputSchema: z.ZodObject<{
|
|
23
|
+
id: z.ZodString;
|
|
24
|
+
name: z.ZodString;
|
|
25
|
+
description: z.ZodNullable<z.ZodString>;
|
|
26
|
+
state: z.ZodNullable<z.ZodString>;
|
|
27
|
+
board_kind: z.ZodNullable<z.ZodString>;
|
|
28
|
+
board_folder_id: z.ZodNullable<z.ZodString>;
|
|
29
|
+
workspace_id: z.ZodNullable<z.ZodString>;
|
|
30
|
+
url: z.ZodNullable<z.ZodString>;
|
|
31
|
+
items_count: z.ZodNullable<z.ZodNumber>;
|
|
32
|
+
updated_at: z.ZodNullable<z.ZodString>;
|
|
33
|
+
permissions: z.ZodNullable<z.ZodString>;
|
|
34
|
+
}, z.core.$strict>;
|
|
35
|
+
export type BoardGetOutput = BoardProjection;
|
|
36
|
+
declare const inputSchema: z.ZodObject<{
|
|
37
|
+
boardId: z.core.$ZodBranded<z.ZodString, "BoardId", "out">;
|
|
38
|
+
}, z.core.$strict>;
|
|
39
|
+
export declare const boardGetCommand: CommandModule<z.infer<typeof inputSchema>, BoardGetOutput>;
|
|
40
|
+
export {};
|
|
41
|
+
//# sourceMappingURL=get.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../src/commands/board/get.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAInE,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,+BAA+B,CAAC;AAUvC,eAAO,MAAM,oBAAoB;;;;;;;;;;;;kBAAwB,CAAC;AAE1D,MAAM,MAAM,cAAc,GAAG,eAAe,CAAC;AAE7C,QAAA,MAAM,WAAW;;kBAAgD,CAAC;AAElE,eAAO,MAAM,eAAe,EAAE,aAAa,CACzC,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,EAC3B,cAAc,CAmCf,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `monday board get <bid>` — single board by ID (`cli-design.md` §6.2).
|
|
3
|
+
*
|
|
4
|
+
* Single-resource shape; columns and groups are NOT inlined here —
|
|
5
|
+
* `board describe` is the heavier read for that. Keeps `board get`
|
|
6
|
+
* cheap for agents who just need name / state / kind.
|
|
7
|
+
*
|
|
8
|
+
* **Projection-helper migration (M15).** The output schema + GraphQL
|
|
9
|
+
* field set live in `api/board-projection.ts` from M15 onwards, shared
|
|
10
|
+
* with the M15 board lifecycle cluster (`board create` / `update` /
|
|
11
|
+
* `archive` / `duplicate`). Pre-M15 the schema was inlined here;
|
|
12
|
+
* lifting it kept rendered wire bytes byte-identical (6-space
|
|
13
|
+
* continuation indent matches the existing column) and lets the
|
|
14
|
+
* mutation cluster reuse the same projection. Mirrors the R39
|
|
15
|
+
* workspace-projection lift.
|
|
16
|
+
*
|
|
17
|
+
* Idempotent: yes.
|
|
18
|
+
*/
|
|
19
|
+
import { z } from 'zod';
|
|
20
|
+
import { ensureSubcommand } from '../types.js';
|
|
21
|
+
import { runByIdLookup } from '../run-by-id-lookup.js';
|
|
22
|
+
import { BoardIdSchema } from '../../types/ids.js';
|
|
23
|
+
import { parseArgv } from '../parse-argv.js';
|
|
24
|
+
import { BOARD_FIELDS_FRAGMENT, boardProjectionSchema, } from '../../api/board-projection.js';
|
|
25
|
+
const BOARD_GET_QUERY = `
|
|
26
|
+
query BoardGet($ids: [ID!]) {
|
|
27
|
+
boards(ids: $ids) {
|
|
28
|
+
${BOARD_FIELDS_FRAGMENT}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
`;
|
|
32
|
+
export const boardGetOutputSchema = boardProjectionSchema;
|
|
33
|
+
const inputSchema = z.object({ boardId: BoardIdSchema }).strict();
|
|
34
|
+
export const boardGetCommand = {
|
|
35
|
+
name: 'board.get',
|
|
36
|
+
summary: 'Show one board by ID (lightweight; use board describe for columns)',
|
|
37
|
+
examples: [
|
|
38
|
+
'monday board get 12345',
|
|
39
|
+
'monday board get 12345 --json',
|
|
40
|
+
],
|
|
41
|
+
idempotent: true,
|
|
42
|
+
inputSchema,
|
|
43
|
+
outputSchema: boardGetOutputSchema,
|
|
44
|
+
attach: (program, ctx) => {
|
|
45
|
+
const noun = ensureSubcommand(program, 'board', 'Board commands');
|
|
46
|
+
noun
|
|
47
|
+
.command('get <boardId>')
|
|
48
|
+
.description(boardGetCommand.summary)
|
|
49
|
+
.addHelpText('after', ['', 'Examples:', ...boardGetCommand.examples.map((e) => ` ${e}`), ''].join('\n'))
|
|
50
|
+
.action(async (boardId) => {
|
|
51
|
+
const parsed = parseArgv(boardGetCommand.inputSchema, { boardId });
|
|
52
|
+
await runByIdLookup({
|
|
53
|
+
ctx,
|
|
54
|
+
programOpts: program.opts(),
|
|
55
|
+
query: BOARD_GET_QUERY,
|
|
56
|
+
operationName: 'BoardGet',
|
|
57
|
+
collectionKey: 'boards',
|
|
58
|
+
id: parsed.boardId,
|
|
59
|
+
errorDetailKey: 'board_id',
|
|
60
|
+
kind: 'board',
|
|
61
|
+
schema: boardGetCommand.outputSchema,
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
//# sourceMappingURL=get.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/commands/board/get.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAsB,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EACL,qBAAqB,EACrB,qBAAqB,GAEtB,MAAM,+BAA+B,CAAC;AAEvC,MAAM,eAAe,GAAG;;;QAGhB,qBAAqB;;;CAG5B,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,qBAAqB,CAAC;AAI1D,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AAElE,MAAM,CAAC,MAAM,eAAe,GAGxB;IACF,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,oEAAoE;IAC7E,QAAQ,EAAE;QACR,wBAAwB;QACxB,+BAA+B;KAChC;IACD,UAAU,EAAE,IAAI;IAChB,WAAW;IACX,YAAY,EAAE,oBAAoB;IAClC,MAAM,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;QACvB,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;QAClE,IAAI;aACD,OAAO,CAAC,eAAe,CAAC;aACxB,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC;aACpC,WAAW,CACV,OAAO,EACP,CAAC,EAAE,EAAE,WAAW,EAAE,GAAG,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACnF;aACA,MAAM,CAAC,KAAK,EAAE,OAAgB,EAAE,EAAE;YACjC,MAAM,MAAM,GAAG,SAAS,CAAC,eAAe,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YACnE,MAAM,aAAa,CAAC;gBAClB,GAAG;gBACH,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE;gBAC3B,KAAK,EAAE,eAAe;gBACtB,aAAa,EAAE,UAAU;gBACzB,aAAa,EAAE,QAAQ;gBACvB,EAAE,EAAE,MAAM,CAAC,OAAO;gBAClB,cAAc,EAAE,UAAU;gBAC1B,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,eAAe,CAAC,YAAY;aACrC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;CACF,CAAC"}
|