@geekmidas/cli 10.0.0-alpha.65 → 10.0.0-alpha.67

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 (229) hide show
  1. package/README.md +123 -177
  2. package/dist/{HostingerProvider-x9gQTAGZ.mjs → HostingerProvider-D85ayzTi.mjs} +4 -4
  3. package/dist/HostingerProvider-D85ayzTi.mjs.map +1 -0
  4. package/dist/{HostingerProvider-Dlmbfass.cjs → HostingerProvider-dxkwynSs.cjs} +4 -4
  5. package/dist/HostingerProvider-dxkwynSs.cjs.map +1 -0
  6. package/dist/{LegacyStateStore-BGoo__sO.cjs → LegacyStateStore-BZiO9-Lw.cjs} +2 -2
  7. package/dist/{LegacyStateStore-BGoo__sO.cjs.map → LegacyStateStore-BZiO9-Lw.cjs.map} +1 -1
  8. package/dist/{LegacyStateStore-BUu1nQ5u.mjs → LegacyStateStore-C39UKwmf.mjs} +2 -2
  9. package/dist/{LegacyStateStore-BUu1nQ5u.mjs.map → LegacyStateStore-C39UKwmf.mjs.map} +1 -1
  10. package/dist/{LocalStateStore-93urXyQe.cjs → LocalStateStore-DHVsZLyF.cjs} +2 -2
  11. package/dist/{LocalStateStore-93urXyQe.cjs.map → LocalStateStore-DHVsZLyF.cjs.map} +1 -1
  12. package/dist/{LocalStateStore-BRhMQRuy.mjs → LocalStateStore-Dk3Wbvzk.mjs} +2 -2
  13. package/dist/{LocalStateStore-BRhMQRuy.mjs.map → LocalStateStore-Dk3Wbvzk.mjs.map} +1 -1
  14. package/dist/{OpenApiTsGenerator-BWuDRHe9.cjs → OpenApiTsGenerator-B2zrdyP4.cjs} +2 -2
  15. package/dist/{OpenApiTsGenerator-BWuDRHe9.cjs.map → OpenApiTsGenerator-B2zrdyP4.cjs.map} +1 -1
  16. package/dist/{OpenApiTsGenerator-C6v-IeHt.mjs → OpenApiTsGenerator-BmUAcR7d.mjs} +2 -2
  17. package/dist/{OpenApiTsGenerator-C6v-IeHt.mjs.map → OpenApiTsGenerator-BmUAcR7d.mjs.map} +1 -1
  18. package/dist/{Route53Provider-DVILBsvV.cjs → Route53Provider-Bllus2NR.cjs} +2 -2
  19. package/dist/Route53Provider-Bllus2NR.cjs.map +1 -0
  20. package/dist/{Route53Provider-Cvj40A8I.mjs → Route53Provider-QXxjkZO1.mjs} +2 -2
  21. package/dist/Route53Provider-QXxjkZO1.mjs.map +1 -0
  22. package/dist/{S3StateStore-F4dxw6kS.cjs → S3StateStore--4tYVMAL.cjs} +2 -2
  23. package/dist/{S3StateStore-F4dxw6kS.cjs.map → S3StateStore--4tYVMAL.cjs.map} +1 -1
  24. package/dist/{S3StateStore-pw1GhWwt.mjs → S3StateStore-B_ZF9eHt.mjs} +2 -2
  25. package/dist/{S3StateStore-pw1GhWwt.mjs.map → S3StateStore-B_ZF9eHt.mjs.map} +1 -1
  26. package/dist/{SSMStateStore-Bt9acuAF.cjs → SSMStateStore-ACZ8hRvZ.cjs} +2 -2
  27. package/dist/{SSMStateStore-Bt9acuAF.cjs.map → SSMStateStore-ACZ8hRvZ.cjs.map} +1 -1
  28. package/dist/{SSMStateStore-Dmj7zzFO.mjs → SSMStateStore-DjPuKqrm.mjs} +2 -2
  29. package/dist/{SSMStateStore-Dmj7zzFO.mjs.map → SSMStateStore-DjPuKqrm.mjs.map} +1 -1
  30. package/dist/{backup-provisioner-DIVCbfee.mjs → backup-provisioner-C8DnCmxK.mjs} +2 -2
  31. package/dist/backup-provisioner-C8DnCmxK.mjs.map +1 -0
  32. package/dist/{backup-provisioner-BmhIO_Yr.cjs → backup-provisioner-oDEsPj02.cjs} +2 -2
  33. package/dist/backup-provisioner-oDEsPj02.cjs.map +1 -0
  34. package/dist/{bundler-D_14JLZF.mjs → bundler-Bq3HaLOZ.mjs} +20 -5
  35. package/dist/bundler-Bq3HaLOZ.mjs.map +1 -0
  36. package/dist/{bundler-D6MlIfBT.cjs → bundler-pyLj-gS0.cjs} +20 -5
  37. package/dist/bundler-pyLj-gS0.cjs.map +1 -0
  38. package/dist/{cli-P56vvrDQ.mjs → cli-C2Tjbn27.mjs} +6 -5
  39. package/dist/cli-C2Tjbn27.mjs.map +1 -0
  40. package/dist/{cli-BfH1deAT.cjs → cli-DR7B2_fX.cjs} +6 -5
  41. package/dist/cli-DR7B2_fX.cjs.map +1 -0
  42. package/dist/{compose-391oEKj1.cjs → compose-5oNHAKNT.cjs} +137 -667
  43. package/dist/compose-5oNHAKNT.cjs.map +1 -0
  44. package/dist/{compose-DprE3ASm.mjs → compose-BjToENzG.mjs} +130 -569
  45. package/dist/compose-BjToENzG.mjs.map +1 -0
  46. package/dist/{config-V_X_BMpm.d.cts → config-4XFxX1al.d.cts} +3 -3
  47. package/dist/{config-BonvTW8p.d.mts.map → config-4XFxX1al.d.cts.map} +1 -1
  48. package/dist/{config-BonvTW8p.d.mts → config-UtKzhpFb.d.mts} +3 -3
  49. package/dist/{config-V_X_BMpm.d.cts.map → config-UtKzhpFb.d.mts.map} +1 -1
  50. package/dist/config.cjs +3 -3
  51. package/dist/config.d.cts +3 -3
  52. package/dist/config.d.mts +3 -3
  53. package/dist/config.mjs +3 -3
  54. package/dist/{credentials-Bzbg23n8.cjs → credentials-BVs7mrtw.cjs} +239 -3
  55. package/dist/credentials-BVs7mrtw.cjs.map +1 -0
  56. package/dist/{credentials-Dq1MnWQf.mjs → credentials-pAtB70k3.mjs} +223 -5
  57. package/dist/credentials-pAtB70k3.mjs.map +1 -0
  58. package/dist/databases-C2p5LGAp.cjs +419 -0
  59. package/dist/databases-C2p5LGAp.cjs.map +1 -0
  60. package/dist/databases-hUHTuwhx.mjs +346 -0
  61. package/dist/databases-hUHTuwhx.mjs.map +1 -0
  62. package/dist/deploy/public.cjs +37 -28
  63. package/dist/deploy/public.cjs.map +1 -1
  64. package/dist/deploy/public.d.cts +136 -19
  65. package/dist/deploy/public.d.cts.map +1 -1
  66. package/dist/deploy/public.d.mts +136 -19
  67. package/dist/deploy/public.d.mts.map +1 -1
  68. package/dist/deploy/public.mjs +11 -11
  69. package/dist/deploy-BucRfbvX.cjs +511 -0
  70. package/dist/deploy-BucRfbvX.cjs.map +1 -0
  71. package/dist/deploy-DRAwTG72.mjs +488 -0
  72. package/dist/deploy-DRAwTG72.mjs.map +1 -0
  73. package/dist/{discover-LMrqsWSU.mjs → discover-BFoJWKGD.mjs} +4 -2
  74. package/dist/discover-BFoJWKGD.mjs.map +1 -0
  75. package/dist/{discover-DHdECueV.cjs → discover-OEfZ9OkA.cjs} +4 -2
  76. package/dist/discover-OEfZ9OkA.cjs.map +1 -0
  77. package/dist/dokploy-DIt1IZl1.mjs +38 -0
  78. package/dist/dokploy-DIt1IZl1.mjs.map +1 -0
  79. package/dist/dokploy-m345Zx02.cjs +38 -0
  80. package/dist/dokploy-m345Zx02.cjs.map +1 -0
  81. package/dist/{encryption-DF_hgIpl.mjs → encryption-Ccbahik7.mjs} +3 -5
  82. package/dist/{encryption-DF_hgIpl.mjs.map → encryption-Ccbahik7.mjs.map} +1 -1
  83. package/dist/{encryption-B1wJwgae.cjs → encryption-rZ3BghXy.cjs} +5 -7
  84. package/dist/{encryption-B1wJwgae.cjs.map → encryption-rZ3BghXy.cjs.map} +1 -1
  85. package/dist/{deploy-Cy8igpQF.cjs → engine-Cx_dvx9q.cjs} +1491 -1260
  86. package/dist/engine-Cx_dvx9q.cjs.map +1 -0
  87. package/dist/{deploy-CZ5nlpsu.mjs → engine-Gs0abjuj.mjs} +1450 -1261
  88. package/dist/engine-Gs0abjuj.mjs.map +1 -0
  89. package/dist/{github-B0YYE98x.mjs → github-CJANTYqi.mjs} +3 -3
  90. package/dist/{github-B0YYE98x.mjs.map → github-CJANTYqi.mjs.map} +1 -1
  91. package/dist/{github-CYcmTdFs.cjs → github-CrcGFkfD.cjs} +7 -7
  92. package/dist/{github-CYcmTdFs.cjs.map → github-CrcGFkfD.cjs.map} +1 -1
  93. package/dist/{index-DPUAGJaK.d.cts → index-CyApaHVe.d.cts} +2 -2
  94. package/dist/{index-DPUAGJaK.d.cts.map → index-CyApaHVe.d.cts.map} +1 -1
  95. package/dist/{index-DwKD_8lt.d.mts → index-DD1FfUHh.d.mts} +2 -2
  96. package/dist/{index-DwKD_8lt.d.mts.map → index-DD1FfUHh.d.mts.map} +1 -1
  97. package/dist/index.cjs +285 -91
  98. package/dist/index.cjs.map +1 -1
  99. package/dist/index.mjs +258 -68
  100. package/dist/index.mjs.map +1 -1
  101. package/dist/{migrate-q4pPAXtO.cjs → migrate-CQdSpttI.cjs} +16 -16
  102. package/dist/{migrate-q4pPAXtO.cjs.map → migrate-CQdSpttI.cjs.map} +1 -1
  103. package/dist/{migrate-B2qL5wj4.mjs → migrate-DCVo5gLS.mjs} +6 -6
  104. package/dist/{migrate-B2qL5wj4.mjs.map → migrate-DCVo5gLS.mjs.map} +1 -1
  105. package/dist/openapi.cjs +1 -1
  106. package/dist/openapi.d.cts +1 -1
  107. package/dist/openapi.d.mts +1 -1
  108. package/dist/openapi.mjs +1 -1
  109. package/dist/provider-B3Sv_a74.cjs +173 -0
  110. package/dist/provider-B3Sv_a74.cjs.map +1 -0
  111. package/dist/provider-D7rQzzzf.mjs +138 -0
  112. package/dist/provider-D7rQzzzf.mjs.map +1 -0
  113. package/dist/{ready-bQfu9GES.mjs → ready-2s3-CndS.mjs} +3 -3
  114. package/dist/{ready-bQfu9GES.mjs.map → ready-2s3-CndS.mjs.map} +1 -1
  115. package/dist/{ready-brEhh68f.cjs → ready-B6uHr4sm.cjs} +3 -3
  116. package/dist/{ready-brEhh68f.cjs.map → ready-B6uHr4sm.cjs.map} +1 -1
  117. package/dist/reconcile/public.cjs +1 -1
  118. package/dist/reconcile/public.d.cts +1 -1
  119. package/dist/reconcile/public.d.mts +1 -1
  120. package/dist/reconcile/public.mjs +1 -1
  121. package/dist/{resolve-N_i4XNd-.cjs → resolve-BexmDcsN.cjs} +4 -4
  122. package/dist/{resolve-N_i4XNd-.cjs.map → resolve-BexmDcsN.cjs.map} +1 -1
  123. package/dist/{resolve-DLkIXTct.mjs → resolve-DhZgtvZe.mjs} +4 -4
  124. package/dist/{resolve-DLkIXTct.mjs.map → resolve-DhZgtvZe.mjs.map} +1 -1
  125. package/dist/rollback-BnY7KuG_.cjs +161 -0
  126. package/dist/rollback-BnY7KuG_.cjs.map +1 -0
  127. package/dist/rollback-m4Yeym5x.mjs +132 -0
  128. package/dist/rollback-m4Yeym5x.mjs.map +1 -0
  129. package/dist/run-BJLIerMM.mjs +133 -0
  130. package/dist/run-BJLIerMM.mjs.map +1 -0
  131. package/dist/run-fVZ-rLnc.cjs +174 -0
  132. package/dist/run-fVZ-rLnc.cjs.map +1 -0
  133. package/dist/{runtime-BnD7Nn96.d.cts → runtime-BRqFOvPM.d.cts} +2 -2
  134. package/dist/{runtime-BnD7Nn96.d.cts.map → runtime-BRqFOvPM.d.cts.map} +1 -1
  135. package/dist/{runtime-j-tmFL65.d.mts → runtime-CEk5n4VH.d.mts} +2 -2
  136. package/dist/{runtime-j-tmFL65.d.mts.map → runtime-CEk5n4VH.d.mts.map} +1 -1
  137. package/dist/sandbox/discover-worker.cjs +1 -1
  138. package/dist/sandbox/discover-worker.mjs +1 -1
  139. package/dist/sandbox/migrate-worker.cjs +61 -0
  140. package/dist/sandbox/migrate-worker.cjs.map +1 -0
  141. package/dist/sandbox/migrate-worker.d.cts +1 -0
  142. package/dist/sandbox/migrate-worker.d.mts +1 -0
  143. package/dist/sandbox/migrate-worker.mjs +62 -0
  144. package/dist/sandbox/migrate-worker.mjs.map +1 -0
  145. package/dist/{schemas-D2LCF689.mjs → schemas-Cfhtpdo0.mjs} +10 -2
  146. package/dist/{schemas-Ckm_aBnF.cjs.map → schemas-Cfhtpdo0.mjs.map} +1 -1
  147. package/dist/{schemas-Ckm_aBnF.cjs → schemas-RUlKHu27.cjs} +15 -1
  148. package/dist/{schemas-D2LCF689.mjs.map → schemas-RUlKHu27.cjs.map} +1 -1
  149. package/dist/{sniffer-BZ-OJO4Y.mjs → sniffer-BdFeLSmA.mjs} +97 -600
  150. package/dist/sniffer-BdFeLSmA.mjs.map +1 -0
  151. package/dist/{sniffer-BSwaL-dX.cjs → sniffer-D66HIvi9.cjs} +110 -674
  152. package/dist/sniffer-D66HIvi9.cjs.map +1 -0
  153. package/dist/{sst-B2HbrDR3.mjs → sst-DRi3H5TB.mjs} +3 -3
  154. package/dist/{sst-B2HbrDR3.mjs.map → sst-DRi3H5TB.mjs.map} +1 -1
  155. package/dist/{sst-DcfsVH6x.cjs → sst-hBrKouBy.cjs} +5 -5
  156. package/dist/{sst-DcfsVH6x.cjs.map → sst-hBrKouBy.cjs.map} +1 -1
  157. package/dist/{state-DF26e_lo.cjs → state-DgmM4EKq.cjs} +2787 -1890
  158. package/dist/state-DgmM4EKq.cjs.map +1 -0
  159. package/dist/{state-B8YwmUZU.mjs → state-DkUStoqJ.mjs} +2813 -2084
  160. package/dist/state-DkUStoqJ.mjs.map +1 -0
  161. package/dist/target/public.cjs +1 -1
  162. package/dist/target/public.d.cts +2 -2
  163. package/dist/target/public.d.mts +2 -2
  164. package/dist/target/public.mjs +1 -1
  165. package/dist/{terminal-CfbiYUbZ.mjs → terminal-C3cv-OQu.mjs} +5 -5
  166. package/dist/{terminal-CfbiYUbZ.mjs.map → terminal-C3cv-OQu.mjs.map} +1 -1
  167. package/dist/{terminal-Bs5E1oxm.cjs → terminal-DjzgLu6m.cjs} +12 -16
  168. package/dist/{terminal-Bs5E1oxm.cjs.map → terminal-DjzgLu6m.cjs.map} +1 -1
  169. package/dist/{types-ByMWkXKP.d.cts → types-CSw2w69a.d.mts} +68 -10
  170. package/dist/types-CSw2w69a.d.mts.map +1 -0
  171. package/dist/{types-BCzMWBb6.d.mts → types-D5WIxRDP.d.cts} +69 -9
  172. package/dist/types-D5WIxRDP.d.cts.map +1 -0
  173. package/dist/vitest.cjs +1 -1
  174. package/dist/vitest.mjs +1 -1
  175. package/dist/workspace/index.cjs +1 -1
  176. package/dist/workspace/index.d.cts +2 -2
  177. package/dist/workspace/index.d.mts +2 -2
  178. package/dist/workspace/index.mjs +1 -1
  179. package/dist/{workspace-C06_pW4g.mjs → workspace-Be6uBhlF.mjs} +10 -3
  180. package/dist/workspace-Be6uBhlF.mjs.map +1 -0
  181. package/dist/{workspace-BewAHZIo.cjs → workspace-ON-bqiJz.cjs} +10 -3
  182. package/dist/workspace-ON-bqiJz.cjs.map +1 -0
  183. package/package.json +13 -13
  184. package/dist/HostingerProvider-Dlmbfass.cjs.map +0 -1
  185. package/dist/HostingerProvider-x9gQTAGZ.mjs.map +0 -1
  186. package/dist/Route53Provider-Cvj40A8I.mjs.map +0 -1
  187. package/dist/Route53Provider-DVILBsvV.cjs.map +0 -1
  188. package/dist/backup-provisioner-BmhIO_Yr.cjs.map +0 -1
  189. package/dist/backup-provisioner-DIVCbfee.mjs.map +0 -1
  190. package/dist/bundler-D6MlIfBT.cjs.map +0 -1
  191. package/dist/bundler-D_14JLZF.mjs.map +0 -1
  192. package/dist/cli-BfH1deAT.cjs.map +0 -1
  193. package/dist/cli-P56vvrDQ.mjs.map +0 -1
  194. package/dist/compose-391oEKj1.cjs.map +0 -1
  195. package/dist/compose-DprE3ASm.mjs.map +0 -1
  196. package/dist/credentials-Bzbg23n8.cjs.map +0 -1
  197. package/dist/credentials-Dq1MnWQf.mjs.map +0 -1
  198. package/dist/deploy-9MBG_QLd.mjs +0 -137
  199. package/dist/deploy-9MBG_QLd.mjs.map +0 -1
  200. package/dist/deploy-B80idPUZ.cjs +0 -142
  201. package/dist/deploy-B80idPUZ.cjs.map +0 -1
  202. package/dist/deploy-CZ5nlpsu.mjs.map +0 -1
  203. package/dist/deploy-Cy8igpQF.cjs.map +0 -1
  204. package/dist/discover-DHdECueV.cjs.map +0 -1
  205. package/dist/discover-LMrqsWSU.mjs.map +0 -1
  206. package/dist/dokploy-BdtBePjp.mjs +0 -32
  207. package/dist/dokploy-BdtBePjp.mjs.map +0 -1
  208. package/dist/dokploy-iFY8MY-L.cjs +0 -32
  209. package/dist/dokploy-iFY8MY-L.cjs.map +0 -1
  210. package/dist/local-BdH4XN0E.cjs +0 -409
  211. package/dist/local-BdH4XN0E.cjs.map +0 -1
  212. package/dist/local-CWR4Y_kW.mjs +0 -350
  213. package/dist/local-CWR4Y_kW.mjs.map +0 -1
  214. package/dist/sniffer-BSwaL-dX.cjs.map +0 -1
  215. package/dist/sniffer-BZ-OJO4Y.mjs.map +0 -1
  216. package/dist/state-B8YwmUZU.mjs.map +0 -1
  217. package/dist/state-DF26e_lo.cjs.map +0 -1
  218. package/dist/storage-BzaUxmqe.mjs +0 -124
  219. package/dist/storage-BzaUxmqe.mjs.map +0 -1
  220. package/dist/storage-CSGoC3bK.cjs +0 -152
  221. package/dist/storage-CSGoC3bK.cjs.map +0 -1
  222. package/dist/store-CJF1Tqkq.cjs +0 -510
  223. package/dist/store-CJF1Tqkq.cjs.map +0 -1
  224. package/dist/store-CLiHnqOY.mjs +0 -415
  225. package/dist/store-CLiHnqOY.mjs.map +0 -1
  226. package/dist/types-BCzMWBb6.d.mts.map +0 -1
  227. package/dist/types-ByMWkXKP.d.cts.map +0 -1
  228. package/dist/workspace-BewAHZIo.cjs.map +0 -1
  229. package/dist/workspace-C06_pW4g.mjs.map +0 -1
