opkg 0.11.0 → 0.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/packages/cli/dist/add-35AZD33Q.js +448 -0
- package/packages/cli/dist/add-35AZD33Q.js.map +7 -0
- package/packages/cli/dist/add-EWG2V26R.js +448 -0
- package/packages/cli/dist/add-EWG2V26R.js.map +7 -0
- package/packages/cli/dist/add-EWNCPC6M.js +448 -0
- package/packages/cli/dist/add-EWNCPC6M.js.map +7 -0
- package/packages/cli/dist/add-FEM5T2D6.js +448 -0
- package/packages/cli/dist/add-FEM5T2D6.js.map +7 -0
- package/packages/cli/dist/add-JH4URR76.js +448 -0
- package/packages/cli/dist/add-JH4URR76.js.map +7 -0
- package/packages/cli/dist/add-YU7P3FHA.js +448 -0
- package/packages/cli/dist/add-YU7P3FHA.js.map +7 -0
- package/packages/cli/dist/chunk-273O7FUR.js +274 -0
- package/packages/cli/dist/chunk-273O7FUR.js.map +7 -0
- package/packages/cli/dist/chunk-2IAAVATU.js +280 -0
- package/packages/cli/dist/chunk-2IAAVATU.js.map +7 -0
- package/packages/cli/dist/chunk-2LATGNX4.js +116 -0
- package/packages/cli/dist/chunk-2LATGNX4.js.map +7 -0
- package/packages/cli/dist/chunk-2MRPDKYU.js +108 -0
- package/packages/cli/dist/chunk-2MRPDKYU.js.map +7 -0
- package/packages/cli/dist/chunk-3ACC6PJ5.js +332 -0
- package/packages/cli/dist/chunk-3ACC6PJ5.js.map +7 -0
- package/packages/cli/dist/chunk-3WPUAQB5.js +143 -0
- package/packages/cli/dist/chunk-3WPUAQB5.js.map +7 -0
- package/packages/cli/dist/chunk-4AGUGPUE.js +215 -0
- package/packages/cli/dist/chunk-4AGUGPUE.js.map +7 -0
- package/packages/cli/dist/chunk-4BNYN3YB.js +307 -0
- package/packages/cli/dist/chunk-4BNYN3YB.js.map +7 -0
- package/packages/cli/dist/chunk-52VR3KCN.js +215 -0
- package/packages/cli/dist/chunk-52VR3KCN.js.map +7 -0
- package/packages/cli/dist/chunk-5SPQHHLL.js +307 -0
- package/packages/cli/dist/chunk-5SPQHHLL.js.map +7 -0
- package/packages/cli/dist/chunk-6235AHOU.js +70 -0
- package/packages/cli/dist/chunk-6235AHOU.js.map +7 -0
- package/packages/cli/dist/chunk-7PNUU5JV.js +307 -0
- package/packages/cli/dist/chunk-7PNUU5JV.js.map +7 -0
- package/packages/cli/dist/chunk-7R6NSAND.js +337 -0
- package/packages/cli/dist/chunk-7R6NSAND.js.map +7 -0
- package/packages/cli/dist/chunk-7SN2OWJM.js +274 -0
- package/packages/cli/dist/chunk-7SN2OWJM.js.map +7 -0
- package/packages/cli/dist/chunk-7WW52MM4.js +49 -0
- package/packages/cli/dist/chunk-7WW52MM4.js.map +7 -0
- package/packages/cli/dist/chunk-AM5BPFN7.js +337 -0
- package/packages/cli/dist/chunk-AM5BPFN7.js.map +7 -0
- package/packages/cli/dist/chunk-AMDZ24A7.js +282 -0
- package/packages/cli/dist/chunk-AMDZ24A7.js.map +7 -0
- package/packages/cli/dist/chunk-AWHR3NK2.js +172 -0
- package/packages/cli/dist/chunk-AWHR3NK2.js.map +7 -0
- package/packages/cli/dist/chunk-AWO5JJ6X.js +337 -0
- package/packages/cli/dist/chunk-AWO5JJ6X.js.map +7 -0
- package/packages/cli/dist/chunk-AY4LA2P7.js +425 -0
- package/packages/cli/dist/chunk-AY4LA2P7.js.map +7 -0
- package/packages/cli/dist/chunk-B5RYSTJU.js +282 -0
- package/packages/cli/dist/chunk-B5RYSTJU.js.map +7 -0
- package/packages/cli/dist/chunk-B7MS622Q.js +424 -0
- package/packages/cli/dist/chunk-B7MS622Q.js.map +7 -0
- package/packages/cli/dist/chunk-BBHLRLWF.js +425 -0
- package/packages/cli/dist/chunk-BBHLRLWF.js.map +7 -0
- package/packages/cli/dist/chunk-BGT25BBB.js +108 -0
- package/packages/cli/dist/chunk-BGT25BBB.js.map +7 -0
- package/packages/cli/dist/chunk-CBVEKXFH.js +215 -0
- package/packages/cli/dist/chunk-CBVEKXFH.js.map +7 -0
- package/packages/cli/dist/chunk-CMQKW5T7.js +74 -0
- package/packages/cli/dist/chunk-CMQKW5T7.js.map +7 -0
- package/packages/cli/dist/chunk-CWPWFVXO.js +282 -0
- package/packages/cli/dist/chunk-CWPWFVXO.js.map +7 -0
- package/packages/cli/dist/chunk-D2COQ3EW.js +74 -0
- package/packages/cli/dist/chunk-D2COQ3EW.js.map +7 -0
- package/packages/cli/dist/chunk-E2FK6O6G.js +52 -0
- package/packages/cli/dist/chunk-E2FK6O6G.js.map +7 -0
- package/packages/cli/dist/chunk-EJBP62NV.js +70 -0
- package/packages/cli/dist/chunk-EJBP62NV.js.map +7 -0
- package/packages/cli/dist/chunk-EWHO3VF4.js +74 -0
- package/packages/cli/dist/chunk-EWHO3VF4.js.map +7 -0
- package/packages/cli/dist/chunk-FUVC24HG.js +424 -0
- package/packages/cli/dist/chunk-FUVC24HG.js.map +7 -0
- package/packages/cli/dist/chunk-G5473FJN.js +12192 -0
- package/packages/cli/dist/chunk-G5473FJN.js.map +7 -0
- package/packages/cli/dist/chunk-GBM4RIW5.js +74 -0
- package/packages/cli/dist/chunk-GBM4RIW5.js.map +7 -0
- package/packages/cli/dist/chunk-GDZPVX3F.js +116 -0
- package/packages/cli/dist/chunk-GDZPVX3F.js.map +7 -0
- package/packages/cli/dist/chunk-GEPTQSIV.js +116 -0
- package/packages/cli/dist/chunk-GEPTQSIV.js.map +7 -0
- package/packages/cli/dist/chunk-GPDZBNHA.js +12192 -0
- package/packages/cli/dist/chunk-GPDZBNHA.js.map +7 -0
- package/packages/cli/dist/chunk-GUQU6TTJ.js +14 -0
- package/packages/cli/dist/chunk-GUQU6TTJ.js.map +7 -0
- package/packages/cli/dist/chunk-GV3SBQCM.js +49 -0
- package/packages/cli/dist/chunk-GV3SBQCM.js.map +7 -0
- package/packages/cli/dist/chunk-HR66GTGZ.js +274 -0
- package/packages/cli/dist/chunk-HR66GTGZ.js.map +7 -0
- package/packages/cli/dist/chunk-I5NEOYBF.js +337 -0
- package/packages/cli/dist/chunk-I5NEOYBF.js.map +7 -0
- package/packages/cli/dist/chunk-I6GQBHA6.js +84 -0
- package/packages/cli/dist/chunk-I6GQBHA6.js.map +7 -0
- package/packages/cli/dist/chunk-IVHM65OY.js +116 -0
- package/packages/cli/dist/chunk-IVHM65OY.js.map +7 -0
- package/packages/cli/dist/chunk-J4KSEWS7.js +287 -0
- package/packages/cli/dist/chunk-J4KSEWS7.js.map +7 -0
- package/packages/cli/dist/chunk-J5J26L3J.js +31 -0
- package/packages/cli/dist/chunk-J5J26L3J.js.map +7 -0
- package/packages/cli/dist/chunk-J6VRBMFH.js +215 -0
- package/packages/cli/dist/chunk-J6VRBMFH.js.map +7 -0
- package/packages/cli/dist/chunk-JEEOPXFA.js +215 -0
- package/packages/cli/dist/chunk-JEEOPXFA.js.map +7 -0
- package/packages/cli/dist/chunk-JJG6ETAO.js +425 -0
- package/packages/cli/dist/chunk-JJG6ETAO.js.map +7 -0
- package/packages/cli/dist/chunk-JOMKQRQH.js +12138 -0
- package/packages/cli/dist/chunk-JOMKQRQH.js.map +7 -0
- package/packages/cli/dist/chunk-JONTS3TS.js +84 -0
- package/packages/cli/dist/chunk-JONTS3TS.js.map +7 -0
- package/packages/cli/dist/chunk-JPYRA66G.js +424 -0
- package/packages/cli/dist/chunk-JPYRA66G.js.map +7 -0
- package/packages/cli/dist/chunk-JXDKNRIP.js +31 -0
- package/packages/cli/dist/chunk-JXDKNRIP.js.map +7 -0
- package/packages/cli/dist/chunk-K66UIYXD.js +274 -0
- package/packages/cli/dist/chunk-K66UIYXD.js.map +7 -0
- package/packages/cli/dist/chunk-KAICGKKW.js +307 -0
- package/packages/cli/dist/chunk-KAICGKKW.js.map +7 -0
- package/packages/cli/dist/chunk-KAK47O2X.js +425 -0
- package/packages/cli/dist/chunk-KAK47O2X.js.map +7 -0
- package/packages/cli/dist/chunk-KAOH77J5.js +74 -0
- package/packages/cli/dist/chunk-KAOH77J5.js.map +7 -0
- package/packages/cli/dist/chunk-KIVTU2R7.js +74 -0
- package/packages/cli/dist/chunk-KIVTU2R7.js.map +7 -0
- package/packages/cli/dist/chunk-KYH5VBEV.js +282 -0
- package/packages/cli/dist/chunk-KYH5VBEV.js.map +7 -0
- package/packages/cli/dist/chunk-LR36ZDVV.js +274 -0
- package/packages/cli/dist/chunk-LR36ZDVV.js.map +7 -0
- package/packages/cli/dist/chunk-LRX3FWSF.js +425 -0
- package/packages/cli/dist/chunk-LRX3FWSF.js.map +7 -0
- package/packages/cli/dist/chunk-LY2HSVOV.js +116 -0
- package/packages/cli/dist/chunk-LY2HSVOV.js.map +7 -0
- package/packages/cli/dist/chunk-MBCZDRNN.js +74 -0
- package/packages/cli/dist/chunk-MBCZDRNN.js.map +7 -0
- package/packages/cli/dist/chunk-MDRTPTDZ.js +70 -0
- package/packages/cli/dist/chunk-MDRTPTDZ.js.map +7 -0
- package/packages/cli/dist/chunk-MFCN7ZLR.js +172 -0
- package/packages/cli/dist/chunk-MFCN7ZLR.js.map +7 -0
- package/packages/cli/dist/chunk-MHOW2AJR.js +215 -0
- package/packages/cli/dist/chunk-MHOW2AJR.js.map +7 -0
- package/packages/cli/dist/chunk-N6DCXBHC.js +116 -0
- package/packages/cli/dist/chunk-N6DCXBHC.js.map +7 -0
- package/packages/cli/dist/chunk-NPOMDAEJ.js +12192 -0
- package/packages/cli/dist/chunk-NPOMDAEJ.js.map +7 -0
- package/packages/cli/dist/chunk-NUW5EKYG.js +307 -0
- package/packages/cli/dist/chunk-NUW5EKYG.js.map +7 -0
- package/packages/cli/dist/chunk-P66IAV3K.js +337 -0
- package/packages/cli/dist/chunk-P66IAV3K.js.map +7 -0
- package/packages/cli/dist/chunk-PNLXJRQY.js +70 -0
- package/packages/cli/dist/chunk-PNLXJRQY.js.map +7 -0
- package/packages/cli/dist/chunk-PVITTCSP.js +70 -0
- package/packages/cli/dist/chunk-PVITTCSP.js.map +7 -0
- package/packages/cli/dist/chunk-SWSRMT6U.js +337 -0
- package/packages/cli/dist/chunk-SWSRMT6U.js.map +7 -0
- package/packages/cli/dist/chunk-SYSJLYO4.js +49 -0
- package/packages/cli/dist/chunk-SYSJLYO4.js.map +7 -0
- package/packages/cli/dist/chunk-TELC3BGD.js +84 -0
- package/packages/cli/dist/chunk-TELC3BGD.js.map +7 -0
- package/packages/cli/dist/chunk-TG7WN5KW.js +424 -0
- package/packages/cli/dist/chunk-TG7WN5KW.js.map +7 -0
- package/packages/cli/dist/chunk-TZUMS7YF.js +70 -0
- package/packages/cli/dist/chunk-TZUMS7YF.js.map +7 -0
- package/packages/cli/dist/chunk-U2ARCCOU.js +12192 -0
- package/packages/cli/dist/chunk-U2ARCCOU.js.map +7 -0
- package/packages/cli/dist/chunk-U7MGQ34R.js +274 -0
- package/packages/cli/dist/chunk-U7MGQ34R.js.map +7 -0
- package/packages/cli/dist/chunk-VM7HF4W6.js +49 -0
- package/packages/cli/dist/chunk-VM7HF4W6.js.map +7 -0
- package/packages/cli/dist/chunk-VMBCQKNI.js +765 -0
- package/packages/cli/dist/chunk-VMBCQKNI.js.map +7 -0
- package/packages/cli/dist/chunk-W6GVBXO4.js +425 -0
- package/packages/cli/dist/chunk-W6GVBXO4.js.map +7 -0
- package/packages/cli/dist/chunk-WD62QZ5A.js +424 -0
- package/packages/cli/dist/chunk-WD62QZ5A.js.map +7 -0
- package/packages/cli/dist/chunk-WKLEUFTA.js +49 -0
- package/packages/cli/dist/chunk-WKLEUFTA.js.map +7 -0
- package/packages/cli/dist/chunk-X5VFQY63.js +49 -0
- package/packages/cli/dist/chunk-X5VFQY63.js.map +7 -0
- package/packages/cli/dist/chunk-XAEFVXK4.js +307 -0
- package/packages/cli/dist/chunk-XAEFVXK4.js.map +7 -0
- package/packages/cli/dist/chunk-XVLYPAD7.js +424 -0
- package/packages/cli/dist/chunk-XVLYPAD7.js.map +7 -0
- package/packages/cli/dist/chunk-YCTH52EW.js +282 -0
- package/packages/cli/dist/chunk-YCTH52EW.js.map +7 -0
- package/packages/cli/dist/chunk-YHQH2PZY.js +282 -0
- package/packages/cli/dist/chunk-YHQH2PZY.js.map +7 -0
- package/packages/cli/dist/chunk-YQGPV5AF.js +287 -0
- package/packages/cli/dist/chunk-YQGPV5AF.js.map +7 -0
- package/packages/cli/dist/chunk-ZE3E6GOE.js +14 -0
- package/packages/cli/dist/chunk-ZE3E6GOE.js.map +7 -0
- package/packages/cli/dist/chunk-ZWCVY4NA.js +12130 -0
- package/packages/cli/dist/chunk-ZWCVY4NA.js.map +7 -0
- package/packages/cli/dist/default-AE5VEWRA.js +150 -0
- package/packages/cli/dist/default-AE5VEWRA.js.map +7 -0
- package/packages/cli/dist/default-ESZWO2DD.js +150 -0
- package/packages/cli/dist/default-ESZWO2DD.js.map +7 -0
- package/packages/cli/dist/default-H2RKGZBN.js +150 -0
- package/packages/cli/dist/default-H2RKGZBN.js.map +7 -0
- package/packages/cli/dist/default-HNUZ5S4P.js +150 -0
- package/packages/cli/dist/default-HNUZ5S4P.js.map +7 -0
- package/packages/cli/dist/default-VT65QXRB.js +150 -0
- package/packages/cli/dist/default-VT65QXRB.js.map +7 -0
- package/packages/cli/dist/default-XEUGIOQQ.js +150 -0
- package/packages/cli/dist/default-XEUGIOQQ.js.map +7 -0
- package/packages/cli/dist/file-format-detector-Z4KESA7N.js +21 -0
- package/packages/cli/dist/file-format-detector-Z4KESA7N.js.map +7 -0
- package/packages/cli/dist/fork-package-BSP24PHM.js +93 -0
- package/packages/cli/dist/fork-package-BSP24PHM.js.map +7 -0
- package/packages/cli/dist/fork-package-JPUL5CXD.js +93 -0
- package/packages/cli/dist/fork-package-JPUL5CXD.js.map +7 -0
- package/packages/cli/dist/fork-package-K5L4FM2X.js +93 -0
- package/packages/cli/dist/fork-package-K5L4FM2X.js.map +7 -0
- package/packages/cli/dist/fork-package-Q5OYPJRG.js +93 -0
- package/packages/cli/dist/fork-package-Q5OYPJRG.js.map +7 -0
- package/packages/cli/dist/fork-package-TQWFMQR5.js +93 -0
- package/packages/cli/dist/fork-package-TQWFMQR5.js.map +7 -0
- package/packages/cli/dist/fork-package-Y5MWQQMF.js +93 -0
- package/packages/cli/dist/fork-package-Y5MWQQMF.js.map +7 -0
- package/packages/cli/dist/index.js +16 -16
- package/packages/cli/dist/install-6EJHLY2B.js +2575 -0
- package/packages/cli/dist/install-6EJHLY2B.js.map +7 -0
- package/packages/cli/dist/install-6ILDAPDN.js +2575 -0
- package/packages/cli/dist/install-6ILDAPDN.js.map +7 -0
- package/packages/cli/dist/install-HG3ZQU4X.js +2575 -0
- package/packages/cli/dist/install-HG3ZQU4X.js.map +7 -0
- package/packages/cli/dist/install-OB5BME6N.js +2575 -0
- package/packages/cli/dist/install-OB5BME6N.js.map +7 -0
- package/packages/cli/dist/install-T2SOBJTA.js +2575 -0
- package/packages/cli/dist/install-T2SOBJTA.js.map +7 -0
- package/packages/cli/dist/install-UAXFHOBR.js +2575 -0
- package/packages/cli/dist/install-UAXFHOBR.js.map +7 -0
- package/packages/cli/dist/list-4NP2WDER.js +297 -0
- package/packages/cli/dist/list-4NP2WDER.js.map +7 -0
- package/packages/cli/dist/list-4VUIAVPZ.js +297 -0
- package/packages/cli/dist/list-4VUIAVPZ.js.map +7 -0
- package/packages/cli/dist/list-ET6IULBE.js +297 -0
- package/packages/cli/dist/list-ET6IULBE.js.map +7 -0
- package/packages/cli/dist/list-KIADUOEI.js +297 -0
- package/packages/cli/dist/list-KIADUOEI.js.map +7 -0
- package/packages/cli/dist/list-MRHF7G4L.js +297 -0
- package/packages/cli/dist/list-MRHF7G4L.js.map +7 -0
- package/packages/cli/dist/list-Q6BRT6P7.js +297 -0
- package/packages/cli/dist/list-Q6BRT6P7.js.map +7 -0
- package/packages/cli/dist/login-GGDCB5PJ.js +152 -0
- package/packages/cli/dist/login-GGDCB5PJ.js.map +7 -0
- package/packages/cli/dist/login-LQ3ICNLP.js +152 -0
- package/packages/cli/dist/login-LQ3ICNLP.js.map +7 -0
- package/packages/cli/dist/logout-5LHFAHDJ.js +42 -0
- package/packages/cli/dist/logout-5LHFAHDJ.js.map +7 -0
- package/packages/cli/dist/logout-APVHV26S.js +42 -0
- package/packages/cli/dist/logout-APVHV26S.js.map +7 -0
- package/packages/cli/dist/move-A4MG6JVB.js +810 -0
- package/packages/cli/dist/move-A4MG6JVB.js.map +7 -0
- package/packages/cli/dist/move-BBGK4FBY.js +810 -0
- package/packages/cli/dist/move-BBGK4FBY.js.map +7 -0
- package/packages/cli/dist/move-K6CBO6G3.js +810 -0
- package/packages/cli/dist/move-K6CBO6G3.js.map +7 -0
- package/packages/cli/dist/move-LKYF44LT.js +810 -0
- package/packages/cli/dist/move-LKYF44LT.js.map +7 -0
- package/packages/cli/dist/move-OTZC7YXI.js +810 -0
- package/packages/cli/dist/move-OTZC7YXI.js.map +7 -0
- package/packages/cli/dist/move-RNQ5NLIB.js +810 -0
- package/packages/cli/dist/move-RNQ5NLIB.js.map +7 -0
- package/packages/cli/dist/new-6ABP5P3T.js +290 -0
- package/packages/cli/dist/new-6ABP5P3T.js.map +7 -0
- package/packages/cli/dist/new-AJCJKQOE.js +290 -0
- package/packages/cli/dist/new-AJCJKQOE.js.map +7 -0
- package/packages/cli/dist/new-R5JXQHAY.js +290 -0
- package/packages/cli/dist/new-R5JXQHAY.js.map +7 -0
- package/packages/cli/dist/new-RG2QNBPM.js +290 -0
- package/packages/cli/dist/new-RG2QNBPM.js.map +7 -0
- package/packages/cli/dist/new-S5N2ONZT.js +290 -0
- package/packages/cli/dist/new-S5N2ONZT.js.map +7 -0
- package/packages/cli/dist/new-VV4Q4PRJ.js +290 -0
- package/packages/cli/dist/new-VV4Q4PRJ.js.map +7 -0
- package/packages/cli/dist/package-marker-detector-3F4M4Q5P.js +80 -0
- package/packages/cli/dist/package-marker-detector-3F4M4Q5P.js.map +7 -0
- package/packages/cli/dist/package-yml-MPERQAWU.js +16 -0
- package/packages/cli/dist/package-yml-MPERQAWU.js.map +7 -0
- package/packages/cli/dist/plugin-naming-SQVZ6PFK.js +31 -0
- package/packages/cli/dist/plugin-naming-SQVZ6PFK.js.map +7 -0
- package/packages/cli/dist/publish-4TV2ZK5X.js +672 -0
- package/packages/cli/dist/publish-4TV2ZK5X.js.map +7 -0
- package/packages/cli/dist/publish-6F5734CZ.js +672 -0
- package/packages/cli/dist/publish-6F5734CZ.js.map +7 -0
- package/packages/cli/dist/publish-GZEZVCVD.js +672 -0
- package/packages/cli/dist/publish-GZEZVCVD.js.map +7 -0
- package/packages/cli/dist/publish-JAK6XJ5U.js +672 -0
- package/packages/cli/dist/publish-JAK6XJ5U.js.map +7 -0
- package/packages/cli/dist/publish-LDZJJFDU.js +672 -0
- package/packages/cli/dist/publish-LDZJJFDU.js.map +7 -0
- package/packages/cli/dist/publish-VD5BH772.js +672 -0
- package/packages/cli/dist/publish-VD5BH772.js.map +7 -0
- package/packages/cli/dist/remove-46HCLSB2.js +590 -0
- package/packages/cli/dist/remove-46HCLSB2.js.map +7 -0
- package/packages/cli/dist/remove-GAWDVO5W.js +590 -0
- package/packages/cli/dist/remove-GAWDVO5W.js.map +7 -0
- package/packages/cli/dist/remove-H3MJYU46.js +590 -0
- package/packages/cli/dist/remove-H3MJYU46.js.map +7 -0
- package/packages/cli/dist/remove-ITQT7GNY.js +590 -0
- package/packages/cli/dist/remove-ITQT7GNY.js.map +7 -0
- package/packages/cli/dist/remove-SKMK645X.js +590 -0
- package/packages/cli/dist/remove-SKMK645X.js.map +7 -0
- package/packages/cli/dist/remove-XKOI2TSV.js +590 -0
- package/packages/cli/dist/remove-XKOI2TSV.js.map +7 -0
- package/packages/cli/dist/resolve-named-dependency-APBOSCNS.js +31 -0
- package/packages/cli/dist/resolve-named-dependency-APBOSCNS.js.map +7 -0
- package/packages/cli/dist/resolve-named-dependency-ATTG6SEQ.js +31 -0
- package/packages/cli/dist/resolve-named-dependency-ATTG6SEQ.js.map +7 -0
- package/packages/cli/dist/resolve-named-dependency-IE2BZIMX.js +31 -0
- package/packages/cli/dist/resolve-named-dependency-IE2BZIMX.js.map +7 -0
- package/packages/cli/dist/resolve-named-dependency-OKLCHGEN.js +31 -0
- package/packages/cli/dist/resolve-named-dependency-OKLCHGEN.js.map +7 -0
- package/packages/cli/dist/resolve-named-dependency-WNKFZT5H.js +31 -0
- package/packages/cli/dist/resolve-named-dependency-WNKFZT5H.js.map +7 -0
- package/packages/cli/dist/resolve-named-dependency-ZBK7D7IJ.js +31 -0
- package/packages/cli/dist/resolve-named-dependency-ZBK7D7IJ.js.map +7 -0
- package/packages/cli/dist/resource-discoverer-27YFTGBM.js +30 -0
- package/packages/cli/dist/resource-discoverer-27YFTGBM.js.map +7 -0
- package/packages/cli/dist/resource-discoverer-2XZCILW3.js +30 -0
- package/packages/cli/dist/resource-discoverer-2XZCILW3.js.map +7 -0
- package/packages/cli/dist/resource-discoverer-F6LORUER.js +30 -0
- package/packages/cli/dist/resource-discoverer-F6LORUER.js.map +7 -0
- package/packages/cli/dist/resource-discoverer-FZ6KH5DE.js +30 -0
- package/packages/cli/dist/resource-discoverer-FZ6KH5DE.js.map +7 -0
- package/packages/cli/dist/resource-discoverer-HPYQKUSR.js +30 -0
- package/packages/cli/dist/resource-discoverer-HPYQKUSR.js.map +7 -0
- package/packages/cli/dist/resource-discoverer-HWNNBMN2.js +30 -0
- package/packages/cli/dist/resource-discoverer-HWNNBMN2.js.map +7 -0
- package/packages/cli/dist/schema-TWPA3HNC.js +400 -0
- package/packages/cli/dist/schema-TWPA3HNC.js.map +7 -0
- package/packages/cli/dist/search-EMTBAZZ5.js +172 -0
- package/packages/cli/dist/search-EMTBAZZ5.js.map +7 -0
- package/packages/cli/dist/set-BLX5KRDE.js +279 -0
- package/packages/cli/dist/set-BLX5KRDE.js.map +7 -0
- package/packages/cli/dist/set-CNNCWYLF.js +279 -0
- package/packages/cli/dist/set-CNNCWYLF.js.map +7 -0
- package/packages/cli/dist/sync-4AJBEY32.js +2552 -0
- package/packages/cli/dist/sync-4AJBEY32.js.map +7 -0
- package/packages/cli/dist/sync-CE5AIUAW.js +2552 -0
- package/packages/cli/dist/sync-CE5AIUAW.js.map +7 -0
- package/packages/cli/dist/sync-DQPCH7AY.js +2552 -0
- package/packages/cli/dist/sync-DQPCH7AY.js.map +7 -0
- package/packages/cli/dist/sync-OKKF5KR6.js +2552 -0
- package/packages/cli/dist/sync-OKKF5KR6.js.map +7 -0
- package/packages/cli/dist/sync-UVQMSR6Z.js +2552 -0
- package/packages/cli/dist/sync-UVQMSR6Z.js.map +7 -0
- package/packages/cli/dist/sync-VLTEFJ7G.js +2552 -0
- package/packages/cli/dist/sync-VLTEFJ7G.js.map +7 -0
- package/packages/cli/dist/uninstall-452DYD4M.js +417 -0
- package/packages/cli/dist/uninstall-452DYD4M.js.map +7 -0
- package/packages/cli/dist/uninstall-AFWHSBZN.js +417 -0
- package/packages/cli/dist/uninstall-AFWHSBZN.js.map +7 -0
- package/packages/cli/dist/uninstall-PTS633SO.js +417 -0
- package/packages/cli/dist/uninstall-PTS633SO.js.map +7 -0
- package/packages/cli/dist/uninstall-REFLRIYR.js +417 -0
- package/packages/cli/dist/uninstall-REFLRIYR.js.map +7 -0
- package/packages/cli/dist/uninstall-U7RMA3TX.js +417 -0
- package/packages/cli/dist/uninstall-U7RMA3TX.js.map +7 -0
- package/packages/cli/dist/uninstall-ZIGZN36C.js +417 -0
- package/packages/cli/dist/uninstall-ZIGZN36C.js.map +7 -0
- package/packages/cli/dist/view-2HHOVGMU.js +490 -0
- package/packages/cli/dist/view-2HHOVGMU.js.map +7 -0
- package/packages/cli/dist/view-3AH3AT5X.js +490 -0
- package/packages/cli/dist/view-3AH3AT5X.js.map +7 -0
- package/packages/cli/dist/view-BFQ4OUY7.js +490 -0
- package/packages/cli/dist/view-BFQ4OUY7.js.map +7 -0
- package/packages/cli/dist/view-P55TTBC4.js +490 -0
- package/packages/cli/dist/view-P55TTBC4.js.map +7 -0
- package/packages/cli/dist/view-TNS2JEBK.js +490 -0
- package/packages/cli/dist/view-TNS2JEBK.js.map +7 -0
- package/packages/cli/dist/view-XWEE46OX.js +490 -0
- package/packages/cli/dist/view-XWEE46OX.js.map +7 -0
- package/packages/cli/package.json +1 -1
- package/packages/core/dist/core/flows/flow-execution-coordinator.d.ts.map +1 -1
- package/packages/core/dist/core/flows/flow-execution-coordinator.js +4 -1
- package/packages/core/dist/core/flows/flow-execution-coordinator.js.map +1 -1
- package/packages/core/dist/core/flows/import-pipeline.d.ts.map +1 -1
- package/packages/core/dist/core/flows/import-pipeline.js +3 -0
- package/packages/core/dist/core/flows/import-pipeline.js.map +1 -1
- package/packages/core/dist/core/flows/platform-converter.d.ts.map +1 -1
- package/packages/core/dist/core/flows/platform-converter.js +38 -5
- package/packages/core/dist/core/flows/platform-converter.js.map +1 -1
- package/packages/core/dist/core/glob-target-mapping.d.ts.map +1 -1
- package/packages/core/dist/core/glob-target-mapping.js +15 -0
- package/packages/core/dist/core/glob-target-mapping.js.map +1 -1
- package/packages/core/dist/core/install/convenience-matchers.d.ts.map +1 -1
- package/packages/core/dist/core/install/convenience-matchers.js +3 -13
- package/packages/core/dist/core/install/convenience-matchers.js.map +1 -1
- package/packages/core/dist/core/install/import-flow-converter.d.ts.map +1 -1
- package/packages/core/dist/core/install/import-flow-converter.js +20 -27
- package/packages/core/dist/core/install/import-flow-converter.js.map +1 -1
- package/packages/core/dist/core/install/plugin-transformer.d.ts.map +1 -1
- package/packages/core/dist/core/install/plugin-transformer.js +7 -1
- package/packages/core/dist/core/install/plugin-transformer.js.map +1 -1
- package/packages/core/dist/core/install/resource-discoverer.d.ts.map +1 -1
- package/packages/core/dist/core/install/resource-discoverer.js +3 -5
- package/packages/core/dist/core/install/resource-discoverer.js.map +1 -1
- package/packages/core/dist/core/install/resource-pattern-normalization.d.ts +2 -0
- package/packages/core/dist/core/install/resource-pattern-normalization.d.ts.map +1 -0
- package/packages/core/dist/core/install/resource-pattern-normalization.js +23 -0
- package/packages/core/dist/core/install/resource-pattern-normalization.js.map +1 -0
- package/packages/core/dist/core/install/resource-search.d.ts +3 -0
- package/packages/core/dist/core/install/resource-search.d.ts.map +1 -0
- package/packages/core/dist/core/install/resource-search.js +27 -0
- package/packages/core/dist/core/install/resource-search.js.map +1 -0
- package/packages/core/dist/core/install/strategies/conversion-strategy.d.ts.map +1 -1
- package/packages/core/dist/core/install/strategies/conversion-strategy.js +3 -1
- package/packages/core/dist/core/install/strategies/conversion-strategy.js.map +1 -1
- package/packages/core/dist/core/package-management.js +2 -2
- package/packages/core/dist/core/package-management.js.map +1 -1
- package/packages/core/dist/core/platform/platform-mapper.d.ts.map +1 -1
- package/packages/core/dist/core/platform/platform-mapper.js +12 -3
- package/packages/core/dist/core/platform/platform-mapper.js.map +1 -1
- package/packages/core/dist/core/source-resolution/dependency-graph.d.ts.map +1 -1
- package/packages/core/dist/core/source-resolution/dependency-graph.js +3 -2
- package/packages/core/dist/core/source-resolution/dependency-graph.js.map +1 -1
- package/packages/core/dist/generated/version.d.ts +1 -1
- package/packages/core/dist/generated/version.js +1 -1
- package/packages/core/dist/utils/plugin-naming.d.ts +11 -0
- package/packages/core/dist/utils/plugin-naming.d.ts.map +1 -1
- package/packages/core/dist/utils/plugin-naming.js +25 -0
- package/packages/core/dist/utils/plugin-naming.js.map +1 -1
- package/packages/core/dist/utils/validation/dependency-containment.d.ts +2 -2
- package/packages/core/dist/utils/validation/dependency-containment.d.ts.map +1 -1
- package/packages/core/dist/utils/validation/dependency-containment.js +6 -5
- package/packages/core/dist/utils/validation/dependency-containment.js.map +1 -1
- package/packages/core/package.json +1 -1
- package/platforms.jsonc +51 -14
package/package.json
CHANGED
|
@@ -0,0 +1,448 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
classifyInputBase
|
|
4
|
+
} from "./chunk-U7MGQ34R.js";
|
|
5
|
+
import {
|
|
6
|
+
expandDirectorySelections,
|
|
7
|
+
hasDirectorySelections,
|
|
8
|
+
interactiveFileSelect
|
|
9
|
+
} from "./chunk-XAEFVXK4.js";
|
|
10
|
+
import {
|
|
11
|
+
addSourceEntriesToPackage,
|
|
12
|
+
buildEntriesFromWorkspaceResource,
|
|
13
|
+
disambiguatePlatform,
|
|
14
|
+
groupFilesByPlatform,
|
|
15
|
+
runAddToSourcePipeline,
|
|
16
|
+
runAddToSourcePipelineBatch
|
|
17
|
+
} from "./chunk-W6GVBXO4.js";
|
|
18
|
+
import "./chunk-GBM4RIW5.js";
|
|
19
|
+
import "./chunk-NT6UEQVC.js";
|
|
20
|
+
import {
|
|
21
|
+
buildWorkspacePackageContext
|
|
22
|
+
} from "./chunk-6235AHOU.js";
|
|
23
|
+
import {
|
|
24
|
+
resolveMutableSource
|
|
25
|
+
} from "./chunk-6I4OFFPT.js";
|
|
26
|
+
import {
|
|
27
|
+
addPackageToYml,
|
|
28
|
+
classifyResourceSpec,
|
|
29
|
+
createInteractionPolicy,
|
|
30
|
+
createWorkspacePackageYml,
|
|
31
|
+
detectPluginType,
|
|
32
|
+
ensureLocalOpenPackageStructure,
|
|
33
|
+
resolveResourceSpec
|
|
34
|
+
} from "./chunk-JOMKQRQH.js";
|
|
35
|
+
import {
|
|
36
|
+
getResourceTypeDef
|
|
37
|
+
} from "./chunk-6WFUXYMA.js";
|
|
38
|
+
import "./chunk-5ASFQZ47.js";
|
|
39
|
+
import "./chunk-B7HZS4BY.js";
|
|
40
|
+
import "./chunk-5GSXI723.js";
|
|
41
|
+
import {
|
|
42
|
+
isValidPackageDirectory
|
|
43
|
+
} from "./chunk-DO2RBRLP.js";
|
|
44
|
+
import {
|
|
45
|
+
getLocalPackageYmlPath
|
|
46
|
+
} from "./chunk-S45NZ57P.js";
|
|
47
|
+
import "./chunk-UD2NPPBL.js";
|
|
48
|
+
import {
|
|
49
|
+
createCliExecutionContext
|
|
50
|
+
} from "./chunk-C3ZSPZZC.js";
|
|
51
|
+
import {
|
|
52
|
+
formatPathForYaml
|
|
53
|
+
} from "./chunk-FRYA3JAQ.js";
|
|
54
|
+
import {
|
|
55
|
+
formatPathForDisplay,
|
|
56
|
+
getTreeConnector
|
|
57
|
+
} from "./chunk-2ATWD2Y5.js";
|
|
58
|
+
import {
|
|
59
|
+
resolveOutput
|
|
60
|
+
} from "./chunk-OYUSP3R7.js";
|
|
61
|
+
import "./chunk-AAOKBZJU.js";
|
|
62
|
+
import "./chunk-OQWHWZNM.js";
|
|
63
|
+
import "./chunk-WWG4AXHH.js";
|
|
64
|
+
import {
|
|
65
|
+
parsePackageYml,
|
|
66
|
+
writePackageYml
|
|
67
|
+
} from "./chunk-NSR3OCIK.js";
|
|
68
|
+
import {
|
|
69
|
+
arePackageNamesEquivalent,
|
|
70
|
+
normalizePackageName
|
|
71
|
+
} from "./chunk-WBJF3JP7.js";
|
|
72
|
+
import "./chunk-3EUPSA2U.js";
|
|
73
|
+
import "./chunk-WLWGSHYL.js";
|
|
74
|
+
import "./chunk-GDM6EV2J.js";
|
|
75
|
+
import "./chunk-UBJ2H5JF.js";
|
|
76
|
+
import {
|
|
77
|
+
FILE_PATTERNS
|
|
78
|
+
} from "./chunk-VOU52PGK.js";
|
|
79
|
+
import {
|
|
80
|
+
exists,
|
|
81
|
+
isDirectory
|
|
82
|
+
} from "./chunk-XLQX7KBG.js";
|
|
83
|
+
import {
|
|
84
|
+
ValidationError
|
|
85
|
+
} from "./chunk-4GRAHRW2.js";
|
|
86
|
+
import {
|
|
87
|
+
logger
|
|
88
|
+
} from "./chunk-X2NGKTOS.js";
|
|
89
|
+
|
|
90
|
+
// src/commands/add.ts
|
|
91
|
+
import { join as join4, relative as relative2 } from "path";
|
|
92
|
+
|
|
93
|
+
// ../core/src/core/add/add-orchestrator.ts
|
|
94
|
+
import { join as join3, relative, resolve as resolve2 } from "path";
|
|
95
|
+
|
|
96
|
+
// ../core/src/core/add/add-input-classifier.ts
|
|
97
|
+
import { join, basename, resolve } from "path";
|
|
98
|
+
async function classifyAddInput(input, cwd, options) {
|
|
99
|
+
if (options.copy)
|
|
100
|
+
return handleCopyMode(input, cwd);
|
|
101
|
+
if (input.endsWith("/")) {
|
|
102
|
+
let stripped = input.replace(/\/+$/, ""), resolvedPath = resolve(cwd, stripped);
|
|
103
|
+
if (await exists(resolvedPath)) {
|
|
104
|
+
if (await isDirectory(resolvedPath)) {
|
|
105
|
+
let localPathSpec = await buildLocalPathSpec(resolvedPath);
|
|
106
|
+
return enrichWithAddMode(localPathSpec);
|
|
107
|
+
}
|
|
108
|
+
throw new ValidationError(
|
|
109
|
+
`Path '${input}' is not a directory. Trailing slash indicates directory intent.`
|
|
110
|
+
);
|
|
111
|
+
}
|
|
112
|
+
throw new ValidationError(`Directory not found: ${input}`);
|
|
113
|
+
}
|
|
114
|
+
if (isBareNameWithExtension(input)) {
|
|
115
|
+
let resolvedPath = resolve(cwd, input);
|
|
116
|
+
if (await exists(resolvedPath))
|
|
117
|
+
return { mode: "copy", copySourcePath: resolvedPath };
|
|
118
|
+
throw new ValidationError(`File not found: ${input}`);
|
|
119
|
+
}
|
|
120
|
+
let base = await classifyInputBase(input, cwd);
|
|
121
|
+
return enrichWithAddMode(base);
|
|
122
|
+
}
|
|
123
|
+
function isBareNameWithExtension(input) {
|
|
124
|
+
if (input.startsWith("./") || input.startsWith("../") || input.startsWith("/") || input.startsWith("~") || input.includes("@") || input.includes("/") || input.endsWith(".tgz") || input.endsWith(".tar.gz"))
|
|
125
|
+
return !1;
|
|
126
|
+
let lastDot = input.lastIndexOf(".");
|
|
127
|
+
if (lastDot <= 0) return !1;
|
|
128
|
+
let ext = input.slice(lastDot + 1);
|
|
129
|
+
return ext.length >= 1 && ext.length <= 8 && /^[a-zA-Z0-9]+$/.test(ext);
|
|
130
|
+
}
|
|
131
|
+
async function buildLocalPathSpec(absolutePath) {
|
|
132
|
+
let isValid = await isValidPackageDirectory(absolutePath), pluginResult = await detectPluginType(absolutePath), packageName;
|
|
133
|
+
if (isValid || pluginResult.isPlugin)
|
|
134
|
+
try {
|
|
135
|
+
let manifestPath = join(absolutePath, "openpackage.yml");
|
|
136
|
+
await exists(manifestPath) && (packageName = (await parsePackageYml(manifestPath)).name ?? basename(absolutePath));
|
|
137
|
+
} catch {
|
|
138
|
+
packageName = basename(absolutePath);
|
|
139
|
+
}
|
|
140
|
+
return {
|
|
141
|
+
type: "local-path",
|
|
142
|
+
absolutePath,
|
|
143
|
+
isDirectory: !0,
|
|
144
|
+
packageName,
|
|
145
|
+
isValidPackage: isValid || pluginResult.isPlugin
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
async function handleCopyMode(input, cwd) {
|
|
149
|
+
let resolvedAbsPath = resolve(cwd, input);
|
|
150
|
+
if (!await exists(resolvedAbsPath))
|
|
151
|
+
throw new ValidationError(
|
|
152
|
+
`Path not found: ${input}
|
|
153
|
+
--copy requires an existing local path.`
|
|
154
|
+
);
|
|
155
|
+
return { mode: "copy", copySourcePath: resolvedAbsPath };
|
|
156
|
+
}
|
|
157
|
+
function enrichWithAddMode(base) {
|
|
158
|
+
switch (base.type) {
|
|
159
|
+
case "bulk":
|
|
160
|
+
throw new ValidationError("Add command requires an input argument");
|
|
161
|
+
case "git":
|
|
162
|
+
return {
|
|
163
|
+
mode: "dependency",
|
|
164
|
+
packageName: base.derivedName,
|
|
165
|
+
gitUrl: base.gitUrl,
|
|
166
|
+
gitRef: base.gitRef,
|
|
167
|
+
gitPath: base.gitPath
|
|
168
|
+
};
|
|
169
|
+
case "local-path":
|
|
170
|
+
return base.absolutePath.endsWith(".tgz") || base.absolutePath.endsWith(".tar.gz") ? {
|
|
171
|
+
mode: "dependency",
|
|
172
|
+
packageName: base.packageName ?? basename(base.absolutePath).replace(/\.(tgz|tar\.gz)$/, ""),
|
|
173
|
+
localPath: base.absolutePath
|
|
174
|
+
} : base.isValidPackage ? (logger.debug("Classified local directory as dependency", {
|
|
175
|
+
packageName: base.packageName,
|
|
176
|
+
absolutePath: base.absolutePath
|
|
177
|
+
}), {
|
|
178
|
+
mode: "dependency",
|
|
179
|
+
packageName: base.packageName,
|
|
180
|
+
localPath: base.absolutePath
|
|
181
|
+
}) : {
|
|
182
|
+
mode: "copy",
|
|
183
|
+
copySourcePath: base.absolutePath
|
|
184
|
+
};
|
|
185
|
+
case "registry":
|
|
186
|
+
return {
|
|
187
|
+
mode: "dependency",
|
|
188
|
+
packageName: base.packageName,
|
|
189
|
+
version: base.version,
|
|
190
|
+
resourcePath: base.registryPath
|
|
191
|
+
};
|
|
192
|
+
case "embedded":
|
|
193
|
+
return {
|
|
194
|
+
mode: "dependency",
|
|
195
|
+
packageName: base.qualifiedName,
|
|
196
|
+
version: base.version
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
// ../core/src/core/add/add-dependency-flow.ts
|
|
202
|
+
import { join as join2 } from "path";
|
|
203
|
+
async function runAddDependencyFlow(classification, options) {
|
|
204
|
+
let cwd = process.cwd(), isDev = options.dev ?? !1, section = isDev ? "dev-dependencies" : "dependencies", packageName = classification.packageName, isLocalPath = !!classification.localPath, localPath = classification.localPath ? formatPathForYaml(classification.localPath, cwd) : void 0, gitUrl;
|
|
205
|
+
classification.gitUrl && (gitUrl = classification.gitRef ? `${classification.gitUrl}#${classification.gitRef}` : classification.gitUrl);
|
|
206
|
+
let gitPath = classification.gitPath || classification.resourcePath;
|
|
207
|
+
if (options.to) {
|
|
208
|
+
let source = await resolveMutableSource({ cwd, packageName: options.to }), manifestPath = join2(source.absolutePath, FILE_PATTERNS.OPENPACKAGE_YML);
|
|
209
|
+
return await addDependencyToManifest(manifestPath, packageName, {
|
|
210
|
+
version: classification.version,
|
|
211
|
+
path: localPath,
|
|
212
|
+
url: gitUrl,
|
|
213
|
+
gitPath,
|
|
214
|
+
isDev
|
|
215
|
+
}), logger.info(`Added ${packageName} to ${manifestPath} [${section}]`), {
|
|
216
|
+
packageName,
|
|
217
|
+
targetManifest: manifestPath,
|
|
218
|
+
section,
|
|
219
|
+
isLocalPath,
|
|
220
|
+
wasAutoDetected: isLocalPath
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
let packageYmlPath = getLocalPackageYmlPath(cwd);
|
|
224
|
+
return await exists(packageYmlPath) || (await ensureLocalOpenPackageStructure(cwd), await createWorkspacePackageYml(cwd)), await addPackageToYml(
|
|
225
|
+
cwd,
|
|
226
|
+
packageName,
|
|
227
|
+
classification.version,
|
|
228
|
+
isDev,
|
|
229
|
+
void 0,
|
|
230
|
+
!0,
|
|
231
|
+
// silent — CLI layer handles display
|
|
232
|
+
localPath,
|
|
233
|
+
classification.gitUrl,
|
|
234
|
+
classification.gitRef,
|
|
235
|
+
gitPath
|
|
236
|
+
), logger.info(`Added ${packageName} to workspace manifest [${section}]`), {
|
|
237
|
+
packageName,
|
|
238
|
+
targetManifest: packageYmlPath,
|
|
239
|
+
section,
|
|
240
|
+
isLocalPath,
|
|
241
|
+
wasAutoDetected: isLocalPath
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
async function addDependencyToManifest(manifestPath, packageName, options) {
|
|
245
|
+
let config = await parsePackageYml(manifestPath);
|
|
246
|
+
config.dependencies || (config.dependencies = []), config["dev-dependencies"] || (config["dev-dependencies"] = []);
|
|
247
|
+
let normalized = normalizePackageName(packageName), dependency = {
|
|
248
|
+
name: normalized,
|
|
249
|
+
...options.url ? { url: options.url } : {},
|
|
250
|
+
...options.path && !options.url ? { path: options.path } : {},
|
|
251
|
+
...options.version && !options.url && !options.path ? { version: options.version } : {},
|
|
252
|
+
...options.gitPath && options.url ? { path: options.gitPath } : {}
|
|
253
|
+
}, targetKey = options.isDev ? "dev-dependencies" : "dependencies", otherKey = options.isDev ? "dependencies" : "dev-dependencies", otherArr = config[otherKey], otherIdx = otherArr.findIndex((d) => arePackageNamesEquivalent(d.name, normalized));
|
|
254
|
+
otherIdx >= 0 && otherArr.splice(otherIdx, 1);
|
|
255
|
+
let targetArr = config[targetKey], existingIdx = targetArr.findIndex((d) => arePackageNamesEquivalent(d.name, normalized));
|
|
256
|
+
existingIdx >= 0 ? targetArr[existingIdx] = dependency : targetArr.push(dependency), await writePackageYml(manifestPath, config);
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
// ../core/src/core/add/add-orchestrator.ts
|
|
260
|
+
function isBareNameInput(input) {
|
|
261
|
+
return !input.startsWith("./") && !input.startsWith("../") && !input.startsWith("/") && !input.startsWith("~") && !input.endsWith("/");
|
|
262
|
+
}
|
|
263
|
+
async function processAddResource(resourceSpec, options, cwd, execContext) {
|
|
264
|
+
if (classifyResourceSpec(resourceSpec).kind === "resource-ref") {
|
|
265
|
+
if (options.dev)
|
|
266
|
+
throw new Error("--dev can only be used when adding a dependency, not when copying files");
|
|
267
|
+
let resolved = await resolveResourceSpec(resourceSpec, { programOpts: { cwd } }, {
|
|
268
|
+
notFoundMessage: `"${resourceSpec}" not found as a resource.
|
|
269
|
+
Run \`opkg ls\` to see installed resources.`,
|
|
270
|
+
promptMessage: "Select which resource to add:",
|
|
271
|
+
multi: !1,
|
|
272
|
+
scopePreference: "project"
|
|
273
|
+
}, execContext);
|
|
274
|
+
if (resolved.length === 0)
|
|
275
|
+
throw new Error(`No resource found for "${resourceSpec}".`);
|
|
276
|
+
let { candidate, targetDir } = resolved[0], resource = candidate.resource, resourceType = resource.resourceType, typeDef = getResourceTypeDef(resourceType), entries = await buildEntriesFromWorkspaceResource(
|
|
277
|
+
resourceType,
|
|
278
|
+
resource.resourceName,
|
|
279
|
+
resource.targetFiles,
|
|
280
|
+
targetDir
|
|
281
|
+
);
|
|
282
|
+
if (typeDef.dirName) {
|
|
283
|
+
let entryRels = entries.map((e) => ({
|
|
284
|
+
entry: e,
|
|
285
|
+
rel: relative(targetDir, e.sourcePath)
|
|
286
|
+
})), platformGroups = groupFilesByPlatform(entryRels.map((e) => e.rel), targetDir);
|
|
287
|
+
if ([...platformGroups.keys()].filter((k) => k !== null).length > 1) {
|
|
288
|
+
let selectedPlatform = await disambiguatePlatform({
|
|
289
|
+
targetDir,
|
|
290
|
+
resourceLabel: resourceSpec,
|
|
291
|
+
specifiedPlatform: options.platform,
|
|
292
|
+
execContext
|
|
293
|
+
}), allowedRels = /* @__PURE__ */ new Set([
|
|
294
|
+
...platformGroups.get(selectedPlatform) ?? [],
|
|
295
|
+
...platformGroups.get(null) ?? []
|
|
296
|
+
]);
|
|
297
|
+
entries = entryRels.filter((e) => allowedRels.has(e.rel)).map((e) => e.entry);
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
if (entries.length === 0) {
|
|
301
|
+
let nameContext = resource.packageName || "unknown source";
|
|
302
|
+
throw new Error(`No source files found for resource "${resourceSpec}" from ${nameContext}.`);
|
|
303
|
+
}
|
|
304
|
+
let result2 = await addSourceEntriesToPackage(options.to, entries, { ...options, execContext });
|
|
305
|
+
if (!result2.success)
|
|
306
|
+
throw new Error(result2.error || "Add operation failed");
|
|
307
|
+
return { kind: "workspace-resource", result: result2 };
|
|
308
|
+
}
|
|
309
|
+
if (options.platform)
|
|
310
|
+
throw new Error("--platform can only be used with resource references (e.g., skills/foo), not file paths.");
|
|
311
|
+
let classification = await classifyAddInput(resourceSpec, cwd, {
|
|
312
|
+
copy: options.copy,
|
|
313
|
+
dev: options.dev
|
|
314
|
+
});
|
|
315
|
+
if (classification.mode === "dependency") {
|
|
316
|
+
if (options.platformSpecific)
|
|
317
|
+
throw new Error("--platform-specific can only be used with --copy or when adding files");
|
|
318
|
+
try {
|
|
319
|
+
return { kind: "dependency", result: await runAddDependencyFlow(classification, {
|
|
320
|
+
dev: options.dev,
|
|
321
|
+
to: options.to
|
|
322
|
+
}), classification };
|
|
323
|
+
} catch (error) {
|
|
324
|
+
let msg = error instanceof Error ? error.message : String(error);
|
|
325
|
+
if (isBareNameInput(resourceSpec)) {
|
|
326
|
+
let localPath = resolve2(cwd, resourceSpec);
|
|
327
|
+
if (await exists(localPath))
|
|
328
|
+
throw new Error(
|
|
329
|
+
`${msg}
|
|
330
|
+
|
|
331
|
+
A local path './${resourceSpec}' exists \u2014 did you mean:
|
|
332
|
+
opkg add ./${resourceSpec}`
|
|
333
|
+
);
|
|
334
|
+
}
|
|
335
|
+
throw error;
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
if (classification.mode === "workspace-resource") {
|
|
339
|
+
if (options.dev)
|
|
340
|
+
throw new Error("--dev can only be used when adding a dependency, not when copying files");
|
|
341
|
+
let resource = classification.resolvedResource, absPath = resource.sourcePath || join3(execContext.targetDir, resource.targetFiles[0]), result2 = await runAddToSourcePipeline(options.to, absPath, { ...options, execContext });
|
|
342
|
+
if (!result2.success)
|
|
343
|
+
throw new Error(result2.error || "Add operation failed");
|
|
344
|
+
return { kind: "workspace-resource", result: result2 };
|
|
345
|
+
}
|
|
346
|
+
if (options.dev)
|
|
347
|
+
throw new Error("--dev can only be used when adding a dependency, not when copying files");
|
|
348
|
+
let result = await runAddToSourcePipeline(options.to, classification.copySourcePath, { ...options, execContext });
|
|
349
|
+
if (!result.success)
|
|
350
|
+
throw new Error(result.error || "Add operation failed");
|
|
351
|
+
return { kind: "copy", result };
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
// src/commands/add.ts
|
|
355
|
+
function displayAddResults(data, out, interactive, skipHeader = !1) {
|
|
356
|
+
let { filesAdded, packageName: resolvedName, addedFilePaths, isWorkspaceRoot, sourcePath } = data, target = isWorkspaceRoot ? "workspace package" : resolvedName;
|
|
357
|
+
if (interactive && !skipHeader) {
|
|
358
|
+
let pkgLabel = isWorkspaceRoot ? "workspace package" : resolvedName, displayPath = formatPathForDisplay(sourcePath, process.cwd());
|
|
359
|
+
out.info(`To: ${pkgLabel} (${displayPath})`);
|
|
360
|
+
}
|
|
361
|
+
if (filesAdded > 0) {
|
|
362
|
+
let count = filesAdded === 1 ? "1 file" : `${filesAdded} files`;
|
|
363
|
+
if (interactive)
|
|
364
|
+
out.success(`Added ${count} to ${target}`);
|
|
365
|
+
else {
|
|
366
|
+
let displayPath = formatPathForDisplay(sourcePath, process.cwd());
|
|
367
|
+
out.success(`Added ${count} to ${target} (${displayPath})`);
|
|
368
|
+
}
|
|
369
|
+
let relPaths = [...addedFilePaths || []].sort((a, b) => a.localeCompare(b)).map((f) => relative2(sourcePath, f).replace(/\\/g, "/"));
|
|
370
|
+
if (interactive) {
|
|
371
|
+
let displayPaths = relPaths.slice(0, 10), more = relPaths.length > 10 ? `
|
|
372
|
+
... and ${relPaths.length - 10} more` : "";
|
|
373
|
+
out.note(displayPaths.join(`
|
|
374
|
+
`) + more, "Added files");
|
|
375
|
+
} else
|
|
376
|
+
for (let i = 0; i < relPaths.length; i++) {
|
|
377
|
+
let connector = getTreeConnector(i === relPaths.length - 1);
|
|
378
|
+
out.message(` ${connector}${relPaths[i]}`);
|
|
379
|
+
}
|
|
380
|
+
} else
|
|
381
|
+
out.success(`No new files added to ${target}`);
|
|
382
|
+
}
|
|
383
|
+
function displayDependencyResult(depResult, out, interactive) {
|
|
384
|
+
let { result: dep, classification } = depResult, displayPath = formatPathForDisplay(dep.targetManifest, process.cwd());
|
|
385
|
+
if (interactive) {
|
|
386
|
+
let header = `To: ${dep.packageName} (${displayPath})`;
|
|
387
|
+
out.info(header), dep.wasAutoDetected && (out.info(`Detected package at ${classification.localPath} \u2014 adding as dependency.`), out.message("To copy files instead, use --copy."));
|
|
388
|
+
let versionSuffix = classification.version ? `@${classification.version}` : "";
|
|
389
|
+
out.success(`Added ${dep.packageName}${versionSuffix} to ${dep.section}`);
|
|
390
|
+
} else {
|
|
391
|
+
out.success(`Added to ${dep.section} (${displayPath})`);
|
|
392
|
+
let versionSuffix = classification.version ? `@${classification.version}` : "", connector = getTreeConnector(!0);
|
|
393
|
+
out.message(` ${connector}${dep.packageName}${versionSuffix}`), dep.wasAutoDetected && out.message(" Detected local package \u2014 use --copy to copy files instead.");
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
function displayResult(result, out, interactive, resourceSpec) {
|
|
397
|
+
switch (result.kind) {
|
|
398
|
+
case "dependency":
|
|
399
|
+
displayDependencyResult(result, out, interactive);
|
|
400
|
+
break;
|
|
401
|
+
case "workspace-resource":
|
|
402
|
+
result.result.data && (out.info(`Resolved "${resourceSpec}" from installed workspace resources.`), displayAddResults(result.result.data, out, interactive));
|
|
403
|
+
break;
|
|
404
|
+
case "copy":
|
|
405
|
+
result.result.data && displayAddResults(result.result.data, out, interactive);
|
|
406
|
+
break;
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
async function setupAddCommand(args) {
|
|
410
|
+
let [resource, options, command] = args, cwd = process.cwd(), programOpts = command.parent?.opts() || {}, interactive = !resource, execContext = await createCliExecutionContext({
|
|
411
|
+
global: !1,
|
|
412
|
+
cwd: programOpts.cwd,
|
|
413
|
+
interactive,
|
|
414
|
+
outputMode: interactive ? "rich" : "plain"
|
|
415
|
+
}), policy = createInteractionPolicy({ interactive, force: options.force });
|
|
416
|
+
execContext.interactionPolicy = policy;
|
|
417
|
+
let out = resolveOutput(execContext);
|
|
418
|
+
if (!resource) {
|
|
419
|
+
if (!policy.canPrompt(4 /* OptionalMenu */))
|
|
420
|
+
throw new Error(
|
|
421
|
+
`<resource-spec> argument is required in non-interactive mode.
|
|
422
|
+
Usage: opkg add <resource-spec> [options]`
|
|
423
|
+
);
|
|
424
|
+
let pkgLabel, sourcePath;
|
|
425
|
+
if (options.to) {
|
|
426
|
+
let source = await resolveMutableSource({ cwd, packageName: options.to });
|
|
427
|
+
pkgLabel = source.packageName, sourcePath = source.absolutePath;
|
|
428
|
+
} else {
|
|
429
|
+
let context = await buildWorkspacePackageContext(cwd);
|
|
430
|
+
pkgLabel = "workspace package", sourcePath = context.packageRootDir;
|
|
431
|
+
}
|
|
432
|
+
out.step(`To: ${pkgLabel} (${formatPathForDisplay(sourcePath, cwd)})`), out.connector();
|
|
433
|
+
let selectedFiles = await interactiveFileSelect({ cwd, includeDirs: !0 });
|
|
434
|
+
if (!selectedFiles || selectedFiles.length === 0) return;
|
|
435
|
+
let filesToProcess;
|
|
436
|
+
hasDirectorySelections(selectedFiles) ? (filesToProcess = await expandDirectorySelections(selectedFiles, cwd), out.info(`Found ${filesToProcess.length} total file${filesToProcess.length === 1 ? "" : "s"} to add`)) : filesToProcess = selectedFiles;
|
|
437
|
+
let absPaths = filesToProcess.map((f) => join4(cwd, f)), result2 = await runAddToSourcePipelineBatch(options.to, absPaths, cwd, { ...options, execContext });
|
|
438
|
+
if (!result2.success) throw new Error(result2.error || "Add operation failed");
|
|
439
|
+
result2.data && displayAddResults(result2.data, out, interactive, !0);
|
|
440
|
+
return;
|
|
441
|
+
}
|
|
442
|
+
let result = await processAddResource(resource, options, cwd, execContext);
|
|
443
|
+
displayResult(result, out, interactive, resource);
|
|
444
|
+
}
|
|
445
|
+
export {
|
|
446
|
+
setupAddCommand
|
|
447
|
+
};
|
|
448
|
+
//# sourceMappingURL=add-35AZD33Q.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/commands/add.ts", "../../core/src/core/add/add-orchestrator.ts", "../../core/src/core/add/add-input-classifier.ts", "../../core/src/core/add/add-dependency-flow.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Add Command (CLI layer)\n *\n * Thin shell over core/add/ pipelines.\n * Handles CLI arg parsing, interactive file selection, and display formatting.\n */\n\nimport type { Command } from 'commander';\nimport { join, relative } from 'path';\n\nimport { runAddToSourcePipelineBatch, type AddToSourceResult } from '@opkg/core/core/add/add-to-source-pipeline.js';\nimport { processAddResource, type AddResourceResult } from '@opkg/core/core/add/add-orchestrator.js';\nimport { formatPathForDisplay, getTreeConnector } from '@opkg/core/utils/formatters.js';\nimport { interactiveFileSelect } from '../utils/interactive-file-selector.js';\nimport { expandDirectorySelections, hasDirectorySelections } from '@opkg/core/utils/expand-directory-selections.js';\nimport { createCliExecutionContext } from '../cli/context.js';\nimport { resolveMutableSource } from '@opkg/core/core/source-resolution/resolve-mutable-source.js';\nimport { buildWorkspacePackageContext } from '@opkg/core/utils/workspace-package-context.js';\nimport { createInteractionPolicy, PromptTier } from '@opkg/core/core/interaction-policy.js';\nimport { resolveOutput } from '@opkg/core/core/ports/resolve.js';\n\n// ---------------------------------------------------------------------------\n// Display helpers (CLI-specific)\n// ---------------------------------------------------------------------------\n\nfunction displayAddResults(data: AddToSourceResult, out: ReturnType<typeof resolveOutput>, interactive: boolean, skipHeader = false): void {\n const { filesAdded, packageName: resolvedName, addedFilePaths, isWorkspaceRoot, sourcePath } = data;\n const target = isWorkspaceRoot ? 'workspace package' : resolvedName;\n\n if (interactive && !skipHeader) {\n const pkgLabel = isWorkspaceRoot ? 'workspace package' : resolvedName;\n const displayPath = formatPathForDisplay(sourcePath, process.cwd());\n out.info(`To: ${pkgLabel} (${displayPath})`);\n }\n\n if (filesAdded > 0) {\n const count = filesAdded === 1 ? '1 file' : `${filesAdded} files`;\n if (interactive) {\n out.success(`Added ${count} to ${target}`);\n } else {\n const displayPath = formatPathForDisplay(sourcePath, process.cwd());\n out.success(`Added ${count} to ${target} (${displayPath})`);\n }\n const sortedFiles = [...(addedFilePaths || [])].sort((a, b) => a.localeCompare(b));\n const relPaths = sortedFiles.map((f) => relative(sourcePath, f).replace(/\\\\/g, '/'));\n\n if (interactive) {\n const maxDisplay = 10;\n const displayPaths = relPaths.slice(0, maxDisplay);\n const more = relPaths.length > maxDisplay ? `\\n... and ${relPaths.length - maxDisplay} more` : '';\n out.note(displayPaths.join('\\n') + more, 'Added files');\n } else {\n for (let i = 0; i < relPaths.length; i++) {\n const connector = getTreeConnector(i === relPaths.length - 1);\n out.message(` ${connector}${relPaths[i]}`);\n }\n }\n } else {\n out.success(`No new files added to ${target}`);\n }\n}\n\nfunction displayDependencyResult(depResult: AddResourceResult & { kind: 'dependency' }, out: ReturnType<typeof resolveOutput>, interactive: boolean): void {\n const { result: dep, classification } = depResult;\n const displayPath = formatPathForDisplay(dep.targetManifest, process.cwd());\n\n if (interactive) {\n // Interactive mode: keep existing clack-based display\n const header = `To: ${dep.packageName} (${displayPath})`;\n out.info(header);\n if (dep.wasAutoDetected) {\n out.info(`Detected package at ${classification.localPath} \u2014 adding as dependency.`);\n out.message('To copy files instead, use --copy.');\n }\n const versionSuffix = classification.version ? `@${classification.version}` : '';\n out.success(`Added ${dep.packageName}${versionSuffix} to ${dep.section}`);\n } else {\n // Non-interactive: clean tree format\n // \u2713 Added to dependencies (.openpackage/openpackage.yml)\n // \u2514\u2500\u2500 essentials@1.2.0\n out.success(`Added to ${dep.section} (${displayPath})`);\n const versionSuffix = classification.version ? `@${classification.version}` : '';\n const connector = getTreeConnector(true);\n out.message(` ${connector}${dep.packageName}${versionSuffix}`);\n if (dep.wasAutoDetected) {\n out.message(' Detected local package \u2014 use --copy to copy files instead.');\n }\n }\n}\n\nfunction displayResult(result: AddResourceResult, out: ReturnType<typeof resolveOutput>, interactive: boolean, resourceSpec: string): void {\n switch (result.kind) {\n case 'dependency':\n displayDependencyResult(result, out, interactive);\n break;\n case 'workspace-resource':\n if (result.result.data) {\n out.info(`Resolved \"${resourceSpec}\" from installed workspace resources.`);\n displayAddResults(result.result.data, out, interactive);\n }\n break;\n case 'copy':\n if (result.result.data) {\n displayAddResults(result.result.data, out, interactive);\n }\n break;\n }\n}\n\n// ---------------------------------------------------------------------------\n// Command setup\n// ---------------------------------------------------------------------------\n\nexport async function setupAddCommand(args: any[]): Promise<void> {\n const [resource, options, command] = args as [string | undefined, any, Command];\n const cwd = process.cwd();\n const programOpts = command.parent?.opts() || {};\n const interactive = !resource;\n\n const execContext = await createCliExecutionContext({\n global: false,\n cwd: programOpts.cwd,\n interactive,\n outputMode: interactive ? 'rich' : 'plain',\n });\n\n const policy = createInteractionPolicy({ interactive, force: options.force });\n execContext.interactionPolicy = policy;\n const out = resolveOutput(execContext);\n\n if (!resource) {\n // Interactive file selector path\n if (!policy.canPrompt(PromptTier.OptionalMenu)) {\n throw new Error(\n '<resource-spec> argument is required in non-interactive mode.\\n' +\n 'Usage: opkg add <resource-spec> [options]'\n );\n }\n\n let pkgLabel: string;\n let sourcePath: string;\n if (options.to) {\n const source = await resolveMutableSource({ cwd, packageName: options.to });\n pkgLabel = source.packageName;\n sourcePath = source.absolutePath;\n } else {\n const context = await buildWorkspacePackageContext(cwd);\n pkgLabel = 'workspace package';\n sourcePath = context.packageRootDir;\n }\n out.step(`To: ${pkgLabel} (${formatPathForDisplay(sourcePath, cwd)})`);\n out.connector();\n\n const selectedFiles = await interactiveFileSelect({ cwd, includeDirs: true });\n if (!selectedFiles || selectedFiles.length === 0) return;\n\n let filesToProcess: string[];\n if (hasDirectorySelections(selectedFiles)) {\n filesToProcess = await expandDirectorySelections(selectedFiles, cwd);\n out.info(`Found ${filesToProcess.length} total file${filesToProcess.length === 1 ? '' : 's'} to add`);\n } else {\n filesToProcess = selectedFiles;\n }\n\n const absPaths = filesToProcess.map((f) => join(cwd, f));\n const result = await runAddToSourcePipelineBatch(options.to, absPaths, cwd, { ...options, execContext });\n if (!result.success) throw new Error(result.error || 'Add operation failed');\n if (result.data) displayAddResults(result.data, out, interactive, true);\n return;\n }\n\n // Non-interactive: delegate to core orchestrator\n const result = await processAddResource(resource, options, cwd, execContext);\n displayResult(result, out, interactive, resource);\n\n}\n", "/**\n * Add Orchestrator\n *\n * Core orchestration logic for the `add` command.\n * Classifies input, dispatches to the correct pipeline (dependency, workspace-resource, copy),\n * and returns typed results. No terminal-UI dependencies.\n */\n\nimport { join, relative, resolve } from 'path';\n\nimport type { ExecutionContext } from '../../types/execution-context.js';\nimport type { CommandResult } from '../../types/index.js';\nimport { classifyAddInput, type AddInputClassification, type AddClassifyOptions } from './add-input-classifier.js';\nimport { runAddDependencyFlow, type AddDependencyResult, type AddDependencyOptions } from './add-dependency-flow.js';\nimport { runAddToSourcePipeline, runAddToSourcePipelineBatch, addSourceEntriesToPackage, type AddToSourceResult, type AddToSourceOptions } from './add-to-source-pipeline.js';\nimport { classifyResourceSpec, resolveResourceSpec } from '../resources/resource-spec.js';\nimport { disambiguatePlatform, groupFilesByPlatform } from '../platform/platform-disambiguation.js';\nimport { buildEntriesFromWorkspaceResource } from '../resources/workspace-resource-discovery.js';\nimport { getResourceTypeDef } from '../resources/resource-registry.js';\nimport { exists } from '../../utils/fs.js';\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\nexport type AddResourceResult =\n | { kind: 'dependency'; result: AddDependencyResult; classification: AddInputClassification }\n | { kind: 'copy'; result: CommandResult<AddToSourceResult> }\n | { kind: 'workspace-resource'; result: CommandResult<AddToSourceResult> };\n\nexport interface ProcessAddResourceOptions {\n copy?: boolean;\n dev?: boolean;\n to?: string;\n platform?: string;\n platformSpecific?: boolean;\n force?: boolean;\n}\n\n// ---------------------------------------------------------------------------\n// Orchestration\n// ---------------------------------------------------------------------------\n\n/** Check if input looks like a bare name (could be registry or local path) */\nfunction isBareNameInput(input: string): boolean {\n return (\n !input.startsWith('./') &&\n !input.startsWith('../') &&\n !input.startsWith('/') &&\n !input.startsWith('~') &&\n !input.endsWith('/')\n );\n}\n\n/**\n * Process a single resource spec through the add pipeline.\n * Classifies the input and dispatches to the appropriate flow\n * (dependency, workspace-resource, or copy).\n *\n * Returns a typed discriminated union so the caller (CLI or GUI)\n * can render the result however it chooses.\n */\nexport async function processAddResource(\n resourceSpec: string,\n options: ProcessAddResourceOptions,\n cwd: string,\n execContext: ExecutionContext\n): Promise<AddResourceResult> {\n // Check if input is a resource reference (e.g., `agents/ui-designer`)\n const spec = classifyResourceSpec(resourceSpec);\n\n if (spec.kind === 'resource-ref') {\n if (options.dev) {\n throw new Error('--dev can only be used when adding a dependency, not when copying files');\n }\n const traverseOpts = { programOpts: { cwd } };\n const resolved = await resolveResourceSpec(resourceSpec, traverseOpts, {\n notFoundMessage: `\"${resourceSpec}\" not found as a resource.\\nRun \\`opkg ls\\` to see installed resources.`,\n promptMessage: 'Select which resource to add:',\n multi: false,\n scopePreference: 'project',\n }, execContext);\n\n if (resolved.length === 0) {\n throw new Error(`No resource found for \"${resourceSpec}\".`);\n }\n\n const { candidate, targetDir } = resolved[0];\n const resource = candidate.resource!;\n\n // Discover files and build entries using shared workspace resource discovery.\n // Handles both dirName types (disk scan) and dirName:null types (targetFiles fallback).\n const resourceType = resource.resourceType;\n const typeDef = getResourceTypeDef(resourceType);\n\n // For platform disambiguation, we need the raw discovered files first\n let entries = await buildEntriesFromWorkspaceResource(\n resourceType, resource.resourceName, resource.targetFiles, targetDir,\n );\n\n // Platform disambiguation: filter entries to a single platform when multi-platform\n if (typeDef.dirName) {\n const entryRels = entries.map(e => ({\n entry: e,\n rel: relative(targetDir, e.sourcePath),\n }));\n const platformGroups = groupFilesByPlatform(entryRels.map(e => e.rel), targetDir);\n const platformKeys = [...platformGroups.keys()].filter((k): k is string => k !== null);\n\n if (platformKeys.length > 1) {\n const selectedPlatform = await disambiguatePlatform({\n targetDir,\n resourceLabel: resourceSpec,\n specifiedPlatform: options.platform,\n execContext,\n });\n const allowedRels = new Set([\n ...(platformGroups.get(selectedPlatform) ?? []),\n ...(platformGroups.get(null) ?? []),\n ]);\n entries = entryRels\n .filter(e => allowedRels.has(e.rel))\n .map(e => e.entry);\n }\n }\n\n if (entries.length === 0) {\n const nameContext = resource.packageName || 'unknown source';\n throw new Error(`No source files found for resource \"${resourceSpec}\" from ${nameContext}.`);\n }\n\n const result = await addSourceEntriesToPackage(options.to, entries, { ...options, execContext });\n if (!result.success) {\n throw new Error(result.error || 'Add operation failed');\n }\n\n return { kind: 'workspace-resource', result };\n }\n\n // --platform only valid with resource references\n if (options.platform) {\n throw new Error('--platform can only be used with resource references (e.g., skills/foo), not file paths.');\n }\n\n const classification = await classifyAddInput(resourceSpec, cwd, {\n copy: options.copy,\n dev: options.dev,\n });\n\n if (classification.mode === 'dependency') {\n if (options.platformSpecific) {\n throw new Error('--platform-specific can only be used with --copy or when adding files');\n }\n try {\n const result = await runAddDependencyFlow(classification, {\n dev: options.dev,\n to: options.to,\n });\n return { kind: 'dependency', result, classification };\n } catch (error) {\n const msg = error instanceof Error ? error.message : String(error);\n if (isBareNameInput(resourceSpec)) {\n const localPath = resolve(cwd, resourceSpec);\n if (await exists(localPath)) {\n throw new Error(\n `${msg}\\n\\nA local path './${resourceSpec}' exists \u2014 did you mean:\\n opkg add ./${resourceSpec}`\n );\n }\n }\n throw error;\n }\n }\n\n if (classification.mode === 'workspace-resource') {\n if (options.dev) {\n throw new Error('--dev can only be used when adding a dependency, not when copying files');\n }\n const resource = classification.resolvedResource!;\n const absPath = resource.sourcePath || join(execContext.targetDir, resource.targetFiles[0]);\n\n const result = await runAddToSourcePipeline(options.to, absPath, { ...options, execContext });\n if (!result.success) {\n throw new Error(result.error || 'Add operation failed');\n }\n return { kind: 'workspace-resource', result };\n }\n\n // copy mode\n if (options.dev) {\n throw new Error('--dev can only be used when adding a dependency, not when copying files');\n }\n const result = await runAddToSourcePipeline(options.to, classification.copySourcePath!, { ...options, execContext });\n if (!result.success) {\n throw new Error(result.error || 'Add operation failed');\n }\n return { kind: 'copy', result };\n}\n", "import { join, basename, resolve } from 'path';\n\nimport { exists, isDirectory } from '../../utils/fs.js';\nimport { classifyInputBase, type BaseInputClassification } from '../install/input-classifier-base.js';\nimport { ValidationError } from '../../utils/errors.js';\nimport { logger } from '../../utils/logger.js';\nimport { isValidPackageDirectory } from '../package-context.js';\nimport { detectPluginType } from '../install/plugin-detector.js';\nimport { parsePackageYml } from '../../utils/package-yml.js';\n\nexport type AddMode = 'dependency' | 'copy' | 'workspace-resource';\n\nexport interface AddInputClassification {\n mode: AddMode;\n packageName?: string;\n version?: string;\n gitUrl?: string;\n gitRef?: string;\n gitPath?: string;\n localPath?: string;\n resourcePath?: string;\n copySourcePath?: string;\n /** Resolved workspace resource (for workspace-resource mode) */\n resolvedResource?: import('../resources/resource-builder.js').ResolvedResource;\n}\n\nexport interface AddClassifyOptions {\n copy?: boolean;\n dev?: boolean;\n}\n\n/**\n * Classify add command input to determine mode (dependency vs. copy) and extract metadata.\n *\n * Disambiguation layers (in order):\n * 1. --copy flag \u2192 force copy mode\n * 2. Trailing slash \u2192 local directory (strip /, resolve, require exists+isDirectory)\n * 3. Bare name with file extension \u2192 local file (require exists)\n * 4. Base classifier \u2192 registry, git, explicit paths\n *\n * @param input - User input string\n * @param cwd - Current working directory\n * @param options - Add-specific options (--copy, --dev)\n * @returns Add classification with mode and metadata\n */\nexport async function classifyAddInput(\n input: string,\n cwd: string,\n options: AddClassifyOptions\n): Promise<AddInputClassification> {\n // Layer 0: Handle --copy flag first (force copy mode)\n if (options.copy) {\n return handleCopyMode(input, cwd);\n }\n\n // Layer 1: Trailing slash \u2192 local directory (unambiguous dir intent)\n if (input.endsWith('/')) {\n const stripped = input.replace(/\\/+$/, '');\n const resolvedPath = resolve(cwd, stripped);\n if (await exists(resolvedPath)) {\n if (await isDirectory(resolvedPath)) {\n const localPathSpec = await buildLocalPathSpec(resolvedPath);\n return enrichWithAddMode(localPathSpec);\n }\n throw new ValidationError(\n `Path '${input}' is not a directory. Trailing slash indicates directory intent.`\n );\n }\n throw new ValidationError(`Directory not found: ${input}`);\n }\n\n // Layer 2: Bare name with file extension \u2192 local file (unambiguous file intent)\n if (isBareNameWithExtension(input)) {\n const resolvedPath = resolve(cwd, input);\n if (await exists(resolvedPath)) {\n return { mode: 'copy', copySourcePath: resolvedPath };\n }\n throw new ValidationError(`File not found: ${input}`);\n }\n\n // Layer 3: Use base classifier (registry, git, explicit paths)\n const base = await classifyInputBase(input, cwd);\n return enrichWithAddMode(base);\n}\n\n/** Check if input is a bare name with a file-extension-like suffix (e.g. README.md, config.json) */\nfunction isBareNameWithExtension(input: string): boolean {\n if (input.startsWith('./') || input.startsWith('../') || input.startsWith('/') || input.startsWith('~')) {\n return false;\n }\n if (input.includes('@') || input.includes('/')) {\n return false;\n }\n // Exclude tarballs \u2014 they are packages, not content files\n if (input.endsWith('.tgz') || input.endsWith('.tar.gz')) {\n return false;\n }\n const lastDot = input.lastIndexOf('.');\n if (lastDot <= 0) return false;\n const ext = input.slice(lastDot + 1);\n return ext.length >= 1 && ext.length <= 8 && /^[a-zA-Z0-9]+$/.test(ext);\n}\n\n/** Build a LocalPathInputSpec from an absolute path (for trailing-slash and local-path enrichment) */\nasync function buildLocalPathSpec(absolutePath: string): Promise<BaseInputClassification> {\n const isValid = await isValidPackageDirectory(absolutePath);\n const pluginResult = await detectPluginType(absolutePath);\n\n let packageName: string | undefined;\n if (isValid || pluginResult.isPlugin) {\n try {\n const manifestPath = join(absolutePath, 'openpackage.yml');\n if (await exists(manifestPath)) {\n const config = await parsePackageYml(manifestPath);\n packageName = config.name ?? basename(absolutePath);\n }\n } catch {\n packageName = basename(absolutePath);\n }\n }\n\n return {\n type: 'local-path',\n absolutePath,\n isDirectory: true,\n packageName,\n isValidPackage: isValid || pluginResult.isPlugin\n };\n}\n\n/**\n * Handle --copy mode (force copy regardless of input type).\n * Accepts any input that resolves to an existing local path (including package directories).\n */\nasync function handleCopyMode(\n input: string,\n cwd: string\n): Promise<AddInputClassification> {\n const resolvedAbsPath = resolve(cwd, input);\n if (!(await exists(resolvedAbsPath))) {\n throw new ValidationError(\n `Path not found: ${input}\\n--copy requires an existing local path.`\n );\n }\n return { mode: 'copy', copySourcePath: resolvedAbsPath };\n}\n\n/**\n * Enrich base classification with add-specific mode determination\n */\nfunction enrichWithAddMode(\n base: BaseInputClassification\n): AddInputClassification {\n switch (base.type) {\n case 'bulk':\n throw new ValidationError('Add command requires an input argument');\n\n case 'git':\n return {\n mode: 'dependency',\n packageName: base.derivedName!,\n gitUrl: base.gitUrl,\n gitRef: base.gitRef,\n gitPath: base.gitPath\n };\n\n case 'local-path': {\n // Tarballs (.tgz, .tar.gz) \u2192 path dependency\n if (\n base.absolutePath.endsWith('.tgz') ||\n base.absolutePath.endsWith('.tar.gz')\n ) {\n return {\n mode: 'dependency',\n packageName: base.packageName ?? basename(base.absolutePath).replace(/\\.(tgz|tar\\.gz)$/, ''),\n localPath: base.absolutePath\n };\n }\n\n // Determine if dependency or copy based on package validity\n if (base.isValidPackage) {\n logger.debug('Classified local directory as dependency', {\n packageName: base.packageName,\n absolutePath: base.absolutePath\n });\n return {\n mode: 'dependency',\n packageName: base.packageName!,\n localPath: base.absolutePath\n };\n }\n\n // Not a valid package - copy mode\n return {\n mode: 'copy',\n copySourcePath: base.absolutePath\n };\n }\n\n case 'registry':\n return {\n mode: 'dependency',\n packageName: base.packageName,\n version: base.version,\n resourcePath: base.registryPath\n };\n\n case 'embedded':\n return {\n mode: 'dependency',\n packageName: base.qualifiedName,\n version: base.version,\n };\n }\n}\n", "import { join } from 'path';\n\nimport type { AddInputClassification } from './add-input-classifier.js';\nimport type { PackageDependency } from '../../types/index.js';\nimport { resolveMutableSource } from '../source-resolution/resolve-mutable-source.js';\nimport { addPackageToYml, ensureLocalOpenPackageStructure, createWorkspacePackageYml } from '../package-management.js';\nimport { parsePackageYml, writePackageYml } from '../../utils/package-yml.js';\nimport { normalizePackageName, arePackageNamesEquivalent } from '../../utils/package-name.js';\nimport { formatPathForYaml } from '../../utils/path-resolution.js';\nimport { getLocalPackageYmlPath } from '../../utils/paths.js';\nimport { exists } from '../../utils/fs.js';\nimport { FILE_PATTERNS } from '../../constants/index.js';\nimport { logger } from '../../utils/logger.js';\n\nexport interface AddDependencyOptions {\n dev?: boolean;\n to?: string;\n}\n\nexport interface AddDependencyResult {\n packageName: string;\n targetManifest: string;\n section: 'dependencies' | 'dev-dependencies';\n isLocalPath: boolean;\n wasAutoDetected: boolean;\n}\n\nexport async function runAddDependencyFlow(\n classification: AddInputClassification,\n options: AddDependencyOptions\n): Promise<AddDependencyResult> {\n const cwd = process.cwd();\n const isDev = options.dev ?? false;\n const section = isDev ? 'dev-dependencies' : 'dependencies';\n const packageName = classification.packageName!;\n const isLocalPath = !!classification.localPath;\n\n const localPath = classification.localPath\n ? formatPathForYaml(classification.localPath, cwd)\n : undefined;\n\n let gitUrl: string | undefined;\n if (classification.gitUrl) {\n gitUrl = classification.gitRef\n ? `${classification.gitUrl}#${classification.gitRef}`\n : classification.gitUrl;\n }\n\n const gitPath = classification.gitPath || classification.resourcePath;\n\n if (options.to) {\n const source = await resolveMutableSource({ cwd, packageName: options.to });\n const manifestPath = join(source.absolutePath, FILE_PATTERNS.OPENPACKAGE_YML);\n\n await addDependencyToManifest(manifestPath, packageName, {\n version: classification.version,\n path: localPath,\n url: gitUrl,\n gitPath,\n isDev,\n });\n\n logger.info(`Added ${packageName} to ${manifestPath} [${section}]`);\n\n return {\n packageName,\n targetManifest: manifestPath,\n section,\n isLocalPath,\n wasAutoDetected: isLocalPath,\n };\n }\n\n const packageYmlPath = getLocalPackageYmlPath(cwd);\n if (!(await exists(packageYmlPath))) {\n await ensureLocalOpenPackageStructure(cwd);\n await createWorkspacePackageYml(cwd);\n }\n\n await addPackageToYml(\n cwd,\n packageName,\n classification.version,\n isDev,\n undefined,\n true, // silent \u2014 CLI layer handles display\n localPath,\n classification.gitUrl,\n classification.gitRef,\n gitPath,\n );\n\n logger.info(`Added ${packageName} to workspace manifest [${section}]`);\n\n return {\n packageName,\n targetManifest: packageYmlPath,\n section,\n isLocalPath,\n wasAutoDetected: isLocalPath,\n };\n}\n\nasync function addDependencyToManifest(\n manifestPath: string,\n packageName: string,\n options: {\n version?: string;\n path?: string;\n url?: string;\n gitPath?: string;\n isDev: boolean;\n }\n): Promise<void> {\n const config = await parsePackageYml(manifestPath);\n if (!config.dependencies) config.dependencies = [];\n if (!config['dev-dependencies']) config['dev-dependencies'] = [];\n\n const normalized = normalizePackageName(packageName);\n\n const dependency: PackageDependency = {\n name: normalized,\n ...(options.url ? { url: options.url } : {}),\n ...(options.path && !options.url ? { path: options.path } : {}),\n ...(options.version && !options.url && !options.path ? { version: options.version } : {}),\n ...(options.gitPath && options.url ? { path: options.gitPath } : {}),\n };\n\n const targetKey = options.isDev ? 'dev-dependencies' : 'dependencies';\n const otherKey = options.isDev ? 'dependencies' : 'dev-dependencies';\n\n const otherArr = config[otherKey]!;\n const otherIdx = otherArr.findIndex(d => arePackageNamesEquivalent(d.name, normalized));\n if (otherIdx >= 0) {\n otherArr.splice(otherIdx, 1);\n }\n\n const targetArr = config[targetKey]!;\n const existingIdx = targetArr.findIndex(d => arePackageNamesEquivalent(d.name, normalized));\n if (existingIdx >= 0) {\n targetArr[existingIdx] = dependency;\n } else {\n targetArr.push(dependency);\n }\n\n await writePackageYml(manifestPath, config);\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["join", "relative", "join", "resolve", "join", "join", "result", "resolve", "join", "relative", "join", "result"]
|
|
7
|
+
}
|