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.
Files changed (596) hide show
  1. package/CHANGELOG.md +439 -0
  2. package/LICENSE +21 -0
  3. package/README.md +431 -0
  4. package/dist/api/board-child-finder.d.ts +95 -0
  5. package/dist/api/board-child-finder.d.ts.map +1 -0
  6. package/dist/api/board-child-finder.js +89 -0
  7. package/dist/api/board-child-finder.js.map +1 -0
  8. package/dist/api/board-metadata.d.ts +162 -0
  9. package/dist/api/board-metadata.d.ts.map +1 -0
  10. package/dist/api/board-metadata.js +238 -0
  11. package/dist/api/board-metadata.js.map +1 -0
  12. package/dist/api/board-mutation-invalidation.d.ts +153 -0
  13. package/dist/api/board-mutation-invalidation.d.ts.map +1 -0
  14. package/dist/api/board-mutation-invalidation.js +136 -0
  15. package/dist/api/board-mutation-invalidation.js.map +1 -0
  16. package/dist/api/board-mutation-result.d.ts +97 -0
  17. package/dist/api/board-mutation-result.d.ts.map +1 -0
  18. package/dist/api/board-mutation-result.js +99 -0
  19. package/dist/api/board-mutation-result.js.map +1 -0
  20. package/dist/api/board-projection.d.ts +68 -0
  21. package/dist/api/board-projection.d.ts.map +1 -0
  22. package/dist/api/board-projection.js +79 -0
  23. package/dist/api/board-projection.js.map +1 -0
  24. package/dist/api/cache.d.ts +150 -0
  25. package/dist/api/cache.d.ts.map +1 -0
  26. package/dist/api/cache.js +418 -0
  27. package/dist/api/cache.js.map +1 -0
  28. package/dist/api/client.d.ts +162 -0
  29. package/dist/api/client.d.ts.map +1 -0
  30. package/dist/api/client.js +205 -0
  31. package/dist/api/client.js.map +1 -0
  32. package/dist/api/column-mapping.d.ts +68 -0
  33. package/dist/api/column-mapping.d.ts.map +1 -0
  34. package/dist/api/column-mapping.js +117 -0
  35. package/dist/api/column-mapping.js.map +1 -0
  36. package/dist/api/column-mutation-result.d.ts +136 -0
  37. package/dist/api/column-mutation-result.d.ts.map +1 -0
  38. package/dist/api/column-mutation-result.js +130 -0
  39. package/dist/api/column-mutation-result.js.map +1 -0
  40. package/dist/api/column-types.d.ts +215 -0
  41. package/dist/api/column-types.d.ts.map +1 -0
  42. package/dist/api/column-types.js +195 -0
  43. package/dist/api/column-types.js.map +1 -0
  44. package/dist/api/column-values.d.ts +446 -0
  45. package/dist/api/column-values.d.ts.map +1 -0
  46. package/dist/api/column-values.js +795 -0
  47. package/dist/api/column-values.js.map +1 -0
  48. package/dist/api/columns.d.ts +205 -0
  49. package/dist/api/columns.d.ts.map +1 -0
  50. package/dist/api/columns.js +343 -0
  51. package/dist/api/columns.js.map +1 -0
  52. package/dist/api/complexity.d.ts +90 -0
  53. package/dist/api/complexity.d.ts.map +1 -0
  54. package/dist/api/complexity.js +194 -0
  55. package/dist/api/complexity.js.map +1 -0
  56. package/dist/api/dates.d.ts +150 -0
  57. package/dist/api/dates.d.ts.map +1 -0
  58. package/dist/api/dates.js +490 -0
  59. package/dist/api/dates.js.map +1 -0
  60. package/dist/api/destructive-gate.d.ts +107 -0
  61. package/dist/api/destructive-gate.d.ts.map +1 -0
  62. package/dist/api/destructive-gate.js +19 -0
  63. package/dist/api/destructive-gate.js.map +1 -0
  64. package/dist/api/dry-run.d.ts +338 -0
  65. package/dist/api/dry-run.d.ts.map +1 -0
  66. package/dist/api/dry-run.js +607 -0
  67. package/dist/api/dry-run.js.map +1 -0
  68. package/dist/api/emails.d.ts +60 -0
  69. package/dist/api/emails.d.ts.map +1 -0
  70. package/dist/api/emails.js +113 -0
  71. package/dist/api/emails.js.map +1 -0
  72. package/dist/api/errors.d.ts +82 -0
  73. package/dist/api/errors.d.ts.map +1 -0
  74. package/dist/api/errors.js +434 -0
  75. package/dist/api/errors.js.map +1 -0
  76. package/dist/api/filters.d.ts +198 -0
  77. package/dist/api/filters.d.ts.map +1 -0
  78. package/dist/api/filters.js +328 -0
  79. package/dist/api/filters.js.map +1 -0
  80. package/dist/api/group-color.d.ts +33 -0
  81. package/dist/api/group-color.d.ts.map +1 -0
  82. package/dist/api/group-color.js +80 -0
  83. package/dist/api/group-color.js.map +1 -0
  84. package/dist/api/group-mutation-result.d.ts +150 -0
  85. package/dist/api/group-mutation-result.d.ts.map +1 -0
  86. package/dist/api/group-mutation-result.js +141 -0
  87. package/dist/api/group-mutation-result.js.map +1 -0
  88. package/dist/api/iso-country-codes.d.ts +45 -0
  89. package/dist/api/iso-country-codes.d.ts.map +1 -0
  90. package/dist/api/iso-country-codes.js +71 -0
  91. package/dist/api/iso-country-codes.js.map +1 -0
  92. package/dist/api/item-board-lookup.d.ts +86 -0
  93. package/dist/api/item-board-lookup.d.ts.map +1 -0
  94. package/dist/api/item-board-lookup.js +140 -0
  95. package/dist/api/item-board-lookup.js.map +1 -0
  96. package/dist/api/item-helpers.d.ts +133 -0
  97. package/dist/api/item-helpers.d.ts.map +1 -0
  98. package/dist/api/item-helpers.js +139 -0
  99. package/dist/api/item-helpers.js.map +1 -0
  100. package/dist/api/item-mutation-result.d.ts +60 -0
  101. package/dist/api/item-mutation-result.d.ts.map +1 -0
  102. package/dist/api/item-mutation-result.js +63 -0
  103. package/dist/api/item-mutation-result.js.map +1 -0
  104. package/dist/api/item-projection.d.ts +165 -0
  105. package/dist/api/item-projection.d.ts.map +1 -0
  106. package/dist/api/item-projection.js +235 -0
  107. package/dist/api/item-projection.js.map +1 -0
  108. package/dist/api/item-source-read.d.ts +45 -0
  109. package/dist/api/item-source-read.d.ts.map +1 -0
  110. package/dist/api/item-source-read.js +57 -0
  111. package/dist/api/item-source-read.js.map +1 -0
  112. package/dist/api/items-page-walker.d.ts +126 -0
  113. package/dist/api/items-page-walker.d.ts.map +1 -0
  114. package/dist/api/items-page-walker.js +256 -0
  115. package/dist/api/items-page-walker.js.map +1 -0
  116. package/dist/api/links.d.ts +70 -0
  117. package/dist/api/links.d.ts.map +1 -0
  118. package/dist/api/links.js +128 -0
  119. package/dist/api/links.js.map +1 -0
  120. package/dist/api/me-token.d.ts +52 -0
  121. package/dist/api/me-token.d.ts.map +1 -0
  122. package/dist/api/me-token.js +55 -0
  123. package/dist/api/me-token.js.map +1 -0
  124. package/dist/api/pagination.d.ts +201 -0
  125. package/dist/api/pagination.d.ts.map +1 -0
  126. package/dist/api/pagination.js +223 -0
  127. package/dist/api/pagination.js.map +1 -0
  128. package/dist/api/partial-success-mutation.d.ts +28 -0
  129. package/dist/api/partial-success-mutation.d.ts.map +1 -0
  130. package/dist/api/partial-success-mutation.js +68 -0
  131. package/dist/api/partial-success-mutation.js.map +1 -0
  132. package/dist/api/people.d.ts +182 -0
  133. package/dist/api/people.d.ts.map +1 -0
  134. package/dist/api/people.js +260 -0
  135. package/dist/api/people.js.map +1 -0
  136. package/dist/api/phones.d.ts +74 -0
  137. package/dist/api/phones.d.ts.map +1 -0
  138. package/dist/api/phones.js +167 -0
  139. package/dist/api/phones.js.map +1 -0
  140. package/dist/api/raw-document.d.ts +53 -0
  141. package/dist/api/raw-document.d.ts.map +1 -0
  142. package/dist/api/raw-document.js +177 -0
  143. package/dist/api/raw-document.js.map +1 -0
  144. package/dist/api/raw-write.d.ts +127 -0
  145. package/dist/api/raw-write.d.ts.map +1 -0
  146. package/dist/api/raw-write.js +233 -0
  147. package/dist/api/raw-write.js.map +1 -0
  148. package/dist/api/resolution-context.d.ts +32 -0
  149. package/dist/api/resolution-context.d.ts.map +1 -0
  150. package/dist/api/resolution-context.js +42 -0
  151. package/dist/api/resolution-context.js.map +1 -0
  152. package/dist/api/resolution-pass.d.ts +163 -0
  153. package/dist/api/resolution-pass.d.ts.map +1 -0
  154. package/dist/api/resolution-pass.js +254 -0
  155. package/dist/api/resolution-pass.js.map +1 -0
  156. package/dist/api/resolve-client.d.ts +69 -0
  157. package/dist/api/resolve-client.d.ts.map +1 -0
  158. package/dist/api/resolve-client.js +70 -0
  159. package/dist/api/resolve-client.js.map +1 -0
  160. package/dist/api/resolver-error-fold.d.ts +176 -0
  161. package/dist/api/resolver-error-fold.d.ts.map +1 -0
  162. package/dist/api/resolver-error-fold.js +230 -0
  163. package/dist/api/resolver-error-fold.js.map +1 -0
  164. package/dist/api/resolvers.d.ts +131 -0
  165. package/dist/api/resolvers.d.ts.map +1 -0
  166. package/dist/api/resolvers.js +262 -0
  167. package/dist/api/resolvers.js.map +1 -0
  168. package/dist/api/response-root.d.ts +65 -0
  169. package/dist/api/response-root.d.ts.map +1 -0
  170. package/dist/api/response-root.js +61 -0
  171. package/dist/api/response-root.js.map +1 -0
  172. package/dist/api/retry.d.ts +112 -0
  173. package/dist/api/retry.d.ts.map +1 -0
  174. package/dist/api/retry.js +181 -0
  175. package/dist/api/retry.js.map +1 -0
  176. package/dist/api/set-expression.d.ts +23 -0
  177. package/dist/api/set-expression.d.ts.map +1 -0
  178. package/dist/api/set-expression.js +31 -0
  179. package/dist/api/set-expression.js.map +1 -0
  180. package/dist/api/sort.d.ts +59 -0
  181. package/dist/api/sort.d.ts.map +1 -0
  182. package/dist/api/sort.js +73 -0
  183. package/dist/api/sort.js.map +1 -0
  184. package/dist/api/source-aggregator.d.ts +94 -0
  185. package/dist/api/source-aggregator.d.ts.map +1 -0
  186. package/dist/api/source-aggregator.js +111 -0
  187. package/dist/api/source-aggregator.js.map +1 -0
  188. package/dist/api/transport.d.ts +58 -0
  189. package/dist/api/transport.d.ts.map +1 -0
  190. package/dist/api/transport.js +190 -0
  191. package/dist/api/transport.js.map +1 -0
  192. package/dist/api/update-mutation-result.d.ts +133 -0
  193. package/dist/api/update-mutation-result.d.ts.map +1 -0
  194. package/dist/api/update-mutation-result.js +145 -0
  195. package/dist/api/update-mutation-result.js.map +1 -0
  196. package/dist/api/users-fan-out-mutation.d.ts +124 -0
  197. package/dist/api/users-fan-out-mutation.d.ts.map +1 -0
  198. package/dist/api/users-fan-out-mutation.js +331 -0
  199. package/dist/api/users-fan-out-mutation.js.map +1 -0
  200. package/dist/api/walk-pages.d.ts +91 -0
  201. package/dist/api/walk-pages.d.ts.map +1 -0
  202. package/dist/api/walk-pages.js +84 -0
  203. package/dist/api/walk-pages.js.map +1 -0
  204. package/dist/api/workspace-projection.d.ts +64 -0
  205. package/dist/api/workspace-projection.d.ts.map +1 -0
  206. package/dist/api/workspace-projection.js +83 -0
  207. package/dist/api/workspace-projection.js.map +1 -0
  208. package/dist/cli/envelope-out.d.ts +128 -0
  209. package/dist/cli/envelope-out.d.ts.map +1 -0
  210. package/dist/cli/envelope-out.js +146 -0
  211. package/dist/cli/envelope-out.js.map +1 -0
  212. package/dist/cli/index.d.ts +3 -0
  213. package/dist/cli/index.d.ts.map +1 -0
  214. package/dist/cli/index.js +27 -0
  215. package/dist/cli/index.js.map +1 -0
  216. package/dist/cli/program.d.ts +29 -0
  217. package/dist/cli/program.d.ts.map +1 -0
  218. package/dist/cli/program.js +109 -0
  219. package/dist/cli/program.js.map +1 -0
  220. package/dist/cli/run.d.ts +108 -0
  221. package/dist/cli/run.d.ts.map +1 -0
  222. package/dist/cli/run.js +105 -0
  223. package/dist/cli/run.js.map +1 -0
  224. package/dist/commands/account/client-helper.d.ts +37 -0
  225. package/dist/commands/account/client-helper.d.ts.map +1 -0
  226. package/dist/commands/account/client-helper.js +55 -0
  227. package/dist/commands/account/client-helper.js.map +1 -0
  228. package/dist/commands/account/complexity.d.ts +29 -0
  229. package/dist/commands/account/complexity.d.ts.map +1 -0
  230. package/dist/commands/account/complexity.js +70 -0
  231. package/dist/commands/account/complexity.js.map +1 -0
  232. package/dist/commands/account/info.d.ts +36 -0
  233. package/dist/commands/account/info.d.ts.map +1 -0
  234. package/dist/commands/account/info.js +74 -0
  235. package/dist/commands/account/info.js.map +1 -0
  236. package/dist/commands/account/version.d.ts +44 -0
  237. package/dist/commands/account/version.d.ts.map +1 -0
  238. package/dist/commands/account/version.js +98 -0
  239. package/dist/commands/account/version.js.map +1 -0
  240. package/dist/commands/account/whoami.d.ts +34 -0
  241. package/dist/commands/account/whoami.d.ts.map +1 -0
  242. package/dist/commands/account/whoami.js +77 -0
  243. package/dist/commands/account/whoami.js.map +1 -0
  244. package/dist/commands/board/add-users.d.ts +60 -0
  245. package/dist/commands/board/add-users.d.ts.map +1 -0
  246. package/dist/commands/board/add-users.js +133 -0
  247. package/dist/commands/board/add-users.js.map +1 -0
  248. package/dist/commands/board/archive.d.ts +64 -0
  249. package/dist/commands/board/archive.d.ts.map +1 -0
  250. package/dist/commands/board/archive.js +226 -0
  251. package/dist/commands/board/archive.js.map +1 -0
  252. package/dist/commands/board/column-create.d.ts +146 -0
  253. package/dist/commands/board/column-create.d.ts.map +1 -0
  254. package/dist/commands/board/column-create.js +564 -0
  255. package/dist/commands/board/column-create.js.map +1 -0
  256. package/dist/commands/board/column-delete.d.ts +76 -0
  257. package/dist/commands/board/column-delete.d.ts.map +1 -0
  258. package/dist/commands/board/column-delete.js +224 -0
  259. package/dist/commands/board/column-delete.js.map +1 -0
  260. package/dist/commands/board/column-update.d.ts +92 -0
  261. package/dist/commands/board/column-update.d.ts.map +1 -0
  262. package/dist/commands/board/column-update.js +364 -0
  263. package/dist/commands/board/column-update.js.map +1 -0
  264. package/dist/commands/board/columns.d.ts +30 -0
  265. package/dist/commands/board/columns.d.ts.map +1 -0
  266. package/dist/commands/board/columns.js +102 -0
  267. package/dist/commands/board/columns.js.map +1 -0
  268. package/dist/commands/board/create.d.ts +67 -0
  269. package/dist/commands/board/create.d.ts.map +1 -0
  270. package/dist/commands/board/create.js +226 -0
  271. package/dist/commands/board/create.js.map +1 -0
  272. package/dist/commands/board/delete.d.ts +60 -0
  273. package/dist/commands/board/delete.d.ts.map +1 -0
  274. package/dist/commands/board/delete.js +192 -0
  275. package/dist/commands/board/delete.js.map +1 -0
  276. package/dist/commands/board/describe.d.ts +68 -0
  277. package/dist/commands/board/describe.d.ts.map +1 -0
  278. package/dist/commands/board/describe.js +241 -0
  279. package/dist/commands/board/describe.js.map +1 -0
  280. package/dist/commands/board/doctor.d.ts +108 -0
  281. package/dist/commands/board/doctor.d.ts.map +1 -0
  282. package/dist/commands/board/doctor.js +417 -0
  283. package/dist/commands/board/doctor.js.map +1 -0
  284. package/dist/commands/board/duplicate.d.ts +85 -0
  285. package/dist/commands/board/duplicate.d.ts.map +1 -0
  286. package/dist/commands/board/duplicate.js +281 -0
  287. package/dist/commands/board/duplicate.js.map +1 -0
  288. package/dist/commands/board/find.d.ts +47 -0
  289. package/dist/commands/board/find.d.ts.map +1 -0
  290. package/dist/commands/board/find.js +153 -0
  291. package/dist/commands/board/find.js.map +1 -0
  292. package/dist/commands/board/get.d.ts +41 -0
  293. package/dist/commands/board/get.d.ts.map +1 -0
  294. package/dist/commands/board/get.js +66 -0
  295. package/dist/commands/board/get.js.map +1 -0
  296. package/dist/commands/board/group-archive.d.ts +83 -0
  297. package/dist/commands/board/group-archive.d.ts.map +1 -0
  298. package/dist/commands/board/group-archive.js +264 -0
  299. package/dist/commands/board/group-archive.js.map +1 -0
  300. package/dist/commands/board/group-create.d.ts +118 -0
  301. package/dist/commands/board/group-create.d.ts.map +1 -0
  302. package/dist/commands/board/group-create.js +239 -0
  303. package/dist/commands/board/group-create.js.map +1 -0
  304. package/dist/commands/board/group-delete.d.ts +79 -0
  305. package/dist/commands/board/group-delete.d.ts.map +1 -0
  306. package/dist/commands/board/group-delete.js +222 -0
  307. package/dist/commands/board/group-delete.js.map +1 -0
  308. package/dist/commands/board/group-duplicate.d.ts +70 -0
  309. package/dist/commands/board/group-duplicate.d.ts.map +1 -0
  310. package/dist/commands/board/group-duplicate.js +219 -0
  311. package/dist/commands/board/group-duplicate.js.map +1 -0
  312. package/dist/commands/board/group-update.d.ts +145 -0
  313. package/dist/commands/board/group-update.d.ts.map +1 -0
  314. package/dist/commands/board/group-update.js +341 -0
  315. package/dist/commands/board/group-update.js.map +1 -0
  316. package/dist/commands/board/groups.d.ts +28 -0
  317. package/dist/commands/board/groups.d.ts.map +1 -0
  318. package/dist/commands/board/groups.js +85 -0
  319. package/dist/commands/board/groups.js.map +1 -0
  320. package/dist/commands/board/list.d.ts +39 -0
  321. package/dist/commands/board/list.d.ts.map +1 -0
  322. package/dist/commands/board/list.js +135 -0
  323. package/dist/commands/board/list.js.map +1 -0
  324. package/dist/commands/board/subscribers.d.ts +24 -0
  325. package/dist/commands/board/subscribers.d.ts.map +1 -0
  326. package/dist/commands/board/subscribers.js +89 -0
  327. package/dist/commands/board/subscribers.js.map +1 -0
  328. package/dist/commands/board/update.d.ts +82 -0
  329. package/dist/commands/board/update.d.ts.map +1 -0
  330. package/dist/commands/board/update.js +328 -0
  331. package/dist/commands/board/update.js.map +1 -0
  332. package/dist/commands/cache/clear.d.ts +34 -0
  333. package/dist/commands/cache/clear.d.ts.map +1 -0
  334. package/dist/commands/cache/clear.js +113 -0
  335. package/dist/commands/cache/clear.js.map +1 -0
  336. package/dist/commands/cache/list.d.ts +50 -0
  337. package/dist/commands/cache/list.d.ts.map +1 -0
  338. package/dist/commands/cache/list.js +77 -0
  339. package/dist/commands/cache/list.js.map +1 -0
  340. package/dist/commands/cache/stats.d.ts +22 -0
  341. package/dist/commands/cache/stats.d.ts.map +1 -0
  342. package/dist/commands/cache/stats.js +56 -0
  343. package/dist/commands/cache/stats.js.map +1 -0
  344. package/dist/commands/config/path.d.ts +22 -0
  345. package/dist/commands/config/path.d.ts.map +1 -0
  346. package/dist/commands/config/path.js +74 -0
  347. package/dist/commands/config/path.js.map +1 -0
  348. package/dist/commands/config/show.d.ts +61 -0
  349. package/dist/commands/config/show.d.ts.map +1 -0
  350. package/dist/commands/config/show.js +137 -0
  351. package/dist/commands/config/show.js.map +1 -0
  352. package/dist/commands/emit.d.ts +156 -0
  353. package/dist/commands/emit.d.ts.map +1 -0
  354. package/dist/commands/emit.js +212 -0
  355. package/dist/commands/emit.js.map +1 -0
  356. package/dist/commands/index.d.ts +5 -0
  357. package/dist/commands/index.d.ts.map +1 -0
  358. package/dist/commands/index.js +195 -0
  359. package/dist/commands/index.js.map +1 -0
  360. package/dist/commands/item/archive.d.ts +81 -0
  361. package/dist/commands/item/archive.d.ts.map +1 -0
  362. package/dist/commands/item/archive.js +187 -0
  363. package/dist/commands/item/archive.js.map +1 -0
  364. package/dist/commands/item/clear.d.ts +140 -0
  365. package/dist/commands/item/clear.d.ts.map +1 -0
  366. package/dist/commands/item/clear.js +748 -0
  367. package/dist/commands/item/clear.js.map +1 -0
  368. package/dist/commands/item/create.d.ts +77 -0
  369. package/dist/commands/item/create.d.ts.map +1 -0
  370. package/dist/commands/item/create.js +802 -0
  371. package/dist/commands/item/create.js.map +1 -0
  372. package/dist/commands/item/delete.d.ts +82 -0
  373. package/dist/commands/item/delete.d.ts.map +1 -0
  374. package/dist/commands/item/delete.js +179 -0
  375. package/dist/commands/item/delete.js.map +1 -0
  376. package/dist/commands/item/duplicate.d.ts +117 -0
  377. package/dist/commands/item/duplicate.d.ts.map +1 -0
  378. package/dist/commands/item/duplicate.js +238 -0
  379. package/dist/commands/item/duplicate.js.map +1 -0
  380. package/dist/commands/item/find.d.ts +55 -0
  381. package/dist/commands/item/find.d.ts.map +1 -0
  382. package/dist/commands/item/find.js +231 -0
  383. package/dist/commands/item/find.js.map +1 -0
  384. package/dist/commands/item/get.d.ts +47 -0
  385. package/dist/commands/item/get.d.ts.map +1 -0
  386. package/dist/commands/item/get.js +66 -0
  387. package/dist/commands/item/get.js.map +1 -0
  388. package/dist/commands/item/list.d.ts +73 -0
  389. package/dist/commands/item/list.d.ts.map +1 -0
  390. package/dist/commands/item/list.js +284 -0
  391. package/dist/commands/item/list.js.map +1 -0
  392. package/dist/commands/item/move.d.ts +181 -0
  393. package/dist/commands/item/move.d.ts.map +1 -0
  394. package/dist/commands/item/move.js +560 -0
  395. package/dist/commands/item/move.js.map +1 -0
  396. package/dist/commands/item/search.d.ts +67 -0
  397. package/dist/commands/item/search.d.ts.map +1 -0
  398. package/dist/commands/item/search.js +322 -0
  399. package/dist/commands/item/search.js.map +1 -0
  400. package/dist/commands/item/set.d.ts +88 -0
  401. package/dist/commands/item/set.d.ts.map +1 -0
  402. package/dist/commands/item/set.js +387 -0
  403. package/dist/commands/item/set.js.map +1 -0
  404. package/dist/commands/item/subitems.d.ts +50 -0
  405. package/dist/commands/item/subitems.d.ts.map +1 -0
  406. package/dist/commands/item/subitems.js +86 -0
  407. package/dist/commands/item/subitems.js.map +1 -0
  408. package/dist/commands/item/update.d.ts +99 -0
  409. package/dist/commands/item/update.d.ts.map +1 -0
  410. package/dist/commands/item/update.js +884 -0
  411. package/dist/commands/item/update.js.map +1 -0
  412. package/dist/commands/item/upsert.d.ts +105 -0
  413. package/dist/commands/item/upsert.d.ts.map +1 -0
  414. package/dist/commands/item/upsert.js +998 -0
  415. package/dist/commands/item/upsert.js.map +1 -0
  416. package/dist/commands/parse-argv.d.ts +20 -0
  417. package/dist/commands/parse-argv.d.ts.map +1 -0
  418. package/dist/commands/parse-argv.js +40 -0
  419. package/dist/commands/parse-argv.js.map +1 -0
  420. package/dist/commands/raw/index.d.ts +23 -0
  421. package/dist/commands/raw/index.d.ts.map +1 -0
  422. package/dist/commands/raw/index.js +416 -0
  423. package/dist/commands/raw/index.js.map +1 -0
  424. package/dist/commands/run-by-id-lookup.d.ts +72 -0
  425. package/dist/commands/run-by-id-lookup.d.ts.map +1 -0
  426. package/dist/commands/run-by-id-lookup.js +58 -0
  427. package/dist/commands/run-by-id-lookup.js.map +1 -0
  428. package/dist/commands/schema/index.d.ts +104 -0
  429. package/dist/commands/schema/index.d.ts.map +1 -0
  430. package/dist/commands/schema/index.js +183 -0
  431. package/dist/commands/schema/index.js.map +1 -0
  432. package/dist/commands/types.d.ts +66 -0
  433. package/dist/commands/types.d.ts.map +1 -0
  434. package/dist/commands/types.js +15 -0
  435. package/dist/commands/types.js.map +1 -0
  436. package/dist/commands/update/body-source.d.ts +38 -0
  437. package/dist/commands/update/body-source.d.ts.map +1 -0
  438. package/dist/commands/update/body-source.js +80 -0
  439. package/dist/commands/update/body-source.js.map +1 -0
  440. package/dist/commands/update/clear-all.d.ts +67 -0
  441. package/dist/commands/update/clear-all.d.ts.map +1 -0
  442. package/dist/commands/update/clear-all.js +281 -0
  443. package/dist/commands/update/clear-all.js.map +1 -0
  444. package/dist/commands/update/create.d.ts +51 -0
  445. package/dist/commands/update/create.d.ts.map +1 -0
  446. package/dist/commands/update/create.js +167 -0
  447. package/dist/commands/update/create.js.map +1 -0
  448. package/dist/commands/update/delete.d.ts +53 -0
  449. package/dist/commands/update/delete.d.ts.map +1 -0
  450. package/dist/commands/update/delete.js +148 -0
  451. package/dist/commands/update/delete.js.map +1 -0
  452. package/dist/commands/update/edit.d.ts +37 -0
  453. package/dist/commands/update/edit.d.ts.map +1 -0
  454. package/dist/commands/update/edit.js +129 -0
  455. package/dist/commands/update/edit.js.map +1 -0
  456. package/dist/commands/update/get.d.ts +37 -0
  457. package/dist/commands/update/get.d.ts.map +1 -0
  458. package/dist/commands/update/get.js +92 -0
  459. package/dist/commands/update/get.js.map +1 -0
  460. package/dist/commands/update/like.d.ts +17 -0
  461. package/dist/commands/update/like.d.ts.map +1 -0
  462. package/dist/commands/update/like.js +23 -0
  463. package/dist/commands/update/like.js.map +1 -0
  464. package/dist/commands/update/list.d.ts +58 -0
  465. package/dist/commands/update/list.d.ts.map +1 -0
  466. package/dist/commands/update/list.js +322 -0
  467. package/dist/commands/update/list.js.map +1 -0
  468. package/dist/commands/update/pin.d.ts +17 -0
  469. package/dist/commands/update/pin.d.ts.map +1 -0
  470. package/dist/commands/update/pin.js +23 -0
  471. package/dist/commands/update/pin.js.map +1 -0
  472. package/dist/commands/update/reply.d.ts +47 -0
  473. package/dist/commands/update/reply.d.ts.map +1 -0
  474. package/dist/commands/update/reply.js +149 -0
  475. package/dist/commands/update/reply.js.map +1 -0
  476. package/dist/commands/update/toggle.d.ts +70 -0
  477. package/dist/commands/update/toggle.d.ts.map +1 -0
  478. package/dist/commands/update/toggle.js +118 -0
  479. package/dist/commands/update/toggle.js.map +1 -0
  480. package/dist/commands/update/unlike.d.ts +17 -0
  481. package/dist/commands/update/unlike.d.ts.map +1 -0
  482. package/dist/commands/update/unlike.js +22 -0
  483. package/dist/commands/update/unlike.js.map +1 -0
  484. package/dist/commands/update/unpin.d.ts +17 -0
  485. package/dist/commands/update/unpin.d.ts.map +1 -0
  486. package/dist/commands/update/unpin.js +21 -0
  487. package/dist/commands/update/unpin.js.map +1 -0
  488. package/dist/commands/user/get.d.ts +31 -0
  489. package/dist/commands/user/get.d.ts.map +1 -0
  490. package/dist/commands/user/get.js +81 -0
  491. package/dist/commands/user/get.js.map +1 -0
  492. package/dist/commands/user/list.d.ts +61 -0
  493. package/dist/commands/user/list.d.ts.map +1 -0
  494. package/dist/commands/user/list.js +148 -0
  495. package/dist/commands/user/list.js.map +1 -0
  496. package/dist/commands/user/me.d.ts +17 -0
  497. package/dist/commands/user/me.d.ts.map +1 -0
  498. package/dist/commands/user/me.js +49 -0
  499. package/dist/commands/user/me.js.map +1 -0
  500. package/dist/commands/workspace/add-users.d.ts +76 -0
  501. package/dist/commands/workspace/add-users.d.ts.map +1 -0
  502. package/dist/commands/workspace/add-users.js +154 -0
  503. package/dist/commands/workspace/add-users.js.map +1 -0
  504. package/dist/commands/workspace/create.d.ts +59 -0
  505. package/dist/commands/workspace/create.d.ts.map +1 -0
  506. package/dist/commands/workspace/create.js +163 -0
  507. package/dist/commands/workspace/create.js.map +1 -0
  508. package/dist/commands/workspace/delete.d.ts +67 -0
  509. package/dist/commands/workspace/delete.d.ts.map +1 -0
  510. package/dist/commands/workspace/delete.js +182 -0
  511. package/dist/commands/workspace/delete.js.map +1 -0
  512. package/dist/commands/workspace/folders.d.ts +40 -0
  513. package/dist/commands/workspace/folders.d.ts.map +1 -0
  514. package/dist/commands/workspace/folders.js +124 -0
  515. package/dist/commands/workspace/folders.js.map +1 -0
  516. package/dist/commands/workspace/get.d.ts +35 -0
  517. package/dist/commands/workspace/get.d.ts.map +1 -0
  518. package/dist/commands/workspace/get.js +62 -0
  519. package/dist/commands/workspace/get.js.map +1 -0
  520. package/dist/commands/workspace/list.d.ts +57 -0
  521. package/dist/commands/workspace/list.d.ts.map +1 -0
  522. package/dist/commands/workspace/list.js +125 -0
  523. package/dist/commands/workspace/list.js.map +1 -0
  524. package/dist/commands/workspace/remove-users.d.ts +47 -0
  525. package/dist/commands/workspace/remove-users.d.ts.map +1 -0
  526. package/dist/commands/workspace/remove-users.js +122 -0
  527. package/dist/commands/workspace/remove-users.js.map +1 -0
  528. package/dist/commands/workspace/update.d.ts +68 -0
  529. package/dist/commands/workspace/update.d.ts.map +1 -0
  530. package/dist/commands/workspace/update.js +237 -0
  531. package/dist/commands/workspace/update.js.map +1 -0
  532. package/dist/config/load.d.ts +33 -0
  533. package/dist/config/load.d.ts.map +1 -0
  534. package/dist/config/load.js +81 -0
  535. package/dist/config/load.js.map +1 -0
  536. package/dist/index.d.ts +3 -0
  537. package/dist/index.d.ts.map +1 -0
  538. package/dist/index.js +4 -0
  539. package/dist/index.js.map +1 -0
  540. package/dist/types/global-flags.d.ts +69 -0
  541. package/dist/types/global-flags.d.ts.map +1 -0
  542. package/dist/types/global-flags.js +170 -0
  543. package/dist/types/global-flags.js.map +1 -0
  544. package/dist/types/ids.d.ts +38 -0
  545. package/dist/types/ids.d.ts.map +1 -0
  546. package/dist/types/ids.js +51 -0
  547. package/dist/types/ids.js.map +1 -0
  548. package/dist/types/json.d.ts +60 -0
  549. package/dist/types/json.d.ts.map +1 -0
  550. package/dist/types/json.js +33 -0
  551. package/dist/types/json.js.map +1 -0
  552. package/dist/utils/errors.d.ts +121 -0
  553. package/dist/utils/errors.d.ts.map +1 -0
  554. package/dist/utils/errors.js +264 -0
  555. package/dist/utils/errors.js.map +1 -0
  556. package/dist/utils/logger.d.ts +39 -0
  557. package/dist/utils/logger.d.ts.map +1 -0
  558. package/dist/utils/logger.js +49 -0
  559. package/dist/utils/logger.js.map +1 -0
  560. package/dist/utils/output/envelope.d.ts +140 -0
  561. package/dist/utils/output/envelope.d.ts.map +1 -0
  562. package/dist/utils/output/envelope.js +120 -0
  563. package/dist/utils/output/envelope.js.map +1 -0
  564. package/dist/utils/output/json.d.ts +10 -0
  565. package/dist/utils/output/json.d.ts.map +1 -0
  566. package/dist/utils/output/json.js +12 -0
  567. package/dist/utils/output/json.js.map +1 -0
  568. package/dist/utils/output/ndjson.d.ts +92 -0
  569. package/dist/utils/output/ndjson.d.ts.map +1 -0
  570. package/dist/utils/output/ndjson.js +33 -0
  571. package/dist/utils/output/ndjson.js.map +1 -0
  572. package/dist/utils/output/select.d.ts +22 -0
  573. package/dist/utils/output/select.d.ts.map +1 -0
  574. package/dist/utils/output/select.js +47 -0
  575. package/dist/utils/output/select.js.map +1 -0
  576. package/dist/utils/output/table.d.ts +32 -0
  577. package/dist/utils/output/table.d.ts.map +1 -0
  578. package/dist/utils/output/table.js +133 -0
  579. package/dist/utils/output/table.js.map +1 -0
  580. package/dist/utils/output/text.d.ts +5 -0
  581. package/dist/utils/output/text.d.ts.map +1 -0
  582. package/dist/utils/output/text.js +32 -0
  583. package/dist/utils/output/text.js.map +1 -0
  584. package/dist/utils/parse-boundary.d.ts +53 -0
  585. package/dist/utils/parse-boundary.d.ts.map +1 -0
  586. package/dist/utils/parse-boundary.js +62 -0
  587. package/dist/utils/parse-boundary.js.map +1 -0
  588. package/dist/utils/redact.d.ts +54 -0
  589. package/dist/utils/redact.d.ts.map +1 -0
  590. package/dist/utils/redact.js +154 -0
  591. package/dist/utils/redact.js.map +1 -0
  592. package/dist/utils/request-id.d.ts +17 -0
  593. package/dist/utils/request-id.d.ts.map +1 -0
  594. package/dist/utils/request-id.js +26 -0
  595. package/dist/utils/request-id.js.map +1 -0
  596. package/package.json +87 -0