package/dist/index.cjs CHANGED
@@ -1,27 +1,28 @@
1
1
  #!/usr/bin/env -S npx tsx
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const require_rolldown_runtime = require("./rolldown-runtime-C0BPl7ul.cjs");
4
- const require_sniffer = require("./sniffer-BSwaL-dX.cjs");
5
- const require_local = require("./local-BdH4XN0E.cjs");
6
- const require_credentials = require("./credentials-Bzbg23n8.cjs");
7
- const require_discover = require("./discover-DHdECueV.cjs");
4
+ const require_run = require("./run-fVZ-rLnc.cjs");
5
+ const require_credentials = require("./credentials-BVs7mrtw.cjs");
6
+ const require_discover = require("./discover-OEfZ9OkA.cjs");
8
7
  const require_derive = require("./derive-DAbo49sm.cjs");
9
- const require_workspace = require("./workspace-BewAHZIo.cjs");
8
+ const require_workspace = require("./workspace-ON-bqiJz.cjs");
10
9
  const require_config = require("./config.cjs");
11
- const require_storage = require("./storage-CSGoC3bK.cjs");
12
- const require_store = require("./store-CJF1Tqkq.cjs");
13
- const require_state = require("./state-DF26e_lo.cjs");
14
- const require_OpenApiTsGenerator = require("./OpenApiTsGenerator-BWuDRHe9.cjs");
10
+ const require_state = require("./state-DgmM4EKq.cjs");
11
+ const require_OpenApiTsGenerator = require("./OpenApiTsGenerator-B2zrdyP4.cjs");
12
+ const require_sniffer = require("./sniffer-D66HIvi9.cjs");
15
13
  const require_openapi = require("./openapi.cjs");
