@geekmidas/cli 10.0.0-alpha.121 → 10.0.0-alpha.123

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 (175) hide show
  1. package/dist/{GoDaddyProvider-D0MQoOM4.mjs → GoDaddyProvider-BlB5nJky.mjs} +2 -2
  2. package/dist/{GoDaddyProvider-D0MQoOM4.mjs.map → GoDaddyProvider-BlB5nJky.mjs.map} +1 -1
  3. package/dist/{GoDaddyProvider-3C8U_tVu.cjs → GoDaddyProvider-Dubq-pCc.cjs} +2 -2
  4. package/dist/{GoDaddyProvider-3C8U_tVu.cjs.map → GoDaddyProvider-Dubq-pCc.cjs.map} +1 -1
  5. package/dist/{LegacyStateStore-DHsoQGOo.cjs → LegacyStateStore-ClvUC8qy.cjs} +3 -3
  6. package/dist/{LegacyStateStore-DHsoQGOo.cjs.map → LegacyStateStore-ClvUC8qy.cjs.map} +1 -1
  7. package/dist/{LegacyStateStore-CRi7TosX.mjs → LegacyStateStore-DGALQGZu.mjs} +3 -3
  8. package/dist/{LegacyStateStore-CRi7TosX.mjs.map → LegacyStateStore-DGALQGZu.mjs.map} +1 -1
  9. package/dist/{LocalStateStore-BQXTkeoS.cjs → LocalStateStore-43kSYNpw.cjs} +2 -2
  10. package/dist/{LocalStateStore-BQXTkeoS.cjs.map → LocalStateStore-43kSYNpw.cjs.map} +1 -1
  11. package/dist/{LocalStateStore-Dkth0jXX.mjs → LocalStateStore-CBYUzVR5.mjs} +2 -2
  12. package/dist/{LocalStateStore-Dkth0jXX.mjs.map → LocalStateStore-CBYUzVR5.mjs.map} +1 -1
  13. package/dist/{S3StateStore-pZZnLLBd.mjs → S3StateStore-DLHjDYYP.mjs} +2 -2
  14. package/dist/{S3StateStore-pZZnLLBd.mjs.map → S3StateStore-DLHjDYYP.mjs.map} +1 -1
  15. package/dist/{S3StateStore-DGKZgyKz.cjs → S3StateStore-ahE7hSNK.cjs} +2 -2
  16. package/dist/{S3StateStore-DGKZgyKz.cjs.map → S3StateStore-ahE7hSNK.cjs.map} +1 -1
  17. package/dist/{SSMStateStore-CZRMERDA.mjs → SSMStateStore-j5RuMkch.mjs} +2 -2
  18. package/dist/{SSMStateStore-CZRMERDA.mjs.map → SSMStateStore-j5RuMkch.mjs.map} +1 -1
  19. package/dist/{SSMStateStore-DzkyjQ5D.cjs → SSMStateStore-qIzIuazA.cjs} +2 -2
  20. package/dist/{SSMStateStore-DzkyjQ5D.cjs.map → SSMStateStore-qIzIuazA.cjs.map} +1 -1
  21. package/dist/{add-C0kXOsWS.mjs → add-Bm-C56lH.mjs} +4 -4
  22. package/dist/{add-C0kXOsWS.mjs.map → add-Bm-C56lH.mjs.map} +1 -1
  23. package/dist/{add-Df8cmz0H.cjs → add-C2CvXrYw.cjs} +4 -4
  24. package/dist/{add-Df8cmz0H.cjs.map → add-C2CvXrYw.cjs.map} +1 -1
  25. package/dist/{bundler-Dx_grUmc.cjs → bundler-Dk7tAvAX.cjs} +5 -5
  26. package/dist/{bundler-Dx_grUmc.cjs.map → bundler-Dk7tAvAX.cjs.map} +1 -1
  27. package/dist/{bundler-B-I4Du99.mjs → bundler-DnkFt4mn.mjs} +5 -5
  28. package/dist/{bundler-B-I4Du99.mjs.map → bundler-DnkFt4mn.mjs.map} +1 -1
  29. package/dist/{cli-DL7GxGAe.mjs → cli-CVeHFXNE.mjs} +2 -2
  30. package/dist/{cli-DL7GxGAe.mjs.map → cli-CVeHFXNE.mjs.map} +1 -1
  31. package/dist/{cli-Cd9exatJ.cjs → cli-Di464j1O.cjs} +2 -2
  32. package/dist/{cli-Cd9exatJ.cjs.map → cli-Di464j1O.cjs.map} +1 -1
  33. package/dist/{compose-Mdgea4Yt.cjs → compose-ChVvb3xM.cjs} +65 -13
  34. package/dist/compose-ChVvb3xM.cjs.map +1 -0
  35. package/dist/{compose-C43c03WZ.mjs → compose-cHkF---f.mjs} +65 -13
  36. package/dist/compose-cHkF---f.mjs.map +1 -0
  37. package/dist/{config-D48erO2j.d.mts → config-B3iz9BtK.d.cts} +4 -4
  38. package/dist/{config-D48erO2j.d.mts.map → config-B3iz9BtK.d.cts.map} +1 -1
  39. package/dist/{config-DHDtsQrB.d.cts → config-DrOX29sT.d.mts} +4 -4
  40. package/dist/{config-DHDtsQrB.d.cts.map → config-DrOX29sT.d.mts.map} +1 -1
  41. package/dist/config.cjs +1 -1
  42. package/dist/config.d.cts +3 -3
  43. package/dist/config.d.mts +3 -3
  44. package/dist/config.mjs +1 -1
  45. package/dist/deploy/public.cjs +7 -7
  46. package/dist/deploy/public.d.cts +5 -5
  47. package/dist/deploy/public.d.cts.map +1 -1
  48. package/dist/deploy/public.d.mts +5 -5
  49. package/dist/deploy/public.d.mts.map +1 -1
  50. package/dist/deploy/public.mjs +7 -7
  51. package/dist/{deploy-BMM2hx-K.cjs → deploy-BffR_uEN.cjs} +7 -6
  52. package/dist/{deploy-BMM2hx-K.cjs.map → deploy-BffR_uEN.cjs.map} +1 -1
  53. package/dist/{deploy-D5YhwDng.mjs → deploy-DO4djCHb.mjs} +7 -6
  54. package/dist/{deploy-D5YhwDng.mjs.map → deploy-DO4djCHb.mjs.map} +1 -1
  55. package/dist/{discover-CSW_BMWa.d.cts → discover-C08meHhu.d.mts} +2 -2
  56. package/dist/{discover-CSW_BMWa.d.cts.map → discover-C08meHhu.d.mts.map} +1 -1
  57. package/dist/{discover-xtT7fgWg.d.mts → discover-DipvfWpK.d.cts} +2 -2
  58. package/dist/{discover-xtT7fgWg.d.mts.map → discover-DipvfWpK.d.cts.map} +1 -1
  59. package/dist/{dns-BIYf20p7.cjs → dns-Bmnuttja.cjs} +346 -27
  60. package/dist/dns-Bmnuttja.cjs.map +1 -0
  61. package/dist/{dns-agf2VCdV.mjs → dns-DFvO5a53.mjs} +317 -30
  62. package/dist/dns-DFvO5a53.mjs.map +1 -0
  63. package/dist/{dokploy-2p4PK6ej.mjs → dokploy-BcZm93Cc.mjs} +2 -2
  64. package/dist/{dokploy-2p4PK6ej.mjs.map → dokploy-BcZm93Cc.mjs.map} +1 -1
  65. package/dist/{dokploy-BANMTroy.cjs → dokploy-CsdvfH3t.cjs} +2 -2
  66. package/dist/{dokploy-BANMTroy.cjs.map → dokploy-CsdvfH3t.cjs.map} +1 -1
  67. package/dist/{eas-iT2JDHCh.mjs → eas-CBShP20v.mjs} +2 -2
  68. package/dist/{eas-iT2JDHCh.mjs.map → eas-CBShP20v.mjs.map} +1 -1
  69. package/dist/{eas-CNi16SoO.cjs → eas-CN_cUXth.cjs} +2 -2
  70. package/dist/{eas-CNi16SoO.cjs.map → eas-CN_cUXth.cjs.map} +1 -1
  71. package/dist/{encryption-DkXVbyZc.mjs → encryption-CITa6dXL.mjs} +3 -3
  72. package/dist/{encryption-DkXVbyZc.mjs.map → encryption-CITa6dXL.mjs.map} +1 -1
  73. package/dist/{encryption-d2lLtkYx.cjs → encryption-CPDM49Hi.cjs} +3 -3
  74. package/dist/{encryption-d2lLtkYx.cjs.map → encryption-CPDM49Hi.cjs.map} +1 -1
  75. package/dist/{engine-CatKW6E-.mjs → engine-CTnHmHjz.mjs} +4 -4
  76. package/dist/{engine-CatKW6E-.mjs.map → engine-CTnHmHjz.mjs.map} +1 -1
  77. package/dist/{engine-DlEHexED.cjs → engine-D-jfMVj-.cjs} +4 -4
  78. package/dist/{engine-DlEHexED.cjs.map → engine-D-jfMVj-.cjs.map} +1 -1
  79. package/dist/{github-DErsqKGN.mjs → github-9RlA7EjN.mjs} +5 -5
  80. package/dist/{github-DErsqKGN.mjs.map → github-9RlA7EjN.mjs.map} +1 -1
  81. package/dist/{github-BAeaC1Pl.cjs → github-D56PSK39.cjs} +5 -5
  82. package/dist/{github-BAeaC1Pl.cjs.map → github-D56PSK39.cjs.map} +1 -1
  83. package/dist/{googlePlay-BXJ5ZjMK.mjs → googlePlay-COi5LXON.mjs} +3 -3
  84. package/dist/{googlePlay-BXJ5ZjMK.mjs.map → googlePlay-COi5LXON.mjs.map} +1 -1
  85. package/dist/{googlePlay-BVcfFWRO.cjs → googlePlay-SX_jQeJf.cjs} +3 -3
  86. package/dist/{googlePlay-BVcfFWRO.cjs.map → googlePlay-SX_jQeJf.cjs.map} +1 -1
  87. package/dist/{index-8OfpOtSI.d.cts → index-DcyRA5Rf.d.mts} +2 -2
  88. package/dist/{index-8OfpOtSI.d.cts.map → index-DcyRA5Rf.d.mts.map} +1 -1
  89. package/dist/{index-Dpji6Bxq.d.mts → index-DjLSMgAL.d.cts} +2 -2
  90. package/dist/{index-Dpji6Bxq.d.mts.map → index-DjLSMgAL.d.cts.map} +1 -1
  91. package/dist/index.cjs +53 -53
  92. package/dist/index.cjs.map +1 -1
  93. package/dist/index.mjs +53 -53
  94. package/dist/index.mjs.map +1 -1
  95. package/dist/{migrate-s4QizIoM.mjs → migrate-0J6gsfrQ.mjs} +3 -3
  96. package/dist/{migrate-s4QizIoM.mjs.map → migrate-0J6gsfrQ.mjs.map} +1 -1
  97. package/dist/{migrate-L4a273dY.cjs → migrate-BCz1lkh_.cjs} +3 -3
  98. package/dist/{migrate-L4a273dY.cjs.map → migrate-BCz1lkh_.cjs.map} +1 -1
  99. package/dist/{migrate-D79GI0XM.cjs → migrate-CrtxXeGY.cjs} +3 -3
  100. package/dist/{migrate-D79GI0XM.cjs.map → migrate-CrtxXeGY.cjs.map} +1 -1
  101. package/dist/{migrate-Bb1MmGHl.mjs → migrate-DJa_Dlsl.mjs} +3 -3
  102. package/dist/{migrate-Bb1MmGHl.mjs.map → migrate-DJa_Dlsl.mjs.map} +1 -1
  103. package/dist/openapi.cjs +1 -1
  104. package/dist/openapi.d.cts +1 -1
  105. package/dist/openapi.d.mts +1 -1
  106. package/dist/openapi.mjs +1 -1
  107. package/dist/{publish-CcTlmJT6.mjs → publish-CuQlOW5p.mjs} +2 -2
  108. package/dist/{publish-CcTlmJT6.mjs.map → publish-CuQlOW5p.mjs.map} +1 -1
  109. package/dist/{publish-ydscCYsW.cjs → publish-qSpnvmdX.cjs} +2 -2
  110. package/dist/{publish-ydscCYsW.cjs.map → publish-qSpnvmdX.cjs.map} +1 -1
  111. package/dist/reconcile/public.d.cts +2 -2
  112. package/dist/reconcile/public.d.mts +2 -2
  113. package/dist/{resolve-BgL-brF9.cjs → resolve-AsfohXd1.cjs} +3 -3
  114. package/dist/{resolve-BgL-brF9.cjs.map → resolve-AsfohXd1.cjs.map} +1 -1
  115. package/dist/{resolve-BLp2trep.mjs → resolve-j8hUcbGz.mjs} +3 -3
  116. package/dist/{resolve-BLp2trep.mjs.map → resolve-j8hUcbGz.mjs.map} +1 -1
  117. package/dist/{rollback-2cyLXEH1.cjs → rollback-Bxq_URgL.cjs} +5 -5
  118. package/dist/{rollback-2cyLXEH1.cjs.map → rollback-Bxq_URgL.cjs.map} +1 -1
  119. package/dist/{rollback-DwqZ8zzj.mjs → rollback-JgbAY43C.mjs} +5 -5
  120. package/dist/{rollback-DwqZ8zzj.mjs.map → rollback-JgbAY43C.mjs.map} +1 -1
  121. package/dist/{runtime-YyQuekxi.d.mts → runtime-DIZTeGJV.d.cts} +2 -2
  122. package/dist/{runtime-ACdfK59n.d.cts.map → runtime-DIZTeGJV.d.cts.map} +1 -1
  123. package/dist/{runtime-ACdfK59n.d.cts → runtime-WMLJY-db.d.mts} +2 -2
  124. package/dist/{runtime-YyQuekxi.d.mts.map → runtime-WMLJY-db.d.mts.map} +1 -1
  125. package/dist/{s3-DQXZdmCM.mjs → s3-B4FTQQkV.mjs} +2 -2
  126. package/dist/{s3-DQXZdmCM.mjs.map → s3-B4FTQQkV.mjs.map} +1 -1
  127. package/dist/{s3-CrPoA89T.cjs → s3-DwKLXwUT.cjs} +2 -2
  128. package/dist/{s3-CrPoA89T.cjs.map → s3-DwKLXwUT.cjs.map} +1 -1
  129. package/dist/{sandbox-CdKgQ3XU.d.cts → sandbox-Co1y2CmF.d.mts} +2 -2
  130. package/dist/{sandbox-C4g1eG31.d.mts.map → sandbox-Co1y2CmF.d.mts.map} +1 -1
  131. package/dist/{sandbox-C4g1eG31.d.mts → sandbox-DvNqr6od.d.cts} +2 -2
  132. package/dist/{sandbox-CdKgQ3XU.d.cts.map → sandbox-DvNqr6od.d.cts.map} +1 -1
  133. package/dist/{seeds-C2w4UqVP.cjs → seeds-BWC-qjSI.cjs} +11 -5
  134. package/dist/{seeds-C2w4UqVP.cjs.map → seeds-BWC-qjSI.cjs.map} +1 -1
  135. package/dist/{seeds-Cwtv-U9-.mjs → seeds-Dv78P9LS.mjs} +6 -6
  136. package/dist/{seeds-Cwtv-U9-.mjs.map → seeds-Dv78P9LS.mjs.map} +1 -1
  137. package/dist/{serverSetup-BdFOD93s.cjs → serverSetup-CtV80a5M.cjs} +6 -6
  138. package/dist/{serverSetup-BdFOD93s.cjs.map → serverSetup-CtV80a5M.cjs.map} +1 -1
  139. package/dist/{serverSetup-utKsoyGH.mjs → serverSetup-DB6sKwAy.mjs} +6 -6
  140. package/dist/{serverSetup-utKsoyGH.mjs.map → serverSetup-DB6sKwAy.mjs.map} +1 -1
  141. package/dist/{sniffer-CF7wNxMo.cjs → sniffer-ctpwBBkT.cjs} +7 -7
  142. package/dist/{sniffer-CF7wNxMo.cjs.map → sniffer-ctpwBBkT.cjs.map} +1 -1
  143. package/dist/{sniffer-8C4q6Szd.mjs → sniffer-qDFUQmWP.mjs} +7 -7
  144. package/dist/{sniffer-8C4q6Szd.mjs.map → sniffer-qDFUQmWP.mjs.map} +1 -1
  145. package/dist/{stage-BvM_u2z4.mjs → stage-C7lf36az.mjs} +5 -5
  146. package/dist/{stage-BvM_u2z4.mjs.map → stage-C7lf36az.mjs.map} +1 -1
  147. package/dist/{stage-DEQJGW3r.cjs → stage-DzALYUwY.cjs} +5 -5
  148. package/dist/{stage-DEQJGW3r.cjs.map → stage-DzALYUwY.cjs.map} +1 -1
  149. package/dist/{stages-D4SnG5yl.cjs → stages-B7mCWI_R.cjs} +2 -2
  150. package/dist/{stages-D4SnG5yl.cjs.map → stages-B7mCWI_R.cjs.map} +1 -1
  151. package/dist/{stages-Cb9rqRbN.mjs → stages-DSltTW2d.mjs} +2 -2
  152. package/dist/{stages-Cb9rqRbN.mjs.map → stages-DSltTW2d.mjs.map} +1 -1
  153. package/dist/target/public.cjs +1 -1
  154. package/dist/target/public.d.cts +2 -2
  155. package/dist/target/public.d.mts +2 -2
  156. package/dist/target/public.mjs +1 -1
  157. package/dist/{types-B6UXlEkf.d.cts → types-C8gXOLWL.d.mts} +22 -3
  158. package/dist/{types-HqVPddRK.d.mts.map → types-C8gXOLWL.d.mts.map} +1 -1
  159. package/dist/{types-HqVPddRK.d.mts → types-Q2SC_ly2.d.cts} +23 -2
  160. package/dist/{types-B6UXlEkf.d.cts.map → types-Q2SC_ly2.d.cts.map} +1 -1
  161. package/dist/workspace/index.cjs +1 -1
  162. package/dist/workspace/index.d.cts +2 -2
  163. package/dist/workspace/index.d.mts +2 -2
  164. package/dist/workspace/index.mjs +1 -1
  165. package/dist/{workspace-BwqQnool.cjs → workspace-C82GLPnf.cjs} +8 -2
  166. package/dist/workspace-C82GLPnf.cjs.map +1 -0
  167. package/dist/{workspace-D1QbNd55.mjs → workspace-DUnnVjqC.mjs} +8 -2
  168. package/dist/workspace-DUnnVjqC.mjs.map +1 -0
  169. package/package.json +17 -16
  170. package/dist/compose-C43c03WZ.mjs.map +0 -1
  171. package/dist/compose-Mdgea4Yt.cjs.map +0 -1
  172. package/dist/dns-BIYf20p7.cjs.map +0 -1
  173. package/dist/dns-agf2VCdV.mjs.map +0 -1
  174. package/dist/workspace-BwqQnool.cjs.map +0 -1
  175. package/dist/workspace-D1QbNd55.mjs.map +0 -1
