@mx-space/cli 0.15.1 → 0.15.2

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 (611) hide show
  1. package/dist/{Lexical.dev-BSvx45_E.mjs → Lexical.dev-Df5TNMgP.mjs} +2 -2
  2. package/dist/{Lexical.node-kAh5GM2n.mjs → Lexical.node-B064E4Hy.mjs} +1 -1
  3. package/dist/{Lexical.prod-Bqwgb3ez.mjs → Lexical.prod-DRFSwoE7.mjs} +2 -2
  4. package/dist/{LexicalClipboard.dev-BWU3KXIa.mjs → LexicalClipboard.dev-ClOWeg5v.mjs} +5 -5
  5. package/dist/{LexicalClipboard.node-BygAdNdF.mjs → LexicalClipboard.node-BJBLWpEi.mjs} +1 -1
  6. package/dist/{LexicalClipboard.prod-BtMuKNyT.mjs → LexicalClipboard.prod-Ytt65eQo.mjs} +5 -5
  7. package/dist/{LexicalCodeCore.dev-CD2xgvDs.mjs → LexicalCodeCore.dev-CzEPINOT.mjs} +4 -4
  8. package/dist/{LexicalCodeCore.prod-Bl6FFMc7.mjs → LexicalCodeCore.prod-DOVk7lL_.mjs} +4 -4
  9. package/dist/{LexicalDragon.dev-BwdYhm4K.mjs → LexicalDragon.dev-DxePN9fP.mjs} +2 -2
  10. package/dist/{LexicalDragon.node-CpJhkCVV.mjs → LexicalDragon.node-DBwaqStp.mjs} +1 -1
  11. package/dist/{LexicalDragon.prod-CvXmWwo1.mjs → LexicalDragon.prod-Bji84-Hq.mjs} +2 -2
  12. package/dist/{LexicalExtension.dev-LcRLXI5Z.mjs → LexicalExtension.dev-DtSRyjbf.mjs} +2 -2
  13. package/dist/{LexicalExtension.node-BwJt2LXV.mjs → LexicalExtension.node-3nsS5NjU.mjs} +1 -1
  14. package/dist/{LexicalExtension.prod-lg8_33-H.mjs → LexicalExtension.prod-Ddk0ja_6.mjs} +2 -2
  15. package/dist/{LexicalHeadless.dev-BeUbKBes.mjs → LexicalHeadless.dev-DdWJsPoH.mjs} +1 -1
  16. package/dist/{LexicalHeadless.prod-4gbIA8HM.mjs → LexicalHeadless.prod-CH74ZDMt.mjs} +1 -1
  17. package/dist/{LexicalHtml.dev-BLdZWTCJ.mjs → LexicalHtml.dev-DN7QIb_7.mjs} +4 -4
  18. package/dist/{LexicalHtml.node-BeuJMvvt.mjs → LexicalHtml.node-DAwuaPeI.mjs} +1 -1
  19. package/dist/{LexicalHtml.prod-CHUyCocN.mjs → LexicalHtml.prod-X4eTHEfI.mjs} +4 -4
  20. package/dist/{LexicalLink.dev-DgsFRqw0.mjs → LexicalLink.dev-owitIl6I.mjs} +4 -4
  21. package/dist/{LexicalLink.prod-CkXkeKY2.mjs → LexicalLink.prod-BZ7ZZkVD.mjs} +4 -4
  22. package/dist/{LexicalList.dev-OOms3kQi.mjs → LexicalList.dev-CUbi09Yo.mjs} +4 -4
  23. package/dist/{LexicalList.prod-DzMBeqHn.mjs → LexicalList.prod-pUsUZa0r.mjs} +4 -4
  24. package/dist/{LexicalMarkdown.dev-DJLKbZtD.mjs → LexicalMarkdown.dev-S2yWckH9.mjs} +3 -3
  25. package/dist/{LexicalMarkdown.prod-Cp21kDCU.mjs → LexicalMarkdown.prod-TRkMWfmC.mjs} +3 -3
  26. package/dist/{LexicalRichText.dev-0rkAGjUf.mjs → LexicalRichText.dev-Y3ybFF2S.mjs} +7 -7
  27. package/dist/{LexicalRichText.node-Cd-BySPE.mjs → LexicalRichText.node-wNAi2Z4i.mjs} +4 -4
  28. package/dist/{LexicalRichText.prod-DTQiEr8C.mjs → LexicalRichText.prod-HLxqZ6hQ.mjs} +7 -7
  29. package/dist/{LexicalSelection.dev-Bi0VlUEv.mjs → LexicalSelection.dev-CyhKOKbs.mjs} +1 -1
  30. package/dist/{LexicalSelection.node-t2U46EF_.mjs → LexicalSelection.node-BCuHMbzl.mjs} +1 -1
  31. package/dist/{LexicalSelection.prod-CrFG111g.mjs → LexicalSelection.prod-RebDJliC.mjs} +1 -1
  32. package/dist/{LexicalTable.dev-D-sFhO-o.mjs → LexicalTable.dev-DN3ezVey.mjs} +5 -5
  33. package/dist/{LexicalTable.prod-DwYaa_dN.mjs → LexicalTable.prod-B0MioVyq.mjs} +5 -5
  34. package/dist/{LexicalUtils.dev-Q2q3-UDM.mjs → LexicalUtils.dev-Bw6LFRlt.mjs} +2 -2
  35. package/dist/{LexicalUtils.node-Dl7OvqJV.mjs → LexicalUtils.node-BPKMFN80.mjs} +1 -1
  36. package/dist/{LexicalUtils.prod-CBnq_iEV.mjs → LexicalUtils.prod-CJYQVQJO.mjs} +2 -2
  37. package/dist/bin/mxs.mjs +1 -1
  38. package/dist/{esm-ZXjJmLEC.mjs → esm-7vSMGlFz.mjs} +171 -245
  39. package/dist/esm-ZrfYH2y2.mjs +2 -0
  40. package/dist/index.mjs +1 -1
  41. package/dist/{mxs-DC9zR3f2.mjs → mxs-DKv-4ZTg.mjs} +362 -297
  42. package/dist/vendor/litexml/cli.mjs +94 -38
  43. package/dist/vendor/litexml/litexml-html-preview-client.css +329 -836
  44. package/dist/vendor/litexml/litexml-html-preview-client.js +6048 -5832
  45. package/dist/vendor/litexml/style.css +5 -1
  46. package/package.json +10 -10
  47. package/dist/esm-CNZ7kdTg.mjs +0 -2
  48. package/dist/src/bin/mxs.d.ts +0 -2
  49. package/dist/src/bin/mxs.js +0 -310
  50. package/dist/src/cli/ai/_poll.d.ts +0 -12
  51. package/dist/src/cli/ai/_poll.js +0 -38
  52. package/dist/src/cli/ai/_resolve.d.ts +0 -8
  53. package/dist/src/cli/ai/_resolve.js +0 -27
  54. package/dist/src/cli/ai/index.d.ts +0 -127
  55. package/dist/src/cli/ai/index.js +0 -46
  56. package/dist/src/cli/ai/insights/by-article.d.ts +0 -10
  57. package/dist/src/cli/ai/insights/by-article.js +0 -21
  58. package/dist/src/cli/ai/insights/delete.d.ts +0 -7
  59. package/dist/src/cli/ai/insights/delete.js +0 -18
  60. package/dist/src/cli/ai/insights/edit.d.ts +0 -8
  61. package/dist/src/cli/ai/insights/edit.js +0 -54
  62. package/dist/src/cli/ai/insights/get.d.ts +0 -6
  63. package/dist/src/cli/ai/insights/get.js +0 -11
  64. package/dist/src/cli/ai/insights/index.d.ts +0 -30
  65. package/dist/src/cli/ai/insights/index.js +0 -17
  66. package/dist/src/cli/ai/insights/list.d.ts +0 -10
  67. package/dist/src/cli/ai/insights/list.js +0 -20
  68. package/dist/src/cli/ai/insights/refresh.d.ts +0 -10
  69. package/dist/src/cli/ai/insights/refresh.js +0 -25
  70. package/dist/src/cli/ai/insights/translate.d.ts +0 -10
  71. package/dist/src/cli/ai/insights/translate.js +0 -25
  72. package/dist/src/cli/ai/overview/by-article.d.ts +0 -7
  73. package/dist/src/cli/ai/overview/by-article.js +0 -15
  74. package/dist/src/cli/ai/overview/index.d.ts +0 -11
  75. package/dist/src/cli/ai/overview/index.js +0 -4
  76. package/dist/src/cli/ai/overview/list.d.ts +0 -10
  77. package/dist/src/cli/ai/overview/list.js +0 -20
  78. package/dist/src/cli/ai/summary/by-article.d.ts +0 -10
  79. package/dist/src/cli/ai/summary/by-article.js +0 -21
  80. package/dist/src/cli/ai/summary/delete.d.ts +0 -7
  81. package/dist/src/cli/ai/summary/delete.js +0 -18
  82. package/dist/src/cli/ai/summary/edit.d.ts +0 -8
  83. package/dist/src/cli/ai/summary/edit.js +0 -54
  84. package/dist/src/cli/ai/summary/get.d.ts +0 -6
  85. package/dist/src/cli/ai/summary/get.js +0 -11
  86. package/dist/src/cli/ai/summary/index.d.ts +0 -30
  87. package/dist/src/cli/ai/summary/index.js +0 -9
  88. package/dist/src/cli/ai/summary/list.d.ts +0 -10
  89. package/dist/src/cli/ai/summary/list.js +0 -20
  90. package/dist/src/cli/ai/summary/regen.d.ts +0 -10
  91. package/dist/src/cli/ai/summary/regen.js +0 -25
  92. package/dist/src/cli/ai/summary/translate.d.ts +0 -10
  93. package/dist/src/cli/ai/summary/translate.js +0 -25
  94. package/dist/src/cli/ai/translate/by-article.d.ts +0 -9
  95. package/dist/src/cli/ai/translate/by-article.js +0 -19
  96. package/dist/src/cli/ai/translate/delete.d.ts +0 -7
  97. package/dist/src/cli/ai/translate/delete.js +0 -18
  98. package/dist/src/cli/ai/translate/edit.d.ts +0 -8
  99. package/dist/src/cli/ai/translate/edit.js +0 -97
  100. package/dist/src/cli/ai/translate/entries/delete.d.ts +0 -7
  101. package/dist/src/cli/ai/translate/entries/delete.js +0 -18
  102. package/dist/src/cli/ai/translate/entries/edit.d.ts +0 -8
  103. package/dist/src/cli/ai/translate/entries/edit.js +0 -73
  104. package/dist/src/cli/ai/translate/entries/generate.d.ts +0 -7
  105. package/dist/src/cli/ai/translate/entries/generate.js +0 -15
  106. package/dist/src/cli/ai/translate/entries/index.d.ts +0 -17
  107. package/dist/src/cli/ai/translate/entries/index.js +0 -6
  108. package/dist/src/cli/ai/translate/entries/list.d.ts +0 -10
  109. package/dist/src/cli/ai/translate/entries/list.js +0 -20
  110. package/dist/src/cli/ai/translate/get.d.ts +0 -6
  111. package/dist/src/cli/ai/translate/get.js +0 -11
  112. package/dist/src/cli/ai/translate/index.d.ts +0 -40
  113. package/dist/src/cli/ai/translate/index.js +0 -19
  114. package/dist/src/cli/ai/translate/languages.d.ts +0 -7
  115. package/dist/src/cli/ai/translate/languages.js +0 -15
  116. package/dist/src/cli/ai/translate/list.d.ts +0 -9
  117. package/dist/src/cli/ai/translate/list.js +0 -19
  118. package/dist/src/cli/ai/translate/run.d.ts +0 -10
  119. package/dist/src/cli/ai/translate/run.js +0 -31
  120. package/dist/src/cli/ai/tts/by-article.d.ts +0 -7
  121. package/dist/src/cli/ai/tts/by-article.js +0 -15
  122. package/dist/src/cli/ai/tts/delete.d.ts +0 -7
  123. package/dist/src/cli/ai/tts/delete.js +0 -18
  124. package/dist/src/cli/ai/tts/index.d.ts +0 -22
  125. package/dist/src/cli/ai/tts/index.js +0 -7
  126. package/dist/src/cli/ai/tts/list.d.ts +0 -10
  127. package/dist/src/cli/ai/tts/list.js +0 -20
  128. package/dist/src/cli/ai/tts/run.d.ts +0 -10
  129. package/dist/src/cli/ai/tts/run.js +0 -25
  130. package/dist/src/cli/ai/tts/voices.d.ts +0 -7
  131. package/dist/src/cli/ai/tts/voices.js +0 -12
  132. package/dist/src/cli/ai/views.d.ts +0 -3
  133. package/dist/src/cli/ai/views.js +0 -45
  134. package/dist/src/cli/auth/index.d.ts +0 -6
  135. package/dist/src/cli/auth/index.js +0 -22
  136. package/dist/src/cli/auth/login.d.ts +0 -11
  137. package/dist/src/cli/auth/login.js +0 -168
  138. package/dist/src/cli/auth/logout.d.ts +0 -6
  139. package/dist/src/cli/auth/logout.js +0 -21
  140. package/dist/src/cli/auth/status.d.ts +0 -4
  141. package/dist/src/cli/auth/status.js +0 -31
  142. package/dist/src/cli/auth/view.d.ts +0 -25
  143. package/dist/src/cli/auth/view.js +0 -46
  144. package/dist/src/cli/auth/whoami.d.ts +0 -7
  145. package/dist/src/cli/auth/whoami.js +0 -44
  146. package/dist/src/cli/category/create.d.ts +0 -10
  147. package/dist/src/cli/category/create.js +0 -24
  148. package/dist/src/cli/category/delete.d.ts +0 -8
  149. package/dist/src/cli/category/delete.js +0 -21
  150. package/dist/src/cli/category/get.d.ts +0 -6
  151. package/dist/src/cli/category/get.js +0 -11
  152. package/dist/src/cli/category/index.d.ts +0 -20
  153. package/dist/src/cli/category/index.js +0 -41
  154. package/dist/src/cli/category/list.d.ts +0 -4
  155. package/dist/src/cli/category/list.js +0 -10
  156. package/dist/src/cli/category/update.d.ts +0 -12
  157. package/dist/src/cli/category/update.js +0 -34
  158. package/dist/src/cli/comment/_flags.d.ts +0 -28
  159. package/dist/src/cli/comment/_flags.js +0 -48
  160. package/dist/src/cli/comment/approve.d.ts +0 -9
  161. package/dist/src/cli/comment/approve.js +0 -23
  162. package/dist/src/cli/comment/delete.d.ts +0 -9
  163. package/dist/src/cli/comment/delete.js +0 -24
  164. package/dist/src/cli/comment/get.d.ts +0 -6
  165. package/dist/src/cli/comment/get.js +0 -12
  166. package/dist/src/cli/comment/index.d.ts +0 -34
  167. package/dist/src/cli/comment/index.js +0 -53
  168. package/dist/src/cli/comment/list.d.ts +0 -9
  169. package/dist/src/cli/comment/list.js +0 -20
  170. package/dist/src/cli/comment/reject.d.ts +0 -9
  171. package/dist/src/cli/comment/reject.js +0 -23
  172. package/dist/src/cli/comment/reply.d.ts +0 -9
  173. package/dist/src/cli/comment/reply.js +0 -31
  174. package/dist/src/cli/comment/unread.d.ts +0 -7
  175. package/dist/src/cli/comment/unread.js +0 -21
  176. package/dist/src/cli/comment/view.d.ts +0 -3
  177. package/dist/src/cli/comment/view.js +0 -197
  178. package/dist/src/cli/config/edit.d.ts +0 -5
  179. package/dist/src/cli/config/edit.js +0 -36
  180. package/dist/src/cli/config/get.d.ts +0 -6
  181. package/dist/src/cli/config/get.js +0 -11
  182. package/dist/src/cli/config/index.d.ts +0 -10
  183. package/dist/src/cli/config/index.js +0 -22
  184. package/dist/src/cli/config/list.d.ts +0 -4
  185. package/dist/src/cli/config/list.js +0 -10
  186. package/dist/src/cli/config/set.d.ts +0 -9
  187. package/dist/src/cli/config/set.js +0 -48
  188. package/dist/src/cli/draft/_shared.d.ts +0 -27
  189. package/dist/src/cli/draft/_shared.js +0 -85
  190. package/dist/src/cli/draft/create.d.ts +0 -21
  191. package/dist/src/cli/draft/create.js +0 -34
  192. package/dist/src/cli/draft/delete.d.ts +0 -7
  193. package/dist/src/cli/draft/delete.js +0 -20
  194. package/dist/src/cli/draft/get.d.ts +0 -6
  195. package/dist/src/cli/draft/get.js +0 -11
  196. package/dist/src/cli/draft/index.d.ts +0 -54
  197. package/dist/src/cli/draft/index.js +0 -42
  198. package/dist/src/cli/draft/list.d.ts +0 -11
  199. package/dist/src/cli/draft/list.js +0 -23
  200. package/dist/src/cli/draft/publish.d.ts +0 -8
  201. package/dist/src/cli/draft/publish.js +0 -64
  202. package/dist/src/cli/draft/update.d.ts +0 -22
  203. package/dist/src/cli/draft/update.js +0 -29
  204. package/dist/src/cli/file/_shared.d.ts +0 -6
  205. package/dist/src/cli/file/_shared.js +0 -5
  206. package/dist/src/cli/file/delete.d.ts +0 -8
  207. package/dist/src/cli/file/delete.js +0 -21
  208. package/dist/src/cli/file/index.d.ts +0 -19
  209. package/dist/src/cli/file/index.js +0 -33
  210. package/dist/src/cli/file/list.d.ts +0 -6
  211. package/dist/src/cli/file/list.js +0 -11
  212. package/dist/src/cli/file/rename.d.ts +0 -8
  213. package/dist/src/cli/file/rename.js +0 -16
  214. package/dist/src/cli/file/upload.d.ts +0 -9
  215. package/dist/src/cli/file/upload.js +0 -32
  216. package/dist/src/cli/help/index.d.ts +0 -62
  217. package/dist/src/cli/help/index.js +0 -276
  218. package/dist/src/cli/help/registry.d.ts +0 -28
  219. package/dist/src/cli/help/registry.js +0 -29
  220. package/dist/src/cli/note/_flags.d.ts +0 -66
  221. package/dist/src/cli/note/_flags.js +0 -73
  222. package/dist/src/cli/note/create.d.ts +0 -23
  223. package/dist/src/cli/note/create.js +0 -25
  224. package/dist/src/cli/note/delete.d.ts +0 -8
  225. package/dist/src/cli/note/delete.js +0 -21
  226. package/dist/src/cli/note/edit.d.ts +0 -28
  227. package/dist/src/cli/note/edit.js +0 -114
  228. package/dist/src/cli/note/get.d.ts +0 -6
  229. package/dist/src/cli/note/get.js +0 -29
  230. package/dist/src/cli/note/index.d.ts +0 -77
  231. package/dist/src/cli/note/index.js +0 -63
  232. package/dist/src/cli/note/list.d.ts +0 -10
  233. package/dist/src/cli/note/list.js +0 -22
  234. package/dist/src/cli/note/publish.d.ts +0 -7
  235. package/dist/src/cli/note/publish.js +0 -17
  236. package/dist/src/cli/note/unpublish.d.ts +0 -7
  237. package/dist/src/cli/note/unpublish.js +0 -17
  238. package/dist/src/cli/note/update.d.ts +0 -25
  239. package/dist/src/cli/note/update.js +0 -36
  240. package/dist/src/cli/note/view.d.ts +0 -3
  241. package/dist/src/cli/note/view.js +0 -162
  242. package/dist/src/cli/page/create.d.ts +0 -41
  243. package/dist/src/cli/page/create.js +0 -56
  244. package/dist/src/cli/page/delete.d.ts +0 -7
  245. package/dist/src/cli/page/delete.js +0 -37
  246. package/dist/src/cli/page/edit.d.ts +0 -19
  247. package/dist/src/cli/page/edit.js +0 -117
  248. package/dist/src/cli/page/get.d.ts +0 -6
  249. package/dist/src/cli/page/get.js +0 -16
  250. package/dist/src/cli/page/index.d.ts +0 -44
  251. package/dist/src/cli/page/index.js +0 -38
  252. package/dist/src/cli/page/list.d.ts +0 -4
  253. package/dist/src/cli/page/list.js +0 -10
  254. package/dist/src/cli/page/update.d.ts +0 -16
  255. package/dist/src/cli/page/update.js +0 -48
  256. package/dist/src/cli/page/view.d.ts +0 -2
  257. package/dist/src/cli/page/view.js +0 -79
  258. package/dist/src/cli/post/_flags.d.ts +0 -66
  259. package/dist/src/cli/post/_flags.js +0 -96
  260. package/dist/src/cli/post/apply.d.ts +0 -7
  261. package/dist/src/cli/post/apply.js +0 -70
  262. package/dist/src/cli/post/create.d.ts +0 -21
  263. package/dist/src/cli/post/create.js +0 -24
  264. package/dist/src/cli/post/delete.d.ts +0 -8
  265. package/dist/src/cli/post/delete.js +0 -21
  266. package/dist/src/cli/post/edit.d.ts +0 -26
  267. package/dist/src/cli/post/edit.js +0 -115
  268. package/dist/src/cli/post/get.d.ts +0 -7
  269. package/dist/src/cli/post/get.js +0 -15
  270. package/dist/src/cli/post/index.d.ts +0 -91
  271. package/dist/src/cli/post/index.js +0 -73
  272. package/dist/src/cli/post/list.d.ts +0 -10
  273. package/dist/src/cli/post/list.js +0 -23
  274. package/dist/src/cli/post/publish.d.ts +0 -7
  275. package/dist/src/cli/post/publish.js +0 -17
  276. package/dist/src/cli/post/stage.d.ts +0 -23
  277. package/dist/src/cli/post/stage.js +0 -55
  278. package/dist/src/cli/post/unpublish.d.ts +0 -7
  279. package/dist/src/cli/post/unpublish.js +0 -17
  280. package/dist/src/cli/post/update.d.ts +0 -23
  281. package/dist/src/cli/post/update.js +0 -38
  282. package/dist/src/cli/post/view.d.ts +0 -3
  283. package/dist/src/cli/post/view.js +0 -150
  284. package/dist/src/cli/preview/index.d.ts +0 -13
  285. package/dist/src/cli/preview/index.js +0 -226
  286. package/dist/src/cli/profile/index.d.ts +0 -14
  287. package/dist/src/cli/profile/index.js +0 -36
  288. package/dist/src/cli/profile/ls.d.ts +0 -5
  289. package/dist/src/cli/profile/ls.js +0 -26
  290. package/dist/src/cli/profile/mark.d.ts +0 -9
  291. package/dist/src/cli/profile/mark.js +0 -23
  292. package/dist/src/cli/profile/rm.d.ts +0 -12
  293. package/dist/src/cli/profile/rm.js +0 -50
  294. package/dist/src/cli/profile/show.d.ts +0 -9
  295. package/dist/src/cli/profile/show.js +0 -40
  296. package/dist/src/cli/profile/use.d.ts +0 -6
  297. package/dist/src/cli/profile/use.js +0 -11
  298. package/dist/src/cli/profile/view.d.ts +0 -8
  299. package/dist/src/cli/profile/view.js +0 -21
  300. package/dist/src/cli/project/_flags.d.ts +0 -56
  301. package/dist/src/cli/project/_flags.js +0 -130
  302. package/dist/src/cli/project/create.d.ts +0 -17
  303. package/dist/src/cli/project/create.js +0 -25
  304. package/dist/src/cli/project/delete.d.ts +0 -8
  305. package/dist/src/cli/project/delete.js +0 -22
  306. package/dist/src/cli/project/edit.d.ts +0 -11
  307. package/dist/src/cli/project/edit.js +0 -61
  308. package/dist/src/cli/project/get.d.ts +0 -7
  309. package/dist/src/cli/project/get.js +0 -14
  310. package/dist/src/cli/project/index.d.ts +0 -43
  311. package/dist/src/cli/project/index.js +0 -52
  312. package/dist/src/cli/project/list.d.ts +0 -8
  313. package/dist/src/cli/project/list.js +0 -19
  314. package/dist/src/cli/project/update.d.ts +0 -18
  315. package/dist/src/cli/project/update.js +0 -24
  316. package/dist/src/cli/project/view-cmd.d.ts +0 -7
  317. package/dist/src/cli/project/view-cmd.js +0 -15
  318. package/dist/src/cli/project/view.d.ts +0 -3
  319. package/dist/src/cli/project/view.js +0 -102
  320. package/dist/src/cli/render/codehighlight.d.ts +0 -8
  321. package/dist/src/cli/render/codehighlight.js +0 -264
  322. package/dist/src/cli/render/envelope.d.ts +0 -7
  323. package/dist/src/cli/render/envelope.js +0 -23
  324. package/dist/src/cli/render/frontmatter.d.ts +0 -8
  325. package/dist/src/cli/render/frontmatter.js +0 -50
  326. package/dist/src/cli/render/helpers.d.ts +0 -2
  327. package/dist/src/cli/render/helpers.js +0 -11
  328. package/dist/src/cli/render/index.d.ts +0 -7
  329. package/dist/src/cli/render/index.js +0 -10
  330. package/dist/src/cli/render/lexical/blocks.d.ts +0 -19
  331. package/dist/src/cli/render/lexical/blocks.js +0 -208
  332. package/dist/src/cli/render/lexical/code.d.ts +0 -2
  333. package/dist/src/cli/render/lexical/code.js +0 -22
  334. package/dist/src/cli/render/lexical/embeds.d.ts +0 -6
  335. package/dist/src/cli/render/lexical/embeds.js +0 -51
  336. package/dist/src/cli/render/lexical/index.d.ts +0 -9
  337. package/dist/src/cli/render/lexical/index.js +0 -25
  338. package/dist/src/cli/render/lexical/inlines.d.ts +0 -17
  339. package/dist/src/cli/render/lexical/inlines.js +0 -76
  340. package/dist/src/cli/render/lexical/parser.d.ts +0 -10
  341. package/dist/src/cli/render/lexical/parser.js +0 -64
  342. package/dist/src/cli/render/lexical/walker.d.ts +0 -21
  343. package/dist/src/cli/render/lexical/walker.js +0 -51
  344. package/dist/src/cli/render/markdown.d.ts +0 -18
  345. package/dist/src/cli/render/markdown.js +0 -196
  346. package/dist/src/cli/render/metadata-block.d.ts +0 -14
  347. package/dist/src/cli/render/metadata-block.js +0 -50
  348. package/dist/src/cli/skill/all.d.ts +0 -4
  349. package/dist/src/cli/skill/all.js +0 -11
  350. package/dist/src/cli/skill/get.d.ts +0 -6
  351. package/dist/src/cli/skill/get.js +0 -12
  352. package/dist/src/cli/skill/index.d.ts +0 -10
  353. package/dist/src/cli/skill/index.js +0 -34
  354. package/dist/src/cli/skill/list.d.ts +0 -4
  355. package/dist/src/cli/skill/list.js +0 -11
  356. package/dist/src/cli/skill/search.d.ts +0 -6
  357. package/dist/src/cli/skill/search.js +0 -12
  358. package/dist/src/cli/skill/views.d.ts +0 -6
  359. package/dist/src/cli/skill/views.js +0 -90
  360. package/dist/src/cli/snippet/_flags.d.ts +0 -57
  361. package/dist/src/cli/snippet/_flags.js +0 -123
  362. package/dist/src/cli/snippet/_resolve.d.ts +0 -4
  363. package/dist/src/cli/snippet/_resolve.js +0 -32
  364. package/dist/src/cli/snippet/_sync.d.ts +0 -5
  365. package/dist/src/cli/snippet/_sync.js +0 -54
  366. package/dist/src/cli/snippet/create.d.ts +0 -19
  367. package/dist/src/cli/snippet/create.js +0 -35
  368. package/dist/src/cli/snippet/delete.d.ts +0 -8
  369. package/dist/src/cli/snippet/delete.js +0 -28
  370. package/dist/src/cli/snippet/edit.d.ts +0 -7
  371. package/dist/src/cli/snippet/edit.js +0 -29
  372. package/dist/src/cli/snippet/get.d.ts +0 -6
  373. package/dist/src/cli/snippet/get.js +0 -12
  374. package/dist/src/cli/snippet/index.d.ts +0 -43
  375. package/dist/src/cli/snippet/index.js +0 -58
  376. package/dist/src/cli/snippet/list.d.ts +0 -9
  377. package/dist/src/cli/snippet/list.js +0 -20
  378. package/dist/src/cli/snippet/pull.d.ts +0 -8
  379. package/dist/src/cli/snippet/pull.js +0 -33
  380. package/dist/src/cli/snippet/push.d.ts +0 -10
  381. package/dist/src/cli/snippet/push.js +0 -31
  382. package/dist/src/cli/snippet/update.d.ts +0 -8
  383. package/dist/src/cli/snippet/update.js +0 -16
  384. package/dist/src/cli/topic/create.d.ts +0 -10
  385. package/dist/src/cli/topic/create.js +0 -24
  386. package/dist/src/cli/topic/delete.d.ts +0 -7
  387. package/dist/src/cli/topic/delete.js +0 -37
  388. package/dist/src/cli/topic/get.d.ts +0 -6
  389. package/dist/src/cli/topic/get.js +0 -15
  390. package/dist/src/cli/topic/index.d.ts +0 -20
  391. package/dist/src/cli/topic/index.js +0 -32
  392. package/dist/src/cli/topic/list.d.ts +0 -4
  393. package/dist/src/cli/topic/list.js +0 -10
  394. package/dist/src/cli/topic/update.d.ts +0 -11
  395. package/dist/src/cli/topic/update.js +0 -51
  396. package/dist/src/cli/ui/index.d.ts +0 -24
  397. package/dist/src/cli/ui/index.js +0 -83
  398. package/dist/src/cli/update/index.d.ts +0 -10
  399. package/dist/src/cli/update/index.js +0 -142
  400. package/dist/src/domain/admin-link.d.ts +0 -12
  401. package/dist/src/domain/admin-link.js +0 -45
  402. package/dist/src/domain/content-spec.d.ts +0 -20
  403. package/dist/src/domain/content-spec.js +0 -78
  404. package/dist/src/domain/envelope-compat.d.ts +0 -68
  405. package/dist/src/domain/envelope-compat.js +0 -121
  406. package/dist/src/domain/envelope.d.ts +0 -34
  407. package/dist/src/domain/envelope.js +0 -355
  408. package/dist/src/domain/errors.d.ts +0 -336
  409. package/dist/src/domain/errors.js +0 -239
  410. package/dist/src/domain/gate.d.ts +0 -14
  411. package/dist/src/domain/gate.js +0 -18
  412. package/dist/src/domain/payload.d.ts +0 -64
  413. package/dist/src/domain/payload.js +0 -237
  414. package/dist/src/domain/preflight-guards.d.ts +0 -54
  415. package/dist/src/domain/preflight-guards.js +0 -130
  416. package/dist/src/domain/runtime-flags.d.ts +0 -33
  417. package/dist/src/domain/runtime-flags.js +0 -166
  418. package/dist/src/domain/schema/api-envelope.d.ts +0 -67
  419. package/dist/src/domain/schema/api-envelope.js +0 -65
  420. package/dist/src/domain/schema/category.d.ts +0 -23
  421. package/dist/src/domain/schema/category.js +0 -19
  422. package/dist/src/domain/schema/config.d.ts +0 -13
  423. package/dist/src/domain/schema/config.js +0 -18
  424. package/dist/src/domain/schema/note.d.ts +0 -76
  425. package/dist/src/domain/schema/note.js +0 -35
  426. package/dist/src/domain/schema/page.d.ts +0 -40
  427. package/dist/src/domain/schema/page.js +0 -22
  428. package/dist/src/domain/schema/post.d.ts +0 -68
  429. package/dist/src/domain/schema/post.js +0 -35
  430. package/dist/src/domain/schema/profile.d.ts +0 -14
  431. package/dist/src/domain/schema/profile.js +0 -22
  432. package/dist/src/domain/schema/topic.d.ts +0 -24
  433. package/dist/src/domain/schema/topic.js +0 -16
  434. package/dist/src/domain/version.d.ts +0 -15
  435. package/dist/src/domain/version.js +0 -43
  436. package/dist/src/index.d.ts +0 -4
  437. package/dist/src/index.js +0 -8
  438. package/dist/src/layers/App.d.ts +0 -30
  439. package/dist/src/layers/App.js +0 -39
  440. package/dist/src/services/Ai/index.d.ts +0 -13
  441. package/dist/src/services/Ai/index.js +0 -127
  442. package/dist/src/services/Ai/overview.d.ts +0 -7
  443. package/dist/src/services/Ai/overview.js +0 -11
  444. package/dist/src/services/Ai/resources.d.ts +0 -7
  445. package/dist/src/services/Ai/resources.js +0 -59
  446. package/dist/src/services/Ai/shared.d.ts +0 -2
  447. package/dist/src/services/Ai/shared.js +0 -11
  448. package/dist/src/services/Ai/tasks.d.ts +0 -8
  449. package/dist/src/services/Ai/tasks.js +0 -144
  450. package/dist/src/services/Ai/types.d.ts +0 -130
  451. package/dist/src/services/Ai/types.js +0 -1
  452. package/dist/src/services/Api.d.ts +0 -67
  453. package/dist/src/services/Api.js +0 -348
  454. package/dist/src/services/Auth.d.ts +0 -101
  455. package/dist/src/services/Auth.js +0 -402
  456. package/dist/src/services/Backup.d.ts +0 -8
  457. package/dist/src/services/Backup.js +0 -4
  458. package/dist/src/services/Cache.d.ts +0 -8
  459. package/dist/src/services/Cache.js +0 -4
  460. package/dist/src/services/Comment.d.ts +0 -48
  461. package/dist/src/services/Comment.js +0 -102
  462. package/dist/src/services/Config.d.ts +0 -95
  463. package/dist/src/services/Config.js +0 -359
  464. package/dist/src/services/Editor.d.ts +0 -28
  465. package/dist/src/services/Editor.js +0 -95
  466. package/dist/src/services/Lexical.d.ts +0 -27
  467. package/dist/src/services/Lexical.js +0 -56
  468. package/dist/src/services/Migration.d.ts +0 -31
  469. package/dist/src/services/Migration.js +0 -177
  470. package/dist/src/services/Profile.d.ts +0 -29
  471. package/dist/src/services/Profile.js +0 -115
  472. package/dist/src/services/Renderer/content.d.ts +0 -16
  473. package/dist/src/services/Renderer/content.js +0 -110
  474. package/dist/src/services/Renderer/datetime.d.ts +0 -38
  475. package/dist/src/services/Renderer/datetime.js +0 -147
  476. package/dist/src/services/Renderer/errors.d.ts +0 -3
  477. package/dist/src/services/Renderer/errors.js +0 -59
  478. package/dist/src/services/Renderer/index.d.ts +0 -13
  479. package/dist/src/services/Renderer/index.js +0 -11
  480. package/dist/src/services/Renderer/lists.d.ts +0 -1
  481. package/dist/src/services/Renderer/lists.js +0 -101
  482. package/dist/src/services/Renderer/options.d.ts +0 -10
  483. package/dist/src/services/Renderer/options.js +0 -13
  484. package/dist/src/services/Renderer/primitives.d.ts +0 -4
  485. package/dist/src/services/Renderer/primitives.js +0 -12
  486. package/dist/src/services/Renderer/service.d.ts +0 -35
  487. package/dist/src/services/Renderer/service.js +0 -123
  488. package/dist/src/services/Renderer/view.d.ts +0 -16
  489. package/dist/src/services/Renderer/view.js +0 -1
  490. package/dist/src/services/Resolver.d.ts +0 -47
  491. package/dist/src/services/Resolver.js +0 -269
  492. package/dist/src/services/Skill.d.ts +0 -29
  493. package/dist/src/services/Skill.js +0 -421
  494. package/dist/src/services/UpdateNotifier.d.ts +0 -162
  495. package/dist/src/services/UpdateNotifier.js +0 -572
  496. package/dist/test/cli/ai/ai.test.d.ts +0 -1
  497. package/dist/test/cli/ai/ai.test.js +0 -507
  498. package/dist/test/cli/ai/verbs.test.d.ts +0 -1
  499. package/dist/test/cli/ai/verbs.test.js +0 -235
  500. package/dist/test/cli/auth/login.test.d.ts +0 -1
  501. package/dist/test/cli/auth/login.test.js +0 -236
  502. package/dist/test/cli/auth/logout-whoami.test.d.ts +0 -1
  503. package/dist/test/cli/auth/logout-whoami.test.js +0 -124
  504. package/dist/test/cli/auth/status.test.d.ts +0 -1
  505. package/dist/test/cli/auth/status.test.js +0 -90
  506. package/dist/test/cli/category/category.test.d.ts +0 -1
  507. package/dist/test/cli/category/category.test.js +0 -175
  508. package/dist/test/cli/comment/comment.test.d.ts +0 -1
  509. package/dist/test/cli/comment/comment.test.js +0 -445
  510. package/dist/test/cli/config/config.test.d.ts +0 -1
  511. package/dist/test/cli/config/config.test.js +0 -281
  512. package/dist/test/cli/edit-roundtrip.test.d.ts +0 -1
  513. package/dist/test/cli/edit-roundtrip.test.js +0 -259
  514. package/dist/test/cli/file/file.test.d.ts +0 -1
  515. package/dist/test/cli/file/file.test.js +0 -185
  516. package/dist/test/cli/help.test.d.ts +0 -1
  517. package/dist/test/cli/help.test.js +0 -289
  518. package/dist/test/cli/note/create.test.d.ts +0 -1
  519. package/dist/test/cli/note/create.test.js +0 -155
  520. package/dist/test/cli/note/list.test.d.ts +0 -1
  521. package/dist/test/cli/note/list.test.js +0 -115
  522. package/dist/test/cli/note/publish.test.d.ts +0 -1
  523. package/dist/test/cli/note/publish.test.js +0 -123
  524. package/dist/test/cli/page/page.test.d.ts +0 -1
  525. package/dist/test/cli/page/page.test.js +0 -185
  526. package/dist/test/cli/post/create.test.d.ts +0 -1
  527. package/dist/test/cli/post/create.test.js +0 -172
  528. package/dist/test/cli/post/list.test.d.ts +0 -1
  529. package/dist/test/cli/post/list.test.js +0 -133
  530. package/dist/test/cli/post/publish.test.d.ts +0 -1
  531. package/dist/test/cli/post/publish.test.js +0 -139
  532. package/dist/test/cli/post/stage-apply.test.d.ts +0 -1
  533. package/dist/test/cli/post/stage-apply.test.js +0 -215
  534. package/dist/test/cli/post/update.test.d.ts +0 -1
  535. package/dist/test/cli/post/update.test.js +0 -160
  536. package/dist/test/cli/post-note-crud.test.d.ts +0 -1
  537. package/dist/test/cli/post-note-crud.test.js +0 -362
  538. package/dist/test/cli/profile/ls.test.d.ts +0 -1
  539. package/dist/test/cli/profile/ls.test.js +0 -93
  540. package/dist/test/cli/profile/mark-use.test.d.ts +0 -1
  541. package/dist/test/cli/profile/mark-use.test.js +0 -216
  542. package/dist/test/cli/project-crud.test.d.ts +0 -1
  543. package/dist/test/cli/project-crud.test.js +0 -315
  544. package/dist/test/cli/render/lexical.test.d.ts +0 -1
  545. package/dist/test/cli/render/lexical.test.js +0 -216
  546. package/dist/test/cli/render/markdown.test.d.ts +0 -1
  547. package/dist/test/cli/render/markdown.test.js +0 -39
  548. package/dist/test/cli/snippet-crud.test.d.ts +0 -1
  549. package/dist/test/cli/snippet-crud.test.js +0 -293
  550. package/dist/test/cli/topic/topic.test.d.ts +0 -1
  551. package/dist/test/cli/topic/topic.test.js +0 -181
  552. package/dist/test/cli/update.test.d.ts +0 -1
  553. package/dist/test/cli/update.test.js +0 -395
  554. package/dist/test/domain/content-spec.test.d.ts +0 -1
  555. package/dist/test/domain/content-spec.test.js +0 -126
  556. package/dist/test/domain/envelope-compat.test.d.ts +0 -1
  557. package/dist/test/domain/envelope-compat.test.js +0 -126
  558. package/dist/test/domain/envelope.test.d.ts +0 -1
  559. package/dist/test/domain/envelope.test.js +0 -149
  560. package/dist/test/domain/errors.test.d.ts +0 -1
  561. package/dist/test/domain/errors.test.js +0 -127
  562. package/dist/test/domain/gate.test.d.ts +0 -1
  563. package/dist/test/domain/gate.test.js +0 -128
  564. package/dist/test/domain/payload.test.d.ts +0 -1
  565. package/dist/test/domain/payload.test.js +0 -259
  566. package/dist/test/helper/test-fs.d.ts +0 -24
  567. package/dist/test/helper/test-fs.js +0 -161
  568. package/dist/test/helper/test-http.d.ts +0 -31
  569. package/dist/test/helper/test-http.js +0 -66
  570. package/dist/test/integration/_helpers.d.ts +0 -5
  571. package/dist/test/integration/_helpers.js +0 -24
  572. package/dist/test/integration/cli-error-envelope.test.d.ts +0 -1
  573. package/dist/test/integration/cli-error-envelope.test.js +0 -137
  574. package/dist/test/integration/cli-help-render.test.d.ts +0 -1
  575. package/dist/test/integration/cli-help-render.test.js +0 -149
  576. package/dist/test/integration/cli-help.test.d.ts +0 -1
  577. package/dist/test/integration/cli-help.test.js +0 -67
  578. package/dist/test/integration/cli-post-list.test.d.ts +0 -1
  579. package/dist/test/integration/cli-post-list.test.js +0 -140
  580. package/dist/test/integration/cli-skill.test.d.ts +0 -1
  581. package/dist/test/integration/cli-skill.test.js +0 -74
  582. package/dist/test/integration/cli-version.test.d.ts +0 -1
  583. package/dist/test/integration/cli-version.test.js +0 -37
  584. package/dist/test/services/Api.test.d.ts +0 -1
  585. package/dist/test/services/Api.test.js +0 -553
  586. package/dist/test/services/Auth.test.d.ts +0 -1
  587. package/dist/test/services/Auth.test.js +0 -650
  588. package/dist/test/services/Config.test.d.ts +0 -1
  589. package/dist/test/services/Config.test.js +0 -510
  590. package/dist/test/services/Datetime.test.d.ts +0 -1
  591. package/dist/test/services/Datetime.test.js +0 -113
  592. package/dist/test/services/Editor.test.d.ts +0 -1
  593. package/dist/test/services/Editor.test.js +0 -205
  594. package/dist/test/services/Lexical.errors.test.d.ts +0 -1
  595. package/dist/test/services/Lexical.errors.test.js +0 -60
  596. package/dist/test/services/Lexical.test.d.ts +0 -1
  597. package/dist/test/services/Lexical.test.js +0 -68
  598. package/dist/test/services/Migration.test.d.ts +0 -1
  599. package/dist/test/services/Migration.test.js +0 -376
  600. package/dist/test/services/Profile.test.d.ts +0 -1
  601. package/dist/test/services/Profile.test.js +0 -277
  602. package/dist/test/services/Renderer.test.d.ts +0 -1
  603. package/dist/test/services/Renderer.test.js +0 -538
  604. package/dist/test/services/Resolver.test.d.ts +0 -1
  605. package/dist/test/services/Resolver.test.js +0 -320
  606. package/dist/test/services/Skill.test.d.ts +0 -1
  607. package/dist/test/services/Skill.test.js +0 -261
  608. package/dist/test/services/UpdateNotifier.spawn.test.d.ts +0 -1
  609. package/dist/test/services/UpdateNotifier.spawn.test.js +0 -73
  610. package/dist/test/services/UpdateNotifier.test.d.ts +0 -1
  611. package/dist/test/services/UpdateNotifier.test.js +0 -912