16
14
  const require_appPorts = require("./appPorts-Cu79hJF6.cjs");
17
- const require_ready = require("./ready-brEhh68f.cjs");
15
+ const require_ready = require("./ready-B6uHr4sm.cjs");
18
16
  const require_emit = require("./emit-Dmc1nvdS.cjs");
19
- const require_deploy = require("./deploy-B80idPUZ.cjs");
20
- const require_compose = require("./compose-391oEKj1.cjs");
21
- const require_LocalStateStore = require("./LocalStateStore-93urXyQe.cjs");
17
+ const require_deploy = require("./deploy-BucRfbvX.cjs");
18
+ const require_compose = require("./compose-5oNHAKNT.cjs");
19
+ const require_LocalStateStore = require("./LocalStateStore-DHVsZLyF.cjs");
22
20
  const require_utils = require("./utils-D2Nk1Nv2.cjs");
23
21
  let node_path = require("node:path");
24
22
  let commander = require("commander");
23
+ let node_process = require("node:process");
24
+ let node_readline_promises = require("node:readline/promises");
25
+ node_readline_promises = require_rolldown_runtime.__toESM(node_readline_promises, 1);
25
26
  let node_fs = require("node:fs");
26
27
  let node_fs_promises = require("node:fs/promises");
27
28
  let node_os = require("node:os");
