@g3nomaly/core 0.3.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (243) hide show
  1. package/LICENSE +95 -0
  2. package/dist/cli/commands/add.d.ts +17 -0
  3. package/dist/cli/commands/add.d.ts.map +1 -0
  4. package/dist/cli/commands/add.js +76 -0
  5. package/dist/cli/commands/add.js.map +1 -0
  6. package/dist/cli/commands/installFromSources.d.ts +49 -0
  7. package/dist/cli/commands/installFromSources.d.ts.map +1 -0
  8. package/dist/cli/commands/installFromSources.js +138 -0
  9. package/dist/cli/commands/installFromSources.js.map +1 -0
  10. package/dist/cli/commands/ls.d.ts +16 -0
  11. package/dist/cli/commands/ls.d.ts.map +1 -0
  12. package/dist/cli/commands/ls.js +65 -0
  13. package/dist/cli/commands/ls.js.map +1 -0
  14. package/dist/cli/commands/remove.d.ts +13 -0
  15. package/dist/cli/commands/remove.d.ts.map +1 -0
  16. package/dist/cli/commands/remove.js +109 -0
  17. package/dist/cli/commands/remove.js.map +1 -0
  18. package/dist/cli/commands/sources.d.ts +45 -0
  19. package/dist/cli/commands/sources.d.ts.map +1 -0
  20. package/dist/cli/commands/sources.js +89 -0
  21. package/dist/cli/commands/sources.js.map +1 -0
  22. package/dist/cli/commands/update.d.ts +10 -0
  23. package/dist/cli/commands/update.d.ts.map +1 -0
  24. package/dist/cli/commands/update.js +92 -0
  25. package/dist/cli/commands/update.js.map +1 -0
  26. package/dist/cli/dialogue.d.ts +74 -0
  27. package/dist/cli/dialogue.d.ts.map +1 -0
  28. package/dist/cli/dialogue.js +117 -0
  29. package/dist/cli/dialogue.js.map +1 -0
  30. package/dist/cli/index.d.ts +19 -0
  31. package/dist/cli/index.d.ts.map +1 -0
  32. package/dist/cli/index.js +16 -0
  33. package/dist/cli/index.js.map +1 -0
  34. package/dist/cli/installDialogues.d.ts +15 -0
  35. package/dist/cli/installDialogues.d.ts.map +1 -0
  36. package/dist/cli/installDialogues.js +72 -0
  37. package/dist/cli/installDialogues.js.map +1 -0
  38. package/dist/cli/pick.d.ts +14 -0
  39. package/dist/cli/pick.d.ts.map +1 -0
  40. package/dist/cli/pick.js +35 -0
  41. package/dist/cli/pick.js.map +1 -0
  42. package/dist/cli/report.d.ts +34 -0
  43. package/dist/cli/report.d.ts.map +1 -0
  44. package/dist/cli/report.js +71 -0
  45. package/dist/cli/report.js.map +1 -0
  46. package/dist/cli/theme.d.ts +23 -0
  47. package/dist/cli/theme.d.ts.map +1 -0
  48. package/dist/cli/theme.js +25 -0
  49. package/dist/cli/theme.js.map +1 -0
  50. package/dist/cli/types.d.ts +45 -0
  51. package/dist/cli/types.d.ts.map +1 -0
  52. package/dist/cli/types.js +2 -0
  53. package/dist/cli/types.js.map +1 -0
  54. package/dist/config/config.d.ts +30 -0
  55. package/dist/config/config.d.ts.map +1 -0
  56. package/dist/config/config.js +77 -0
  57. package/dist/config/config.js.map +1 -0
  58. package/dist/config/index.d.ts +4 -0
  59. package/dist/config/index.d.ts.map +1 -0
  60. package/dist/config/index.js +3 -0
  61. package/dist/config/index.js.map +1 -0
  62. package/dist/config/types.d.ts +124 -0
  63. package/dist/config/types.d.ts.map +1 -0
  64. package/dist/config/types.js +61 -0
  65. package/dist/config/types.js.map +1 -0
  66. package/dist/hash/hash.d.ts +25 -0
  67. package/dist/hash/hash.d.ts.map +1 -0
  68. package/dist/hash/hash.js +44 -0
  69. package/dist/hash/hash.js.map +1 -0
  70. package/dist/hash/index.d.ts +2 -0
  71. package/dist/hash/index.d.ts.map +1 -0
  72. package/dist/hash/index.js +2 -0
  73. package/dist/hash/index.js.map +1 -0
  74. package/dist/index.d.ts +1 -0
  75. package/dist/index.d.ts.map +1 -0
  76. package/dist/index.js +2 -0
  77. package/dist/index.js.map +1 -0
  78. package/dist/installer/classify.d.ts +7 -0
  79. package/dist/installer/classify.d.ts.map +1 -0
  80. package/dist/installer/classify.js +47 -0
  81. package/dist/installer/classify.js.map +1 -0
  82. package/dist/installer/files.d.ts +15 -0
  83. package/dist/installer/files.d.ts.map +1 -0
  84. package/dist/installer/files.js +22 -0
  85. package/dist/installer/files.js.map +1 -0
  86. package/dist/installer/index.d.ts +19 -0
  87. package/dist/installer/index.d.ts.map +1 -0
  88. package/dist/installer/index.js +14 -0
  89. package/dist/installer/index.js.map +1 -0
  90. package/dist/installer/install.d.ts +13 -0
  91. package/dist/installer/install.d.ts.map +1 -0
  92. package/dist/installer/install.js +61 -0
  93. package/dist/installer/install.js.map +1 -0
  94. package/dist/installer/io.d.ts +4 -0
  95. package/dist/installer/io.d.ts.map +1 -0
  96. package/dist/installer/io.js +18 -0
  97. package/dist/installer/io.js.map +1 -0
  98. package/dist/installer/manifest.d.ts +59 -0
  99. package/dist/installer/manifest.d.ts.map +1 -0
  100. package/dist/installer/manifest.js +60 -0
  101. package/dist/installer/manifest.js.map +1 -0
  102. package/dist/installer/manifestSources.d.ts +21 -0
  103. package/dist/installer/manifestSources.d.ts.map +1 -0
  104. package/dist/installer/manifestSources.js +39 -0
  105. package/dist/installer/manifestSources.js.map +1 -0
  106. package/dist/installer/marketplace.d.ts +34 -0
  107. package/dist/installer/marketplace.d.ts.map +1 -0
  108. package/dist/installer/marketplace.js +64 -0
  109. package/dist/installer/marketplace.js.map +1 -0
  110. package/dist/installer/origin.d.ts +43 -0
  111. package/dist/installer/origin.d.ts.map +1 -0
  112. package/dist/installer/origin.js +22 -0
  113. package/dist/installer/origin.js.map +1 -0
  114. package/dist/installer/remove.d.ts +14 -0
  115. package/dist/installer/remove.d.ts.map +1 -0
  116. package/dist/installer/remove.js +37 -0
  117. package/dist/installer/remove.js.map +1 -0
  118. package/dist/installer/resolve.d.ts +78 -0
  119. package/dist/installer/resolve.d.ts.map +1 -0
  120. package/dist/installer/resolve.js +184 -0
  121. package/dist/installer/resolve.js.map +1 -0
  122. package/dist/installer/sourceRegistry.d.ts +59 -0
  123. package/dist/installer/sourceRegistry.d.ts.map +1 -0
  124. package/dist/installer/sourceRegistry.js +71 -0
  125. package/dist/installer/sourceRegistry.js.map +1 -0
  126. package/dist/installer/types.d.ts +80 -0
  127. package/dist/installer/types.d.ts.map +1 -0
  128. package/dist/installer/types.js +21 -0
  129. package/dist/installer/types.js.map +1 -0
  130. package/dist/registry/index.d.ts +12 -0
  131. package/dist/registry/index.d.ts.map +1 -0
  132. package/dist/registry/index.js +12 -0
  133. package/dist/registry/index.js.map +1 -0
  134. package/dist/registry/registry.handlers.d.ts +9 -0
  135. package/dist/registry/registry.handlers.d.ts.map +1 -0
  136. package/dist/registry/registry.handlers.js +13 -0
  137. package/dist/registry/registry.handlers.js.map +1 -0
  138. package/dist/registry/registry.io.d.ts +22 -0
  139. package/dist/registry/registry.io.d.ts.map +1 -0
  140. package/dist/registry/registry.io.js +78 -0
  141. package/dist/registry/registry.io.js.map +1 -0
  142. package/dist/registry/registry.mutations.d.ts +12 -0
  143. package/dist/registry/registry.mutations.d.ts.map +1 -0
  144. package/dist/registry/registry.mutations.js +22 -0
  145. package/dist/registry/registry.mutations.js.map +1 -0
  146. package/dist/registry/registry.selectors.d.ts +38 -0
  147. package/dist/registry/registry.selectors.d.ts.map +1 -0
  148. package/dist/registry/registry.selectors.js +61 -0
  149. package/dist/registry/registry.selectors.js.map +1 -0
  150. package/dist/registry/registry.store.d.ts +34 -0
  151. package/dist/registry/registry.store.d.ts.map +1 -0
  152. package/dist/registry/registry.store.js +27 -0
  153. package/dist/registry/registry.store.js.map +1 -0
  154. package/dist/registry/registry.template.d.ts +23 -0
  155. package/dist/registry/registry.template.d.ts.map +1 -0
  156. package/dist/registry/registry.template.js +63 -0
  157. package/dist/registry/registry.template.js.map +1 -0
  158. package/dist/registry/types.d.ts +33 -0
  159. package/dist/registry/types.d.ts.map +1 -0
  160. package/dist/registry/types.js +25 -0
  161. package/dist/registry/types.js.map +1 -0
  162. package/dist/security/index.d.ts +2 -0
  163. package/dist/security/index.d.ts.map +1 -0
  164. package/dist/security/index.js +2 -0
  165. package/dist/security/index.js.map +1 -0
  166. package/dist/security/securityParser.d.ts +14 -0
  167. package/dist/security/securityParser.d.ts.map +1 -0
  168. package/dist/security/securityParser.js +89 -0
  169. package/dist/security/securityParser.js.map +1 -0
  170. package/dist/security/securityWorker.d.ts +8 -0
  171. package/dist/security/securityWorker.d.ts.map +1 -0
  172. package/dist/security/securityWorker.js +158 -0
  173. package/dist/security/securityWorker.js.map +1 -0
  174. package/dist/sources/checkout.d.ts +14 -0
  175. package/dist/sources/checkout.d.ts.map +1 -0
  176. package/dist/sources/checkout.js +27 -0
  177. package/dist/sources/checkout.js.map +1 -0
  178. package/dist/sources/git.d.ts +9 -0
  179. package/dist/sources/git.d.ts.map +1 -0
  180. package/dist/sources/git.js +22 -0
  181. package/dist/sources/git.js.map +1 -0
  182. package/dist/sources/index.d.ts +5 -0
  183. package/dist/sources/index.d.ts.map +1 -0
  184. package/dist/sources/index.js +6 -0
  185. package/dist/sources/index.js.map +1 -0
  186. package/dist/sources/local.d.ts +10 -0
  187. package/dist/sources/local.d.ts.map +1 -0
  188. package/dist/sources/local.js +20 -0
  189. package/dist/sources/local.js.map +1 -0
  190. package/dist/sources/npm.d.ts +13 -0
  191. package/dist/sources/npm.d.ts.map +1 -0
  192. package/dist/sources/npm.js +128 -0
  193. package/dist/sources/npm.js.map +1 -0
  194. package/dist/sources/packageJson.d.ts +3 -0
  195. package/dist/sources/packageJson.d.ts.map +1 -0
  196. package/dist/sources/packageJson.js +13 -0
  197. package/dist/sources/packageJson.js.map +1 -0
  198. package/dist/sources/parse.d.ts +34 -0
  199. package/dist/sources/parse.d.ts.map +1 -0
  200. package/dist/sources/parse.js +92 -0
  201. package/dist/sources/parse.js.map +1 -0
  202. package/dist/sources/process.d.ts +18 -0
  203. package/dist/sources/process.d.ts.map +1 -0
  204. package/dist/sources/process.js +43 -0
  205. package/dist/sources/process.js.map +1 -0
  206. package/dist/sources/register.d.ts +16 -0
  207. package/dist/sources/register.d.ts.map +1 -0
  208. package/dist/sources/register.js +37 -0
  209. package/dist/sources/register.js.map +1 -0
  210. package/dist/sources/types.d.ts +73 -0
  211. package/dist/sources/types.d.ts.map +1 -0
  212. package/dist/sources/types.js +36 -0
  213. package/dist/sources/types.js.map +1 -0
  214. package/dist/utils/errors.d.ts +3 -0
  215. package/dist/utils/errors.d.ts.map +1 -0
  216. package/dist/utils/errors.js +6 -0
  217. package/dist/utils/errors.js.map +1 -0
  218. package/dist/utils/index.d.ts +7 -0
  219. package/dist/utils/index.d.ts.map +1 -0
  220. package/dist/utils/index.js +7 -0
  221. package/dist/utils/index.js.map +1 -0
  222. package/dist/utils/merge.d.ts +6 -0
  223. package/dist/utils/merge.d.ts.map +1 -0
  224. package/dist/utils/merge.js +21 -0
  225. package/dist/utils/merge.js.map +1 -0
  226. package/dist/utils/packageMeta.d.ts +12 -0
  227. package/dist/utils/packageMeta.d.ts.map +1 -0
  228. package/dist/utils/packageMeta.js +20 -0
  229. package/dist/utils/packageMeta.js.map +1 -0
  230. package/dist/utils/paths.d.ts +16 -0
  231. package/dist/utils/paths.d.ts.map +1 -0
  232. package/dist/utils/paths.js +40 -0
  233. package/dist/utils/paths.js.map +1 -0
  234. package/dist/utils/prompt.d.ts +3 -0
  235. package/dist/utils/prompt.d.ts.map +1 -0
  236. package/dist/utils/prompt.js +8 -0
  237. package/dist/utils/prompt.js.map +1 -0
  238. package/dist/utils/version.d.ts +9 -0
  239. package/dist/utils/version.d.ts.map +1 -0
  240. package/dist/utils/version.js +103 -0
  241. package/dist/utils/version.js.map +1 -0
  242. package/package.json +64 -3
  243. package/README.md +0 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../src/cli/commands/remove.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,iBAAiB,EAAE,GAAG,EAAE,MAAM,mCAAmC,CAAC;AACpG,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAE/D,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAE9D,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAOvC,KAAK,UAAU,SAAS,CAAC,KAAwB,EAAE,UAAkB,EAAE,EAAe;IACpF,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,OAAO,GAAc,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxB,SAAS;QACX,CAAC;QACD,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,YAAY,KAAK,SAAS,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,YAAY;YAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7G,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC/B,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,QAAsB,EACtB,OAAwB,EACxB,IAAc,EACd,OAAO,GAAmB,EAAE,EAC5B,SAAS,GAAoB,EAAE;IAE/B,MAAM,EAAE,GAAG,iBAAiB,EAAE,CAAC;IAE/B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAC3D,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAClG,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QACD,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5E,MAAM,MAAM,GAAI,WAAW,CAAC,MAAM,gBAAgB,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QACnH,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAE5D,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3D,yEAAyE;QACzE,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,GAAG,CAAC,CAAC;QAEV,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YACvB,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACzC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC;gBACvD,SAAS;YACX,CAAC;YAED,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAClG,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBACrI,IAAI,SAAS,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;oBACtC,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;oBACvJ,IAAI,IAAI,KAAK,IAAI;wBAAE,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;gBAC/C,CAAC;YACH,CAAC;YAED,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YAEhE,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;gBACrE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,oCAAoC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBACzH,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC9L,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;oBACrB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;oBACjD,SAAS;gBACX,CAAC;YACH,CAAC;YAED,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC;YACnC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACxC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,yBAAyB,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC/G,IAAI,SAAS,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;oBACxC,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;oBACnI,IAAI,MAAM,KAAK,gBAAgB,CAAC,SAAS;wBAAE,KAAK,GAAG,IAAI,CAAC;gBAC1D,CAAC;gBACD,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC9F,SAAS;gBACX,CAAC;YACH,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;YAE7F,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,QAAQ,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAC7I,CAAC;YAED,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7B,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAChC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC,CAAC;YACjF,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,45 @@
