opkg 0.9.0 → 0.9.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/bin/openpackage +1 -1
- package/dist/core/install/preprocessing/base-resolver.js +37 -17
- package/dist/core/install/preprocessing/base-resolver.js.map +1 -1
- package/dist/core/install/preprocessing/index.js +1 -1
- package/dist/core/install/preprocessing/index.js.map +1 -1
- package/dist/core/install/resolution/installation-planner.js +7 -22
- package/dist/core/install/resolution/installation-planner.js.map +1 -1
- package/dist/core/install/unified/context-builders.js +25 -5
- package/dist/core/install/unified/context-builders.js.map +1 -1
- package/dist/utils/git-clone.js +9 -3
- package/dist/utils/git-clone.js.map +1 -1
- package/package.json +10 -10
- package/packages/cli/bin/openpackage +5 -0
- package/packages/cli/dist/add-AFORN4DK.js +624 -0
- package/packages/cli/dist/add-AFORN4DK.js.map +7 -0
- package/packages/cli/dist/add-TASDXRAL.js +608 -0
- package/packages/cli/dist/add-TASDXRAL.js.map +7 -0
- package/packages/cli/dist/chunk-2NGVXUNT.js +108 -0
- package/packages/cli/dist/chunk-2NGVXUNT.js.map +7 -0
- package/packages/cli/dist/chunk-2PMMVTRN.js +44 -0
- package/packages/cli/dist/chunk-2PMMVTRN.js.map +7 -0
- package/packages/cli/dist/chunk-3RORRNJN.js +31 -0
- package/packages/cli/dist/chunk-3RORRNJN.js.map +7 -0
- package/packages/cli/dist/chunk-4TCVCEPB.js +274 -0
- package/packages/cli/dist/chunk-4TCVCEPB.js.map +7 -0
- package/packages/cli/dist/chunk-5EFWGD33.js +70 -0
- package/packages/cli/dist/chunk-5EFWGD33.js.map +7 -0
- package/packages/cli/dist/chunk-5HSDD3SL.js +100 -0
- package/packages/cli/dist/chunk-5HSDD3SL.js.map +7 -0
- package/packages/cli/dist/chunk-5XEDHH4X.js +371 -0
- package/packages/cli/dist/chunk-5XEDHH4X.js.map +7 -0
- package/packages/cli/dist/chunk-6HEBGHXK.js +302 -0
- package/packages/cli/dist/chunk-6HEBGHXK.js.map +7 -0
- package/packages/cli/dist/chunk-6YZNE3MU.js +29 -0
- package/packages/cli/dist/chunk-6YZNE3MU.js.map +7 -0
- package/packages/cli/dist/chunk-A6ISKBNM.js +48 -0
- package/packages/cli/dist/chunk-A6ISKBNM.js.map +7 -0
- package/packages/cli/dist/chunk-AMHDY5PC.js +31 -0
- package/packages/cli/dist/chunk-AMHDY5PC.js.map +7 -0
- package/packages/cli/dist/chunk-ATYT3SA6.js +172 -0
- package/packages/cli/dist/chunk-ATYT3SA6.js.map +7 -0
- package/packages/cli/dist/chunk-AUYRGQIJ.js +99 -0
- package/packages/cli/dist/chunk-AUYRGQIJ.js.map +7 -0
- package/packages/cli/dist/chunk-BCYZDID6.js +60 -0
- package/packages/cli/dist/chunk-BCYZDID6.js.map +7 -0
- package/packages/cli/dist/chunk-BGSNTCZP.js +172 -0
- package/packages/cli/dist/chunk-BGSNTCZP.js.map +7 -0
- package/packages/cli/dist/chunk-BM66UY63.js +413 -0
- package/packages/cli/dist/chunk-BM66UY63.js.map +7 -0
- package/packages/cli/dist/chunk-BN3JSWOU.js +371 -0
- package/packages/cli/dist/chunk-BN3JSWOU.js.map +7 -0
- package/packages/cli/dist/chunk-BRRTF7CU.js +99 -0
- package/packages/cli/dist/chunk-BRRTF7CU.js.map +7 -0
- package/packages/cli/dist/chunk-CBLKT6WA.js +48 -0
- package/packages/cli/dist/chunk-CBLKT6WA.js.map +7 -0
- package/packages/cli/dist/chunk-DFRQACQV.js +1168 -0
- package/packages/cli/dist/chunk-DFRQACQV.js.map +7 -0
- package/packages/cli/dist/chunk-DN7RINDJ.js +975 -0
- package/packages/cli/dist/chunk-DN7RINDJ.js.map +7 -0
- package/packages/cli/dist/chunk-E2DVTD75.js +196 -0
- package/packages/cli/dist/chunk-E2DVTD75.js.map +7 -0
- package/packages/cli/dist/chunk-E2HYZWNV.js +32 -0
- package/packages/cli/dist/chunk-E2HYZWNV.js.map +7 -0
- package/packages/cli/dist/chunk-EGAP6GNA.js +31 -0
- package/packages/cli/dist/chunk-EGAP6GNA.js.map +7 -0
- package/packages/cli/dist/chunk-ELCB4RC2.js +1121 -0
- package/packages/cli/dist/chunk-ELCB4RC2.js.map +7 -0
- package/packages/cli/dist/chunk-FRYA3JAQ.js +48 -0
- package/packages/cli/dist/chunk-FRYA3JAQ.js.map +7 -0
- package/packages/cli/dist/chunk-GJWX5XPU.js +274 -0
- package/packages/cli/dist/chunk-GJWX5XPU.js.map +7 -0
- package/packages/cli/dist/chunk-GKEHDSL4.js +732 -0
- package/packages/cli/dist/chunk-GKEHDSL4.js.map +7 -0
- package/packages/cli/dist/chunk-GP5FJYSS.js +186 -0
- package/packages/cli/dist/chunk-GP5FJYSS.js.map +7 -0
- package/packages/cli/dist/chunk-GXPSKN7J.js +538 -0
- package/packages/cli/dist/chunk-GXPSKN7J.js.map +7 -0
- package/packages/cli/dist/chunk-GZIV2HZM.js +195 -0
- package/packages/cli/dist/chunk-GZIV2HZM.js.map +7 -0
- package/packages/cli/dist/chunk-IBIYIU3K.js +23 -0
- package/packages/cli/dist/chunk-IBIYIU3K.js.map +7 -0
- package/packages/cli/dist/chunk-ID4SVDQZ.js +61 -0
- package/packages/cli/dist/chunk-ID4SVDQZ.js.map +7 -0
- package/packages/cli/dist/chunk-IVM4PQP4.js +568 -0
- package/packages/cli/dist/chunk-IVM4PQP4.js.map +7 -0
- package/packages/cli/dist/chunk-IXOEIRDT.js +1028 -0
- package/packages/cli/dist/chunk-IXOEIRDT.js.map +7 -0
- package/packages/cli/dist/chunk-J2OQQZFA.js +48 -0
- package/packages/cli/dist/chunk-J2OQQZFA.js.map +7 -0
- package/packages/cli/dist/chunk-J4IFFBLP.js +103 -0
- package/packages/cli/dist/chunk-J4IFFBLP.js.map +7 -0
- package/packages/cli/dist/chunk-K3FCWE4I.js +1168 -0
- package/packages/cli/dist/chunk-K3FCWE4I.js.map +7 -0
- package/packages/cli/dist/chunk-KGBDKY5V.js +113 -0
- package/packages/cli/dist/chunk-KGBDKY5V.js.map +7 -0
- package/packages/cli/dist/chunk-LVPD45D5.js +61 -0
- package/packages/cli/dist/chunk-LVPD45D5.js.map +7 -0
- package/packages/cli/dist/chunk-MLYYVOS3.js +498 -0
- package/packages/cli/dist/chunk-MLYYVOS3.js.map +7 -0
- package/packages/cli/dist/chunk-OFM3UWJJ.js +190 -0
- package/packages/cli/dist/chunk-OFM3UWJJ.js.map +7 -0
- package/packages/cli/dist/chunk-PXL2RUMX.js +14 -0
- package/packages/cli/dist/chunk-PXL2RUMX.js.map +7 -0
- package/packages/cli/dist/chunk-Q2N6OZJC.js +258 -0
- package/packages/cli/dist/chunk-Q2N6OZJC.js.map +7 -0
- package/packages/cli/dist/chunk-QQFDQPT3.js +86 -0
- package/packages/cli/dist/chunk-QQFDQPT3.js.map +7 -0
- package/packages/cli/dist/chunk-QTQYI4L5.js +155 -0
- package/packages/cli/dist/chunk-QTQYI4L5.js.map +7 -0
- package/packages/cli/dist/chunk-QURLGVA4.js +74 -0
- package/packages/cli/dist/chunk-QURLGVA4.js.map +7 -0
- package/packages/cli/dist/chunk-S47F4OG4.js +173 -0
- package/packages/cli/dist/chunk-S47F4OG4.js.map +7 -0
- package/packages/cli/dist/chunk-S6OARUVQ.js +376 -0
- package/packages/cli/dist/chunk-S6OARUVQ.js.map +7 -0
- package/packages/cli/dist/chunk-SHKYQQJJ.js +11 -0
- package/packages/cli/dist/chunk-SHKYQQJJ.js.map +7 -0
- package/packages/cli/dist/chunk-SSHWUJEG.js +788 -0
- package/packages/cli/dist/chunk-SSHWUJEG.js.map +7 -0
- package/packages/cli/dist/chunk-SVEFLCC2.js +25 -0
- package/packages/cli/dist/chunk-SVEFLCC2.js.map +7 -0
- package/packages/cli/dist/chunk-TFQ4JBVO.js +222 -0
- package/packages/cli/dist/chunk-TFQ4JBVO.js.map +7 -0
- package/packages/cli/dist/chunk-UDAWJRKD.js +63 -0
- package/packages/cli/dist/chunk-UDAWJRKD.js.map +7 -0
- package/packages/cli/dist/chunk-UR6VJWA3.js +108 -0
- package/packages/cli/dist/chunk-UR6VJWA3.js.map +7 -0
- package/packages/cli/dist/chunk-UVWARZQC.js +52 -0
- package/packages/cli/dist/chunk-UVWARZQC.js.map +7 -0
- package/packages/cli/dist/chunk-V2JKF46L.js +61 -0
- package/packages/cli/dist/chunk-V2JKF46L.js.map +7 -0
- package/packages/cli/dist/chunk-V5OW4YEB.js +92 -0
- package/packages/cli/dist/chunk-V5OW4YEB.js.map +7 -0
- package/packages/cli/dist/chunk-VN22A7NW.js +145 -0
- package/packages/cli/dist/chunk-VN22A7NW.js.map +7 -0
- package/packages/cli/dist/chunk-WQG6LPP3.js +190 -0
- package/packages/cli/dist/chunk-WQG6LPP3.js.map +7 -0
- package/packages/cli/dist/chunk-XEPVYZO3.js +130 -0
- package/packages/cli/dist/chunk-XEPVYZO3.js.map +7 -0
- package/packages/cli/dist/chunk-YMKK4XPN.js +38 -0
- package/packages/cli/dist/chunk-YMKK4XPN.js.map +7 -0
- package/packages/cli/dist/chunk-YXLKLL3V.js +253 -0
- package/packages/cli/dist/chunk-YXLKLL3V.js.map +7 -0
- package/packages/cli/dist/configure-CBKHH5ZC.js +107 -0
- package/packages/cli/dist/configure-CBKHH5ZC.js.map +7 -0
- package/packages/cli/dist/configure-IW22RQIX.js +107 -0
- package/packages/cli/dist/configure-IW22RQIX.js.map +7 -0
- package/packages/cli/dist/errors-X5KO3GTP.js +23 -0
- package/packages/cli/dist/errors-X5KO3GTP.js.map +7 -0
- package/packages/cli/dist/file-format-detector-DEAVQPAT.js +22 -0
- package/packages/cli/dist/file-format-detector-DEAVQPAT.js.map +7 -0
- package/packages/cli/dist/format-distribution-analyzer-MIFCFIAJ.js +91 -0
- package/packages/cli/dist/format-distribution-analyzer-MIFCFIAJ.js.map +7 -0
- package/packages/cli/dist/index.js +212 -0
- package/packages/cli/dist/index.js.map +7 -0
- package/packages/cli/dist/install-WS7D32ND.js +7694 -0
- package/packages/cli/dist/install-WS7D32ND.js.map +7 -0
- package/packages/cli/dist/install-ZR42VB5K.js +7770 -0
- package/packages/cli/dist/install-ZR42VB5K.js.map +7 -0
- package/packages/cli/dist/list-GSBJJXQT.js +327 -0
- package/packages/cli/dist/list-GSBJJXQT.js.map +7 -0
- package/packages/cli/dist/list-L7DYJYXO.js +126 -0
- package/packages/cli/dist/list-L7DYJYXO.js.map +7 -0
- package/packages/cli/dist/logger-WHZJRF6G.js +8 -0
- package/packages/cli/dist/logger-WHZJRF6G.js.map +7 -0
- package/packages/cli/dist/login-5KPCJJYE.js +121 -0
- package/packages/cli/dist/login-5KPCJJYE.js.map +7 -0
- package/packages/cli/dist/login-TUPFY4I2.js +151 -0
- package/packages/cli/dist/login-TUPFY4I2.js.map +7 -0
- package/packages/cli/dist/logout-FCOJT6KE.js +40 -0
- package/packages/cli/dist/logout-FCOJT6KE.js.map +7 -0
- package/packages/cli/dist/logout-GTYZM3NQ.js +40 -0
- package/packages/cli/dist/logout-GTYZM3NQ.js.map +7 -0
- package/packages/cli/dist/new-FMYTAQD2.js +277 -0
- package/packages/cli/dist/new-FMYTAQD2.js.map +7 -0
- package/packages/cli/dist/new-UJ3HI5MZ.js +275 -0
- package/packages/cli/dist/new-UJ3HI5MZ.js.map +7 -0
- package/packages/cli/dist/package-marker-detector-JELOHCL7.js +80 -0
- package/packages/cli/dist/package-marker-detector-JELOHCL7.js.map +7 -0
- package/packages/cli/dist/package-yml-33CZZC3T.js +16 -0
- package/packages/cli/dist/package-yml-33CZZC3T.js.map +7 -0
- package/packages/cli/dist/plugin-naming-Z2RD7XOF.js +29 -0
- package/packages/cli/dist/plugin-naming-Z2RD7XOF.js.map +7 -0
- package/packages/cli/dist/publish-NHZEF7NP.js +621 -0
- package/packages/cli/dist/publish-NHZEF7NP.js.map +7 -0
- package/packages/cli/dist/publish-VXEPM3TI.js +619 -0
- package/packages/cli/dist/publish-VXEPM3TI.js.map +7 -0
- package/packages/cli/dist/remove-S5DT4F7A.js +508 -0
- package/packages/cli/dist/remove-S5DT4F7A.js.map +7 -0
- package/packages/cli/dist/remove-Z5YY2PZZ.js +542 -0
- package/packages/cli/dist/remove-Z5YY2PZZ.js.map +7 -0
- package/packages/cli/dist/resource-discoverer-QF3Q4QAE.js +17 -0
- package/packages/cli/dist/resource-discoverer-QF3Q4QAE.js.map +7 -0
- package/packages/cli/dist/save-RRBXRROU.js +1726 -0
- package/packages/cli/dist/save-RRBXRROU.js.map +7 -0
- package/packages/cli/dist/save-YHCXQDLA.js +1728 -0
- package/packages/cli/dist/save-YHCXQDLA.js.map +7 -0
- package/packages/cli/dist/search-65S4VUKZ.js +157 -0
- package/packages/cli/dist/search-65S4VUKZ.js.map +7 -0
- package/packages/cli/dist/search-RW5EX76L.js +157 -0
- package/packages/cli/dist/search-RW5EX76L.js.map +7 -0
- package/packages/cli/dist/set-CGYGCM3C.js +251 -0
- package/packages/cli/dist/set-CGYGCM3C.js.map +7 -0
- package/packages/cli/dist/set-SGEPTBDB.js +251 -0
- package/packages/cli/dist/set-SGEPTBDB.js.map +7 -0
- package/packages/cli/dist/uninstall-7EJCVTLD.js +868 -0
- package/packages/cli/dist/uninstall-7EJCVTLD.js.map +7 -0
- package/packages/cli/dist/uninstall-UBZTRBEK.js +540 -0
- package/packages/cli/dist/uninstall-UBZTRBEK.js.map +7 -0
- package/packages/cli/dist/unpublish-V4PMWZVD.js +243 -0
- package/packages/cli/dist/unpublish-V4PMWZVD.js.map +7 -0
- package/packages/cli/dist/unpublish-YMHUZ4EZ.js +243 -0
- package/packages/cli/dist/unpublish-YMHUZ4EZ.js.map +7 -0
- package/packages/cli/dist/view-62MJAH7O.js +452 -0
- package/packages/cli/dist/view-62MJAH7O.js.map +7 -0
- package/packages/cli/dist/view-TVWVUS3B.js +488 -0
- package/packages/cli/dist/view-TVWVUS3B.js.map +7 -0
- package/packages/cli/package.json +45 -0
- package/packages/core/dist/constants/index.d.ts +151 -0
- package/packages/core/dist/constants/index.d.ts.map +1 -0
- package/packages/core/dist/constants/index.js +155 -0
- package/packages/core/dist/constants/index.js.map +1 -0
- package/packages/core/dist/constants/workspace.d.ts +3 -0
- package/packages/core/dist/constants/workspace.d.ts.map +1 -0
- package/packages/core/dist/constants/workspace.js +9 -0
- package/packages/core/dist/constants/workspace.js.map +1 -0
- package/packages/core/dist/core/add/add-conflict-handler.d.ts +17 -0
- package/packages/core/dist/core/add/add-conflict-handler.d.ts.map +1 -0
- package/packages/core/dist/core/add/add-conflict-handler.js +107 -0
- package/packages/core/dist/core/add/add-conflict-handler.js.map +1 -0
- package/packages/core/dist/core/add/add-dependency-flow.d.ts +14 -0
- package/packages/core/dist/core/add/add-dependency-flow.d.ts.map +1 -0
- package/packages/core/dist/core/add/add-dependency-flow.js +93 -0
- package/packages/core/dist/core/add/add-dependency-flow.js.map +1 -0
- package/packages/core/dist/core/add/add-input-classifier.d.ts +34 -0
- package/packages/core/dist/core/add/add-input-classifier.d.ts.map +1 -0
- package/packages/core/dist/core/add/add-input-classifier.js +159 -0
- package/packages/core/dist/core/add/add-input-classifier.js.map +1 -0
- package/packages/core/dist/core/add/add-orchestrator.d.ts +40 -0
- package/packages/core/dist/core/add/add-orchestrator.d.ts.map +1 -0
- package/packages/core/dist/core/add/add-orchestrator.js +81 -0
- package/packages/core/dist/core/add/add-orchestrator.js.map +1 -0
- package/packages/core/dist/core/add/add-to-source-pipeline.d.ts +22 -0
- package/packages/core/dist/core/add/add-to-source-pipeline.d.ts.map +1 -0
- package/packages/core/dist/core/add/add-to-source-pipeline.js +164 -0
- package/packages/core/dist/core/add/add-to-source-pipeline.js.map +1 -0
- package/packages/core/dist/core/add/package-index-updater.d.ts +24 -0
- package/packages/core/dist/core/add/package-index-updater.d.ts.map +1 -0
- package/packages/core/dist/core/add/package-index-updater.js +324 -0
- package/packages/core/dist/core/add/package-index-updater.js.map +1 -0
- package/packages/core/dist/core/add/platform-path-transformer.d.ts +7 -0
- package/packages/core/dist/core/add/platform-path-transformer.d.ts.map +1 -0
- package/packages/core/dist/core/add/platform-path-transformer.js +50 -0
- package/packages/core/dist/core/add/platform-path-transformer.js.map +1 -0
- package/packages/core/dist/core/add/source-collector.d.ts +12 -0
- package/packages/core/dist/core/add/source-collector.d.ts.map +1 -0
- package/packages/core/dist/core/add/source-collector.js +76 -0
- package/packages/core/dist/core/add/source-collector.js.map +1 -0
- package/packages/core/dist/core/api-keys.d.ts +21 -0
- package/packages/core/dist/core/api-keys.d.ts.map +1 -0
- package/packages/core/dist/core/api-keys.js +29 -0
- package/packages/core/dist/core/api-keys.js.map +1 -0
- package/packages/core/dist/core/auth.d.ts +32 -0
- package/packages/core/dist/core/auth.d.ts.map +1 -0
- package/packages/core/dist/core/auth.js +132 -0
- package/packages/core/dist/core/auth.js.map +1 -0
- package/packages/core/dist/core/cache-manager.d.ts +22 -0
- package/packages/core/dist/core/cache-manager.d.ts.map +1 -0
- package/packages/core/dist/core/cache-manager.js +104 -0
- package/packages/core/dist/core/cache-manager.js.map +1 -0
- package/packages/core/dist/core/config.d.ts +64 -0
- package/packages/core/dist/core/config.d.ts.map +1 -0
- package/packages/core/dist/core/config.js +189 -0
- package/packages/core/dist/core/config.js.map +1 -0
- package/packages/core/dist/core/conversion-context/creation.d.ts +50 -0
- package/packages/core/dist/core/conversion-context/creation.d.ts.map +1 -0
- package/packages/core/dist/core/conversion-context/creation.js +153 -0
- package/packages/core/dist/core/conversion-context/creation.js.map +1 -0
- package/packages/core/dist/core/conversion-context/index.d.ts +12 -0
- package/packages/core/dist/core/conversion-context/index.d.ts.map +1 -0
- package/packages/core/dist/core/conversion-context/index.js +13 -0
- package/packages/core/dist/core/conversion-context/index.js.map +1 -0
- package/packages/core/dist/core/conversion-context/serialization.d.ts +38 -0
- package/packages/core/dist/core/conversion-context/serialization.d.ts.map +1 -0
- package/packages/core/dist/core/conversion-context/serialization.js +129 -0
- package/packages/core/dist/core/conversion-context/serialization.js.map +1 -0
- package/packages/core/dist/core/conversion-context/validation.d.ts +49 -0
- package/packages/core/dist/core/conversion-context/validation.d.ts.map +1 -0
- package/packages/core/dist/core/conversion-context/validation.js +200 -0
- package/packages/core/dist/core/conversion-context/validation.js.map +1 -0
- package/packages/core/dist/core/dependency-resolver/display.d.ts +10 -0
- package/packages/core/dist/core/dependency-resolver/display.d.ts.map +1 -0
- package/packages/core/dist/core/dependency-resolver/display.js +32 -0
- package/packages/core/dist/core/dependency-resolver/display.js.map +1 -0
- package/packages/core/dist/core/dependency-resolver/index.d.ts +19 -0
- package/packages/core/dist/core/dependency-resolver/index.d.ts.map +1 -0
- package/packages/core/dist/core/dependency-resolver/index.js +22 -0
- package/packages/core/dist/core/dependency-resolver/index.js.map +1 -0
- package/packages/core/dist/core/dependency-resolver/prompts.d.ts +9 -0
- package/packages/core/dist/core/dependency-resolver/prompts.d.ts.map +1 -0
- package/packages/core/dist/core/dependency-resolver/prompts.js +12 -0
- package/packages/core/dist/core/dependency-resolver/prompts.js.map +1 -0
- package/packages/core/dist/core/dependency-resolver/resolver.d.ts +36 -0
- package/packages/core/dist/core/dependency-resolver/resolver.d.ts.map +1 -0
- package/packages/core/dist/core/dependency-resolver/resolver.js +672 -0
- package/packages/core/dist/core/dependency-resolver/resolver.js.map +1 -0
- package/packages/core/dist/core/dependency-resolver/tree-utils.d.ts +14 -0
- package/packages/core/dist/core/dependency-resolver/tree-utils.d.ts.map +1 -0
- package/packages/core/dist/core/dependency-resolver/tree-utils.js +96 -0
- package/packages/core/dist/core/dependency-resolver/tree-utils.js.map +1 -0
- package/packages/core/dist/core/dependency-resolver/types.d.ts +52 -0
- package/packages/core/dist/core/dependency-resolver/types.d.ts.map +1 -0
- package/packages/core/dist/core/dependency-resolver/types.js +2 -0
- package/packages/core/dist/core/dependency-resolver/types.js.map +1 -0
- package/packages/core/dist/core/dependency-resolver.d.ts +14 -0
- package/packages/core/dist/core/dependency-resolver.d.ts.map +1 -0
- package/packages/core/dist/core/dependency-resolver.js +15 -0
- package/packages/core/dist/core/dependency-resolver.js.map +1 -0
- package/packages/core/dist/core/device-auth.d.ts +25 -0
- package/packages/core/dist/core/device-auth.d.ts.map +1 -0
- package/packages/core/dist/core/device-auth.js +95 -0
- package/packages/core/dist/core/device-auth.js.map +1 -0
- package/packages/core/dist/core/directory.d.ts +74 -0
- package/packages/core/dist/core/directory.d.ts.map +1 -0
- package/packages/core/dist/core/directory.js +203 -0
- package/packages/core/dist/core/directory.js.map +1 -0
- package/packages/core/dist/core/discovery/file-discovery.d.ts +17 -0
- package/packages/core/dist/core/discovery/file-discovery.d.ts.map +1 -0
- package/packages/core/dist/core/discovery/file-discovery.js +61 -0
- package/packages/core/dist/core/discovery/file-discovery.js.map +1 -0
- package/packages/core/dist/core/discovery/platform-files-discovery.d.ts +3 -0
- package/packages/core/dist/core/discovery/platform-files-discovery.d.ts.map +1 -0
- package/packages/core/dist/core/discovery/platform-files-discovery.js +101 -0
- package/packages/core/dist/core/discovery/platform-files-discovery.js.map +1 -0
- package/packages/core/dist/core/execution-context.d.ts +47 -0
- package/packages/core/dist/core/execution-context.d.ts.map +1 -0
- package/packages/core/dist/core/execution-context.js +146 -0
- package/packages/core/dist/core/execution-context.js.map +1 -0
- package/packages/core/dist/core/flows/flow-execution-coordinator.d.ts +87 -0
- package/packages/core/dist/core/flows/flow-execution-coordinator.d.ts.map +1 -0
- package/packages/core/dist/core/flows/flow-execution-coordinator.js +294 -0
- package/packages/core/dist/core/flows/flow-execution-coordinator.js.map +1 -0
- package/packages/core/dist/core/flows/flow-executor.d.ts +190 -0
- package/packages/core/dist/core/flows/flow-executor.d.ts.map +1 -0
- package/packages/core/dist/core/flows/flow-executor.js +1138 -0
- package/packages/core/dist/core/flows/flow-executor.js.map +1 -0
- package/packages/core/dist/core/flows/flow-key-extractor.d.ts +40 -0
- package/packages/core/dist/core/flows/flow-key-extractor.d.ts.map +1 -0
- package/packages/core/dist/core/flows/flow-key-extractor.js +101 -0
- package/packages/core/dist/core/flows/flow-key-extractor.js.map +1 -0
- package/packages/core/dist/core/flows/flow-key-mapper.d.ts +27 -0
- package/packages/core/dist/core/flows/flow-key-mapper.d.ts.map +1 -0
- package/packages/core/dist/core/flows/flow-key-mapper.js +283 -0
- package/packages/core/dist/core/flows/flow-key-mapper.js.map +1 -0
- package/packages/core/dist/core/flows/flow-source-discovery.d.ts +106 -0
- package/packages/core/dist/core/flows/flow-source-discovery.d.ts.map +1 -0
- package/packages/core/dist/core/flows/flow-source-discovery.js +311 -0
- package/packages/core/dist/core/flows/flow-source-discovery.js.map +1 -0
- package/packages/core/dist/core/flows/flow-transforms.d.ts +129 -0
- package/packages/core/dist/core/flows/flow-transforms.d.ts.map +1 -0
- package/packages/core/dist/core/flows/flow-transforms.js +613 -0
- package/packages/core/dist/core/flows/flow-transforms.js.map +1 -0
- package/packages/core/dist/core/flows/map-pipeline/context.d.ts +30 -0
- package/packages/core/dist/core/flows/map-pipeline/context.d.ts.map +1 -0
- package/packages/core/dist/core/flows/map-pipeline/context.js +73 -0
- package/packages/core/dist/core/flows/map-pipeline/context.js.map +1 -0
- package/packages/core/dist/core/flows/map-pipeline/index.d.ts +48 -0
- package/packages/core/dist/core/flows/map-pipeline/index.d.ts.map +1 -0
- package/packages/core/dist/core/flows/map-pipeline/index.js +176 -0
- package/packages/core/dist/core/flows/map-pipeline/index.js.map +1 -0
- package/packages/core/dist/core/flows/map-pipeline/operations/copy.d.ts +32 -0
- package/packages/core/dist/core/flows/map-pipeline/operations/copy.d.ts.map +1 -0
- package/packages/core/dist/core/flows/map-pipeline/operations/copy.js +104 -0
- package/packages/core/dist/core/flows/map-pipeline/operations/copy.js.map +1 -0
- package/packages/core/dist/core/flows/map-pipeline/operations/pipe.d.ts +37 -0
- package/packages/core/dist/core/flows/map-pipeline/operations/pipe.d.ts.map +1 -0
- package/packages/core/dist/core/flows/map-pipeline/operations/pipe.js +70 -0
- package/packages/core/dist/core/flows/map-pipeline/operations/pipe.js.map +1 -0
- package/packages/core/dist/core/flows/map-pipeline/operations/rename.d.ts +26 -0
- package/packages/core/dist/core/flows/map-pipeline/operations/rename.d.ts.map +1 -0
- package/packages/core/dist/core/flows/map-pipeline/operations/rename.js +102 -0
- package/packages/core/dist/core/flows/map-pipeline/operations/rename.js.map +1 -0
- package/packages/core/dist/core/flows/map-pipeline/operations/set.d.ts +24 -0
- package/packages/core/dist/core/flows/map-pipeline/operations/set.d.ts.map +1 -0
- package/packages/core/dist/core/flows/map-pipeline/operations/set.js +50 -0
- package/packages/core/dist/core/flows/map-pipeline/operations/set.js.map +1 -0
- package/packages/core/dist/core/flows/map-pipeline/operations/switch.d.ts +31 -0
- package/packages/core/dist/core/flows/map-pipeline/operations/switch.d.ts.map +1 -0
- package/packages/core/dist/core/flows/map-pipeline/operations/switch.js +84 -0
- package/packages/core/dist/core/flows/map-pipeline/operations/switch.js.map +1 -0
- package/packages/core/dist/core/flows/map-pipeline/operations/transform.d.ts +22 -0
- package/packages/core/dist/core/flows/map-pipeline/operations/transform.d.ts.map +1 -0
- package/packages/core/dist/core/flows/map-pipeline/operations/transform.js +576 -0
- package/packages/core/dist/core/flows/map-pipeline/operations/transform.js.map +1 -0
- package/packages/core/dist/core/flows/map-pipeline/operations/unset.d.ts +27 -0
- package/packages/core/dist/core/flows/map-pipeline/operations/unset.d.ts.map +1 -0
- package/packages/core/dist/core/flows/map-pipeline/operations/unset.js +65 -0
- package/packages/core/dist/core/flows/map-pipeline/operations/unset.js.map +1 -0
- package/packages/core/dist/core/flows/map-pipeline/types.d.ts +358 -0
- package/packages/core/dist/core/flows/map-pipeline/types.d.ts.map +1 -0
- package/packages/core/dist/core/flows/map-pipeline/types.js +8 -0
- package/packages/core/dist/core/flows/map-pipeline/types.js.map +1 -0
- package/packages/core/dist/core/flows/map-pipeline/utils.d.ts +104 -0
- package/packages/core/dist/core/flows/map-pipeline/utils.d.ts.map +1 -0
- package/packages/core/dist/core/flows/map-pipeline/utils.js +278 -0
- package/packages/core/dist/core/flows/map-pipeline/utils.js.map +1 -0
- package/packages/core/dist/core/flows/markdown.d.ts +22 -0
- package/packages/core/dist/core/flows/markdown.d.ts.map +1 -0
- package/packages/core/dist/core/flows/markdown.js +51 -0
- package/packages/core/dist/core/flows/markdown.js.map +1 -0
- package/packages/core/dist/core/flows/platform-converter.d.ts +90 -0
- package/packages/core/dist/core/flows/platform-converter.d.ts.map +1 -0
- package/packages/core/dist/core/flows/platform-converter.js +366 -0
- package/packages/core/dist/core/flows/platform-converter.js.map +1 -0
- package/packages/core/dist/core/flows/platform-suffix-handler.d.ts +97 -0
- package/packages/core/dist/core/flows/platform-suffix-handler.d.ts.map +1 -0
- package/packages/core/dist/core/flows/platform-suffix-handler.js +212 -0
- package/packages/core/dist/core/flows/platform-suffix-handler.js.map +1 -0
- package/packages/core/dist/core/flows/source-resolver.d.ts +99 -0
- package/packages/core/dist/core/flows/source-resolver.d.ts.map +1 -0
- package/packages/core/dist/core/flows/source-resolver.js +192 -0
- package/packages/core/dist/core/flows/source-resolver.js.map +1 -0
- package/packages/core/dist/core/flows/switch-resolver.d.ts +48 -0
- package/packages/core/dist/core/flows/switch-resolver.d.ts.map +1 -0
- package/packages/core/dist/core/flows/switch-resolver.js +205 -0
- package/packages/core/dist/core/flows/switch-resolver.js.map +1 -0
- package/packages/core/dist/core/git-clone-registry.d.ts +19 -0
- package/packages/core/dist/core/git-clone-registry.d.ts.map +1 -0
- package/packages/core/dist/core/git-clone-registry.js +88 -0
- package/packages/core/dist/core/git-clone-registry.js.map +1 -0
- package/packages/core/dist/core/git-clone.d.ts +27 -0
- package/packages/core/dist/core/git-clone.d.ts.map +1 -0
- package/packages/core/dist/core/git-clone.js +282 -0
- package/packages/core/dist/core/git-clone.js.map +1 -0
- package/packages/core/dist/core/glob-target-mapping.d.ts +18 -0
- package/packages/core/dist/core/glob-target-mapping.d.ts.map +1 -0
- package/packages/core/dist/core/glob-target-mapping.js +88 -0
- package/packages/core/dist/core/glob-target-mapping.js.map +1 -0
- package/packages/core/dist/core/http-client.d.ts +54 -0
- package/packages/core/dist/core/http-client.d.ts.map +1 -0
- package/packages/core/dist/core/http-client.js +235 -0
- package/packages/core/dist/core/http-client.js.map +1 -0
- package/packages/core/dist/core/install/ambiguity-prompts.d.ts +46 -0
- package/packages/core/dist/core/install/ambiguity-prompts.d.ts.map +1 -0
- package/packages/core/dist/core/install/ambiguity-prompts.js +108 -0
- package/packages/core/dist/core/install/ambiguity-prompts.js.map +1 -0
- package/packages/core/dist/core/install/base-detector.d.ts +50 -0
- package/packages/core/dist/core/install/base-detector.d.ts.map +1 -0
- package/packages/core/dist/core/install/base-detector.js +312 -0
- package/packages/core/dist/core/install/base-detector.js.map +1 -0
- package/packages/core/dist/core/install/conflicts/file-conflict-resolver.d.ts +215 -0
- package/packages/core/dist/core/install/conflicts/file-conflict-resolver.d.ts.map +1 -0
- package/packages/core/dist/core/install/conflicts/file-conflict-resolver.js +599 -0
- package/packages/core/dist/core/install/conflicts/file-conflict-resolver.js.map +1 -0
- package/packages/core/dist/core/install/convenience-matchers.d.ts +82 -0
- package/packages/core/dist/core/install/convenience-matchers.d.ts.map +1 -0
- package/packages/core/dist/core/install/convenience-matchers.js +355 -0
- package/packages/core/dist/core/install/convenience-matchers.js.map +1 -0
- package/packages/core/dist/core/install/conversion-context.d.ts +146 -0
- package/packages/core/dist/core/install/conversion-context.d.ts.map +1 -0
- package/packages/core/dist/core/install/conversion-context.js +163 -0
- package/packages/core/dist/core/install/conversion-context.js.map +1 -0
- package/packages/core/dist/core/install/conversion-coordinator.d.ts +91 -0
- package/packages/core/dist/core/install/conversion-coordinator.d.ts.map +1 -0
- package/packages/core/dist/core/install/conversion-coordinator.js +273 -0
- package/packages/core/dist/core/install/conversion-coordinator.js.map +1 -0
- package/packages/core/dist/core/install/detection-types.d.ts +216 -0
- package/packages/core/dist/core/install/detection-types.d.ts.map +1 -0
- package/packages/core/dist/core/install/detection-types.js +8 -0
- package/packages/core/dist/core/install/detection-types.js.map +1 -0
- package/packages/core/dist/core/install/download-keys.d.ts +10 -0
- package/packages/core/dist/core/install/download-keys.d.ts.map +1 -0
- package/packages/core/dist/core/install/download-keys.js +34 -0
- package/packages/core/dist/core/install/download-keys.js.map +1 -0
- package/packages/core/dist/core/install/file-format-detector.d.ts +52 -0
- package/packages/core/dist/core/install/file-format-detector.d.ts.map +1 -0
- package/packages/core/dist/core/install/file-format-detector.js +317 -0
- package/packages/core/dist/core/install/file-format-detector.js.map +1 -0
- package/packages/core/dist/core/install/file-updater.d.ts +7 -0
- package/packages/core/dist/core/install/file-updater.d.ts.map +1 -0
- package/packages/core/dist/core/install/file-updater.js +28 -0
- package/packages/core/dist/core/install/file-updater.js.map +1 -0
- package/packages/core/dist/core/install/flow-based-installer.d.ts +30 -0
- package/packages/core/dist/core/install/flow-based-installer.d.ts.map +1 -0
- package/packages/core/dist/core/install/flow-based-installer.js +85 -0
- package/packages/core/dist/core/install/flow-based-installer.js.map +1 -0
- package/packages/core/dist/core/install/flow-index-installer.d.ts +46 -0
- package/packages/core/dist/core/install/flow-index-installer.d.ts.map +1 -0
- package/packages/core/dist/core/install/flow-index-installer.js +319 -0
- package/packages/core/dist/core/install/flow-index-installer.js.map +1 -0
- package/packages/core/dist/core/install/format-detector.d.ts +85 -0
- package/packages/core/dist/core/install/format-detector.d.ts.map +1 -0
- package/packages/core/dist/core/install/format-detector.js +327 -0
- package/packages/core/dist/core/install/format-detector.js.map +1 -0
- package/packages/core/dist/core/install/format-distribution-analyzer.d.ts +98 -0
- package/packages/core/dist/core/install/format-distribution-analyzer.d.ts.map +1 -0
- package/packages/core/dist/core/install/format-distribution-analyzer.js +215 -0
- package/packages/core/dist/core/install/format-distribution-analyzer.js.map +1 -0
- package/packages/core/dist/core/install/format-group-merger.d.ts +66 -0
- package/packages/core/dist/core/install/format-group-merger.d.ts.map +1 -0
- package/packages/core/dist/core/install/format-group-merger.js +206 -0
- package/packages/core/dist/core/install/format-group-merger.js.map +1 -0
- package/packages/core/dist/core/install/git-package-loader.d.ts +17 -0
- package/packages/core/dist/core/install/git-package-loader.d.ts.map +1 -0
- package/packages/core/dist/core/install/git-package-loader.js +52 -0
- package/packages/core/dist/core/install/git-package-loader.js.map +1 -0
- package/packages/core/dist/core/install/handlers/index.d.ts +5 -0
- package/packages/core/dist/core/install/handlers/index.d.ts.map +1 -0
- package/packages/core/dist/core/install/handlers/index.js +6 -0
- package/packages/core/dist/core/install/handlers/index.js.map +1 -0
- package/packages/core/dist/core/install/helpers/conflict-detection.d.ts +41 -0
- package/packages/core/dist/core/install/helpers/conflict-detection.d.ts.map +1 -0
- package/packages/core/dist/core/install/helpers/conflict-detection.js +71 -0
- package/packages/core/dist/core/install/helpers/conflict-detection.js.map +1 -0
- package/packages/core/dist/core/install/helpers/file-discovery.d.ts +9 -0
- package/packages/core/dist/core/install/helpers/file-discovery.d.ts.map +1 -0
- package/packages/core/dist/core/install/helpers/file-discovery.js +63 -0
- package/packages/core/dist/core/install/helpers/file-discovery.js.map +1 -0
- package/packages/core/dist/core/install/helpers/format-detection.d.ts +42 -0
- package/packages/core/dist/core/install/helpers/format-detection.d.ts.map +1 -0
- package/packages/core/dist/core/install/helpers/format-detection.js +66 -0
- package/packages/core/dist/core/install/helpers/format-detection.js.map +1 -0
- package/packages/core/dist/core/install/helpers/index.d.ts +10 -0
- package/packages/core/dist/core/install/helpers/index.d.ts.map +1 -0
- package/packages/core/dist/core/install/helpers/index.js +14 -0
- package/packages/core/dist/core/install/helpers/index.js.map +1 -0
- package/packages/core/dist/core/install/helpers/result-aggregation.d.ts +58 -0
- package/packages/core/dist/core/install/helpers/result-aggregation.d.ts.map +1 -0
- package/packages/core/dist/core/install/helpers/result-aggregation.js +107 -0
- package/packages/core/dist/core/install/helpers/result-aggregation.js.map +1 -0
- package/packages/core/dist/core/install/helpers/result-logging.d.ts +47 -0
- package/packages/core/dist/core/install/helpers/result-logging.d.ts.map +1 -0
- package/packages/core/dist/core/install/helpers/result-logging.js +85 -0
- package/packages/core/dist/core/install/helpers/result-logging.js.map +1 -0
- package/packages/core/dist/core/install/import-flow-converter.d.ts +89 -0
- package/packages/core/dist/core/install/import-flow-converter.d.ts.map +1 -0
- package/packages/core/dist/core/install/import-flow-converter.js +436 -0
- package/packages/core/dist/core/install/import-flow-converter.js.map +1 -0
- package/packages/core/dist/core/install/index-based-installer.d.ts +35 -0
- package/packages/core/dist/core/install/index-based-installer.d.ts.map +1 -0
- package/packages/core/dist/core/install/index-based-installer.js +459 -0
- package/packages/core/dist/core/install/index-based-installer.js.map +1 -0
- package/packages/core/dist/core/install/input-classifier-base.d.ts +65 -0
- package/packages/core/dist/core/install/input-classifier-base.d.ts.map +1 -0
- package/packages/core/dist/core/install/input-classifier-base.js +173 -0
- package/packages/core/dist/core/install/input-classifier-base.js.map +1 -0
- package/packages/core/dist/core/install/install-errors.d.ts +6 -0
- package/packages/core/dist/core/install/install-errors.d.ts.map +1 -0
- package/packages/core/dist/core/install/install-errors.js +41 -0
- package/packages/core/dist/core/install/install-errors.js.map +1 -0
- package/packages/core/dist/core/install/install-helpers.d.ts +36 -0
- package/packages/core/dist/core/install/install-helpers.d.ts.map +1 -0
- package/packages/core/dist/core/install/install-helpers.js +89 -0
- package/packages/core/dist/core/install/install-helpers.js.map +1 -0
- package/packages/core/dist/core/install/install-reporting.d.ts +42 -0
- package/packages/core/dist/core/install/install-reporting.d.ts.map +1 -0
- package/packages/core/dist/core/install/install-reporting.js +182 -0
- package/packages/core/dist/core/install/install-reporting.js.map +1 -0
- package/packages/core/dist/core/install/list-handler.d.ts +18 -0
- package/packages/core/dist/core/install/list-handler.d.ts.map +1 -0
- package/packages/core/dist/core/install/list-handler.js +112 -0
- package/packages/core/dist/core/install/list-handler.js.map +1 -0
- package/packages/core/dist/core/install/local-source-resolution.d.ts +30 -0
- package/packages/core/dist/core/install/local-source-resolution.d.ts.map +1 -0
- package/packages/core/dist/core/install/local-source-resolution.js +103 -0
- package/packages/core/dist/core/install/local-source-resolution.js.map +1 -0
- package/packages/core/dist/core/install/marketplace-handler.d.ts +129 -0
- package/packages/core/dist/core/install/marketplace-handler.d.ts.map +1 -0
- package/packages/core/dist/core/install/marketplace-handler.js +631 -0
- package/packages/core/dist/core/install/marketplace-handler.js.map +1 -0
- package/packages/core/dist/core/install/operations/conflict-handler.d.ts +13 -0
- package/packages/core/dist/core/install/operations/conflict-handler.d.ts.map +1 -0
- package/packages/core/dist/core/install/operations/conflict-handler.js +73 -0
- package/packages/core/dist/core/install/operations/conflict-handler.js.map +1 -0
- package/packages/core/dist/core/install/operations/index.d.ts +8 -0
- package/packages/core/dist/core/install/operations/index.d.ts.map +1 -0
- package/packages/core/dist/core/install/operations/index.js +8 -0
- package/packages/core/dist/core/install/operations/index.js.map +1 -0
- package/packages/core/dist/core/install/operations/installation-executor.d.ts +48 -0
- package/packages/core/dist/core/install/operations/installation-executor.d.ts.map +1 -0
- package/packages/core/dist/core/install/operations/installation-executor.js +174 -0
- package/packages/core/dist/core/install/operations/installation-executor.js.map +1 -0
- package/packages/core/dist/core/install/operations/root-files.d.ts +37 -0
- package/packages/core/dist/core/install/operations/root-files.d.ts.map +1 -0
- package/packages/core/dist/core/install/operations/root-files.js +173 -0
- package/packages/core/dist/core/install/operations/root-files.js.map +1 -0
- package/packages/core/dist/core/install/orchestrator/index.d.ts +5 -0
- package/packages/core/dist/core/install/orchestrator/index.d.ts.map +1 -0
- package/packages/core/dist/core/install/orchestrator/index.js +4 -0
- package/packages/core/dist/core/install/orchestrator/index.js.map +1 -0
- package/packages/core/dist/core/install/orchestrator/orchestrator.d.ts +96 -0
- package/packages/core/dist/core/install/orchestrator/orchestrator.d.ts.map +1 -0
- package/packages/core/dist/core/install/orchestrator/orchestrator.js +684 -0
- package/packages/core/dist/core/install/orchestrator/orchestrator.js.map +1 -0
- package/packages/core/dist/core/install/orchestrator/strategies/base.d.ts +34 -0
- package/packages/core/dist/core/install/orchestrator/strategies/base.d.ts.map +1 -0
- package/packages/core/dist/core/install/orchestrator/strategies/base.js +43 -0
- package/packages/core/dist/core/install/orchestrator/strategies/base.js.map +1 -0
- package/packages/core/dist/core/install/orchestrator/strategies/bulk-strategy.d.ts +17 -0
- package/packages/core/dist/core/install/orchestrator/strategies/bulk-strategy.d.ts.map +1 -0
- package/packages/core/dist/core/install/orchestrator/strategies/bulk-strategy.js +52 -0
- package/packages/core/dist/core/install/orchestrator/strategies/bulk-strategy.js.map +1 -0
- package/packages/core/dist/core/install/orchestrator/strategies/git-strategy.d.ts +15 -0
- package/packages/core/dist/core/install/orchestrator/strategies/git-strategy.d.ts.map +1 -0
- package/packages/core/dist/core/install/orchestrator/strategies/git-strategy.js +112 -0
- package/packages/core/dist/core/install/orchestrator/strategies/git-strategy.js.map +1 -0
- package/packages/core/dist/core/install/orchestrator/strategies/index.d.ts +11 -0
- package/packages/core/dist/core/install/orchestrator/strategies/index.d.ts.map +1 -0
- package/packages/core/dist/core/install/orchestrator/strategies/index.js +21 -0
- package/packages/core/dist/core/install/orchestrator/strategies/index.js.map +1 -0
- package/packages/core/dist/core/install/orchestrator/strategies/path-strategy.d.ts +17 -0
- package/packages/core/dist/core/install/orchestrator/strategies/path-strategy.d.ts.map +1 -0
- package/packages/core/dist/core/install/orchestrator/strategies/path-strategy.js +61 -0
- package/packages/core/dist/core/install/orchestrator/strategies/path-strategy.js.map +1 -0
- package/packages/core/dist/core/install/orchestrator/strategies/registry-strategy.d.ts +17 -0
- package/packages/core/dist/core/install/orchestrator/strategies/registry-strategy.d.ts.map +1 -0
- package/packages/core/dist/core/install/orchestrator/strategies/registry-strategy.js +38 -0
- package/packages/core/dist/core/install/orchestrator/strategies/registry-strategy.js.map +1 -0
- package/packages/core/dist/core/install/orchestrator/subsumption-resolver.d.ts +75 -0
- package/packages/core/dist/core/install/orchestrator/subsumption-resolver.d.ts.map +1 -0
- package/packages/core/dist/core/install/orchestrator/subsumption-resolver.js +193 -0
- package/packages/core/dist/core/install/orchestrator/subsumption-resolver.js.map +1 -0
- package/packages/core/dist/core/install/orchestrator/types.d.ts +104 -0
- package/packages/core/dist/core/install/orchestrator/types.d.ts.map +1 -0
- package/packages/core/dist/core/install/orchestrator/types.js +2 -0
- package/packages/core/dist/core/install/orchestrator/types.js.map +1 -0
- package/packages/core/dist/core/install/package-input.d.ts +28 -0
- package/packages/core/dist/core/install/package-input.d.ts.map +1 -0
- package/packages/core/dist/core/install/package-input.js +99 -0
- package/packages/core/dist/core/install/package-input.js.map +1 -0
- package/packages/core/dist/core/install/package-installation.d.ts +13 -0
- package/packages/core/dist/core/install/package-installation.d.ts.map +1 -0
- package/packages/core/dist/core/install/package-installation.js +30 -0
- package/packages/core/dist/core/install/package-installation.js.map +1 -0
- package/packages/core/dist/core/install/package-marker-detector.d.ts +93 -0
- package/packages/core/dist/core/install/package-marker-detector.d.ts.map +1 -0
- package/packages/core/dist/core/install/package-marker-detector.js +185 -0
- package/packages/core/dist/core/install/package-marker-detector.js.map +1 -0
- package/packages/core/dist/core/install/path-package-loader.d.ts +42 -0
- package/packages/core/dist/core/install/path-package-loader.d.ts.map +1 -0
- package/packages/core/dist/core/install/path-package-loader.js +173 -0
- package/packages/core/dist/core/install/path-package-loader.js.map +1 -0
- package/packages/core/dist/core/install/platform-resolution.d.ts +15 -0
- package/packages/core/dist/core/install/platform-resolution.d.ts.map +1 -0
- package/packages/core/dist/core/install/platform-resolution.js +31 -0
- package/packages/core/dist/core/install/platform-resolution.js.map +1 -0
- package/packages/core/dist/core/install/plugin-detector.d.ts +46 -0
- package/packages/core/dist/core/install/plugin-detector.d.ts.map +1 -0
- package/packages/core/dist/core/install/plugin-detector.js +126 -0
- package/packages/core/dist/core/install/plugin-detector.js.map +1 -0
- package/packages/core/dist/core/install/plugin-metadata-resolver.d.ts +62 -0
- package/packages/core/dist/core/install/plugin-metadata-resolver.d.ts.map +1 -0
- package/packages/core/dist/core/install/plugin-metadata-resolver.js +125 -0
- package/packages/core/dist/core/install/plugin-metadata-resolver.js.map +1 -0
- package/packages/core/dist/core/install/plugin-sources.d.ts +59 -0
- package/packages/core/dist/core/install/plugin-sources.d.ts.map +1 -0
- package/packages/core/dist/core/install/plugin-sources.js +122 -0
- package/packages/core/dist/core/install/plugin-sources.js.map +1 -0
- package/packages/core/dist/core/install/plugin-transformer.d.ts +29 -0
- package/packages/core/dist/core/install/plugin-transformer.d.ts.map +1 -0
- package/packages/core/dist/core/install/plugin-transformer.js +159 -0
- package/packages/core/dist/core/install/plugin-transformer.js.map +1 -0
- package/packages/core/dist/core/install/preprocessing/base-resolver.d.ts +61 -0
- package/packages/core/dist/core/install/preprocessing/base-resolver.d.ts.map +1 -0
- package/packages/core/dist/core/install/preprocessing/base-resolver.js +135 -0
- package/packages/core/dist/core/install/preprocessing/base-resolver.js.map +1 -0
- package/packages/core/dist/core/install/preprocessing/convenience-preprocessor.d.ts +11 -0
- package/packages/core/dist/core/install/preprocessing/convenience-preprocessor.d.ts.map +1 -0
- package/packages/core/dist/core/install/preprocessing/convenience-preprocessor.js +22 -0
- package/packages/core/dist/core/install/preprocessing/convenience-preprocessor.js.map +1 -0
- package/packages/core/dist/core/install/preprocessing/index.d.ts +6 -0
- package/packages/core/dist/core/install/preprocessing/index.d.ts.map +1 -0
- package/packages/core/dist/core/install/preprocessing/index.js +5 -0
- package/packages/core/dist/core/install/preprocessing/index.js.map +1 -0
- package/packages/core/dist/core/install/preprocessing/input-classifier.d.ts +21 -0
- package/packages/core/dist/core/install/preprocessing/input-classifier.d.ts.map +1 -0
- package/packages/core/dist/core/install/preprocessing/input-classifier.js +66 -0
- package/packages/core/dist/core/install/preprocessing/input-classifier.js.map +1 -0
- package/packages/core/dist/core/install/preprocessing/options-normalizer.d.ts +19 -0
- package/packages/core/dist/core/install/preprocessing/options-normalizer.d.ts.map +1 -0
- package/packages/core/dist/core/install/preprocessing/options-normalizer.js +41 -0
- package/packages/core/dist/core/install/preprocessing/options-normalizer.js.map +1 -0
- package/packages/core/dist/core/install/remote-flow.d.ts +38 -0
- package/packages/core/dist/core/install/remote-flow.d.ts.map +1 -0
- package/packages/core/dist/core/install/remote-flow.js +180 -0
- package/packages/core/dist/core/install/remote-flow.js.map +1 -0
- package/packages/core/dist/core/install/remote-reporting.d.ts +11 -0
- package/packages/core/dist/core/install/remote-reporting.d.ts.map +1 -0
- package/packages/core/dist/core/install/remote-reporting.js +63 -0
- package/packages/core/dist/core/install/remote-reporting.js.map +1 -0
- package/packages/core/dist/core/install/resolution/content-root-cache.d.ts +32 -0
- package/packages/core/dist/core/install/resolution/content-root-cache.d.ts.map +1 -0
- package/packages/core/dist/core/install/resolution/content-root-cache.js +87 -0
- package/packages/core/dist/core/install/resolution/content-root-cache.js.map +1 -0
- package/packages/core/dist/core/install/resolution/executor.d.ts +23 -0
- package/packages/core/dist/core/install/resolution/executor.d.ts.map +1 -0
- package/packages/core/dist/core/install/resolution/executor.js +187 -0
- package/packages/core/dist/core/install/resolution/executor.js.map +1 -0
- package/packages/core/dist/core/install/resolution/graph-builder.d.ts +31 -0
- package/packages/core/dist/core/install/resolution/graph-builder.d.ts.map +1 -0
- package/packages/core/dist/core/install/resolution/graph-builder.js +299 -0
- package/packages/core/dist/core/install/resolution/graph-builder.js.map +1 -0
- package/packages/core/dist/core/install/resolution/id-generator.d.ts +19 -0
- package/packages/core/dist/core/install/resolution/id-generator.d.ts.map +1 -0
- package/packages/core/dist/core/install/resolution/id-generator.js +70 -0
- package/packages/core/dist/core/install/resolution/id-generator.js.map +1 -0
- package/packages/core/dist/core/install/resolution/index.d.ts +15 -0
- package/packages/core/dist/core/install/resolution/index.d.ts.map +1 -0
- package/packages/core/dist/core/install/resolution/index.js +13 -0
- package/packages/core/dist/core/install/resolution/index.js.map +1 -0
- package/packages/core/dist/core/install/resolution/installation-planner.d.ts +23 -0
- package/packages/core/dist/core/install/resolution/installation-planner.d.ts.map +1 -0
- package/packages/core/dist/core/install/resolution/installation-planner.js +158 -0
- package/packages/core/dist/core/install/resolution/installation-planner.js.map +1 -0
- package/packages/core/dist/core/install/resolution/manifest-reader.d.ts +34 -0
- package/packages/core/dist/core/install/resolution/manifest-reader.d.ts.map +1 -0
- package/packages/core/dist/core/install/resolution/manifest-reader.js +112 -0
- package/packages/core/dist/core/install/resolution/manifest-reader.js.map +1 -0
- package/packages/core/dist/core/install/resolution/package-loader.d.ts +22 -0
- package/packages/core/dist/core/install/resolution/package-loader.d.ts.map +1 -0
- package/packages/core/dist/core/install/resolution/package-loader.js +176 -0
- package/packages/core/dist/core/install/resolution/package-loader.js.map +1 -0
- package/packages/core/dist/core/install/resolution/types.d.ts +290 -0
- package/packages/core/dist/core/install/resolution/types.d.ts.map +1 -0
- package/packages/core/dist/core/install/resolution/types.js +6 -0
- package/packages/core/dist/core/install/resolution/types.js.map +1 -0
- package/packages/core/dist/core/install/resolution/version-solver.d.ts +43 -0
- package/packages/core/dist/core/install/resolution/version-solver.d.ts.map +1 -0
- package/packages/core/dist/core/install/resolution/version-solver.js +166 -0
- package/packages/core/dist/core/install/resolution/version-solver.js.map +1 -0
- package/packages/core/dist/core/install/resource-discoverer.d.ts +21 -0
- package/packages/core/dist/core/install/resource-discoverer.d.ts.map +1 -0
- package/packages/core/dist/core/install/resource-discoverer.js +233 -0
- package/packages/core/dist/core/install/resource-discoverer.js.map +1 -0
- package/packages/core/dist/core/install/resource-selection-menu.d.ts +25 -0
- package/packages/core/dist/core/install/resource-selection-menu.d.ts.map +1 -0
- package/packages/core/dist/core/install/resource-selection-menu.js +250 -0
- package/packages/core/dist/core/install/resource-selection-menu.js.map +1 -0
- package/packages/core/dist/core/install/resource-types.d.ts +62 -0
- package/packages/core/dist/core/install/resource-types.d.ts.map +1 -0
- package/packages/core/dist/core/install/resource-types.js +5 -0
- package/packages/core/dist/core/install/resource-types.js.map +1 -0
- package/packages/core/dist/core/install/schema-registry.d.ts +69 -0
- package/packages/core/dist/core/install/schema-registry.d.ts.map +1 -0
- package/packages/core/dist/core/install/schema-registry.js +219 -0
- package/packages/core/dist/core/install/schema-registry.js.map +1 -0
- package/packages/core/dist/core/install/sources/base.d.ts +77 -0
- package/packages/core/dist/core/install/sources/base.d.ts.map +1 -0
- package/packages/core/dist/core/install/sources/base.js +12 -0
- package/packages/core/dist/core/install/sources/base.js.map +1 -0
- package/packages/core/dist/core/install/sources/git-source.d.ts +11 -0
- package/packages/core/dist/core/install/sources/git-source.d.ts.map +1 -0
- package/packages/core/dist/core/install/sources/git-source.js +132 -0
- package/packages/core/dist/core/install/sources/git-source.js.map +1 -0
- package/packages/core/dist/core/install/sources/loader-factory.d.ts +7 -0
- package/packages/core/dist/core/install/sources/loader-factory.d.ts.map +1 -0
- package/packages/core/dist/core/install/sources/loader-factory.js +24 -0
- package/packages/core/dist/core/install/sources/loader-factory.js.map +1 -0
- package/packages/core/dist/core/install/sources/path-source.d.ts +11 -0
- package/packages/core/dist/core/install/sources/path-source.d.ts.map +1 -0
- package/packages/core/dist/core/install/sources/path-source.js +124 -0
- package/packages/core/dist/core/install/sources/path-source.js.map +1 -0
- package/packages/core/dist/core/install/sources/registry-source.d.ts +11 -0
- package/packages/core/dist/core/install/sources/registry-source.d.ts.map +1 -0
- package/packages/core/dist/core/install/sources/registry-source.js +85 -0
- package/packages/core/dist/core/install/sources/registry-source.js.map +1 -0
- package/packages/core/dist/core/install/sources/workspace-source.d.ts +11 -0
- package/packages/core/dist/core/install/sources/workspace-source.d.ts.map +1 -0
- package/packages/core/dist/core/install/sources/workspace-source.js +78 -0
- package/packages/core/dist/core/install/sources/workspace-source.js.map +1 -0
- package/packages/core/dist/core/install/strategies/base-strategy.d.ts +56 -0
- package/packages/core/dist/core/install/strategies/base-strategy.d.ts.map +1 -0
- package/packages/core/dist/core/install/strategies/base-strategy.js +128 -0
- package/packages/core/dist/core/install/strategies/base-strategy.js.map +1 -0
- package/packages/core/dist/core/install/strategies/conversion-strategy.d.ts +43 -0
- package/packages/core/dist/core/install/strategies/conversion-strategy.d.ts.map +1 -0
- package/packages/core/dist/core/install/strategies/conversion-strategy.js +146 -0
- package/packages/core/dist/core/install/strategies/conversion-strategy.js.map +1 -0
- package/packages/core/dist/core/install/strategies/flow-based-strategy.d.ts +50 -0
- package/packages/core/dist/core/install/strategies/flow-based-strategy.d.ts.map +1 -0
- package/packages/core/dist/core/install/strategies/flow-based-strategy.js +326 -0
- package/packages/core/dist/core/install/strategies/flow-based-strategy.js.map +1 -0
- package/packages/core/dist/core/install/strategies/helpers/flow-helpers.d.ts +12 -0
- package/packages/core/dist/core/install/strategies/helpers/flow-helpers.d.ts.map +1 -0
- package/packages/core/dist/core/install/strategies/helpers/flow-helpers.js +22 -0
- package/packages/core/dist/core/install/strategies/helpers/flow-helpers.js.map +1 -0
- package/packages/core/dist/core/install/strategies/helpers/platform-filtering.d.ts +21 -0
- package/packages/core/dist/core/install/strategies/helpers/platform-filtering.d.ts.map +1 -0
- package/packages/core/dist/core/install/strategies/helpers/platform-filtering.js +53 -0
- package/packages/core/dist/core/install/strategies/helpers/platform-filtering.js.map +1 -0
- package/packages/core/dist/core/install/strategies/helpers/result-converter.d.ts +22 -0
- package/packages/core/dist/core/install/strategies/helpers/result-converter.d.ts.map +1 -0
- package/packages/core/dist/core/install/strategies/helpers/result-converter.js +60 -0
- package/packages/core/dist/core/install/strategies/helpers/result-converter.js.map +1 -0
- package/packages/core/dist/core/install/strategies/helpers/temp-directory.d.ts +45 -0
- package/packages/core/dist/core/install/strategies/helpers/temp-directory.d.ts.map +1 -0
- package/packages/core/dist/core/install/strategies/helpers/temp-directory.js +77 -0
- package/packages/core/dist/core/install/strategies/helpers/temp-directory.js.map +1 -0
- package/packages/core/dist/core/install/strategies/index.d.ts +16 -0
- package/packages/core/dist/core/install/strategies/index.d.ts.map +1 -0
- package/packages/core/dist/core/install/strategies/index.js +18 -0
- package/packages/core/dist/core/install/strategies/index.js.map +1 -0
- package/packages/core/dist/core/install/strategies/strategy-selector.d.ts +20 -0
- package/packages/core/dist/core/install/strategies/strategy-selector.d.ts.map +1 -0
- package/packages/core/dist/core/install/strategies/strategy-selector.js +34 -0
- package/packages/core/dist/core/install/strategies/strategy-selector.js.map +1 -0
- package/packages/core/dist/core/install/strategies/types.d.ts +89 -0
- package/packages/core/dist/core/install/strategies/types.d.ts.map +1 -0
- package/packages/core/dist/core/install/strategies/types.js +7 -0
- package/packages/core/dist/core/install/strategies/types.js.map +1 -0
- package/packages/core/dist/core/install/types.d.ts +12 -0
- package/packages/core/dist/core/install/types.d.ts.map +1 -0
- package/packages/core/dist/core/install/types.js +5 -0
- package/packages/core/dist/core/install/types.js.map +1 -0
- package/packages/core/dist/core/install/unified/context-builders.d.ts +52 -0
- package/packages/core/dist/core/install/unified/context-builders.d.ts.map +1 -0
- package/packages/core/dist/core/install/unified/context-builders.js +396 -0
- package/packages/core/dist/core/install/unified/context-builders.js.map +1 -0
- package/packages/core/dist/core/install/unified/context-helpers.d.ts +22 -0
- package/packages/core/dist/core/install/unified/context-helpers.d.ts.map +1 -0
- package/packages/core/dist/core/install/unified/context-helpers.js +80 -0
- package/packages/core/dist/core/install/unified/context-helpers.js.map +1 -0
- package/packages/core/dist/core/install/unified/context.d.ts +124 -0
- package/packages/core/dist/core/install/unified/context.d.ts.map +1 -0
- package/packages/core/dist/core/install/unified/context.js +2 -0
- package/packages/core/dist/core/install/unified/context.js.map +1 -0
- package/packages/core/dist/core/install/unified/index.d.ts +12 -0
- package/packages/core/dist/core/install/unified/index.d.ts.map +1 -0
- package/packages/core/dist/core/install/unified/index.js +13 -0
- package/packages/core/dist/core/install/unified/index.js.map +1 -0
- package/packages/core/dist/core/install/unified/multi-context-pipeline.d.ts +10 -0
- package/packages/core/dist/core/install/unified/multi-context-pipeline.d.ts.map +1 -0
- package/packages/core/dist/core/install/unified/multi-context-pipeline.js +86 -0
- package/packages/core/dist/core/install/unified/multi-context-pipeline.js.map +1 -0
- package/packages/core/dist/core/install/unified/phases/conflicts.d.ts +7 -0
- package/packages/core/dist/core/install/unified/phases/conflicts.d.ts.map +1 -0
- package/packages/core/dist/core/install/unified/phases/conflicts.js +17 -0
- package/packages/core/dist/core/install/unified/phases/conflicts.js.map +1 -0
- package/packages/core/dist/core/install/unified/phases/convert.d.ts +22 -0
- package/packages/core/dist/core/install/unified/phases/convert.d.ts.map +1 -0
- package/packages/core/dist/core/install/unified/phases/convert.js +228 -0
- package/packages/core/dist/core/install/unified/phases/convert.js.map +1 -0
- package/packages/core/dist/core/install/unified/phases/execute.d.ts +26 -0
- package/packages/core/dist/core/install/unified/phases/execute.d.ts.map +1 -0
- package/packages/core/dist/core/install/unified/phases/execute.js +82 -0
- package/packages/core/dist/core/install/unified/phases/execute.js.map +1 -0
- package/packages/core/dist/core/install/unified/phases/load-package.d.ts +11 -0
- package/packages/core/dist/core/install/unified/phases/load-package.d.ts.map +1 -0
- package/packages/core/dist/core/install/unified/phases/load-package.js +121 -0
- package/packages/core/dist/core/install/unified/phases/load-package.js.map +1 -0
- package/packages/core/dist/core/install/unified/phases/manifest.d.ts +6 -0
- package/packages/core/dist/core/install/unified/phases/manifest.d.ts.map +1 -0
- package/packages/core/dist/core/install/unified/phases/manifest.js +73 -0
- package/packages/core/dist/core/install/unified/phases/manifest.js.map +1 -0
- package/packages/core/dist/core/install/unified/phases/report.d.ts +11 -0
- package/packages/core/dist/core/install/unified/phases/report.d.ts.map +1 -0
- package/packages/core/dist/core/install/unified/phases/report.js +62 -0
- package/packages/core/dist/core/install/unified/phases/report.js.map +1 -0
- package/packages/core/dist/core/install/unified/phases/resolve-dependencies.d.ts +6 -0
- package/packages/core/dist/core/install/unified/phases/resolve-dependencies.d.ts.map +1 -0
- package/packages/core/dist/core/install/unified/phases/resolve-dependencies.js +122 -0
- package/packages/core/dist/core/install/unified/phases/resolve-dependencies.js.map +1 -0
- package/packages/core/dist/core/install/unified/pipeline.d.ts +13 -0
- package/packages/core/dist/core/install/unified/pipeline.d.ts.map +1 -0
- package/packages/core/dist/core/install/unified/pipeline.js +114 -0
- package/packages/core/dist/core/install/unified/pipeline.js.map +1 -0
- package/packages/core/dist/core/install/validators/index.d.ts +3 -0
- package/packages/core/dist/core/install/validators/index.d.ts.map +1 -0
- package/packages/core/dist/core/install/validators/index.js +3 -0
- package/packages/core/dist/core/install/validators/index.js.map +1 -0
- package/packages/core/dist/core/install/validators/options-validator.d.ts +16 -0
- package/packages/core/dist/core/install/validators/options-validator.d.ts.map +1 -0
- package/packages/core/dist/core/install/validators/options-validator.js +28 -0
- package/packages/core/dist/core/install/validators/options-validator.js.map +1 -0
- package/packages/core/dist/core/install/validators/target-validator.d.ts +6 -0
- package/packages/core/dist/core/install/validators/target-validator.d.ts.map +1 -0
- package/packages/core/dist/core/install/validators/target-validator.js +19 -0
- package/packages/core/dist/core/install/validators/target-validator.js.map +1 -0
- package/packages/core/dist/core/install/version-selection.d.ts +51 -0
- package/packages/core/dist/core/install/version-selection.d.ts.map +1 -0
- package/packages/core/dist/core/install/version-selection.js +272 -0
- package/packages/core/dist/core/install/version-selection.js.map +1 -0
- package/packages/core/dist/core/interaction-policy.d.ts +40 -0
- package/packages/core/dist/core/interaction-policy.d.ts.map +1 -0
- package/packages/core/dist/core/interaction-policy.js +60 -0
- package/packages/core/dist/core/interaction-policy.js.map +1 -0
- package/packages/core/dist/core/list/list-pipeline.d.ts +80 -0
- package/packages/core/dist/core/list/list-pipeline.d.ts.map +1 -0
- package/packages/core/dist/core/list/list-pipeline.js +550 -0
- package/packages/core/dist/core/list/list-pipeline.js.map +1 -0
- package/packages/core/dist/core/list/list-printers.d.ts +16 -0
- package/packages/core/dist/core/list/list-printers.d.ts.map +1 -0
- package/packages/core/dist/core/list/list-printers.js +191 -0
- package/packages/core/dist/core/list/list-printers.js.map +1 -0
- package/packages/core/dist/core/list/list-tree-renderer.d.ts +95 -0
- package/packages/core/dist/core/list/list-tree-renderer.d.ts.map +1 -0
- package/packages/core/dist/core/list/list-tree-renderer.js +147 -0
- package/packages/core/dist/core/list/list-tree-renderer.js.map +1 -0
- package/packages/core/dist/core/list/remote-list-resolver.d.ts +22 -0
- package/packages/core/dist/core/list/remote-list-resolver.d.ts.map +1 -0
- package/packages/core/dist/core/list/remote-list-resolver.js +219 -0
- package/packages/core/dist/core/list/remote-list-resolver.js.map +1 -0
- package/packages/core/dist/core/list/scope-data-collector.d.ts +59 -0
- package/packages/core/dist/core/list/scope-data-collector.d.ts.map +1 -0
- package/packages/core/dist/core/list/scope-data-collector.js +307 -0
- package/packages/core/dist/core/list/scope-data-collector.js.map +1 -0
- package/packages/core/dist/core/list/untracked-files-scanner.d.ts +62 -0
- package/packages/core/dist/core/list/untracked-files-scanner.d.ts.map +1 -0
- package/packages/core/dist/core/list/untracked-files-scanner.js +471 -0
- package/packages/core/dist/core/list/untracked-files-scanner.js.map +1 -0
- package/packages/core/dist/core/list/view-metadata.d.ts +12 -0
- package/packages/core/dist/core/list/view-metadata.d.ts.map +1 -0
- package/packages/core/dist/core/list/view-metadata.js +31 -0
- package/packages/core/dist/core/list/view-metadata.js.map +1 -0
- package/packages/core/dist/core/markdown-frontmatter.d.ts +54 -0
- package/packages/core/dist/core/markdown-frontmatter.d.ts.map +1 -0
- package/packages/core/dist/core/markdown-frontmatter.js +224 -0
- package/packages/core/dist/core/markdown-frontmatter.js.map +1 -0
- package/packages/core/dist/core/openpackage.d.ts +46 -0
- package/packages/core/dist/core/openpackage.d.ts.map +1 -0
- package/packages/core/dist/core/openpackage.js +303 -0
- package/packages/core/dist/core/openpackage.js.map +1 -0
- package/packages/core/dist/core/package-context.d.ts +99 -0
- package/packages/core/dist/core/package-context.d.ts.map +1 -0
- package/packages/core/dist/core/package-context.js +220 -0
- package/packages/core/dist/core/package-context.js.map +1 -0
- package/packages/core/dist/core/package-creation.d.ts +45 -0
- package/packages/core/dist/core/package-creation.d.ts.map +1 -0
- package/packages/core/dist/core/package-creation.js +160 -0
- package/packages/core/dist/core/package-creation.js.map +1 -0
- package/packages/core/dist/core/package-management.d.ts +70 -0
- package/packages/core/dist/core/package-management.d.ts.map +1 -0
- package/packages/core/dist/core/package-management.js +416 -0
- package/packages/core/dist/core/package-management.js.map +1 -0
- package/packages/core/dist/core/package-name-resolution.d.ts +110 -0
- package/packages/core/dist/core/package-name-resolution.d.ts.map +1 -0
- package/packages/core/dist/core/package-name-resolution.js +327 -0
- package/packages/core/dist/core/package-name-resolution.js.map +1 -0
- package/packages/core/dist/core/package-versioning.d.ts +37 -0
- package/packages/core/dist/core/package-versioning.d.ts.map +1 -0
- package/packages/core/dist/core/package-versioning.js +107 -0
- package/packages/core/dist/core/package-versioning.js.map +1 -0
- package/packages/core/dist/core/package.d.ts +50 -0
- package/packages/core/dist/core/package.d.ts.map +1 -0
- package/packages/core/dist/core/package.js +243 -0
- package/packages/core/dist/core/package.js.map +1 -0
- package/packages/core/dist/core/platform/directory-preservation.d.ts +52 -0
- package/packages/core/dist/core/platform/directory-preservation.d.ts.map +1 -0
- package/packages/core/dist/core/platform/directory-preservation.js +101 -0
- package/packages/core/dist/core/platform/directory-preservation.js.map +1 -0
- package/packages/core/dist/core/platform/platform-file.d.ts +42 -0
- package/packages/core/dist/core/platform/platform-file.d.ts.map +1 -0
- package/packages/core/dist/core/platform/platform-file.js +133 -0
- package/packages/core/dist/core/platform/platform-file.js.map +1 -0
- package/packages/core/dist/core/platform/platform-mapper.d.ts +74 -0
- package/packages/core/dist/core/platform/platform-mapper.d.ts.map +1 -0
- package/packages/core/dist/core/platform/platform-mapper.js +541 -0
- package/packages/core/dist/core/platform/platform-mapper.js.map +1 -0
- package/packages/core/dist/core/platform/platform-root-files.d.ts +25 -0
- package/packages/core/dist/core/platform/platform-root-files.d.ts.map +1 -0
- package/packages/core/dist/core/platform/platform-root-files.js +44 -0
- package/packages/core/dist/core/platform/platform-root-files.js.map +1 -0
- package/packages/core/dist/core/platform/platform-specific-paths.d.ts +20 -0
- package/packages/core/dist/core/platform/platform-specific-paths.d.ts.map +1 -0
- package/packages/core/dist/core/platform/platform-specific-paths.js +81 -0
- package/packages/core/dist/core/platform/platform-specific-paths.js.map +1 -0
- package/packages/core/dist/core/platform/platform-utils.d.ts +23 -0
- package/packages/core/dist/core/platform/platform-utils.d.ts.map +1 -0
- package/packages/core/dist/core/platform/platform-utils.js +65 -0
- package/packages/core/dist/core/platform/platform-utils.js.map +1 -0
- package/packages/core/dist/core/platform/registry-entry-filter.d.ts +29 -0
- package/packages/core/dist/core/platform/registry-entry-filter.d.ts.map +1 -0
- package/packages/core/dist/core/platform/registry-entry-filter.js +91 -0
- package/packages/core/dist/core/platform/registry-entry-filter.js.map +1 -0
- package/packages/core/dist/core/platform/root-file-uninstaller.d.ts +15 -0
- package/packages/core/dist/core/platform/root-file-uninstaller.d.ts.map +1 -0
- package/packages/core/dist/core/platform/root-file-uninstaller.js +74 -0
- package/packages/core/dist/core/platform/root-file-uninstaller.js.map +1 -0
- package/packages/core/dist/core/platform-yaml-merge.d.ts +9 -0
- package/packages/core/dist/core/platform-yaml-merge.d.ts.map +1 -0
- package/packages/core/dist/core/platform-yaml-merge.js +35 -0
- package/packages/core/dist/core/platform-yaml-merge.js.map +1 -0
- package/packages/core/dist/core/platforms.d.ts +197 -0
- package/packages/core/dist/core/platforms.d.ts.map +1 -0
- package/packages/core/dist/core/platforms.js +939 -0
- package/packages/core/dist/core/platforms.js.map +1 -0
- package/packages/core/dist/core/ports/console-output.d.ts +10 -0
- package/packages/core/dist/core/ports/console-output.d.ts.map +1 -0
- package/packages/core/dist/core/ports/console-output.js +64 -0
- package/packages/core/dist/core/ports/console-output.js.map +1 -0
- package/packages/core/dist/core/ports/console-progress.d.ts +21 -0
- package/packages/core/dist/core/ports/console-progress.d.ts.map +1 -0
- package/packages/core/dist/core/ports/console-progress.js +101 -0
- package/packages/core/dist/core/ports/console-progress.js.map +1 -0
- package/packages/core/dist/core/ports/console-prompt.d.ts +13 -0
- package/packages/core/dist/core/ports/console-prompt.d.ts.map +1 -0
- package/packages/core/dist/core/ports/console-prompt.js +32 -0
- package/packages/core/dist/core/ports/console-prompt.js.map +1 -0
- package/packages/core/dist/core/ports/index.d.ts +15 -0
- package/packages/core/dist/core/ports/index.d.ts.map +1 -0
- package/packages/core/dist/core/ports/index.js +12 -0
- package/packages/core/dist/core/ports/index.js.map +1 -0
- package/packages/core/dist/core/ports/output.d.ts +50 -0
- package/packages/core/dist/core/ports/output.d.ts.map +1 -0
- package/packages/core/dist/core/ports/output.js +13 -0
- package/packages/core/dist/core/ports/output.js.map +1 -0
- package/packages/core/dist/core/ports/progress.d.ts +131 -0
- package/packages/core/dist/core/ports/progress.d.ts.map +1 -0
- package/packages/core/dist/core/ports/progress.js +19 -0
- package/packages/core/dist/core/ports/progress.js.map +1 -0
- package/packages/core/dist/core/ports/prompt.d.ts +64 -0
- package/packages/core/dist/core/ports/prompt.d.ts.map +1 -0
- package/packages/core/dist/core/ports/prompt.js +14 -0
- package/packages/core/dist/core/ports/prompt.js.map +1 -0
- package/packages/core/dist/core/ports/resolve.d.ts +50 -0
- package/packages/core/dist/core/ports/resolve.d.ts.map +1 -0
- package/packages/core/dist/core/ports/resolve.js +64 -0
- package/packages/core/dist/core/ports/resolve.js.map +1 -0
- package/packages/core/dist/core/profiles.d.ts +54 -0
- package/packages/core/dist/core/profiles.d.ts.map +1 -0
- package/packages/core/dist/core/profiles.js +230 -0
- package/packages/core/dist/core/profiles.js.map +1 -0
- package/packages/core/dist/core/publish/local-publish-pipeline.d.ts +17 -0
- package/packages/core/dist/core/publish/local-publish-pipeline.d.ts.map +1 -0
- package/packages/core/dist/core/publish/local-publish-pipeline.js +162 -0
- package/packages/core/dist/core/publish/local-publish-pipeline.js.map +1 -0
- package/packages/core/dist/core/publish/publish-errors.d.ts +8 -0
- package/packages/core/dist/core/publish/publish-errors.d.ts.map +1 -0
- package/packages/core/dist/core/publish/publish-errors.js +57 -0
- package/packages/core/dist/core/publish/publish-errors.js.map +1 -0
- package/packages/core/dist/core/publish/publish-output.d.ts +29 -0
- package/packages/core/dist/core/publish/publish-output.d.ts.map +1 -0
- package/packages/core/dist/core/publish/publish-output.js +62 -0
- package/packages/core/dist/core/publish/publish-output.js.map +1 -0
- package/packages/core/dist/core/publish/publish-pipeline.d.ts +7 -0
- package/packages/core/dist/core/publish/publish-pipeline.d.ts.map +1 -0
- package/packages/core/dist/core/publish/publish-pipeline.js +238 -0
- package/packages/core/dist/core/publish/publish-pipeline.js.map +1 -0
- package/packages/core/dist/core/publish/publish-types.d.ts +18 -0
- package/packages/core/dist/core/publish/publish-types.d.ts.map +1 -0
- package/packages/core/dist/core/publish/publish-types.js +2 -0
- package/packages/core/dist/core/publish/publish-types.js.map +1 -0
- package/packages/core/dist/core/publish/publish-upload.d.ts +9 -0
- package/packages/core/dist/core/publish/publish-upload.d.ts.map +1 -0
- package/packages/core/dist/core/publish/publish-upload.js +51 -0
- package/packages/core/dist/core/publish/publish-upload.js.map +1 -0
- package/packages/core/dist/core/registry-writer.d.ts +22 -0
- package/packages/core/dist/core/registry-writer.d.ts.map +1 -0
- package/packages/core/dist/core/registry-writer.js +93 -0
- package/packages/core/dist/core/registry-writer.js.map +1 -0
- package/packages/core/dist/core/remote-pull.d.ts +93 -0
- package/packages/core/dist/core/remote-pull.d.ts.map +1 -0
- package/packages/core/dist/core/remote-pull.js +514 -0
- package/packages/core/dist/core/remote-pull.js.map +1 -0
- package/packages/core/dist/core/remove/removal-collector.d.ts +13 -0
- package/packages/core/dist/core/remove/removal-collector.d.ts.map +1 -0
- package/packages/core/dist/core/remove/removal-collector.js +52 -0
- package/packages/core/dist/core/remove/removal-collector.js.map +1 -0
- package/packages/core/dist/core/remove/removal-confirmation.d.ts +26 -0
- package/packages/core/dist/core/remove/removal-confirmation.d.ts.map +1 -0
- package/packages/core/dist/core/remove/removal-confirmation.js +30 -0
- package/packages/core/dist/core/remove/removal-confirmation.js.map +1 -0
- package/packages/core/dist/core/remove/remove-dependency-flow.d.ts +18 -0
- package/packages/core/dist/core/remove/remove-dependency-flow.d.ts.map +1 -0
- package/packages/core/dist/core/remove/remove-dependency-flow.js +23 -0
- package/packages/core/dist/core/remove/remove-dependency-flow.js.map +1 -0
- package/packages/core/dist/core/remove/remove-from-source-pipeline.d.ts +32 -0
- package/packages/core/dist/core/remove/remove-from-source-pipeline.d.ts.map +1 -0
- package/packages/core/dist/core/remove/remove-from-source-pipeline.js +260 -0
- package/packages/core/dist/core/remove/remove-from-source-pipeline.js.map +1 -0
- package/packages/core/dist/core/remove/remove-input-classifier.d.ts +22 -0
- package/packages/core/dist/core/remove/remove-input-classifier.d.ts.map +1 -0
- package/packages/core/dist/core/remove/remove-input-classifier.js +53 -0
- package/packages/core/dist/core/remove/remove-input-classifier.js.map +1 -0
- package/packages/core/dist/core/resources/disambiguation-prompt.d.ts +38 -0
- package/packages/core/dist/core/resources/disambiguation-prompt.d.ts.map +1 -0
- package/packages/core/dist/core/resources/disambiguation-prompt.js +60 -0
- package/packages/core/dist/core/resources/disambiguation-prompt.js.map +1 -0
- package/packages/core/dist/core/resources/installed-resources.d.ts +4 -0
- package/packages/core/dist/core/resources/installed-resources.d.ts.map +1 -0
- package/packages/core/dist/core/resources/installed-resources.js +35 -0
- package/packages/core/dist/core/resources/installed-resources.js.map +1 -0
- package/packages/core/dist/core/resources/markdown-metadata.d.ts +7 -0
- package/packages/core/dist/core/resources/markdown-metadata.d.ts.map +1 -0
- package/packages/core/dist/core/resources/markdown-metadata.js +24 -0
- package/packages/core/dist/core/resources/markdown-metadata.js.map +1 -0
- package/packages/core/dist/core/resources/resource-builder.d.ts +52 -0
- package/packages/core/dist/core/resources/resource-builder.d.ts.map +1 -0
- package/packages/core/dist/core/resources/resource-builder.js +140 -0
- package/packages/core/dist/core/resources/resource-builder.js.map +1 -0
- package/packages/core/dist/core/resources/resource-catalog.d.ts +26 -0
- package/packages/core/dist/core/resources/resource-catalog.d.ts.map +1 -0
- package/packages/core/dist/core/resources/resource-catalog.js +20 -0
- package/packages/core/dist/core/resources/resource-catalog.js.map +1 -0
- package/packages/core/dist/core/resources/resource-namespace.d.ts +25 -0
- package/packages/core/dist/core/resources/resource-namespace.d.ts.map +1 -0
- package/packages/core/dist/core/resources/resource-namespace.js +84 -0
- package/packages/core/dist/core/resources/resource-namespace.js.map +1 -0
- package/packages/core/dist/core/resources/resource-naming.d.ts +11 -0
- package/packages/core/dist/core/resources/resource-naming.d.ts.map +1 -0
- package/packages/core/dist/core/resources/resource-naming.js +29 -0
- package/packages/core/dist/core/resources/resource-naming.js.map +1 -0
- package/packages/core/dist/core/resources/resource-registry.d.ts +14 -0
- package/packages/core/dist/core/resources/resource-registry.d.ts.map +1 -0
- package/packages/core/dist/core/resources/resource-registry.js +43 -0
- package/packages/core/dist/core/resources/resource-registry.js.map +1 -0
- package/packages/core/dist/core/resources/resource-resolver.d.ts +42 -0
- package/packages/core/dist/core/resources/resource-resolver.d.ts.map +1 -0
- package/packages/core/dist/core/resources/resource-resolver.js +67 -0
- package/packages/core/dist/core/resources/resource-resolver.js.map +1 -0
- package/packages/core/dist/core/resources/scope-traversal.d.ts +37 -0
- package/packages/core/dist/core/resources/scope-traversal.d.ts.map +1 -0
- package/packages/core/dist/core/resources/scope-traversal.js +52 -0
- package/packages/core/dist/core/resources/scope-traversal.js.map +1 -0
- package/packages/core/dist/core/resources/source-key-classifier.d.ts +6 -0
- package/packages/core/dist/core/resources/source-key-classifier.d.ts.map +1 -0
- package/packages/core/dist/core/resources/source-key-classifier.js +22 -0
- package/packages/core/dist/core/resources/source-key-classifier.js.map +1 -0
- package/packages/core/dist/core/save/save-candidate-builder.d.ts +57 -0
- package/packages/core/dist/core/save/save-candidate-builder.d.ts.map +1 -0
- package/packages/core/dist/core/save/save-candidate-builder.js +293 -0
- package/packages/core/dist/core/save/save-candidate-builder.js.map +1 -0
- package/packages/core/dist/core/save/save-conflict-analyzer.d.ts +120 -0
- package/packages/core/dist/core/save/save-conflict-analyzer.d.ts.map +1 -0
- package/packages/core/dist/core/save/save-conflict-analyzer.js +305 -0
- package/packages/core/dist/core/save/save-conflict-analyzer.js.map +1 -0
- package/packages/core/dist/core/save/save-conversion-helper.d.ts +84 -0
- package/packages/core/dist/core/save/save-conversion-helper.d.ts.map +1 -0
- package/packages/core/dist/core/save/save-conversion-helper.js +522 -0
- package/packages/core/dist/core/save/save-conversion-helper.js.map +1 -0
- package/packages/core/dist/core/save/save-group-builder.d.ts +49 -0
- package/packages/core/dist/core/save/save-group-builder.d.ts.map +1 -0
- package/packages/core/dist/core/save/save-group-builder.js +233 -0
- package/packages/core/dist/core/save/save-group-builder.js.map +1 -0
- package/packages/core/dist/core/save/save-interactive-resolver.d.ts +73 -0
- package/packages/core/dist/core/save/save-interactive-resolver.d.ts.map +1 -0
- package/packages/core/dist/core/save/save-interactive-resolver.js +300 -0
- package/packages/core/dist/core/save/save-interactive-resolver.js.map +1 -0
- package/packages/core/dist/core/save/save-merge-extractor.d.ts +61 -0
- package/packages/core/dist/core/save/save-merge-extractor.d.ts.map +1 -0
- package/packages/core/dist/core/save/save-merge-extractor.js +272 -0
- package/packages/core/dist/core/save/save-merge-extractor.js.map +1 -0
- package/packages/core/dist/core/save/save-platform-handler.d.ts +51 -0
- package/packages/core/dist/core/save/save-platform-handler.d.ts.map +1 -0
- package/packages/core/dist/core/save/save-platform-handler.js +93 -0
- package/packages/core/dist/core/save/save-platform-handler.js.map +1 -0
- package/packages/core/dist/core/save/save-resolution-executor.d.ts +40 -0
- package/packages/core/dist/core/save/save-resolution-executor.d.ts.map +1 -0
- package/packages/core/dist/core/save/save-resolution-executor.js +197 -0
- package/packages/core/dist/core/save/save-resolution-executor.js.map +1 -0
- package/packages/core/dist/core/save/save-result-reporter.d.ts +109 -0
- package/packages/core/dist/core/save/save-result-reporter.d.ts.map +1 -0
- package/packages/core/dist/core/save/save-result-reporter.js +176 -0
- package/packages/core/dist/core/save/save-result-reporter.js.map +1 -0
- package/packages/core/dist/core/save/save-to-source-pipeline.d.ts +45 -0
- package/packages/core/dist/core/save/save-to-source-pipeline.d.ts.map +1 -0
- package/packages/core/dist/core/save/save-to-source-pipeline.js +234 -0
- package/packages/core/dist/core/save/save-to-source-pipeline.js.map +1 -0
- package/packages/core/dist/core/save/save-types.d.ts +157 -0
- package/packages/core/dist/core/save/save-types.d.ts.map +1 -0
- package/packages/core/dist/core/save/save-types.js +8 -0
- package/packages/core/dist/core/save/save-types.js.map +1 -0
- package/packages/core/dist/core/save/save-write-coordinator.d.ts +36 -0
- package/packages/core/dist/core/save/save-write-coordinator.d.ts.map +1 -0
- package/packages/core/dist/core/save/save-write-coordinator.js +571 -0
- package/packages/core/dist/core/save/save-write-coordinator.js.map +1 -0
- package/packages/core/dist/core/scope-resolution.d.ts +64 -0
- package/packages/core/dist/core/scope-resolution.d.ts.map +1 -0
- package/packages/core/dist/core/scope-resolution.js +143 -0
- package/packages/core/dist/core/scope-resolution.js.map +1 -0
- package/packages/core/dist/core/scoping/package-scoping.d.ts +35 -0
- package/packages/core/dist/core/scoping/package-scoping.d.ts.map +1 -0
- package/packages/core/dist/core/scoping/package-scoping.js +234 -0
- package/packages/core/dist/core/scoping/package-scoping.js.map +1 -0
- package/packages/core/dist/core/search/search-pipeline.d.ts +55 -0
- package/packages/core/dist/core/search/search-pipeline.d.ts.map +1 -0
- package/packages/core/dist/core/search/search-pipeline.js +120 -0
- package/packages/core/dist/core/search/search-pipeline.js.map +1 -0
- package/packages/core/dist/core/set/set-output.d.ts +23 -0
- package/packages/core/dist/core/set/set-output.d.ts.map +1 -0
- package/packages/core/dist/core/set/set-output.js +77 -0
- package/packages/core/dist/core/set/set-output.js.map +1 -0
- package/packages/core/dist/core/set/set-pipeline.d.ts +13 -0
- package/packages/core/dist/core/set/set-pipeline.d.ts.map +1 -0
- package/packages/core/dist/core/set/set-pipeline.js +334 -0
- package/packages/core/dist/core/set/set-pipeline.js.map +1 -0
- package/packages/core/dist/core/set/set-types.d.ts +50 -0
- package/packages/core/dist/core/set/set-types.d.ts.map +1 -0
- package/packages/core/dist/core/set/set-types.js +5 -0
- package/packages/core/dist/core/set/set-types.js.map +1 -0
- package/packages/core/dist/core/source-mutability.d.ts +6 -0
- package/packages/core/dist/core/source-mutability.d.ts.map +1 -0
- package/packages/core/dist/core/source-mutability.js +15 -0
- package/packages/core/dist/core/source-mutability.js.map +1 -0
- package/packages/core/dist/core/source-resolution/dependency-graph.d.ts +8 -0
- package/packages/core/dist/core/source-resolution/dependency-graph.d.ts.map +1 -0
- package/packages/core/dist/core/source-resolution/dependency-graph.js +115 -0
- package/packages/core/dist/core/source-resolution/dependency-graph.js.map +1 -0
- package/packages/core/dist/core/source-resolution/resolve-mutable-source.d.ts +31 -0
- package/packages/core/dist/core/source-resolution/resolve-mutable-source.d.ts.map +1 -0
- package/packages/core/dist/core/source-resolution/resolve-mutable-source.js +110 -0
- package/packages/core/dist/core/source-resolution/resolve-mutable-source.js.map +1 -0
- package/packages/core/dist/core/source-resolution/resolve-package-source.d.ts +3 -0
- package/packages/core/dist/core/source-resolution/resolve-package-source.d.ts.map +1 -0
- package/packages/core/dist/core/source-resolution/resolve-package-source.js +29 -0
- package/packages/core/dist/core/source-resolution/resolve-package-source.js.map +1 -0
- package/packages/core/dist/core/source-resolution/resolve-registry-version.d.ts +31 -0
- package/packages/core/dist/core/source-resolution/resolve-registry-version.d.ts.map +1 -0
- package/packages/core/dist/core/source-resolution/resolve-registry-version.js +47 -0
- package/packages/core/dist/core/source-resolution/resolve-registry-version.js.map +1 -0
- package/packages/core/dist/core/source-resolution/types.d.ts +39 -0
- package/packages/core/dist/core/source-resolution/types.d.ts.map +1 -0
- package/packages/core/dist/core/source-resolution/types.js +2 -0
- package/packages/core/dist/core/source-resolution/types.js.map +1 -0
- package/packages/core/dist/core/telemetry.d.ts +59 -0
- package/packages/core/dist/core/telemetry.d.ts.map +1 -0
- package/packages/core/dist/core/telemetry.js +166 -0
- package/packages/core/dist/core/telemetry.js.map +1 -0
- package/packages/core/dist/core/uninstall/direct-uninstall-flow.d.ts +37 -0
- package/packages/core/dist/core/uninstall/direct-uninstall-flow.d.ts.map +1 -0
- package/packages/core/dist/core/uninstall/direct-uninstall-flow.js +88 -0
- package/packages/core/dist/core/uninstall/direct-uninstall-flow.js.map +1 -0
- package/packages/core/dist/core/uninstall/flow-aware-uninstaller.d.ts +34 -0
- package/packages/core/dist/core/uninstall/flow-aware-uninstaller.d.ts.map +1 -0
- package/packages/core/dist/core/uninstall/flow-aware-uninstaller.js +189 -0
- package/packages/core/dist/core/uninstall/flow-aware-uninstaller.js.map +1 -0
- package/packages/core/dist/core/uninstall/uninstall-executor.d.ts +15 -0
- package/packages/core/dist/core/uninstall/uninstall-executor.d.ts.map +1 -0
- package/packages/core/dist/core/uninstall/uninstall-executor.js +85 -0
- package/packages/core/dist/core/uninstall/uninstall-executor.js.map +1 -0
- package/packages/core/dist/core/uninstall/uninstall-pipeline.d.ts +8 -0
- package/packages/core/dist/core/uninstall/uninstall-pipeline.d.ts.map +1 -0
- package/packages/core/dist/core/uninstall/uninstall-pipeline.js +178 -0
- package/packages/core/dist/core/uninstall/uninstall-pipeline.js.map +1 -0
- package/packages/core/dist/core/uninstall/uninstall-reporter.d.ts +26 -0
- package/packages/core/dist/core/uninstall/uninstall-reporter.d.ts.map +1 -0
- package/packages/core/dist/core/uninstall/uninstall-reporter.js +76 -0
- package/packages/core/dist/core/uninstall/uninstall-reporter.js.map +1 -0
- package/packages/core/dist/core/uninstall/workspace-resource-collector.d.ts +68 -0
- package/packages/core/dist/core/uninstall/workspace-resource-collector.d.ts.map +1 -0
- package/packages/core/dist/core/uninstall/workspace-resource-collector.js +221 -0
- package/packages/core/dist/core/uninstall/workspace-resource-collector.js.map +1 -0
- package/packages/core/dist/core/universal-patterns.d.ts +26 -0
- package/packages/core/dist/core/universal-patterns.d.ts.map +1 -0
- package/packages/core/dist/core/universal-patterns.js +64 -0
- package/packages/core/dist/core/universal-patterns.js.map +1 -0
- package/packages/core/dist/core/unpublish/interactive-unpublish-flow.d.ts +33 -0
- package/packages/core/dist/core/unpublish/interactive-unpublish-flow.d.ts.map +1 -0
- package/packages/core/dist/core/unpublish/interactive-unpublish-flow.js +118 -0
- package/packages/core/dist/core/unpublish/interactive-unpublish-flow.js.map +1 -0
- package/packages/core/dist/core/unpublish/local-unpublish-pipeline.d.ts +8 -0
- package/packages/core/dist/core/unpublish/local-unpublish-pipeline.d.ts.map +1 -0
- package/packages/core/dist/core/unpublish/local-unpublish-pipeline.js +174 -0
- package/packages/core/dist/core/unpublish/local-unpublish-pipeline.js.map +1 -0
- package/packages/core/dist/core/unpublish/unpublish-output.d.ts +7 -0
- package/packages/core/dist/core/unpublish/unpublish-output.d.ts.map +1 -0
- package/packages/core/dist/core/unpublish/unpublish-output.js +27 -0
- package/packages/core/dist/core/unpublish/unpublish-output.js.map +1 -0
- package/packages/core/dist/core/unpublish/unpublish-pipeline.d.ts +6 -0
- package/packages/core/dist/core/unpublish/unpublish-pipeline.d.ts.map +1 -0
- package/packages/core/dist/core/unpublish/unpublish-pipeline.js +17 -0
- package/packages/core/dist/core/unpublish/unpublish-pipeline.js.map +1 -0
- package/packages/core/dist/core/unpublish/unpublish-types.d.ts +17 -0
- package/packages/core/dist/core/unpublish/unpublish-types.d.ts.map +1 -0
- package/packages/core/dist/core/unpublish/unpublish-types.js +2 -0
- package/packages/core/dist/core/unpublish/unpublish-types.js.map +1 -0
- package/packages/core/dist/core/view/view-helpers.d.ts +17 -0
- package/packages/core/dist/core/view/view-helpers.d.ts.map +1 -0
- package/packages/core/dist/core/view/view-helpers.js +32 -0
- package/packages/core/dist/core/view/view-helpers.js.map +1 -0
- package/packages/core/dist/core/view/view-pipeline.d.ts +71 -0
- package/packages/core/dist/core/view/view-pipeline.d.ts.map +1 -0
- package/packages/core/dist/core/view/view-pipeline.js +267 -0
- package/packages/core/dist/core/view/view-pipeline.js.map +1 -0
- package/packages/core/dist/core/view/view-printers.d.ts +21 -0
- package/packages/core/dist/core/view/view-printers.d.ts.map +1 -0
- package/packages/core/dist/core/view/view-printers.js +124 -0
- package/packages/core/dist/core/view/view-printers.js.map +1 -0
- package/packages/core/dist/core/workspace-package-context.d.ts +54 -0
- package/packages/core/dist/core/workspace-package-context.d.ts.map +1 -0
- package/packages/core/dist/core/workspace-package-context.js +68 -0
- package/packages/core/dist/core/workspace-package-context.js.map +1 -0
- package/packages/core/dist/generated/version.d.ts +2 -0
- package/packages/core/dist/generated/version.d.ts.map +1 -0
- package/packages/core/dist/generated/version.js +3 -0
- package/packages/core/dist/generated/version.js.map +1 -0
- package/packages/core/dist/index.d.ts +48 -0
- package/packages/core/dist/index.d.ts.map +1 -0
- package/packages/core/dist/index.js +72 -0
- package/packages/core/dist/index.js.map +1 -0
- package/packages/core/dist/types/api.d.ts +47 -0
- package/packages/core/dist/types/api.d.ts.map +1 -0
- package/packages/core/dist/types/api.js +5 -0
- package/packages/core/dist/types/api.js.map +1 -0
- package/packages/core/dist/types/conversion-context.d.ts +175 -0
- package/packages/core/dist/types/conversion-context.d.ts.map +1 -0
- package/packages/core/dist/types/conversion-context.js +11 -0
- package/packages/core/dist/types/conversion-context.js.map +1 -0
- package/packages/core/dist/types/execution-context.d.ts +122 -0
- package/packages/core/dist/types/execution-context.d.ts.map +1 -0
- package/packages/core/dist/types/execution-context.js +8 -0
- package/packages/core/dist/types/execution-context.js.map +1 -0
- package/packages/core/dist/types/flows.d.ts +360 -0
- package/packages/core/dist/types/flows.d.ts.map +1 -0
- package/packages/core/dist/types/flows.js +8 -0
- package/packages/core/dist/types/flows.js.map +1 -0
- package/packages/core/dist/types/index.d.ts +271 -0
- package/packages/core/dist/types/index.d.ts.map +1 -0
- package/packages/core/dist/types/index.js +36 -0
- package/packages/core/dist/types/index.js.map +1 -0
- package/packages/core/dist/types/install.d.ts +5 -0
- package/packages/core/dist/types/install.d.ts.map +1 -0
- package/packages/core/dist/types/install.js +5 -0
- package/packages/core/dist/types/install.js.map +1 -0
- package/packages/core/dist/types/platform-flows.d.ts +349 -0
- package/packages/core/dist/types/platform-flows.d.ts.map +1 -0
- package/packages/core/dist/types/platform-flows.js +8 -0
- package/packages/core/dist/types/platform-flows.js.map +1 -0
- package/packages/core/dist/types/platform.d.ts +32 -0
- package/packages/core/dist/types/platform.d.ts.map +1 -0
- package/packages/core/dist/types/platform.js +6 -0
- package/packages/core/dist/types/platform.js.map +1 -0
- package/packages/core/dist/types/resources.d.ts +14 -0
- package/packages/core/dist/types/resources.d.ts.map +1 -0
- package/packages/core/dist/types/resources.js +5 -0
- package/packages/core/dist/types/resources.js.map +1 -0
- package/packages/core/dist/types/workspace-index.d.ts +60 -0
- package/packages/core/dist/types/workspace-index.d.ts.map +1 -0
- package/packages/core/dist/types/workspace-index.js +6 -0
- package/packages/core/dist/types/workspace-index.js.map +1 -0
- package/packages/core/dist/utils/cleanup-empty-parents.d.ts +20 -0
- package/packages/core/dist/utils/cleanup-empty-parents.d.ts.map +1 -0
- package/packages/core/dist/utils/cleanup-empty-parents.js +56 -0
- package/packages/core/dist/utils/cleanup-empty-parents.js.map +1 -0
- package/packages/core/dist/utils/custom-path-resolution.d.ts +69 -0
- package/packages/core/dist/utils/custom-path-resolution.d.ts.map +1 -0
- package/packages/core/dist/utils/custom-path-resolution.js +160 -0
- package/packages/core/dist/utils/custom-path-resolution.js.map +1 -0
- package/packages/core/dist/utils/entity-detector.d.ts +33 -0
- package/packages/core/dist/utils/entity-detector.d.ts.map +1 -0
- package/packages/core/dist/utils/entity-detector.js +78 -0
- package/packages/core/dist/utils/entity-detector.js.map +1 -0
- package/packages/core/dist/utils/error-reasons.d.ts +9 -0
- package/packages/core/dist/utils/error-reasons.d.ts.map +1 -0
- package/packages/core/dist/utils/error-reasons.js +51 -0
- package/packages/core/dist/utils/error-reasons.js.map +1 -0
- package/packages/core/dist/utils/errors.d.ts +36 -0
- package/packages/core/dist/utils/errors.d.ts.map +1 -0
- package/packages/core/dist/utils/errors.js +73 -0
- package/packages/core/dist/utils/errors.js.map +1 -0
- package/packages/core/dist/utils/expand-directory-selections.d.ts +37 -0
- package/packages/core/dist/utils/expand-directory-selections.d.ts.map +1 -0
- package/packages/core/dist/utils/expand-directory-selections.js +101 -0
- package/packages/core/dist/utils/expand-directory-selections.js.map +1 -0
- package/packages/core/dist/utils/file-processing.d.ts +26 -0
- package/packages/core/dist/utils/file-processing.d.ts.map +1 -0
- package/packages/core/dist/utils/file-processing.js +91 -0
- package/packages/core/dist/utils/file-processing.js.map +1 -0
- package/packages/core/dist/utils/file-scanner.d.ts +62 -0
- package/packages/core/dist/utils/file-scanner.d.ts.map +1 -0
- package/packages/core/dist/utils/file-scanner.js +168 -0
- package/packages/core/dist/utils/file-scanner.js.map +1 -0
- package/packages/core/dist/utils/file-walker.d.ts +69 -0
- package/packages/core/dist/utils/file-walker.d.ts.map +1 -0
- package/packages/core/dist/utils/file-walker.js +144 -0
- package/packages/core/dist/utils/file-walker.js.map +1 -0
- package/packages/core/dist/utils/formatters.d.ts +93 -0
- package/packages/core/dist/utils/formatters.d.ts.map +1 -0
- package/packages/core/dist/utils/formatters.js +196 -0
- package/packages/core/dist/utils/formatters.js.map +1 -0
- package/packages/core/dist/utils/fs.d.ts +94 -0
- package/packages/core/dist/utils/fs.d.ts.map +1 -0
- package/packages/core/dist/utils/fs.js +362 -0
- package/packages/core/dist/utils/fs.js.map +1 -0
- package/packages/core/dist/utils/git-cache.d.ts +91 -0
- package/packages/core/dist/utils/git-cache.d.ts.map +1 -0
- package/packages/core/dist/utils/git-cache.js +196 -0
- package/packages/core/dist/utils/git-cache.js.map +1 -0
- package/packages/core/dist/utils/git-spec.d.ts +19 -0
- package/packages/core/dist/utils/git-spec.d.ts.map +1 -0
- package/packages/core/dist/utils/git-spec.js +96 -0
- package/packages/core/dist/utils/git-spec.js.map +1 -0
- package/packages/core/dist/utils/git-url-detection.d.ts +92 -0
- package/packages/core/dist/utils/git-url-detection.d.ts.map +1 -0
- package/packages/core/dist/utils/git-url-detection.js +327 -0
- package/packages/core/dist/utils/git-url-detection.js.map +1 -0
- package/packages/core/dist/utils/git-url-parser.d.ts +53 -0
- package/packages/core/dist/utils/git-url-parser.d.ts.map +1 -0
- package/packages/core/dist/utils/git-url-parser.js +113 -0
- package/packages/core/dist/utils/git-url-parser.js.map +1 -0
- package/packages/core/dist/utils/hash-utils.d.ts +14 -0
- package/packages/core/dist/utils/hash-utils.d.ts.map +1 -0
- package/packages/core/dist/utils/hash-utils.js +40 -0
- package/packages/core/dist/utils/hash-utils.js.map +1 -0
- package/packages/core/dist/utils/home-directory.d.ts +41 -0
- package/packages/core/dist/utils/home-directory.d.ts.map +1 -0
- package/packages/core/dist/utils/home-directory.js +71 -0
- package/packages/core/dist/utils/home-directory.js.map +1 -0
- package/packages/core/dist/utils/ini.d.ts +43 -0
- package/packages/core/dist/utils/ini.d.ts.map +1 -0
- package/packages/core/dist/utils/ini.js +120 -0
- package/packages/core/dist/utils/ini.js.map +1 -0
- package/packages/core/dist/utils/install-error-messages.d.ts +32 -0
- package/packages/core/dist/utils/install-error-messages.d.ts.map +1 -0
- package/packages/core/dist/utils/install-error-messages.js +176 -0
- package/packages/core/dist/utils/install-error-messages.js.map +1 -0
- package/packages/core/dist/utils/install-helpers.d.ts +6 -0
- package/packages/core/dist/utils/install-helpers.d.ts.map +1 -0
- package/packages/core/dist/utils/install-helpers.js +6 -0
- package/packages/core/dist/utils/install-helpers.js.map +1 -0
- package/packages/core/dist/utils/jsonc.d.ts +18 -0
- package/packages/core/dist/utils/jsonc.d.ts.map +1 -0
- package/packages/core/dist/utils/jsonc.js +79 -0
- package/packages/core/dist/utils/jsonc.js.map +1 -0
- package/packages/core/dist/utils/logger.d.ts +19 -0
- package/packages/core/dist/utils/logger.d.ts.map +1 -0
- package/packages/core/dist/utils/logger.js +78 -0
- package/packages/core/dist/utils/logger.js.map +1 -0
- package/packages/core/dist/utils/manifest-paths.d.ts +10 -0
- package/packages/core/dist/utils/manifest-paths.d.ts.map +1 -0
- package/packages/core/dist/utils/manifest-paths.js +19 -0
- package/packages/core/dist/utils/manifest-paths.js.map +1 -0
- package/packages/core/dist/utils/package-copy.d.ts +40 -0
- package/packages/core/dist/utils/package-copy.d.ts.map +1 -0
- package/packages/core/dist/utils/package-copy.js +101 -0
- package/packages/core/dist/utils/package-copy.js.map +1 -0
- package/packages/core/dist/utils/package-filters.d.ts +2 -0
- package/packages/core/dist/utils/package-filters.d.ts.map +1 -0
- package/packages/core/dist/utils/package-filters.js +29 -0
- package/packages/core/dist/utils/package-filters.js.map +1 -0
- package/packages/core/dist/utils/package-index-yml.d.ts +26 -0
- package/packages/core/dist/utils/package-index-yml.d.ts.map +1 -0
- package/packages/core/dist/utils/package-index-yml.js +172 -0
- package/packages/core/dist/utils/package-index-yml.js.map +1 -0
- package/packages/core/dist/utils/package-merge.d.ts +13 -0
- package/packages/core/dist/utils/package-merge.d.ts.map +1 -0
- package/packages/core/dist/utils/package-merge.js +48 -0
- package/packages/core/dist/utils/package-merge.js.map +1 -0
- package/packages/core/dist/utils/package-name.d.ts +84 -0
- package/packages/core/dist/utils/package-name.d.ts.map +1 -0
- package/packages/core/dist/utils/package-name.js +265 -0
- package/packages/core/dist/utils/package-name.js.map +1 -0
- package/packages/core/dist/utils/package-yml.d.ts +11 -0
- package/packages/core/dist/utils/package-yml.d.ts.map +1 -0
- package/packages/core/dist/utils/package-yml.js +280 -0
- package/packages/core/dist/utils/package-yml.js.map +1 -0
- package/packages/core/dist/utils/package.d.ts +5 -0
- package/packages/core/dist/utils/package.d.ts.map +1 -0
- package/packages/core/dist/utils/package.js +8 -0
- package/packages/core/dist/utils/package.js.map +1 -0
- package/packages/core/dist/utils/path-comparison.d.ts +52 -0
- package/packages/core/dist/utils/path-comparison.d.ts.map +1 -0
- package/packages/core/dist/utils/path-comparison.js +110 -0
- package/packages/core/dist/utils/path-comparison.js.map +1 -0
- package/packages/core/dist/utils/path-normalization.d.ts +54 -0
- package/packages/core/dist/utils/path-normalization.d.ts.map +1 -0
- package/packages/core/dist/utils/path-normalization.js +116 -0
- package/packages/core/dist/utils/path-normalization.js.map +1 -0
- package/packages/core/dist/utils/path-resolution.d.ts +36 -0
- package/packages/core/dist/utils/path-resolution.d.ts.map +1 -0
- package/packages/core/dist/utils/path-resolution.js +106 -0
- package/packages/core/dist/utils/path-resolution.js.map +1 -0
- package/packages/core/dist/utils/paths.d.ts +35 -0
- package/packages/core/dist/utils/paths.d.ts.map +1 -0
- package/packages/core/dist/utils/paths.js +70 -0
- package/packages/core/dist/utils/paths.js.map +1 -0
- package/packages/core/dist/utils/pattern-matcher.d.ts +66 -0
- package/packages/core/dist/utils/pattern-matcher.d.ts.map +1 -0
- package/packages/core/dist/utils/pattern-matcher.js +195 -0
- package/packages/core/dist/utils/pattern-matcher.js.map +1 -0
- package/packages/core/dist/utils/platform-yaml-merge.d.ts +6 -0
- package/packages/core/dist/utils/platform-yaml-merge.d.ts.map +1 -0
- package/packages/core/dist/utils/platform-yaml-merge.js +6 -0
- package/packages/core/dist/utils/platform-yaml-merge.js.map +1 -0
- package/packages/core/dist/utils/plugin-naming.d.ts +160 -0
- package/packages/core/dist/utils/plugin-naming.d.ts.map +1 -0
- package/packages/core/dist/utils/plugin-naming.js +401 -0
- package/packages/core/dist/utils/plugin-naming.js.map +1 -0
- package/packages/core/dist/utils/resolution-mode.d.ts +10 -0
- package/packages/core/dist/utils/resolution-mode.d.ts.map +1 -0
- package/packages/core/dist/utils/resolution-mode.js +16 -0
- package/packages/core/dist/utils/resolution-mode.js.map +1 -0
- package/packages/core/dist/utils/resource-arg-parser.d.ts +48 -0
- package/packages/core/dist/utils/resource-arg-parser.d.ts.map +1 -0
- package/packages/core/dist/utils/resource-arg-parser.js +231 -0
- package/packages/core/dist/utils/resource-arg-parser.js.map +1 -0
- package/packages/core/dist/utils/root-file-extractor.d.ts +55 -0
- package/packages/core/dist/utils/root-file-extractor.d.ts.map +1 -0
- package/packages/core/dist/utils/root-file-extractor.js +115 -0
- package/packages/core/dist/utils/root-file-extractor.js.map +1 -0
- package/packages/core/dist/utils/root-file-merger.d.ts +15 -0
- package/packages/core/dist/utils/root-file-merger.d.ts.map +1 -0
- package/packages/core/dist/utils/root-file-merger.js +57 -0
- package/packages/core/dist/utils/root-file-merger.js.map +1 -0
- package/packages/core/dist/utils/source-operation-arguments.d.ts +48 -0
- package/packages/core/dist/utils/source-operation-arguments.d.ts.map +1 -0
- package/packages/core/dist/utils/source-operation-arguments.js +66 -0
- package/packages/core/dist/utils/source-operation-arguments.js.map +1 -0
- package/packages/core/dist/utils/tarball.d.ts +30 -0
- package/packages/core/dist/utils/tarball.d.ts.map +1 -0
- package/packages/core/dist/utils/tarball.js +200 -0
- package/packages/core/dist/utils/tarball.js.map +1 -0
- package/packages/core/dist/utils/validation/index.d.ts +4 -0
- package/packages/core/dist/utils/validation/index.d.ts.map +1 -0
- package/packages/core/dist/utils/validation/index.js +5 -0
- package/packages/core/dist/utils/validation/index.js.map +1 -0
- package/packages/core/dist/utils/validation/manifest.d.ts +16 -0
- package/packages/core/dist/utils/validation/manifest.d.ts.map +1 -0
- package/packages/core/dist/utils/validation/manifest.js +27 -0
- package/packages/core/dist/utils/validation/manifest.js.map +1 -0
- package/packages/core/dist/utils/validation/package-files.d.ts +13 -0
- package/packages/core/dist/utils/validation/package-files.d.ts.map +1 -0
- package/packages/core/dist/utils/validation/package-files.js +15 -0
- package/packages/core/dist/utils/validation/package-files.js.map +1 -0
- package/packages/core/dist/utils/validation/version.d.ts +24 -0
- package/packages/core/dist/utils/validation/version.d.ts.map +1 -0
- package/packages/core/dist/utils/validation/version.js +42 -0
- package/packages/core/dist/utils/validation/version.js.map +1 -0
- package/packages/core/dist/utils/version-generator.d.ts +58 -0
- package/packages/core/dist/utils/version-generator.d.ts.map +1 -0
- package/packages/core/dist/utils/version-generator.js +132 -0
- package/packages/core/dist/utils/version-generator.js.map +1 -0
- package/packages/core/dist/utils/version-ranges.d.ts +88 -0
- package/packages/core/dist/utils/version-ranges.d.ts.map +1 -0
- package/packages/core/dist/utils/version-ranges.js +342 -0
- package/packages/core/dist/utils/version-ranges.js.map +1 -0
- package/packages/core/dist/utils/workspace-index-helpers.d.ts +17 -0
- package/packages/core/dist/utils/workspace-index-helpers.d.ts.map +1 -0
- package/packages/core/dist/utils/workspace-index-helpers.js +28 -0
- package/packages/core/dist/utils/workspace-index-helpers.js.map +1 -0
- package/packages/core/dist/utils/workspace-index-ownership.d.ts +32 -0
- package/packages/core/dist/utils/workspace-index-ownership.d.ts.map +1 -0
- package/packages/core/dist/utils/workspace-index-ownership.js +111 -0
- package/packages/core/dist/utils/workspace-index-ownership.js.map +1 -0
- package/packages/core/dist/utils/workspace-index-yml.d.ts +9 -0
- package/packages/core/dist/utils/workspace-index-yml.d.ts.map +1 -0
- package/packages/core/dist/utils/workspace-index-yml.js +300 -0
- package/packages/core/dist/utils/workspace-index-yml.js.map +1 -0
- package/packages/core/dist/utils/workspace-package-context.d.ts +6 -0
- package/packages/core/dist/utils/workspace-package-context.d.ts.map +1 -0
- package/packages/core/dist/utils/workspace-package-context.js +6 -0
- package/packages/core/dist/utils/workspace-package-context.js.map +1 -0
- package/packages/core/package.json +96 -0
- package/packages/gui/package.json +24 -0
- package/packages/gui/src-tauri/Cargo.toml +14 -0
- package/turbo.json +15 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../core/src/core/list/list-pipeline.ts", "../../core/src/core/resources/resource-namespace.ts", "../../core/src/utils/entity-detector.ts", "../../core/src/core/list/scope-data-collector.ts", "../../core/src/core/list/view-metadata.ts", "../../core/src/core/list/list-printers.ts"],
|
|
4
|
+
"sourcesContent": ["import path from 'path';\n\nimport type { CommandResult, ExecutionContext } from '../../types/index.js';\nimport { ValidationError } from '../../utils/errors.js';\nimport { getLocalOpenPackageDir, getLocalPackageYmlPath } from '../../utils/paths.js';\nimport { readWorkspaceIndex } from '../../utils/workspace-index-yml.js';\nimport { resolveDeclaredPath } from '../../utils/path-resolution.js';\nimport { exists } from '../../utils/fs.js';\nimport type { WorkspaceIndexPackage } from '../../types/workspace-index.js';\nimport { logger } from '../../utils/logger.js';\nimport { getTargetPath } from '../../utils/workspace-index-helpers.js';\nimport { parsePackageYml } from '../../utils/package-yml.js';\nimport { arePackageNamesEquivalent } from '../../utils/package-name.js';\nimport { scanUntrackedFiles, type UntrackedScanResult } from './untracked-files-scanner.js';\nimport { getWorkspaceIndexPath } from '../../utils/workspace-index-yml.js';\nimport { isPlatformId, getAllPlatforms, getPlatformDefinition } from '../platforms.js';\nimport { normalizePlatforms } from '../platform/platform-mapper.js';\nimport { DIR_TO_TYPE, RESOURCE_TYPE_ORDER, toPluralKey, type ResourceTypeId } from '../resources/resource-registry.js';\nimport { classifySourceKey } from '../resources/source-key-classifier.js';\nimport { deriveResourceFullName } from '../resources/resource-namespace.js';\nexport { classifySourceKey } from '../resources/source-key-classifier.js';\n\nexport type PackageSyncState = 'synced' | 'partial' | 'missing';\n\nexport interface ListFileMapping {\n source: string;\n target: string;\n exists: boolean;\n}\n\n/**\n * A single resource within a package (e.g., one rule, one agent, one skill)\n */\nexport interface ListResourceInfo {\n /** Display name (filename sans .md for files, directory name for skills) */\n name: string;\n /** Resource type: agent, skill, command, rule, hook, mcp, or 'other' for unrecognized */\n resourceType: string;\n /** Files belonging to this resource */\n files: ListFileMapping[];\n}\n\n/**\n * Resources grouped by type within a package\n */\nexport interface ListResourceGroup {\n /** Resource type label (e.g., 'rules', 'agents', 'skills') */\n resourceType: string;\n /** Individual resources of this type */\n resources: ListResourceInfo[];\n}\n\nexport interface ListPackageReport {\n name: string;\n version?: string;\n path: string;\n state: PackageSyncState;\n totalFiles: number;\n existingFiles: number;\n fileList?: ListFileMapping[];\n resourceGroups?: ListResourceGroup[];\n dependencies?: string[];\n}\n\nexport interface ListTreeNode {\n report: ListPackageReport;\n children: ListTreeNode[];\n}\n\nexport interface ListPipelineOptions {\n /** Include full file list for each package */\n includeFiles?: boolean;\n /** Build full recursive dependency tree */\n all?: boolean;\n /** Filter to tracked view only */\n tracked?: boolean;\n /** Filter to untracked view only */\n untracked?: boolean;\n /** Filter by platform names */\n platforms?: string[];\n}\n\nexport interface ListPipelineResult {\n packages: ListPackageReport[];\n tree?: ListTreeNode[];\n rootPackageNames?: string[];\n /** When a specific package is targeted, this contains its info for the header */\n targetPackage?: ListPackageReport;\n /** Total tracked files that exist on disk */\n trackedCount: number;\n /** Total tracked files that are missing on disk */\n missingCount: number;\n /** Total untracked files found */\n untrackedCount: number;\n /** Untracked files scan result */\n untrackedFiles?: UntrackedScanResult;\n}\n\n\n/**\n * Extract the root directory prefix from a `to` pattern string.\n * e.g. \".cursor/agents/x.md\" -> \".cursor\", \".config/opencode/agents/x.md\" -> \".config/opencode\"\n * Returns null for patterns without a dot-prefixed root dir.\n */\nfunction extractRootPrefixFromToPattern(pattern: string): string | null {\n const parts = pattern.replace(/\\\\/g, '/').split('/');\n if (parts.length < 2 || !parts[0].startsWith('.')) return null;\n const nonGlobParts = [];\n for (const part of parts) {\n if (part.includes('*') || part.includes('{')) break;\n nonGlobParts.push(part);\n }\n if (nonGlobParts.length < 2) return nonGlobParts.length === 1 ? nonGlobParts[0] : null;\n // For paths like \".config/opencode/agents/foo.md\", the root prefix is everything\n // up to but not including known resource type dirs or the filename.\n const resourceDirs = new Set(Object.keys(DIR_TO_TYPE));\n const prefixParts = [];\n for (const part of nonGlobParts) {\n if (resourceDirs.has(part)) break;\n if (part.includes('.') && part !== nonGlobParts[0]) break;\n prefixParts.push(part);\n }\n return prefixParts.length > 0 ? prefixParts.join('/') : null;\n}\n\n/**\n * Collect all `to` pattern strings from a flow, including $switch cases.\n */\nfunction collectToPatternsFromFlow(toField: unknown): string[] {\n if (typeof toField === 'string') return [toField];\n\n if (typeof toField === 'object' && toField !== null) {\n if ('$switch' in toField) {\n const sw = (toField as any).$switch;\n const patterns: string[] = [];\n for (const c of sw?.cases ?? []) {\n const v = c.value;\n if (typeof v === 'string') patterns.push(v);\n else if (typeof v === 'object' && v && 'pattern' in v) patterns.push(v.pattern);\n }\n const d = sw?.default;\n if (typeof d === 'string') patterns.push(d);\n else if (typeof d === 'object' && d && 'pattern' in d) patterns.push(d.pattern);\n return patterns;\n }\n if ('pattern' in toField && typeof (toField as any).pattern === 'string') {\n return [(toField as any).pattern];\n }\n }\n return [];\n}\n\n/**\n * Build a mapping from root directory prefixes to platform IDs.\n * Collects all root prefixes from every export flow `to` pattern (including $switch cases).\n * Cached per targetDir to avoid recomputing on every file.\n */\nconst rootDirCacheMap = new Map<string, Map<string, string>>();\n\nfunction getRootDirToPlatformMap(targetDir: string): Map<string, string> {\n const cached = rootDirCacheMap.get(targetDir);\n if (cached) return cached;\n\n const map = new Map<string, string>();\n for (const platform of getAllPlatforms({ includeDisabled: true }, targetDir)) {\n const definition = getPlatformDefinition(platform, targetDir);\n if (!definition.export) continue;\n for (const flow of definition.export) {\n for (const pattern of collectToPatternsFromFlow(flow.to)) {\n const prefix = extractRootPrefixFromToPattern(pattern);\n if (prefix && !map.has(prefix)) {\n map.set(prefix, platform);\n }\n }\n }\n }\n rootDirCacheMap.set(targetDir, map);\n return map;\n}\n\n/**\n * Extract platform from a target path by matching its root directory against\n * known platform root directories derived from export flows.\n * Returns null if the file is universal (no platform).\n *\n * @param targetPath - Target path relative to workspace (e.g., \".cursor/agents/foo.md\")\n * @param targetDir - Target directory for context and flow resolution\n * @returns Platform ID or null if universal\n */\nfunction extractPlatformFromPath(targetPath: string, targetDir: string): string | null {\n const normalized = targetPath.replace(/\\\\/g, '/');\n\n // Check if the path starts with a known platform root directory\n // Sort by longest prefix first so more-specific prefixes match before shorter ones\n const rootDirMap = getRootDirToPlatformMap(targetDir);\n const sortedEntries = [...rootDirMap.entries()].sort((a, b) => b[0].length - a[0].length);\n for (const [rootDir, platform] of sortedEntries) {\n if (normalized === rootDir || normalized.startsWith(rootDir + '/')) {\n return platform;\n }\n }\n\n // Fallback: Check for platform suffix in filename (e.g., mcp.cursor.jsonc, rule.claude.md)\n const parts = normalized.split('/');\n const filename = parts[parts.length - 1];\n const nameParts = filename.split('.');\n\n // Need at least 3 parts: name.platform.ext\n if (nameParts.length >= 3) {\n const possiblePlatform = nameParts[nameParts.length - 2];\n if (isPlatformId(possiblePlatform, targetDir)) {\n return possiblePlatform;\n }\n }\n\n // No platform detected - this is a universal file\n return null;\n}\n\n/**\n * Group file mappings into resource groups by analyzing source keys.\n *\n * For skills, all files sharing the same skills/<name>/ prefix are grouped into one resource.\n * For other types, each source key maps to one resource.\n */\nexport function groupFilesIntoResources(fileList: ListFileMapping[]): ListResourceGroup[] {\n // First pass: classify each file and group by resource identity\n const resourceMap = new Map<string, ListResourceInfo>();\n\n for (const file of fileList) {\n const { resourceType } = classifySourceKey(file.source);\n const fullName = deriveResourceFullName(file.source, resourceType);\n const key = fullName;\n\n if (!resourceMap.has(key)) {\n resourceMap.set(key, {\n name: fullName,\n resourceType,\n files: []\n });\n }\n resourceMap.get(key)!.files.push(file);\n }\n\n // Second pass: group resources by type\n const typeGroupMap = new Map<string, ListResourceInfo[]>();\n\n for (const resource of resourceMap.values()) {\n if (!typeGroupMap.has(resource.resourceType)) {\n typeGroupMap.set(resource.resourceType, []);\n }\n typeGroupMap.get(resource.resourceType)!.push(resource);\n }\n\n // Build final groups, sorted by type then by resource name\n const typeOrder = RESOURCE_TYPE_ORDER;\n const groups: ListResourceGroup[] = [];\n\n for (const type of typeOrder) {\n const resources = typeGroupMap.get(type);\n if (!resources || resources.length === 0) continue;\n\n // Sort resources by name\n resources.sort((a, b) => a.name.localeCompare(b.name));\n\n // Sort files within each resource by target path\n for (const resource of resources) {\n resource.files.sort((a, b) => a.target.localeCompare(b.target));\n }\n\n // Use plural form for group label\n const pluralLabel = toPluralKey(type as ResourceTypeId);\n groups.push({ resourceType: pluralLabel, resources });\n }\n\n // Handle any types not in typeOrder\n for (const [type, resources] of typeGroupMap) {\n if ((typeOrder as readonly string[]).includes(type)) continue;\n resources.sort((a, b) => a.name.localeCompare(b.name));\n for (const resource of resources) {\n resource.files.sort((a, b) => a.target.localeCompare(b.target));\n }\n groups.push({ resourceType: `${type}s`, resources });\n }\n\n return groups;\n}\n\n/**\n * Check package list status by verifying file existence\n * Does not compare content - only checks if expected files exist\n */\nasync function checkPackageStatus(\n targetDir: string,\n pkgName: string,\n entry: WorkspaceIndexPackage,\n includeFileList: boolean = false,\n platformsFilter?: string[]\n): Promise<ListPackageReport> {\n const totalTargets = entry.files\n ? Object.values(entry.files).reduce((s, arr) => s + (Array.isArray(arr) ? arr.length : 0), 0)\n : 0;\n const resolved = resolveDeclaredPath(entry.path, targetDir);\n const sourceRoot = resolved.absolute;\n\n // Check if source path exists\n const sourceExists = await exists(sourceRoot);\n\n // When source path is gone but we have workspace file mappings, determine state from\n // workspace targets instead of marking the package missing (e.g. index.path was a temp dir).\n const canDeriveFromFiles = totalTargets > 0;\n if (!sourceExists && !canDeriveFromFiles) {\n return {\n name: pkgName,\n version: entry.version,\n path: entry.path,\n state: 'missing',\n totalFiles: 0,\n existingFiles: 0,\n fileList: includeFileList ? [] : undefined\n };\n }\n\n // Check workspace file existence\n let totalFiles = 0;\n let existingFiles = 0;\n const fileList: ListFileMapping[] = [];\n \n const filesMapping = entry.files || {};\n \n // Normalize platform filter\n const normalizedPlatforms = platformsFilter ? normalizePlatforms(platformsFilter) : null;\n\n for (const [sourceKey, targets] of Object.entries(filesMapping)) {\n if (!Array.isArray(targets) || targets.length === 0) continue;\n\n for (const mapping of targets) {\n const targetPath = getTargetPath(mapping);\n \n // Apply platform filter if specified\n if (normalizedPlatforms && normalizedPlatforms.length > 0) {\n const filePlatform = extractPlatformFromPath(targetPath, targetDir);\n \n // If the file has a platform, check if it matches the filter\n if (filePlatform) {\n if (!normalizedPlatforms.includes(filePlatform.toLowerCase())) {\n continue; // Skip this file - it doesn't match the platform filter\n }\n }\n // If the file has no platform (universal), include it in all platform filters\n }\n \n const absPath = path.join(targetDir, targetPath);\n totalFiles++;\n \n const fileExists = await exists(absPath);\n if (fileExists) {\n existingFiles++;\n }\n if (includeFileList) {\n fileList.push({\n source: sourceKey,\n target: targetPath,\n exists: fileExists\n });\n }\n }\n }\n\n // Classify package state\n const state: PackageSyncState = existingFiles === totalFiles ? 'synced' : 'partial';\n\n // Read dependencies from the package manifest (not workspace index)\n let dependencies: string[] | undefined = entry.dependencies;\n if (!dependencies || dependencies.length === 0) {\n try {\n const pkgManifestPath = path.join(sourceRoot, 'openpackage.yml');\n if (await exists(pkgManifestPath)) {\n const pkgManifest = await parsePackageYml(pkgManifestPath);\n const allDeps = [\n ...(pkgManifest.dependencies || []),\n ...(pkgManifest['dev-dependencies'] || [])\n ];\n dependencies = allDeps.map(dep => dep.name);\n }\n } catch (error) {\n logger.debug(`Failed to read package manifest for ${pkgName}: ${error}`);\n }\n }\n\n // Always compute resource groups from the file data we collected\n const allFilesForGrouping: ListFileMapping[] = includeFileList ? fileList : [];\n\n // If we didn't collect file details for the list, we still need them for resource grouping\n if (!includeFileList) {\n for (const [sourceKey, targets] of Object.entries(filesMapping)) {\n if (!Array.isArray(targets) || targets.length === 0) continue;\n for (const mapping of targets) {\n const targetPath = getTargetPath(mapping);\n \n // Apply platform filter if specified\n if (normalizedPlatforms && normalizedPlatforms.length > 0) {\n const filePlatform = extractPlatformFromPath(targetPath, targetDir);\n \n // If the file has a platform, check if it matches the filter\n if (filePlatform) {\n if (!normalizedPlatforms.includes(filePlatform.toLowerCase())) {\n continue; // Skip this file - it doesn't match the platform filter\n }\n }\n // If the file has no platform (universal), include it in all platform filters\n }\n \n allFilesForGrouping.push({\n source: sourceKey,\n target: targetPath,\n exists: true\n });\n }\n }\n }\n\n const resourceGroups = allFilesForGrouping.length > 0\n ? groupFilesIntoResources(allFilesForGrouping)\n : undefined;\n\n return {\n name: pkgName,\n version: entry.version,\n path: entry.path,\n state,\n totalFiles,\n existingFiles,\n fileList: includeFileList ? fileList : undefined,\n resourceGroups,\n dependencies\n };\n}\n\n/**\n * Build a dependency tree from package reports\n */\nfunction buildDependencyTree(\n rootNames: string[],\n reportMap: Map<string, ListPackageReport>,\n all: boolean\n): ListTreeNode[] {\n const visited = new Set<string>();\n\n function buildNode(pkgName: string, depth: number): ListTreeNode | null {\n const report = reportMap.get(pkgName);\n if (!report) return null;\n\n // Prevent infinite loops from circular dependencies\n if (visited.has(pkgName)) {\n return {\n report: { ...report, name: `${report.name} (circular)` },\n children: []\n };\n }\n\n visited.add(pkgName);\n\n let children: ListTreeNode[] = [];\n if (all && report.dependencies && report.dependencies.length > 0) {\n children = report.dependencies\n .map(depName => buildNode(depName, depth + 1))\n .filter((node): node is ListTreeNode => node !== null);\n }\n\n visited.delete(pkgName);\n\n return { report, children };\n }\n\n return rootNames\n .map(name => buildNode(name, 0))\n .filter((node): node is ListTreeNode => node !== null);\n}\n\nexport async function runListPipeline(\n packageName: string | undefined,\n execContext: ExecutionContext,\n options: ListPipelineOptions = {}\n): Promise<CommandResult<ListPipelineResult>> {\n const { includeFiles = false, all = false, tracked = false, untracked = false, platforms } = options;\n \n // Use targetDir for list operations\n const targetDir = execContext.targetDir;\n const indexPath = getWorkspaceIndexPath(targetDir);\n\n // Validate mutual exclusivity\n if (tracked && untracked) {\n throw new ValidationError('Cannot use --tracked and --untracked together.');\n }\n\n // For --untracked only, we just need the workspace index (not the full manifest)\n if (untracked) {\n if (!(await exists(indexPath))) {\n throw new ValidationError(\n `No workspace index found at ${indexPath}. Cannot scan for untracked files.`\n );\n }\n\n const untrackedFiles = await scanUntrackedFiles(targetDir, platforms);\n\n return {\n success: true,\n data: {\n packages: [],\n tree: [],\n rootPackageNames: [],\n trackedCount: 0,\n missingCount: 0,\n untrackedCount: untrackedFiles.totalFiles,\n untrackedFiles\n }\n };\n }\n\n // Regular list operation - require both index and manifest\n const openpkgDir = getLocalOpenPackageDir(targetDir);\n const manifestPath = getLocalPackageYmlPath(targetDir);\n\n if (!(await exists(openpkgDir)) || !(await exists(manifestPath))) {\n throw new ValidationError(\n `No .openpackage/openpackage.yml found in ${targetDir}.`\n );\n }\n\n const { index } = await readWorkspaceIndex(targetDir);\n const packages = index.packages || {};\n const reports: ListPackageReport[] = [];\n const reportMap = new Map<string, ListPackageReport>();\n\n // Get workspace config to find root packages\n let rootPackageNames: string[] = [];\n let workspacePackageName: string | undefined;\n try {\n const config = await parsePackageYml(manifestPath);\n workspacePackageName = config.name;\n // Root packages are those declared in dependencies/dev-dependencies\n const declaredDeps = [\n ...(config.dependencies || []),\n ...(config['dev-dependencies'] || [])\n ];\n rootPackageNames = declaredDeps.map(dep => dep.name);\n // Include workspace package in tree roots when it's in the index (so its resources are listed)\n if (workspacePackageName && packages[workspacePackageName]) {\n rootPackageNames = [workspacePackageName, ...rootPackageNames];\n }\n } catch (error) {\n logger.warn(`Failed to read workspace manifest: ${error}`);\n }\n\n // If specific package requested, that package becomes the \"root\" and we show its dependencies\n if (packageName) {\n const pkgEntry = packages[packageName];\n if (!pkgEntry) {\n return {\n success: true,\n data: { packages: [], rootPackageNames: [], trackedCount: 0, missingCount: 0, untrackedCount: 0 }\n };\n }\n\n let targetPackage: ListPackageReport;\n try {\n targetPackage = await checkPackageStatus(targetDir, packageName, pkgEntry, true, platforms);\n reports.push(targetPackage);\n reportMap.set(packageName, targetPackage);\n } catch (error) {\n logger.warn(`Failed to check package ${packageName}: ${error}`);\n targetPackage = {\n name: packageName,\n version: pkgEntry?.version,\n path: pkgEntry?.path ?? '',\n state: 'missing',\n totalFiles: 0,\n existingFiles: 0,\n fileList: [],\n dependencies: pkgEntry?.dependencies\n };\n reports.push(targetPackage);\n reportMap.set(packageName, targetPackage);\n }\n\n // Load the target package's dependencies as tree nodes\n const depNames = targetPackage.dependencies || [];\n for (const depName of depNames) {\n if (reportMap.has(depName)) continue;\n \n const depEntry = packages[depName];\n if (!depEntry) continue;\n \n try {\n const depReport = await checkPackageStatus(targetDir, depName, depEntry, includeFiles, platforms);\n reportMap.set(depName, depReport);\n } catch (error) {\n logger.debug(`Failed to load dependency ${depName}: ${error}`);\n }\n }\n\n // If full tree (deps view), recursively load nested dependencies\n if (all) {\n const loadNestedDeps = async (names: string[]) => {\n for (const name of names) {\n const report = reportMap.get(name);\n if (!report?.dependencies) continue;\n \n for (const nestedDepName of report.dependencies) {\n if (reportMap.has(nestedDepName)) continue;\n \n const nestedEntry = packages[nestedDepName];\n if (!nestedEntry) continue;\n \n try {\n const nestedReport = await checkPackageStatus(targetDir, nestedDepName, nestedEntry, includeFiles, platforms);\n reportMap.set(nestedDepName, nestedReport);\n \n if (nestedReport.dependencies && nestedReport.dependencies.length > 0) {\n await loadNestedDeps([nestedDepName]);\n }\n } catch (error) {\n logger.debug(`Failed to load nested dependency ${nestedDepName}: ${error}`);\n }\n }\n }\n };\n await loadNestedDeps(depNames);\n }\n\n // Build tree from the target package's dependencies (not the package itself)\n const tree = buildDependencyTree(depNames, reportMap, all);\n \n // When listing a specific package, also create a tree node for the target package itself\n // so its resources can be displayed\n const targetTreeNode: ListTreeNode = {\n report: targetPackage,\n children: tree\n };\n const treeWithTarget = [targetTreeNode];\n\n // Compute tracked/missing counts from reports\n const trackedCount = reports.reduce((sum, r) => sum + r.existingFiles, 0);\n const missingCount = reports.reduce((sum, r) => sum + (r.totalFiles - r.existingFiles), 0);\n\n // Scan untracked files unless --tracked flag is set\n let untrackedFiles: UntrackedScanResult | undefined;\n let untrackedCount = 0;\n if (!tracked) {\n untrackedFiles = await scanUntrackedFiles(targetDir, platforms);\n untrackedCount = untrackedFiles.totalFiles;\n }\n\n return {\n success: true,\n data: { packages: reports, tree: treeWithTarget, rootPackageNames: depNames, targetPackage, trackedCount, missingCount, untrackedCount, untrackedFiles }\n };\n }\n\n // Check all packages and build reports (include workspace package so its resources are listed)\n for (const [pkgName, pkgEntry] of Object.entries(packages)) {\n try {\n const report = await checkPackageStatus(targetDir, pkgName, pkgEntry, includeFiles, platforms);\n reports.push(report);\n reportMap.set(pkgName, report);\n } catch (error) {\n logger.warn(`Failed to check package ${pkgName}: ${error}`);\n const errorReport: ListPackageReport = {\n name: pkgName,\n version: pkgEntry?.version,\n path: pkgEntry?.path ?? '',\n state: 'missing',\n totalFiles: 0,\n existingFiles: 0,\n dependencies: pkgEntry?.dependencies\n };\n reports.push(errorReport);\n reportMap.set(pkgName, errorReport);\n }\n }\n\n // Build dependency tree from root packages\n const tree = buildDependencyTree(rootPackageNames, reportMap, all);\n\n // Compute tracked/missing counts from reports\n const trackedCount = reports.reduce((sum, r) => sum + r.existingFiles, 0);\n const missingCount = reports.reduce((sum, r) => sum + (r.totalFiles - r.existingFiles), 0);\n\n // Scan untracked files unless --tracked flag is set\n let untrackedFiles: UntrackedScanResult | undefined;\n let untrackedCount = 0;\n if (!tracked) {\n untrackedFiles = await scanUntrackedFiles(targetDir, platforms);\n untrackedCount = untrackedFiles.totalFiles;\n }\n\n return {\n success: true,\n data: { packages: reports, tree, rootPackageNames, trackedCount, missingCount, untrackedCount, untrackedFiles }\n };\n}\n", "/**\n * Resource Namespace Module\n *\n * Single source of truth for deriving category/namespace from paths.\n * Used by list pipeline, scope merger, and future consumers.\n */\n\nimport { stripExtension } from './resource-naming.js';\nimport { getResourceTypeDef, toPluralKey, type ResourceTypeId } from './resource-registry.js';\nimport { stripPlatformSuffixFromFilename } from '../flows/platform-suffix-handler.js';\n\n/**\n * Extract the path segment under a category directory from a full path.\n * Handles both source keys (rules/foo.mdc) and workspace paths (.cursor/rules/foo.mdc).\n *\n * @param path - Normalized path (source key, target, or workspace path)\n * @param categoryDir - The category directory (e.g., 'rules', 'agents')\n * @returns Path under category, or null if category not found\n */\nexport function getPathUnderCategory(path: string, categoryDir: string): string | null {\n const normalized = path.replace(/\\\\/g, '/').replace(/\\/$/, '');\n const parts = normalized.split('/');\n\n const idx = parts.indexOf(categoryDir);\n if (idx < 0) return null;\n\n const remaining = parts.slice(idx + 1);\n return remaining.length > 0 ? remaining.join('/') : '';\n}\n\n/**\n * Derive the namespace (path under category with extension stripped from last segment).\n * - File-based: \"basics/custom-rules.mdc\" \u2192 \"basics/custom-rules\"\n * - Skill: \"my-skill/readme.md\" \u2192 \"my-skill\" (first segment, directory-based)\n *\n * @param pathUnderCategory - Path under the category directory\n * @param resourceType - Singular type: rule, agent, skill, etc.\n */\nfunction deriveNamespace(pathUnderCategory: string, resourceType: ResourceTypeId): string {\n if (!pathUnderCategory || pathUnderCategory === '') return 'unnamed';\n\n const parts = pathUnderCategory.split('/');\n\n if (resourceType === 'skill') {\n return parts[0] || 'unnamed';\n }\n\n // Strip platform suffix (e.g. git-manager.opencode.md -> git-manager.md) so platform-specific\n // variants group under the same resource\n const pathStripped = stripPlatformSuffixFromFilename(pathUnderCategory);\n const strippedParts = pathStripped.split('/');\n const lastSegment = strippedParts[strippedParts.length - 1] ?? '';\n const nameWithoutExt = stripExtension(lastSegment);\n\n if (strippedParts.length === 1) {\n return nameWithoutExt || lastSegment;\n }\n\n const subpath = strippedParts.slice(0, -1).join('/');\n return subpath ? `${subpath}/${nameWithoutExt}` : nameWithoutExt;\n}\n\n/**\n * Derive the full resource identifier (category/namespace) from a path.\n *\n * @param path - Source key, target path, or workspace path\n * @param resourceType - Singular type: rule, agent, skill, command, hook, mcp, other\n * @returns Full name like \"rules/custom-rules\", \"rules/basics/custom-rules\", \"agents/agent-creator\"\n */\nexport function deriveResourceFullName(path: string, resourceType: ResourceTypeId): string {\n const normalizedType = resourceType as ResourceTypeId;\n\n if (normalizedType === 'mcp') {\n return 'mcps/configs';\n }\n\n if (normalizedType === 'other') {\n return 'other';\n }\n\n const def = getResourceTypeDef(normalizedType);\n const categoryDir = def.dirName;\n\n if (!categoryDir) {\n return `other/${deriveNamespace(path, 'other')}`;\n }\n\n const pathUnder = getPathUnderCategory(path, categoryDir);\n if (pathUnder === null) {\n const pluralKey = toPluralKey(normalizedType);\n const fallback = path.replace(/\\\\/g, '/').split('/').pop() ?? 'unnamed';\n return `${pluralKey}/${stripExtension(fallback)}`;\n }\n\n const namespace = deriveNamespace(pathUnder, normalizedType);\n const pluralKey = toPluralKey(normalizedType);\n return `${pluralKey}/${namespace}`;\n}\n", "/**\n * Entity Type Detection Utilities\n * \n * Determines whether a path represents a package, workspace, or generic resource.\n */\n\nimport { join } from 'path';\nimport { exists, isDirectory } from './fs.js';\n\n/**\n * Entity type classification\n */\nexport type EntityType = 'workspace' | 'package' | 'resource';\n\n/**\n * Detect the type of entity at a given path.\n * \n * Detection logic:\n * - workspace: Has .openpackage/openpackage.yml\n * - package: Has openpackage.yml, or has Claude plugin characteristics, or has standard package directories\n * - resource: Everything else (individual files, subdirectories without package markers)\n * \n * @param path - Absolute path to check\n * @returns Entity type\n */\nexport async function detectEntityType(path: string): Promise<EntityType> {\n // Check for workspace marker (.openpackage/openpackage.yml)\n const workspaceMarker = join(path, '.openpackage', 'openpackage.yml');\n if (await exists(workspaceMarker)) {\n return 'workspace';\n }\n\n // Check for package marker (openpackage.yml at root)\n const packageMarker = join(path, 'openpackage.yml');\n if (await exists(packageMarker)) {\n return 'package';\n }\n\n // Check for Claude plugin characteristics (.claude-plugin/plugin.json)\n const claudePluginMarker = join(path, '.claude-plugin', 'plugin.json');\n if (await exists(claudePluginMarker)) {\n return 'package';\n }\n\n // Check for standard package directories (agents/, skills/, commands/, rules/, hooks/)\n const packageDirs = ['agents', 'skills', 'commands', 'rules', 'hooks'];\n for (const dir of packageDirs) {\n const dirPath = join(path, dir);\n if (await exists(dirPath) && await isDirectory(dirPath)) {\n return 'package';\n }\n }\n\n // Default to resource for everything else\n return 'resource';\n}\n\n/**\n * Get the display name for an entity.\n * \n * For packages: reads name from openpackage.yml, falls back to directory name\n * For other types: uses the provided name\n * \n * @param path - Absolute path to the entity\n * @param fallbackName - Name to use if package name cannot be determined\n * @returns Display name\n */\nexport async function getEntityDisplayName(\n path: string,\n fallbackName: string\n): Promise<string> {\n const entityType = await detectEntityType(path);\n\n // For packages and workspaces, try to read the name from openpackage.yml\n if (entityType === 'package' || entityType === 'workspace') {\n try {\n const { parsePackageYml } = await import('./package-yml.js');\n const manifestPath = entityType === 'workspace'\n ? join(path, '.openpackage', 'openpackage.yml')\n : join(path, 'openpackage.yml');\n\n if (await exists(manifestPath)) {\n const manifest = await parsePackageYml(manifestPath);\n if (manifest.name) {\n return manifest.name;\n }\n }\n } catch (error) {\n // Fall through to use fallback name\n }\n }\n\n return fallbackName;\n}\n", "import type { ExecutionContext } from '../../types/index.js';\nimport { runListPipeline, type ListPackageReport, type ListTreeNode, type ListPipelineResult, type ListFileMapping } from './list-pipeline.js';\nimport { logger } from '../../utils/logger.js';\nimport { parsePackageYml } from '../../utils/package-yml.js';\nimport { getLocalPackageYmlPath } from '../../utils/paths.js';\nimport { getDisplayTargetDir } from '../../core/execution-context.js';\nimport type { UntrackedScanResult } from './untracked-files-scanner.js';\nimport { detectEntityType, getEntityDisplayName } from '../../utils/entity-detector.js';\nimport { formatPathForDisplay } from '../../utils/formatters.js';\nimport { resolveDeclaredPath } from '../../utils/path-resolution.js';\nimport { deriveResourceFullName } from '../resources/resource-namespace.js';\nimport { RESOURCE_TYPE_ORDER_PLURAL, normalizeType, toPluralKey } from '../resources/resource-registry.js';\nimport type { EnhancedFileMapping, EnhancedResourceInfo, EnhancedResourceGroup, ResourceScope } from './list-tree-renderer.js';\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\ntype FileStatus = 'tracked' | 'untracked' | 'missing';\ntype ResourceStatus = 'tracked' | 'partial' | 'untracked' | 'mixed';\n\nexport interface ScopeResult {\n headerName: string;\n headerVersion: string | undefined;\n headerPath: string;\n headerType: 'workspace' | 'package' | 'resource';\n tree: ListTreeNode[];\n data: ListPipelineResult;\n}\n\nexport interface HeaderInfo {\n name: string;\n version?: string;\n path: string;\n type: 'workspace' | 'package' | 'resource';\n}\n\ninterface ListPipelineOptions {\n files?: boolean;\n all?: boolean;\n tracked?: boolean;\n untracked?: boolean;\n platforms?: string[];\n remote?: boolean;\n}\n\n// ---------------------------------------------------------------------------\n// Scope data collection\n// ---------------------------------------------------------------------------\n\n/**\n * Run the list pipeline for a single execution context (one scope).\n * Returns null if no data found for the given package/scope.\n */\nasync function runScopeList(\n packageName: string | undefined,\n execContext: ExecutionContext,\n options: ListPipelineOptions\n): Promise<ScopeResult | null> {\n const skipLocal = options.remote && !!packageName;\n\n let packages: ListPackageReport[] = [];\n let tree: ListTreeNode[] = [];\n let data: ListPipelineResult | undefined;\n\n if (!skipLocal) {\n const result = await runListPipeline(packageName, execContext, {\n includeFiles: options.files || !!packageName,\n all: options.all,\n tracked: options.tracked,\n untracked: options.untracked,\n platforms: options.platforms\n });\n\n packages = result.data?.packages ?? [];\n tree = result.data?.tree ?? [];\n data = result.data!;\n }\n\n const hasUntrackedData = data?.untrackedFiles && data.untrackedFiles.totalFiles > 0;\n // If a specific package was requested but not found, return null to trigger remote fallback\n if (packageName && packages.length === 0) {\n return null;\n }\n // For general listing (no package specified), return null only if there's no data at all\n if (!data || (packages.length === 0 && !hasUntrackedData && !packageName)) {\n return null;\n }\n\n let headerName = 'Unnamed';\n let headerVersion: string | undefined;\n let headerPath: string;\n let headerType: 'workspace' | 'package' | 'resource';\n\n // When a specific package is queried, use the actual entity path and type\n if (packageName && data.targetPackage) {\n const targetPkg = data.targetPackage;\n \n // Resolve the actual filesystem path from the package path\n const resolved = resolveDeclaredPath(targetPkg.path, execContext.targetDir);\n const absolutePath = resolved.absolute;\n \n // Detect entity type based on the actual path\n headerType = await detectEntityType(absolutePath);\n \n // Get display name (from openpackage.yml if available, fallback to package name)\n headerName = await getEntityDisplayName(absolutePath, targetPkg.name);\n \n // Get version if available\n headerVersion = targetPkg.version;\n \n // Format the path for display\n headerPath = formatPathForDisplay(absolutePath);\n } else {\n // General workspace listing - use the workspace/targetDir info\n const displayDir = getDisplayTargetDir(execContext);\n headerPath = displayDir;\n \n // Detect entity type for the target directory\n headerType = await detectEntityType(execContext.targetDir);\n \n // Try to read name and version from manifest\n const manifestPath = getLocalPackageYmlPath(execContext.targetDir);\n try {\n const manifest = await parsePackageYml(manifestPath);\n headerName = manifest.name || 'Unnamed';\n headerVersion = manifest.version;\n } catch (error) {\n logger.debug(`Failed to read workspace manifest: ${error}`);\n }\n }\n\n return { headerName, headerVersion, headerPath, headerType, tree, data };\n}\n\n/**\n * Collect scoped data from project and/or global contexts.\n */\nexport async function collectScopedData(\n packageName: string | undefined,\n options: {\n showProject: boolean;\n showGlobal: boolean;\n pipelineOptions: ListPipelineOptions;\n cwd?: string;\n },\n createContext: (opts: { global: boolean; cwd?: string }) => Promise<ExecutionContext>\n): Promise<Array<{ scope: ResourceScope; result: ScopeResult }>> {\n const results: Array<{ scope: ResourceScope; result: ScopeResult }> = [];\n\n if (options.showProject) {\n const projectContext = await createContext({\n global: false,\n cwd: options.cwd\n });\n try {\n const projectResult = await runScopeList(packageName, projectContext, options.pipelineOptions);\n if (projectResult) {\n results.push({ scope: 'project', result: projectResult });\n }\n } catch (error) {\n logger.debug(`Failed to list project scope${packageName ? ` for package '${packageName}'` : ''}: ${error}`);\n }\n }\n\n if (options.showGlobal) {\n const globalContext = await createContext({\n global: true,\n cwd: options.cwd\n });\n try {\n const globalResult = await runScopeList(packageName, globalContext, options.pipelineOptions);\n if (globalResult) {\n results.push({ scope: 'global', result: globalResult });\n }\n } catch (error) {\n logger.debug(`Failed to list global scope${packageName ? ` for package '${packageName}'` : ''}: ${error}`);\n }\n }\n\n return results;\n}\n\n// ---------------------------------------------------------------------------\n// Resource merging\n// ---------------------------------------------------------------------------\n\nfunction normalizeCategory(category: string): string {\n return toPluralKey(normalizeType(category));\n}\n\nfunction calculateResourceStatus(files: EnhancedFileMapping[]): ResourceStatus {\n if (files.length === 0) return 'untracked';\n\n const hasTracked = files.some(f => f.status === 'tracked');\n const hasUntracked = files.some(f => f.status === 'untracked');\n const hasMissing = files.some(f => f.status === 'missing');\n\n if (hasUntracked && !hasTracked && !hasMissing) return 'untracked';\n if (hasTracked && !hasUntracked && !hasMissing) return 'tracked';\n if (hasTracked && hasMissing && !hasUntracked) return 'partial';\n return 'mixed';\n}\n\n/**\n * Merge tracked resources from tree nodes with untracked file scan results\n * into a unified list of EnhancedResourceGroups.\n */\nexport function mergeTrackedAndUntrackedResources(\n tree: ListTreeNode[],\n untrackedFiles: UntrackedScanResult | undefined,\n scope: ResourceScope\n): EnhancedResourceGroup[] {\n const typeMap = new Map<string, Map<string, EnhancedResourceInfo>>();\n\n function collectFromNode(node: ListTreeNode): void {\n if (node.report.resourceGroups) {\n for (const group of node.report.resourceGroups) {\n if (!typeMap.has(group.resourceType)) {\n typeMap.set(group.resourceType, new Map());\n }\n const resourcesMap = typeMap.get(group.resourceType)!;\n\n for (const resource of group.resources) {\n const pkgName = node.report.name;\n if (!resourcesMap.has(resource.name)) {\n const enhancedFiles: EnhancedFileMapping[] = resource.files.map(f => ({\n ...f,\n status: f.exists ? 'tracked' as FileStatus : 'missing' as FileStatus,\n scope\n }));\n\n resourcesMap.set(resource.name, {\n name: resource.name,\n resourceType: resource.resourceType,\n files: enhancedFiles,\n status: 'tracked',\n scopes: new Set([scope]),\n packages: new Set([pkgName])\n });\n } else {\n const existing = resourcesMap.get(resource.name)!;\n if (!existing.packages) existing.packages = new Set();\n existing.packages.add(pkgName);\n }\n }\n }\n }\n node.children.forEach(collectFromNode);\n }\n\n tree.forEach(collectFromNode);\n\n if (untrackedFiles && untrackedFiles.files.length > 0) {\n for (const file of untrackedFiles.files) {\n const singularType = normalizeType(file.category);\n const fullName = deriveResourceFullName(file.workspacePath, singularType);\n const normalizedType = normalizeCategory(file.category);\n\n if (!typeMap.has(normalizedType)) {\n typeMap.set(normalizedType, new Map());\n }\n const resourcesMap = typeMap.get(normalizedType)!;\n\n const enhancedFile: EnhancedFileMapping = {\n source: file.workspacePath,\n target: file.workspacePath,\n exists: true,\n status: 'untracked',\n scope\n };\n\n if (!resourcesMap.has(fullName)) {\n resourcesMap.set(fullName, {\n name: fullName,\n resourceType: normalizedType,\n files: [enhancedFile],\n status: 'untracked',\n scopes: new Set([scope])\n // no packages for untracked resources\n });\n } else {\n resourcesMap.get(fullName)!.files.push(enhancedFile);\n }\n }\n }\n\n for (const resourcesMap of typeMap.values()) {\n for (const resource of resourcesMap.values()) {\n resource.status = calculateResourceStatus(resource.files);\n }\n }\n\n const groups: EnhancedResourceGroup[] = [];\n\n for (const type of RESOURCE_TYPE_ORDER_PLURAL) {\n const resourcesMap = typeMap.get(type);\n if (resourcesMap && resourcesMap.size > 0) {\n const resources = Array.from(resourcesMap.values())\n .sort((a, b) => a.name.localeCompare(b.name));\n groups.push({ resourceType: type, resources });\n }\n }\n\n for (const [type, resourcesMap] of typeMap) {\n if (RESOURCE_TYPE_ORDER_PLURAL.includes(type)) continue;\n const resources = Array.from(resourcesMap.values())\n .sort((a, b) => a.name.localeCompare(b.name));\n groups.push({ resourceType: type, resources });\n }\n\n return groups;\n}\n\n/**\n * Merge resources from multiple scopes, deduplicating by resource name.\n */\nexport function mergeResourcesAcrossScopes(\n scopedResources: Array<{ scope: ResourceScope; groups: EnhancedResourceGroup[] }>\n): EnhancedResourceGroup[] {\n const typeMap = new Map<string, Map<string, EnhancedResourceInfo>>();\n\n for (const { scope, groups } of scopedResources) {\n for (const group of groups) {\n if (!typeMap.has(group.resourceType)) {\n typeMap.set(group.resourceType, new Map());\n }\n const resourcesMap = typeMap.get(group.resourceType)!;\n\n for (const resource of group.resources) {\n if (!resourcesMap.has(resource.name)) {\n resourcesMap.set(resource.name, {\n ...resource,\n scopes: new Set([scope]),\n files: [...resource.files],\n packages: resource.packages ? new Set(resource.packages) : undefined\n });\n } else {\n const existing = resourcesMap.get(resource.name)!;\n existing.scopes.add(scope);\n existing.files.push(...resource.files);\n existing.status = calculateResourceStatus(existing.files);\n if (resource.packages) {\n existing.packages = existing.packages ?? new Set();\n for (const pkg of resource.packages) {\n existing.packages.add(pkg);\n }\n }\n }\n }\n }\n }\n\n const groups: EnhancedResourceGroup[] = [];\n\n for (const type of RESOURCE_TYPE_ORDER_PLURAL) {\n const resourcesMap = typeMap.get(type);\n if (resourcesMap && resourcesMap.size > 0) {\n const resources = Array.from(resourcesMap.values())\n .sort((a, b) => a.name.localeCompare(b.name));\n groups.push({ resourceType: type, resources });\n }\n }\n\n for (const [type, resourcesMap] of typeMap) {\n if (RESOURCE_TYPE_ORDER_PLURAL.includes(type)) continue;\n const resources = Array.from(resourcesMap.values())\n .sort((a, b) => a.name.localeCompare(b.name));\n groups.push({ resourceType: type, resources });\n }\n\n return groups;\n}\n\n/**\n * Resolve header info for the workspace listing view.\n */\nexport async function resolveWorkspaceHeader(\n execContext: ExecutionContext\n): Promise<HeaderInfo> {\n const workspacePath = getDisplayTargetDir(execContext);\n const manifestPath = getLocalPackageYmlPath(execContext.targetDir);\n let name = 'Unnamed';\n let version: string | undefined;\n try {\n const manifest = await parsePackageYml(manifestPath);\n name = manifest.name || 'Unnamed';\n version = manifest.version;\n } catch {\n /* ignore */\n }\n const headerType = await detectEntityType(execContext.targetDir);\n return { name, version, path: workspacePath, type: headerType };\n}\n", "/**\n * Metadata extraction for view command output.\n * Separated to avoid circular dependencies between list-printers and remote-list-resolver.\n */\n\nimport type { PackageYml, PackageRepository } from '../../types/index.js';\n\nexport interface ViewMetadataEntry {\n key: string;\n value: string | boolean | string[];\n}\n\n/** Extract recognized manifest metadata for display (excludes dependencies) */\nexport function extractMetadataFromManifest(manifest: Partial<PackageYml>): ViewMetadataEntry[] {\n const entries: ViewMetadataEntry[] = [];\n const push = (key: string, value: unknown) => {\n if (value !== undefined && value !== null && value !== '') {\n entries.push({ key, value: value as string | boolean | string[] });\n }\n };\n push('name', manifest.name);\n push('version', manifest.version);\n push('description', manifest.description);\n push('keywords', manifest.keywords);\n push('author', manifest.author);\n push('license', manifest.license);\n push('homepage', manifest.homepage);\n if (manifest.repository) {\n const repo = manifest.repository as PackageRepository;\n const repoStr = repo.directory ? `${repo.url} (${repo.directory})` : repo.url;\n push('repository', repoStr);\n }\n if (manifest.private === true) push('private', true);\n if (manifest.partial === true) push('partial', true);\n return entries;\n}\n", "import type { ListPackageReport, ListTreeNode, ListResourceGroup, ListFileMapping } from './list-pipeline.js';\nimport type { RemoteListResult } from './remote-list-resolver.js';\nimport { flattenResourceGroups, renderFlatResourceList, getChildPrefix, type TreeRenderConfig, type EnhancedFileMapping, type EnhancedResourceGroup, type EnhancedResourceInfo, type ResourceScope } from './list-tree-renderer.js';\nimport { formatScopeBadge, formatPathForDisplay } from '../../utils/formatters.js';\nimport type { ScopeResult, HeaderInfo } from './scope-data-collector.js';\nimport type { ViewMetadataEntry } from './view-metadata.js';\nimport type { OutputPort } from '../ports/output.js';\nimport { resolveOutput } from '../ports/resolve.js';\n\nexport type { ViewMetadataEntry } from './view-metadata.js';\nexport { extractMetadataFromManifest } from './view-metadata.js';\n\nexport function printMetadataSection(metadata: ViewMetadataEntry[], output?: OutputPort): void {\n const out = output ?? resolveOutput();\n out.info(sectionHeader('Metadata', metadata.length));\n metadata.forEach((entry) => {\n const valueStr = Array.isArray(entry.value)\n ? entry.value.join(', ')\n : String(entry.value);\n out.info(`${dim(entry.key + ':')} ${valueStr}`);\n });\n}\n\n// ---------------------------------------------------------------------------\n// ANSI helpers\n// ---------------------------------------------------------------------------\n\nconst DIM = '\\x1b[2m';\nconst RESET = '\\x1b[0m';\nconst RED = '\\x1b[31m';\nconst CYAN = '\\x1b[36m';\n\nexport function dim(text: string): string {\n return `${DIM}${text}${RESET}`;\n}\n\nexport function cyan(text: string): string {\n return `${CYAN}${text}${RESET}`;\n}\n\nfunction red(text: string): string {\n return `${RED}${text}${RESET}`;\n}\n\nexport function sectionHeader(title: string, count: number): string {\n return `${cyan(`[${title}]`)} ${dim(`(${count})`)}`;\n}\n\n// ---------------------------------------------------------------------------\n// Formatting helpers\n// ---------------------------------------------------------------------------\n\nfunction formatPackageLine(pkg: ListPackageReport): string {\n const version = pkg.version && pkg.version !== '0.0.0' ? `@${pkg.version}` : '';\n\n let stateSuffix = '';\n if (pkg.state === 'missing') {\n stateSuffix = dim(' (missing)');\n }\n\n return `${pkg.name}${version}${stateSuffix}`;\n}\n\nfunction formatFilePath(file: EnhancedFileMapping): string {\n if (file.scope === 'global' && !file.target.startsWith('~')) {\n return `~/${file.target}`;\n }\n return file.target;\n}\n\n// ---------------------------------------------------------------------------\n// File and resource group printing\n// ---------------------------------------------------------------------------\n\nfunction printFileList(\n files: { source: string; target: string; exists: boolean }[],\n prefix: string,\n out: OutputPort\n): void {\n const sortedFiles = [...files].sort((a, b) => a.target.localeCompare(b.target));\n\n for (let i = 0; i < sortedFiles.length; i++) {\n const file = sortedFiles[i];\n const isLast = i === sortedFiles.length - 1;\n const connector = isLast ? '\u2514\u2500\u2500 ' : '\u251C\u2500\u2500 ';\n const label = file.exists\n ? dim(file.target)\n : `${dim(file.target)} ${red('[MISSING]')}`;\n out.info(`${prefix}${connector}${label}`);\n }\n}\n\n/** Config for rendering ListFileMapping (deps view, remote package detail) */\nconst LIST_FILE_CONFIG: TreeRenderConfig<ListFileMapping> = {\n formatPath: (file) => file.target,\n isMissing: (file) => !file.exists,\n sortFiles: (a, b) => a.target.localeCompare(b.target)\n};\n\nfunction printResourceGroups(\n groups: ListResourceGroup[],\n prefix: string,\n showFiles: boolean\n): void {\n const flatResources = flattenResourceGroups(groups);\n renderFlatResourceList(flatResources, prefix, showFiles, LIST_FILE_CONFIG);\n}\n\n// ---------------------------------------------------------------------------\n// Remote package detail\n// ---------------------------------------------------------------------------\n\nexport function printRemotePackageDetail(\n result: RemoteListResult,\n showFiles: boolean,\n showDeps: boolean,\n output?: OutputPort\n): void {\n const out = output ?? resolveOutput();\n const pkg = result.package;\n out.info(`${formatPackageLine(pkg)} ${dim(`(${result.sourceLabel})`)} ${dim('[remote]')}`);\n\n // [Metadata] section (first)\n const metadata = result.metadata ?? [];\n printMetadataSection(metadata, out);\n\n // Resource count: from groups (flattened), file list, or 0\n const resourceCount = pkg.resourceGroups && pkg.resourceGroups.length > 0\n ? flattenResourceGroups(pkg.resourceGroups).length\n : (pkg.fileList?.length ?? 0);\n out.info(sectionHeader('Resources', resourceCount));\n\n // Show resource groups if available (preferred view)\n if (pkg.resourceGroups && pkg.resourceGroups.length > 0) {\n printResourceGroups(pkg.resourceGroups, '', showFiles);\n }\n // Fallback to file list if no resource groups but files exist\n else if (pkg.fileList && pkg.fileList.length > 0) {\n printFileList(pkg.fileList, '', out);\n }\n // If no content available at all, show a message\n else if (pkg.totalFiles === 0) {\n out.info(dim('\u2514\u2500\u2500 (no files)'));\n }\n\n if (showDeps) {\n out.info(sectionHeader('Dependencies', result.dependencies.length));\n result.dependencies.forEach((dep, index) => {\n const isLast = index === result.dependencies.length - 1;\n const connector = isLast ? '\u2514\u2500\u2500 ' : '\u251C\u2500\u2500 ';\n const versionSuffix = dep.version ? `@${dep.version}` : '';\n out.info(`${connector}${dep.name}${versionSuffix}`);\n });\n }\n}\n\n// ---------------------------------------------------------------------------\n// Deps view\n// ---------------------------------------------------------------------------\n\ninterface DepsPackageEntry {\n report: ListPackageReport;\n children: ListTreeNode[];\n scopes: Set<ResourceScope>;\n}\n\nfunction printDepTreeNode(\n node: ListTreeNode,\n prefix: string,\n isLast: boolean,\n showFiles: boolean,\n out: OutputPort\n): void {\n const hasChildren = node.children.length > 0;\n const hasFiles = showFiles && node.report.fileList && node.report.fileList.length > 0;\n const hasBranches = hasChildren || hasFiles;\n\n const connector = isLast\n ? (hasBranches ? '\u2514\u2500\u252C ' : '\u2514\u2500\u2500 ')\n : (hasBranches ? '\u251C\u2500\u252C ' : '\u251C\u2500\u2500 ');\n const childPrefix = getChildPrefix(prefix, isLast);\n\n out.info(`${prefix}${connector}${formatPackageLine(node.report)}`);\n\n if (hasFiles) {\n printFileList(node.report.fileList!, childPrefix, out);\n }\n\n node.children.forEach((child, index) => {\n const isLastChild = index === node.children.length - 1;\n printDepTreeNode(child, childPrefix, isLastChild, showFiles, out);\n });\n}\n\nexport function printDepsView(\n results: Array<{ scope: ResourceScope; result: ScopeResult }>,\n showFiles: boolean,\n headerInfo?: HeaderInfo,\n output?: OutputPort\n): void {\n const out = output ?? resolveOutput();\n const packageMap = new Map<string, DepsPackageEntry>();\n\n for (const { scope, result } of results) {\n for (const node of result.tree) {\n const key = node.report.name;\n if (packageMap.has(key)) {\n packageMap.get(key)!.scopes.add(scope);\n } else {\n packageMap.set(key, {\n report: node.report,\n children: node.children,\n scopes: new Set([scope])\n });\n }\n }\n }\n\n if (packageMap.size === 0) {\n out.info(dim('No packages installed.'));\n return;\n }\n\n // Option 1: When workspace is the header, exclude it from the tree to avoid duplication.\n // Its files are shown under the header when -f is used.\n let workspaceEntry: DepsPackageEntry | undefined;\n if (headerInfo?.type === 'workspace' && headerInfo.name) {\n workspaceEntry = packageMap.get(headerInfo.name);\n if (workspaceEntry) {\n packageMap.delete(headerInfo.name);\n }\n }\n\n // Print header showing workspace/package name and path\n if (headerInfo) {\n const version = headerInfo.version ? `@${headerInfo.version}` : '';\n const typeTag = dim(`[${headerInfo.type}]`);\n out.info(`${headerInfo.name}${version} ${dim(`(${headerInfo.path})`)} ${typeTag}`);\n } else if (results.length > 0) {\n const firstResult = results[0].result;\n const version = firstResult.headerVersion ? `@${firstResult.headerVersion}` : '';\n const typeTag = dim(`[${firstResult.headerType}]`);\n out.info(`${firstResult.headerName}${version} ${dim(`(${firstResult.headerPath})`)} ${typeTag}`);\n }\n\n const entries = Array.from(packageMap.values())\n .sort((a, b) => a.report.name.localeCompare(b.report.name));\n\n out.info(sectionHeader('Dependencies', entries.length));\n\n // If workspace was excluded, show its files under the header when -f is used.\n // Use empty prefix so workspace files appear as siblings of dep entries.\n if (workspaceEntry && showFiles && workspaceEntry.report.fileList && workspaceEntry.report.fileList.length > 0) {\n printFileList(workspaceEntry.report.fileList, '', out);\n }\n\n for (let i = 0; i < entries.length; i++) {\n const entry = entries[i];\n const isLast = i === entries.length - 1;\n const hasChildren = entry.children.length > 0;\n const hasFiles = showFiles && entry.report.fileList && entry.report.fileList.length > 0;\n const hasBranches = hasChildren || hasFiles;\n\n const scopeBadge = dim(formatScopeBadge(entry.scopes));\n const connector = isLast\n ? (hasBranches ? '\u2514\u2500\u252C ' : '\u2514\u2500\u2500 ')\n : (hasBranches ? '\u251C\u2500\u252C ' : '\u251C\u2500\u2500 ');\n const childPrefix = getChildPrefix('', isLast);\n\n out.info(`${connector}${formatPackageLine(entry.report)} ${scopeBadge}`);\n\n // Show flat file list for the package when -f is requested\n if (hasFiles) {\n printFileList(entry.report.fileList!, childPrefix, out);\n }\n\n for (let ci = 0; ci < entry.children.length; ci++) {\n const child = entry.children[ci];\n const isLastChild = ci === entry.children.length - 1;\n printDepTreeNode(child, childPrefix, isLastChild, showFiles, out);\n }\n }\n}\n\n// ---------------------------------------------------------------------------\n// Resources view (default)\n// ---------------------------------------------------------------------------\n\nexport function printResourcesView(\n groups: EnhancedResourceGroup[],\n showFiles: boolean,\n headerInfo?: HeaderInfo,\n options?: {\n showScopeBadges?: boolean;\n pathBaseForDisplay?: string;\n metadata?: ViewMetadataEntry[];\n },\n output?: OutputPort\n): void {\n const out = output ?? resolveOutput();\n // Print header showing workspace/package name and path if provided\n if (headerInfo) {\n const version = headerInfo.version ? `@${headerInfo.version}` : '';\n const typeTag = dim(`[${headerInfo.type}]`);\n out.info(`${headerInfo.name}${version} ${dim(`(${headerInfo.path})`)} ${typeTag}`);\n }\n\n // [Metadata] section (first, when provided)\n if (options?.metadata !== undefined) {\n printMetadataSection(options.metadata, out);\n }\n\n const showScopeBadges = options?.showScopeBadges !== false;\n const pathBase = options?.pathBaseForDisplay;\n\n // Show package label only when listing workspace (not a specific package).\n // Temporarily disabled behind feature flag; set OPKG_LIST_SHOW_PACKAGE_LABELS=true to enable.\n const showPackageLabels =\n headerInfo?.type !== 'package' &&\n process.env.OPKG_LIST_SHOW_PACKAGE_LABELS === 'true';\n\n const config: TreeRenderConfig<EnhancedFileMapping> = {\n formatPath: (file) =>\n pathBase ? formatPathForDisplay(file.target, pathBase) : formatFilePath(file),\n isMissing: (file) => file.status === 'missing',\n sortFiles: (a, b) => {\n const pathA = pathBase ? formatPathForDisplay(a.target, pathBase) : formatFilePath(a);\n const pathB = pathBase ? formatPathForDisplay(b.target, pathBase) : formatFilePath(b);\n return pathA.localeCompare(pathB);\n },\n ...(showScopeBadges && {\n getResourceBadge: (scopes) => scopes ? dim(formatScopeBadge(scopes)) : ''\n }),\n ...(showPackageLabels && {\n getResourcePackageLabels: (packages) => {\n if (!packages || packages.size === 0) return [];\n return Array.from(packages)\n .sort()\n .map((pkg) => dim(`(${pkg})`));\n }\n })\n };\n\n const flatResources = flattenResourceGroups(groups);\n out.info(sectionHeader('Installed', flatResources.length));\n renderFlatResourceList(flatResources, '', showFiles, config);\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["path", "pluralKey", "untrackedFiles", "tree", "trackedCount", "missingCount", "untrackedCount", "path", "parsePackageYml", "groups"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
// ../core/src/core/interaction-policy.ts
|
|
4
|
+
function createInteractionPolicy(options) {
|
|
5
|
+
let isTTY = process.stdin.isTTY === !0, mode;
|
|
6
|
+
if (options.interactive) {
|
|
7
|
+
if (!isTTY)
|
|
8
|
+
throw new Error(
|
|
9
|
+
"--interactive requires an interactive terminal (TTY). Use specific filters (--agents, --skills, etc.) for non-interactive installs."
|
|
10
|
+
);
|
|
11
|
+
mode = "always";
|
|
12
|
+
} else !isTTY || process.env.CI === "true" ? mode = "never" : mode = "auto";
|
|
13
|
+
return {
|
|
14
|
+
mode,
|
|
15
|
+
isTTY,
|
|
16
|
+
canPrompt(tier) {
|
|
17
|
+
return mode === "never" ? !1 : mode === "always" ? !0 : tier < 4 /* OptionalMenu */;
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export {
|
|
23
|
+
createInteractionPolicy
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=chunk-SVEFLCC2.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../core/src/core/interaction-policy.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Interaction Policy\n * \n * Single source of truth for whether the CLI can prompt the user.\n * Created once at command entry and threaded through all handlers.\n * \n * Prompt Tiers:\n * 0 - Required: Platform selection, marketplace plugin pick\n * 1 - Disambiguation: Ambiguous base directory selection\n * 2 - Confirmation: Overwrite confirmations\n * 3 - ConflictResolution: Version conflict selection\n * 4 - OptionalMenu: --interactive resource selection menus\n */\n\nexport enum PromptTier {\n Required = 0,\n Disambiguation = 1,\n Confirmation = 2,\n ConflictResolution = 3,\n OptionalMenu = 4,\n}\n\nexport type InteractionMode = 'never' | 'auto' | 'always';\n\nexport interface InteractionPolicy {\n readonly mode: InteractionMode;\n readonly isTTY: boolean;\n canPrompt(tier: PromptTier): boolean;\n}\n\n/**\n * Create an interaction policy from command options.\n * \n * Mode resolution:\n * --interactive + TTY \u2192 'always' (all tiers allowed)\n * --interactive + !TTY \u2192 throws (user explicitly asked for interactive)\n * CI=true or !TTY \u2192 'never' (no prompts, errors or safe defaults)\n * default TTY \u2192 'auto' (ambient prompts for tiers 0-3, never tier 4)\n */\nexport function createInteractionPolicy(options: {\n interactive?: boolean;\n force?: boolean;\n}): InteractionPolicy {\n const isTTY = process.stdin.isTTY === true;\n\n let mode: InteractionMode;\n if (options.interactive) {\n if (!isTTY) {\n throw new Error(\n '--interactive requires an interactive terminal (TTY). ' +\n 'Use specific filters (--agents, --skills, etc.) for non-interactive installs.'\n );\n }\n mode = 'always';\n } else if (!isTTY || process.env.CI === 'true') {\n mode = 'never';\n } else {\n mode = 'auto';\n }\n\n return {\n mode,\n isTTY,\n canPrompt(tier: PromptTier): boolean {\n if (mode === 'never') return false;\n if (mode === 'always') return true;\n // 'auto': allow ambient prompts (tiers 0-3), never tier 4 (optional menus)\n return tier < PromptTier.OptionalMenu;\n }\n };\n}\n"],
|
|
5
|
+
"mappings": ";;;AAuCO,SAAS,wBAAwB,SAGlB;AACpB,MAAM,QAAQ,QAAQ,MAAM,UAAU,IAElC;AACJ,MAAI,QAAQ,aAAa;AACvB,QAAI,CAAC;AACH,YAAM,IAAI;AAAA,QACR;AAAA,MAEF;AAEF,WAAO;AAAA,EACT,MAAO,CAAI,CAAC,SAAS,QAAQ,IAAI,OAAO,SACtC,OAAO,UAEP,OAAO;AAGT,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,UAAU,MAA2B;AACnC,aAAI,SAAS,UAAgB,KACzB,SAAS,WAAiB,KAEvB,OAAO;AAAA,IAChB;AAAA,EACF;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
DIR_PATTERNS,
|
|
4
|
+
FILE_PATTERNS,
|
|
5
|
+
UNVERSIONED
|
|
6
|
+
} from "./chunk-J4IFFBLP.js";
|
|
7
|
+
import {
|
|
8
|
+
ensureDir,
|
|
9
|
+
exists,
|
|
10
|
+
readTextFile,
|
|
11
|
+
writeTextFile
|
|
12
|
+
} from "./chunk-S47F4OG4.js";
|
|
13
|
+
import {
|
|
14
|
+
ValidationError
|
|
15
|
+
} from "./chunk-ID4SVDQZ.js";
|
|
16
|
+
import {
|
|
17
|
+
logger
|
|
18
|
+
} from "./chunk-5EFWGD33.js";
|
|
19
|
+
|
|
20
|
+
// ../core/src/utils/version-generator.ts
|
|
21
|
+
import * as semver from "semver";
|
|
22
|
+
function extractBaseVersion(version) {
|
|
23
|
+
let hyphenIndex = version.indexOf("-"), candidate = hyphenIndex === -1 ? version : version.slice(0, hyphenIndex), parsed = semver.parse(candidate);
|
|
24
|
+
return parsed ? `${parsed.major}.${parsed.minor}.${parsed.patch}` : candidate;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// ../core/src/core/package-versioning.ts
|
|
28
|
+
import * as semver2 from "semver";
|
|
29
|
+
import yaml from "js-yaml";
|
|
30
|
+
function isUnversionedVersion(version) {
|
|
31
|
+
return version == null || version === UNVERSIONED;
|
|
32
|
+
}
|
|
33
|
+
function formatVersionLabel(version) {
|
|
34
|
+
return isUnversionedVersion(version) ? UNVERSIONED : version;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// ../core/src/utils/tarball.ts
|
|
38
|
+
import * as tar from "tar";
|
|
39
|
+
import { createHash } from "crypto";
|
|
40
|
+
import { unlink, readdir, stat, readFile, writeFile } from "fs/promises";
|
|
41
|
+
import { join } from "path";
|
|
42
|
+
import { tmpdir } from "os";
|
|
43
|
+
async function createTarballFromPackage(pkg) {
|
|
44
|
+
logger.debug(`Creating tarball for package: ${pkg.metadata.name}@${pkg.metadata.version}`);
|
|
45
|
+
let tempDir = join(tmpdir(), `openpackage-tarball-${Date.now()}`), tarballPath = join(tempDir, "package.tar.gz");
|
|
46
|
+
try {
|
|
47
|
+
await ensureDir(tempDir);
|
|
48
|
+
for (let file of pkg.files) {
|
|
49
|
+
let filePath = join(tempDir, file.path);
|
|
50
|
+
await ensureDir(join(filePath, "..")), await writeTextFile(filePath, file.content, file.encoding || "utf8");
|
|
51
|
+
}
|
|
52
|
+
await tar.create(
|
|
53
|
+
{
|
|
54
|
+
gzip: !0,
|
|
55
|
+
file: tarballPath,
|
|
56
|
+
cwd: tempDir
|
|
57
|
+
},
|
|
58
|
+
pkg.files.map((f) => f.path)
|
|
59
|
+
);
|
|
60
|
+
let tarballBuffer = await readFile(tarballPath), checksum = createHash("sha256").update(tarballBuffer).digest("hex");
|
|
61
|
+
return logger.debug(`Tarball created: ${tarballBuffer.length} bytes, checksum: ${checksum}`), {
|
|
62
|
+
buffer: tarballBuffer,
|
|
63
|
+
size: tarballBuffer.length,
|
|
64
|
+
checksum
|
|
65
|
+
};
|
|
66
|
+
} catch (error) {
|
|
67
|
+
throw logger.error("Failed to create tarball", { error, packageName: pkg.metadata.name }), new ValidationError(`Failed to create tarball: ${error}`);
|
|
68
|
+
} finally {
|
|
69
|
+
try {
|
|
70
|
+
await exists(tarballPath) && await unlink(tarballPath);
|
|
71
|
+
} catch (cleanupError) {
|
|
72
|
+
logger.warn("Failed to clean up temp files", { cleanupError });
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
async function extractPackageFromTarball(tarballBuffer, expectedChecksum) {
|
|
77
|
+
logger.debug(`Extracting package from tarball (${tarballBuffer.length} bytes)`);
|
|
78
|
+
let tempDir = join(tmpdir(), `openpackage-extract-${Date.now()}`), isGzipBuffer = (buffer) => buffer.length >= 2 && buffer[0] === 31 && buffer[1] === 139, previewBufferAsText = (buffer, maxBytes = 200) => buffer.subarray(0, Math.min(maxBytes, buffer.length)).toString("utf8").replace(/[\u0000-\u0008\u000B\u000C\u000E-\u001F\u007F]/g, "\uFFFD"), isGzip = isGzipBuffer(tarballBuffer), tarballPath = join(tempDir, isGzip ? "package.tar.gz" : "package.tar");
|
|
79
|
+
try {
|
|
80
|
+
let actualChecksum = createHash("sha256").update(tarballBuffer).digest("hex");
|
|
81
|
+
if (expectedChecksum && actualChecksum !== expectedChecksum)
|
|
82
|
+
throw new ValidationError(
|
|
83
|
+
`Tarball checksum mismatch. Expected: ${expectedChecksum}, Got: ${actualChecksum}`
|
|
84
|
+
);
|
|
85
|
+
await ensureDir(tempDir), await writeFile(tarballPath, tarballBuffer), await tar.extract({
|
|
86
|
+
file: tarballPath,
|
|
87
|
+
cwd: tempDir
|
|
88
|
+
});
|
|
89
|
+
let files = [], extractFiles = async (dir, basePath = "") => {
|
|
90
|
+
let entries = await readdir(dir);
|
|
91
|
+
for (let entry of entries) {
|
|
92
|
+
let fullPath = join(dir, entry), relativePath = basePath ? join(basePath, entry) : entry, stats = await stat(fullPath);
|
|
93
|
+
if (stats.isFile()) {
|
|
94
|
+
let content = await readTextFile(fullPath);
|
|
95
|
+
files.push({
|
|
96
|
+
path: relativePath,
|
|
97
|
+
content,
|
|
98
|
+
encoding: "utf8"
|
|
99
|
+
});
|
|
100
|
+
} else stats.isDirectory() && await extractFiles(fullPath, relativePath);
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
await extractFiles(tempDir);
|
|
104
|
+
let filteredFiles = files.filter((f) => f.path !== "package.tar.gz" && f.path !== "package.tar");
|
|
105
|
+
return logger.debug(`Extracted ${filteredFiles.length} files from tarball`), {
|
|
106
|
+
files: filteredFiles,
|
|
107
|
+
checksum: actualChecksum
|
|
108
|
+
};
|
|
109
|
+
} catch (error) {
|
|
110
|
+
let hint = (() => {
|
|
111
|
+
if (isGzip)
|
|
112
|
+
return;
|
|
113
|
+
let preview = previewBufferAsText(tarballBuffer), trimmed = preview.trimStart();
|
|
114
|
+
return trimmed.startsWith("{") || trimmed.startsWith("[") || trimmed.startsWith("<") ? `Downloaded payload does not look like a tarball (starts with: '${trimmed.slice(0, 60)}')` : `Downloaded payload does not look gzip-compressed (first bytes: '${preview.slice(0, 60)}')`;
|
|
115
|
+
})();
|
|
116
|
+
logger.error("Failed to extract tarball", { error, isGzip, hint });
|
|
117
|
+
let baseMessage = error instanceof Error ? error.message : String(error);
|
|
118
|
+
throw new ValidationError(hint ? `${baseMessage}. ${hint}` : `Failed to extract tarball: ${baseMessage}`);
|
|
119
|
+
} finally {
|
|
120
|
+
try {
|
|
121
|
+
await exists(tarballPath) && await unlink(tarballPath);
|
|
122
|
+
} catch (cleanupError) {
|
|
123
|
+
logger.warn("Failed to clean up temp files", { cleanupError });
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
function createFormDataForUpload(packageName, version, tarballInfo) {
|
|
128
|
+
let formData = new FormData();
|
|
129
|
+
formData.append("name", packageName), version && formData.append("version", version);
|
|
130
|
+
let blob = new Blob([tarballInfo.buffer], { type: "application/gzip" }), filename = version ? `${packageName}-${version}${FILE_PATTERNS.TGZ_FILES}` : `${packageName}-${UNVERSIONED}${FILE_PATTERNS.TGZ_FILES}`;
|
|
131
|
+
return formData.append("file", blob, filename), formData;
|
|
132
|
+
}
|
|
133
|
+
function verifyTarballIntegrity(buffer, expectedSize, expectedChecksum) {
|
|
134
|
+
try {
|
|
135
|
+
if (expectedSize && buffer.length !== expectedSize)
|
|
136
|
+
return logger.warn("Tarball size mismatch", {
|
|
137
|
+
expected: expectedSize,
|
|
138
|
+
actual: buffer.length
|
|
139
|
+
}), !1;
|
|
140
|
+
if (expectedChecksum) {
|
|
141
|
+
let actualChecksum = createHash("sha256").update(buffer).digest("hex");
|
|
142
|
+
if (actualChecksum !== expectedChecksum)
|
|
143
|
+
return logger.warn("Tarball checksum mismatch", {
|
|
144
|
+
expected: expectedChecksum,
|
|
145
|
+
actual: actualChecksum
|
|
146
|
+
}), !1;
|
|
147
|
+
}
|
|
148
|
+
return !0;
|
|
149
|
+
} catch (error) {
|
|
150
|
+
return logger.error("Tarball integrity check failed", { error }), !1;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
// ../core/src/core/install/plugin-detector.ts
|
|
155
|
+
import { join as join2 } from "path";
|
|
156
|
+
import { promises as fs } from "fs";
|
|
157
|
+
async function detectPluginType(dirPath) {
|
|
158
|
+
let pluginDir = join2(dirPath, DIR_PATTERNS.CLAUDE_PLUGIN), pluginManifestPath = join2(pluginDir, FILE_PATTERNS.PLUGIN_JSON);
|
|
159
|
+
if (await exists(pluginManifestPath))
|
|
160
|
+
return logger.info("Detected individual Claude Code plugin", { path: pluginManifestPath }), {
|
|
161
|
+
isPlugin: !0,
|
|
162
|
+
type: "individual",
|
|
163
|
+
manifestPath: pluginManifestPath
|
|
164
|
+
};
|
|
165
|
+
let marketplaceManifestPath = join2(pluginDir, FILE_PATTERNS.MARKETPLACE_JSON);
|
|
166
|
+
return await exists(marketplaceManifestPath) ? (logger.info("Detected Claude Code plugin marketplace", { path: marketplaceManifestPath }), {
|
|
167
|
+
isPlugin: !0,
|
|
168
|
+
type: "marketplace",
|
|
169
|
+
manifestPath: marketplaceManifestPath
|
|
170
|
+
}) : { isPlugin: !1 };
|
|
171
|
+
}
|
|
172
|
+
async function detectPluginWithMarketplace(dirPath, marketplaceEntry) {
|
|
173
|
+
let standardDetection = await detectPluginType(dirPath);
|
|
174
|
+
return standardDetection.isPlugin ? standardDetection : marketplaceEntry?.strict === !1 && await hasPluginContent(dirPath) ? (logger.info("Detected marketplace-defined plugin (strict:false)", {
|
|
175
|
+
dirPath,
|
|
176
|
+
pluginName: marketplaceEntry.name
|
|
177
|
+
}), {
|
|
178
|
+
isPlugin: !0,
|
|
179
|
+
type: "marketplace-defined"
|
|
180
|
+
}) : { isPlugin: !1 };
|
|
181
|
+
}
|
|
182
|
+
async function hasPluginContent(dirPath) {
|
|
183
|
+
let pluginContentDirs = ["commands", "agents", "skills", "hooks"], pluginContentFiles = [".mcp.json", ".lsp.json"];
|
|
184
|
+
for (let subdir of pluginContentDirs) {
|
|
185
|
+
let subdirPath = join2(dirPath, subdir);
|
|
186
|
+
if (await exists(subdirPath))
|
|
187
|
+
try {
|
|
188
|
+
if ((await fs.readdir(subdirPath)).length > 0)
|
|
189
|
+
return !0;
|
|
190
|
+
} catch {
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
for (let file of pluginContentFiles) {
|
|
194
|
+
let filePath = join2(dirPath, file);
|
|
195
|
+
if (await exists(filePath))
|
|
196
|
+
return !0;
|
|
197
|
+
}
|
|
198
|
+
return !1;
|
|
199
|
+
}
|
|
200
|
+
async function validatePluginManifest(manifestPath) {
|
|
201
|
+
try {
|
|
202
|
+
let content = await readTextFile(manifestPath);
|
|
203
|
+
return JSON.parse(content), !0;
|
|
204
|
+
} catch (error) {
|
|
205
|
+
return logger.error("Failed to parse plugin manifest", { manifestPath, error }), !1;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
export {
|
|
210
|
+
extractBaseVersion,
|
|
211
|
+
isUnversionedVersion,
|
|
212
|
+
formatVersionLabel,
|
|
213
|
+
createTarballFromPackage,
|
|
214
|
+
extractPackageFromTarball,
|
|
215
|
+
createFormDataForUpload,
|
|
216
|
+
verifyTarballIntegrity,
|
|
217
|
+
detectPluginType,
|
|
218
|
+
detectPluginWithMarketplace,
|
|
219
|
+
hasPluginContent,
|
|
220
|
+
validatePluginManifest
|
|
221
|
+
};
|
|
222
|
+
//# sourceMappingURL=chunk-TFQ4JBVO.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../core/src/utils/version-generator.ts", "../../core/src/core/package-versioning.ts", "../../core/src/utils/tarball.ts", "../../core/src/core/install/plugin-detector.ts"],
|
|
4
|
+
"sourcesContent": ["import { createHash } from 'crypto';\nimport * as semver from 'semver';\n\n/**\n * Version generation utilities for local and WIP versions.\n */\n\nexport const WIP_TIMESTAMP_TOKEN_LENGTH = 6;\nexport const WORKSPACE_HASH_TOKEN_LENGTH = 8;\n// Length of the short workspace tag used in WIP versions (e.g. 3 base36 chars)\nexport const WIP_WORKSPACE_TAG_LENGTH = 3;\n\n\n\n/**\n * Extract the stable base (major.minor.patch) portion of a version string.\n *\n * - For any valid semver (including pre-releases like \"1.2.3-000fz8.a3k\"\n * or legacy \"1.2.3-wip.abc\"), this returns \"1.2.3\".\n * - For non-semver strings, it returns the portion before the first \"-\"\n * (if any), otherwise the input unchanged.\n */\nexport function extractBaseVersion(version: string): string {\n const hyphenIndex = version.indexOf('-');\n const candidate = hyphenIndex === -1 ? version : version.slice(0, hyphenIndex);\n\n const parsed = semver.parse(candidate);\n if (parsed) {\n return `${parsed.major}.${parsed.minor}.${parsed.patch}`;\n }\n return candidate;\n}\n\nconst TIMESTAMP_ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyz';\n\n/**\n * Encode a non-negative integer into a fixed-length base36-like string.\n * Values that exceed the requested length are truncated from the left (highest order digits).\n */\nexport function encodeBase62(value: number, length: number = WIP_TIMESTAMP_TOKEN_LENGTH): string {\n if (!Number.isFinite(value) || value < 0) {\n value = 0;\n }\n\n const base = TIMESTAMP_ALPHABET.length;\n let remaining = Math.floor(value);\n let encoded = '';\n\n do {\n const digit = remaining % base;\n encoded = `${TIMESTAMP_ALPHABET[digit]}${encoded}`;\n remaining = Math.floor(remaining / base);\n } while (remaining > 0);\n\n if (encoded.length < length) {\n encoded = encoded.padStart(length, '0');\n } else if (encoded.length > length) {\n encoded = encoded.slice(-length);\n }\n\n return encoded;\n}\n\n/**\n * Generate a 6-character base36 timestamp from the provided Date (defaults to now).\n */\nexport function generateBase62Timestamp(\n date: Date = new Date(),\n length: number = WIP_TIMESTAMP_TOKEN_LENGTH\n): string {\n const seconds = Math.floor(date.getTime() / 1000);\n return encodeBase62(seconds, length);\n}\n\n/**\n * Create a deterministic hash for the current workspace path.\n * Returns a lower-case hex slice (default 8 characters).\n */\nexport function createWorkspaceHash(\n inputPath: string,\n length: number = WORKSPACE_HASH_TOKEN_LENGTH\n): string {\n const normalizedPath = inputPath.replace(/\\\\/g, '/');\n const digest = createHash('sha256').update(normalizedPath).digest('hex');\n if (length <= 0) {\n return '';\n }\n if (digest.length <= length) {\n return digest.padEnd(length, '0');\n }\n return digest.slice(0, length);\n}\n\n/**\n * Sanitize a workspace hash string to a fixed length.\n * Internal helper used for tag generation.\n */\nfunction sanitizeWorkspaceHash(\n hash: string,\n length: number\n): string {\n const cleaned = (hash || '').toLowerCase().replace(/[^0-9a-z]/g, '');\n if (cleaned.length === 0) {\n return ''.padEnd(length, '0');\n }\n if (cleaned.length >= length) {\n return cleaned.slice(0, length);\n }\n return `${cleaned}${'0'.repeat(length - cleaned.length)}`;\n}\n\n/**\n * Create the workspace tag used in WIP versions.\n * Returns a 3-character tag derived from the workspace path hash.\n * This is the single source of truth for workspace tags used in version strings.\n */\nexport function createWorkspaceTag(inputPath: string): string {\n const workspaceHash = createWorkspaceHash(inputPath);\n return sanitizeWorkspaceHash(workspaceHash, WIP_WORKSPACE_TAG_LENGTH);\n}\n\n/**\n * Generate a WIP version string in the canonical S-<t>.<w> form.\n *\n * - `stable` is the normalized base stable version (e.g. \"1.2.3\").\n * - `workspacePath` is the workspace path; the tag is derived from it.\n * - `options.now` can be provided for deterministic testing.\n */\nexport function generateWipVersion(\n stable: string,\n workspacePath: string,\n options?: { now?: Date }\n): string {\n const timestampPart = generateBase62Timestamp(\n options?.now ?? new Date(),\n WIP_TIMESTAMP_TOKEN_LENGTH\n );\n const hashPart = createWorkspaceTag(workspacePath);\n return `${stable}-${timestampPart}.${hashPart}`;\n}\n\nexport interface ParsedWipVersion {\n baseStable: string;\n timestamp: string;\n workspaceHash: string;\n}\n\n/**\n * Parse a WIP version string.\n *\n * Supports the S-<t>.<w> scheme: {base}-{timestamp}.{workspaceTag} (e.g. 1.2.3-000fz8.a3k)\n */\nexport function parseWipVersion(version: string): ParsedWipVersion | null {\n const parsed = semver.parse(version);\n if (parsed && parsed.prerelease.length === 2) {\n const [timestamp, workspaceHash] = parsed.prerelease;\n if (typeof timestamp === 'string' && typeof workspaceHash === 'string') {\n return {\n baseStable: `${parsed.major}.${parsed.minor}.${parsed.patch}`,\n timestamp,\n workspaceHash\n };\n }\n }\n\n return null;\n}\n\nexport function extractWorkspaceHashFromVersion(version: string): string | null {\n const parsed = parseWipVersion(version);\n return parsed?.workspaceHash ?? null;\n}\n\n", "import * as semver from 'semver';\nimport yaml from 'js-yaml';\nimport { PackageFile, PackageYml } from '../types/index.js';\nimport { extractBaseVersion } from '../utils/version-generator.js';\nimport { getPackageVersionPath } from './directory.js';\nimport { exists } from '../utils/fs.js';\nimport { FILE_PATTERNS, UNVERSIONED } from '../constants/index.js';\nimport { isScopedName } from '../utils/package-name.js';\n\n/**\n * Compute stable version from a prerelease version\n * Example: \"1.2.3-dev.abc123\" -> \"1.2.3\"\n */\nexport function computeStableVersion(version: string): string {\n const parsed = semver.parse(version);\n if (parsed) {\n return `${parsed.major}.${parsed.minor}.${parsed.patch}`;\n }\n return extractBaseVersion(version);\n}\n\n/**\n * Dump YAML with proper quoting for scoped names (e.g., @scope/name)\n */\nexport function dumpYamlWithScopedQuoting(config: PackageYml, options: yaml.DumpOptions = {}): string {\n let dumped = yaml.dump(config, { flowLevel: 1, ...options, quotingType: '\"' });\n \n // Ensure scoped names are quoted\n if (isScopedName(config.name)) {\n const lines = dumped.split('\\n');\n for (let i = 0; i < lines.length; i++) {\n if (lines[i].trim().startsWith('name:')) {\n const valueMatch = lines[i].match(/name:\\s*(.+)$/);\n if (valueMatch) {\n const value = valueMatch[1].trim();\n if (!value.startsWith('\"') && !value.startsWith(\"'\")) {\n lines[i] = lines[i].replace(/name:\\s*(.+)$/, `name: \"${config.name}\"`);\n }\n }\n break;\n }\n }\n dumped = lines.join('\\n');\n }\n \n return dumped;\n}\n\n/**\n * Transform package files for version change only (no name change)\n * Updates openpackage.yml version field\n */\nexport function transformPackageFilesForVersionChange(\n files: PackageFile[],\n newVersion: string,\n packageName: string\n): PackageFile[] {\n return files.map((file) => {\n if (file.path === FILE_PATTERNS.OPENPACKAGE_YML) {\n try {\n const parsed = yaml.load(file.content) as PackageYml;\n const updated: PackageYml = {\n ...parsed,\n version: newVersion\n };\n const dumped = dumpYamlWithScopedQuoting(updated, { lineWidth: 120 });\n return { ...file, content: dumped };\n } catch {\n // Fallback: minimal rewrite if parsing fails\n const fallback: PackageYml = {\n name: packageName,\n version: newVersion\n };\n const dumped = dumpYamlWithScopedQuoting(fallback, { lineWidth: 120 });\n return { ...file, content: dumped };\n }\n }\n return file;\n });\n}\n\n/**\n * Check if a package version already exists\n */\nexport async function packageVersionExists(packageName: string, version?: string): Promise<boolean> {\n const targetPath = getPackageVersionPath(packageName, version ?? UNVERSIONED);\n return await exists(targetPath);\n}\n\n/**\n * Returns true when a version is absent or explicitly marked as unversioned.\n */\nexport function isUnversionedVersion(version?: string | null): boolean {\n return version === undefined || version === null || version === UNVERSIONED;\n}\n\n/**\n * Normalizes a version string for display/logging.\n */\nexport function formatVersionLabel(version?: string | null): string {\n return isUnversionedVersion(version) ? UNVERSIONED : (version as string);\n}\n\n/**\n * Filter a list of versions down to semver-valid stable releases.\n */\nexport function filterStableVersions(versions: string[]): string[] {\n return versions.filter((version) => semver.valid(version) && !semver.prerelease(version));\n}\n\n/**\n * Find the latest stable version from a list (returns null if none).\n */\nexport function getLatestStableVersion(versions: string[]): string | null {\n const stableVersions = filterStableVersions(versions);\n if (stableVersions.length === 0) {\n return null;\n }\n return semver.rsort(stableVersions)[0];\n}\n", "import * as tar from 'tar';\nimport { createHash } from 'crypto';\nimport { unlink, readdir, stat, readFile, writeFile } from 'fs/promises';\nimport { join } from 'path';\nimport { tmpdir } from 'os';\nimport { PackageFile, Package } from '../types/index.js';\nimport { logger } from './logger.js';\nimport { ValidationError } from './errors.js';\nimport { writeTextFile, readTextFile, ensureDir, exists } from './fs.js';\nimport { UNVERSIONED, FILE_PATTERNS } from '../constants/index.js';\n\n/**\n * Tarball utilities for package packaging and extraction\n */\n\nexport interface TarballInfo {\n buffer: Buffer;\n size: number;\n checksum: string;\n}\n\nexport interface ExtractedPackage {\n files: PackageFile[];\n checksum: string;\n}\n\n/**\n * Create a tarball from package files\n */\nexport async function createTarballFromPackage(pkg: Package): Promise<TarballInfo> {\n logger.debug(`Creating tarball for package: ${pkg.metadata.name}@${pkg.metadata.version}`);\n \n const tempDir = join(tmpdir(), `openpackage-tarball-${Date.now()}`);\n const tarballPath = join(tempDir, 'package.tar.gz');\n \n try {\n // Create temp directory\n await ensureDir(tempDir);\n \n // Write package files to temp directory\n for (const file of pkg.files) {\n const filePath = join(tempDir, file.path);\n await ensureDir(join(filePath, '..'));\n await writeTextFile(filePath, file.content, (file.encoding as BufferEncoding) || 'utf8');\n }\n \n // Create tarball\n await tar.create(\n {\n gzip: true,\n file: tarballPath,\n cwd: tempDir\n },\n pkg.files.map(f => f.path)\n );\n \n // Read tarball into buffer\n const tarballBuffer = await readFile(tarballPath);\n \n // Calculate checksum\n const checksum = createHash('sha256').update(tarballBuffer).digest('hex');\n \n logger.debug(`Tarball created: ${tarballBuffer.length} bytes, checksum: ${checksum}`);\n \n return {\n buffer: tarballBuffer,\n size: tarballBuffer.length,\n checksum\n };\n } catch (error) {\n logger.error('Failed to create tarball', { error, packageName: pkg.metadata.name });\n throw new ValidationError(`Failed to create tarball: ${error}`);\n } finally {\n // Clean up temp directory\n try {\n if (await exists(tarballPath)) {\n await unlink(tarballPath);\n }\n // Note: We're not removing the temp dir itself as it may have subdirectories\n // The OS temp cleanup will handle this\n } catch (cleanupError) {\n logger.warn('Failed to clean up temp files', { cleanupError });\n }\n }\n}\n\n/**\n * Extract package files from tarball buffer\n */\nexport async function extractPackageFromTarball(\n tarballBuffer: Buffer, \n expectedChecksum?: string\n): Promise<ExtractedPackage> {\n logger.debug(`Extracting package from tarball (${tarballBuffer.length} bytes)`);\n \n const tempDir = join(tmpdir(), `openpackage-extract-${Date.now()}`);\n\n const isGzipBuffer = (buffer: Buffer): boolean => {\n // gzip magic header: 1f 8b\n return buffer.length >= 2 && buffer[0] === 0x1f && buffer[1] === 0x8b;\n };\n\n const previewBufferAsText = (buffer: Buffer, maxBytes: number = 200): string => {\n const slice = buffer.subarray(0, Math.min(maxBytes, buffer.length));\n // Replace control characters to keep logs readable\n return slice\n .toString('utf8')\n .replace(/[\\u0000-\\u0008\\u000B\\u000C\\u000E-\\u001F\\u007F]/g, '\uFFFD');\n };\n\n const isGzip = isGzipBuffer(tarballBuffer);\n const tarballPath = join(tempDir, isGzip ? 'package.tar.gz' : 'package.tar');\n \n try {\n // Verify checksum if provided\n const actualChecksum = createHash('sha256').update(tarballBuffer).digest('hex');\n \n if (expectedChecksum && actualChecksum !== expectedChecksum) {\n throw new ValidationError(\n `Tarball checksum mismatch. Expected: ${expectedChecksum}, Got: ${actualChecksum}`\n );\n }\n \n // Create temp directory and write tarball\n await ensureDir(tempDir);\n await writeFile(tarballPath, tarballBuffer);\n \n // Extract tarball\n await tar.extract({\n file: tarballPath,\n cwd: tempDir\n });\n \n // Read extracted files\n const files: PackageFile[] = [];\n const extractFiles = async (dir: string, basePath: string = ''): Promise<void> => {\n const entries = await readdir(dir);\n \n for (const entry of entries) {\n const fullPath = join(dir, entry);\n const relativePath = basePath ? join(basePath, entry) : entry;\n \n const stats = await stat(fullPath);\n if (stats.isFile()) {\n const content = await readTextFile(fullPath);\n files.push({\n path: relativePath,\n content,\n encoding: 'utf8'\n });\n } else if (stats.isDirectory()) {\n await extractFiles(fullPath, relativePath);\n }\n }\n };\n \n await extractFiles(tempDir);\n \n // Remove the tarball file itself from the list\n const filteredFiles = files.filter(f => f.path !== 'package.tar.gz' && f.path !== 'package.tar');\n \n logger.debug(`Extracted ${filteredFiles.length} files from tarball`);\n \n return {\n files: filteredFiles,\n checksum: actualChecksum\n };\n } catch (error) {\n const hint = (() => {\n // If we didn't get gzip bytes, the first bytes are often informative (JSON/XML)\n if (isGzip) {\n return undefined;\n }\n const preview = previewBufferAsText(tarballBuffer);\n const trimmed = preview.trimStart();\n if (trimmed.startsWith('{') || trimmed.startsWith('[') || trimmed.startsWith('<')) {\n return `Downloaded payload does not look like a tarball (starts with: '${trimmed.slice(0, 60)}')`;\n }\n return `Downloaded payload does not look gzip-compressed (first bytes: '${preview.slice(0, 60)}')`;\n })();\n\n logger.error('Failed to extract tarball', { error, isGzip, hint });\n const baseMessage = error instanceof Error ? error.message : String(error);\n throw new ValidationError(hint ? `${baseMessage}. ${hint}` : `Failed to extract tarball: ${baseMessage}`);\n } finally {\n // Clean up temp files\n try {\n if (await exists(tarballPath)) {\n await unlink(tarballPath);\n }\n } catch (cleanupError) {\n logger.warn('Failed to clean up temp files', { cleanupError });\n }\n }\n}\n\n/**\n * Create FormData for multipart upload\n */\nexport function createFormDataForUpload(\n packageName: string,\n version: string | undefined,\n tarballInfo: TarballInfo\n): FormData {\n const formData = new FormData();\n \n // Add form fields\n formData.append('name', packageName);\n if (version) {\n formData.append('version', version);\n }\n \n // Add tarball file\n const blob = new Blob([tarballInfo.buffer], { type: 'application/gzip' });\n const filename = version ? `${packageName}-${version}${FILE_PATTERNS.TGZ_FILES}` : `${packageName}-${UNVERSIONED}${FILE_PATTERNS.TGZ_FILES}`;\n formData.append('file', blob, filename);\n \n return formData;\n}\n\n/**\n * Verify tarball integrity\n */\nexport function verifyTarballIntegrity(\n buffer: Buffer,\n expectedSize?: number,\n expectedChecksum?: string\n): boolean {\n try {\n // Check size\n if (expectedSize && buffer.length !== expectedSize) {\n logger.warn('Tarball size mismatch', { \n expected: expectedSize, \n actual: buffer.length \n });\n return false;\n }\n \n // Check checksum\n if (expectedChecksum) {\n const actualChecksum = createHash('sha256').update(buffer).digest('hex');\n if (actualChecksum !== expectedChecksum) {\n logger.warn('Tarball checksum mismatch', { \n expected: expectedChecksum, \n actual: actualChecksum \n });\n return false;\n }\n }\n \n return true;\n } catch (error) {\n logger.error('Tarball integrity check failed', { error });\n return false;\n }\n}\n\n", "import { join } from 'path';\nimport { promises as fs } from 'fs';\nimport { exists, readTextFile } from '../../utils/fs.js';\nimport { logger } from '../../utils/logger.js';\nimport { DIR_PATTERNS, FILE_PATTERNS } from '../../constants/index.js';\nimport type { MarketplacePluginEntry } from './marketplace-handler.js';\n\nexport type PluginType = 'individual' | 'marketplace' | 'marketplace-defined';\n\nexport interface PluginDetectionResult {\n isPlugin: boolean;\n type?: PluginType;\n manifestPath?: string;\n}\n\n/**\n * Detect if a directory contains a Claude Code plugin.\n * \n * Detection order:\n * 1. Check for .claude-plugin/plugin.json (individual plugin)\n * 2. Check for .claude-plugin/marketplace.json (marketplace)\n * \n * @param dirPath - Absolute path to directory to check\n * @returns Detection result with plugin type if found\n */\nexport async function detectPluginType(dirPath: string): Promise<PluginDetectionResult> {\n const pluginDir = join(dirPath, DIR_PATTERNS.CLAUDE_PLUGIN);\n \n // Check for individual plugin\n const pluginManifestPath = join(pluginDir, FILE_PATTERNS.PLUGIN_JSON);\n if (await exists(pluginManifestPath)) {\n logger.info('Detected individual Claude Code plugin', { path: pluginManifestPath });\n return {\n isPlugin: true,\n type: 'individual',\n manifestPath: pluginManifestPath\n };\n }\n \n // Check for marketplace\n const marketplaceManifestPath = join(pluginDir, FILE_PATTERNS.MARKETPLACE_JSON);\n if (await exists(marketplaceManifestPath)) {\n logger.info('Detected Claude Code plugin marketplace', { path: marketplaceManifestPath });\n return {\n isPlugin: true,\n type: 'marketplace',\n manifestPath: marketplaceManifestPath\n };\n }\n \n // Not a plugin\n return { isPlugin: false };\n}\n\n/**\n * Detect if a directory contains a Claude Code plugin, with marketplace context.\n * \n * This enhanced detection supports marketplace-defined plugins (strict:false) that\n * may not have their own plugin.json file.\n * \n * Detection order:\n * 1. Check for .claude-plugin/plugin.json (individual plugin)\n * 2. Check for .claude-plugin/marketplace.json (marketplace)\n * 3. If marketplaceEntry exists AND strict:false, check for plugin content\n * \n * @param dirPath - Absolute path to directory to check\n * @param marketplaceEntry - Optional marketplace entry for this plugin\n * @returns Detection result with plugin type if found\n */\nexport async function detectPluginWithMarketplace(\n dirPath: string,\n marketplaceEntry?: MarketplacePluginEntry\n): Promise<PluginDetectionResult> {\n // First try standard detection\n const standardDetection = await detectPluginType(dirPath);\n \n if (standardDetection.isPlugin) {\n return standardDetection;\n }\n \n // If no plugin.json and marketplace entry with strict:false, check for plugin content\n if (marketplaceEntry?.strict === false) {\n const hasContent = await hasPluginContent(dirPath);\n \n if (hasContent) {\n logger.info('Detected marketplace-defined plugin (strict:false)', { \n dirPath,\n pluginName: marketplaceEntry.name \n });\n \n return {\n isPlugin: true,\n type: 'marketplace-defined'\n };\n }\n }\n \n return { isPlugin: false };\n}\n\n/**\n * Check if a directory has plugin content (commands, agents, etc.)\n * Used to validate marketplace-defined plugins that don't have plugin.json.\n * Exported for use in file-discovery and path-package-loader.\n */\nexport async function hasPluginContent(dirPath: string): Promise<boolean> {\n const pluginContentDirs = ['commands', 'agents', 'skills', 'hooks'];\n const pluginContentFiles = ['.mcp.json', '.lsp.json'];\n \n // Check for plugin content directories\n for (const subdir of pluginContentDirs) {\n const subdirPath = join(dirPath, subdir);\n if (await exists(subdirPath)) {\n // Check if directory is not empty\n try {\n const items = await fs.readdir(subdirPath);\n if (items.length > 0) {\n return true;\n }\n } catch {\n // Ignore errors reading directory\n }\n }\n }\n \n // Check for plugin content files\n for (const file of pluginContentFiles) {\n const filePath = join(dirPath, file);\n if (await exists(filePath)) {\n return true;\n }\n }\n \n return false;\n}\n\n/**\n * Validate that a plugin manifest can be parsed.\n * Returns true if the manifest is valid JSON.\n */\nexport async function validatePluginManifest(manifestPath: string): Promise<boolean> {\n try {\n const content = await readTextFile(manifestPath);\n JSON.parse(content);\n return true;\n } catch (error) {\n logger.error('Failed to parse plugin manifest', { manifestPath, error });\n return false;\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["semver", "join", "join"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
isPlatformId,
|
|
4
|
+
parseUniversalPath
|
|
5
|
+
} from "./chunk-GKEHDSL4.js";
|
|
6
|
+
|
|
7
|
+
// ../core/src/core/flows/platform-suffix-handler.ts
|
|
8
|
+
import { basename, dirname, join } from "path";
|
|
9
|
+
function extractPlatformSuffixFromFilename(filename) {
|
|
10
|
+
let parts = basename(filename).split(".");
|
|
11
|
+
if (parts.length >= 3) {
|
|
12
|
+
let possiblePlatform = parts[parts.length - 2];
|
|
13
|
+
if (isPlatformId(possiblePlatform))
|
|
14
|
+
return possiblePlatform;
|
|
15
|
+
}
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
function stripPlatformSuffixFromFilename(filename) {
|
|
19
|
+
if (!extractPlatformSuffixFromFilename(filename))
|
|
20
|
+
return filename;
|
|
21
|
+
let dir = dirname(filename), parts = basename(filename).split("."), strippedBaseName = [...parts.slice(0, -2), parts[parts.length - 1]].join(".");
|
|
22
|
+
return dir === "." ? strippedBaseName : join(dir, strippedBaseName);
|
|
23
|
+
}
|
|
24
|
+
function buildOverrideMap(sources) {
|
|
25
|
+
let overridesByBasePath = /* @__PURE__ */ new Map();
|
|
26
|
+
for (let sourceRel of sources) {
|
|
27
|
+
let parsed = parseUniversalPath(sourceRel, { allowPlatformSuffix: !0 }), platformSuffix = parsed?.platformSuffix || extractPlatformSuffixFromFilename(sourceRel);
|
|
28
|
+
if (platformSuffix) {
|
|
29
|
+
let baseKey = parsed ? `${parsed.universalSubdir}/${parsed.relPath}` : stripPlatformSuffixFromFilename(sourceRel);
|
|
30
|
+
overridesByBasePath.has(baseKey) || overridesByBasePath.set(baseKey, /* @__PURE__ */ new Set()), overridesByBasePath.get(baseKey).add(platformSuffix);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return overridesByBasePath;
|
|
34
|
+
}
|
|
35
|
+
function shouldSkipUniversalFile(sourceRel, targetPlatform, sources, overrideMap) {
|
|
36
|
+
let parsed = parseUniversalPath(sourceRel, { allowPlatformSuffix: !0 });
|
|
37
|
+
if (parsed?.platformSuffix || extractPlatformSuffixFromFilename(sourceRel))
|
|
38
|
+
return !1;
|
|
39
|
+
let overrides = overrideMap || buildOverrideMap(sources);
|
|
40
|
+
if (parsed) {
|
|
41
|
+
let baseKey = `${parsed.universalSubdir}/${parsed.relPath}`;
|
|
42
|
+
return overrides.get(baseKey)?.has(targetPlatform) ?? !1;
|
|
43
|
+
} else {
|
|
44
|
+
let strippedFileName = stripPlatformSuffixFromFilename(sourceRel);
|
|
45
|
+
return sources.some((s) => {
|
|
46
|
+
let sSuffix = extractPlatformSuffixFromFilename(s), sStripped = stripPlatformSuffixFromFilename(s);
|
|
47
|
+
return sSuffix === targetPlatform && sStripped === strippedFileName;
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
function isPlatformSpecificFileForTarget(sourceRel, targetPlatform) {
|
|
52
|
+
let platformSuffix = parseUniversalPath(sourceRel, { allowPlatformSuffix: !0 })?.platformSuffix || extractPlatformSuffixFromFilename(sourceRel);
|
|
53
|
+
return platformSuffix ? platformSuffix === targetPlatform : !1;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export {
|
|
57
|
+
extractPlatformSuffixFromFilename,
|
|
58
|
+
stripPlatformSuffixFromFilename,
|
|
59
|
+
buildOverrideMap,
|
|
60
|
+
shouldSkipUniversalFile,
|
|
61
|
+
isPlatformSpecificFileForTarget
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=chunk-UDAWJRKD.js.map
|