@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,177 +0,0 @@
1
- import { FileSystem } from '@effect/platform';
2
- import { Context, Effect, Layer } from 'effect';
3
- import { ConfigMigrationFailed } from '../domain/errors';
4
- import { Config, stripLegacyConfigFields } from './Config';
5
- // ---------------------------------------------------------------------------
6
- // Helpers
7
- // ---------------------------------------------------------------------------
8
- const emit = (report, line) => {
9
- if (report === null)
10
- return;
11
- if (report !== undefined) {
12
- report(line);
13
- return;
14
- }
15
- process.stderr.write(`${line}\n`);
16
- };
17
- const isNotFound = (err) => {
18
- if (typeof err === 'object' && err !== null) {
19
- const e = err;
20
- if (e._tag === 'SystemError' && e.reason === 'NotFound')
21
- return true;
22
- if (e.code === 'ENOENT')
23
- return true;
24
- }
25
- return false;
26
- };
27
- const fileExists = (fs, path) => fs.stat(path).pipe(Effect.map(() => true), Effect.catchAll((err) => isNotFound(err)
28
- ? Effect.succeed(false)
29
- : Effect.fail(new ConfigMigrationFailed({
30
- message: `failed to stat ${path}: ${String(err)}`,
31
- cause: err,
32
- }))));
33
- const dirExists = (fs, path) => fs.stat(path).pipe(Effect.map((info) => info.type === 'Directory'), Effect.catchAll((err) => isNotFound(err)
34
- ? Effect.succeed(false)
35
- : Effect.fail(new ConfigMigrationFailed({
36
- message: `failed to stat ${path}: ${String(err)}`,
37
- cause: err,
38
- }))));
39
- const tryUnlink = (fs, path, report) => fs.remove(path, { force: true }).pipe(Effect.catchAll((err) => {
40
- if (isNotFound(err))
41
- return Effect.void;
42
- emit(report, `mxs: warning: could not remove stale legacy file ${path}: ${err.message ?? String(err)}`);
43
- return Effect.void;
44
- }));
45
- // `@clack/prompts` exports a `cancel` symbol; matching by `typeof v === 'symbol'`
46
- // covers both the real symbol and test fixtures. Inlined here so the migration
47
- // service does not pull in `@clack/prompts` (the prompt callback is injected
48
- // at the call site).
49
- const isCancel = (v) => typeof v === 'symbol';
50
- // ---------------------------------------------------------------------------
51
- // Implementation
52
- // ---------------------------------------------------------------------------
53
- const make = Effect.gen(function* () {
54
- const fs = yield* FileSystem.FileSystem;
55
- const config = yield* Config;
56
- const runLegacyMigrationIfNeeded = (opts) => Effect.gen(function* () {
57
- const report = opts?.report;
58
- const legacyConfigPath = yield* config.getLegacyConfigPath;
59
- const legacyCredentialsPath = yield* config.getLegacyCredentialsPath;
60
- const profilesDir = yield* config.getProfilesDir;
61
- const hasConfig = yield* fileExists(fs, legacyConfigPath);
62
- const hasCreds = yield* fileExists(fs, legacyCredentialsPath);
63
- // Fast path: nothing to migrate.
64
- if (!hasConfig && !hasCreds)
65
- return null;
66
- const profilesExist = yield* dirExists(fs, profilesDir);
67
- // Stale-cleanup branch.
68
- if (profilesExist) {
69
- const toRemove = [];
70
- if (hasConfig)
71
- toRemove.push(legacyConfigPath);
72
- if (hasCreds)
73
- toRemove.push(legacyCredentialsPath);
74
- for (const p of toRemove) {
75
- yield* tryUnlink(fs, p, report);
76
- }
77
- emit(report, `mxs: removed stale legacy config files at ${toRemove.join(', ')}`);
78
- return {
79
- profile: null,
80
- production: false,
81
- cleanedStaleLegacy: true,
82
- };
83
- }
84
- // Full migration branch.
85
- let legacyConfig = {};
86
- if (hasConfig) {
87
- const raw = yield* fs.readFileString(legacyConfigPath).pipe(Effect.catchAll((err) => Effect.fail(new ConfigMigrationFailed({
88
- message: `failed to read legacy config at ${legacyConfigPath}: ${String(err)}`,
89
- cause: err,
90
- }))));
91
- try {
92
- legacyConfig = JSON.parse(raw);
93
- }
94
- catch (err) {
95
- return yield* Effect.fail(new ConfigMigrationFailed({
96
- message: `failed to read legacy config at ${legacyConfigPath}: ${err.message}`,
97
- cause: err,
98
- }));
99
- }
100
- }
101
- let legacyCredentials = null;
102
- if (hasCreds) {
103
- const raw = yield* fs.readFileString(legacyCredentialsPath).pipe(Effect.catchAll((err) => Effect.fail(new ConfigMigrationFailed({
104
- message: `failed to read legacy credentials at ${legacyCredentialsPath}: ${String(err)}`,
105
- cause: err,
106
- }))));
107
- try {
108
- legacyCredentials = JSON.parse(raw);
109
- }
110
- catch (err) {
111
- return yield* Effect.fail(new ConfigMigrationFailed({
112
- message: `failed to read legacy credentials at ${legacyCredentialsPath}: ${err.message}`,
113
- cause: err,
114
- }));
115
- }
116
- }
117
- let production = false;
118
- const tty = opts?.isTTY ?? Boolean(process.stdin.isTTY && process.stdout.isTTY);
119
- const apiUrl = typeof legacyConfig.api_url === 'string'
120
- ? legacyConfig.api_url
121
- : undefined;
122
- if (tty && apiUrl && opts?.promptIsProduction) {
123
- const answer = yield* Effect.tryPromise({
124
- try: () => opts.promptIsProduction(apiUrl),
125
- catch: (err) => new ConfigMigrationFailed({
126
- message: `legacy migration prompt failed: ${String(err)}`,
127
- cause: err,
128
- }),
129
- });
130
- production = isCancel(answer) ? false : Boolean(answer);
131
- }
132
- // Strip legacy fields and apply production flag.
133
- const migratedConfig = {
134
- ...stripLegacyConfigFields(legacyConfig),
135
- };
136
- if (production) {
137
- migratedConfig.production = true;
138
- }
139
- else {
140
- delete migratedConfig.production;
141
- }
142
- yield* config.writeProfileConfig('default', migratedConfig).pipe(Effect.catchAll((err) => Effect.fail(new ConfigMigrationFailed({
143
- message: `failed to write profile config during migration: ${String(err)}`,
144
- cause: err,
145
- }))));
146
- if (legacyCredentials !== null) {
147
- yield* config
148
- .writeProfileCredentials('default', legacyCredentials)
149
- .pipe(Effect.catchAll((err) => Effect.fail(new ConfigMigrationFailed({
150
- message: `failed to write profile credentials during migration: ${String(err)}`,
151
- cause: err,
152
- }))));
153
- }
154
- // Point `current` at the new default profile before unlinking legacy
155
- // files, so a crash mid-migration leaves the user with a recoverable
156
- // state.
157
- yield* config.writeCurrent('default').pipe(Effect.catchAll((err) => Effect.fail(new ConfigMigrationFailed({
158
- message: `failed to set current profile to default: ${String(err)}`,
159
- cause: err,
160
- }))));
161
- if (hasConfig)
162
- yield* tryUnlink(fs, legacyConfigPath, report);
163
- if (hasCreds)
164
- yield* tryUnlink(fs, legacyCredentialsPath, report);
165
- emit(report, `mxs: migrated single-profile config to profile 'default'.`);
166
- return {
167
- profile: 'default',
168
- production,
169
- cleanedStaleLegacy: false,
170
- };
171
- });
172
- const svc = { runLegacyMigrationIfNeeded };
173
- return svc;
174
- });
175
- export class Migration extends Context.Tag('Migration')() {
176
- static Default = Layer.effect(Migration, make);
177
- }
@@ -1,29 +0,0 @@
1
- import { Context, Effect, Layer } from 'effect';
2
- import { Generic, ProfileInvalidName, ProfileNotFound, ResourceNotFound } from '../domain/errors';
3
- import { Config, type ConfigShape, type ResolvedConfig, type StoreOverrides } from './Config';
4
- export declare const PROFILE_NAME_RE: RegExp;
5
- export declare const RESERVED_PROFILE_NAMES: Set<string>;
6
- export interface ProfileSummary {
7
- readonly name: string;
8
- readonly apiUrl?: string;
9
- readonly production: boolean;
10
- readonly authenticated: boolean;
11
- readonly active: boolean;
12
- }
13
- export interface ProfileService {
14
- readonly validateName: (name: string) => Effect.Effect<void, ProfileInvalidName>;
15
- readonly list: Effect.Effect<readonly string[], Generic>;
16
- readonly current: Effect.Effect<string | null, Generic>;
17
- readonly use: (name: string) => Effect.Effect<void, ProfileInvalidName | ProfileNotFound | Generic>;
18
- readonly mark: (name: string, update: {
19
- readonly production?: boolean;
20
- }) => Effect.Effect<ConfigShape, ProfileNotFound | Generic>;
21
- readonly rm: (name: string) => Effect.Effect<void, ResourceNotFound | Generic>;
22
- readonly show: (name: string) => Effect.Effect<ProfileSummary, ProfileNotFound | Generic>;
23
- readonly resolve: (overrides?: StoreOverrides) => Effect.Effect<ResolvedConfig, ProfileNotFound | Generic>;
24
- }
25
- declare const Profile_base: Context.TagClass<Profile, "Profile", ProfileService>;
26
- export declare class Profile extends Profile_base {
27
- static Default: Layer.Layer<Profile, never, Config>;
28
- }
29
- export {};
@@ -1,115 +0,0 @@
1
- import { Context, Effect, Layer } from 'effect';
2
- import { Generic, ProfileInvalidName, ProfileNotFound, ResourceNotFound, } from '../domain/errors';
3
- import { Config, } from './Config';
4
- // ---------------------------------------------------------------------------
5
- // Name validation
6
- // ---------------------------------------------------------------------------
7
- export const PROFILE_NAME_RE = /^[\d_a-z-]{1,32}$/;
8
- export const RESERVED_PROFILE_NAMES = new Set(['current']);
9
- // ---------------------------------------------------------------------------
10
- // Implementation
11
- // ---------------------------------------------------------------------------
12
- const make = Effect.gen(function* () {
13
- const config = yield* Config;
14
- const validateName = (name) => Effect.gen(function* () {
15
- if (!name || name.length === 0) {
16
- return yield* Effect.fail(new ProfileInvalidName({
17
- name,
18
- message: 'profile name must not be empty',
19
- }));
20
- }
21
- if (RESERVED_PROFILE_NAMES.has(name)) {
22
- return yield* Effect.fail(new ProfileInvalidName({
23
- name,
24
- message: `profile name '${name}' is reserved`,
25
- }));
26
- }
27
- if (!PROFILE_NAME_RE.test(name)) {
28
- return yield* Effect.fail(new ProfileInvalidName({
29
- name,
30
- message: `profile name '${name}' is invalid; must match ^[a-z0-9_-]{1,32}$`,
31
- }));
32
- }
33
- });
34
- const list = config.listProfileDirs;
35
- const current = config.readCurrent;
36
- const use = (name) => Effect.gen(function* () {
37
- yield* validateName(name);
38
- const exists = yield* config.profileExists(name);
39
- if (!exists) {
40
- return yield* Effect.fail(new ProfileNotFound({
41
- name,
42
- message: `profile '${name}' does not exist`,
43
- }));
44
- }
45
- yield* config.writeCurrent(name);
46
- });
47
- const mark = (name, update) => Effect.gen(function* () {
48
- const exists = yield* config.profileExists(name);
49
- if (!exists) {
50
- return yield* Effect.fail(new ProfileNotFound({
51
- name,
52
- message: `profile '${name}' does not exist`,
53
- }));
54
- }
55
- return yield* config.updateProfileConfig(name, (prev) => {
56
- const next = { ...prev };
57
- if (update.production === undefined)
58
- return next;
59
- if (update.production) {
60
- return { ...next, production: true };
61
- }
62
- const stripped = { ...next };
63
- delete stripped.production;
64
- return stripped;
65
- });
66
- });
67
- const rm = (name) => Effect.gen(function* () {
68
- const exists = yield* config.profileExists(name);
69
- if (!exists) {
70
- return yield* Effect.fail(new ResourceNotFound({
71
- kind: 'profile',
72
- ref: name,
73
- message: `profile '${name}' does not exist`,
74
- }));
75
- }
76
- yield* config.removeProfileDir(name);
77
- });
78
- const show = (name) => Effect.gen(function* () {
79
- const exists = yield* config.profileExists(name);
80
- if (!exists) {
81
- return yield* Effect.fail(new ProfileNotFound({
82
- name,
83
- message: `profile '${name}' does not exist`,
84
- }));
85
- }
86
- const cfg = yield* config.readProfileConfig(name);
87
- const creds = yield* config.readProfileCredentials(name);
88
- const active = (yield* config.readCurrent) === name;
89
- return {
90
- name,
91
- apiUrl: cfg.api_url,
92
- production: Boolean(cfg.production),
93
- authenticated: creds !== null,
94
- active,
95
- };
96
- });
97
- const resolve = (overrides) => config.resolve(overrides).pipe(Effect.catchTags({
98
- ConfigMissingApiUrl: (e) => Effect.fail(new Generic({ message: e.message, cause: e })),
99
- ConfigMigrationFailed: (e) => Effect.fail(new Generic({ message: e.message, cause: e })),
100
- }));
101
- const svc = {
102
- validateName,
103
- list,
104
- current,
105
- use,
106
- mark,
107
- rm,
108
- show,
109
- resolve,
110
- };
111
- return svc;
112
- });
113
- export class Profile extends Context.Tag('Profile')() {
114
- static Default = Layer.effect(Profile, make);
115
- }
@@ -1,16 +0,0 @@
1
- export declare const asRecord: (value: unknown) => Record<string, unknown>;
2
- export declare const first: (record: Record<string, unknown>, ...keys: string[]) => unknown;
3
- export declare const firstString: (record: Record<string, unknown>, ...keys: string[]) => string;
4
- export declare const contentFormat: (doc: Record<string, unknown>) => string;
5
- export declare const publishState: (doc: Record<string, unknown>) => string | undefined;
6
- export declare const relationLabel: (value: unknown) => string | undefined;
7
- export declare const relationSlugOrLabel: (value: unknown) => string | undefined;
8
- export declare const formatScalar: (value: unknown) => string;
9
- export declare const escapeXml: (value: string) => string;
10
- export declare const unwrapDocument: (data: unknown) => unknown;
11
- export declare const pickArticleTranslationMeta: (payload: unknown, docId: unknown) => Record<string, unknown> | undefined;
12
- export declare const tryLexicalToLitexml: (jsonStr: string) => string | null;
13
- export declare const renderContent: (doc: Record<string, unknown>, llm?: boolean) => {
14
- body: string;
15
- format: "litexml" | "markdown" | "text";
16
- };
@@ -1,110 +0,0 @@
1
- import { serializeMxLexicalToLitexml, stripMxLitexmlDocWrapper, } from '@mx-space/editor';
2
- export const asRecord = (value) => value && typeof value === 'object' && !Array.isArray(value)
3
- ? value
4
- : {};
5
- export const first = (record, ...keys) => {
6
- for (const key of keys) {
7
- if (record[key] !== undefined && record[key] !== null)
8
- return record[key];
9
- }
10
- return undefined;
11
- };
12
- export const firstString = (record, ...keys) => {
13
- const value = first(record, ...keys);
14
- return typeof value === 'string' ? value : '';
15
- };
16
- export const contentFormat = (doc) => {
17
- const value = first(doc, 'content_format', 'contentFormat');
18
- return typeof value === 'string' ? value : 'markdown';
19
- };
20
- export const publishState = (doc) => {
21
- const value = first(doc, 'is_published', 'isPublished');
22
- if (typeof value === 'boolean')
23
- return value ? 'published' : 'draft';
24
- return undefined;
25
- };
26
- export const relationLabel = (value) => {
27
- if (!value)
28
- return undefined;
29
- if (typeof value === 'string')
30
- return value;
31
- const obj = asRecord(value);
32
- return (firstString(obj, 'name') ||
33
- firstString(obj, 'slug') ||
34
- firstString(obj, 'id'));
35
- };
36
- export const relationSlugOrLabel = (value) => {
37
- if (!value)
38
- return undefined;
39
- if (typeof value === 'string')
40
- return value;
41
- const obj = asRecord(value);
42
- return (firstString(obj, 'slug') ||
43
- firstString(obj, 'name') ||
44
- firstString(obj, 'id'));
45
- };
46
- export const formatScalar = (value) => {
47
- if (Array.isArray(value))
48
- return value.map(formatScalar).join(', ');
49
- if (value instanceof Date)
50
- return value.toISOString();
51
- if (typeof value === 'object' && value !== null)
52
- return JSON.stringify(value);
53
- return String(value);
54
- };
55
- export const escapeXml = (value) => value.replaceAll('&', '&amp;').replaceAll('<', '&lt;').replaceAll('>', '&gt;');
56
- export const unwrapDocument = (data) => {
57
- const obj = asRecord(data);
58
- const nested = obj.data;
59
- if (nested && typeof nested === 'object' && !Array.isArray(nested))
60
- return nested;
61
- return data;
62
- };
63
- export const pickArticleTranslationMeta = (payload, docId) => {
64
- const translation = asRecord(asRecord(asRecord(payload).meta).translation);
65
- if (Object.keys(translation).length === 0)
66
- return undefined;
67
- const direct = asRecord(translation.article);
68
- if (Object.keys(direct).length > 0)
69
- return direct;
70
- if (docId === undefined || docId === null)
71
- return undefined;
72
- const entry = asRecord(translation[String(docId)]);
73
- const article = asRecord(entry.article);
74
- return Object.keys(article).length > 0 ? article : undefined;
75
- };
76
- export const tryLexicalToLitexml = (jsonStr) => {
77
- try {
78
- const parsed = JSON.parse(jsonStr);
79
- const xml = serializeMxLexicalToLitexml(parsed, { compact: false });
80
- return stripMxLitexmlDocWrapper(xml).trim();
81
- }
82
- catch {
83
- return null;
84
- }
85
- };
86
- export const renderContent = (doc, llm = false) => {
87
- const format = contentFormat(doc);
88
- const content = firstString(doc, 'content');
89
- const text = firstString(doc, 'text');
90
- if (format === 'lexical' && content) {
91
- // For LLM consumers, prefer the plain `text` field over litexml — easier
92
- // to parse and free of markup boilerplate.
93
- if (llm) {
94
- if (text)
95
- return { body: text, format: 'text' };
96
- const xml = tryLexicalToLitexml(content);
97
- return xml !== null
98
- ? { body: xml, format: 'litexml' }
99
- : { body: content, format: 'text' };
100
- }
101
- const xml = tryLexicalToLitexml(content);
102
- if (xml !== null)
103
- return { body: xml, format: 'litexml' };
104
- return { body: text || content, format: text ? 'text' : 'markdown' };
105
- }
106
- return {
107
- body: content || text || '',
108
- format: format === 'markdown' ? 'markdown' : 'text',
109
- };
110
- };
@@ -1,38 +0,0 @@
1
- /**
2
- * Coerce an arbitrary value (ISO string, epoch ms or s, Date) into a Date.
3
- * Returns null when the value cannot be interpreted as a calendar time.
4
- */
5
- export declare const toDate: (value: unknown) => Date | null;
6
- /** Local-time `YYYY-MM-DD HH:mm`. Seconds are dropped for readability. */
7
- export declare const formatAbsoluteDateTime: (date: Date) => string;
8
- /**
9
- * Relative phrase versus `now` (default = the moment of the call).
10
- * Bucketing uses the same thresholds as date-fns `formatDistance` so the
11
- * output reads naturally without 1-minute precision noise.
12
- */
13
- export declare const formatRelativeTime: (date: Date, now?: Date) => string;
14
- export type DateTimeStyle = 'abs' | 'rel' | 'both';
15
- export interface FormatDateTimeOptions {
16
- /** `abs` (default) → `YYYY-MM-DD HH:mm`; `rel` → relative phrase; `both` → abs (rel). */
17
- readonly style?: DateTimeStyle;
18
- /** Shortcut for `style: 'both'`. */
19
- readonly relative?: boolean;
20
- /** Override "now" — primarily for tests. */
21
- readonly now?: Date;
22
- }
23
- /**
24
- * Format an arbitrary timestamp-shaped value for a readable view.
25
- *
26
- * Falls back to `String(value)` when the value cannot be parsed as a date,
27
- * and to `''` when the value is nullish — letting the caller filter the
28
- * field out instead of rendering `null` / `undefined`.
29
- */
30
- export declare const formatDateTime: (value: unknown, opts?: FormatDateTimeOptions) => string;
31
- /** True when `value` is a `Date` or an ISO-8601-ish string. */
32
- export declare const looksLikeTimestamp: (value: unknown) => boolean;
33
- /**
34
- * Format `value` as a human-friendly timestamp when it looks like one;
35
- * return `null` otherwise so the caller can fall back to its scalar
36
- * formatter without committing to the timestamp shape.
37
- */
38
- export declare const tryFormatTimestamp: (value: unknown, opts?: FormatDateTimeOptions) => string | null;
@@ -1,147 +0,0 @@
1
- // ---------------------------------------------------------------------------
2
- // Human-friendly date/time formatting for readable CLI output.
3
- //
4
- // Why this file exists: the legacy renderers stringified API timestamps
5
- // directly, which left raw ISO 8601 like `2026-05-19T14:32:00.000Z` in
6
- // every `readable` field. That format is precise but hard to scan. The
7
- // helpers here keep ISO as a normalization step and emit a friendlier
8
- // surface form for human consumption.
9
- //
10
- // Two surface forms are exposed:
11
- //
12
- // - `abs` → `YYYY-MM-DD HH:mm` in the local timezone (default).
13
- // - `rel` → "3 days ago" / "in 2 hours".
14
- // - `both` → `YYYY-MM-DD HH:mm (3 days ago)`.
15
- //
16
- // `--json` / `--pretty-json` are unaffected: those paths stringify the raw
17
- // data shape and never invoke the view layer.
18
- // ---------------------------------------------------------------------------
19
- const pad2 = (n) => String(n).padStart(2, '0');
20
- /**
21
- * Coerce an arbitrary value (ISO string, epoch ms or s, Date) into a Date.
22
- * Returns null when the value cannot be interpreted as a calendar time.
23
- */
24
- export const toDate = (value) => {
25
- if (value === null || value === undefined)
26
- return null;
27
- if (value instanceof Date) {
28
- return Number.isNaN(value.getTime()) ? null : value;
29
- }
30
- if (typeof value === 'number') {
31
- if (!Number.isFinite(value) || value <= 0)
32
- return null;
33
- // Heuristic: values below 1e12 are seconds since epoch (covers 2001+).
34
- const ms = value < 1e12 ? value * 1000 : value;
35
- const date = new Date(ms);
36
- return Number.isNaN(date.getTime()) ? null : date;
37
- }
38
- if (typeof value === 'string') {
39
- const trimmed = value.trim();
40
- if (!trimmed)
41
- return null;
42
- const date = new Date(trimmed);
43
- return Number.isNaN(date.getTime()) ? null : date;
44
- }
45
- return null;
46
- };
47
- /** Local-time `YYYY-MM-DD HH:mm`. Seconds are dropped for readability. */
48
- export const formatAbsoluteDateTime = (date) => {
49
- const y = date.getFullYear();
50
- const m = pad2(date.getMonth() + 1);
51
- const d = pad2(date.getDate());
52
- const hh = pad2(date.getHours());
53
- const mm = pad2(date.getMinutes());
54
- return `${y}-${m}-${d} ${hh}:${mm}`;
55
- };
56
- const phrase = (count, unit, past) => {
57
- const plural = count === 1 ? unit : `${unit}s`;
58
- return past ? `${count} ${plural} ago` : `in ${count} ${plural}`;
59
- };
60
- /**
61
- * Relative phrase versus `now` (default = the moment of the call).
62
- * Bucketing uses the same thresholds as date-fns `formatDistance` so the
63
- * output reads naturally without 1-minute precision noise.
64
- */
65
- export const formatRelativeTime = (date, now = new Date()) => {
66
- const diffMs = date.getTime() - now.getTime();
67
- const past = diffMs < 0;
68
- const seconds = Math.abs(diffMs) / 1000;
69
- if (seconds < 45)
70
- return past ? 'just now' : 'in a moment';
71
- if (seconds < 90)
72
- return phrase(1, 'minute', past);
73
- const minutes = Math.round(seconds / 60);
74
- if (minutes < 45)
75
- return phrase(minutes, 'minute', past);
76
- if (minutes < 90)
77
- return phrase(1, 'hour', past);
78
- const hours = Math.round(minutes / 60);
79
- if (hours < 22)
80
- return phrase(hours, 'hour', past);
81
- if (hours < 36)
82
- return phrase(1, 'day', past);
83
- const days = Math.round(hours / 24);
84
- if (days < 7)
85
- return phrase(days, 'day', past);
86
- if (days < 11)
87
- return phrase(1, 'week', past);
88
- const weeks = Math.round(days / 7);
89
- if (weeks < 5)
90
- return phrase(weeks, 'week', past);
91
- if (days < 60)
92
- return phrase(1, 'month', past);
93
- const months = Math.round(days / 30);
94
- if (months < 12)
95
- return phrase(months, 'month', past);
96
- const years = Math.round(days / 365.25);
97
- return phrase(years, 'year', past);
98
- };
99
- /**
100
- * Format an arbitrary timestamp-shaped value for a readable view.
101
- *
102
- * Falls back to `String(value)` when the value cannot be parsed as a date,
103
- * and to `''` when the value is nullish — letting the caller filter the
104
- * field out instead of rendering `null` / `undefined`.
105
- */
106
- export const formatDateTime = (value, opts = {}) => {
107
- const date = toDate(value);
108
- if (!date) {
109
- if (value === null || value === undefined)
110
- return '';
111
- return String(value);
112
- }
113
- const style = opts.style ?? (opts.relative ? 'both' : 'abs');
114
- if (style === 'rel')
115
- return formatRelativeTime(date, opts.now);
116
- const abs = formatAbsoluteDateTime(date);
117
- if (style === 'both') {
118
- const rel = formatRelativeTime(date, opts.now);
119
- return rel ? `${abs} (${rel})` : abs;
120
- }
121
- return abs;
122
- };
123
- // ---------------------------------------------------------------------------
124
- // Auto-detection helpers (used by generic readable renderers).
125
- // ---------------------------------------------------------------------------
126
- // ISO-8601-ish detector: matches both `2026-05-19T14:32:00Z` and the space
127
- // variant `2026-05-19 14:32:00`. Date-only strings (`2026-05-19`) are
128
- // intentionally NOT matched — they often appear as opaque ids/slugs.
129
- const ISO_LIKE_RE = /^\d{4}-\d{2}-\d{2}[ T]\d{2}:\d{2}/;
130
- /** True when `value` is a `Date` or an ISO-8601-ish string. */
131
- export const looksLikeTimestamp = (value) => {
132
- if (value instanceof Date)
133
- return !Number.isNaN(value.getTime());
134
- if (typeof value === 'string')
135
- return ISO_LIKE_RE.test(value);
136
- return false;
137
- };
138
- /**
139
- * Format `value` as a human-friendly timestamp when it looks like one;
140
- * return `null` otherwise so the caller can fall back to its scalar
141
- * formatter without committing to the timestamp shape.
142
- */
143
- export const tryFormatTimestamp = (value, opts = {}) => {
144
- if (!looksLikeTimestamp(value))
145
- return null;
146
- return formatDateTime(value, opts);
147
- };
@@ -1,3 +0,0 @@
1
- import { type CliError } from '../../domain/errors';
2
- import type { OutputOptions } from './options';
3
- export declare const emitErrorSync: (err: CliError, opts: OutputOptions) => void;