@mx-space/cli 0.1.1 → 0.2.1

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 (235) hide show
  1. package/README.md +101 -28
  2. package/ROADMAP.md +4 -3
  3. package/dist/{Lexical.dev-DpU35QTu.mjs → Lexical.dev-CMevU1DO.mjs} +1 -1
  4. package/dist/{Lexical.dev-DpU35QTu.mjs.map → Lexical.dev-CMevU1DO.mjs.map} +1 -1
  5. package/dist/{Lexical.node-gYNDt_p9.mjs → Lexical.node-BR9e7Cyk.mjs} +2 -2
  6. package/dist/{Lexical.node-gYNDt_p9.mjs.map → Lexical.node-BR9e7Cyk.mjs.map} +1 -1
  7. package/dist/{Lexical.prod-t4c3bHV3.mjs → Lexical.prod-PUD-z9fY.mjs} +1 -1
  8. package/dist/{Lexical.prod-t4c3bHV3.mjs.map → Lexical.prod-PUD-z9fY.mjs.map} +1 -1
  9. package/dist/{LexicalClipboard.dev-CdeeWCIq.mjs → LexicalClipboard.dev-DZC2zppG.mjs} +6 -6
  10. package/dist/{LexicalClipboard.dev-CdeeWCIq.mjs.map → LexicalClipboard.dev-DZC2zppG.mjs.map} +1 -1
  11. package/dist/{LexicalClipboard.node-0e9GBL1g.mjs → LexicalClipboard.node-e5G1wVGb.mjs} +2 -2
  12. package/dist/{LexicalClipboard.node-0e9GBL1g.mjs.map → LexicalClipboard.node-e5G1wVGb.mjs.map} +1 -1
  13. package/dist/{LexicalClipboard.prod-CsCWYmV7.mjs → LexicalClipboard.prod-DE2azzIb.mjs} +6 -6
  14. package/dist/{LexicalClipboard.prod-CsCWYmV7.mjs.map → LexicalClipboard.prod-DE2azzIb.mjs.map} +1 -1
  15. package/dist/{LexicalCodeCore.dev-haI2cqH8.mjs → LexicalCodeCore.dev-gs--x55I.mjs} +3 -3
  16. package/dist/{LexicalCodeCore.dev-haI2cqH8.mjs.map → LexicalCodeCore.dev-gs--x55I.mjs.map} +1 -1
  17. package/dist/{LexicalCodeCore.prod-D_k7zuE5.mjs → LexicalCodeCore.prod-DPHOnyEj.mjs} +3 -3
  18. package/dist/{LexicalCodeCore.prod-D_k7zuE5.mjs.map → LexicalCodeCore.prod-DPHOnyEj.mjs.map} +1 -1
  19. package/dist/{LexicalDragon.dev-CAggdFh_.mjs → LexicalDragon.dev-CVe8bzVN.mjs} +3 -3
  20. package/dist/{LexicalDragon.dev-CAggdFh_.mjs.map → LexicalDragon.dev-CVe8bzVN.mjs.map} +1 -1
  21. package/dist/{LexicalDragon.node-QMR_wqJg.mjs → LexicalDragon.node-c7EHvcnK.mjs} +2 -2
  22. package/dist/{LexicalDragon.node-QMR_wqJg.mjs.map → LexicalDragon.node-c7EHvcnK.mjs.map} +1 -1
  23. package/dist/{LexicalDragon.prod-OssQhwS-.mjs → LexicalDragon.prod-D6KvqyLD.mjs} +3 -3
  24. package/dist/{LexicalDragon.prod-OssQhwS-.mjs.map → LexicalDragon.prod-D6KvqyLD.mjs.map} +1 -1
  25. package/dist/{LexicalExtension.dev-CtDZiMCU.mjs → LexicalExtension.dev-PDo8HyEw.mjs} +3 -3
  26. package/dist/{LexicalExtension.dev-CtDZiMCU.mjs.map → LexicalExtension.dev-PDo8HyEw.mjs.map} +1 -1
  27. package/dist/{LexicalExtension.node-BM0gh8zu.mjs → LexicalExtension.node-BKzjRb-0.mjs} +2 -2
  28. package/dist/{LexicalExtension.node-BM0gh8zu.mjs.map → LexicalExtension.node-BKzjRb-0.mjs.map} +1 -1
  29. package/dist/{LexicalExtension.prod-Ug6emhEO.mjs → LexicalExtension.prod-D0x_lX7q.mjs} +3 -3
  30. package/dist/{LexicalExtension.prod-Ug6emhEO.mjs.map → LexicalExtension.prod-D0x_lX7q.mjs.map} +1 -1
  31. package/dist/{LexicalHeadless.dev-D4yQpl_s.mjs → LexicalHeadless.dev-DBKcW82j.mjs} +2 -2
  32. package/dist/{LexicalHeadless.dev-D4yQpl_s.mjs.map → LexicalHeadless.dev-DBKcW82j.mjs.map} +1 -1
  33. package/dist/{LexicalHeadless.prod-jeN65B3k.mjs → LexicalHeadless.prod-D4nEh7cR.mjs} +2 -2
  34. package/dist/{LexicalHeadless.prod-jeN65B3k.mjs.map → LexicalHeadless.prod-D4nEh7cR.mjs.map} +1 -1
  35. package/dist/{LexicalHtml.dev-BdU1_ITQ.mjs → LexicalHtml.dev-vsWW05es.mjs} +4 -4
  36. package/dist/{LexicalHtml.dev-BdU1_ITQ.mjs.map → LexicalHtml.dev-vsWW05es.mjs.map} +1 -1
  37. package/dist/{LexicalHtml.node-DLtAh00E.mjs → LexicalHtml.node-CpibAfba.mjs} +2 -2
  38. package/dist/{LexicalHtml.node-DLtAh00E.mjs.map → LexicalHtml.node-CpibAfba.mjs.map} +1 -1
  39. package/dist/{LexicalHtml.prod-DdLE1HHT.mjs → LexicalHtml.prod-Bqz-3WAp.mjs} +4 -4
  40. package/dist/{LexicalHtml.prod-DdLE1HHT.mjs.map → LexicalHtml.prod-Bqz-3WAp.mjs.map} +1 -1
  41. package/dist/{LexicalLink.dev-DK87Biuy.mjs → LexicalLink.dev-BO0J0B1E.mjs} +4 -4
  42. package/dist/{LexicalLink.dev-DK87Biuy.mjs.map → LexicalLink.dev-BO0J0B1E.mjs.map} +1 -1
  43. package/dist/{LexicalLink.prod-fssuv6Sf.mjs → LexicalLink.prod-D66AhUCZ.mjs} +4 -4
  44. package/dist/{LexicalLink.prod-fssuv6Sf.mjs.map → LexicalLink.prod-D66AhUCZ.mjs.map} +1 -1
  45. package/dist/{LexicalList.dev-BJ4dr_rk.mjs → LexicalList.dev-DVGTWRk0.mjs} +4 -4
  46. package/dist/{LexicalList.dev-BJ4dr_rk.mjs.map → LexicalList.dev-DVGTWRk0.mjs.map} +1 -1
  47. package/dist/{LexicalList.prod-jWBbaWfi.mjs → LexicalList.prod-Bao7NGl7.mjs} +4 -4
  48. package/dist/{LexicalList.prod-jWBbaWfi.mjs.map → LexicalList.prod-Bao7NGl7.mjs.map} +1 -1
  49. package/dist/{LexicalMarkdown.dev-C8e-eh6y.mjs → LexicalMarkdown.dev-CRWkZwlp.mjs} +4 -4
  50. package/dist/{LexicalMarkdown.dev-C8e-eh6y.mjs.map → LexicalMarkdown.dev-CRWkZwlp.mjs.map} +1 -1
  51. package/dist/{LexicalMarkdown.prod-k73tZVb2.mjs → LexicalMarkdown.prod-tGG6js4r.mjs} +4 -4
  52. package/dist/{LexicalMarkdown.prod-k73tZVb2.mjs.map → LexicalMarkdown.prod-tGG6js4r.mjs.map} +1 -1
  53. package/dist/{LexicalRichText.dev-CrSqq3K-.mjs → LexicalRichText.dev-DPXfQePC.mjs} +6 -6
  54. package/dist/{LexicalRichText.dev-CrSqq3K-.mjs.map → LexicalRichText.dev-DPXfQePC.mjs.map} +1 -1
  55. package/dist/{LexicalRichText.node-B7k7wlQz.mjs → LexicalRichText.node-BEkm_YwY.mjs} +5 -5
  56. package/dist/{LexicalRichText.node-B7k7wlQz.mjs.map → LexicalRichText.node-BEkm_YwY.mjs.map} +1 -1
  57. package/dist/{LexicalRichText.prod-CqvyxQ9m.mjs → LexicalRichText.prod-DlfudC5w.mjs} +6 -6
  58. package/dist/{LexicalRichText.prod-CqvyxQ9m.mjs.map → LexicalRichText.prod-DlfudC5w.mjs.map} +1 -1
  59. package/dist/{LexicalSelection.dev-sNOHKHe_.mjs → LexicalSelection.dev-BVTArZ-b.mjs} +2 -2
  60. package/dist/{LexicalSelection.dev-sNOHKHe_.mjs.map → LexicalSelection.dev-BVTArZ-b.mjs.map} +1 -1
  61. package/dist/{LexicalSelection.node-Di7GwBCZ.mjs → LexicalSelection.node-CQ8iTYsz.mjs} +2 -2
  62. package/dist/{LexicalSelection.node-Di7GwBCZ.mjs.map → LexicalSelection.node-CQ8iTYsz.mjs.map} +1 -1
  63. package/dist/{LexicalSelection.prod-SWllPJop.mjs → LexicalSelection.prod-BZKGGs-G.mjs} +2 -2
  64. package/dist/{LexicalSelection.prod-SWllPJop.mjs.map → LexicalSelection.prod-BZKGGs-G.mjs.map} +1 -1
  65. package/dist/{LexicalTable.dev-CQkLHXJx.mjs → LexicalTable.dev-C-AOEpJn.mjs} +5 -5
  66. package/dist/{LexicalTable.dev-CQkLHXJx.mjs.map → LexicalTable.dev-C-AOEpJn.mjs.map} +1 -1
  67. package/dist/{LexicalTable.prod-BtqCwKSi.mjs → LexicalTable.prod-Cyn0qWxZ.mjs} +5 -5
  68. package/dist/{LexicalTable.prod-BtqCwKSi.mjs.map → LexicalTable.prod-Cyn0qWxZ.mjs.map} +1 -1
  69. package/dist/{LexicalUtils.dev-DiUpsXE8.mjs → LexicalUtils.dev-DRRDyAlS.mjs} +3 -3
  70. package/dist/{LexicalUtils.dev-DiUpsXE8.mjs.map → LexicalUtils.dev-DRRDyAlS.mjs.map} +1 -1
  71. package/dist/{LexicalUtils.node-CmK462d1.mjs → LexicalUtils.node-Dz-HANi6.mjs} +2 -2
  72. package/dist/{LexicalUtils.node-CmK462d1.mjs.map → LexicalUtils.node-Dz-HANi6.mjs.map} +1 -1
  73. package/dist/{LexicalUtils.prod-bWwV4GAF.mjs → LexicalUtils.prod-CmeHwh8W.mjs} +3 -3
  74. package/dist/{LexicalUtils.prod-bWwV4GAF.mjs.map → LexicalUtils.prod-CmeHwh8W.mjs.map} +1 -1
  75. package/dist/{auth-OeKZZ_2x.mjs → auth-CAKmTDpF.mjs} +11 -11
  76. package/dist/auth-CAKmTDpF.mjs.map +1 -0
  77. package/dist/bin/mxs.d.mts +2 -1
  78. package/dist/bin/mxs.mjs +402 -55
  79. package/dist/bin/mxs.mjs.map +1 -1
  80. package/dist/{config-store-WL7dNMS6.mjs → config-store-B8_9iStL.mjs} +21 -81
  81. package/dist/config-store-B8_9iStL.mjs.map +1 -0
  82. package/dist/{create-Cxnqt_Wt.mjs → create-5wbU7IQh.mjs} +5 -5
  83. package/dist/{create-Cxnqt_Wt.mjs.map → create-5wbU7IQh.mjs.map} +1 -1
  84. package/dist/{create-DUOSAqBm.mjs → create-Bs6K7AyQ.mjs} +3 -3
  85. package/dist/{create-DUOSAqBm.mjs.map → create-Bs6K7AyQ.mjs.map} +1 -1
  86. package/dist/{create-C85MSrtt.mjs → create-DBReocgJ.mjs} +5 -5
  87. package/dist/{create-C85MSrtt.mjs.map → create-DBReocgJ.mjs.map} +1 -1
  88. package/dist/{create-BVHnXtIH.mjs → create-DGVaE0_S.mjs} +4 -4
  89. package/dist/{create-BVHnXtIH.mjs.map → create-DGVaE0_S.mjs.map} +1 -1
  90. package/dist/{create-BWA2WGrW.mjs → create-lLFZuMsz.mjs} +3 -3
  91. package/dist/{create-BWA2WGrW.mjs.map → create-lLFZuMsz.mjs.map} +1 -1
  92. package/dist/{delete-CGy-cV6k.mjs → delete-6tkhHQDp.mjs} +5 -5
  93. package/dist/delete-6tkhHQDp.mjs.map +1 -0
  94. package/dist/{delete-CcyrLNZv.mjs → delete-CRFxitDN.mjs} +6 -6
  95. package/dist/delete-CRFxitDN.mjs.map +1 -0
  96. package/dist/{delete-Cjxehwj7.mjs → delete-DU2Hvsy8.mjs} +5 -5
  97. package/dist/delete-DU2Hvsy8.mjs.map +1 -0
  98. package/dist/{delete-BEXOOFAJ.mjs → delete-nJmHtvfq.mjs} +6 -6
  99. package/dist/delete-nJmHtvfq.mjs.map +1 -0
  100. package/dist/{delete-CKqlAUT8.mjs → delete-tJhXI8s4.mjs} +5 -5
  101. package/dist/delete-tJhXI8s4.mjs.map +1 -0
  102. package/dist/{onboarding-C1t1yoay.mjs → dist-DJF1Ntdn.mjs} +95 -173
  103. package/dist/dist-DJF1Ntdn.mjs.map +1 -0
  104. package/dist/{document-output-C5PWbz2p.mjs → document-output-BFJdwPV0.mjs} +5 -5
  105. package/dist/document-output-BFJdwPV0.mjs.map +1 -0
  106. package/dist/{edit-BuKMUNVC.mjs → edit-BMjTbPQO.mjs} +5 -5
  107. package/dist/edit-BMjTbPQO.mjs.map +1 -0
  108. package/dist/{edit-DFnOnk4i.mjs → edit-BnEmMmv6.mjs} +9 -9
  109. package/dist/edit-BnEmMmv6.mjs.map +1 -0
  110. package/dist/{edit-BRaZ6GGg.mjs → edit-C4vRSmRy.mjs} +9 -9
  111. package/dist/{edit-BRaZ6GGg.mjs.map → edit-C4vRSmRy.mjs.map} +1 -1
  112. package/dist/{edit-t108N11Q.mjs → edit-CQsW5gnk.mjs} +8 -8
  113. package/dist/{edit-t108N11Q.mjs.map → edit-CQsW5gnk.mjs.map} +1 -1
  114. package/dist/{editor-xrF-j3UE.mjs → editor-BIw1ALTF.mjs} +4 -4
  115. package/dist/editor-BIw1ALTF.mjs.map +1 -0
  116. package/dist/{envelope-overlays-DPAlMNW1.mjs → envelope-overlays-DXXygxdF.mjs} +2 -2
  117. package/dist/{envelope-overlays-DPAlMNW1.mjs.map → envelope-overlays-DXXygxdF.mjs.map} +1 -1
  118. package/dist/{get-CwcNFb39.mjs → get-B3Y5hAAO.mjs} +3 -3
  119. package/dist/{get-CwcNFb39.mjs.map → get-B3Y5hAAO.mjs.map} +1 -1
  120. package/dist/{get-DnDvLa9S.mjs → get-C5fmd5Vf.mjs} +4 -4
  121. package/dist/{get-DnDvLa9S.mjs.map → get-C5fmd5Vf.mjs.map} +1 -1
  122. package/dist/{get-Doi-NKAh.mjs → get-Cdp2tmwz.mjs} +6 -6
  123. package/dist/get-Cdp2tmwz.mjs.map +1 -0
  124. package/dist/{get-DxTU7Nom.mjs → get-D18ChSKU.mjs} +3 -3
  125. package/dist/{get-DxTU7Nom.mjs.map → get-D18ChSKU.mjs.map} +1 -1
  126. package/dist/{get-BYoAlJwB.mjs → get-NSHTGu4Y.mjs} +4 -4
  127. package/dist/{get-BYoAlJwB.mjs.map → get-NSHTGu4Y.mjs.map} +1 -1
  128. package/dist/{get-GdRz82RW.mjs → get-XBPJr95m.mjs} +4 -4
  129. package/dist/{get-GdRz82RW.mjs.map → get-XBPJr95m.mjs.map} +1 -1
  130. package/dist/index.d.mts +57 -11
  131. package/dist/index.mjs +11 -10
  132. package/dist/{list-DVunNsXr.mjs → list-B6703n9X.mjs} +3 -3
  133. package/dist/{list-DVunNsXr.mjs.map → list-B6703n9X.mjs.map} +1 -1
  134. package/dist/{list-DN81zVDA.mjs → list-BtNocJhc.mjs} +3 -3
  135. package/dist/{list-DN81zVDA.mjs.map → list-BtNocJhc.mjs.map} +1 -1
  136. package/dist/{list-DHG-MzOM.mjs → list-C9dXrU9H.mjs} +3 -3
  137. package/dist/{list-DHG-MzOM.mjs.map → list-C9dXrU9H.mjs.map} +1 -1
  138. package/dist/{list-CtME3aDw.mjs → list-CcwcYZgN.mjs} +3 -3
  139. package/dist/{list-CtME3aDw.mjs.map → list-CcwcYZgN.mjs.map} +1 -1
  140. package/dist/{list-CLAcZYZ4.mjs → list-Ctc8b5gT.mjs} +3 -3
  141. package/dist/{list-CLAcZYZ4.mjs.map → list-Ctc8b5gT.mjs.map} +1 -1
  142. package/dist/{list-DbNCVZbz.mjs → list-b60JzCTw.mjs} +3 -3
  143. package/dist/{list-DbNCVZbz.mjs.map → list-b60JzCTw.mjs.map} +1 -1
  144. package/dist/{litexml-codec-CDoRloiR.mjs → litexml-codec-CfIxcPG0.mjs} +10 -10
  145. package/dist/{litexml-codec-CDoRloiR.mjs.map → litexml-codec-CfIxcPG0.mjs.map} +1 -1
  146. package/dist/{login-mjliJn8U.mjs → login-bZx4HaVs.mjs} +21 -9
  147. package/dist/{login-mjliJn8U.mjs.map → login-bZx4HaVs.mjs.map} +1 -1
  148. package/dist/logout-C0Dzitsu.mjs +18 -0
  149. package/dist/logout-C0Dzitsu.mjs.map +1 -0
  150. package/dist/ls-wMiTXZPQ.mjs +33 -0
  151. package/dist/ls-wMiTXZPQ.mjs.map +1 -0
  152. package/dist/mark-Dh9BErsf.mjs +29 -0
  153. package/dist/mark-Dh9BErsf.mjs.map +1 -0
  154. package/dist/onboarding-Bw_I8qpf.mjs +214 -0
  155. package/dist/onboarding-Bw_I8qpf.mjs.map +1 -0
  156. package/dist/{output-CTnO1lYt.d.mts → output-D2dDlyV2.d.mts} +1 -1
  157. package/dist/{output-BM7aBFwt.mjs → output-vzequvhd.mjs} +52 -9
  158. package/dist/output-vzequvhd.mjs.map +1 -0
  159. package/dist/{payload-CN11pUto.mjs → payload-CO4zbNr8.mjs} +17 -17
  160. package/dist/payload-CO4zbNr8.mjs.map +1 -0
  161. package/dist/profile-CNe2uWJi.mjs +172 -0
  162. package/dist/profile-CNe2uWJi.mjs.map +1 -0
  163. package/dist/{publish-akQWYsnL.mjs → publish-CzzucXQq.mjs} +4 -4
  164. package/dist/{publish-akQWYsnL.mjs.map → publish-CzzucXQq.mjs.map} +1 -1
  165. package/dist/{publish-CN3NTJ_r.mjs → publish-DRQkpxsz.mjs} +4 -4
  166. package/dist/{publish-CN3NTJ_r.mjs.map → publish-DRQkpxsz.mjs.map} +1 -1
  167. package/dist/{resolve-CyjMlaoJ.mjs → resolve-BYg5Gees.mjs} +5 -5
  168. package/dist/resolve-BYg5Gees.mjs.map +1 -0
  169. package/dist/{resolve-Bw5Po9yK.mjs → resolve-BlpMdnaM.mjs} +4 -4
  170. package/dist/resolve-BlpMdnaM.mjs.map +1 -0
  171. package/dist/{resolve-BogJOR7R.mjs → resolve-CUsHGcb-.mjs} +4 -4
  172. package/dist/resolve-CUsHGcb-.mjs.map +1 -0
  173. package/dist/{resolve-helpers-CahPoJ0Y.mjs → resolve-helpers-CoHYa2uk.mjs} +2 -2
  174. package/dist/{resolve-helpers-CahPoJ0Y.mjs.map → resolve-helpers-CoHYa2uk.mjs.map} +1 -1
  175. package/dist/{resolve-Bp1AfBmM.mjs → resolve-jdb1VqAG.mjs} +5 -5
  176. package/dist/resolve-jdb1VqAG.mjs.map +1 -0
  177. package/dist/rm-D-2iW1Cr.mjs +33 -0
  178. package/dist/rm-D-2iW1Cr.mjs.map +1 -0
  179. package/dist/run-Dnax6uhZ.mjs +130 -0
  180. package/dist/run-Dnax6uhZ.mjs.map +1 -0
  181. package/dist/self-update-CZywTwGd.mjs +1610 -0
  182. package/dist/self-update-CZywTwGd.mjs.map +1 -0
  183. package/dist/{set-ClbrGFGv.mjs → set-Dk28LAy5.mjs} +5 -5
  184. package/dist/set-Dk28LAy5.mjs.map +1 -0
  185. package/dist/{shared-C2EAn5h_.mjs → shared-d0_6ZPn_.mjs} +13 -9
  186. package/dist/shared-d0_6ZPn_.mjs.map +1 -0
  187. package/dist/show-DScu6mXz.mjs +39 -0
  188. package/dist/show-DScu6mXz.mjs.map +1 -0
  189. package/dist/status-8F6tgphP.mjs +23 -0
  190. package/dist/status-8F6tgphP.mjs.map +1 -0
  191. package/dist/{update-dc-72pUN.mjs → update-B1LGxV0n.mjs} +6 -6
  192. package/dist/{update-dc-72pUN.mjs.map → update-B1LGxV0n.mjs.map} +1 -1
  193. package/dist/{update-CHmckeo8.mjs → update-CXetpFT3.mjs} +4 -4
  194. package/dist/{update-CHmckeo8.mjs.map → update-CXetpFT3.mjs.map} +1 -1
  195. package/dist/{update-Duh-iVOZ.mjs → update-Dr4BW8U-.mjs} +6 -6
  196. package/dist/{update-Duh-iVOZ.mjs.map → update-Dr4BW8U-.mjs.map} +1 -1
  197. package/dist/{update-qfiC-9Og.mjs → update-bqcHRJPC.mjs} +6 -6
  198. package/dist/update-bqcHRJPC.mjs.map +1 -0
  199. package/dist/{update-CJjwg09n.mjs → update-dBtzzmkN.mjs} +5 -5
  200. package/dist/update-dBtzzmkN.mjs.map +1 -0
  201. package/dist/use-D7eKESSW.mjs +29 -0
  202. package/dist/use-D7eKESSW.mjs.map +1 -0
  203. package/dist/{whoami-UwcdRchK.mjs → whoami-CKSNd6zL.mjs} +6 -6
  204. package/dist/whoami-CKSNd6zL.mjs.map +1 -0
  205. package/package.json +15 -13
  206. package/LICENSE +0 -33
  207. package/dist/auth-OeKZZ_2x.mjs.map +0 -1
  208. package/dist/chunk-hT5z_Zn9.mjs +0 -35
  209. package/dist/config-store-WL7dNMS6.mjs.map +0 -1
  210. package/dist/delete-BEXOOFAJ.mjs.map +0 -1
  211. package/dist/delete-CGy-cV6k.mjs.map +0 -1
  212. package/dist/delete-CKqlAUT8.mjs.map +0 -1
  213. package/dist/delete-CcyrLNZv.mjs.map +0 -1
  214. package/dist/delete-Cjxehwj7.mjs.map +0 -1
  215. package/dist/document-output-C5PWbz2p.mjs.map +0 -1
  216. package/dist/edit-BuKMUNVC.mjs.map +0 -1
  217. package/dist/edit-DFnOnk4i.mjs.map +0 -1
  218. package/dist/editor-xrF-j3UE.mjs.map +0 -1
  219. package/dist/get-Doi-NKAh.mjs.map +0 -1
  220. package/dist/logout-Bslt_ZJ4.mjs +0 -11
  221. package/dist/logout-Bslt_ZJ4.mjs.map +0 -1
  222. package/dist/onboarding-C1t1yoay.mjs.map +0 -1
  223. package/dist/output-BM7aBFwt.mjs.map +0 -1
  224. package/dist/payload-CN11pUto.mjs.map +0 -1
  225. package/dist/resolve-BogJOR7R.mjs.map +0 -1
  226. package/dist/resolve-Bp1AfBmM.mjs.map +0 -1
  227. package/dist/resolve-Bw5Po9yK.mjs.map +0 -1
  228. package/dist/resolve-CyjMlaoJ.mjs.map +0 -1
  229. package/dist/set-ClbrGFGv.mjs.map +0 -1
  230. package/dist/shared-C2EAn5h_.mjs.map +0 -1
  231. package/dist/status-Cvyrrx-J.mjs +0 -22
  232. package/dist/status-Cvyrrx-J.mjs.map +0 -1
  233. package/dist/update-CJjwg09n.mjs.map +0 -1
  234. package/dist/update-qfiC-9Og.mjs.map +0 -1
  235. package/dist/whoami-UwcdRchK.mjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-output-BFJdwPV0.mjs","names":[],"sources":["../src/core/document-output.ts"],"sourcesContent":["import { MxsError, MxsErrorCode } from './errors'\nimport { type LexicalState, serializeFromLexical } from './litexml-codec'\nimport { emitSuccess, type OutputOptions } from './output'\n\nexport type DocumentKind = 'post' | 'note' | 'page'\n\nconst POST_LIST_OUTPUT_MODES = new Set([\n 'pretty-json',\n 'json',\n 'readable',\n 'llm',\n])\n\nconst DOCUMENT_OUTPUT_MODES = new Set([\n 'pretty-json',\n 'json',\n 'readable',\n 'llm',\n 'envelope',\n])\n\nexport function emitDocument(\n kind: DocumentKind,\n data: unknown,\n opts: OutputOptions,\n): void {\n const mode = opts.output ?? 'pretty-json'\n if (!DOCUMENT_OUTPUT_MODES.has(mode)) {\n throw new MxsError({\n code: MxsErrorCode.ValidationFailed,\n message: `unsupported --output value: ${mode}`,\n hint: 'use --output pretty-json, json, readable, llm, or envelope',\n })\n }\n\n if (opts.json || mode === 'json' || mode === 'pretty-json') {\n emitSuccess(data, opts)\n return\n }\n\n const doc = unwrapDocument(data)\n const rendered =\n mode === 'envelope'\n ? renderDocumentEnvelope(kind, doc)\n : renderReadableDocument(kind, doc)\n process.stdout.write(`${rendered}\\n`)\n}\n\nexport function emitPostList(data: unknown, opts: OutputOptions): void {\n const mode = opts.output ?? 'pretty-json'\n if (!POST_LIST_OUTPUT_MODES.has(mode)) {\n throw new MxsError({\n code: MxsErrorCode.ValidationFailed,\n message: `unsupported --output value for post list: ${mode}`,\n hint: 'use --output pretty-json, json, readable, or llm',\n })\n }\n\n if (opts.json || mode === 'json' || mode === 'pretty-json') {\n emitSuccess(data, opts)\n return\n }\n\n process.stdout.write(`${renderPostList(data)}\\n`)\n}\n\nexport function renderReadableDocument(\n kind: DocumentKind,\n data: unknown,\n): string {\n const doc = asRecord(data)\n const lines: string[] = [kind]\n const fields = collectReadableFields(kind, doc)\n\n for (const [key, value] of fields) {\n if (value === undefined || value === null || value === '') continue\n lines.push(`${key}: ${formatScalar(value)}`)\n }\n\n const summary = firstString(doc, 'summary', 'subtitle')\n if (summary) {\n lines.push('', 'summary:', summary)\n }\n\n const content = renderContent(doc)\n if (content.body) {\n lines.push(\n '',\n `content_format: ${content.format}`,\n '',\n 'content:',\n content.body,\n )\n }\n\n return lines.join('\\n')\n}\n\nexport function renderPostList(data: unknown): string {\n const payload = asRecord(data)\n const rows = Array.isArray(payload.data)\n ? payload.data\n : Array.isArray(data)\n ? data\n : []\n const pagination = asRecord(first(payload, 'pagination'))\n const lines = ['posts']\n\n if (rows.length > 0) {\n lines.push(`count: ${rows.length}`)\n } else {\n lines.push('count: 0')\n }\n\n const page = first(pagination, 'page', 'currentPage')\n const size = first(pagination, 'size', 'pageSize')\n const total = first(pagination, 'total', 'totalCount')\n if (page !== undefined) lines.push(`page: ${formatScalar(page)}`)\n if (size !== undefined) lines.push(`size: ${formatScalar(size)}`)\n if (total !== undefined) lines.push(`total: ${formatScalar(total)}`)\n\n rows.forEach((row, index) => {\n const doc = asRecord(row)\n lines.push('', `post ${index + 1}:`)\n const fields: Array<[string, unknown]> = [\n ['id', first(doc, 'id')],\n ['title', first(doc, 'title')],\n ['slug', first(doc, 'slug')],\n ['state', publishState(doc)],\n ['category', relationLabel(first(doc, 'category'))],\n ['tags', first(doc, 'tags')],\n ['summary', first(doc, 'summary')],\n ['created_at', first(doc, 'created_at', 'createdAt')],\n ['modified_at', first(doc, 'modified_at', 'modifiedAt')],\n ['source_lang', first(doc, 'source_lang', 'sourceLang')],\n ['translated', first(doc, 'is_translated', 'isTranslated')],\n ]\n\n for (const [key, value] of fields) {\n if (value === undefined || value === null || value === '') continue\n lines.push(`${key}: ${formatScalar(value)}`)\n }\n })\n\n return lines.join('\\n')\n}\n\nexport function renderDocumentEnvelope(\n kind: DocumentKind,\n data: unknown,\n): string {\n const doc = asRecord(data)\n const root = kind === 'note' ? 'mxnote' : 'mxpost'\n const meta = collectEnvelopeMeta(kind, doc)\n const metaLines = meta.map(([key, value]) => renderEnvelopeMeta(key, value))\n const content = renderContent(doc)\n\n return `<${root}>\n <meta>\n${metaLines.join('\\n')}\n </meta>\n <content>\n${content.body}\n </content>\n</${root}>`\n}\n\nfunction collectReadableFields(\n kind: DocumentKind,\n doc: Record<string, unknown>,\n): Array<[string, unknown]> {\n const base: Array<[string, unknown]> = [\n ['id', first(doc, 'id')],\n ['title', first(doc, 'title')],\n ['slug', first(doc, 'slug')],\n ]\n\n if (kind === 'post') {\n base.push(\n ['state', publishState(doc)],\n ['category', relationLabel(first(doc, 'category'))],\n ['tags', first(doc, 'tags')],\n ['pin', first(doc, 'pin')],\n )\n } else if (kind === 'note') {\n base.push(\n ['nid', first(doc, 'nid')],\n ['state', publishState(doc)],\n ['topic', relationLabel(first(doc, 'topic'))],\n ['mood', first(doc, 'mood')],\n ['weather', first(doc, 'weather')],\n ['public_at', first(doc, 'public_at', 'publicAt')],\n ['bookmark', first(doc, 'bookmark')],\n )\n } else {\n base.push(\n ['subtitle', first(doc, 'subtitle')],\n ['order', first(doc, 'order')],\n )\n }\n\n base.push(\n ['created_at', first(doc, 'created_at', 'createdAt')],\n ['modified_at', first(doc, 'modified_at', 'modifiedAt')],\n ['source_lang', first(doc, 'source_lang', 'sourceLang')],\n ['translated', first(doc, 'is_translated', 'isTranslated')],\n )\n\n return base\n}\n\nfunction collectEnvelopeMeta(\n kind: DocumentKind,\n doc: Record<string, unknown>,\n): Array<[string, unknown]> {\n const meta: Array<[string, unknown]> = [\n ['title', first(doc, 'title')],\n ['slug', first(doc, 'slug')],\n ]\n\n if (kind === 'post') {\n meta.push(\n ['category', relationSlugOrLabel(first(doc, 'category'))],\n ['state', publishState(doc) === 'published' ? 'publish' : 'draft'],\n ['summary', first(doc, 'summary')],\n ['tags', first(doc, 'tags')],\n )\n } else if (kind === 'note') {\n meta.push(\n ['topic', relationSlugOrLabel(first(doc, 'topic'))],\n ['state', publishState(doc) === 'published' ? 'publish' : 'draft'],\n ['mood', first(doc, 'mood')],\n ['weather', first(doc, 'weather')],\n ['publicAt', first(doc, 'public_at', 'publicAt')],\n ['bookmark', first(doc, 'bookmark')],\n ['location', first(doc, 'location')],\n )\n } else {\n meta.push(\n ['subtitle', first(doc, 'subtitle')],\n ['order', first(doc, 'order')],\n )\n }\n\n meta.push(['format', contentFormat(doc)])\n return meta.filter(\n ([, value]) => value !== undefined && value !== null && value !== '',\n )\n}\n\nfunction renderContent(doc: Record<string, unknown>): {\n body: string\n format: 'litexml' | 'markdown' | 'text'\n} {\n const format = contentFormat(doc)\n const content = firstString(doc, 'content')\n const text = firstString(doc, 'text')\n\n if (format === 'lexical' && content) {\n try {\n return {\n body: serializeFromLexical(JSON.parse(content) as LexicalState),\n format: 'litexml',\n }\n } catch {\n return { body: text || content, format: text ? 'text' : 'markdown' }\n }\n }\n\n return {\n body: content || text || '',\n format: format === 'markdown' ? 'markdown' : 'text',\n }\n}\n\nfunction unwrapDocument(data: unknown): unknown {\n const obj = asRecord(data)\n const nested = obj.data\n if (nested && typeof nested === 'object' && !Array.isArray(nested))\n return nested\n return data\n}\n\nfunction asRecord(value: unknown): Record<string, unknown> {\n return value && typeof value === 'object' && !Array.isArray(value)\n ? (value as Record<string, unknown>)\n : {}\n}\n\nfunction first(record: Record<string, unknown>, ...keys: string[]): unknown {\n for (const key of keys) {\n if (record[key] !== undefined && record[key] !== null) return record[key]\n }\n return undefined\n}\n\nfunction firstString(\n record: Record<string, unknown>,\n ...keys: string[]\n): string {\n const value = first(record, ...keys)\n return typeof value === 'string' ? value : ''\n}\n\nfunction contentFormat(doc: Record<string, unknown>): string {\n const value = first(doc, 'content_format', 'contentFormat')\n return typeof value === 'string' ? value : 'markdown'\n}\n\nfunction publishState(doc: Record<string, unknown>): string | undefined {\n const value = first(doc, 'is_published', 'isPublished')\n if (typeof value === 'boolean') return value ? 'published' : 'draft'\n return undefined\n}\n\nfunction relationLabel(value: unknown): string | undefined {\n if (!value) return undefined\n if (typeof value === 'string') return value\n const obj = asRecord(value)\n return (\n firstString(obj, 'name') ||\n firstString(obj, 'slug') ||\n firstString(obj, 'id')\n )\n}\n\nfunction relationSlugOrLabel(value: unknown): string | undefined {\n if (!value) return undefined\n if (typeof value === 'string') return value\n const obj = asRecord(value)\n return (\n firstString(obj, 'slug') ||\n firstString(obj, 'name') ||\n firstString(obj, 'id')\n )\n}\n\nfunction formatScalar(value: unknown): string {\n if (Array.isArray(value)) return value.map(formatScalar).join(', ')\n if (value instanceof Date) return value.toISOString()\n if (typeof value === 'object' && value !== null) return JSON.stringify(value)\n return String(value)\n}\n\nfunction renderEnvelopeMeta(key: string, value: unknown): string {\n if (key === 'tags' && Array.isArray(value)) {\n const tags = value\n .map((item) => ` <tag>${escapeXml(formatScalar(item))}</tag>`)\n .join('\\n')\n return ` <tags>\\n${tags}\\n </tags>`\n }\n\n return ` <${key}>${escapeXml(formatScalar(value))}</${key}>`\n}\n\nfunction escapeXml(value: string): string {\n return value\n .replaceAll('&', '&amp;')\n .replaceAll('<', '&lt;')\n .replaceAll('>', '&gt;')\n}\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { i as emitSuccess, r as emitInfo, s as MxsError } from "./output-BM7aBFwt.mjs";