@@ -51,7 +52,192 @@ let _geekmidas_constructs_functions = require("@geekmidas/constructs/functions")
51
52
  let _geekmidas_constructs_queue = require("@geekmidas/constructs/queue");
52
53
  let _geekmidas_constructs_topic = require("@geekmidas/constructs/topic");
53
54
  //#region package.json
54
- var version = "10.0.0-alpha.65";
55
+ var version = "10.0.0-alpha.67";
56
+ //#endregion
57
+ //#region src/prompt.ts
58
+ /**
59
+ * Asking the person at the terminal.
60
+ *
61
+ * CLI layer only: a command's action may prompt, nothing it calls may. A
62
+ * library call (`deploy()`) that needs something it was not given raises a
63
+ * named error instead, and the command decides whether to ask.
64
+ */
65
+ /** A prompt was needed with no terminal to ask at. */
66
+ var PromptNeedsTerminal = class extends Error {
67
+ question;
68
+ instead;
69
+ constructor(question, instead) {
70
+ super(`Interactive input required. ${instead}`);
71
+ this.question = question;
72
+ this.instead = instead;
73
+ this.name = "PromptNeedsTerminal";
74
+ }
75
+ };
76
+ /** Whether there is a person at a terminal to ask. */
77
+ function canPrompt() {
78
+ return process.stdin.isTTY === true;
79
+ }
80
+ /**
81
+ * Ask `message` and resolve with the line typed — without echoing it when
82
+ * `hidden`. Ctrl+C at a hidden prompt exits, as it would anywhere else in a
83
+ * terminal program: raw mode has taken the signal away from the shell.
84
+ */
85
+ async function prompt(message, options) {
86
+ if (!canPrompt()) throw new PromptNeedsTerminal(message, options.instead);
87
+ if (options.hidden) {
88
+ process.stdout.write(message);
89
+ return new Promise((resolve, reject) => {
90
+ let value = "";
91
+ const cleanup = () => {
92
+ process.stdin.setRawMode(false);
93
+ process.stdin.pause();
94
+ process.stdin.removeListener("data", onData);
95
+ process.stdin.removeListener("error", onError);
96
+ };
97
+ const onError = (err) => {
98
+ cleanup();
99
+ reject(err);
100
+ };
101
+ const onData = (char) => {
102
+ const c = char.toString();
103
+ if (c === "\n" || c === "\r") {
104
+ cleanup();
105
+ process.stdout.write("\n");
106
+ resolve(value);
107
+ } else if (c === "") {
108
+ cleanup();
109
+ process.stdout.write("\n");
110
+ process.exit(1);
111
+ } else if (c === "" || c === "\b") {
112
+ if (value.length > 0) value = value.slice(0, -1);
113
+ } else value += c;
114
+ };
115
+ process.stdin.setRawMode(true);
116
+ process.stdin.resume();
117
+ process.stdin.on("data", onData);
118
+ process.stdin.on("error", onError);
119
+ });
120
+ }
121
+ const rl = node_readline_promises.createInterface({
122
+ input: node_process.stdin,
123
+ output: node_process.stdout
124
+ });
125
+ try {
126
+ return await rl.question(message);
127
+ } finally {
128
+ rl.close();
129
+ }
130
+ }
131
+ //#endregion
132
+ //#region src/auth/index.ts
133
+ const logger$8 = console;
134
+ /**
135
+ * Validate Dokploy token by making a test API call
136
+ */
137
+ async function validateDokployToken(endpoint, token) {
138
+ const { DokployApi } = await Promise.resolve().then(() => require("./sniffer-D66HIvi9.cjs")).then((n) => n.dokploy_api_exports);
139
+ return new DokployApi({
140
+ baseUrl: endpoint,
141
+ token
142
+ }).validateToken();
143
+ }
144
+ /** What answers a login prompt without a terminal. */
145
+ const LOGIN_INSTEAD = "Please provide --token option.";
146
+ /**
147
+ * Login to a service
148
+ */
149
+ async function loginCommand(options) {
150
+ const { provider, token: providedToken, endpoint: providedEndpoint } = options;
151
+ if (provider === "dokploy") {
152
+ logger$8.log("\n🔐 Logging in to Dokploy...\n");
153
+ let endpoint = providedEndpoint;
154
+ if (!endpoint) endpoint = await prompt("Dokploy URL (e.g., https://dokploy.example.com): ", { instead: LOGIN_INSTEAD });
155
+ endpoint = endpoint.replace(/\/$/, "");
156
+ try {
157
+ new URL(endpoint);
158
+ } catch {
159
+ logger$8.error("Invalid URL format");
160
+ process.exit(1);
161
+ }
162
+ let token = providedToken;
163
+ if (!token) {
164
+ logger$8.log(`\nGenerate a token at: ${endpoint}/settings/profile\n`);
165
+ token = await prompt("API Token: ", {
166
+ hidden: true,
167
+ instead: LOGIN_INSTEAD
168
+ });
169
+ }
170
+ if (!token) {
171
+ logger$8.error("Token is required");
172
+ process.exit(1);
173
+ }
174
+ logger$8.log("\nValidating credentials...");
175
+ if (!await validateDokployToken(endpoint, token)) {
176
+ logger$8.error("\n✗ Invalid credentials. Please check your token and try again.");
177
+ process.exit(1);
178
+ }
179
+ await require_credentials.storeDokployCredentials(token, endpoint);
180
+ logger$8.log("\n✓ Successfully logged in to Dokploy!");
181
+ logger$8.log(` Endpoint: ${endpoint}`);
182
+ logger$8.log(` Credentials stored in: ${require_credentials.getCredentialsPath()}`);
183
+ logger$8.log("\nYou can now use deploy commands without setting DOKPLOY_API_TOKEN.");
184
+ }
185
+ if (provider === "hostinger") {
186
+ logger$8.log("\n🔐 Logging in to Hostinger...\n");
187
+ let token = providedToken;
188
+ if (!token) {
189
+ logger$8.log("\nGenerate a token at: https://hpanel.hostinger.com/profile/api\n");
190
+ token = await prompt("API Token: ", {
191
+ hidden: true,
192
+ instead: LOGIN_INSTEAD
193
+ });
194
+ }
195
+ if (!token) {
196
+ logger$8.error("Token is required");
197
+ process.exit(1);
198
+ }
199
+ await require_credentials.storeHostingerToken(token);
200
+ logger$8.log("\n✓ Hostinger token stored.");
201
+ logger$8.log(` Credentials stored in: ${require_credentials.getCredentialsPath()}`);
202
+ logger$8.log(" Not validated here: every DNS endpoint is scoped to a domain, so the\n first deploy that touches DNS is where a bad token reports itself.");
203
+ logger$8.log("\nYou can now use it as a DNS provider without setting HOSTINGER_API_TOKEN.");
204
+ }
205
+ }
206
+ /**
207
+ * Logout from a service
208
+ */
209
+ async function logoutCommand(options) {
210
+ const { provider = "dokploy" } = options;
211
+ if (provider === "all") {
212
+ if (await require_credentials.removeDokployCredentials()) logger$8.log("\n✓ Logged out from all services");
213
+ else logger$8.log("\nNo stored credentials found");
214
+ return;
215
+ }
216
+ if (provider === "dokploy") {
217
+ if (await require_credentials.removeDokployCredentials()) logger$8.log("\n✓ Logged out from Dokploy");
218
+ else logger$8.log("\nNo Dokploy credentials found");
219
+ }
220
+ }
221
+ /**
222
+ * Show current login status
223
+ */
224
+ async function whoamiCommand() {
225
+ logger$8.log("\n📋 Current credentials:\n");
226
+ const dokploy = await require_credentials.getDokployCredentials();
227
+ if (dokploy) {
228
+ logger$8.log(" Dokploy:");
229
+ logger$8.log(` Endpoint: ${dokploy.endpoint}`);
230
+ logger$8.log(` Token: ${maskToken(dokploy.token)}`);
231
+ } else logger$8.log(" Dokploy: Not logged in");
232
+ logger$8.log(`\n Credentials file: ${require_credentials.getCredentialsPath()}`);
233
+ }
234
+ /**
235
+ * Mask a token for display
236
+ */
237
+ function maskToken(token) {
238
+ if (token.length <= 8) return "****";
239
+ return `${token.slice(0, 4)}...${token.slice(-4)}`;
240
+ }
55
241
  //#endregion
