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,256 @@
1
+ /**
2
+ * `items_page` GraphQL helper — single-page fetcher pair
3
+ * (`v0.2-plan.md` §18 R34).
4
+ *
5
+ * Lifted from five sites that all hand-rolled the same
6
+ * `query Foo($boardId: ID!, $limit: Int!, $queryParams: ItemsQuery)
7
+ * { boards(ids: [$boardId]) { items_page(...) { cursor items {...} } } }`
8
+ * shape with per-site item-field projection + per-site
9
+ * `unwrapOrThrow`-wrapped malformed-response handling. The shared
10
+ * surface is:
11
+ *
12
+ * - GraphQL string assembly (operation name + optional group-filter
13
+ * wrapper + caller-supplied item-fields fragment).
14
+ * - Response parse boundary — `boards[0]` (and `groups[0]` for the
15
+ * group-filtered variant) → `items_page.{cursor, items[]}` with
16
+ * the matching malformed-response context message.
17
+ *
18
+ * **Operation name as a parameter**, not a constant. The SDK threads
19
+ * `operationName` to Monday's request-log telemetry so a `bulk item
20
+ * update --where` walk is distinguishable from a `bulk item clear
21
+ * --where` walk in Monday's logs. Same reason §18 R33 stays deferred:
22
+ * collapsing operations under one name breaks attribution.
23
+ *
24
+ * **Item-fields fragment as a string**, not a typed projection. Three
25
+ * projections in scope today: `id` (clear / update bulk walkers),
26
+ * `id\n name` (upsert lookup), `${ITEM_FIELDS_FRAGMENT}`
27
+ * (item list). Projections are inlined verbatim into the query
28
+ * source — the per-call response zod schema validates that the rows
29
+ * Monday returned actually match.
30
+ *
31
+ * **Group-filter variant** (`item list --group <gid>`) wraps an extra
32
+ * `groups(ids: [$groupId])` selection between `boards` and
33
+ * `items_page`. The helper switches the query shape and the response
34
+ * schema based on the optional `groupId` input — both the wire shape
35
+ * and Monday's accepted variable set diverge between the two queries
36
+ * (the top-level `items_page` doesn't accept `group_id` inside
37
+ * `query_params`, so the group-aware path is structurally distinct).
38
+ *
39
+ * **The cursor walker stays in `pagination.ts`.** All bulk consumers
40
+ * (item list, item update --where, item clear --where) thread these
41
+ * single-page fetchers through `paginate.ts`'s `fetchInitial` /
42
+ * `fetchNext` closures. That preserves the §3.1 #8 per-page
43
+ * ascending-by-ID sort and the §5.6 `stale_cursor` enrichment
44
+ * (`cursor_age_seconds` / `items_returned_so_far` / `last_item_id`)
45
+ * across every site post-lift. Codex round-1 F1 + F2 caught the
46
+ * variant where a thin generator dropped both — pure refactor must
47
+ * match pre-lift behavior, not just pre-lift error code.
48
+ *
49
+ * **stale_cursor fail-fast.** `cli-design.md` §5.6 — Monday's cursor
50
+ * lifetime is 60 min, expired cursors return `INVALID_CURSOR_EXCEPTION`
51
+ * which `api/errors.ts` maps to `error.code === 'stale_cursor'`. The
52
+ * helper bubbles the error unchanged so `paginate.ts` can layer its
53
+ * §5.6 details enrichment on top.
54
+ */
55
+ import { z } from 'zod';
56
+ import { ApiError } from '../utils/errors.js';
57
+ import { unwrapOrThrow } from '../utils/parse-boundary.js';
58
+ const buildItemsPageQuery = (inputs) => {
59
+ const itemsPage = `items_page(limit: $limit, query_params: $queryParams) {
60
+ cursor
61
+ items {
62
+ ${inputs.itemFields}
63
+ }
64
+ }`;
65
+ if (inputs.hasGroup) {
66
+ return `
67
+ query ${inputs.operationName}(
68
+ $boardId: ID!
69
+ $groupId: String!
70
+ $limit: Int!
71
+ $queryParams: ItemsQuery
72
+ ) {
73
+ boards(ids: [$boardId]) {
74
+ groups(ids: [$groupId]) {
75
+ ${itemsPage}
76
+ }
77
+ }
78
+ }
79
+ `;
80
+ }
81
+ return `
82
+ query ${inputs.operationName}(
83
+ $boardId: ID!
84
+ $limit: Int!
85
+ $queryParams: ItemsQuery
86
+ ) {
87
+ boards(ids: [$boardId]) {
88
+ ${itemsPage}
89
+ }
90
+ }
91
+ `;
92
+ };
93
+ const buildNextItemsPageQuery = (inputs) => `
94
+ query ${inputs.operationName}($cursor: String!, $limit: Int!) {
95
+ next_items_page(limit: $limit, cursor: $cursor) {
96
+ cursor
97
+ items {
98
+ ${inputs.itemFields}
99
+ }
100
+ }
101
+ }
102
+ `;
103
+ // Schema builders are inlined per call site so the generic-instance
104
+ // types stay narrow per fetcher (the lint
105
+ // `explicit-function-return-type` rule combined with zod's deeply
106
+ // nested ZodObject<...> inferred return type makes a top-level
107
+ // builder ergonomically infeasible without massive annotations —
108
+ // the inlined versions infer cleanly from each call site's `T`).
109
+ /**
110
+ * Fires one `items_page(query_params:)` query and returns the parsed
111
+ * `{items, cursor}` payload as `MondayResponse.data`. The wider
112
+ * `MondayResponse` shape (complexity, stats) passes through untouched
113
+ * so callers can spread it into `toEmit(response)` for `meta`.
114
+ *
115
+ * Malformed responses surface as typed `internal_error` carrying
116
+ * `details.issues` (per-field zod failure path) — same parse-boundary
117
+ * contract as the standalone `unwrapOrThrow` helper.
118
+ */
119
+ export const fetchItemsPage = async (inputs) => {
120
+ const hasGroup = inputs.groupId !== undefined;
121
+ const query = buildItemsPageQuery({
122
+ operationName: inputs.operationName,
123
+ hasGroup,
124
+ itemFields: inputs.itemFields,
125
+ });
126
+ const variables = {
127
+ boardId: inputs.boardId,
128
+ limit: inputs.limit,
129
+ };
130
+ if (hasGroup) {
131
+ variables.groupId = inputs.groupId;
132
+ }
133
+ if (inputs.queryParams !== undefined) {
134
+ variables.queryParams = inputs.queryParams;
135
+ }
136
+ else {
137
+ variables.queryParams = null;
138
+ }
139
+ const response = await inputs.client.raw(query, variables, {
140
+ operationName: inputs.operationName,
141
+ });
142
+ const context = `Monday returned a malformed ${inputs.operationName} response for board ${inputs.boardId}`;
143
+ const details = { board_id: inputs.boardId };
144
+ const itemsPage = hasGroup
145
+ ? extractGroupedItemsPage(response.data, inputs.itemSchema, {
146
+ context,
147
+ details,
148
+ operationName: inputs.operationName,
149
+ })
150
+ : extractTopLevelItemsPage(response.data, inputs.itemSchema, {
151
+ context,
152
+ details,
153
+ operationName: inputs.operationName,
154
+ });
155
+ return {
156
+ ...response,
157
+ data: { items: itemsPage.items, cursor: itemsPage.cursor },
158
+ };
159
+ };
160
+ const extractTopLevelItemsPage = (data, itemSchema, ctx) => {
161
+ const schema = z
162
+ .object({
163
+ boards: z
164
+ .array(z
165
+ .object({
166
+ items_page: z.object({
167
+ cursor: z.string().nullable(),
168
+ items: z.array(itemSchema),
169
+ }),
170
+ })
171
+ .loose())
172
+ .min(1),
173
+ })
174
+ .loose();
175
+ const parsed = unwrapOrThrow(schema.safeParse(data), {
176
+ context: ctx.context,
177
+ details: ctx.details,
178
+ });
179
+ // Schema's `.min(1)` already rejected empty boards arrays; the
180
+ // guard satisfies `noUncheckedIndexedAccess`.
181
+ const board = parsed.boards[0];
182
+ /* c8 ignore next 6 */
183
+ if (board === undefined) {
184
+ throw new ApiError('internal_error', `${ctx.operationName}: empty boards array`);
185
+ }
186
+ return board.items_page;
187
+ };
188
+ const extractGroupedItemsPage = (data, itemSchema, ctx) => {
189
+ const schema = z
190
+ .object({
191
+ boards: z
192
+ .array(z
193
+ .object({
194
+ groups: z
195
+ .array(z
196
+ .object({
197
+ items_page: z.object({
198
+ cursor: z.string().nullable(),
199
+ items: z.array(itemSchema),
200
+ }),
201
+ })
202
+ .loose())
203
+ .min(1),
204
+ })
205
+ .loose())
206
+ .min(1),
207
+ })
208
+ .loose();
209
+ const parsed = unwrapOrThrow(schema.safeParse(data), {
210
+ context: ctx.context,
211
+ details: ctx.details,
212
+ });
213
+ const board = parsed.boards[0];
214
+ /* c8 ignore next 6 */
215
+ if (board === undefined) {
216
+ throw new ApiError('internal_error', `${ctx.operationName}: empty boards array`);
217
+ }
218
+ const group = board.groups[0];
219
+ /* c8 ignore next 6 */
220
+ if (group === undefined) {
221
+ throw new ApiError('internal_error', `${ctx.operationName}: empty groups array`);
222
+ }
223
+ return group.items_page;
224
+ };
225
+ /**
226
+ * Fires one `next_items_page(cursor:)` continuation and returns the
227
+ * parsed `{items, cursor}` payload. Same parse-boundary contract as
228
+ * {@link fetchItemsPage}.
229
+ */
230
+ export const fetchNextItemsPage = async (inputs) => {
231
+ const query = buildNextItemsPageQuery({
232
+ operationName: inputs.operationName,
233
+ itemFields: inputs.itemFields,
234
+ });
235
+ const response = await inputs.client.raw(query, { cursor: inputs.cursor, limit: inputs.limit }, { operationName: inputs.operationName });
236
+ const schema = z
237
+ .object({
238
+ next_items_page: z.object({
239
+ cursor: z.string().nullable(),
240
+ items: z.array(inputs.itemSchema),
241
+ }),
242
+ })
243
+ .loose();
244
+ const data = unwrapOrThrow(schema.safeParse(response.data), {
245
+ context: `Monday returned a malformed ${inputs.operationName} response`,
246
+ details: { cursor: inputs.cursor },
247
+ });
248
+ return {
249
+ ...response,
250
+ data: {
251
+ items: data.next_items_page.items,
252
+ cursor: data.next_items_page.cursor,
253
+ },
254
+ };
255
+ };
256
+ //# sourceMappingURL=items-page-walker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"items-page-walker.js","sourceRoot":"","sources":["../../src/api/items-page-walker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Pure link-resolution helpers for the `link` column-value translator
3
+ * (`cli-design.md` §5.3 step 3 v0.2 expansion, `v0.2-plan.md` §3 M8).
4
+ *
5
+ * Surface:
6
+ * - `parseLinkInput` — accepts the two pipe-form shapes cli-design
7
+ * §5.3 enumerates: `<url>` (text defaults to the URL) and
8
+ * `<url>|<text>` (both segments trimmed; pipe-split max 1 split).
9
+ * URL validated via `z.string().url()`.
10
+ *
11
+ * **Why a separate module.** Same template `dates.ts` / `people.ts`
12
+ * follow — column-values.ts owns translator dispatch; the per-type
13
+ * grammar machinery + zod boundary lives one module deeper. Split
14
+ * keeps column-values.ts at one screen of dispatch logic and each
15
+ * translator's tests + corner-case coverage isolated.
16
+ *
17
+ * **Pipe-form max 1 split.** `<url>|<text>` allows `|` inside the
18
+ * `<text>` segment because `splitOnFirstPipe` only splits on the
19
+ * first `|`. So `https://example.com|foo|bar` parses as
20
+ * `{url: "https://example.com", text: "foo|bar"}`. Cli-design
21
+ * doesn't pin this — but pinning here means agents who want a `|`
22
+ * literal in their link text get it without reaching for `--set-raw`.
23
+ *
24
+ * **Empty trailer rejected.** `<url>|` (pipe with empty trailer) is
25
+ * rejected with `usage_error`. Cli-design §5.3 line 810-811: "Pipe-
26
+ * form with empty trailer rejected (usage_error); use --set-raw
27
+ * (below) to write a link with empty text." A user who wants empty
28
+ * text takes the escape hatch.
29
+ */
30
+ /**
31
+ * Wire payload shape for a `link` column. Matches Monday's
32
+ * `change_column_value(value: JSON!)` JSON scalar:
33
+ * `{url: <url>, text: <text>}`
34
+ *
35
+ * cli-design.md §5.3 step 3 v0.2 expansion line 806-811 pins the
36
+ * shape. `text` defaults to the URL when the pipe form is absent —
37
+ * Monday's link-column UI shows the `text` segment as the visible
38
+ * label, so a missing text would render as an empty hyperlink.
39
+ */
40
+ export interface LinkPayload {
41
+ readonly url: string;
42
+ readonly text: string;
43
+ }
44
+ /**
45
+ * Parses a `link` column input per cli-design.md §5.3 step 3 v0.2
46
+ * expansion.
47
+ *
48
+ * Accepted inputs:
49
+ * - **Single URL** `https://example.com` → `{url, text: <url>}`.
50
+ * The URL doubles as the visible text — Monday's link UI shows
51
+ * `text` as the hyperlink label.
52
+ * - **Pipe form** `https://example.com|Site` → `{url, text}`.
53
+ * Both segments trimmed; pipe-split max 1 (so `text` may
54
+ * contain literal `|` characters).
55
+ *
56
+ * Throws `UsageError(usage_error)`:
57
+ * - URL fails `z.string().url()` validation. The error names the
58
+ * failing URL so the agent can see what they sent.
59
+ * - Pipe form with empty trailer (`https://x|` or `https://x| `).
60
+ * Cli-design §5.3 line 810-811 names this rule explicitly: "use
61
+ * --set-raw to write a link with empty text".
62
+ * - Empty input after trim.
63
+ * - Pipe form with empty leader (`|Site` after trim). Same shape
64
+ * as the empty-input branch — there's no URL to validate.
65
+ *
66
+ * @param raw - The raw user-supplied value (post-`--set` parsing).
67
+ * @param columnId - Column ID for error messages.
68
+ */
69
+ export declare const parseLinkInput: (raw: string, columnId: string) => LinkPayload;
70
+ //# sourceMappingURL=links.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"links.d.ts","sourceRoot":"","sources":["../../src/api/links.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAKH;;;;;;;;;GASG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAID;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,cAAc,GACzB,KAAK,MAAM,EACX,UAAU,MAAM,KACf,WAmEF,CAAC"}
@@ -0,0 +1,128 @@
1
+ /**
2
+ * Pure link-resolution helpers for the `link` column-value translator
3
+ * (`cli-design.md` §5.3 step 3 v0.2 expansion, `v0.2-plan.md` §3 M8).
4
+ *
5
+ * Surface:
6
+ * - `parseLinkInput` — accepts the two pipe-form shapes cli-design
7
+ * §5.3 enumerates: `<url>` (text defaults to the URL) and
8
+ * `<url>|<text>` (both segments trimmed; pipe-split max 1 split).
9
+ * URL validated via `z.string().url()`.
10
+ *
11
+ * **Why a separate module.** Same template `dates.ts` / `people.ts`
12
+ * follow — column-values.ts owns translator dispatch; the per-type
13
+ * grammar machinery + zod boundary lives one module deeper. Split
14
+ * keeps column-values.ts at one screen of dispatch logic and each
15
+ * translator's tests + corner-case coverage isolated.
16
+ *
17
+ * **Pipe-form max 1 split.** `<url>|<text>` allows `|` inside the
18
+ * `<text>` segment because `splitOnFirstPipe` only splits on the
19
+ * first `|`. So `https://example.com|foo|bar` parses as
20
+ * `{url: "https://example.com", text: "foo|bar"}`. Cli-design
21
+ * doesn't pin this — but pinning here means agents who want a `|`
22
+ * literal in their link text get it without reaching for `--set-raw`.
23
+ *
24
+ * **Empty trailer rejected.** `<url>|` (pipe with empty trailer) is
25
+ * rejected with `usage_error`. Cli-design §5.3 line 810-811: "Pipe-
26
+ * form with empty trailer rejected (usage_error); use --set-raw
27
+ * (below) to write a link with empty text." A user who wants empty
28
+ * text takes the escape hatch.
29
+ */
30
+ import { z } from 'zod';
31
+ import { UsageError } from '../utils/errors.js';
32
+ const URL_SCHEMA = z.url();
33
+ /**
34
+ * Parses a `link` column input per cli-design.md §5.3 step 3 v0.2
35
+ * expansion.
36
+ *
37
+ * Accepted inputs:
38
+ * - **Single URL** `https://example.com` → `{url, text: <url>}`.
39
+ * The URL doubles as the visible text — Monday's link UI shows
40
+ * `text` as the hyperlink label.
41
+ * - **Pipe form** `https://example.com|Site` → `{url, text}`.
42
+ * Both segments trimmed; pipe-split max 1 (so `text` may
43
+ * contain literal `|` characters).
44
+ *
45
+ * Throws `UsageError(usage_error)`:
46
+ * - URL fails `z.string().url()` validation. The error names the
47
+ * failing URL so the agent can see what they sent.
48
+ * - Pipe form with empty trailer (`https://x|` or `https://x| `).
49
+ * Cli-design §5.3 line 810-811 names this rule explicitly: "use
50
+ * --set-raw to write a link with empty text".
51
+ * - Empty input after trim.
52
+ * - Pipe form with empty leader (`|Site` after trim). Same shape
53
+ * as the empty-input branch — there's no URL to validate.
54
+ *
55
+ * @param raw - The raw user-supplied value (post-`--set` parsing).
56
+ * @param columnId - Column ID for error messages.
57
+ */
58
+ export const parseLinkInput = (raw, columnId) => {
59
+ const trimmedRaw = raw.trim();
60
+ if (trimmedRaw.length === 0) {
61
+ throw emptyLinkInputError(columnId, raw);
62
+ }
63
+ const pipeIdx = trimmedRaw.indexOf('|');
64
+ let urlSegment;
65
+ let textSegment;
66
+ if (pipeIdx === -1) {
67
+ // Single-segment form: text defaults to URL.
68
+ urlSegment = trimmedRaw;
69
+ textSegment = trimmedRaw;
70
+ }
71
+ else {
72
+ urlSegment = trimmedRaw.slice(0, pipeIdx).trim();
73
+ textSegment = trimmedRaw.slice(pipeIdx + 1).trim();
74
+ if (urlSegment.length === 0) {
75
+ throw emptyLinkInputError(columnId, raw);
76
+ }
77
+ if (textSegment.length === 0) {
78
+ // Cli-design §5.3 line 810-811: "Pipe-form with empty trailer
79
+ // rejected (usage_error); use --set-raw to write a link with
80
+ // empty text." Agents who genuinely want an empty visible label
81
+ // take the escape hatch.
82
+ throw new UsageError(`Link column "${columnId}" got pipe-form input with an empty ` +
83
+ `text segment ("${raw}"). The friendly translator requires ` +
84
+ `non-empty text after "|"; pass a single URL (text defaults ` +
85
+ `to the URL) or use --set-raw to write a link with empty text.`, {
86
+ details: {
87
+ column_id: columnId,
88
+ column_type: 'link',
89
+ raw_input: raw,
90
+ hint: `pass a single URL (--set ${columnId}=https://example.com) ` +
91
+ `or pipe-form (--set ${columnId}='https://example.com|Site'). ` +
92
+ `For empty text, use --set-raw ${columnId}=` +
93
+ `'{"url":"https://example.com","text":""}'.`,
94
+ },
95
+ });
96
+ }
97
+ }
98
+ const urlResult = URL_SCHEMA.safeParse(urlSegment);
99
+ if (!urlResult.success) {
100
+ throw new UsageError(`Link column "${columnId}" got invalid URL "${urlSegment}". ` +
101
+ `Monday's link column requires a well-formed absolute URL ` +
102
+ `(e.g. https://example.com).`, {
103
+ details: {
104
+ column_id: columnId,
105
+ column_type: 'link',
106
+ raw_input: raw,
107
+ url_segment: urlSegment,
108
+ hint: `pass an absolute URL (e.g. --set ${columnId}=` +
109
+ `https://example.com). The pipe form (--set ${columnId}=` +
110
+ `'https://example.com|Site') sets a custom visible label.`,
111
+ },
112
+ });
113
+ }
114
+ return { url: urlResult.data, text: textSegment };
115
+ };
116
+ const emptyLinkInputError = (columnId, raw) => new UsageError(`Link column "${columnId}" needs a URL. Got "${raw}". To clear a ` +
117
+ `link column, use \`monday item clear <iid> ${columnId} ` +
118
+ `[--board <bid>]\` instead.`, {
119
+ details: {
120
+ column_id: columnId,
121
+ column_type: 'link',
122
+ raw_input: raw,
123
+ hint: `pass an absolute URL (--set ${columnId}=https://example.com) ` +
124
+ `or pipe-form with a visible label (--set ${columnId}=` +
125
+ `'https://example.com|Site').`,
126
+ },
127
+ });
128
+ //# sourceMappingURL=links.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"links.js","sourceRoot":"","sources":["../../src/api/links.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Shared `me`-token detection (`cli-design.md` §5.3 step 3 line
3
+ * 704-707).
4
+ *
5
+ * Three CLI surfaces resolve `me` to the connected user's ID, all
6
+ * with the same case-insensitive matching rule:
7
+ *
8
+ * 1. **`--where Owner=me`** (read filter) — `src/api/filters.ts`.
9
+ * 2. **`item search --where Owner=me`** (search filter) —
10
+ * `src/commands/item/search.ts`.
11
+ * 3. **`--set Owner=me`** (write translator) — `src/api/people.ts`.
12
+ *
13
+ * Pre-extraction, all three sites carried a verbatim copy of the
14
+ * same expression (`value.trim().toLowerCase() === 'me'`) — added
15
+ * one-by-one across the people-session Codex passes as the parity
16
+ * gap between the three was discovered. A single helper here
17
+ * prevents the next drift outright; if v0.2 extends the grammar
18
+ * (e.g. `i` / `@me` aliases) the change lands in one place.
19
+ *
20
+ * **Why a separate module.** The helper has no dependencies and
21
+ * three structurally-distinct consumers; folding it into
22
+ * `people.ts` would bind the read-side filter modules to the
23
+ * write-side translator's import graph, which is the wrong
24
+ * ordering. Keeping it standalone matches the seam every
25
+ * resolver-shaped helper in `src/api/` already follows.
26
+ */
27
+ /**
28
+ * The set of tokens that resolve to the connected user. Exposed as
29
+ * a frozen array so a future v0.2 extension (e.g. `i`, `@me`) lands
30
+ * by adding one entry; the type-guard contract is unchanged.
31
+ *
32
+ * Lowercase canonical forms — callers lowercase the input via
33
+ * `isMeToken` before checking, so adding a token in mixed case
34
+ * here would silently drop matching for the lowercase form. Pin
35
+ * via test (`me-token.test.ts`).
36
+ */
37
+ export declare const ME_TOKENS: readonly string[];
38
+ /**
39
+ * Returns `true` if the given token is one of the recognised `me`
40
+ * aliases. Case-insensitive after trim — `me` / `ME` / `Me` /
41
+ * `mE` / `" me "` all match. cli-design.md §5.3 step 3 line
42
+ * 704-707 doesn't pin case-sensitivity explicitly, but the people
43
+ * session's Codex passes settled on case-insensitive across all
44
+ * three surfaces (logged as a v0.1-plan §3 M5a spec gap for
45
+ * cli-design backfill).
46
+ *
47
+ * Returns `false` for any other input — including empty strings
48
+ * (`""` doesn't trim to a `me` token; the empty-input branch in
49
+ * each call site handles that path before reaching the helper).
50
+ */
51
+ export declare const isMeToken: (token: string) => boolean;
52
+ //# sourceMappingURL=me-token.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"me-token.d.ts","sourceRoot":"","sources":["../../src/api/me-token.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH;;;;;;;;;GASG;AACH,eAAO,MAAM,SAAS,EAAE,SAAS,MAAM,EAAW,CAAC;AAEnD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,SAAS,GAAI,OAAO,MAAM,KAAG,OAGzC,CAAC"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Shared `me`-token detection (`cli-design.md` §5.3 step 3 line
3
+ * 704-707).
4
+ *
5
+ * Three CLI surfaces resolve `me` to the connected user's ID, all
6
+ * with the same case-insensitive matching rule:
7
+ *
8
+ * 1. **`--where Owner=me`** (read filter) — `src/api/filters.ts`.
9
+ * 2. **`item search --where Owner=me`** (search filter) —
10
+ * `src/commands/item/search.ts`.
11
+ * 3. **`--set Owner=me`** (write translator) — `src/api/people.ts`.
12
+ *
13
+ * Pre-extraction, all three sites carried a verbatim copy of the
14
+ * same expression (`value.trim().toLowerCase() === 'me'`) — added
15
+ * one-by-one across the people-session Codex passes as the parity
16
+ * gap between the three was discovered. A single helper here
17
+ * prevents the next drift outright; if v0.2 extends the grammar
18
+ * (e.g. `i` / `@me` aliases) the change lands in one place.
19
+ *
20
+ * **Why a separate module.** The helper has no dependencies and
21
+ * three structurally-distinct consumers; folding it into
22
+ * `people.ts` would bind the read-side filter modules to the
23
+ * write-side translator's import graph, which is the wrong
24
+ * ordering. Keeping it standalone matches the seam every
25
+ * resolver-shaped helper in `src/api/` already follows.
26
+ */
27
+ /**
28
+ * The set of tokens that resolve to the connected user. Exposed as
29
+ * a frozen array so a future v0.2 extension (e.g. `i`, `@me`) lands
30
+ * by adding one entry; the type-guard contract is unchanged.
31
+ *
32
+ * Lowercase canonical forms — callers lowercase the input via
33
+ * `isMeToken` before checking, so adding a token in mixed case
34
+ * here would silently drop matching for the lowercase form. Pin
35
+ * via test (`me-token.test.ts`).
36
+ */
37
+ export const ME_TOKENS = ['me'];
38
+ /**
39
+ * Returns `true` if the given token is one of the recognised `me`
40
+ * aliases. Case-insensitive after trim — `me` / `ME` / `Me` /
41
+ * `mE` / `" me "` all match. cli-design.md §5.3 step 3 line
42
+ * 704-707 doesn't pin case-sensitivity explicitly, but the people
43
+ * session's Codex passes settled on case-insensitive across all
44
+ * three surfaces (logged as a v0.1-plan §3 M5a spec gap for
45
+ * cli-design backfill).
46
+ *
47
+ * Returns `false` for any other input — including empty strings
48
+ * (`""` doesn't trim to a `me` token; the empty-input branch in
49
+ * each call site handles that path before reaching the helper).
50
+ */
51
+ export const isMeToken = (token) => {
52
+ const normalised = token.trim().toLowerCase();
53
+ return ME_TOKENS.includes(normalised);
54
+ };
55
+ //# sourceMappingURL=me-token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"me-token.js","sourceRoot":"","sources":["../../src/api/me-token.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,SAAS,GAAsB,CAAC,IAAI,CAAC,CAAC;AAEnD;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAa,EAAW,EAAE;IAClD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,OAAO,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AACxC,CAAC,CAAC"}