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
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The core of the Alchemist operations: the builds they choose from (with
|
|
3
|
+
* or without the stack's program, or providers only), and the stack
|
|
4
|
+
* {@link plan} → {@link apply} pair deploys and destroys share. Drift and
|
|
5
|
+
* nuke have their own namespaces.
|
|
6
|
+
*/
|
|
7
|
+
import * as ConfigProvider from "effect/ConfigProvider";
|
|
8
|
+
import * as Context from "effect/Context";
|
|
9
|
+
import * as Effect from "effect/Effect";
|
|
10
|
+
import * as Layer from "effect/Layer";
|
|
11
|
+
import * as Logger from "effect/Logger";
|
|
12
|
+
import * as Option from "effect/Option";
|
|
13
|
+
import { CurrentLogAnnotations, CurrentLogSpans, MinimumLogLevel } from "effect/References";
|
|
14
|
+
import * as Tracer from "effect/Tracer";
|
|
15
|
+
import { AdoptPolicy } from "../AdoptPolicy.ts";
|
|
16
|
+
import { AlchemyContext } from "../AlchemyContext.ts";
|
|
17
|
+
import * as Apply from "../Apply.ts";
|
|
18
|
+
import { ArtifactStore, createArtifactStore } from "../Artifacts.ts";
|
|
19
|
+
import { withProfileOverride } from "../Auth/Resolve.ts";
|
|
20
|
+
import { emit, type PlannedAction, type PlannedResource } from "../Events.ts";
|
|
21
|
+
import * as Plan from "../Plan.ts";
|
|
22
|
+
import type { ResourceSelection, SelectionOutput } from "../ResourceSelection.ts";
|
|
23
|
+
import * as Stack from "../Stack.ts";
|
|
24
|
+
import { Stage } from "../Stage.ts";
|
|
25
|
+
import type { State } from "../State/State.ts";
|
|
26
|
+
import { loadConfigProvider, StackConfigOverrides } from "../Util/ConfigProvider.ts";
|
|
27
|
+
|
|
28
|
+
/** Which credentials and config a stack build sees. */
|
|
29
|
+
export interface ConfigOptions {
|
|
30
|
+
/** `.env` file layered under the process environment. */
|
|
31
|
+
readonly envFile?: string;
|
|
32
|
+
/** Profile whose credentials the run uses. Falls back to the active profile. */
|
|
33
|
+
readonly profile?: string;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export interface BuildOptions extends ConfigOptions {
|
|
37
|
+
readonly stage: string;
|
|
38
|
+
/** Run local (emulated) providers instead of the real cloud. */
|
|
39
|
+
readonly dev?: boolean;
|
|
40
|
+
/** Adopt pre-existing cloud resources instead of failing on conflict. */
|
|
41
|
+
readonly adopt?: boolean;
|
|
42
|
+
/** Upgrade an out-of-date state store without prompting. */
|
|
43
|
+
readonly updateStateStore?: boolean;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/** Config services shared by every stack build. */
|
|
47
|
+
export const configServices = Effect.fn("Alchemist.configServices")(function* (
|
|
48
|
+
options: ConfigOptions,
|
|
49
|
+
) {
|
|
50
|
+
const envFile = Option.fromNullishOr(options.envFile);
|
|
51
|
+
const commandConfig = yield* loadConfigProvider(envFile);
|
|
52
|
+
// `envFile` only steers a stack's default secrets list and `profile`
|
|
53
|
+
// pins the profile inside it; see stackConfigLayer.
|
|
54
|
+
return Layer.mergeAll(
|
|
55
|
+
Layer.succeed(StackConfigOverrides, {
|
|
56
|
+
envFile: options.envFile,
|
|
57
|
+
profile: options.profile,
|
|
58
|
+
}),
|
|
59
|
+
ConfigProvider.layer(withProfileOverride(commandConfig, options.profile)),
|
|
60
|
+
);
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
// TODO(unify stack builds): the one stack build everything should use; see
|
|
64
|
+
// the TODO in `EvalStack.ts` for the other paths still to migrate here.
|
|
65
|
+
|
|
66
|
+
/** The per-build services a stack's providers and program run under. */
|
|
67
|
+
const buildServices = Effect.fn("Alchemist.buildServices")(function* (options: BuildOptions) {
|
|
68
|
+
yield* emit({ type: "plan.phase", phase: "resolving-services" });
|
|
69
|
+
return yield* Layer.build(
|
|
70
|
+
Layer.mergeAll(
|
|
71
|
+
Layer.effect(
|
|
72
|
+
AlchemyContext,
|
|
73
|
+
Effect.map(AlchemyContext, (context) => ({
|
|
74
|
+
...context,
|
|
75
|
+
dev: options.dev ?? context.dev,
|
|
76
|
+
adopt: options.adopt ?? false,
|
|
77
|
+
updateStateStore: options.updateStateStore ?? false,
|
|
78
|
+
})),
|
|
79
|
+
),
|
|
80
|
+
Layer.succeedContext(
|
|
81
|
+
Context.make(AdoptPolicy, options.adopt ?? false).pipe(
|
|
82
|
+
Context.add(ArtifactStore, createArtifactStore()),
|
|
83
|
+
Context.add(Stage, options.stage),
|
|
84
|
+
),
|
|
85
|
+
),
|
|
86
|
+
yield* configServices(options),
|
|
87
|
+
),
|
|
88
|
+
);
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* The building fiber's logging and tracing, dropped from a built context:
|
|
93
|
+
* a plan or scan is applied later, and possibly under other loggers (an
|
|
94
|
+
* `onEvent` subscriber around `apply`), which providing the captured ones
|
|
95
|
+
* would silently replace.
|
|
96
|
+
*/
|
|
97
|
+
const withoutFiberLogging = Context.omit(
|
|
98
|
+
Logger.CurrentLoggers,
|
|
99
|
+
MinimumLogLevel,
|
|
100
|
+
CurrentLogAnnotations,
|
|
101
|
+
CurrentLogSpans,
|
|
102
|
+
Tracer.ParentSpan,
|
|
103
|
+
);
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Build a stack's providers and state store and run its program.
|
|
107
|
+
*
|
|
108
|
+
* @internal used by {@link plan} and `Logs`.
|
|
109
|
+
*/
|
|
110
|
+
export const buildStack = Effect.fn("Alchemist.build")(function* <Output, Req>(
|
|
111
|
+
stack: Stack.ConfiguredStack<Output, Req>,
|
|
112
|
+
options: BuildOptions,
|
|
113
|
+
) {
|
|
114
|
+
const baseContext = yield* buildServices(options);
|
|
115
|
+
const compiled = yield* Effect.provide(stack, baseContext);
|
|
116
|
+
return {
|
|
117
|
+
stack: compiled,
|
|
118
|
+
/** The stack's own providers and state store over the build's services. */
|
|
119
|
+
context: withoutFiberLogging(Context.merge(baseContext, compiled.services)),
|
|
120
|
+
};
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Build a stack's providers and state store without running its program:
|
|
125
|
+
* all that destroy, drift, and state access need, and safe when the
|
|
126
|
+
* program itself no longer runs.
|
|
127
|
+
*
|
|
128
|
+
* @internal used by {@link plan}, `Drift.scan`, and `State.store`.
|
|
129
|
+
*/
|
|
130
|
+
export const buildWithoutProgram = Effect.fn("Alchemist.buildWithoutProgram")(function* <Req>(
|
|
131
|
+
stack: Stack.ConfiguredStack<unknown, Req>,
|
|
132
|
+
options: BuildOptions,
|
|
133
|
+
) {
|
|
134
|
+
const baseContext = yield* buildServices(options);
|
|
135
|
+
const stackServices = yield* Effect.provide(
|
|
136
|
+
Stack.build({
|
|
137
|
+
name: stack.stackName,
|
|
138
|
+
providers: stack.providers,
|
|
139
|
+
state: stack.state,
|
|
140
|
+
secrets: stack.secrets,
|
|
141
|
+
}),
|
|
142
|
+
baseContext,
|
|
143
|
+
);
|
|
144
|
+
return {
|
|
145
|
+
stack: { ...Context.get(stackServices, Stack.Stack), output: undefined },
|
|
146
|
+
context: withoutFiberLogging(Context.merge(baseContext, stackServices)),
|
|
147
|
+
};
|
|
148
|
+
});
|
|
149
|
+
|
|
150
|
+
export interface PlanSummary {
|
|
151
|
+
readonly create: number;
|
|
152
|
+
readonly update: number;
|
|
153
|
+
readonly adopted: number;
|
|
154
|
+
readonly replace: number;
|
|
155
|
+
readonly delete: number;
|
|
156
|
+
readonly orphaned: number;
|
|
157
|
+
/** Actions that will run. */
|
|
158
|
+
readonly run: number;
|
|
159
|
+
readonly noop: number;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/** Whether a plan or drift scan proposes any cloud mutations (i.e. approval-worthy work). */
|
|
163
|
+
export const hasChanges = ({ summary }: { readonly summary: PlanSummary }): boolean =>
|
|
164
|
+
summary.create +
|
|
165
|
+
summary.update +
|
|
166
|
+
summary.adopted +
|
|
167
|
+
summary.replace +
|
|
168
|
+
summary.delete +
|
|
169
|
+
summary.orphaned +
|
|
170
|
+
summary.run >
|
|
171
|
+
0;
|
|
172
|
+
|
|
173
|
+
export const summarize = (plan: Plan.Plan): PlanSummary => {
|
|
174
|
+
const summary: { -readonly [K in keyof PlanSummary]: PlanSummary[K] } = {
|
|
175
|
+
create: 0,
|
|
176
|
+
update: 0,
|
|
177
|
+
adopted: 0,
|
|
178
|
+
replace: 0,
|
|
179
|
+
delete: 0,
|
|
180
|
+
orphaned: 0,
|
|
181
|
+
run: 0,
|
|
182
|
+
noop: 0,
|
|
183
|
+
};
|
|
184
|
+
for (const node of Object.values(plan.resources)) summary[node.action]++;
|
|
185
|
+
for (const node of Object.values(plan.actions)) summary[node.action]++;
|
|
186
|
+
for (const node of [...Object.values(plan.deletions), ...Object.values(plan.actionDeletions)]) {
|
|
187
|
+
if (node !== undefined) summary[node.action]++;
|
|
188
|
+
}
|
|
189
|
+
return summary;
|
|
190
|
+
};
|
|
191
|
+
|
|
192
|
+
/** The services a stack plan is applied under. */
|
|
193
|
+
type StackContext = Context.Context<State | Stack.Stack | Stage>;
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* A deploy or destroy plan: what will change, and the built stack it was
|
|
197
|
+
* planned against so {@link apply} runs without rebuilding.
|
|
198
|
+
*/
|
|
199
|
+
export interface StackPlan<Output = unknown> {
|
|
200
|
+
readonly stack: { readonly name: string; readonly stage: string };
|
|
201
|
+
readonly summary: PlanSummary;
|
|
202
|
+
/** Serializable resource rows (including orphan deletions). */
|
|
203
|
+
readonly resources: ReadonlyArray<PlannedResource>;
|
|
204
|
+
/** Serializable stack-action rows. */
|
|
205
|
+
readonly actions: ReadonlyArray<PlannedAction>;
|
|
206
|
+
/**
|
|
207
|
+
* The engine plan `apply` executes, for renderers.
|
|
208
|
+
* @internal its shape may change.
|
|
209
|
+
*/
|
|
210
|
+
readonly native: Plan.Plan<Output>;
|
|
211
|
+
/**
|
|
212
|
+
* The stack services the plan was computed under; they live in the caller's `Scope`.
|
|
213
|
+
* @internal `apply` runs in them.
|
|
214
|
+
*/
|
|
215
|
+
readonly context: StackContext;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
/** Describe an engine plan computed on a built stack. */
|
|
219
|
+
export const describeStackPlan = Effect.fn("Alchemist.describeStackPlan")(function* <Output>(
|
|
220
|
+
built: {
|
|
221
|
+
readonly stack: { readonly name: string; readonly stage: string };
|
|
222
|
+
readonly context: StackContext;
|
|
223
|
+
},
|
|
224
|
+
native: Plan.Plan<Output>,
|
|
225
|
+
) {
|
|
226
|
+
yield* emit({ type: "plan.phase", phase: "plan-ready" });
|
|
227
|
+
return {
|
|
228
|
+
stack: { name: built.stack.name, stage: built.stack.stage },
|
|
229
|
+
summary: summarize(native),
|
|
230
|
+
...Plan.describePlan(native),
|
|
231
|
+
native,
|
|
232
|
+
context: built.context,
|
|
233
|
+
} satisfies StackPlan<Output>;
|
|
234
|
+
});
|
|
235
|
+
|
|
236
|
+
/**
|
|
237
|
+
* Run the stack's program and plan what to create, update, replace, and
|
|
238
|
+
* delete so the stage matches it.
|
|
239
|
+
*/
|
|
240
|
+
export interface DeployPlanOptions extends BuildOptions, ResourceSelection {
|
|
241
|
+
readonly operation: "deploy";
|
|
242
|
+
/** Re-run every Action regardless of input drift. */
|
|
243
|
+
readonly force?: boolean;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
/**
|
|
247
|
+
* Plan deleting everything the stage owns. The program never runs, so this
|
|
248
|
+
* works even when it no longer does. Always the whole stage.
|
|
249
|
+
*/
|
|
250
|
+
export interface DestroyPlanOptions extends BuildOptions {
|
|
251
|
+
readonly operation: "destroy";
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
export type PlanOptions = DeployPlanOptions | DestroyPlanOptions;
|
|
255
|
+
|
|
256
|
+
/** What applying a plan made with `O` returns. */
|
|
257
|
+
export type PlanOutput<Output, O extends PlanOptions> = O extends { readonly operation: "destroy" }
|
|
258
|
+
? undefined
|
|
259
|
+
: SelectionOutput<Output, O>;
|
|
260
|
+
|
|
261
|
+
/**
|
|
262
|
+
* Plan a deploy or a destroy of `stack`. A filtered deploy plan applies to
|
|
263
|
+
* `undefined` and leaves the persisted stack output untouched. The build,
|
|
264
|
+
* and the stage's state-store lease, stay open until the surrounding
|
|
265
|
+
* `Scope` closes.
|
|
266
|
+
*/
|
|
267
|
+
export const plan = Effect.fn("Alchemist.plan")(function* <
|
|
268
|
+
Output,
|
|
269
|
+
Req,
|
|
270
|
+
const O extends PlanOptions,
|
|
271
|
+
>(input: O & { readonly stack: Stack.ConfiguredStack<Output, Req> }) {
|
|
272
|
+
if (input.operation === "destroy") {
|
|
273
|
+
const built = yield* buildWithoutProgram(input.stack, input);
|
|
274
|
+
const native = yield* Plan.destroy(built.stack).pipe(Effect.provide(built.context));
|
|
275
|
+
// SAFETY: `operation: "destroy"` is exactly when PlanOutput is `undefined`.
|
|
276
|
+
return (yield* describeStackPlan(built, native)) as StackPlan<PlanOutput<Output, O>>;
|
|
277
|
+
}
|
|
278
|
+
// `operation` is "deploy" here; a generic `O` doesn't narrow.
|
|
279
|
+
const deploy: DeployPlanOptions = input;
|
|
280
|
+
const built = yield* buildStack(input.stack, deploy);
|
|
281
|
+
const native = yield* Plan.make(built.stack, {
|
|
282
|
+
force: deploy.force,
|
|
283
|
+
include: deploy.include,
|
|
284
|
+
exclude: deploy.exclude,
|
|
285
|
+
}).pipe(Effect.provide(built.context));
|
|
286
|
+
// SAFETY: for `deploy`, PlanOutput is the selection's output.
|
|
287
|
+
return (yield* describeStackPlan(built, native)) as StackPlan<PlanOutput<Output, O>>;
|
|
288
|
+
});
|
|
289
|
+
|
|
290
|
+
/** Run a plan; a deploy returns the stack's output. */
|
|
291
|
+
export const apply = Effect.fn("Alchemist.apply")(function* <Output>(plan: StackPlan<Output>) {
|
|
292
|
+
return yield* Effect.provide(Apply.apply(plan.native), plan.context);
|
|
293
|
+
});
|
|
294
|
+
|
|
295
|
+
/** Stage used when a stack's providers are built without addressing a deployment. */
|
|
296
|
+
export const PLACEHOLDER_STAGE = "placeholder";
|
|
297
|
+
|
|
298
|
+
/**
|
|
299
|
+
* Build a stack's providers and state store without running its program or
|
|
300
|
+
* addressing a stage: what account-wide operations like `Nuke.scan` need.
|
|
301
|
+
*/
|
|
302
|
+
export const buildProviders = <Req>(
|
|
303
|
+
stack: Stack.ConfiguredStack<unknown, Req>,
|
|
304
|
+
options: ConfigOptions = {},
|
|
305
|
+
) =>
|
|
306
|
+
Effect.map(
|
|
307
|
+
buildWithoutProgram(stack, { ...options, stage: PLACEHOLDER_STAGE }),
|
|
308
|
+
(built) => built.context,
|
|
309
|
+
);
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import * as Effect from "effect/Effect";
|
|
2
2
|
import * as Option from "effect/Option";
|
|
3
3
|
import * as Redacted from "effect/Redacted";
|
|
4
|
-
import { AuthError } from "
|
|
5
|
-
import { CredentialsStore } from "
|
|
6
|
-
import { inspectProvider, type ProviderConnection } from "
|
|
7
|
-
import { withProfileCredentialsLock } from "
|
|
8
|
-
import { ProfileStore } from "
|
|
9
|
-
import
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
4
|
+
import { AuthError } from "../Auth/AuthProvider.ts";
|
|
5
|
+
import { CredentialsStore } from "../Auth/Credentials.ts";
|
|
6
|
+
import { inspectProvider, type ProviderConnection } from "../Auth/Inspect.ts";
|
|
7
|
+
import { withProfileCredentialsLock } from "../Auth/Lock.ts";
|
|
8
|
+
import { ProfileStore, reloadProviderConfig } from "../Auth/Profile.ts";
|
|
9
|
+
import { emit } from "../Events.ts";
|
|
10
|
+
import type { Interaction } from "../Interaction.ts";
|
|
11
|
+
import { collectAuthProviders } from "./AuthRegistry.ts";
|
|
12
|
+
import { DEFAULT_ENTRYPOINT, type Target } from "./Entrypoint.ts";
|
|
13
|
+
import { AlchemistInvalidInput, AlchemistNotFound } from "./Errors.ts";
|
|
13
14
|
|
|
14
|
-
/** Which project/profile pair a provider-scoped
|
|
15
|
+
/** Which project/profile pair a provider-scoped operation resolves against. */
|
|
15
16
|
export interface ProviderContext extends Target {
|
|
16
17
|
readonly profile: string;
|
|
17
18
|
}
|
|
@@ -25,7 +26,7 @@ export interface ProfileSummary {
|
|
|
25
26
|
}>;
|
|
26
27
|
}
|
|
27
28
|
|
|
28
|
-
export type { ProviderConnection } from "
|
|
29
|
+
export type { ProviderConnection } from "../Auth/Inspect.ts";
|
|
29
30
|
|
|
30
31
|
export interface ProfileSnapshot {
|
|
31
32
|
readonly name: string;
|
|
@@ -139,7 +140,7 @@ export const get = Effect.fn("Alchemist.profile.get")(function* (input: {
|
|
|
139
140
|
}),
|
|
140
141
|
),
|
|
141
142
|
),
|
|
142
|
-
)
|
|
143
|
+
).pipe(Effect.provideService(ProfileStore, profiles))
|
|
143
144
|
: Effect.succeed({
|
|
144
145
|
name: provider,
|
|
145
146
|
method: config.method ?? "unknown",
|
|
@@ -234,15 +235,14 @@ export const configureForm = Effect.fn("Alchemist.profile.configureForm")(functi
|
|
|
234
235
|
|
|
235
236
|
/**
|
|
236
237
|
* Connect or reconfigure a provider in a profile. Reported through
|
|
237
|
-
*
|
|
238
|
+
* the `provider.configure.started` event; interactive providers drive
|
|
238
239
|
* their own prompts.
|
|
239
240
|
*/
|
|
240
241
|
export const configure = Effect.fn("Alchemist.profile.configure")(function* (
|
|
241
242
|
input: ConfigureInput,
|
|
242
243
|
) {
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
_tag: "provider.configure.started",
|
|
244
|
+
yield* emit({
|
|
245
|
+
type: "provider.configure.started",
|
|
246
246
|
provider: input.provider,
|
|
247
247
|
});
|
|
248
248
|
const profiles = yield* ProfileStore;
|
|
@@ -278,8 +278,8 @@ export const configure = Effect.fn("Alchemist.profile.configure")(function* (
|
|
|
278
278
|
: undefined,
|
|
279
279
|
);
|
|
280
280
|
yield* profiles.setProviderConfig(input.profile, input.provider, config);
|
|
281
|
-
yield*
|
|
282
|
-
|
|
281
|
+
yield* emit({
|
|
282
|
+
type: "provider.configure.completed",
|
|
283
283
|
provider: input.provider,
|
|
284
284
|
});
|
|
285
285
|
return yield* get({
|
|
@@ -317,14 +317,13 @@ export const removeProvider = Effect.fn("Alchemist.profile.removeProvider")(func
|
|
|
317
317
|
|
|
318
318
|
/**
|
|
319
319
|
* Re-run login for connected providers without reconfiguring them. Each
|
|
320
|
-
* provider is reported
|
|
320
|
+
* provider is reported as the `provider.refresh.started` event.
|
|
321
321
|
*/
|
|
322
322
|
export const refresh = Effect.fn("Alchemist.profile.refresh")(function* (
|
|
323
323
|
input: ProviderContext & {
|
|
324
324
|
readonly providers?: ReadonlyArray<string>;
|
|
325
325
|
},
|
|
326
326
|
) {
|
|
327
|
-
const report = yield* Progress;
|
|
328
327
|
const profiles = yield* ProfileStore;
|
|
329
328
|
const stored = yield* profiles.ensureProfile(input.profile);
|
|
330
329
|
const registered = yield* registry(input);
|
|
@@ -356,7 +355,7 @@ export const refresh = Effect.fn("Alchemist.profile.refresh")(function* (
|
|
|
356
355
|
message: `Provider '${name}' is not connected or registered.`,
|
|
357
356
|
});
|
|
358
357
|
}
|
|
359
|
-
yield*
|
|
358
|
+
yield* emit({ type: "provider.refresh.started", provider: name });
|
|
360
359
|
const refreshed = yield* provider.login(
|
|
361
360
|
input.profile,
|
|
362
361
|
yield* provider.decodeConfig(input.profile, config),
|
|
@@ -369,11 +368,12 @@ export const refresh = Effect.fn("Alchemist.profile.refresh")(function* (
|
|
|
369
368
|
}),
|
|
370
369
|
),
|
|
371
370
|
),
|
|
371
|
+
reloadProviderConfig(profiles, provider, input.profile),
|
|
372
372
|
);
|
|
373
373
|
if (refreshed !== undefined) {
|
|
374
374
|
yield* profiles.setProviderConfig(input.profile, name, refreshed);
|
|
375
375
|
}
|
|
376
|
-
yield*
|
|
376
|
+
yield* emit({ type: "provider.refresh.completed", provider: name });
|
|
377
377
|
}
|
|
378
378
|
return yield* get({
|
|
379
379
|
name: input.profile,
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import * as ConfigProvider from "effect/ConfigProvider";
|
|
2
2
|
import * as Effect from "effect/Effect";
|
|
3
3
|
import * as Option from "effect/Option";
|
|
4
|
-
import type { EnvironmentVariable } from "
|
|
5
|
-
import { getEnv } from "
|
|
6
|
-
import { resolveProfileName } from "
|
|
7
|
-
import { loadConfigProvider } from "
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
4
|
+
import type { EnvironmentVariable } from "../Auth/AuthProvider.ts";
|
|
5
|
+
import { getEnv } from "../Auth/Env.ts";
|
|
6
|
+
import { resolveProfileName } from "../Auth/Resolve.ts";
|
|
7
|
+
import { loadConfigProvider } from "../Util/ConfigProvider.ts";
|
|
8
|
+
import { collectAuthProviders } from "./AuthRegistry.ts";
|
|
9
|
+
import { DEFAULT_ENTRYPOINT, type Target } from "./Entrypoint.ts";
|
|
10
|
+
import { AlchemistInvalidInput } from "./Errors.ts";
|
|
10
11
|
|
|
11
12
|
export interface CheckEnvironmentInput extends Target {
|
|
12
13
|
/** Providers to check. Omitted means every registered provider. */
|
package/src/Alchemist/Runtime.ts
CHANGED
|
@@ -1,20 +1,56 @@
|
|
|
1
1
|
import * as ConfigProvider from "effect/ConfigProvider";
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
2
3
|
import * as FetchHttpClient from "effect/http/FetchHttpClient";
|
|
4
|
+
import type { HttpClient } from "effect/http/HttpClient";
|
|
3
5
|
import * as Layer from "effect/Layer";
|
|
4
|
-
import
|
|
6
|
+
import * as Logger from "effect/Logger";
|
|
7
|
+
import * as LogLevel from "effect/LogLevel";
|
|
8
|
+
import type { PlatformError } from "effect/PlatformError";
|
|
9
|
+
import { type AlchemyContext, AlchemyContextLive } from "../AlchemyContext.ts";
|
|
5
10
|
import { ArtifactStore, createArtifactStore } from "../Artifacts.ts";
|
|
6
|
-
import { CredentialsStoreLive } from "../Auth/Credentials.ts";
|
|
7
|
-
import { ProfileStoreLive } from "../Auth/Profile.ts";
|
|
11
|
+
import { type CredentialsStore, CredentialsStoreLive } from "../Auth/Credentials.ts";
|
|
12
|
+
import { type ProfileStore, ProfileStoreLive } from "../Auth/Profile.ts";
|
|
8
13
|
import * as Interaction from "../Interaction.ts";
|
|
14
|
+
import { makePlainConsoleSink } from "../Util/ConsoleSink.ts";
|
|
9
15
|
import { PlatformServices } from "../Util/PlatformServices.ts";
|
|
10
|
-
import {
|
|
16
|
+
import { authRegistryLayer } from "./AuthRegistry.ts";
|
|
17
|
+
|
|
18
|
+
/** The services {@link layer} provides; every Alchemist operation runs under them. */
|
|
19
|
+
export type Services =
|
|
20
|
+
| AlchemyContext
|
|
21
|
+
| ArtifactStore
|
|
22
|
+
| CredentialsStore
|
|
23
|
+
| HttpClient
|
|
24
|
+
| Interaction.Interaction
|
|
25
|
+
| ProfileStore
|
|
26
|
+
| PlatformServices;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Log lines on the console. The caller's own loggers stay; only Effect's
|
|
30
|
+
* default console logger gives way to this sink, so lines print once. Typed
|
|
31
|
+
* events are left to `onEvent` subscribers (a renderer, or the caller's own
|
|
32
|
+
* handler).
|
|
33
|
+
*
|
|
34
|
+
* Info and above only: records replayed from sidecars and child processes
|
|
35
|
+
* bypass the fiber's minimum level, so the sink applies its own.
|
|
36
|
+
*/
|
|
37
|
+
const consoleSink = makePlainConsoleSink();
|
|
38
|
+
const ConsoleLog = Layer.unwrap(
|
|
39
|
+
Effect.map(Logger.CurrentLoggers, (current) =>
|
|
40
|
+
Logger.layer([
|
|
41
|
+
...[...current].filter((logger) => logger !== Logger.defaultLogger),
|
|
42
|
+
Logger.make<unknown, void>((options) => {
|
|
43
|
+
if (LogLevel.isGreaterThanOrEqualTo(options.logLevel, "Info")) consoleSink.log(options);
|
|
44
|
+
}),
|
|
45
|
+
]),
|
|
46
|
+
),
|
|
47
|
+
);
|
|
11
48
|
|
|
12
49
|
/**
|
|
13
50
|
* All services required by the programmatic Alchemist API.
|
|
14
51
|
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* provide {@link import("./Progress.ts").Progress} around individual calls.
|
|
52
|
+
* Log lines print on the console. Typed events are log records too; observe
|
|
53
|
+
* them around a call with {@link import("../Events.ts").onEvent}.
|
|
18
54
|
* The non-interactive Interaction default serves the engine paths that need
|
|
19
55
|
* one (state-store confirms fail typed; profile probes never prompt).
|
|
20
56
|
*
|
|
@@ -25,10 +61,7 @@ import { routeCacheLayer } from "./Session.ts";
|
|
|
25
61
|
* )
|
|
26
62
|
* ```
|
|
27
63
|
*/
|
|
28
|
-
|
|
29
|
-
export type Services = Layer.Success<ReturnType<typeof layer>>;
|
|
30
|
-
|
|
31
|
-
export const layer = () =>
|
|
64
|
+
export const layer = (): Layer.Layer<Services, PlatformError> =>
|
|
32
65
|
Layer.mergeAll(
|
|
33
66
|
Layer.mergeAll(AlchemyContextLive, ProfileStoreLive, CredentialsStoreLive).pipe(
|
|
34
67
|
Layer.provideMerge(PlatformServices),
|
|
@@ -36,6 +69,7 @@ export const layer = () =>
|
|
|
36
69
|
FetchHttpClient.layer,
|
|
37
70
|
ConfigProvider.layer(ConfigProvider.fromEnv()),
|
|
38
71
|
Layer.succeed(ArtifactStore, createArtifactStore()),
|
|
39
|
-
routeCacheLayer,
|
|
40
72
|
Interaction.layerNonInteractive(),
|
|
73
|
+
ConsoleLog,
|
|
74
|
+
authRegistryLayer,
|
|
41
75
|
);
|