@geekmidas/cli 10.0.0-alpha.125 → 10.0.0-alpha.127

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/dist/{EndpointGenerator-errMeldx.mjs → EndpointGenerator-B99OGzbO.mjs} +2 -2
  2. package/dist/{EndpointGenerator-errMeldx.mjs.map → EndpointGenerator-B99OGzbO.mjs.map} +1 -1
  3. package/dist/{EndpointGenerator-BGxf9jWE.cjs → EndpointGenerator-De0lknKD.cjs} +2 -2
  4. package/dist/{EndpointGenerator-BGxf9jWE.cjs.map → EndpointGenerator-De0lknKD.cjs.map} +1 -1
  5. package/dist/{GoDaddyProvider-BN1dODm9.mjs → GoDaddyProvider-BG-UdElN.mjs} +2 -2
  6. package/dist/{GoDaddyProvider-BN1dODm9.mjs.map → GoDaddyProvider-BG-UdElN.mjs.map} +1 -1
  7. package/dist/{GoDaddyProvider-BTdtqhI_.cjs → GoDaddyProvider-DnmLq7eo.cjs} +2 -2
  8. package/dist/{GoDaddyProvider-BTdtqhI_.cjs.map → GoDaddyProvider-DnmLq7eo.cjs.map} +1 -1
  9. package/dist/{LegacyStateStore-C2S8TGwx.cjs → LegacyStateStore-CeBkK9K2.cjs} +3 -3
  10. package/dist/{LegacyStateStore-C2S8TGwx.cjs.map → LegacyStateStore-CeBkK9K2.cjs.map} +1 -1
  11. package/dist/{LegacyStateStore-DgXmuG87.mjs → LegacyStateStore-DHG_4jcn.mjs} +3 -3
  12. package/dist/{LegacyStateStore-DgXmuG87.mjs.map → LegacyStateStore-DHG_4jcn.mjs.map} +1 -1
  13. package/dist/{LocalStateStore-ojY_BiMK.mjs → LocalStateStore-EenTHwr4.mjs} +2 -2
  14. package/dist/{LocalStateStore-ojY_BiMK.mjs.map → LocalStateStore-EenTHwr4.mjs.map} +1 -1
  15. package/dist/{LocalStateStore-CaJw9H-3.cjs → LocalStateStore-HRnBQFe3.cjs} +2 -2
  16. package/dist/{LocalStateStore-CaJw9H-3.cjs.map → LocalStateStore-HRnBQFe3.cjs.map} +1 -1
  17. package/dist/{OpenApiTsGenerator-cQgtxWQo.cjs → OpenApiTsGenerator-DMLzN-LU.cjs} +2 -2
  18. package/dist/{OpenApiTsGenerator-cQgtxWQo.cjs.map → OpenApiTsGenerator-DMLzN-LU.cjs.map} +1 -1
  19. package/dist/{OpenApiTsGenerator-W_HRXH1X.mjs → OpenApiTsGenerator-DNUCgkkx.mjs} +2 -2
  20. package/dist/{OpenApiTsGenerator-W_HRXH1X.mjs.map → OpenApiTsGenerator-DNUCgkkx.mjs.map} +1 -1
  21. package/dist/{S3StateStore-BqugXIcb.cjs → S3StateStore-DyLljVN1.cjs} +2 -2
  22. package/dist/{S3StateStore-BqugXIcb.cjs.map → S3StateStore-DyLljVN1.cjs.map} +1 -1
  23. package/dist/{S3StateStore-BSPkxhrx.mjs → S3StateStore-vbkyBnRB.mjs} +2 -2
  24. package/dist/{S3StateStore-BSPkxhrx.mjs.map → S3StateStore-vbkyBnRB.mjs.map} +1 -1
  25. package/dist/{SSMStateStore-B0OsuT_k.cjs → SSMStateStore-BBKlmfaU.cjs} +2 -2
  26. package/dist/{SSMStateStore-B0OsuT_k.cjs.map → SSMStateStore-BBKlmfaU.cjs.map} +1 -1
  27. package/dist/{SSMStateStore-DM85OiH0.mjs → SSMStateStore-uk2QLUgz.mjs} +2 -2
  28. package/dist/{SSMStateStore-DM85OiH0.mjs.map → SSMStateStore-uk2QLUgz.mjs.map} +1 -1
  29. package/dist/{SubscriberGenerator-ocQ2yj0K.mjs → SubscriberGenerator-0ruEmYXj.mjs} +4 -62
  30. package/dist/SubscriberGenerator-0ruEmYXj.mjs.map +1 -0
  31. package/dist/{SubscriberGenerator-BDUp7OeY.cjs → SubscriberGenerator-CPjbWEOI.cjs} +3 -91
  32. package/dist/SubscriberGenerator-CPjbWEOI.cjs.map +1 -0
  33. package/dist/{add-CrxvmSpq.cjs → add-CH7-9AHI.cjs} +7 -7
  34. package/dist/add-CH7-9AHI.cjs.map +1 -0
  35. package/dist/{add-C7ZBXIzM.mjs → add-CgyyN6aF.mjs} +7 -7
  36. package/dist/add-CgyyN6aF.mjs.map +1 -0
  37. package/dist/{bundler-DVUXW95p.cjs → bundler-BtAkF9wb.cjs} +5 -5
  38. package/dist/{bundler-DVUXW95p.cjs.map → bundler-BtAkF9wb.cjs.map} +1 -1
  39. package/dist/{bundler-DpZ9uBGN.mjs → bundler-DqHozK8W.mjs} +5 -5
  40. package/dist/{bundler-DpZ9uBGN.mjs.map → bundler-DqHozK8W.mjs.map} +1 -1
  41. package/dist/{cli-BMRhE6cZ.cjs → cli-D08bMg7m.cjs} +3 -3
  42. package/dist/{cli-BMRhE6cZ.cjs.map → cli-D08bMg7m.cjs.map} +1 -1
  43. package/dist/{cli-BWfYyy1k.mjs → cli-D_BQkb4B.mjs} +3 -3
  44. package/dist/{cli-BWfYyy1k.mjs.map → cli-D_BQkb4B.mjs.map} +1 -1
  45. package/dist/{compose-Bqcy0lqo.cjs → compose-BK9s_2Qe.cjs} +73 -44
  46. package/dist/compose-BK9s_2Qe.cjs.map +1 -0
  47. package/dist/{compose-BFmdLig3.mjs → compose-CIzCcsoz.mjs} +72 -43
  48. package/dist/compose-CIzCcsoz.mjs.map +1 -0
  49. package/dist/{config-_y1FGBWR.d.mts → config-B8fXmuK0.d.cts} +3 -3
  50. package/dist/{config-CdytFgSR.d.cts.map → config-B8fXmuK0.d.cts.map} +1 -1
  51. package/dist/{config-CdytFgSR.d.cts → config-CRRxZMk7.d.mts} +3 -3
  52. package/dist/{config-_y1FGBWR.d.mts.map → config-CRRxZMk7.d.mts.map} +1 -1
  53. package/dist/config.cjs +2 -2
  54. package/dist/config.d.cts +3 -3
  55. package/dist/config.d.mts +3 -3
  56. package/dist/config.mjs +2 -2
  57. package/dist/{credentialSchemas-DFxvGEwa.cjs → credentialSchemas-CM0rxWmS.cjs} +2 -2
  58. package/dist/{credentialSchemas-DFxvGEwa.cjs.map → credentialSchemas-CM0rxWmS.cjs.map} +1 -1
  59. package/dist/{credentialSchemas-DaMpt-Dx.mjs → credentialSchemas-DPOGqOrU.mjs} +2 -2
  60. package/dist/{credentialSchemas-DaMpt-Dx.mjs.map → credentialSchemas-DPOGqOrU.mjs.map} +1 -1
  61. package/dist/{databases-BPOgTn1u.mjs → databases-6GD0tI2F.mjs} +65 -3
  62. package/dist/databases-6GD0tI2F.mjs.map +1 -0
  63. package/dist/{databases-fOaoBInm.cjs → databases-CuVGf7-M.cjs} +75 -1
  64. package/dist/databases-CuVGf7-M.cjs.map +1 -0
  65. package/dist/deploy/public.cjs +8 -8
  66. package/dist/deploy/public.d.cts +3 -3
  67. package/dist/deploy/public.d.cts.map +1 -1
  68. package/dist/deploy/public.d.mts +3 -3
  69. package/dist/deploy/public.d.mts.map +1 -1
  70. package/dist/deploy/public.mjs +8 -8
  71. package/dist/{deploy-DVrNjX1X.cjs → deploy-A_fzSa59.cjs} +10 -10
  72. package/dist/deploy-A_fzSa59.cjs.map +1 -0
  73. package/dist/{deploy-D8pUA9Y0.mjs → deploy-BVf6c_h8.mjs} +10 -10
  74. package/dist/deploy-BVf6c_h8.mjs.map +1 -0
  75. package/dist/{derive-DAbo49sm.cjs → derive-BtGidITm.cjs} +7 -7
  76. package/dist/derive-BtGidITm.cjs.map +1 -0
  77. package/dist/{derive-B4vDpzgP.mjs → derive-Dew0QoGe.mjs} +7 -7
  78. package/dist/derive-Dew0QoGe.mjs.map +1 -0
  79. package/dist/{discover-DL6h-J97.cjs → discover-DEOspD9M.cjs} +12 -1
  80. package/dist/discover-DEOspD9M.cjs.map +1 -0
  81. package/dist/{discover-CzGM5P3p.mjs → discover-DOhYSKY_.mjs} +12 -1
  82. package/dist/discover-DOhYSKY_.mjs.map +1 -0
  83. package/dist/{dokploy-TtK6Zyl3.cjs → dokploy-CshlFRwr.cjs} +2 -2
  84. package/dist/{dokploy-TtK6Zyl3.cjs.map → dokploy-CshlFRwr.cjs.map} +1 -1
  85. package/dist/{dokploy-CzDGNB6A.mjs → dokploy-DOndleTd.mjs} +2 -2
  86. package/dist/{dokploy-CzDGNB6A.mjs.map → dokploy-DOndleTd.mjs.map} +1 -1
  87. package/dist/{drivers-L29WvE95.cjs → drivers-C47nm-wB.cjs} +91 -4
  88. package/dist/drivers-C47nm-wB.cjs.map +1 -0
  89. package/dist/{drivers-C-VqMtld.mjs → drivers-CDjpjakg.mjs} +60 -3
  90. package/dist/drivers-CDjpjakg.mjs.map +1 -0
  91. package/dist/{eas-D3clzkni.cjs → eas-ApfPYR4-.cjs} +3 -3
  92. package/dist/{eas-D3clzkni.cjs.map → eas-ApfPYR4-.cjs.map} +1 -1
  93. package/dist/{eas-DaobzDks.mjs → eas-Dlr1Lw56.mjs} +3 -3
  94. package/dist/{eas-DaobzDks.mjs.map → eas-Dlr1Lw56.mjs.map} +1 -1
  95. package/dist/{encryption-DV31gEY8.mjs → encryption-D0tWRvy_.mjs} +2 -2
  96. package/dist/{encryption-DV31gEY8.mjs.map → encryption-D0tWRvy_.mjs.map} +1 -1
  97. package/dist/{encryption-DBkIFiR2.cjs → encryption-SGWvnBxV.cjs} +2 -2
  98. package/dist/{encryption-DBkIFiR2.cjs.map → encryption-SGWvnBxV.cjs.map} +1 -1
  99. package/dist/{engine-CuZUGbEh.cjs → engine-CYu4wavP.cjs} +9 -7
  100. package/dist/engine-CYu4wavP.cjs.map +1 -0
  101. package/dist/{engine-CFOR9h6X.mjs → engine-DKz1NYDX.mjs} +9 -7
  102. package/dist/engine-DKz1NYDX.mjs.map +1 -0
  103. package/dist/{github-CsvtWSBW.cjs → github-CxWaWQtW.cjs} +5 -5
  104. package/dist/{github-CsvtWSBW.cjs.map → github-CxWaWQtW.cjs.map} +1 -1
  105. package/dist/{github-Nep8pI4_.mjs → github-VQaj8gLE.mjs} +5 -5
  106. package/dist/{github-Nep8pI4_.mjs.map → github-VQaj8gLE.mjs.map} +1 -1
  107. package/dist/{googlePlay-C-UfBXJU.cjs → googlePlay-4KVtZ89D.cjs} +3 -3
  108. package/dist/{googlePlay-C-UfBXJU.cjs.map → googlePlay-4KVtZ89D.cjs.map} +1 -1
  109. package/dist/{googlePlay-lF7Atm_N.mjs → googlePlay-Nqc4EAiC.mjs} +3 -3
  110. package/dist/{googlePlay-lF7Atm_N.mjs.map → googlePlay-Nqc4EAiC.mjs.map} +1 -1
  111. package/dist/{index-DrkV7N5w.d.mts → index-Cu8eIwUW.d.mts} +2 -2
  112. package/dist/{index-DrkV7N5w.d.mts.map → index-Cu8eIwUW.d.mts.map} +1 -1
  113. package/dist/{index-yaXZ9m-J.d.cts → index-Dx93n3Ur.d.cts} +2 -2
  114. package/dist/{index-yaXZ9m-J.d.cts.map → index-Dx93n3Ur.d.cts.map} +1 -1
  115. package/dist/index.cjs +105 -76
  116. package/dist/index.cjs.map +1 -1
  117. package/dist/index.mjs +104 -75
  118. package/dist/index.mjs.map +1 -1
  119. package/dist/{migrate-hlNKNWmg.cjs → migrate-BQPRclv2.cjs} +2 -2
  120. package/dist/{migrate-hlNKNWmg.cjs.map → migrate-BQPRclv2.cjs.map} +1 -1
  121. package/dist/{migrate-_sBX0pve.mjs → migrate-C7exqXTD.mjs} +2 -2
  122. package/dist/{migrate-_sBX0pve.mjs.map → migrate-C7exqXTD.mjs.map} +1 -1
  123. package/dist/{migrate-NfbPVhi9.mjs → migrate-DQPEUiFC.mjs} +7 -5
  124. package/dist/migrate-DQPEUiFC.mjs.map +1 -0
  125. package/dist/{migrate-Dp3GhFnf.cjs → migrate-DTv6LHux.cjs} +7 -5
  126. package/dist/migrate-DTv6LHux.cjs.map +1 -0
  127. package/dist/openapi.cjs +3 -3
  128. package/dist/openapi.d.cts +1 -1
  129. package/dist/openapi.d.mts +1 -1
  130. package/dist/openapi.mjs +3 -3
  131. package/dist/{publish-ZOo4xEuZ.cjs → publish-CgwqwKDs.cjs} +2 -2
  132. package/dist/{publish-ZOo4xEuZ.cjs.map → publish-CgwqwKDs.cjs.map} +1 -1
  133. package/dist/{publish-BuUVaZVy.mjs → publish-VYt4xOOc.mjs} +2 -2
  134. package/dist/{publish-BuUVaZVy.mjs.map → publish-VYt4xOOc.mjs.map} +1 -1
  135. package/dist/{ready-Ca883OvY.mjs → ready-BwtLriAF.mjs} +6 -6
  136. package/dist/{ready-Ca883OvY.mjs.map → ready-BwtLriAF.mjs.map} +1 -1
  137. package/dist/{ready-qnqp6JAY.cjs → ready-Cj4pI0dw.cjs} +6 -6
  138. package/dist/{ready-qnqp6JAY.cjs.map → ready-Cj4pI0dw.cjs.map} +1 -1
  139. package/dist/reconcile/public.cjs +1 -1
  140. package/dist/reconcile/public.d.cts +1 -1
  141. package/dist/reconcile/public.d.mts +1 -1
  142. package/dist/reconcile/public.mjs +1 -1
  143. package/dist/{resolve-C9QqOl5t.cjs → resolve-C-W3kZM7.cjs} +4 -4
  144. package/dist/{resolve-C9QqOl5t.cjs.map → resolve-C-W3kZM7.cjs.map} +1 -1
  145. package/dist/{resolve-BCU9pYDx.mjs → resolve-CCVCc43b.mjs} +4 -4
  146. package/dist/{resolve-BCU9pYDx.mjs.map → resolve-CCVCc43b.mjs.map} +1 -1
  147. package/dist/{rollback-CTWdDBgB.cjs → rollback-CdBj1Boy.cjs} +4 -4
  148. package/dist/{rollback-CTWdDBgB.cjs.map → rollback-CdBj1Boy.cjs.map} +1 -1
  149. package/dist/{rollback-CWyyTQ0B.mjs → rollback-dUShCpZu.mjs} +4 -4
  150. package/dist/{rollback-CWyyTQ0B.mjs.map → rollback-dUShCpZu.mjs.map} +1 -1
  151. package/dist/{runtime-DCkfI2E7.d.mts → runtime-C_1PteGG.d.cts} +2 -2
  152. package/dist/{runtime-DCkfI2E7.d.mts.map → runtime-C_1PteGG.d.cts.map} +1 -1
  153. package/dist/{runtime-Ie4znWIB.d.cts → runtime-jjB2e3-M.d.mts} +2 -2
  154. package/dist/{runtime-Ie4znWIB.d.cts.map → runtime-jjB2e3-M.d.mts.map} +1 -1
  155. package/dist/sandbox/credentials-worker.cjs +2 -2
  156. package/dist/sandbox/credentials-worker.mjs +2 -2
  157. package/dist/sandbox/discover-worker.cjs +1 -1
  158. package/dist/sandbox/discover-worker.mjs +1 -1
  159. package/dist/sandbox/migrate-worker.cjs +5 -4
  160. package/dist/sandbox/migrate-worker.cjs.map +1 -1
  161. package/dist/sandbox/migrate-worker.mjs +5 -4
  162. package/dist/sandbox/migrate-worker.mjs.map +1 -1
  163. package/dist/{seeds-CK7w79VC.mjs → seeds-BX9pskrU.mjs} +67 -27
  164. package/dist/seeds-BX9pskrU.mjs.map +1 -0
  165. package/dist/{seeds-CPEcmoPn.cjs → seeds-sMVADbkg.cjs} +74 -34
  166. package/dist/seeds-sMVADbkg.cjs.map +1 -0
  167. package/dist/{serverSetup-C6t6Vtt7.cjs → serverSetup-4avavig6.cjs} +25 -5
  168. package/dist/serverSetup-4avavig6.cjs.map +1 -0
  169. package/dist/{serverSetup-BAPNuNEX.mjs → serverSetup-BvHpm7QD.mjs} +25 -5
  170. package/dist/serverSetup-BvHpm7QD.mjs.map +1 -0
  171. package/dist/{sniffer-DdX_WN_-.cjs → sniffer-DWLala8l.cjs} +7 -7
  172. package/dist/{sniffer-DdX_WN_-.cjs.map → sniffer-DWLala8l.cjs.map} +1 -1
  173. package/dist/{sniffer-g9v7cqDN.mjs → sniffer-XnAnEbuI.mjs} +7 -7
  174. package/dist/{sniffer-g9v7cqDN.mjs.map → sniffer-XnAnEbuI.mjs.map} +1 -1
  175. package/dist/{snsSubscriptions-BmYeeTH8.mjs → snsSubscriptions-BxLJQH4u.mjs} +3 -3
  176. package/dist/{snsSubscriptions-BmYeeTH8.mjs.map → snsSubscriptions-BxLJQH4u.mjs.map} +1 -1
  177. package/dist/{snsSubscriptions-5Cqww8S7.cjs → snsSubscriptions-f_z4PSFb.cjs} +3 -3
  178. package/dist/{snsSubscriptions-5Cqww8S7.cjs.map → snsSubscriptions-f_z4PSFb.cjs.map} +1 -1
  179. package/dist/{sst-lEkBwzGc.cjs → sst-DmVJRu5l.cjs} +2 -2
  180. package/dist/{sst-lEkBwzGc.cjs.map → sst-DmVJRu5l.cjs.map} +1 -1
  181. package/dist/{sst-CTqZZl1_.mjs → sst-fop6uZ25.mjs} +2 -2
  182. package/dist/{sst-CTqZZl1_.mjs.map → sst-fop6uZ25.mjs.map} +1 -1
  183. package/dist/{stage-CUE5pMmw.cjs → stage-ZWOE0oLB.cjs} +5 -5
  184. package/dist/{stage-CUE5pMmw.cjs.map → stage-ZWOE0oLB.cjs.map} +1 -1
  185. package/dist/{stage-C-I2dVw1.mjs → stage-mta618Oy.mjs} +5 -5
  186. package/dist/{stage-C-I2dVw1.mjs.map → stage-mta618Oy.mjs.map} +1 -1
  187. package/dist/target/public.cjs +1 -1
  188. package/dist/target/public.d.cts +2 -2
  189. package/dist/target/public.d.mts +2 -2
  190. package/dist/target/public.mjs +1 -1
  191. package/dist/{terminal-bqY33lpN.mjs → terminal-CebFDhWQ.mjs} +2 -2
  192. package/dist/{terminal-bqY33lpN.mjs.map → terminal-CebFDhWQ.mjs.map} +1 -1
  193. package/dist/{terminal-PKhPAajN.cjs → terminal-DBwedwSS.cjs} +2 -2
  194. package/dist/{terminal-PKhPAajN.cjs.map → terminal-DBwedwSS.cjs.map} +1 -1
  195. package/dist/{types-Bmjs4jZV.d.mts → types-DLANxOpy.d.mts} +7 -1
  196. package/dist/types-DLANxOpy.d.mts.map +1 -0
  197. package/dist/{types-D0IsQxES.d.cts → types-SEHMr6Aw.d.cts} +7 -1
  198. package/dist/types-SEHMr6Aw.d.cts.map +1 -0
  199. package/dist/vitest.cjs +1 -1
  200. package/dist/vitest.mjs +1 -1
  201. package/dist/workspace/index.d.cts +2 -2
  202. package/dist/workspace/index.d.mts +2 -2
  203. package/package.json +15 -15
  204. package/dist/SubscriberGenerator-BDUp7OeY.cjs.map +0 -1
  205. package/dist/SubscriberGenerator-ocQ2yj0K.mjs.map +0 -1
  206. package/dist/add-C7ZBXIzM.mjs.map +0 -1
  207. package/dist/add-CrxvmSpq.cjs.map +0 -1
  208. package/dist/compose-BFmdLig3.mjs.map +0 -1
  209. package/dist/compose-Bqcy0lqo.cjs.map +0 -1
  210. package/dist/databases-BPOgTn1u.mjs.map +0 -1
  211. package/dist/databases-fOaoBInm.cjs.map +0 -1
  212. package/dist/deploy-D8pUA9Y0.mjs.map +0 -1
  213. package/dist/deploy-DVrNjX1X.cjs.map +0 -1
  214. package/dist/derive-B4vDpzgP.mjs.map +0 -1
  215. package/dist/derive-DAbo49sm.cjs.map +0 -1
  216. package/dist/discover-CzGM5P3p.mjs.map +0 -1
  217. package/dist/discover-DL6h-J97.cjs.map +0 -1
  218. package/dist/drivers-C-VqMtld.mjs.map +0 -1
  219. package/dist/drivers-L29WvE95.cjs.map +0 -1
  220. package/dist/engine-CFOR9h6X.mjs.map +0 -1
  221. package/dist/engine-CuZUGbEh.cjs.map +0 -1
  222. package/dist/migrate-Dp3GhFnf.cjs.map +0 -1
  223. package/dist/migrate-NfbPVhi9.mjs.map +0 -1
  224. package/dist/seeds-CK7w79VC.mjs.map +0 -1
  225. package/dist/seeds-CPEcmoPn.cjs.map +0 -1
  226. package/dist/serverSetup-BAPNuNEX.mjs.map +0 -1
  227. package/dist/serverSetup-C6t6Vtt7.cjs.map +0 -1
  228. package/dist/types-Bmjs4jZV.d.mts.map +0 -1
  229. package/dist/types-D0IsQxES.d.cts.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import { t as GkmError } from "./errors-D8Gwp5kU.mjs";