56
242
  //#region src/trust/index.ts
57
243
  /**
@@ -1507,7 +1693,7 @@ async function devCommand(options) {
1507
1693
  let secretsJsonPath;
1508
1694
  let publicUrl;
1509
1695
  let manifest;
1510
- const appSecrets = await require_state.loadSecretsForApp(workspace ? await require_store.secretsStoreFor(workspace, config.stages.local) : new require_store.FileSecretsStore(secretsRoot), config.stages.local, workspaceAppName);
1696
+ const appSecrets = await require_state.loadSecretsForApp(workspace ? await require_state.secretsStoreFor(workspace, config.stages.local) : new require_state.FileSecretsStore(secretsRoot), config.stages.local, workspaceAppName);
1511
1697
  if (workspace) {
1512
1698
  const reconciled = await require_state.reconcileWorkspace(workspace, {
1513
1699
  stage: workspace.stages.local,
@@ -1795,8 +1981,8 @@ async function validateFrontendApps(workspace) {
1795
1981
  async function loadDevSecrets(workspace) {
1796
1982
  if (!workspace.secrets.enabled) return {};
1797
1983
  const stage = workspace.stages.local;
1798
- const secrets = await (await require_store.secretsStoreFor(workspace, stage)).read(stage);
1799
- if (secrets) return require_storage.toEmbeddableSecrets(secrets);
1984
+ const secrets = await (await require_state.secretsStoreFor(workspace, stage)).read(stage);
1985
+ if (secrets) return require_state.toEmbeddableSecrets(secrets);
1800
1986
  return {};
1801
1987
  }
1802
1988
  /**
@@ -1855,9 +2041,9 @@ async function workspaceDevCommand(configured, options) {
1855
2041
  for (const { id, port } of fakes) logger$5.log(`🎭 ${id} fake: http://localhost:${port}`);
1856
2042
  logger$5.log(options.migrate || options.seed ? "🗄️ Migrating the databases" : "🗄️ Checking for pending migrations");
1857
2043
  if (options.migrate || options.seed) {
1858
- const { prepareDevDatabases } = await Promise.resolve().then(() => require("./migrate-q4pPAXtO.cjs"));
2044
+ const { prepareDevDatabases } = await Promise.resolve().then(() => require("./migrate-CQdSpttI.cjs"));
1859
2045
  await prepareDevDatabases(workspace, reconciled.env, { seed: !!options.seed });
1860
- } else await Promise.resolve().then(() => require("./migrate-q4pPAXtO.cjs")).then(({ reportPendingMigrations }) => reportPendingMigrations(workspace, reconciled.env)).catch((error) => {
2046
+ } else await Promise.resolve().then(() => require("./migrate-CQdSpttI.cjs")).then(({ reportPendingMigrations }) => reportPendingMigrations(workspace, reconciled.env)).catch((error) => {
1861
2047
  logger$5.log(`⚠️ Could not check for pending migrations: ${error instanceof Error ? error.message : String(error)}`);
1862
2048
  });
1863
2049
  const appUrls = {};
@@ -3237,7 +3423,7 @@ async function buildApp(input) {
3237
3423
  if (production?.bundle && !input.skipBundle) {
3238
3424
  const outputDir = (0, node_path.join)(appRoot, ".gkm", "server");
3239
3425
  const entryPoint = await writeSurfaceServer(outputDir, production);
3240
- const { bundleServer } = await Promise.resolve().then(() => require("./bundler-D6MlIfBT.cjs"));
3426
+ const { bundleServer } = await Promise.resolve().then(() => require("./bundler-pyLj-gS0.cjs"));
3241
3427
  await bundleServer({
3242
3428
  entryPoint,
3243
3429
  outputDir: (0, node_path.join)(outputDir, "dist"),
@@ -3375,7 +3561,7 @@ async function buildForTarget(target, context, appRoot, workspaceRoot, endpointG
3375
3561
  let masterKey;
3376
3562
  if (context.production?.bundle && !skipBundle) {
3377
3563
  logger$4.log(`\n📦 Bundling production server...`);
3378
- const { bundleServer } = await Promise.resolve().then(() => require("./bundler-D6MlIfBT.cjs"));
3564
+ const { bundleServer } = await Promise.resolve().then(() => require("./bundler-pyLj-gS0.cjs"));
3379
3565
  const allConstructs = [
3380
3566
  ...endpoints.map((e) => e.construct),
3381
3567
  ...functions.map((f) => f.construct),
@@ -3398,7 +3584,7 @@ async function buildForTarget(target, context, appRoot, workspaceRoot, endpointG
3398
3584
  await (0, node_fs_promises.writeFile)(keyPath, `${masterKey}\n`, { mode: 384 });
3399
3585
  await (0, node_fs_promises.chmod)(keyPath, 384);
3400
3586
  logger$4.log(`\n🔐 Secrets encrypted for deployment`);
3401
- logger$4.log(` Run with GKM_MASTER_KEY set to the key in ${(0, node_path.relative)(appRoot, keyPath)} (fingerprint ${require_sniffer.keyFingerprint(masterKey)})`);
3587
+ logger$4.log(` Run with GKM_MASTER_KEY set to the key in ${(0, node_path.relative)(appRoot, keyPath)} (fingerprint ${require_state.keyFingerprint(masterKey)})`);
3402
3588
  }
3403
3589
  }
3404
3590
  return {
@@ -3539,7 +3725,7 @@ async function workspaceBuildCommand(workspace, options) {
3539
3725
  if (filters.length > 0) {
3540
3726
  logger$4.log(`\n📦 Using ${pm} with Turbo for the other apps...\n`);
3541
3727
  logger$4.log(`Running: ${[turboBin, ...turboArgs].join(" ")}`);
3542
- const sandbox = options.sandbox ?? new require_local.LocalSandbox({
3728
+ const sandbox = options.sandbox ?? new require_credentials.LocalSandbox({
3543
3729
  root: workspace.root,
3544
3730
  passEnv: ["TURBO_TOKEN"]
3545
3731
  });
@@ -3549,10 +3735,10 @@ async function workspaceBuildCommand(workspace, options) {
3549
3735
  ...sandbox.env,
3550
3736
  NODE_ENV: options.production ? "production" : "development"
3551
3737
  },
3552
- timeoutMs: require_local.DEFAULT_TIMEOUT_MS,
3738
+ timeoutMs: require_run.DEFAULT_TIMEOUT_MS,
3553
3739
  output: "inherit"
3554
3740
  });
3555
- if (built.exitCode !== 0) throw new require_local.CommandFailed(turboBin, turboArgs, built.exitCode, built.signal);
3741
+ if (built.exitCode !== 0) throw new require_run.CommandFailed(turboBin, turboArgs, built.exitCode, built.signal);
3556
3742
  }
3557
3743
  for (const [appName, app] of apps) {
3558
3744
  const outputPath = getAppOutputPath(workspace, appName, app);
@@ -3627,7 +3813,7 @@ async function composeCommand(options = {}, deps = {}) {
3627
3813
  const stage = options.stage ?? workspace.stages.local;
3628
3814
  if (options.down) {
3629
3815
  const ref = {
3630
- project: require_compose.composeProject(require_store.deployIdentity(workspace, stage)),
3816
+ project: require_compose.composeProject(require_state.deployIdentity(workspace, stage)),
3631
3817
  file: (0, node_path.join)(workspace.root, require_compose.stackDir(stage), "docker-compose.yml"),
3632
3818
  cwd: workspace.root
3633
3819
  };
@@ -5070,25 +5256,25 @@ function loadPackageJson() {
5070
5256
  * Run: pnpm --filter @geekmidas/cli sync-versions
5071
5257
  */
