@devbie/newbie-cli 0.1.0-stage.0

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 (139) hide show
  1. package/dist/assemble/assets.d.ts +9 -0
  2. package/dist/assemble/assets.js +49 -0
  3. package/dist/assemble/assets.js.map +1 -0
  4. package/dist/assemble/dependencies.d.ts +10 -0
  5. package/dist/assemble/dependencies.js +36 -0
  6. package/dist/assemble/dependencies.js.map +1 -0
  7. package/dist/assemble/env.d.ts +15 -0
  8. package/dist/assemble/env.js +79 -0
  9. package/dist/assemble/env.js.map +1 -0
  10. package/dist/assemble/modules-copy.d.ts +13 -0
  11. package/dist/assemble/modules-copy.js +36 -0
  12. package/dist/assemble/modules-copy.js.map +1 -0
  13. package/dist/assemble/modules.d.ts +8 -0
  14. package/dist/assemble/modules.js +86 -0
  15. package/dist/assemble/modules.js.map +1 -0
  16. package/dist/assemble/pipeline.d.ts +17 -0
  17. package/dist/assemble/pipeline.js +143 -0
  18. package/dist/assemble/pipeline.js.map +1 -0
  19. package/dist/assemble/schema.d.ts +10 -0
  20. package/dist/assemble/schema.js +64 -0
  21. package/dist/assemble/schema.js.map +1 -0
  22. package/dist/assemble/types.d.ts +18 -0
  23. package/dist/assemble/types.js +3 -0
  24. package/dist/assemble/types.js.map +1 -0
  25. package/dist/commands/agent.d.ts +1 -0
  26. package/dist/commands/agent.js +16 -0
  27. package/dist/commands/agent.js.map +1 -0
  28. package/dist/commands/apply.d.ts +6 -0
  29. package/dist/commands/apply.js +52 -0
  30. package/dist/commands/apply.js.map +1 -0
  31. package/dist/commands/check.d.ts +2 -0
  32. package/dist/commands/check.js +37 -0
  33. package/dist/commands/check.js.map +1 -0
  34. package/dist/commands/config.d.ts +7 -0
  35. package/dist/commands/config.js +82 -0
  36. package/dist/commands/config.js.map +1 -0
  37. package/dist/commands/create.d.ts +16 -0
  38. package/dist/commands/create.js +89 -0
  39. package/dist/commands/create.js.map +1 -0
  40. package/dist/commands/default.d.ts +2 -0
  41. package/dist/commands/default.js +69 -0
  42. package/dist/commands/default.js.map +1 -0
  43. package/dist/commands/doctor.d.ts +2 -0
  44. package/dist/commands/doctor.js +145 -0
  45. package/dist/commands/doctor.js.map +1 -0
  46. package/dist/commands/env.d.ts +7 -0
  47. package/dist/commands/env.js +324 -0
  48. package/dist/commands/env.js.map +1 -0
  49. package/dist/commands/install.d.ts +4 -0
  50. package/dist/commands/install.js +45 -0
  51. package/dist/commands/install.js.map +1 -0
  52. package/dist/commands/shared.d.ts +19 -0
  53. package/dist/commands/shared.js +54 -0
  54. package/dist/commands/shared.js.map +1 -0
  55. package/dist/commands/status.d.ts +4 -0
  56. package/dist/commands/status.js +62 -0
  57. package/dist/commands/status.js.map +1 -0
  58. package/dist/commands/update-template.d.ts +6 -0
  59. package/dist/commands/update-template.js +83 -0
  60. package/dist/commands/update-template.js.map +1 -0
  61. package/dist/commands/update.d.ts +6 -0
  62. package/dist/commands/update.js +129 -0
  63. package/dist/commands/update.js.map +1 -0
  64. package/dist/constants/paths.d.ts +12 -0
  65. package/dist/constants/paths.js +19 -0
  66. package/dist/constants/paths.js.map +1 -0
  67. package/dist/core/assets.d.ts +8 -0
  68. package/dist/core/assets.js +30 -0
  69. package/dist/core/assets.js.map +1 -0
  70. package/dist/core/dependency-plan.d.ts +12 -0
  71. package/dist/core/dependency-plan.js +42 -0
  72. package/dist/core/dependency-plan.js.map +1 -0
  73. package/dist/core/drift.d.ts +9 -0
  74. package/dist/core/drift.js +34 -0
  75. package/dist/core/drift.js.map +1 -0
  76. package/dist/core/env-file.d.ts +19 -0
  77. package/dist/core/env-file.js +184 -0
  78. package/dist/core/env-file.js.map +1 -0
  79. package/dist/core/module-manifest.d.ts +19 -0
  80. package/dist/core/module-manifest.js +48 -0
  81. package/dist/core/module-manifest.js.map +1 -0
  82. package/dist/core/modules-state.d.ts +24 -0
  83. package/dist/core/modules-state.js +81 -0
  84. package/dist/core/modules-state.js.map +1 -0
  85. package/dist/core/prisma-schema.d.ts +3 -0
  86. package/dist/core/prisma-schema.js +38 -0
  87. package/dist/core/prisma-schema.js.map +1 -0
  88. package/dist/core/semver.d.ts +9 -0
  89. package/dist/core/semver.js +32 -0
  90. package/dist/core/semver.js.map +1 -0
  91. package/dist/core/template-sync.d.ts +19 -0
  92. package/dist/core/template-sync.js +97 -0
  93. package/dist/core/template-sync.js.map +1 -0
  94. package/dist/core/unified-diff.d.ts +1 -0
  95. package/dist/core/unified-diff.js +103 -0
  96. package/dist/core/unified-diff.js.map +1 -0
  97. package/dist/index.d.ts +2 -0
  98. package/dist/index.js +202 -0
  99. package/dist/index.js.map +1 -0
  100. package/dist/lib/check.d.ts +1 -0
  101. package/dist/lib/check.js +31 -0
  102. package/dist/lib/check.js.map +1 -0
  103. package/dist/lib/drift.d.ts +5 -0
  104. package/dist/lib/drift.js +142 -0
  105. package/dist/lib/drift.js.map +1 -0
  106. package/dist/lib/env-tool-config.d.ts +17 -0
  107. package/dist/lib/env-tool-config.js +32 -0
  108. package/dist/lib/env-tool-config.js.map +1 -0
  109. package/dist/lib/errors.d.ts +5 -0
  110. package/dist/lib/errors.js +20 -0
  111. package/dist/lib/errors.js.map +1 -0
  112. package/dist/lib/exec.d.ts +13 -0
  113. package/dist/lib/exec.js +40 -0
  114. package/dist/lib/exec.js.map +1 -0
  115. package/dist/lib/fs-util.d.ts +1 -0
  116. package/dist/lib/fs-util.js +18 -0
  117. package/dist/lib/fs-util.js.map +1 -0
  118. package/dist/lib/issues.d.ts +8 -0
  119. package/dist/lib/issues.js +31 -0
  120. package/dist/lib/issues.js.map +1 -0
  121. package/dist/lib/loading.d.ts +1 -0
  122. package/dist/lib/loading.js +31 -0
  123. package/dist/lib/loading.js.map +1 -0
  124. package/dist/lib/module-install.d.ts +5 -0
  125. package/dist/lib/module-install.js +54 -0
  126. package/dist/lib/module-install.js.map +1 -0
  127. package/dist/lib/modules-state.d.ts +6 -0
  128. package/dist/lib/modules-state.js +51 -0
  129. package/dist/lib/modules-state.js.map +1 -0
  130. package/dist/lib/registry.d.ts +23 -0
  131. package/dist/lib/registry.js +182 -0
  132. package/dist/lib/registry.js.map +1 -0
  133. package/dist/lib/sink.d.ts +10 -0
  134. package/dist/lib/sink.js +56 -0
  135. package/dist/lib/sink.js.map +1 -0
  136. package/dist/lib/version.d.ts +1 -0
  137. package/dist/lib/version.js +19 -0
  138. package/dist/lib/version.js.map +1 -0
  139. package/package.json +39 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AACA,yCAAoC;AACpC,yCAAgC;AAEhC,4CAA4C;AAC5C,4CAA4C;AAC5C,4CAA4C;AAC5C,8CAA8C;AAC9C,8CAA8C;AAC9C,8CAA8C;AAC9C,wCAAwD;AACxD,gDAAgD;AAChD,8CAA8C;AAC9C,8CAA8C;AAC9C,gEAA+D;AAC/D,gDAAoD;AAEpD,yCAA4D;AAI/C,QAAA,OAAO,GAAI,OAAO,CAAC,iBAAiB,CAAyB;KACvE,OAAO,CAAC;AAEX,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,QAAQ,CAAC;KACd,WAAW,CACV,+FAA+F,CAChG;KACA,OAAO,CAAC,eAAO,CAAC;KAChB,MAAM,CAAC,iBAAiB,EAAE,wBAAwB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;KAClE,MAAM,CACL,WAAW,EACX,0EAA0E,EAC1E,KAAK,CACN;KACA,MAAM,CACL,wBAAwB,EACxB,iDAAiD,EACjD,KAAK,CACN,CAAC;AAEJ,SAAS,cAAc,CAAC,OAAgB;IAGtC,MAAM,OAAO,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAC1C,OAAO;QACL,GAAG,EAAG,OAAO,CAAC,GAAc,IAAI,OAAO,CAAC,GAAG,EAAE;QAC7C,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;QAC/B,kBAAkB,EAAE,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC;KACxD,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,GAAG,CAAC,MAA2B;IAC5C,IAAI,CAAC;QACH,MAAM,MAAM,EAAE,CAAC;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,IAAA,2BAAkB,EAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,KAAK,YAAY,iBAAQ,EAAE,CAAC;YAC9B,OAAO,CAAC,KAAK,CAAC,IAAA,eAAG,EAAC,KAAK,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,IAAA,eAAG,EAAC,KAAM,KAAe,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;QACtD,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,IAAK,KAAe,CAAC,KAAK,EAAE,CAAC;YACvD,OAAO,CAAC,KAAK,CAAE,KAAe,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CACV,0GAA0G,CAC3G;KACA,MAAM,CAAC,WAAW,EAAE,2BAA2B,EAAE,KAAK,CAAC;KACvD,MAAM,CAAC;IACN,MAAM,OAAO,GAAG,EAAE,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;IAC3E,OAAO,GAAG,CAAC,GAAG,EAAE,CAAC,IAAA,oBAAU,EAAC,OAAO,CAAC,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CACV,qFAAqF,CACtF;KACA,MAAM,CAAC,oBAAoB,EAAE,4CAA4C,CAAC;KAC1E,MAAM,CACL,uBAAuB,EACvB,6CAA6C,CAC9C;KACA,MAAM,CAAC,QAAQ,EAAE,6BAA6B,EAAE,KAAK,CAAC;KACtD,MAAM,CAAC;IACN,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC1B,OAAO,GAAG,CAAC,GAAG,EAAE,CACd,IAAA,kBAAS,EAAC;QACR,GAAG,cAAc,CAAC,IAAI,CAAC;QACvB,GAAG,EAAE,KAAK,CAAC,GAA2B;QACtC,MAAM,EAAE,KAAK,CAAC,MAA8B;QAC5C,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;KAC1B,CAAC,CACH,CAAC;AACJ,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CACV,8EAA8E,CAC/E;KACA,MAAM,CAAC;IACN,OAAO,GAAG,CAAC,GAAG,EAAE,CAAC,IAAA,gBAAQ,EAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CACV,iGAAiG,CAClG;KACA,MAAM,CAAC,OAAO,EAAE,8CAA8C,EAAE,KAAK,CAAC;KACtE,MAAM,CAAC,WAAW,EAAE,2BAA2B,EAAE,KAAK,CAAC;KACvD,MAAM,CAAC,SAAS,EAAE,yCAAyC,EAAE,KAAK,CAAC;KACnE,MAAM,CAAC;IACN,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC1B,OAAO,GAAG,CAAC,GAAG,EAAE,CACd,IAAA,kBAAS,EAAC;QACR,GAAG,cAAc,CAAC,IAAI,CAAC;QACvB,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;QACvB,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;QACvB,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;KAC5B,CAAC,CACH,CAAC;AACJ,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CACV,oFAAoF,CACrF;KACA,cAAc,CAAC,iBAAiB,EAAE,yCAAyC,CAAC;KAC5E,MAAM,CAAC,MAAM,EAAE,kDAAkD,EAAE,KAAK,CAAC;KACzE,MAAM,CAAC;IACN,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC1B,OAAO,GAAG,CAAC,GAAG,EAAE,CACd,IAAA,gBAAQ,EAAC;QACP,GAAG,cAAc,CAAC,IAAI,CAAC;QACvB,MAAM,EAAE,KAAK,CAAC,MAAgB;QAC9B,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;KACtB,CAAC,CACH,CAAC;AACJ,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CACV,qFAAqF,CACtF;KACA,MAAM,CAAC;IACN,OAAO,GAAG,CAAC,GAAG,EAAE,CAAC,IAAA,kBAAS,EAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,8CAA8C,CAAC;KAC3D,MAAM,CACL,SAAS,EACT,sDAAsD,EACtD,KAAK,CACN;KACA,MAAM,CAAC;IACN,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC1B,OAAO,GAAG,CAAC,GAAG,EAAE,CACd,IAAA,kBAAS,EAAC,EAAE,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CACpE,CAAC;AACJ,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,eAAe,CAAC;KACxB,WAAW,CAAC,gDAAgD,CAAC;KAC7D,MAAM,CACL,uBAAuB,EACvB,yEAAyE,CAC1E;KACA,MAAM,CACL,sBAAsB,EACtB,6DAA6D,CAC9D;KACA,MAAM,CAAC,eAAe,EAAE,oCAAoC,EAAE,SAAS,CAAC;KACxE,MAAM,CAAC,UAAyB,IAAY;IAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC1B,OAAO,GAAG,CAAC,GAAG,EAAE,CACd,IAAA,kBAAS,EAAC;QACR,GAAG,cAAc,CAAC,IAAI,CAAC;QACvB,IAAI;QACJ,YAAY,EAAE,KAAK,CAAC,YAAkC;QACtD,WAAW,EAAE,KAAK,CAAC,WAAiC;QACpD,OAAO,EAAE,KAAK,CAAC,OAA8B;KAC9C,CAAC,CACH,CAAC;AACJ,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,iBAAiB,CAAC;KAC1B,WAAW,CACV,qIAAqI,CACtI;KACA,MAAM,CACL,uBAAuB,EACvB,yEAAyE,CAC1E;KACA,MAAM,CACL,sBAAsB,EACtB,qEAAqE,CACtE;KACA,MAAM,CACL,SAAS,EACT,wDAAwD,EACxD,KAAK,CACN;KACA,MAAM,CAAC;IACN,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC1B,OAAO,GAAG,CAAC,GAAG,EAAE,CACd,IAAA,mCAAiB,EAAC;QAChB,GAAG,cAAc,CAAC,IAAI,CAAC;QACvB,YAAY,EAAE,KAAK,CAAC,YAAkC;QACtD,WAAW,EAAE,KAAK,CAAC,WAAiC;QACpD,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;KAC5B,CAAC,CACH,CAAC;AACJ,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,8DAA8D,CAAC;KAC3E,MAAM,CAAC;IACN,OAAO,GAAG,CAAC,GAAG,EAAE,CAAC,IAAA,gBAAQ,GAAE,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC;AAEL,MAAM,GAAG,GAAG,OAAO;KAChB,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,oCAAoC,CAAC,CAAC;AAErD,GAAG;KACA,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,+DAA+D,CAAC;KAC5E,MAAM,CACL,0BAA0B,EAC1B,8DAA8D,CAC/D;KACA,MAAM,CACL,WAAW,EACX,kEAAkE,EAClE,KAAK,CACN;KACA,MAAM,CAAC;IACN,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC1B,OAAO,GAAG,CAAC,GAAG,EAAE,CACd,IAAA,gBAAU,EAAC;QACT,GAAG,cAAc,CAAC,IAAI,CAAC;QACvB,WAAW,EAAE,KAAK,CAAC,WAAiC;QACpD,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;KACxB,CAAC,CACH,CAAC;AACJ,CAAC,CAAC,CAAC;AAEL,GAAG;KACA,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,6DAA6D,CAAC;KAC1E,MAAM,CACL,0BAA0B,EAC1B,8DAA8D,CAC/D;KACA,MAAM,CAAC,WAAW,EAAE,yCAAyC,EAAE,KAAK,CAAC;KACrE,MAAM,CAAC;IACN,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC1B,OAAO,GAAG,CAAC,GAAG,EAAE,CACd,IAAA,gBAAU,EAAC;QACT,GAAG,cAAc,CAAC,IAAI,CAAC;QACvB,WAAW,EAAE,KAAK,CAAC,WAAiC;QACpD,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;KACxB,CAAC,CACH,CAAC;AACJ,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;KACzD,WAAW,CAAC,kDAAkD,CAAC;KAC/D,MAAM,CAAC;IACN,OAAO,GAAG,CAAC,GAAG,EAAE,CAAC,IAAA,wBAAc,EAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function collectMissingEnv(cwd: string, enabledKeys: string[]): Promise<Record<string, string[]>>;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.collectMissingEnv = collectMissingEnv;