2
2
  import { N as assertDeployedStage } from "./workspace-DBHF9Gba.mjs";
3
- import { Rt as providerOf, Yt as secretsStoreFor, nn as withCustomSecret } from "./seeds-CK7w79VC.mjs";
3
+ import { Rt as providerOf, Yt as secretsStoreFor, nn as withCustomSecret } from "./seeds-BX9pskrU.mjs";
4
4
  import { loadWorkspaceSettings } from "./config.mjs";
5
5
  import { canonicalId, provideKey } from "@geekmidas/manifest";
6
6
  import { parseKeyring, retireKey, rotateKeyring } from "@geekmidas/constructs/encryption";
@@ -86,4 +86,4 @@ async function updateKeyring(construct, { stage }, context, update) {
86
86
  //#endregion
87
87
  export { encryptionRetireCommand, encryptionRotateCommand };
88
88
 
89
- //# sourceMappingURL=encryption-DV31gEY8.mjs.map
89
+ //# sourceMappingURL=encryption-D0tWRvy_.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"encryption-DV31gEY8.mjs","names":[],"sources":["../src/encryption/index.ts"],"sourcesContent":["/**\n * `gkm encryption:rotate` and `gkm encryption:retire` — the keyring of an\n * `Encryption` construct on a server stage.\n *\n * Rotating adds a key in front and keeps every older one, so what they wrote\n * still opens. Retiring removes one, and is the half that makes rotating worth\n * doing: until a key is gone, it still opens everything it ever wrote. It is\n * never automatic, because the only thing that knows nothing is left under a\n * key is the sweep that re-encrypted the column — so it is done after one,\n * deliberately, by name.\n *\n * Neither applies everywhere, and each says so rather than doing something\n * that looks right: a local stage's keyring is derived and would be replaced on\n * the next `gkm dev`, and on AWS the key is KMS's, which rotates it itself and\n * never strands a value.\n */\n\nimport {\n\tparseKeyring,\n\tretireKey,\n\trotateKeyring,\n} from '@geekmidas/constructs/encryption';\nimport { canonicalId, provideKey } from '@geekmidas/manifest';\nimport { loadWorkspaceSettings } from '../config';\nimport { GkmError } from '../errors';\nimport { withCustomSecret } from '../secrets/storage.js';\nimport { type SecretsStore, secretsStoreFor } from '../secrets/store.js';\nimport { providerOf } from '../workspace/backends.js';\nimport { assertDeployedStage } from '../workspace/stages.js';\nimport type { NormalizedWorkspace } from '../workspace/types.js';\n\nconst logger = console;\n\nexport class LocalKeyringIsDerived extends GkmError {\n\tconstructor(\n\t\treadonly construct: string,\n\t\treadonly stage: string,\n\t) {\n\t\tsuper(\n\t\t\t`'${stage}' is the local stage, where ${construct}'s keyring is derived from the project and stage — nothing stored there would be read. Rotate a deployed stage: gkm encryption:rotate ${construct} --stage <stage>.`,\n\t\t);\n\t\tthis.name = 'LocalKeyringIsDerived';\n\t}\n}\n\nexport class KmsRotatesItself extends GkmError {\n\tconstructor(readonly construct: string) {\n\t\tsuper(\n\t\t\t`${construct} is a KMS key on AWS: KMS rotates it yearly and keeps every version, so no value is ever stranded and there is no key to retire. Nothing to do here.`,\n\t\t);\n\t\tthis.name = 'KmsRotatesItself';\n\t}\n}\n\nexport class NoKeyringYet extends GkmError {\n\tconstructor(\n\t\treadonly construct: string,\n\t\treadonly stage: string,\n\t\treadonly key: string,\n\t) {\n\t\tsuper(\n\t\t\t`'${stage}' has no ${key} yet. The first deploy generates ${construct}'s keyring: gkm deploy --stage ${stage}.`,\n\t\t);\n\t\tthis.name = 'NoKeyringYet';\n\t}\n}\n\nexport interface EncryptionCommandOptions {\n\tstage: string;\n}\n\n/** Where a command reads and writes; the real ones unless a test says. */\nexport interface EncryptionCommandContext {\n\tworkspace?: NormalizedWorkspace;\n\tstore?: SecretsStore;\n}\n\nexport async function encryptionRotateCommand(\n\tconstruct: string,\n\toptions: EncryptionCommandOptions,\n\tcontext: EncryptionCommandContext = {},\n): Promise<string> {\n\treturn updateKeyring(construct, options, context, (id, url) => {\n\t\tconst next = rotateKeyring(id, url);\n\t\tconst [current, ...older] = parseKeyring(id, next).keys.map(({ id }) => id);\n\n\t\tlogger.log(`\\n✓ ${id} on '${options.stage}' now writes with '${current}'.`);\n\t\tlogger.log(\n\t\t\t` Still opening: ${older.join(', ')}. Redeploy to start writing with '${current}', reencrypt what is stored, then: gkm encryption:retire ${id} <key> --stage ${options.stage}`,\n\t\t);\n\t\treturn next;\n\t});\n}\n\nexport async function encryptionRetireCommand(\n\tconstruct: string,\n\tkeyId: string,\n\toptions: EncryptionCommandOptions,\n\tcontext: EncryptionCommandContext = {},\n): Promise<string> {\n\treturn updateKeyring(construct, options, context, (id, url) => {\n\t\tconst next = retireKey(id, url, keyId);\n\n\t\tlogger.log(\n\t\t\t`\\n✓ ${id} on '${options.stage}' no longer holds '${keyId}'. Anything still under it cannot be read after the next deploy.`,\n\t\t);\n\t\treturn next;\n\t});\n}\n\nasync function updateKeyring(\n\tconstruct: string,\n\t{ stage }: EncryptionCommandOptions,\n\tcontext: EncryptionCommandContext,\n\tupdate: (id: string, url: string) => string,\n): Promise<string> {\n\tconst workspace = context.workspace ?? (await loadWorkspaceSettings());\n\tconst id = canonicalId(construct);\n\n\tif (stage === workspace.stages.local) {\n\t\tthrow new LocalKeyringIsDerived(id, stage);\n\t}\n\tassertDeployedStage(workspace.stages, stage);\n\tif (providerOf(workspace) === 'aws') throw new KmsRotatesItself(id);\n\n\tconst store = context.store ?? (await secretsStoreFor(workspace, stage));\n\tconst key = provideKey(id, 'url');\n\tconst secrets = await store.read(stage);\n\tconst url = secrets?.custom[key];\n\tif (!secrets || !url) throw new NoKeyringYet(id, stage, key);\n\n\tconst next = update(id, url);\n\tawait store.write(stage, withCustomSecret(secrets, key, next));\n\treturn next;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AA+BA,MAAM,SAAS;AAEf,IAAa,wBAAb,cAA2C,SAAS;CAEzC;CACA;CAFV,YACC,WACA,OACC;EACD,MACC,IAAI,MAAM,8BAA8B,UAAU,wIAAwI,UAAU,kBACrM;EALS,KAAA,YAAA;EACA,KAAA,QAAA;EAKT,KAAK,OAAO;CACb;AACD;AAEA,IAAa,mBAAb,cAAsC,SAAS;CACzB;CAArB,YAAY,WAA4B;EACvC,MACC,GAAG,UAAU,qJACd;EAHoB,KAAA,YAAA;EAIpB,KAAK,OAAO;CACb;AACD;AAEA,IAAa,eAAb,cAAkC,SAAS;CAEhC;CACA;CACA;CAHV,YACC,WACA,OACA,KACC;EACD,MACC,IAAI,MAAM,WAAW,IAAI,mCAAmC,UAAU,iCAAiC,MAAM,EAC9G;EANS,KAAA,YAAA;EACA,KAAA,QAAA;EACA,KAAA,MAAA;EAKT,KAAK,OAAO;CACb;AACD;AAYA,eAAsB,wBACrB,WACA,SACA,UAAoC,CAAC,GACnB;CAClB,OAAO,cAAc,WAAW,SAAS,UAAU,IAAI,QAAQ;EAC9D,MAAM,OAAO,cAAc,IAAI,GAAG;EAClC,MAAM,CAAC,SAAS,GAAG,SAAS,aAAa,IAAI,IAAI,CAAC,CAAC,KAAK,KAAK,EAAE,SAAS,EAAE;EAE1E,OAAO,IAAI,OAAO,GAAG,OAAO,QAAQ,MAAM,qBAAqB,QAAQ,GAAG;EAC1E,OAAO,IACN,oBAAoB,MAAM,KAAK,IAAI,EAAE,oCAAoC,QAAQ,2DAA2D,GAAG,iBAAiB,QAAQ,OACzK;EACA,OAAO;CACR,CAAC;AACF;AAEA,eAAsB,wBACrB,WACA,OACA,SACA,UAAoC,CAAC,GACnB;CAClB,OAAO,cAAc,WAAW,SAAS,UAAU,IAAI,QAAQ;EAC9D,MAAM,OAAO,UAAU,IAAI,KAAK,KAAK;EAErC,OAAO,IACN,OAAO,GAAG,OAAO,QAAQ,MAAM,qBAAqB,MAAM,iEAC3D;EACA,OAAO;CACR,CAAC;AACF;AAEA,eAAe,cACd,WACA,EAAE,SACF,SACA,QACkB;CAClB,MAAM,YAAY,QAAQ,aAAc,MAAM,sBAAsB;CACpE,MAAM,KAAK,YAAY,SAAS;CAEhC,IAAI,UAAU,UAAU,OAAO,OAC9B,MAAM,IAAI,sBAAsB,IAAI,KAAK;CAE1C,oBAAoB,UAAU,QAAQ,KAAK;CAC3C,IAAI,WAAW,SAAS,MAAM,OAAO,MAAM,IAAI,iBAAiB,EAAE;CAElE,MAAM,QAAQ,QAAQ,SAAU,MAAM,gBAAgB,WAAW,KAAK;CACtE,MAAM,MAAM,WAAW,IAAI,KAAK;CAChC,MAAM,UAAU,MAAM,MAAM,KAAK,KAAK;CACtC,MAAM,MAAM,SAAS,OAAO;CAC5B,IAAI,CAAC,WAAW,CAAC,KAAK,MAAM,IAAI,aAAa,IAAI,OAAO,GAAG;CAE3D,MAAM,OAAO,OAAO,IAAI,GAAG;CAC3B,MAAM,MAAM,MAAM,OAAO,iBAAiB,SAAS,KAAK,IAAI,CAAC;CAC7D,OAAO;AACR"}
1
+ {"version":3,"file":"encryption-D0tWRvy_.mjs","names":[],"sources":["../src/encryption/index.ts"],"sourcesContent":["/**\n * `gkm encryption:rotate` and `gkm encryption:retire` — the keyring of an\n * `Encryption` construct on a server stage.\n *\n * Rotating adds a key in front and keeps every older one, so what they wrote\n * still opens. Retiring removes one, and is the half that makes rotating worth\n * doing: until a key is gone, it still opens everything it ever wrote. It is\n * never automatic, because the only thing that knows nothing is left under a\n * key is the sweep that re-encrypted the column — so it is done after one,\n * deliberately, by name.\n *\n * Neither applies everywhere, and each says so rather than doing something\n * that looks right: a local stage's keyring is derived and would be replaced on\n * the next `gkm dev`, and on AWS the key is KMS's, which rotates it itself and\n * never strands a value.\n */\n\nimport {\n\tparseKeyring,\n\tretireKey,\n\trotateKeyring,\n} from '@geekmidas/constructs/encryption';\nimport { canonicalId, provideKey } from '@geekmidas/manifest';\nimport { loadWorkspaceSettings } from '../config';\nimport { GkmError } from '../errors';\nimport { withCustomSecret } from '../secrets/storage.js';\nimport { type SecretsStore, secretsStoreFor } from '../secrets/store.js';\nimport { providerOf } from '../workspace/backends.js';\nimport { assertDeployedStage } from '../workspace/stages.js';\nimport type { NormalizedWorkspace } from '../workspace/types.js';\n\nconst logger = console;\n\nexport class LocalKeyringIsDerived extends GkmError {\n\tconstructor(\n\t\treadonly construct: string,\n\t\treadonly stage: string,\n\t) {\n\t\tsuper(\n\t\t\t`'${stage}' is the local stage, where ${construct}'s keyring is derived from the project and stage — nothing stored there would be read. Rotate a deployed stage: gkm encryption:rotate ${construct} --stage <stage>.`,\n\t\t);\n\t\tthis.name = 'LocalKeyringIsDerived';\n\t}\n}\n\nexport class KmsRotatesItself extends GkmError {\n\tconstructor(readonly construct: string) {\n\t\tsuper(\n\t\t\t`${construct} is a KMS key on AWS: KMS rotates it yearly and keeps every version, so no value is ever stranded and there is no key to retire. Nothing to do here.`,\n\t\t);\n\t\tthis.name = 'KmsRotatesItself';\n\t}\n}\n\nexport class NoKeyringYet extends GkmError {\n\tconstructor(\n\t\treadonly construct: string,\n\t\treadonly stage: string,\n\t\treadonly key: string,\n\t) {\n\t\tsuper(\n\t\t\t`'${stage}' has no ${key} yet. The first deploy generates ${construct}'s keyring: gkm deploy --stage ${stage}.`,\n\t\t);\n\t\tthis.name = 'NoKeyringYet';\n\t}\n}\n\nexport interface EncryptionCommandOptions {\n\tstage: string;\n}\n\n/** Where a command reads and writes; the real ones unless a test says. */\nexport interface EncryptionCommandContext {\n\tworkspace?: NormalizedWorkspace;\n\tstore?: SecretsStore;\n}\n\nexport async function encryptionRotateCommand(\n\tconstruct: string,\n\toptions: EncryptionCommandOptions,\n\tcontext: EncryptionCommandContext = {},\n): Promise<string> {\n\treturn updateKeyring(construct, options, context, (id, url) => {\n\t\tconst next = rotateKeyring(id, url);\n\t\tconst [current, ...older] = parseKeyring(id, next).keys.map(({ id }) => id);\n\n\t\tlogger.log(`\\n✓ ${id} on '${options.stage}' now writes with '${current}'.`);\n\t\tlogger.log(\n\t\t\t` Still opening: ${older.join(', ')}. Redeploy to start writing with '${current}', reencrypt what is stored, then: gkm encryption:retire ${id} <key> --stage ${options.stage}`,\n\t\t);\n\t\treturn next;\n\t});\n}\n\nexport async function encryptionRetireCommand(\n\tconstruct: string,\n\tkeyId: string,\n\toptions: EncryptionCommandOptions,\n\tcontext: EncryptionCommandContext = {},\n): Promise<string> {\n\treturn updateKeyring(construct, options, context, (id, url) => {\n\t\tconst next = retireKey(id, url, keyId);\n\n\t\tlogger.log(\n\t\t\t`\\n✓ ${id} on '${options.stage}' no longer holds '${keyId}'. Anything still under it cannot be read after the next deploy.`,\n\t\t);\n\t\treturn next;\n\t});\n}\n\nasync function updateKeyring(\n\tconstruct: string,\n\t{ stage }: EncryptionCommandOptions,\n\tcontext: EncryptionCommandContext,\n\tupdate: (id: string, url: string) => string,\n): Promise<string> {\n\tconst workspace = context.workspace ?? (await loadWorkspaceSettings());\n\tconst id = canonicalId(construct);\n\n\tif (stage === workspace.stages.local) {\n\t\tthrow new LocalKeyringIsDerived(id, stage);\n\t}\n\tassertDeployedStage(workspace.stages, stage);\n\tif (providerOf(workspace) === 'aws') throw new KmsRotatesItself(id);\n\n\tconst store = context.store ?? (await secretsStoreFor(workspace, stage));\n\tconst key = provideKey(id, 'url');\n\tconst secrets = await store.read(stage);\n\tconst url = secrets?.custom[key];\n\tif (!secrets || !url) throw new NoKeyringYet(id, stage, key);\n\n\tconst next = update(id, url);\n\tawait store.write(stage, withCustomSecret(secrets, key, next));\n\treturn next;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AA+BA,MAAM,SAAS;AAEf,IAAa,wBAAb,cAA2C,SAAS;CAEzC;CACA;CAFV,YACC,WACA,OACC;EACD,MACC,IAAI,MAAM,8BAA8B,UAAU,wIAAwI,UAAU,kBACrM;EALS,KAAA,YAAA;EACA,KAAA,QAAA;EAKT,KAAK,OAAO;CACb;AACD;AAEA,IAAa,mBAAb,cAAsC,SAAS;CACzB;CAArB,YAAY,WAA4B;EACvC,MACC,GAAG,UAAU,qJACd;EAHoB,KAAA,YAAA;EAIpB,KAAK,OAAO;CACb;AACD;AAEA,IAAa,eAAb,cAAkC,SAAS;CAEhC;CACA;CACA;CAHV,YACC,WACA,OACA,KACC;EACD,MACC,IAAI,MAAM,WAAW,IAAI,mCAAmC,UAAU,iCAAiC,MAAM,EAC9G;EANS,KAAA,YAAA;EACA,KAAA,QAAA;EACA,KAAA,MAAA;EAKT,KAAK,OAAO;CACb;AACD;AAYA,eAAsB,wBACrB,WACA,SACA,UAAoC,CAAC,GACnB;CAClB,OAAO,cAAc,WAAW,SAAS,UAAU,IAAI,QAAQ;EAC9D,MAAM,OAAO,cAAc,IAAI,GAAG;EAClC,MAAM,CAAC,SAAS,GAAG,SAAS,aAAa,IAAI,IAAI,CAAC,CAAC,KAAK,KAAK,EAAE,SAAS,EAAE;EAE1E,OAAO,IAAI,OAAO,GAAG,OAAO,QAAQ,MAAM,qBAAqB,QAAQ,GAAG;EAC1E,OAAO,IACN,oBAAoB,MAAM,KAAK,IAAI,EAAE,oCAAoC,QAAQ,2DAA2D,GAAG,iBAAiB,QAAQ,OACzK;EACA,OAAO;CACR,CAAC;AACF;AAEA,eAAsB,wBACrB,WACA,OACA,SACA,UAAoC,CAAC,GACnB;CAClB,OAAO,cAAc,WAAW,SAAS,UAAU,IAAI,QAAQ;EAC9D,MAAM,OAAO,UAAU,IAAI,KAAK,KAAK;EAErC,OAAO,IACN,OAAO,GAAG,OAAO,QAAQ,MAAM,qBAAqB,MAAM,iEAC3D;EACA,OAAO;CACR,CAAC;AACF;AAEA,eAAe,cACd,WACA,EAAE,SACF,SACA,QACkB;CAClB,MAAM,YAAY,QAAQ,aAAc,MAAM,sBAAsB;CACpE,MAAM,KAAK,YAAY,SAAS;CAEhC,IAAI,UAAU,UAAU,OAAO,OAC9B,MAAM,IAAI,sBAAsB,IAAI,KAAK;CAE1C,oBAAoB,UAAU,QAAQ,KAAK;CAC3C,IAAI,WAAW,SAAS,MAAM,OAAO,MAAM,IAAI,iBAAiB,EAAE;CAElE,MAAM,QAAQ,QAAQ,SAAU,MAAM,gBAAgB,WAAW,KAAK;CACtE,MAAM,MAAM,WAAW,IAAI,KAAK;CAChC,MAAM,UAAU,MAAM,MAAM,KAAK,KAAK;CACtC,MAAM,MAAM,SAAS,OAAO;CAC5B,IAAI,CAAC,WAAW,CAAC,KAAK,MAAM,IAAI,aAAa,IAAI,OAAO,GAAG;CAE3D,MAAM,OAAO,OAAO,IAAI,GAAG;CAC3B,MAAM,MAAM,MAAM,OAAO,iBAAiB,SAAS,KAAK,IAAI,CAAC;CAC7D,OAAO;AACR"}
@@ -1,6 +1,6 @@
1
1
  const require_errors = require("./errors-DMC4Umsb.cjs");
2
2
  const require_workspace = require("./workspace-Du4Afb03.cjs");
3
- const require_seeds = require("./seeds-CPEcmoPn.cjs");
3
+ const require_seeds = require("./seeds-sMVADbkg.cjs");
4
4
  const require_config = require("./config.cjs");
5
5
  let _geekmidas_manifest = require("@geekmidas/manifest");
6
6
  let _geekmidas_constructs_encryption = require("@geekmidas/constructs/encryption");
@@ -87,4 +87,4 @@ async function updateKeyring(construct, { stage }, context, update) {
87
87
  exports.encryptionRetireCommand = encryptionRetireCommand;
88
88
  exports.encryptionRotateCommand = encryptionRotateCommand;
89
89
 
90
- //# sourceMappingURL=encryption-DBkIFiR2.cjs.map
90
+ //# sourceMappingURL=encryption-SGWvnBxV.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"encryption-DBkIFiR2.cjs","names":["GkmError","rotateKeyring","parseKeyring","retireKey","loadWorkspaceSettings","canonicalId","providerOf","secretsStoreFor","provideKey","withCustomSecret"],"sources":["../src/encryption/index.ts"],"sourcesContent":["/**\n * `gkm encryption:rotate` and `gkm encryption:retire` — the keyring of an\n * `Encryption` construct on a server stage.\n *\n * Rotating adds a key in front and keeps every older one, so what they wrote\n * still opens. Retiring removes one, and is the half that makes rotating worth\n * doing: until a key is gone, it still opens everything it ever wrote. It is\n * never automatic, because the only thing that knows nothing is left under a\n * key is the sweep that re-encrypted the column — so it is done after one,\n * deliberately, by name.\n *\n * Neither applies everywhere, and each says so rather than doing something\n * that looks right: a local stage's keyring is derived and would be replaced on\n * the next `gkm dev`, and on AWS the key is KMS's, which rotates it itself and\n * never strands a value.\n */\n\nimport {\n\tparseKeyring,\n\tretireKey,\n\trotateKeyring,\n} from '@geekmidas/constructs/encryption';\nimport { canonicalId, provideKey } from '@geekmidas/manifest';\nimport { loadWorkspaceSettings } from '../config';\nimport { GkmError } from '../errors';\nimport { withCustomSecret } from '../secrets/storage.js';\nimport { type SecretsStore, secretsStoreFor } from '../secrets/store.js';\nimport { providerOf } from '../workspace/backends.js';\nimport { assertDeployedStage } from '../workspace/stages.js';\nimport type { NormalizedWorkspace } from '../workspace/types.js';\n\nconst logger = console;\n\nexport class LocalKeyringIsDerived extends GkmError {\n\tconstructor(\n\t\treadonly construct: string,\n\t\treadonly stage: string,\n\t) {\n\t\tsuper(\n\t\t\t`'${stage}' is the local stage, where ${construct}'s keyring is derived from the project and stage — nothing stored there would be read. Rotate a deployed stage: gkm encryption:rotate ${construct} --stage <stage>.`,\n\t\t);\n\t\tthis.name = 'LocalKeyringIsDerived';\n\t}\n}\n\nexport class KmsRotatesItself extends GkmError {\n\tconstructor(readonly construct: string) {\n\t\tsuper(\n\t\t\t`${construct} is a KMS key on AWS: KMS rotates it yearly and keeps every version, so no value is ever stranded and there is no key to retire. Nothing to do here.`,\n\t\t);\n\t\tthis.name = 'KmsRotatesItself';\n\t}\n}\n\nexport class NoKeyringYet extends GkmError {\n\tconstructor(\n\t\treadonly construct: string,\n\t\treadonly stage: string,\n\t\treadonly key: string,\n\t) {\n\t\tsuper(\n\t\t\t`'${stage}' has no ${key} yet. The first deploy generates ${construct}'s keyring: gkm deploy --stage ${stage}.`,\n\t\t);\n\t\tthis.name = 'NoKeyringYet';\n\t}\n}\n\nexport interface EncryptionCommandOptions {\n\tstage: string;\n}\n\n/** Where a command reads and writes; the real ones unless a test says. */\nexport interface EncryptionCommandContext {\n\tworkspace?: NormalizedWorkspace;\n\tstore?: SecretsStore;\n}\n\nexport async function encryptionRotateCommand(\n\tconstruct: string,\n\toptions: EncryptionCommandOptions,\n\tcontext: EncryptionCommandContext = {},\n): Promise<string> {\n\treturn updateKeyring(construct, options, context, (id, url) => {\n\t\tconst next = rotateKeyring(id, url);\n\t\tconst [current, ...older] = parseKeyring(id, next).keys.map(({ id }) => id);\n\n\t\tlogger.log(`\\n✓ ${id} on '${options.stage}' now writes with '${current}'.`);\n\t\tlogger.log(\n\t\t\t` Still opening: ${older.join(', ')}. Redeploy to start writing with '${current}', reencrypt what is stored, then: gkm encryption:retire ${id} <key> --stage ${options.stage}`,\n\t\t);\n\t\treturn next;\n\t});\n}\n\nexport async function encryptionRetireCommand(\n\tconstruct: string,\n\tkeyId: string,\n\toptions: EncryptionCommandOptions,\n\tcontext: EncryptionCommandContext = {},\n): Promise<string> {\n\treturn updateKeyring(construct, options, context, (id, url) => {\n\t\tconst next = retireKey(id, url, keyId);\n\n\t\tlogger.log(\n\t\t\t`\\n✓ ${id} on '${options.stage}' no longer holds '${keyId}'. Anything still under it cannot be read after the next deploy.`,\n\t\t);\n\t\treturn next;\n\t});\n}\n\nasync function updateKeyring(\n\tconstruct: string,\n\t{ stage }: EncryptionCommandOptions,\n\tcontext: EncryptionCommandContext,\n\tupdate: (id: string, url: string) => string,\n): Promise<string> {\n\tconst workspace = context.workspace ?? (await loadWorkspaceSettings());\n\tconst id = canonicalId(construct);\n\n\tif (stage === workspace.stages.local) {\n\t\tthrow new LocalKeyringIsDerived(id, stage);\n\t}\n\tassertDeployedStage(workspace.stages, stage);\n\tif (providerOf(workspace) === 'aws') throw new KmsRotatesItself(id);\n\n\tconst store = context.store ?? (await secretsStoreFor(workspace, stage));\n\tconst key = provideKey(id, 'url');\n\tconst secrets = await store.read(stage);\n\tconst url = secrets?.custom[key];\n\tif (!secrets || !url) throw new NoKeyringYet(id, stage, key);\n\n\tconst next = update(id, url);\n\tawait store.write(stage, withCustomSecret(secrets, key, next));\n\treturn next;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AA+BA,MAAM,SAAS;AAEf,IAAa,wBAAb,cAA2CA,eAAAA,SAAS;CAEzC;CACA;CAFV,YACC,WACA,OACC;EACD,MACC,IAAI,MAAM,8BAA8B,UAAU,wIAAwI,UAAU,kBACrM;EALS,KAAA,YAAA;EACA,KAAA,QAAA;EAKT,KAAK,OAAO;CACb;AACD;AAEA,IAAa,mBAAb,cAAsCA,eAAAA,SAAS;CACzB;CAArB,YAAY,WAA4B;EACvC,MACC,GAAG,UAAU,qJACd;EAHoB,KAAA,YAAA;EAIpB,KAAK,OAAO;CACb;AACD;AAEA,IAAa,eAAb,cAAkCA,eAAAA,SAAS;CAEhC;CACA;CACA;CAHV,YACC,WACA,OACA,KACC;EACD,MACC,IAAI,MAAM,WAAW,IAAI,mCAAmC,UAAU,iCAAiC,MAAM,EAC9G;EANS,KAAA,YAAA;EACA,KAAA,QAAA;EACA,KAAA,MAAA;EAKT,KAAK,OAAO;CACb;AACD;AAYA,eAAsB,wBACrB,WACA,SACA,UAAoC,CAAC,GACnB;CAClB,OAAO,cAAc,WAAW,SAAS,UAAU,IAAI,QAAQ;EAC9D,MAAM,QAAA,GAAOC,iCAAAA,cAAAA,CAAc,IAAI,GAAG;EAClC,MAAM,CAAC,SAAS,GAAG,UAAA,GAASC,iCAAAA,aAAAA,CAAa,IAAI,IAAI,CAAC,CAAC,KAAK,KAAK,EAAE,SAAS,EAAE;EAE1E,OAAO,IAAI,OAAO,GAAG,OAAO,QAAQ,MAAM,qBAAqB,QAAQ,GAAG;EAC1E,OAAO,IACN,oBAAoB,MAAM,KAAK,IAAI,EAAE,oCAAoC,QAAQ,2DAA2D,GAAG,iBAAiB,QAAQ,OACzK;EACA,OAAO;CACR,CAAC;AACF;AAEA,eAAsB,wBACrB,WACA,OACA,SACA,UAAoC,CAAC,GACnB;CAClB,OAAO,cAAc,WAAW,SAAS,UAAU,IAAI,QAAQ;EAC9D,MAAM,QAAA,GAAOC,iCAAAA,UAAAA,CAAU,IAAI,KAAK,KAAK;EAErC,OAAO,IACN,OAAO,GAAG,OAAO,QAAQ,MAAM,qBAAqB,MAAM,iEAC3D;EACA,OAAO;CACR,CAAC;AACF;AAEA,eAAe,cACd,WACA,EAAE,SACF,SACA,QACkB;CAClB,MAAM,YAAY,QAAQ,aAAc,MAAMC,eAAAA,sBAAsB;CACpE,MAAM,MAAA,GAAKC,oBAAAA,YAAAA,CAAY,SAAS;CAEhC,IAAI,UAAU,UAAU,OAAO,OAC9B,MAAM,IAAI,sBAAsB,IAAI,KAAK;CAE1C,kBAAA,oBAAoB,UAAU,QAAQ,KAAK;CAC3C,IAAIC,cAAAA,WAAW,SAAS,MAAM,OAAO,MAAM,IAAI,iBAAiB,EAAE;CAElE,MAAM,QAAQ,QAAQ,SAAU,MAAMC,cAAAA,gBAAgB,WAAW,KAAK;CACtE,MAAM,OAAA,GAAMC,oBAAAA,WAAAA,CAAW,IAAI,KAAK;CAChC,MAAM,UAAU,MAAM,MAAM,KAAK,KAAK;CACtC,MAAM,MAAM,SAAS,OAAO;CAC5B,IAAI,CAAC,WAAW,CAAC,KAAK,MAAM,IAAI,aAAa,IAAI,OAAO,GAAG;CAE3D,MAAM,OAAO,OAAO,IAAI,GAAG;CAC3B,MAAM,MAAM,MAAM,OAAOC,cAAAA,iBAAiB,SAAS,KAAK,IAAI,CAAC;CAC7D,OAAO;AACR"}
1
+ {"version":3,"file":"encryption-SGWvnBxV.cjs","names":["GkmError","rotateKeyring","parseKeyring","retireKey","loadWorkspaceSettings","canonicalId","providerOf","secretsStoreFor","provideKey","withCustomSecret"],"sources":["../src/encryption/index.ts"],"sourcesContent":["/**\n * `gkm encryption:rotate` and `gkm encryption:retire` — the keyring of an\n * `Encryption` construct on a server stage.\n *\n * Rotating adds a key in front and keeps every older one, so what they wrote\n * still opens. Retiring removes one, and is the half that makes rotating worth\n * doing: until a key is gone, it still opens everything it ever wrote. It is\n * never automatic, because the only thing that knows nothing is left under a\n * key is the sweep that re-encrypted the column — so it is done after one,\n * deliberately, by name.\n *\n * Neither applies everywhere, and each says so rather than doing something\n * that looks right: a local stage's keyring is derived and would be replaced on\n * the next `gkm dev`, and on AWS the key is KMS's, which rotates it itself and\n * never strands a value.\n */\n\nimport {\n\tparseKeyring,\n\tretireKey,\n\trotateKeyring,\n} from '@geekmidas/constructs/encryption';\nimport { canonicalId, provideKey } from '@geekmidas/manifest';\nimport { loadWorkspaceSettings } from '../config';\nimport { GkmError } from '../errors';\nimport { withCustomSecret } from '../secrets/storage.js';\nimport { type SecretsStore, secretsStoreFor } from '../secrets/store.js';\nimport { providerOf } from '../workspace/backends.js';\nimport { assertDeployedStage } from '../workspace/stages.js';\nimport type { NormalizedWorkspace } from '../workspace/types.js';\n\nconst logger = console;\n\nexport class LocalKeyringIsDerived extends GkmError {\n\tconstructor(\n\t\treadonly construct: string,\n\t\treadonly stage: string,\n\t) {\n\t\tsuper(\n\t\t\t`'${stage}' is the local stage, where ${construct}'s keyring is derived from the project and stage — nothing stored there would be read. Rotate a deployed stage: gkm encryption:rotate ${construct} --stage <stage>.`,\n\t\t);\n\t\tthis.name = 'LocalKeyringIsDerived';\n\t}\n}\n\nexport class KmsRotatesItself extends GkmError {\n\tconstructor(readonly construct: string) {\n\t\tsuper(\n\t\t\t`${construct} is a KMS key on AWS: KMS rotates it yearly and keeps every version, so no value is ever stranded and there is no key to retire. Nothing to do here.`,\n\t\t);\n\t\tthis.name = 'KmsRotatesItself';\n\t}\n}\n\nexport class NoKeyringYet extends GkmError {\n\tconstructor(\n\t\treadonly construct: string,\n\t\treadonly stage: string,\n\t\treadonly key: string,\n\t) {\n\t\tsuper(\n\t\t\t`'${stage}' has no ${key} yet. The first deploy generates ${construct}'s keyring: gkm deploy --stage ${stage}.`,\n\t\t);\n\t\tthis.name = 'NoKeyringYet';\n\t}\n}\n\nexport interface EncryptionCommandOptions {\n\tstage: string;\n}\n\n/** Where a command reads and writes; the real ones unless a test says. */\nexport interface EncryptionCommandContext {\n\tworkspace?: NormalizedWorkspace;\n\tstore?: SecretsStore;\n}\n\nexport async function encryptionRotateCommand(\n\tconstruct: string,\n\toptions: EncryptionCommandOptions,\n\tcontext: EncryptionCommandContext = {},\n): Promise<string> {\n\treturn updateKeyring(construct, options, context, (id, url) => {\n\t\tconst next = rotateKeyring(id, url);\n\t\tconst [current, ...older] = parseKeyring(id, next).keys.map(({ id }) => id);\n\n\t\tlogger.log(`\\n✓ ${id} on '${options.stage}' now writes with '${current}'.`);\n\t\tlogger.log(\n\t\t\t` Still opening: ${older.join(', ')}. Redeploy to start writing with '${current}', reencrypt what is stored, then: gkm encryption:retire ${id} <key> --stage ${options.stage}`,\n\t\t);\n\t\treturn next;\n\t});\n}\n\nexport async function encryptionRetireCommand(\n\tconstruct: string,\n\tkeyId: string,\n\toptions: EncryptionCommandOptions,\n\tcontext: EncryptionCommandContext = {},\n): Promise<string> {\n\treturn updateKeyring(construct, options, context, (id, url) => {\n\t\tconst next = retireKey(id, url, keyId);\n\n\t\tlogger.log(\n\t\t\t`\\n✓ ${id} on '${options.stage}' no longer holds '${keyId}'. Anything still under it cannot be read after the next deploy.`,\n\t\t);\n\t\treturn next;\n\t});\n}\n\nasync function updateKeyring(\n\tconstruct: string,\n\t{ stage }: EncryptionCommandOptions,\n\tcontext: EncryptionCommandContext,\n\tupdate: (id: string, url: string) => string,\n): Promise<string> {\n\tconst workspace = context.workspace ?? (await loadWorkspaceSettings());\n\tconst id = canonicalId(construct);\n\n\tif (stage === workspace.stages.local) {\n\t\tthrow new LocalKeyringIsDerived(id, stage);\n\t}\n\tassertDeployedStage(workspace.stages, stage);\n\tif (providerOf(workspace) === 'aws') throw new KmsRotatesItself(id);\n\n\tconst store = context.store ?? (await secretsStoreFor(workspace, stage));\n\tconst key = provideKey(id, 'url');\n\tconst secrets = await store.read(stage);\n\tconst url = secrets?.custom[key];\n\tif (!secrets || !url) throw new NoKeyringYet(id, stage, key);\n\n\tconst next = update(id, url);\n\tawait store.write(stage, withCustomSecret(secrets, key, next));\n\treturn next;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AA+BA,MAAM,SAAS;AAEf,IAAa,wBAAb,cAA2CA,eAAAA,SAAS;CAEzC;CACA;CAFV,YACC,WACA,OACC;EACD,MACC,IAAI,MAAM,8BAA8B,UAAU,wIAAwI,UAAU,kBACrM;EALS,KAAA,YAAA;EACA,KAAA,QAAA;EAKT,KAAK,OAAO;CACb;AACD;AAEA,IAAa,mBAAb,cAAsCA,eAAAA,SAAS;CACzB;CAArB,YAAY,WAA4B;EACvC,MACC,GAAG,UAAU,qJACd;EAHoB,KAAA,YAAA;EAIpB,KAAK,OAAO;CACb;AACD;AAEA,IAAa,eAAb,cAAkCA,eAAAA,SAAS;CAEhC;CACA;CACA;CAHV,YACC,WACA,OACA,KACC;EACD,MACC,IAAI,MAAM,WAAW,IAAI,mCAAmC,UAAU,iCAAiC,MAAM,EAC9G;EANS,KAAA,YAAA;EACA,KAAA,QAAA;EACA,KAAA,MAAA;EAKT,KAAK,OAAO;CACb;AACD;AAYA,eAAsB,wBACrB,WACA,SACA,UAAoC,CAAC,GACnB;CAClB,OAAO,cAAc,WAAW,SAAS,UAAU,IAAI,QAAQ;EAC9D,MAAM,QAAA,GAAOC,iCAAAA,cAAAA,CAAc,IAAI,GAAG;EAClC,MAAM,CAAC,SAAS,GAAG,UAAA,GAASC,iCAAAA,aAAAA,CAAa,IAAI,IAAI,CAAC,CAAC,KAAK,KAAK,EAAE,SAAS,EAAE;EAE1E,OAAO,IAAI,OAAO,GAAG,OAAO,QAAQ,MAAM,qBAAqB,QAAQ,GAAG;EAC1E,OAAO,IACN,oBAAoB,MAAM,KAAK,IAAI,EAAE,oCAAoC,QAAQ,2DAA2D,GAAG,iBAAiB,QAAQ,OACzK;EACA,OAAO;CACR,CAAC;AACF;AAEA,eAAsB,wBACrB,WACA,OACA,SACA,UAAoC,CAAC,GACnB;CAClB,OAAO,cAAc,WAAW,SAAS,UAAU,IAAI,QAAQ;EAC9D,MAAM,QAAA,GAAOC,iCAAAA,UAAAA,CAAU,IAAI,KAAK,KAAK;EAErC,OAAO,IACN,OAAO,GAAG,OAAO,QAAQ,MAAM,qBAAqB,MAAM,iEAC3D;EACA,OAAO;CACR,CAAC;AACF;AAEA,eAAe,cACd,WACA,EAAE,SACF,SACA,QACkB;CAClB,MAAM,YAAY,QAAQ,aAAc,MAAMC,eAAAA,sBAAsB;CACpE,MAAM,MAAA,GAAKC,oBAAAA,YAAAA,CAAY,SAAS;CAEhC,IAAI,UAAU,UAAU,OAAO,OAC9B,MAAM,IAAI,sBAAsB,IAAI,KAAK;CAE1C,kBAAA,oBAAoB,UAAU,QAAQ,KAAK;CAC3C,IAAIC,cAAAA,WAAW,SAAS,MAAM,OAAO,MAAM,IAAI,iBAAiB,EAAE;CAElE,MAAM,QAAQ,QAAQ,SAAU,MAAMC,cAAAA,gBAAgB,WAAW,KAAK;CACtE,MAAM,OAAA,GAAMC,oBAAAA,WAAAA,CAAW,IAAI,KAAK;CAChC,MAAM,UAAU,MAAM,MAAM,KAAK,KAAK;CACtC,MAAM,MAAM,SAAS,OAAO;CAC5B,IAAI,CAAC,WAAW,CAAC,KAAK,MAAM,IAAI,aAAa,IAAI,OAAO,GAAG;CAE3D,MAAM,OAAO,OAAO,IAAI,GAAG;CAC3B,MAAM,MAAM,MAAM,OAAOC,cAAAA,iBAAiB,SAAS,KAAK,IAAI,CAAC;CAC7D,OAAO;AACR"}
@@ -2,14 +2,14 @@ const require_errors = require("./errors-DMC4Umsb.cjs");
2
2
  const require_credentials = require("./credentials-D7XJypNd.cjs");
3
3
  const require_workspace = require("./workspace-Du4Afb03.cjs");
4
4
  const require_schemas = require("./schemas-BQ_v0lEX.cjs");
5
- const require_seeds = require("./seeds-CPEcmoPn.cjs");
6
- const require_derive = require("./derive-DAbo49sm.cjs");
5
+ const require_seeds = require("./seeds-sMVADbkg.cjs");
6
+ const require_derive = require("./derive-BtGidITm.cjs");
7
7
  const require_identity = require("./identity-CbLfgQNT.cjs");
8
- const require_discover = require("./discover-DL6h-J97.cjs");
8
+ const require_discover = require("./discover-DEOspD9M.cjs");
9
9
  const require_sandbox = require("./sandbox-CHv3OYXg.cjs");
10
10
  const require_local = require("./local-OPC9BCZt.cjs");
11
- const require_sniffer = require("./sniffer-DdX_WN_-.cjs");
12
- const require_databases = require("./databases-fOaoBInm.cjs");
11
+ const require_sniffer = require("./sniffer-DWLala8l.cjs");
12
+ const require_databases = require("./databases-CuVGf7-M.cjs");
13
13
  let node_path = require("node:path");
14
14
  let node_fs_promises = require("node:fs/promises");
15
15
  let node_os = require("node:os");
@@ -1611,7 +1611,8 @@ async function runMigrations(options) {
1611
1611
  root: options.root,
1612
1612
  stage: options.stage,
1613
1613
  manifest: options.manifest,
1614
- patterns: options.patterns
1614
+ patterns: options.patterns,
1615
+ backends: options.backends
1615
1616
  })],
1616
1617
  cwd: options.root,
1617
1618
  timeoutMs: options.timeoutMs ?? 9e5,
@@ -2729,6 +2730,7 @@ async function migrate(run) {
2729
2730
  stage,
2730
2731
  manifest,
2731
2732
  patterns: require_seeds.constructGlobs(workspace),
2733
+ backends: require_seeds.backendsOf(workspace),
2732
2734
  urls,
2733
2735
  signal: ctx.signal
2734
2736
  });
@@ -3323,4 +3325,4 @@ Object.defineProperty(exports, "verifySettings", {
3323
3325
  }
3324
3326
  });
3325
3327
 
3326
- //# sourceMappingURL=engine-CuZUGbEh.cjs.map
3328
+ //# sourceMappingURL=engine-CYu4wavP.cjs.map