@mx-space/cli 0.2.0 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{Lexical.dev-DpU35QTu.mjs → Lexical.dev-CMevU1DO.mjs} +1 -1
- package/dist/{Lexical.dev-DpU35QTu.mjs.map → Lexical.dev-CMevU1DO.mjs.map} +1 -1
- package/dist/{Lexical.node-gYNDt_p9.mjs → Lexical.node-BR9e7Cyk.mjs} +2 -2
- package/dist/{Lexical.node-gYNDt_p9.mjs.map → Lexical.node-BR9e7Cyk.mjs.map} +1 -1
- package/dist/{Lexical.prod-t4c3bHV3.mjs → Lexical.prod-PUD-z9fY.mjs} +1 -1
- package/dist/{Lexical.prod-t4c3bHV3.mjs.map → Lexical.prod-PUD-z9fY.mjs.map} +1 -1
- package/dist/{LexicalClipboard.dev-CdeeWCIq.mjs → LexicalClipboard.dev-DZC2zppG.mjs} +6 -6
- package/dist/{LexicalClipboard.dev-CdeeWCIq.mjs.map → LexicalClipboard.dev-DZC2zppG.mjs.map} +1 -1
- package/dist/{LexicalClipboard.node-0e9GBL1g.mjs → LexicalClipboard.node-e5G1wVGb.mjs} +2 -2
- package/dist/{LexicalClipboard.node-0e9GBL1g.mjs.map → LexicalClipboard.node-e5G1wVGb.mjs.map} +1 -1
- package/dist/{LexicalClipboard.prod-CsCWYmV7.mjs → LexicalClipboard.prod-DE2azzIb.mjs} +6 -6
- package/dist/{LexicalClipboard.prod-CsCWYmV7.mjs.map → LexicalClipboard.prod-DE2azzIb.mjs.map} +1 -1
- package/dist/{LexicalCodeCore.dev-haI2cqH8.mjs → LexicalCodeCore.dev-gs--x55I.mjs} +3 -3
- package/dist/{LexicalCodeCore.dev-haI2cqH8.mjs.map → LexicalCodeCore.dev-gs--x55I.mjs.map} +1 -1
- package/dist/{LexicalCodeCore.prod-D_k7zuE5.mjs → LexicalCodeCore.prod-DPHOnyEj.mjs} +3 -3
- package/dist/{LexicalCodeCore.prod-D_k7zuE5.mjs.map → LexicalCodeCore.prod-DPHOnyEj.mjs.map} +1 -1
- package/dist/{LexicalDragon.dev-CAggdFh_.mjs → LexicalDragon.dev-CVe8bzVN.mjs} +3 -3
- package/dist/{LexicalDragon.dev-CAggdFh_.mjs.map → LexicalDragon.dev-CVe8bzVN.mjs.map} +1 -1
- package/dist/{LexicalDragon.node-QMR_wqJg.mjs → LexicalDragon.node-c7EHvcnK.mjs} +2 -2
- package/dist/{LexicalDragon.node-QMR_wqJg.mjs.map → LexicalDragon.node-c7EHvcnK.mjs.map} +1 -1
- package/dist/{LexicalDragon.prod-OssQhwS-.mjs → LexicalDragon.prod-D6KvqyLD.mjs} +3 -3
- package/dist/{LexicalDragon.prod-OssQhwS-.mjs.map → LexicalDragon.prod-D6KvqyLD.mjs.map} +1 -1
- package/dist/{LexicalExtension.dev-CtDZiMCU.mjs → LexicalExtension.dev-PDo8HyEw.mjs} +3 -3
- package/dist/{LexicalExtension.dev-CtDZiMCU.mjs.map → LexicalExtension.dev-PDo8HyEw.mjs.map} +1 -1
- package/dist/{LexicalExtension.node-BM0gh8zu.mjs → LexicalExtension.node-BKzjRb-0.mjs} +2 -2
- package/dist/{LexicalExtension.node-BM0gh8zu.mjs.map → LexicalExtension.node-BKzjRb-0.mjs.map} +1 -1
- package/dist/{LexicalExtension.prod-Ug6emhEO.mjs → LexicalExtension.prod-D0x_lX7q.mjs} +3 -3
- package/dist/{LexicalExtension.prod-Ug6emhEO.mjs.map → LexicalExtension.prod-D0x_lX7q.mjs.map} +1 -1
- package/dist/{LexicalHeadless.dev-D4yQpl_s.mjs → LexicalHeadless.dev-DBKcW82j.mjs} +2 -2
- package/dist/{LexicalHeadless.dev-D4yQpl_s.mjs.map → LexicalHeadless.dev-DBKcW82j.mjs.map} +1 -1
- package/dist/{LexicalHeadless.prod-jeN65B3k.mjs → LexicalHeadless.prod-D4nEh7cR.mjs} +2 -2
- package/dist/{LexicalHeadless.prod-jeN65B3k.mjs.map → LexicalHeadless.prod-D4nEh7cR.mjs.map} +1 -1
- package/dist/{LexicalHtml.dev-BdU1_ITQ.mjs → LexicalHtml.dev-vsWW05es.mjs} +4 -4
- package/dist/{LexicalHtml.dev-BdU1_ITQ.mjs.map → LexicalHtml.dev-vsWW05es.mjs.map} +1 -1
- package/dist/{LexicalHtml.node-DLtAh00E.mjs → LexicalHtml.node-CpibAfba.mjs} +2 -2
- package/dist/{LexicalHtml.node-DLtAh00E.mjs.map → LexicalHtml.node-CpibAfba.mjs.map} +1 -1
- package/dist/{LexicalHtml.prod-DdLE1HHT.mjs → LexicalHtml.prod-Bqz-3WAp.mjs} +4 -4
- package/dist/{LexicalHtml.prod-DdLE1HHT.mjs.map → LexicalHtml.prod-Bqz-3WAp.mjs.map} +1 -1
- package/dist/{LexicalLink.dev-DK87Biuy.mjs → LexicalLink.dev-BO0J0B1E.mjs} +4 -4
- package/dist/{LexicalLink.dev-DK87Biuy.mjs.map → LexicalLink.dev-BO0J0B1E.mjs.map} +1 -1
- package/dist/{LexicalLink.prod-fssuv6Sf.mjs → LexicalLink.prod-D66AhUCZ.mjs} +4 -4
- package/dist/{LexicalLink.prod-fssuv6Sf.mjs.map → LexicalLink.prod-D66AhUCZ.mjs.map} +1 -1
- package/dist/{LexicalList.dev-BJ4dr_rk.mjs → LexicalList.dev-DVGTWRk0.mjs} +4 -4
- package/dist/{LexicalList.dev-BJ4dr_rk.mjs.map → LexicalList.dev-DVGTWRk0.mjs.map} +1 -1
- package/dist/{LexicalList.prod-jWBbaWfi.mjs → LexicalList.prod-Bao7NGl7.mjs} +4 -4
- package/dist/{LexicalList.prod-jWBbaWfi.mjs.map → LexicalList.prod-Bao7NGl7.mjs.map} +1 -1
- package/dist/{LexicalMarkdown.dev-C8e-eh6y.mjs → LexicalMarkdown.dev-CRWkZwlp.mjs} +4 -4
- package/dist/{LexicalMarkdown.dev-C8e-eh6y.mjs.map → LexicalMarkdown.dev-CRWkZwlp.mjs.map} +1 -1
- package/dist/{LexicalMarkdown.prod-k73tZVb2.mjs → LexicalMarkdown.prod-tGG6js4r.mjs} +4 -4
- package/dist/{LexicalMarkdown.prod-k73tZVb2.mjs.map → LexicalMarkdown.prod-tGG6js4r.mjs.map} +1 -1
- package/dist/{LexicalRichText.dev-CrSqq3K-.mjs → LexicalRichText.dev-DPXfQePC.mjs} +6 -6
- package/dist/{LexicalRichText.dev-CrSqq3K-.mjs.map → LexicalRichText.dev-DPXfQePC.mjs.map} +1 -1
- package/dist/{LexicalRichText.node-B7k7wlQz.mjs → LexicalRichText.node-BEkm_YwY.mjs} +5 -5
- package/dist/{LexicalRichText.node-B7k7wlQz.mjs.map → LexicalRichText.node-BEkm_YwY.mjs.map} +1 -1
- package/dist/{LexicalRichText.prod-CqvyxQ9m.mjs → LexicalRichText.prod-DlfudC5w.mjs} +6 -6
- package/dist/{LexicalRichText.prod-CqvyxQ9m.mjs.map → LexicalRichText.prod-DlfudC5w.mjs.map} +1 -1
- package/dist/{LexicalSelection.dev-sNOHKHe_.mjs → LexicalSelection.dev-BVTArZ-b.mjs} +2 -2
- package/dist/{LexicalSelection.dev-sNOHKHe_.mjs.map → LexicalSelection.dev-BVTArZ-b.mjs.map} +1 -1
- package/dist/{LexicalSelection.node-Di7GwBCZ.mjs → LexicalSelection.node-CQ8iTYsz.mjs} +2 -2
- package/dist/{LexicalSelection.node-Di7GwBCZ.mjs.map → LexicalSelection.node-CQ8iTYsz.mjs.map} +1 -1
- package/dist/{LexicalSelection.prod-SWllPJop.mjs → LexicalSelection.prod-BZKGGs-G.mjs} +2 -2
- package/dist/{LexicalSelection.prod-SWllPJop.mjs.map → LexicalSelection.prod-BZKGGs-G.mjs.map} +1 -1
- package/dist/{LexicalTable.dev-CQkLHXJx.mjs → LexicalTable.dev-C-AOEpJn.mjs} +5 -5
- package/dist/{LexicalTable.dev-CQkLHXJx.mjs.map → LexicalTable.dev-C-AOEpJn.mjs.map} +1 -1
- package/dist/{LexicalTable.prod-BtqCwKSi.mjs → LexicalTable.prod-Cyn0qWxZ.mjs} +5 -5
- package/dist/{LexicalTable.prod-BtqCwKSi.mjs.map → LexicalTable.prod-Cyn0qWxZ.mjs.map} +1 -1
- package/dist/{LexicalUtils.dev-DiUpsXE8.mjs → LexicalUtils.dev-DRRDyAlS.mjs} +3 -3
- package/dist/{LexicalUtils.dev-DiUpsXE8.mjs.map → LexicalUtils.dev-DRRDyAlS.mjs.map} +1 -1
- package/dist/{LexicalUtils.node-CmK462d1.mjs → LexicalUtils.node-Dz-HANi6.mjs} +2 -2
- package/dist/{LexicalUtils.node-CmK462d1.mjs.map → LexicalUtils.node-Dz-HANi6.mjs.map} +1 -1
- package/dist/{LexicalUtils.prod-bWwV4GAF.mjs → LexicalUtils.prod-CmeHwh8W.mjs} +3 -3
- package/dist/{LexicalUtils.prod-bWwV4GAF.mjs.map → LexicalUtils.prod-CmeHwh8W.mjs.map} +1 -1
- package/dist/{auth-Duj8jJn9.mjs → auth-CAKmTDpF.mjs} +11 -11
- package/dist/auth-CAKmTDpF.mjs.map +1 -0
- package/dist/bin/mxs.d.mts +1 -1
- package/dist/bin/mxs.mjs +206 -61
- package/dist/bin/mxs.mjs.map +1 -1
- package/dist/{config-store-DmwX2iZU.mjs → config-store-B8_9iStL.mjs} +8 -7
- package/dist/config-store-B8_9iStL.mjs.map +1 -0
- package/dist/{create-Cqt1rrSZ.mjs → create-5wbU7IQh.mjs} +5 -5
- package/dist/{create-Cqt1rrSZ.mjs.map → create-5wbU7IQh.mjs.map} +1 -1
- package/dist/{create-_H8YO7ze.mjs → create-Bs6K7AyQ.mjs} +3 -3
- package/dist/{create-_H8YO7ze.mjs.map → create-Bs6K7AyQ.mjs.map} +1 -1
- package/dist/{create-DAt3FXLf.mjs → create-DBReocgJ.mjs} +5 -5
- package/dist/{create-DAt3FXLf.mjs.map → create-DBReocgJ.mjs.map} +1 -1
- package/dist/{create-kYlrs4d6.mjs → create-DGVaE0_S.mjs} +4 -4
- package/dist/{create-kYlrs4d6.mjs.map → create-DGVaE0_S.mjs.map} +1 -1
- package/dist/{create-D7cR9xcN.mjs → create-lLFZuMsz.mjs} +3 -3
- package/dist/{create-D7cR9xcN.mjs.map → create-lLFZuMsz.mjs.map} +1 -1
- package/dist/{delete-D_NRteuq.mjs → delete-6tkhHQDp.mjs} +5 -5
- package/dist/delete-6tkhHQDp.mjs.map +1 -0
- package/dist/{delete-ZIjkquZj.mjs → delete-CRFxitDN.mjs} +6 -6
- package/dist/delete-CRFxitDN.mjs.map +1 -0
- package/dist/{delete-DVNebWqO.mjs → delete-DU2Hvsy8.mjs} +5 -5
- package/dist/delete-DU2Hvsy8.mjs.map +1 -0
- package/dist/{delete-aCVSWuKi.mjs → delete-nJmHtvfq.mjs} +6 -6
- package/dist/delete-nJmHtvfq.mjs.map +1 -0
- package/dist/{delete-DmKPzzsQ.mjs → delete-tJhXI8s4.mjs} +5 -5
- package/dist/delete-tJhXI8s4.mjs.map +1 -0
- package/dist/{document-output-BtY8T7eY.mjs → document-output-BFJdwPV0.mjs} +5 -5
- package/dist/document-output-BFJdwPV0.mjs.map +1 -0
- package/dist/{edit-DjRE8Gk-.mjs → edit-BMjTbPQO.mjs} +5 -5
- package/dist/edit-BMjTbPQO.mjs.map +1 -0
- package/dist/{edit-R6H5RtWd.mjs → edit-BnEmMmv6.mjs} +9 -9
- package/dist/edit-BnEmMmv6.mjs.map +1 -0
- package/dist/{edit-CHCuoiWT.mjs → edit-C4vRSmRy.mjs} +9 -9
- package/dist/{edit-CHCuoiWT.mjs.map → edit-C4vRSmRy.mjs.map} +1 -1
- package/dist/{edit-BWX7X4sy.mjs → edit-CQsW5gnk.mjs} +8 -8
- package/dist/{edit-BWX7X4sy.mjs.map → edit-CQsW5gnk.mjs.map} +1 -1
- package/dist/{editor-Dywlo4-8.mjs → editor-BIw1ALTF.mjs} +4 -4
- package/dist/editor-BIw1ALTF.mjs.map +1 -0
- package/dist/{envelope-overlays-D1gmGVe5.mjs → envelope-overlays-DXXygxdF.mjs} +2 -2
- package/dist/{envelope-overlays-D1gmGVe5.mjs.map → envelope-overlays-DXXygxdF.mjs.map} +1 -1
- package/dist/{get-IQQv4_rP.mjs → get-B3Y5hAAO.mjs} +3 -3
- package/dist/{get-IQQv4_rP.mjs.map → get-B3Y5hAAO.mjs.map} +1 -1
- package/dist/{get-DbH58EkF.mjs → get-C5fmd5Vf.mjs} +4 -4
- package/dist/{get-DbH58EkF.mjs.map → get-C5fmd5Vf.mjs.map} +1 -1
- package/dist/{get-CkBqVyGi.mjs → get-Cdp2tmwz.mjs} +6 -6
- package/dist/get-Cdp2tmwz.mjs.map +1 -0
- package/dist/{get-DNdde54z.mjs → get-D18ChSKU.mjs} +3 -3
- package/dist/{get-DNdde54z.mjs.map → get-D18ChSKU.mjs.map} +1 -1
- package/dist/{get-xtByxURm.mjs → get-NSHTGu4Y.mjs} +4 -4
- package/dist/{get-xtByxURm.mjs.map → get-NSHTGu4Y.mjs.map} +1 -1
- package/dist/{get-CiLnUGHw.mjs → get-XBPJr95m.mjs} +4 -4
- package/dist/{get-CiLnUGHw.mjs.map → get-XBPJr95m.mjs.map} +1 -1
- package/dist/index.d.mts +40 -11
- package/dist/index.mjs +11 -10
- package/dist/{list-Bnlg9SfR.mjs → list-B6703n9X.mjs} +3 -3
- package/dist/{list-Bnlg9SfR.mjs.map → list-B6703n9X.mjs.map} +1 -1
- package/dist/{list-lmpHwOQx.mjs → list-BtNocJhc.mjs} +3 -3
- package/dist/{list-lmpHwOQx.mjs.map → list-BtNocJhc.mjs.map} +1 -1
- package/dist/{list-DW5TcGxS.mjs → list-C9dXrU9H.mjs} +3 -3
- package/dist/{list-DW5TcGxS.mjs.map → list-C9dXrU9H.mjs.map} +1 -1
- package/dist/{list-C6z1iw4a.mjs → list-CcwcYZgN.mjs} +3 -3
- package/dist/{list-C6z1iw4a.mjs.map → list-CcwcYZgN.mjs.map} +1 -1
- package/dist/{list-CD9j9did.mjs → list-Ctc8b5gT.mjs} +3 -3
- package/dist/{list-CD9j9did.mjs.map → list-Ctc8b5gT.mjs.map} +1 -1
- package/dist/{list-DVMtBAHG.mjs → list-b60JzCTw.mjs} +3 -3
- package/dist/{list-DVMtBAHG.mjs.map → list-b60JzCTw.mjs.map} +1 -1
- package/dist/{litexml-codec-D-1oggXL.mjs → litexml-codec-CfIxcPG0.mjs} +9 -9
- package/dist/{litexml-codec-D-1oggXL.mjs.map → litexml-codec-CfIxcPG0.mjs.map} +1 -1
- package/dist/{login-D-SoeV01.mjs → login-bZx4HaVs.mjs} +5 -4
- package/dist/{login-D-SoeV01.mjs.map → login-bZx4HaVs.mjs.map} +1 -1
- package/dist/{logout-D63ZU-1Q.mjs → logout-C0Dzitsu.mjs} +4 -3
- package/dist/logout-C0Dzitsu.mjs.map +1 -0
- package/dist/{ls-Bz3BCcwU.mjs → ls-wMiTXZPQ.mjs} +3 -2
- package/dist/{ls-Bz3BCcwU.mjs.map → ls-wMiTXZPQ.mjs.map} +1 -1
- package/dist/{mark-N-IpKK17.mjs → mark-Dh9BErsf.mjs} +5 -4
- package/dist/mark-Dh9BErsf.mjs.map +1 -0
- package/dist/{onboarding-FPMcuqn8.mjs → onboarding-Bw_I8qpf.mjs} +17 -15
- package/dist/onboarding-Bw_I8qpf.mjs.map +1 -0
- package/dist/{output-DQMhacTo.d.mts → output-D2dDlyV2.d.mts} +1 -1
- package/dist/output-vzequvhd.mjs +163 -0
- package/dist/output-vzequvhd.mjs.map +1 -0
- package/dist/{payload-CjlZ9CeZ.mjs → payload-CO4zbNr8.mjs} +17 -17
- package/dist/payload-CO4zbNr8.mjs.map +1 -0
- package/dist/profile-CNe2uWJi.mjs +172 -0
- package/dist/profile-CNe2uWJi.mjs.map +1 -0
- package/dist/{publish-yuM6YGSb.mjs → publish-CzzucXQq.mjs} +4 -4
- package/dist/{publish-yuM6YGSb.mjs.map → publish-CzzucXQq.mjs.map} +1 -1
- package/dist/{publish-C9O5obZ6.mjs → publish-DRQkpxsz.mjs} +4 -4
- package/dist/{publish-C9O5obZ6.mjs.map → publish-DRQkpxsz.mjs.map} +1 -1
- package/dist/{resolve-TBYXBS4i.mjs → resolve-BYg5Gees.mjs} +5 -5
- package/dist/resolve-BYg5Gees.mjs.map +1 -0
- package/dist/{resolve-U6RJ3AnQ.mjs → resolve-BlpMdnaM.mjs} +4 -4
- package/dist/resolve-BlpMdnaM.mjs.map +1 -0
- package/dist/{resolve-DIu9N2sD.mjs → resolve-CUsHGcb-.mjs} +4 -4
- package/dist/resolve-CUsHGcb-.mjs.map +1 -0
- package/dist/{resolve-helpers-C7PIVziv.mjs → resolve-helpers-CoHYa2uk.mjs} +2 -2
- package/dist/{resolve-helpers-C7PIVziv.mjs.map → resolve-helpers-CoHYa2uk.mjs.map} +1 -1
- package/dist/{resolve-B4-fMQ6I.mjs → resolve-jdb1VqAG.mjs} +5 -5
- package/dist/resolve-jdb1VqAG.mjs.map +1 -0
- package/dist/{rm-D9GvLhhF.mjs → rm-D-2iW1Cr.mjs} +5 -4
- package/dist/rm-D-2iW1Cr.mjs.map +1 -0
- package/dist/run-Dnax6uhZ.mjs +130 -0
- package/dist/run-Dnax6uhZ.mjs.map +1 -0
- package/dist/self-update-CZywTwGd.mjs +1610 -0
- package/dist/self-update-CZywTwGd.mjs.map +1 -0
- package/dist/{set-jD79hpuF.mjs → set-Dk28LAy5.mjs} +5 -5
- package/dist/set-Dk28LAy5.mjs.map +1 -0
- package/dist/{shared-SryY2QPY.mjs → shared-d0_6ZPn_.mjs} +5 -5
- package/dist/shared-d0_6ZPn_.mjs.map +1 -0
- package/dist/{show-C5Zk0tcK.mjs → show-DScu6mXz.mjs} +5 -4
- package/dist/show-DScu6mXz.mjs.map +1 -0
- package/dist/{status-evZpPR3N.mjs → status-8F6tgphP.mjs} +4 -3
- package/dist/{status-evZpPR3N.mjs.map → status-8F6tgphP.mjs.map} +1 -1
- package/dist/{update-hhAcAz_M.mjs → update-B1LGxV0n.mjs} +6 -6
- package/dist/{update-hhAcAz_M.mjs.map → update-B1LGxV0n.mjs.map} +1 -1
- package/dist/{update--7NPzL_w.mjs → update-CXetpFT3.mjs} +4 -4
- package/dist/{update--7NPzL_w.mjs.map → update-CXetpFT3.mjs.map} +1 -1
- package/dist/{update-CPJXcOg_.mjs → update-Dr4BW8U-.mjs} +6 -6
- package/dist/{update-CPJXcOg_.mjs.map → update-Dr4BW8U-.mjs.map} +1 -1
- package/dist/{update-0q5hxJFh.mjs → update-bqcHRJPC.mjs} +6 -6
- package/dist/update-bqcHRJPC.mjs.map +1 -0
- package/dist/{update-DN78pXGZ.mjs → update-dBtzzmkN.mjs} +5 -5
- package/dist/update-dBtzzmkN.mjs.map +1 -0
- package/dist/{use-CHDCEe38.mjs → use-D7eKESSW.mjs} +6 -5
- package/dist/use-D7eKESSW.mjs.map +1 -0
- package/dist/{whoami-BHDYyY5D.mjs → whoami-CKSNd6zL.mjs} +5 -4
- package/dist/whoami-CKSNd6zL.mjs.map +1 -0
- package/package.json +3 -1
- package/dist/auth-Duj8jJn9.mjs.map +0 -1
- package/dist/config-store-DmwX2iZU.mjs.map +0 -1
- package/dist/delete-DVNebWqO.mjs.map +0 -1
- package/dist/delete-D_NRteuq.mjs.map +0 -1
- package/dist/delete-DmKPzzsQ.mjs.map +0 -1
- package/dist/delete-ZIjkquZj.mjs.map +0 -1
- package/dist/delete-aCVSWuKi.mjs.map +0 -1
- package/dist/document-output-BtY8T7eY.mjs.map +0 -1
- package/dist/edit-DjRE8Gk-.mjs.map +0 -1
- package/dist/edit-R6H5RtWd.mjs.map +0 -1
- package/dist/editor-Dywlo4-8.mjs.map +0 -1
- package/dist/get-CkBqVyGi.mjs.map +0 -1
- package/dist/logout-D63ZU-1Q.mjs.map +0 -1
- package/dist/mark-N-IpKK17.mjs.map +0 -1
- package/dist/onboarding-FPMcuqn8.mjs.map +0 -1
- package/dist/output-Dg8PISJM.mjs +0 -299
- package/dist/output-Dg8PISJM.mjs.map +0 -1
- package/dist/payload-CjlZ9CeZ.mjs.map +0 -1
- package/dist/resolve-B4-fMQ6I.mjs.map +0 -1
- package/dist/resolve-DIu9N2sD.mjs.map +0 -1
- package/dist/resolve-TBYXBS4i.mjs.map +0 -1
- package/dist/resolve-U6RJ3AnQ.mjs.map +0 -1
- package/dist/rm-D9GvLhhF.mjs.map +0 -1
- package/dist/set-jD79hpuF.mjs.map +0 -1
- package/dist/shared-SryY2QPY.mjs.map +0 -1
- package/dist/show-C5Zk0tcK.mjs.map +0 -1
- package/dist/update-0q5hxJFh.mjs.map +0 -1
- package/dist/update-DN78pXGZ.mjs.map +0 -1
- package/dist/use-CHDCEe38.mjs.map +0 -1
- package/dist/whoami-BHDYyY5D.mjs.map +0 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { c as MxsErrorCode, s as MxsError } from "./output-vzequvhd.mjs";
|
|
2
|
+
import { a as getProfileCredentialsPath, g as getConfigDir, i as getProfileConfigPath, l as readProfileConfig, o as getProfileDir, r as getCurrentProfile, u as readProfileCredentials } from "./profile-CNe2uWJi.mjs";
|
|
2
3
|
import path from "node:path";
|
|
3
4
|
import { promises } from "node:fs";
|
|
4
5
|
//#region src/core/config-store.ts
|
|
@@ -24,7 +25,7 @@ async function readJsonIfExists(p) {
|
|
|
24
25
|
} catch (err) {
|
|
25
26
|
if (err?.code === "ENOENT") return null;
|
|
26
27
|
if (err instanceof SyntaxError) throw new MxsError({
|
|
27
|
-
code:
|
|
28
|
+
code: MxsErrorCode.Generic,
|
|
28
29
|
message: `failed to parse ${p}: ${err.message}`
|
|
29
30
|
});
|
|
30
31
|
throw err;
|
|
@@ -93,7 +94,7 @@ async function enforceCredentialsMode(p = getLegacyCredentialsPath()) {
|
|
|
93
94
|
function normalizeApiUrl(input) {
|
|
94
95
|
let url = input.trim();
|
|
95
96
|
if (!url) throw new MxsError({
|
|
96
|
-
code:
|
|
97
|
+
code: MxsErrorCode.ConfigMissingApiUrl,
|
|
97
98
|
message: "API URL is empty"
|
|
98
99
|
});
|
|
99
100
|
if (!/^https?:\/\//i.test(url)) url = /^(?:localhost|127\.0\.0\.1|::1)(?::\d+)?$/i.test(url) ? `http://${url}` : `https://${url}`;
|
|
@@ -109,14 +110,14 @@ async function resolveConfig(overrides = {}) {
|
|
|
109
110
|
const profileName = overrides.profile?.trim() || envProfile || await getCurrentProfile() || null;
|
|
110
111
|
if (profileName && !urlOverridden) try {
|
|
111
112
|
if (!(await promises.stat(getProfileDir(profileName))).isDirectory()) throw new MxsError({
|
|
112
|
-
code:
|
|
113
|
+
code: MxsErrorCode.ProfileNotFound,
|
|
113
114
|
message: `profile '${profileName}' does not exist`,
|
|
114
115
|
hint: "run `mxs profile ls` to see configured profiles, or `mxs auth login --profile <name>` to create one"
|
|
115
116
|
});
|
|
116
117
|
} catch (err) {
|
|
117
118
|
if (err instanceof MxsError) throw err;
|
|
118
119
|
if (err?.code === "ENOENT") throw new MxsError({
|
|
119
|
-
code:
|
|
120
|
+
code: MxsErrorCode.ProfileNotFound,
|
|
120
121
|
message: `profile '${profileName}' does not exist`,
|
|
121
122
|
hint: "run `mxs profile ls` to see configured profiles, or `mxs auth login --profile <name>` to create one"
|
|
122
123
|
});
|
|
@@ -126,7 +127,7 @@ async function resolveConfig(overrides = {}) {
|
|
|
126
127
|
if (profileName) profileConfig = await readProfileConfig(profileName);
|
|
127
128
|
const rawApiUrl = overrides.apiUrl || envApiUrl || profileConfig.api_url;
|
|
128
129
|
if (!rawApiUrl) throw new MxsError({
|
|
129
|
-
code:
|
|
130
|
+
code: MxsErrorCode.ConfigMissingApiUrl,
|
|
130
131
|
message: "API URL is not configured",
|
|
131
132
|
hint: "set MXS_API_URL or pass --api-url <url>, or run `mxs auth login` in an interactive shell"
|
|
132
133
|
});
|
|
@@ -162,4 +163,4 @@ async function resolveConfig(overrides = {}) {
|
|
|
162
163
|
//#endregion
|
|
163
164
|
export { getLegacyConfigPath as a, readConfig as c, writeConfig as d, writeCredentials as f, getCredentialsPath as i, readCredentials as l, enforceCredentialsMode as n, getLegacyCredentialsPath as o, getConfigPath as r, normalizeApiUrl as s, deleteCredentials as t, resolveConfig as u };
|
|
164
165
|
|
|
165
|
-
//# sourceMappingURL=config-store-
|
|
166
|
+
//# sourceMappingURL=config-store-B8_9iStL.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-store-B8_9iStL.mjs","names":["fs"],"sources":["../src/core/config-store.ts"],"sourcesContent":["import { promises as fs } from 'node:fs'\nimport path from 'node:path'\n\nimport { getConfigDir } from './config-dir'\nimport { MxsError, MxsErrorCode } from './errors'\nimport {\n getCurrentProfile,\n getProfileConfigPath,\n getProfileCredentialsPath,\n getProfileDir,\n readProfileConfig,\n readProfileCredentials,\n} from './profile'\n\nexport { getConfigDir }\n\nexport interface ConfigShape {\n api_url?: string\n api_base?: string\n auth_base?: string\n api_version?: number\n client_id?: string\n production?: boolean\n}\n\nexport interface CredentialsShape {\n access_token: string\n refresh_token?: string\n expires_at: number\n user?: {\n id?: string\n email?: string\n name?: string\n }\n}\n\nexport interface ResolvedConfig {\n apiUrl: string\n apiBase: string\n authBase: string\n apiVersion: number\n clientId: string\n token?: string\n apiKey?: string\n configPath: string\n credentialsPath: string\n profileName: string | null\n isProduction: boolean\n profileExplicit: boolean\n urlOverridden: boolean\n}\n\nexport interface StoreOverrides {\n apiUrl?: string\n token?: string\n apiKey?: string\n profile?: string\n}\n\nconst DEFAULT_CLIENT_ID = 'mxs-cli'\n\nexport function getLegacyConfigPath(): string {\n return path.join(getConfigDir(), 'config.json')\n}\n\nexport function getLegacyCredentialsPath(): string {\n return path.join(getConfigDir(), 'credentials.json')\n}\n\n/** @deprecated Use getLegacyConfigPath for migration logic only */\nexport function getConfigPath(): string {\n return getLegacyConfigPath()\n}\n\n/** @deprecated Use getLegacyCredentialsPath for migration logic only */\nexport function getCredentialsPath(): string {\n return getLegacyCredentialsPath()\n}\n\nasync function readJsonIfExists<T>(p: string): Promise<T | null> {\n try {\n const raw = await fs.readFile(p, 'utf8')\n return JSON.parse(raw) as T\n } catch (err: any) {\n if (err?.code === 'ENOENT') return null\n if (err instanceof SyntaxError) {\n throw new MxsError({\n code: MxsErrorCode.Generic,\n message: `failed to parse ${p}: ${err.message}`,\n })\n }\n throw err\n }\n}\n\nexport async function readConfig(): Promise<ConfigShape> {\n const data = await readJsonIfExists<ConfigShape>(getLegacyConfigPath())\n return data ?? {}\n}\n\nexport async function writeConfig(cfg: ConfigShape): Promise<void> {\n const dir = getConfigDir()\n await fs.mkdir(dir, { recursive: true })\n await fs.writeFile(getLegacyConfigPath(), JSON.stringify(cfg, null, 2), {\n mode: 0o644,\n })\n try {\n await fs.chmod(getLegacyConfigPath(), 0o644)\n } catch {}\n}\n\n/**\n * @deprecated Read from profile credentials via `readProfileCredentials` in core/profile.ts.\n * Kept for the legacy migration read path and api-client auto-refresh; remove after full profile migration.\n */\nexport async function readCredentials(): Promise<CredentialsShape | null> {\n const p = getLegacyCredentialsPath()\n const data = await readJsonIfExists<CredentialsShape>(p)\n if (data) {\n await enforceCredentialsMode(p)\n }\n return data\n}\n\n/**\n * @deprecated Write to profile credentials via `writeProfileCredentials` in core/profile.ts.\n * Kept for the legacy migration read path and api-client auto-refresh; remove after full profile migration.\n */\nexport async function writeCredentials(cred: CredentialsShape): Promise<void> {\n const dir = getConfigDir()\n await fs.mkdir(dir, { recursive: true })\n const p = getLegacyCredentialsPath()\n await fs.writeFile(p, JSON.stringify(cred, null, 2), { mode: 0o600 })\n await fs.chmod(p, 0o600)\n}\n\n/**\n * @deprecated Use `deleteProfileCredentials` in core/profile.ts for profile-aware logout.\n * Kept only for Task 2 migration's read path; remove after full profile migration.\n */\nexport async function deleteCredentials(): Promise<void> {\n const p = getLegacyCredentialsPath()\n try {\n await fs.unlink(p)\n } catch (err: any) {\n if (err?.code !== 'ENOENT') throw err\n }\n}\n\nexport async function enforceCredentialsMode(\n p = getLegacyCredentialsPath(),\n): Promise<boolean> {\n let stats\n try {\n stats = await fs.stat(p)\n } catch (err: any) {\n if (err?.code === 'ENOENT') return false\n throw err\n }\n const mode = stats.mode & 0o777\n if (mode !== 0o600) {\n process.stderr.write(\n `mxs: credentials file ${p} had mode ${mode.toString(8)}; chmod 600\\n`,\n )\n await fs.chmod(p, 0o600)\n return true\n }\n return false\n}\n\nexport function normalizeApiUrl(input: string): string {\n let url = input.trim()\n if (!url) {\n throw new MxsError({\n code: MxsErrorCode.ConfigMissingApiUrl,\n message: 'API URL is empty',\n })\n }\n if (!/^https?:\\/\\//i.test(url)) {\n const isLocal = /^(?:localhost|127\\.0\\.0\\.1|::1)(?::\\d+)?$/i.test(url)\n url = isLocal ? `http://${url}` : `https://${url}`\n }\n return url.replace(/\\/+$/, '')\n}\n\nexport async function resolveConfig(\n overrides: StoreOverrides = {},\n): Promise<ResolvedConfig> {\n const envApiUrl = process.env.MXS_API_URL?.trim()\n const envToken = process.env.MXS_TOKEN?.trim()\n const envApiKey = process.env.MXS_API_KEY?.trim()\n const envProfile = process.env.MXS_PROFILE?.trim()\n\n const urlOverridden = Boolean(overrides.apiUrl || envApiUrl)\n const profileExplicit = Boolean(overrides.profile || envProfile)\n\n const profileName: string | null =\n overrides.profile?.trim() ||\n envProfile ||\n (await getCurrentProfile()) ||\n null\n\n if (profileName && !urlOverridden) {\n try {\n const stat = await fs.stat(getProfileDir(profileName))\n if (!stat.isDirectory()) {\n throw new MxsError({\n code: MxsErrorCode.ProfileNotFound,\n message: `profile '${profileName}' does not exist`,\n hint: 'run `mxs profile ls` to see configured profiles, or `mxs auth login --profile <name>` to create one',\n })\n }\n } catch (err: any) {\n if (err instanceof MxsError) throw err\n if (err?.code === 'ENOENT') {\n throw new MxsError({\n code: MxsErrorCode.ProfileNotFound,\n message: `profile '${profileName}' does not exist`,\n hint: 'run `mxs profile ls` to see configured profiles, or `mxs auth login --profile <name>` to create one',\n })\n }\n throw err\n }\n }\n\n let profileConfig: ConfigShape = {}\n if (profileName) {\n profileConfig = await readProfileConfig(profileName)\n }\n\n const rawApiUrl = overrides.apiUrl || envApiUrl || profileConfig.api_url\n if (!rawApiUrl) {\n throw new MxsError({\n code: MxsErrorCode.ConfigMissingApiUrl,\n message: 'API URL is not configured',\n hint: 'set MXS_API_URL or pass --api-url <url>, or run `mxs auth login` in an interactive shell',\n })\n }\n const apiUrl = normalizeApiUrl(rawApiUrl)\n const apiVersion = profileConfig.api_version ?? 2\n const apiBase = urlOverridden\n ? `${apiUrl}/api/v${apiVersion}`\n : profileConfig.api_base || `${apiUrl}/api/v${apiVersion}`\n const authBase = urlOverridden\n ? `${apiBase}/auth`\n : profileConfig.auth_base || `${apiBase}/auth`\n\n let token: string | undefined\n if (urlOverridden) {\n token = overrides.token || envToken || undefined\n } else {\n let profileCreds: Awaited<ReturnType<typeof readProfileCredentials>> = null\n if (profileName) {\n profileCreds = await readProfileCredentials(profileName)\n }\n token = overrides.token || envToken || profileCreds?.access_token\n }\n\n const apiKey = overrides.apiKey || envApiKey\n\n const isProduction = urlOverridden\n ? false\n : profileName\n ? Boolean(profileConfig.production)\n : false\n\n return {\n apiUrl,\n apiBase,\n authBase,\n apiVersion,\n clientId: profileConfig.client_id || DEFAULT_CLIENT_ID,\n token,\n apiKey,\n configPath: profileName\n ? getProfileConfigPath(profileName)\n : getLegacyConfigPath(),\n credentialsPath: profileName\n ? getProfileCredentialsPath(profileName)\n : getLegacyCredentialsPath(),\n profileName,\n isProduction,\n profileExplicit,\n urlOverridden,\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { i as emitSuccess } from "./output-
|
|
2
|
-
import { t as buildNotePayload } from "./payload-
|
|
3
|
-
import { n as resolveContext, t as buildApiClient } from "./shared-
|
|
4
|
-
import { r as resolveTopicRefs, t as buildResolver } from "./resolve-helpers-
|
|
1
|
+
import { i as emitSuccess } from "./output-vzequvhd.mjs";
|
|
2
|
+
import { t as buildNotePayload } from "./payload-CO4zbNr8.mjs";
|
|
3
|
+
import { n as resolveContext, t as buildApiClient } from "./shared-d0_6ZPn_.mjs";
|
|
4
|
+
import { r as resolveTopicRefs, t as buildResolver } from "./resolve-helpers-CoHYa2uk.mjs";
|
|
5
5
|
//#region src/commands/note/create.ts
|
|
6
6
|
async function run(opts, flags, out) {
|
|
7
7
|
const built = await buildNotePayload(opts);
|
|
@@ -20,4 +20,4 @@ async function run(opts, flags, out) {
|
|
|
20
20
|
//#endregion
|
|
21
21
|
export { run };
|
|
22
22
|
|
|
23
|
-
//# sourceMappingURL=create-
|
|
23
|
+
//# sourceMappingURL=create-5wbU7IQh.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-
|
|
1
|
+
{"version":3,"file":"create-5wbU7IQh.mjs","names":[],"sources":["../src/commands/note/create.ts"],"sourcesContent":["import { emitSuccess, type OutputOptions } from '../../core/output'\nimport { buildNotePayload, type NoteFlagInputs } from '../../core/payload'\nimport { buildResolver, resolveTopicRefs } from '../internal/resolve-helpers'\nimport { buildApiClient, type GlobalFlags, resolveContext } from '../internal/shared'\n\nexport async function run(\n opts: NoteFlagInputs,\n flags: GlobalFlags,\n out: OutputOptions,\n) {\n const built = await buildNotePayload(opts)\n if (flags.dryRun) {\n emitSuccess(built.payload, out)\n return\n }\n const ctx = await resolveContext(flags, out)\n const client = buildApiClient(ctx, flags)\n const resolver = buildResolver(client)\n await resolveTopicRefs(built.payload, resolver)\n const res = await client.request('/notes', {\n method: 'POST',\n body: built.payload,\n })\n emitSuccess(res.data, out)\n}\n"],"mappings":";;;;;AAKA,eAAsB,IACpB,MACA,OACA,KACA;CACA,MAAM,QAAQ,MAAM,iBAAiB,IAAI;CACzC,IAAI,MAAM,QAAQ;EAChB,YAAY,MAAM,SAAS,GAAG;EAC9B;CACF;CAEA,MAAM,SAAS,eAAe,MADZ,eAAe,OAAO,GAAG,GACR,KAAK;CACxC,MAAM,WAAW,cAAc,MAAM;CACrC,MAAM,iBAAiB,MAAM,SAAS,QAAQ;CAK9C,aAAY,MAJM,OAAO,QAAQ,UAAU;EACzC,QAAQ;EACR,MAAM,MAAM;CACd,CAAC,GACe,MAAM,GAAG;AAC3B"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { i as emitSuccess } from "./output-
|
|
2
|
-
import { n as resolveContext, t as buildApiClient } from "./shared-
|
|
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/category/create.ts
|
|
4
4
|
async function run(opts, flags, out) {
|
|
5
5
|
const body = {
|
|
@@ -20,4 +20,4 @@ async function run(opts, flags, out) {
|
|
|
20
20
|
//#endregion
|
|
21
21
|
export { run };
|
|
22
22
|
|
|
23
|
-
//# sourceMappingURL=create-
|
|
23
|
+
//# sourceMappingURL=create-Bs6K7AyQ.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-
|
|
1
|
+
{"version":3,"file":"create-Bs6K7AyQ.mjs","names":[],"sources":["../src/commands/category/create.ts"],"sourcesContent":["import { emitSuccess, type OutputOptions } from '../../core/output'\nimport { buildApiClient, type GlobalFlags, resolveContext } from '../internal/shared'\n\nexport interface CategoryCreateFlags {\n name: string\n slug: string\n type?: 'category' | 'tag'\n icon?: string\n}\n\nexport async function run(\n opts: CategoryCreateFlags,\n flags: GlobalFlags,\n out: OutputOptions,\n) {\n const body: Record<string, unknown> = {\n name: opts.name,\n slug: opts.slug,\n }\n if (opts.type) body.type = opts.type === 'tag' ? 1 : 0\n if (opts.icon) body.icon = opts.icon\n if (flags.dryRun) {\n emitSuccess(body, out)\n return\n }\n const ctx = await resolveContext(flags, out)\n const client = buildApiClient(ctx, flags)\n const res = await client.request('/categories', {\n method: 'POST',\n body,\n })\n emitSuccess(res.data, out)\n}\n"],"mappings":";;;AAUA,eAAsB,IACpB,MACA,OACA,KACA;CACA,MAAM,OAAgC;EACpC,MAAM,KAAK;EACX,MAAM,KAAK;CACb;CACA,IAAI,KAAK,MAAM,KAAK,OAAO,KAAK,SAAS,QAAQ,IAAI;CACrD,IAAI,KAAK,MAAM,KAAK,OAAO,KAAK;CAChC,IAAI,MAAM,QAAQ;EAChB,YAAY,MAAM,GAAG;EACrB;CACF;CAOA,aAAY,MALG,eAAe,MADZ,eAAe,OAAO,GAAG,GACR,KACZ,EAAE,QAAQ,eAAe;EAC9C,QAAQ;EACR;CACF,CAAC,GACe,MAAM,GAAG;AAC3B"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { i as emitSuccess, r as emitInfo } from "./output-
|
|
2
|
-
import { r as buildPostPayload } from "./payload-
|
|
3
|
-
import { n as resolveContext, t as buildApiClient } from "./shared-
|
|
4
|
-
import { n as resolveCategoryRefs, t as buildResolver } from "./resolve-helpers-
|
|
1
|
+
import { i as emitSuccess, r as emitInfo } from "./output-vzequvhd.mjs";
|
|
2
|
+
import { r as buildPostPayload } from "./payload-CO4zbNr8.mjs";
|
|
3
|
+
import { n as resolveContext, t as buildApiClient } from "./shared-d0_6ZPn_.mjs";
|
|
4
|
+
import { n as resolveCategoryRefs, t as buildResolver } from "./resolve-helpers-CoHYa2uk.mjs";
|
|
5
5
|
//#region src/commands/post/create.ts
|
|
6
6
|
async function run(opts, flags, out) {
|
|
7
7
|
const built = await buildPostPayload(opts);
|
|
@@ -21,4 +21,4 @@ async function run(opts, flags, out) {
|
|
|
21
21
|
//#endregion
|
|
22
22
|
export { run };
|
|
23
23
|
|
|
24
|
-
//# sourceMappingURL=create-
|
|
24
|
+
//# sourceMappingURL=create-DBReocgJ.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-
|
|
1
|
+
{"version":3,"file":"create-DBReocgJ.mjs","names":[],"sources":["../src/commands/post/create.ts"],"sourcesContent":["import { 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'\n\nexport async function run(\n opts: PostFlagInputs,\n flags: GlobalFlags,\n out: OutputOptions,\n) {\n const built = await buildPostPayload(opts)\n if (flags.dryRun) {\n emitInfo('dry-run — payload below', out)\n emitSuccess(built.payload, out)\n return\n }\n const ctx = await resolveContext(flags, out)\n const client = buildApiClient(ctx, flags)\n const resolver = buildResolver(client)\n await resolveCategoryRefs(built.payload, resolver)\n const res = await client.request('/posts', {\n method: 'POST',\n body: built.payload,\n })\n emitSuccess(res.data, out)\n}\n"],"mappings":";;;;;AAKA,eAAsB,IACpB,MACA,OACA,KACA;CACA,MAAM,QAAQ,MAAM,iBAAiB,IAAI;CACzC,IAAI,MAAM,QAAQ;EAChB,SAAS,2BAA2B,GAAG;EACvC,YAAY,MAAM,SAAS,GAAG;EAC9B;CACF;CAEA,MAAM,SAAS,eAAe,MADZ,eAAe,OAAO,GAAG,GACR,KAAK;CACxC,MAAM,WAAW,cAAc,MAAM;CACrC,MAAM,oBAAoB,MAAM,SAAS,QAAQ;CAKjD,aAAY,MAJM,OAAO,QAAQ,UAAU;EACzC,QAAQ;EACR,MAAM,MAAM;CACd,CAAC,GACe,MAAM,GAAG;AAC3B"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { i as emitSuccess } from "./output-
|
|
2
|
-
import { n as buildPagePayload } from "./payload-
|
|
3
|
-
import { n as resolveContext, t as buildApiClient } from "./shared-
|
|
1
|
+
import { i as emitSuccess } from "./output-vzequvhd.mjs";
|
|
2
|
+
import { n as buildPagePayload } from "./payload-CO4zbNr8.mjs";
|
|
3
|
+
import { n as resolveContext, t as buildApiClient } from "./shared-d0_6ZPn_.mjs";
|
|
4
4
|
//#region src/commands/page/create.ts
|
|
5
5
|
async function run(_id, opts, flags, out) {
|
|
6
6
|
const built = await buildPagePayload(opts);
|
|
@@ -16,4 +16,4 @@ async function run(_id, opts, flags, out) {
|
|
|
16
16
|
//#endregion
|
|
17
17
|
export { run };
|
|
18
18
|
|
|
19
|
-
//# sourceMappingURL=create-
|
|
19
|
+
//# sourceMappingURL=create-DGVaE0_S.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-
|
|
1
|
+
{"version":3,"file":"create-DGVaE0_S.mjs","names":[],"sources":["../src/commands/page/create.ts"],"sourcesContent":["import { emitSuccess, type OutputOptions } from '../../core/output'\nimport { buildPagePayload, type PageFlagInputs } from '../../core/payload'\nimport { buildApiClient, type GlobalFlags, resolveContext } from '../internal/shared'\n\nexport async function run(\n _id: unknown,\n opts: PageFlagInputs,\n flags: GlobalFlags,\n out: OutputOptions,\n) {\n const built = await buildPagePayload(opts)\n if (flags.dryRun) {\n emitSuccess(built.payload, out)\n return\n }\n const ctx = await resolveContext(flags, out)\n const client = buildApiClient(ctx, flags)\n const res = await client.request('/pages', {\n method: 'POST',\n body: built.payload,\n })\n emitSuccess(res.data, out)\n}\n"],"mappings":";;;;AAIA,eAAsB,IACpB,KACA,MACA,OACA,KACA;CACA,MAAM,QAAQ,MAAM,iBAAiB,IAAI;CACzC,IAAI,MAAM,QAAQ;EAChB,YAAY,MAAM,SAAS,GAAG;EAC9B;CACF;CAOA,aAAY,MALG,eAAe,MADZ,eAAe,OAAO,GAAG,GACR,KACZ,EAAE,QAAQ,UAAU;EACzC,QAAQ;EACR,MAAM,MAAM;CACd,CAAC,GACe,MAAM,GAAG;AAC3B"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { i as emitSuccess } from "./output-
|
|
2
|
-
import { n as resolveContext, t as buildApiClient } from "./shared-
|
|
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/topic/create.ts
|
|
4
4
|
async function run(opts, flags, out) {
|
|
5
5
|
const body = {
|
|
@@ -20,4 +20,4 @@ async function run(opts, flags, out) {
|
|
|
20
20
|
//#endregion
|
|
21
21
|
export { run };
|
|
22
22
|
|
|
23
|
-
//# sourceMappingURL=create-
|
|
23
|
+
//# sourceMappingURL=create-lLFZuMsz.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-
|
|
1
|
+
{"version":3,"file":"create-lLFZuMsz.mjs","names":[],"sources":["../src/commands/topic/create.ts"],"sourcesContent":["import { emitSuccess, type OutputOptions } from '../../core/output'\nimport { buildApiClient, type GlobalFlags, resolveContext } from '../internal/shared'\n\nexport interface TopicCreateFlags {\n name: string\n slug: string\n description?: string\n icon?: string\n}\n\nexport async function run(\n opts: TopicCreateFlags,\n flags: GlobalFlags,\n out: OutputOptions,\n) {\n const body: Record<string, unknown> = {\n name: opts.name,\n slug: opts.slug,\n }\n if (opts.description) body.description = opts.description\n if (opts.icon) body.icon = opts.icon\n if (flags.dryRun) {\n emitSuccess(body, out)\n return\n }\n const ctx = await resolveContext(flags, out)\n const client = buildApiClient(ctx, flags)\n const res = await client.request('/topics', { method: 'POST', body })\n emitSuccess(res.data, out)\n}\n"],"mappings":";;;AAUA,eAAsB,IACpB,MACA,OACA,KACA;CACA,MAAM,OAAgC;EACpC,MAAM,KAAK;EACX,MAAM,KAAK;CACb;CACA,IAAI,KAAK,aAAa,KAAK,cAAc,KAAK;CAC9C,IAAI,KAAK,MAAM,KAAK,OAAO,KAAK;CAChC,IAAI,MAAM,QAAQ;EAChB,YAAY,MAAM,GAAG;EACrB;CACF;CAIA,aAAY,MAFG,eAAe,MADZ,eAAe,OAAO,GAAG,GACR,KACZ,EAAE,QAAQ,WAAW;EAAE,QAAQ;EAAQ;CAAK,CAAC,GACpD,MAAM,GAAG;AAC3B"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { n as resolveContext, t as buildApiClient } from "./shared-
|
|
3
|
-
import { t as resolvePostId } from "./resolve-
|
|
1
|
+
import { c as MxsErrorCode, i as emitSuccess, s as MxsError } from "./output-vzequvhd.mjs";
|
|
2
|
+
import { n as resolveContext, t as buildApiClient } from "./shared-d0_6ZPn_.mjs";
|
|
3
|
+
import { t as resolvePostId } from "./resolve-jdb1VqAG.mjs";
|
|
4
4
|
//#region src/commands/post/delete.ts
|
|
5
5
|
async function run(slugOrId, opts, flags, out) {
|
|
6
6
|
if (!opts.force && !flags.dryRun && !process.stdin.isTTY) throw new MxsError({
|
|
7
|
-
code:
|
|
7
|
+
code: MxsErrorCode.ValidationFailed,
|
|
8
8
|
message: "refusing to delete without --force in non-TTY context"
|
|
9
9
|
});
|
|
10
10
|
if (flags.dryRun) {
|
|
@@ -19,4 +19,4 @@ async function run(slugOrId, opts, flags, out) {
|
|
|
19
19
|
//#endregion
|
|
20
20
|
export { run };
|
|
21
21
|
|
|
22
|
-
//# sourceMappingURL=delete-
|
|
22
|
+
//# sourceMappingURL=delete-6tkhHQDp.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-6tkhHQDp.mjs","names":[],"sources":["../src/commands/post/delete.ts"],"sourcesContent":["import { MxsError, MxsErrorCode } from '../../core/errors'\nimport { emitSuccess, type OutputOptions } from '../../core/output'\nimport {\n buildApiClient,\n type GlobalFlags,\n resolveContext,\n} from '../internal/shared'\nimport { resolvePostId } from './resolve'\n\nexport async function run(\n slugOrId: string,\n opts: { force?: boolean },\n flags: GlobalFlags,\n out: OutputOptions,\n) {\n if (!opts.force && !flags.dryRun && !process.stdin.isTTY) {\n throw new MxsError({\n code: MxsErrorCode.ValidationFailed,\n message: 'refusing to delete without --force in non-TTY context',\n })\n }\n if (flags.dryRun) {\n emitSuccess({ would_delete: slugOrId }, out)\n return\n }\n const ctx = await resolveContext(flags, out)\n const client = buildApiClient(ctx, flags)\n const id = await resolvePostId(client, slugOrId)\n await client.request(`/posts/${id}`, { method: 'DELETE' })\n emitSuccess({ deleted: id }, out)\n}\n"],"mappings":";;;;AASA,eAAsB,IACpB,UACA,MACA,OACA,KACA;CACA,IAAI,CAAC,KAAK,SAAS,CAAC,MAAM,UAAU,CAAC,QAAQ,MAAM,OACjD,MAAM,IAAI,SAAS;EACjB,MAAM,aAAa;EACnB,SAAS;CACX,CAAC;CAEH,IAAI,MAAM,QAAQ;EAChB,YAAY,EAAE,cAAc,SAAS,GAAG,GAAG;EAC3C;CACF;CAEA,MAAM,SAAS,eAAe,MADZ,eAAe,OAAO,GAAG,GACR,KAAK;CACxC,MAAM,KAAK,MAAM,cAAc,QAAQ,QAAQ;CAC/C,MAAM,OAAO,QAAQ,UAAU,MAAM,EAAE,QAAQ,SAAS,CAAC;CACzD,YAAY,EAAE,SAAS,GAAG,GAAG,GAAG;AAClC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { r as isSnowflakeId } from "./resolve-
|
|
3
|
-
import { n as resolveContext, t as buildApiClient } from "./shared-
|
|
1
|
+
import { c as MxsErrorCode, i as emitSuccess, s as MxsError } from "./output-vzequvhd.mjs";
|
|
2
|
+
import { r as isSnowflakeId } from "./resolve-CUsHGcb-.mjs";
|
|
3
|
+
import { n as resolveContext, t as buildApiClient } from "./shared-d0_6ZPn_.mjs";
|
|
4
4
|
//#region src/commands/page/delete.ts
|
|
5
5
|
async function run(slugOrId, opts, flags, out) {
|
|
6
6
|
if (!opts.force && !flags.dryRun && !process.stdin.isTTY) throw new MxsError({
|
|
7
|
-
code:
|
|
7
|
+
code: MxsErrorCode.ValidationFailed,
|
|
8
8
|
message: "refusing to delete without --force in non-TTY context"
|
|
9
9
|
});
|
|
10
10
|
if (flags.dryRun) {
|
|
@@ -20,7 +20,7 @@ async function resolveId(client, slugOrId) {
|
|
|
20
20
|
if (isSnowflakeId(slugOrId)) return slugOrId;
|
|
21
21
|
const res = await client.request(`/pages/slug/${slugOrId}`);
|
|
22
22
|
if (!res.data?.id) throw new MxsError({
|
|
23
|
-
code:
|
|
23
|
+
code: MxsErrorCode.ResourceNotFound,
|
|
24
24
|
message: `page not found: ${slugOrId}`
|
|
25
25
|
});
|
|
26
26
|
return res.data.id;
|
|
@@ -28,4 +28,4 @@ async function resolveId(client, slugOrId) {
|
|
|
28
28
|
//#endregion
|
|
29
29
|
export { run };
|
|
30
30
|
|
|
31
|
-
//# sourceMappingURL=delete-
|
|
31
|
+
//# sourceMappingURL=delete-CRFxitDN.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-CRFxitDN.mjs","names":[],"sources":["../src/commands/page/delete.ts"],"sourcesContent":["import type { ApiClient } from '../../core/api-client'\nimport { MxsError, MxsErrorCode } from '../../core/errors'\nimport { emitSuccess, type OutputOptions } from '../../core/output'\nimport { isSnowflakeId } from '../../core/resolve'\nimport {\n buildApiClient,\n type GlobalFlags,\n resolveContext,\n} from '../internal/shared'\n\nexport async function run(\n slugOrId: string,\n opts: { force?: boolean },\n flags: GlobalFlags,\n out: OutputOptions,\n) {\n if (!opts.force && !flags.dryRun && !process.stdin.isTTY) {\n throw new MxsError({\n code: MxsErrorCode.ValidationFailed,\n message: 'refusing to delete without --force in non-TTY context',\n })\n }\n if (flags.dryRun) {\n emitSuccess({ would_delete: slugOrId }, out)\n return\n }\n const ctx = await resolveContext(flags, out)\n const client = buildApiClient(ctx, flags)\n const id = await resolveId(client, slugOrId)\n await client.request(`/pages/${id}`, { method: 'DELETE' })\n emitSuccess({ deleted: id }, 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"],"mappings":";;;;AAUA,eAAsB,IACpB,UACA,MACA,OACA,KACA;CACA,IAAI,CAAC,KAAK,SAAS,CAAC,MAAM,UAAU,CAAC,QAAQ,MAAM,OACjD,MAAM,IAAI,SAAS;EACjB,MAAM,aAAa;EACnB,SAAS;CACX,CAAC;CAEH,IAAI,MAAM,QAAQ;EAChB,YAAY,EAAE,cAAc,SAAS,GAAG,GAAG;EAC3C;CACF;CAEA,MAAM,SAAS,eAAe,MADZ,eAAe,OAAO,GAAG,GACR,KAAK;CACxC,MAAM,KAAK,MAAM,UAAU,QAAQ,QAAQ;CAC3C,MAAM,OAAO,QAAQ,UAAU,MAAM,EAAE,QAAQ,SAAS,CAAC;CACzD,YAAY,EAAE,SAAS,GAAG,GAAG,GAAG;AAClC;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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { n as resolveContext, t as buildApiClient } from "./shared-
|
|
3
|
-
import { t as resolveCategoryId } from "./resolve-
|
|
1
|
+
import { c as MxsErrorCode, i as emitSuccess, s as MxsError } from "./output-vzequvhd.mjs";
|
|
2
|
+
import { n as resolveContext, t as buildApiClient } from "./shared-d0_6ZPn_.mjs";
|
|
3
|
+
import { t as resolveCategoryId } from "./resolve-BlpMdnaM.mjs";
|
|
4
4
|
//#region src/commands/category/delete.ts
|
|
5
5
|
async function run(slugOrId, opts, flags, out) {
|
|
6
6
|
if (!opts.force && !flags.dryRun && !process.stdin.isTTY) throw new MxsError({
|
|
7
|
-
code:
|
|
7
|
+
code: MxsErrorCode.ValidationFailed,
|
|
8
8
|
message: "refusing to delete without --force in non-TTY context"
|
|
9
9
|
});
|
|
10
10
|
if (flags.dryRun) {
|
|
@@ -19,4 +19,4 @@ async function run(slugOrId, opts, flags, out) {
|
|
|
19
19
|
//#endregion
|
|
20
20
|
export { run };
|
|
21
21
|
|
|
22
|
-
//# sourceMappingURL=delete-
|
|
22
|
+
//# sourceMappingURL=delete-DU2Hvsy8.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-DU2Hvsy8.mjs","names":[],"sources":["../src/commands/category/delete.ts"],"sourcesContent":["import { MxsError, MxsErrorCode } from '../../core/errors'\nimport { emitSuccess, type OutputOptions } from '../../core/output'\nimport {\n buildApiClient,\n type GlobalFlags,\n resolveContext,\n} from '../internal/shared'\nimport { resolveCategoryId } from './resolve'\n\nexport async function run(\n slugOrId: string,\n opts: { force?: boolean },\n flags: GlobalFlags,\n out: OutputOptions,\n) {\n if (!opts.force && !flags.dryRun && !process.stdin.isTTY) {\n throw new MxsError({\n code: MxsErrorCode.ValidationFailed,\n message: 'refusing to delete without --force in non-TTY context',\n })\n }\n if (flags.dryRun) {\n emitSuccess({ would_delete: slugOrId }, out)\n return\n }\n const ctx = await resolveContext(flags, out)\n const client = buildApiClient(ctx, flags)\n const id = await resolveCategoryId(client, slugOrId)\n await client.request(`/categories/${id}`, { method: 'DELETE' })\n emitSuccess({ deleted: id }, out)\n}\n"],"mappings":";;;;AASA,eAAsB,IACpB,UACA,MACA,OACA,KACA;CACA,IAAI,CAAC,KAAK,SAAS,CAAC,MAAM,UAAU,CAAC,QAAQ,MAAM,OACjD,MAAM,IAAI,SAAS;EACjB,MAAM,aAAa;EACnB,SAAS;CACX,CAAC;CAEH,IAAI,MAAM,QAAQ;EAChB,YAAY,EAAE,cAAc,SAAS,GAAG,GAAG;EAC3C;CACF;CAEA,MAAM,SAAS,eAAe,MADZ,eAAe,OAAO,GAAG,GACR,KAAK;CACxC,MAAM,KAAK,MAAM,kBAAkB,QAAQ,QAAQ;CACnD,MAAM,OAAO,QAAQ,eAAe,MAAM,EAAE,QAAQ,SAAS,CAAC;CAC9D,YAAY,EAAE,SAAS,GAAG,GAAG,GAAG;AAClC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { r as isSnowflakeId } from "./resolve-
|
|
3
|
-
import { n as resolveContext, t as buildApiClient } from "./shared-
|
|
1
|
+
import { c as MxsErrorCode, i as emitSuccess, s as MxsError } from "./output-vzequvhd.mjs";
|
|
2
|
+
import { r as isSnowflakeId } from "./resolve-CUsHGcb-.mjs";
|
|
3
|
+
import { n as resolveContext, t as buildApiClient } from "./shared-d0_6ZPn_.mjs";
|
|
4
4
|
//#region src/commands/topic/delete.ts
|
|
5
5
|
async function run(slugOrId, opts, flags, out) {
|
|
6
6
|
if (!opts.force && !flags.dryRun && !process.stdin.isTTY) throw new MxsError({
|
|
7
|
-
code:
|
|
7
|
+
code: MxsErrorCode.ValidationFailed,
|
|
8
8
|
message: "refusing to delete without --force in non-TTY context"
|
|
9
9
|
});
|
|
10
10
|
if (flags.dryRun) {
|
|
@@ -20,7 +20,7 @@ async function resolveId(client, slugOrId) {
|
|
|
20
20
|
if (isSnowflakeId(slugOrId)) return slugOrId;
|
|
21
21
|
const res = await client.request(`/topics/slug/${slugOrId}`);
|
|
22
22
|
if (!res.data?.id) throw new MxsError({
|
|
23
|
-
code:
|
|
23
|
+
code: MxsErrorCode.ResourceNotFound,
|
|
24
24
|
message: `topic not found: ${slugOrId}`
|
|
25
25
|
});
|
|
26
26
|
return res.data.id;
|
|
@@ -28,4 +28,4 @@ async function resolveId(client, slugOrId) {
|
|
|
28
28
|
//#endregion
|
|
29
29
|
export { run };
|
|
30
30
|
|
|
31
|
-
//# sourceMappingURL=delete-
|
|
31
|
+
//# sourceMappingURL=delete-nJmHtvfq.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-nJmHtvfq.mjs","names":[],"sources":["../src/commands/topic/delete.ts"],"sourcesContent":["import type { ApiClient } from '../../core/api-client'\nimport { MxsError, MxsErrorCode } from '../../core/errors'\nimport { emitSuccess, type OutputOptions } from '../../core/output'\nimport { isSnowflakeId } from '../../core/resolve'\nimport {\n buildApiClient,\n type GlobalFlags,\n resolveContext,\n} from '../internal/shared'\n\nexport async function run(\n slugOrId: string,\n opts: { force?: boolean },\n flags: GlobalFlags,\n out: OutputOptions,\n) {\n if (!opts.force && !flags.dryRun && !process.stdin.isTTY) {\n throw new MxsError({\n code: MxsErrorCode.ValidationFailed,\n message: 'refusing to delete without --force in non-TTY context',\n })\n }\n if (flags.dryRun) {\n emitSuccess({ would_delete: slugOrId }, out)\n return\n }\n const ctx = await resolveContext(flags, out)\n const client = buildApiClient(ctx, flags)\n const id = await resolveId(client, slugOrId)\n await client.request(`/topics/${id}`, { method: 'DELETE' })\n emitSuccess({ deleted: id }, 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 }>(`/topics/slug/${slugOrId}`)\n if (!res.data?.id)\n throw new MxsError({\n code: MxsErrorCode.ResourceNotFound,\n message: `topic not found: ${slugOrId}`,\n })\n return res.data.id\n}\n"],"mappings":";;;;AAUA,eAAsB,IACpB,UACA,MACA,OACA,KACA;CACA,IAAI,CAAC,KAAK,SAAS,CAAC,MAAM,UAAU,CAAC,QAAQ,MAAM,OACjD,MAAM,IAAI,SAAS;EACjB,MAAM,aAAa;EACnB,SAAS;CACX,CAAC;CAEH,IAAI,MAAM,QAAQ;EAChB,YAAY,EAAE,cAAc,SAAS,GAAG,GAAG;EAC3C;CACF;CAEA,MAAM,SAAS,eAAe,MADZ,eAAe,OAAO,GAAG,GACR,KAAK;CACxC,MAAM,KAAK,MAAM,UAAU,QAAQ,QAAQ;CAC3C,MAAM,OAAO,QAAQ,WAAW,MAAM,EAAE,QAAQ,SAAS,CAAC;CAC1D,YAAY,EAAE,SAAS,GAAG,GAAG,GAAG;AAClC;AAEA,eAAe,UAAU,QAAmB,UAAmC;CAC7E,IAAI,cAAc,QAAQ,GAAG,OAAO;CACpC,MAAM,MAAM,MAAM,OAAO,QAAyB,gBAAgB,UAAU;CAC5E,IAAI,CAAC,IAAI,MAAM,IACb,MAAM,IAAI,SAAS;EACjB,MAAM,aAAa;EACnB,SAAS,oBAAoB;CAC/B,CAAC;CACH,OAAO,IAAI,KAAK;AAClB"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { n as resolveContext, t as buildApiClient } from "./shared-
|
|
3
|
-
import { t as resolveNoteId } from "./resolve-
|
|
1
|
+
import { c as MxsErrorCode, i as emitSuccess, s as MxsError } from "./output-vzequvhd.mjs";
|
|
2
|
+
import { n as resolveContext, t as buildApiClient } from "./shared-d0_6ZPn_.mjs";
|
|
3
|
+
import { t as resolveNoteId } from "./resolve-BYg5Gees.mjs";
|
|
4
4
|
//#region src/commands/note/delete.ts
|
|
5
5
|
async function run(slugOrId, opts, flags, out) {
|
|
6
6
|
if (!opts.force && !flags.dryRun && !process.stdin.isTTY) throw new MxsError({
|
|
7
|
-
code:
|
|
7
|
+
code: MxsErrorCode.ValidationFailed,
|
|
8
8
|
message: "refusing to delete without --force in non-TTY context"
|
|
9
9
|
});
|
|
10
10
|
if (flags.dryRun) {
|
|
@@ -19,4 +19,4 @@ async function run(slugOrId, opts, flags, out) {
|
|
|
19
19
|
//#endregion
|
|
20
20
|
export { run };
|
|
21
21
|
|
|
22
|
-
//# sourceMappingURL=delete-
|
|
22
|
+
//# sourceMappingURL=delete-tJhXI8s4.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-tJhXI8s4.mjs","names":[],"sources":["../src/commands/note/delete.ts"],"sourcesContent":["import { MxsError, MxsErrorCode } from '../../core/errors'\nimport { emitSuccess, type OutputOptions } from '../../core/output'\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: { force?: boolean },\n flags: GlobalFlags,\n out: OutputOptions,\n) {\n if (!opts.force && !flags.dryRun && !process.stdin.isTTY) {\n throw new MxsError({\n code: MxsErrorCode.ValidationFailed,\n message: 'refusing to delete without --force in non-TTY context',\n })\n }\n if (flags.dryRun) {\n emitSuccess({ would_delete: slugOrId }, out)\n return\n }\n const ctx = await resolveContext(flags, out)\n const client = buildApiClient(ctx, flags)\n const id = await resolveNoteId(client, slugOrId)\n await client.request(`/notes/${id}`, { method: 'DELETE' })\n emitSuccess({ deleted: id }, out)\n}\n"],"mappings":";;;;AASA,eAAsB,IACpB,UACA,MACA,OACA,KACA;CACA,IAAI,CAAC,KAAK,SAAS,CAAC,MAAM,UAAU,CAAC,QAAQ,MAAM,OACjD,MAAM,IAAI,SAAS;EACjB,MAAM,aAAa;EACnB,SAAS;CACX,CAAC;CAEH,IAAI,MAAM,QAAQ;EAChB,YAAY,EAAE,cAAc,SAAS,GAAG,GAAG;EAC3C;CACF;CAEA,MAAM,SAAS,eAAe,MADZ,eAAe,OAAO,GAAG,GACR,KAAK;CACxC,MAAM,KAAK,MAAM,cAAc,QAAQ,QAAQ;CAC/C,MAAM,OAAO,QAAQ,UAAU,MAAM,EAAE,QAAQ,SAAS,CAAC;CACzD,YAAY,EAAE,SAAS,GAAG,GAAG,GAAG;AAClC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { i as serializeFromLexical } from "./litexml-codec-
|
|
1
|
+
import { c as MxsErrorCode, i as emitSuccess, s as MxsError } from "./output-vzequvhd.mjs";
|
|
2
|
+
import { i as serializeFromLexical } from "./litexml-codec-CfIxcPG0.mjs";
|
|
3
3
|
//#region src/core/document-output.ts
|
|
4
4
|
const POST_LIST_OUTPUT_MODES = new Set([
|
|
5
5
|
"pretty-json",
|
|
@@ -17,7 +17,7 @@ const DOCUMENT_OUTPUT_MODES = new Set([
|
|
|
17
17
|
function emitDocument(kind, data, opts) {
|
|
18
18
|
const mode = opts.output ?? "pretty-json";
|
|
19
19
|
if (!DOCUMENT_OUTPUT_MODES.has(mode)) throw new MxsError({
|
|
20
|
-
code:
|
|
20
|
+
code: MxsErrorCode.ValidationFailed,
|
|
21
21
|
message: `unsupported --output value: ${mode}`,
|
|
22
22
|
hint: "use --output pretty-json, json, readable, llm, or envelope"
|
|
23
23
|
});
|
|
@@ -32,7 +32,7 @@ function emitDocument(kind, data, opts) {
|
|
|
32
32
|
function emitPostList(data, opts) {
|
|
33
33
|
const mode = opts.output ?? "pretty-json";
|
|
34
34
|
if (!POST_LIST_OUTPUT_MODES.has(mode)) throw new MxsError({
|
|
35
|
-
code:
|
|
35
|
+
code: MxsErrorCode.ValidationFailed,
|
|
36
36
|
message: `unsupported --output value for post list: ${mode}`,
|
|
37
37
|
hint: "use --output pretty-json, json, readable, or llm"
|
|
38
38
|
});
|
|
@@ -197,4 +197,4 @@ function escapeXml(value) {
|
|
|
197
197
|
//#endregion
|
|
198
198
|
export { renderReadableDocument as a, renderPostList as i, emitPostList as n, renderDocumentEnvelope as r, emitDocument as t };
|
|
199
199
|
|
|
200
|
-
//# sourceMappingURL=document-output-
|
|
200
|
+
//# sourceMappingURL=document-output-BFJdwPV0.mjs.map
|
|
@@ -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('&', '&')\n .replaceAll('<', '<')\n .replaceAll('>', '>')\n}\n"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { t as runEditorRoundTrip } from "./editor-
|
|
3
|
-
import { n as resolveContext, t as buildApiClient } from "./shared-
|
|
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:
|
|
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-
|
|
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 {
|
|
2
|
-
import { n as buildPagePayload, s as parseEnvelope } from "./payload-
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { r as isSnowflakeId } from "./resolve-
|
|
6
|
-
import { n as resolveContext, t as buildApiClient } from "./shared-
|
|
7
|
-
import { n as applyPageEnvelopeMeta } from "./envelope-overlays-
|
|
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:
|
|
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-
|
|
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('&', '&')\n .replaceAll('<', '<')\n .replaceAll('>', '>')\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-
|
|
2
|
-
import { s as parseEnvelope, t as buildNotePayload } from "./payload-
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { n as resolveContext, t as buildApiClient } from "./shared-
|
|
6
|
-
import { r as resolveTopicRefs, t as buildResolver } from "./resolve-helpers-
|
|
7
|
-
import { t as resolveNoteId } from "./resolve-
|
|
8
|
-
import { t as applyNoteEnvelopeMeta } from "./envelope-overlays-
|
|
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-
|
|
79
|
+
//# sourceMappingURL=edit-C4vRSmRy.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edit-
|
|
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('&', '&')\n .replaceAll('<', '<')\n .replaceAll('>', '>')\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"}
|