@@ -1,4 +1,4 @@
1
- import { n as Sandbox } from "./sandbox-CdKgQ3XU.cjs";
1
+ import { n as Sandbox } from "./sandbox-Co1y2CmF.mjs";
2
2
  import { ConstructManifest, Declaration } from "@geekmidas/manifest";
3
3
  //#region src/reconcile/discover.d.ts
4
4
  /** The construct face discovery needs: an id, and the ability to declare. */
@@ -122,4 +122,4 @@ interface ConstructSource {
122
122
  declare function discover(options: DiscoverOptions): Promise<ConstructManifest>;
123
123
  //#endregion
124
124
  export { isDeclarable as a, discover as i, ConstructsNotSerializable as n, DiscoverOptions as r, ConstructDiscoveryFailed as t };
125
- //# sourceMappingURL=discover-CSW_BMWa.d.cts.map
125
+ //# sourceMappingURL=discover-C08meHhu.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"discover-CSW_BMWa.d.cts","names":[],"sources":["../src/reconcile/discover.ts"],"mappings":";;;;UAsCU;EACT;EACA,WAAW;;;;;;;;;iBAUI,aAAa,iBAAiB,SAAS;UAYtC;;EAEhB;EACA;;;;;;;EAOA;;;;;;;;;;;;EAYA,UAAU,eAAe;;;;;;;;;;;;EAYzB,YAAY;;;;;;;;;EASZ,aAAa;;;;;;;;;;EAUb,cAAc,eAAe;;;;;;;EAO7B,UAAU;;;UAIM;;EAEhB;;EAEA;;;cA8GY,iCAAiC;WAEnC;WACA;EAFV,YACU,mBACA;;;;;;cAWE,kCAAkC;WACzB;EAArB,YAAqB;;;UAYL;;EAEhB;;EAEA;;;;;;;EAOA;;;;;;;;;;iBAWqB,SACrB,SAAS,kBACP,QAAQ"}
1
+ {"version":3,"file":"discover-C08meHhu.d.mts","names":[],"sources":["../src/reconcile/discover.ts"],"mappings":";;;;UAsCU;EACT;EACA,WAAW;;;;;;;;;iBAUI,aAAa,iBAAiB,SAAS;UAYtC;;EAEhB;EACA;;;;;;;EAOA;;;;;;;;;;;;EAYA,UAAU,eAAe;;;;;;;;;;;;EAYzB,YAAY;;;;;;;;;EASZ,aAAa;;;;;;;;;;EAUb,cAAc,eAAe;;;;;;;EAO7B,UAAU;;;UAIM;;EAEhB;;EAEA;;;cA8GY,iCAAiC;WAEnC;WACA;EAFV,YACU,mBACA;;;;;;cAWE,kCAAkC;WACzB;EAArB,YAAqB;;;UAYL;;EAEhB;;EAEA;;;;;;;EAOA;;;;;;;;;;iBAWqB,SACrB,SAAS,kBACP,QAAQ"}
@@ -1,4 +1,4 @@
1
- import { n as Sandbox } from "./sandbox-C4g1eG31.mjs";
1
+ import { n as Sandbox } from "./sandbox-DvNqr6od.cjs";
2
2
  import { ConstructManifest, Declaration } from "@geekmidas/manifest";
3
3
  //#region src/reconcile/discover.d.ts
4
4
  /** The construct face discovery needs: an id, and the ability to declare. */
@@ -122,4 +122,4 @@ interface ConstructSource {
122
122
  declare function discover(options: DiscoverOptions): Promise<ConstructManifest>;
123
123
  //#endregion
124
124
  export { isDeclarable as a, discover as i, ConstructsNotSerializable as n, DiscoverOptions as r, ConstructDiscoveryFailed as t };
125
- //# sourceMappingURL=discover-xtT7fgWg.d.mts.map
125
+ //# sourceMappingURL=discover-DipvfWpK.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"discover-xtT7fgWg.d.mts","names":[],"sources":["../src/reconcile/discover.ts"],"mappings":";;;;UAsCU;EACT;EACA,WAAW;;;;;;;;;iBAUI,aAAa,iBAAiB,SAAS;UAYtC;;EAEhB;EACA;;;;;;;EAOA;;;;;;;;;;;;EAYA,UAAU,eAAe;;;;;;;;;;;;EAYzB,YAAY;;;;;;;;;EASZ,aAAa;;;;;;;;;;EAUb,cAAc,eAAe;;;;;;;EAO7B,UAAU;;;UAIM;;EAEhB;;EAEA;;;cA8GY,iCAAiC;WAEnC;WACA;EAFV,YACU,mBACA;;;;;;cAWE,kCAAkC;WACzB;EAArB,YAAqB;;;UAYL;;EAEhB;;EAEA;;;;;;;EAOA;;;;;;;;;;iBAWqB,SACrB,SAAS,kBACP,QAAQ"}
1
+ {"version":3,"file":"discover-DipvfWpK.d.cts","names":[],"sources":["../src/reconcile/discover.ts"],"mappings":";;;;UAsCU;EACT;EACA,WAAW;;;;;;;;;iBAUI,aAAa,iBAAiB,SAAS;UAYtC;;EAEhB;EACA;;;;;;;EAOA;;;;;;;;;;;;EAYA,UAAU,eAAe;;;;;;;;;;;;EAYzB,YAAY;;;;;;;;;EASZ,aAAa;;;;;;;;;;EAUb,cAAc,eAAe;;;;;;;EAO7B,UAAU;;;UAIM;;EAEhB;;EAEA;;;cA8GY,iCAAiC;WAEnC;WACA;EAFV,YACU,mBACA;;;;;;cAWE,kCAAkC;WACzB;EAArB,YAAqB;;;UAYL;;EAEhB;;EAEA;;;;;;;EAOA;;;;;;;;;;iBAWqB,SACrB,SAAS,kBACP,QAAQ"}
@@ -1,6 +1,8 @@
1
+ const require_rolldown_runtime = require("./rolldown-runtime-C0BPl7ul.cjs");
1
2
  const require_errors = require("./errors-DMC4Umsb.cjs");
2
- const require_workspace = require("./workspace-BwqQnool.cjs");
3
- const require_seeds = require("./seeds-C2w4UqVP.cjs");
3
+ const require_workspace = require("./workspace-C82GLPnf.cjs");
4
+ const require_seeds = require("./seeds-BWC-qjSI.cjs");
5
+ const require_derive = require("./derive-DAbo49sm.cjs");
4
6
  let node_path = require("node:path");
5
7
  let node_fs = require("node:fs");
6
8
  let node_net = require("node:net");
@@ -8,6 +10,8 @@ let node_crypto = require("node:crypto");
8
10
  let _geekmidas_manifest = require("@geekmidas/manifest");
9
11
  let node_module = require("node:module");
10
12
  let node_url = require("node:url");
13
+ let bcryptjs = require("bcryptjs");
14
+ bcryptjs = require_rolldown_runtime.__toESM(bcryptjs, 1);
11
15
  let node_dns_promises = require("node:dns/promises");
12
16
  //#region src/providers/dns.ts
13
17
  /** Whether the workspace deploys through the compose target. */
@@ -319,6 +323,153 @@ function backupsRoleStatements(backups) {
319
323
  ];
320
324
  }
321
325
  //#endregion
326
+ //#region src/compose/sitePassword.ts
327
+ /**
328
+ * A deployed stage's sites behind a password — `deploy.sitePassword` — so a
329
+ * staging build is not public while it is being tried.
330
+ *
331
+ * The edge asks for it with HTTP basic auth, before a request reaches the
332
+ * site: the browser prompts, and nothing of the site loads until the stage's
333
+ * login is given. The user is the stage's name; the password is generated
334
+ * once per site and kept in the stage's secrets, where one set by hand wins.
335
+ * Only its bcrypt hash reaches the edge's config.
336
+ *
337
+ * Pure.
338
+ */
339
+ /** `deploy.sitePassword` names something that is not one of the stage's sites. */
340
+ var UnknownPasswordSite = class extends require_errors.GkmError {
341
+ stage;
342
+ site;
343
+ sites;
344
+ constructor(stage, site, sites) {
345
+ super(`deploy.sitePassword.${stage} names '${site}', which is not a site of this workspace. ${sites.length > 0 ? `Its sites: ${sites.map((s) => `'${s}'`).join(", ")}.` : "It declares no site."} Name one of them, or set ${stage}: true for every site.`);
346
+ this.stage = stage;
347
+ this.site = site;
348
+ this.sites = sites;
349
+ this.name = "UnknownPasswordSite";
350
+ }
351
+ };
352
+ /** A site the stage puts behind a password, with none in the stage's secrets. */
353
+ var SitePasswordMissing = class extends require_errors.GkmError {
354
+ stage;
355
+ key;
356
+ constructor(stage, key) {
357
+ super(`deploy.sitePassword puts a site of '${stage}' behind a password, and the stage has no ${key} in its secrets. Run gkm compose --stage ${stage} once to generate it, or set one: gkm secrets:set ${key} '…' --stage ${stage}`);
358
+ this.stage = stage;
359
+ this.key = key;
360
+ this.name = "SitePasswordMissing";
361
+ }
362
+ };
363
+ /**
364
+ * `deploy.sitePassword` names a stage that deploys through a target that
365
+ * cannot ask for a login. Refused rather than ignored: ignored, the stage
366
+ * would be public while its config says it is not.
367
+ */
368
+ var SitePasswordNeedsCompose = class extends require_errors.GkmError {
369
+ stage;
370
+ target;
371
+ constructor(stage, target) {
372
+ super(`deploy.sitePassword puts '${stage}' behind a password, and it deploys through '${target}', which cannot ask for one yet — only compose does. Remove ${stage} from deploy.sitePassword, or deploy it with compose.`);
373
+ this.stage = stage;
374
+ this.target = target;
375
+ this.name = "SitePasswordNeedsCompose";
376
+ }
377
+ };
378
+ /**
379
+ * @throws {SitePasswordNeedsCompose} where `stage` asks for a site password
380
+ * and `target` is not compose
381
+ */
382
+ function assertSitePasswordTarget(workspace, stage, target) {
383
+ if (workspace.deploy?.sitePassword?.[stage] && target !== "compose") throw new SitePasswordNeedsCompose(stage, target);
384
+ }
385
+ /** The stage secret a site's password is kept in: `WEB_SITE_PASSWORD`. */
386
+ function sitePasswordKey(site) {
387
+ return `${(0, _geekmidas_manifest.environmentCase)(site)}_SITE_PASSWORD`;
388
+ }
389
+ /** Every site the manifest declares, by app name. */
390
+ function siteNames(manifest) {
391
+ return Object.values(manifest).filter((declaration) => declaration.kind === "site").map((declaration) => require_derive.appKey(declaration.id));
392
+ }
393
+ /**
394
+ * The sites `deploy.sitePassword` puts behind a password on `stage`, by app
395
+ * name: every one for `true`, the ones it names otherwise.
396
+ *
397
+ * @throws {UnknownPasswordSite} for a name that is not one of `sites`
398
+ */
399
+ function passwordSites(workspace, stage, sites) {
400
+ const choice = workspace.deploy?.sitePassword?.[stage];
401
+ if (!choice) return [];
402
+ if (choice === true) return [...sites];
403
+ const chosen = /* @__PURE__ */ new Set();
404
+ for (const name of choice) {
405
+ const site = require_derive.appKey(name);
406
+ if (!sites.includes(site)) throw new UnknownPasswordSite(stage, name, sites);
407
+ chosen.add(site);
408
+ }
409
+ return [...chosen];
410
+ }
411
+ /** A password: 192 random bits, URL-safe, so it is typed or pasted as is. */
412
+ function generateSitePassword() {
413
+ return (0, node_crypto.randomBytes)(24).toString("base64url");
414
+ }
415
+ /**
416
+ * The stage's secrets with a generated password for each site, where it has
417
+ * none. Pure, like `withGeneratedSecrets`: the caller keeps the result once
418
+ * the run goes ahead.
419
+ */
420
+ function withSitePasswords(secrets, sites) {
421
+ const missing = sites.map(sitePasswordKey).filter((key) => !secrets.custom?.[key]);
422
+ if (missing.length === 0) return {
423
+ secrets,
424
+ generated: []
425
+ };
426
+ return {
427
+ secrets: {
428
+ ...secrets,
429
+ custom: {
430
+ ...secrets.custom,
431
+ ...Object.fromEntries(missing.map((key) => [key, generateSitePassword()]))
432
+ },
433
+ updatedAt: (/* @__PURE__ */ new Date()).toISOString()
434
+ },
435
+ generated: missing
436
+ };
437
+ }
438
+ /**
439
+ * The login a site is served behind on `stage`.
440
+ *
441
+ * The hash's salt is derived from the password, so the same password always
442
+ * renders the same edge config: a deploy that changed nothing rewrites
443
+ * nothing, and the proxy is not reloaded for it. A per-hash random salt
444
+ * guards against a precomputed table of common passwords; a generated one is
445
+ * 192 random bits, which no table holds.
446
+ *
447
+ * @throws {SitePasswordMissing} where the stage's secrets hold none
448
+ */
449
+ function siteAuth(stage, site, custom) {
450
+ const key = sitePasswordKey(site);
451
+ const password = custom[key];
452
+ if (!password) throw new SitePasswordMissing(stage, key);
453
+ return {
454
+ user: stage,
455
+ password,
456
+ hash: bcryptjs.default.hashSync(password, saltFor(password)),
457
+ key
458
+ };
459
+ }
460
+ /** bcrypt's own base-64 alphabet, in which a salt is written. */
461
+ const BCRYPT_ALPHABET = "./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
462
+ /**
463
+ * A bcrypt salt — `$2a$`, which Caddy and Traefik both read, at cost 10 —
464
+ * derived from the password.
465
+ */
466
+ function saltFor(password) {
467
+ const digest = (0, node_crypto.createHash)("sha256").update(password).digest();
468
+ let salt = "";
469
+ for (let i = 0; i < 22; i++) salt += BCRYPT_ALPHABET[digest[i] % 64];
470
+ return `$2a$10$${salt}`;
471
+ }
472
+ //#endregion
322
473
  //#region src/compose/dns.ts
323
474
  /**
324
475
  * A compose stage's DNS: the records its public hosts need, and the check that
@@ -341,10 +492,17 @@ function backupsRoleStatements(backups) {
341
492
  * resolver. One that is not the server stops the deploy with
342
493
  * {@link HostNotPointingAtServer}, before Caddy or Traefik ask Let's Encrypt
343
494
  * for a certificate it cannot get — and use up the rate limit trying.
344
- * - **The step** (`stageDns`): all three, as every deploy runs them — the plan applied through each provider,
345
- * what was written read back from the provider, and only the hosts no
346
- * provider wrote resolved publicly. A brand-new name is never looked up
347
- * before its record exists, so no resolver caches it as missing.
495
+ * - **What gkm wrote before** (`diffRecordedDns`, pure): the plan against the
496
+ * records the stage's state says gkm wrote — added, kept, and stale: a
497
+ * host the stage no longer serves, after a domain or an app changed.
498
+ * - **The prune** (`pruneStackDns`): each stale record deleted through its
499
+ * domain's provider, if it still holds the value gkm wrote. One someone
500
+ * pointed elsewhere is left alone; one no provider can delete is printed.
501
+ * - **The step** (`stageDns`): all of it, as every deploy runs it — the plan applied through each provider,
502
+ * what was written read back from the provider, the stale records pruned,
503
+ * and only the hosts no provider wrote resolved publicly. A brand-new name
504
+ * is never looked up before its record exists, so no resolver caches it as
505
+ * missing.
348
506
  */
349
507
  /** The line that says how to set the server's address. */
350
508
  function serverAddressHint(stage) {
@@ -536,12 +694,23 @@ function printManual(plan, log, why) {
536
694
  /** The existing records of every planned name, for the types gkm manages. */
537
695
  async function existingRecords(provider, plan) {
538
696
  const names = [...new Set(plan.records.map((r) => r.name))];
539
- const wanted = names.flatMap((name) => MANAGED.map((type) => ({
697
+ return readRecords(provider, plan.domain, names.flatMap((name) => MANAGED.map((type) => ({
540
698
  name,
541
699
  type
542
- })));
543
- if (provider.readRecords) return provider.readRecords(plan.domain, wanted);
544
- return (await provider.getRecords(plan.domain)).filter((r) => names.includes(r.name) && MANAGED.includes(r.type));
700
+ }))));
701
+ }
702
+ /** Exactly these names and types, as the provider holds them. */
703
+ async function readRecords(provider, domain, wanted) {
704
+ if (provider.readRecords) return provider.readRecords(domain, wanted);
705
+ return (await provider.getRecords(domain)).filter((r) => wanted.some((w) => w.name === r.name && w.type === r.type));
706
+ }
707
+ /** The provider for a domain's config: `providerFor`, or the real one. */
708
+ function providerResolver(options) {
709
+ return options.providerFor ?? ((config) => require_seeds.createDnsProvider({
710
+ config,
711
+ ...options.credentials ? { godaddy: options.credentials } : {},
712
+ ...options.hostinger ? { hostinger: options.hostinger } : {}
713
+ }));
545
714
  }
546
715
  const same = (a, b) => a.trim().replace(/\.$/, "").toLowerCase() === b.trim().replace(/\.$/, "").toLowerCase();
547
716
  /**
@@ -631,11 +800,7 @@ function printChange(change, dryRun, log) {
631
800
  async function settleStackDns(plan, options = {}) {
632
801
  const dryRun = options.dryRun === true;
633
802
  const log = options.log ?? ((line) => console.log(line));
634
- const providerFor = options.providerFor ?? ((config) => require_seeds.createDnsProvider({
635
- config,
636
- ...options.credentials ? { godaddy: options.credentials } : {},
637
- ...options.hostinger ? { hostinger: options.hostinger } : {}
638
- }));
803
+ const providerFor = providerResolver(options);
639
804
  const changes = [];
640
805
  const confirmed = /* @__PURE__ */ new Set();
641
806
  const unconfirmed = /* @__PURE__ */ new Set();
@@ -725,6 +890,110 @@ async function settleStackDns(plan, options = {}) {
725
890
  unconfirmed: [...unconfirmed].filter((h) => !confirmed.has(h)).sort()
726
891
  };
727
892
  }
893
+ /** `api.example.com A` — a record's identity, whatever its value. */
894
+ const recordKey = (fqdn, type) => `${fqdn.trim().replace(/\.$/, "").toLowerCase()} ${type.toUpperCase()}`;
895
+ /**
896
+ * The plan against the records gkm wrote for the stage — pure. A record is
897
+ * its full name and its type: one the plan has at another value is kept (the
898
+ * apply updates it), and one whose name or type the plan no longer has is
899
+ * stale — a host the stage stopped serving when its domain or an app changed,
900
+ * or an AAAA once its server has no IPv6 address.
901
+ */
902
+ function diffRecordedDns(plan, recorded) {
903
+ const planned = plan.domains.flatMap((domain) => domain.records);
904
+ const wanted = new Set(planned.map((r) => recordKey(r.host, r.type)));
905
+ const written = new Set(recorded.map((r) => recordKey(r.fqdn, r.type)));
906
+ return {
907
+ added: planned.filter((r) => !written.has(recordKey(r.host, r.type))),
908
+ kept: planned.filter((r) => written.has(recordKey(r.host, r.type))),
909
+ stale: recorded.filter((r) => !wanted.has(recordKey(r.fqdn, r.type)))
910
+ };
911
+ }
912
+ /**
913
+ * Each stale record deleted through its domain's provider — only where the
914
+ * provider still holds exactly the value gkm wrote, so a name someone has
915
+ * since pointed elsewhere is never taken from them. Where no provider can
916
+ * read and delete it — a `manual` domain, one gone from `dns`, a key that
917
+ * can only write — it is printed for a person to remove. A dry run reads
918
+ * and prints, and deletes nothing.
919
+ */
920
+ async function pruneStackDns(stale, options) {
921
+ if (stale.length === 0) return [];
922
+ const dryRun = options.dryRun === true;
923
+ const log = options.log ?? ((line) => console.log(line));
924
+ const providerFor = providerResolver(options);
925
+ const dns = options.dns ? require_seeds.normalizeDnsConfig(options.dns) : {};
926
+ const byDomain = /* @__PURE__ */ new Map();
927
+ for (const record of stale) byDomain.set(record.domain, [...byDomain.get(record.domain) ?? [], record]);
928
+ log(` No longer served by '${options.stage}':`);
929
+ const pruned = [];
930
+ const byHand = (domain, records, why) => {
931
+ log(` ${domain}: ${why} — remove these records at its DNS host:`);
932
+ for (const record of records) {
933
+ log(` ${record.fqdn.padEnd(32)} ${record.type.padEnd(5)} ${record.value}`);
934
+ pruned.push({
935
+ record,
936
+ action: "manual"
937
+ });
938
+ }
939
+ };
940
+ for (const [domain, records] of byDomain) {
941
+ const config = dns[domain];
942
+ if (!config) {
943
+ byHand(domain, records, "no longer in dns");
944
+ continue;
945
+ }
946
+ const provider = providerName(config) === "manual" ? null : await providerFor(config);
947
+ if (!provider) {
948
+ byHand(domain, records, "manual");
949
+ continue;
950
+ }
951
+ let existing;
952
+ try {
953
+ existing = await readRecords(provider, domain, records.map((r) => ({
954
+ name: r.name,
955
+ type: r.type
956
+ })));
957
+ } catch (error) {
958
+ if (!(error instanceof require_seeds.DnsRecordsUnreadable)) throw error;
959
+ byHand(domain, records, `the ${provider.name} key cannot read its records, so none is deleted unchecked`);
960
+ continue;
961
+ }
962
+ const would = dryRun ? "would " : "";
963
+ const deletes = [];
964
+ for (const record of records) {
965
+ const host = record.fqdn.padEnd(32);
966
+ const type = record.type.padEnd(5);
967
+ const found = existing.find((r) => r.name === record.name && r.type === record.type)?.values ?? [];
968
+ if (found.length === 0) {
969
+ log(` · ${host} ${type} already gone`);
970
+ pruned.push({
971
+ record,
972
+ action: "gone"
973
+ });
974
+ } else if (found.length === 1 && same(found[0], record.value)) {
975
+ log(` - ${host} ${type} ${record.value} — ${would}delete`);
976
+ deletes.push({
977
+ record,
978
+ action: "delete"
979
+ });
980
+ } else {
981
+ log(` ⚠ ${host} ${type} ${found.join(", ")} — pointed elsewhere since gkm wrote ${record.value}; left as it is`);
982
+ pruned.push({
983
+ record,
984
+ action: "changed",
985
+ found
986
+ });
987
+ }
988
+ }
989
+ if (!dryRun && deletes.length > 0) await provider.deleteRecords(domain, deletes.map(({ record }) => ({
990
+ name: record.name,
991
+ type: record.type
992
+ })));
993
+ pruned.push(...deletes);
994
+ }
995
+ return pruned;
996
+ }
728
997
  /** The system resolver: what the server's own clients would be told. */
729
998
  const systemLookup = async (host) => {
730
999
  return (await (0, node_dns_promises.lookup)(host, { all: true })).map((a) => a.address);
@@ -867,8 +1136,9 @@ async function dnsCredentials(stage, domains, credentials) {
867
1136
  /**
868
1137
  * A stage's DNS, as every deploy runs it: the
869
1138
  * stage's own hosts planned, written through each domain's provider where
870
- * they differ, and read back from it. Only A, AAAA and CNAME records of
871
- * those names are touched; nothing is a wildcard, and no other name is read,
1139
+ * they differ, and read back from it — and each record gkm wrote for a host
1140
+ * the stage no longer serves found, for `prune` to delete. Only A, AAAA and CNAME records of those
1141
+ * names are touched; nothing is a wildcard, and no other name is read,
872
1142
  * written or deleted. What no provider confirms — a `manual` domain, a host
873
1143
  * under no domain in `dns`, a key that cannot read — is resolved publicly.
874
1144
  * A dry run prints the plan and writes nothing.
@@ -886,16 +1156,17 @@ async function stageDns(input) {
886
1156
  server,
887
1157
  dns: input.dns
888
1158
  });
889
- const tokens = await dnsCredentials(stage, plan.domains.map(({ domain, config }) => ({
1159
+ const recorded = diffRecordedDns(plan, input.recorded ?? []);
1160
+ const dns = input.dns ? require_seeds.normalizeDnsConfig(input.dns) : {};
1161
+ const staleDomains = [...new Set(recorded.stale.map((r) => r.domain))].filter((domain) => dns[domain] && !plan.domains.some((d) => d.domain === domain)).map((domain) => ({
1162
+ domain,
1163
+ config: dns[domain]
1164
+ }));
1165
+ const tokens = await dnsCredentials(stage, [...plan.domains.map(({ domain, config }) => ({
890
1166
  domain,
891
1167
  config
892
- })), input.credentials);
893
- const applied = !input.dns ? {
894
- changes: [],
895
- confirmed: [],
896
- unconfirmed: [...plan.uncovered]
897
- } : await settleStackDns(plan, {
898
- ...input.dryRun ? { dryRun: true } : { confirm: true },
1168
+ })), ...staleDomains], input.credentials);
1169
+ const providers = {
899
1170
  log,
900
1171
  credentials: {
901
1172
  ...input.godaddy ?? {},
@@ -904,6 +1175,22 @@ async function stageDns(input) {
904
1175
  },
905
1176
  ...tokens.hostinger ? { hostinger: tokens.hostinger } : {},
906
1177
  ...input.providerFor ? { providerFor: input.providerFor } : {}
1178
+ };
1179
+ const applied = !input.dns ? {
1180
+ changes: [],
1181
+ confirmed: [],
1182
+ unconfirmed: [...plan.uncovered]
1183
+ } : await settleStackDns(plan, {
1184
+ ...input.dryRun ? { dryRun: true } : { confirm: true },
1185
+ ...providers
1186
+ });
1187
+ const deleted = new Set(applied.changes.filter((c) => c.action === "delete").map((c) => recordKey(fullName(c.domain, c.name), c.type)));
1188
+ const stale = recorded.stale.filter((r) => !deleted.has(recordKey(r.fqdn, r.type)));
1189
+ const prune = () => pruneStackDns(stale, {
1190
+ stage,
1191
+ dns: input.dns,
1192
+ ...input.dryRun ? { dryRun: true } : {},
1193
+ ...providers
907
1194
  });
908
1195
  let resolved = [];
909
1196
  if (applied.unconfirmed.length > 0) resolved = await checkStackDns({
@@ -917,7 +1204,9 @@ async function stageDns(input) {
917
1204
  plan,
918
1205
  changes: applied.changes,
919
1206
  confirmed: applied.confirmed,
920
- resolved
1207
+ resolved,
1208
+ recorded,
1209
+ prune
921
1210
  };
922
1211
  }
923
1212
  //#endregion
@@ -945,6 +1234,12 @@ Object.defineProperty(exports, "RUNNER_PATH", {
945
1234
  return RUNNER_PATH;
946
1235
  }
947
1236
  });
1237
+ Object.defineProperty(exports, "assertSitePasswordTarget", {
1238
+ enumerable: true,
1239
+ get: function() {
1240
+ return assertSitePasswordTarget;
1241
+ }
1242
+ });
948
1243
  Object.defineProperty(exports, "backupDatabases", {
949
1244
  enumerable: true,
950
1245
  get: function() {
@@ -999,6 +1294,12 @@ Object.defineProperty(exports, "isLocalHost", {
999
1294
  return isLocalHost;
1000
1295
  }
1001
1296
  });
1297
+ Object.defineProperty(exports, "passwordSites", {
1298
+ enumerable: true,
1299
+ get: function() {
1300
+ return passwordSites;
1301
+ }
1302
+ });
1002
1303
  Object.defineProperty(exports, "requiredServerAddress", {
1003
1304
  enumerable: true,
1004
1305
  get: function() {
@@ -1017,6 +1318,18 @@ Object.defineProperty(exports, "serverAddressHint", {
1017
1318
  return serverAddressHint;
1018
1319
  }
1019
1320
  });
1321
+ Object.defineProperty(exports, "siteAuth", {
1322
+ enumerable: true,
1323
+ get: function() {
1324
+ return siteAuth;
1325
+ }
1326
+ });
1327
+ Object.defineProperty(exports, "siteNames", {
1328
+ enumerable: true,
1329
+ get: function() {
1330
+ return siteNames;
1331
+ }
1332
+ });
1020
1333
  Object.defineProperty(exports, "stackBackups", {
1021
1334
  enumerable: true,
1022
1335
  get: function() {
@@ -1053,5 +1366,11 @@ Object.defineProperty(exports, "systemLookup", {
1053
1366
  return systemLookup;
1054
1367
  }
1055
1368
  });
1369
+ Object.defineProperty(exports, "withSitePasswords", {
1370
+ enumerable: true,
1371
+ get: function() {
1372
+ return withSitePasswords;
1373
+ }
1374
+ });
1056
1375
 
1057
- //# sourceMappingURL=dns-BIYf20p7.cjs.map
1376
+ //# sourceMappingURL=dns-Bmnuttja.cjs.map