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,91 @@
1
+ /**
2
+ * Page-based pagination walker shared by every M3 list command
3
+ * (workspace / board / user / update). Codex M3 pass-1 §1 caught
4
+ * the original per-command walkers all looped without an upper
5
+ * bound — `--all` against a misbehaving fixture or proxy that kept
6
+ * returning a full page would burn quota until timeout.
7
+ *
8
+ * The walker:
9
+ * - always issues at least one request (the bare `monday X list`
10
+ * case calls this with `all: false` and `page: 1`);
11
+ * - on a short page (`< limit`) terminates with `hasMore: false`;
12
+ * - on a full page with `all: true`, increments and continues;
13
+ * - on hitting `maxPages`, stops and reports `hasMore: true` —
14
+ * the caller raises a `pagination_cap_reached` warning so the
15
+ * agent knows the result is truncated.
16
+ *
17
+ * Cursor-based pagination (M4 `item list`) gets its own walker —
18
+ * §5.6 calls out the stale-cursor contract and the silent-retry
19
+ * forbid that doesn't apply to page-based reads.
20
+ */
21
+ import type { MondayResponse } from './client.js';
22
+ export interface WalkPagesInputs<T, R> {
23
+ /**
24
+ * Per-page request executor. Receives the 1-indexed page number,
25
+ * returns the typed `MondayResponse<R>` of one page. The walker
26
+ * accumulates the projection.
27
+ */
28
+ readonly fetchPage: (page: number) => Promise<MondayResponse<R>>;
29
+ /**
30
+ * Extracts the array of items from one page's response. Returning
31
+ * an empty array signals exhaustion (no further pages).
32
+ */
33
+ readonly extractItems: (response: MondayResponse<R>) => readonly T[];
34
+ /** Page size the caller passed to the GraphQL query. Used to
35
+ * tell whether a returned page is "full" (= maybe more) vs
36
+ * "short" (= terminal). */
37
+ readonly pageSize: number;
38
+ /** Honour the `--all` flag. */
39
+ readonly all: boolean;
40
+ /**
41
+ * 1-indexed starting page. When `all: false` and `startPage`
42
+ * is set, the walker fetches exactly that page. Default 1.
43
+ */
44
+ readonly startPage?: number;
45
+ /**
46
+ * Hard cap on pages to walk under `--all`. Per Codex M3 pass-1 §1,
47
+ * every list command must cap; the caller propagates this through
48
+ * `--limit-pages`. Default in caller, surfaced as a usage option.
49
+ */
50
+ readonly maxPages: number;
51
+ /**
52
+ * Streaming hook for the NDJSON output mode (§6.3). Called once
53
+ * per emitted item, in the per-page arrival order returned by
54
+ * `extractItems` (page-walked queries don't sort — Monday's
55
+ * server-side ordering wins). `await`ed so a slow downstream
56
+ * consumer (a piped `jq`) backpressures the walker — same shape
57
+ * as `paginate.onItem`. Mirrors `pagination.ts:369` push-then-
58
+ * await ordering exactly: the item lands in `collected` before
59
+ * the hook awaits, so a hook throwing mid-page leaves a
60
+ * deterministic prefix in `result.items` (Codex M18 pre-flight
61
+ * P3-1).
62
+ */
63
+ readonly onItem?: (item: T) => void | Promise<void>;
64
+ }
65
+ export interface WalkPagesResult<T, R> {
66
+ /** All items collected across walked pages, in arrival order. */
67
+ readonly items: readonly T[];
68
+ /** The final response — used for `meta.complexity` etc. */
69
+ readonly lastResponse: MondayResponse<R>;
70
+ /**
71
+ * `true` when the walker stopped early (cap hit on a still-full
72
+ * page). Drives a `pagination_cap_reached` warning at the caller;
73
+ * also lands on `meta.has_more`.
74
+ */
75
+ readonly hasMore: boolean;
76
+ /** How many pages the walker actually fetched. */
77
+ readonly pagesFetched: number;
78
+ }
79
+ export declare const walkPages: <T, R>(inputs: WalkPagesInputs<T, R>) => Promise<WalkPagesResult<T, R>>;
80
+ export interface PaginationCapWarning {
81
+ readonly code: 'pagination_cap_reached';
82
+ readonly message: string;
83
+ readonly details: {
84
+ readonly pages_walked: number;
85
+ readonly hint: string;
86
+ };
87
+ }
88
+ export declare const buildCapWarning: (pagesWalked: number, flagName?: string) => PaginationCapWarning;
89
+ /** Default cap shared by every M3 list command's `--all` walk. */
90
+ export declare const DEFAULT_MAX_PAGES = 50;
91
+ //# sourceMappingURL=walk-pages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walk-pages.d.ts","sourceRoot":"","sources":["../../src/api/walk-pages.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,WAAW,eAAe,CAAC,CAAC,EAAE,CAAC;IACnC;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IACjE;;;OAGG;IACH,QAAQ,CAAC,YAAY,EAAE,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,EAAE,CAAC;IACrE;;gCAE4B;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,+BAA+B;IAC/B,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrD;AAED,MAAM,WAAW,eAAe,CAAC,CAAC,EAAE,CAAC;IACnC,iEAAiE;IACjE,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;IAC7B,2DAA2D;IAC3D,QAAQ,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IACzC;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,kDAAkD;IAClD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAmBD,eAAO,MAAM,SAAS,GAAU,CAAC,EAAE,CAAC,EAClC,QAAQ,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,KAC5B,OAAO,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CA4C/B,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,eAAO,MAAM,eAAe,GAC1B,aAAa,MAAM,EACnB,iBAA0B,KACzB,oBAOD,CAAC;AAEH,kEAAkE;AAClE,eAAO,MAAM,iBAAiB,KAAK,CAAC"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Page-based pagination walker shared by every M3 list command
3
+ * (workspace / board / user / update). Codex M3 pass-1 §1 caught
4
+ * the original per-command walkers all looped without an upper
5
+ * bound — `--all` against a misbehaving fixture or proxy that kept
6
+ * returning a full page would burn quota until timeout.
7
+ *
8
+ * The walker:
9
+ * - always issues at least one request (the bare `monday X list`
10
+ * case calls this with `all: false` and `page: 1`);
11
+ * - on a short page (`< limit`) terminates with `hasMore: false`;
12
+ * - on a full page with `all: true`, increments and continues;
13
+ * - on hitting `maxPages`, stops and reports `hasMore: true` —
14
+ * the caller raises a `pagination_cap_reached` warning so the
15
+ * agent knows the result is truncated.
16
+ *
17
+ * Cursor-based pagination (M4 `item list`) gets its own walker —
18
+ * §5.6 calls out the stale-cursor contract and the silent-retry
19
+ * forbid that doesn't apply to page-based reads.
20
+ */
21
+ const emitPageItems = async (items, collected, onItem) => {
22
+ // Push-then-await ordering — same as `paginate.emitItems` at
23
+ // pagination.ts:369. The item lands in `collected` before the
24
+ // hook awaits, so a hook throwing mid-page leaves a deterministic
25
+ // prefix in `result.items` (Codex M18 pre-flight P3-1).
26
+ for (const item of items) {
27
+ collected.push(item);
28
+ if (onItem !== undefined) {
29
+ await onItem(item);
30
+ }
31
+ }
32
+ };
33
+ export const walkPages = async (inputs) => {
34
+ const { fetchPage, extractItems, pageSize, all, maxPages, onItem } = inputs;
35
+ const startPage = inputs.startPage ?? 1;
36
+ // First request always runs. Page count includes this attempt.
37
+ let lastResponse = await fetchPage(startPage);
38
+ const collected = [];
39
+ let pagesFetched = 1;
40
+ const firstPage = extractItems(lastResponse);
41
+ await emitPageItems(firstPage, collected, onItem);
42
+ // No-walk case: caller asked for one page only.
43
+ if (!all) {
44
+ return {
45
+ items: collected,
46
+ lastResponse,
47
+ hasMore: firstPage.length === pageSize,
48
+ pagesFetched,
49
+ };
50
+ }
51
+ // Walk while pages are full and we're under the cap. Empty page or
52
+ // short page terminates the walk; cap hit on a full page surfaces
53
+ // hasMore=true so the caller can warn.
54
+ if (firstPage.length === 0 || firstPage.length < pageSize) {
55
+ return { items: collected, lastResponse, hasMore: false, pagesFetched };
56
+ }
57
+ let page = startPage + 1;
58
+ while (pagesFetched < maxPages) {
59
+ lastResponse = await fetchPage(page);
60
+ pagesFetched++;
61
+ const pageData = extractItems(lastResponse);
62
+ if (pageData.length === 0) {
63
+ return { items: collected, lastResponse, hasMore: false, pagesFetched };
64
+ }
65
+ await emitPageItems(pageData, collected, onItem);
66
+ if (pageData.length < pageSize) {
67
+ return { items: collected, lastResponse, hasMore: false, pagesFetched };
68
+ }
69
+ page++;
70
+ }
71
+ // Cap hit on a full page — more might exist.
72
+ return { items: collected, lastResponse, hasMore: true, pagesFetched };
73
+ };
74
+ export const buildCapWarning = (pagesWalked, flagName = '--limit-pages') => ({
75
+ code: 'pagination_cap_reached',
76
+ message: `--all stopped after ${String(pagesWalked)} pages; more results may exist`,
77
+ details: {
78
+ pages_walked: pagesWalked,
79
+ hint: `Increase ${flagName} or narrow the query (e.g. --workspace, --state).`,
80
+ },
81
+ });
82
+ /** Default cap shared by every M3 list command's `--all` walk. */
83
+ export const DEFAULT_MAX_PAGES = 50;
84
+ //# sourceMappingURL=walk-pages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walk-pages.js","sourceRoot":"","sources":["../../src/api/walk-pages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Workspace projection schema + GraphQL field-fragment, lifted from
3
+ * the four M14 mutation verbs and `workspace get` (v0.2-plan §22
4
+ * R39).
5
+ *
6
+ * **R39 — `WORKSPACE_FIELDS_FRAGMENT`.** The shared GraphQL selection
7
+ * set every with-settings workspace verb uses appeared in five query
8
+ * strings: `workspace get` (M14), `workspace create` (M14), `workspace
9
+ * update`'s preflight read + mutation (M14), `workspace delete` (M14).
10
+ * Five consumers; well above the §17 R-timing trigger. Mirrors
11
+ * `ITEM_FIELDS_FRAGMENT` (M5b lift in `item-helpers.ts`) and
12
+ * `UPDATE_FIELDS_FRAGMENT` (R38 lift in `update-mutation-result.ts`).
13
+ * 6-space continuation indent matches the column every consumer
14
+ * interpolates `${WORKSPACE_FIELDS_FRAGMENT}` at, so rendered query
15
+ * bytes are unchanged post-lift.
16
+ *
17
+ * **R39 — `workspaceProjectionSchema`.** The matching strict zod
18
+ * projection schema. Pre-lift it lived at
19
+ * `src/commands/workspace/get.ts:50` as `workspaceGetOutputSchema`,
20
+ * and the four mutation verbs each imported it from there — the
21
+ * file colocation was incidental rather than intentional. Lifting
22
+ * the schema next to the fragment keeps the projection's two halves
23
+ * (wire-shape selector + parser) in one place.
24
+ *
25
+ * **`workspace list` stays distinct.** Its narrower output (no
26
+ * `settings.icon`) and parallel narrower GraphQL string serve a
27
+ * different surface; extending it to share this fragment would
28
+ * surface `settings.icon` on `workspace list`'s output as a
29
+ * SemVer-minor additive change. R39's minimal scope keeps list
30
+ * untouched.
31
+ */
32
+ import { z } from 'zod';
33
+ /**
34
+ * Shared GraphQL selection set for the workspace shape — every M14
35
+ * mutation verb plus M14's `workspace get` (the with-settings path)
36
+ * select these fields. 6-space continuation indent matches the
37
+ * column every consumer interpolates `${WORKSPACE_FIELDS_FRAGMENT}`
38
+ * at, so rendered query bytes are unchanged post-lift.
39
+ */
40
+ export declare const WORKSPACE_FIELDS_FRAGMENT = "id\n name\n description\n kind\n state\n is_default_workspace\n created_at\n settings {\n icon {\n color\n image\n }\n }";
41
+ /**
42
+ * Strict zod schema for the workspace projection — the exact shape
43
+ * `WORKSPACE_FIELDS_FRAGMENT` selects from the wire. Shared by
44
+ * `workspace get` / `create` / `update` / `delete`; each verb's
45
+ * `CommandModule.outputSchema` aliases this so the schema-export
46
+ * pipeline emits one canonical shape.
47
+ */
48
+ export declare const workspaceProjectionSchema: z.ZodObject<{
49
+ id: z.ZodString;
50
+ name: z.ZodString;
51
+ description: z.ZodNullable<z.ZodString>;
52
+ kind: z.ZodNullable<z.ZodString>;
53
+ state: z.ZodNullable<z.ZodString>;
54
+ is_default_workspace: z.ZodNullable<z.ZodBoolean>;
55
+ created_at: z.ZodNullable<z.ZodString>;
56
+ settings: z.ZodNullable<z.ZodObject<{
57
+ icon: z.ZodNullable<z.ZodObject<{
58
+ color: z.ZodNullable<z.ZodString>;
59
+ image: z.ZodNullable<z.ZodString>;
60
+ }, z.core.$strict>>;
61
+ }, z.core.$strict>>;
62
+ }, z.core.$strict>;
63
+ export type WorkspaceProjection = z.infer<typeof workspaceProjectionSchema>;
64
+ //# sourceMappingURL=workspace-projection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-projection.d.ts","sourceRoot":"","sources":["../../src/api/workspace-projection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,qMAY9B,CAAC;AAeT;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;kBAW3B,CAAC;AAEZ,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Workspace projection schema + GraphQL field-fragment, lifted from
3
+ * the four M14 mutation verbs and `workspace get` (v0.2-plan §22
4
+ * R39).
5
+ *
6
+ * **R39 — `WORKSPACE_FIELDS_FRAGMENT`.** The shared GraphQL selection
7
+ * set every with-settings workspace verb uses appeared in five query
8
+ * strings: `workspace get` (M14), `workspace create` (M14), `workspace
9
+ * update`'s preflight read + mutation (M14), `workspace delete` (M14).
10
+ * Five consumers; well above the §17 R-timing trigger. Mirrors
11
+ * `ITEM_FIELDS_FRAGMENT` (M5b lift in `item-helpers.ts`) and
12
+ * `UPDATE_FIELDS_FRAGMENT` (R38 lift in `update-mutation-result.ts`).
13
+ * 6-space continuation indent matches the column every consumer
14
+ * interpolates `${WORKSPACE_FIELDS_FRAGMENT}` at, so rendered query
15
+ * bytes are unchanged post-lift.
16
+ *
17
+ * **R39 — `workspaceProjectionSchema`.** The matching strict zod
18
+ * projection schema. Pre-lift it lived at
19
+ * `src/commands/workspace/get.ts:50` as `workspaceGetOutputSchema`,
20
+ * and the four mutation verbs each imported it from there — the
21
+ * file colocation was incidental rather than intentional. Lifting
22
+ * the schema next to the fragment keeps the projection's two halves
23
+ * (wire-shape selector + parser) in one place.
24
+ *
25
+ * **`workspace list` stays distinct.** Its narrower output (no
26
+ * `settings.icon`) and parallel narrower GraphQL string serve a
27
+ * different surface; extending it to share this fragment would
28
+ * surface `settings.icon` on `workspace list`'s output as a
29
+ * SemVer-minor additive change. R39's minimal scope keeps list
30
+ * untouched.
31
+ */
32
+ import { z } from 'zod';
33
+ /**
34
+ * Shared GraphQL selection set for the workspace shape — every M14
35
+ * mutation verb plus M14's `workspace get` (the with-settings path)
36
+ * select these fields. 6-space continuation indent matches the
37
+ * column every consumer interpolates `${WORKSPACE_FIELDS_FRAGMENT}`
38
+ * at, so rendered query bytes are unchanged post-lift.
39
+ */
40
+ export const WORKSPACE_FIELDS_FRAGMENT = `id
41
+ name
42
+ description
43
+ kind
44
+ state
45
+ is_default_workspace
46
+ created_at
47
+ settings {
48
+ icon {
49
+ color
50
+ image
51
+ }
52
+ }`;
53
+ const iconSchema = z
54
+ .object({
55
+ color: z.string().nullable(),
56
+ image: z.string().nullable(),
57
+ })
58
+ .strict();
59
+ const settingsSchema = z
60
+ .object({
61
+ icon: iconSchema.nullable(),
62
+ })
63
+ .strict();
64
+ /**
65
+ * Strict zod schema for the workspace projection — the exact shape
66
+ * `WORKSPACE_FIELDS_FRAGMENT` selects from the wire. Shared by
67
+ * `workspace get` / `create` / `update` / `delete`; each verb's
68
+ * `CommandModule.outputSchema` aliases this so the schema-export
69
+ * pipeline emits one canonical shape.
70
+ */
71
+ export const workspaceProjectionSchema = z
72
+ .object({
73
+ id: z.string().min(1),
74
+ name: z.string(),
75
+ description: z.string().nullable(),
76
+ kind: z.string().nullable(),
77
+ state: z.string().nullable(),
78
+ is_default_workspace: z.boolean().nullable(),
79
+ created_at: z.string().nullable(),
80
+ settings: settingsSchema.nullable(),
81
+ })
82
+ .strict();
83
+ //# sourceMappingURL=workspace-projection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-projection.js","sourceRoot":"","sources":["../../src/api/workspace-projection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG;;;;;;;;;;;;QAYjC,CAAC;AAET,MAAM,UAAU,GAAG,CAAC;KACjB,MAAM,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,cAAc,GAAG,CAAC;KACrB,MAAM,CAAC;IACN,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE;CAC5B,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC;KACvC,MAAM,CAAC;IACN,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,oBAAoB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC5C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,QAAQ,EAAE,cAAc,CAAC,QAAQ,EAAE;CACpC,CAAC;KACD,MAAM,EAAE,CAAC"}
@@ -0,0 +1,128 @@
1
+ /**
2
+ * Envelope emission helpers (M2.5 R2).
3
+ *
4
+ * Pulled out of `cli/run.ts` so the runner stays focused on argv
5
+ * parsing, signal handling, and command registration.
6
+ *
7
+ * **Two paths, two channels, one source of truth.** The success and
8
+ * error envelopes report the same `api_version` and `source`, but
9
+ * they get there through different channels:
10
+ *
11
+ * - **Success path.** `emit.ts` builds the success envelope from
12
+ * options the action passed through `emitSuccess({apiVersion,
13
+ * source, complexity, cacheAgeSeconds, ...})` — usually via the
14
+ * `...toEmit(result)` splat returned by `resolveClient` (M2.5 R3).
15
+ * - **Error path.** `writeErrorEnvelope` (this file) builds the
16
+ * error envelope from `MetaBuilder.snapshot()` after the action
17
+ * has thrown. The action commits values via
18
+ * `ctx.meta.setApiVersion(v)` / `ctx.meta.setSource('live')`
19
+ * before the network call goes out, so a thrown `ApiError` on
20
+ * HTTP 401 still produces an envelope with the right meta.
21
+ *
22
+ * The two paths agree because `resolveClient` writes the *same*
23
+ * `apiVersion` / `source` into both: the `MetaBuilder` (for error
24
+ * fallback) and the `toEmit` closure (for success). An M3 command
25
+ * that calls `resolveClient` gets both for free; an M3 command that
26
+ * builds its own client must commit to both channels manually if it
27
+ * wants the same guarantee.
28
+ *
29
+ * **Why a builder, not a setter callback.** The M2-era `setMetaHint`
30
+ * pattern (commit `5e211bc`) worked but coupled the action body to a
31
+ * mutable `MetaHint` record on `ctx`; tracing "what `meta` will the
32
+ * error envelope carry" required grepping every `setMetaHint` call
33
+ * site for shape drift. The builder closes that loop:
34
+ *
35
+ * - typed setters (`setApiVersion`, `setSource`) enumerate exactly
36
+ * what the error path can carry — adding a new field means adding
37
+ * a new typed method + extending `MetaSnapshot`, not stuffing
38
+ * another optional key into a shared record;
39
+ * - the public surface is closed (no `set(key, value)` escape
40
+ * hatch), so the only way to widen what the error envelope can
41
+ * report is to extend this module deliberately;
42
+ * - the M2 Codex review §2 incident — `--api-version 2026-04
43
+ * account whoami` claiming `api_version: "2026-01"` on HTTP 401 —
44
+ * was structurally caused by the two paths reading different
45
+ * state. The builder is the error-side half of the fix; the
46
+ * `toEmit` closure (R3) is the success-side half.
47
+ *
48
+ * Action sites stay terse: `ctx.meta.setApiVersion(v)` /
49
+ * `ctx.meta.setSource('live')` is the same shape the M2 callback
50
+ * had, just typed per-field rather than via a record literal.
51
+ */
52
+ import { type DataSource, type Meta } from '../utils/output/envelope.js';
53
+ import { MondayCliError } from '../utils/errors.js';
54
+ export interface MetaSnapshot {
55
+ readonly apiVersion: string | undefined;
56
+ readonly source: DataSource | undefined;
57
+ }
58
+ export interface MetaBuilder {
59
+ /**
60
+ * Commit the resolved `API-Version` value the request will carry
61
+ * (or did carry, if the call already went out). The same value
62
+ * lands on `meta.api_version` in both the success envelope (via
63
+ * emit.ts) and the error envelope (via `writeErrorEnvelope`) —
64
+ * an HTTP 401 for `monday --api-version 2026-04 account whoami`
65
+ * reports `meta.api_version: "2026-04"`, not the SDK pin.
66
+ */
67
+ setApiVersion: (version: string) => void;
68
+ /**
69
+ * Commit the data-source the response came from — `live` for a
70
+ * fresh API call, `cache` for a hit, `mixed` for a partially-
71
+ * served response, `none` for local-only commands. Network
72
+ * commands set `live` before the wire goes out so an error
73
+ * envelope on the sad path still reports `source: live`.
74
+ */
75
+ setSource: (source: DataSource) => void;
76
+ /** Frozen view of every value committed so far. */
77
+ snapshot: () => MetaSnapshot;
78
+ }
79
+ export declare const createMetaBuilder: () => MetaBuilder;
80
+ /**
81
+ * Collects literal secret values to scrub from emitted bytes. Read
82
+ * lazily — `loadConfig()` populates `MONDAY_API_TOKEN` from `.env`
83
+ * *after* the runner builds its context, so a snapshot at runner
84
+ * construction time would miss tokens that exist only in the `.env`
85
+ * file (Codex review §1 follow-up). `env` is shared by reference
86
+ * with the runner; re-reading at emit time observes any side-
87
+ * effecting load.
88
+ */
89
+ export declare const collectSecrets: (env: NodeJS.ProcessEnv) => readonly string[];
90
+ export interface BuildBaseMetaInputs {
91
+ readonly snapshot: MetaSnapshot;
92
+ readonly env: NodeJS.ProcessEnv;
93
+ readonly cliVersion: string;
94
+ readonly requestId: string;
95
+ readonly retrievedAt: string;
96
+ }
97
+ /**
98
+ * Constructs `meta` for an envelope where no action-resolved
99
+ * complexity / cache-age is in scope (the error path; commands that
100
+ * never reached emit.ts). `api_version` falls back to
101
+ * `MONDAY_API_VERSION` env / SDK pin when the action didn't commit
102
+ * one through the builder.
103
+ */
104
+ export declare const buildBaseMeta: (inputs: BuildBaseMetaInputs) => Meta;
105
+ export interface WriteErrorEnvelopeOptions {
106
+ readonly stderr: NodeJS.WritableStream;
107
+ readonly env: NodeJS.ProcessEnv;
108
+ readonly meta: Meta;
109
+ }
110
+ /**
111
+ * Renders the error envelope to `stderr` with two-layer redaction
112
+ * (key-based + value-scan over the live token). Re-reads `env` for
113
+ * the value-scan layer so a token loaded from `.env` mid-run is
114
+ * still scrubbed (security.md "Redaction in output").
115
+ */
116
+ export declare const writeErrorEnvelope: (err: MondayCliError, options: WriteErrorEnvelopeOptions) => void;
117
+ /**
118
+ * Maps an arbitrary thrown value into the `MondayCliError` family the
119
+ * envelope path expects. `MondayCliError` instances pass through;
120
+ * commander parsing failures become `UsageError`; unknown thrown
121
+ * values become `InternalError` with the original cause attached.
122
+ *
123
+ * Lives here (not in `errors.ts`) because the conversion is part of
124
+ * the runner-→-envelope path: it's the precondition for
125
+ * `writeErrorEnvelope`.
126
+ */
127
+ export declare const toMondayError: (err: unknown) => MondayCliError;
128
+ //# sourceMappingURL=envelope-out.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"envelope-out.d.ts","sourceRoot":"","sources":["../../src/cli/envelope-out.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAGH,OAAO,EAGL,KAAK,UAAU,EACf,KAAK,IAAI,EACV,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAEL,cAAc,EAEf,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,CAAC;CACzC;AAED,MAAM,WAAW,WAAW;IAC1B;;;;;;;OAOG;IACH,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC;;;;;;OAMG;IACH,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACxC,mDAAmD;IACnD,QAAQ,EAAE,MAAM,YAAY,CAAC;CAC9B;AAED,eAAO,MAAM,iBAAiB,QAAO,WAYpC,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,GACzB,KAAK,MAAM,CAAC,UAAU,KACrB,SAAS,MAAM,EAOjB,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,GAAI,QAAQ,mBAAmB,KAAG,IAWxD,CAAC;AAEL,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;IACvC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;CACrB;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAC7B,KAAK,cAAc,EACnB,SAAS,yBAAyB,KACjC,IAMF,CAAC;AAKF;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,GAAI,KAAK,OAAO,KAAG,cAoB5C,CAAC"}
@@ -0,0 +1,146 @@
1
+ /**
2
+ * Envelope emission helpers (M2.5 R2).
3
+ *
4
+ * Pulled out of `cli/run.ts` so the runner stays focused on argv
5
+ * parsing, signal handling, and command registration.
6
+ *
7
+ * **Two paths, two channels, one source of truth.** The success and
8
+ * error envelopes report the same `api_version` and `source`, but
9
+ * they get there through different channels:
10
+ *
11
+ * - **Success path.** `emit.ts` builds the success envelope from
12
+ * options the action passed through `emitSuccess({apiVersion,
13
+ * source, complexity, cacheAgeSeconds, ...})` — usually via the
14
+ * `...toEmit(result)` splat returned by `resolveClient` (M2.5 R3).
15
+ * - **Error path.** `writeErrorEnvelope` (this file) builds the
16
+ * error envelope from `MetaBuilder.snapshot()` after the action
17
+ * has thrown. The action commits values via
18
+ * `ctx.meta.setApiVersion(v)` / `ctx.meta.setSource('live')`
19
+ * before the network call goes out, so a thrown `ApiError` on
20
+ * HTTP 401 still produces an envelope with the right meta.
21
+ *
22
+ * The two paths agree because `resolveClient` writes the *same*
23
+ * `apiVersion` / `source` into both: the `MetaBuilder` (for error
24
+ * fallback) and the `toEmit` closure (for success). An M3 command
25
+ * that calls `resolveClient` gets both for free; an M3 command that
26
+ * builds its own client must commit to both channels manually if it
27
+ * wants the same guarantee.
28
+ *
29
+ * **Why a builder, not a setter callback.** The M2-era `setMetaHint`
30
+ * pattern (commit `5e211bc`) worked but coupled the action body to a
31
+ * mutable `MetaHint` record on `ctx`; tracing "what `meta` will the
32
+ * error envelope carry" required grepping every `setMetaHint` call
33
+ * site for shape drift. The builder closes that loop:
34
+ *
35
+ * - typed setters (`setApiVersion`, `setSource`) enumerate exactly
36
+ * what the error path can carry — adding a new field means adding
37
+ * a new typed method + extending `MetaSnapshot`, not stuffing
38
+ * another optional key into a shared record;
39
+ * - the public surface is closed (no `set(key, value)` escape
40
+ * hatch), so the only way to widen what the error envelope can
41
+ * report is to extend this module deliberately;
42
+ * - the M2 Codex review §2 incident — `--api-version 2026-04
43
+ * account whoami` claiming `api_version: "2026-01"` on HTTP 401 —
44
+ * was structurally caused by the two paths reading different
45
+ * state. The builder is the error-side half of the fix; the
46
+ * `toEmit` closure (R3) is the success-side half.
47
+ *
48
+ * Action sites stay terse: `ctx.meta.setApiVersion(v)` /
49
+ * `ctx.meta.setSource('live')` is the same shape the M2 callback
50
+ * had, just typed per-field rather than via a record literal.
51
+ */
52
+ import { CommanderError } from 'commander';
53
+ import { buildError, buildMeta, } from '../utils/output/envelope.js';
54
+ import { redact } from '../utils/redact.js';
55
+ import { InternalError, MondayCliError, UsageError, } from '../utils/errors.js';
56
+ export const createMetaBuilder = () => {
57
+ let apiVersion;
58
+ let source;
59
+ return {
60
+ setApiVersion: (v) => {
61
+ apiVersion = v;
62
+ },
63
+ setSource: (s) => {
64
+ source = s;
65
+ },
66
+ snapshot: () => ({ apiVersion, source }),
67
+ };
68
+ };
69
+ /**
70
+ * Collects literal secret values to scrub from emitted bytes. Read
71
+ * lazily — `loadConfig()` populates `MONDAY_API_TOKEN` from `.env`
72
+ * *after* the runner builds its context, so a snapshot at runner
73
+ * construction time would miss tokens that exist only in the `.env`
74
+ * file (Codex review §1 follow-up). `env` is shared by reference
75
+ * with the runner; re-reading at emit time observes any side-
76
+ * effecting load.
77
+ */
78
+ export const collectSecrets = (env) => {
79
+ const out = [];
80
+ const token = env.MONDAY_API_TOKEN;
81
+ if (token !== undefined && token.length > 0) {
82
+ out.push(token);
83
+ }
84
+ return out;
85
+ };
86
+ /**
87
+ * Constructs `meta` for an envelope where no action-resolved
88
+ * complexity / cache-age is in scope (the error path; commands that
89
+ * never reached emit.ts). `api_version` falls back to
90
+ * `MONDAY_API_VERSION` env / SDK pin when the action didn't commit
91
+ * one through the builder.
92
+ */
93
+ export const buildBaseMeta = (inputs) => buildMeta({
94
+ api_version: inputs.snapshot.apiVersion ??
95
+ inputs.env.MONDAY_API_VERSION ??
96
+ '2026-01',
97
+ cli_version: inputs.cliVersion,
98
+ request_id: inputs.requestId,
99
+ source: inputs.snapshot.source ?? 'none',
100
+ retrieved_at: inputs.retrievedAt,
101
+ cache_age_seconds: null,
102
+ });
103
+ /**
104
+ * Renders the error envelope to `stderr` with two-layer redaction
105
+ * (key-based + value-scan over the live token). Re-reads `env` for
106
+ * the value-scan layer so a token loaded from `.env` mid-run is
107
+ * still scrubbed (security.md "Redaction in output").
108
+ */
109
+ export const writeErrorEnvelope = (err, options) => {
110
+ const envelope = buildError(err, options.meta);
111
+ const redacted = redact(envelope, {
112
+ secrets: collectSecrets(options.env),
113
+ });
114
+ options.stderr.write(`${JSON.stringify(redacted, null, 2)}\n`);
115
+ };
116
+ const isCommanderError = (err) => err instanceof CommanderError;
117
+ /**
118
+ * Maps an arbitrary thrown value into the `MondayCliError` family the
119
+ * envelope path expects. `MondayCliError` instances pass through;
120
+ * commander parsing failures become `UsageError`; unknown thrown
121
+ * values become `InternalError` with the original cause attached.
122
+ *
123
+ * Lives here (not in `errors.ts`) because the conversion is part of
124
+ * the runner-→-envelope path: it's the precondition for
125
+ * `writeErrorEnvelope`.
126
+ */
127
+ export const toMondayError = (err) => {
128
+ if (err instanceof MondayCliError) {
129
+ return err;
130
+ }
131
+ if (isCommanderError(err)) {
132
+ // Commander surfaces both --help/--version and parsing failures
133
+ // as CommanderError. The success-style ones carry exitCode 0;
134
+ // those aren't errors and we never reach this function with one.
135
+ if (err.code === 'commander.helpDisplayed' ||
136
+ err.code === 'commander.version') {
137
+ return new InternalError(`unexpected commander success: ${err.code}`);
138
+ }
139
+ return new UsageError(err.message);
140
+ }
141
+ if (err instanceof Error) {
142
+ return new InternalError(err.message, { cause: err });
143
+ }
144
+ return new InternalError('unknown error', { cause: err });
145
+ };
146
+ //# sourceMappingURL=envelope-out.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"envelope-out.js","sourceRoot":"","sources":["../../src/cli/envelope-out.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":""}