5072
5258
  const GEEKMIDAS_VERSIONS = {
5073
- "@geekmidas/audit": "~10.0.0-alpha.65",
5074
- "@geekmidas/auth": "~10.0.0-alpha.65",
5075
- "@geekmidas/cache": "~10.0.0-alpha.65",
5076
- "@geekmidas/client": "~10.0.0-alpha.65",
5077
- "@geekmidas/cloud": "~10.0.0-alpha.65",
5078
- "@geekmidas/constructs": "~10.0.0-alpha.65",
5079
- "@geekmidas/db": "~10.0.0-alpha.65",
5080
- "@geekmidas/emailkit": "~10.0.0-alpha.65",
5081
- "@geekmidas/envkit": "~10.0.0-alpha.65",
5082
- "@geekmidas/errors": "~10.0.0-alpha.65",
5083
- "@geekmidas/events": "~10.0.0-alpha.65",
5084
- "@geekmidas/logger": "~10.0.0-alpha.65",
5085
- "@geekmidas/manifest": "~10.0.0-alpha.65",
5086
- "@geekmidas/rate-limit": "~10.0.0-alpha.65",
5087
- "@geekmidas/schema": "~10.0.0-alpha.65",
5088
- "@geekmidas/services": "~10.0.0-alpha.65",
5089
- "@geekmidas/storage": "~10.0.0-alpha.65",
5090
- "@geekmidas/telescope": "~10.0.0-alpha.65",
5091
- "@geekmidas/testkit": "~10.0.0-alpha.65",
5259
+ "@geekmidas/audit": "~10.0.0-alpha.67",
5260
+ "@geekmidas/auth": "~10.0.0-alpha.67",
5261
+ "@geekmidas/cache": "~10.0.0-alpha.67",
5262
+ "@geekmidas/client": "~10.0.0-alpha.67",
5263
+ "@geekmidas/cloud": "~10.0.0-alpha.67",
5264
+ "@geekmidas/constructs": "~10.0.0-alpha.67",
5265
+ "@geekmidas/db": "~10.0.0-alpha.67",
5266
+ "@geekmidas/emailkit": "~10.0.0-alpha.67",
5267
+ "@geekmidas/envkit": "~10.0.0-alpha.67",
5268
+ "@geekmidas/errors": "~10.0.0-alpha.67",
5269
+ "@geekmidas/events": "~10.0.0-alpha.67",
5270
+ "@geekmidas/logger": "~10.0.0-alpha.67",
5271
+ "@geekmidas/manifest": "~10.0.0-alpha.67",
5272
+ "@geekmidas/rate-limit": "~10.0.0-alpha.67",
5273
+ "@geekmidas/schema": "~10.0.0-alpha.67",
5274
+ "@geekmidas/services": "~10.0.0-alpha.67",
5275
+ "@geekmidas/storage": "~10.0.0-alpha.67",
5276
+ "@geekmidas/telescope": "~10.0.0-alpha.67",
5277
+ "@geekmidas/testkit": "~10.0.0-alpha.67",
5092
5278
  "@geekmidas/cli": `~${loadPackageJson().version}`
5093
5279
  };
5094
5280
  //#endregion