@@ -1,96 +0,0 @@
1
- import { Options } from '@effect/cli';
2
- import { Effect, Option } from 'effect';
3
- import { Resolver } from '../../services/Resolver';
4
- // ---------------------------------------------------------------------------
5
- // Shared option definitions for `post create | edit | update`.
6
- // ---------------------------------------------------------------------------
7
- const optional = (self) => Options.optional(self);
8
- const unwrap = (value) => Option.getOrUndefined(value);
9
- export const title = optional(Options.text('title'));
10
- export const slug = optional(Options.text('slug'));
11
- export const category = optional(Options.text('category'));
12
- export const content = optional(Options.text('content'));
13
- export const summary = optional(Options.text('summary'));
14
- export const file = optional(Options.text('file'));
15
- export const meta = optional(Options.text('meta'));
16
- export const pin = optional(Options.text('pin'));
17
- export const format = Options.choice('format', ['lexical', 'markdown']).pipe(Options.optional);
18
- export const state = Options.choice('state', ['publish', 'draft']).pipe(Options.optional);
19
- export const tags = optional(Options.text('tags'));
20
- export const related = optional(Options.text('related'));
21
- export const pinOrder = optional(Options.integer('pin-order'));
22
- export const copyright = optional(Options.text('copyright'));
23
- export const openFlag = Options.boolean('open').pipe(Options.withDescription('After success, open the admin edit page in the default browser.'));
24
- export const silentFlag = Options.boolean('silent').pipe(Options.withDescription('On success, emit a minimal `ok` instead of the full server response (saves output tokens). Errors still print normally.'));
25
- const parseCsv = (v) => {
26
- if (v === undefined)
27
- return undefined;
28
- const parts = v
29
- .split(',')
30
- .map((s) => s.trim())
31
- .filter(Boolean);
32
- return parts;
33
- };
34
- const parseCopyright = (v) => v === undefined ? undefined : v === 'true';
35
- export const postWriteOptions = {
36
- title,
37
- slug,
38
- category,
39
- content,
40
- format,
41
- summary,
42
- state,
43
- tags,
44
- copyright,
45
- pin,
46
- pinOrder,
47
- related,
48
- meta,
49
- file,
50
- open: openFlag,
51
- silent: silentFlag,
52
- };
53
- /** Resolve `__categoryName` placeholder (set by `buildPostPayload`) → `categoryId`. */
54
- export const resolveCategoryRefs = (payload) => Effect.gen(function* () {
55
- const next = { ...payload };
56
- const nameRef = next.__categoryName;
57
- delete next.__categoryName;
58
- if (typeof nameRef === 'string' && nameRef.length > 0 && !next.categoryId) {
59
- const resolver = yield* Resolver;
60
- next.categoryId = yield* resolver.resolveCategory(nameRef);
61
- }
62
- return next;
63
- });
64
- export const toPostFlagInputs = (opts) => ({
65
- title: unwrap(opts.title),
66
- slug: unwrap(opts.slug),
67
- category: unwrap(opts.category),
68
- content: unwrap(opts.content),
69
- format: unwrap(opts.format),
70
- summary: unwrap(opts.summary),
71
- state: unwrap(opts.state),
72
- tags: parseCsv(unwrap(opts.tags)),
73
- copyright: parseCopyright(unwrap(opts.copyright)),
74
- pin: unwrap(opts.pin),
75
- pinOrder: unwrap(opts.pinOrder),
76
- related: parseCsv(unwrap(opts.related)),
77
- meta: unwrap(opts.meta),
78
- file: unwrap(opts.file),
79
- });
80
- /**
81
- * Extract the id from a server response — handles both `id` and `_id`,
82
- * and unwraps the outer `data` envelope mx-core wraps single-object
83
- * responses with (so `--open` works after `post create`).
84
- */
85
- export const extractId = (res) => {
86
- if (!res || typeof res !== 'object')
87
- return undefined;
88
- const r = res;
89
- if (typeof r.id === 'string')
90
- return r.id;
91
- if (typeof r._id === 'string')
92
- return r._id;
93
- if (r.data && typeof r.data === 'object')
94
- return extractId(r.data);
95
- return undefined;
96
- };
@@ -1,7 +0,0 @@
1
- import { Command } from '@effect/cli';
2
- import { Api } from '../../services/Api';
3
- import { Renderer } from '../../services/Renderer';
4
- import { Resolver } from '../../services/Resolver';
5
- export declare const apply: Command.Command<"apply", Api | Renderer | Resolver, import("../../services/Api").ApiError, {
6
- readonly slugOrId: string;
7
- }>;
@@ -1,70 +0,0 @@
1
- import { Args, Command } from '@effect/cli';
2
- import { Effect } from 'effect';
3
- import { Generic } from '../../domain/errors';
4
- import { Api } from '../../services/Api';
5
- import { Renderer } from '../../services/Renderer';
6
- import { asRecord, first, unwrapDocument, } from '../../services/Renderer/content';
7
- import { Resolver } from '../../services/Resolver';
8
- import { camelizeDeep } from '../draft/_shared';
9
- const slugOrId = Args.text({ name: 'slugOrId' });
10
- const parseTypeSpecificData = (raw) => {
11
- if (!raw)
12
- return {};
13
- if (typeof raw === 'object' && !Array.isArray(raw))
14
- return raw;
15
- if (typeof raw !== 'string')
16
- return {};
17
- try {
18
- const parsed = JSON.parse(raw);
19
- return typeof parsed === 'object' &&
20
- parsed !== null &&
21
- !Array.isArray(parsed)
22
- ? parsed
23
- : {};
24
- }
25
- catch {
26
- return {};
27
- }
28
- };
29
- export const apply = Command.make('apply', { slugOrId }, ({ slugOrId }) => Effect.gen(function* () {
30
- const resolver = yield* Resolver;
31
- const api = yield* Api;
32
- const renderer = yield* Renderer;
33
- const id = yield* resolver.resolvePostId(slugOrId);
34
- // The server returns null when there is no draft for this post or when
35
- // the draft has no pending changes (publishedVersion === version).
36
- const draft = asRecord(unwrapDocument(yield* api.request(`/drafts/by-ref/post/${id}`)));
37
- const draftId = first(draft, 'id');
38
- if (typeof draftId !== 'string' || !draftId) {
39
- return yield* Effect.fail(new Generic({
40
- message: `no staged changes for post ${slugOrId}`,
41
- hint: 'stage changes first with `mxs post stage <slugOrId> --file <article.xml>`',
42
- }));
43
- }
44
- const body = {
45
- ...parseTypeSpecificData(first(draft, 'type_specific_data', 'typeSpecificData')),
46
- };
47
- const title = first(draft, 'title');
48
- const text = first(draft, 'text');
49
- const content = first(draft, 'content');
50
- const contentFormat = first(draft, 'content_format', 'contentFormat');
51
- const meta = first(draft, 'meta');
52
- if (title !== undefined)
53
- body.title = title;
54
- if (text !== undefined)
55
- body.text = text;
56
- if (content !== undefined)
57
- body.content = content;
58
- if (contentFormat !== undefined)
59
- body.contentFormat = contentFormat;
60
- if (meta !== undefined)
61
- body.meta = camelizeDeep(meta);
62
- // Sending draftId makes the server mark the draft's current version as
63
- // published; the draft itself is retained (with its history).
64
- body.draftId = draftId;
65
- const res = yield* api.request(`/posts/${id}`, {
66
- method: 'PATCH',
67
- body,
68
- });
69
- yield* renderer.emitSuccess(res);
70
- })).pipe(Command.withDescription('apply the staged draft of a post to the live post (the confirm step after `post stage`)'));
@@ -1,21 +0,0 @@
1
- import { Command } from '@effect/cli';
2
- import { Api } from '../../services/Api';
3
- import { Renderer } from '../../services/Renderer';
4
- export declare const create: Command.Command<"create", import("@effect/platform/Path").Path | import("@effect/platform/FileSystem").FileSystem | Api | Renderer | import("../../services/Resolver").Resolver | import("../../services/Lexical").Lexical, import("../../domain/errors").ValidationXml | import("../../services/Api").ApiError, {
5
- readonly title: import("effect/Option").Option<string>;
6
- readonly slug: import("effect/Option").Option<string>;
7
- readonly category: import("effect/Option").Option<string>;
8
- readonly content: import("effect/Option").Option<string>;
9
- readonly format: import("effect/Option").Option<"markdown" | "lexical">;
10
- readonly summary: import("effect/Option").Option<string>;
11
- readonly state: import("effect/Option").Option<"draft" | "publish">;
12
- readonly tags: import("effect/Option").Option<string>;
13
- readonly copyright: import("effect/Option").Option<string>;
14
- readonly pin: import("effect/Option").Option<string>;
15
- readonly pinOrder: import("effect/Option").Option<number>;
16
- readonly related: import("effect/Option").Option<string>;
17
- readonly meta: import("effect/Option").Option<string>;
18
- readonly file: import("effect/Option").Option<string>;
19
- readonly open: boolean;
20
- readonly silent: boolean;
21
- }>;
@@ -1,24 +0,0 @@
1
- import { Command } from '@effect/cli';
2
- import { Effect } from 'effect';
3
- import { openAdminEdit } from '../../domain/admin-link';
4
- import { buildPostPayload } from '../../domain/payload';
5
- import { Api } from '../../services/Api';
6
- import { Renderer } from '../../services/Renderer';
7
- import { extractId, postWriteOptions, resolveCategoryRefs, toPostFlagInputs, } from './_flags';
8
- export const create = Command.make('create', postWriteOptions, (opts) => Effect.gen(function* () {
9
- const flags = toPostFlagInputs(opts);
10
- const built = yield* buildPostPayload(flags);
11
- const payload = yield* resolveCategoryRefs(built.payload);
12
- const api = yield* Api;
13
- const renderer = yield* Renderer;
14
- const res = yield* api.request('/posts', {
15
- method: 'POST',
16
- body: payload,
17
- });
18
- yield* renderer.emitSuccess(opts.silent ? { ok: true } : res);
19
- if (opts.open) {
20
- const id = extractId(res);
21
- if (id)
22
- yield* openAdminEdit('posts', id);
23
- }
24
- })).pipe(Command.withDescription('create a post'));
@@ -1,8 +0,0 @@
1
- import { Command } from '@effect/cli';
2
- import { Api } from '../../services/Api';
3
- import { Renderer } from '../../services/Renderer';
4
- import { Resolver } from '../../services/Resolver';
5
- export declare const del: Command.Command<"delete", Api | Renderer | Resolver, import("../../services/Api").ApiError, {
6
- readonly slugOrId: string;
7
- readonly force: boolean;
8
- }>;
@@ -1,21 +0,0 @@
1
- import { Args, Command, Options } from '@effect/cli';
2
- import { Effect } from 'effect';
3
- import { ValidationFailed } from '../../domain/errors';
4
- import { Api } from '../../services/Api';
5
- import { Renderer } from '../../services/Renderer';
6
- import { Resolver } from '../../services/Resolver';
7
- const slugOrId = Args.text({ name: 'slugOrId' });
8
- const force = Options.boolean('force').pipe(Options.withDescription('skip confirmation'));
9
- export const del = Command.make('delete', { slugOrId, force }, ({ slugOrId, force }) => Effect.gen(function* () {
10
- if (!force && !process.stdin.isTTY) {
11
- return yield* Effect.fail(new ValidationFailed({
12
- message: 'refusing to delete without --force in non-TTY context',
13
- }));
14
- }
15
- const resolver = yield* Resolver;
16
- const api = yield* Api;
17
- const renderer = yield* Renderer;
18
- const id = yield* resolver.resolvePostId(slugOrId);
19
- yield* api.request(`/posts/${id}`, { method: 'DELETE' });
20
- yield* renderer.emitSuccess({ deleted: id });
21
- })).pipe(Command.withDescription('delete a post'));
@@ -1,26 +0,0 @@
1
- import { Command } from '@effect/cli';
2
- import { ValidationXml } from '../../domain/errors';
3
- import { Api } from '../../services/Api';
4
- import { Editor } from '../../services/Editor';
5
- import { Lexical } from '../../services/Lexical';
6
- import { Renderer } from '../../services/Renderer';
7
- import { Resolver } from '../../services/Resolver';
8
- export declare const edit: Command.Command<"edit", import("@effect/platform/Path").Path | import("@effect/platform/FileSystem").FileSystem | Api | Renderer | Resolver | Editor | Lexical, ValidationXml | import("../../services/Api").ApiError, {
9
- readonly title: import("effect/Option").Option<string>;
10
- readonly slug: import("effect/Option").Option<string>;
11
- readonly category: import("effect/Option").Option<string>;
12
- readonly content: import("effect/Option").Option<string>;
13
- readonly format: import("effect/Option").Option<"markdown" | "lexical">;
14
- readonly summary: import("effect/Option").Option<string>;
15
- readonly state: import("effect/Option").Option<"draft" | "publish">;
16
- readonly tags: import("effect/Option").Option<string>;
17
- readonly copyright: import("effect/Option").Option<string>;
18
- readonly pin: import("effect/Option").Option<string>;
19
- readonly pinOrder: import("effect/Option").Option<number>;
20
- readonly related: import("effect/Option").Option<string>;
21
- readonly meta: import("effect/Option").Option<string>;
22
- readonly file: import("effect/Option").Option<string>;
23
- readonly open: boolean;
24
- readonly silent: boolean;
25
- readonly slugOrId: string;
26
- }>;
@@ -1,115 +0,0 @@
1
- import { Args, Command } from '@effect/cli';
2
- import { Effect } from 'effect';
3
- import { openAdminEdit } from '../../domain/admin-link';
4
- import { coerceMeta, parseEnvelope } from '../../domain/envelope';
5
- import { ValidationXml } from '../../domain/errors';
6
- import { buildPostPayload } from '../../domain/payload';
7
- import { Api } from '../../services/Api';
8
- import { Editor } from '../../services/Editor';
9
- import { Lexical } from '../../services/Lexical';
10
- import { Renderer } from '../../services/Renderer';
11
- import { Resolver } from '../../services/Resolver';
12
- import { postWriteOptions, resolveCategoryRefs, toPostFlagInputs, } from './_flags';
13
- const slugOrId = Args.text({ name: 'slugOrId' });
14
- const escapeXml = (s) => s.replaceAll('&', '&amp;').replaceAll('<', '&lt;').replaceAll('>', '&gt;');
15
- const materializeForEditor = (slugOrId) => Effect.gen(function* () {
16
- const api = yield* Api;
17
- const resolver = yield* Resolver;
18
- const lexical = yield* Lexical;
19
- const path = yield* resolver.resolvePostReadPath(slugOrId);
20
- const post = (yield* api.request(path, {
21
- query: { prefer: 'lexical' },
22
- }));
23
- const isLexical = post.contentFormat === 'lexical';
24
- let innerXml;
25
- if (isLexical && post.content) {
26
- const state = JSON.parse(post.content);
27
- innerXml = yield* lexical.payloadToLitexml(state);
28
- }
29
- else {
30
- innerXml = post.content ?? '';
31
- }
32
- const tagsXml = (post.tags ?? [])
33
- .map((t) => ` <tag>${escapeXml(t)}</tag>`)
34
- .join('\n');
35
- return `<mxpost>
36
- <meta>
37
- <title>${escapeXml(post.title ?? '')}</title>
38
- <slug>${escapeXml(post.slug ?? '')}</slug>
39
- <state>${post.isPublished ? 'publish' : 'draft'}</state>
40
- ${post.summary ? `<summary>${escapeXml(post.summary)}</summary>` : ''}
41
- ${tagsXml ? `<tags>\n${tagsXml}\n </tags>` : ''}
42
- </meta>
43
- <content>
44
- ${innerXml}
45
- </content>
46
- </mxpost>
47
- `;
48
- });
49
- const metaFromEnvelope = (meta) => {
50
- const overlay = {};
51
- const m = coerceMeta(meta);
52
- if (m.title !== undefined)
53
- overlay.title = m.title;
54
- if (m.slug !== undefined)
55
- overlay.slug = m.slug;
56
- if (m.summary !== undefined)
57
- overlay.summary = m.summary;
58
- if (m.state !== undefined)
59
- overlay.isPublished = m.state === 'publish';
60
- if (m.tags !== undefined)
61
- overlay.tags = m.tags;
62
- return overlay;
63
- };
64
- export const edit = Command.make('edit', { slugOrId, ...postWriteOptions }, ({ slugOrId, ...rest }) => Effect.gen(function* () {
65
- const flags = toPostFlagInputs(rest);
66
- const api = yield* Api;
67
- const editor = yield* Editor;
68
- const renderer = yield* Renderer;
69
- const resolver = yield* Resolver;
70
- // Editor round-trip path: no --file and no --content → spawn $EDITOR.
71
- if (!flags.file && flags.content === undefined) {
72
- const xml = yield* materializeForEditor(slugOrId);
73
- const next = yield* editor.openEditor({
74
- filename: `post-${slugOrId}.xml`,
75
- initialContent: xml,
76
- });
77
- if (next.trim() === xml.trim()) {
78
- yield* renderer.emitInfo('no changes');
79
- return;
80
- }
81
- const parsed = yield* Effect.try({
82
- try: () => parseEnvelope(next, 'post'),
83
- catch: (err) => err instanceof ValidationXml
84
- ? err
85
- : new ValidationXml({ message: String(err), cause: err }),
86
- });
87
- const built = yield* buildPostPayload({
88
- ...flags,
89
- content: parsed.contentXml,
90
- format: flags.format ?? 'lexical',
91
- });
92
- const payload = { ...built.payload, ...metaFromEnvelope(parsed.meta) };
93
- const resolved = yield* resolveCategoryRefs(payload);
94
- const id = yield* resolver.resolvePostId(slugOrId);
95
- const res = yield* api.request(`/posts/${id}`, {
96
- method: 'PUT',
97
- body: resolved,
98
- });
99
- yield* renderer.emitSuccess(rest.silent ? { ok: true } : res);
100
- if (rest.open)
101
- yield* openAdminEdit('posts', id);
102
- return;
103
- }
104
- // Non-interactive path: build from flags / file.
105
- const built = yield* buildPostPayload(flags);
106
- const resolved = yield* resolveCategoryRefs(built.payload);
107
- const id = yield* resolver.resolvePostId(slugOrId);
108
- const res = yield* api.request(`/posts/${id}`, {
109
- method: 'PUT',
110
- body: resolved,
111
- });
112
- yield* renderer.emitSuccess(rest.silent ? { ok: true } : res);
113
- if (rest.open)
114
- yield* openAdminEdit('posts', id);
115
- })).pipe(Command.withDescription('edit a post via $EDITOR or flags'));
@@ -1,7 +0,0 @@
1
- import { Command } from '@effect/cli';
2
- import { Api } from '../../services/Api';
3
- import { Renderer } from '../../services/Renderer';
4
- import { Resolver } from '../../services/Resolver';
5
- export declare const get: Command.Command<"get", Api | Renderer | Resolver, import("../../services/Api").ApiError, {
6
- readonly slugOrId: string;
7
- }>;
@@ -1,15 +0,0 @@
1
- import { Args, Command } from '@effect/cli';
2
- import { Effect } from 'effect';
3
- import { Api } from '../../services/Api';
4
- import { Renderer } from '../../services/Renderer';
5
- import { Resolver } from '../../services/Resolver';
6
- import { postView } from './view';
7
- const slugOrId = Args.text({ name: 'slugOrId' });
8
- export const get = Command.make('get', { slugOrId }, ({ slugOrId }) => Effect.gen(function* () {
9
- const api = yield* Api;
10
- const renderer = yield* Renderer;
11
- const resolver = yield* Resolver;
12
- const path = yield* resolver.resolvePostReadPath(slugOrId);
13
- const res = yield* api.request(path, { query: { prefer: 'lexical' } });
14
- yield* renderer.emit(postView, res);
15
- })).pipe(Command.withDescription('get a post by slug or id'));
@@ -1,91 +0,0 @@
1
- import { Command } from '@effect/cli';
2
- export declare const postCmd: Command.Command<"post", import("@effect/platform/Path").Path | import("@effect/platform/FileSystem").FileSystem | import("../../services/Api").Api | import("../ai/_poll").Renderer | import("../../services/Resolver").Resolver | import("../../services/Editor").Editor | import("../../services/Lexical").Lexical, import("../../domain/errors").ValidationXml | import("../../services/Api").ApiError, {
3
- readonly subcommand: import("effect/Option").Option<{
4
- readonly title: import("effect/Option").Option<string>;
5
- readonly slug: import("effect/Option").Option<string>;
6
- readonly category: import("effect/Option").Option<string>;
7
- readonly content: import("effect/Option").Option<string>;
8
- readonly format: import("effect/Option").Option<"markdown" | "lexical">;
9
- readonly summary: import("effect/Option").Option<string>;
10
- readonly state: import("effect/Option").Option<"draft" | "publish">;
11
- readonly tags: import("effect/Option").Option<string>;
12
- readonly copyright: import("effect/Option").Option<string>;
13
- readonly pin: import("effect/Option").Option<string>;
14
- readonly pinOrder: import("effect/Option").Option<number>;
15
- readonly related: import("effect/Option").Option<string>;
16
- readonly meta: import("effect/Option").Option<string>;
17
- readonly file: import("effect/Option").Option<string>;
18
- readonly open: boolean;
19
- readonly silent: boolean;
20
- } | {
21
- readonly slugOrId: string;
22
- } | {
23
- readonly slugOrId: string;
24
- readonly force: boolean;
25
- } | {
26
- readonly title: import("effect/Option").Option<string>;
27
- readonly slug: import("effect/Option").Option<string>;
28
- readonly category: import("effect/Option").Option<string>;
29
- readonly content: import("effect/Option").Option<string>;
30
- readonly format: import("effect/Option").Option<"markdown" | "lexical">;
31
- readonly summary: import("effect/Option").Option<string>;
32
- readonly state: import("effect/Option").Option<"draft" | "publish">;
33
- readonly tags: import("effect/Option").Option<string>;
34
- readonly copyright: import("effect/Option").Option<string>;
35
- readonly pin: import("effect/Option").Option<string>;
36
- readonly pinOrder: import("effect/Option").Option<number>;
37
- readonly related: import("effect/Option").Option<string>;
38
- readonly meta: import("effect/Option").Option<string>;
39
- readonly file: import("effect/Option").Option<string>;
40
- readonly open: boolean;
41
- readonly silent: boolean;
42
- readonly slugOrId: string;
43
- } | {
44
- readonly slugOrId: string;
45
- } | {
46
- readonly page: import("effect/Option").Option<number>;
47
- readonly size: import("effect/Option").Option<number>;
48
- readonly state: import("effect/Option").Option<"draft" | "publish">;
49
- readonly sort: import("effect/Option").Option<"created" | "modified">;
50
- } | {
51
- readonly slugOrId: string;
52
- } | {
53
- readonly title: import("effect/Option").Option<string>;
54
- readonly slug: import("effect/Option").Option<string>;
55
- readonly category: import("effect/Option").Option<string>;
56
- readonly content: import("effect/Option").Option<string>;
57
- readonly format: import("effect/Option").Option<"markdown" | "lexical">;
58
- readonly summary: import("effect/Option").Option<string>;
59
- readonly state: import("effect/Option").Option<"draft" | "publish">;
60
- readonly tags: import("effect/Option").Option<string>;
61
- readonly copyright: import("effect/Option").Option<string>;
62
- readonly pin: import("effect/Option").Option<string>;
63
- readonly pinOrder: import("effect/Option").Option<number>;
64
- readonly related: import("effect/Option").Option<string>;
65
- readonly meta: import("effect/Option").Option<string>;
66
- readonly file: import("effect/Option").Option<string>;
67
- readonly open: boolean;
68
- readonly silent: boolean;
69
- readonly slugOrId: string;
70
- } | {
71
- readonly slugOrId: string;
72
- } | {
73
- readonly title: import("effect/Option").Option<string>;
74
- readonly slug: import("effect/Option").Option<string>;
75
- readonly category: import("effect/Option").Option<string>;
76
- readonly content: import("effect/Option").Option<string>;
77
- readonly format: import("effect/Option").Option<"markdown" | "lexical">;
78
- readonly summary: import("effect/Option").Option<string>;
79
- readonly state: import("effect/Option").Option<"draft" | "publish">;
80
- readonly tags: import("effect/Option").Option<string>;
81
- readonly copyright: import("effect/Option").Option<string>;
82
- readonly pin: import("effect/Option").Option<string>;
83
- readonly pinOrder: import("effect/Option").Option<number>;
84
- readonly related: import("effect/Option").Option<string>;
85
- readonly meta: import("effect/Option").Option<string>;
86
- readonly file: import("effect/Option").Option<string>;
87
- readonly open: boolean;
88
- readonly silent: boolean;
89
- readonly slugOrId: string;
90
- }>;
91
- }>;
@@ -1,73 +0,0 @@
1
- import { Command } from '@effect/cli';
2
- import { registerCommandHelp } from '../help/registry';
3
- import { apply } from './apply';
4
- import { create } from './create';
5
- import { del } from './delete';
6
- import { edit } from './edit';
7
- import { get } from './get';
8
- import { list } from './list';
9
- import { publish } from './publish';
10
- import { stage } from './stage';
11
- import { unpublish } from './unpublish';
12
- import { update } from './update';
13
- const help = registerCommandHelp({
14
- name: 'post',
15
- description: 'manage posts',
16
- skillChapter: 'commands-post',
17
- verbs: [
18
- {
19
- name: 'list',
20
- args: ['[--page <n>]', '[--size <n>]', '[--state <s>]', '[--sort <s>]'],
21
- description: 'list posts',
22
- },
23
- { name: 'get', args: ['<slugOrId>'], description: 'show a single post' },
24
- {
25
- name: 'create',
26
- args: ['[--title ...]', '[--file <path>]', '...'],
27
- description: 'create a post',
28
- },
29
- {
30
- name: 'edit',
31
- args: ['<slugOrId>', '[--file <path>]', '...'],
32
- description: 'edit a post via $EDITOR or flags',
33
- },
34
- {
35
- name: 'update',
36
- args: ['<slugOrId>', '[--title ...]', '...'],
37
- description: 'partially update a post',
38
- },
39
- {
40
- name: 'delete',
41
- args: ['<slugOrId>', '[--force]'],
42
- description: 'delete a post',
43
- },
44
- { name: 'publish', args: ['<slugOrId>'], description: 'publish a post' },
45
- {
46
- name: 'unpublish',
47
- args: ['<slugOrId>'],
48
- description: 'unpublish a post',
49
- },
50
- {
51
- name: 'stage',
52
- args: ['<slugOrId>', '[--file <path>]', '...'],
53
- description: 'stage changes as a draft; the live post stays untouched',
54
- },
55
- {
56
- name: 'apply',
57
- args: ['<slugOrId>'],
58
- description: 'apply the staged draft to the live post',
59
- },
60
- ],
61
- });
62
- export const postCmd = Command.make('post').pipe(Command.withDescription(help.description), Command.withSubcommands([
63
- list,
64
- get,
65
- create,
66
- edit,
67
- update,
68
- del,
69
- publish,
70
- unpublish,
71
- stage,
72
- apply,
73
- ]));
@@ -1,10 +0,0 @@
1
- import { Command } from '@effect/cli';
2
- import { Option } from 'effect';
3
- import { Api } from '../../services/Api';
4
- import { Renderer } from '../../services/Renderer';
5
- export declare const list: Command.Command<"list", Api | Renderer, import("../../services/Api").ApiError, {
6
- readonly page: Option.Option<number>;
7
- readonly size: Option.Option<number>;
8
- readonly state: Option.Option<"draft" | "publish">;
9
- readonly sort: Option.Option<"created" | "modified">;
10
- }>;
@@ -1,23 +0,0 @@
1
- import { Command, Options } from '@effect/cli';
2
- import { Effect, Option } from 'effect';
3
- import { Api } from '../../services/Api';
4
- import { Renderer } from '../../services/Renderer';
5
- import { postListView } from './view';
6
- const page = Options.integer('page').pipe(Options.optional);
7
- const size = Options.integer('size').pipe(Options.optional);
8
- const state = Options.choice('state', ['publish', 'draft']).pipe(Options.optional);
9
- const sort = Options.choice('sort', ['created', 'modified']).pipe(Options.optional);
10
- const unwrap = (value) => Option.getOrUndefined(value);
11
- export const list = Command.make('list', { page, size, state, sort }, ({ page, size, state, sort }) => Effect.gen(function* () {
12
- const api = yield* Api;
13
- const renderer = yield* Renderer;
14
- const res = yield* api.request('/posts', {
15
- query: {
16
- page: unwrap(page),
17
- size: unwrap(size),
18
- state: unwrap(state),
19
- sortBy: unwrap(sort),
20
- },
21
- });
22
- yield* renderer.emit(postListView, res);
23
- })).pipe(Command.withDescription('list posts'));
@@ -1,7 +0,0 @@
1
- import { Command } from '@effect/cli';
2
- import { Api } from '../../services/Api';
3
- import { Renderer } from '../../services/Renderer';
4
- import { Resolver } from '../../services/Resolver';
5
- export declare const publish: Command.Command<"publish", Api | Renderer | Resolver, import("../../services/Api").ApiError, {
6
- readonly slugOrId: string;
7
- }>;
@@ -1,17 +0,0 @@
1
- import { Args, Command } from '@effect/cli';
2
- import { Effect } from 'effect';
3
- import { Api } from '../../services/Api';
4
- import { Renderer } from '../../services/Renderer';
5
- import { Resolver } from '../../services/Resolver';
6
- const slugOrId = Args.text({ name: 'slugOrId' });
7
- export const publish = Command.make('publish', { slugOrId }, ({ slugOrId }) => Effect.gen(function* () {
8
- const resolver = yield* Resolver;
9
- const api = yield* Api;
10
- const renderer = yield* Renderer;
11
- const id = yield* resolver.resolvePostId(slugOrId);
12
- const res = yield* api.request(`/posts/${id}`, {
13
- method: 'PATCH',
14
- body: { isPublished: true },
15
- });
16
- yield* renderer.emitSuccess(res);
17
- })).pipe(Command.withDescription('publish a post'));