alchemy 2.0.0-beta.84 → 2.0.0-beta.85
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.
- package/THIRD_PARTY_LICENSES.md +2 -2
- package/bin/cli.js +14 -6
- package/bin/register-oxc.js +16 -12
- package/lib/AdoptPolicy.d.ts +73 -0
- package/lib/AdoptPolicy.d.ts.map +1 -1
- package/lib/AdoptPolicy.js +54 -0
- package/lib/AdoptPolicy.js.map +1 -1
- package/lib/Alchemist/AuthRegistry.d.ts +31 -0
- package/lib/Alchemist/AuthRegistry.d.ts.map +1 -0
- package/lib/Alchemist/AuthRegistry.js +95 -0
- package/lib/Alchemist/AuthRegistry.js.map +1 -0
- package/lib/Alchemist/Drift.d.ts +70 -0
- package/lib/Alchemist/Drift.d.ts.map +1 -0
- package/lib/Alchemist/Drift.js +54 -0
- package/lib/Alchemist/Drift.js.map +1 -0
- package/lib/Alchemist/Entrypoint.d.ts +27 -3
- package/lib/Alchemist/Entrypoint.d.ts.map +1 -1
- package/lib/Alchemist/Entrypoint.js +34 -3
- package/lib/Alchemist/Entrypoint.js.map +1 -1
- package/lib/Alchemist/Errors.d.ts +1 -1
- package/lib/Alchemist/Errors.d.ts.map +1 -1
- package/lib/Alchemist/Errors.js +1 -1
- package/lib/Alchemist/Errors.js.map +1 -1
- package/lib/Alchemist/Logs.d.ts +46 -0
- package/lib/Alchemist/Logs.d.ts.map +1 -0
- package/lib/Alchemist/{routes/logs.js → Logs.js} +21 -26
- package/lib/Alchemist/Logs.js.map +1 -0
- package/lib/Alchemist/Nuke.d.ts +69 -0
- package/lib/Alchemist/Nuke.d.ts.map +1 -0
- package/lib/Alchemist/Nuke.js +35 -0
- package/lib/Alchemist/Nuke.js.map +1 -0
- package/lib/Alchemist/Operations.d.ts +168 -0
- package/lib/Alchemist/Operations.d.ts.map +1 -0
- package/lib/Alchemist/Operations.js +165 -0
- package/lib/Alchemist/Operations.js.map +1 -0
- package/lib/Alchemist/Profile.d.ts +132 -0
- package/lib/Alchemist/Profile.d.ts.map +1 -0
- package/lib/Alchemist/{routes/profile.js → Profile.js} +20 -21
- package/lib/Alchemist/Profile.js.map +1 -0
- package/lib/Alchemist/{routes/provider.d.ts → Provider.d.ts} +4 -4
- package/lib/Alchemist/Provider.d.ts.map +1 -0
- package/lib/Alchemist/{routes/provider.js → Provider.js} +7 -6
- package/lib/Alchemist/Provider.js.map +1 -0
- package/lib/Alchemist/Runtime.d.ts +10 -6
- package/lib/Alchemist/Runtime.d.ts.map +1 -1
- package/lib/Alchemist/Runtime.js +38 -2
- package/lib/Alchemist/Runtime.js.map +1 -1
- package/lib/Alchemist/{routes/state.d.ts → State.d.ts} +36 -16
- package/lib/Alchemist/State.d.ts.map +1 -0
- package/lib/Alchemist/{routes/state.js → State.js} +50 -15
- package/lib/Alchemist/State.js.map +1 -0
- package/lib/Alchemist/index.d.ts +11 -10
- package/lib/Alchemist/index.d.ts.map +1 -1
- package/lib/Alchemist/index.js +10 -9
- package/lib/Alchemist/index.js.map +1 -1
- package/lib/Apply.d.ts +2 -8
- package/lib/Apply.d.ts.map +1 -1
- package/lib/Apply.js +364 -184
- package/lib/Apply.js.map +1 -1
- package/lib/Auth/AuthProvider.d.ts +24 -11
- package/lib/Auth/AuthProvider.d.ts.map +1 -1
- package/lib/Auth/AuthProvider.js +28 -12
- package/lib/Auth/AuthProvider.js.map +1 -1
- package/lib/Auth/BrowserOAuth.d.ts +6 -8
- package/lib/Auth/BrowserOAuth.d.ts.map +1 -1
- package/lib/Auth/BrowserOAuth.js +25 -41
- package/lib/Auth/BrowserOAuth.js.map +1 -1
- package/lib/Auth/Credentials.d.ts.map +1 -1
- package/lib/Auth/Credentials.js +2 -2
- package/lib/Auth/Credentials.js.map +1 -1
- package/lib/Auth/Demand.d.ts +4 -4
- package/lib/Auth/Demand.d.ts.map +1 -1
- package/lib/Auth/Demand.js +16 -10
- package/lib/Auth/Demand.js.map +1 -1
- package/lib/Auth/Env.d.ts +2 -1
- package/lib/Auth/Env.d.ts.map +1 -1
- package/lib/Auth/Env.js +4 -2
- package/lib/Auth/Env.js.map +1 -1
- package/lib/Auth/Inspect.d.ts +2 -2
- package/lib/Auth/Inspect.d.ts.map +1 -1
- package/lib/Auth/Inspect.js +3 -1
- package/lib/Auth/Inspect.js.map +1 -1
- package/lib/Auth/Lock.d.ts.map +1 -1
- package/lib/Auth/Lock.js +4 -8
- package/lib/Auth/Lock.js.map +1 -1
- package/lib/Auth/OAuthFlow.d.ts +3 -12
- package/lib/Auth/OAuthFlow.d.ts.map +1 -1
- package/lib/Auth/OAuthFlow.js +7 -17
- package/lib/Auth/OAuthFlow.js.map +1 -1
- package/lib/Auth/Paths.d.ts +2 -1
- package/lib/Auth/Paths.d.ts.map +1 -1
- package/lib/Auth/Paths.js +3 -2
- package/lib/Auth/Paths.js.map +1 -1
- package/lib/Auth/Profile.d.ts +10 -0
- package/lib/Auth/Profile.d.ts.map +1 -1
- package/lib/Auth/Profile.js +19 -2
- package/lib/Auth/Profile.js.map +1 -1
- package/lib/Auth/Registry.d.ts +20 -0
- package/lib/Auth/Registry.d.ts.map +1 -0
- package/lib/Auth/Registry.js +17 -0
- package/lib/Auth/Registry.js.map +1 -0
- package/lib/Auth/Resolve.d.ts +34 -2
- package/lib/Auth/Resolve.d.ts.map +1 -1
- package/lib/Auth/Resolve.js +51 -3
- package/lib/Auth/Resolve.js.map +1 -1
- package/lib/Auth/StoredAuthProvider.d.ts +1 -1
- package/lib/Auth/StoredAuthProvider.d.ts.map +1 -1
- package/lib/Auth/StoredAuthProvider.js +1 -2
- package/lib/Auth/StoredAuthProvider.js.map +1 -1
- package/lib/Binding.d.ts.map +1 -1
- package/lib/Binding.js +3 -1
- package/lib/Binding.js.map +1 -1
- package/lib/Bundle/Bundle.d.ts +5 -0
- package/lib/Bundle/Bundle.d.ts.map +1 -1
- package/lib/Bundle/Bundle.js +36 -6
- package/lib/Bundle/Bundle.js.map +1 -1
- package/lib/Bundle/NamespaceImportPlugin.d.ts +55 -0
- package/lib/Bundle/NamespaceImportPlugin.d.ts.map +1 -0
- package/lib/Bundle/NamespaceImportPlugin.js +226 -0
- package/lib/Bundle/NamespaceImportPlugin.js.map +1 -0
- package/lib/Bundle/index.d.ts +1 -0
- package/lib/Bundle/index.d.ts.map +1 -1
- package/lib/Bundle/index.js +1 -0
- package/lib/Bundle/index.js.map +1 -1
- package/lib/Cli/Format.d.ts.map +1 -1
- package/lib/Cli/Format.js +2 -1
- package/lib/Cli/Format.js.map +1 -1
- package/lib/Cli/GlobalLog.d.ts +72 -26
- package/lib/Cli/GlobalLog.d.ts.map +1 -1
- package/lib/Cli/GlobalLog.js +151 -59
- package/lib/Cli/GlobalLog.js.map +1 -1
- package/lib/Cli/LoggingCli.d.ts.map +1 -1
- package/lib/Cli/LoggingCli.js +24 -18
- package/lib/Cli/LoggingCli.js.map +1 -1
- package/lib/Cli/PlainCliFormatter.d.ts.map +1 -1
- package/lib/Cli/PlainCliFormatter.js +4 -1
- package/lib/Cli/PlainCliFormatter.js.map +1 -1
- package/lib/Cli/Present.d.ts +14 -0
- package/lib/Cli/Present.d.ts.map +1 -0
- package/lib/Cli/Present.js +22 -0
- package/lib/Cli/Present.js.map +1 -0
- package/lib/Cli/SigilRenderer.d.ts +58 -0
- package/lib/Cli/SigilRenderer.d.ts.map +1 -0
- package/lib/Cli/SigilRenderer.js +39 -0
- package/lib/Cli/SigilRenderer.js.map +1 -0
- package/lib/Cli/checkVersion.d.ts +11 -14
- package/lib/Cli/checkVersion.d.ts.map +1 -1
- package/lib/Cli/checkVersion.js +19 -77
- package/lib/Cli/checkVersion.js.map +1 -1
- package/lib/Cli/commands/confirm.d.ts +2 -2
- package/lib/Cli/commands/confirm.d.ts.map +1 -1
- package/lib/Cli/commands/confirm.js +3 -3
- package/lib/Cli/commands/confirm.js.map +1 -1
- package/lib/Cli/commands/deploy.d.ts +4 -4
- package/lib/Cli/commands/deploy.d.ts.map +1 -1
- package/lib/Cli/commands/deploy.js +40 -39
- package/lib/Cli/commands/deploy.js.map +1 -1
- package/lib/Cli/commands/dev.d.ts.map +1 -1
- package/lib/Cli/commands/dev.js +41 -3
- package/lib/Cli/commands/dev.js.map +1 -1
- package/lib/Cli/commands/drift.d.ts +2 -2
- package/lib/Cli/commands/drift.d.ts.map +1 -1
- package/lib/Cli/commands/drift.js +14 -13
- package/lib/Cli/commands/drift.js.map +1 -1
- package/lib/Cli/commands/errors.d.ts.map +1 -1
- package/lib/Cli/commands/errors.js +2 -1
- package/lib/Cli/commands/errors.js.map +1 -1
- package/lib/Cli/commands/instrument.d.ts +15 -5
- package/lib/Cli/commands/instrument.d.ts.map +1 -1
- package/lib/Cli/commands/instrument.js +33 -8
- package/lib/Cli/commands/instrument.js.map +1 -1
- package/lib/Cli/commands/logs.d.ts +1 -1
- package/lib/Cli/commands/logs.d.ts.map +1 -1
- package/lib/Cli/commands/logs.js +22 -22
- package/lib/Cli/commands/logs.js.map +1 -1
- package/lib/Cli/commands/nuke.d.ts +3 -2
- package/lib/Cli/commands/nuke.d.ts.map +1 -1
- package/lib/Cli/commands/nuke.js +19 -17
- package/lib/Cli/commands/nuke.js.map +1 -1
- package/lib/Cli/commands/profile/commands.d.ts +3 -2
- package/lib/Cli/commands/profile/commands.d.ts.map +1 -1
- package/lib/Cli/commands/profile/commands.js +26 -27
- package/lib/Cli/commands/profile/commands.js.map +1 -1
- package/lib/Cli/commands/profile/flows.d.ts +6 -5
- package/lib/Cli/commands/profile/flows.d.ts.map +1 -1
- package/lib/Cli/commands/profile/flows.js +19 -17
- package/lib/Cli/commands/profile/flows.js.map +1 -1
- package/lib/Cli/commands/profile/hub.d.ts +1 -2
- package/lib/Cli/commands/profile/hub.d.ts.map +1 -1
- package/lib/Cli/commands/profile/hub.js +15 -17
- package/lib/Cli/commands/profile/hub.js.map +1 -1
- package/lib/Cli/commands/provider.d.ts +3 -1
- package/lib/Cli/commands/provider.d.ts.map +1 -1
- package/lib/Cli/commands/provider.js +4 -4
- package/lib/Cli/commands/provider.js.map +1 -1
- package/lib/Cli/commands/render.d.ts +2 -4
- package/lib/Cli/commands/render.d.ts.map +1 -1
- package/lib/Cli/commands/render.js +33 -56
- package/lib/Cli/commands/render.js.map +1 -1
- package/lib/Cli/commands/state.d.ts +1 -2
- package/lib/Cli/commands/state.d.ts.map +1 -1
- package/lib/Cli/commands/state.js +74 -27
- package/lib/Cli/commands/state.js.map +1 -1
- package/lib/Cli/components/capabilities.d.ts +4 -0
- package/lib/Cli/components/capabilities.d.ts.map +1 -0
- package/lib/Cli/components/capabilities.js +18 -0
- package/lib/Cli/components/capabilities.js.map +1 -0
- package/lib/Cli/components/types.d.ts +2 -81
- package/lib/Cli/components/types.d.ts.map +1 -1
- package/lib/Cli/components/types.js +1 -3
- package/lib/Cli/components/types.js.map +1 -1
- package/lib/Cli/components/ui/Environment.d.ts +3 -3
- package/lib/Cli/components/ui/Environment.d.ts.map +1 -1
- package/lib/Cli/components/ui/Environment.js.map +1 -1
- package/lib/Cli/components/ui/Interactive.d.ts +17 -4
- package/lib/Cli/components/ui/Interactive.d.ts.map +1 -1
- package/lib/Cli/components/ui/Interactive.js +7 -11
- package/lib/Cli/components/ui/Interactive.js.map +1 -1
- package/lib/Cli/components/ui/Layout.d.ts +1 -1
- package/lib/Cli/components/ui/Layout.d.ts.map +1 -1
- package/lib/Cli/components/ui/Layout.js +1 -1
- package/lib/Cli/components/ui/Layout.js.map +1 -1
- package/lib/Cli/components/ui/Typography.d.ts +1 -1
- package/lib/Cli/components/ui/Typography.d.ts.map +1 -1
- package/lib/Cli/components/ui/Typography.js +1 -1
- package/lib/Cli/components/ui/Typography.js.map +1 -1
- package/lib/Cli/components/ui/index.d.ts +2 -2
- package/lib/Cli/components/ui/index.js +2 -2
- package/lib/Cli/components/view/ApprovePlan.d.ts +1 -1
- package/lib/Cli/components/view/ApprovePlan.d.ts.map +1 -1
- package/lib/Cli/components/view/ApprovePlan.js +2 -1
- package/lib/Cli/components/view/ApprovePlan.js.map +1 -1
- package/lib/Cli/components/view/Format.d.ts +5 -0
- package/lib/Cli/components/view/Format.d.ts.map +1 -0
- package/lib/Cli/components/view/Format.js +39 -0
- package/lib/Cli/components/view/Format.js.map +1 -0
- package/lib/Cli/components/view/Help.d.ts +2 -2
- package/lib/Cli/components/view/Help.d.ts.map +1 -1
- package/lib/Cli/components/view/Help.js +7 -5
- package/lib/Cli/components/view/Help.js.map +1 -1
- package/lib/Cli/components/view/Logo.js +1 -1
- package/lib/Cli/components/view/Logo.js.map +1 -1
- package/lib/Cli/components/view/Nuke.d.ts +8 -9
- package/lib/Cli/components/view/Nuke.d.ts.map +1 -1
- package/lib/Cli/components/view/Nuke.js +49 -52
- package/lib/Cli/components/view/Nuke.js.map +1 -1
- package/lib/Cli/components/view/PlanDecision.d.ts +1 -1
- package/lib/Cli/components/view/PlanDecision.d.ts.map +1 -1
- package/lib/Cli/components/view/PlanDecision.js +1 -1
- package/lib/Cli/components/view/PlanDecision.js.map +1 -1
- package/lib/Cli/components/view/PlanRow.js +1 -1
- package/lib/Cli/components/view/PlanRow.js.map +1 -1
- package/lib/Cli/components/view/PlanTree.d.ts +1 -1
- package/lib/Cli/components/view/PlanTree.d.ts.map +1 -1
- package/lib/Cli/components/view/PlanTree.js +1 -1
- package/lib/Cli/components/view/PlanView.js +1 -1
- package/lib/Cli/components/view/PlanView.js.map +1 -1
- package/lib/Cli/components/view/Profile.d.ts +1 -1
- package/lib/Cli/components/view/Profile.js +2 -2
- package/lib/Cli/components/view/Profile.js.map +1 -1
- package/lib/Cli/components/view/ProfileDashboard.d.ts +4 -4
- package/lib/Cli/components/view/ProfileDashboard.d.ts.map +1 -1
- package/lib/Cli/components/view/ProfileDashboard.js +9 -8
- package/lib/Cli/components/view/ProfileDashboard.js.map +1 -1
- package/lib/Cli/components/view/Prompts.d.ts +3 -3
- package/lib/Cli/components/view/Prompts.d.ts.map +1 -1
- package/lib/Cli/components/view/Prompts.js +11 -18
- package/lib/Cli/components/view/Prompts.js.map +1 -1
- package/lib/Cli/components/view/Runtime.d.ts +5 -5
- package/lib/Cli/components/view/Runtime.d.ts.map +1 -1
- package/lib/Cli/components/view/Runtime.js +136 -219
- package/lib/Cli/components/view/Runtime.js.map +1 -1
- package/lib/Cli/components/view/SigilCli.d.ts +2 -2
- package/lib/Cli/components/view/SigilCli.d.ts.map +1 -1
- package/lib/Cli/components/view/SigilCli.js +7 -7
- package/lib/Cli/components/view/SigilCli.js.map +1 -1
- package/lib/Cli/components/view/StateExplorer.d.ts +1 -1
- package/lib/Cli/components/view/StateExplorer.d.ts.map +1 -1
- package/lib/Cli/components/view/StateExplorer.js +2 -1
- package/lib/Cli/components/view/StateExplorer.js.map +1 -1
- package/lib/Cli/components/view/statusStyle.d.ts +2 -2
- package/lib/Cli/components/view/statusStyle.d.ts.map +1 -1
- package/lib/Cli/components/view/statusStyle.js +1 -1
- package/lib/Cli/components/view/statusStyle.js.map +1 -1
- package/lib/Cli/exec.d.ts +6 -1
- package/lib/Cli/exec.d.ts.map +1 -1
- package/lib/Cli/exec.js +29 -34
- package/lib/Cli/exec.js.map +1 -1
- package/lib/Cli/main.d.ts.map +1 -1
- package/lib/Cli/main.js +35 -26
- package/lib/Cli/main.js.map +1 -1
- package/lib/Cli/selectCli.d.ts +2 -2
- package/lib/Cli/selectCli.d.ts.map +1 -1
- package/lib/Cli/selectCli.js +2 -2
- package/lib/Cli/selectCli.js.map +1 -1
- package/lib/Command/Command.js +1 -1
- package/lib/Command/Command.js.map +1 -1
- package/lib/Command/Dev.d.ts +58 -4
- package/lib/Command/Dev.d.ts.map +1 -1
- package/lib/Command/Dev.js +87 -30
- package/lib/Command/Dev.js.map +1 -1
- package/lib/Command/Local.d.ts +1 -1
- package/lib/Command/Memo.js +1 -1
- package/lib/Command/Memo.js.map +1 -1
- package/lib/Command/Providers.d.ts +1 -1
- package/lib/Command/Providers.d.ts.map +1 -1
- package/lib/Contributions.d.ts +2 -3
- package/lib/Contributions.d.ts.map +1 -1
- package/lib/Contributions.js +38 -6
- package/lib/Contributions.js.map +1 -1
- package/lib/DNS/Adapter.d.ts +204 -0
- package/lib/DNS/Adapter.d.ts.map +1 -0
- package/lib/DNS/Adapter.js +112 -0
- package/lib/DNS/Adapter.js.map +1 -0
- package/lib/DNS/index.d.ts +2 -0
- package/lib/DNS/index.d.ts.map +1 -0
- package/lib/DNS/index.js +2 -0
- package/lib/DNS/index.js.map +1 -0
- package/lib/Deploy.d.ts +7 -2
- package/lib/Deploy.d.ts.map +1 -1
- package/lib/Deploy.js +8 -3
- package/lib/Deploy.js.map +1 -1
- package/lib/Destroy.d.ts +5 -8
- package/lib/Destroy.d.ts.map +1 -1
- package/lib/Destroy.js +10 -7
- package/lib/Destroy.js.map +1 -1
- package/lib/Diff.d.ts.map +1 -1
- package/lib/Diff.js +14 -4
- package/lib/Diff.js.map +1 -1
- package/lib/Drift.d.ts +7 -7
- package/lib/Drift.d.ts.map +1 -1
- package/lib/Drift.js +184 -101
- package/lib/Drift.js.map +1 -1
- package/lib/EvalStack.d.ts +23 -0
- package/lib/EvalStack.d.ts.map +1 -0
- package/lib/EvalStack.js +47 -0
- package/lib/EvalStack.js.map +1 -0
- package/lib/Events.d.ts +210 -0
- package/lib/Events.d.ts.map +1 -0
- package/lib/Events.js +244 -0
- package/lib/Events.js.map +1 -0
- package/lib/Interaction.d.ts +159 -48
- package/lib/Interaction.d.ts.map +1 -1
- package/lib/Interaction.js +139 -58
- package/lib/Interaction.js.map +1 -1
- package/lib/Local/LocalProvider.d.ts.map +1 -1
- package/lib/Local/LocalProvider.js +31 -9
- package/lib/Local/LocalProvider.js.map +1 -1
- package/lib/Local/RpcProvider.d.ts.map +1 -1
- package/lib/Local/RpcProvider.js +10 -1
- package/lib/Local/RpcProvider.js.map +1 -1
- package/lib/Local/RpcProviderProxy.d.ts +16 -0
- package/lib/Local/RpcProviderProxy.d.ts.map +1 -1
- package/lib/Local/RpcProviderProxy.js +19 -10
- package/lib/Local/RpcProviderProxy.js.map +1 -1
- package/lib/Local/RpcSerialization.d.ts +3 -2
- package/lib/Local/RpcSerialization.d.ts.map +1 -1
- package/lib/Local/RpcSerialization.js +13 -10
- package/lib/Local/RpcSerialization.js.map +1 -1
- package/lib/Local/RpcServer.d.ts +2 -1
- package/lib/Local/RpcServer.d.ts.map +1 -1
- package/lib/Local/RpcServer.js +19 -14
- package/lib/Local/RpcServer.js.map +1 -1
- package/lib/Local/RpcServerBun.d.ts.map +1 -1
- package/lib/Local/RpcServerBun.js +8 -4
- package/lib/Local/RpcServerBun.js.map +1 -1
- package/lib/Local/RpcServerEnvironment.d.ts +2 -3
- package/lib/Local/RpcServerEnvironment.d.ts.map +1 -1
- package/lib/Local/RpcServerEnvironment.js +2 -2
- package/lib/Local/RpcServerEnvironment.js.map +1 -1
- package/lib/Local/RpcServerNode.d.ts.map +1 -1
- package/lib/Local/RpcServerNode.js +5 -1
- package/lib/Local/RpcServerNode.js.map +1 -1
- package/lib/Local/RpcServerSession.d.ts +1 -1
- package/lib/Local/RpcServerSession.d.ts.map +1 -1
- package/lib/Local/RpcServerSession.js.map +1 -1
- package/lib/Local/RpcSpawner.d.ts +6 -8
- package/lib/Local/RpcSpawner.d.ts.map +1 -1
- package/lib/Local/RpcSpawner.js +45 -36
- package/lib/Local/RpcSpawner.js.map +1 -1
- package/lib/Local/Sidecar.d.ts +23 -0
- package/lib/Local/Sidecar.d.ts.map +1 -1
- package/lib/Local/Sidecar.js +14 -9
- package/lib/Local/Sidecar.js.map +1 -1
- package/lib/Nuke.d.ts +5 -23
- package/lib/Nuke.d.ts.map +1 -1
- package/lib/Nuke.js +48 -13
- package/lib/Nuke.js.map +1 -1
- package/lib/Output.d.ts +19 -1
- package/lib/Output.d.ts.map +1 -1
- package/lib/Output.js +96 -3
- package/lib/Output.js.map +1 -1
- package/lib/Plan.d.ts +5 -1
- package/lib/Plan.d.ts.map +1 -1
- package/lib/Plan.js +111 -33
- package/lib/Plan.js.map +1 -1
- package/lib/Platform.d.ts.map +1 -1
- package/lib/Platform.js +31 -7
- package/lib/Platform.js.map +1 -1
- package/lib/Provider.d.ts +45 -0
- package/lib/Provider.d.ts.map +1 -1
- package/lib/Provider.js +2 -2
- package/lib/Provider.js.map +1 -1
- package/lib/Report.d.ts +17 -195
- package/lib/Report.d.ts.map +1 -1
- package/lib/Report.js +39 -12
- package/lib/Report.js.map +1 -1
- package/lib/Runtime/ManagedHttpShutdown.d.ts +17 -0
- package/lib/Runtime/ManagedHttpShutdown.d.ts.map +1 -1
- package/lib/Runtime/ManagedHttpShutdown.js +11 -2
- package/lib/Runtime/ManagedHttpShutdown.js.map +1 -1
- package/lib/RuntimeContext.js +1 -1
- package/lib/RuntimeContext.js.map +1 -1
- package/lib/Stack.d.ts +49 -29
- package/lib/Stack.d.ts.map +1 -1
- package/lib/Stack.js +25 -31
- package/lib/Stack.js.map +1 -1
- package/lib/State/BucketState.d.ts.map +1 -1
- package/lib/State/BucketState.js +43 -14
- package/lib/State/BucketState.js.map +1 -1
- package/lib/State/LocalState.d.ts.map +1 -1
- package/lib/State/LocalState.js +3 -3
- package/lib/State/LocalState.js.map +1 -1
- package/lib/State/Provisioning.d.ts +5 -0
- package/lib/State/Provisioning.d.ts.map +1 -1
- package/lib/State/Provisioning.js +3 -1
- package/lib/State/Provisioning.js.map +1 -1
- package/lib/State/ResourceState.d.ts +2 -0
- package/lib/State/ResourceState.d.ts.map +1 -1
- package/lib/State/State.d.ts +26 -0
- package/lib/State/State.d.ts.map +1 -1
- package/lib/State/StateEncoding.d.ts +7 -0
- package/lib/State/StateEncoding.d.ts.map +1 -1
- package/lib/State/StateEncoding.js +19 -0
- package/lib/State/StateEncoding.js.map +1 -1
- package/lib/State/index.js +2 -2
- package/lib/State/index.js.map +1 -1
- package/lib/Telemetry/Layer.d.ts +2 -5
- package/lib/Telemetry/Layer.d.ts.map +1 -1
- package/lib/Telemetry/Layer.js +3 -23
- package/lib/Telemetry/Layer.js.map +1 -1
- package/lib/Telemetry/Metrics.d.ts +1 -1
- package/lib/Telemetry/Metrics.d.ts.map +1 -1
- package/lib/TelemetryRelay.js +1 -1
- package/lib/TelemetryRelay.js.map +1 -1
- package/lib/TelemetryRuntime.d.ts +1 -1
- package/lib/TelemetryRuntime.d.ts.map +1 -1
- package/lib/TelemetryRuntime.js +4 -3
- package/lib/TelemetryRuntime.js.map +1 -1
- package/lib/Util/ConsoleSink.d.ts +23 -2
- package/lib/Util/ConsoleSink.d.ts.map +1 -1
- package/lib/Util/ConsoleSink.js +54 -14
- package/lib/Util/ConsoleSink.js.map +1 -1
- package/lib/Util/LogAnnotation.d.ts +19 -0
- package/lib/Util/LogAnnotation.d.ts.map +1 -0
- package/lib/Util/LogAnnotation.js +19 -0
- package/lib/Util/LogAnnotation.js.map +1 -0
- package/lib/Util/LogRecord.d.ts +281 -0
- package/lib/Util/LogRecord.d.ts.map +1 -0
- package/lib/Util/LogRecord.js +267 -0
- package/lib/Util/LogRecord.js.map +1 -0
- package/lib/Util/Node.d.ts +9 -0
- package/lib/Util/Node.d.ts.map +1 -1
- package/lib/Util/Node.js +10 -6
- package/lib/Util/Node.js.map +1 -1
- package/lib/Util/PlatformServices.d.ts +3 -2
- package/lib/Util/PlatformServices.d.ts.map +1 -1
- package/lib/Util/PlatformServices.js +6 -2
- package/lib/Util/PlatformServices.js.map +1 -1
- package/lib/Util/ResourceOutput.d.ts +18 -10
- package/lib/Util/ResourceOutput.d.ts.map +1 -1
- package/lib/Util/ResourceOutput.js +22 -23
- package/lib/Util/ResourceOutput.js.map +1 -1
- package/lib/Util/Shutdown.d.ts +10 -0
- package/lib/Util/Shutdown.d.ts.map +1 -0
- package/lib/Util/Shutdown.js +32 -0
- package/lib/Util/Shutdown.js.map +1 -0
- package/lib/Util/Terminal.d.ts +2 -4
- package/lib/Util/Terminal.d.ts.map +1 -1
- package/lib/Util/Terminal.js +3 -11
- package/lib/Util/Terminal.js.map +1 -1
- package/lib/Util/TraceParent.d.ts +32 -0
- package/lib/Util/TraceParent.d.ts.map +1 -0
- package/lib/Util/TraceParent.js +42 -0
- package/lib/Util/TraceParent.js.map +1 -0
- package/lib/Util/base64.d.ts +7 -0
- package/lib/Util/base64.d.ts.map +1 -0
- package/lib/Util/base64.js +24 -0
- package/lib/Util/base64.js.map +1 -0
- package/lib/Util/cached-function.d.ts +5 -0
- package/lib/Util/cached-function.d.ts.map +1 -1
- package/lib/Util/cached-function.js +13 -8
- package/lib/Util/cached-function.js.map +1 -1
- package/lib/Util/data.d.ts +1 -1
- package/lib/Util/data.d.ts.map +1 -1
- package/lib/Util/data.js +1 -1
- package/lib/Util/data.js.map +1 -1
- package/lib/Util/equal.d.ts.map +1 -1
- package/lib/Util/equal.js +3 -2
- package/lib/Util/equal.js.map +1 -1
- package/lib/Util/extraFiles.d.ts.map +1 -1
- package/lib/Util/extraFiles.js +5 -5
- package/lib/Util/extraFiles.js.map +1 -1
- package/lib/Util/interactive.js +1 -1
- package/lib/Website/AstroOutput.d.ts +42 -0
- package/lib/Website/AstroOutput.d.ts.map +1 -0
- package/lib/Website/AstroOutput.js +34 -0
- package/lib/Website/AstroOutput.js.map +1 -0
- package/lib/Website/FrontendCore.d.ts +1 -1
- package/lib/Workflows.d.ts +9 -0
- package/lib/Workflows.d.ts.map +1 -1
- package/lib/Workflows.js +8 -0
- package/lib/Workflows.js.map +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/package.json +21 -28
- package/src/AdoptPolicy.ts +76 -0
- package/src/Alchemist/AuthRegistry.ts +164 -0
- package/src/Alchemist/Drift.ts +103 -0
- package/src/Alchemist/Entrypoint.ts +51 -3
- package/src/Alchemist/Errors.ts +1 -1
- package/src/Alchemist/{routes/logs.ts → Logs.ts} +28 -30
- package/src/Alchemist/Nuke.ts +90 -0
- package/src/Alchemist/Operations.ts +309 -0
- package/src/Alchemist/{routes/profile.ts → Profile.ts} +22 -22
- package/src/Alchemist/{routes/provider.ts → Provider.ts} +7 -6
- package/src/Alchemist/Runtime.ts +46 -12
- package/src/Alchemist/{routes/state.ts → State.ts} +78 -21
- package/src/Alchemist/index.ts +32 -15
- package/src/Apply.ts +513 -274
- package/src/Auth/AuthProvider.ts +76 -23
- package/src/Auth/BrowserOAuth.ts +37 -60
- package/src/Auth/Credentials.ts +2 -4
- package/src/Auth/Demand.ts +27 -18
- package/src/Auth/Env.ts +13 -8
- package/src/Auth/Inspect.ts +5 -2
- package/src/Auth/Lock.ts +4 -8
- package/src/Auth/OAuthFlow.ts +12 -26
- package/src/Auth/Paths.ts +3 -2
- package/src/Auth/Profile.ts +30 -2
- package/src/Auth/Registry.ts +27 -0
- package/src/Auth/Resolve.ts +75 -3
- package/src/Auth/StoredAuthProvider.ts +1 -2
- package/src/Binding.ts +3 -4
- package/src/Bundle/Bundle.ts +58 -7
- package/src/Bundle/NamespaceImportPlugin.ts +259 -0
- package/src/Bundle/index.ts +1 -0
- package/src/Cli/Format.ts +2 -1
- package/src/Cli/GlobalLog.ts +206 -68
- package/src/Cli/LoggingCli.ts +33 -20
- package/src/Cli/PlainCliFormatter.ts +4 -1
- package/src/Cli/Present.ts +34 -0
- package/src/Cli/SigilRenderer.ts +75 -0
- package/src/Cli/checkVersion.ts +25 -78
- package/src/Cli/commands/confirm.ts +3 -3
- package/src/Cli/commands/deploy.ts +53 -44
- package/src/Cli/commands/dev.ts +65 -7
- package/src/Cli/commands/drift.ts +20 -16
- package/src/Cli/commands/errors.ts +2 -3
- package/src/Cli/commands/instrument.ts +39 -8
- package/src/Cli/commands/logs.ts +22 -30
- package/src/Cli/commands/nuke.ts +25 -26
- package/src/Cli/commands/profile/commands.ts +34 -34
- package/src/Cli/commands/profile/flows.ts +26 -20
- package/src/Cli/commands/profile/hub.ts +16 -18
- package/src/Cli/commands/provider.ts +4 -4
- package/src/Cli/commands/render.ts +43 -71
- package/src/Cli/commands/state.ts +113 -33
- package/src/Cli/components/capabilities.ts +20 -0
- package/src/Cli/components/types.ts +13 -99
- package/src/Cli/components/ui/Environment.tsx +5 -5
- package/src/Cli/components/ui/Interactive.tsx +24 -15
- package/src/Cli/components/ui/Layout.tsx +1 -1
- package/src/Cli/components/ui/Typography.tsx +1 -1
- package/src/Cli/components/ui/index.ts +2 -2
- package/src/Cli/components/view/ApprovePlan.tsx +2 -1
- package/src/Cli/components/view/Format.tsx +58 -0
- package/src/Cli/components/view/Help.tsx +14 -17
- package/src/Cli/components/view/Logo.tsx +1 -1
- package/src/Cli/components/view/Nuke.tsx +74 -49
- package/src/Cli/components/view/PlanDecision.tsx +1 -1
- package/src/Cli/components/view/PlanRow.tsx +1 -1
- package/src/Cli/components/view/PlanTree.ts +2 -2
- package/src/Cli/components/view/PlanView.tsx +2 -2
- package/src/Cli/components/view/Profile.tsx +2 -2
- package/src/Cli/components/view/ProfileDashboard.tsx +12 -11
- package/src/Cli/components/view/Prompts.tsx +37 -75
- package/src/Cli/components/view/Runtime.tsx +132 -238
- package/src/Cli/components/view/SigilCli.tsx +12 -12
- package/src/Cli/components/view/StateExplorer.tsx +2 -1
- package/src/Cli/components/view/statusStyle.ts +2 -2
- package/src/Cli/exec.ts +48 -41
- package/src/Cli/main.ts +52 -33
- package/src/Cli/selectCli.ts +3 -3
- package/src/Command/Command.ts +1 -1
- package/src/Command/Dev.ts +129 -36
- package/src/Command/Memo.ts +1 -1
- package/src/Contributions.ts +42 -8
- package/src/DNS/Adapter.ts +289 -0
- package/src/DNS/index.ts +1 -0
- package/src/Deploy.ts +11 -3
- package/src/Destroy.ts +19 -13
- package/src/Diff.ts +17 -4
- package/src/Drift.ts +256 -127
- package/src/EvalStack.ts +97 -0
- package/src/Events.ts +296 -0
- package/src/Interaction.ts +332 -97
- package/src/Local/LocalProvider.ts +40 -9
- package/src/Local/RpcProvider.ts +11 -1
- package/src/Local/RpcProviderProxy.ts +29 -21
- package/src/Local/RpcSerialization.ts +32 -17
- package/src/Local/RpcServer.ts +25 -17
- package/src/Local/RpcServerBun.ts +10 -6
- package/src/Local/RpcServerEnvironment.ts +2 -2
- package/src/Local/RpcServerNode.ts +8 -1
- package/src/Local/RpcServerSession.ts +2 -2
- package/src/Local/RpcSpawner.ts +61 -37
- package/src/Local/Sidecar.ts +10 -1
- package/src/Nuke.ts +66 -43
- package/src/Output.ts +120 -7
- package/src/Plan.ts +140 -52
- package/src/Platform.ts +47 -18
- package/src/Provider.ts +48 -3
- package/src/Report.ts +77 -275
- package/src/Runtime/ManagedHttpShutdown.ts +21 -4
- package/src/RuntimeContext.ts +1 -1
- package/src/Stack.ts +113 -135
- package/src/State/BucketState.ts +53 -21
- package/src/State/LocalState.ts +7 -9
- package/src/State/Provisioning.ts +8 -1
- package/src/State/ResourceState.ts +2 -0
- package/src/State/State.ts +30 -0
- package/src/State/StateEncoding.ts +22 -0
- package/src/State/index.ts +2 -2
- package/src/Telemetry/Layer.ts +3 -24
- package/src/Telemetry/Metrics.ts +1 -1
- package/src/TelemetryRelay.ts +1 -1
- package/src/TelemetryRuntime.ts +8 -8
- package/src/Util/ConsoleSink.ts +76 -13
- package/src/Util/LogAnnotation.ts +18 -0
- package/src/Util/LogRecord.ts +386 -0
- package/src/Util/Node.ts +20 -6
- package/src/Util/PlatformServices.ts +17 -4
- package/src/Util/ResourceOutput.ts +26 -25
- package/src/Util/Shutdown.ts +52 -0
- package/src/Util/Terminal.ts +3 -20
- package/src/Util/TraceParent.ts +70 -0
- package/src/Util/base64.ts +22 -0
- package/src/Util/cached-function.ts +30 -19
- package/src/Util/data.ts +2 -2
- package/src/Util/equal.ts +3 -2
- package/src/Util/extraFiles.ts +9 -8
- package/src/Util/interactive.ts +1 -1
- package/src/Website/AstroOutput.ts +83 -0
- package/src/Workflows.ts +11 -0
- package/src/index.ts +1 -0
- package/lib/Alchemist/Progress.d.ts +0 -16
- package/lib/Alchemist/Progress.d.ts.map +0 -1
- package/lib/Alchemist/Progress.js +0 -123
- package/lib/Alchemist/Progress.js.map +0 -1
- package/lib/Alchemist/Session.d.ts +0 -116
- package/lib/Alchemist/Session.d.ts.map +0 -1
- package/lib/Alchemist/Session.js +0 -212
- package/lib/Alchemist/Session.js.map +0 -1
- package/lib/Alchemist/routes/drift.d.ts +0 -55
- package/lib/Alchemist/routes/drift.d.ts.map +0 -1
- package/lib/Alchemist/routes/drift.js +0 -52
- package/lib/Alchemist/routes/drift.js.map +0 -1
- package/lib/Alchemist/routes/logs.d.ts +0 -41
- package/lib/Alchemist/routes/logs.d.ts.map +0 -1
- package/lib/Alchemist/routes/logs.js.map +0 -1
- package/lib/Alchemist/routes/nuke.d.ts +0 -46
- package/lib/Alchemist/routes/nuke.d.ts.map +0 -1
- package/lib/Alchemist/routes/nuke.js +0 -80
- package/lib/Alchemist/routes/nuke.js.map +0 -1
- package/lib/Alchemist/routes/profile.d.ts +0 -133
- package/lib/Alchemist/routes/profile.d.ts.map +0 -1
- package/lib/Alchemist/routes/profile.js.map +0 -1
- package/lib/Alchemist/routes/provider.d.ts.map +0 -1
- package/lib/Alchemist/routes/provider.js.map +0 -1
- package/lib/Alchemist/routes/stack.d.ts +0 -95
- package/lib/Alchemist/routes/stack.d.ts.map +0 -1
- package/lib/Alchemist/routes/stack.js +0 -73
- package/lib/Alchemist/routes/stack.js.map +0 -1
- package/lib/Alchemist/routes/state.d.ts.map +0 -1
- package/lib/Alchemist/routes/state.js.map +0 -1
- package/lib/Cli/CliKit/CliKit.d.ts +0 -92
- package/lib/Cli/CliKit/CliKit.d.ts.map +0 -1
- package/lib/Cli/CliKit/CliKit.js +0 -27
- package/lib/Cli/CliKit/CliKit.js.map +0 -1
- package/lib/Cli/CliKit/index.d.ts +0 -9
- package/lib/Cli/CliKit/index.d.ts.map +0 -1
- package/lib/Cli/CliKit/index.js +0 -9
- package/lib/Cli/CliKit/index.js.map +0 -1
- package/lib/Cli/CliKit/interaction.d.ts +0 -13
- package/lib/Cli/CliKit/interaction.d.ts.map +0 -1
- package/lib/Cli/CliKit/interaction.js +0 -17
- package/lib/Cli/CliKit/interaction.js.map +0 -1
- package/lib/Cli/CliKit/layer.d.ts +0 -7
- package/lib/Cli/CliKit/layer.d.ts.map +0 -1
- package/lib/Cli/CliKit/layer.js +0 -33
- package/lib/Cli/CliKit/layer.js.map +0 -1
- package/lib/Local/DevLog.d.ts +0 -32
- package/lib/Local/DevLog.d.ts.map +0 -1
- package/lib/Local/DevLog.js +0 -112
- package/lib/Local/DevLog.js.map +0 -1
- package/lib/Test/Alchemy.d.ts +0 -79
- package/lib/Test/Alchemy.d.ts.map +0 -1
- package/lib/Test/Alchemy.js +0 -193
- package/lib/Test/Alchemy.js.map +0 -1
- package/lib/Test/Bun.d.ts +0 -69
- package/lib/Test/Bun.d.ts.map +0 -1
- package/lib/Test/Bun.js +0 -126
- package/lib/Test/Bun.js.map +0 -1
- package/lib/Test/Core.d.ts +0 -277
- package/lib/Test/Core.d.ts.map +0 -1
- package/lib/Test/Core.js +0 -362
- package/lib/Test/Core.js.map +0 -1
- package/lib/Test/Http.d.ts +0 -109
- package/lib/Test/Http.d.ts.map +0 -1
- package/lib/Test/Http.js +0 -123
- package/lib/Test/Http.js.map +0 -1
- package/lib/Test/TestState.d.ts +0 -12
- package/lib/Test/TestState.d.ts.map +0 -1
- package/lib/Test/TestState.js +0 -15
- package/lib/Test/TestState.js.map +0 -1
- package/lib/Test/Vitest.d.ts +0 -60
- package/lib/Test/Vitest.d.ts.map +0 -1
- package/lib/Test/Vitest.js +0 -132
- package/lib/Test/Vitest.js.map +0 -1
- package/lib/Test/index.d.ts +0 -3
- package/lib/Test/index.d.ts.map +0 -1
- package/lib/Test/index.js +0 -3
- package/lib/Test/index.js.map +0 -1
- package/lib/Util/FileLogger.d.ts +0 -7
- package/lib/Util/FileLogger.d.ts.map +0 -1
- package/lib/Util/FileLogger.js +0 -16
- package/lib/Util/FileLogger.js.map +0 -1
- package/src/Alchemist/Progress.ts +0 -167
- package/src/Alchemist/Session.ts +0 -415
- package/src/Alchemist/routes/drift.ts +0 -87
- package/src/Alchemist/routes/nuke.ts +0 -131
- package/src/Alchemist/routes/stack.ts +0 -173
- package/src/Cli/CliKit/CliKit.ts +0 -159
- package/src/Cli/CliKit/index.ts +0 -41
- package/src/Cli/CliKit/interaction.ts +0 -19
- package/src/Cli/CliKit/layer.ts +0 -44
- package/src/Local/DevLog.ts +0 -122
- package/src/Test/Alchemy.ts +0 -334
- package/src/Test/Bun.ts +0 -230
- package/src/Test/Core.ts +0 -785
- package/src/Test/Http.ts +0 -201
- package/src/Test/TestState.ts +0 -35
- package/src/Test/Vitest.ts +0 -239
- package/src/Test/index.ts +0 -2
- package/src/Util/FileLogger.ts +0 -20
|
@@ -1,7 +1,19 @@
|
|
|
1
|
+
var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
|
|
2
|
+
if (typeof path === "string" && /^\.\.?\//.test(path)) {
|
|
3
|
+
return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
|
|
4
|
+
return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
|
|
5
|
+
});
|
|
6
|
+
}
|
|
7
|
+
return path;
|
|
8
|
+
};
|
|
9
|
+
import { pathToFileURL } from "node:url";
|
|
10
|
+
import * as Context from "effect/Context";
|
|
1
11
|
import * as Data from "effect/Data";
|
|
2
12
|
import * as Effect from "effect/Effect";
|
|
3
13
|
import * as FileSystem from "effect/FileSystem";
|
|
4
14
|
import * as Path from "effect/Path";
|
|
15
|
+
import * as Predicate from "effect/Predicate";
|
|
16
|
+
import { emit } from "../Events.js";
|
|
5
17
|
import { UserFacingError } from "../UserFacingError.js";
|
|
6
18
|
export class StackEntrypointError extends Data.TaggedError("StackEntrypointError") {
|
|
7
19
|
[UserFacingError] = true;
|
|
@@ -9,9 +21,8 @@ export class StackEntrypointError extends Data.TaggedError("StackEntrypointError
|
|
|
9
21
|
export const DEFAULT_ENTRYPOINT = "alchemy.run.ts";
|
|
10
22
|
/**
|
|
11
23
|
* The absolute path of the stack entrypoint, or the user-facing error for
|
|
12
|
-
* a missing one. Kept
|
|
13
|
-
*
|
|
14
|
-
* loading the engine that module carries.
|
|
24
|
+
* a missing one. Kept free of the engine so the `alchemy dev` supervisor can
|
|
25
|
+
* check the entry before it starts an exec child.
|
|
15
26
|
*/
|
|
16
27
|
export const resolveStackEntrypoint = Effect.fn(function* (main) {
|
|
17
28
|
const fs = yield* FileSystem.FileSystem;
|
|
@@ -24,4 +35,24 @@ export const resolveStackEntrypoint = Effect.fn(function* (main) {
|
|
|
24
35
|
}
|
|
25
36
|
return absolutePath;
|
|
26
37
|
});
|
|
38
|
+
export const StackModuleLoader = Context.Reference("Alchemy/Alchemist/StackModuleLoader", { defaultValue: () => ({ import: (url) => import(__rewriteRelativeImportExtension(url)) }) });
|
|
39
|
+
/**
|
|
40
|
+
* Import a stack entrypoint and return its default export, the stack value
|
|
41
|
+
* every stack operation takes.
|
|
42
|
+
*/
|
|
43
|
+
export const importStack = Effect.fn("Alchemist.importStack")(function* (main) {
|
|
44
|
+
yield* emit({ type: "plan.phase", phase: "importing-module" });
|
|
45
|
+
const absolutePath = yield* resolveStackEntrypoint(main);
|
|
46
|
+
const loader = yield* StackModuleLoader;
|
|
47
|
+
const module = yield* Effect.promise(() => loader.import(pathToFileURL(absolutePath).href));
|
|
48
|
+
if (!Effect.isEffect(module.default) ||
|
|
49
|
+
!Predicate.hasProperty(module.default, "stackName") ||
|
|
50
|
+
typeof module.default.stackName !== "string") {
|
|
51
|
+
return yield* new StackEntrypointError({
|
|
52
|
+
message: `Stack entrypoint '${main}' must export a default stack definition (export default Alchemy.Stack({...})).`,
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
// oxlint-disable-next-line effecttsgo/unsafe-effect-type-assertion -- default export shape validated at runtime above
|
|
56
|
+
return module.default;
|
|
57
|
+
});
|
|
27
58
|
//# sourceMappingURL=Entrypoint.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Entrypoint.js","sourceRoot":"","sources":["../../src/Alchemist/Entrypoint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,OAAO,oBAAqB,SAAQ,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAE/E;IACS,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC;CACnC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,gBAAgB,CAAC;AAEnD
|
|
1
|
+
{"version":3,"file":"Entrypoint.js","sourceRoot":"","sources":["../../src/Alchemist/Entrypoint.ts"],"names":[],"mappings":";;;;;;;;AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,SAAS,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,OAAO,oBAAqB,SAAQ,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAE/E;IACS,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC;CACnC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,gBAAgB,CAAC;AAEnD;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAY;IACrE,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;IACxC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9B,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;QACtC,OAAO,KAAK,CAAC,CAAC,IAAI,oBAAoB,CAAC;YACrC,OAAO,EAAE,qBAAqB,IAAI,wBAAwB,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,sEAAsE;SAC3J,CAAC,CAAC;IACL,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAChD,qCAAqC,EACrC,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,kCAAC,GAAG,EAAC,EAAE,CAAC,EAAE,CAC3D,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,EAAE,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAY;IACnF,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAC/D,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,iBAAiB,CAAC;IACxC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5F,IACE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;QAChC,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC;QACnD,OAAO,MAAM,CAAC,OAAO,CAAC,SAAS,KAAK,QAAQ,EAC5C,CAAC;QACD,OAAO,KAAK,CAAC,CAAC,IAAI,oBAAoB,CAAC;YACrC,OAAO,EAAE,qBAAqB,IAAI,iFAAiF;SACpH,CAAC,CAAC;IACL,CAAC;IACD,sHAAsH;IACtH,OAAO,MAAM,CAAC,OAA4C,CAAC;AAC7D,CAAC,CAAC,CAAC"}
|
|
@@ -8,7 +8,7 @@ export interface Diagnostic {
|
|
|
8
8
|
declare const AlchemistInvalidInput_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
9
9
|
readonly _tag: "AlchemistInvalidInput";
|
|
10
10
|
} & Readonly<A>;
|
|
11
|
-
/** The caller sent something the
|
|
11
|
+
/** The caller sent something the operation cannot act on. */
|
|
12
12
|
export declare class AlchemistInvalidInput extends AlchemistInvalidInput_base<{
|
|
13
13
|
readonly message: string;
|
|
14
14
|
readonly field?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Errors.d.ts","sourceRoot":"","sources":["../../src/Alchemist/Errors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,wDAAwD;AACxD,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IAC1D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;;;;AAOD,
|
|
1
|
+
{"version":3,"file":"Errors.d.ts","sourceRoot":"","sources":["../../src/Alchemist/Errors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,wDAAwD;AACxD,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IAC1D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;;;;AAOD,6DAA6D;AAC7D,qBAAa,qBAAsB,SAAQ,2BAA0C;IACnF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;IACA,QAAQ,CAAC,CAAC,eAAe,CAAC,QAAQ;CACnC;;;;AAED,2DAA2D;AAC3D,qBAAa,iBAAkB,SAAQ,uBAAsC;IAC3E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB,CAAC;IACA,QAAQ,CAAC,CAAC,eAAe,CAAC,QAAQ;IAClC,yEAAyE;IACzE,IAAa,OAAO,IAAI,MAAM,CAE7B;CACF"}
|
package/lib/Alchemist/Errors.js
CHANGED
|
@@ -4,7 +4,7 @@ import { UserFacingError } from "../UserFacingError.js";
|
|
|
4
4
|
// clouds we talk to — distilled's core ships `NotFound`, Route53 ships
|
|
5
5
|
// `InvalidInput` — and these errors travel in unions with cloud errors,
|
|
6
6
|
// where `catchTag` discriminates by tag alone.
|
|
7
|
-
/** The caller sent something the
|
|
7
|
+
/** The caller sent something the operation cannot act on. */
|
|
8
8
|
export class AlchemistInvalidInput extends Data.TaggedError("AlchemistInvalidInput") {
|
|
9
9
|
[UserFacingError] = true;
|
|
10
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Errors.js","sourceRoot":"","sources":["../../src/Alchemist/Errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AASxD,wEAAwE;AACxE,uEAAuE;AACvE,wEAAwE;AACxE,+CAA+C;AAE/C,
|
|
1
|
+
{"version":3,"file":"Errors.js","sourceRoot":"","sources":["../../src/Alchemist/Errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AASxD,wEAAwE;AACxE,uEAAuE;AACvE,wEAAwE;AACxE,+CAA+C;AAE/C,6DAA6D;AAC7D,MAAM,OAAO,qBAAsB,SAAQ,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAGjF;IACS,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC;CACnC;AAED,2DAA2D;AAC3D,MAAM,OAAO,iBAAkB,SAAQ,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAGzE;IACS,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC;IAClC,yEAAyE;IACzE,IAAa,OAAO;QAClB,OAAO,MAAM,IAAI,CAAC,IAAI,WAAW,IAAI,CAAC,EAAE,IAAI,CAAC;IAC/C,CAAC;CACF"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import * as Stream from "effect/Stream";
|
|
3
|
+
import type { ConfiguredStack } from "../Stack.ts";
|
|
4
|
+
import * as State from "../State/index.ts";
|
|
5
|
+
import { AlchemistInvalidInput } from "./Errors.ts";
|
|
6
|
+
import { type BuildOptions } from "./Operations.ts";
|
|
7
|
+
export interface ResourceIdentity {
|
|
8
|
+
readonly fqn: string;
|
|
9
|
+
readonly logicalId: string;
|
|
10
|
+
readonly resourceType: string;
|
|
11
|
+
}
|
|
12
|
+
export interface LogResource extends ResourceIdentity {
|
|
13
|
+
readonly supportsQuery: boolean;
|
|
14
|
+
readonly supportsTail: boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface LogEntry {
|
|
17
|
+
readonly resource: ResourceIdentity;
|
|
18
|
+
readonly timestamp: Date;
|
|
19
|
+
readonly message: string;
|
|
20
|
+
}
|
|
21
|
+
export interface LogOptions extends BuildOptions {
|
|
22
|
+
readonly stack: ConfiguredStack<unknown, unknown>;
|
|
23
|
+
/** Logical IDs to include. Empty or omitted means every resource. */
|
|
24
|
+
readonly resources?: ReadonlyArray<string>;
|
|
25
|
+
}
|
|
26
|
+
export interface QueryOptions extends LogOptions {
|
|
27
|
+
readonly limit?: number;
|
|
28
|
+
readonly since?: Date;
|
|
29
|
+
}
|
|
30
|
+
/** Every deployed resource, with the log capabilities its provider offers. */
|
|
31
|
+
export declare const resources: (options: BuildOptions & {
|
|
32
|
+
readonly stack: ConfiguredStack<unknown, unknown>;
|
|
33
|
+
}) => Effect.Effect<LogResource[], AlchemistInvalidInput | import("effect/Config").ConfigError | import("effect/PlatformError").PlatformError | State.StateStoreError, import("../AlchemyContext.ts").AlchemyContext | import("effect/FileSystem").FileSystem>;
|
|
34
|
+
/** Query past log entries across the selected resources, oldest first. */
|
|
35
|
+
export declare const entries: (input: QueryOptions) => Effect.Effect<{
|
|
36
|
+
resource: {
|
|
37
|
+
fqn: string;
|
|
38
|
+
logicalId: string;
|
|
39
|
+
resourceType: string;
|
|
40
|
+
};
|
|
41
|
+
timestamp: Date;
|
|
42
|
+
message: string;
|
|
43
|
+
}[], any, import("../AlchemyContext.ts").AlchemyContext | import("effect/FileSystem").FileSystem>;
|
|
44
|
+
/** Live-stream log entries from every selected resource that supports it. */
|
|
45
|
+
export declare const tail: (input: LogOptions) => Stream.Stream<LogEntry, any, import("../AlchemyContext.ts").AlchemyContext | import("effect/FileSystem").FileSystem>;
|
|
46
|
+
//# sourceMappingURL=Logs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Logs.d.ts","sourceRoot":"","sources":["../../src/Alchemist/Logs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAc,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEhE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,WAAY,SAAQ,gBAAgB;IACnD,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,UAAW,SAAQ,YAAY;IAC9C,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAClD,qEAAqE;IACrE,QAAQ,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,YAAa,SAAQ,UAAU;IAC9C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC;CACvB;AA+DD,8EAA8E;AAC9E,eAAO,MAAM,SAAS;oBACsB,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC;8PAQ5D,CAAC;AAElB,0EAA0E;AAC1E,eAAO,MAAM,OAAO;;;;;;;;iGA2BH,CAAC;AAElB,6EAA6E;AAC7E,eAAO,MAAM,IAAI,UAAW,UAAU,yHAqBnC,CAAC"}
|
|
@@ -1,27 +1,22 @@
|
|
|
1
|
-
import * as Context from "effect/Context";
|
|
2
1
|
import * as Effect from "effect/Effect";
|
|
3
|
-
import * as Layer from "effect/Layer";
|
|
4
2
|
import * as Stream from "effect/Stream";
|
|
5
|
-
import { findProviderByType } from "
|
|
6
|
-
import { stampedMode } from "
|
|
7
|
-
import * as State from "
|
|
8
|
-
import { AlchemistInvalidInput } from "
|
|
9
|
-
import {
|
|
3
|
+
import { findProviderByType } from "../Provider.js";
|
|
4
|
+
import { stampedMode } from "../ProviderMode.js";
|
|
5
|
+
import * as State from "../State/index.js";
|
|
6
|
+
import { AlchemistInvalidInput } from "./Errors.js";
|
|
7
|
+
import { buildStack } from "./Operations.js";
|
|
10
8
|
/**
|
|
11
|
-
*
|
|
9
|
+
* Build the stack and pair every deployed resource with the provider that
|
|
12
10
|
* can speak for it. `entries` and `tail` differ only in which provider hook
|
|
13
|
-
* they then call, so the selection lives here once.
|
|
11
|
+
* they then call, so the selection lives here once. The build lives in the
|
|
12
|
+
* ambient `Scope`; each public function closes its own.
|
|
14
13
|
*/
|
|
15
14
|
const select = Effect.fn(function* (input) {
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
// store wins where it configures one: a project may only wire a remote
|
|
19
|
-
// store at deploy time, and `alchemy logs` still has to resolve what was
|
|
20
|
-
// deployed.
|
|
21
|
-
const context = Context.merge(yield* Layer.build(State.localState()), session.context);
|
|
15
|
+
const built = yield* buildStack(input.stack, input);
|
|
16
|
+
const context = built.context;
|
|
22
17
|
const selected = new Set(input.resources ?? []);
|
|
23
18
|
const available = [
|
|
24
|
-
...new Set(Object.values(
|
|
19
|
+
...new Set(Object.values(built.stack.resources).map((resource) => resource.LogicalId)),
|
|
25
20
|
].sort();
|
|
26
21
|
const unknown = [...selected].find((name) => !available.includes(name));
|
|
27
22
|
if (unknown !== undefined) {
|
|
@@ -31,14 +26,14 @@ const select = Effect.fn(function* (input) {
|
|
|
31
26
|
});
|
|
32
27
|
}
|
|
33
28
|
const rows = yield* Effect.provide(Effect.gen(function* () {
|
|
34
|
-
const state = yield*
|
|
35
|
-
return yield* Effect.forEach(Object.entries(
|
|
29
|
+
const state = yield* Effect.flatten(State.State);
|
|
30
|
+
return yield* Effect.forEach(Object.entries(built.stack.resources), ([fqn, resource]) => Effect.gen(function* () {
|
|
36
31
|
if (selected.size > 0 && !selected.has(resource.LogicalId)) {
|
|
37
32
|
return [];
|
|
38
33
|
}
|
|
39
34
|
const stored = yield* state.get({
|
|
40
|
-
stack:
|
|
41
|
-
stage:
|
|
35
|
+
stack: built.stack.name,
|
|
36
|
+
stage: built.stack.stage,
|
|
42
37
|
fqn,
|
|
43
38
|
});
|
|
44
39
|
if (!State.isResourceState(stored) || stored.attr === undefined) {
|
|
@@ -66,16 +61,16 @@ const select = Effect.fn(function* (input) {
|
|
|
66
61
|
return { context, rows };
|
|
67
62
|
});
|
|
68
63
|
/** Every deployed resource, with the log capabilities its provider offers. */
|
|
69
|
-
export const resources = Effect.fn("Alchemist.
|
|
70
|
-
const { rows } = yield* select(
|
|
64
|
+
export const resources = Effect.fn("Alchemist.Logs.resources")(function* (options) {
|
|
65
|
+
const { rows } = yield* select(options);
|
|
71
66
|
return rows.map(({ resource, provider }) => ({
|
|
72
67
|
...resource,
|
|
73
68
|
supportsQuery: provider.logs !== undefined,
|
|
74
69
|
supportsTail: provider.tail !== undefined,
|
|
75
70
|
}));
|
|
76
|
-
});
|
|
71
|
+
}, Effect.scoped);
|
|
77
72
|
/** Query past log entries across the selected resources, oldest first. */
|
|
78
|
-
export const entries = Effect.fn("Alchemist.
|
|
73
|
+
export const entries = Effect.fn("Alchemist.Logs.entries")(function* (input) {
|
|
79
74
|
const { context, rows } = yield* select(input);
|
|
80
75
|
const entries = yield* Effect.provide(Effect.forEach(rows, ({ resource, provider, request }) => provider.logs === undefined
|
|
81
76
|
? Effect.succeed([])
|
|
@@ -93,7 +88,7 @@ export const entries = Effect.fn("Alchemist.logs.entries")(function* (input) {
|
|
|
93
88
|
message: line.message,
|
|
94
89
|
}))))), context);
|
|
95
90
|
return entries.flat().sort((a, b) => a.timestamp.getTime() - b.timestamp.getTime());
|
|
96
|
-
});
|
|
91
|
+
}, Effect.scoped);
|
|
97
92
|
/** Live-stream log entries from every selected resource that supports it. */
|
|
98
93
|
export const tail = (input) => Stream.unwrap(Effect.gen(function* () {
|
|
99
94
|
const { context, rows } = yield* select(input);
|
|
@@ -107,4 +102,4 @@ export const tail = (input) => Stream.unwrap(Effect.gen(function* () {
|
|
|
107
102
|
}))),
|
|
108
103
|
]), { concurrency: "unbounded" });
|
|
109
104
|
}));
|
|
110
|
-
//# sourceMappingURL=
|
|
105
|
+
//# sourceMappingURL=Logs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Logs.js","sourceRoot":"","sources":["../../src/Alchemist/Logs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import type * as Context from "effect/Context";
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
import * as Nuke from "../Nuke.ts";
|
|
4
|
+
import type { ProviderMode } from "../ProviderMode.ts";
|
|
5
|
+
import type { ConfiguredStack } from "../Stack.ts";
|
|
6
|
+
import { type ConfigOptions } from "./Operations.ts";
|
|
7
|
+
export interface ScanOptions extends ConfigOptions {
|
|
8
|
+
/** The stack whose providers are scanned; nothing reads its state. */
|
|
9
|
+
readonly stack: ConfiguredStack<unknown, unknown>;
|
|
10
|
+
/** Scan the emulators `alchemy dev` runs instead of the real cloud. */
|
|
11
|
+
readonly dev?: boolean;
|
|
12
|
+
/** Provider-id globs to include. Omitted means every provider. */
|
|
13
|
+
readonly include?: ReadonlyArray<string>;
|
|
14
|
+
/** Provider-id globs to exclude. Applied after `include`. */
|
|
15
|
+
readonly exclude?: ReadonlyArray<string>;
|
|
16
|
+
/** Providers scanned in parallel. @default 16 */
|
|
17
|
+
readonly concurrency?: number | "unbounded";
|
|
18
|
+
/** Timeout for each provider's `list`. @default 120 */
|
|
19
|
+
readonly providerTimeoutSeconds?: number;
|
|
20
|
+
}
|
|
21
|
+
/** One discovered cloud object, bound to the provider that can delete it. */
|
|
22
|
+
export type Resource = Nuke.Target;
|
|
23
|
+
/** Everything a stack's providers can see; only {@link execute} deletes it. */
|
|
24
|
+
export interface NukeScan {
|
|
25
|
+
/** `local` when the scan ran with `dev: true`, otherwise `live`. */
|
|
26
|
+
readonly mode: ProviderMode;
|
|
27
|
+
readonly resources: ReadonlyArray<Resource>;
|
|
28
|
+
/** Providers whose `list` failed; they contribute no resources. */
|
|
29
|
+
readonly failures: ReadonlyArray<Nuke.ProviderFailure>;
|
|
30
|
+
/**
|
|
31
|
+
* The built provider context; lives in the caller's `Scope`.
|
|
32
|
+
* @internal {@link execute} deletes under it.
|
|
33
|
+
*/
|
|
34
|
+
readonly context: Context.Context<never>;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* List everything the stack's registered providers can see in the account.
|
|
38
|
+
* The stack is imported only for its providers: nothing here reads state or
|
|
39
|
+
* is scoped to a stage.
|
|
40
|
+
*/
|
|
41
|
+
export declare const scan: (options: ScanOptions) => Effect.Effect<{
|
|
42
|
+
mode: ProviderMode;
|
|
43
|
+
resources: readonly Nuke.Target[];
|
|
44
|
+
failures: readonly Nuke.ProviderFailure[];
|
|
45
|
+
context: Context.Context<import("../AdoptPolicy.ts").AdoptPolicy | import("../AlchemyContext.ts").AlchemyContext | import("../Artifacts.ts").ArtifactStore | import("../index.ts").AuthProviders | import("../Stack.ts").Stack | import("../Stage.ts").Stage | import("../State/State.ts").State>;
|
|
46
|
+
}, import("effect/Config").ConfigError | import("effect/PlatformError").PlatformError, import("../AlchemyContext.ts").AlchemyContext | import("effect/process/ChildProcessSpawner").ChildProcessSpawner | import("../Auth/Credentials.ts").CredentialsStore | import("effect/crypto/Digest").Digest | import("effect/FileSystem").FileSystem | import("effect/http/HttpClient").HttpClient | import("../Interaction.ts").Interaction | import("effect/Path").Path | import("../Auth/Profile.ts").ProfileStore | import("effect/Scope").Scope | import("effect/crypto/SecureRandom").SecureRandom>;
|
|
47
|
+
export interface ExecuteOptions {
|
|
48
|
+
/** The scan whose resources are deleted. */
|
|
49
|
+
readonly scan: NukeScan;
|
|
50
|
+
/** The subset of `scan.resources` to delete. @default every planned resource */
|
|
51
|
+
readonly resources?: ReadonlyArray<Resource>;
|
|
52
|
+
/**
|
|
53
|
+
* `coordinated` deletes in passes until one makes no progress;
|
|
54
|
+
* `independent` retries each resource on its own.
|
|
55
|
+
* @default { type: "coordinated" }
|
|
56
|
+
*/
|
|
57
|
+
readonly strategy?: Nuke.Strategy;
|
|
58
|
+
/** Providers deleted in parallel. @default 16 */
|
|
59
|
+
readonly concurrency?: number | "unbounded";
|
|
60
|
+
/** Timeout for each `delete`. @default 120 */
|
|
61
|
+
readonly providerTimeoutSeconds?: number;
|
|
62
|
+
}
|
|
63
|
+
export type Result = Nuke.Result;
|
|
64
|
+
/**
|
|
65
|
+
* Permanently delete scanned resources. Progress is emitted through
|
|
66
|
+
* events: `apply.resource.status` and `nuke.*` events.
|
|
67
|
+
*/
|
|
68
|
+
export declare const execute: (options: ExecuteOptions) => Effect.Effect<Nuke.Result, never, never>;
|
|
69
|
+
//# sourceMappingURL=Nuke.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Nuke.d.ts","sourceRoot":"","sources":["../../src/Alchemist/Nuke.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AACnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAkB,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErE,MAAM,WAAW,WAAY,SAAQ,aAAa;IAChD,sEAAsE;IACtE,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAClD,uEAAuE;IACvE,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IACvB,kEAAkE;IAClE,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACzC,6DAA6D;IAC7D,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACzC,iDAAiD;IACjD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IAC5C,uDAAuD;IACvD,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC;CAC1C;AAED,6EAA6E;AAC7E,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;AAEnC,+EAA+E;AAC/E,MAAM,WAAW,QAAQ;IACvB,oEAAoE;IACpE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC5C,mEAAmE;IACnE,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACvD;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;CAC1C;AAED;;;;GAIG;AACH,eAAO,MAAM,IAAI;;;;;ikBAYf,CAAC;AAEH,MAAM,WAAW,cAAc;IAC7B,4CAA4C;IAC5C,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,gFAAgF;IAChF,QAAQ,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC7C;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC;IAClC,iDAAiD;IACjD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IAC5C,8CAA8C;IAC9C,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC;CAC1C;AAED,MAAM,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAEjC;;;GAGG;AACH,eAAO,MAAM,OAAO,uEAQlB,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import * as Nuke from "../Nuke.js";
|
|
3
|
+
import { buildProviders } from "./Operations.js";
|
|
4
|
+
/**
|
|
5
|
+
* List everything the stack's registered providers can see in the account.
|
|
6
|
+
* The stack is imported only for its providers: nothing here reads state or
|
|
7
|
+
* is scoped to a stage.
|
|
8
|
+
*/
|
|
9
|
+
export const scan = Effect.fn("Alchemist.Nuke.scan")(function* (options) {
|
|
10
|
+
const mode = options.dev ? "local" : "live";
|
|
11
|
+
const context = yield* buildProviders(options.stack, options);
|
|
12
|
+
const { resources, failures } = yield* Nuke.list({
|
|
13
|
+
context,
|
|
14
|
+
mode,
|
|
15
|
+
include: options.include,
|
|
16
|
+
exclude: options.exclude,
|
|
17
|
+
concurrency: options.concurrency,
|
|
18
|
+
timeoutSeconds: options.providerTimeoutSeconds,
|
|
19
|
+
});
|
|
20
|
+
return { mode, resources, failures, context };
|
|
21
|
+
});
|
|
22
|
+
/**
|
|
23
|
+
* Permanently delete scanned resources. Progress is emitted through
|
|
24
|
+
* events: `apply.resource.status` and `nuke.*` events.
|
|
25
|
+
*/
|
|
26
|
+
export const execute = Effect.fn("Alchemist.Nuke.execute")(function* (options) {
|
|
27
|
+
return yield* Nuke.destroy({
|
|
28
|
+
targets: options.resources ?? options.scan.resources,
|
|
29
|
+
context: options.scan.context,
|
|
30
|
+
strategy: options.strategy ?? { type: "coordinated" },
|
|
31
|
+
concurrency: options.concurrency,
|
|
32
|
+
timeoutSeconds: options.providerTimeoutSeconds,
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
//# sourceMappingURL=Nuke.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Nuke.js","sourceRoot":"","sources":["../../src/Alchemist/Nuke.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AAGnC,OAAO,EAAE,cAAc,EAAsB,MAAM,iBAAiB,CAAC;AAkCrE;;;;GAIG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,EAAE,OAAoB;IAClF,MAAM,IAAI,GAAiB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IAC1D,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9D,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAC/C,OAAO;QACP,IAAI;QACJ,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,cAAc,EAAE,OAAO,CAAC,sBAAsB;KAC/C,CAAC,CAAC;IACH,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAqB,CAAC;AACnE,CAAC,CAAC,CAAC;AAqBH;;;GAGG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC,QAAQ,CAAC,EAAE,OAAuB;IAC3F,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;QACzB,OAAO,EAAE,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS;QACpD,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO;QAC7B,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE;QACrD,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,cAAc,EAAE,OAAO,CAAC,sBAAsB;KAC/C,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import * as Context from "effect/Context";
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
import * as Layer from "effect/Layer";
|
|
4
|
+
import * as Tracer from "effect/Tracer";
|
|
5
|
+
import { AdoptPolicy } from "../AdoptPolicy.ts";
|
|
6
|
+
import { AlchemyContext } from "../AlchemyContext.ts";
|
|
7
|
+
import * as Apply from "../Apply.ts";
|
|
8
|
+
import { ArtifactStore } from "../Artifacts.ts";
|
|
9
|
+
import { type PlannedAction, type PlannedResource } from "../Events.ts";
|
|
10
|
+
import * as Plan from "../Plan.ts";
|
|
11
|
+
import type { ResourceSelection, SelectionOutput } from "../ResourceSelection.ts";
|
|
12
|
+
import * as Stack from "../Stack.ts";
|
|
13
|
+
import { Stage } from "../Stage.ts";
|
|
14
|
+
import type { State } from "../State/State.ts";
|
|
15
|
+
/** Which credentials and config a stack build sees. */
|
|
16
|
+
export interface ConfigOptions {
|
|
17
|
+
/** `.env` file layered under the process environment. */
|
|
18
|
+
readonly envFile?: string;
|
|
19
|
+
/** Profile whose credentials the run uses. Falls back to the active profile. */
|
|
20
|
+
readonly profile?: string;
|
|
21
|
+
}
|
|
22
|
+
export interface BuildOptions extends ConfigOptions {
|
|
23
|
+
readonly stage: string;
|
|
24
|
+
/** Run local (emulated) providers instead of the real cloud. */
|
|
25
|
+
readonly dev?: boolean;
|
|
26
|
+
/** Adopt pre-existing cloud resources instead of failing on conflict. */
|
|
27
|
+
readonly adopt?: boolean;
|
|
28
|
+
/** Upgrade an out-of-date state store without prompting. */
|
|
29
|
+
readonly updateStateStore?: boolean;
|
|
30
|
+
}
|
|
31
|
+
/** Config services shared by every stack build. */
|
|
32
|
+
export declare const configServices: (options: ConfigOptions) => Effect.Effect<Layer.Layer<never, never, never>, import("effect/PlatformError").PlatformError, import("effect/FileSystem").FileSystem>;
|
|
33
|
+
/**
|
|
34
|
+
* Build a stack's providers and state store and run its program.
|
|
35
|
+
*
|
|
36
|
+
* @internal used by {@link plan} and `Logs`.
|
|
37
|
+
*/
|
|
38
|
+
export declare const buildStack: <Output, Req>(stack: Stack.ConfiguredStack<Output, Req>, options: BuildOptions) => Effect.Effect<{
|
|
39
|
+
stack: Stack.CompiledStack<Output, any>;
|
|
40
|
+
/** The stack's own providers and state store over the build's services. */
|
|
41
|
+
context: Context.Context<any>;
|
|
42
|
+
}, import("effect/Config").ConfigError | import("effect/PlatformError").PlatformError, AlchemyContext | import("effect/FileSystem").FileSystem | import("effect/Scope").Scope>;
|
|
43
|
+
/**
|
|
44
|
+
* Build a stack's providers and state store without running its program:
|
|
45
|
+
* all that destroy, drift, and state access need, and safe when the
|
|
46
|
+
* program itself no longer runs.
|
|
47
|
+
*
|
|
48
|
+
* @internal used by {@link plan}, `Drift.scan`, and `State.store`.
|
|
49
|
+
*/
|
|
50
|
+
export declare const buildWithoutProgram: <Req>(stack: Stack.ConfiguredStack<unknown, Req>, options: BuildOptions) => Effect.Effect<{
|
|
51
|
+
stack: {
|
|
52
|
+
name: string;
|
|
53
|
+
stage: string;
|
|
54
|
+
resources: {
|
|
55
|
+
[logicalId: string]: import("../Resource.ts").ResourceLike;
|
|
56
|
+
};
|
|
57
|
+
bindings: {
|
|
58
|
+
[logicalId: string]: import("../Resource.ts").ResourceBinding[];
|
|
59
|
+
};
|
|
60
|
+
actions: {
|
|
61
|
+
[logicalId: string]: import("../Action.ts").ActionLike;
|
|
62
|
+
};
|
|
63
|
+
output: undefined;
|
|
64
|
+
};
|
|
65
|
+
context: Context.Context<AdoptPolicy | AlchemyContext | ArtifactStore | import("../index.ts").AuthProviders | Stack.Stack | Stage | State | Exclude<Extract<Req, Stack.ProviderServices>, Tracer.ParentSpan>>;
|
|
66
|
+
}, import("effect/Config").ConfigError | import("effect/PlatformError").PlatformError, AlchemyContext | import("effect/process/ChildProcessSpawner").ChildProcessSpawner | import("../Auth/Credentials.ts").CredentialsStore | import("effect/crypto/Digest").Digest | import("effect/FileSystem").FileSystem | import("effect/http/HttpClient").HttpClient | import("../Interaction.ts").Interaction | import("effect/Path").Path | import("../Auth/Profile.ts").ProfileStore | import("effect/Scope").Scope | import("effect/crypto/SecureRandom").SecureRandom>;
|
|
67
|
+
export interface PlanSummary {
|
|
68
|
+
readonly create: number;
|
|
69
|
+
readonly update: number;
|
|
70
|
+
readonly adopted: number;
|
|
71
|
+
readonly replace: number;
|
|
72
|
+
readonly delete: number;
|
|
73
|
+
readonly orphaned: number;
|
|
74
|
+
/** Actions that will run. */
|
|
75
|
+
readonly run: number;
|
|
76
|
+
readonly noop: number;
|
|
77
|
+
}
|
|
78
|
+
/** Whether a plan or drift scan proposes any cloud mutations (i.e. approval-worthy work). */
|
|
79
|
+
export declare const hasChanges: ({ summary }: {
|
|
80
|
+
readonly summary: PlanSummary;
|
|
81
|
+
}) => boolean;
|
|
82
|
+
export declare const summarize: (plan: Plan.Plan) => PlanSummary;
|
|
83
|
+
/** The services a stack plan is applied under. */
|
|
84
|
+
type StackContext = Context.Context<State | Stack.Stack | Stage>;
|
|
85
|
+
/**
|
|
86
|
+
* A deploy or destroy plan: what will change, and the built stack it was
|
|
87
|
+
* planned against so {@link apply} runs without rebuilding.
|
|
88
|
+
*/
|
|
89
|
+
export interface StackPlan<Output = unknown> {
|
|
90
|
+
readonly stack: {
|
|
91
|
+
readonly name: string;
|
|
92
|
+
readonly stage: string;
|
|
93
|
+
};
|
|
94
|
+
readonly summary: PlanSummary;
|
|
95
|
+
/** Serializable resource rows (including orphan deletions). */
|
|
96
|
+
readonly resources: ReadonlyArray<PlannedResource>;
|
|
97
|
+
/** Serializable stack-action rows. */
|
|
98
|
+
readonly actions: ReadonlyArray<PlannedAction>;
|
|
99
|
+
/**
|
|
100
|
+
* The engine plan `apply` executes, for renderers.
|
|
101
|
+
* @internal its shape may change.
|
|
102
|
+
*/
|
|
103
|
+
readonly native: Plan.Plan<Output>;
|
|
104
|
+
/**
|
|
105
|
+
* The stack services the plan was computed under; they live in the caller's `Scope`.
|
|
106
|
+
* @internal `apply` runs in them.
|
|
107
|
+
*/
|
|
108
|
+
readonly context: StackContext;
|
|
109
|
+
}
|
|
110
|
+
/** Describe an engine plan computed on a built stack. */
|
|
111
|
+
export declare const describeStackPlan: <Output>(built: {
|
|
112
|
+
readonly stack: {
|
|
113
|
+
readonly name: string;
|
|
114
|
+
readonly stage: string;
|
|
115
|
+
};
|
|
116
|
+
readonly context: StackContext;
|
|
117
|
+
}, native: Plan.Plan<Output>) => Effect.Effect<{
|
|
118
|
+
resources: ReadonlyArray<PlannedResource>;
|
|
119
|
+
actions: ReadonlyArray<PlannedAction>;
|
|
120
|
+
stack: {
|
|
121
|
+
name: string;
|
|
122
|
+
stage: string;
|
|
123
|
+
};
|
|
124
|
+
summary: PlanSummary;
|
|
125
|
+
native: Plan.Plan<Output>;
|
|
126
|
+
context: StackContext;
|
|
127
|
+
}, never, never>;
|
|
128
|
+
/**
|
|
129
|
+
* Run the stack's program and plan what to create, update, replace, and
|
|
130
|
+
* delete so the stage matches it.
|
|
131
|
+
*/
|
|
132
|
+
export interface DeployPlanOptions extends BuildOptions, ResourceSelection {
|
|
133
|
+
readonly operation: "deploy";
|
|
134
|
+
/** Re-run every Action regardless of input drift. */
|
|
135
|
+
readonly force?: boolean;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Plan deleting everything the stage owns. The program never runs, so this
|
|
139
|
+
* works even when it no longer does. Always the whole stage.
|
|
140
|
+
*/
|
|
141
|
+
export interface DestroyPlanOptions extends BuildOptions {
|
|
142
|
+
readonly operation: "destroy";
|
|
143
|
+
}
|
|
144
|
+
export type PlanOptions = DeployPlanOptions | DestroyPlanOptions;
|
|
145
|
+
/** What applying a plan made with `O` returns. */
|
|
146
|
+
export type PlanOutput<Output, O extends PlanOptions> = O extends {
|
|
147
|
+
readonly operation: "destroy";
|
|
148
|
+
} ? undefined : SelectionOutput<Output, O>;
|
|
149
|
+
/**
|
|
150
|
+
* Plan a deploy or a destroy of `stack`. A filtered deploy plan applies to
|
|
151
|
+
* `undefined` and leaves the persisted stack output untouched. The build,
|
|
152
|
+
* and the stage's state-store lease, stay open until the surrounding
|
|
153
|
+
* `Scope` closes.
|
|
154
|
+
*/
|
|
155
|
+
export declare const plan: <Output, Req, const O extends PlanOptions>(input: O & {
|
|
156
|
+
readonly stack: Stack.ConfiguredStack<Output, Req>;
|
|
157
|
+
}) => Effect.Effect<StackPlan<PlanOutput<Output, O>>, import("effect/Config").ConfigError | import("effect/PlatformError").PlatformError, AlchemyContext | import("effect/process/ChildProcessSpawner").ChildProcessSpawner | import("../Auth/Credentials.ts").CredentialsStore | import("effect/crypto/Digest").Digest | import("effect/FileSystem").FileSystem | import("effect/http/HttpClient").HttpClient | import("../Interaction.ts").Interaction | import("effect/Path").Path | import("../Auth/Profile.ts").ProfileStore | import("effect/Scope").Scope | import("effect/crypto/SecureRandom").SecureRandom>;
|
|
158
|
+
/** Run a plan; a deploy returns the stack's output. */
|
|
159
|
+
export declare const apply: <Output>(plan: StackPlan<Output>) => Effect.Effect<import("../Input.ts").Input.Resolve<Output>, import("../Auth/AuthProvider.ts").AuthError | import("effect/Config").ConfigError | import("../Auth/Demand.ts").CredentialsRequired | Apply.DestroyError | import("../Output.ts").InvalidReferenceError | import("../Output.ts").MissingSourceError | import("../Auth/AuthProvider.ts").NeedsReauth | import("effect/PlatformError").PlatformError | import("../State/State.ts").StateStoreError, never>;
|
|
160
|
+
/** Stage used when a stack's providers are built without addressing a deployment. */
|
|
161
|
+
export declare const PLACEHOLDER_STAGE = "placeholder";
|
|
162
|
+
/**
|
|
163
|
+
* Build a stack's providers and state store without running its program or
|
|
164
|
+
* addressing a stage: what account-wide operations like `Nuke.scan` need.
|
|
165
|
+
*/
|
|
166
|
+
export declare const buildProviders: <Req>(stack: Stack.ConfiguredStack<unknown, Req>, options?: ConfigOptions) => Effect.Effect<Context.Context<AdoptPolicy | AlchemyContext | ArtifactStore | import("../index.ts").AuthProviders | Stack.Stack | Stage | State | Exclude<Extract<Req, Stack.ProviderServices>, Tracer.ParentSpan>>, import("effect/Config").ConfigError | import("effect/PlatformError").PlatformError, AlchemyContext | import("effect/process/ChildProcessSpawner").ChildProcessSpawner | import("../Auth/Credentials.ts").CredentialsStore | import("effect/crypto/Digest").Digest | import("effect/FileSystem").FileSystem | import("effect/http/HttpClient").HttpClient | import("../Interaction.ts").Interaction | import("effect/Path").Path | import("../Auth/Profile.ts").ProfileStore | import("effect/Scope").Scope | import("effect/crypto/SecureRandom").SecureRandom>;
|
|
167
|
+
export {};
|
|
168
|
+
//# sourceMappingURL=Operations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Operations.d.ts","sourceRoot":"","sources":["../../src/Alchemist/Operations.ts"],"names":[],"mappings":"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"}
|