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,607 @@
1
+ /**
2
+ * Dry-run engine (`cli-design.md` §6.4 + §5.3, `v0.1-plan.md` §3 M5a).
3
+ *
4
+ * Single export `planChanges` — given a board / item / set-pair list,
5
+ * runs every read-side resolution that the matching live mutation
6
+ * would run (column lookup, value translation, current-state read)
7
+ * and emits a `planned_changes[]` array byte-compatible with the
8
+ * `cli-design.md` §6.4 sample.
9
+ *
10
+ * **Why a separate module.** column-values.ts owns *translation*;
11
+ * resolution lives in columns.ts; current-state reads live in the
12
+ * item GraphQL queries spread across the command surface. The
13
+ * dry-run engine is the unique spot that orchestrates all three for
14
+ * a planned-but-unsent mutation. Keeping it in its own module means
15
+ * M5b's three command surfaces (`item set` / `item clear` /
16
+ * `item update`) each call `planChanges(...)` once when `--dry-run`
17
+ * is set, rather than reimplementing the orchestration in three
18
+ * places.
19
+ *
20
+ * **All-or-nothing semantics.** Any resolution failure — unknown
21
+ * column, ambiguous column, unsupported type, unknown email — fails
22
+ * the entire batch. cli-design §6.4 prescribes the dry-run envelope
23
+ * as a single `data: null` + populated `planned_changes` shape;
24
+ * surfacing partial plans would force the caller to second-guess
25
+ * which entries actually planned versus which silently dropped.
26
+ * The engine collects every `--set` pair before translating, but
27
+ * the first failing pair short-circuits — the typed error bubbles
28
+ * with whatever `details` the underlying resolver / translator
29
+ * built.
30
+ *
31
+ * **Mutation kind selection** (`change_simple_column_value` /
32
+ * `change_column_value` / `change_multiple_column_values`) goes
33
+ * through `selectMutation`, so the dry-run engine and the
34
+ * eventually-live M5b mutation pick the same wire shape from the
35
+ * same source of truth. The `operation` field in each
36
+ * `PlannedChange` reflects what the live call would issue.
37
+ *
38
+ * **Resolved-from echoes.** Two slots, one per kind:
39
+ * - **Date** — relative tokens carry a `DateResolution`
40
+ * (`{input, timezone, now}`) on the translated value. Rendered
41
+ * as `details.resolved_from` on the diff cell.
42
+ * - **People** — the people translator emits a
43
+ * `PeopleResolution` (`{tokens: [{input, resolved_id}, ...]}`)
44
+ * pairing each input token with its resolved Monday user ID.
45
+ * Rendered as `details.resolved_from` on people diff cells.
46
+ *
47
+ * Other types (status / dropdown / text / long_text / numbers and
48
+ * non-relative dates) emit no `details` block — there's nothing to
49
+ * resolve beyond what's already visible in the wire payload.
50
+ */
51
+ import { ApiError } from '../utils/errors.js';
52
+ import { resolveColumnWithRefresh, } from './columns.js';
53
+ import { parseColumnValue, } from './item-projection.js';
54
+ import { ITEM_FIELDS_FRAGMENT, parseRawItem, } from './item-helpers.js';
55
+ import { bundleColumnValues, selectMutation, translateColumnClear, } from './column-values.js';
56
+ import { foldResolverWarningsIntoError } from './resolver-error-fold.js';
57
+ import { mergeSource } from './source-aggregator.js';
58
+ import { buildColumnArchivedError, resolveAndTranslate, } from './resolution-pass.js';
59
+ /**
60
+ * Resolves every `--set` pair, fetches the item's current state,
61
+ * translates each value, and assembles a single `PlannedChange`
62
+ * (v0.1 — one item per call). All-or-nothing: any resolution
63
+ * failure throws the typed error directly so the command layer
64
+ * surfaces it through the runner's normal error path.
65
+ */
66
+ export const planChanges = async (inputs) => {
67
+ const rawEntries = inputs.rawEntries ?? [];
68
+ if (inputs.setEntries.length === 0 &&
69
+ rawEntries.length === 0 &&
70
+ inputs.nameChange === undefined) {
71
+ // Defensive — the command layer is supposed to reject the
72
+ // no-`--set`-and-no-`--set-raw`-and-no-`--name` case before reaching
73
+ // the engine. Surfacing as internal_error rather than usage_error
74
+ // because reaching this path is a wiring bug, not a user fault.
75
+ throw new ApiError('internal_error', 'planChanges called with zero --set entries, zero --set-raw entries, ' +
76
+ 'and no --name change; the command layer should reject the empty ' +
77
+ 'case before invoking the dry-run engine.', { details: { board_id: inputs.boardId, item_id: inputs.itemId } });
78
+ }
79
+ // Three-pass column resolution + translation per cli-design §5.3
80
+ // — see api/resolution-pass.ts (R20 lift).
81
+ const resolution = await resolveAndTranslate({
82
+ client: inputs.client,
83
+ boardId: inputs.boardId,
84
+ setEntries: inputs.setEntries,
85
+ rawEntries,
86
+ ...(inputs.dateResolution === undefined
87
+ ? {}
88
+ : { dateResolution: inputs.dateResolution }),
89
+ ...(inputs.peopleResolution === undefined
90
+ ? {}
91
+ : { peopleResolution: inputs.peopleResolution }),
92
+ ...(inputs.env === undefined ? {} : { env: inputs.env }),
93
+ ...(inputs.noCache === undefined ? {} : { noCache: inputs.noCache }),
94
+ });
95
+ const warnings = [...resolution.warnings];
96
+ const resolvedIds = resolution.resolvedIds;
97
+ let aggregateSource = resolution.source;
98
+ const aggregateCacheAge = resolution.cacheAgeSeconds;
99
+ // 2) Fetch item current state. The query mirrors `item get`'s
100
+ // shape — board/group/columns inline — because the dry-run
101
+ // diff key is the resolved column ID (not the title) and we
102
+ // need the current `value` per column.
103
+ const itemRead = await fetchItem(inputs.client, inputs.itemId);
104
+ // Item read is always live in v0.1; mark aggregate accordingly.
105
+ aggregateSource = mergeSource(aggregateSource, 'live');
106
+ if (itemRead.boardId !== null && itemRead.boardId !== inputs.boardId) {
107
+ // Defensive: caller's `boardId` doesn't match the item's actual
108
+ // home board. Could indicate a stale `--board` override or a
109
+ // wrong-tenant cross-call. Surface as `usage_error` (caller can
110
+ // fix) rather than `internal_error`.
111
+ throw new ApiError('usage_error', `Item ${inputs.itemId} lives on board ${itemRead.boardId} but the ` +
112
+ `dry-run was issued against board ${inputs.boardId}. Re-run ` +
113
+ `with the correct --board, or omit --board to let the CLI ` +
114
+ `look it up.`, {
115
+ details: {
116
+ item_id: inputs.itemId,
117
+ item_board_id: itemRead.boardId,
118
+ requested_board_id: inputs.boardId,
119
+ },
120
+ });
121
+ }
122
+ // 3) Pick the mutation kind FIRST. `selectMutation` owns the
123
+ // long_text re-wrap (`{text: <value>}` inside multi vs bare
124
+ // string in single) per cli-design §5.3 step 5; the dry-run
125
+ // diff `to` should reflect the *actual* wire shape that would
126
+ // be sent. Building diff cells before selectMutation would
127
+ // mis-render long_text in multi as a bare string. The
128
+ // `translated` array preserves argv order: --set entries first
129
+ // then --set-raw, both within their argv order. Pinned by
130
+ // single-mutation and multi-mutation snapshots.
131
+ const orderedTranslated = resolution.translated;
132
+ // When `--name <n>` is present, prepend a synthetic translated
133
+ // value so `selectMutation` handles bundling uniformly: name-only
134
+ // → `change_simple_column_value(column_id: "name", ...)`; name +
135
+ // columns → `change_multiple_column_values` with name as a key.
136
+ const allTranslated = inputs.nameChange === undefined
137
+ ? orderedTranslated
138
+ : [buildNameTranslatedValue(inputs.nameChange), ...orderedTranslated];
139
+ const mutation = selectMutation(allTranslated);
140
+ const operation = mutation.kind;
141
+ // 4) Build diff cells per resolved column, projecting `to` from
142
+ // the selected mutation's wire shape. For single mutations
143
+ // the projection is identity; for multi the long_text re-wrap
144
+ // surfaces in the diff as it would on the wire. Real columns
145
+ // only — the synthetic `name` entry, when present, lands in
146
+ // `diff.name` separately so the `from` side reads the item's
147
+ // `name` field (not a column_values entry).
148
+ const diff = {};
149
+ for (const translated of orderedTranslated) {
150
+ const wireTo = projectWireTo(translated, mutation);
151
+ diff[translated.columnId] = buildDiffCell(translated, wireTo, itemRead.byColumnId.get(translated.columnId));
152
+ }
153
+ if (inputs.nameChange !== undefined) {
154
+ // Synthetic `name` diff cell. The `from` side reads the item's
155
+ // current `name` field (always populated in Monday). No
156
+ // resolver echo since `name` doesn't go through the column
157
+ // translator's date / people paths.
158
+ diff.name = {
159
+ from: itemRead.item.name,
160
+ to: inputs.nameChange,
161
+ };
162
+ }
163
+ const plannedChange = {
164
+ operation,
165
+ board_id: inputs.boardId,
166
+ item_id: inputs.itemId,
167
+ resolved_ids: resolvedIds,
168
+ diff,
169
+ };
170
+ return {
171
+ plannedChanges: [plannedChange],
172
+ // aggregateSource has been merged at least twice by this point
173
+ // (column + item legs) because setEntries.length > 0 was enforced
174
+ // at the top, and the assignment threads through `mergeSource`
175
+ // which can never return undefined — TS narrows accordingly.
176
+ source: aggregateSource,
177
+ cacheAgeSeconds: aggregateCacheAge,
178
+ warnings,
179
+ };
180
+ };
181
+ /**
182
+ * `archived` is a nullable boolean on Monday's column shape — `null`
183
+ * means "no archive flag set", `false` means "explicitly active",
184
+ * `true` means archived. Treat any truthy value as archived; `null`
185
+ * / `false` / `undefined` all flow through.
186
+ */
187
+ const isArchivedColumn = (column) => column.archived === true;
188
+ /**
189
+ * Builds a synthetic `TranslatedColumnValue` for a `--name <n>`
190
+ * rename. `selectMutation` then handles bundling uniformly: if it's
191
+ * the only entry → `change_simple_column_value(column_id: "name",
192
+ * value: <n>)`; if there are columns alongside → roll into
193
+ * `change_multiple_column_values` with `name` as a key.
194
+ *
195
+ * **The `name` white lie.** "name" isn't a column on Monday's
196
+ * `board.columns` surface — it's the item's top-level field. We
197
+ * tag the synthetic value with `columnType: 'text'` (closest
198
+ * analog) so `projectForMulti`'s `long_text`-rewrap branch isn't
199
+ * accidentally triggered. The resulting wire shape is correct
200
+ * because Monday's `change_*_column_value` mutations accept
201
+ * `column_id: "name"` with a bare string regardless of which
202
+ * mutation kind is used.
203
+ */
204
+ const buildNameTranslatedValue = (nameChange) => ({
205
+ columnId: 'name',
206
+ columnType: 'text',
207
+ rawInput: nameChange,
208
+ payload: { format: 'simple', value: nameChange },
209
+ resolvedFrom: null,
210
+ peopleResolution: null,
211
+ });
212
+ /**
213
+ * Single-column clear-mode dry-run. cli-design §4.3 ships `item clear`
214
+ * as a single-column-only verb (no `--where` bulk path; that's
215
+ * `item update`'s territory), so the engine doesn't need a
216
+ * setEntries-style multi-token shape — one token in, one
217
+ * `PlannedChange` out. Reuses the same column-resolution +
218
+ * archived-detection + item-state-read machinery as `planChanges`,
219
+ * routed through `translateColumnClear` for the per-type clear
220
+ * payload.
221
+ *
222
+ * **`from` / `to` shape.** Same `DiffCell` contract as
223
+ * `planChanges` — the `from` side decodes the current Monday cell
224
+ * value (or `null` for empty cells); the `to` side is the wire
225
+ * payload the live mutation would send (`""` for simple types, `{}`
226
+ * for rich types). cli-design §6.4's diff-cell shape is invariant
227
+ * across set / clear.
228
+ */
229
+ export const planClear = async (inputs) => {
230
+ const warnings = [];
231
+ const resolution = await resolveColumnWithRefresh({
232
+ client: inputs.client,
233
+ boardId: inputs.boardId,
234
+ token: inputs.token,
235
+ includeArchived: true,
236
+ ...(inputs.env === undefined ? {} : { env: inputs.env }),
237
+ ...(inputs.noCache === undefined ? {} : { noCache: inputs.noCache }),
238
+ });
239
+ warnings.push(...resolution.warnings);
240
+ if (isArchivedColumn(resolution.match.column)) {
241
+ throw foldResolverWarningsIntoError(buildColumnArchivedError({
242
+ columnId: resolution.match.column.id,
243
+ columnTitle: resolution.match.column.title,
244
+ columnType: resolution.match.column.type,
245
+ boardId: inputs.boardId,
246
+ }), resolution.warnings);
247
+ }
248
+ const translated = translateColumnClear({
249
+ id: resolution.match.column.id,
250
+ type: resolution.match.column.type,
251
+ });
252
+ const itemRead = await fetchItem(inputs.client, inputs.itemId);
253
+ let aggregateSource = mergeSource(resolution.source, 'live');
254
+ if (itemRead.boardId !== null && itemRead.boardId !== inputs.boardId) {
255
+ throw new ApiError('usage_error', `Item ${inputs.itemId} lives on board ${itemRead.boardId} but the ` +
256
+ `dry-run was issued against board ${inputs.boardId}. Re-run ` +
257
+ `with the correct --board, or omit --board to let the CLI ` +
258
+ `look it up.`, {
259
+ details: {
260
+ item_id: inputs.itemId,
261
+ item_board_id: itemRead.boardId,
262
+ requested_board_id: inputs.boardId,
263
+ },
264
+ });
265
+ }
266
+ const mutation = selectMutation([translated]);
267
+ const operation = mutation.kind;
268
+ const wireTo = projectWireTo(translated, mutation);
269
+ const diffCell = buildDiffCell(translated, wireTo, itemRead.byColumnId.get(translated.columnId));
270
+ const plannedChange = {
271
+ operation,
272
+ board_id: inputs.boardId,
273
+ item_id: inputs.itemId,
274
+ resolved_ids: { [inputs.token]: resolution.match.column.id },
275
+ diff: { [translated.columnId]: diffCell },
276
+ };
277
+ // Item read is always live; aggregate source folds the resolution's
278
+ // source with `live`. `mergeSource` treats `live + live → live`,
279
+ // `cache + live → mixed`, `mixed → mixed`.
280
+ aggregateSource = mergeSource(aggregateSource, 'live');
281
+ return {
282
+ plannedChanges: [plannedChange],
283
+ source: aggregateSource,
284
+ cacheAgeSeconds: resolution.cacheAgeSeconds,
285
+ warnings,
286
+ };
287
+ };
288
+ /**
289
+ * Resolves every `--set` / `--set-raw` token, translates each value,
290
+ * and assembles a single `CreatePlannedChange`. **No item-state read**
291
+ * — the item doesn't exist yet, so every diff cell's `from` is `null`.
292
+ *
293
+ * **All-or-nothing semantics** (same as `planChanges`). Any resolution
294
+ * failure (`column_not_found` / `ambiguous_column` / `column_archived`
295
+ * / `unsupported_column_type` / `user_not_found` / duplicate token /
296
+ * duplicate resolved id) aborts before any further work.
297
+ *
298
+ * **Diff `to` projection.** The wire shape every Monday create
299
+ * mutation accepts is `column_values: JSON!` — the same map shape
300
+ * `change_multiple_column_values` accepts. So the diff `to` side
301
+ * routes through `bundleColumnValues` for byte-equivalence with the
302
+ * live mutation's wire payload, including the `long_text` re-wrap
303
+ * (`{text: <value>}` inside the map).
304
+ *
305
+ * **No-`--set` path.** Create with neither `--set` nor `--set-raw`
306
+ * is valid (Monday accepts `create_item(item_name: ..., column_values:
307
+ * null)`). The function short-circuits the resolution loop and
308
+ * returns a `CreatePlannedChange` with empty `resolved_ids` and `diff`.
309
+ * `source: 'none'` because no API call fired.
310
+ */
311
+ export const planCreate = async (inputs) => {
312
+ const rawEntries = inputs.rawEntries ?? [];
313
+ // No-set short-circuit. Returns the create payload without any
314
+ // resolution / translation / API leg. Source is 'none' because
315
+ // nothing fired. The dry-run preview is just "name + placement".
316
+ if (inputs.setEntries.length === 0 && rawEntries.length === 0) {
317
+ return {
318
+ plannedChanges: [buildCreatePlannedChange(inputs, {}, {})],
319
+ source: 'none',
320
+ cacheAgeSeconds: null,
321
+ warnings: [],
322
+ };
323
+ }
324
+ // The board to resolve columns against — top-level `boardId` for
325
+ // `create_item`, `subitemsBoardId` for `create_subitem`.
326
+ const resolveBoardId = inputs.mode.kind === 'item' ? inputs.mode.boardId : inputs.mode.subitemsBoardId;
327
+ // Three-pass column resolution + translation per cli-design §5.3
328
+ // — see api/resolution-pass.ts (R20 lift).
329
+ const resolution = await resolveAndTranslate({
330
+ client: inputs.client,
331
+ boardId: resolveBoardId,
332
+ setEntries: inputs.setEntries,
333
+ rawEntries,
334
+ ...(inputs.dateResolution === undefined
335
+ ? {}
336
+ : { dateResolution: inputs.dateResolution }),
337
+ ...(inputs.peopleResolution === undefined
338
+ ? {}
339
+ : { peopleResolution: inputs.peopleResolution }),
340
+ ...(inputs.env === undefined ? {} : { env: inputs.env }),
341
+ ...(inputs.noCache === undefined ? {} : { noCache: inputs.noCache }),
342
+ });
343
+ const orderedTranslated = resolution.translated;
344
+ // Bundle into the column_values map shape `create_item.column_values`
345
+ // accepts. Routing through `bundleColumnValues` keeps the long_text
346
+ // re-wrap consistent with the live mutation's wire payload.
347
+ const bundled = bundleColumnValues(orderedTranslated);
348
+ const diff = {};
349
+ for (const t of orderedTranslated) {
350
+ const wireTo = bundled[t.columnId];
351
+ /* c8 ignore next 4 — defensive: bundleColumnValues maps every
352
+ translated value into the bundle by columnId. */
353
+ if (wireTo === undefined) {
354
+ throw new ApiError('internal_error', 'planCreate: lost bundled entry');
355
+ }
356
+ diff[t.columnId] = buildCreateDiffCell(t, wireTo);
357
+ }
358
+ return {
359
+ plannedChanges: [buildCreatePlannedChange(inputs, resolution.resolvedIds, diff)],
360
+ /* c8 ignore next — defensive: the early-return at the top
361
+ handles the no-set case explicitly, so by this line at least
362
+ one resolution leg has populated `source`. The `?? 'none'`
363
+ keeps the type-narrow tidy without surfacing `undefined`. */
364
+ source: resolution.source ?? 'none',
365
+ cacheAgeSeconds: resolution.cacheAgeSeconds,
366
+ warnings: resolution.warnings,
367
+ };
368
+ };
369
+ /**
370
+ * Builds the create planned-change envelope per cli-design §6.4
371
+ * "Item-create shape" (and its "Subitem variant" sibling). Optional
372
+ * top-level slots appear only when populated; agents read the shape
373
+ * by switching on `operation` and the presence of the optional keys
374
+ * (`board_id` / `parent_item_id` / `group_id` / `position`).
375
+ *
376
+ * Field order matches the cli-design sample for byte-stable JSON
377
+ * output: `operation`, `board_id?` (item only), `parent_item_id?`
378
+ * (subitem only), `name`, `group_id?`, `position?`, `resolved_ids`,
379
+ * `diff`.
380
+ */
381
+ const buildCreatePlannedChange = (inputs, resolvedIds, diff) => {
382
+ if (inputs.mode.kind === 'item') {
383
+ const change = {
384
+ operation: 'create_item',
385
+ board_id: inputs.mode.boardId,
386
+ name: inputs.name,
387
+ };
388
+ if (inputs.mode.groupId !== undefined) {
389
+ change.group_id = inputs.mode.groupId;
390
+ }
391
+ if (inputs.mode.position !== undefined) {
392
+ change.position = {
393
+ method: inputs.mode.position.method,
394
+ relative_to: inputs.mode.position.relativeTo,
395
+ };
396
+ }
397
+ change.resolved_ids = resolvedIds;
398
+ change.diff = diff;
399
+ return change;
400
+ }
401
+ // subitem
402
+ const change = {
403
+ operation: 'create_subitem',
404
+ parent_item_id: inputs.mode.parentItemId,
405
+ name: inputs.name,
406
+ resolved_ids: resolvedIds,
407
+ diff,
408
+ };
409
+ return change;
410
+ };
411
+ /**
412
+ * Builds one diff cell for a create's planned change. `from` is
413
+ * always `null` (item doesn't exist yet); `to` is the bundled wire
414
+ * value. Resolver echoes (`details.resolved_from`) for date / people
415
+ * inputs surface the same way `buildDiffCell` handles them — exclusivity
416
+ * pins the same internal_error guard so a future translator setting
417
+ * both echoes is loud, not silent.
418
+ */
419
+ const buildCreateDiffCell = (translated, to) => {
420
+ if (translated.resolvedFrom !== null && translated.peopleResolution !== null) {
421
+ throw new ApiError('internal_error', `Translator emitted both resolvedFrom and peopleResolution for ` +
422
+ `column "${translated.columnId}" (type "${translated.columnType}"). ` +
423
+ `These slots are mutually exclusive in v0.1; a translator setting ` +
424
+ `both is a wiring bug.`, {
425
+ details: {
426
+ column_id: translated.columnId,
427
+ column_type: translated.columnType,
428
+ },
429
+ });
430
+ }
431
+ if (translated.resolvedFrom !== null) {
432
+ return {
433
+ from: null,
434
+ to,
435
+ details: {
436
+ resolved_from: {
437
+ input: translated.resolvedFrom.input,
438
+ timezone: translated.resolvedFrom.timezone,
439
+ now: translated.resolvedFrom.now,
440
+ },
441
+ },
442
+ };
443
+ }
444
+ if (translated.peopleResolution !== null) {
445
+ return {
446
+ from: null,
447
+ to,
448
+ details: {
449
+ resolved_from: {
450
+ tokens: translated.peopleResolution.tokens.map((t) => ({
451
+ input: t.input,
452
+ resolved_id: t.resolved_id,
453
+ })),
454
+ },
455
+ },
456
+ };
457
+ }
458
+ return { from: null, to };
459
+ };
460
+ /**
461
+ * Projects the wire-side `to` value for a translated column,
462
+ * matching the actual mutation's payload exactly — including the
463
+ * `long_text` re-wrap that `selectMutation` applies for multi
464
+ * mutations. The single-mutation cases pass the translator's
465
+ * payload through unchanged.
466
+ *
467
+ * Why route through the selected mutation: `change_simple_column_value`
468
+ * accepts a bare string for `long_text`, but
469
+ * `change_multiple_column_values` requires `{text: <value>}` for
470
+ * the same type (cli-design §5.3 step 5 spec gap, pinned via
471
+ * fixture in column-values.test.ts). The dry-run diff `to` should
472
+ * reflect the wire shape the live mutation would actually send;
473
+ * routing through `selectMutation`'s output keeps both sides
474
+ * consistent without the dry-run engine duplicating the re-wrap.
475
+ */
476
+ const projectWireTo = (translated, mutation) => {
477
+ if (mutation.kind === 'change_multiple_column_values') {
478
+ const value = mutation.columnValues[translated.columnId];
479
+ /* c8 ignore next 3 — defensive: every translated column lands
480
+ in the multi map by construction in selectMutation. */
481
+ if (value === undefined) {
482
+ throw new ApiError('internal_error', 'projectWireTo: lost multi entry');
483
+ }
484
+ return value;
485
+ }
486
+ // Single-mutation path: payload's value is the wire value.
487
+ return translated.payload.value;
488
+ };
489
+ /**
490
+ * Builds one diff cell. `from` decodes the current Monday value (or
491
+ * `null` for empty cells); `to` is the wire-side projection
492
+ * (`projectWireTo` already applied the long_text re-wrap for
493
+ * multi). `details.resolved_from` populates only when the
494
+ * translator emitted an echo.
495
+ */
496
+ const buildDiffCell = (translated, to, current) => {
497
+ const from = current === undefined ? null : decodeFrom(current);
498
+ // Echo-slot exclusivity invariant. Today's translators populate
499
+ // at most one of resolvedFrom (date) / peopleResolution (people).
500
+ // A future translator that mistakenly sets both would silently
501
+ // collapse to the date echo (the first branch wins below); fire
502
+ // an internal_error so the regression is loud, not silent.
503
+ // Codex pass-2 finding F3.
504
+ if (translated.resolvedFrom !== null && translated.peopleResolution !== null) {
505
+ throw new ApiError('internal_error', `Translator emitted both resolvedFrom and peopleResolution for ` +
506
+ `column "${translated.columnId}" (type "${translated.columnType}"). ` +
507
+ `These slots are mutually exclusive in v0.1; a translator setting ` +
508
+ `both is a wiring bug.`, {
509
+ details: {
510
+ column_id: translated.columnId,
511
+ column_type: translated.columnType,
512
+ },
513
+ });
514
+ }
515
+ if (translated.resolvedFrom !== null) {
516
+ return {
517
+ from,
518
+ to,
519
+ details: {
520
+ resolved_from: {
521
+ input: translated.resolvedFrom.input,
522
+ timezone: translated.resolvedFrom.timezone,
523
+ now: translated.resolvedFrom.now,
524
+ },
525
+ },
526
+ };
527
+ }
528
+ if (translated.peopleResolution !== null) {
529
+ return {
530
+ from,
531
+ to,
532
+ details: {
533
+ resolved_from: {
534
+ tokens: translated.peopleResolution.tokens.map((t) => ({
535
+ input: t.input,
536
+ resolved_id: t.resolved_id,
537
+ })),
538
+ },
539
+ },
540
+ };
541
+ }
542
+ return { from, to };
543
+ };
544
+ /**
545
+ * Decodes a Monday `column_values[]` entry into the diff `from`
546
+ * shape. Mirrors `cli-design.md` §6.4 sample line 1213: status
547
+ * cells emit `{label, index}`; date emits `{date, time?}`;
548
+ * people emits `{personsAndTeams: [...]}`; simple types emit the
549
+ * `text` string verbatim.
550
+ *
551
+ * Empty cells (`value === null` or empty-string) emit `null` —
552
+ * matches the §6.4 sample line 1214 `from: null` for empty date.
553
+ */
554
+ const decodeFrom = (raw) => {
555
+ if (raw.value === null || raw.value.length === 0) {
556
+ // Simple types still surface the bare `text` when present —
557
+ // Monday sometimes returns `text: "42"` with `value: null` for
558
+ // numbers / text columns. Without this branch, the diff would
559
+ // claim from=null for a populated cell.
560
+ if (raw.text !== null && raw.text.length > 0) {
561
+ return raw.text;
562
+ }
563
+ return null;
564
+ }
565
+ const parsed = parseColumnValue(raw.value);
566
+ // For status / date / people / dropdown the parsed value is a
567
+ // plain JSON object that's already shaped like `{label, index}`
568
+ // / `{date, time}` / `{personsAndTeams: [...]}` /
569
+ // `{ids|labels: [...]}`. For text / long_text / numbers, Monday
570
+ // encodes the value as a JSON-quoted string — JSON.parse returns
571
+ // the bare string. Either way `parsed` is a JsonValue.
572
+ return parsed;
573
+ };
574
+ const ITEM_DRY_RUN_QUERY = `
575
+ query ItemDryRunRead($ids: [ID!]!) {
576
+ items(ids: $ids) {
577
+ ${ITEM_FIELDS_FRAGMENT}
578
+ }
579
+ }
580
+ `;
581
+ const fetchItem = async (client, itemId) => {
582
+ const response = await client.raw(ITEM_DRY_RUN_QUERY, { ids: [itemId] }, { operationName: 'ItemDryRunRead' });
583
+ const items = response.data.items ?? [];
584
+ const first = items[0];
585
+ if (first === undefined || first === null) {
586
+ throw new ApiError('not_found', `Item ${itemId} does not exist or the token has no read access.`, { details: { item_id: itemId } });
587
+ }
588
+ // R18 parse-boundary wrap — validation.md "Never bubble raw
589
+ // ZodError out of a parse boundary". A malformed Monday response
590
+ // (schema drift, future field rename) surfaces as a typed
591
+ // internal_error carrying details.issues + item_id rather than a
592
+ // bare ZodError that loses the failing field path. Threads through
593
+ // the shared `parseRawItem` helper so the dry-run engine, every
594
+ // M4 read command, and any future M5b/M6 consumer pin the same
595
+ // contract via one source of truth.
596
+ const item = parseRawItem(first, { item_id: itemId });
597
+ const byColumnId = new Map();
598
+ for (const cv of item.column_values) {
599
+ byColumnId.set(cv.id, cv);
600
+ }
601
+ return {
602
+ item,
603
+ boardId: item.board?.id ?? null,
604
+ byColumnId,
605
+ };
606
+ };
607
+ //# sourceMappingURL=dry-run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dry-run.js","sourceRoot":"","sources":["../../src/api/dry-run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG9C,OAAO,EACL,wBAAwB,GAEzB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,gBAAgB,GAGjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,oBAAoB,EACpB,YAAY,GACb,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,oBAAoB,GAMrB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EACL,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAiI9B;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAC9B,MAAyB,EACG,EAAE;IAC9B,MAAM,UAAU,GAAsC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;IAC9E,IACE,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;QAC9B,UAAU,CAAC,MAAM,KAAK,CAAC;QACvB,MAAM,CAAC,UAAU,KAAK,SAAS,EAC/B,CAAC;QACD,0DAA0D;QAC1D,qEAAqE;QACrE,kEAAkE;QAClE,gEAAgE;QAChE,MAAM,IAAI,QAAQ,CAChB,gBAAgB,EAChB,sEAAsE;YACpE,kEAAkE;YAClE,0CAA0C,EAC5C,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,CAClE,CAAC;IACJ,CAAC;IAED,iEAAiE;IACjE,2CAA2C;IAC3C,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC;QAC3C,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,UAAU;QACV,GAAG,CAAC,MAAM,CAAC,cAAc,KAAK,SAAS;YACrC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC;QAC9C,GAAG,CAAC,MAAM,CAAC,gBAAgB,KAAK,SAAS;YACvC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAClD,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC;QACxD,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;KACrE,CAAC,CAAC;IACH,MAAM,QAAQ,GAAsB,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC7D,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC;IAC3C,IAAI,eAAe,GACjB,UAAU,CAAC,MAAM,CAAC;IACpB,MAAM,iBAAiB,GAAkB,UAAU,CAAC,eAAe,CAAC;IAEpE,8DAA8D;IAC9D,8DAA8D;IAC9D,+DAA+D;IAC/D,0CAA0C;IAC1C,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/D,gEAAgE;IAChE,eAAe,GAAG,WAAW,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IAEvD,IAAI,QAAQ,CAAC,OAAO,KAAK,IAAI,IAAI,QAAQ,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC;QACrE,gEAAgE;QAChE,6DAA6D;QAC7D,gEAAgE;QAChE,qCAAqC;QACrC,MAAM,IAAI,QAAQ,CAChB,aAAa,EACb,QAAQ,MAAM,CAAC,MAAM,mBAAmB,QAAQ,CAAC,OAAO,WAAW;YACjE,oCAAoC,MAAM,CAAC,OAAO,WAAW;YAC7D,2DAA2D;YAC3D,aAAa,EACf;YACE,OAAO,EAAE;gBACP,OAAO,EAAE,MAAM,CAAC,MAAM;gBACtB,aAAa,EAAE,QAAQ,CAAC,OAAO;gBAC/B,kBAAkB,EAAE,MAAM,CAAC,OAAO;aACnC;SACF,CACF,CAAC;IACJ,CAAC;IAED,6DAA6D;IAC7D,+DAA+D;IAC/D,+DAA+D;IAC/D,iEAAiE;IACjE,8DAA8D;IAC9D,yDAAyD;IACzD,kEAAkE;IAClE,6DAA6D;IAC7D,mDAAmD;IACnD,MAAM,iBAAiB,GACrB,UAAU,CAAC,UAAU,CAAC;IACxB,+DAA+D;IAC/D,kEAAkE;IAClE,iEAAiE;IACjE,gEAAgE;IAChE,MAAM,aAAa,GACjB,MAAM,CAAC,UAAU,KAAK,SAAS;QAC7B,CAAC,CAAC,iBAAiB;QACnB,CAAC,CAAC,CAAC,wBAAwB,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC;IAC1E,MAAM,QAAQ,GAAqB,cAAc,CAAC,aAAa,CAAC,CAAC;IACjE,MAAM,SAAS,GAA+B,QAAQ,CAAC,IAAI,CAAC;IAE5D,gEAAgE;IAChE,8DAA8D;IAC9D,iEAAiE;IACjE,gEAAgE;IAChE,+DAA+D;IAC/D,gEAAgE;IAChE,+CAA+C;IAC/C,MAAM,IAAI,GAA6B,EAAE,CAAC;IAC1C,KAAK,MAAM,UAAU,IAAI,iBAAiB,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACnD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,aAAa,CACvC,UAAU,EACV,MAAM,EACN,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAC7C,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACpC,+DAA+D;QAC/D,wDAAwD;QACxD,2DAA2D;QAC3D,oCAAoC;QACpC,IAAI,CAAC,IAAI,GAAG;YACV,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI;YACxB,EAAE,EAAE,MAAM,CAAC,UAAU;SACtB,CAAC;IACJ,CAAC;IAED,MAAM,aAAa,GAAkB;QACnC,SAAS;QACT,QAAQ,EAAE,MAAM,CAAC,OAAO;QACxB,OAAO,EAAE,MAAM,CAAC,MAAM;QACtB,YAAY,EAAE,WAAW;QACzB,IAAI;KACL,CAAC;IAEF,OAAO;QACL,cAAc,EAAE,CAAC,aAAa,CAAC;QAC/B,+DAA+D;QAC/D,kEAAkE;QAClE,+DAA+D;QAC/D,6DAA6D;QAC7D,MAAM,EAAE,eAAe;QACvB,eAAe,EAAE,iBAAiB;QAClC,QAAQ;KACT,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,gBAAgB,GAAG,CAAC,MAAmB,EAAW,EAAE,CACxD,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC;AAE3B;;;;;;;;;;;;;;;GAeG;AACH,MAAM,wBAAwB,GAAG,CAC/B,UAAkB,EACK,EAAE,CAAC,CAAC;IAC3B,QAAQ,EAAE,MAAM;IAChB,UAAU,EAAE,MAAM;IAClB,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE;IAChD,YAAY,EAAE,IAAI;IAClB,gBAAgB,EAAE,IAAI;CACvB,CAAC,CAAC;AAcH;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAC5B,MAAuB,EACK,EAAE;IAC9B,MAAM,QAAQ,GAAsB,EAAE,CAAC;IACvC,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAAC;QAChD,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,eAAe,EAAE,IAAI;QACrB,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC;QACxD,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;KACrE,CAAC,CAAC;IACH,QAAQ,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAEtC,IAAI,gBAAgB,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9C,MAAM,6BAA6B,CACjC,wBAAwB,CAAC;YACvB,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;YACpC,WAAW,EAAE,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK;YAC1C,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI;YACxC,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC,EACF,UAAU,CAAC,QAAQ,CACpB,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,oBAAoB,CAAC;QACtC,EAAE,EAAE,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;QAC9B,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI;KACnC,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/D,IAAI,eAAe,GAA+B,WAAW,CAC3D,UAAU,CAAC,MAAM,EACjB,MAAM,CACP,CAAC;IAEF,IAAI,QAAQ,CAAC,OAAO,KAAK,IAAI,IAAI,QAAQ,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC;QACrE,MAAM,IAAI,QAAQ,CAChB,aAAa,EACb,QAAQ,MAAM,CAAC,MAAM,mBAAmB,QAAQ,CAAC,OAAO,WAAW;YACjE,oCAAoC,MAAM,CAAC,OAAO,WAAW;YAC7D,2DAA2D;YAC3D,aAAa,EACf;YACE,OAAO,EAAE;gBACP,OAAO,EAAE,MAAM,CAAC,MAAM;gBACtB,aAAa,EAAE,QAAQ,CAAC,OAAO;gBAC/B,kBAAkB,EAAE,MAAM,CAAC,OAAO;aACnC;SACF,CACF,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAqB,cAAc,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IAChE,MAAM,SAAS,GAA+B,QAAQ,CAAC,IAAI,CAAC;IAC5D,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,aAAa,CAC5B,UAAU,EACV,MAAM,EACN,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAC7C,CAAC;IAEF,MAAM,aAAa,GAAkB;QACnC,SAAS;QACT,QAAQ,EAAE,MAAM,CAAC,OAAO;QACxB,OAAO,EAAE,MAAM,CAAC,MAAM;QACtB,YAAY,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE;QAC5D,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE;KAC1C,CAAC;IACF,oEAAoE;IACpE,iEAAiE;IACjE,2CAA2C;IAC3C,eAAe,GAAG,WAAW,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IAEvD,OAAO;QACL,cAAc,EAAE,CAAC,aAAa,CAAC;QAC/B,MAAM,EAAE,eAAe;QACvB,eAAe,EAAE,UAAU,CAAC,eAAe;QAC3C,QAAQ;KACT,CAAC;AACJ,CAAC,CAAC;AAgHF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAC7B,MAAwB,EACG,EAAE;IAC7B,MAAM,UAAU,GAAsC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;IAE9E,+DAA+D;IAC/D,+DAA+D;IAC/D,iEAAiE;IACjE,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9D,OAAO;YACL,cAAc,EAAE,CAAC,wBAAwB,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YAC1D,MAAM,EAAE,MAAM;YACd,eAAe,EAAE,IAAI;YACrB,QAAQ,EAAE,EAAE;SACb,CAAC;IACJ,CAAC;IAED,iEAAiE;IACjE,yDAAyD;IACzD,MAAM,cAAc,GAClB,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;IAElF,iEAAiE;IACjE,2CAA2C;IAC3C,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC;QAC3C,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,cAAc;QACvB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,UAAU;QACV,GAAG,CAAC,MAAM,CAAC,cAAc,KAAK,SAAS;YACrC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC;QAC9C,GAAG,CAAC,MAAM,CAAC,gBAAgB,KAAK,SAAS;YACvC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAClD,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC;QACxD,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;KACrE,CAAC,CAAC;IACH,MAAM,iBAAiB,GAAG,UAAU,CAAC,UAAU,CAAC;IAEhD,sEAAsE;IACtE,oEAAoE;IACpE,4DAA4D;IAC5D,MAAM,OAAO,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;IAEtD,MAAM,IAAI,GAA6B,EAAE,CAAC;IAC1C,KAAK,MAAM,CAAC,IAAI,iBAAiB,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACnC;2DACmD;QACnD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,QAAQ,CAAC,gBAAgB,EAAE,gCAAgC,CAAC,CAAC;QACzE,CAAC;QACD,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,mBAAmB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IAED,OAAO;QACL,cAAc,EAAE,CAAC,wBAAwB,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAChF;;;uEAG+D;QAC/D,MAAM,EAAE,UAAU,CAAC,MAAM,IAAI,MAAM;QACnC,eAAe,EAAE,UAAU,CAAC,eAAe;QAC3C,QAAQ,EAAE,UAAU,CAAC,QAAQ;KAC9B,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,wBAAwB,GAAG,CAC/B,MAAwB,EACxB,WAA6C,EAC7C,IAAwC,EACnB,EAAE;IACvB,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAChC,MAAM,MAAM,GAWR;YACF,SAAS,EAAE,aAAa;YACxB,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO;YAC7B,IAAI,EAAE,MAAM,CAAC,IAAI;SAOlB,CAAC;QACF,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACtC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;QACxC,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACvC,MAAM,CAAC,QAAQ,GAAG;gBAChB,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM;gBACnC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU;aAC7C,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,YAAY,GAAG,WAAW,CAAC;QAClC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;QACnB,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,UAAU;IACV,MAAM,MAAM,GAMR;QACF,SAAS,EAAE,gBAAgB;QAC3B,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY;QACxC,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,YAAY,EAAE,WAAW;QACzB,IAAI;KACL,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,mBAAmB,GAAG,CAC1B,UAAiC,EACjC,EAAoB,EACV,EAAE;IACZ,IAAI,UAAU,CAAC,YAAY,KAAK,IAAI,IAAI,UAAU,CAAC,gBAAgB,KAAK,IAAI,EAAE,CAAC;QAC7E,MAAM,IAAI,QAAQ,CAChB,gBAAgB,EAChB,gEAAgE;YAC9D,WAAW,UAAU,CAAC,QAAQ,YAAY,UAAU,CAAC,UAAU,MAAM;YACrE,mEAAmE;YACnE,uBAAuB,EACzB;YACE,OAAO,EAAE;gBACP,SAAS,EAAE,UAAU,CAAC,QAAQ;gBAC9B,WAAW,EAAE,UAAU,CAAC,UAAU;aACnC;SACF,CACF,CAAC;IACJ,CAAC;IACD,IAAI,UAAU,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;QACrC,OAAO;YACL,IAAI,EAAE,IAAI;YACV,EAAE;YACF,OAAO,EAAE;gBACP,aAAa,EAAE;oBACb,KAAK,EAAE,UAAU,CAAC,YAAY,CAAC,KAAK;oBACpC,QAAQ,EAAE,UAAU,CAAC,YAAY,CAAC,QAAQ;oBAC1C,GAAG,EAAE,UAAU,CAAC,YAAY,CAAC,GAAG;iBACjC;aACF;SACF,CAAC;IACJ,CAAC;IACD,IAAI,UAAU,CAAC,gBAAgB,KAAK,IAAI,EAAE,CAAC;QACzC,OAAO;YACL,IAAI,EAAE,IAAI;YACV,EAAE;YACF,OAAO,EAAE;gBACP,aAAa,EAAE;oBACb,MAAM,EAAE,UAAU,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBACrD,KAAK,EAAE,CAAC,CAAC,KAAK;wBACd,WAAW,EAAE,CAAC,CAAC,WAAW;qBAC3B,CAAC,CAAC;iBACJ;aACF;SACF,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AAC5B,CAAC,CAAC;AAGF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,aAAa,GAAG,CACpB,UAAiC,EACjC,QAA0B,EACf,EAAE;IACb,IAAI,QAAQ,CAAC,IAAI,KAAK,+BAA+B,EAAE,CAAC;QACtD,MAAM,KAAK,GAAG,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACzD;iEACyD;QACzD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,QAAQ,CAAC,gBAAgB,EAAE,iCAAiC,CAAC,CAAC;QAC1E,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,2DAA2D;IAC3D,OAAO,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC;AAClC,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,aAAa,GAAG,CACpB,UAAiC,EACjC,EAAa,EACb,OAAmC,EACzB,EAAE;IACZ,MAAM,IAAI,GAAc,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC3E,gEAAgE;IAChE,kEAAkE;IAClE,+DAA+D;IAC/D,gEAAgE;IAChE,2DAA2D;IAC3D,2BAA2B;IAC3B,IAAI,UAAU,CAAC,YAAY,KAAK,IAAI,IAAI,UAAU,CAAC,gBAAgB,KAAK,IAAI,EAAE,CAAC;QAC7E,MAAM,IAAI,QAAQ,CAChB,gBAAgB,EAChB,gEAAgE;YAC9D,WAAW,UAAU,CAAC,QAAQ,YAAY,UAAU,CAAC,UAAU,MAAM;YACrE,mEAAmE;YACnE,uBAAuB,EACzB;YACE,OAAO,EAAE;gBACP,SAAS,EAAE,UAAU,CAAC,QAAQ;gBAC9B,WAAW,EAAE,UAAU,CAAC,UAAU;aACnC;SACF,CACF,CAAC;IACJ,CAAC;IACD,IAAI,UAAU,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;QACrC,OAAO;YACL,IAAI;YACJ,EAAE;YACF,OAAO,EAAE;gBACP,aAAa,EAAE;oBACb,KAAK,EAAE,UAAU,CAAC,YAAY,CAAC,KAAK;oBACpC,QAAQ,EAAE,UAAU,CAAC,YAAY,CAAC,QAAQ;oBAC1C,GAAG,EAAE,UAAU,CAAC,YAAY,CAAC,GAAG;iBACjC;aACF;SACF,CAAC;IACJ,CAAC;IACD,IAAI,UAAU,CAAC,gBAAgB,KAAK,IAAI,EAAE,CAAC;QACzC,OAAO;YACL,IAAI;YACJ,EAAE;YACF,OAAO,EAAE;gBACP,aAAa,EAAE;oBACb,MAAM,EAAE,UAAU,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBACrD,KAAK,EAAE,CAAC,CAAC,KAAK;wBACd,WAAW,EAAE,CAAC,CAAC,WAAW;qBAC3B,CAAC,CAAC;iBACJ;aACF;SACF,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AACtB,CAAC,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,UAAU,GAAG,CAAC,GAAmB,EAAa,EAAE;IACpD,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjD,4DAA4D;QAC5D,+DAA+D;QAC/D,8DAA8D;QAC9D,wCAAwC;QACxC,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7C,OAAO,GAAG,CAAC,IAAI,CAAC;QAClB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC3C,8DAA8D;IAC9D,gEAAgE;IAChE,kDAAkD;IAClD,gEAAgE;IAChE,iEAAiE;IACjE,uDAAuD;IACvD,OAAO,MAAmB,CAAC;AAC7B,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG;;;QAGnB,oBAAoB;;;CAG3B,CAAC;AAYF,MAAM,SAAS,GAAG,KAAK,EACrB,MAAoB,EACpB,MAAc,EACW,EAAE;IAC3B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAC/B,kBAAkB,EAClB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,EACjB,EAAE,aAAa,EAAE,gBAAgB,EAAE,CACpC,CAAC;IACF,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;IACxC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC1C,MAAM,IAAI,QAAQ,CAChB,WAAW,EACX,QAAQ,MAAM,kDAAkD,EAChE,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CACjC,CAAC;IACJ,CAAC;IACD,4DAA4D;IAC5D,iEAAiE;IACjE,0DAA0D;IAC1D,iEAAiE;IACjE,mEAAmE;IACnE,gEAAgE;IAChE,+DAA+D;IAC/D,oCAAoC;IACpC,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IACtD,MAAM,UAAU,GAAG,IAAI,GAAG,EAA0B,CAAC;IACrD,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACpC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO;QACL,IAAI;QACJ,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,IAAI;QAC/B,UAAU;KACX,CAAC;AACJ,CAAC,CAAC"}