@@ -0,0 +1,328 @@
1
+ /**
2
+ * Filter DSL parser (`cli-design.md` §5.5, `v0.1-plan.md` §3 M4).
3
+ *
4
+ * Two surfaces, one for each `monday item list` knob:
5
+ *
6
+ * - `--where <token><op><val>` (repeatable) → parsed against §5.5's
7
+ * allowlist (`=`, `!=`, `~=`, `<`, `<=`, `>`, `>=`, `:is_empty`,
8
+ * `:is_not_empty`) and emitted as a Monday `query_params.rules`
9
+ * object. Multiple `--where` flags are AND'd. Token resolution
10
+ * reuses the M3 column read-resolver (`api/columns.ts`) so the
11
+ * same NFC + case-fold rules apply across read and write surfaces.
12
+ *
13
+ * - `--filter-json <json>` is the literal Monday `query_params`
14
+ * object — never re-parsed. Power users / agents needing OR /
15
+ * nested groups / `within_last(7d)` use this. v0.1's `--where`
16
+ * surface is intentionally narrow; `--filter-json` is the escape
17
+ * hatch.
18
+ *
19
+ * `--where` and `--filter-json` are **mutually exclusive**. Combining
20
+ * them would either force a merge rule (extra contract surface) or
21
+ * silently let one win — both are worse than failing fast with a
22
+ * `usage_error` and asking the agent to pick.
23
+ *
24
+ * **Operator-in-title trap.** When a column title contains an
25
+ * operator (`Plan A=B`), the implicit-resolution path can't
26
+ * disambiguate — `--where Plan A=B=approved` splits on the *first*
27
+ * `=` per §5.3 step 2.b, so the token resolves as `Plan A` and the
28
+ * value is `B=approved`. This is documented behaviour, not a bug.
29
+ * The `title:`/`id:` prefix doesn't help here either — `parseWhereSyntax`
30
+ * splits on the first operator before `parseColumnTokenPrefix`
31
+ * sees the token, so `title:Plan A=B=approved` still cleaves at
32
+ * the first `=`. The supported escape hatch for operator-in-title
33
+ * columns is `--filter-json`, where the agent passes the literal
34
+ * Monday `query_params` JSON; the rule's `column_id` is unambiguous
35
+ * and the value carries through verbatim. Codex M4 pass-2 §4
36
+ * surfaced this as a documentation backfill item — logged in
37
+ * v0.1-plan.md §3 M4 spec-gaps. The unit suite asserts the
38
+ * documented split verbatim so a future "be clever about it"
39
+ * patch fails loudly.
40
+ *
41
+ * **`me` sugar.** Per §5.5 + §5.3, `--where owner=me` against a
42
+ * `people` column resolves through the directory cache to the
43
+ * current user's ID. The resolution is a separate `whoami` query
44
+ * the parser issues on demand; tests inject a stub via the
45
+ * `resolveMe` callback so the pure-syntax layer stays
46
+ * unit-testable.
47
+ *
48
+ * **Result-type meta surface (§14 M3 prophylactic).** Even though
49
+ * filter parsing produces no network-derived data of its own
50
+ * (resolution is delegated to columns.ts + a `me`-resolver
51
+ * callback), the result type carries `warnings` from day one. The
52
+ * meta-source / cache-age / complexity slots travel through the
53
+ * board-metadata loader the caller has already opened — surfacing
54
+ * them again here would be redundant.
55
+ */
56
+ import { z } from 'zod';
57
+ import { ApiError, UsageError } from '../utils/errors.js';
58
+ import { resolveColumnsAcrossClauses } from './columns.js';
59
+ import { isMeToken } from './me-token.js';
60
+ const OPERATORS_BINARY = [
61
+ // Two-character operators must come before their one-character
62
+ // prefixes so the position-by-position scan picks the longest
63
+ // match at any given index.
64
+ { kind: 'lower_than_or_equals', literal: '<=', arity: 'binary' },
65
+ { kind: 'greater_than_or_equals', literal: '>=', arity: 'binary' },
66
+ { kind: 'not_equals', literal: '!=', arity: 'binary' },
67
+ { kind: 'contains_text', literal: '~=', arity: 'binary' },
68
+ { kind: 'lower_than', literal: '<', arity: 'binary' },
69
+ { kind: 'greater_than', literal: '>', arity: 'binary' },
70
+ { kind: 'equals', literal: '=', arity: 'binary' },
71
+ ];
72
+ /**
73
+ * Maps the AST kind to the Monday `query_params` operator name.
74
+ * Frozen so a future import can't mutate the table mid-process.
75
+ */
76
+ const MONDAY_OPERATOR_NAME = Object.freeze({
77
+ equals: 'any_of',
78
+ not_equals: 'not_any_of',
79
+ contains_text: 'contains_text',
80
+ lower_than: 'lower_than',
81
+ lower_than_or_equals: 'lower_than_or_equals',
82
+ greater_than: 'greater_than',
83
+ greater_than_or_equals: 'greater_than_or_equals',
84
+ is_empty: 'is_empty',
85
+ is_not_empty: 'is_not_empty',
86
+ });
87
+ /**
88
+ * Splits one raw `--where` argument into a {@link WhereClause}.
89
+ *
90
+ * Algorithm (left-to-right, longest-match-at-position):
91
+ *
92
+ * 1. Match `:is_not_empty` / `:is_empty` suffix on the right (with
93
+ * `:is_not_empty` checked first so it doesn't get truncated to
94
+ * the shorter form).
95
+ * 2. Otherwise scan position-by-position from index 1 (token must
96
+ * be non-empty), trying each binary operator at that position.
97
+ * The first match wins — earliest-leftmost-with-longest-tie-break.
98
+ * 3. If no operator is found, raise `UsageError`.
99
+ *
100
+ * Per §5.3 step 2.b, the split happens on the *first* operator
101
+ * occurrence — a column title containing an operator (`Plan A=B`)
102
+ * needs the explicit `title:` prefix or `--filter-json` to round-trip.
103
+ */
104
+ export const parseWhereSyntax = (raw) => {
105
+ const trimmed = raw.trim();
106
+ if (trimmed.length === 0) {
107
+ throw new UsageError(`--where: empty filter clause`, { details: { clause: raw } });
108
+ }
109
+ // Step 1: unary `:is_empty` / `:is_not_empty` suffix. Order matters
110
+ // so the longer literal binds first.
111
+ const unarySuffixes = [
112
+ { suffix: ':is_not_empty', kind: 'is_not_empty' },
113
+ { suffix: ':is_empty', kind: 'is_empty' },
114
+ ];
115
+ for (const u of unarySuffixes) {
116
+ if (trimmed.endsWith(u.suffix)) {
117
+ const tokenPart = trimmed.slice(0, trimmed.length - u.suffix.length);
118
+ if (tokenPart.length === 0) {
119
+ throw new UsageError(`--where: missing column token before ${u.suffix}`, { details: { clause: raw } });
120
+ }
121
+ return {
122
+ token: tokenPart,
123
+ operator: { kind: u.kind, literal: u.suffix.slice(1), arity: 'unary' },
124
+ value: undefined,
125
+ raw,
126
+ };
127
+ }
128
+ }
129
+ // Step 2: scan left-to-right from index 1 (a leading operator
130
+ // would mean an empty token, rejected). At each index, prefer the
131
+ // longest matching operator literal.
132
+ for (let i = 1; i < trimmed.length; i++) {
133
+ for (const op of OPERATORS_BINARY) {
134
+ if (trimmed.startsWith(op.literal, i)) {
135
+ const token = trimmed.slice(0, i);
136
+ const value = trimmed.slice(i + op.literal.length);
137
+ // Token mustn't end with whitespace + operator-only — but a
138
+ // non-empty token + non-empty value is always valid. Empty
139
+ // value (`status=`) is technically allowed by §5.5 but
140
+ // pragmatically meaningless; reject so agents notice.
141
+ if (value.length === 0) {
142
+ throw new UsageError(`--where: missing value after ${op.literal} (use ${op.literal}'<value>')`, { details: { clause: raw, operator: op.literal } });
143
+ }
144
+ return { token, operator: op, value, raw };
145
+ }
146
+ }
147
+ }
148
+ throw new UsageError(`--where: no recognised operator in ${JSON.stringify(raw)}; ` +
149
+ `expected one of =, !=, ~=, <, <=, >, >=, :is_empty, :is_not_empty`, { details: { clause: raw } });
150
+ };
151
+ /**
152
+ * Resolves each parsed `WhereClause` against the board metadata and
153
+ * emits the Monday `query_params` payload. Empty `clauses` →
154
+ * `queryParams: undefined` (caller omits the variable from the
155
+ * GraphQL request). Multiple clauses are AND'd by Monday's default
156
+ * rule-array semantics — no nested groups in v0.1.
157
+ *
158
+ * Throws `ApiError` (`column_not_found` / `ambiguous_column`) when
159
+ * column resolution fails — same shape `--set` will surface in M5b
160
+ * so agents key off the same code regardless of the read vs write
161
+ * channel.
162
+ */
163
+ export const buildFilterRules = async (inputs) => {
164
+ if (inputs.clauses.length === 0) {
165
+ return { queryParams: undefined, warnings: [], refreshed: false };
166
+ }
167
+ let cachedMe;
168
+ const me = async () => {
169
+ cachedMe ??= await inputs.resolveMe();
170
+ return cachedMe;
171
+ };
172
+ // R12 lift: cache-miss-refresh + collision-warning collection are
173
+ // shared with `commands/item/search.ts buildColumnQueries`. The
174
+ // helper resolves every clause's column token; per-clause value
175
+ // resolution (`me` for people, etc.) stays here.
176
+ const resolved = await resolveColumnsAcrossClauses({
177
+ metadata: inputs.metadata,
178
+ tokens: inputs.clauses.map((c) => c.token),
179
+ ...(inputs.onColumnNotFound === undefined
180
+ ? {}
181
+ : { onColumnNotFound: inputs.onColumnNotFound }),
182
+ });
183
+ const rules = [];
184
+ for (let i = 0; i < inputs.clauses.length; i++) {
185
+ const clause = inputs.clauses[i];
186
+ const match = resolved.matches[i];
187
+ /* c8 ignore next 6 — defensive: matches.length === clauses.length
188
+ by helper contract; the index guard exists for
189
+ noUncheckedIndexedAccess narrowing only. */
190
+ if (clause === undefined || match === undefined) {
191
+ throw new ApiError('internal_error', `buildFilterRules: lost clause/match alignment at index ${String(i)}`);
192
+ }
193
+ const rule = await buildRuleForClause(clause, match.column, me);
194
+ rules.push(rule);
195
+ }
196
+ // ResolverWarning is structurally compatible with envelope.Warning
197
+ // (narrower `code` literal, required `details`), so the assignment
198
+ // widens cleanly without a cast. Same shape `commands/item/search.ts`
199
+ // uses post-R12 for the same reason.
200
+ return {
201
+ queryParams: { rules },
202
+ warnings: resolved.warnings,
203
+ refreshed: resolved.refreshed,
204
+ };
205
+ };
206
+ const buildRuleForClause = async (clause, column, resolveMe) => {
207
+ const operator = clause.operator;
208
+ if (operator.arity === 'unary') {
209
+ return {
210
+ column_id: column.id,
211
+ operator: MONDAY_OPERATOR_NAME[operator.kind],
212
+ };
213
+ }
214
+ // Binary operator — extract value, resolve `me` if applicable.
215
+ /* c8 ignore next 7 — defensive guard. The parser's output shape
216
+ guarantees `value` is defined whenever `arity: 'binary'`; the
217
+ check exists for type narrowing under
218
+ `noUncheckedIndexedAccess` / `exactOptionalPropertyTypes`. */
219
+ if (clause.value === undefined) {
220
+ throw new ApiError('internal_error', `binary operator ${operator.literal} produced no value during build`);
221
+ }
222
+ const compareValue = await resolveCompareValue(clause.value, column, operator, resolveMe);
223
+ return {
224
+ column_id: column.id,
225
+ operator: MONDAY_OPERATOR_NAME[operator.kind],
226
+ compare_value: compareValue,
227
+ };
228
+ };
229
+ const resolveCompareValue = async (rawValue, column, operator, resolveMe) => {
230
+ // `me` sugar resolves only on people-style columns. Other types
231
+ // pass through verbatim so a stray `me` against a text column
232
+ // surfaces as Monday's validation_failed rather than a silent
233
+ // identity swap.
234
+ //
235
+ // `isMeToken` is the shared (`api/me-token.ts`, R15) recogniser
236
+ // used by all three `me`-aware surfaces — `--where Owner=me`
237
+ // here, `item search --where Owner=me` in commands/item/search.ts,
238
+ // and `--set Owner=me` in api/people.ts. One rule across read
239
+ // filters and `--set` writes per cli-design §5.3 step 3 line
240
+ // 704-707. cli-design doesn't pin case-sensitivity explicitly;
241
+ // the people-session Codex passes settled on case-insensitive
242
+ // (logged as a v0.1-plan §3 M5a spec gap for backfill).
243
+ if (column.type === 'people' && isMeToken(rawValue)) {
244
+ const id = await resolveMe();
245
+ return wrapForOperator([id], operator);
246
+ }
247
+ // contains_text takes a bare string. Everything else takes an
248
+ // array (any_of / not_any_of) or a scalar (lt/gt/le/ge — number
249
+ // or date string). For v0.1 we pass strings as-is and let Monday
250
+ // coerce; Monday accepts both string and number for numeric
251
+ // columns when the value parses as a number.
252
+ return wrapForOperator(rawValue, operator);
253
+ };
254
+ const wrapForOperator = (value, operator) => {
255
+ switch (operator.kind) {
256
+ case 'equals':
257
+ case 'not_equals':
258
+ return Array.isArray(value) ? value : [value];
259
+ case 'contains_text':
260
+ return Array.isArray(value) ? value[0] : value;
261
+ case 'lower_than':
262
+ case 'lower_than_or_equals':
263
+ case 'greater_than':
264
+ case 'greater_than_or_equals':
265
+ return Array.isArray(value) ? value[0] : value;
266
+ /* c8 ignore start — unary kinds never reach this helper; the
267
+ caller only invokes wrapForOperator for binary operators. */
268
+ case 'is_empty':
269
+ case 'is_not_empty':
270
+ return undefined;
271
+ /* c8 ignore stop */
272
+ }
273
+ };
274
+ const filterJsonSchema = z.object({}).loose();
275
+ /**
276
+ * Validates a raw `--filter-json` string into a `query_params`-shaped
277
+ * object. Per §5.5, the payload is "never parsed; passed through as
278
+ * the GraphQL var" — the JSON.parse here is just a syntax check so a
279
+ * malformed input produces `usage_error` instead of a server-side
280
+ * parse error. Field-level shape validation stays on Monday's side.
281
+ */
282
+ export const parseFilterJson = (raw) => {
283
+ let parsed;
284
+ try {
285
+ parsed = JSON.parse(raw);
286
+ }
287
+ catch (err) {
288
+ throw new UsageError(`--filter-json: input is not valid JSON`, { details: { input: raw }, cause: err });
289
+ }
290
+ const result = filterJsonSchema.safeParse(parsed);
291
+ if (!result.success) {
292
+ throw new UsageError(`--filter-json: expected a JSON object`, { details: { input: raw } });
293
+ }
294
+ return result.data;
295
+ };
296
+ export const buildQueryParams = async (inputs) => {
297
+ const hasWhere = inputs.whereClauses.length > 0;
298
+ const filterJson = inputs.filterJson;
299
+ const hasFilterJson = filterJson !== undefined && filterJson.length > 0;
300
+ if (hasWhere && hasFilterJson) {
301
+ throw new UsageError('--where and --filter-json are mutually exclusive; pick one');
302
+ }
303
+ if (hasFilterJson) {
304
+ return {
305
+ queryParams: parseFilterJson(filterJson),
306
+ warnings: [],
307
+ refreshed: false,
308
+ };
309
+ }
310
+ if (!hasWhere) {
311
+ return { queryParams: undefined, warnings: [], refreshed: false };
312
+ }
313
+ const clauses = inputs.whereClauses.map(parseWhereSyntax);
314
+ const result = await buildFilterRules({
315
+ metadata: inputs.metadata,
316
+ resolveMe: inputs.resolveMe,
317
+ clauses,
318
+ ...(inputs.onColumnNotFound === undefined
319
+ ? {}
320
+ : { onColumnNotFound: inputs.onColumnNotFound }),
321
+ });
322
+ return {
323
+ queryParams: result.queryParams,
324
+ warnings: result.warnings,
325
+ refreshed: result.refreshed,
326
+ };
327
+ };
328
+ //# sourceMappingURL=filters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filters.js","sourceRoot":"","sources":["../../src/api/filters.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Monday-supported group colour palette (M17 implementation-owned
3
+ * field set per cli-design §4.3 group-create + group-update).
4
+ *
5
+ * Monday's `create_group(group_color)` and `update_group(group_
6
+ * attribute: color, new_value)` accept plain `String` on the wire
7
+ * (the SDK 14.0.0 `MutationCreate_GroupArgs.group_color: String?`
8
+ * type is unstructured); the accepted-values list lives in Monday's
9
+ * public API help center, not in the SDK's typed surface, and
10
+ * evolves over time.
11
+ *
12
+ * This module owns the v0.2 field set. The cli-design contract
13
+ * pins the SHAPE (argv-parse validation against the M17
14
+ * implementation-owned set); pinning specific values inline in the
15
+ * contract would force docs revisions every time Monday tweaks
16
+ * the palette. Same rationale as M16 column-create's per-type
17
+ * `--settings` field-set ownership in `column-types.ts`.
18
+ *
19
+ * **What's here**: the union of Monday's documented group colours
20
+ * across both the API help center and the working `update_group`
21
+ * payloads observed in the SDK 14.0.0 test fixtures. When Monday
22
+ * adds a colour, agents either patch this list (SemVer-minor) or
23
+ * fall back to `dev mutate` until the next release.
24
+ *
25
+ * **Why two consumers** (group-create + group-update): both verbs
26
+ * share the argv-parse validation layer. Sharing the constant
27
+ * means an agent that successfully sets a colour via group-create
28
+ * can rely on it round-tripping through group-update without
29
+ * surprise rejections, and vice versa.
30
+ */
31
+ export declare const GROUP_COLOR_VALUES: readonly ["dark-red", "red", "stuck-red", "sofia-pink", "lipstick", "berry", "dark-orange", "orange", "working-orange", "peachy", "sunset", "sun-yellow", "yellow", "dark-yellow", "gold", "lime-green", "grass-green", "done-green", "dark-green", "sea-foam", "teal", "turqouise", "sky", "light-blue", "bright-blue", "blue", "dark-blue", "royal", "indigo", "dark-indigo", "navy", "purple", "dark-purple", "lavender", "dark-pink", "pink", "brown", "pecan", "tan", "american-gray", "gray-gray", "blackish"];
32
+ export type GroupColor = (typeof GROUP_COLOR_VALUES)[number];
33
+ //# sourceMappingURL=group-color.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group-color.d.ts","sourceRoot":"","sources":["../../src/api/group-color.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,eAAO,MAAM,kBAAkB,sfAgDrB,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Monday-supported group colour palette (M17 implementation-owned
3
+ * field set per cli-design §4.3 group-create + group-update).
4
+ *
5
+ * Monday's `create_group(group_color)` and `update_group(group_
6
+ * attribute: color, new_value)` accept plain `String` on the wire
7
+ * (the SDK 14.0.0 `MutationCreate_GroupArgs.group_color: String?`
8
+ * type is unstructured); the accepted-values list lives in Monday's
9
+ * public API help center, not in the SDK's typed surface, and
10
+ * evolves over time.
11
+ *
12
+ * This module owns the v0.2 field set. The cli-design contract
13
+ * pins the SHAPE (argv-parse validation against the M17
14
+ * implementation-owned set); pinning specific values inline in the
15
+ * contract would force docs revisions every time Monday tweaks
16
+ * the palette. Same rationale as M16 column-create's per-type
17
+ * `--settings` field-set ownership in `column-types.ts`.
18
+ *
19
+ * **What's here**: the union of Monday's documented group colours
20
+ * across both the API help center and the working `update_group`
21
+ * payloads observed in the SDK 14.0.0 test fixtures. When Monday
22
+ * adds a colour, agents either patch this list (SemVer-minor) or
23
+ * fall back to `dev mutate` until the next release.
24
+ *
25
+ * **Why two consumers** (group-create + group-update): both verbs
26
+ * share the argv-parse validation layer. Sharing the constant
27
+ * means an agent that successfully sets a colour via group-create
28
+ * can rely on it round-tripping through group-update without
29
+ * surprise rejections, and vice versa.
30
+ */
31
+ export const GROUP_COLOR_VALUES = [
32
+ // Reds + warm
33
+ 'dark-red',
34
+ 'red',
35
+ 'stuck-red',
36
+ 'sofia-pink',
37
+ 'lipstick',
38
+ 'berry',
39
+ 'dark-orange',
40
+ 'orange',
41
+ 'working-orange',
42
+ 'peachy',
43
+ 'sunset',
44
+ 'sun-yellow',
45
+ 'yellow',
46
+ 'dark-yellow',
47
+ 'gold',
48
+ // Greens
49
+ 'lime-green',
50
+ 'grass-green',
51
+ 'done-green',
52
+ 'dark-green',
53
+ 'sea-foam',
54
+ 'teal',
55
+ // Blues + indigos
56
+ 'turqouise',
57
+ 'sky',
58
+ 'light-blue',
59
+ 'bright-blue',
60
+ 'blue',
61
+ 'dark-blue',
62
+ 'royal',
63
+ 'indigo',
64
+ 'dark-indigo',
65
+ 'navy',
66
+ // Purples + pinks
67
+ 'purple',
68
+ 'dark-purple',
69
+ 'lavender',
70
+ 'dark-pink',
71
+ 'pink',
72
+ // Earth + neutrals
73
+ 'brown',
74
+ 'pecan',
75
+ 'tan',
76
+ 'american-gray',
77
+ 'gray-gray',
78
+ 'blackish',
79
+ ];
80
+ //# sourceMappingURL=group-color.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group-color.js","sourceRoot":"","sources":["../../src/api/group-color.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,cAAc;IACd,UAAU;IACV,KAAK;IACL,WAAW;IACX,YAAY;IACZ,UAAU;IACV,OAAO;IACP,aAAa;IACb,QAAQ;IACR,gBAAgB;IAChB,QAAQ;IACR,QAAQ;IACR,YAAY;IACZ,QAAQ;IACR,aAAa;IACb,MAAM;IACN,SAAS;IACT,YAAY;IACZ,aAAa;IACb,YAAY;IACZ,YAAY;IACZ,UAAU;IACV,MAAM;IACN,kBAAkB;IAClB,WAAW;IACX,KAAK;IACL,YAAY;IACZ,aAAa;IACb,MAAM;IACN,WAAW;IACX,OAAO;IACP,QAAQ;IACR,aAAa;IACb,MAAM;IACN,kBAAkB;IAClB,QAAQ;IACR,aAAa;IACb,UAAU;IACV,WAAW;IACX,MAAM;IACN,mBAAmB;IACnB,OAAO;IACP,OAAO;IACP,KAAK;IACL,eAAe;IACf,WAAW;IACX,UAAU;CACF,CAAC"}
@@ -0,0 +1,150 @@
1
+ /**
2
+ * Live-mutation null-result projection for the M17 group lifecycle
3
+ * cluster (`v0.2-plan.md` §22 R48 lift).
4
+ *
5
+ * Five M17 verbs share a near-verbatim shape: null-check the wire
6
+ * payload, throw a typed ApiError on null carrying both
7
+ * `details.board_id` and `details.group_id` (the group-mutation
8
+ * wire signature is two-tuple — `create_group` carries `board_id`
9
+ * only pre-id, but the read-side projection always pairs the two),
10
+ * then parse through `groupProjectionSchema` to surface the §6.4
11
+ * mutation envelope's `data: <projected snapshot>`.
12
+ *
13
+ * Lifted alongside the first M17 group verb commit (mirroring R45's
14
+ * "ship the projection helper alongside the first new mutation
15
+ * rather than as a follow-up R-class" precedent — same precedent
16
+ * R39 originally established). The five M17 verbs land in the same
17
+ * milestone, so adopting the helper from day one avoids five
18
+ * parallel inline implementations of the same shape. cf. R28
19
+ * (`projectMutationItem`), R37 (`projectMutationUpdate`), R43
20
+ * (`projectMutationBoard`), R45 (`projectMutationColumn`); R48
21
+ * ships the fifth per-noun helper at the firmest 5-consumer trigger
22
+ * any projection-helper lift has had to date (R39 fired at 3, R45
23
+ * at 3, R48 at 5).
24
+ *
25
+ * **Why parameterised on `errorCode` + `errorMessage`.** Like
26
+ * R28 / R37 / R43 / R45, the M17 verbs diverge in error semantics:
27
+ * - `group-create` chose `internal_error` (every successful call
28
+ * returns a Group — a null payload means Monday glitched
29
+ * server-side, abnormal); the `details` carry `board_id` +
30
+ * `name` (no group_id yet).
31
+ * - `group-update`, `group-archive`, `group-duplicate`,
32
+ * `group-delete` chose `not_found` (Monday's idiomatic null-
33
+ * for-missing-or-no-access response — a typed agent-recovery
34
+ * story); all four carry `board_id` + `group_id`.
35
+ * The helper owns the boilerplate (null check, `details: {board_id,
36
+ * [idKey]: idValue}` envelope, the `unwrapOrThrow` schema parse);
37
+ * each call site supplies its own typed error parts.
38
+ *
39
+ * **`GROUP_FIELDS_FRAGMENT` + `groupProjectionSchema` co-ship.**
40
+ * Mirrors R39's `WORKSPACE_FIELDS_FRAGMENT` + `workspaceProjection
41
+ * Schema`, R43's `BOARD_FIELDS_FRAGMENT` + `boardProjectionSchema`,
42
+ * and R45's `COLUMN_FIELDS_FRAGMENT` + `columnProjectionSchema`
43
+ * patterns. The schema mirrors the `groupSchema` already in
44
+ * `src/api/board-metadata.ts` (the read-side cache projection) but
45
+ * exists as an exported strict projection schema so M17's five
46
+ * mutation verbs share one source of truth for the on-the-wire
47
+ * Group shape. The field set covers the full Group metadata —
48
+ * every Group field except `items_page`, which is the group's
49
+ * items rather than group metadata and is out of scope for the
50
+ * mutation envelope's `data` slot (M17 pre-flight load-bearing
51
+ * finding).
52
+ *
53
+ * **What stays at the call site.** The wire-shape parse of the full
54
+ * mutation response (`responseSchema.safeParse(response.data)`)
55
+ * stays inline because each verb's response root key (`create_
56
+ * group` / `update_group` / `archive_group` / `duplicate_group` /
57
+ * `delete_group`) is per-verb. The missing-root-key check (schema-
58
+ * drift → `internal_error` with a `hint`) stays inline too —
59
+ * that's Codex M15 implementation round-2 F1's distinction between
60
+ * schema-drift and null-payload, deliberately preserved at each
61
+ * site. R42 would unify the missing-root-key check across all
62
+ * pre-M14 mutation verbs once scheduled.
63
+ */
64
+ import { z } from 'zod';
65
+ import { type ErrorCode } from '../utils/errors.js';
66
+ /**
67
+ * Shared GraphQL selection set for the M17 group projection. 6-space
68
+ * continuation indent matches the column every consumer interpolates
69
+ * `${GROUP_FIELDS_FRAGMENT}` at, so rendered query bytes stay stable
70
+ * across consumers. Mirrors `BOARD_FIELDS_FRAGMENT` (R43),
71
+ * `WORKSPACE_FIELDS_FRAGMENT` (R39), and `COLUMN_FIELDS_FRAGMENT`
72
+ * (R45).
73
+ *
74
+ * Field set tracks `boardMetadataSchema.groups[*]` (the read-side
75
+ * cache projection) so a `board describe` after a successful group
76
+ * mutation returns the same JSON shape the mutation envelope did.
77
+ * `items_page` is deliberately excluded — that's the group's items,
78
+ * not group metadata, and is out of scope for the mutation
79
+ * envelope's `data` slot.
80
+ */
81
+ export declare const GROUP_FIELDS_FRAGMENT = "id\n title\n color\n position\n archived\n deleted";
82
+ /**
83
+ * Strict zod schema for the group projection — the exact shape
84
+ * `GROUP_FIELDS_FRAGMENT` selects from the wire. Shared by all
85
+ * five M17 group verbs; each verb's `CommandModule.outputSchema`
86
+ * aliases this so the schema-export pipeline emits one canonical
87
+ * shape.
88
+ *
89
+ * Mirrors `boardMetadataSchema.groups[*]` in `board-metadata.ts`
90
+ * verbatim — same fields, same nullability — so a `board describe`
91
+ * after a successful group mutation reads the same JSON shape the
92
+ * mutation envelope wrote.
93
+ */
94
+ export declare const groupProjectionSchema: z.ZodObject<{
95
+ id: z.ZodString;
96
+ title: z.ZodString;
97
+ color: z.ZodNullable<z.ZodString>;
98
+ position: z.ZodNullable<z.ZodString>;
99
+ archived: z.ZodNullable<z.ZodBoolean>;
100
+ deleted: z.ZodNullable<z.ZodBoolean>;
101
+ }, z.core.$strict>;
102
+ export type GroupProjection = z.infer<typeof groupProjectionSchema>;
103
+ /**
104
+ * Group-mutation detail key — varies between create (`name` echo,
105
+ * since the new group id doesn't exist pre-call) and update /
106
+ * archive / duplicate / delete (`group_id`, since all four operate
107
+ * on an existing group). All M17 verbs additionally echo `board_id`
108
+ * because the group-mutation wire signature is two-tuple.
109
+ */
110
+ export type GroupMutationDetailKey = 'group_id' | 'name';
111
+ export interface ProjectMutationGroupInputs {
112
+ readonly raw: unknown;
113
+ readonly errorCode: ErrorCode;
114
+ /**
115
+ * Full caller-formatted message for the null-payload throw —
116
+ * e.g. `"Monday returned no group payload from delete_group for
117
+ * board 12345 group topics"`. Per-verb phrasing is preserved
118
+ * verbatim because agents key off the message text in error
119
+ * logs.
120
+ */
121
+ readonly errorMessage: string;
122
+ readonly boardId: string;
123
+ /**
124
+ * Whether the call site identifies the group by its already-
125
+ * known id (`group_id`, used by update / archive / duplicate /
126
+ * delete) or by the agent-supplied name (`name`, used by create
127
+ * — no id exists pre-call). The helper keys `details.<idKey>`
128
+ * accordingly so agents key off the right field without having
129
+ * to switch on the verb.
130
+ */
131
+ readonly idKey: GroupMutationDetailKey;
132
+ readonly idValue: string;
133
+ }
134
+ /**
135
+ * Parses + projects a live-mutation `Group` payload, throwing the
136
+ * supplied typed error on null/undefined. Caller owns the error
137
+ * code + message so create's `internal_error` / "no group payload
138
+ * from create_group for board <X> name <Y>" and update's /
139
+ * archive's / duplicate's / delete's `not_found` / "no group
140
+ * payload from <op> for board <X> group <Y>" all survive the lift
141
+ * byte-for-byte.
142
+ *
143
+ * `details: { board_id, [idKey]: idValue }` is supplied by the
144
+ * helper so every consumer carries the same envelope shape —
145
+ * agents key off `details.board_id` + `details.group_id` (or
146
+ * `details.name` on create's pre-id path) regardless of which verb
147
+ * threw (cli-design §6.5).
148
+ */
149
+ export declare const projectMutationGroup: ({ raw, errorCode, errorMessage, boardId, idKey, idValue, }: ProjectMutationGroupInputs) => GroupProjection;
150
+ //# sourceMappingURL=group-mutation-result.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group-mutation-result.d.ts","sourceRoot":"","sources":["../../src/api/group-mutation-result.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8DG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG9D;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,qBAAqB,gFAKpB,CAAC;AAEf;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,qBAAqB;;;;;;;kBASvB,CAAC;AAEZ,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE;;;;;;GAMG;AACH,MAAM,MAAM,sBAAsB,GAAG,UAAU,GAAG,MAAM,CAAC;AAEzD,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B;;;;;;OAMG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;;;;;;;OAOG;IACH,QAAQ,CAAC,KAAK,EAAE,sBAAsB,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,oBAAoB,GAAI,4DAOlC,0BAA0B,KAAG,eAgB/B,CAAC"}