1
+ import type { z } from "zod";
2
+ import type { OriginEntry } from "../../installer/origin";
3
+ import type { ReadSource } from "../../installer/sourceRegistry";
4
+ import type { SourceRecord } from "../../sources/types";
5
+ import type { ManifestTarget } from "./installFromSources";
6
+ /** What an installer tells the source commands about itself. */
7
+ export interface SourceCommandContext<T extends OriginEntry> {
8
+ /** Installer binary, for the hints it prints, e.g. `g3n-skills` */
9
+ bin: string;
10
+ /** What one entry is called, e.g. `skill` */
11
+ noun: string;
12
+ builtins: SourceRecord;
13
+ entrySchema: z.ZodType<T>;
14
+ readSource: ReadSource<T>;
15
+ /** Absolute root that local source paths and the `node_modules` lookup start from */
16
+ projectRoot: string;
17
+ }
18
+ export interface SourceAddOptions {
19
+ /** Name to register under; derived from the source when absent */
20
+ name?: string;
21
+ /** Branch or tag a git source is pinned to */
22
+ ref?: string;
23
+ /** Store a local path absolute instead of relative to the project root, for a manifest every project shares */
24
+ absolutePaths?: boolean;
25
+ }
26
+ /**
27
+ * Registers a git repository, npm package or local folder as a source in
28
+ * every manifest, after checking it can be read and offers at least one entry.
29
+ *
30
+ * @param input - The source as typed, e.g. `owner/repo`, `npm:@scope/pkg` or `./folder`
31
+ */
32
+ export declare function addSourceEntries<T extends OriginEntry>(manifests: readonly ManifestTarget[], input: string, options: SourceAddOptions, context: SourceCommandContext<T>): Promise<void>;
33
+ /** Lists each manifest's sources, built-in ones first, with how many installed entries came from each. */
34
+ export declare function lsSources<T extends OriginEntry>(manifests: readonly ManifestTarget[], options: {
35
+ json?: boolean;
36
+ }, context: Pick<SourceCommandContext<T>, "builtins" | "entrySchema">): void;
37
+ /**
38
+ * Unregisters a source from every manifest that has it. Refused for built-in
39
+ * sources, and while installed entries came from it unless `force` is set;
40
+ * forced, those entries stay installed but can no longer be updated.
41
+ */
42
+ export declare function removeSourceEntries<T extends OriginEntry>(manifests: readonly ManifestTarget[], name: string, options: {
43
+ force?: boolean;
44
+ }, context: Pick<SourceCommandContext<T>, "bin" | "noun" | "builtins" | "entrySchema">): void;
45
+ //# sourceMappingURL=sources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sources.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/sources.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAG7B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAGjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,gEAAgE;AAChE,MAAM,WAAW,oBAAoB,CAAC,CAAC,SAAS,WAAW;IACzD,mEAAmE;IACnE,GAAG,EAAU,MAAM,CAAC;IACpB,6CAA6C;IAC7C,IAAI,EAAS,MAAM,CAAC;IACpB,QAAQ,EAAK,YAAY,CAAC;IAC1B,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IACzB,UAAU,EAAG,UAAU,CAAC,CAAC,CAAC,CAAA;IAC1B,qFAAqF;IACrF,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,kEAAkE;IAClE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,GAAG,CAAC,EAAG,MAAM,CAAC;IACd,+GAA+G;IAC/G,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,SAAS,WAAW,EAC1D,SAAS,EAAE,SAAS,cAAc,EAAE,EACpC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAC/B,OAAO,CAAC,IAAI,CAAC,CAwBf;AAED,0GAA0G;AAC1G,wBAAgB,SAAS,CAAC,CAAC,SAAS,WAAW,EAC7C,SAAS,EAAE,SAAS,cAAc,EAAE,EACpC,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,EAC3B,OAAO,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,UAAU,GAAG,aAAa,CAAC,GACjE,IAAI,CAuBN;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,WAAW,EACvD,SAAS,EAAE,SAAS,cAAc,EAAE,EACpC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,EAC5B,OAAO,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,UAAU,GAAG,aAAa,CAAC,GAClF,IAAI,CAmBN"}
@@ -0,0 +1,89 @@
1
+ // packages/core/src/cli/commands/sources.ts
2
+ import chalk from "chalk";
3
+ import { installedEntries, saveInstallManifest } from "../../installer/manifest";
4
+ import { manifestSources, registerSource, unregisterSource } from "../../installer/manifestSources";
5
+ import { loadSourceRegistry } from "../../installer/sourceRegistry";
6
+ import { describeSource } from "../../sources/checkout";
7
+ import { anchorLocalSpec, defaultSourceName, parseSourceSpec } from "../../sources/parse";
8
+ import { orExit, reportSourceRegistry } from "../report";
9
+ import { c, lineError, lineInfo, lineSuccess } from "../theme";
10
+ /**
11
+ * Registers a git repository, npm package or local folder as a source in
12
+ * every manifest, after checking it can be read and offers at least one entry.
13
+ *
14
+ * @param input - The source as typed, e.g. `owner/repo`, `npm:@scope/pkg` or `./folder`
15
+ */
16
+ export async function addSourceEntries(manifests, input, options, context) {
17
+ const parsed = orExit(() => parseSourceSpec(input, { ref: options.ref }));
18
+ const spec = anchorLocalSpec(parsed, process.cwd(), options.absolutePaths === true ? null : context.projectRoot);
19
+ const name = options.name ?? orExit(() => defaultSourceName(spec));
20
+ const files = manifests.map((m) => m.manifest);
21
+ // A dry run on copies rejects a taken name before the source is fetched.
22
+ orExit(() => registerSource(files.map((m) => ({ ...m })), name, spec, context.builtins));
23
+ const registry = await loadSourceRegistry([{ name, spec, builtin: false }], context.projectRoot, context.readSource);
24
+ try {
25
+ reportSourceRegistry(registry);
26
+ const keys = Object.keys(registry.sources.get(name)?.store.state ?? {}).sort();
27
+ if (registry.failed.length > 0)
28
+ process.exit(1);
29
+ if (keys.length === 0) {
30
+ console.error(lineError(`${c.key(name)} offers no ${context.noun}s, nothing registered`));
31
+ process.exit(1);
32
+ }
33
+ registerSource(files, name, spec, context.builtins);
34
+ for (const manifest of files)
35
+ saveInstallManifest(manifest, context.entrySchema);
36
+ console.log(lineSuccess(`Registered ${c.key(name)} ${chalk.dim(`(${describeSource(spec)})`)} with ${keys.length} ${context.noun}(s): ${keys.map((k) => c.key(k)).join(", ")}`));
37
+ }
38
+ finally {
39
+ registry.dispose();
40
+ }
41
+ }
42
+ /** Lists each manifest's sources, built-in ones first, with how many installed entries came from each. */
43
+ export function lsSources(manifests, options, context) {
44
+ const listing = manifests.map(({ label, manifest }) => {
45
+ const installed = Object.values(installedEntries(manifest, context.entrySchema));
46
+ return {
47
+ target: label,
48
+ sources: manifestSources([manifest], context.builtins).map((source) => ({
49
+ ...source,
50
+ installed: installed.filter((entry) => entry.origin.source === source.name).length,
51
+ })),
52
+ };
53
+ });
54
+ if (options.json === true) {
55
+ console.log(JSON.stringify(listing, null, 2));
56
+ return;
57
+ }
58
+ for (const { target, sources } of listing) {
59
+ if (listing.length > 1)
60
+ console.log(c.header(target));
61
+ for (const source of sources) {
62
+ const tag = source.builtin ? chalk.dim(" (built in)") : "";
63
+ console.log(` ${c.key(source.name.padEnd(20))} ${describeSource(source.spec)}${tag} ${chalk.dim(`${source.installed} installed`)}`);
64
+ }
65
+ }
66
+ }
67
+ /**
68
+ * Unregisters a source from every manifest that has it. Refused for built-in
69
+ * sources, and while installed entries came from it unless `force` is set;
70
+ * forced, those entries stay installed but can no longer be updated.
71
+ */
72
+ export function removeSourceEntries(manifests, name, options, context) {
73
+ const files = manifests.map((m) => m.manifest);
74
+ // A dry run on copies rejects a built-in or unknown name before the installed entries are checked.
75
+ orExit(() => unregisterSource(files.map((m) => ({ ...m })), name, context.builtins));
76
+ const fromSource = [...new Set(files.flatMap((manifest) => Object.entries(installedEntries(manifest, context.entrySchema)).filter(([, entry]) => entry.origin.source === name).map(([key]) => key)))].sort();
77
+ if (fromSource.length > 0 && options.force !== true) {
78
+ console.error(lineError(`Installed from ${c.key(name)}: ${fromSource.map((k) => c.key(k)).join(", ")}. ` +
79
+ `Remove those ${context.noun}s first with ${c.cmd(`${context.bin} remove ${fromSource.join(" ")}`)}, or pass ${c.flag("-f")} to keep them without updates.`));
80
+ process.exit(1);
81
+ }
82
+ unregisterSource(files, name, context.builtins);
83
+ for (const manifest of files)
84
+ saveInstallManifest(manifest, context.entrySchema);
85
+ console.log(lineSuccess(`Unregistered ${c.key(name)}`));
86
+ if (fromSource.length > 0)
87
+ console.log(lineInfo(`Still installed, without updates: ${fromSource.map((k) => c.key(k)).join(", ")}`));
88
+ }
89
+ //# sourceMappingURL=sources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sources.js","sourceRoot":"","sources":["../../../src/cli/commands/sources.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { BaseRegistry } from "../../registry/types";
2
+ import type { EntrySource, InstallOptions, InstallTarget, UpdateDialogues } from "../types";
3
+ /**
4
+ * Re-installs entries already present in a target's manifest; with no keys
5
+ * everything installed is updated. Local changes prompt keep/overwrite
6
+ * through `onCollision` unless `--force`. The caller resolves keys before
7
+ * and saves each target's store after.
8
+ */
9
+ export declare function updateEntries(registry: BaseRegistry, targets: InstallTarget[], source: EntrySource, keys: string[], options?: InstallOptions, dialogues?: UpdateDialogues): Promise<void>;
10
+ //# sourceMappingURL=update.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/update.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAMzD,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAkB5F;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,aAAa,EAAE,EACxB,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE,cAAmB,EAC5B,SAAS,GAAE,eAAoB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAoEf"}
@@ -0,0 +1,92 @@
1
+ // packages/core/src/cli/commands/update.ts
2
+ import chalk from "chalk";
3
+ import path from "node:path";
4
+ import { entries as storeEntries, get } from "../../registry/registry.selectors";
5
+ import { register } from "../../registry/registry.mutations";
6
+ import { applyClassifications, classifyFiles, recordedHashes, removeInstalledFiles } from "../../installer";
7
+ import { createInstallerIO } from "../../installer/io";
8
+ import { ConflictDecision, FileState } from "../../installer/types";
9
+ import { runDialogueValue } from "../dialogue";
10
+ import { c, lineSuccess, lineWarn, lineInfo } from "../theme";
11
+ import { latestHashFrom } from "./add";
12
+ const DRY_RUN_LABELS = {
13
+ [FileState.UpToDate]: chalk.dim("up to date"),
14
+ [FileState.SafeUpdate]: chalk.cyan("would update") + chalk.dim(" (package changed, file unmodified)"),
15
+ [FileState.UserOnly]: chalk.yellow("would keep") + chalk.dim(" — local changes"),
16
+ [FileState.Conflict]: chalk.red("conflict") + chalk.dim(" — keep or overwrite"),
17
+ };
18
+ function printDryRun(classifications) {
19
+ for (const cl of classifications) {
20
+ const rel = c.file(path.relative(process.cwd(), cl.destPath));
21
+ console.log(` ${rel.padEnd(50)} ${DRY_RUN_LABELS[cl.state]}`);
22
+ }
23
+ }
24
+ /**
25
+ * Re-installs entries already present in a target's manifest; with no keys
26
+ * everything installed is updated. Local changes prompt keep/overwrite
27
+ * through `onCollision` unless `--force`. The caller resolves keys before
28
+ * and saves each target's store after.
29
+ */
30
+ export async function updateEntries(registry, targets, source, keys, options = {}, dialogues = {}) {
31
+ const io = createInstallerIO();
32
+ for (const target of targets) {
33
+ if (targets.length > 1)
34
+ console.log(c.header(target.label));
35
+ const targetKeys = Object.keys(storeEntries(target.store)).sort();
36
+ const wanted = keys.length > 0 ? targetKeys.filter((k) => keys.includes(k)) : targetKeys;
37
+ if (wanted.length === 0) {
38
+ console.log(lineInfo("Nothing to update."));
39
+ continue;
40
+ }
41
+ for (const key of wanted) {
42
+ const meta = registry[key];
43
+ if (!meta) {
44
+ console.log(lineWarn(`${c.key(key)} is installed but no longer in the package — leaving as is`));
45
+ continue;
46
+ }
47
+ const installed = get(target.store, key);
48
+ const fileSource = await source(meta);
49
+ const classifications = await classifyFiles(meta.files, target.installDir, recordedHashes(installed), io, latestHashFrom(fileSource, io));
50
+ const stale = (installed?.files ?? []).filter((f) => !meta.files.some((m) => m.path === f.path));
51
+ if (options.dryRun) {
52
+ console.log(chalk.bold(c.key(key)));
53
+ printDryRun(classifications);
54
+ for (const file of stale) {
55
+ console.log(` ${c.file(file.path).padEnd(50)} ${chalk.red("would remove")}${chalk.dim(" — no longer in the package")}`);
56
+ }
57
+ continue;
58
+ }
59
+ let decision = ConflictDecision.Keep;
60
+ const hasLocalChanges = classifications.some((cl) => cl.state >= FileState.UserOnly);
61
+ if (hasLocalChanges && !options.force && dialogues.onCollision !== undefined) {
62
+ const answer = await runDialogueValue(dialogues.onCollision, { key: c.key(key), target: c.target(target.label) }, options.answers);
63
+ if (answer === ConflictDecision.Overwrite)
64
+ decision = ConflictDecision.Overwrite;
65
+ }
66
+ const result = await applyClassifications(classifications, fileSource, { decision, force: options.force ?? false }, io);
67
+ if (stale.length > 0) {
68
+ const removal = await removeInstalledFiles(stale, target.installDir, { force: options.force }, io);
69
+ for (const file of removal.kept) {
70
+ console.log(lineWarn(`${c.file(file)} left the package but has local changes — kept ${chalk.dim(`(use ${c.flag("-f")} to remove)`)}`));
71
+ }
72
+ if (removal.removed.length > 0) {
73
+ console.log(lineInfo(`Removed ${removal.removed.length} file${removal.removed.length === 1 ? "" : "s"} no longer in ${c.key(key)}`));
74
+ }
75
+ }
76
+ for (const file of result.missingSource) {
77
+ console.log(lineWarn(`No content for ${c.file(file)} in the package source — skipped`));
78
+ }
79
+ if (result.kept.length > 0) {
80
+ console.log(lineWarn(`${c.key(key)} — kept ${result.kept.map((f) => c.file(f)).join(", ")}`));
81
+ }
82
+ if (result.written.length > 0) {
83
+ console.log(lineSuccess(`Updated ${c.key(key)} ${chalk.dim(`(${result.written.length} file${result.written.length === 1 ? "" : "s"})`)}`));
84
+ }
85
+ else if (result.kept.length === 0) {
86
+ console.log(lineInfo(`${c.key(key)} — already up to date`));
87
+ }
88
+ register(target.store, key, { ...meta, files: result.files.map((f) => ({ ...f, version: meta.version })) });
89
+ }
90
+ }
91
+ }
92
+ //# sourceMappingURL=update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/cli/commands/update.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ export declare const StepKind: {
2
+ readonly Select: 0;
3
+ readonly MultiSelect: 1;
4
+ readonly Confirm: 2;
5
+ readonly Text: 3;
6
+ };
7
+ export type StepKind = (typeof StepKind)[keyof typeof StepKind];
8
+ export type DialogueAnswers = Record<string, unknown>;
9
+ export interface StepChoice<V = unknown> {
10
+ value: V;
11
+ label: string;
12
+ }
13
+ /** A literal value, or a function deriving it from the walk's input. */
14
+ export type Resolvable<Input, V> = V | ((input: Input) => V);
15
+ /**
16
+ * One question of a dialogue. `when` decides whether the step runs at all; a
17
+ * skipped step records no answer and falls through to `next`. `next` links to
18
+ * the following step: a step id for linear flow, a function of the answer for
19
+ * branching, absent to end. `{name}` placeholders in messages and labels are
20
+ * filled from the walk's input.
21
+ */
22
+ interface StepBase<Input> {
23
+ message: string;
24
+ when?: (input: Input, answers: DialogueAnswers) => boolean;
25
+ next?: string | ((answer: unknown, answers: DialogueAnswers, input: Input) => string | null);
26
+ }
27
+ export interface SelectStep<Input = DialogueAnswers> extends StepBase<Input> {
28
+ kind: typeof StepKind.Select;
29
+ choices: Resolvable<Input, StepChoice[]>;
30
+ initial?: Resolvable<Input, string | number | boolean>;
31
+ }
32
+ export interface MultiSelectStep<Input = DialogueAnswers> extends StepBase<Input> {
33
+ kind: typeof StepKind.MultiSelect;
34
+ choices: Resolvable<Input, StepChoice[]>;
35
+ initial?: Resolvable<Input, unknown[]>;
36
+ required?: boolean;
37
+ }
38
+ export interface ConfirmStep<Input = DialogueAnswers> extends StepBase<Input> {
39
+ kind: typeof StepKind.Confirm;
40
+ initial?: Resolvable<Input, boolean>;
41
+ }
42
+ export interface TextStep<Input = DialogueAnswers> extends StepBase<Input> {
43
+ kind: typeof StepKind.Text;
44
+ initial?: Resolvable<Input, string>;
45
+ validate?: (value: string | undefined) => string | undefined;
46
+ }
47
+ export type DialogueStep<Input = DialogueAnswers> = SelectStep<Input> | MultiSelectStep<Input> | ConfirmStep<Input> | TextStep<Input>;
48
+ /**
49
+ * A command's interaction with the user: a graph of steps keyed by id,
50
+ * entered at the first key and linked through each step's `next`. Commands
51
+ * take dialogues through named slots (e.g. `onNoValue`, `onCollision`) and
52
+ * run them with `runDialogueValue`; init flows are linked lists run with
53
+ * `runDialogue`. Preset answers (`options.answers`, keyed by step id) skip
54
+ * the terminal prompt — that is how tests and non-interactive runs answer.
55
+ */
56
+ export interface Dialogue<Input = DialogueAnswers> {
57
+ steps: Record<string, DialogueStep<Input>>;
58
+ }
59
+ /**
60
+ * Walks a dialogue from its first step, skipping steps whose `when` is
61
+ * false, and collects answers by step id. A preset answer in `answers` is
62
+ * recorded without prompting; anything else renders in the terminal.
63
+ * Returns the cancel symbol as soon as any step is cancelled. Unknown step
64
+ * ids throw.
65
+ */
66
+ export declare function runDialogue<Input>(dialogue: Dialogue<Input>, input: Input, answers?: DialogueAnswers): Promise<DialogueAnswers | symbol>;
67
+ /**
68
+ * Runs a dialogue and returns the answer of its last executed step — the
69
+ * contract for the commands' named dialogue slots. Returns undefined when no
70
+ * step ran, or the cancel symbol.
71
+ */
72
+ export declare function runDialogueValue<Input>(dialogue: Dialogue<Input>, input: Input, answers?: DialogueAnswers): Promise<unknown>;
73
+ export {};
74
+ //# sourceMappingURL=dialogue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialogue.d.ts","sourceRoot":"","sources":["../../src/cli/dialogue.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,117 @@
1
+ // packages/core/src/cli/dialogue.ts
2
+ import * as p from "@clack/prompts";
3
+ export const StepKind = {
4
+ Select: 0,
5
+ MultiSelect: 1,
6
+ Confirm: 2,
7
+ Text: 3,
8
+ };
9
+ // ---------------------------------------------------------------------------
10
+ // Resolving
11
+ // ---------------------------------------------------------------------------
12
+ function interpolate(template, input) {
13
+ const record = (typeof input === "object" && input !== null ? input : {});
14
+ return template.replace(/\{(\w+)\}/g, (match, name) => {
15
+ const value = record[name];
16
+ return value === undefined ? match : String(value);
17
+ });
18
+ }
19
+ function resolveValue(value, input) {
20
+ return typeof value === "function" ? value(input) : value;
21
+ }
22
+ function resolveStep(id, step, input) {
23
+ const resolved = { id, kind: step.kind, message: interpolate(step.message, input) };
24
+ switch (step.kind) {
25
+ case StepKind.Select:
26
+ case StepKind.MultiSelect: {
27
+ const choices = resolveValue(step.choices, input) ?? [];
28
+ resolved.choices = choices.map((choice) => ({ ...choice, label: interpolate(choice.label, input) }));
29
+ resolved.initial = resolveValue(step.initial, input);
30
+ if (step.kind === StepKind.MultiSelect)
31
+ resolved.required = step.required;
32
+ return resolved;
33
+ }
34
+ case StepKind.Confirm:
35
+ resolved.initial = resolveValue(step.initial, input);
36
+ return resolved;
37
+ case StepKind.Text:
38
+ resolved.initial = resolveValue(step.initial, input);
39
+ resolved.validate = step.validate;
40
+ return resolved;
41
+ }
42
+ }
43
+ // ---------------------------------------------------------------------------
44
+ // Rendering
45
+ // ---------------------------------------------------------------------------
46
+ async function render(step) {
47
+ switch (step.kind) {
48
+ case StepKind.Select:
49
+ return p.select({
50
+ message: step.message,
51
+ options: step.choices ?? [],
52
+ initialValue: step.initial,
53
+ });
54
+ case StepKind.MultiSelect:
55
+ return p.multiselect({
56
+ message: step.message,
57
+ options: step.choices ?? [],
58
+ initialValues: step.initial,
59
+ required: step.required,
60
+ });
61
+ case StepKind.Confirm:
62
+ return p.confirm({
63
+ message: step.message,
64
+ initialValue: step.initial ?? false,
65
+ });
66
+ case StepKind.Text:
67
+ return p.text({
68
+ message: step.message,
69
+ initialValue: step.initial,
70
+ validate: step.validate,
71
+ });
72
+ default:
73
+ throw new Error(`unknown step kind ${String(step.kind)}`);
74
+ }
75
+ }
76
+ // ---------------------------------------------------------------------------
77
+ // Walking
78
+ // ---------------------------------------------------------------------------
79
+ /**
80
+ * Walks a dialogue from its first step, skipping steps whose `when` is
81
+ * false, and collects answers by step id. A preset answer in `answers` is
82
+ * recorded without prompting; anything else renders in the terminal.
83
+ * Returns the cancel symbol as soon as any step is cancelled. Unknown step
84
+ * ids throw.
85
+ */
86
+ export async function runDialogue(dialogue, input, answers = {}) {
87
+ const collected = {};
88
+ let id = Object.keys(dialogue.steps)[0] ?? null;
89
+ while (id !== null) {
90
+ const step = dialogue.steps[id];
91
+ if (step === undefined)
92
+ throw new Error(`dialogue has no step "${id}"`);
93
+ let answer = undefined;
94
+ if (step.when === undefined || step.when(input, collected)) {
95
+ const preset = answers[id];
96
+ answer = preset !== undefined ? preset : await render(resolveStep(id, step, input));
97
+ if (typeof answer === "symbol")
98
+ return answer;
99
+ collected[id] = answer;
100
+ }
101
+ id = typeof step.next === "function" ? step.next(answer, collected, input) : step.next ?? null;
102
+ }
103
+ return collected;
104
+ }
105
+ /**
106
+ * Runs a dialogue and returns the answer of its last executed step — the
107
+ * contract for the commands' named dialogue slots. Returns undefined when no
108
+ * step ran, or the cancel symbol.
109
+ */
110
+ export async function runDialogueValue(dialogue, input, answers = {}) {
111
+ const record = await runDialogue(dialogue, input, answers);
112
+ if (typeof record === "symbol")
113
+ return record;
114
+ const last = Object.keys(record).at(-1);
115
+ return last === undefined ? undefined : record[last];
116
+ }
117
+ //# sourceMappingURL=dialogue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialogue.js","sourceRoot":"","sources":["../../src/cli/dialogue.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ export * from "./types";
2
+ export { ConflictDecision, FileState } from "../installer/types";
3
+ export { StepKind, runDialogue, runDialogueValue } from "./dialogue";
4
+ export type { Dialogue, DialogueStep, DialogueAnswers, StepChoice, Resolvable, SelectStep, MultiSelectStep, ConfirmStep, TextStep, } from "./dialogue";
5
+ export { addEntries } from "./commands/add";
6
+ export { updateEntries } from "./commands/update";
7
+ export { removeEntries } from "./commands/remove";
8
+ export { lsEntries } from "./commands/ls";
9
+ export { c, sym, lineSuccess, lineWarn, lineInfo, lineError } from "./theme";
10
+ export { reportSourceRegistry, orExit, reportResolution, entryNotFoundDialogue, narrowSources } from "./report";
11
+ export type { ResolutionContext } from "./report";
12
+ export { lsSourceRegistry } from "./commands/ls";
13
+ export { addSourceEntries, lsSources, removeSourceEntries } from "./commands/sources";
14
+ export type { SourceCommandContext, SourceAddOptions } from "./commands/sources";
15
+ export { pickOffers, selectEntriesDialogue } from "./pick";
16
+ export { overwriteDialogue, removeChangedDialogue, cascadeDialogue, incompleteDialogue, selectRemovalDialogue, notInstalledDialogue } from "./installDialogues";
17
+ export { addFromSources, updateFromSources, removeFromTargets } from "./commands/installFromSources";
18
+ export type { ManifestTarget, InstallCommandContext, AfterTarget } from "./commands/installFromSources";
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAA;AACvB,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAChE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AACpE,YAAY,EACV,QAAQ,EAAE,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAC/D,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,QAAQ,GACnD,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACzC,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAC/G,YAAY,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACrF,YAAY,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAChF,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,QAAQ,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,eAAe,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAC/J,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AACpG,YAAY,EAAE,cAAc,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA"}
@@ -0,0 +1,16 @@
1
+ // packages/core/src/cli/index.ts
2
+ export * from "./types";
3
+ export { ConflictDecision, FileState } from "../installer/types";
4
+ export { StepKind, runDialogue, runDialogueValue } from "./dialogue";
5
+ export { addEntries } from "./commands/add";
6
+ export { updateEntries } from "./commands/update";
7
+ export { removeEntries } from "./commands/remove";
8
+ export { lsEntries } from "./commands/ls";
9
+ export { c, sym, lineSuccess, lineWarn, lineInfo, lineError } from "./theme";
10
+ export { reportSourceRegistry, orExit, reportResolution, entryNotFoundDialogue, narrowSources } from "./report";
11
+ export { lsSourceRegistry } from "./commands/ls";
12
+ export { addSourceEntries, lsSources, removeSourceEntries } from "./commands/sources";
13
+ export { pickOffers, selectEntriesDialogue } from "./pick";
14
+ export { overwriteDialogue, removeChangedDialogue, cascadeDialogue, incompleteDialogue, selectRemovalDialogue, notInstalledDialogue } from "./installDialogues";
15
+ export { addFromSources, updateFromSources, removeFromTargets } from "./commands/installFromSources";
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,cAAc,SAAS,CAAA;AACvB,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAChE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAKpE,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACzC,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAE/G,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAErF,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,QAAQ,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,eAAe,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAC/J,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA"}
@@ -0,0 +1,15 @@
1
+ import type { Dialogue } from "./dialogue";
2
+ import type { InstallInput } from "./types";
3
+ /** Keep or overwrite an entry with local changes, for `add` and `update`; step id `conflict`. */
4
+ export declare const overwriteDialogue: Dialogue<InstallInput>;
5
+ /** Keep or remove an entry with local changes, for `remove`; step id `conflict`. */
6
+ export declare const removeChangedDialogue: Dialogue<InstallInput>;
7
+ /** Whether to remove the installed entries that depend on one being removed; step id `cascade`. */
8
+ export declare const cascadeDialogue: Dialogue<InstallInput>;
9
+ /** Whether to remove an entry with files already missing on disk; step id `incomplete`. */
10
+ export declare const incompleteDialogue: Dialogue<InstallInput>;
11
+ /** Which installed entries to remove when none were named; step id `selectEntries`. */
12
+ export declare function selectRemovalDialogue(noun: string): Dialogue<InstallInput>;
13
+ /** Whether to go on when some names given to `update` are not installed; step id `entryNotFound`. */
14
+ export declare const notInstalledDialogue: Dialogue<InstallInput>;
15
+ //# sourceMappingURL=installDialogues.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"installDialogues.d.ts","sourceRoot":"","sources":["../../src/cli/installDialogues.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,iGAAiG;AACjG,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,YAAY,CAWpD,CAAC;AAEF,oFAAoF;AACpF,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,YAAY,CAWxD,CAAC;AAEF,mGAAmG;AACnG,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,YAAY,CAQlD,CAAC;AAEF,2FAA2F;AAC3F,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,YAAY,CAQrD,CAAC;AAEF,uFAAuF;AACvF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,CAU1E;AAED,qGAAqG;AACrG,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,YAAY,CAQvD,CAAC"}