@@ -5671,7 +5857,7 @@ function deploy(options) {
5671
5857
  role-to-assume: \${{ vars.AWS_ROLE_ARN }}
5672
5858
  aws-region: ${options.region}
5673
5859
  ` : "";
5674
- const keyDir = `~/.gkm/keys/${require_store.projectKey({ name: options.name })}`;
5860
+ const keyDir = `~/.gkm/keys/${require_state.projectKey({ name: options.name })}`;
5675
5861
  const stageSecrets = sst ? credentials : `
5676
5862
  # The stage's secrets are kept in the encrypted .gkm/secrets/<stage>.json,
5677
5863
  # and each environment holds its key as GKM_SECRETS_KEY. .gkm/ is
@@ -10008,11 +10194,11 @@ async function initCommand(projectName, options = {}) {
10008
10194
  }
10009
10195
  devSecrets.custom = customSecrets;
10010
10196
  const keys = {
10011
- key: require_store.projectKey({ name }),
10197
+ key: require_state.projectKey({ name }),
10012
10198
  legacy: [(0, node_path.basename)(targetDir)]
10013
10199
  };
10014
- await new require_store.FileSecretsStore(targetDir, keys).write(local, devSecrets);
10015
- const keyPath = require_store.getKeyPath(local, keys);
10200
+ await new require_state.FileSecretsStore(targetDir, keys).write(local, devSecrets);
10201
+ const keyPath = require_state.getKeyPath(local, keys);
10016
10202
  console.log(` Secrets: .gkm/secrets/${local}.json (encrypted)`);
10017
10203
  console.log(` Key: ${keyPath}\n`);
10018
10204
  if (!options.skipInstall) {
@@ -10247,9 +10433,9 @@ const logger$2 = console;
10247
10433
  */
10248
10434
  async function storeFor(stage) {
10249
10435
  try {
10250
- return await require_store.secretsStoreFor(await require_config.loadWorkspaceSettings(), stage);
10436
+ return await require_state.secretsStoreFor(await require_config.loadWorkspaceSettings(), stage);
10251
10437
  } catch (error) {
10252
- if (error instanceof require_config.ConfigNotFound) return new require_store.FileSecretsStore(process.cwd());
10438
+ if (error instanceof require_config.ConfigNotFound) return new require_state.FileSecretsStore(process.cwd());
10253
10439
  throw error;
10254
10440
  }
10255
10441
  }
@@ -10319,7 +10505,7 @@ async function secretsSetCommand(key, value, options) {
10319
10505
  logger$2.error(`Secrets not found for stage "${stage}". Run "gkm secrets:init --stage ${stage}" first.`);
10320
10506
  process.exit(1);
10321
10507
  }
10322
- await store.write(stage, require_storage.withCustomSecret(secrets, key, secretValue));
10508
+ await store.write(stage, require_state.withCustomSecret(secrets, key, secretValue));
10323
10509
  logger$2.log(`\n✓ Secret "${key}" set for stage "${stage}" (${store.name})`);
10324
10510
  }
10325
10511
  /**
@@ -10341,7 +10527,7 @@ async function secretsShowCommand(options) {
10341
10527
  logger$2.log(` host: ${creds.host}`);
10342
10528
  logger$2.log(` port: ${creds.port}`);
10343
10529
  logger$2.log(` username: ${creds.username}`);
10344
- logger$2.log(` password: ${reveal ? creds.password : require_storage.maskPassword(creds.password)}`);
10530
+ logger$2.log(` password: ${reveal ? creds.password : require_state.maskPassword(creds.password)}`);
10345
10531
  if (creds.database) logger$2.log(` database: ${creds.database}`);
10346
10532
  if (creds.bucket) logger$2.log(` bucket: ${creds.bucket}`);
10347
10533
  }
@@ -10351,7 +10537,7 @@ async function secretsShowCommand(options) {
10351
10537
  if (secrets.urls.STORAGE_ENDPOINT) logger$2.log(` STORAGE_ENDPOINT: ${secrets.urls.STORAGE_ENDPOINT}`);
10352
10538
  if (Object.keys(secrets.custom).length > 0) {
10353
10539
  logger$2.log("\nCustom Secrets:");
10354
- for (const [key, value] of Object.entries(secrets.custom)) logger$2.log(` ${key}: ${reveal ? value : require_storage.maskPassword(value)}`);
10540
+ for (const [key, value] of Object.entries(secrets.custom)) logger$2.log(` ${key}: ${reveal ? value : require_state.maskPassword(value)}`);
10355
10541
  }
10356
10542
  if (!reveal) logger$2.log("\nUse --reveal to show actual values");
10357
10543
  }
@@ -10431,7 +10617,7 @@ async function secretsImportCommand(file, options) {
10431
10617
  function maskUrl(url) {
10432
10618
  try {
10433
10619
  const parsed = new URL(url);
10434
- if (parsed.password) parsed.password = require_storage.maskPassword(parsed.password);
10620
+ if (parsed.password) parsed.password = require_state.maskPassword(parsed.password);
10435
10621
  return parsed.toString();
10436
10622
  } catch {
10437
10623
  return url;
@@ -10521,7 +10707,7 @@ async function resolveSecrets(stage, workspace, options) {
10521
10707
  logger$1.log("🔐 Generating fresh secrets (--force)...");
10522
10708
  return generateFreshSecrets(stage, workspace);
10523
10709
  }
10524
- const store = await require_store.secretsStoreFor(workspace, stage);
10710
+ const store = await require_state.secretsStoreFor(workspace, stage);
10525
10711
  const secrets = await store.read(stage);
10526
10712
  if (secrets) {
10527
10713
  logger$1.log("🔐 Using existing secrets");
@@ -10645,7 +10831,7 @@ function createFreshWorkspaceSecrets(stage, workspace, containers = []) {
10645
10831
  */
10646
10832
  async function ensureStageSecrets(stage, cwd = process.cwd()) {
10647
10833
  const { workspace } = await require_config.loadWorkspaceConfig(cwd);
10648
- const store = await require_store.secretsStoreFor(workspace, stage);
10834
+ const store = await require_state.secretsStoreFor(workspace, stage);
10649
10835
  if (await store.read(stage)) return false;
10650
10836
  const secrets = createFreshWorkspaceSecrets(stage, workspace, await require_state.derivedContainers(workspace, stage));
10651
10837
  await store.write(stage, secrets);
@@ -10656,7 +10842,7 @@ async function ensureStageSecrets(stage, cwd = process.cwd()) {
10656
10842
  */
10657
10843
  async function generateFreshSecrets(stage, workspace) {
10658
10844
  const secrets = createFreshWorkspaceSecrets(stage, workspace, await require_state.derivedContainers(workspace, stage));
10659
- const store = await require_store.secretsStoreFor(workspace, stage);
10845
+ const store = await require_state.secretsStoreFor(workspace, stage);
10660
10846
  await store.write(stage, secrets);
10661
10847
  logger$1.log(` Secrets written to the "${stage}" store (${store.name})`);
10662
10848
  return secrets;
@@ -10851,8 +11037,8 @@ function testDatabases(reconciled) {
10851
11037
  * starts without the reference data the app needs.
10852
11038
  */
10853
11039
  async function migrateTestStage(workspace, env) {
10854
- const { migrateAndSeed } = await Promise.resolve().then(() => require("./migrate-q4pPAXtO.cjs"));
10855
- const { discover } = await Promise.resolve().then(() => require("./discover-DHdECueV.cjs")).then((n) => n.discover_exports);
11040
+ const { migrateAndSeed } = await Promise.resolve().then(() => require("./migrate-CQdSpttI.cjs"));
11041
+ const { discover } = await Promise.resolve().then(() => require("./discover-OEfZ9OkA.cjs")).then((n) => n.discover_exports);
10856
11042
  const sources = {};
10857
11043
  const manifest = await discover({
10858
11044
  patterns: require_state.constructGlobs(workspace),
@@ -11282,7 +11468,7 @@ program.command("migrate").description("Apply each database construct's migratio
11282
11468
  try {
11283
11469
  const globalOptions = program.opts();
11284
11470
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11285
- const { migrateCommand } = await Promise.resolve().then(() => require("./migrate-q4pPAXtO.cjs"));
11471
+ const { migrateCommand } = await Promise.resolve().then(() => require("./migrate-CQdSpttI.cjs"));
11286
11472
  await migrateCommand({
11287
11473
  ...options,
11288
11474
  ...construct ? { construct } : {}
@@ -11296,7 +11482,7 @@ program.command("seed").description("Migrate, then run each database construct's
11296
11482
  try {
11297
11483
  const globalOptions = program.opts();
11298
11484
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11299
- const { seedCommand } = await Promise.resolve().then(() => require("./migrate-q4pPAXtO.cjs"));
11485
+ const { seedCommand } = await Promise.resolve().then(() => require("./migrate-CQdSpttI.cjs"));
11300
11486
  await seedCommand({
11301
11487
  ...options,
11302
11488
  ...construct ? { construct } : {}
@@ -11310,7 +11496,7 @@ program.command("migration").description("Write a construct's next migration: an
11310
11496
  try {
11311
11497
  const globalOptions = program.opts();
11312
11498
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11313
- const { migrationCommand } = await Promise.resolve().then(() => require("./migrate-q4pPAXtO.cjs"));
11499
+ const { migrationCommand } = await Promise.resolve().then(() => require("./migrate-CQdSpttI.cjs"));
11314
11500
  await migrationCommand({
11315
11501
  construct,
11316
11502
  ...name ? { name } : {}
@@ -11345,7 +11531,7 @@ program.command("openapi").description("Generate OpenAPI specification from endp
11345
11531
  process.exit(1);
11346
11532
  }
11347
11533
  });
11348
- program.command("docker").description("Generate Docker deployment files").option("--build", "Build Docker image after generating files").option("--push", "Push image to registry after building").option("--tag <tag>", "Image tag", "latest").option("--registry <registry>", "Container registry URL").option("--slim", "Use slim Dockerfile (assumes pre-built bundle exists)").option("--turbo", "Use turbo prune for monorepo optimization").option("--turbo-package <name>", "Package name for turbo prune").action(async (options) => {
11534
+ program.command("docker").description("Generate Docker deployment files").option("--build", "Build Docker image after generating files").option("--push", "Push image to registry after building").option("--tag <tag>", "Image tag", "latest").option("--registry <registry>", "Container registry URL").action(async (options) => {
11349
11535
  try {
11350
11536
  const globalOptions = program.opts();
11351
11537
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
@@ -11365,30 +11551,16 @@ program.command("compose").description("Run the workspace's APIs and sites for a
11365
11551
  process.exit(1);
11366
11552
  }
11367
11553
  });
11368
- program.command("prepack").description("Generate Docker files for production deployment").option("--build", "Build Docker image after generating files").option("--push", "Push image to registry after building").option("--tag <tag>", "Image tag", "latest").option("--registry <registry>", "Container registry URL").option("--slim", "Build locally first, then use slim Dockerfile").option("--skip-bundle", "Skip bundling step (only with --slim)").option("--turbo", "Use turbo prune for monorepo optimization").option("--turbo-package <name>", "Package name for turbo prune").action(async (options) => {
11554
+ program.command("prepack").description("Generate Docker files for production deployment").option("--build", "Build Docker image after generating files").option("--push", "Push image to registry after building").option("--tag <tag>", "Image tag", "latest").option("--registry <registry>", "Container registry URL").action(async (options) => {
11369
11555
  try {
11370
11556
  const globalOptions = program.opts();
11371
11557
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11372
- if (options.slim) await buildCommand({
11373
- provider: "server",
11374
- production: true,
11375
- skipBundle: options.skipBundle
11376
- });
11377
11558
  await require_state.dockerCommand({
11378
11559
  build: options.build,
11379
11560
  push: options.push,
11380
11561
  tag: options.tag,
11381
- registry: options.registry,
11382
- slim: options.slim,
11383
- turbo: options.turbo,
11384
- turboPackage: options.turboPackage
11562
+ registry: options.registry
11385
11563
  });
11386
- if (options.slim) {}
11387
- if (options.build) {
11388
- const tag = options.tag ?? "latest";
11389
- const registry = options.registry;
11390
- registry ? `${registry}${tag}` : `${tag}`;
11391
- }
11392
11564
  } catch (error) {
11393
11565
  console.error(formatError(error));
11394
11566
  process.exit(1);
@@ -11418,7 +11590,7 @@ program.command("encryption:rotate").description("Add a new current key to an En
11418
11590
  try {
11419
11591
  const globalOptions = program.opts();
11420
11592
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11421
- const { encryptionRotateCommand } = await Promise.resolve().then(() => require("./encryption-B1wJwgae.cjs"));
11593
+ const { encryptionRotateCommand } = await Promise.resolve().then(() => require("./encryption-rZ3BghXy.cjs"));
11422
11594
  await encryptionRotateCommand(construct, options);
11423
11595
  } catch (error) {
11424
11596
  console.error(formatError(error));
@@ -11429,7 +11601,7 @@ program.command("encryption:retire").description("Remove an old key from an Encr
11429
11601
  try {
11430
11602
  const globalOptions = program.opts();
11431
11603
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11432
- const { encryptionRetireCommand } = await Promise.resolve().then(() => require("./encryption-B1wJwgae.cjs"));
11604
+ const { encryptionRetireCommand } = await Promise.resolve().then(() => require("./encryption-rZ3BghXy.cjs"));
11433
11605
  await encryptionRetireCommand(construct, key, options);
11434
11606
  } catch (error) {
11435
11607
  console.error(formatError(error));
@@ -11472,7 +11644,7 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
11472
11644
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11473
11645
  const { loadWorkspaceConfig } = await Promise.resolve().then(() => require("./config.cjs"));
11474
11646
  const { reconcileMissingSecrets } = await Promise.resolve().then(() => require("./reconcile-CuCQBa5-.cjs"));
11475
- const { secretsStoreFor } = await Promise.resolve().then(() => require("./store-CJF1Tqkq.cjs")).then((n) => n.store_exports);
11647
+ const { secretsStoreFor } = await Promise.resolve().then(() => require("./state-DgmM4EKq.cjs")).then((n) => n.store_exports);
11476
11648
  const { workspace } = await loadWorkspaceConfig();
11477
11649
  const stage = options.stage ?? workspace.stages.local;
11478
11650
  const store = await secretsStoreFor(workspace, stage);
@@ -11481,7 +11653,7 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
11481
11653
  console.error(`No secrets found for stage "${stage}". Run "gkm secrets:init --stage ${stage}" first.`);
11482
11654
  process.exit(1);
11483
11655
  }
11484
- const { derivedContainers } = await Promise.resolve().then(() => require("./state-DF26e_lo.cjs")).then((n) => n.workspace_exports);
11656
+ const { derivedContainers } = await Promise.resolve().then(() => require("./state-DgmM4EKq.cjs")).then((n) => n.workspace_exports);
11485
11657
  const result = reconcileMissingSecrets(secrets, workspace, await derivedContainers(workspace, stage));
11486
11658
  if (!result) {
11487
11659
  console.log(`\n✓ Secrets for stage "${stage}" are up-to-date`);
@@ -11495,8 +11667,8 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
11495
11667
  process.exit(1);
11496
11668
  }
11497
11669
  });
11498
- program.command("deploy").description("Deploy a stage through its target").option("--target <name>", "Deploy target: dokploy, compose, sst, or one named in deploy.targets (default: deploy.default)").option("--provider <provider>", "[DEPRECATED] Use --target instead").requiredOption("--stage <stage>", "Deployment stage (e.g., production, staging)").option("--tag <tag>", "Image tag (default: stage-timestamp; compose: the commit). Compose pulls a given tag").option("--skip-push", "Skip pushing image to registry").option("--skip-build", "Skip build step (use existing build)").option("--json", "Write events as JSON lines instead of progress; never prompts").option("--dry-run", "Show what would be created or reused; change, build and push nothing").action(async (options) => {
11499
- const { deployCli } = await Promise.resolve().then(() => require("./cli-BfH1deAT.cjs"));
11670
+ program.command("deploy").description("Deploy a stage through its target").option("--target <name>", "Deploy target: dokploy, compose, sst, or one named in deploy.targets (default: deploy.default)").option("--provider <provider>", "[DEPRECATED] Use --target instead").requiredOption("--stage <stage>", "Deployment stage (e.g., production, staging)").option("--tag <tag>", "Image tag (default: stage-timestamp; compose: the commit). Compose pulls a given tag").option("--skip-push", "Skip pushing image to registry").option("--skip-build", "Skip build step (use existing build)").option("--json", "Write events as JSON lines instead of progress; never prompts").option("--dry-run", "Show what would be created or reused; change, build and push nothing").option("--atomic", "If the release fails, roll back every app it released, not only the failed ones").action(async (options) => {
11671
+ const { deployCli } = await Promise.resolve().then(() => require("./cli-DR7B2_fX.cjs"));
11500
11672
  const globalOptions = program.opts();
11501
11673
  const code = await deployCli({
11502
11674
  cwd: (0, node_path.resolve)(globalOptions.cwd ?? process.cwd()),
@@ -11505,10 +11677,29 @@ program.command("deploy").description("Deploy a stage through its target").optio
11505
11677
  stage: options.stage,
11506
11678
  ...options.tag ? { tag: options.tag } : {},
11507
11679
  ...options.json ? { json: true } : {},
11508
- ...options.dryRun ? { dryRun: true } : {}
11680
+ ...options.dryRun ? { dryRun: true } : {},
11681
+ ...options.atomic ? { atomic: true } : {}
11509
11682
  });
11510
11683
  if (code !== 0) process.exit(code);
11511
11684
  });
11685
+ program.command("deploy:rollback").description("Put a stage's app back on its previous release (Dokploy): one app with --app, every app with --atomic").requiredOption("--stage <stage>", "A deployed stage").option("--app <app>", "The app to roll back").option("--atomic", "Roll back every app that has an earlier release").action(async (options) => {
11686
+ try {
11687
+ const { rollbackStage } = await Promise.resolve().then(() => require("./rollback-BnY7KuG_.cjs")).then((n) => n.rollback_exports);
11688
+ const { terminalCredentials } = await Promise.resolve().then(() => require("./terminal-DjzgLu6m.cjs"));
11689
+ const globalOptions = program.opts();
11690
+ await rollbackStage({
11691
+ cwd: (0, node_path.resolve)(globalOptions.cwd ?? process.cwd()),
11692
+ stage: options.stage,
11693
+ ...options.app ? { app: options.app } : {},
11694
+ ...options.atomic ? { atomic: true } : {},
11695
+ credentials: terminalCredentials(),
11696
+ log: (line) => console.log(line)
11697
+ });
11698
+ } catch (error) {
11699
+ console.error(formatError(error));
11700
+ process.exit(1);
11701
+ }
11702
+ });
11512
11703
  program.command("deploy:init").description("Initialize Dokploy deployment (create project and application)").option("--endpoint <url>", "Dokploy server URL (uses stored credentials if logged in)").requiredOption("--project <name>", "Project name (creates if not exists)").requiredOption("--app <name>", "Application name").option("--project-id <id>", "Use existing project ID instead of creating").option("--registry-id <id>", "Configure registry for the application").action(async (options) => {
11513
11704
  try {
11514
11705
  const globalOptions = program.opts();
@@ -11529,7 +11720,7 @@ program.command("deploy:github").description("Let GitHub Actions deploy a stage:
11529
11720
  try {
11530
11721
  const globalOptions = program.opts();
11531
11722
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11532
- const { deployGithubCommand } = await Promise.resolve().then(() => require("./github-CYcmTdFs.cjs"));
11723
+ const { deployGithubCommand } = await Promise.resolve().then(() => require("./github-CrcGFkfD.cjs"));
11533
11724
  await deployGithubCommand(options);
11534
11725
  } catch (error) {
11535
11726
  console.error(formatError(error));
@@ -11572,7 +11763,7 @@ program.command("login").description("Authenticate with a deployment or DNS prov
11572
11763
  console.error(`Unknown provider: ${provider}. Supported: dokploy, hostinger`);
11573
11764
  process.exit(1);
11574
11765
  }
11575
- await require_sniffer.loginCommand({
11766
+ await loginCommand({
11576
11767
  provider,
11577
11768
  token: options.token,
11578
11769
  endpoint: options.endpoint
@@ -11586,7 +11777,7 @@ program.command("logout").description("Remove stored credentials").option("--pro
11586
11777
  try {
11587
11778
  const globalOptions = program.opts();
11588
11779
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11589
- await require_sniffer.logoutCommand({ provider: options.service ?? options.provider });
11780
+ await logoutCommand({ provider: options.service ?? options.provider });
11590
11781
  } catch (error) {
11591
11782
  console.error(formatError(error));
11592
11783
  process.exit(1);
@@ -11596,7 +11787,7 @@ program.command("whoami").description("Show current authentication status").acti
11596
11787
  try {
11597
11788
  const globalOptions = program.opts();
11598
11789
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
11599
- await require_sniffer.whoamiCommand();
11790
+ await whoamiCommand();
11600
11791
  } catch (error) {
11601
11792
  console.error(formatError(error));
11602
11793
  process.exit(1);
@@ -11664,9 +11855,12 @@ program.command("upgrade").description("Upgrade @geekmidas/cli (with --all, ever
11664
11855
  });
11665
11856
  program.parse();
11666
11857
  //#endregion
11858
+ exports.canPrompt = canPrompt;
11667
11859
  exports.formatError = formatError;
11668
11860
  exports.generateFullstackCustomSecrets = generateFullstackCustomSecrets;
11861
+ exports.prompt = prompt;
11669
11862
  exports.slug = slug;
11670
11863
  exports.stamp = stamp;
11864
+ exports.validateDokployToken = validateDokployToken;
11671
11865
 
11672
11866
  //# sourceMappingURL=index.cjs.map