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 @@
|
|
|
1
|
+
{"version":3,"file":"column-values.js","sourceRoot":"","sources":["../../src/api/column-values.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmGG;AAEH,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE1D,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,oBAAoB,GAErB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,cAAc,GAGf,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,gBAAgB,GAGjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AA0H9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,MAAkC,EACX,EAAE;IACzB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC;IACjD,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,MAAM,0BAA0B,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3D,CAAC;IACD,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,MAAM;YACT,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAC1C,KAAK,WAAW;YACd,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;QAC/C,KAAK,SAAS;YACZ,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAC7C,KAAK,QAAQ;YACX,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7E,KAAK,UAAU;YACb,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;QACjF,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;YAChE,OAAO;gBACL,QAAQ,EAAE,MAAM,CAAC,EAAE;gBACnB,UAAU,EAAE,MAAM;gBAClB,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE;gBAClD,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,gBAAgB,EAAE,IAAI;aACvB,CAAC;QACJ,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,6DAA6D;YAC7D,gEAAgE;YAChE,4DAA4D;YAC5D,2DAA2D;YAC3D,wDAAwD;YACxD,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YAChD,OAAO;gBACL,QAAQ,EAAE,MAAM,CAAC,EAAE;gBACnB,UAAU,EAAE,MAAM;gBAClB,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAA+B,EAAE;gBACnE,YAAY,EAAE,IAAI;gBAClB,gBAAgB,EAAE,IAAI;aACvB,CAAC;QACJ,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YACjD,OAAO;gBACL,QAAQ,EAAE,MAAM,CAAC,EAAE;gBACnB,UAAU,EAAE,OAAO;gBACnB,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAA+B,EAAE;gBACnE,YAAY,EAAE,IAAI;gBAClB,gBAAgB,EAAE,IAAI;aACvB,CAAC;QACJ,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YACjD,OAAO;gBACL,QAAQ,EAAE,MAAM,CAAC,EAAE;gBACnB,UAAU,EAAE,OAAO;gBACnB,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAA+B,EAAE;gBACnE,YAAY,EAAE,IAAI;gBAClB,gBAAgB,EAAE,IAAI;aACvB,CAAC;QACJ,CAAC;QACD,KAAK,QAAQ;YACX,wDAAwD;YACxD,6DAA6D;YAC7D,0DAA0D;YAC1D,6DAA6D;YAC7D,2DAA2D;YAC3D,6DAA6D;YAC7D,+CAA+C;YAC/C,MAAM,IAAI,QAAQ,CAChB,gBAAgB,EAChB,wDAAwD,MAAM,CAAC,EAAE,KAAK;gBACpE,6DAA6D,EAC/D;gBACE,OAAO,EAAE;oBACP,SAAS,EAAE,MAAM,CAAC,EAAE;oBACpB,WAAW,EAAE,MAAM,CAAC,IAAI;oBACxB,IAAI,EAAE,6DAA6D;iBACpE;aACF,CACF,CAAC;IACN,CAAC;AACH,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,MAAsD,EAC/B,EAAE;IACzB,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,MAAM,0BAA0B,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3D,CAAC;IACD,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,MAAM,CAAC;QACZ,KAAK,WAAW,CAAC;QACjB,KAAK,SAAS;YACZ,OAAO;gBACL,QAAQ,EAAE,MAAM,CAAC,EAAE;gBACnB,UAAU,EAAE,MAAM,CAAC,IAAI;gBACvB,QAAQ,EAAE,EAAE;gBACZ,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;gBACxC,YAAY,EAAE,IAAI;gBAClB,gBAAgB,EAAE,IAAI;aACvB,CAAC;QACJ,KAAK,QAAQ,CAAC;QACd,KAAK,UAAU,CAAC;QAChB,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ,CAAC;QACd,KAAK,MAAM,CAAC;QACZ,KAAK,OAAO,CAAC;QACb,KAAK,OAAO;YACV,uDAAuD;YACvD,8DAA8D;YAC9D,2DAA2D;YAC3D,yCAAyC;YACzC,OAAO;gBACL,QAAQ,EAAE,MAAM,CAAC,EAAE;gBACnB,UAAU,EAAE,MAAM,CAAC,IAAI;gBACvB,QAAQ,EAAE,EAAE;gBACZ,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;gBACtC,YAAY,EAAE,IAAI;gBAClB,gBAAgB,EAAE,IAAI;aACvB,CAAC;IACN,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,EAC5C,MAAuC,EACP,EAAE;IAClC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IACD,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAC;IACpC,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;QACnC,MAAM,IAAI,QAAQ,CAChB,gBAAgB,EAChB,oEAAoE;YAClE,kBAAkB,MAAM,CAAC,MAAM,CAAC,EAAE,+BAA+B;YACjE,6CAA6C,EAC/C;YACE,OAAO,EAAE;gBACP,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE;gBAC3B,WAAW,EAAE,QAAQ;gBACrB,IAAI,EACF,8DAA8D;oBAC9D,oCAAoC;aACvC;SACF,CACF,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,gBAAgB,CACnC,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,MAAM,CAAC,EAAE,EAChB,gBAAgB,CACjB,CAAC;IACF,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE;QAC1B,UAAU,EAAE,QAAQ;QACpB,QAAQ,EAAE,MAAM,CAAC,KAAK;QACtB,0DAA0D;QAC1D,6DAA6D;QAC7D,sDAAsD;QACtD,wDAAwD;QACxD,uDAAuD;QACvD,6DAA6D;QAC7D,6DAA6D;QAC7D,2DAA2D;QAC3D,6DAA6D;QAC7D,8DAA8D;QAC9D,OAAO,EAAE;YACP,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,MAAM,CAAC,OAAgC;SAC/C;QACD,YAAY,EAAE,IAAI;QAClB,gBAAgB,EAAE,MAAM,CAAC,UAAU;KACpC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,CACb,QAAgB,EAChB,UAA4C,EAC5C,QAAgB,EACO,EAAE,CAAC,CAAC;IAC3B,QAAQ;IACR,UAAU;IACV,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;IAC9C,QAAQ;IACR,iEAAiE;IACjE,kEAAkE;IAClE,oBAAoB;IACpB,YAAY,EAAE,IAAI;IAClB,gBAAgB,EAAE,IAAI;CACvB,CAAC,CAAC;AAEH,MAAM,IAAI,GAAG,CACX,QAAgB,EAChB,UAAiC,EACjC,QAAgB,EAChB,KAAiB,EACM,EAAE,CAAC,CAAC;IAC3B,QAAQ;IACR,UAAU;IACV,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE;IAClC,QAAQ;IACR,YAAY,EAAE,IAAI;IAClB,gBAAgB,EAAE,IAAI;CACvB,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,eAAe,GAAG,CACtB,GAAW,EACX,QAAgB,EACJ,EAAE;IACd,IAAI,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YAClC,MAAM,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAC3B,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AACxB,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,iBAAiB,GAAG,CACxB,QAAgB,EAChB,GAAW,EACC,EAAE;IACd,MAAM,KAAK,GAAG,GAAG;SACd,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;SAChC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,UAAU,CAClB,oBAAoB,QAAQ,4CAA4C;YACtE,QAAQ,GAAG,qCAAqC;YAChD,6BAA6B,QAAQ,6BAA6B,EACpE;YACE,OAAO,EAAE;gBACP,SAAS,EAAE,QAAQ;gBACnB,WAAW,EAAE,UAAU;gBACvB,SAAS,EAAE,GAAG;gBACd,IAAI,EACF,oDAAoD;oBACpD,GAAG,QAAQ,6CAA6C;oBACxD,GAAG,QAAQ,gDAAgD;oBAC3D,iDAAiD;aACpD;SACF,CACF,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC3D,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClC,MAAM,kBAAkB,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;YACvD,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC;QACH,OAAO,EAAE,GAAG,EAAE,CAAC;IACjB,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAC3B,CAAC,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,MAAM,kBAAkB,GAAG,CACzB,QAAgB,EAChB,UAAiC,EACjC,GAAW,EACC,EAAE;IACd,MAAM,MAAM,GAAG,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC;IAC/D,gEAAgE;IAChE,+DAA+D;IAC/D,+DAA+D;IAC/D,iDAAiD;IACjD,MAAM,IAAI,GAAG,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;IACzD,MAAM,OAAO,GAAG,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,cAAc,CAAC;IAC7E,0DAA0D;IAC1D,4DAA4D;IAC5D,+DAA+D;IAC/D,6DAA6D;IAC7D,MAAM,IAAI,GACR,UAAU,KAAK,QAAQ;QACrB,CAAC,CAAC,kCAAkC,QAAQ,2BAA2B;QACvE,CAAC,CAAC,mCAAmC,QAAQ,qBAAqB;YAChE,eAAe,CAAC;IACtB,OAAO,IAAI,UAAU,CACnB,GAAG,MAAM,YAAY,QAAQ,wBAAwB,GAAG,SAAS;QAC/D,0DAA0D;QAC1D,+DAA+D;QAC/D,iDAAiD,UAAU,GAAG;QAC9D,GAAG,IAAI,qDAAqD;QAC5D,GAAG,OAAO,mDAAmD;QAC7D,oBAAoB,EACtB;QACE,OAAO,EAAE;YACP,SAAS,EAAE,QAAQ;YACnB,WAAW,EAAE,UAAU;YACvB,SAAS,EAAE,GAAG;YACd,IAAI;SACL;KACF,CACF,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,oBAAoB,GAAG,QAAQ,CAAC;AAsDtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,UAA4C,EAC1B,EAAE;IACpB,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,UAAU,CAClB,gEAAgE;YAC9D,6DAA6D;YAC7D,uBAAuB,EACzB,EAAE,OAAO,EAAE,EAAE,gBAAgB,EAAE,CAAC,EAAE,EAAE,CACrC,CAAC;IACJ,CAAC;IACD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC3B;;mDAE2C;QAC3C,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,IAAI,UAAU,CAAC,4CAA4C,CAAC,CAAC;QACrE,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACrC,OAAO;gBACL,IAAI,EAAE,4BAA4B;gBAClC,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;aAC1B,CAAC;QACJ,CAAC;QACD,OAAO;YACL,IAAI,EAAE,qBAAqB;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;SAC1B,CAAC;IACJ,CAAC;IACD,mEAAmE;IACnE,kEAAkE;IAClE,gEAAgE;IAChE,wDAAwD;IACxD,iEAAiE;IACjE,mBAAmB;IACnB,MAAM,YAAY,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;IACpD,OAAO,EAAE,IAAI,EAAE,+BAA+B,EAAE,YAAY,EAAE,CAAC;AACjE,CAAC,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,eAAe,GAAG,CAAC,CAAwB,EAAoB,EAAE;IACrE,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAChC,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IACzB,CAAC;IACD,IAAI,CAAC,CAAC,UAAU,KAAK,WAAW,EAAE,CAAC;QACjC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACnC,CAAC;IACD,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;AACzB,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,UAA4C,EACA,EAAE;IAC9C,MAAM,GAAG,GAAqC,EAAE,CAAC;IACjD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzB,0DAA0D;YAC1D,8DAA8D;YAC9D,0DAA0D;YAC1D,4DAA4D;YAC5D,MAAM,IAAI,UAAU,CAClB,wCAAwC,CAAC,CAAC,QAAQ,KAAK;gBACrD,6DAA6D;gBAC7D,8DAA8D;gBAC9D,8CAA8C,EAChD;gBACE,OAAO,EAAE;oBACP,SAAS,EAAE,CAAC,CAAC,QAAQ;oBACrB,eAAe,EAAE,UAAU,CAAC,MAAM,CAChC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ,CACzC,CAAC,MAAM;iBACT;aACF,CACF,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACrB,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,QAAgB,EAChB,IAAY,EACF,EAAE;IACZ,MAAM,QAAQ,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAChD,IAAI,QAAQ,KAAK,mBAAmB,EAAE,CAAC;QACrC,OAAO,IAAI,QAAQ,CACjB,yBAAyB,EACzB,WAAW,QAAQ,eAAe,IAAI,2BAA2B;YAC/D,8DAA8D;YAC9D,8DAA8D;YAC9D,4DAA4D;YAC5D,+DAA+D;YAC/D,gEAAgE;YAChE,2CAA2C,EAC7C;YACE,OAAO,EAAE;gBACP,SAAS,EAAE,QAAQ;gBACnB,IAAI;gBACJ,SAAS,EAAE,IAAI;gBACf,IAAI,EACF,4DAA4D;oBAC5D,4DAA4D;oBAC5D,wDAAwD;oBACxD,4DAA4D;oBAC5D,2DAA2D;oBAC3D,yDAAyD;aAC5D;SACF,CACF,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,KAAK,uBAAuB,EAAE,CAAC;QACzC,OAAO,IAAI,QAAQ,CACjB,yBAAyB,EACzB,WAAW,QAAQ,eAAe,IAAI,6BAA6B;YACjE,iEAAiE;YACjE,gEAAgE;YAChE,8DAA8D;YAC9D,kEAAkE;YAClE,mEAAmE;YACnE,kBAAkB,EACpB;YACE,OAAO,EAAE;gBACP,SAAS,EAAE,QAAQ;gBACnB,IAAI;gBACJ,WAAW,EAAE,MAAM;gBACnB,IAAI,EACF,8DAA8D;oBAC9D,aAAa,QAAQ,kCAAkC;oBACvD,2DAA2D;oBAC3D,kDAAkD;aACrD;SACF,CACF,CAAC;IACJ,CAAC;IACD,wBAAwB;IAExB,6DAA6D;IAC7D,iEAAiE;IACjE,kEAAkE;IAClE,gEAAgE;IAChE,gEAAgE;IAChE,yDAAyD;IACzD,gEAAgE;IAChE,4DAA4D;IAC5D,mCAAmC;IACnC,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,QAAQ,CACjB,yBAAyB,EACzB,WAAW,QAAQ,eAAe,IAAI,yBAAyB;YAC7D,wDAAwD;YACxD,2DAA2D;YAC3D,2DAA2D;YAC3D,uDAAuD,EACzD;YACE,OAAO,EAAE;gBACP,SAAS,EAAE,QAAQ;gBACnB,IAAI;gBACJ,WAAW,EAAE,MAAM;gBACnB,IAAI,EACF,2DAA2D;oBAC3D,0DAA0D;oBAC1D,uCAAuC;aAC1C;SACF,CACF,CAAC;IACJ,CAAC;IAED,yDAAyD;IACzD,+DAA+D;IAC/D,iEAAiE;IACjE,iEAAiE;IACjE,0DAA0D;IAC1D,IAAI,IAAI,KAAK,eAAe,EAAE,CAAC;QAC7B,OAAO,IAAI,QAAQ,CACjB,yBAAyB,EACzB,WAAW,QAAQ,2CAA2C;YAC5D,gEAAgE;YAChE,0DAA0D;YAC1D,0DAA0D;YAC1D,wCAAwC,EAC1C;YACE,OAAO,EAAE;gBACP,SAAS,EAAE,QAAQ;gBACnB,IAAI;gBACJ,WAAW,EAAE,MAAM;gBACnB,IAAI,EACF,wDAAwD;oBACxD,2DAA2D;oBAC3D,mCAAmC;aACtC;SACF,CACF,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,QAAQ,CACjB,yBAAyB,EACzB,WAAW,QAAQ,eAAe,IAAI,yBAAyB;QAC7D,iEAAiE;QACjE,iEAAiE;QACjE,mEAAmE;QACnE,gEAAgE;QAChE,iEAAiE;QACjE,mEAAmE;QACnE,mEAAmE,EACrE;QACE,OAAO,EAAE;YACP,SAAS,EAAE,QAAQ;YACnB,IAAI;YACJ,WAAW,EAAE,QAAQ;YACrB,IAAI,EACF,+DAA+D;gBAC/D,4DAA4D;gBAC5D,+DAA+D;gBAC/D,kCAAkC;SACrC;KACF,CACF,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Column read-resolver (`cli-design.md` §5.3, `v0.1-plan.md` §3 M3).
|
|
3
|
+
*
|
|
4
|
+
* Token → column ID resolution. The same module is reused by:
|
|
5
|
+
* - `board describe` (lists columns by ID + title);
|
|
6
|
+
* - the M4 filter parser (`--where status=Done` resolves "status");
|
|
7
|
+
* - M5a's value translator (`--set status=Done` resolves "status").
|
|
8
|
+
*
|
|
9
|
+
* Resolution order, from §5.3 step 2:
|
|
10
|
+
* 1. Exact match against column IDs (case-sensitive — Monday IDs are
|
|
11
|
+
* stable lowercase snake_case).
|
|
12
|
+
* 2. Exact match against column titles after NFC normalisation +
|
|
13
|
+
* whitespace trim + internal whitespace collapse.
|
|
14
|
+
* 3. Case-folded title match (Unicode-aware, locale-independent).
|
|
15
|
+
* 4. Ambiguous → `ambiguous_column` with `details.candidates`.
|
|
16
|
+
* 5. No match → `column_not_found`. Before surfacing, the caller
|
|
17
|
+
* can opt into a single auto-refresh of the board metadata via
|
|
18
|
+
* `resolveColumnWithRefresh` — guards against stale-cache false
|
|
19
|
+
* negatives after a column was added.
|
|
20
|
+
*
|
|
21
|
+
* **`title:` / `id:` prefix syntax** (§5.3 step 3) — explicit override
|
|
22
|
+
* for the rare ID-vs-title collision case. The prefix forces the
|
|
23
|
+
* resolution channel deterministically (`title:` always picks the
|
|
24
|
+
* title path; `id:` always picks the ID path). The `id:` form still
|
|
25
|
+
* surfaces a `column_token_collision` warning when the value happens
|
|
26
|
+
* to match another column's title — informational, not blocking, so
|
|
27
|
+
* agents auditing data shape on a long-lived board can see the
|
|
28
|
+
* overlap without rerunning the lookup. Suppressing the warning
|
|
29
|
+
* here would silently mask a real collision the agent might want
|
|
30
|
+
* to know about.
|
|
31
|
+
*
|
|
32
|
+
* **`--include-archived`** (§5.3 step 6) — archived columns are not
|
|
33
|
+
* resolvable by default. The resolver filters them out unless the
|
|
34
|
+
* caller passes `includeArchived: true`. Mutations against archived
|
|
35
|
+
* columns return `column_archived` regardless — that's M5b's
|
|
36
|
+
* concern; this module's job is the lookup.
|
|
37
|
+
*/
|
|
38
|
+
import { type BoardColumn, type BoardMetadata } from './board-metadata.js';
|
|
39
|
+
import type { BoardId } from '../types/ids.js';
|
|
40
|
+
import type { MondayClient } from './client.js';
|
|
41
|
+
export interface ResolveColumnOptions {
|
|
42
|
+
/**
|
|
43
|
+
* Caller-controlled scope. Archived columns are filtered out unless
|
|
44
|
+
* this is true. Mutation paths in M5b set this to false; read paths
|
|
45
|
+
* (`board columns`, `board describe`) honour the flag.
|
|
46
|
+
*/
|
|
47
|
+
readonly includeArchived?: boolean;
|
|
48
|
+
}
|
|
49
|
+
export interface ColumnMatch {
|
|
50
|
+
/** The resolved column. */
|
|
51
|
+
readonly column: BoardColumn;
|
|
52
|
+
/**
|
|
53
|
+
* How the match landed:
|
|
54
|
+
* - `id` — exact ID match.
|
|
55
|
+
* - `title` — exact title (NFC-normalised) match.
|
|
56
|
+
* - `case_fold` — case-folded title match.
|
|
57
|
+
* - `prefix_id` / `prefix_title` — caller used the explicit
|
|
58
|
+
* `id:`/`title:` prefix; deterministic regardless of collision.
|
|
59
|
+
*/
|
|
60
|
+
readonly via: 'id' | 'title' | 'case_fold' | 'prefix_id' | 'prefix_title';
|
|
61
|
+
/**
|
|
62
|
+
* Per `cli-design.md` §5.3 step 3: when a token matches a column's
|
|
63
|
+
* ID *and* another column's title (after normalisation), the ID
|
|
64
|
+
* match wins (deterministic) but a `column_token_collision`
|
|
65
|
+
* warning surfaces so the caller can emit it on the envelope.
|
|
66
|
+
* Empty when no collision exists or `via` isn't `id` /
|
|
67
|
+
* `prefix_id`.
|
|
68
|
+
*/
|
|
69
|
+
readonly collisionCandidates: readonly {
|
|
70
|
+
readonly id: string;
|
|
71
|
+
readonly title: string;
|
|
72
|
+
readonly type: string;
|
|
73
|
+
}[];
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Splits an explicit-prefix token (`id:status_4` or `title:Status`)
|
|
77
|
+
* into its parts. Returns `undefined` for tokens with no prefix; the
|
|
78
|
+
* caller falls through to the implicit-resolution path. Only the
|
|
79
|
+
* literal prefixes `id:` and `title:` are recognised — anything else
|
|
80
|
+
* (`status:Done` is a filter operator, not a prefix) is left to the
|
|
81
|
+
* caller's parser.
|
|
82
|
+
*/
|
|
83
|
+
export declare const parseColumnTokenPrefix: (token: string) => {
|
|
84
|
+
readonly kind: "id" | "title";
|
|
85
|
+
readonly value: string;
|
|
86
|
+
} | undefined;
|
|
87
|
+
/**
|
|
88
|
+
* Resolves a token against a board's metadata. Pure function — no
|
|
89
|
+
* I/O. The auto-refresh-on-not-found path is in
|
|
90
|
+
* `resolveColumnWithRefresh` because that needs a client.
|
|
91
|
+
*
|
|
92
|
+
* Per §5.3 step 6, archived columns are filtered out of the
|
|
93
|
+
* resolver's view by default — they surface as `column_not_found`,
|
|
94
|
+
* not `column_archived`. The `column_archived` code is reserved for
|
|
95
|
+
* mutations that the M5b writer raises after explicitly resolving
|
|
96
|
+
* with `includeArchived: true` and inspecting the matched column.
|
|
97
|
+
*
|
|
98
|
+
* Throws `ApiError('ambiguous_column' | 'column_not_found')` per
|
|
99
|
+
* §6.5.
|
|
100
|
+
*/
|
|
101
|
+
export declare const resolveColumn: (metadata: BoardMetadata, token: string, options?: ResolveColumnOptions) => ColumnMatch;
|
|
102
|
+
export interface ResolveColumnWithRefreshInputs {
|
|
103
|
+
readonly client: MondayClient;
|
|
104
|
+
readonly boardId: BoardId | string;
|
|
105
|
+
readonly token: string;
|
|
106
|
+
readonly includeArchived?: boolean;
|
|
107
|
+
readonly env?: NodeJS.ProcessEnv;
|
|
108
|
+
readonly noCache?: boolean;
|
|
109
|
+
}
|
|
110
|
+
export interface ResolveColumnWithRefreshResult {
|
|
111
|
+
readonly match: ColumnMatch;
|
|
112
|
+
readonly metadata: BoardMetadata;
|
|
113
|
+
/**
|
|
114
|
+
* `cli-design.md` §6.1 `meta.source` for the resolution payload:
|
|
115
|
+
* - `live` — the metadata was fetched live (cache miss / refresh /
|
|
116
|
+
* `--no-cache`).
|
|
117
|
+
* - `cache` — the cache served and the resolution succeeded.
|
|
118
|
+
* - `mixed` — the cache served but missed the column, then a
|
|
119
|
+
* refresh produced the resolution. Per §8 / Codex M3 pass-1 §4
|
|
120
|
+
* this is the case that warrants the `stale_cache_refreshed`
|
|
121
|
+
* warning so the caller knows the cache was wrong.
|
|
122
|
+
*/
|
|
123
|
+
readonly source: 'live' | 'cache' | 'mixed';
|
|
124
|
+
readonly cacheAgeSeconds: number | null;
|
|
125
|
+
/**
|
|
126
|
+
* Resolver-emitted warnings the caller should fold into its envelope:
|
|
127
|
+
* - `column_token_collision` (§5.3 step 3) — the token matched a
|
|
128
|
+
* column ID *and* another column's title; the ID match won.
|
|
129
|
+
* - `stale_cache_refreshed` — auto-refresh fired and resolved the
|
|
130
|
+
* missing column.
|
|
131
|
+
*/
|
|
132
|
+
readonly warnings: readonly ResolverWarning[];
|
|
133
|
+
}
|
|
134
|
+
export interface ResolverWarning {
|
|
135
|
+
readonly code: 'column_token_collision' | 'stale_cache_refreshed';
|
|
136
|
+
readonly message: string;
|
|
137
|
+
readonly details: Readonly<Record<string, unknown>>;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Resolves a column token, auto-refreshing the board metadata cache
|
|
141
|
+
* **once** on `column_not_found` per §5.3 step 5. Other resolution
|
|
142
|
+
* errors (`ambiguous_column`, `column_archived`) bubble out
|
|
143
|
+
* immediately — refreshing wouldn't change them.
|
|
144
|
+
*
|
|
145
|
+
* `noCache: true` short-circuits the refresh path because the live
|
|
146
|
+
* data was already used; `column_not_found` is final under that
|
|
147
|
+
* mode.
|
|
148
|
+
*/
|
|
149
|
+
export declare const resolveColumnWithRefresh: (inputs: ResolveColumnWithRefreshInputs) => Promise<ResolveColumnWithRefreshResult>;
|
|
150
|
+
export interface ResolveColumnsAcrossClausesInputs {
|
|
151
|
+
/** Pre-loaded board metadata — caller already fetched it. */
|
|
152
|
+
readonly metadata: BoardMetadata;
|
|
153
|
+
/** Tokens to resolve, one per output `match`. Order is preserved. */
|
|
154
|
+
readonly tokens: readonly string[];
|
|
155
|
+
/**
|
|
156
|
+
* Cache-miss refresh callback. When provided, the FIRST
|
|
157
|
+
* `column_not_found` triggers exactly one refresh; subsequent
|
|
158
|
+
* misses bubble. Passed `undefined` when `inputs.metadata` was
|
|
159
|
+
* already a live fetch (refresh wouldn't help).
|
|
160
|
+
*/
|
|
161
|
+
readonly onColumnNotFound?: () => Promise<BoardMetadata>;
|
|
162
|
+
/** Per-clause resolution scope. Defaults to false. */
|
|
163
|
+
readonly includeArchived?: boolean;
|
|
164
|
+
}
|
|
165
|
+
export interface ResolveColumnsAcrossClausesResult {
|
|
166
|
+
/** One match per input token, same index. */
|
|
167
|
+
readonly matches: readonly ColumnMatch[];
|
|
168
|
+
/** Possibly refreshed metadata; identity-equal to inputs.metadata when no refresh fired. */
|
|
169
|
+
readonly metadata: BoardMetadata;
|
|
170
|
+
/** True when the refresh callback fired during resolution. */
|
|
171
|
+
readonly refreshed: boolean;
|
|
172
|
+
/** Resolver-emitted warnings (`column_token_collision`, `stale_cache_refreshed`). */
|
|
173
|
+
readonly warnings: readonly ResolverWarning[];
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Resolves a batch of column tokens against pre-loaded board
|
|
177
|
+
* metadata, with the same cache-miss-refresh-once semantics
|
|
178
|
+
* `resolveColumnWithRefresh` applies per token (R12 lift).
|
|
179
|
+
*
|
|
180
|
+
* **Why a batched helper.** Two M4 callers (`api/filters.ts
|
|
181
|
+
* buildFilterRules` and `commands/item/search.ts buildColumnQueries`)
|
|
182
|
+
* spelled the same try/catch loop verbatim — `try resolveColumn /
|
|
183
|
+
* catch column_not_found / call onColumnNotFound once / re-resolve /
|
|
184
|
+
* push stale_cache_refreshed warning`. They differed only in what
|
|
185
|
+
* each clause projected to (FilterRule vs ColumnQuery). M5b's bulk
|
|
186
|
+
* `item update --where` will need the same shape a third time;
|
|
187
|
+
* lifting now keeps the cache-miss-refresh contract a single source
|
|
188
|
+
* of truth and lets each caller stay focused on its per-clause
|
|
189
|
+
* projection.
|
|
190
|
+
*
|
|
191
|
+
* **Scope.** Resolution-only — no per-clause projection or value
|
|
192
|
+
* resolution (e.g. `me` token resolution belongs to the caller).
|
|
193
|
+
* The helper threads collision warnings + the single
|
|
194
|
+
* `stale_cache_refreshed` warning that fires when the refresh path
|
|
195
|
+
* triggers.
|
|
196
|
+
*
|
|
197
|
+
* **Why not the dry-run engine.** The dry-run engine's per-token
|
|
198
|
+
* loop calls the singular `resolveColumnWithRefresh`, which loads
|
|
199
|
+
* metadata internally (one cache hit per token rather than one
|
|
200
|
+
* shared metadata view). Different shape, different concern; lifting
|
|
201
|
+
* it onto the batched helper would change semantics. Tracked as a
|
|
202
|
+
* conscious design split — see the v0.1-plan §17 R12 entry.
|
|
203
|
+
*/
|
|
204
|
+
export declare const resolveColumnsAcrossClauses: (inputs: ResolveColumnsAcrossClausesInputs) => Promise<ResolveColumnsAcrossClausesResult>;
|
|
205
|
+
//# sourceMappingURL=columns.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"columns.d.ts","sourceRoot":"","sources":["../../src/api/columns.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,343 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Column read-resolver (`cli-design.md` §5.3, `v0.1-plan.md` §3 M3).
|
|
3
|
+
*
|
|
4
|
+
* Token → column ID resolution. The same module is reused by:
|
|
5
|
+
* - `board describe` (lists columns by ID + title);
|
|
6
|
+
* - the M4 filter parser (`--where status=Done` resolves "status");
|
|
7
|
+
* - M5a's value translator (`--set status=Done` resolves "status").
|
|
8
|
+
*
|
|
9
|
+
* Resolution order, from §5.3 step 2:
|
|
10
|
+
* 1. Exact match against column IDs (case-sensitive — Monday IDs are
|
|
11
|
+
* stable lowercase snake_case).
|
|
12
|
+
* 2. Exact match against column titles after NFC normalisation +
|
|
13
|
+
* whitespace trim + internal whitespace collapse.
|
|
14
|
+
* 3. Case-folded title match (Unicode-aware, locale-independent).
|
|
15
|
+
* 4. Ambiguous → `ambiguous_column` with `details.candidates`.
|
|
16
|
+
* 5. No match → `column_not_found`. Before surfacing, the caller
|
|
17
|
+
* can opt into a single auto-refresh of the board metadata via
|
|
18
|
+
* `resolveColumnWithRefresh` — guards against stale-cache false
|
|
19
|
+
* negatives after a column was added.
|
|
20
|
+
*
|
|
21
|
+
* **`title:` / `id:` prefix syntax** (§5.3 step 3) — explicit override
|
|
22
|
+
* for the rare ID-vs-title collision case. The prefix forces the
|
|
23
|
+
* resolution channel deterministically (`title:` always picks the
|
|
24
|
+
* title path; `id:` always picks the ID path). The `id:` form still
|
|
25
|
+
* surfaces a `column_token_collision` warning when the value happens
|
|
26
|
+
* to match another column's title — informational, not blocking, so
|
|
27
|
+
* agents auditing data shape on a long-lived board can see the
|
|
28
|
+
* overlap without rerunning the lookup. Suppressing the warning
|
|
29
|
+
* here would silently mask a real collision the agent might want
|
|
30
|
+
* to know about.
|
|
31
|
+
*
|
|
32
|
+
* **`--include-archived`** (§5.3 step 6) — archived columns are not
|
|
33
|
+
* resolvable by default. The resolver filters them out unless the
|
|
34
|
+
* caller passes `includeArchived: true`. Mutations against archived
|
|
35
|
+
* columns return `column_archived` regardless — that's M5b's
|
|
36
|
+
* concern; this module's job is the lookup.
|
|
37
|
+
*/
|
|
38
|
+
import { ApiError } from '../utils/errors.js';
|
|
39
|
+
import { loadBoardMetadata, refreshBoardMetadata, } from './board-metadata.js';
|
|
40
|
+
const detectCollision = (visible, match) => {
|
|
41
|
+
const target = caseFold(normaliseTitle(match.id));
|
|
42
|
+
const candidates = visible.filter((c) => c.id !== match.id && caseFold(normaliseTitle(c.title)) === target);
|
|
43
|
+
return candidates.map((c) => ({ id: c.id, title: c.title, type: c.type }));
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* NFC-normalises, trims, and collapses internal runs of whitespace
|
|
47
|
+
* to a single space. Per §5.3 step 2.b — all four bullets in one
|
|
48
|
+
* pass so callers don't accidentally apply the steps in a different
|
|
49
|
+
* order.
|
|
50
|
+
*/
|
|
51
|
+
const normaliseTitle = (s) => s.normalize('NFC').trim().replace(/\s+/gu, ' ');
|
|
52
|
+
/**
|
|
53
|
+
* Locale-independent case-fold. Unicode standard-issue: lower-case
|
|
54
|
+
* via the `und` (undefined / language-neutral) locale tag so a
|
|
55
|
+
* Turkish dotless-I doesn't decide it lowercases differently from
|
|
56
|
+
* everywhere else. Same rule the design's "case-folded
|
|
57
|
+
* (Unicode-aware, locale-independent)" line names.
|
|
58
|
+
*/
|
|
59
|
+
const caseFold = (s) => s.toLocaleLowerCase('und');
|
|
60
|
+
/**
|
|
61
|
+
* Splits an explicit-prefix token (`id:status_4` or `title:Status`)
|
|
62
|
+
* into its parts. Returns `undefined` for tokens with no prefix; the
|
|
63
|
+
* caller falls through to the implicit-resolution path. Only the
|
|
64
|
+
* literal prefixes `id:` and `title:` are recognised — anything else
|
|
65
|
+
* (`status:Done` is a filter operator, not a prefix) is left to the
|
|
66
|
+
* caller's parser.
|
|
67
|
+
*/
|
|
68
|
+
export const parseColumnTokenPrefix = (token) => {
|
|
69
|
+
if (token.startsWith('id:')) {
|
|
70
|
+
return { kind: 'id', value: token.slice(3) };
|
|
71
|
+
}
|
|
72
|
+
if (token.startsWith('title:')) {
|
|
73
|
+
return { kind: 'title', value: token.slice(6) };
|
|
74
|
+
}
|
|
75
|
+
return undefined;
|
|
76
|
+
};
|
|
77
|
+
const filterColumns = (metadata, includeArchived) => includeArchived
|
|
78
|
+
? metadata.columns
|
|
79
|
+
: metadata.columns.filter((c) => c.archived !== true);
|
|
80
|
+
const candidateDetails = (matches) => matches.map((c) => ({ id: c.id, title: c.title, type: c.type }));
|
|
81
|
+
/**
|
|
82
|
+
* Resolves a token against a board's metadata. Pure function — no
|
|
83
|
+
* I/O. The auto-refresh-on-not-found path is in
|
|
84
|
+
* `resolveColumnWithRefresh` because that needs a client.
|
|
85
|
+
*
|
|
86
|
+
* Per §5.3 step 6, archived columns are filtered out of the
|
|
87
|
+
* resolver's view by default — they surface as `column_not_found`,
|
|
88
|
+
* not `column_archived`. The `column_archived` code is reserved for
|
|
89
|
+
* mutations that the M5b writer raises after explicitly resolving
|
|
90
|
+
* with `includeArchived: true` and inspecting the matched column.
|
|
91
|
+
*
|
|
92
|
+
* Throws `ApiError('ambiguous_column' | 'column_not_found')` per
|
|
93
|
+
* §6.5.
|
|
94
|
+
*/
|
|
95
|
+
export const resolveColumn = (metadata, token, options = {}) => {
|
|
96
|
+
const includeArchived = options.includeArchived ?? false;
|
|
97
|
+
const visible = filterColumns(metadata, includeArchived);
|
|
98
|
+
const prefix = parseColumnTokenPrefix(token);
|
|
99
|
+
if (prefix !== undefined) {
|
|
100
|
+
return resolvePrefixed(visible, prefix, token);
|
|
101
|
+
}
|
|
102
|
+
// Step 1: exact ID match (case-sensitive). Restricted to the
|
|
103
|
+
// visible set so an archived column doesn't resolve via its id.
|
|
104
|
+
const idMatch = visible.find((c) => c.id === token);
|
|
105
|
+
if (idMatch !== undefined) {
|
|
106
|
+
return { column: idMatch, via: 'id', collisionCandidates: detectCollision(visible, idMatch) };
|
|
107
|
+
}
|
|
108
|
+
// Step 2: NFC-normalised exact title match.
|
|
109
|
+
const target = normaliseTitle(token);
|
|
110
|
+
const titleMatches = visible.filter((c) => normaliseTitle(c.title) === target);
|
|
111
|
+
if (titleMatches.length > 1) {
|
|
112
|
+
throw ambiguous(token, titleMatches);
|
|
113
|
+
}
|
|
114
|
+
const [titleOnly] = titleMatches;
|
|
115
|
+
if (titleOnly !== undefined) {
|
|
116
|
+
return { column: titleOnly, via: 'title', collisionCandidates: [] };
|
|
117
|
+
}
|
|
118
|
+
// Step 3: case-fold fallback. We only fall here when the
|
|
119
|
+
// NFC-exact pass produced zero matches.
|
|
120
|
+
const folded = caseFold(target);
|
|
121
|
+
const foldedMatches = visible.filter((c) => caseFold(normaliseTitle(c.title)) === folded);
|
|
122
|
+
if (foldedMatches.length > 1) {
|
|
123
|
+
throw ambiguous(token, foldedMatches);
|
|
124
|
+
}
|
|
125
|
+
const [foldedOnly] = foldedMatches;
|
|
126
|
+
if (foldedOnly !== undefined) {
|
|
127
|
+
return { column: foldedOnly, via: 'case_fold', collisionCandidates: [] };
|
|
128
|
+
}
|
|
129
|
+
throw notFound(token, metadata, includeArchived);
|
|
130
|
+
};
|
|
131
|
+
const resolvePrefixed = (visible, prefix, rawToken) => {
|
|
132
|
+
if (prefix.kind === 'id') {
|
|
133
|
+
const exact = visible.find((c) => c.id === prefix.value);
|
|
134
|
+
if (exact === undefined) {
|
|
135
|
+
throw notFoundForToken(rawToken, visible);
|
|
136
|
+
}
|
|
137
|
+
return {
|
|
138
|
+
column: exact,
|
|
139
|
+
via: 'prefix_id',
|
|
140
|
+
collisionCandidates: detectCollision(visible, exact),
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
const target = normaliseTitle(prefix.value);
|
|
144
|
+
const exactMatches = visible.filter((c) => normaliseTitle(c.title) === target);
|
|
145
|
+
if (exactMatches.length > 1) {
|
|
146
|
+
throw ambiguous(rawToken, exactMatches);
|
|
147
|
+
}
|
|
148
|
+
const [exactOnly] = exactMatches;
|
|
149
|
+
if (exactOnly !== undefined) {
|
|
150
|
+
return { column: exactOnly, via: 'prefix_title', collisionCandidates: [] };
|
|
151
|
+
}
|
|
152
|
+
const folded = caseFold(target);
|
|
153
|
+
const foldedMatches = visible.filter((c) => caseFold(normaliseTitle(c.title)) === folded);
|
|
154
|
+
if (foldedMatches.length > 1) {
|
|
155
|
+
throw ambiguous(rawToken, foldedMatches);
|
|
156
|
+
}
|
|
157
|
+
const [foldedOnly] = foldedMatches;
|
|
158
|
+
if (foldedOnly !== undefined) {
|
|
159
|
+
return { column: foldedOnly, via: 'prefix_title', collisionCandidates: [] };
|
|
160
|
+
}
|
|
161
|
+
throw notFoundForToken(rawToken, visible);
|
|
162
|
+
};
|
|
163
|
+
const ambiguous = (token, matches) => new ApiError('ambiguous_column', `Token ${JSON.stringify(token)} matches ${String(matches.length)} columns; ` +
|
|
164
|
+
'retry with the explicit "id:<column_id>" prefix.', {
|
|
165
|
+
details: {
|
|
166
|
+
token,
|
|
167
|
+
candidates: candidateDetails(matches),
|
|
168
|
+
},
|
|
169
|
+
});
|
|
170
|
+
const notFound = (token, metadata, includeArchived) => new ApiError('column_not_found', `No column on board ${metadata.id} matches token ${JSON.stringify(token)}`, {
|
|
171
|
+
details: {
|
|
172
|
+
token,
|
|
173
|
+
board_id: metadata.id,
|
|
174
|
+
include_archived: includeArchived,
|
|
175
|
+
},
|
|
176
|
+
});
|
|
177
|
+
const notFoundForToken = (token, visible) => new ApiError('column_not_found', `No column matches token ${JSON.stringify(token)}`, {
|
|
178
|
+
details: {
|
|
179
|
+
token,
|
|
180
|
+
candidate_count: visible.length,
|
|
181
|
+
},
|
|
182
|
+
});
|
|
183
|
+
const collisionWarning = (match) => {
|
|
184
|
+
if (match.collisionCandidates.length === 0)
|
|
185
|
+
return undefined;
|
|
186
|
+
return {
|
|
187
|
+
code: 'column_token_collision',
|
|
188
|
+
message: `Token matched column id "${match.column.id}" and ` +
|
|
189
|
+
`${String(match.collisionCandidates.length)} title(s); the ID match wins.`,
|
|
190
|
+
details: {
|
|
191
|
+
via: match.via,
|
|
192
|
+
resolved_id: match.column.id,
|
|
193
|
+
candidates: match.collisionCandidates,
|
|
194
|
+
},
|
|
195
|
+
};
|
|
196
|
+
};
|
|
197
|
+
/**
|
|
198
|
+
* Resolves a column token, auto-refreshing the board metadata cache
|
|
199
|
+
* **once** on `column_not_found` per §5.3 step 5. Other resolution
|
|
200
|
+
* errors (`ambiguous_column`, `column_archived`) bubble out
|
|
201
|
+
* immediately — refreshing wouldn't change them.
|
|
202
|
+
*
|
|
203
|
+
* `noCache: true` short-circuits the refresh path because the live
|
|
204
|
+
* data was already used; `column_not_found` is final under that
|
|
205
|
+
* mode.
|
|
206
|
+
*/
|
|
207
|
+
export const resolveColumnWithRefresh = async (inputs) => {
|
|
208
|
+
/* c8 ignore next — `inputs.env` is always supplied in tests and
|
|
209
|
+
in the production action body (via `ctx.env`); the
|
|
210
|
+
`?? process.env` fallback is defensive against a future
|
|
211
|
+
embedder that constructs the resolver bare. */
|
|
212
|
+
const env = inputs.env ?? process.env;
|
|
213
|
+
const includeArchived = inputs.includeArchived ?? false;
|
|
214
|
+
const first = await loadBoardMetadata({
|
|
215
|
+
client: inputs.client,
|
|
216
|
+
boardId: inputs.boardId,
|
|
217
|
+
env,
|
|
218
|
+
...(inputs.noCache === undefined ? {} : { noCache: inputs.noCache }),
|
|
219
|
+
});
|
|
220
|
+
try {
|
|
221
|
+
const match = resolveColumn(first.metadata, inputs.token, { includeArchived });
|
|
222
|
+
const warnings = [];
|
|
223
|
+
const collision = collisionWarning(match);
|
|
224
|
+
if (collision !== undefined)
|
|
225
|
+
warnings.push(collision);
|
|
226
|
+
return {
|
|
227
|
+
match,
|
|
228
|
+
metadata: first.metadata,
|
|
229
|
+
source: first.source,
|
|
230
|
+
cacheAgeSeconds: first.cacheAgeSeconds,
|
|
231
|
+
warnings,
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
catch (err) {
|
|
235
|
+
const isMissing = err instanceof ApiError && err.code === 'column_not_found';
|
|
236
|
+
if (!isMissing || first.source === 'live' || inputs.noCache === true) {
|
|
237
|
+
throw err;
|
|
238
|
+
}
|
|
239
|
+
// Cache hit + missing column → one chance to refresh.
|
|
240
|
+
const refreshed = await refreshBoardMetadata({
|
|
241
|
+
client: inputs.client,
|
|
242
|
+
boardId: inputs.boardId,
|
|
243
|
+
env,
|
|
244
|
+
});
|
|
245
|
+
const match = resolveColumn(refreshed.metadata, inputs.token, {
|
|
246
|
+
includeArchived,
|
|
247
|
+
});
|
|
248
|
+
const warnings = [
|
|
249
|
+
{
|
|
250
|
+
code: 'stale_cache_refreshed',
|
|
251
|
+
message: 'Cache miss for token; refreshed board metadata to resolve.',
|
|
252
|
+
details: {
|
|
253
|
+
board_id: refreshed.metadata.id,
|
|
254
|
+
token: inputs.token,
|
|
255
|
+
},
|
|
256
|
+
},
|
|
257
|
+
];
|
|
258
|
+
const collision = collisionWarning(match);
|
|
259
|
+
if (collision !== undefined)
|
|
260
|
+
warnings.push(collision);
|
|
261
|
+
return {
|
|
262
|
+
match,
|
|
263
|
+
metadata: refreshed.metadata,
|
|
264
|
+
source: 'mixed',
|
|
265
|
+
// Carry the *original* cache age forward — agents reading
|
|
266
|
+
// `meta.cache_age_seconds` on a `mixed` result want to know how
|
|
267
|
+
// stale the cache was when the resolver had to refresh, not a
|
|
268
|
+
// null. Codex M3 pass-2 §1 caught this; without it, a `mixed`
|
|
269
|
+
// envelope claimed `cache_age_seconds: null` even though the
|
|
270
|
+
// first leg WAS a cache hit.
|
|
271
|
+
cacheAgeSeconds: first.cacheAgeSeconds,
|
|
272
|
+
warnings,
|
|
273
|
+
};
|
|
274
|
+
}
|
|
275
|
+
};
|
|
276
|
+
/**
|
|
277
|
+
* Resolves a batch of column tokens against pre-loaded board
|
|
278
|
+
* metadata, with the same cache-miss-refresh-once semantics
|
|
279
|
+
* `resolveColumnWithRefresh` applies per token (R12 lift).
|
|
280
|
+
*
|
|
281
|
+
* **Why a batched helper.** Two M4 callers (`api/filters.ts
|
|
282
|
+
* buildFilterRules` and `commands/item/search.ts buildColumnQueries`)
|
|
283
|
+
* spelled the same try/catch loop verbatim — `try resolveColumn /
|
|
284
|
+
* catch column_not_found / call onColumnNotFound once / re-resolve /
|
|
285
|
+
* push stale_cache_refreshed warning`. They differed only in what
|
|
286
|
+
* each clause projected to (FilterRule vs ColumnQuery). M5b's bulk
|
|
287
|
+
* `item update --where` will need the same shape a third time;
|
|
288
|
+
* lifting now keeps the cache-miss-refresh contract a single source
|
|
289
|
+
* of truth and lets each caller stay focused on its per-clause
|
|
290
|
+
* projection.
|
|
291
|
+
*
|
|
292
|
+
* **Scope.** Resolution-only — no per-clause projection or value
|
|
293
|
+
* resolution (e.g. `me` token resolution belongs to the caller).
|
|
294
|
+
* The helper threads collision warnings + the single
|
|
295
|
+
* `stale_cache_refreshed` warning that fires when the refresh path
|
|
296
|
+
* triggers.
|
|
297
|
+
*
|
|
298
|
+
* **Why not the dry-run engine.** The dry-run engine's per-token
|
|
299
|
+
* loop calls the singular `resolveColumnWithRefresh`, which loads
|
|
300
|
+
* metadata internally (one cache hit per token rather than one
|
|
301
|
+
* shared metadata view). Different shape, different concern; lifting
|
|
302
|
+
* it onto the batched helper would change semantics. Tracked as a
|
|
303
|
+
* conscious design split — see the v0.1-plan §17 R12 entry.
|
|
304
|
+
*/
|
|
305
|
+
export const resolveColumnsAcrossClauses = async (inputs) => {
|
|
306
|
+
const includeArchived = inputs.includeArchived ?? false;
|
|
307
|
+
const matches = [];
|
|
308
|
+
const warnings = [];
|
|
309
|
+
let metadata = inputs.metadata;
|
|
310
|
+
let refreshed = false;
|
|
311
|
+
for (const token of inputs.tokens) {
|
|
312
|
+
let match;
|
|
313
|
+
try {
|
|
314
|
+
match = resolveColumn(metadata, token, { includeArchived });
|
|
315
|
+
}
|
|
316
|
+
catch (err) {
|
|
317
|
+
// Cache-miss-refresh per §5.3 step 5: only the first
|
|
318
|
+
// `column_not_found` triggers a refresh; subsequent misses
|
|
319
|
+
// bubble. Other resolution errors (`ambiguous_column`) bubble
|
|
320
|
+
// immediately — refreshing wouldn't change them.
|
|
321
|
+
const isMissing = err instanceof ApiError && err.code === 'column_not_found';
|
|
322
|
+
if (!isMissing ||
|
|
323
|
+
inputs.onColumnNotFound === undefined ||
|
|
324
|
+
refreshed) {
|
|
325
|
+
throw err;
|
|
326
|
+
}
|
|
327
|
+
metadata = await inputs.onColumnNotFound();
|
|
328
|
+
refreshed = true;
|
|
329
|
+
warnings.push({
|
|
330
|
+
code: 'stale_cache_refreshed',
|
|
331
|
+
message: 'Cache miss for filter token; refreshed board metadata to resolve.',
|
|
332
|
+
details: { token, board_id: metadata.id },
|
|
333
|
+
});
|
|
334
|
+
match = resolveColumn(metadata, token, { includeArchived });
|
|
335
|
+
}
|
|
336
|
+
const collision = collisionWarning(match);
|
|
337
|
+
if (collision !== undefined)
|
|
338
|
+
warnings.push(collision);
|
|
339
|
+
matches.push(match);
|
|
340
|
+
}
|
|
341
|
+
return { matches, metadata, refreshed, warnings };
|
|
342
|
+
};
|
|
343
|
+
//# sourceMappingURL=columns.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"columns.js","sourceRoot":"","sources":["../../src/api/columns.ts"],"names":[],"mappings":"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"}
|