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
package/THIRD_PARTY_LICENSES.md
CHANGED
|
@@ -125,8 +125,8 @@ been dedicated to the public domain. See <https://www.sqlite.org/copyright.html>
|
|
|
125
125
|
- Astro: [`a2240c43830e29c1d85667f4c610655d6b10253f`](https://github.com/withastro/astro/tree/a2240c43830e29c1d85667f4c610655d6b10253f)
|
|
126
126
|
- SvelteKit: [`f36b3a4cd307bd8c89e03fa191becc175e7b3077`](https://github.com/sveltejs/kit/tree/f36b3a4cd307bd8c89e03fa191becc175e7b3077)
|
|
127
127
|
- Waku: [`39e868f2638c27de9635c68ebf965e14a4112e9b`](https://github.com/wakujs/waku/tree/39e868f2638c27de9635c68ebf965e14a4112e9b)
|
|
128
|
-
- Cloudflare Workers SDK: [`
|
|
129
|
-
- Cloudflare Workers SDK (local R2 S3 endpoint, `R2BucketS3.worker.ts`): [`
|
|
128
|
+
- Cloudflare Workers SDK: [`8d98a15a05fa1f4d27654168ed16df1ff4ff1173`](https://github.com/cloudflare/workers-sdk/tree/8d98a15a05fa1f4d27654168ed16df1ff4ff1173)
|
|
129
|
+
- Cloudflare Workers SDK (local R2 S3 endpoint, `R2BucketS3.worker.ts`): [`8d98a15a05fa1f4d27654168ed16df1ff4ff1173`](https://github.com/cloudflare/workers-sdk/tree/8d98a15a05fa1f4d27654168ed16df1ff4ff1173)
|
|
130
130
|
- OpenNext for Cloudflare: [`da4b7fc8c89441a6f96205635fa70e329d1f0df7`](https://github.com/opennextjs/opennextjs-cloudflare/tree/da4b7fc8c89441a6f96205635fa70e329d1f0df7)
|
|
131
131
|
- SST: <https://github.com/sst/sst>
|
|
132
132
|
- node-sanitize-filename: <https://github.com/parshap/node-sanitize-filename>
|
package/bin/cli.js
CHANGED
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
import { spawn } from "node:child_process";
|
|
5
5
|
import * as NodeModule from "node:module";
|
|
6
6
|
import { pathToFileURL } from "node:url";
|
|
7
|
+
import * as SemVer from "effect/SemVer";
|
|
8
|
+
import * as SemVerRange from "effect/SemVerRange";
|
|
7
9
|
import path from "pathe";
|
|
8
10
|
|
|
9
11
|
const binDir = path.dirname(import.meta.filename);
|
|
@@ -114,6 +116,14 @@ async function runUnderNode() {
|
|
|
114
116
|
process.exit(1);
|
|
115
117
|
}
|
|
116
118
|
NodeModule.enableCompileCache?.();
|
|
119
|
+
// `--fast-distilled` opts in to distilled's lazy service stubs (see
|
|
120
|
+
// register-oxc.js). The env var carries the choice to the loader and to
|
|
121
|
+
// every Node child alchemy starts with it (dev exec child, sidecar).
|
|
122
|
+
// Flags after a `--` separator belong to someone else.
|
|
123
|
+
const separator = args.indexOf("--");
|
|
124
|
+
if ((separator === -1 ? args : args.slice(0, separator)).includes("--fast-distilled")) {
|
|
125
|
+
process.env.ALCHEMY_FAST_DISTILLED = "1";
|
|
126
|
+
}
|
|
117
127
|
const isCheckout = !(binDir.includes("/node_modules/") || binDir.includes("\\node_modules\\"));
|
|
118
128
|
const register = isCheckout ? "register-dev-mode.js" : "register-oxc.js";
|
|
119
129
|
await import(new URL(register, import.meta.url).href);
|
|
@@ -127,11 +137,9 @@ async function runUnderNode() {
|
|
|
127
137
|
* launcher must run before any TypeScript can be loaded.
|
|
128
138
|
*/
|
|
129
139
|
function supportsModuleHooks() {
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
(
|
|
133
|
-
|
|
134
|
-
(major === 25 && minor >= 1) ||
|
|
135
|
-
major >= 26
|
|
140
|
+
return SemVerRange.matches(
|
|
141
|
+
SemVerRange.parseUnsafe(">=22.22.3 <23.0.0-0 || >=24.11.1 <25.0.0-0 || >=25.1.0"),
|
|
142
|
+
SemVer.parseUnsafe(process.versions.node),
|
|
143
|
+
{ includePrerelease: true },
|
|
136
144
|
);
|
|
137
145
|
}
|
package/bin/register-oxc.js
CHANGED
|
@@ -34,18 +34,22 @@ enableCompileCache();
|
|
|
34
34
|
// distilled's lazy service stubs: with the `distilled-lazy` export condition
|
|
35
35
|
// a service module resolves to a stub that loads each operation on first
|
|
36
36
|
// use, so importing whole providers (as a stack does) costs a fraction of
|
|
37
|
-
// the heap.
|
|
38
|
-
//
|
|
39
|
-
//
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
37
|
+
// the heap. Opt-in: `alchemy --fast-distilled` (bin/cli.js turns the flag
|
|
38
|
+
// into `ALCHEMY_FAST_DISTILLED=1`, which child processes inherit), or the
|
|
39
|
+
// env var directly. Bundles never see the condition: a stub `require`s its
|
|
40
|
+
// full module at runtime, which no bundle contains. Installed before
|
|
41
|
+
// anything imports a provider.
|
|
42
|
+
if (process.env.ALCHEMY_FAST_DISTILLED === "1") {
|
|
43
|
+
registerHooks({
|
|
44
|
+
resolve(specifier, context, nextResolve) {
|
|
45
|
+
if (!specifier.startsWith("@distilled.cloud/")) return nextResolve(specifier, context);
|
|
46
|
+
return nextResolve(specifier, {
|
|
47
|
+
...context,
|
|
48
|
+
conditions: [...context.conditions, "distilled-lazy"],
|
|
49
|
+
});
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
}
|
|
49
53
|
|
|
50
54
|
const { registerOxc } = await import("@alchemy.run/node-utils/register-oxc");
|
|
51
55
|
|
package/lib/AdoptPolicy.d.ts
CHANGED
|
@@ -52,6 +52,27 @@ export declare class OwnedBySomeoneElse extends OwnedBySomeoneElse_base<{
|
|
|
52
52
|
physicalName?: string;
|
|
53
53
|
}> {
|
|
54
54
|
}
|
|
55
|
+
declare const UnverifiableReplacement_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 & {
|
|
56
|
+
readonly _tag: "UnverifiableReplacement";
|
|
57
|
+
} & Readonly<A>;
|
|
58
|
+
/**
|
|
59
|
+
* Engine-raised failure produced when a delete-first replacement in a
|
|
60
|
+
* dependency cycle must delete its previous generation before its new
|
|
61
|
+
* identity is known: precreate runs on unresolved props, and a provider
|
|
62
|
+
* without `observe`, or whose `observe` reports {@link Unresolved}, cannot
|
|
63
|
+
* check ownership first. Refusing before the delete keeps the
|
|
64
|
+
* previous generation; re-run with `--adopt` (or `adopt(true)`) to accept
|
|
65
|
+
* whatever the identity resolves to.
|
|
66
|
+
*/
|
|
67
|
+
export declare class UnverifiableReplacement extends UnverifiableReplacement_base<{
|
|
68
|
+
/** A human-readable description of why the replacement was refused. */
|
|
69
|
+
message: string;
|
|
70
|
+
/** The Resource Type (e.g. `AWS.Lambda.Function`). */
|
|
71
|
+
resourceType?: string;
|
|
72
|
+
/** The logical ID of the refused resource. */
|
|
73
|
+
logicalId?: string;
|
|
74
|
+
}> {
|
|
75
|
+
}
|
|
55
76
|
/**
|
|
56
77
|
* Brand a `read` return value as belonging to a different owner.
|
|
57
78
|
*
|
|
@@ -83,6 +104,58 @@ export declare const Unowned: {
|
|
|
83
104
|
<T extends object>(attrs: T): T;
|
|
84
105
|
is: (value: unknown) => boolean;
|
|
85
106
|
};
|
|
107
|
+
/**
|
|
108
|
+
* {@link Unowned} unless `attrs` is the generation a replacement is replacing:
|
|
109
|
+
* during a replacement `read` and `observe` receive that generation's
|
|
110
|
+
* attributes as `previous`, and a delete-first replacement that reuses its
|
|
111
|
+
* identity finds it under that same identity. `key` must identify the
|
|
112
|
+
* resource uniquely (a full resource name or an API id, not a display name).
|
|
113
|
+
*
|
|
114
|
+
* ```ts
|
|
115
|
+
* read: Effect.fn(function* ({ output, olds, previous }) {
|
|
116
|
+
* // ...
|
|
117
|
+
* return output ? attrs : unownedUnlessPrevious(attrs, previous, "name");
|
|
118
|
+
* }),
|
|
119
|
+
* ```
|
|
120
|
+
*/
|
|
121
|
+
export declare const unownedUnlessPrevious: <T extends object, K extends keyof T>(attrs: T, previous: Partial<Record<K, unknown>> | undefined, key: K) => T;
|
|
122
|
+
/**
|
|
123
|
+
* A provider's `observe` answer when the identity `precreate` would claim
|
|
124
|
+
* depends on props that have not resolved yet, so nothing can be checked.
|
|
125
|
+
* Unlike `undefined`, it does not report the identity as absent: the engine
|
|
126
|
+
* checks the resolved identity before `reconcile` claims it, and refuses a
|
|
127
|
+
* delete-first replacement that would delete its previous generation first.
|
|
128
|
+
*
|
|
129
|
+
* ```ts
|
|
130
|
+
* observe: Effect.fn(function* ({ id, news }) {
|
|
131
|
+
* if (!isResolved(news.namespace)) return Unresolved;
|
|
132
|
+
* // ...
|
|
133
|
+
* }),
|
|
134
|
+
* ```
|
|
135
|
+
*
|
|
136
|
+
* `precreate` must not write to an identity it cannot resolve.
|
|
137
|
+
*/
|
|
138
|
+
export declare const Unresolved: unique symbol;
|
|
139
|
+
export type Unresolved = typeof Unresolved;
|
|
140
|
+
declare const UnresolvedIdentity_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 & {
|
|
141
|
+
readonly _tag: "UnresolvedIdentity";
|
|
142
|
+
} & Readonly<A>;
|
|
143
|
+
/**
|
|
144
|
+
* Raised by a provider's `precreate` when the identity it must claim is still
|
|
145
|
+
* {@link Unresolved}. The engine resolves every prop that comes from outside
|
|
146
|
+
* a dependency cycle before precreate, so the identity depends on a peer in
|
|
147
|
+
* the resource's own cycle. Name the resource with a literal, or a value from
|
|
148
|
+
* outside the cycle.
|
|
149
|
+
*/
|
|
150
|
+
export declare class UnresolvedIdentity extends UnresolvedIdentity_base<{
|
|
151
|
+
/** A human-readable description of the unresolved identity. */
|
|
152
|
+
message: string;
|
|
153
|
+
/** The Resource Type (e.g. `AWS.Lambda.Function`). */
|
|
154
|
+
resourceType?: string;
|
|
155
|
+
/** The logical ID of the resource. */
|
|
156
|
+
logicalId?: string;
|
|
157
|
+
}> {
|
|
158
|
+
}
|
|
86
159
|
/**
|
|
87
160
|
* Strip the {@link Unowned} brand from an attributes object before persisting
|
|
88
161
|
* it — state should not carry per-deploy ownership-routing metadata.
|
package/lib/AdoptPolicy.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdoptPolicy.d.ts","sourceRoot":"","sources":["../src/AdoptPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAE1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;;AAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,WAAY,SAAQ,gBAAsD;CAAG;;;;AAE1F;;;;;;GAMG;AACH,qBAAa,kBAAmB,SAAQ,wBAAuC;IAC7E,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;CAAG;AAcL;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,OAAO,EAAE;IACpB,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;IAChC,EAAE,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;CAgBjC,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,MAAM,SAAS,CAAC,KAAG,CAIzD,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE;IAClB,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACjG,CAAC,EAAE,GAAG,KAAK,EACT,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,GACzC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;CAO5E,CAAC"}
|
|
1
|
+
{"version":3,"file":"AdoptPolicy.d.ts","sourceRoot":"","sources":["../src/AdoptPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAE1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;;AAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,WAAY,SAAQ,gBAAsD;CAAG;;;;AAE1F;;;;;;GAMG;AACH,qBAAa,kBAAmB,SAAQ,wBAAuC;IAC7E,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;CAAG;;;;AAEL;;;;;;;;GAQG;AACH,qBAAa,uBAAwB,SAAQ,6BAA4C;IACvF,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;CAAG;AAcL;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,OAAO,EAAE;IACpB,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;IAChC,EAAE,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;CAgBjC,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,qBAAqB,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,SAChE,CAAC,YACE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,OAC5C,CAAC,KACL,CAGiB,CAAC;AAErB;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,UAAU,EAAE,OAAO,MAAqC,CAAC;AACtE,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC;;;;AAE3C;;;;;;GAMG;AACH,qBAAa,kBAAmB,SAAQ,wBAAuC;IAC7E,+DAA+D;IAC/D,OAAO,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;CAAG;AAEL;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,MAAM,SAAS,CAAC,KAAG,CAIzD,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE;IAClB,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACjG,CAAC,EAAE,GAAG,KAAK,EACT,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,GACzC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;CAO5E,CAAC"}
|
package/lib/AdoptPolicy.js
CHANGED
|
@@ -40,6 +40,17 @@ export class AdoptPolicy extends Context.Service()("AdoptPolicy") {
|
|
|
40
40
|
*/
|
|
41
41
|
export class OwnedBySomeoneElse extends Data.TaggedError("OwnedBySomeoneElse") {
|
|
42
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* Engine-raised failure produced when a delete-first replacement in a
|
|
45
|
+
* dependency cycle must delete its previous generation before its new
|
|
46
|
+
* identity is known: precreate runs on unresolved props, and a provider
|
|
47
|
+
* without `observe`, or whose `observe` reports {@link Unresolved}, cannot
|
|
48
|
+
* check ownership first. Refusing before the delete keeps the
|
|
49
|
+
* previous generation; re-run with `--adopt` (or `adopt(true)`) to accept
|
|
50
|
+
* whatever the identity resolves to.
|
|
51
|
+
*/
|
|
52
|
+
export class UnverifiableReplacement extends Data.TaggedError("UnverifiableReplacement") {
|
|
53
|
+
}
|
|
43
54
|
/**
|
|
44
55
|
* Private symbol used to brand attribute objects returned by `read` as
|
|
45
56
|
* "exists in cloud, but not owned by this stack/stage/logical-id".
|
|
@@ -90,6 +101,49 @@ export const Unowned = Object.assign((attrs) => {
|
|
|
90
101
|
}, {
|
|
91
102
|
is: (value) => typeof value === "object" && value !== null && value[UnownedTag] === true,
|
|
92
103
|
});
|
|
104
|
+
/**
|
|
105
|
+
* {@link Unowned} unless `attrs` is the generation a replacement is replacing:
|
|
106
|
+
* during a replacement `read` and `observe` receive that generation's
|
|
107
|
+
* attributes as `previous`, and a delete-first replacement that reuses its
|
|
108
|
+
* identity finds it under that same identity. `key` must identify the
|
|
109
|
+
* resource uniquely (a full resource name or an API id, not a display name).
|
|
110
|
+
*
|
|
111
|
+
* ```ts
|
|
112
|
+
* read: Effect.fn(function* ({ output, olds, previous }) {
|
|
113
|
+
* // ...
|
|
114
|
+
* return output ? attrs : unownedUnlessPrevious(attrs, previous, "name");
|
|
115
|
+
* }),
|
|
116
|
+
* ```
|
|
117
|
+
*/
|
|
118
|
+
export const unownedUnlessPrevious = (attrs, previous, key) => previous !== undefined && previous[key] !== undefined && previous[key] === attrs[key]
|
|
119
|
+
? attrs
|
|
120
|
+
: Unowned(attrs);
|
|
121
|
+
/**
|
|
122
|
+
* A provider's `observe` answer when the identity `precreate` would claim
|
|
123
|
+
* depends on props that have not resolved yet, so nothing can be checked.
|
|
124
|
+
* Unlike `undefined`, it does not report the identity as absent: the engine
|
|
125
|
+
* checks the resolved identity before `reconcile` claims it, and refuses a
|
|
126
|
+
* delete-first replacement that would delete its previous generation first.
|
|
127
|
+
*
|
|
128
|
+
* ```ts
|
|
129
|
+
* observe: Effect.fn(function* ({ id, news }) {
|
|
130
|
+
* if (!isResolved(news.namespace)) return Unresolved;
|
|
131
|
+
* // ...
|
|
132
|
+
* }),
|
|
133
|
+
* ```
|
|
134
|
+
*
|
|
135
|
+
* `precreate` must not write to an identity it cannot resolve.
|
|
136
|
+
*/
|
|
137
|
+
export const Unresolved = Symbol("alchemy/Unresolved");
|
|
138
|
+
/**
|
|
139
|
+
* Raised by a provider's `precreate` when the identity it must claim is still
|
|
140
|
+
* {@link Unresolved}. The engine resolves every prop that comes from outside
|
|
141
|
+
* a dependency cycle before precreate, so the identity depends on a peer in
|
|
142
|
+
* the resource's own cycle. Name the resource with a literal, or a value from
|
|
143
|
+
* outside the cycle.
|
|
144
|
+
*/
|
|
145
|
+
export class UnresolvedIdentity extends Data.TaggedError("UnresolvedIdentity") {
|
|
146
|
+
}
|
|
93
147
|
/**
|
|
94
148
|
* Strip the {@link Unowned} brand from an attributes object before persisting
|
|
95
149
|
* it — state should not carry per-deploy ownership-routing metadata.
|
package/lib/AdoptPolicy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdoptPolicy.js","sourceRoot":"","sources":["../src/AdoptPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,OAAO,WAAY,SAAQ,OAAO,CAAC,OAAO,EAAwB,CAAC,aAAa,CAAC;CAAG;AAE1F;;;;;;GAMG;AACH,MAAM,OAAO,kBAAmB,SAAQ,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAS3E;CAAG;AAEL;;;;;;;;;GASG;AACH,MAAM,UAAU,GAAkB,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,CAAC,MAAM,OAAO,GAGhB,MAAM,CAAC,MAAM,CACf,CAAmB,KAAQ,EAAK,EAAE;IAChC,MAAM,MAAM,GAAG,EAAE,GAAG,KAAK,EAAO,CAAC;IACjC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE;QACxC,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,KAAK;KACpB,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC,EACD;IACE,EAAE,EAAE,CAAC,KAAc,EAAW,EAAE,CAC9B,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAK,KAAa,CAAC,UAAU,CAAC,KAAK,IAAI;CACrF,CACF,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAmB,KAAQ,EAAK,EAAE;IAC5D,MAAM,GAAG,GAAQ,EAAE,GAAG,KAAK,EAAE,CAAC;IAC9B,IAAI,UAAU,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC,UAAU,CAAC,CAAC;IAC9C,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAKd,CAAC,CAAC,OAAO,GAAiD,IAAI,EAAE,EAAE,CACpE,CAAC,GAAiC,EAAE,EAAE,CACpC,GAAG,CAAC,IAAI,CACN,OAAO,OAAO,KAAK,SAAS;IAC1B,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,OAAO,IAAI,IAAI,CAAC;IACrD,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,WAAW,EAAE,OAAO,CAAC,CACtD,CAAQ,CAAC"}
|
|
1
|
+
{"version":3,"file":"AdoptPolicy.js","sourceRoot":"","sources":["../src/AdoptPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,OAAO,WAAY,SAAQ,OAAO,CAAC,OAAO,EAAwB,CAAC,aAAa,CAAC;CAAG;AAE1F;;;;;;GAMG;AACH,MAAM,OAAO,kBAAmB,SAAQ,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAS3E;CAAG;AAEL;;;;;;;;GAQG;AACH,MAAM,OAAO,uBAAwB,SAAQ,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAOrF;CAAG;AAEL;;;;;;;;;GASG;AACH,MAAM,UAAU,GAAkB,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,CAAC,MAAM,OAAO,GAGhB,MAAM,CAAC,MAAM,CACf,CAAmB,KAAQ,EAAK,EAAE;IAChC,MAAM,MAAM,GAAG,EAAE,GAAG,KAAK,EAAO,CAAC;IACjC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE;QACxC,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,KAAK;KACpB,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC,EACD;IACE,EAAE,EAAE,CAAC,KAAc,EAAW,EAAE,CAC9B,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAK,KAAa,CAAC,UAAU,CAAC,KAAK,IAAI;CACrF,CACF,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,KAAQ,EACR,QAAiD,EACjD,GAAM,EACH,EAAE,CACL,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC;IACnF,CAAC,CAAC,KAAK;IACP,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAErB;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,UAAU,GAAkB,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAGtE;;;;;;GAMG;AACH,MAAM,OAAO,kBAAmB,SAAQ,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAO3E;CAAG;AAEL;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAmB,KAAQ,EAAK,EAAE;IAC5D,MAAM,GAAG,GAAQ,EAAE,GAAG,KAAK,EAAE,CAAC;IAC9B,IAAI,UAAU,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC,UAAU,CAAC,CAAC;IAC9C,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAKd,CAAC,CAAC,OAAO,GAAiD,IAAI,EAAE,EAAE,CACpE,CAAC,GAAiC,EAAE,EAAE,CACpC,GAAG,CAAC,IAAI,CACN,OAAO,OAAO,KAAK,SAAS;IAC1B,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,OAAO,IAAI,IAAI,CAAC;IACrD,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,WAAW,EAAE,OAAO,CAAC,CACtD,CAAQ,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import * as Layer from "effect/Layer";
|
|
3
|
+
import * as Option from "effect/Option";
|
|
4
|
+
import type { PlatformError } from "effect/PlatformError";
|
|
5
|
+
import * as Scope from "effect/Scope";
|
|
6
|
+
import { AuthError } from "../Auth/AuthProvider.ts";
|
|
7
|
+
import type { ContributionError } from "../Contributions.ts";
|
|
8
|
+
import type { Services } from "./Runtime.ts";
|
|
9
|
+
/** What collecting an auth registry can fail with. */
|
|
10
|
+
export type CollectAuthProvidersError = AuthError | ContributionError | PlatformError;
|
|
11
|
+
/** What collecting an auth registry runs under. */
|
|
12
|
+
export type CollectAuthProvidersServices = Services | Scope.Scope;
|
|
13
|
+
export interface CollectAuthProvidersOptions {
|
|
14
|
+
readonly main: string;
|
|
15
|
+
readonly envFile: Option.Option<string>;
|
|
16
|
+
readonly profile: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Memoize auth registries for one command or API runtime: profile flows
|
|
20
|
+
* collect them repeatedly, and concurrent collections of the same project
|
|
21
|
+
* share one. Registries are built in this layer's scope, so a cached one
|
|
22
|
+
* never outlives the services its providers captured. Failures are not
|
|
23
|
+
* cached.
|
|
24
|
+
*/
|
|
25
|
+
export declare const authRegistryLayer: Layer.Layer<never, never, never>;
|
|
26
|
+
export declare const collectAuthProviders: (options: CollectAuthProvidersOptions) => Effect.Effect<{
|
|
27
|
+
[providerName: string]: import("../Auth/AuthProvider.ts").AuthProvider<{
|
|
28
|
+
method: string;
|
|
29
|
+
}, unknown>;
|
|
30
|
+
}, CollectAuthProvidersError, CollectAuthProvidersServices>;
|
|
31
|
+
//# sourceMappingURL=AuthRegistry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthRegistry.d.ts","sourceRoot":"","sources":["../../src/Alchemist/AuthRegistry.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,SAAS,EAAiB,MAAM,yBAAyB,CAAC;AAGnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAI7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAM7C,sDAAsD;AACtD,MAAM,MAAM,yBAAyB,GAAG,SAAS,GAAG,iBAAiB,GAAG,aAAa,CAAC;AAEtF,mDAAmD;AACnD,MAAM,MAAM,4BAA4B,GAAG,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC;AAUlE,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAoGD;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,kCAY7B,CAAC;AAEF,eAAO,MAAM,oBAAoB,YAAa,2BAA2B;;;;2DACZ,CAAC"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import * as Cause from "effect/Cause";
|
|
2
|
+
import * as Context from "effect/Context";
|
|
3
|
+
import * as Duration from "effect/Duration";
|
|
4
|
+
import * as Effect from "effect/Effect";
|
|
5
|
+
import * as FileSystem from "effect/FileSystem";
|
|
6
|
+
import * as Layer from "effect/Layer";
|
|
7
|
+
import * as Option from "effect/Option";
|
|
8
|
+
import * as Schema from "effect/Schema";
|
|
9
|
+
import * as Scope from "effect/Scope";
|
|
10
|
+
import { AuthError, AuthProviders } from "../Auth/AuthProvider.js";
|
|
11
|
+
import { SuppressMissingProviderConfig } from "../Auth/Profile.js";
|
|
12
|
+
import * as Contributions from "../Contributions.js";
|
|
13
|
+
import { makeCachedFunction } from "../Util/cached-function.js";
|
|
14
|
+
import { DEFAULT_ENTRYPOINT, importStack } from "./Entrypoint.js";
|
|
15
|
+
import * as Operations from "./Operations.js";
|
|
16
|
+
/**
|
|
17
|
+
* Every provider's auth provider, merged into one registering layer. One
|
|
18
|
+
* provider whose auth fails to load is skipped with a warning, so it can't
|
|
19
|
+
* take every other provider's auth down with it.
|
|
20
|
+
*/
|
|
21
|
+
const contributedAuth = Effect.gen(function* () {
|
|
22
|
+
const layers = yield* Effect.forEach(yield* Contributions.load(), (provider) => provider.auth
|
|
23
|
+
? Contributions.resolve(provider, "auth", provider.auth).pipe(Effect.catch((error) => Effect.as(Effect.logWarning(error.message), Layer.empty)))
|
|
24
|
+
: Effect.succeed(Layer.empty), { concurrency: "unbounded" });
|
|
25
|
+
return Layer.mergeAll(Layer.empty, ...layers);
|
|
26
|
+
});
|
|
27
|
+
/** Register every installed provider's auth into the ambient registry. */
|
|
28
|
+
const registerContributedAuth = Effect.fn("registerContributedAuth")(function* (options) {
|
|
29
|
+
const shared = yield* Operations.configServices({
|
|
30
|
+
...options,
|
|
31
|
+
envFile: Option.getOrUndefined(options.envFile),
|
|
32
|
+
});
|
|
33
|
+
yield* Layer.build(Layer.provide(yield* contributedAuth, shared));
|
|
34
|
+
});
|
|
35
|
+
const isMissingProviderConfig = Schema.is(Schema.Struct({ _tag: Schema.Literals(["MissingProviderConfig"]) }));
|
|
36
|
+
/**
|
|
37
|
+
* Every auth provider reachable from the current project: the built-ins, plus
|
|
38
|
+
* whatever the user's stack module registers when it is importable.
|
|
39
|
+
*/
|
|
40
|
+
const collectAuthProvidersUncached = Effect.fn("collectAuthProvidersUncached")(function* (options) {
|
|
41
|
+
// Everything built below registers into this one registry: the
|
|
42
|
+
// registry layers reuse an ambient registry instead of starting fresh.
|
|
43
|
+
const authProviders = {};
|
|
44
|
+
const collect = Effect.provideService(AuthProviders, authProviders);
|
|
45
|
+
yield* registerContributedAuth(options).pipe(collect);
|
|
46
|
+
const fs = yield* FileSystem.FileSystem;
|
|
47
|
+
const entrypointExists = yield* fs.exists(options.main);
|
|
48
|
+
const missingDefault = options.main === DEFAULT_ENTRYPOINT && !entrypointExists;
|
|
49
|
+
if (!entrypointExists && !missingDefault) {
|
|
50
|
+
return yield* AuthError.make({
|
|
51
|
+
message: `Stack entrypoint '${options.main}' does not exist.`,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
if (!missingDefault) {
|
|
55
|
+
yield* importStack(options.main).pipe(Effect.flatMap((stack) => Operations.buildProviders(stack, {
|
|
56
|
+
profile: options.profile,
|
|
57
|
+
envFile: Option.getOrUndefined(options.envFile),
|
|
58
|
+
})), collect, Effect.timeoutOption(Duration.seconds(15)), Effect.catchCause((cause) => {
|
|
59
|
+
const suppressed = cause.reasons.some((reason) => {
|
|
60
|
+
const error = Cause.isFailReason(reason)
|
|
61
|
+
? reason.error
|
|
62
|
+
: Cause.isDieReason(reason)
|
|
63
|
+
? reason.defect
|
|
64
|
+
: undefined;
|
|
65
|
+
return isMissingProviderConfig(error);
|
|
66
|
+
});
|
|
67
|
+
return suppressed
|
|
68
|
+
? Effect.void
|
|
69
|
+
: Effect.fail(AuthError.make({
|
|
70
|
+
message: `Could not load auth providers from '${options.main}'.`,
|
|
71
|
+
cause,
|
|
72
|
+
}));
|
|
73
|
+
}));
|
|
74
|
+
}
|
|
75
|
+
return authProviders;
|
|
76
|
+
}, Effect.provideService(SuppressMissingProviderConfig, true));
|
|
77
|
+
/**
|
|
78
|
+
* Collects auth registries. Uncached by default; {@link authRegistryLayer}
|
|
79
|
+
* memoizes them for its own lifetime.
|
|
80
|
+
*/
|
|
81
|
+
const AuthRegistry = Context.Reference("Alchemy/Alchemist/AuthRegistry", {
|
|
82
|
+
defaultValue: () => collectAuthProvidersUncached,
|
|
83
|
+
});
|
|
84
|
+
/**
|
|
85
|
+
* Memoize auth registries for one command or API runtime: profile flows
|
|
86
|
+
* collect them repeatedly, and concurrent collections of the same project
|
|
87
|
+
* share one. Registries are built in this layer's scope, so a cached one
|
|
88
|
+
* never outlives the services its providers captured. Failures are not
|
|
89
|
+
* cached.
|
|
90
|
+
*/
|
|
91
|
+
export const authRegistryLayer = Layer.effect(AuthRegistry, Effect.map(Effect.scope, (scope) => makeCachedFunction((options) => collectAuthProvidersUncached(options).pipe(Scope.provide(scope)), {
|
|
92
|
+
key: ([options]) => JSON.stringify([options.main, Option.getOrNull(options.envFile), options.profile]),
|
|
93
|
+
})));
|
|
94
|
+
export const collectAuthProviders = (options) => Effect.flatMap(AuthRegistry, (collect) => collect(options));
|
|
95
|
+
//# sourceMappingURL=AuthRegistry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthRegistry.js","sourceRoot":"","sources":["../../src/Alchemist/AuthRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import type * as Context from "effect/Context";
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
import * as EngineDrift from "../Drift.ts";
|
|
4
|
+
import type { Plan } from "../Plan.ts";
|
|
5
|
+
import type { ConfiguredStack } from "../Stack.ts";
|
|
6
|
+
import type { State } from "../State/State.ts";
|
|
7
|
+
import { type BuildOptions, type PlanSummary } from "./Operations.ts";
|
|
8
|
+
export interface DriftedResource {
|
|
9
|
+
readonly fqn: string;
|
|
10
|
+
readonly logicalId: string;
|
|
11
|
+
readonly resourceType: string;
|
|
12
|
+
/** `skipped`: not checked (no `read`, or an interrupted deploy); see `reason`. */
|
|
13
|
+
readonly status: "in-sync" | "drifted" | "missing" | "skipped";
|
|
14
|
+
readonly reason?: string;
|
|
15
|
+
readonly actual?: unknown;
|
|
16
|
+
}
|
|
17
|
+
/** A drift check and the repair it proposes; only {@link execute} runs it. */
|
|
18
|
+
export interface DriftScan {
|
|
19
|
+
readonly stack: {
|
|
20
|
+
readonly name: string;
|
|
21
|
+
readonly stage: string;
|
|
22
|
+
};
|
|
23
|
+
readonly resources: ReadonlyArray<DriftedResource>;
|
|
24
|
+
/** What the repair would change. */
|
|
25
|
+
readonly summary: PlanSummary;
|
|
26
|
+
/**
|
|
27
|
+
* The repair as an engine plan, for renderers.
|
|
28
|
+
* @internal its shape may change.
|
|
29
|
+
*/
|
|
30
|
+
readonly native: Plan;
|
|
31
|
+
/**
|
|
32
|
+
* The stack services drift was checked under.
|
|
33
|
+
* @internal {@link execute} runs in them.
|
|
34
|
+
*/
|
|
35
|
+
readonly context: Context.Context<State>;
|
|
36
|
+
}
|
|
37
|
+
export interface ScanOptions extends BuildOptions {
|
|
38
|
+
readonly stack: ConfiguredStack<unknown, unknown>;
|
|
39
|
+
}
|
|
40
|
+
/** Whether the drift check found anything worth repairing. */
|
|
41
|
+
export declare const hasDrift: (scan: DriftScan) => boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Compare deployed state against the real cloud and plan the repair. Drift
|
|
44
|
+
* reads state and providers only, so the stack's program never runs.
|
|
45
|
+
*/
|
|
46
|
+
export declare const scan: (input: ScanOptions) => Effect.Effect<{
|
|
47
|
+
stack: {
|
|
48
|
+
name: string;
|
|
49
|
+
stage: string;
|
|
50
|
+
};
|
|
51
|
+
resources: {
|
|
52
|
+
fqn: string;
|
|
53
|
+
logicalId: string;
|
|
54
|
+
resourceType: string;
|
|
55
|
+
status: "drifted" | "in-sync" | "missing" | "skipped";
|
|
56
|
+
reason: string | undefined;
|
|
57
|
+
actual: any;
|
|
58
|
+
}[];
|
|
59
|
+
summary: PlanSummary;
|
|
60
|
+
native: Plan;
|
|
61
|
+
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 | State>;
|
|
62
|
+
}, any, 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>;
|
|
63
|
+
/**
|
|
64
|
+
* Repair the drift `scan` found: reconcile each drifted or missing resource
|
|
65
|
+
* back to its last-deployed desired state. Only those resources are touched;
|
|
66
|
+
* they are re-read first, so one that is back in sync is left alone, and
|
|
67
|
+
* drift that appeared after the scan waits for the next one.
|
|
68
|
+
*/
|
|
69
|
+
export declare const execute: (scan: DriftScan) => Effect.Effect<EngineDrift.DriftResult, any, never>;
|
|
70
|
+
//# sourceMappingURL=Drift.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Drift.d.ts","sourceRoot":"","sources":["../../src/Alchemist/Drift.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,WAAW,MAAM,aAAa,CAAC;AAE3C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,WAAW,EACjB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,kFAAkF;IAClF,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAC/D,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,8EAA8E;AAC9E,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAClE,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IACnD,oCAAoC;IACpC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,WAAY,SAAQ,YAAY;IAC/C,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;CACnD;AAED,8DAA8D;AAC9D,eAAO,MAAM,QAAQ,SAAU,SAAS,KAAG,OACwD,CAAC;AASpG;;;GAGG;AACH,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;kfAyBf,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,OAAO,yEAQlB,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import * as EngineDrift from "../Drift.js";
|
|
3
|
+
import { emit } from "../Events.js";
|
|
4
|
+
import { buildWithoutProgram, summarize, } from "./Operations.js";
|
|
5
|
+
/** Whether the drift check found anything worth repairing. */
|
|
6
|
+
export const hasDrift = (scan) => scan.resources.some((resource) => resource.status === "drifted" || resource.status === "missing");
|
|
7
|
+
const status = (action) => action === "unchanged"
|
|
8
|
+
? "in-sync"
|
|
9
|
+
: action === "missing" || action === "skipped"
|
|
10
|
+
? action
|
|
11
|
+
: "drifted";
|
|
12
|
+
/**
|
|
13
|
+
* Compare deployed state against the real cloud and plan the repair. Drift
|
|
14
|
+
* reads state and providers only, so the stack's program never runs.
|
|
15
|
+
*/
|
|
16
|
+
export const scan = Effect.fn("Alchemist.Drift.scan")(function* (input) {
|
|
17
|
+
const built = yield* buildWithoutProgram(input.stack, input);
|
|
18
|
+
const identity = {
|
|
19
|
+
name: built.stack.name,
|
|
20
|
+
stage: built.stack.stage,
|
|
21
|
+
};
|
|
22
|
+
// The engine's phase and per-resource observation events flow through the
|
|
23
|
+
// log as events; drift-flavored wording is the renderer's job
|
|
24
|
+
// (renderPlanning's computingLabel).
|
|
25
|
+
const { result, plan } = yield* EngineDrift.plan(identity).pipe(Effect.provide(built.context));
|
|
26
|
+
yield* emit({ type: "plan.phase", phase: "plan-ready" });
|
|
27
|
+
return {
|
|
28
|
+
stack: identity,
|
|
29
|
+
resources: Object.values(result.resources).map((resource) => ({
|
|
30
|
+
fqn: resource.fqn,
|
|
31
|
+
logicalId: resource.logicalId,
|
|
32
|
+
resourceType: resource.resourceType,
|
|
33
|
+
status: status(resource.action),
|
|
34
|
+
reason: resource.reason,
|
|
35
|
+
actual: resource.attr,
|
|
36
|
+
})),
|
|
37
|
+
summary: summarize(plan),
|
|
38
|
+
native: plan,
|
|
39
|
+
context: built.context,
|
|
40
|
+
};
|
|
41
|
+
});
|
|
42
|
+
/**
|
|
43
|
+
* Repair the drift `scan` found: reconcile each drifted or missing resource
|
|
44
|
+
* back to its last-deployed desired state. Only those resources are touched;
|
|
45
|
+
* they are re-read first, so one that is back in sync is left alone, and
|
|
46
|
+
* drift that appeared after the scan waits for the next one.
|
|
47
|
+
*/
|
|
48
|
+
export const execute = Effect.fn("Alchemist.Drift.execute")(function* (scan) {
|
|
49
|
+
const only = scan.resources
|
|
50
|
+
.filter((resource) => resource.status === "drifted" || resource.status === "missing")
|
|
51
|
+
.map((resource) => resource.fqn);
|
|
52
|
+
return yield* Effect.provide(EngineDrift.repair({ name: scan.stack.name, stage: scan.stack.stage }, { only }), scan.context);
|
|
53
|
+
});
|
|
54
|
+
//# sourceMappingURL=Drift.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Drift.js","sourceRoot":"","sources":["../../src/Alchemist/Drift.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import * as Context from "effect/Context";
|
|
1
2
|
import * as Effect from "effect/Effect";
|
|
2
3
|
import * as FileSystem from "effect/FileSystem";
|
|
3
4
|
import * as Path from "effect/Path";
|
|
5
|
+
import type { ConfiguredStack } from "../Stack.ts";
|
|
4
6
|
import { UserFacingError } from "../UserFacingError.ts";
|
|
5
7
|
declare const StackEntrypointError_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 & {
|
|
6
8
|
readonly _tag: "StackEntrypointError";
|
|
@@ -13,10 +15,32 @@ export declare class StackEntrypointError extends StackEntrypointError_base<{
|
|
|
13
15
|
export declare const DEFAULT_ENTRYPOINT = "alchemy.run.ts";
|
|
14
16
|
/**
|
|
15
17
|
* The absolute path of the stack entrypoint, or the user-facing error for
|
|
16
|
-
* a missing one. Kept
|
|
17
|
-
*
|
|
18
|
-
* loading the engine that module carries.
|
|
18
|
+
* a missing one. Kept free of the engine so the `alchemy dev` supervisor can
|
|
19
|
+
* check the entry before it starts an exec child.
|
|
19
20
|
*/
|
|
20
21
|
export declare const resolveStackEntrypoint: (main: string) => Effect.Effect<string, import("effect/PlatformError").PlatformError | StackEntrypointError, FileSystem.FileSystem | Path.Path>;
|
|
22
|
+
export interface StackModuleLoader {
|
|
23
|
+
readonly import: (url: string) => Promise<{
|
|
24
|
+
readonly default?: unknown;
|
|
25
|
+
}>;
|
|
26
|
+
}
|
|
27
|
+
export declare const StackModuleLoader: Context.Reference<StackModuleLoader>;
|
|
28
|
+
/**
|
|
29
|
+
* Import a stack entrypoint and return its default export, the stack value
|
|
30
|
+
* every stack operation takes.
|
|
31
|
+
*/
|
|
32
|
+
export declare const importStack: (main: string) => Effect.Effect<ConfiguredStack<unknown, unknown>, import("effect/PlatformError").PlatformError | StackEntrypointError, FileSystem.FileSystem | Path.Path>;
|
|
33
|
+
/**
|
|
34
|
+
* Which project and credentials an operation acts under. The optional fields
|
|
35
|
+
* fall back to the same defaults the CLI uses.
|
|
36
|
+
*/
|
|
37
|
+
export interface Target {
|
|
38
|
+
/** Stack entrypoint. @default "alchemy.run.ts" */
|
|
39
|
+
readonly entrypoint?: string;
|
|
40
|
+
/** Profile whose credentials the run uses. Falls back to the active profile. */
|
|
41
|
+
readonly profile?: string;
|
|
42
|
+
/** `.env` file layered under the process environment. */
|
|
43
|
+
readonly envFile?: string;
|
|
44
|
+
}
|
|
21
45
|
export {};
|
|
22
46
|
//# sourceMappingURL=Entrypoint.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Entrypoint.d.ts","sourceRoot":"","sources":["../../src/Alchemist/Entrypoint.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"Entrypoint.d.ts","sourceRoot":"","sources":["../../src/Alchemist/Entrypoint.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAE1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAGpC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;;;;AAExD,qBAAa,oBAAqB,SAAQ,0BAAyC;IACjF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;IACA,QAAQ,CAAC,CAAC,eAAe,CAAC,QAAQ;CACnC;AAED,eAAO,MAAM,kBAAkB,mBAAmB,CAAC;AAEnD;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,iJAUjC,CAAC;AAEH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAC3E;AAED,eAAO,MAAM,iBAAiB,sCAG7B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,WAAW,4KAgBtB,CAAC;AAEH;;;GAGG;AACH,MAAM,WAAW,MAAM;IACrB,kDAAkD;IAClD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,gFAAgF;IAChF,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,yDAAyD;IACzD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B"}
|