@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,23 +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 stage: Command.Command<"stage", import("@effect/platform/Path").Path | import("@effect/platform/FileSystem").FileSystem | Api | Renderer | Resolver | import("../../services/Lexical").Lexical, import("../../domain/errors").ValidationXml | import("../../services/Api").ApiError, {
6
- readonly title: import("effect/Option").Option<string>;
7
- readonly slug: import("effect/Option").Option<string>;
8
- readonly category: import("effect/Option").Option<string>;
9
- readonly content: import("effect/Option").Option<string>;
10
- readonly format: import("effect/Option").Option<"markdown" | "lexical">;
11
- readonly summary: import("effect/Option").Option<string>;
12
- readonly state: import("effect/Option").Option<"draft" | "publish">;
13
- readonly tags: import("effect/Option").Option<string>;
14
- readonly copyright: import("effect/Option").Option<string>;
15
- readonly pin: import("effect/Option").Option<string>;
16
- readonly pinOrder: import("effect/Option").Option<number>;
17
- readonly related: import("effect/Option").Option<string>;
18
- readonly meta: import("effect/Option").Option<string>;
19
- readonly file: import("effect/Option").Option<string>;
20
- readonly open: boolean;
21
- readonly silent: boolean;
22
- readonly slugOrId: string;
23
- }>;
@@ -1,55 +0,0 @@
1
- import { Args, Command } from '@effect/cli';
2
- import { Effect } from 'effect';
3
- import { ValidationFailed } from '../../domain/errors';
4
- import { buildPostPayload } from '../../domain/payload';
5
- import { Api } from '../../services/Api';
6
- import { Renderer } from '../../services/Renderer';
7
- import { Resolver } from '../../services/Resolver';
8
- import { postWriteOptions, resolveCategoryRefs, toPostFlagInputs, } from './_flags';
9
- const slugOrId = Args.text({ name: 'slugOrId' });
10
- /** Draft-native fields; everything else rides along in `typeSpecificData`. */
11
- const DRAFT_CORE_KEYS = new Set([
12
- 'title',
13
- 'text',
14
- 'content',
15
- 'contentFormat',
16
- 'meta',
17
- ]);
18
- export const stage = Command.make('stage', { slugOrId, ...postWriteOptions }, ({ slugOrId, ...rest }) => Effect.gen(function* () {
19
- const flags = toPostFlagInputs(rest);
20
- const built = yield* buildPostPayload(flags);
21
- const payload = yield* resolveCategoryRefs({ ...built.payload });
22
- // Publish state never travels through staging: it would otherwise ride
23
- // into `typeSpecificData` and unpublish the live post on `post apply`.
24
- delete payload.isPublished;
25
- // `contentFormat` is always defaulted by the payload builder; require
26
- // some actual change beyond it so an empty stage fails loudly.
27
- const changedKeys = Object.keys(payload).filter((k) => k !== 'contentFormat');
28
- if (changedKeys.length === 0) {
29
- return yield* Effect.fail(new ValidationFailed({
30
- message: 'nothing to stage: provide --file or content/meta flags',
31
- }));
32
- }
33
- const draftBody = {};
34
- const typeSpecificData = {};
35
- for (const [key, value] of Object.entries(payload)) {
36
- if (DRAFT_CORE_KEYS.has(key))
37
- draftBody[key] = value;
38
- else
39
- typeSpecificData[key] = value;
40
- }
41
- if (Object.keys(typeSpecificData).length > 0) {
42
- draftBody.typeSpecificData = typeSpecificData;
43
- }
44
- const resolver = yield* Resolver;
45
- const id = yield* resolver.resolvePostId(slugOrId);
46
- const api = yield* Api;
47
- const renderer = yield* Renderer;
48
- // POST /drafts upserts: the server updates the existing draft for this
49
- // ref (one draft per post, with internal version history).
50
- const res = yield* api.request(`/drafts`, {
51
- method: 'POST',
52
- body: { refType: 'post', refId: id, ...draftBody },
53
- });
54
- yield* renderer.emitSuccess(rest.silent ? { ok: true } : res);
55
- })).pipe(Command.withDescription('stage changes as a draft attached to a published post (the live post is untouched until `post apply`)'));
@@ -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 unpublish: Command.Command<"unpublish", 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 unpublish = Command.make('unpublish', { 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: false },
15
- });
16
- yield* renderer.emitSuccess(res);
17
- })).pipe(Command.withDescription('unpublish a post'));
@@ -1,23 +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 update: Command.Command<"update", import("@effect/platform/Path").Path | import("@effect/platform/FileSystem").FileSystem | Api | Renderer | Resolver | import("../../services/Lexical").Lexical, import("../../domain/errors").ValidationXml | import("../../services/Api").ApiError, {
6
- readonly title: import("effect/Option").Option<string>;
7
- readonly slug: import("effect/Option").Option<string>;
8
- readonly category: import("effect/Option").Option<string>;
9
- readonly content: import("effect/Option").Option<string>;
10
- readonly format: import("effect/Option").Option<"markdown" | "lexical">;
11
- readonly summary: import("effect/Option").Option<string>;
12
- readonly state: import("effect/Option").Option<"draft" | "publish">;
13
- readonly tags: import("effect/Option").Option<string>;
14
- readonly copyright: import("effect/Option").Option<string>;
15
- readonly pin: import("effect/Option").Option<string>;
16
- readonly pinOrder: import("effect/Option").Option<number>;
17
- readonly related: import("effect/Option").Option<string>;
18
- readonly meta: import("effect/Option").Option<string>;
19
- readonly file: import("effect/Option").Option<string>;
20
- readonly open: boolean;
21
- readonly silent: boolean;
22
- readonly slugOrId: string;
23
- }>;
@@ -1,38 +0,0 @@
1
- import { Args, 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 { Resolver } from '../../services/Resolver';
8
- import { postWriteOptions, resolveCategoryRefs, toPostFlagInputs, } from './_flags';
9
- const slugOrId = Args.text({ name: 'slugOrId' });
10
- export const update = Command.make('update', { slugOrId, ...postWriteOptions }, ({ slugOrId, ...rest }) => Effect.gen(function* () {
11
- const flags = toPostFlagInputs(rest);
12
- const built = yield* buildPostPayload(flags);
13
- const payload = { ...built.payload };
14
- if (flags.content === undefined && !flags.file) {
15
- delete payload.content;
16
- delete payload.text;
17
- delete payload.contentFormat;
18
- }
19
- // Envelope <state> must not flip publish state on update: envelopes are
20
- // routinely reused from `post create` (where <state>draft</state> is the
21
- // norm), and a published post silently reverting to draft makes it
22
- // vanish for readers. Only the explicit --state flag (or the dedicated
23
- // publish/unpublish commands) changes publish state.
24
- if (flags.state === undefined)
25
- delete payload.isPublished;
26
- const resolved = yield* resolveCategoryRefs(payload);
27
- const resolver = yield* Resolver;
28
- const id = yield* resolver.resolvePostId(slugOrId);
29
- const api = yield* Api;
30
- const renderer = yield* Renderer;
31
- const res = yield* api.request(`/posts/${id}`, {
32
- method: 'PATCH',
33
- body: resolved,
34
- });
35
- yield* renderer.emitSuccess(rest.silent ? { ok: true } : res);
36
- if (rest.open)
37
- yield* openAdminEdit('posts', id);
38
- })).pipe(Command.withDescription('partially update a post'));
@@ -1,3 +0,0 @@
1
- import type { View } from '../../services/Renderer/view';
2
- export declare const postView: View<unknown>;
3
- export declare const postListView: View<unknown>;
@@ -1,150 +0,0 @@
1
- import { asRecord, contentFormat, first, firstString, formatScalar, pickArticleTranslationMeta, publishState, relationLabel, relationSlugOrLabel, renderContent, unwrapDocument, } from '../../services/Renderer/content';
2
- import { tryFormatTimestamp } from '../../services/Renderer/datetime';
3
- import { frontmatter, renderEnvelope, renderMetadataBlock } from '../render';
4
- const normalize = (data) => asRecord(unwrapDocument(data));
5
- const collectFields = (doc, articleMeta) => {
6
- const meta = articleMeta ?? {};
7
- const fields = [
8
- ['id', first(doc, 'id')],
9
- ['slug', first(doc, 'slug')],
10
- ['state', publishState(doc)],
11
- ['category', relationLabel(first(doc, 'category'))],
12
- ['tags', first(doc, 'tags')],
13
- ['pin', first(doc, 'pin')],
14
- ['created_at', first(doc, 'created_at', 'createdAt')],
15
- ['modified_at', first(doc, 'modified_at', 'modifiedAt')],
16
- [
17
- 'source_lang',
18
- first(doc, 'source_lang', 'sourceLang') ??
19
- first(meta, 'source_lang', 'sourceLang'),
20
- ],
21
- [
22
- 'translated',
23
- first(doc, 'is_translated', 'isTranslated') ??
24
- first(meta, 'is_translated', 'isTranslated'),
25
- ],
26
- ];
27
- return fields.filter(([key, value]) => value !== undefined &&
28
- value !== null &&
29
- value !== '' &&
30
- !(key === 'translated' && value === false));
31
- };
32
- const collectEnvelopeMeta = (doc) => [
33
- ['title', first(doc, 'title')],
34
- ['slug', first(doc, 'slug')],
35
- ['category', relationSlugOrLabel(first(doc, 'category'))],
36
- ['state', publishState(doc) === 'published' ? 'publish' : 'draft'],
37
- ['summary', first(doc, 'summary')],
38
- ['tags', first(doc, 'tags')],
39
- ['format', contentFormat(doc)],
40
- ];
41
- const pickSummary = (doc) => {
42
- const summary = firstString(doc, 'summary', 'subtitle');
43
- const subtitle = firstString(doc, 'subtitle');
44
- return summary && summary !== subtitle ? summary : undefined;
45
- };
46
- export const postView = {
47
- kind: 'post',
48
- modes: new Set(['readable', 'llm', 'xml']),
49
- readable: (data, ctx) => {
50
- const doc = normalize(data);
51
- const articleMeta = pickArticleTranslationMeta(data, first(doc, 'id'));
52
- const content = renderContent(doc);
53
- const title = firstString(doc, 'title');
54
- return renderMetadataBlock({
55
- title: title || undefined,
56
- kind: 'post',
57
- fields: collectFields(doc, articleMeta),
58
- summary: pickSummary(doc),
59
- body: content.body || undefined,
60
- bodyFormat: content.format,
61
- }, ctx);
62
- },
63
- llm: (data) => {
64
- const doc = normalize(data);
65
- const articleMeta = pickArticleTranslationMeta(data, first(doc, 'id'));
66
- const content = renderContent(doc, true);
67
- const title = firstString(doc, 'title');
68
- const fm = frontmatter({
69
- title: title || undefined,
70
- fields: collectFields(doc, articleMeta),
71
- summary: pickSummary(doc),
72
- });
73
- return content.body ? `${fm}\n\n${content.body}` : fm;
74
- },
75
- xml: (data) => {
76
- const doc = normalize(data);
77
- const content = renderContent(doc);
78
- return renderEnvelope({
79
- root: 'mxpost',
80
- meta: collectEnvelopeMeta(doc),
81
- content: content.body,
82
- });
83
- },
84
- };
85
- const collectListItemFields = (doc, articleMeta) => {
86
- const meta = articleMeta ?? {};
87
- return [
88
- ['id', first(doc, 'id')],
89
- ['title', first(doc, 'title')],
90
- ['slug', first(doc, 'slug')],
91
- ['state', publishState(doc)],
92
- ['category', relationLabel(first(doc, 'category'))],
93
- ['tags', first(doc, 'tags')],
94
- ['summary', first(doc, 'summary')],
95
- ['created_at', first(doc, 'created_at', 'createdAt')],
96
- ['modified_at', first(doc, 'modified_at', 'modifiedAt')],
97
- [
98
- 'source_lang',
99
- first(doc, 'source_lang', 'sourceLang') ??
100
- first(meta, 'source_lang', 'sourceLang'),
101
- ],
102
- [
103
- 'translated',
104
- first(doc, 'is_translated', 'isTranslated') ??
105
- first(meta, 'is_translated', 'isTranslated'),
106
- ],
107
- ];
108
- };
109
- const renderPostListReadable = (data) => {
110
- const payload = asRecord(data);
111
- const rows = Array.isArray(payload.data)
112
- ? payload.data
113
- : Array.isArray(data)
114
- ? data
115
- : [];
116
- const meta = asRecord(first(payload, 'meta'));
117
- const pagination = asRecord(first(meta, 'pagination'));
118
- const lines = ['posts'];
119
- if (rows.length > 0)
120
- lines.push(`count: ${rows.length}`);
121
- else
122
- lines.push('count: 0');
123
- const page = first(pagination, 'page', 'currentPage');
124
- const size = first(pagination, 'size', 'pageSize');
125
- const total = first(pagination, 'total', 'totalCount', 'total_count');
126
- if (page !== undefined)
127
- lines.push(`page: ${formatScalar(page)}`);
128
- if (size !== undefined)
129
- lines.push(`size: ${formatScalar(size)}`);
130
- if (total !== undefined)
131
- lines.push(`total: ${formatScalar(total)}`);
132
- rows.forEach((row, index) => {
133
- const doc = asRecord(row);
134
- const articleMeta = pickArticleTranslationMeta(data, first(doc, 'id'));
135
- lines.push('', `post ${index + 1}:`);
136
- const fields = collectListItemFields(doc, articleMeta);
137
- for (const [key, value] of fields) {
138
- if (value === undefined || value === null || value === '')
139
- continue;
140
- const rendered = tryFormatTimestamp(value, { style: 'rel' }) ?? formatScalar(value);
141
- lines.push(`${key}: ${rendered}`);
142
- }
143
- });
144
- return lines.join('\n');
145
- };
146
- export const postListView = {
147
- kind: 'post-list',
148
- modes: new Set(['readable', 'llm']),
149
- readable: (data) => renderPostListReadable(data),
150
- };
@@ -1,13 +0,0 @@
1
- import { Command } from '@effect/cli';
2
- import { Option } from 'effect';
3
- import { Generic, ValidationXml } from '../../domain/errors';
4
- import { Editor } from '../../services/Editor';
5
- import { Renderer } from '../../services/Renderer';
6
- export declare const previewCmd: Command.Command<"preview", Renderer | Editor, import("../../domain/errors").ValidationFailed | ValidationXml | Generic, {
7
- readonly file: Option.Option<string>;
8
- readonly theme: Option.Option<"light" | "dark">;
9
- readonly variant: Option.Option<"note" | "comment" | "article">;
10
- readonly save: Option.Option<string>;
11
- readonly print: Option.Option<boolean>;
12
- readonly open: Option.Option<boolean>;
13
- }>;
@@ -1,226 +0,0 @@
1
- import { spawn } from 'node:child_process';
2
- import { existsSync } from 'node:fs';
3
- import { createRequire } from 'node:module';
4
- import { dirname, join } from 'node:path';
5
- import { fileURLToPath } from 'node:url';
6
- import { Args, Command, Options } from '@effect/cli';
7
- import { Effect, Option } from 'effect';
8
- import { parseEnvelope } from '../../domain/envelope';
9
- import { Generic, ValidationXml } from '../../domain/errors';
10
- import { Editor } from '../../services/Editor';
11
- import { Renderer } from '../../services/Renderer';
12
- import { registerCommandHelp } from '../help/registry';
13
- registerCommandHelp({
14
- name: 'preview',
15
- description: 'render a LiteXML fragment or <mxpost>/<mxnote> envelope to HTML and open it in a browser',
16
- isLeaf: true,
17
- skillChapter: 'commands-preview',
18
- leafOptions: [
19
- {
20
- flag: '--theme <light|dark>',
21
- description: 'HTML theme; default: light',
22
- },
23
- {
24
- flag: '--variant <article|note|comment>',
25
- description: 'HTML variant; auto-detected from envelope root, default: article',
26
- },
27
- {
28
- flag: '--save <path>',
29
- description: 'write HTML to <path> instead of opening a browser',
30
- },
31
- {
32
- flag: '--print',
33
- description: 'emit HTML to stdout instead of opening a browser',
34
- },
35
- {
36
- flag: '--open',
37
- description: 'explicitly open the rendered HTML in a browser (default behavior)',
38
- },
39
- ],
40
- });
41
- const fileArg = Args.text({ name: 'file' }).pipe(Args.optional);
42
- const themeOpt = Options.choice('theme', ['light', 'dark']).pipe(Options.optional);
43
- const variantOpt = Options.choice('variant', [
44
- 'article',
45
- 'note',
46
- 'comment',
47
- ]).pipe(Options.optional);
48
- const saveOpt = Options.text('save').pipe(Options.optional);
49
- const printOpt = Options.boolean('print').pipe(Options.optional);
50
- const openOpt = Options.boolean('open').pipe(Options.optional);
51
- const requireFrom = createRequire(import.meta.url);
52
- const findCliPackageRoot = () => {
53
- let dir = dirname(fileURLToPath(import.meta.url));
54
- for (let i = 0; i < 8; i++) {
55
- if (!dir || dir === dirname(dir))
56
- break;
57
- try {
58
- const pkg = requireFrom(join(dir, 'package.json'));
59
- if (pkg.name === '@mx-space/cli')
60
- return dir;
61
- }
62
- catch {
63
- // keep walking
64
- }
65
- dir = dirname(dir);
66
- }
67
- return null;
68
- };
69
- const resolveBundledLitexmlBin = () => {
70
- const root = findCliPackageRoot();
71
- if (!root)
72
- return null;
73
- const candidate = join(root, 'dist', 'vendor', 'litexml', 'cli.mjs');
74
- return existsSync(candidate) ? candidate : null;
75
- };
76
- const isSourcePreviewModule = () => /[\\/]src[\\/]cli[\\/]preview[\\/]index\.ts$/.test(fileURLToPath(import.meta.url));
77
- const resolveLitexmlBin = () => {
78
- const bundled = resolveBundledLitexmlBin();
79
- if (!isSourcePreviewModule() && bundled)
80
- return bundled;
81
- try {
82
- return requireFrom.resolve('@haklex/rich-litexml-cli/dist/cli.mjs');
83
- }
84
- catch {
85
- // Older releases hide subpath imports behind exports; fall through to a
86
- // best-effort scan of node_modules alongside the cli package.
87
- }
88
- const here = import.meta.url;
89
- const filePath = here.startsWith('file://') ? here.slice(7) : here;
90
- let dir = filePath.slice(0, Math.max(0, filePath.lastIndexOf('/')));
91
- for (let i = 0; i < 8; i++) {
92
- const candidate = `${dir}/node_modules/@haklex/rich-litexml-cli/dist/cli.mjs`;
93
- if (existsSync(candidate))
94
- return candidate;
95
- const next = dir.slice(0, Math.max(0, dir.lastIndexOf('/')));
96
- if (next === dir)
97
- break;
98
- dir = next;
99
- }
100
- if (bundled)
101
- return bundled;
102
- throw new Generic({
103
- message: 'cannot resolve LiteXML preview renderer',
104
- hint: 'rebuild @mx-space/cli or reinstall mxs so the vendored preview renderer is present',
105
- });
106
- };
107
- const detectVariant = (body) => {
108
- const trimmed = body.trimStart();
109
- if (trimmed.startsWith('<mxpost')) {
110
- const parsed = parseEnvelope(trimmed, 'post');
111
- return { contentXml: parsed.contentXml, variant: 'article' };
112
- }
113
- if (trimmed.startsWith('<mxnote')) {
114
- const parsed = parseEnvelope(trimmed, 'note');
115
- return { contentXml: parsed.contentXml, variant: 'note' };
116
- }
117
- return { contentXml: body, variant: 'article' };
118
- };
119
- const spawnLitexml = (bin, input, args, capture) => Effect.tryPromise({
120
- try: () => new Promise((resolve, reject) => {
121
- const child = spawn(process.execPath, [bin, '-', ...args], {
122
- stdio: capture
123
- ? ['pipe', 'pipe', 'inherit']
124
- : ['pipe', 'inherit', 'inherit'],
125
- });
126
- const out = [];
127
- if (capture && child.stdout) {
128
- child.stdout.on('data', (chunk) => out.push(chunk));
129
- }
130
- child.on('error', reject);
131
- child.on('exit', (code) => {
132
- if (code === 0) {
133
- resolve(capture ? Buffer.concat(out).toString('utf8') : '');
134
- }
135
- else {
136
- reject(new Error(`litexml exited with code ${code}`));
137
- }
138
- });
139
- if (!child.stdin) {
140
- reject(new Error('failed to open litexml stdin'));
141
- return;
142
- }
143
- child.stdin.write(input);
144
- child.stdin.end();
145
- }),
146
- catch: (err) => new Generic({
147
- message: err instanceof Error ? err.message : String(err),
148
- cause: err,
149
- }),
150
- });
151
- export const previewCmd = Command.make('preview', {
152
- file: fileArg,
153
- theme: themeOpt,
154
- variant: variantOpt,
155
- save: saveOpt,
156
- print: printOpt,
157
- open: openOpt,
158
- }, ({ file, theme, variant, save, print, open: openFlag }) => Effect.gen(function* () {
159
- const editor = yield* Editor;
160
- const renderer = yield* Renderer;
161
- const filePath = Option.getOrUndefined(file);
162
- const stdinIsTty = Boolean(process.stdin.isTTY);
163
- const wantsStdin = filePath === undefined || filePath === '-' || filePath === '';
164
- if (wantsStdin && stdinIsTty) {
165
- return yield* Effect.fail(new ValidationXml({
166
- message: 'mxs preview requires a file path or piped LiteXML on stdin',
167
- hint: 'pass `mxs preview <file>` or pipe content: `cat post.xml | mxs preview -`',
168
- }));
169
- }
170
- const raw = yield* editor.readFileOrStdin(filePath);
171
- let body;
172
- let detectedVariant = 'article';
173
- try {
174
- const det = detectVariant(raw);
175
- body = det.contentXml;
176
- detectedVariant = det.variant;
177
- }
178
- catch (err) {
179
- return yield* Effect.fail(err instanceof ValidationXml
180
- ? err
181
- : new ValidationXml({
182
- message: err instanceof Error ? err.message : String(err),
183
- }));
184
- }
185
- // Wrap content in `<doc>` so haklex's deserializer recognises the root
186
- // as a block container and strips whitespace between block-level nodes.
187
- // Without this, the litexml preview client hydrates a Lexical state with
188
- // stray whitespace text nodes as direct children of root, which Lexical
189
- // rejects with error #282 ("invalid child of RootNode").
190
- if (!body.includes('<doc')) {
191
- body = `<doc>${body}</doc>`;
192
- }
193
- const resolvedVariant = Option.getOrElse(variant, () => detectedVariant);
194
- const resolvedTheme = Option.getOrUndefined(theme);
195
- const savePath = Option.getOrUndefined(save);
196
- const printMode = Option.getOrElse(print, () => false);
197
- const explicitOpen = Option.getOrElse(openFlag, () => false);
198
- if (printMode && savePath) {
199
- return yield* Effect.fail(new ValidationXml({
200
- message: '--print and --save are mutually exclusive',
201
- }));
202
- }
203
- if (explicitOpen && (printMode || savePath)) {
204
- return yield* Effect.fail(new ValidationXml({
205
- message: '--open conflicts with --print / --save',
206
- }));
207
- }
208
- const args = ['--format', 'html', '--variant', resolvedVariant];
209
- if (resolvedTheme)
210
- args.push('--theme', resolvedTheme);
211
- if (savePath)
212
- args.push('-o', savePath);
213
- else if (!printMode)
214
- args.push('--open');
215
- const bin = resolveLitexmlBin();
216
- const html = yield* spawnLitexml(bin, body, args, printMode);
217
- if (printMode) {
218
- process.stdout.write(html.endsWith('\n') ? html : `${html}\n`);
219
- }
220
- else if (savePath) {
221
- yield* renderer.emitInfo(`wrote HTML preview to ${savePath}`);
222
- }
223
- else {
224
- yield* renderer.emitInfo(`opened HTML preview (variant=${resolvedVariant})`);
225
- }
226
- }));
@@ -1,14 +0,0 @@
1
- import { Command } from '@effect/cli';
2
- export declare const profileCmd: Command.Command<"profile", import("@effect/platform/FileSystem").FileSystem | import("../../services/Config").Config | import("../ai/_poll").Renderer | import("../../services/Editor").Editor | import("../../services/Profile").Profile, import("../../domain/errors").ValidationFailed | import("../../domain/errors").ResourceNotFound | import("../../domain/errors").ProfileNotFound | import("../../domain/errors").ProfileNoneActive | import("../../domain/errors").ProfileInvalidName | import("../../domain/errors").Generic, {
3
- readonly subcommand: import("effect/Option").Option<{} | {
4
- readonly name: string;
5
- readonly production: import("effect/Option").Option<boolean>;
6
- } | {
7
- readonly name: string;
8
- readonly force: import("effect/Option").Option<boolean>;
9
- } | {
10
- readonly name: import("effect/Option").Option<string>;
11
- } | {
12
- readonly name: string;
13
- }>;
14
- }>;
@@ -1,36 +0,0 @@
1
- import { Command } from '@effect/cli';
2
- import { registerCommandHelp } from '../help/registry';
3
- import { ls } from './ls';
4
- import { mark } from './mark';
5
- import { rm } from './rm';
6
- import { show } from './show';
7
- import { use } from './use';
8
- const help = registerCommandHelp({
9
- name: 'profile',
10
- description: 'manage mxs profiles',
11
- skillChapter: 'commands-profile',
12
- verbs: [
13
- { name: 'ls', description: 'list all known profiles' },
14
- {
15
- name: 'show',
16
- args: ['[<name>]'],
17
- description: 'show one profile (defaults to active)',
18
- },
19
- {
20
- name: 'use',
21
- args: ['<name>'],
22
- description: 'switch the active profile',
23
- },
24
- {
25
- name: 'mark',
26
- args: ['<name>', '[--production|--no-production]'],
27
- description: 'flag a profile as production / non-production',
28
- },
29
- {
30
- name: 'rm',
31
- args: ['<name>', '[--force]'],
32
- description: 'delete a profile',
33
- },
34
- ],
35
- });
36
- export const profileCmd = Command.make('profile').pipe(Command.withDescription(help.description), Command.withSubcommands([ls, show, use, mark, rm]));
@@ -1,5 +0,0 @@
1
- import { Command } from '@effect/cli';
2
- import { Config } from '../../services/Config';
3
- import { Profile } from '../../services/Profile';
4
- import { Renderer } from '../../services/Renderer';
5
- export declare const ls: Command.Command<"ls", Config | Renderer | Profile, import("../../domain/errors").Generic, {}>;
@@ -1,26 +0,0 @@
1
- import { Command } from '@effect/cli';
2
- import { Effect } from 'effect';
3
- import { Config } from '../../services/Config';
4
- import { Profile } from '../../services/Profile';
5
- import { Renderer } from '../../services/Renderer';
6
- import { profileListView } from './view';
7
- export const ls = Command.make('ls', {}, () => Effect.gen(function* () {
8
- const profile = yield* Profile;
9
- const config = yield* Config;
10
- const renderer = yield* Renderer;
11
- const names = yield* profile.list;
12
- const current = yield* profile.current;
13
- const rows = [];
14
- for (const name of names) {
15
- const cfg = yield* config
16
- .readProfileConfig(name)
17
- .pipe(Effect.catchAll(() => Effect.succeed({})));
18
- rows.push({
19
- current: name === current ? '*' : '',
20
- name,
21
- api_url: cfg.api_url ?? '',
22
- production: cfg.production ? 'yes' : 'no',
23
- });
24
- }
25
- yield* renderer.emit(profileListView, rows);
26
- }));
@@ -1,9 +0,0 @@
1
- import { Command } from '@effect/cli';
2
- import { Option } from 'effect';
3
- import { ValidationFailed } from '../../domain/errors';
4
- import { Profile } from '../../services/Profile';
5
- import { Renderer } from '../../services/Renderer';
6
- export declare const mark: Command.Command<"mark", Renderer | Profile, ValidationFailed | import("../../domain/errors").ProfileNotFound | import("../../domain/errors").ProfileInvalidName | import("../../domain/errors").Generic, {
7
- readonly name: string;
8
- readonly production: Option.Option<boolean>;
9
- }>;