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,564 @@
1
+ /**
2
+ * `monday board column-create <bid> --type <type> --title <t>
3
+ * [--description <d>] [--settings <json>] [--dry-run]` — create a new
4
+ * column on a board (`cli-design.md` §4.3 line 875,
5
+ * `v0.2-plan.md` §3 M16).
6
+ *
7
+ * **Wire shape.** Single round-trip via `create_column(board_id,
8
+ * column_type, title, description?, defaults?)`. The CLI flag
9
+ * `--type` maps to the wire's `column_type: ColumnType!`; the CLI
10
+ * flag `--settings <json>` maps to the wire's `defaults: JSON`
11
+ * (NOT `settings_str` — `settings_str` is the read-side
12
+ * serialisation of column settings returned on `Column.settings_str`;
13
+ * `defaults` is the write-side input parameter on `create_column`).
14
+ * The wire mutation also accepts `id?: String` (agent-supplied
15
+ * custom column id) and `after_column_id?: ID` (placement); M16
16
+ * deliberately omits both — agents needing them call the wire
17
+ * mutation via M9's `dev mutate` escape hatch.
18
+ *
19
+ * **`--type` validation.** The full `ColumnType` enum (~40 values)
20
+ * per SDK 14.0.0; see §2.3. Argv-parses against the explicit string
21
+ * literal union below (kept hand-pinned rather than imported from
22
+ * the SDK because the SDK's enum is `declare enum`-shaped and
23
+ * doesn't survive zod's `.enum(...)` constructor cleanly). Adding
24
+ * a Monday-side type is SemVer-minor (this list grows); removing
25
+ * one is SemVer-major.
26
+ *
27
+ * **`noncanonical_column_type` warning** (cli-design §6 stable
28
+ * warning-code registry). When `--type` resolves to a column type
29
+ * outside `WRITABLE_COLUMN_TYPES`, the success / dry-run envelope
30
+ * carries a `noncanonical_column_type` warning so agents pick the
31
+ * right write path from the per-category `suggested_write_path`:
32
+ * - `raw_writable` → `--set-raw <col>=<json>` (agent reaches for
33
+ * the v0.2 escape hatch, accepts wire-shape correctness).
34
+ * - `read_only_forever` → no write path (the column exists only
35
+ * for read-side display / mirror sources).
36
+ * - `files_shaped` → `add_file_to_column` deferred to v0.4
37
+ * (asset upload).
38
+ * The command STILL PROCEEDS in all cases — Monday accepts non-
39
+ * writable types and agents may legitimately want them. The
40
+ * categorisation lives in `api/column-types.ts` so the warning
41
+ * shape and `--set-raw`'s reject lists agree on what's read-only-
42
+ * forever / files-shaped.
43
+ *
44
+ * **`--settings <json>` validation.** Parsed at argv-parse-time:
45
+ * malformed JSON → `usage_error` exit 1, before any network call.
46
+ * For types in `WRITABLE_COLUMN_TYPES`, validated against a
47
+ * per-type zod schema (status: `{labels?}`; dropdown: `{labels?}`;
48
+ * numbers: `{unit?}`; date / text / long_text / people / link /
49
+ * email / phone: empty `{}`). Type-mismatched settings (e.g.
50
+ * `--type text --settings '{"labels":[]}'`) → `usage_error` with
51
+ * `details: {column_type, expected_keys, actual_keys, hint}`.
52
+ * Raw-writable / read-only-forever / files-shaped types skip
53
+ * type-specific validation — `--settings` for these types only
54
+ * requires well-formed JSON (Monday validates server-side).
55
+ *
56
+ * **Live-envelope projection.** Returned `Maybe<Column>` is projected
57
+ * through `columnProjectionSchema` (the M16 R45-lifted shared shape)
58
+ * via `projectMutationColumn`. Sharing the schema keeps create /
59
+ * update / delete envelopes byte-identical for the same record.
60
+ *
61
+ * **Dry-run shape** per cli-design §6.4 column-create variant:
62
+ * minimal `{operation: "create_column", board_id, type, title,
63
+ * description?, settings?}`. No preflight read fires; the dry-run
64
+ * is purely argv-derived. `meta.source: 'none'`. The
65
+ * `noncanonical_column_type` warning fires on dry-run too so the
66
+ * live call's behaviour is predictable.
67
+ *
68
+ * **Eager invalidation** (cli-design §8 single-leg call-site
69
+ * contract). On success, calls `invalidateBoard(boardId)` AFTER
70
+ * the success envelope's `data` projection completes — never
71
+ * before the wire mutation, never between mutation and projection.
72
+ * Skipped on the error path (a failed single-leg call didn't
73
+ * change board state). The cache entry's stale `columns: [...]`
74
+ * list is dropped so subsequent reads in the same process see
75
+ * fresh state without TTL eviction.
76
+ *
77
+ * **Idempotent: false.** Re-running creates a second column with
78
+ * the same title (Monday auto-generates a fresh column id per
79
+ * call). NOT destructive (no --yes gate).
80
+ */
81
+ import { z } from 'zod';
82
+ import { ensureSubcommand } from '../types.js';
83
+ import { emitDryRun, emitMutation } from '../emit.js';
84
+ import { resolveClient } from '../../api/resolve-client.js';
85
+ import { parseArgv } from '../parse-argv.js';
86
+ import { ApiError, UsageError } from '../../utils/errors.js';
87
+ import { unwrapOrThrow } from '../../utils/parse-boundary.js';
88
+ import { BoardIdSchema } from '../../types/ids.js';
89
+ import { withBoardInvalidationSingleLeg } from '../../api/board-mutation-invalidation.js';
90
+ import { COLUMN_FIELDS_FRAGMENT, columnProjectionSchema, projectMutationColumn, } from '../../api/column-mutation-result.js';
91
+ import { categorizeNoncanonicalColumnType, isWritableColumnType, } from '../../api/column-types.js';
92
+ const CREATE_COLUMN_MUTATION = `
93
+ mutation ColumnCreate(
94
+ $boardId: ID!,
95
+ $columnType: ColumnType!,
96
+ $title: String!,
97
+ $description: String,
98
+ $defaults: JSON
99
+ ) {
100
+ create_column(
101
+ board_id: $boardId,
102
+ column_type: $columnType,
103
+ title: $title,
104
+ description: $description,
105
+ defaults: $defaults
106
+ ) {
107
+ ${COLUMN_FIELDS_FRAGMENT}
108
+ }
109
+ }
110
+ `;
111
+ export const boardColumnCreateOutputSchema = columnProjectionSchema;
112
+ /**
113
+ * The full Monday `ColumnType` enum (SDK 14.0.0; see §2.3 +
114
+ * `node_modules/@mondaydotcomorg/api/dist/esm/lib/generated/sdk.d.ts:560`).
115
+ * Hand-mirrored from the SDK rather than imported because the SDK's
116
+ * `declare enum` shape doesn't compose with zod's `.enum(...)`
117
+ * constructor (zod expects a tuple of string literals; an enum const
118
+ * is a runtime object). Adding a Monday-side type here is SemVer-
119
+ * minor; removing one is SemVer-major.
120
+ *
121
+ * NOT the same set as `WRITABLE_COLUMN_TYPES` — this is "every type
122
+ * Monday's `create_column` accepts on the wire" (the full ColumnType
123
+ * enum), of which `WRITABLE_COLUMN_TYPES` is the v0.2 friendly-
124
+ * translator subset. Types outside the writable allowlist still
125
+ * create successfully (Monday accepts them); the CLI emits a
126
+ * `noncanonical_column_type` warning so agents know to use
127
+ * `--set-raw` / `add_file_to_column` / no-write-at-all per
128
+ * category.
129
+ */
130
+ const COLUMN_TYPE_VALUES = [
131
+ 'auto_number',
132
+ 'board_relation',
133
+ 'button',
134
+ 'checkbox',
135
+ 'color_picker',
136
+ 'country',
137
+ 'creation_log',
138
+ 'date',
139
+ 'dependency',
140
+ 'doc',
141
+ 'dropdown',
142
+ 'email',
143
+ 'file',
144
+ 'formula',
145
+ 'group',
146
+ 'hour',
147
+ 'integration',
148
+ 'item_assignees',
149
+ 'item_id',
150
+ 'last_updated',
151
+ 'link',
152
+ 'location',
153
+ 'long_text',
154
+ 'mirror',
155
+ 'name',
156
+ 'numbers',
157
+ 'people',
158
+ 'person',
159
+ 'phone',
160
+ 'progress',
161
+ 'rating',
162
+ 'status',
163
+ 'subtasks',
164
+ 'tags',
165
+ 'team',
166
+ 'text',
167
+ 'time_tracking',
168
+ 'timeline',
169
+ 'unsupported',
170
+ 'vote',
171
+ 'week',
172
+ 'world_clock',
173
+ ];
174
+ /**
175
+ * Per-type `--settings <json>` zod schemas for the writable
176
+ * allowlist. Pinned narrowly: only the keys agents commonly set via
177
+ * the wire (status `labels`, dropdown `labels`, numbers `unit`)
178
+ * appear in the schema. Empty `.strict()` schemas for the simple
179
+ * types (text / long_text / date / people / link / email / phone)
180
+ * reject any keys — `--settings '{"labels":[]}' --type text` is a
181
+ * usage_error rather than a Monday-side validation_failed.
182
+ *
183
+ * Why narrow: Monday's accepted shapes evolve (cli-design pinned the
184
+ * decision deliberately — over-pinning would force docs revisions
185
+ * every time Monday adds a setting key). The contract pins the
186
+ * SHAPE (per-type validation against a per-type schema), the M16
187
+ * implementation owns the field set. Status / dropdown / numbers
188
+ * cover the documented happy paths; the rest reject anything because
189
+ * Monday has no documented `defaults: JSON` shape for them.
190
+ *
191
+ * Status `labels` accepts both shapes Monday tolerates: bare
192
+ * `string[]` (the labels in order) and `Record<string,string>`
193
+ * (the legacy index-keyed shape). Same for dropdown.
194
+ */
195
+ const statusSettingsSchema = z
196
+ .object({
197
+ labels: z
198
+ .union([
199
+ z.array(z.string()),
200
+ z.record(z.string(), z.string()),
201
+ ])
202
+ .optional(),
203
+ })
204
+ .strict();
205
+ const dropdownLabelObjectSchema = z
206
+ .object({
207
+ id: z.union([z.string(), z.number()]).optional(),
208
+ name: z.string(),
209
+ })
210
+ .strict();
211
+ const dropdownSettingsSchema = z
212
+ .object({
213
+ labels: z
214
+ .array(z.union([z.string(), dropdownLabelObjectSchema]))
215
+ .optional(),
216
+ })
217
+ .strict();
218
+ const numbersSettingsSchema = z
219
+ .object({
220
+ unit: z.string().optional(),
221
+ })
222
+ .strict();
223
+ const emptySettingsSchema = z.object({}).strict();
224
+ /**
225
+ * Per-writable-type schema lookup. Used by `validateWritableSettings`
226
+ * to reject type-mismatched `--settings` payloads at argv-parse time.
227
+ */
228
+ const WRITABLE_SETTINGS_SCHEMAS = {
229
+ text: emptySettingsSchema,
230
+ long_text: emptySettingsSchema,
231
+ numbers: numbersSettingsSchema,
232
+ status: statusSettingsSchema,
233
+ dropdown: dropdownSettingsSchema,
234
+ date: emptySettingsSchema,
235
+ people: emptySettingsSchema,
236
+ link: emptySettingsSchema,
237
+ email: emptySettingsSchema,
238
+ phone: emptySettingsSchema,
239
+ };
240
+ /**
241
+ * Hand-extracted documented key set per writable type — surfaces in
242
+ * `details.expected_keys` of the type-mismatched `usage_error` so
243
+ * agents read the accepted-keys list directly rather than having to
244
+ * round-trip through `--help`. Mirrors `WRITABLE_SETTINGS_SCHEMAS`
245
+ * verbatim — the two grow together.
246
+ */
247
+ const WRITABLE_SETTINGS_EXPECTED_KEYS = {
248
+ text: [],
249
+ long_text: [],
250
+ numbers: ['unit'],
251
+ status: ['labels'],
252
+ dropdown: ['labels'],
253
+ date: [],
254
+ people: [],
255
+ link: [],
256
+ email: [],
257
+ phone: [],
258
+ };
259
+ const isJsonObject = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
260
+ /**
261
+ * Parses `--settings <json>` at argv-parse time. Two-stage:
262
+ * 1. JSON.parse (malformed JSON → usage_error, before any network
263
+ * call). Monday's `defaults: JSON` argument requires a JSON
264
+ * object on the wire; a bare string / number / array at the
265
+ * top level is rejected here (mirrors `--set-raw`'s shape rule
266
+ * so the two escape hatches read consistently).
267
+ * 2. For types in `WRITABLE_COLUMN_TYPES`, parse against the per-
268
+ * type schema. A schema failure surfaces as usage_error with
269
+ * `details: {column_type, expected_keys, actual_keys, hint}`.
270
+ * Other types skip type-specific validation per cli-design
271
+ * §4.3 column-create (well-formed JSON only).
272
+ */
273
+ const parseSettingsFlag = (raw, columnType) => {
274
+ let parsed;
275
+ try {
276
+ parsed = JSON.parse(raw);
277
+ }
278
+ catch (err) {
279
+ // JSON.parse throws SyntaxError, which is an Error — the
280
+ // String(err) fallback is defensive against a future host that
281
+ // throws a non-Error here. Leaving the narrowing in for safety
282
+ // (useUnknownInCatchVariables) but ignoring the unreachable
283
+ // branch for coverage purposes.
284
+ /* c8 ignore next */
285
+ const message = err instanceof Error ? err.message : String(err);
286
+ throw new UsageError(`--settings: malformed JSON (${message})`, {
287
+ cause: err,
288
+ details: {
289
+ column_type: columnType,
290
+ raw,
291
+ parse_error: message,
292
+ hint: 'pass a well-formed JSON object literal (e.g. ' +
293
+ '--settings \'{"labels":["Low","Med","High"]}\'); use ' +
294
+ 'single-quote-around-double-quote shell quoting on POSIX shells.',
295
+ },
296
+ });
297
+ }
298
+ if (!isJsonObject(parsed)) {
299
+ throw new UsageError(`--settings: expected a JSON object, got ${Array.isArray(parsed) ? 'array' : parsed === null ? 'null' : typeof parsed}`, {
300
+ details: {
301
+ column_type: columnType,
302
+ raw,
303
+ hint: 'Monday\'s create_column `defaults: JSON` argument requires ' +
304
+ 'a JSON object — wrap the literal in {…}.',
305
+ },
306
+ });
307
+ }
308
+ if (isWritableColumnType(columnType)) {
309
+ const schema = WRITABLE_SETTINGS_SCHEMAS[columnType];
310
+ const result = schema.safeParse(parsed);
311
+ if (!result.success) {
312
+ const expectedKeys = WRITABLE_SETTINGS_EXPECTED_KEYS[columnType];
313
+ const actualKeys = Object.keys(parsed);
314
+ const issues = result.error.issues.map((i) => ({
315
+ path: i.path.map(String).join('.'),
316
+ message: i.message,
317
+ }));
318
+ throw new UsageError(`--settings: payload doesn't match the schema for column type ` +
319
+ `"${columnType}" — ${issues
320
+ .map((i) => (i.path.length > 0 ? `${i.path}: ${i.message}` : i.message))
321
+ .join('; ')}`, {
322
+ cause: result.error,
323
+ details: {
324
+ column_type: columnType,
325
+ expected_keys: expectedKeys,
326
+ actual_keys: actualKeys,
327
+ issues,
328
+ hint: expectedKeys.length === 0
329
+ ? `column type "${columnType}" accepts no --settings keys via M16; ` +
330
+ 'omit --settings or use --set-raw post-creation for type-specific writes.'
331
+ : `column type "${columnType}" accepts these --settings keys: ` +
332
+ `${expectedKeys.join(', ')}.`,
333
+ },
334
+ });
335
+ }
336
+ return result.data;
337
+ }
338
+ // Raw-writable / read-only-forever / files-shaped: well-formed
339
+ // JSON only (Monday validates server-side); skip type-specific
340
+ // validation per cli-design §4.3 column-create.
341
+ return parsed;
342
+ };
343
+ const inputSchema = z
344
+ .object({
345
+ boardId: BoardIdSchema,
346
+ type: z.enum(COLUMN_TYPE_VALUES),
347
+ title: z.string().refine((s) => s.trim().length > 0, {
348
+ message: '--title must be non-empty (whitespace-only is rejected)',
349
+ }),
350
+ description: z.string().optional(),
351
+ /**
352
+ * Raw `--settings <json>` string — parsed + per-type-validated
353
+ * inside the action body via `parseSettingsFlag` because the
354
+ * validation depends on the resolved `--type`. Schema only
355
+ * checks "well-formed string" here.
356
+ */
357
+ settings: z.string().optional(),
358
+ })
359
+ .strict();
360
+ const responseSchema = z
361
+ .object({
362
+ create_column: z.unknown(),
363
+ })
364
+ .loose();
365
+ /**
366
+ * Builds the §6 `noncanonical_column_type` warning when `--type`
367
+ * resolves to a non-canonical type. Returns `[]` for canonical types
368
+ * so the action body can splat unconditionally. Shape matches the
369
+ * cli-design §6 stable warning-code registry pin (column_type,
370
+ * category, suggested_write_path).
371
+ */
372
+ const buildNoncanonicalWarning = (columnType) => {
373
+ const details = categorizeNoncanonicalColumnType(columnType);
374
+ if (details === null)
375
+ return [];
376
+ const message = buildNoncanonicalMessage(columnType, details.category);
377
+ return [
378
+ {
379
+ code: 'noncanonical_column_type',
380
+ message,
381
+ details: {
382
+ column_type: columnType,
383
+ category: details.category,
384
+ suggested_write_path: details.suggestedWritePath,
385
+ },
386
+ },
387
+ ];
388
+ };
389
+ const buildNoncanonicalMessage = (columnType, category) => {
390
+ switch (category) {
391
+ case 'raw_writable':
392
+ return (`Column type "${columnType}" was created successfully but is not ` +
393
+ `in the v0.2 writable allowlist (cli-design §5.3). Use ` +
394
+ `\`--set-raw <col>=<json>\` to write to this column post-creation.`);
395
+ case 'read_only_forever':
396
+ return (`Column type "${columnType}" was created successfully but Monday ` +
397
+ `computes its value server-side and never makes it writable via ` +
398
+ `the API. The column exists for read-side display / mirror ` +
399
+ `sources only; \`--set\` and \`--set-raw\` against it surface ` +
400
+ `unsupported_column_type.`);
401
+ case 'files_shaped':
402
+ return (`Column type "${columnType}" was created successfully but the ` +
403
+ `write path is \`add_file_to_column\` (multipart upload), ` +
404
+ `pinned to v0.4 (asset upload). The column exists, but ` +
405
+ `\`--set\` and \`--set-raw\` against it surface ` +
406
+ `unsupported_column_type until v0.4 lands.`);
407
+ }
408
+ };
409
+ export const boardColumnCreateCommand = {
410
+ name: 'board.column-create',
411
+ summary: 'Create a new column on a board',
412
+ examples: [
413
+ 'monday board column-create 12345 --type text --title "Notes"',
414
+ 'monday board column-create 12345 --type status --title "Priority" --settings \'{"labels":["Low","Med","High"]}\'',
415
+ 'monday board column-create 12345 --type numbers --title "Cost" --settings \'{"unit":"USD"}\' --description "Budgeted cost"',
416
+ 'monday board column-create 12345 --type country --title "Region" --json',
417
+ 'monday board column-create 12345 --type text --title "Preview" --dry-run --json',
418
+ ],
419
+ // create_column is non-idempotent — re-running creates a second
420
+ // column with the same title (Monday auto-generates a fresh column
421
+ // id per call). Mirrors `board create` / `workspace create` /
422
+ // `item create` rationale.
423
+ idempotent: false,
424
+ inputSchema,
425
+ outputSchema: boardColumnCreateOutputSchema,
426
+ attach: (program, ctx) => {
427
+ const noun = ensureSubcommand(program, 'board', 'Board commands');
428
+ noun
429
+ .command('column-create <boardId>')
430
+ .description(boardColumnCreateCommand.summary)
431
+ .requiredOption('--type <type>', 'column type (e.g. text, status, numbers — full ColumnType enum)')
432
+ .requiredOption('--title <t>', 'column title')
433
+ .option('--description <d>', 'column description')
434
+ .option('--settings <json>', 'type-specific settings JSON (status/dropdown labels, numbers unit, etc.)')
435
+ .addHelpText('after', ['', 'Examples:', ...boardColumnCreateCommand.examples.map((e) => ` ${e}`), ''].join('\n'))
436
+ .action(async (boardId, opts) => {
437
+ const parsed = parseArgv(boardColumnCreateCommand.inputSchema, {
438
+ boardId,
439
+ ...opts,
440
+ });
441
+ const title = parsed.title.trim();
442
+ // Parse + per-type-validate --settings ahead of resolveClient
443
+ // so a malformed payload surfaces as usage_error (exit 1)
444
+ // before any token check (config_error, exit 3) — same
445
+ // ordering invariant the destructive-gate verbs preserve.
446
+ const settings = parsed.settings === undefined
447
+ ? undefined
448
+ : parseSettingsFlag(parsed.settings, parsed.type);
449
+ const { client, globalFlags, apiVersion, toEmit } = resolveClient(ctx, program.opts());
450
+ const warnings = buildNoncanonicalWarning(parsed.type);
451
+ if (globalFlags.dryRun) {
452
+ // Per cli-design §6.4 column-create variant: minimal
453
+ // `{operation, board_id, type, title, description?,
454
+ // settings?}`. No preflight read fires — purely argv-
455
+ // derived; meta.source: 'none'. The `noncanonical_column_
456
+ // type` warning fires on dry-run too so the live call's
457
+ // behaviour is predictable.
458
+ const planned = {
459
+ operation: 'create_column',
460
+ board_id: parsed.boardId,
461
+ type: parsed.type,
462
+ title,
463
+ };
464
+ if (parsed.description !== undefined) {
465
+ planned.description = parsed.description;
466
+ }
467
+ if (settings !== undefined) {
468
+ planned.settings = settings;
469
+ }
470
+ emitDryRun({
471
+ ctx,
472
+ programOpts: program.opts(),
473
+ plannedChanges: [planned],
474
+ source: 'none',
475
+ cacheAgeSeconds: null,
476
+ warnings,
477
+ apiVersion,
478
+ });
479
+ return;
480
+ }
481
+ // Live path. Send each optional arg only when the agent
482
+ // provided one — passing `null` would explicitly clear /
483
+ // reject Monday's server-side default.
484
+ const variables = {
485
+ boardId: parsed.boardId,
486
+ columnType: parsed.type,
487
+ title,
488
+ };
489
+ if (parsed.description !== undefined) {
490
+ variables.description = parsed.description;
491
+ }
492
+ if (settings !== undefined) {
493
+ variables.defaults = settings;
494
+ }
495
+ // §8 single-leg call-site contract via `withBoardInvalidation
496
+ // SingleLeg` (R46): the helper invalidates AFTER the closure
497
+ // returns (i.e. after `data` projection completes). On the
498
+ // error path the closure's throw bypasses invalidation —
499
+ // matching the §8 "skip on error" rule. Ordered BEFORE
500
+ // emitMutation so a cache-unlink failure surfaces through
501
+ // the runner's catch-all rather than double-emitting after
502
+ // a success envelope hit stdout.
503
+ const { data: projected, response } = await withBoardInvalidationSingleLeg({
504
+ boardId: parsed.boardId,
505
+ env: ctx.env,
506
+ perform: async () => {
507
+ const wireResponse = await client.raw(CREATE_COLUMN_MUTATION, variables, { operationName: 'ColumnCreate' });
508
+ const data = unwrapOrThrow(responseSchema.safeParse(wireResponse.data), {
509
+ context: 'Monday returned a malformed ColumnCreate response',
510
+ details: { board_id: parsed.boardId, title },
511
+ hint: "this is a data-integrity error in Monday's response; " +
512
+ 'verify the response shape and update responseSchema if ' +
513
+ "Monday's contract has changed.",
514
+ });
515
+ // Distinguish missing-root-key (schema-drift →
516
+ // internal_error with schema-drift hint) from null
517
+ // payload (Monday returned no column → also
518
+ // internal_error here since create's contract is "every
519
+ // successful call returns a Column"). Mirrors the M15
520
+ // board-create / archive / delete missing-root-key vs
521
+ // null-payload split.
522
+ if (!('create_column' in data)) {
523
+ throw new ApiError('internal_error', `Monday's ColumnCreate response is missing the create_column root field`, {
524
+ details: {
525
+ board_id: parsed.boardId,
526
+ title,
527
+ hint: "this is a schema-drift error in Monday's GraphQL " +
528
+ 'response; verify the mutation declaration and update ' +
529
+ "the response schema if Monday's contract has changed.",
530
+ },
531
+ });
532
+ }
533
+ // R45 lift (api/column-mutation-result.ts): null-payload
534
+ // guard + projection. Create's null path uses
535
+ // `internal_error` because the contract is "every
536
+ // successful call returns a Column"; the helper carries
537
+ // the agent-supplied `title` in `details` (paired with
538
+ // `board_id`) because the new column id doesn't exist
539
+ // yet on the null path.
540
+ const projection = projectMutationColumn({
541
+ raw: data.create_column,
542
+ errorCode: 'internal_error',
543
+ errorMessage: `Monday returned no column payload from create_column for board ${parsed.boardId} title ${JSON.stringify(title)}.`,
544
+ boardId: parsed.boardId,
545
+ columnIdKey: 'title',
546
+ columnIdValue: title,
547
+ });
548
+ return { data: projection, response: wireResponse };
549
+ },
550
+ });
551
+ emitMutation({
552
+ ctx,
553
+ data: projected,
554
+ schema: boardColumnCreateCommand.outputSchema,
555
+ programOpts: program.opts(),
556
+ warnings,
557
+ ...toEmit(response),
558
+ source: 'live',
559
+ cacheAgeSeconds: null,
560
+ });
561
+ });
562
+ },
563
+ };
564
+ //# sourceMappingURL=column-create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"column-create.js","sourceRoot":"","sources":["../../../src/commands/board/column-create.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * `monday board column-delete <bid> <cid> --yes [--dry-run]` — delete
3
+ * a column on a board (`cli-design.md` §4.3 line 1098, `v0.2-plan.md`
4
+ * §3 M16).
5
+ *
6
+ * **Confirmation gate** (cli-design §3.1 #7 + §10.2). `--yes` is
7
+ * mandatory for the live path; without `--yes` AND without
8
+ * `--dry-run` the command fails fast with `confirmation_required`
9
+ * (exit 1) carrying `details.{board_id, column_id, hint}` per
10
+ * cli-design §6.5 single-target shape — the wire signature
11
+ * (`delete_column(board_id, column_id)`) is two-tuple, so both ids
12
+ * echo. Same gate-before-`resolveClient()` ordering as `item delete`
13
+ * / `workspace delete` / `board delete`. R29 helper count: 7 → 8
14
+ * (column-delete is the 8th consumer of `enforceDestructiveGate`,
15
+ * the first to use the new `extraDetails` slot for two-tuple
16
+ * destructive verbs).
17
+ *
18
+ * **`--dry-run` bypasses the confirmation gate** per cli-design §3.1
19
+ * #7 — dry-run is non-executing and the gate is for live destructive
20
+ * writes only. `column-delete <bid> <cid> --dry-run` without
21
+ * `--yes` emits the dry-run envelope with `meta.source: 'none'`,
22
+ * matching `item delete` / `update delete` / `workspace delete` /
23
+ * `board delete` precedent.
24
+ *
25
+ * **Wire shape.** Single round-trip via `delete_column(board_id,
26
+ * column_id)`. Monday returns `Maybe<Column>` (the column's last-
27
+ * look projection before deletion). A null result surfaces as
28
+ * `not_found` — the standard "id was bogus / already deleted"
29
+ * mapping.
30
+ *
31
+ * **Dry-run shape** per cli-design §6.4 column-delete variant:
32
+ * minimal `{operation: "delete_column", board_id, column_id}`. No
33
+ * preflight read fires; the dry-run is purely argv-derived.
34
+ * `meta.source: 'none'`. Mirrors the destructive-no-read pattern
35
+ * uniform across `item delete` / `update delete` / `workspace
36
+ * delete` / `board delete`.
37
+ *
38
+ * **Eager invalidation** (cli-design §8 single-leg call-site
39
+ * contract). On success, calls `invalidateBoard(boardId)` AFTER the
40
+ * success envelope's `data` projection completes; ordered BEFORE
41
+ * `emitMutation` so a cache-unlink failure surfaces through the
42
+ * runner's catch-all rather than double-emitting after a success
43
+ * envelope hit stdout. Skipped on the error path (a failed call
44
+ * didn't change board state).
45
+ *
46
+ * **Idempotent: false.** Re-deleting an already-deleted column
47
+ * surfaces `not_found` past the first call — the wire-level
48
+ * converges, but the CLI-level surfaces a different envelope.
49
+ * Mirrors `item delete` / `update delete` / `workspace delete` /
50
+ * `board delete` rationale.
51
+ *
52
+ * **Note on column-archive divergence.** Monday's API has no
53
+ * `archive_column` mutation — column lifecycle is delete-only,
54
+ * mirroring the underlying API surface. The CLI doesn't surface
55
+ * a `column-archive` verb (cli-design §4.3 column-delete line ~1166).
56
+ */
57
+ import { z } from 'zod';
58
+ import { type CommandModule } from '../types.js';
59
+ import { type ColumnProjection } from '../../api/column-mutation-result.js';
60
+ export declare const boardColumnDeleteOutputSchema: z.ZodObject<{
61
+ id: z.ZodString;
62
+ title: z.ZodString;
63
+ type: z.ZodString;
64
+ description: z.ZodNullable<z.ZodString>;
65
+ archived: z.ZodNullable<z.ZodBoolean>;
66
+ settings_str: z.ZodNullable<z.ZodString>;
67
+ width: z.ZodNullable<z.ZodNumber>;
68
+ }, z.core.$strict>;
69
+ export type BoardColumnDeleteOutput = ColumnProjection;
70
+ declare const inputSchema: z.ZodObject<{
71
+ boardId: z.core.$ZodBranded<z.ZodString, "BoardId", "out">;
72
+ columnId: z.core.$ZodBranded<z.ZodString, "ColumnId", "out">;
73
+ }, z.core.$strict>;
74
+ export declare const boardColumnDeleteCommand: CommandModule<z.infer<typeof inputSchema>, BoardColumnDeleteOutput>;
75
+ export {};
76
+ //# sourceMappingURL=column-delete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"column-delete.d.ts","sourceRoot":"","sources":["../../../src/commands/board/column-delete.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAUnE,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,qCAAqC,CAAC;AAU7C,eAAO,MAAM,6BAA6B;;;;;;;;kBAAyB,CAAC;AACpE,MAAM,MAAM,uBAAuB,GAAG,gBAAgB,CAAC;AAEvD,QAAA,MAAM,WAAW;;;kBAUN,CAAC;AAQZ,eAAO,MAAM,wBAAwB,EAAE,aAAa,CAClD,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,EAC3B,uBAAuB,CAyJxB,CAAC"}