@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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publish-
|
|
1
|
+
{"version":3,"file":"publish-DRQkpxsz.mjs","names":[],"sources":["../src/commands/note/publish.ts"],"sourcesContent":["import { 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 publish: boolean,\n flags: GlobalFlags,\n out: OutputOptions,\n) {\n const ctx = await resolveContext(flags, out)\n const client = buildApiClient(ctx, flags)\n const id = await resolveNoteId(client, slugOrId)\n if (flags.dryRun) {\n emitSuccess({ would_set: { id, isPublished: publish } }, out)\n return\n }\n const res = await client.request(`/notes/${id}/publish`, {\n method: 'PATCH',\n body: { isPublished: publish },\n })\n emitSuccess(res.data, out)\n}\n"],"mappings":";;;;AAQA,eAAsB,IACpB,UACA,SACA,OACA,KACA;CAEA,MAAM,SAAS,eAAe,MADZ,eAAe,OAAO,GAAG,GACR,KAAK;CACxC,MAAM,KAAK,MAAM,cAAc,QAAQ,QAAQ;CAC/C,IAAI,MAAM,QAAQ;EAChB,YAAY,EAAE,WAAW;GAAE;GAAI,aAAa;EAAQ,EAAE,GAAG,GAAG;EAC5D;CACF;CAKA,aAAY,MAJM,OAAO,QAAQ,UAAU,GAAG,WAAW;EACvD,QAAQ;EACR,MAAM,EAAE,aAAa,QAAQ;CAC/B,CAAC,GACe,MAAM,GAAG;AAC3B"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { r as isSnowflakeId } from "./resolve-
|
|
1
|
+
import { c as MxsErrorCode, s as MxsError } from "./output-vzequvhd.mjs";
|
|
2
|
+
import { r as isSnowflakeId } from "./resolve-CUsHGcb-.mjs";
|
|
3
3
|
//#region src/commands/note/resolve.ts
|
|
4
4
|
async function resolveNoteId(client, slugOrId) {
|
|
5
5
|
if (isSnowflakeId(slugOrId)) return slugOrId;
|
|
@@ -7,17 +7,17 @@ async function resolveNoteId(client, slugOrId) {
|
|
|
7
7
|
const res = await client.request(`/notes/nid/${encodeURIComponent(slugOrId)}`, { query: { single: "1" } });
|
|
8
8
|
const id = res.data?.data?.id ?? res.data?.id;
|
|
9
9
|
if (!id) throw new MxsError({
|
|
10
|
-
code:
|
|
10
|
+
code: MxsErrorCode.ResourceNotFound,
|
|
11
11
|
message: `note not found: ${slugOrId}`
|
|
12
12
|
});
|
|
13
13
|
return id;
|
|
14
14
|
}
|
|
15
15
|
throw new MxsError({
|
|
16
|
-
code:
|
|
16
|
+
code: MxsErrorCode.ValidationFailed,
|
|
17
17
|
message: `invalid note reference: ${slugOrId} (use snowflake id or numeric nid)`
|
|
18
18
|
});
|
|
19
19
|
}
|
|
20
20
|
//#endregion
|
|
21
21
|
export { resolveNoteId as t };
|
|
22
22
|
|
|
23
|
-
//# sourceMappingURL=resolve-
|
|
23
|
+
//# sourceMappingURL=resolve-BYg5Gees.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-BYg5Gees.mjs","names":[],"sources":["../src/commands/note/resolve.ts"],"sourcesContent":["import type { ApiClient } from '../../core/api-client'\nimport { MxsError, MxsErrorCode } from '../../core/errors'\nimport { isSnowflakeId } from '../../core/resolve'\n\ninterface NidEnvelope {\n data?: { id?: string }\n id?: string\n}\n\nexport async function resolveNoteId(\n client: ApiClient,\n slugOrId: string,\n): Promise<string> {\n if (isSnowflakeId(slugOrId)) return slugOrId\n if (/^\\d+$/.test(slugOrId)) {\n const res = await client.request<NidEnvelope>(\n `/notes/nid/${encodeURIComponent(slugOrId)}`,\n { query: { single: '1' } },\n )\n const id = res.data?.data?.id ?? res.data?.id\n if (!id) {\n throw new MxsError({\n code: MxsErrorCode.ResourceNotFound,\n message: `note not found: ${slugOrId}`,\n })\n }\n return id\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":";;;AASA,eAAsB,cACpB,QACA,UACiB;CACjB,IAAI,cAAc,QAAQ,GAAG,OAAO;CACpC,IAAI,QAAQ,KAAK,QAAQ,GAAG;EAC1B,MAAM,MAAM,MAAM,OAAO,QACvB,cAAc,mBAAmB,QAAQ,KACzC,EAAE,OAAO,EAAE,QAAQ,IAAI,EAAE,CAC3B;EACA,MAAM,KAAK,IAAI,MAAM,MAAM,MAAM,IAAI,MAAM;EAC3C,IAAI,CAAC,IACH,MAAM,IAAI,SAAS;GACjB,MAAM,aAAa;GACnB,SAAS,mBAAmB;EAC9B,CAAC;EAEH,OAAO;CACT;CACA,MAAM,IAAI,SAAS;EACjB,MAAM,aAAa;EACnB,SAAS,2BAA2B,SAAS;CAC/C,CAAC;AACH"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { r as isSnowflakeId } from "./resolve-
|
|
1
|
+
import { c as MxsErrorCode, s as MxsError } from "./output-vzequvhd.mjs";
|
|
2
|
+
import { r as isSnowflakeId } from "./resolve-CUsHGcb-.mjs";
|
|
3
3
|
//#region src/commands/category/resolve.ts
|
|
4
4
|
async function resolveCategoryId(client, slugOrId) {
|
|
5
5
|
if (isSnowflakeId(slugOrId)) return slugOrId;
|
|
6
6
|
const id = (await client.request(`/categories/${encodeURIComponent(slugOrId)}`)).data?.data?.id;
|
|
7
7
|
if (!id) throw new MxsError({
|
|
8
|
-
code:
|
|
8
|
+
code: MxsErrorCode.ResourceNotFound,
|
|
9
9
|
message: `category not found: ${slugOrId}`
|
|
10
10
|
});
|
|
11
11
|
return id;
|
|
@@ -13,4 +13,4 @@ async function resolveCategoryId(client, slugOrId) {
|
|
|
13
13
|
//#endregion
|
|
14
14
|
export { resolveCategoryId as t };
|
|
15
15
|
|
|
16
|
-
//# sourceMappingURL=resolve-
|
|
16
|
+
//# sourceMappingURL=resolve-BlpMdnaM.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-BlpMdnaM.mjs","names":[],"sources":["../src/commands/category/resolve.ts"],"sourcesContent":["import type { ApiClient } from '../../core/api-client'\nimport { MxsError, MxsErrorCode } from '../../core/errors'\nimport { isSnowflakeId } from '../../core/resolve'\n\ninterface CategoryEnvelope {\n data?: { id?: string }\n}\n\nexport async function resolveCategoryId(\n client: ApiClient,\n slugOrId: string,\n): Promise<string> {\n if (isSnowflakeId(slugOrId)) return slugOrId\n const res = await client.request<CategoryEnvelope>(\n `/categories/${encodeURIComponent(slugOrId)}`,\n )\n const id = res.data?.data?.id\n if (!id) {\n throw new MxsError({\n code: MxsErrorCode.ResourceNotFound,\n message: `category not found: ${slugOrId}`,\n })\n }\n return id\n}\n"],"mappings":";;;AAQA,eAAsB,kBACpB,QACA,UACiB;CACjB,IAAI,cAAc,QAAQ,GAAG,OAAO;CAIpC,MAAM,MAAK,MAHO,OAAO,QACvB,eAAe,mBAAmB,QAAQ,GAC5C,GACe,MAAM,MAAM;CAC3B,IAAI,CAAC,IACH,MAAM,IAAI,SAAS;EACjB,MAAM,aAAa;EACnB,SAAS,uBAAuB;CAClC,CAAC;CAEH,OAAO;AACT"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { c as MxsErrorCode, s as MxsError } from "./output-vzequvhd.mjs";
|
|
2
2
|
//#region src/core/resolve.ts
|
|
3
3
|
const SNOWFLAKE_RE = /^\d{15,}$/;
|
|
4
4
|
function isSnowflakeId(value) {
|
|
@@ -28,7 +28,7 @@ var NameResolver = class {
|
|
|
28
28
|
async resolveWith(kind, value, fetcher) {
|
|
29
29
|
if (isSnowflakeId(value)) return value;
|
|
30
30
|
if (!fetcher) throw new MxsError({
|
|
31
|
-
code:
|
|
31
|
+
code: MxsErrorCode.ValidationFailed,
|
|
32
32
|
message: `cannot resolve ${kind}: no fetcher configured`
|
|
33
33
|
});
|
|
34
34
|
const items = await this.load(kind, fetcher);
|
|
@@ -36,7 +36,7 @@ var NameResolver = class {
|
|
|
36
36
|
if (hit) return hit.id;
|
|
37
37
|
const suggestions = fuzzySuggest(items, value);
|
|
38
38
|
throw new MxsError({
|
|
39
|
-
code:
|
|
39
|
+
code: MxsErrorCode.ValidationFailed,
|
|
40
40
|
message: `${kind} "${value}" not found`,
|
|
41
41
|
details: { issues: [{
|
|
42
42
|
path: ["meta", kind],
|
|
@@ -116,4 +116,4 @@ function fuzzySuggest(items, value, maxDistance = 2) {
|
|
|
116
116
|
//#endregion
|
|
117
117
|
export { matchItem as a, levenshtein as i, fuzzySuggest as n, isSnowflakeId as r, NameResolver as t };
|
|
118
118
|
|
|
119
|
-
//# sourceMappingURL=resolve-
|
|
119
|
+
//# sourceMappingURL=resolve-CUsHGcb-.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-CUsHGcb-.mjs","names":[],"sources":["../src/core/resolve.ts"],"sourcesContent":["import { MxsError, MxsErrorCode } from './errors'\n\nexport interface ResolvableItem {\n id: string\n slug?: string\n name?: string\n}\n\nexport interface ResolverFetchers {\n fetchCategories?: () => Promise<ResolvableItem[]>\n fetchTopics?: () => Promise<ResolvableItem[]>\n}\n\ninterface CacheEntry {\n expiresAt: number\n items: ResolvableItem[]\n}\n\nconst SNOWFLAKE_RE = /^\\d{15,}$/\n\nexport function isSnowflakeId(value: string): boolean {\n return SNOWFLAKE_RE.test(value)\n}\n\nexport class NameResolver {\n private cache = new Map<string, CacheEntry>()\n private ttlMs: number\n\n constructor(\n private fetchers: ResolverFetchers,\n { ttlMs = 60_000 }: { ttlMs?: number } = {},\n ) {\n this.ttlMs = ttlMs\n }\n\n async resolveCategory(value: string): Promise<string> {\n return this.resolveWith('category', value, this.fetchers.fetchCategories)\n }\n\n async resolveTopic(value: string): Promise<string> {\n return this.resolveWith('topic', value, this.fetchers.fetchTopics)\n }\n\n invalidate(kind?: string): void {\n if (!kind) {\n this.cache.clear()\n return\n }\n this.cache.delete(kind)\n }\n\n private async resolveWith(\n kind: 'category' | 'topic',\n value: string,\n fetcher: (() => Promise<ResolvableItem[]>) | undefined,\n ): Promise<string> {\n if (isSnowflakeId(value)) return value\n if (!fetcher) {\n throw new MxsError({\n code: MxsErrorCode.ValidationFailed,\n message: `cannot resolve ${kind}: no fetcher configured`,\n })\n }\n const items = await this.load(kind, fetcher)\n const hit = matchItem(items, value)\n if (hit) return hit.id\n const suggestions = fuzzySuggest(items, value)\n throw new MxsError({\n code: MxsErrorCode.ValidationFailed,\n message: `${kind} \"${value}\" not found`,\n details: {\n issues: [\n {\n path: ['meta', kind],\n message: 'not found',\n ...(suggestions.length ? { suggestions } : {}),\n },\n ],\n },\n hint:\n kind === 'category'\n ? 'run `mxs category list` to see available categories'\n : 'run `mxs topic list` to see available topics',\n })\n }\n\n private async load(\n kind: string,\n fetcher: () => Promise<ResolvableItem[]>,\n ): Promise<ResolvableItem[]> {\n const cached = this.cache.get(kind)\n const now = Date.now()\n if (cached && cached.expiresAt > now) return cached.items\n const items = await fetcher()\n this.cache.set(kind, { items, expiresAt: now + this.ttlMs })\n return items\n }\n}\n\nexport function matchItem(\n items: ReadonlyArray<ResolvableItem>,\n value: string,\n): ResolvableItem | null {\n const bySlug = items.find((i) => i.slug && i.slug === value)\n if (bySlug) return bySlug\n const byName = items.find((i) => i.name && i.name === value)\n if (byName) return byName\n const lower = value.toLowerCase()\n const byNameCi = items.find((i) => i.name && i.name.toLowerCase() === lower)\n if (byNameCi) return byNameCi\n const bySlugCi = items.find((i) => i.slug && i.slug.toLowerCase() === lower)\n if (bySlugCi) return bySlugCi\n return null\n}\n\nexport function levenshtein(a: string, b: string): number {\n if (a === b) return 0\n if (!a.length) return b.length\n if (!b.length) return a.length\n const m = a.length\n const n = b.length\n let prev = Array.from<number>({ length: n + 1 })\n let curr = Array.from<number>({ length: n + 1 })\n for (let j = 0; j <= n; j++) prev[j] = j\n for (let i = 1; i <= m; i++) {\n curr[0] = i\n for (let j = 1; j <= n; j++) {\n const cost = a.charCodeAt(i - 1) === b.charCodeAt(j - 1) ? 0 : 1\n curr[j] = Math.min(\n (curr[j - 1] ?? 0) + 1,\n (prev[j] ?? 0) + 1,\n (prev[j - 1] ?? 0) + cost,\n )\n }\n ;[prev, curr] = [curr, prev]\n }\n return prev[n] ?? 0\n}\n\nexport function fuzzySuggest(\n items: ReadonlyArray<ResolvableItem>,\n value: string,\n maxDistance = 2,\n): string[] {\n const lower = value.toLowerCase()\n const scored: { label: string; score: number }[] = []\n for (const item of items) {\n const candidates: string[] = []\n if (item.name) candidates.push(item.name)\n if (item.slug) candidates.push(item.slug)\n let best = Number.POSITIVE_INFINITY\n let label = item.name ?? item.slug ?? item.id\n for (const c of candidates) {\n const d = levenshtein(c.toLowerCase(), lower)\n if (d < best) {\n best = d\n label = c\n }\n }\n if (best <= maxDistance) scored.push({ label, score: best })\n }\n scored.sort((a, b) => a.score - b.score)\n return scored.slice(0, 3).map((s) => s.label)\n}\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as NameResolver } from "./resolve-
|
|
1
|
+
import { t as NameResolver } from "./resolve-CUsHGcb-.mjs";
|
|
2
2
|
//#region src/commands/internal/resolve-helpers.ts
|
|
3
3
|
function buildResolver(client) {
|
|
4
4
|
return new NameResolver({
|
|
@@ -27,4 +27,4 @@ async function resolveTopicRefs(payload, resolver) {
|
|
|
27
27
|
//#endregion
|
|
28
28
|
export { resolveCategoryRefs as n, resolveTopicRefs as r, buildResolver as t };
|
|
29
29
|
|
|
30
|
-
//# sourceMappingURL=resolve-helpers-
|
|
30
|
+
//# sourceMappingURL=resolve-helpers-CoHYa2uk.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-helpers-
|
|
1
|
+
{"version":3,"file":"resolve-helpers-CoHYa2uk.mjs","names":[],"sources":["../src/commands/internal/resolve-helpers.ts"],"sourcesContent":["import type { ApiClient } from '../../core/api-client'\nimport { NameResolver, type ResolvableItem } from '../../core/resolve'\n\nexport function buildResolver(client: ApiClient): NameResolver {\n return new NameResolver({\n fetchCategories: async () => {\n const res = await client.request<\n { data: ResolvableItem[] } | ResolvableItem[]\n >('/categories')\n const data = Array.isArray(res.data) ? res.data : res.data?.data\n return Array.isArray(data) ? data : []\n },\n fetchTopics: async () => {\n const res = await client.request<\n { data: ResolvableItem[] } | ResolvableItem[]\n >('/topics/all')\n const data = Array.isArray(res.data) ? res.data : res.data?.data\n return Array.isArray(data) ? data : []\n },\n })\n}\n\nexport async function resolveCategoryRefs(\n payload: Record<string, unknown>,\n resolver: NameResolver,\n): Promise<void> {\n const nameRef = payload.__categoryName\n delete payload.__categoryName\n if (\n typeof nameRef === 'string' &&\n nameRef.length > 0 &&\n !payload.categoryId\n ) {\n payload.categoryId = await resolver.resolveCategory(nameRef)\n }\n}\n\nexport async function resolveTopicRefs(\n payload: Record<string, unknown>,\n resolver: NameResolver,\n): Promise<void> {\n const nameRef = payload.__topicName\n delete payload.__topicName\n if (typeof nameRef === 'string' && nameRef.length > 0 && !payload.topicId) {\n payload.topicId = await resolver.resolveTopic(nameRef)\n }\n}\n"],"mappings":";;AAGA,SAAgB,cAAc,QAAiC;CAC7D,OAAO,IAAI,aAAa;EACtB,iBAAiB,YAAY;GAC3B,MAAM,MAAM,MAAM,OAAO,QAEvB,aAAa;GACf,MAAM,OAAO,MAAM,QAAQ,IAAI,IAAI,IAAI,IAAI,OAAO,IAAI,MAAM;GAC5D,OAAO,MAAM,QAAQ,IAAI,IAAI,OAAO,CAAC;EACvC;EACA,aAAa,YAAY;GACvB,MAAM,MAAM,MAAM,OAAO,QAEvB,aAAa;GACf,MAAM,OAAO,MAAM,QAAQ,IAAI,IAAI,IAAI,IAAI,OAAO,IAAI,MAAM;GAC5D,OAAO,MAAM,QAAQ,IAAI,IAAI,OAAO,CAAC;EACvC;CACF,CAAC;AACH;AAEA,eAAsB,oBACpB,SACA,UACe;CACf,MAAM,UAAU,QAAQ;CACxB,OAAO,QAAQ;CACf,IACE,OAAO,YAAY,YACnB,QAAQ,SAAS,KACjB,CAAC,QAAQ,YAET,QAAQ,aAAa,MAAM,SAAS,gBAAgB,OAAO;AAE/D;AAEA,eAAsB,iBACpB,SACA,UACe;CACf,MAAM,UAAU,QAAQ;CACxB,OAAO,QAAQ;CACf,IAAI,OAAO,YAAY,YAAY,QAAQ,SAAS,KAAK,CAAC,QAAQ,SAChE,QAAQ,UAAU,MAAM,SAAS,aAAa,OAAO;AAEzD"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { r as isSnowflakeId } from "./resolve-
|
|
1
|
+
import { c as MxsErrorCode, s as MxsError } from "./output-vzequvhd.mjs";
|
|
2
|
+
import { r as isSnowflakeId } from "./resolve-CUsHGcb-.mjs";
|
|
3
3
|
//#region src/commands/post/resolve.ts
|
|
4
4
|
async function resolvePostReadPath(client, slugOrId) {
|
|
5
5
|
if (isSnowflakeId(slugOrId)) return `/posts/${slugOrId}`;
|
|
6
6
|
const path = (await client.request(`/posts/get-url/${encodeURIComponent(slugOrId)}`)).data?.path;
|
|
7
7
|
if (!path) throw new MxsError({
|
|
8
|
-
code:
|
|
8
|
+
code: MxsErrorCode.ResourceNotFound,
|
|
9
9
|
message: `post not found: ${slugOrId}`
|
|
10
10
|
});
|
|
11
11
|
return `/posts${path.startsWith("/") ? path : `/${path}`}`;
|
|
@@ -15,7 +15,7 @@ async function resolvePostId(client, slugOrId) {
|
|
|
15
15
|
const path = await resolvePostReadPath(client, slugOrId);
|
|
16
16
|
const res = await client.request(path);
|
|
17
17
|
if (!res.data?.id) throw new MxsError({
|
|
18
|
-
code:
|
|
18
|
+
code: MxsErrorCode.ResourceNotFound,
|
|
19
19
|
message: `post not found: ${slugOrId}`
|
|
20
20
|
});
|
|
21
21
|
return res.data.id;
|
|
@@ -23,4 +23,4 @@ async function resolvePostId(client, slugOrId) {
|
|
|
23
23
|
//#endregion
|
|
24
24
|
export { resolvePostReadPath as n, resolvePostId as t };
|
|
25
25
|
|
|
26
|
-
//# sourceMappingURL=resolve-
|
|
26
|
+
//# sourceMappingURL=resolve-jdb1VqAG.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-jdb1VqAG.mjs","names":[],"sources":["../src/commands/post/resolve.ts"],"sourcesContent":["import type { ApiClient } from '../../core/api-client'\nimport { MxsError, MxsErrorCode } from '../../core/errors'\nimport { isSnowflakeId } from '../../core/resolve'\n\ninterface PostSlugUrl {\n path?: string\n}\n\ninterface PostIdResult {\n id?: string\n}\n\nexport async function resolvePostReadPath(\n client: ApiClient,\n slugOrId: string,\n): Promise<string> {\n if (isSnowflakeId(slugOrId)) return `/posts/${slugOrId}`\n\n const resolved = await client.request<PostSlugUrl>(\n `/posts/get-url/${encodeURIComponent(slugOrId)}`,\n )\n const path = resolved.data?.path\n if (!path) {\n throw new MxsError({\n code: MxsErrorCode.ResourceNotFound,\n message: `post not found: ${slugOrId}`,\n })\n }\n return `/posts${path.startsWith('/') ? path : `/${path}`}`\n}\n\nexport async function resolvePostId(\n client: ApiClient,\n slugOrId: string,\n): Promise<string> {\n if (isSnowflakeId(slugOrId)) return slugOrId\n\n const path = await resolvePostReadPath(client, slugOrId)\n const res = await client.request<PostIdResult>(path)\n if (!res.data?.id) {\n throw new MxsError({\n code: MxsErrorCode.ResourceNotFound,\n message: `post not found: ${slugOrId}`,\n })\n }\n return res.data.id\n}\n"],"mappings":";;;AAYA,eAAsB,oBACpB,QACA,UACiB;CACjB,IAAI,cAAc,QAAQ,GAAG,OAAO,UAAU;CAK9C,MAAM,QAAO,MAHU,OAAO,QAC5B,kBAAkB,mBAAmB,QAAQ,GAC/C,GACsB,MAAM;CAC5B,IAAI,CAAC,MACH,MAAM,IAAI,SAAS;EACjB,MAAM,aAAa;EACnB,SAAS,mBAAmB;CAC9B,CAAC;CAEH,OAAO,SAAS,KAAK,WAAW,GAAG,IAAI,OAAO,IAAI;AACpD;AAEA,eAAsB,cACpB,QACA,UACiB;CACjB,IAAI,cAAc,QAAQ,GAAG,OAAO;CAEpC,MAAM,OAAO,MAAM,oBAAoB,QAAQ,QAAQ;CACvD,MAAM,MAAM,MAAM,OAAO,QAAsB,IAAI;CACnD,IAAI,CAAC,IAAI,MAAM,IACb,MAAM,IAAI,SAAS;EACjB,MAAM,aAAa;EACnB,SAAS,mBAAmB;CAC9B,CAAC;CAEH,OAAO,IAAI,KAAK;AAClB"}
|
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
import { n as ue, r as q } from "./dist-DJF1Ntdn.mjs";
|
|
2
|
-
import {
|
|
2
|
+
import { c as MxsErrorCode, r as emitInfo, s as MxsError } from "./output-vzequvhd.mjs";
|
|
3
|
+
import { d as removeProfile, n as getCurrentPath, p as validateProfileName, r as getCurrentProfile } from "./profile-CNe2uWJi.mjs";
|
|
3
4
|
import { promises } from "node:fs";
|
|
4
5
|
//#region src/commands/profile/rm.ts
|
|
5
6
|
async function run(name, opts, _flags, out) {
|
|
6
7
|
validateProfileName(name);
|
|
7
8
|
const current = await getCurrentProfile();
|
|
8
9
|
if (current === name && !opts.force) throw new MxsError({
|
|
9
|
-
code:
|
|
10
|
+
code: MxsErrorCode.ValidationFailed,
|
|
10
11
|
message: `profile '${name}' is currently active; pass --force to remove it`,
|
|
11
12
|
hint: "switch to another profile first with `mxs profile use <name>`"
|
|
12
13
|
});
|
|
13
14
|
if (!opts.force) {
|
|
14
15
|
if (!process.stdin.isTTY) throw new MxsError({
|
|
15
|
-
code:
|
|
16
|
+
code: MxsErrorCode.ValidationFailed,
|
|
16
17
|
message: `cannot remove profile '${name}' non-interactively`,
|
|
17
18
|
hint: "pass --force to confirm removal in a non-interactive context"
|
|
18
19
|
});
|
|
@@ -29,4 +30,4 @@ async function run(name, opts, _flags, out) {
|
|
|
29
30
|
//#endregion
|
|
30
31
|
export { run };
|
|
31
32
|
|
|
32
|
-
//# sourceMappingURL=rm-
|
|
33
|
+
//# sourceMappingURL=rm-D-2iW1Cr.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rm-D-2iW1Cr.mjs","names":["confirm","isCancel","fs"],"sources":["../src/commands/profile/rm.ts"],"sourcesContent":["import { promises as fs } from 'node:fs'\n\nimport { confirm, isCancel } from '@clack/prompts'\n\nimport { MxsError, MxsErrorCode } from '../../core/errors'\nimport { emitInfo, type OutputOptions } from '../../core/output'\nimport {\n getCurrentPath,\n getCurrentProfile,\n removeProfile,\n validateProfileName,\n} from '../../core/profile'\nimport type { GlobalFlags } from '../internal/shared'\n\nexport interface RmOpts {\n force?: boolean\n}\n\nexport async function run(\n name: string,\n opts: RmOpts,\n _flags: GlobalFlags,\n out: OutputOptions,\n) {\n validateProfileName(name)\n\n const current = await getCurrentProfile()\n if (current === name && !opts.force) {\n throw new MxsError({\n code: MxsErrorCode.ValidationFailed,\n message: `profile '${name}' is currently active; pass --force to remove it`,\n hint: 'switch to another profile first with `mxs profile use <name>`',\n })\n }\n\n if (!opts.force) {\n if (!process.stdin.isTTY) {\n throw new MxsError({\n code: MxsErrorCode.ValidationFailed,\n message: `cannot remove profile '${name}' non-interactively`,\n hint: 'pass --force to confirm removal in a non-interactive context',\n })\n }\n const confirmed = await confirm({\n message: `Remove profile '${name}'? This cannot be undone.`,\n })\n if (isCancel(confirmed) || !confirmed) {\n return\n }\n }\n\n await removeProfile(name)\n emitInfo(`mxs: profile '${name}' removed`, out)\n\n if (current === name) {\n // clear the stale active-profile pointer so subsequent commands don't\n // hit profile.not_found on a profile that no longer exists\n await fs.rm(getCurrentPath(), { force: true })\n emitInfo('mxs: cleared active profile pointer', out)\n }\n}\n"],"mappings":";;;;;AAkBA,eAAsB,IACpB,MACA,MACA,QACA,KACA;CACA,oBAAoB,IAAI;CAExB,MAAM,UAAU,MAAM,kBAAkB;CACxC,IAAI,YAAY,QAAQ,CAAC,KAAK,OAC5B,MAAM,IAAI,SAAS;EACjB,MAAM,aAAa;EACnB,SAAS,YAAY,KAAK;EAC1B,MAAM;CACR,CAAC;CAGH,IAAI,CAAC,KAAK,OAAO;EACf,IAAI,CAAC,QAAQ,MAAM,OACjB,MAAM,IAAI,SAAS;GACjB,MAAM,aAAa;GACnB,SAAS,0BAA0B,KAAK;GACxC,MAAM;EACR,CAAC;EAEH,MAAM,YAAY,MAAMA,GAAQ,EAC9B,SAAS,mBAAmB,KAAK,2BACnC,CAAC;EACD,IAAIC,EAAS,SAAS,KAAK,CAAC,WAC1B;CAEJ;CAEA,MAAM,cAAc,IAAI;CACxB,SAAS,iBAAiB,KAAK,YAAY,GAAG;CAE9C,IAAI,YAAY,MAAM;EAGpB,MAAMC,SAAG,GAAG,eAAe,GAAG,EAAE,OAAO,KAAK,CAAC;EAC7C,SAAS,uCAAuC,GAAG;CACrD;AACF"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { n as ue, r as q } from "./dist-DJF1Ntdn.mjs";
|
|
2
|
+
import { c as MxsErrorCode, i as emitSuccess, r as emitInfo, s as MxsError } from "./output-vzequvhd.mjs";
|
|
3
|
+
import { a as resolveCliEntrypoint, i as fetchLatestVersion, n as compareSemver, o as satisfiesNodeEngine, r as detectPackageManager, s as spawnUpgrade, t as buildUpgradeCommand } from "./self-update-CZywTwGd.mjs";
|
|
4
|
+
//#region src/commands/update/run.ts
|
|
5
|
+
const KNOWN_PMS = new Set([
|
|
6
|
+
"npm",
|
|
7
|
+
"pnpm",
|
|
8
|
+
"yarn",
|
|
9
|
+
"bun"
|
|
10
|
+
]);
|
|
11
|
+
async function run(opts, flags, out, currentVersion) {
|
|
12
|
+
const channel = opts.prerelease ? "next" : "stable";
|
|
13
|
+
const detection = detectPackageManager(resolveCliEntrypoint());
|
|
14
|
+
let pm;
|
|
15
|
+
if (opts.pm) {
|
|
16
|
+
if (!KNOWN_PMS.has(opts.pm)) throw new MxsError({
|
|
17
|
+
code: MxsErrorCode.UpdatePmUnknown,
|
|
18
|
+
message: `unknown package manager '${opts.pm}'`,
|
|
19
|
+
hint: "supported values: npm | pnpm | yarn | bun"
|
|
20
|
+
});
|
|
21
|
+
pm = opts.pm;
|
|
22
|
+
} else switch (detection.kind) {
|
|
23
|
+
case "dev": throw new MxsError({
|
|
24
|
+
code: MxsErrorCode.UpdateDevEnvironment,
|
|
25
|
+
message: "dev install detected; mxs is running from the monorepo source tree",
|
|
26
|
+
hint: "pull the repo with `git pull` and rebuild instead of self-updating"
|
|
27
|
+
});
|
|
28
|
+
case "transient": throw new MxsError({
|
|
29
|
+
code: MxsErrorCode.UpdateTransientInstall,
|
|
30
|
+
message: `mxs is running from a transient ${detection.cache} cache`,
|
|
31
|
+
hint: "install mxs globally first, e.g. `npm i -g @mx-space/cli` or `pnpm add -g @mx-space/cli`"
|
|
32
|
+
});
|
|
33
|
+
case "unknown": throw new MxsError({
|
|
34
|
+
code: MxsErrorCode.UpdatePmUnknown,
|
|
35
|
+
message: "unable to detect the package manager that installed mxs",
|
|
36
|
+
hint: "pass --pm <npm|pnpm|yarn|bun> to override detection",
|
|
37
|
+
details: { realPath: detection.realPath }
|
|
38
|
+
});
|
|
39
|
+
case "global":
|
|
40
|
+
pm = detection.pm;
|
|
41
|
+
break;
|
|
42
|
+
}
|
|
43
|
+
let hit;
|
|
44
|
+
try {
|
|
45
|
+
const result = await fetchLatestVersion(channel);
|
|
46
|
+
if ("notModified" in result && result.notModified) throw new Error("unexpected 304 without an etag");
|
|
47
|
+
hit = result;
|
|
48
|
+
} catch (err) {
|
|
49
|
+
throw new MxsError({
|
|
50
|
+
code: MxsErrorCode.UpdateRegistryUnreachable,
|
|
51
|
+
message: "unable to reach the npm registry",
|
|
52
|
+
hint: "check your network connection or set MXS_NO_UPDATE_CHECK=1 to silence the notifier",
|
|
53
|
+
cause: err
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
if (compareSemver(currentVersion, hit.version) >= 0) {
|
|
57
|
+
emitSuccess({
|
|
58
|
+
current: currentVersion,
|
|
59
|
+
latest: hit.version,
|
|
60
|
+
channel,
|
|
61
|
+
up_to_date: true
|
|
62
|
+
}, out);
|
|
63
|
+
if (!out.json) emitInfo(`mxs: already up to date (${currentVersion})`, out);
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
if (hit.engines?.node && !satisfiesNodeEngine(process.versions.node, hit.engines.node)) throw new MxsError({
|
|
67
|
+
code: MxsErrorCode.UpdateNodeIncompatible,
|
|
68
|
+
message: `mxs ${hit.version} requires Node ${hit.engines.node} (current: v${process.versions.node})`,
|
|
69
|
+
hint: "upgrade Node first, then re-run `mxs update`"
|
|
70
|
+
});
|
|
71
|
+
if (!out.json) emitInfo(`mxs: ${currentVersion} → ${hit.version} (channel: ${channel}, pm: ${pm})`, out);
|
|
72
|
+
if (opts.check) {
|
|
73
|
+
emitSuccess({
|
|
74
|
+
current: currentVersion,
|
|
75
|
+
latest: hit.version,
|
|
76
|
+
channel,
|
|
77
|
+
pm,
|
|
78
|
+
up_to_date: false
|
|
79
|
+
}, out);
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
const { cmd, args } = buildUpgradeCommand(pm, channel);
|
|
83
|
+
if (flags.dryRun) {
|
|
84
|
+
const shown = `${cmd} ${args.join(" ")}`;
|
|
85
|
+
emitSuccess({
|
|
86
|
+
current: currentVersion,
|
|
87
|
+
latest: hit.version,
|
|
88
|
+
channel,
|
|
89
|
+
pm,
|
|
90
|
+
command: shown,
|
|
91
|
+
dry_run: true
|
|
92
|
+
}, out);
|
|
93
|
+
if (!out.json) emitInfo(`mxs: would run: ${shown}`, out);
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
const interactive = Boolean(process.stdin.isTTY) && Boolean(process.stderr.isTTY) && !out.json;
|
|
97
|
+
if (!opts.yes && interactive) {
|
|
98
|
+
const ok = await ue({ message: `Run \`${cmd} ${args.join(" ")}\` to upgrade?` });
|
|
99
|
+
if (q(ok) || !ok) {
|
|
100
|
+
emitInfo("mxs: update cancelled", out);
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
const result = await spawnUpgrade(cmd, args, {});
|
|
105
|
+
if (result.status === 0) {
|
|
106
|
+
emitSuccess({
|
|
107
|
+
current: currentVersion,
|
|
108
|
+
latest: hit.version,
|
|
109
|
+
channel,
|
|
110
|
+
pm,
|
|
111
|
+
upgraded: true
|
|
112
|
+
}, out);
|
|
113
|
+
if (!out.json) emitInfo(`mxs: upgraded to ${hit.version}. Restart any long-running mxs process.`, out);
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
if (/eacces|permission denied/i.test(result.stderr)) throw new MxsError({
|
|
117
|
+
code: MxsErrorCode.UpdatePermissionDenied,
|
|
118
|
+
message: "package manager could not write to the global install directory",
|
|
119
|
+
hint: `rerun with elevated permissions, e.g. \`sudo ${cmd} ${args.join(" ")}\``
|
|
120
|
+
});
|
|
121
|
+
throw new MxsError({
|
|
122
|
+
code: MxsErrorCode.UpdateSpawnFailed,
|
|
123
|
+
message: `${cmd} exited with status ${result.status}`,
|
|
124
|
+
hint: `rerun with \`mxs update --dry-run\` to inspect the exact command`
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
//#endregion
|
|
128
|
+
export { run };
|
|
129
|
+
|
|
130
|
+
//# sourceMappingURL=run-Dnax6uhZ.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-Dnax6uhZ.mjs","names":["confirm","isCancel"],"sources":["../src/commands/update/run.ts"],"sourcesContent":["import { confirm, isCancel } from '@clack/prompts'\n\nimport { MxsError, MxsErrorCode } from '../../core/errors'\nimport { emitInfo, emitSuccess, type OutputOptions } from '../../core/output'\nimport {\n buildUpgradeCommand,\n type Channel,\n compareSemver,\n detectPackageManager,\n fetchLatestVersion,\n type PmKind,\n resolveCliEntrypoint,\n satisfiesNodeEngine,\n spawnUpgrade,\n} from '../../core/self-update'\nimport type { GlobalFlags } from '../internal/shared'\n\nexport interface UpdateOpts {\n check?: boolean\n prerelease?: boolean\n pm?: string\n force?: boolean\n yes?: boolean\n}\n\nconst KNOWN_PMS: ReadonlySet<PmKind> = new Set<PmKind>([\n 'npm',\n 'pnpm',\n 'yarn',\n 'bun',\n])\n\nexport async function run(\n opts: UpdateOpts,\n flags: GlobalFlags,\n out: OutputOptions,\n currentVersion: string,\n): Promise<void> {\n const channel: Channel = opts.prerelease ? 'next' : 'stable'\n\n // 1. Detect package manager\n const entry = resolveCliEntrypoint()\n const detection = detectPackageManager(entry)\n\n let pm: PmKind\n if (opts.pm) {\n if (!KNOWN_PMS.has(opts.pm as PmKind)) {\n throw new MxsError({\n code: MxsErrorCode.UpdatePmUnknown,\n message: `unknown package manager '${opts.pm}'`,\n hint: 'supported values: npm | pnpm | yarn | bun',\n })\n }\n pm = opts.pm as PmKind\n } else {\n switch (detection.kind) {\n case 'dev': {\n throw new MxsError({\n code: MxsErrorCode.UpdateDevEnvironment,\n message:\n 'dev install detected; mxs is running from the monorepo source tree',\n hint: 'pull the repo with `git pull` and rebuild instead of self-updating',\n })\n }\n case 'transient': {\n throw new MxsError({\n code: MxsErrorCode.UpdateTransientInstall,\n message: `mxs is running from a transient ${detection.cache} cache`,\n hint: 'install mxs globally first, e.g. `npm i -g @mx-space/cli` or `pnpm add -g @mx-space/cli`',\n })\n }\n case 'unknown': {\n throw new MxsError({\n code: MxsErrorCode.UpdatePmUnknown,\n message: 'unable to detect the package manager that installed mxs',\n hint: 'pass --pm <npm|pnpm|yarn|bun> to override detection',\n details: { realPath: detection.realPath },\n })\n }\n case 'global': {\n pm = detection.pm\n break\n }\n }\n }\n\n // 2. Fetch latest from registry\n let hit\n try {\n const result = await fetchLatestVersion(channel)\n if ('notModified' in result && result.notModified) {\n throw new Error('unexpected 304 without an etag')\n }\n hit = result\n } catch (err) {\n throw new MxsError({\n code: MxsErrorCode.UpdateRegistryUnreachable,\n message: 'unable to reach the npm registry',\n hint: 'check your network connection or set MXS_NO_UPDATE_CHECK=1 to silence the notifier',\n cause: err,\n })\n }\n\n const cmp = compareSemver(currentVersion, hit.version)\n if (cmp >= 0) {\n emitSuccess(\n {\n current: currentVersion,\n latest: hit.version,\n channel,\n up_to_date: true,\n },\n out,\n )\n if (!out.json) {\n emitInfo(`mxs: already up to date (${currentVersion})`, out)\n }\n return\n }\n\n // 3. Node engine compatibility\n if (\n hit.engines?.node &&\n !satisfiesNodeEngine(process.versions.node, hit.engines.node)\n ) {\n throw new MxsError({\n code: MxsErrorCode.UpdateNodeIncompatible,\n message: `mxs ${hit.version} requires Node ${hit.engines.node} (current: v${process.versions.node})`,\n hint: 'upgrade Node first, then re-run `mxs update`',\n })\n }\n\n // 4. Announce\n if (!out.json) {\n emitInfo(\n `mxs: ${currentVersion} → ${hit.version} (channel: ${channel}, pm: ${pm})`,\n out,\n )\n }\n\n if (opts.check) {\n emitSuccess(\n {\n current: currentVersion,\n latest: hit.version,\n channel,\n pm,\n up_to_date: false,\n },\n out,\n )\n return\n }\n\n const { cmd, args } = buildUpgradeCommand(pm, channel)\n\n if (flags.dryRun) {\n const shown = `${cmd} ${args.join(' ')}`\n emitSuccess(\n {\n current: currentVersion,\n latest: hit.version,\n channel,\n pm,\n command: shown,\n dry_run: true,\n },\n out,\n )\n if (!out.json) emitInfo(`mxs: would run: ${shown}`, out)\n return\n }\n\n // 5. Confirmation\n const interactive =\n Boolean(process.stdin.isTTY) && Boolean(process.stderr.isTTY) && !out.json\n if (!opts.yes && interactive) {\n const ok = await confirm({\n message: `Run \\`${cmd} ${args.join(' ')}\\` to upgrade?`,\n })\n if (isCancel(ok) || !ok) {\n emitInfo('mxs: update cancelled', out)\n return\n }\n }\n\n // 6. Spawn\n const result = await spawnUpgrade(cmd, args, {})\n if (result.status === 0) {\n emitSuccess(\n {\n current: currentVersion,\n latest: hit.version,\n channel,\n pm,\n upgraded: true,\n },\n out,\n )\n if (!out.json) {\n emitInfo(\n `mxs: upgraded to ${hit.version}. Restart any long-running mxs process.`,\n out,\n )\n }\n return\n }\n\n if (/eacces|permission denied/i.test(result.stderr)) {\n throw new MxsError({\n code: MxsErrorCode.UpdatePermissionDenied,\n message:\n 'package manager could not write to the global install directory',\n hint: `rerun with elevated permissions, e.g. \\`sudo ${cmd} ${args.join(' ')}\\``,\n })\n }\n\n throw new MxsError({\n code: MxsErrorCode.UpdateSpawnFailed,\n message: `${cmd} exited with status ${result.status}`,\n hint: `rerun with \\`mxs update --dry-run\\` to inspect the exact command`,\n })\n}\n"],"mappings":";;;;AAyBA,MAAM,YAAiC,IAAI,IAAY;CACrD;CACA;CACA;CACA;AACF,CAAC;AAED,eAAsB,IACpB,MACA,OACA,KACA,gBACe;CACf,MAAM,UAAmB,KAAK,aAAa,SAAS;CAIpD,MAAM,YAAY,qBADJ,qBAC6B,CAAC;CAE5C,IAAI;CACJ,IAAI,KAAK,IAAI;EACX,IAAI,CAAC,UAAU,IAAI,KAAK,EAAY,GAClC,MAAM,IAAI,SAAS;GACjB,MAAM,aAAa;GACnB,SAAS,4BAA4B,KAAK,GAAG;GAC7C,MAAM;EACR,CAAC;EAEH,KAAK,KAAK;CACZ,OACE,QAAQ,UAAU,MAAlB;EACE,KAAK,OACH,MAAM,IAAI,SAAS;GACjB,MAAM,aAAa;GACnB,SACE;GACF,MAAM;EACR,CAAC;EAEH,KAAK,aACH,MAAM,IAAI,SAAS;GACjB,MAAM,aAAa;GACnB,SAAS,mCAAmC,UAAU,MAAM;GAC5D,MAAM;EACR,CAAC;EAEH,KAAK,WACH,MAAM,IAAI,SAAS;GACjB,MAAM,aAAa;GACnB,SAAS;GACT,MAAM;GACN,SAAS,EAAE,UAAU,UAAU,SAAS;EAC1C,CAAC;EAEH,KAAK;GACH,KAAK,UAAU;GACf;CAEJ;CAIF,IAAI;CACJ,IAAI;EACF,MAAM,SAAS,MAAM,mBAAmB,OAAO;EAC/C,IAAI,iBAAiB,UAAU,OAAO,aACpC,MAAM,IAAI,MAAM,gCAAgC;EAElD,MAAM;CACR,SAAS,KAAK;EACZ,MAAM,IAAI,SAAS;GACjB,MAAM,aAAa;GACnB,SAAS;GACT,MAAM;GACN,OAAO;EACT,CAAC;CACH;CAGA,IADY,cAAc,gBAAgB,IAAI,OACxC,KAAK,GAAG;EACZ,YACE;GACE,SAAS;GACT,QAAQ,IAAI;GACZ;GACA,YAAY;EACd,GACA,GACF;EACA,IAAI,CAAC,IAAI,MACP,SAAS,4BAA4B,eAAe,IAAI,GAAG;EAE7D;CACF;CAGA,IACE,IAAI,SAAS,QACb,CAAC,oBAAoB,QAAQ,SAAS,MAAM,IAAI,QAAQ,IAAI,GAE5D,MAAM,IAAI,SAAS;EACjB,MAAM,aAAa;EACnB,SAAS,OAAO,IAAI,QAAQ,iBAAiB,IAAI,QAAQ,KAAK,cAAc,QAAQ,SAAS,KAAK;EAClG,MAAM;CACR,CAAC;CAIH,IAAI,CAAC,IAAI,MACP,SACE,QAAQ,eAAe,KAAK,IAAI,QAAQ,cAAc,QAAQ,QAAQ,GAAG,IACzE,GACF;CAGF,IAAI,KAAK,OAAO;EACd,YACE;GACE,SAAS;GACT,QAAQ,IAAI;GACZ;GACA;GACA,YAAY;EACd,GACA,GACF;EACA;CACF;CAEA,MAAM,EAAE,KAAK,SAAS,oBAAoB,IAAI,OAAO;CAErD,IAAI,MAAM,QAAQ;EAChB,MAAM,QAAQ,GAAG,IAAI,GAAG,KAAK,KAAK,GAAG;EACrC,YACE;GACE,SAAS;GACT,QAAQ,IAAI;GACZ;GACA;GACA,SAAS;GACT,SAAS;EACX,GACA,GACF;EACA,IAAI,CAAC,IAAI,MAAM,SAAS,mBAAmB,SAAS,GAAG;EACvD;CACF;CAGA,MAAM,cACJ,QAAQ,QAAQ,MAAM,KAAK,KAAK,QAAQ,QAAQ,OAAO,KAAK,KAAK,CAAC,IAAI;CACxE,IAAI,CAAC,KAAK,OAAO,aAAa;EAC5B,MAAM,KAAK,MAAMA,GAAQ,EACvB,SAAS,SAAS,IAAI,GAAG,KAAK,KAAK,GAAG,EAAE,gBAC1C,CAAC;EACD,IAAIC,EAAS,EAAE,KAAK,CAAC,IAAI;GACvB,SAAS,yBAAyB,GAAG;GACrC;EACF;CACF;CAGA,MAAM,SAAS,MAAM,aAAa,KAAK,MAAM,CAAC,CAAC;CAC/C,IAAI,OAAO,WAAW,GAAG;EACvB,YACE;GACE,SAAS;GACT,QAAQ,IAAI;GACZ;GACA;GACA,UAAU;EACZ,GACA,GACF;EACA,IAAI,CAAC,IAAI,MACP,SACE,oBAAoB,IAAI,QAAQ,0CAChC,GACF;EAEF;CACF;CAEA,IAAI,4BAA4B,KAAK,OAAO,MAAM,GAChD,MAAM,IAAI,SAAS;EACjB,MAAM,aAAa;EACnB,SACE;EACF,MAAM,gDAAgD,IAAI,GAAG,KAAK,KAAK,GAAG,EAAE;CAC9E,CAAC;CAGH,MAAM,IAAI,SAAS;EACjB,MAAM,aAAa;EACnB,SAAS,GAAG,IAAI,sBAAsB,OAAO;EAC7C,MAAM;CACR,CAAC;AACH"}
|