7
+ const promises_1 = __importDefault(require("node:fs/promises"));
8
+ const node_path_1 = __importDefault(require("node:path"));
9
+ const env_file_1 = require("../core/env-file");
10
+ const paths_1 = require("../constants/paths");
11
+ const module_install_1 = require("./module-install");
12
+ async function collectMissingEnv(cwd, enabledKeys) {
13
+ let raw = "";
14
+ try {
15
+ raw = await promises_1.default.readFile(node_path_1.default.resolve(cwd, paths_1.ENV_PATH), "utf8");
16
+ }
17
+ catch {
18
+ }
19
+ const present = new Set(Object.keys((0, env_file_1.envValues)((0, env_file_1.parseEnv)(raw))));
20
+ const missing = {};
21
+ for (const key of enabledKeys) {
22
+ const manifest = await (0, module_install_1.readInstalledManifest)(cwd, key);
23
+ if (!manifest?.env)
24
+ continue;
25
+ const absent = Object.keys(manifest.env).filter((envKey) => !present.has(envKey));
26
+ if (absent.length > 0)
27
+ missing[key] = absent;
28
+ }
29
+ return missing;
30
+ }
31
+ //# sourceMappingURL=check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/lib/check.ts"],"names":[],"mappings":";;;;;AAWA,8CAyBC;AApCD,gEAAkC;AAClC,0DAA6B;AAE7B,+CAAuD;AACvD,8CAA8C;AAC9C,qDAAyD;AAMlD,KAAK,UAAU,iBAAiB,CACrC,GAAW,EACX,WAAqB;IAErB,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,mBAAI,CAAC,OAAO,CAAC,GAAG,EAAE,gBAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;IAC/D,CAAC;IAAC,MAAM,CAAC;IAET,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAA,oBAAS,EAAC,IAAA,mBAAQ,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/D,MAAM,OAAO,GAA6B,EAAE,CAAC;IAE7C,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,MAAM,IAAA,sCAAqB,EAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACvD,IAAI,CAAC,QAAQ,EAAE,GAAG;YAAE,SAAS;QAE7B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,CAC7C,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CACjC,CAAC;QACF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;IAC/C,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { FileSnapshot } from "../core/drift";
2
+ import { RegistryLocation } from "./registry";
3
+ export declare function snapshotDirectory(root: string): Promise<FileSnapshot>;
4
+ export declare function snapshotInstalledModule(cwd: string, key: string): Promise<FileSnapshot>;
5
+ export declare function snapshotPristineModule(registry: RegistryLocation, key: string, sourceCommit: string): Promise<FileSnapshot | null>;
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.snapshotDirectory = snapshotDirectory;
7
+ exports.snapshotInstalledModule = snapshotInstalledModule;
8
+ exports.snapshotPristineModule = snapshotPristineModule;
9
+ const node_crypto_1 = __importDefault(require("node:crypto"));
10
+ const node_child_process_1 = require("node:child_process");
11
+ const promises_1 = __importDefault(require("node:fs/promises"));
12
+ const node_os_1 = __importDefault(require("node:os"));
13
+ const node_path_1 = __importDefault(require("node:path"));
14
+ const paths_1 = require("../constants/paths");
15
+ const IGNORED_FILES = new Set([".DS_Store"]);
16
+ async function readStable(file) {
17
+ for (let attempt = 0;; attempt++) {
18
+ try {
19
+ return await promises_1.default.readFile(file);
20
+ }
21
+ catch (error) {
22
+ if (error.code !== "ENOENT" || attempt === 2) {
23
+ throw error;
24
+ }
25
+ await new Promise((resolve) => setTimeout(resolve, 10));
26
+ }
27
+ }
28
+ }
29
+ async function hashFile(file) {
30
+ const hash = node_crypto_1.default.createHash("sha256");
31
+ hash.update(await readStable(file));
32
+ return hash.digest("hex");
33
+ }
34
+ async function snapshotDirectory(root) {
35
+ const entries = new Map();
36
+ async function walk(dir, prefix) {
37
+ let dirents;
38
+ try {
39
+ dirents = await promises_1.default.readdir(dir, { withFileTypes: true });
40
+ }
41
+ catch {
42
+ return;
43
+ }
44
+ for (const dirent of dirents) {
45
+ if (IGNORED_FILES.has(dirent.name))
46
+ continue;
47
+ const relative = prefix ? `${prefix}/${dirent.name}` : dirent.name;
48
+ const absolute = node_path_1.default.join(dir, dirent.name);
49
+ if (dirent.isDirectory()) {
50
+ await walk(absolute, relative);
51
+ }
52
+ else if (dirent.isFile()) {
53
+ entries.set(relative, await hashFile(absolute));
54
+ }
55
+ }
56
+ }
57
+ await walk(root, "");
58
+ return entries;
59
+ }
60
+ async function snapshotInstalledModule(cwd, key) {
61
+ return snapshotDirectory(node_path_1.default.resolve(cwd, "src", "modules", key));
62
+ }
63
+ function extractArchive(registryRoot, sourceCommit, subpath, dest) {
64
+ return new Promise((resolve, reject) => {
65
+ const git = (0, node_child_process_1.spawn)("git", [
66
+ "-C",
67
+ registryRoot,
68
+ "archive",
69
+ sourceCommit,
70
+ "--",
71
+ subpath,
72
+ ]);
73
+ const tar = (0, node_child_process_1.spawn)("tar", ["-x", "-C", dest]);
74
+ git.stdout.pipe(tar.stdin);
75
+ let gitErr = "";
76
+ let tarErr = "";
77
+ git.stderr.on("data", (chunk) => {
78
+ gitErr += chunk.toString();
79
+ });
80
+ tar.stderr.on("data", (chunk) => {
81
+ tarErr += chunk.toString();
82
+ });
83
+ let gitCode = null;
84
+ let tarCode = null;
85
+ let settled = false;
86
+ const finish = () => {
87
+ if (settled || gitCode === null || tarCode === null)
88
+ return;
89
+ settled = true;
90
+ if (gitCode !== 0) {
91
+ resolve(false);
92
+ }
93
+ else if (tarCode !== 0) {
94
+ reject(new Error(`tar extraction failed with code ${tarCode}: ${tarErr.trim() || "no stderr output"}`));
95
+ }
96
+ else {
97
+ resolve(true);
98
+ }
99
+ };
100
+ git.on("error", (error) => {
101
+ if (!settled) {
102
+ settled = true;
103
+ reject(error);
104
+ }
105
+ });
106
+ tar.on("error", (error) => {
107
+ if (!settled) {
108
+ settled = true;
109
+ reject(error);
110
+ }
111
+ });
112
+ git.on("close", (code) => {
113
+ gitCode = code;
114
+ finish();
115
+ });
116
+ tar.on("close", (code) => {
117
+ tarCode = code;
118
+ finish();
119
+ });
120
+ });
121
+ }
122
+ async function snapshotPristineModule(registry, key, sourceCommit) {
123
+ const tmp = await promises_1.default.mkdtemp(node_path_1.default.join(node_os_1.default.tmpdir(), `newbie-pristine-${key}-`));
124
+ try {
125
+ const subpath = `${paths_1.REGISTRY_MODULES_DIR}/${key}`;
126
+ const archived = await extractArchive(registry.root, sourceCommit, subpath, tmp);
127
+ if (!archived)
128
+ return null;
129
+ const moduleDir = node_path_1.default.join(tmp, ...paths_1.REGISTRY_MODULES_DIR.split("/"), key);
130
+ try {
131
+ await promises_1.default.access(moduleDir);
132
+ }
133
+ catch {
134
+ return null;
135
+ }
136
+ return await snapshotDirectory(moduleDir);
137
+ }
138
+ finally {
139
+ await promises_1.default.rm(tmp, { recursive: true, force: true });
140
+ }
141
+ }
142
+ //# sourceMappingURL=drift.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drift.js","sourceRoot":"","sources":["../../src/lib/drift.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export interface SecretConfig {
2
+ name: string;
3
+ description?: string;
4
+ keys?: string[];
5
+ keysOnly?: string[];
6
+ }
7
+ export interface EnvironmentConfig {
8
+ region: string;
9
+ secrets: SecretConfig[];
10
+ }
11
+ export interface EnvToolConfig {
12
+ environments: Record<string, EnvironmentConfig>;
13
+ }
14
+ export declare function readEnvToolConfig(cwd: string): Promise<{
15
+ config: EnvToolConfig;
16
+ path: string;
17
+ }>;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.readEnvToolConfig = readEnvToolConfig;
7
+ const promises_1 = __importDefault(require("node:fs/promises"));
8
+ const node_path_1 = __importDefault(require("node:path"));
9
+ const paths_1 = require("../constants/paths");
10
+ const errors_1 = require("./errors");
11
+ async function readEnvToolConfig(cwd) {
12
+ for (const candidate of paths_1.ENV_TOOL_CONFIG_CANDIDATES) {
13
+ const target = node_path_1.default.resolve(cwd, candidate);
14
+ try {
15
+ const raw = await promises_1.default.readFile(target, "utf8");
16
+ const parsed = JSON.parse(raw);
17
+ if (!parsed.environments || typeof parsed.environments !== "object") {
18
+ throw new errors_1.CliError(`Invalid env-tool config ${candidate}: missing "environments".`);
19
+ }
20
+ return { config: parsed, path: candidate };
21
+ }
22
+ catch (error) {
23
+ if (error.code === "ENOENT")
24
+ continue;
25
+ if (error instanceof errors_1.CliError)
26
+ throw error;
27
+ throw new errors_1.CliError(`Cannot parse env-tool config ${candidate}: ${error.message}`);
28
+ }
29
+ }
30
+ throw new errors_1.CliError(`Env tool config not found. Looked at: ${paths_1.ENV_TOOL_CONFIG_CANDIDATES.join(", ")}`);
31
+ }
32
+ //# sourceMappingURL=env-tool-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-tool-config.js","sourceRoot":"","sources":["../../src/lib/env-tool-config.ts"],"names":[],"mappings":";;;;;AAwBA,8CA0BC;AAlDD,gEAAkC;AAClC,0DAA6B;AAE7B,8CAAgE;AAChE,qCAAoC;AAoB7B,KAAK,UAAU,iBAAiB,CACrC,GAAW;IAEX,KAAK,MAAM,SAAS,IAAI,kCAA0B,EAAE,CAAC;QACnD,MAAM,MAAM,GAAG,mBAAI,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC5C,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAkB,CAAC;YAChD,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,OAAO,MAAM,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;gBACpE,MAAM,IAAI,iBAAQ,CAChB,2BAA2B,SAAS,2BAA2B,CAChE,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC7C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;gBAAE,SAAS;YACjE,IAAI,KAAK,YAAY,iBAAQ;gBAAE,MAAM,KAAK,CAAC;YAC3C,MAAM,IAAI,iBAAQ,CAChB,gCAAgC,SAAS,KAAM,KAAe,CAAC,OAAO,EAAE,CACzE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,IAAI,iBAAQ,CAChB,yCAAyC,kCAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACjF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare class CliError extends Error {
2
+ readonly details?: unknown | undefined;
3
+ constructor(message: string, details?: unknown | undefined);
4
+ }
5
+ export declare function isUserCancellation(error: unknown): boolean;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CliError = void 0;
4
+ exports.isUserCancellation = isUserCancellation;
5
+ class CliError extends Error {
6
+ details;
7
+ constructor(message, details) {
8
+ super(message);
9
+ this.details = details;
10
+ this.name = "CliError";
11
+ }
12
+ }
13
+ exports.CliError = CliError;
14
+ function isUserCancellation(error) {
15
+ return (typeof error === "object" &&
16
+ error !== null &&
17
+ "name" in error &&
18
+ error.name === "ExitPromptError");
19
+ }
20
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":";;;AAYA,gDAOC;AAlBD,MAAa,QAAS,SAAQ,KAAK;IAGtB;IAFX,YACE,OAAe,EACN,OAAiB;QAE1B,KAAK,CAAC,OAAO,CAAC,CAAC;QAFN,YAAO,GAAP,OAAO,CAAU;QAG1B,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,CAAC;CACF;AARD,4BAQC;AAGD,SAAgB,kBAAkB,CAAC,KAAc;IAC/C,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,MAAM,IAAI,KAAK;QACd,KAA2B,CAAC,IAAI,KAAK,iBAAiB,CACxD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,13 @@
1
+ export interface ExecResult {
2
+ stdout: string;
3
+ stderr: string;
4
+ }
5
+ export declare function execCapture(command: string, args?: string[], options?: {
6
+ cwd?: string;
7
+ env?: NodeJS.ProcessEnv;
8
+ }): Promise<ExecResult>;
9
+ export declare function execLive(command: string, args?: string[], options?: {
10
+ cwd?: string;
11
+ env?: NodeJS.ProcessEnv;
12
+ }): Promise<void>;
13
+ export declare function trim(result: ExecResult): string;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.execCapture = execCapture;
4
+ exports.execLive = execLive;
5
+ exports.trim = trim;
6
+ const node_child_process_1 = require("node:child_process");
7
+ function execCapture(command, args = [], options = {}) {
8
+ return new Promise((resolve, reject) => {
9
+ (0, node_child_process_1.execFile)(command, args, { cwd: options.cwd, env: options.env, maxBuffer: 32 * 1024 * 1024 }, (error, stdout, stderr) => {
10
+ if (error) {
11
+ error.stderr = stderr?.toString();
12
+ reject(error);
13
+ return;
14
+ }
15
+ resolve({ stdout: stdout.toString(), stderr: stderr.toString() });
16
+ });
17
+ });
18
+ }
19
+ function execLive(command, args = [], options = {}) {
20
+ return new Promise((resolve, reject) => {
21
+ const child = (0, node_child_process_1.spawn)(command, args, {
22
+ cwd: options.cwd,
23
+ env: options.env,
24
+ stdio: "inherit",
25
+ });
26
+ child.on("error", reject);
27
+ child.on("close", (code) => {
28
+ if (code === 0) {
29
+ resolve();
30
+ }
31
+ else {
32
+ reject(new Error(`[Error] ${command} ${args.join(" ")} exited with code ${code}`));
33
+ }
34
+ });
35
+ });
36
+ }
37
+ function trim(result) {
38
+ return result.stdout.trim();
39
+ }
40
+ //# sourceMappingURL=exec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exec.js","sourceRoot":"","sources":["../../src/lib/exec.ts"],"names":[],"mappings":";;AAaA,kCAoBC;AAGD,4BAwBC;AAED,oBAEC;AAhED,2DAAqD;AAarD,SAAgB,WAAW,CACzB,OAAe,EACf,OAAiB,EAAE,EACnB,UAAqD,EAAE;IAEvD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAA,6BAAQ,EACN,OAAO,EACP,IAAI,EACJ,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,EACnE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YACxB,IAAI,KAAK,EAAE,CAAC;gBACT,KAAqC,CAAC,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,CAAC;gBACnE,MAAM,CAAC,KAAK,CAAC,CAAC;gBACd,OAAO;YACT,CAAC;YACD,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACpE,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAGD,SAAgB,QAAQ,CACtB,OAAe,EACf,OAAiB,EAAE,EACnB,UAAqD,EAAE;IAEvD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,IAAA,0BAAK,EAAC,OAAO,EAAE,IAAI,EAAE;YACjC,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC1B,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,OAAO,EAAE,CAAC;YACZ,CAAC;iBAAM,CAAC;gBACN,MAAM,CACJ,IAAI,KAAK,CACP,WAAW,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE,CAChE,CACF,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,IAAI,CAAC,MAAkB;IACrC,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AAC9B,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function fileExists(cwd: string, relativePath: string): Promise<boolean>;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.fileExists = fileExists;
7
+ const promises_1 = __importDefault(require("node:fs/promises"));
8
+ const node_path_1 = __importDefault(require("node:path"));
9
+ async function fileExists(cwd, relativePath) {
10
+ try {
11
+ await promises_1.default.stat(node_path_1.default.resolve(cwd, relativePath));
12
+ return true;
13
+ }
14
+ catch {
15
+ return false;
16
+ }
17
+ }
18
+ //# sourceMappingURL=fs-util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs-util.js","sourceRoot":"","sources":["../../src/lib/fs-util.ts"],"names":[],"mappings":";;;;;AAIA,gCAUC;AAdD,gEAAkC;AAClC,0DAA6B;AAGtB,KAAK,UAAU,UAAU,CAC9B,GAAW,EACX,YAAoB;IAEpB,IAAI,CAAC;QACH,MAAM,kBAAE,CAAC,IAAI,CAAC,mBAAI,CAAC,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { Sink } from "./sink";
2
+ export declare class IssueBag {
3
+ private readonly items;
4
+ warn(message: string): void;
5
+ get count(): number;
6
+ assertEmpty(): void;
7
+ }
8
+ export declare function reportIssue(issues: IssueBag, sink: Sink, message: string): void;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IssueBag = void 0;
4
+ exports.reportIssue = reportIssue;
5
+ const colorette_1 = require("colorette");
6
+ const errors_1 = require("./errors");
7
+ class IssueBag {
8
+ items = [];
9
+ warn(message) {
10
+ console.warn((0, colorette_1.yellow)(`[warn] ${message}`));
11
+ this.items.push(message);
12
+ }
13
+ get count() {
14
+ return this.items.length;
15
+ }
16
+ assertEmpty() {
17
+ if (this.items.length > 0) {
18
+ throw new errors_1.CliError(`Completed with ${this.items.length} warning(s); see above.`);
19
+ }
20
+ }
21
+ }
22
+ exports.IssueBag = IssueBag;
23
+ function reportIssue(issues, sink, message) {
24
+ if (sink.dryRun) {
25
+ console.info((0, colorette_1.cyan)(`[dry-run] skip: ${message}`));
26
+ }
27
+ else {
28
+ issues.warn(message);
29
+ }
30
+ }
31
+ //# sourceMappingURL=issues.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issues.js","sourceRoot":"","sources":["../../src/lib/issues.ts"],"names":[],"mappings":";;;AAqCA,kCAUC;AA/CD,yCAAyC;AAEzC,qCAAoC;AASpC,MAAa,QAAQ;IACF,KAAK,GAAa,EAAE,CAAC;IAEtC,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,IAAI,CAAC,IAAA,kBAAM,EAAC,UAAU,OAAO,EAAE,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;IAED,WAAW;QACT,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,iBAAQ,CAChB,kBAAkB,IAAI,CAAC,KAAK,CAAC,MAAM,yBAAyB,CAC7D,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AAnBD,4BAmBC;AAOD,SAAgB,WAAW,CACzB,MAAgB,EAChB,IAAU,EACV,OAAe;IAEf,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,IAAA,gBAAI,EAAC,mBAAmB,OAAO,EAAE,CAAC,CAAC,CAAC;IACnD,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;AACH,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function handleLoading<T>(text: string, task: () => Promise<T>): Promise<T>;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.handleLoading = handleLoading;
7
+ const node_readline_1 = __importDefault(require("node:readline"));
8
+ const colorette_1 = require("colorette");
9
+ async function handleLoading(text, task) {
10
+ if (!process.stdout.isTTY) {
11
+ console.info(`${text} ...`);
12
+ const result = await task();
13
+ console.info(`${text} ${(0, colorette_1.green)("[Done]")}`);
14
+ return result;
15
+ }
16
+ const frames = ["▹▹▹", "▸▹▹", "▹▸▹", "▹▹▸"];
17
+ let index = 0;
18
+ const timer = setInterval(() => {
19
+ process.stdout.write(`\r${text} ${(0, colorette_1.green)(frames[index++ % frames.length])}`);
20
+ }, 200);
21
+ try {
22
+ return await task();
23
+ }
24
+ finally {
25
+ clearInterval(timer);
26
+ node_readline_1.default.cursorTo(process.stdout, 0);
27
+ node_readline_1.default.clearLine(process.stdout, 0);
28
+ console.info(`${text} ${(0, colorette_1.green)("[Done]")}`);
29
+ }
30
+ }
31
+ //# sourceMappingURL=loading.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loading.js","sourceRoot":"","sources":["../../src/lib/loading.ts"],"names":[],"mappings":";;;;;AASA,sCAyBC;AAlCD,kEAAqC;AAErC,yCAAkC;AAO3B,KAAK,UAAU,aAAa,CACjC,IAAY,EACZ,IAAsB;IAEtB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAC1B,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,MAAM,CAAC,CAAC;QAC5B,MAAM,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;QAC5B,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,IAAA,iBAAK,EAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC3C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC5C,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,IAAA,iBAAK,EAAC,MAAM,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IAC9E,CAAC,EAAE,GAAG,CAAC,CAAC;IAER,IAAI,CAAC;QACH,OAAO,MAAM,IAAI,EAAE,CAAC;IACtB,CAAC;YAAS,CAAC;QACT,aAAa,CAAC,KAAK,CAAC,CAAC;QACrB,uBAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACrC,uBAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,IAAA,iBAAK,EAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { ModuleManifest } from "../core/module-manifest";
2
+ export declare function installedModuleDir(cwd: string, key: string): string;
3
+ export declare function readInstalledManifest(cwd: string, key: string): Promise<ModuleManifest | null>;
4
+ export declare function installedSchemaPath(cwd: string, key: string, manifest: ModuleManifest): string | null;
5
+ export declare function readInstalledSchema(cwd: string, key: string, manifest: ModuleManifest): Promise<string | null>;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.installedModuleDir = installedModuleDir;
7
+ exports.readInstalledManifest = readInstalledManifest;
8
+ exports.installedSchemaPath = installedSchemaPath;
9
+ exports.readInstalledSchema = readInstalledSchema;
10
+ const promises_1 = __importDefault(require("node:fs/promises"));
11
+ const node_path_1 = __importDefault(require("node:path"));
12
+ const paths_1 = require("../constants/paths");
13
+ const module_manifest_1 = require("../core/module-manifest");
14
+ const errors_1 = require("./errors");
15
+ function installedModuleDir(cwd, key) {
16
+ return node_path_1.default.resolve(cwd, paths_1.MODULES_DIR, key);
17
+ }
18
+ async function readInstalledManifest(cwd, key) {
19
+ const file = node_path_1.default.join(installedModuleDir(cwd, key), paths_1.MODULE_MANIFEST_FILE);
20
+ let raw;
21
+ try {
22
+ raw = await promises_1.default.readFile(file, "utf8");
23
+ }
24
+ catch (error) {
25
+ if (error.code === "ENOENT")
26
+ return null;
27
+ throw error;
28
+ }
29
+ try {
30
+ return (0, module_manifest_1.normalizeModuleManifest)(JSON.parse(raw), key);
31
+ }
32
+ catch (error) {
33
+ throw new errors_1.CliError(`Invalid ${node_path_1.default.posix.join(paths_1.MODULES_DIR, key, paths_1.MODULE_MANIFEST_FILE)}: ${error.message}`);
34
+ }
35
+ }
36
+ function installedSchemaPath(cwd, key, manifest) {
37
+ if (!manifest.schema)
38
+ return null;
39
+ return node_path_1.default.join(installedModuleDir(cwd, key), manifest.schema);
40
+ }
41
+ async function readInstalledSchema(cwd, key, manifest) {
42
+ const file = installedSchemaPath(cwd, key, manifest);
43
+ if (!file)
44
+ return null;
45
+ try {
46
+ return await promises_1.default.readFile(file, "utf8");
47
+ }
48
+ catch (error) {
49
+ if (error.code === "ENOENT")
50
+ return null;
51
+ throw error;
52
+ }
53
+ }
54
+ //# sourceMappingURL=module-install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-install.js","sourceRoot":"","sources":["../../src/lib/module-install.ts"],"names":[],"mappings":";;;;;AAaA,gDAEC;AAOD,sDAsBC;AAGD,kDAOC;AAGD,kDAaC;AAtED,gEAAkC;AAClC,0DAA6B;AAE7B,8CAG4B;AAC5B,6DAGiC;AACjC,qCAAoC;AAEpC,SAAgB,kBAAkB,CAAC,GAAW,EAAE,GAAW;IACzD,OAAO,mBAAI,CAAC,OAAO,CAAC,GAAG,EAAE,mBAAW,EAAE,GAAG,CAAC,CAAC;AAC7C,CAAC;AAOM,KAAK,UAAU,qBAAqB,CACzC,GAAW,EACX,GAAW;IAEX,MAAM,IAAI,GAAG,mBAAI,CAAC,IAAI,CACpB,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,EAC5B,4BAAoB,CACrB,CAAC;IACF,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QACpE,MAAM,KAAK,CAAC;IACd,CAAC;IACD,IAAI,CAAC;QACH,OAAO,IAAA,yCAAuB,EAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IACvD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,iBAAQ,CAChB,WAAW,mBAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAW,EAAE,GAAG,EAAE,4BAAoB,CAAC,KAAM,KAAe,CAAC,OAAO,EAAE,CAClG,CAAC;IACJ,CAAC;AACH,CAAC;AAGD,SAAgB,mBAAmB,CACjC,GAAW,EACX,GAAW,EACX,QAAwB;IAExB,IAAI,CAAC,QAAQ,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAClC,OAAO,mBAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;AAClE,CAAC;AAGM,KAAK,UAAU,mBAAmB,CACvC,GAAW,EACX,GAAW,EACX,QAAwB;IAExB,MAAM,IAAI,GAAG,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;IACrD,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,IAAI,CAAC;QACH,OAAO,MAAM,kBAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QACpE,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { ModulesState } from "../core/modules-state";
2
+ import { Sink } from "./sink";
3
+ export declare function stateExists(cwd: string): Promise<boolean>;
4
+ export declare function readModulesState(cwd: string): Promise<ModulesState>;
5
+ export declare function ensureModulesState(cwd: string, sink: Sink): Promise<void>;
6
+ export declare function writeModulesState(cwd: string, sink: Sink, state: ModulesState): Promise<void>;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.stateExists = stateExists;
7
+ exports.readModulesState = readModulesState;
8
+ exports.ensureModulesState = ensureModulesState;
9
+ exports.writeModulesState = writeModulesState;
10
+ const promises_1 = __importDefault(require("node:fs/promises"));
11
+ const node_path_1 = __importDefault(require("node:path"));
12
+ const paths_1 = require("../constants/paths");
13
+ const modules_state_1 = require("../core/modules-state");
14
+ const errors_1 = require("./errors");
15
+ async function stateExists(cwd) {
16
+ try {
17
+ await promises_1.default.stat(node_path_1.default.resolve(cwd, paths_1.MODULES_JSON));
18
+ return true;
19
+ }
20
+ catch {
21
+ return false;
22
+ }
23
+ }
24
+ async function readModulesState(cwd) {
25
+ const target = node_path_1.default.resolve(cwd, paths_1.MODULES_JSON);
26
+ let content;
27
+ try {
28
+ content = await promises_1.default.readFile(target, "utf8");
29
+ }
30
+ catch (error) {
31
+ if (error.code === "ENOENT") {
32
+ return (0, modules_state_1.createEmptyModulesState)();
33
+ }
34
+ throw error;
35
+ }
36
+ try {
37
+ return (0, modules_state_1.normalizeModulesState)(JSON.parse(content));
38
+ }
39
+ catch (error) {
40
+ throw new errors_1.CliError(`Invalid JSON in ${paths_1.MODULES_JSON}: ${error.message}`);
41
+ }
42
+ }
43
+ async function ensureModulesState(cwd, sink) {
44
+ if (await stateExists(cwd))
45
+ return;
46
+ await sink.writeJson(paths_1.MODULES_JSON, (0, modules_state_1.createEmptyModulesState)());
47
+ }
48
+ async function writeModulesState(cwd, sink, state) {
49
+ await sink.writeJson(paths_1.MODULES_JSON, state);
50
+ }
51
+ //# sourceMappingURL=modules-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modules-state.js","sourceRoot":"","sources":["../../src/lib/modules-state.ts"],"names":[],"mappings":";;;;;AAYA,kCAOC;AAED,4CAmBC;AAGD,gDAMC;AAED,8CAMC;AAzDD,gEAAkC;AAClC,0DAA6B;AAE7B,8CAAkD;AAClD,yDAI+B;AAC/B,qCAAoC;AAG7B,KAAK,UAAU,WAAW,CAAC,GAAW;IAC3C,IAAI,CAAC;QACH,MAAM,kBAAE,CAAC,IAAI,CAAC,mBAAI,CAAC,OAAO,CAAC,GAAG,EAAE,oBAAY,CAAC,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,gBAAgB,CAAC,GAAW;IAChD,MAAM,MAAM,GAAG,mBAAI,CAAC,OAAO,CAAC,GAAG,EAAE,oBAAY,CAAC,CAAC;IAC/C,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvD,OAAO,IAAA,uCAAuB,GAAE,CAAC;QACnC,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,OAAO,IAAA,qCAAqB,EAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,iBAAQ,CAChB,mBAAmB,oBAAY,KAAM,KAAe,CAAC,OAAO,EAAE,CAC/D,CAAC;IACJ,CAAC;AACH,CAAC;AAGM,KAAK,UAAU,kBAAkB,CACtC,GAAW,EACX,IAAU;IAEV,IAAI,MAAM,WAAW,CAAC,GAAG,CAAC;QAAE,OAAO;IACnC,MAAM,IAAI,CAAC,SAAS,CAAC,oBAAY,EAAE,IAAA,uCAAuB,GAAE,CAAC,CAAC;AAChE,CAAC;AAEM,KAAK,UAAU,iBAAiB,CACrC,GAAW,EACX,IAAU,EACV,KAAmB;IAEnB,MAAM,IAAI,CAAC,SAAS,CAAC,oBAAY,EAAE,KAAK,CAAC,CAAC;AAC5C,CAAC"}
@@ -0,0 +1,23 @@
1
+ export declare const REGISTRY_URL = "https://github.com/worldzhy/newbie-modules.git";
2
+ export declare const REGISTRY_PATH_ENV = "NEWBIE_MODULES_PATH";
3
+ export declare const REGISTRY_REF_ENV = "NEWBIE_MODULES_REF";
4
+ export interface RegistryLocation {
5
+ root: string;
6
+ url: string;
7
+ sourceCommit: string | null;
8
+ local: boolean;
9
+ }
10
+ export declare function resolveRegistry(options?: {
11
+ fetch?: boolean;
12
+ }): Promise<RegistryLocation | null>;
13
+ export declare function requireRegistry(options?: {
14
+ fetch?: boolean;
15
+ }): Promise<RegistryLocation>;
16
+ export declare function moduleRootInRegistry(registryRoot: string, key: string): string;
17
+ export declare function listRegistryKeys(registryRoot: string): Promise<string[]>;
18
+ export interface RegistryModule {
19
+ key: string;
20
+ dir: string;
21
+ manifest: import("../core/module-manifest").ModuleManifest;
22
+ }
23
+ export declare function readRegistryModule(registryRoot: string, key: string): Promise<RegistryModule | null>;