2
- import { t as runEditorRoundTrip } from "./editor-xrF-j3UE.mjs";
3
- import { n as resolveContext, t as buildApiClient } from "./shared-C2EAn5h_.mjs";
1
+ import { c as MxsErrorCode, i as emitSuccess, r as emitInfo, s as MxsError } from "./output-vzequvhd.mjs";
2
+ import { t as runEditorRoundTrip } from "./editor-BIw1ALTF.mjs";
3
+ import { n as resolveContext, t as buildApiClient } from "./shared-d0_6ZPn_.mjs";
4
4
  //#region src/commands/config/edit.ts
5
5
  async function run(flags, out) {
6
6
  const client = buildApiClient(await resolveContext(flags, out), flags);
@@ -19,7 +19,7 @@ async function run(flags, out) {
19
19
  parsed = JSON.parse(next);
20
20
  } catch (err) {
21
21
  throw new MxsError({
22
- code: "validation.failed",
22
+ code: MxsErrorCode.ValidationFailed,
23
23
  message: `invalid JSON: ${err?.message ?? err}`
24
24
  });
25
25
  }
@@ -37,4 +37,4 @@ async function run(flags, out) {
37
37
  //#endregion
38
38
  export { run };
39
39
 
40
- //# sourceMappingURL=edit-BuKMUNVC.mjs.map
40
+ //# sourceMappingURL=edit-BMjTbPQO.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit-BMjTbPQO.mjs","names":[],"sources":["../src/commands/config/edit.ts"],"sourcesContent":["import { runEditorRoundTrip } from '../../core/editor'\nimport { MxsError, MxsErrorCode } from '../../core/errors'\nimport { emitInfo, emitSuccess, type OutputOptions } from '../../core/output'\nimport {\n buildApiClient,\n type GlobalFlags,\n resolveContext,\n} from '../internal/shared'\n\nexport async function run(flags: GlobalFlags, out: OutputOptions) {\n const ctx = await resolveContext(flags, out)\n const client = buildApiClient(ctx, flags)\n const res = await client.request<Record<string, unknown>>('/options')\n const initial = JSON.stringify(res.data ?? {}, null, 2)\n const next = await runEditorRoundTrip({\n filename: 'mxs-config.json',\n initialContent: initial,\n })\n if (next.trim() === initial.trim()) {\n emitInfo('no changes', out)\n return\n }\n let parsed: Record<string, unknown>\n try {\n parsed = JSON.parse(next)\n } catch (err: any) {\n throw new MxsError({\n code: MxsErrorCode.ValidationFailed,\n message: `invalid JSON: ${err?.message ?? err}`,\n })\n }\n if (flags.dryRun) {\n emitSuccess(parsed, out)\n return\n }\n const results: Record<string, unknown> = {}\n for (const [key, value] of Object.entries(parsed)) {\n const r = await client.request(`/options/${key}`, {\n method: 'PATCH',\n body: value,\n })\n results[key] = r.data\n }\n emitSuccess(results, out)\n}\n"],"mappings":";;;;AASA,eAAsB,IAAI,OAAoB,KAAoB;CAEhE,MAAM,SAAS,eAAe,MADZ,eAAe,OAAO,GAAG,GACR,KAAK;CACxC,MAAM,MAAM,MAAM,OAAO,QAAiC,UAAU;CACpE,MAAM,UAAU,KAAK,UAAU,IAAI,QAAQ,CAAC,GAAG,MAAM,CAAC;CACtD,MAAM,OAAO,MAAM,mBAAmB;EACpC,UAAU;EACV,gBAAgB;CAClB,CAAC;CACD,IAAI,KAAK,KAAK,MAAM,QAAQ,KAAK,GAAG;EAClC,SAAS,cAAc,GAAG;EAC1B;CACF;CACA,IAAI;CACJ,IAAI;EACF,SAAS,KAAK,MAAM,IAAI;CAC1B,SAAS,KAAU;EACjB,MAAM,IAAI,SAAS;GACjB,MAAM,aAAa;GACnB,SAAS,iBAAiB,KAAK,WAAW;EAC5C,CAAC;CACH;CACA,IAAI,MAAM,QAAQ;EAChB,YAAY,QAAQ,GAAG;EACvB;CACF;CACA,MAAM,UAAmC,CAAC;CAC1C,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,MAAM,GAK9C,QAAQ,QAAO,MAJC,OAAO,QAAQ,YAAY,OAAO;EAChD,QAAQ;EACR,MAAM;CACR,CAAC,GACgB;CAEnB,YAAY,SAAS,GAAG;AAC1B"}
@@ -1,10 +1,10 @@
1
- import { i as emitSuccess, r as emitInfo, s as MxsError } from "./output-BM7aBFwt.mjs";
2
- import { n as buildPagePayload, s as parseEnvelope } from "./payload-CN11pUto.mjs";
3
- import { t as runEditorRoundTrip } from "./editor-xrF-j3UE.mjs";
4
- import { i as serializeFromLexical } from "./litexml-codec-CDoRloiR.mjs";
5
- import { r as isSnowflakeId } from "./resolve-BogJOR7R.mjs";
6
- import { n as resolveContext, t as buildApiClient } from "./shared-C2EAn5h_.mjs";
7
- import { n as applyPageEnvelopeMeta } from "./envelope-overlays-DPAlMNW1.mjs";
1
+ import { c as MxsErrorCode, i as emitSuccess, r as emitInfo, s as MxsError } from "./output-vzequvhd.mjs";
2
+ import { n as buildPagePayload, s as parseEnvelope } from "./payload-CO4zbNr8.mjs";
3
+ import { i as serializeFromLexical } from "./litexml-codec-CfIxcPG0.mjs";
4
+ import { t as runEditorRoundTrip } from "./editor-BIw1ALTF.mjs";
5
+ import { r as isSnowflakeId } from "./resolve-CUsHGcb-.mjs";
6
+ import { n as resolveContext, t as buildApiClient } from "./shared-d0_6ZPn_.mjs";
7
+ import { n as applyPageEnvelopeMeta } from "./envelope-overlays-DXXygxdF.mjs";
8
8
  //#region src/commands/page/edit.ts
9
9
  async function run(slugOrId, opts, flags, out) {
10
10
  const client = buildApiClient(await resolveContext(flags, out), flags);
@@ -51,7 +51,7 @@ async function resolveId(client, slugOrId) {
51
51
  if (isSnowflakeId(slugOrId)) return slugOrId;
52
52
  const res = await client.request(`/pages/slug/${slugOrId}`);
53
53
  if (!res.data?.id) throw new MxsError({
54
- code: "resource.not_found",
54
+ code: MxsErrorCode.ResourceNotFound,
55
55
  message: `page not found: ${slugOrId}`
56
56
  });
57
57
  return res.data.id;
@@ -77,4 +77,4 @@ function esc(s) {
77
77
  //#endregion
78
78
  export { run };
79
79
 
80
- //# sourceMappingURL=edit-DFnOnk4i.mjs.map
80
+ //# sourceMappingURL=edit-BnEmMmv6.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit-BnEmMmv6.mjs","names":[],"sources":["../src/commands/page/edit.ts"],"sourcesContent":["import type { ApiClient } from '../../core/api-client'\nimport { runEditorRoundTrip } from '../../core/editor'\nimport { parseEnvelope } from '../../core/envelope'\nimport { MxsError, MxsErrorCode } from '../../core/errors'\nimport { serializeFromLexical } from '../../core/litexml-codec'\nimport { emitInfo, emitSuccess, type OutputOptions } from '../../core/output'\nimport { buildPagePayload, type PageFlagInputs } from '../../core/payload'\nimport { isSnowflakeId } from '../../core/resolve'\nimport { applyPageEnvelopeMeta } from '../internal/envelope-overlays'\nimport {\n buildApiClient,\n type GlobalFlags,\n resolveContext,\n} from '../internal/shared'\n\nexport async function run(\n slugOrId: string,\n opts: PageFlagInputs,\n flags: GlobalFlags,\n out: OutputOptions,\n) {\n const ctx = await resolveContext(flags, out)\n const client = buildApiClient(ctx, flags)\n\n if (!opts.file && opts.content === undefined) {\n const xml = await materialize(client, slugOrId)\n const next = await runEditorRoundTrip({\n filename: `page-${slugOrId}.xml`,\n initialContent: xml,\n })\n if (next.trim() === xml.trim()) {\n emitInfo('no changes', out)\n return\n }\n const parsed = parseEnvelope(next, 'post')\n const built = await buildPagePayload({\n ...opts,\n content: parsed.contentXml,\n format: opts.format ?? 'lexical',\n })\n applyPageEnvelopeMeta(built.payload, parsed.meta)\n if (flags.dryRun) {\n emitSuccess(built.payload, out)\n return\n }\n const id = await resolveId(client, slugOrId)\n const res = await client.request(`/pages/${id}`, {\n method: 'PUT',\n body: built.payload,\n })\n emitSuccess(res.data, out)\n return\n }\n\n const built = await buildPagePayload(opts)\n if (flags.dryRun) {\n emitSuccess(built.payload, out)\n return\n }\n const id = await resolveId(client, slugOrId)\n const res = await client.request(`/pages/${id}`, {\n method: 'PUT',\n body: built.payload,\n })\n emitSuccess(res.data, out)\n}\n\nasync function resolveId(client: ApiClient, slugOrId: string): Promise<string> {\n if (isSnowflakeId(slugOrId)) return slugOrId\n const res = await client.request<{ id: string }>(`/pages/slug/${slugOrId}`)\n if (!res.data?.id)\n throw new MxsError({\n code: MxsErrorCode.ResourceNotFound,\n message: `page not found: ${slugOrId}`,\n })\n return res.data.id\n}\n\nasync function materialize(\n client: ApiClient,\n slugOrId: string,\n): Promise<string> {\n const path = isSnowflakeId(slugOrId)\n ? `/pages/${slugOrId}`\n : `/pages/slug/${slugOrId}`\n const res = await client.request<any>(path, { query: { prefer: 'lexical' } })\n const page = res.data\n const inner =\n page.contentFormat === 'lexical' && page.content\n ? serializeFromLexical(JSON.parse(page.content))\n : (page.content ?? '')\n return `<mxpost>\n <meta>\n <title>${esc(page.title ?? '')}</title>\n <slug>${esc(page.slug ?? '')}</slug>\n </meta>\n <content>\n${inner}\n </content>\n</mxpost>\n`\n}\n\nfunction esc(s: string): string {\n return s\n .replaceAll('&', '&amp;')\n .replaceAll('<', '&lt;')\n .replaceAll('>', '&gt;')\n}\n"],"mappings":";;;;;;;;AAeA,eAAsB,IACpB,UACA,MACA,OACA,KACA;CAEA,MAAM,SAAS,eAAe,MADZ,eAAe,OAAO,GAAG,GACR,KAAK;CAExC,IAAI,CAAC,KAAK,QAAQ,KAAK,YAAY,KAAA,GAAW;EAC5C,MAAM,MAAM,MAAM,YAAY,QAAQ,QAAQ;EAC9C,MAAM,OAAO,MAAM,mBAAmB;GACpC,UAAU,QAAQ,SAAS;GAC3B,gBAAgB;EAClB,CAAC;EACD,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,GAAG;GAC9B,SAAS,cAAc,GAAG;GAC1B;EACF;EACA,MAAM,SAAS,cAAc,MAAM,MAAM;EACzC,MAAM,QAAQ,MAAM,iBAAiB;GACnC,GAAG;GACH,SAAS,OAAO;GAChB,QAAQ,KAAK,UAAU;EACzB,CAAC;EACD,sBAAsB,MAAM,SAAS,OAAO,IAAI;EAChD,IAAI,MAAM,QAAQ;GAChB,YAAY,MAAM,SAAS,GAAG;GAC9B;EACF;EACA,MAAM,KAAK,MAAM,UAAU,QAAQ,QAAQ;EAK3C,aAAY,MAJM,OAAO,QAAQ,UAAU,MAAM;GAC/C,QAAQ;GACR,MAAM,MAAM;EACd,CAAC,GACe,MAAM,GAAG;EACzB;CACF;CAEA,MAAM,QAAQ,MAAM,iBAAiB,IAAI;CACzC,IAAI,MAAM,QAAQ;EAChB,YAAY,MAAM,SAAS,GAAG;EAC9B;CACF;CACA,MAAM,KAAK,MAAM,UAAU,QAAQ,QAAQ;CAK3C,aAAY,MAJM,OAAO,QAAQ,UAAU,MAAM;EAC/C,QAAQ;EACR,MAAM,MAAM;CACd,CAAC,GACe,MAAM,GAAG;AAC3B;AAEA,eAAe,UAAU,QAAmB,UAAmC;CAC7E,IAAI,cAAc,QAAQ,GAAG,OAAO;CACpC,MAAM,MAAM,MAAM,OAAO,QAAwB,eAAe,UAAU;CAC1E,IAAI,CAAC,IAAI,MAAM,IACb,MAAM,IAAI,SAAS;EACjB,MAAM,aAAa;EACnB,SAAS,mBAAmB;CAC9B,CAAC;CACH,OAAO,IAAI,KAAK;AAClB;AAEA,eAAe,YACb,QACA,UACiB;CACjB,MAAM,OAAO,cAAc,QAAQ,IAC/B,UAAU,aACV,eAAe;CAEnB,MAAM,QAAO,MADK,OAAO,QAAa,MAAM,EAAE,OAAO,EAAE,QAAQ,UAAU,EAAE,CAAC,GAC3D;CACjB,MAAM,QACJ,KAAK,kBAAkB,aAAa,KAAK,UACrC,qBAAqB,KAAK,MAAM,KAAK,OAAO,CAAC,IAC5C,KAAK,WAAW;CACvB,OAAO;;aAEI,IAAI,KAAK,SAAS,EAAE,EAAE;YACvB,IAAI,KAAK,QAAQ,EAAE,EAAE;;;EAG/B,MAAM;;;;AAIR;AAEA,SAAS,IAAI,GAAmB;CAC9B,OAAO,EACJ,WAAW,KAAK,OAAO,EACvB,WAAW,KAAK,MAAM,EACtB,WAAW,KAAK,MAAM;AAC3B"}
@@ -1,11 +1,11 @@
1
- import { i as emitSuccess, r as emitInfo } from "./output-BM7aBFwt.mjs";
2
- import { s as parseEnvelope, t as buildNotePayload } from "./payload-CN11pUto.mjs";
3
- import { t as runEditorRoundTrip } from "./editor-xrF-j3UE.mjs";
4
- import { i as serializeFromLexical } from "./litexml-codec-CDoRloiR.mjs";
5
- import { n as resolveContext, t as buildApiClient } from "./shared-C2EAn5h_.mjs";
6
- import { r as resolveTopicRefs, t as buildResolver } from "./resolve-helpers-CahPoJ0Y.mjs";
7
- import { t as resolveNoteId } from "./resolve-CyjMlaoJ.mjs";
8
- import { t as applyNoteEnvelopeMeta } from "./envelope-overlays-DPAlMNW1.mjs";
1
+ import { i as emitSuccess, r as emitInfo } from "./output-vzequvhd.mjs";
2
+ import { s as parseEnvelope, t as buildNotePayload } from "./payload-CO4zbNr8.mjs";
3
+ import { i as serializeFromLexical } from "./litexml-codec-CfIxcPG0.mjs";
4
+ import { t as runEditorRoundTrip } from "./editor-BIw1ALTF.mjs";
5
+ import { n as resolveContext, t as buildApiClient } from "./shared-d0_6ZPn_.mjs";
6
+ import { r as resolveTopicRefs, t as buildResolver } from "./resolve-helpers-CoHYa2uk.mjs";
7
+ import { t as resolveNoteId } from "./resolve-BYg5Gees.mjs";
8
+ import { t as applyNoteEnvelopeMeta } from "./envelope-overlays-DXXygxdF.mjs";
9
9
  //#region src/commands/note/edit.ts
10
10
  async function run(slugOrId, opts, flags, out) {
11
11
  const client = buildApiClient(await resolveContext(flags, out), flags);
@@ -76,4 +76,4 @@ function esc(s) {
76
76
  //#endregion
77
77
  export { run };
78
78
 
79
- //# sourceMappingURL=edit-BRaZ6GGg.mjs.map
79
+ //# sourceMappingURL=edit-C4vRSmRy.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"edit-BRaZ6GGg.mjs","names":[],"sources":["../src/commands/note/edit.ts"],"sourcesContent":["import type { ApiClient } from '../../core/api-client'\nimport { runEditorRoundTrip } from '../../core/editor'\nimport { parseEnvelope } from '../../core/envelope'\nimport { serializeFromLexical } from '../../core/litexml-codec'\nimport { emitInfo, emitSuccess, type OutputOptions } from '../../core/output'\nimport { buildNotePayload, type NoteFlagInputs } from '../../core/payload'\nimport { applyNoteEnvelopeMeta } from '../internal/envelope-overlays'\nimport { buildResolver, resolveTopicRefs } from '../internal/resolve-helpers'\nimport {\n buildApiClient,\n type GlobalFlags,\n resolveContext,\n} from '../internal/shared'\nimport { resolveNoteId } from './resolve'\n\nexport async function run(\n slugOrId: string,\n opts: NoteFlagInputs,\n flags: GlobalFlags,\n out: OutputOptions,\n) {\n const ctx = await resolveContext(flags, out)\n const client = buildApiClient(ctx, flags)\n\n if (!opts.file && opts.content === undefined) {\n const xml = await materializeForEditor(client, slugOrId)\n const next = await runEditorRoundTrip({\n filename: `note-${slugOrId}.xml`,\n initialContent: xml,\n })\n if (next.trim() === xml.trim()) {\n emitInfo('no changes', out)\n return\n }\n const parsed = parseEnvelope(next, 'note')\n const built = await buildNotePayload({\n ...opts,\n content: parsed.contentXml,\n format: opts.format ?? 'lexical',\n })\n applyNoteEnvelopeMeta(built.payload, parsed.meta)\n if (flags.dryRun) {\n emitSuccess(built.payload, out)\n return\n }\n const resolver = buildResolver(client)\n await resolveTopicRefs(built.payload, resolver)\n const id = await resolveNoteId(client, slugOrId)\n const res = await client.request(`/notes/${id}`, {\n method: 'PUT',\n body: built.payload,\n })\n emitSuccess(res.data, out)\n return\n }\n\n const built = await buildNotePayload(opts)\n if (flags.dryRun) {\n emitSuccess(built.payload, out)\n return\n }\n const resolver = buildResolver(client)\n await resolveTopicRefs(built.payload, resolver)\n const id = await resolveNoteId(client, slugOrId)\n const res = await client.request(`/notes/${id}`, {\n method: 'PUT',\n body: built.payload,\n })\n emitSuccess(res.data, out)\n}\n\nasync function materializeForEditor(\n client: ApiClient,\n slugOrId: string,\n): Promise<string> {\n const id = await resolveNoteId(client, slugOrId)\n const res = await client.request<{\n id?: string\n title?: string\n slug?: string\n contentFormat?: string\n content?: string\n isPublished?: boolean\n mood?: string\n weather?: string\n }>(`/notes/${id}`, { query: { prefer: 'lexical' } })\n const note: any = res.data\n const inner =\n note.contentFormat === 'lexical' && note.content\n ? serializeFromLexical(JSON.parse(note.content))\n : (note.content ?? '')\n return `<mxnote>\n <meta>\n <title>${esc(note.title ?? '')}</title>\n ${note.slug ? `<slug>${esc(note.slug)}</slug>` : ''}\n <state>${note.isPublished ? 'publish' : 'draft'}</state>\n ${note.mood ? `<mood>${esc(note.mood)}</mood>` : ''}\n ${note.weather ? `<weather>${esc(note.weather)}</weather>` : ''}\n </meta>\n <content>\n${inner}\n </content>\n</mxnote>\n`\n}\n\nfunction esc(s: string): string {\n return s\n .replaceAll('&', '&amp;')\n .replaceAll('<', '&lt;')\n .replaceAll('>', '&gt;')\n}\n"],"mappings":";;;;;;;;;AAeA,eAAsB,IACpB,UACA,MACA,OACA,KACA;CAEA,MAAM,SAAS,eAAe,MADZ,eAAe,OAAO,GAAG,GACR,KAAK;CAExC,IAAI,CAAC,KAAK,QAAQ,KAAK,YAAY,KAAA,GAAW;EAC5C,MAAM,MAAM,MAAM,qBAAqB,QAAQ,QAAQ;EACvD,MAAM,OAAO,MAAM,mBAAmB;GACpC,UAAU,QAAQ,SAAS;GAC3B,gBAAgB;EAClB,CAAC;EACD,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,GAAG;GAC9B,SAAS,cAAc,GAAG;GAC1B;EACF;EACA,MAAM,SAAS,cAAc,MAAM,MAAM;EACzC,MAAM,QAAQ,MAAM,iBAAiB;GACnC,GAAG;GACH,SAAS,OAAO;GAChB,QAAQ,KAAK,UAAU;EACzB,CAAC;EACD,sBAAsB,MAAM,SAAS,OAAO,IAAI;EAChD,IAAI,MAAM,QAAQ;GAChB,YAAY,MAAM,SAAS,GAAG;GAC9B;EACF;EACA,MAAM,WAAW,cAAc,MAAM;EACrC,MAAM,iBAAiB,MAAM,SAAS,QAAQ;EAC9C,MAAM,KAAK,MAAM,cAAc,QAAQ,QAAQ;EAK/C,aAAY,MAJM,OAAO,QAAQ,UAAU,MAAM;GAC/C,QAAQ;GACR,MAAM,MAAM;EACd,CAAC,GACe,MAAM,GAAG;EACzB;CACF;CAEA,MAAM,QAAQ,MAAM,iBAAiB,IAAI;CACzC,IAAI,MAAM,QAAQ;EAChB,YAAY,MAAM,SAAS,GAAG;EAC9B;CACF;CACA,MAAM,WAAW,cAAc,MAAM;CACrC,MAAM,iBAAiB,MAAM,SAAS,QAAQ;CAC9C,MAAM,KAAK,MAAM,cAAc,QAAQ,QAAQ;CAK/C,aAAY,MAJM,OAAO,QAAQ,UAAU,MAAM;EAC/C,QAAQ;EACR,MAAM,MAAM;CACd,CAAC,GACe,MAAM,GAAG;AAC3B;AAEA,eAAe,qBACb,QACA,UACiB;CACjB,MAAM,KAAK,MAAM,cAAc,QAAQ,QAAQ;CAW/C,MAAM,QAAY,MAVA,OAAO,QAStB,UAAU,MAAM,EAAE,OAAO,EAAE,QAAQ,UAAU,EAAE,CAAC,GAC7B;CACtB,MAAM,QACJ,KAAK,kBAAkB,aAAa,KAAK,UACrC,qBAAqB,KAAK,MAAM,KAAK,OAAO,CAAC,IAC5C,KAAK,WAAW;CACvB,OAAO;;aAEI,IAAI,KAAK,SAAS,EAAE,EAAE;MAC7B,KAAK,OAAO,SAAS,IAAI,KAAK,IAAI,EAAE,WAAW,GAAG;aAC3C,KAAK,cAAc,YAAY,QAAQ;MAC9C,KAAK,OAAO,SAAS,IAAI,KAAK,IAAI,EAAE,WAAW,GAAG;MAClD,KAAK,UAAU,YAAY,IAAI,KAAK,OAAO,EAAE,cAAc,GAAG;;;EAGlE,MAAM;;;;AAIR;AAEA,SAAS,IAAI,GAAmB;CAC9B,OAAO,EACJ,WAAW,KAAK,OAAO,EACvB,WAAW,KAAK,MAAM,EACtB,WAAW,KAAK,MAAM;AAC3B"}
1
+ {"version":3,"file":"edit-C4vRSmRy.mjs","names":[],"sources":["../src/commands/note/edit.ts"],"sourcesContent":["import type { ApiClient } from '../../core/api-client'\nimport { runEditorRoundTrip } from '../../core/editor'\nimport { parseEnvelope } from '../../core/envelope'\nimport { serializeFromLexical } from '../../core/litexml-codec'\nimport { emitInfo, emitSuccess, type OutputOptions } from '../../core/output'\nimport { buildNotePayload, type NoteFlagInputs } from '../../core/payload'\nimport { applyNoteEnvelopeMeta } from '../internal/envelope-overlays'\nimport { buildResolver, resolveTopicRefs } from '../internal/resolve-helpers'\nimport {\n buildApiClient,\n type GlobalFlags,\n resolveContext,\n} from '../internal/shared'\nimport { resolveNoteId } from './resolve'\n\nexport async function run(\n slugOrId: string,\n opts: NoteFlagInputs,\n flags: GlobalFlags,\n out: OutputOptions,\n) {\n const ctx = await resolveContext(flags, out)\n const client = buildApiClient(ctx, flags)\n\n if (!opts.file && opts.content === undefined) {\n const xml = await materializeForEditor(client, slugOrId)\n const next = await runEditorRoundTrip({\n filename: `note-${slugOrId}.xml`,\n initialContent: xml,\n })\n if (next.trim() === xml.trim()) {\n emitInfo('no changes', out)\n return\n }\n const parsed = parseEnvelope(next, 'note')\n const built = await buildNotePayload({\n ...opts,\n content: parsed.contentXml,\n format: opts.format ?? 'lexical',\n })\n applyNoteEnvelopeMeta(built.payload, parsed.meta)\n if (flags.dryRun) {\n emitSuccess(built.payload, out)\n return\n }\n const resolver = buildResolver(client)\n await resolveTopicRefs(built.payload, resolver)\n const id = await resolveNoteId(client, slugOrId)\n const res = await client.request(`/notes/${id}`, {\n method: 'PUT',\n body: built.payload,\n })\n emitSuccess(res.data, out)\n return\n }\n\n const built = await buildNotePayload(opts)\n if (flags.dryRun) {\n emitSuccess(built.payload, out)\n return\n }\n const resolver = buildResolver(client)\n await resolveTopicRefs(built.payload, resolver)\n const id = await resolveNoteId(client, slugOrId)\n const res = await client.request(`/notes/${id}`, {\n method: 'PUT',\n body: built.payload,\n })\n emitSuccess(res.data, out)\n}\n\nasync function materializeForEditor(\n client: ApiClient,\n slugOrId: string,\n): Promise<string> {\n const id = await resolveNoteId(client, slugOrId)\n const res = await client.request<{\n id?: string\n title?: string\n slug?: string\n contentFormat?: string\n content?: string\n isPublished?: boolean\n mood?: string\n weather?: string\n }>(`/notes/${id}`, { query: { prefer: 'lexical' } })\n const note: any = res.data\n const inner =\n note.contentFormat === 'lexical' && note.content\n ? serializeFromLexical(JSON.parse(note.content))\n : (note.content ?? '')\n return `<mxnote>\n <meta>\n <title>${esc(note.title ?? '')}</title>\n ${note.slug ? `<slug>${esc(note.slug)}</slug>` : ''}\n <state>${note.isPublished ? 'publish' : 'draft'}</state>\n ${note.mood ? `<mood>${esc(note.mood)}</mood>` : ''}\n ${note.weather ? `<weather>${esc(note.weather)}</weather>` : ''}\n </meta>\n <content>\n${inner}\n </content>\n</mxnote>\n`\n}\n\nfunction esc(s: string): string {\n return s\n .replaceAll('&', '&amp;')\n .replaceAll('<', '&lt;')\n .replaceAll('>', '&gt;')\n}\n"],"mappings":";;;;;;;;;AAeA,eAAsB,IACpB,UACA,MACA,OACA,KACA;CAEA,MAAM,SAAS,eAAe,MADZ,eAAe,OAAO,GAAG,GACR,KAAK;CAExC,IAAI,CAAC,KAAK,QAAQ,KAAK,YAAY,KAAA,GAAW;EAC5C,MAAM,MAAM,MAAM,qBAAqB,QAAQ,QAAQ;EACvD,MAAM,OAAO,MAAM,mBAAmB;GACpC,UAAU,QAAQ,SAAS;GAC3B,gBAAgB;EAClB,CAAC;EACD,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,GAAG;GAC9B,SAAS,cAAc,GAAG;GAC1B;EACF;EACA,MAAM,SAAS,cAAc,MAAM,MAAM;EACzC,MAAM,QAAQ,MAAM,iBAAiB;GACnC,GAAG;GACH,SAAS,OAAO;GAChB,QAAQ,KAAK,UAAU;EACzB,CAAC;EACD,sBAAsB,MAAM,SAAS,OAAO,IAAI;EAChD,IAAI,MAAM,QAAQ;GAChB,YAAY,MAAM,SAAS,GAAG;GAC9B;EACF;EACA,MAAM,WAAW,cAAc,MAAM;EACrC,MAAM,iBAAiB,MAAM,SAAS,QAAQ;EAC9C,MAAM,KAAK,MAAM,cAAc,QAAQ,QAAQ;EAK/C,aAAY,MAJM,OAAO,QAAQ,UAAU,MAAM;GAC/C,QAAQ;GACR,MAAM,MAAM;EACd,CAAC,GACe,MAAM,GAAG;EACzB;CACF;CAEA,MAAM,QAAQ,MAAM,iBAAiB,IAAI;CACzC,IAAI,MAAM,QAAQ;EAChB,YAAY,MAAM,SAAS,GAAG;EAC9B;CACF;CACA,MAAM,WAAW,cAAc,MAAM;CACrC,MAAM,iBAAiB,MAAM,SAAS,QAAQ;CAC9C,MAAM,KAAK,MAAM,cAAc,QAAQ,QAAQ;CAK/C,aAAY,MAJM,OAAO,QAAQ,UAAU,MAAM;EAC/C,QAAQ;EACR,MAAM,MAAM;CACd,CAAC,GACe,MAAM,GAAG;AAC3B;AAEA,eAAe,qBACb,QACA,UACiB;CACjB,MAAM,KAAK,MAAM,cAAc,QAAQ,QAAQ;CAW/C,MAAM,QAAY,MAVA,OAAO,QAStB,UAAU,MAAM,EAAE,OAAO,EAAE,QAAQ,UAAU,EAAE,CAAC,GAC7B;CACtB,MAAM,QACJ,KAAK,kBAAkB,aAAa,KAAK,UACrC,qBAAqB,KAAK,MAAM,KAAK,OAAO,CAAC,IAC5C,KAAK,WAAW;CACvB,OAAO;;aAEI,IAAI,KAAK,SAAS,EAAE,EAAE;MAC7B,KAAK,OAAO,SAAS,IAAI,KAAK,IAAI,EAAE,WAAW,GAAG;aAC3C,KAAK,cAAc,YAAY,QAAQ;MAC9C,KAAK,OAAO,SAAS,IAAI,KAAK,IAAI,EAAE,WAAW,GAAG;MAClD,KAAK,UAAU,YAAY,IAAI,KAAK,OAAO,EAAE,cAAc,GAAG;;;EAGlE,MAAM;;;;AAIR;AAEA,SAAS,IAAI,GAAmB;CAC9B,OAAO,EACJ,WAAW,KAAK,OAAO,EACvB,WAAW,KAAK,MAAM,EACtB,WAAW,KAAK,MAAM;AAC3B"}
@@ -1,10 +1,10 @@
1
- import { i as emitSuccess, r as emitInfo } from "./output-BM7aBFwt.mjs";
2
- import { r as buildPostPayload, s as parseEnvelope } from "./payload-CN11pUto.mjs";
3
- import { t as runEditorRoundTrip } from "./editor-xrF-j3UE.mjs";
4
- import { i as serializeFromLexical } from "./litexml-codec-CDoRloiR.mjs";
5
- import { n as resolveContext, t as buildApiClient } from "./shared-C2EAn5h_.mjs";
6
- import { n as resolveCategoryRefs, t as buildResolver } from "./resolve-helpers-CahPoJ0Y.mjs";
7
- import { n as resolvePostReadPath, t as resolvePostId } from "./resolve-Bp1AfBmM.mjs";
1
+ import { i as emitSuccess, r as emitInfo } from "./output-vzequvhd.mjs";
2
+ import { r as buildPostPayload, s as parseEnvelope } from "./payload-CO4zbNr8.mjs";
3
+ import { i as serializeFromLexical } from "./litexml-codec-CfIxcPG0.mjs";
4
+ import { t as runEditorRoundTrip } from "./editor-BIw1ALTF.mjs";
5
+ import { n as resolveContext, t as buildApiClient } from "./shared-d0_6ZPn_.mjs";
6
+ import { n as resolveCategoryRefs, t as buildResolver } from "./resolve-helpers-CoHYa2uk.mjs";
7
+ import { n as resolvePostReadPath, t as resolvePostId } from "./resolve-jdb1VqAG.mjs";
8
8
  //#region src/commands/post/edit.ts
9
9
  async function run(slugOrId, opts, flags, out) {
10
10
  const client = buildApiClient(await resolveContext(flags, out), flags);
@@ -83,4 +83,4 @@ async function metaFromEnvelope(meta) {
83
83
  //#endregion
84
84
  export { run };
85
85
 
86
- //# sourceMappingURL=edit-t108N11Q.mjs.map
86
+ //# sourceMappingURL=edit-CQsW5gnk.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"edit-t108N11Q.mjs","names":[],"sources":["../src/commands/post/edit.ts"],"sourcesContent":["import type { ApiClient } from '../../core/api-client'\nimport { runEditorRoundTrip } from '../../core/editor'\nimport { parseEnvelope } from '../../core/envelope'\nimport { serializeFromLexical } from '../../core/litexml-codec'\nimport { emitInfo, emitSuccess, type OutputOptions } from '../../core/output'\nimport { buildPostPayload, type PostFlagInputs } from '../../core/payload'\nimport { buildResolver, resolveCategoryRefs } from '../internal/resolve-helpers'\nimport { buildApiClient, type GlobalFlags, resolveContext } from '../internal/shared'\nimport { resolvePostId, resolvePostReadPath } from './resolve'\n\nexport async function run(\n slugOrId: string,\n opts: PostFlagInputs,\n flags: GlobalFlags,\n out: OutputOptions,\n) {\n const ctx = await resolveContext(flags, out)\n const client = buildApiClient(ctx, flags)\n\n if (!opts.file && opts.content === undefined) {\n const xml = await materializeForEditor(client, slugOrId)\n const next = await runEditorRoundTrip({\n filename: `post-${slugOrId}.xml`,\n initialContent: xml,\n })\n if (next.trim() === xml.trim()) {\n emitInfo('no changes', out)\n return\n }\n const parsed = parseEnvelope(next, 'post')\n const payloadInputs: PostFlagInputs = {\n ...opts,\n content: parsed.contentXml,\n format: opts.format ?? 'lexical',\n }\n const built = await buildPostPayload(payloadInputs)\n Object.assign(built.payload, await metaFromEnvelope(parsed.meta))\n if (flags.dryRun) {\n emitSuccess(built.payload, out)\n return\n }\n const resolver = buildResolver(client)\n await resolveCategoryRefs(built.payload, resolver)\n const res = await client.request(\n `/posts/${await resolvePostId(client, slugOrId)}`,\n { method: 'PUT', body: built.payload },\n )\n emitSuccess(res.data, out)\n return\n }\n\n const built = await buildPostPayload(opts)\n if (flags.dryRun) {\n emitSuccess(built.payload, out)\n return\n }\n const resolver = buildResolver(client)\n await resolveCategoryRefs(built.payload, resolver)\n const res = await client.request(\n `/posts/${await resolvePostId(client, slugOrId)}`,\n { method: 'PUT', body: built.payload },\n )\n emitSuccess(res.data, out)\n}\n\nasync function materializeForEditor(\n client: ApiClient,\n slugOrId: string,\n): Promise<string> {\n const path = await resolvePostReadPath(client, slugOrId)\n const res = await client.request<{\n id: string\n title?: string\n slug?: string\n contentFormat?: string\n content?: string\n summary?: string\n isPublished?: boolean\n tags?: string[]\n }>(path, { query: { prefer: 'lexical' } })\n const post = res.data\n const isLexical = post.contentFormat === 'lexical'\n const innerXml =\n isLexical && post.content\n ? serializeFromLexical(JSON.parse(post.content))\n : (post.content ?? '')\n const tagsXml = (post.tags ?? [])\n .map((t: string) => ` <tag>${escapeXml(t)}</tag>`)\n .join('\\n')\n return `<mxpost>\n <meta>\n <title>${escapeXml(post.title ?? '')}</title>\n <slug>${escapeXml(post.slug ?? '')}</slug>\n <state>${post.isPublished ? 'publish' : 'draft'}</state>\n ${post.summary ? `<summary>${escapeXml(post.summary)}</summary>` : ''}\n ${tagsXml ? `<tags>\\n${tagsXml}\\n </tags>` : ''}\n </meta>\n <content>\n${innerXml}\n </content>\n</mxpost>\n`\n}\n\nfunction escapeXml(s: string): string {\n return s\n .replaceAll('&', '&amp;')\n .replaceAll('<', '&lt;')\n .replaceAll('>', '&gt;')\n}\n\nasync function metaFromEnvelope(\n meta: Record<string, unknown>,\n): Promise<Record<string, unknown>> {\n const overlay: Record<string, unknown> = {}\n if (typeof meta.title === 'string') overlay.title = meta.title\n if (typeof meta.slug === 'string') overlay.slug = meta.slug\n if (typeof meta.summary === 'string') overlay.summary = meta.summary\n if (meta.state === 'publish' || meta.state === 'draft')\n overlay.isPublished = meta.state === 'publish'\n if (Array.isArray(meta.tags)) overlay.tags = meta.tags\n return overlay\n}\n"],"mappings":";;;;;;;;AAUA,eAAsB,IACpB,UACA,MACA,OACA,KACA;CAEA,MAAM,SAAS,eAAe,MADZ,eAAe,OAAO,GAAG,GACR,KAAK;CAExC,IAAI,CAAC,KAAK,QAAQ,KAAK,YAAY,KAAA,GAAW;EAC5C,MAAM,MAAM,MAAM,qBAAqB,QAAQ,QAAQ;EACvD,MAAM,OAAO,MAAM,mBAAmB;GACpC,UAAU,QAAQ,SAAS;GAC3B,gBAAgB;EAClB,CAAC;EACD,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,GAAG;GAC9B,SAAS,cAAc,GAAG;GAC1B;EACF;EACA,MAAM,SAAS,cAAc,MAAM,MAAM;EAMzC,MAAM,QAAQ,MAAM,iBAAiB;GAJnC,GAAG;GACH,SAAS,OAAO;GAChB,QAAQ,KAAK,UAAU;EAEwB,CAAC;EAClD,OAAO,OAAO,MAAM,SAAS,MAAM,iBAAiB,OAAO,IAAI,CAAC;EAChE,IAAI,MAAM,QAAQ;GAChB,YAAY,MAAM,SAAS,GAAG;GAC9B;EACF;EACA,MAAM,WAAW,cAAc,MAAM;EACrC,MAAM,oBAAoB,MAAM,SAAS,QAAQ;EAKjD,aAAY,MAJM,OAAO,QACvB,UAAU,MAAM,cAAc,QAAQ,QAAQ,KAC9C;GAAE,QAAQ;GAAO,MAAM,MAAM;EAAQ,CACvC,GACgB,MAAM,GAAG;EACzB;CACF;CAEA,MAAM,QAAQ,MAAM,iBAAiB,IAAI;CACzC,IAAI,MAAM,QAAQ;EAChB,YAAY,MAAM,SAAS,GAAG;EAC9B;CACF;CACA,MAAM,WAAW,cAAc,MAAM;CACrC,MAAM,oBAAoB,MAAM,SAAS,QAAQ;CAKjD,aAAY,MAJM,OAAO,QACvB,UAAU,MAAM,cAAc,QAAQ,QAAQ,KAC9C;EAAE,QAAQ;EAAO,MAAM,MAAM;CAAQ,CACvC,GACgB,MAAM,GAAG;AAC3B;AAEA,eAAe,qBACb,QACA,UACiB;CACjB,MAAM,OAAO,MAAM,oBAAoB,QAAQ,QAAQ;CAWvD,MAAM,QAAO,MAVK,OAAO,QAStB,MAAM,EAAE,OAAO,EAAE,QAAQ,UAAU,EAAE,CAAC,GACxB;CAEjB,MAAM,WADY,KAAK,kBAAkB,aAE1B,KAAK,UACd,qBAAqB,KAAK,MAAM,KAAK,OAAO,CAAC,IAC5C,KAAK,WAAW;CACvB,MAAM,WAAW,KAAK,QAAQ,CAAC,GAC5B,KAAK,MAAc,YAAY,UAAU,CAAC,EAAE,OAAO,EACnD,KAAK,IAAI;CACZ,OAAO;;aAEI,UAAU,KAAK,SAAS,EAAE,EAAE;YAC7B,UAAU,KAAK,QAAQ,EAAE,EAAE;aAC1B,KAAK,cAAc,YAAY,QAAQ;MAC9C,KAAK,UAAU,YAAY,UAAU,KAAK,OAAO,EAAE,cAAc,GAAG;MACpE,UAAU,WAAW,QAAQ,iBAAiB,GAAG;;;EAGrD,SAAS;;;;AAIX;AAEA,SAAS,UAAU,GAAmB;CACpC,OAAO,EACJ,WAAW,KAAK,OAAO,EACvB,WAAW,KAAK,MAAM,EACtB,WAAW,KAAK,MAAM;AAC3B;AAEA,eAAe,iBACb,MACkC;CAClC,MAAM,UAAmC,CAAC;CAC1C,IAAI,OAAO,KAAK,UAAU,UAAU,QAAQ,QAAQ,KAAK;CACzD,IAAI,OAAO,KAAK,SAAS,UAAU,QAAQ,OAAO,KAAK;CACvD,IAAI,OAAO,KAAK,YAAY,UAAU,QAAQ,UAAU,KAAK;CAC7D,IAAI,KAAK,UAAU,aAAa,KAAK,UAAU,SAC7C,QAAQ,cAAc,KAAK,UAAU;CACvC,IAAI,MAAM,QAAQ,KAAK,IAAI,GAAG,QAAQ,OAAO,KAAK;CAClD,OAAO;AACT"}
1
+ {"version":3,"file":"edit-CQsW5gnk.mjs","names":[],"sources":["../src/commands/post/edit.ts"],"sourcesContent":["import type { ApiClient } from '../../core/api-client'\nimport { runEditorRoundTrip } from '../../core/editor'\nimport { parseEnvelope } from '../../core/envelope'\nimport { serializeFromLexical } from '../../core/litexml-codec'\nimport { emitInfo, emitSuccess, type OutputOptions } from '../../core/output'\nimport { buildPostPayload, type PostFlagInputs } from '../../core/payload'\nimport { buildResolver, resolveCategoryRefs } from '../internal/resolve-helpers'\nimport { buildApiClient, type GlobalFlags, resolveContext } from '../internal/shared'\nimport { resolvePostId, resolvePostReadPath } from './resolve'\n\nexport async function run(\n slugOrId: string,\n opts: PostFlagInputs,\n flags: GlobalFlags,\n out: OutputOptions,\n) {\n const ctx = await resolveContext(flags, out)\n const client = buildApiClient(ctx, flags)\n\n if (!opts.file && opts.content === undefined) {\n const xml = await materializeForEditor(client, slugOrId)\n const next = await runEditorRoundTrip({\n filename: `post-${slugOrId}.xml`,\n initialContent: xml,\n })\n if (next.trim() === xml.trim()) {\n emitInfo('no changes', out)\n return\n }\n const parsed = parseEnvelope(next, 'post')\n const payloadInputs: PostFlagInputs = {\n ...opts,\n content: parsed.contentXml,\n format: opts.format ?? 'lexical',\n }\n const built = await buildPostPayload(payloadInputs)\n Object.assign(built.payload, await metaFromEnvelope(parsed.meta))\n if (flags.dryRun) {\n emitSuccess(built.payload, out)\n return\n }\n const resolver = buildResolver(client)\n await resolveCategoryRefs(built.payload, resolver)\n const res = await client.request(\n `/posts/${await resolvePostId(client, slugOrId)}`,\n { method: 'PUT', body: built.payload },\n )\n emitSuccess(res.data, out)\n return\n }\n\n const built = await buildPostPayload(opts)\n if (flags.dryRun) {\n emitSuccess(built.payload, out)\n return\n }\n const resolver = buildResolver(client)\n await resolveCategoryRefs(built.payload, resolver)\n const res = await client.request(\n `/posts/${await resolvePostId(client, slugOrId)}`,\n { method: 'PUT', body: built.payload },\n )\n emitSuccess(res.data, out)\n}\n\nasync function materializeForEditor(\n client: ApiClient,\n slugOrId: string,\n): Promise<string> {\n const path = await resolvePostReadPath(client, slugOrId)\n const res = await client.request<{\n id: string\n title?: string\n slug?: string\n contentFormat?: string\n content?: string\n summary?: string\n isPublished?: boolean\n tags?: string[]\n }>(path, { query: { prefer: 'lexical' } })\n const post = res.data\n const isLexical = post.contentFormat === 'lexical'\n const innerXml =\n isLexical && post.content\n ? serializeFromLexical(JSON.parse(post.content))\n : (post.content ?? '')\n const tagsXml = (post.tags ?? [])\n .map((t: string) => ` <tag>${escapeXml(t)}</tag>`)\n .join('\\n')\n return `<mxpost>\n <meta>\n <title>${escapeXml(post.title ?? '')}</title>\n <slug>${escapeXml(post.slug ?? '')}</slug>\n <state>${post.isPublished ? 'publish' : 'draft'}</state>\n ${post.summary ? `<summary>${escapeXml(post.summary)}</summary>` : ''}\n ${tagsXml ? `<tags>\\n${tagsXml}\\n </tags>` : ''}\n </meta>\n <content>\n${innerXml}\n </content>\n</mxpost>\n`\n}\n\nfunction escapeXml(s: string): string {\n return s\n .replaceAll('&', '&amp;')\n .replaceAll('<', '&lt;')\n .replaceAll('>', '&gt;')\n}\n\nasync function metaFromEnvelope(\n meta: Record<string, unknown>,\n): Promise<Record<string, unknown>> {\n const overlay: Record<string, unknown> = {}\n if (typeof meta.title === 'string') overlay.title = meta.title\n if (typeof meta.slug === 'string') overlay.slug = meta.slug\n if (typeof meta.summary === 'string') overlay.summary = meta.summary\n if (meta.state === 'publish' || meta.state === 'draft')\n overlay.isPublished = meta.state === 'publish'\n if (Array.isArray(meta.tags)) overlay.tags = meta.tags\n return overlay\n}\n"],"mappings":";;;;;;;;AAUA,eAAsB,IACpB,UACA,MACA,OACA,KACA;CAEA,MAAM,SAAS,eAAe,MADZ,eAAe,OAAO,GAAG,GACR,KAAK;CAExC,IAAI,CAAC,KAAK,QAAQ,KAAK,YAAY,KAAA,GAAW;EAC5C,MAAM,MAAM,MAAM,qBAAqB,QAAQ,QAAQ;EACvD,MAAM,OAAO,MAAM,mBAAmB;GACpC,UAAU,QAAQ,SAAS;GAC3B,gBAAgB;EAClB,CAAC;EACD,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,GAAG;GAC9B,SAAS,cAAc,GAAG;GAC1B;EACF;EACA,MAAM,SAAS,cAAc,MAAM,MAAM;EAMzC,MAAM,QAAQ,MAAM,iBAAiB;GAJnC,GAAG;GACH,SAAS,OAAO;GAChB,QAAQ,KAAK,UAAU;EAEwB,CAAC;EAClD,OAAO,OAAO,MAAM,SAAS,MAAM,iBAAiB,OAAO,IAAI,CAAC;EAChE,IAAI,MAAM,QAAQ;GAChB,YAAY,MAAM,SAAS,GAAG;GAC9B;EACF;EACA,MAAM,WAAW,cAAc,MAAM;EACrC,MAAM,oBAAoB,MAAM,SAAS,QAAQ;EAKjD,aAAY,MAJM,OAAO,QACvB,UAAU,MAAM,cAAc,QAAQ,QAAQ,KAC9C;GAAE,QAAQ;GAAO,MAAM,MAAM;EAAQ,CACvC,GACgB,MAAM,GAAG;EACzB;CACF;CAEA,MAAM,QAAQ,MAAM,iBAAiB,IAAI;CACzC,IAAI,MAAM,QAAQ;EAChB,YAAY,MAAM,SAAS,GAAG;EAC9B;CACF;CACA,MAAM,WAAW,cAAc,MAAM;CACrC,MAAM,oBAAoB,MAAM,SAAS,QAAQ;CAKjD,aAAY,MAJM,OAAO,QACvB,UAAU,MAAM,cAAc,QAAQ,QAAQ,KAC9C;EAAE,QAAQ;EAAO,MAAM,MAAM;CAAQ,CACvC,GACgB,MAAM,GAAG;AAC3B;AAEA,eAAe,qBACb,QACA,UACiB;CACjB,MAAM,OAAO,MAAM,oBAAoB,QAAQ,QAAQ;CAWvD,MAAM,QAAO,MAVK,OAAO,QAStB,MAAM,EAAE,OAAO,EAAE,QAAQ,UAAU,EAAE,CAAC,GACxB;CAEjB,MAAM,WADY,KAAK,kBAAkB,aAE1B,KAAK,UACd,qBAAqB,KAAK,MAAM,KAAK,OAAO,CAAC,IAC5C,KAAK,WAAW;CACvB,MAAM,WAAW,KAAK,QAAQ,CAAC,GAC5B,KAAK,MAAc,YAAY,UAAU,CAAC,EAAE,OAAO,EACnD,KAAK,IAAI;CACZ,OAAO;;aAEI,UAAU,KAAK,SAAS,EAAE,EAAE;YAC7B,UAAU,KAAK,QAAQ,EAAE,EAAE;aAC1B,KAAK,cAAc,YAAY,QAAQ;MAC9C,KAAK,UAAU,YAAY,UAAU,KAAK,OAAO,EAAE,cAAc,GAAG;MACpE,UAAU,WAAW,QAAQ,iBAAiB,GAAG;;;EAGrD,SAAS;;;;AAIX;AAEA,SAAS,UAAU,GAAmB;CACpC,OAAO,EACJ,WAAW,KAAK,OAAO,EACvB,WAAW,KAAK,MAAM,EACtB,WAAW,KAAK,MAAM;AAC3B;AAEA,eAAe,iBACb,MACkC;CAClC,MAAM,UAAmC,CAAC;CAC1C,IAAI,OAAO,KAAK,UAAU,UAAU,QAAQ,QAAQ,KAAK;CACzD,IAAI,OAAO,KAAK,SAAS,UAAU,QAAQ,OAAO,KAAK;CACvD,IAAI,OAAO,KAAK,YAAY,UAAU,QAAQ,UAAU,KAAK;CAC7D,IAAI,KAAK,UAAU,aAAa,KAAK,UAAU,SAC7C,QAAQ,cAAc,KAAK,UAAU;CACvC,IAAI,MAAM,QAAQ,KAAK,IAAI,GAAG,QAAQ,OAAO,KAAK;CAClD,OAAO;AACT"}
@@ -1,4 +1,4 @@
1
- import { s as MxsError } from "./output-BM7aBFwt.mjs";
1
+ import { c as MxsErrorCode, s as MxsError } from "./output-vzequvhd.mjs";
2
2
  import { spawn } from "node:child_process";
3
3
  import path from "node:path";
4
4
  import { promises } from "node:fs";
@@ -7,7 +7,7 @@ import os from "node:os";
7
7
  async function runEditorRoundTrip(opts) {
8
8
  const editor = opts.editor ?? process.env.EDITOR ?? process.env.VISUAL;
9
9
  if (!editor) throw new MxsError({
10
- code: "generic",
10
+ code: MxsErrorCode.Generic,
11
11
  message: "$EDITOR not set",
12
12
  hint: "export EDITOR=vim (or another editor) and try again"
13
13
  });
@@ -30,7 +30,7 @@ function spawnInteractive(cmd, args) {
30
30
  child.on("exit", (code) => {
31
31
  if (code === 0) resolve();
32
32
  else reject(new MxsError({
33
- code: "generic",
33
+ code: MxsErrorCode.Generic,
34
34
  message: `editor exited with code ${code}`
35
35
  }));
36
36
  });
@@ -39,4 +39,4 @@ function spawnInteractive(cmd, args) {
39
39
  //#endregion
40
40
  export { runEditorRoundTrip as t };
41
41
 
42
- //# sourceMappingURL=editor-xrF-j3UE.mjs.map
42
+ //# sourceMappingURL=editor-BIw1ALTF.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor-BIw1ALTF.mjs","names":["fs"],"sources":["../src/core/editor.ts"],"sourcesContent":["import { spawn } from 'node:child_process'\nimport { promises as fs } from 'node:fs'\nimport os from 'node:os'\nimport path from 'node:path'\n\nimport { MxsError, MxsErrorCode } from './errors'\n\nexport interface EditorOptions {\n filename: string\n initialContent: string\n editor?: string\n}\n\nexport async function runEditorRoundTrip(opts: EditorOptions): Promise<string> {\n const editor = opts.editor ?? process.env.EDITOR ?? process.env.VISUAL\n if (!editor) {\n throw new MxsError({\n code: MxsErrorCode.Generic,\n message: '$EDITOR not set',\n hint: 'export EDITOR=vim (or another editor) and try again',\n })\n }\n const dir = await fs.mkdtemp(path.join(os.tmpdir(), 'mxs-'))\n const tmpPath = path.join(dir, opts.filename)\n await fs.writeFile(tmpPath, opts.initialContent, 'utf8')\n await spawnInteractive(editor, [tmpPath])\n const next = await fs.readFile(tmpPath, 'utf8')\n await fs.unlink(tmpPath).catch(() => undefined)\n await fs.rmdir(dir).catch(() => undefined)\n return next\n}\n\nfunction spawnInteractive(cmd: string, args: string[]): Promise<void> {\n return new Promise((resolve, reject) => {\n const child = spawn(cmd, args, { stdio: 'inherit', shell: true })\n child.on('error', reject)\n child.on('exit', (code) => {\n if (code === 0) resolve()\n else\n reject(\n new MxsError({\n code: MxsErrorCode.Generic,\n message: `editor exited with code ${code}`,\n }),\n )\n })\n })\n}\n"],"mappings":";;;;;;AAaA,eAAsB,mBAAmB,MAAsC;CAC7E,MAAM,SAAS,KAAK,UAAU,QAAQ,IAAI,UAAU,QAAQ,IAAI;CAChE,IAAI,CAAC,QACH,MAAM,IAAI,SAAS;EACjB,MAAM,aAAa;EACnB,SAAS;EACT,MAAM;CACR,CAAC;CAEH,MAAM,MAAM,MAAMA,SAAG,QAAQ,KAAK,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;CAC3D,MAAM,UAAU,KAAK,KAAK,KAAK,KAAK,QAAQ;CAC5C,MAAMA,SAAG,UAAU,SAAS,KAAK,gBAAgB,MAAM;CACvD,MAAM,iBAAiB,QAAQ,CAAC,OAAO,CAAC;CACxC,MAAM,OAAO,MAAMA,SAAG,SAAS,SAAS,MAAM;CAC9C,MAAMA,SAAG,OAAO,OAAO,EAAE,YAAY,KAAA,CAAS;CAC9C,MAAMA,SAAG,MAAM,GAAG,EAAE,YAAY,KAAA,CAAS;CACzC,OAAO;AACT;AAEA,SAAS,iBAAiB,KAAa,MAA+B;CACpE,OAAO,IAAI,SAAS,SAAS,WAAW;EACtC,MAAM,QAAQ,MAAM,KAAK,MAAM;GAAE,OAAO;GAAW,OAAO;EAAK,CAAC;EAChE,MAAM,GAAG,SAAS,MAAM;EACxB,MAAM,GAAG,SAAS,SAAS;GACzB,IAAI,SAAS,GAAG,QAAQ;QAEtB,OACE,IAAI,SAAS;IACX,MAAM,aAAa;IACnB,SAAS,2BAA2B;GACtC,CAAC,CACH;EACJ,CAAC;CACH,CAAC;AACH"}
@@ -1,4 +1,4 @@
1
- import { a as coerceMeta } from "./payload-CN11pUto.mjs";
1
+ import { a as coerceMeta } from "./payload-CO4zbNr8.mjs";
2
2
  //#region src/commands/internal/envelope-overlays.ts
3
3
  function applyNoteEnvelopeMeta(payload, rawMeta) {
4
4
  const meta = coerceMeta(rawMeta);
@@ -23,4 +23,4 @@ function applyPageEnvelopeMeta(payload, rawMeta) {
23
23
  //#endregion
24
24
  export { applyPageEnvelopeMeta as n, applyNoteEnvelopeMeta as t };
25
25
 
26
- //# sourceMappingURL=envelope-overlays-DPAlMNW1.mjs.map
26
+ //# sourceMappingURL=envelope-overlays-DXXygxdF.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"envelope-overlays-DPAlMNW1.mjs","names":[],"sources":["../src/commands/internal/envelope-overlays.ts"],"sourcesContent":["import { coerceMeta } from '../../core/envelope'\n\nexport function applyNoteEnvelopeMeta(\n payload: Record<string, unknown>,\n rawMeta: Record<string, unknown>,\n): void {\n const meta = coerceMeta(rawMeta)\n if (meta.title !== undefined) payload.title = meta.title\n if (meta.slug !== undefined) payload.slug = meta.slug\n if (meta.topic !== undefined) payload.__topicName = meta.topic\n if (meta.state !== undefined) payload.isPublished = meta.state === 'publish'\n if (meta.mood !== undefined) payload.mood = meta.mood\n if (meta.weather !== undefined) payload.weather = meta.weather\n if (meta.publicAt !== undefined) payload.publicAt = meta.publicAt\n if (meta.password !== undefined) payload.password = meta.password\n if (meta.bookmark !== undefined) payload.bookmark = meta.bookmark\n if (meta.location !== undefined) payload.location = meta.location\n}\n\nexport function applyPageEnvelopeMeta(\n payload: Record<string, unknown>,\n rawMeta: Record<string, unknown>,\n): void {\n const meta = coerceMeta(rawMeta)\n if (meta.title !== undefined) payload.title = meta.title\n if (meta.slug !== undefined) payload.slug = meta.slug\n if (meta.subtitle !== undefined) payload.subtitle = meta.subtitle\n if (meta.order !== undefined) payload.order = meta.order\n}\n"],"mappings":";;AAEA,SAAgB,sBACd,SACA,SACM;CACN,MAAM,OAAO,WAAW,OAAO;CAC/B,IAAI,KAAK,UAAU,KAAA,GAAW,QAAQ,QAAQ,KAAK;CACnD,IAAI,KAAK,SAAS,KAAA,GAAW,QAAQ,OAAO,KAAK;CACjD,IAAI,KAAK,UAAU,KAAA,GAAW,QAAQ,cAAc,KAAK;CACzD,IAAI,KAAK,UAAU,KAAA,GAAW,QAAQ,cAAc,KAAK,UAAU;CACnE,IAAI,KAAK,SAAS,KAAA,GAAW,QAAQ,OAAO,KAAK;CACjD,IAAI,KAAK,YAAY,KAAA,GAAW,QAAQ,UAAU,KAAK;CACvD,IAAI,KAAK,aAAa,KAAA,GAAW,QAAQ,WAAW,KAAK;CACzD,IAAI,KAAK,aAAa,KAAA,GAAW,QAAQ,WAAW,KAAK;CACzD,IAAI,KAAK,aAAa,KAAA,GAAW,QAAQ,WAAW,KAAK;CACzD,IAAI,KAAK,aAAa,KAAA,GAAW,QAAQ,WAAW,KAAK;AAC3D;AAEA,SAAgB,sBACd,SACA,SACM;CACN,MAAM,OAAO,WAAW,OAAO;CAC/B,IAAI,KAAK,UAAU,KAAA,GAAW,QAAQ,QAAQ,KAAK;CACnD,IAAI,KAAK,SAAS,KAAA,GAAW,QAAQ,OAAO,KAAK;CACjD,IAAI,KAAK,aAAa,KAAA,GAAW,QAAQ,WAAW,KAAK;CACzD,IAAI,KAAK,UAAU,KAAA,GAAW,QAAQ,QAAQ,KAAK;AACrD"}
1
+ {"version":3,"file":"envelope-overlays-DXXygxdF.mjs","names":[],"sources":["../src/commands/internal/envelope-overlays.ts"],"sourcesContent":["import { coerceMeta } from '../../core/envelope'\n\nexport function applyNoteEnvelopeMeta(\n payload: Record<string, unknown>,\n rawMeta: Record<string, unknown>,\n): void {\n const meta = coerceMeta(rawMeta)\n if (meta.title !== undefined) payload.title = meta.title\n if (meta.slug !== undefined) payload.slug = meta.slug\n if (meta.topic !== undefined) payload.__topicName = meta.topic\n if (meta.state !== undefined) payload.isPublished = meta.state === 'publish'\n if (meta.mood !== undefined) payload.mood = meta.mood\n if (meta.weather !== undefined) payload.weather = meta.weather\n if (meta.publicAt !== undefined) payload.publicAt = meta.publicAt\n if (meta.password !== undefined) payload.password = meta.password\n if (meta.bookmark !== undefined) payload.bookmark = meta.bookmark\n if (meta.location !== undefined) payload.location = meta.location\n}\n\nexport function applyPageEnvelopeMeta(\n payload: Record<string, unknown>,\n rawMeta: Record<string, unknown>,\n): void {\n const meta = coerceMeta(rawMeta)\n if (meta.title !== undefined) payload.title = meta.title\n if (meta.slug !== undefined) payload.slug = meta.slug\n if (meta.subtitle !== undefined) payload.subtitle = meta.subtitle\n if (meta.order !== undefined) payload.order = meta.order\n}\n"],"mappings":";;AAEA,SAAgB,sBACd,SACA,SACM;CACN,MAAM,OAAO,WAAW,OAAO;CAC/B,IAAI,KAAK,UAAU,KAAA,GAAW,QAAQ,QAAQ,KAAK;CACnD,IAAI,KAAK,SAAS,KAAA,GAAW,QAAQ,OAAO,KAAK;CACjD,IAAI,KAAK,UAAU,KAAA,GAAW,QAAQ,cAAc,KAAK;CACzD,IAAI,KAAK,UAAU,KAAA,GAAW,QAAQ,cAAc,KAAK,UAAU;CACnE,IAAI,KAAK,SAAS,KAAA,GAAW,QAAQ,OAAO,KAAK;CACjD,IAAI,KAAK,YAAY,KAAA,GAAW,QAAQ,UAAU,KAAK;CACvD,IAAI,KAAK,aAAa,KAAA,GAAW,QAAQ,WAAW,KAAK;CACzD,IAAI,KAAK,aAAa,KAAA,GAAW,QAAQ,WAAW,KAAK;CACzD,IAAI,KAAK,aAAa,KAAA,GAAW,QAAQ,WAAW,KAAK;CACzD,IAAI,KAAK,aAAa,KAAA,GAAW,QAAQ,WAAW,KAAK;AAC3D;AAEA,SAAgB,sBACd,SACA,SACM;CACN,MAAM,OAAO,WAAW,OAAO;CAC/B,IAAI,KAAK,UAAU,KAAA,GAAW,QAAQ,QAAQ,KAAK;CACnD,IAAI,KAAK,SAAS,KAAA,GAAW,QAAQ,OAAO,KAAK;CACjD,IAAI,KAAK,aAAa,KAAA,GAAW,QAAQ,WAAW,KAAK;CACzD,IAAI,KAAK,UAAU,KAAA,GAAW,QAAQ,QAAQ,KAAK;AACrD"}
@@ -1,5 +1,5 @@
1
- import { i as emitSuccess } from "./output-BM7aBFwt.mjs";
2
- import { n as resolveContext, r as withLangQuery, t as buildApiClient } from "./shared-C2EAn5h_.mjs";
1
+ import { i as emitSuccess } from "./output-vzequvhd.mjs";
2
+ import { n as resolveContext, r as withLangQuery, t as buildApiClient } from "./shared-d0_6ZPn_.mjs";
3
3
  //#region src/commands/category/get.ts
4
4
  async function run(slugOrId, flags, out) {
5
5
  emitSuccess((await buildApiClient(await resolveContext(flags, out), flags).request(`/categories/${slugOrId}`, { query: withLangQuery(flags) })).data, out);
@@ -7,4 +7,4 @@ async function run(slugOrId, flags, out) {
7
7
  //#endregion
8
8
  export { run };
9
9
 
10
- //# sourceMappingURL=get-CwcNFb39.mjs.map
10
+ //# sourceMappingURL=get-B3Y5hAAO.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-CwcNFb39.mjs","names":[],"sources":["../src/commands/category/get.ts"],"sourcesContent":["import { emitSuccess, type OutputOptions } from '../../core/output'\nimport {\n buildApiClient,\n type GlobalFlags,\n resolveContext,\n withLangQuery,\n} from '../internal/shared'\n\nexport async function run(\n slugOrId: string,\n flags: GlobalFlags,\n out: OutputOptions,\n) {\n const ctx = await resolveContext(flags, out)\n const client = buildApiClient(ctx, flags)\n const res = await client.request(`/categories/${slugOrId}`, {\n query: withLangQuery(flags),\n })\n emitSuccess(res.data, out)\n}\n"],"mappings":";;;AAQA,eAAsB,IACpB,UACA,OACA,KACA;CAMA,aAAY,MAJG,eAAe,MADZ,eAAe,OAAO,GAAG,GACR,KACZ,EAAE,QAAQ,eAAe,YAAY,EAC1D,OAAO,cAAc,KAAK,EAC5B,CAAC,GACe,MAAM,GAAG;AAC3B"}
1
+ {"version":3,"file":"get-B3Y5hAAO.mjs","names":[],"sources":["../src/commands/category/get.ts"],"sourcesContent":["import { emitSuccess, type OutputOptions } from '../../core/output'\nimport {\n buildApiClient,\n type GlobalFlags,\n resolveContext,\n withLangQuery,\n} from '../internal/shared'\n\nexport async function run(\n slugOrId: string,\n flags: GlobalFlags,\n out: OutputOptions,\n) {\n const ctx = await resolveContext(flags, out)\n const client = buildApiClient(ctx, flags)\n const res = await client.request(`/categories/${slugOrId}`, {\n query: withLangQuery(flags),\n })\n emitSuccess(res.data, out)\n}\n"],"mappings":";;;AAQA,eAAsB,IACpB,UACA,OACA,KACA;CAMA,aAAY,MAJG,eAAe,MADZ,eAAe,OAAO,GAAG,GACR,KACZ,EAAE,QAAQ,eAAe,YAAY,EAC1D,OAAO,cAAc,KAAK,EAC5B,CAAC,GACe,MAAM,GAAG;AAC3B"}
@@ -1,6 +1,6 @@
1
- import { t as emitDocument } from "./document-output-C5PWbz2p.mjs";
2
- import { n as resolveContext, r as withLangQuery, t as buildApiClient } from "./shared-C2EAn5h_.mjs";
3
- import { n as resolvePostReadPath } from "./resolve-Bp1AfBmM.mjs";
1
+ import { t as emitDocument } from "./document-output-BFJdwPV0.mjs";
2
+ import { n as resolveContext, r as withLangQuery, t as buildApiClient } from "./shared-d0_6ZPn_.mjs";
3
+ import { n as resolvePostReadPath } from "./resolve-jdb1VqAG.mjs";
4
4
  //#region src/commands/post/get.ts
5
5
  const KIND = "post";
6
6
  async function run(slugOrId, flags, out) {
@@ -11,4 +11,4 @@ async function run(slugOrId, flags, out) {
11
11
  //#endregion
12
12
  export { run };
13
13
 
14
- //# sourceMappingURL=get-DnDvLa9S.mjs.map
14
+ //# sourceMappingURL=get-C5fmd5Vf.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-DnDvLa9S.mjs","names":[],"sources":["../src/commands/post/get.ts"],"sourcesContent":["import { emitDocument, type DocumentKind } from '../../core/document-output'\nimport type { OutputOptions } from '../../core/output'\nimport {\n buildApiClient,\n type GlobalFlags,\n resolveContext,\n withLangQuery,\n} from '../internal/shared'\nimport { resolvePostReadPath } from './resolve'\n\nconst KIND: DocumentKind = 'post'\n\nexport async function run(\n slugOrId: string,\n flags: GlobalFlags,\n out: OutputOptions,\n) {\n const ctx = await resolveContext(flags, out)\n const client = buildApiClient(ctx, flags)\n const path = await resolvePostReadPath(client, slugOrId)\n const res = await client.request(path, {\n query: withLangQuery(flags, { prefer: 'lexical' }),\n })\n emitDocument(KIND, res.data, out)\n}\n"],"mappings":";;;;AAUA,MAAM,OAAqB;AAE3B,eAAsB,IACpB,UACA,OACA,KACA;CAEA,MAAM,SAAS,eAAe,MADZ,eAAe,OAAO,GAAG,GACR,KAAK;CACxC,MAAM,OAAO,MAAM,oBAAoB,QAAQ,QAAQ;CAIvD,aAAa,OAAM,MAHD,OAAO,QAAQ,MAAM,EACrC,OAAO,cAAc,OAAO,EAAE,QAAQ,UAAU,CAAC,EACnD,CAAC,GACsB,MAAM,GAAG;AAClC"}
1
+ {"version":3,"file":"get-C5fmd5Vf.mjs","names":[],"sources":["../src/commands/post/get.ts"],"sourcesContent":["import { emitDocument, type DocumentKind } from '../../core/document-output'\nimport type { OutputOptions } from '../../core/output'\nimport {\n buildApiClient,\n type GlobalFlags,\n resolveContext,\n withLangQuery,\n} from '../internal/shared'\nimport { resolvePostReadPath } from './resolve'\n\nconst KIND: DocumentKind = 'post'\n\nexport async function run(\n slugOrId: string,\n flags: GlobalFlags,\n out: OutputOptions,\n) {\n const ctx = await resolveContext(flags, out)\n const client = buildApiClient(ctx, flags)\n const path = await resolvePostReadPath(client, slugOrId)\n const res = await client.request(path, {\n query: withLangQuery(flags, { prefer: 'lexical' }),\n })\n emitDocument(KIND, res.data, out)\n}\n"],"mappings":";;;;AAUA,MAAM,OAAqB;AAE3B,eAAsB,IACpB,UACA,OACA,KACA;CAEA,MAAM,SAAS,eAAe,MADZ,eAAe,OAAO,GAAG,GACR,KAAK;CACxC,MAAM,OAAO,MAAM,oBAAoB,QAAQ,QAAQ;CAIvD,aAAa,OAAM,MAHD,OAAO,QAAQ,MAAM,EACrC,OAAO,cAAc,OAAO,EAAE,QAAQ,UAAU,CAAC,EACnD,CAAC,GACsB,MAAM,GAAG;AAClC"}
@@ -1,7 +1,7 @@
1
- import { s as MxsError } from "./output-BM7aBFwt.mjs";
2
- import { t as emitDocument } from "./document-output-C5PWbz2p.mjs";
3
- import { r as isSnowflakeId } from "./resolve-BogJOR7R.mjs";
4
- import { n as resolveContext, r as withLangQuery, t as buildApiClient } from "./shared-C2EAn5h_.mjs";
1
+ import { c as MxsErrorCode, s as MxsError } from "./output-vzequvhd.mjs";
2
+ import { t as emitDocument } from "./document-output-BFJdwPV0.mjs";
3
+ import { r as isSnowflakeId } from "./resolve-CUsHGcb-.mjs";
4
+ import { n as resolveContext, r as withLangQuery, t as buildApiClient } from "./shared-d0_6ZPn_.mjs";
5
5
  //#region src/commands/note/get.ts
6
6
  const KIND = "note";
7
7
  async function run(slugOrId, flags, out) {
@@ -18,11 +18,11 @@ async function run(slugOrId, flags, out) {
18
18
  return;
19
19
  }
20
20
  throw new MxsError({
21
- code: "validation.failed",
21
+ code: MxsErrorCode.ValidationFailed,
22
22
  message: `invalid note reference: ${slugOrId} (use snowflake id or numeric nid)`
23
23
  });
24
24
  }
25
25
  //#endregion
26
26
  export { run };
27
27
 
28
- //# sourceMappingURL=get-Doi-NKAh.mjs.map
28
+ //# sourceMappingURL=get-Cdp2tmwz.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-Cdp2tmwz.mjs","names":[],"sources":["../src/commands/note/get.ts"],"sourcesContent":["import { type DocumentKind, emitDocument } from '../../core/document-output'\nimport { MxsError, MxsErrorCode } from '../../core/errors'\nimport type { OutputOptions } from '../../core/output'\nimport { isSnowflakeId } from '../../core/resolve'\nimport {\n buildApiClient,\n type GlobalFlags,\n resolveContext,\n withLangQuery,\n} from '../internal/shared'\n\nconst KIND: DocumentKind = 'note'\n\nexport async function run(\n slugOrId: string,\n flags: GlobalFlags,\n out: OutputOptions,\n) {\n const ctx = await resolveContext(flags, out)\n const client = buildApiClient(ctx, flags)\n if (isSnowflakeId(slugOrId)) {\n const res = await client.request(`/notes/${slugOrId}`, {\n query: withLangQuery(flags, { prefer: 'lexical' }),\n })\n emitDocument(KIND, res.data, out)\n return\n }\n if (/^\\d+$/.test(slugOrId)) {\n const res = await client.request(`/notes/nid/${slugOrId}`, {\n query: withLangQuery(flags, { single: '1', prefer: 'lexical' }),\n })\n emitDocument(KIND, res.data, out)\n return\n }\n throw new MxsError({\n code: MxsErrorCode.ValidationFailed,\n message: `invalid note reference: ${slugOrId} (use snowflake id or numeric nid)`,\n })\n}\n"],"mappings":";;;;;AAWA,MAAM,OAAqB;AAE3B,eAAsB,IACpB,UACA,OACA,KACA;CAEA,MAAM,SAAS,eAAe,MADZ,eAAe,OAAO,GAAG,GACR,KAAK;CACxC,IAAI,cAAc,QAAQ,GAAG;EAI3B,aAAa,OAAM,MAHD,OAAO,QAAQ,UAAU,YAAY,EACrD,OAAO,cAAc,OAAO,EAAE,QAAQ,UAAU,CAAC,EACnD,CAAC,GACsB,MAAM,GAAG;EAChC;CACF;CACA,IAAI,QAAQ,KAAK,QAAQ,GAAG;EAI1B,aAAa,OAAM,MAHD,OAAO,QAAQ,cAAc,YAAY,EACzD,OAAO,cAAc,OAAO;GAAE,QAAQ;GAAK,QAAQ;EAAU,CAAC,EAChE,CAAC,GACsB,MAAM,GAAG;EAChC;CACF;CACA,MAAM,IAAI,SAAS;EACjB,MAAM,aAAa;EACnB,SAAS,2BAA2B,SAAS;CAC/C,CAAC;AACH"}
@@ -1,5 +1,5 @@
1
- import { i as emitSuccess } from "./output-BM7aBFwt.mjs";
2
- import { n as resolveContext, t as buildApiClient } from "./shared-C2EAn5h_.mjs";
1
+ import { i as emitSuccess } from "./output-vzequvhd.mjs";
2
+ import { n as resolveContext, t as buildApiClient } from "./shared-d0_6ZPn_.mjs";
3
3
  //#region src/commands/config/get.ts
4
4
  async function run(key, flags, out) {
5
5
  emitSuccess((await buildApiClient(await resolveContext(flags, out), flags).request(`/options/${key}`)).data, out);
@@ -7,4 +7,4 @@ async function run(key, flags, out) {
7
7
  //#endregion
8
8
  export { run };
9
9
 
10
- //# sourceMappingURL=get-DxTU7Nom.mjs.map
10
+ //# sourceMappingURL=get-D18ChSKU.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-DxTU7Nom.mjs","names":[],"sources":["../src/commands/config/get.ts"],"sourcesContent":["import { emitSuccess, type OutputOptions } from '../../core/output'\nimport { buildApiClient, type GlobalFlags, resolveContext } from '../internal/shared'\n\nexport async function run(key: string, flags: GlobalFlags, out: OutputOptions) {\n const ctx = await resolveContext(flags, out)\n const client = buildApiClient(ctx, flags)\n const res = await client.request(`/options/${key}`)\n emitSuccess(res.data, out)\n}\n"],"mappings":";;;AAGA,eAAsB,IAAI,KAAa,OAAoB,KAAoB;CAI7E,aAAY,MAFG,eAAe,MADZ,eAAe,OAAO,GAAG,GACR,KACZ,EAAE,QAAQ,YAAY,KAAK,GAClC,MAAM,GAAG;AAC3B"}
1
+ {"version":3,"file":"get-D18ChSKU.mjs","names":[],"sources":["../src/commands/config/get.ts"],"sourcesContent":["import { emitSuccess, type OutputOptions } from '../../core/output'\nimport { buildApiClient, type GlobalFlags, resolveContext } from '../internal/shared'\n\nexport async function run(key: string, flags: GlobalFlags, out: OutputOptions) {\n const ctx = await resolveContext(flags, out)\n const client = buildApiClient(ctx, flags)\n const res = await client.request(`/options/${key}`)\n emitSuccess(res.data, out)\n}\n"],"mappings":";;;AAGA,eAAsB,IAAI,KAAa,OAAoB,KAAoB;CAI7E,aAAY,MAFG,eAAe,MADZ,eAAe,OAAO,GAAG,GACR,KACZ,EAAE,QAAQ,YAAY,KAAK,GAClC,MAAM,GAAG;AAC3B"}
@@ -1,6 +1,6 @@
1
- import { i as emitSuccess } from "./output-BM7aBFwt.mjs";
2
- import { r as isSnowflakeId } from "./resolve-BogJOR7R.mjs";
3
- import { n as resolveContext, r as withLangQuery, t as buildApiClient } from "./shared-C2EAn5h_.mjs";
1
+ import { i as emitSuccess } from "./output-vzequvhd.mjs";
2
+ import { r as isSnowflakeId } from "./resolve-CUsHGcb-.mjs";
3
+ import { n as resolveContext, r as withLangQuery, t as buildApiClient } from "./shared-d0_6ZPn_.mjs";
4
4
  //#region src/commands/topic/get.ts
5
5
  async function run(slugOrId, flags, out) {
6
6
  const client = buildApiClient(await resolveContext(flags, out), flags);
@@ -10,4 +10,4 @@ async function run(slugOrId, flags, out) {
10
10
  //#endregion
11
11
  export { run };
12
12
 
13
- //# sourceMappingURL=get-BYoAlJwB.mjs.map
13
+ //# sourceMappingURL=get-NSHTGu4Y.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-BYoAlJwB.mjs","names":[],"sources":["../src/commands/topic/get.ts"],"sourcesContent":["import { emitSuccess, type OutputOptions } from '../../core/output'\nimport { isSnowflakeId } from '../../core/resolve'\nimport {\n buildApiClient,\n type GlobalFlags,\n resolveContext,\n withLangQuery,\n} from '../internal/shared'\n\nexport async function run(\n slugOrId: string,\n flags: GlobalFlags,\n out: OutputOptions,\n) {\n const ctx = await resolveContext(flags, out)\n const client = buildApiClient(ctx, flags)\n const path = isSnowflakeId(slugOrId)\n ? `/topics/${slugOrId}`\n : `/topics/slug/${slugOrId}`\n const res = await client.request(path, { query: withLangQuery(flags) })\n emitSuccess(res.data, out)\n}\n"],"mappings":";;;;AASA,eAAsB,IACpB,UACA,OACA,KACA;CAEA,MAAM,SAAS,eAAe,MADZ,eAAe,OAAO,GAAG,GACR,KAAK;CACxC,MAAM,OAAO,cAAc,QAAQ,IAC/B,WAAW,aACX,gBAAgB;CAEpB,aAAY,MADM,OAAO,QAAQ,MAAM,EAAE,OAAO,cAAc,KAAK,EAAE,CAAC,GACtD,MAAM,GAAG;AAC3B"}
1
+ {"version":3,"file":"get-NSHTGu4Y.mjs","names":[],"sources":["../src/commands/topic/get.ts"],"sourcesContent":["import { emitSuccess, type OutputOptions } from '../../core/output'\nimport { isSnowflakeId } from '../../core/resolve'\nimport {\n buildApiClient,\n type GlobalFlags,\n resolveContext,\n withLangQuery,\n} from '../internal/shared'\n\nexport async function run(\n slugOrId: string,\n flags: GlobalFlags,\n out: OutputOptions,\n) {\n const ctx = await resolveContext(flags, out)\n const client = buildApiClient(ctx, flags)\n const path = isSnowflakeId(slugOrId)\n ? `/topics/${slugOrId}`\n : `/topics/slug/${slugOrId}`\n const res = await client.request(path, { query: withLangQuery(flags) })\n emitSuccess(res.data, out)\n}\n"],"mappings":";;;;AASA,eAAsB,IACpB,UACA,OACA,KACA;CAEA,MAAM,SAAS,eAAe,MADZ,eAAe,OAAO,GAAG,GACR,KAAK;CACxC,MAAM,OAAO,cAAc,QAAQ,IAC/B,WAAW,aACX,gBAAgB;CAEpB,aAAY,MADM,OAAO,QAAQ,MAAM,EAAE,OAAO,cAAc,KAAK,EAAE,CAAC,GACtD,MAAM,GAAG;AAC3B"}
@@ -1,6 +1,6 @@
1
- import { t as emitDocument } from "./document-output-C5PWbz2p.mjs";
2
- import { r as isSnowflakeId } from "./resolve-BogJOR7R.mjs";
3
- import { n as resolveContext, r as withLangQuery, t as buildApiClient } from "./shared-C2EAn5h_.mjs";
1
+ import { t as emitDocument } from "./document-output-BFJdwPV0.mjs";
2
+ import { r as isSnowflakeId } from "./resolve-CUsHGcb-.mjs";
3
+ import { n as resolveContext, r as withLangQuery, t as buildApiClient } from "./shared-d0_6ZPn_.mjs";
4
4
  //#region src/commands/page/get.ts
5
5
  const KIND = "page";
6
6
  async function run(slugOrId, flags, out) {
@@ -11,4 +11,4 @@ async function run(slugOrId, flags, out) {
11
11
  //#endregion
12
12
  export { run };
13
13
 
14
- //# sourceMappingURL=get-GdRz82RW.mjs.map
14
+ //# sourceMappingURL=get-XBPJr95m.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-GdRz82RW.mjs","names":[],"sources":["../src/commands/page/get.ts"],"sourcesContent":["import { emitDocument, type DocumentKind } from '../../core/document-output'\nimport type { OutputOptions } from '../../core/output'\nimport { isSnowflakeId } from '../../core/resolve'\nimport {\n buildApiClient,\n type GlobalFlags,\n resolveContext,\n withLangQuery,\n} from '../internal/shared'\n\nconst KIND: DocumentKind = 'page'\n\nexport async function run(\n slugOrId: string,\n flags: GlobalFlags,\n out: OutputOptions,\n) {\n const ctx = await resolveContext(flags, out)\n const client = buildApiClient(ctx, flags)\n const path = isSnowflakeId(slugOrId)\n ? `/pages/${slugOrId}`\n : `/pages/slug/${slugOrId}`\n const res = await client.request(path, {\n query: withLangQuery(flags, { prefer: 'lexical' }),\n })\n emitDocument(KIND, res.data, out)\n}\n"],"mappings":";;;;AAUA,MAAM,OAAqB;AAE3B,eAAsB,IACpB,UACA,OACA,KACA;CAEA,MAAM,SAAS,eAAe,MADZ,eAAe,OAAO,GAAG,GACR,KAAK;CACxC,MAAM,OAAO,cAAc,QAAQ,IAC/B,UAAU,aACV,eAAe;CAInB,aAAa,OAAM,MAHD,OAAO,QAAQ,MAAM,EACrC,OAAO,cAAc,OAAO,EAAE,QAAQ,UAAU,CAAC,EACnD,CAAC,GACsB,MAAM,GAAG;AAClC"}
1
+ {"version":3,"file":"get-XBPJr95m.mjs","names":[],"sources":["../src/commands/page/get.ts"],"sourcesContent":["import { emitDocument, type DocumentKind } from '../../core/document-output'\nimport type { OutputOptions } from '../../core/output'\nimport { isSnowflakeId } from '../../core/resolve'\nimport {\n buildApiClient,\n type GlobalFlags,\n resolveContext,\n withLangQuery,\n} from '../internal/shared'\n\nconst KIND: DocumentKind = 'page'\n\nexport async function run(\n slugOrId: string,\n flags: GlobalFlags,\n out: OutputOptions,\n) {\n const ctx = await resolveContext(flags, out)\n const client = buildApiClient(ctx, flags)\n const path = isSnowflakeId(slugOrId)\n ? `/pages/${slugOrId}`\n : `/pages/slug/${slugOrId}`\n const res = await client.request(path, {\n query: withLangQuery(flags, { prefer: 'lexical' }),\n })\n emitDocument(KIND, res.data, out)\n}\n"],"mappings":";;;;AAUA,MAAM,OAAqB;AAE3B,eAAsB,IACpB,UACA,OACA,KACA;CAEA,MAAM,SAAS,eAAe,MADZ,eAAe,OAAO,GAAG,GACR,KAAK;CACxC,MAAM,OAAO,cAAc,QAAQ,IAC/B,UAAU,aACV,eAAe;CAInB,aAAa,OAAM,MAHD,OAAO,QAAQ,MAAM,EACrC,OAAO,cAAc,OAAO,EAAE,QAAQ,UAAU,CAAC,EACnD,CAAC,GACsB,MAAM,GAAG;AAClC"}
package/dist/index.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { a as emitSuccess, i as emitInfo, n as defaultOutputOptions, o as emitWarn, r as emitError, s as renderTable, t as OutputOptions } from "./output-CTnO1lYt.mjs";
1
+ import { a as emitSuccess, i as emitInfo, n as defaultOutputOptions, o as emitWarn, r as emitError, s as renderTable, t as OutputOptions } from "./output-D2dDlyV2.mjs";
2
2
 
3
3
  //#region src/core/config-dir.d.ts
4
4
  declare function getConfigDir(): string;
@@ -49,8 +49,20 @@ declare function getConfigPath(): string;
49
49
  declare function getCredentialsPath(): string;
50
50
  declare function readConfig(): Promise<ConfigShape>;
51
51
  declare function writeConfig(cfg: ConfigShape): Promise<void>;
52
+ /**
53
+ * @deprecated Read from profile credentials via `readProfileCredentials` in core/profile.ts.
54
+ * Kept for the legacy migration read path and api-client auto-refresh; remove after full profile migration.
55
+ */
52
56
  declare function readCredentials(): Promise<CredentialsShape | null>;
57
+ /**
58
+ * @deprecated Write to profile credentials via `writeProfileCredentials` in core/profile.ts.
59
+ * Kept for the legacy migration read path and api-client auto-refresh; remove after full profile migration.
60
+ */
53
61
  declare function writeCredentials(cred: CredentialsShape): Promise<void>;
62
+ /**
63
+ * @deprecated Use `deleteProfileCredentials` in core/profile.ts for profile-aware logout.
64
+ * Kept only for Task 2 migration's read path; remove after full profile migration.
65
+ */
54
66
  declare function deleteCredentials(): Promise<void>;
55
67
  declare function enforceCredentialsMode(p?: string): Promise<boolean>;
56
68
  declare function normalizeApiUrl(input: string): string;
@@ -112,7 +124,10 @@ interface ApiClientContext {
112
124
  apiKey?: string;
113
125
  autoRefresh?: boolean;
114
126
  verbose?: boolean;
127
+ quiet?: boolean;
115
128
  http?: AuthHttp;
129
+ /** When provided, enables the production banner and write gate. */
130
+ resolved?: ResolvedConfig;
116
131
  }
117
132
  interface RequestOptions {
118
133
  method?: 'GET' | 'POST' | 'PATCH' | 'PUT' | 'DELETE';
@@ -151,14 +166,6 @@ declare function readContentSpec(spec: string | undefined, {
151
166
  }): Promise<ContentSource | null>;
152
167
  declare function readJsonSpec(spec: string | undefined): Promise<unknown>;
153
168
  //#endregion
154
- //#region src/core/editor.d.ts
155
- interface EditorOptions {
156
- filename: string;
157
- initialContent: string;
158
- editor?: string;
159
- }
160
- declare function runEditorRoundTrip(opts: EditorOptions): Promise<string>;
161
- //#endregion
162
169
  //#region src/core/document-output.d.ts
163
170
  type DocumentKind = 'post' | 'note' | 'page';
164
171
  declare function emitDocument(kind: DocumentKind, data: unknown, opts: OutputOptions): void;
@@ -167,6 +174,14 @@ declare function renderReadableDocument(kind: DocumentKind, data: unknown): stri
167
174
  declare function renderPostList(data: unknown): string;
168
175
  declare function renderDocumentEnvelope(kind: DocumentKind, data: unknown): string;
169
176
  //#endregion
177
+ //#region src/core/editor.d.ts
178
+ interface EditorOptions {
179
+ filename: string;
180
+ initialContent: string;
181
+ editor?: string;
182
+ }
183
+ declare function runEditorRoundTrip(opts: EditorOptions): Promise<string>;
184
+ //#endregion
170
185
  //#region src/core/envelope.d.ts
171
186
  type EnvelopeKind = 'post' | 'note';
172
187
  interface ParsedEnvelope {
@@ -203,7 +218,36 @@ interface EnvelopeMeta {
203
218
  declare function coerceMeta(raw: Record<string, unknown>): EnvelopeMeta;
204
219
  //#endregion
205
220
  //#region src/core/errors.d.ts
206
- type MxsErrorCode = 'generic' | 'argv.parse' | 'auth.missing' | 'auth.expired' | 'auth.denied' | 'auth.probe' | 'network.timeout' | 'network.dns' | 'network.refused' | 'validation.failed' | 'validation.xml' | 'server.error' | 'resource.not_found' | 'config.missing.api_url' | 'config.missing.token' | 'config.migration.failed' | 'profile.not_found' | (string & {});
221
+ declare const MxsErrorCode: {
222
+ readonly Generic: "generic";
223
+ readonly ArgvParse: "argv.parse";
224
+ readonly AuthMissing: "auth.missing";
225
+ readonly AuthExpired: "auth.expired";
226
+ readonly AuthDenied: "auth.denied";
227
+ readonly AuthProbe: "auth.probe";
228
+ readonly NetworkTimeout: "network.timeout";
229
+ readonly NetworkDns: "network.dns";
230
+ readonly NetworkRefused: "network.refused";
231
+ readonly ValidationFailed: "validation.failed";
232
+ readonly ValidationXml: "validation.xml";
233
+ readonly ServerError: "server.error";
234
+ readonly ResourceNotFound: "resource.not_found";
235
+ readonly ConfigMissingApiUrl: "config.missing.api_url";
236
+ readonly ConfigMissingToken: "config.missing.token";
237
+ readonly ConfigMigrationFailed: "config.migration.failed";
238
+ readonly ProfileNotFound: "profile.not_found";
239
+ readonly ProfileNoneActive: "profile.none_active";
240
+ readonly ProfileInvalidName: "profile.invalid_name";
241
+ readonly ProfileWriteRequiresExplicit: "profile.write_requires_explicit";
242
+ readonly UpdateDevEnvironment: "update.dev_environment";
243
+ readonly UpdateTransientInstall: "update.transient_install";
244
+ readonly UpdatePmUnknown: "update.pm_unknown";
245
+ readonly UpdateRegistryUnreachable: "update.registry_unreachable";
246
+ readonly UpdateNodeIncompatible: "update.node_incompatible";
247
+ readonly UpdateSpawnFailed: "update.spawn_failed";
248
+ readonly UpdatePermissionDenied: "update.permission_denied";
249
+ };
250
+ type MxsErrorCode = (typeof MxsErrorCode)[keyof typeof MxsErrorCode] | (string & {});
207
251
  interface MxsErrorOptions {
208
252
  code: MxsErrorCode;
209
253
  message: string;
@@ -254,6 +298,8 @@ interface OnboardingOptions {
254
298
  initialApiUrl?: string;
255
299
  isTTY?: boolean;
256
300
  prompt?: (question: string) => Promise<string>;
301
+ /** Override the target profile name (mirrors --profile flag). */
302
+ profile?: string;
257
303
  }
258
304
  declare function runOnboarding(opts?: OnboardingOptions): Promise<OnboardingResult>;
259
305
  //#endregion
@@ -346,5 +392,5 @@ declare function matchItem(items: ReadonlyArray<ResolvableItem>, value: string):
346
392
  declare function levenshtein(a: string, b: string): number;
347
393
  declare function fuzzySuggest(items: ReadonlyArray<ResolvableItem>, value: string, maxDistance?: number): string[];
348
394
  //#endregion
349
- export { ApiClient, type ApiClientContext, type ApiResponse, type AuthHttp, type BuiltPayload, type ConfigShape, type ContentFormat, type ContentSource, type CredentialsShape, type DeviceCodeResponse, type DeviceTokenResponse, type DocumentKind, type EnvelopeKind, type EnvelopeMeta, type LexicalState, MxsError, type MxsErrorCode, type MxsErrorOptions, NameResolver, type NoteFlagInputs, type OnboardingResult, type OutputOptions, type PageFlagInputs, type ParsedEnvelope, type PostFlagInputs, type ProbeResult, type RequestOptions, type ResolvableItem, type ResolvedConfig, type ResolverFetchers, SUPPORTED_API_VERSIONS, buildNotePayload, buildPagePayload, buildPostPayload, coerceMeta, createApiClient, defaultOutputOptions, deleteCredentials, deriveTextFromLexical, emitDocument, emitError, emitInfo, emitPostList, emitSuccess, emitWarn, emptyLexicalState, emptyPayload, enforceCredentialsMode, ensureFreshToken, exitCodeForError, flagToTag, fuzzySuggest, getConfigDir, getConfigPath, getCredentialsPath, isExpiringSoon, isSnowflakeId, levenshtein, loadCredentialsOrThrow, matchItem, normalizeApiUrl, parseEnvelope, parseToLexical, pollDeviceToken, probeAuthEndpoint, readConfig, readContentSpec, readCredentials, readJsonSpec, refreshAccessToken, renderDocumentEnvelope, renderPostList, renderReadableDocument, renderTable, requestDeviceCode, resolveConfig, runEditorRoundTrip, runOnboarding, serializeFromLexical, tagToFlag, toCredentials, writeConfig, writeCredentials };
395
+ export { ApiClient, type ApiClientContext, type ApiResponse, type AuthHttp, type BuiltPayload, type ConfigShape, type ContentFormat, type ContentSource, type CredentialsShape, type DeviceCodeResponse, type DeviceTokenResponse, type DocumentKind, type EnvelopeKind, type EnvelopeMeta, type LexicalState, MxsError, MxsErrorCode, type MxsErrorOptions, NameResolver, type NoteFlagInputs, type OnboardingResult, type OutputOptions, type PageFlagInputs, type ParsedEnvelope, type PostFlagInputs, type ProbeResult, type RequestOptions, type ResolvableItem, type ResolvedConfig, type ResolverFetchers, SUPPORTED_API_VERSIONS, buildNotePayload, buildPagePayload, buildPostPayload, coerceMeta, createApiClient, defaultOutputOptions, deleteCredentials, deriveTextFromLexical, emitDocument, emitError, emitInfo, emitPostList, emitSuccess, emitWarn, emptyLexicalState, emptyPayload, enforceCredentialsMode, ensureFreshToken, exitCodeForError, flagToTag, fuzzySuggest, getConfigDir, getConfigPath, getCredentialsPath, isExpiringSoon, isSnowflakeId, levenshtein, loadCredentialsOrThrow, matchItem, normalizeApiUrl, parseEnvelope, parseToLexical, pollDeviceToken, probeAuthEndpoint, readConfig, readContentSpec, readCredentials, readJsonSpec, refreshAccessToken, renderDocumentEnvelope, renderPostList, renderReadableDocument, renderTable, requestDeviceCode, resolveConfig, runEditorRoundTrip, runOnboarding, serializeFromLexical, tagToFlag, toCredentials, writeConfig, writeCredentials };
350
396
  //# sourceMappingURL=index.d.mts.map