alchemy 2.0.0-beta.13 → 2.0.0-beta.15
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/bin/alchemy.js +9477 -9290
- package/bin/alchemy.js.map +1 -1
- package/bin/alchemy.ts +6 -2
- package/bin/cli.js +61 -0
- package/bin/commands/deploy.ts +6 -4
- package/bin/commands/login.ts +1 -1
- package/bin/commands/logs.ts +1 -1
- package/bin/commands/state.ts +233 -0
- package/bin/commands/tail.ts +1 -1
- package/lib/AWS/AutoScaling/LaunchTemplate.d.ts +1 -1
- package/lib/AWS/EC2/Instance.d.ts +1 -1
- package/lib/AWS/EC2/hosted.d.ts +2 -2
- package/lib/AWS/ECS/Task.d.ts +4 -4
- package/lib/AWS/ECS/Task.d.ts.map +1 -1
- package/lib/AWS/ECS/Task.js +2 -2
- package/lib/AWS/ECS/Task.js.map +1 -1
- package/lib/AWS/Environment.d.ts +2 -2
- package/lib/AWS/Lambda/BucketEventSource.d.ts +1 -1
- package/lib/AWS/Lambda/BucketEventSource.d.ts.map +1 -1
- package/lib/AWS/Lambda/EventBridgeEventSource.d.ts +1 -1
- package/lib/AWS/Lambda/EventBridgeEventSource.d.ts.map +1 -1
- package/lib/AWS/Lambda/Function.d.ts +2 -2
- package/lib/AWS/Lambda/Function.d.ts.map +1 -1
- package/lib/AWS/Lambda/Function.js +1 -2
- package/lib/AWS/Lambda/Function.js.map +1 -1
- package/lib/AWS/Lambda/QueueEventSource.d.ts +1 -1
- package/lib/AWS/Lambda/QueueEventSource.d.ts.map +1 -1
- package/lib/AWS/Lambda/StreamEventSource.d.ts +1 -1
- package/lib/AWS/Lambda/StreamEventSource.d.ts.map +1 -1
- package/lib/AWS/Lambda/TableEventSource.d.ts +1 -1
- package/lib/AWS/Lambda/TableEventSource.d.ts.map +1 -1
- package/lib/AWS/Lambda/TopicEventSource.d.ts +1 -1
- package/lib/AWS/Lambda/TopicEventSource.d.ts.map +1 -1
- package/lib/AWS/SQS/QueueSink.d.ts.map +1 -1
- package/lib/AWS/SQS/QueueSink.js +1 -2
- package/lib/AWS/SQS/QueueSink.js.map +1 -1
- package/lib/Agent/coding/bash.d.ts +2 -6
- package/lib/Agent/coding/bash.d.ts.map +1 -1
- package/lib/Agent/coding/bash.js +2 -3
- package/lib/Agent/coding/bash.js.map +1 -1
- package/lib/Agent/coding/edit.d.ts +1 -1
- package/lib/Agent/coding/glob.d.ts +2 -4
- package/lib/Agent/coding/glob.d.ts.map +1 -1
- package/lib/Agent/coding/glob.js +1 -2
- package/lib/Agent/coding/glob.js.map +1 -1
- package/lib/Agent/coding/grep.d.ts +2 -4
- package/lib/Agent/coding/grep.d.ts.map +1 -1
- package/lib/Agent/coding/grep.js +1 -2
- package/lib/Agent/coding/grep.js.map +1 -1
- package/lib/Agent/coding/read.d.ts +1 -1
- package/lib/Agent/coding/write.d.ts +1 -1
- package/lib/Agent/lsp/client.d.ts +2 -2
- package/lib/Agent/util/ripgrep.d.ts +2 -2
- package/lib/AlchemyContext.d.ts +13 -0
- package/lib/AlchemyContext.d.ts.map +1 -0
- package/lib/AlchemyContext.js +18 -0
- package/lib/AlchemyContext.js.map +1 -0
- package/lib/Auth/AuthProvider.js +1 -1
- package/lib/Auth/AuthProvider.js.map +1 -1
- package/lib/Auth/Profile.d.ts +1 -1
- package/lib/Auth/index.d.ts +3 -1
- package/lib/Auth/index.d.ts.map +1 -1
- package/lib/Auth/index.js +3 -0
- package/lib/Auth/index.js.map +1 -1
- package/lib/Build/Command.d.ts +1 -1
- package/lib/Build/Memo.d.ts +1 -1
- package/lib/Bundle/Docker.d.ts +3 -3
- package/lib/Bundle/TempRoot.d.ts +3 -3
- package/lib/Cli/LoggingCli.d.ts +4 -0
- package/lib/Cli/LoggingCli.d.ts.map +1 -0
- package/lib/{Test/TestCli.js → Cli/LoggingCli.js} +3 -3
- package/lib/Cli/LoggingCli.js.map +1 -0
- package/lib/Cli/index.d.ts +0 -1
- package/lib/Cli/index.d.ts.map +1 -1
- package/lib/Cli/index.js +4 -1
- package/lib/Cli/index.js.map +1 -1
- package/lib/Cloudflare/ApiToken/AccountApiToken.d.ts +58 -0
- package/lib/Cloudflare/ApiToken/AccountApiToken.d.ts.map +1 -0
- package/lib/Cloudflare/ApiToken/AccountApiToken.js +137 -0
- package/lib/Cloudflare/ApiToken/AccountApiToken.js.map +1 -0
- package/lib/Cloudflare/ApiToken/Common.d.ts +91 -0
- package/lib/Cloudflare/ApiToken/Common.d.ts.map +1 -0
- package/lib/Cloudflare/ApiToken/Common.js +61 -0
- package/lib/Cloudflare/ApiToken/Common.js.map +1 -0
- package/lib/Cloudflare/ApiToken/PermissionGroups.d.ts +1549 -0
- package/lib/Cloudflare/ApiToken/PermissionGroups.d.ts.map +1 -0
- package/lib/Cloudflare/ApiToken/PermissionGroups.js +1856 -0
- package/lib/Cloudflare/ApiToken/PermissionGroups.js.map +1 -0
- package/lib/Cloudflare/ApiToken/UserApiToken.d.ts +49 -0
- package/lib/Cloudflare/ApiToken/UserApiToken.d.ts.map +1 -0
- package/lib/Cloudflare/ApiToken/UserApiToken.js +113 -0
- package/lib/Cloudflare/ApiToken/UserApiToken.js.map +1 -0
- package/lib/Cloudflare/ApiToken/index.d.ts +5 -0
- package/lib/Cloudflare/ApiToken/index.d.ts.map +1 -0
- package/lib/Cloudflare/ApiToken/index.js +5 -0
- package/lib/Cloudflare/ApiToken/index.js.map +1 -0
- package/lib/Cloudflare/Auth/AuthProvider.js +2 -2
- package/lib/Cloudflare/Auth/AuthProvider.js.map +1 -1
- package/lib/Cloudflare/CloudflareEnvironment.d.ts +1 -1
- package/lib/Cloudflare/Container/ContainerApplication.d.ts +2 -2
- package/lib/Cloudflare/Container/ContainerApplication.d.ts.map +1 -1
- package/lib/Cloudflare/Container/ContainerApplication.js +7 -2
- package/lib/Cloudflare/Container/ContainerApplication.js.map +1 -1
- package/lib/Cloudflare/EdgeSession.d.ts +53 -0
- package/lib/Cloudflare/EdgeSession.d.ts.map +1 -0
- package/lib/Cloudflare/EdgeSession.js +78 -0
- package/lib/Cloudflare/EdgeSession.js.map +1 -0
- package/lib/Cloudflare/Providers.d.ts +1 -1
- package/lib/Cloudflare/Providers.d.ts.map +1 -1
- package/lib/Cloudflare/Providers.js +4 -1
- package/lib/Cloudflare/Providers.js.map +1 -1
- package/lib/Cloudflare/StateStore/Api.d.ts +61 -0
- package/lib/Cloudflare/StateStore/Api.d.ts.map +1 -0
- package/lib/Cloudflare/StateStore/Api.js +103 -0
- package/lib/Cloudflare/StateStore/Api.js.map +1 -0
- package/lib/Cloudflare/StateStore/State.d.ts +39 -0
- package/lib/Cloudflare/StateStore/State.d.ts.map +1 -0
- package/lib/Cloudflare/StateStore/State.js +217 -0
- package/lib/Cloudflare/StateStore/State.js.map +1 -0
- package/lib/Cloudflare/StateStore/Store.d.ts +82 -0
- package/lib/Cloudflare/StateStore/Store.d.ts.map +1 -0
- package/lib/Cloudflare/StateStore/Store.js +191 -0
- package/lib/Cloudflare/StateStore/Store.js.map +1 -0
- package/lib/Cloudflare/StateStore/Token.d.ts +43 -0
- package/lib/Cloudflare/StateStore/Token.d.ts.map +1 -0
- package/lib/Cloudflare/StateStore/Token.js +61 -0
- package/lib/Cloudflare/StateStore/Token.js.map +1 -0
- package/lib/Cloudflare/StateStore/index.d.ts +2 -0
- package/lib/Cloudflare/StateStore/index.d.ts.map +1 -0
- package/lib/Cloudflare/StateStore/index.js +2 -0
- package/lib/Cloudflare/StateStore/index.js.map +1 -0
- package/lib/Cloudflare/Workers/Assets.d.ts +2 -2
- package/lib/Cloudflare/Workers/DurableObjectNamespace.d.ts +2 -2
- package/lib/Cloudflare/Workers/DurableObjectNamespace.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/DurableObjectNamespace.js +0 -1
- package/lib/Cloudflare/Workers/DurableObjectNamespace.js.map +1 -1
- package/lib/Cloudflare/Workers/HttpServer.d.ts +1 -1
- package/lib/Cloudflare/Workers/HttpServer.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/HttpServer.js.map +1 -1
- package/lib/Cloudflare/Workers/Worker.d.ts +5 -5
- package/lib/Cloudflare/Workers/Worker.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/Worker.js +0 -1
- package/lib/Cloudflare/Workers/Worker.js.map +1 -1
- package/lib/Cloudflare/index.d.ts +4 -1
- package/lib/Cloudflare/index.d.ts.map +1 -1
- package/lib/Cloudflare/index.js +4 -1
- package/lib/Cloudflare/index.js.map +1 -1
- package/lib/Deploy.d.ts +10 -0
- package/lib/Deploy.d.ts.map +1 -0
- package/lib/Deploy.js +12 -0
- package/lib/Deploy.js.map +1 -0
- package/lib/Destroy.d.ts +8 -3
- package/lib/Destroy.d.ts.map +1 -1
- package/lib/Destroy.js +8 -8
- package/lib/Destroy.js.map +1 -1
- package/lib/GitHub/Providers.d.ts +3 -0
- package/lib/GitHub/Providers.d.ts.map +1 -0
- package/lib/GitHub/Providers.js +5 -0
- package/lib/GitHub/Providers.js.map +1 -0
- package/lib/GitHub/index.d.ts +1 -0
- package/lib/GitHub/index.d.ts.map +1 -1
- package/lib/GitHub/index.js +1 -0
- package/lib/GitHub/index.js.map +1 -1
- package/lib/Http.d.ts +1 -1
- package/lib/Http.d.ts.map +1 -1
- package/lib/Http.js +7 -3
- package/lib/Http.js.map +1 -1
- package/lib/Kubernetes/client.d.ts +10 -10
- package/lib/Output.d.ts.map +1 -1
- package/lib/Output.js +4 -0
- package/lib/Output.js.map +1 -1
- package/lib/Plan.d.ts.map +1 -1
- package/lib/Plan.js +4 -0
- package/lib/Plan.js.map +1 -1
- package/lib/Platform.d.ts +2 -2
- package/lib/Platform.d.ts.map +1 -1
- package/lib/Platform.js.map +1 -1
- package/lib/Provider.d.ts.map +1 -1
- package/lib/Provider.js +0 -1
- package/lib/Provider.js.map +1 -1
- package/lib/Stack.d.ts +24 -12
- package/lib/Stack.d.ts.map +1 -1
- package/lib/Stack.js +47 -10
- package/lib/Stack.js.map +1 -1
- package/lib/State/HttpStateApi.d.ts +96 -0
- package/lib/State/HttpStateApi.d.ts.map +1 -0
- package/lib/State/HttpStateApi.js +96 -0
- package/lib/State/HttpStateApi.js.map +1 -0
- package/lib/State/HttpStateStore.d.ts +10 -0
- package/lib/State/HttpStateStore.d.ts.map +1 -0
- package/lib/State/HttpStateStore.js +102 -0
- package/lib/State/HttpStateStore.js.map +1 -0
- package/lib/State/InMemoryState.d.ts +2 -30
- package/lib/State/InMemoryState.d.ts.map +1 -1
- package/lib/State/InMemoryState.js +23 -18
- package/lib/State/InMemoryState.js.map +1 -1
- package/lib/State/LocalState.d.ts +4 -2
- package/lib/State/LocalState.d.ts.map +1 -1
- package/lib/State/LocalState.js +9 -41
- package/lib/State/LocalState.js.map +1 -1
- package/lib/State/State.d.ts +11 -4
- package/lib/State/State.d.ts.map +1 -1
- package/lib/State/State.js +1 -1
- package/lib/State/State.js.map +1 -1
- package/lib/State/StateEncoding.d.ts +31 -0
- package/lib/State/StateEncoding.d.ts.map +1 -0
- package/lib/State/StateEncoding.js +82 -0
- package/lib/State/StateEncoding.js.map +1 -0
- package/lib/State/Sync.d.ts +23 -0
- package/lib/State/Sync.d.ts.map +1 -0
- package/lib/State/Sync.js +49 -0
- package/lib/State/Sync.js.map +1 -0
- package/lib/State/index.d.ts +4 -0
- package/lib/State/index.d.ts.map +1 -1
- package/lib/State/index.js +4 -0
- package/lib/State/index.js.map +1 -1
- package/lib/Test/Bun.d.ts +13 -17
- package/lib/Test/Bun.d.ts.map +1 -1
- package/lib/Test/Bun.js +17 -36
- package/lib/Test/Bun.js.map +1 -1
- package/lib/Test/TestState.d.ts +1 -2
- package/lib/Test/TestState.d.ts.map +1 -1
- package/lib/Test/TestState.js +5 -9
- package/lib/Test/TestState.js.map +1 -1
- package/lib/Test/Vitest.d.ts +3 -2
- package/lib/Test/Vitest.d.ts.map +1 -1
- package/lib/Test/Vitest.js +20 -11
- package/lib/Test/Vitest.js.map +1 -1
- package/lib/Test/index.d.ts +0 -1
- package/lib/Test/index.d.ts.map +1 -1
- package/lib/Test/index.js +0 -1
- package/lib/Test/index.js.map +1 -1
- package/lib/Util/FileLogger.d.ts +2 -2
- package/lib/Util/FileLogger.d.ts.map +1 -1
- package/lib/Util/FileLogger.js +2 -2
- package/lib/Util/FileLogger.js.map +1 -1
- package/lib/cli/index.d.ts +10 -5
- package/lib/cli/index.d.ts.map +1 -1
- package/lib/cli/index.js +2 -43045
- package/lib/cli/index.js.map +1 -1
- package/lib/index.d.ts +2 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -1
- package/lib/index.js.map +1 -1
- package/package.json +30 -15
- package/src/AWS/ECS/Task.ts +4 -4
- package/src/AWS/Lambda/Function.ts +2 -3
- package/src/AWS/SQS/QueueSink.ts +1 -2
- package/src/Agent/coding/bash.ts +2 -3
- package/src/Agent/coding/glob.ts +1 -2
- package/src/Agent/coding/grep.ts +1 -2
- package/src/AlchemyContext.ts +27 -0
- package/src/Auth/AuthProvider.ts +1 -1
- package/src/Auth/index.ts +3 -1
- package/src/{Test/TestCli.ts → Cli/LoggingCli.ts} +2 -2
- package/src/Cli/index.ts +4 -1
- package/src/Cloudflare/ApiToken/AccountApiToken.ts +197 -0
- package/src/Cloudflare/ApiToken/Common.ts +148 -0
- package/src/Cloudflare/ApiToken/PermissionGroups.ts +1910 -0
- package/src/Cloudflare/ApiToken/UserApiToken.ts +168 -0
- package/src/Cloudflare/ApiToken/index.ts +4 -0
- package/src/Cloudflare/Auth/AuthProvider.ts +2 -2
- package/src/Cloudflare/Container/ContainerApplication.ts +8 -2
- package/src/Cloudflare/EdgeSession.ts +144 -0
- package/src/Cloudflare/Providers.ts +5 -0
- package/src/Cloudflare/StateStore/Api.ts +159 -0
- package/src/Cloudflare/StateStore/State.ts +318 -0
- package/src/Cloudflare/StateStore/Store.ts +290 -0
- package/src/Cloudflare/StateStore/Token.ts +68 -0
- package/src/Cloudflare/StateStore/index.ts +1 -0
- package/src/Cloudflare/Workers/DurableObjectNamespace.ts +1 -6
- package/src/Cloudflare/Workers/HttpServer.ts +1 -1
- package/src/Cloudflare/Workers/Worker.ts +7 -7
- package/src/Cloudflare/index.ts +4 -1
- package/src/Deploy.ts +25 -0
- package/src/Destroy.ts +25 -13
- package/src/GitHub/Providers.ts +6 -0
- package/src/GitHub/index.ts +1 -0
- package/src/Http.ts +31 -16
- package/src/Output.ts +3 -2
- package/src/Plan.ts +3 -0
- package/src/Platform.ts +8 -2
- package/src/Provider.ts +0 -2
- package/src/Stack.ts +146 -45
- package/src/State/HttpStateApi.ts +155 -0
- package/src/State/HttpStateStore.ts +156 -0
- package/src/State/InMemoryState.ts +15 -17
- package/src/State/LocalState.ts +13 -45
- package/src/State/State.ts +13 -4
- package/src/State/StateEncoding.ts +83 -0
- package/src/State/Sync.ts +89 -0
- package/src/State/index.ts +4 -0
- package/src/Test/Bun.ts +31 -89
- package/src/Test/TestState.ts +6 -8
- package/src/Test/Vitest.ts +32 -19
- package/src/Test/index.ts +0 -1
- package/src/Util/FileLogger.ts +2 -2
- package/src/index.ts +2 -1
- package/lib/Config.d.ts +0 -20
- package/lib/Config.d.ts.map +0 -1
- package/lib/Config.js +0 -22
- package/lib/Config.js.map +0 -1
- package/lib/Observability.d.ts +0 -2
- package/lib/Observability.d.ts.map +0 -1
- package/lib/Observability.js +0 -1
- package/lib/Observability.js.map +0 -1
- package/lib/Test/TestCli.d.ts +0 -4
- package/lib/Test/TestCli.d.ts.map +0 -1
- package/lib/Test/TestCli.js.map +0 -1
- package/src/Config.ts +0 -31
- package/src/Observability.ts +0 -0
package/lib/Stack.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Stack.js","sourceRoot":"","sources":["../src/Stack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"Stack.js","sourceRoot":"","sources":["../src/Stack.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import * as Context from "effect/Context";
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
import * as Layer from "effect/Layer";
|
|
4
|
+
import * as Schema from "effect/Schema";
|
|
5
|
+
import * as HttpApi from "effect/unstable/httpapi/HttpApi";
|
|
6
|
+
import * as HttpApiEndpoint from "effect/unstable/httpapi/HttpApiEndpoint";
|
|
7
|
+
import * as HttpApiError from "effect/unstable/httpapi/HttpApiError";
|
|
8
|
+
import * as HttpApiGroup from "effect/unstable/httpapi/HttpApiGroup";
|
|
9
|
+
import * as HttpApiMiddleware from "effect/unstable/httpapi/HttpApiMiddleware";
|
|
10
|
+
import * as HttpApiSchema from "effect/unstable/httpapi/HttpApiSchema";
|
|
11
|
+
import * as HttpApiSecurity from "effect/unstable/httpapi/HttpApiSecurity";
|
|
12
|
+
export declare const ResourceStateSchema: Schema.Any;
|
|
13
|
+
declare const BearerTokenValidator_base: Context.ServiceClass<BearerTokenValidator, "alchemy/State/BearerTokenValidator", {
|
|
14
|
+
readonly validate: (token: string) => Effect.Effect<void, HttpApiError.Unauthorized>;
|
|
15
|
+
}>;
|
|
16
|
+
export declare class BearerTokenValidator extends BearerTokenValidator_base {
|
|
17
|
+
}
|
|
18
|
+
declare const StateAuth_base: HttpApiMiddleware.ServiceClass<StateAuth, "alchemy/State/StateAuth", {
|
|
19
|
+
requires: BearerTokenValidator;
|
|
20
|
+
provides: never;
|
|
21
|
+
error: HttpApiSchema.asNoContent<typeof HttpApiError.Unauthorized>;
|
|
22
|
+
clientError: never;
|
|
23
|
+
requiredForClient: false;
|
|
24
|
+
security: {
|
|
25
|
+
readonly bearer: HttpApiSecurity.Bearer;
|
|
26
|
+
};
|
|
27
|
+
}, HttpApiMiddleware.HttpApiMiddlewareSecurity<{
|
|
28
|
+
readonly bearer: HttpApiSecurity.Bearer;
|
|
29
|
+
}, never, HttpApiSchema.asNoContent<typeof HttpApiError.Unauthorized>, BearerTokenValidator>>;
|
|
30
|
+
export declare class StateAuth extends StateAuth_base {
|
|
31
|
+
}
|
|
32
|
+
export declare const StateAuthLive: Layer.Layer<StateAuth, never, BearerTokenValidator>;
|
|
33
|
+
export declare const ListStacks: HttpApiEndpoint.HttpApiEndpoint<"listStacks", "GET", "/state/stacks", HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.Json<Schema.$Array<Schema.String>>, HttpApiEndpoint.Json<HttpApiSchema.asNoContent<typeof HttpApiError.BadRequest>>, never, never>;
|
|
34
|
+
export declare const ListStages: HttpApiEndpoint.HttpApiEndpoint<"listStages", "GET", "/state/stacks/:stack/stages", HttpApiEndpoint.StringTree<Schema.Struct<{
|
|
35
|
+
readonly stack: Schema.String;
|
|
36
|
+
}>>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.Json<Schema.$Array<Schema.String>>, HttpApiEndpoint.Json<HttpApiSchema.asNoContent<typeof HttpApiError.BadRequest>>, never, never>;
|
|
37
|
+
export declare const ListResources: HttpApiEndpoint.HttpApiEndpoint<"listResources", "GET", "/state/stacks/:stack/stages/:stage/resources", HttpApiEndpoint.StringTree<Schema.Struct<{
|
|
38
|
+
readonly stack: Schema.String;
|
|
39
|
+
readonly stage: Schema.String;
|
|
40
|
+
}>>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.Json<Schema.$Array<Schema.String>>, HttpApiEndpoint.Json<HttpApiSchema.asNoContent<typeof HttpApiError.BadRequest>>, never, never>;
|
|
41
|
+
export declare const GetState: HttpApiEndpoint.HttpApiEndpoint<"getState", "GET", "/state/stacks/:stack/stages/:stage/resources/:fqn", HttpApiEndpoint.StringTree<Schema.Struct<{
|
|
42
|
+
readonly stack: Schema.String;
|
|
43
|
+
readonly stage: Schema.String;
|
|
44
|
+
readonly fqn: Schema.String;
|
|
45
|
+
}>>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.Json<Schema.UndefinedOr<Schema.Any>>, HttpApiEndpoint.Json<HttpApiSchema.asNoContent<typeof HttpApiError.BadRequest>>, never, never>;
|
|
46
|
+
export declare const SetState: HttpApiEndpoint.HttpApiEndpoint<"setState", "PUT", "/state/stacks/:stack/stages/:stage/resources/:fqn", HttpApiEndpoint.StringTree<Schema.Struct<{
|
|
47
|
+
readonly stack: Schema.String;
|
|
48
|
+
readonly stage: Schema.String;
|
|
49
|
+
readonly fqn: Schema.String;
|
|
50
|
+
}>>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.Json<Schema.Any>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.Json<Schema.Any>, HttpApiEndpoint.Json<HttpApiSchema.asNoContent<typeof HttpApiError.BadRequest>>, never, never>;
|
|
51
|
+
export declare const DeleteState: HttpApiEndpoint.HttpApiEndpoint<"deleteState", "DELETE", "/state/stacks/:stack/stages/:stage/resources/:fqn", HttpApiEndpoint.StringTree<Schema.Struct<{
|
|
52
|
+
readonly stack: Schema.String;
|
|
53
|
+
readonly stage: Schema.String;
|
|
54
|
+
readonly fqn: Schema.String;
|
|
55
|
+
}>>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.Json<never>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.Json<HttpApiSchema.NoContent>, HttpApiEndpoint.Json<HttpApiSchema.asNoContent<typeof HttpApiError.BadRequest>>, never, never>;
|
|
56
|
+
export declare const DeleteStack: HttpApiEndpoint.HttpApiEndpoint<"deleteStack", "DELETE", "/state/stacks/:stack", HttpApiEndpoint.StringTree<Schema.Struct<{
|
|
57
|
+
readonly stack: Schema.String;
|
|
58
|
+
}>>, HttpApiEndpoint.StringTree<Schema.Struct<{
|
|
59
|
+
readonly stage: Schema.optional<Schema.String>;
|
|
60
|
+
}>>, HttpApiEndpoint.Json<never>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.Json<HttpApiSchema.NoContent>, HttpApiEndpoint.Json<HttpApiSchema.asNoContent<typeof HttpApiError.BadRequest>>, never, never>;
|
|
61
|
+
export declare const GetReplacedResources: HttpApiEndpoint.HttpApiEndpoint<"getReplacedResources", "GET", "/state/stacks/:stack/stages/:stage/replaced-resources", HttpApiEndpoint.StringTree<Schema.Struct<{
|
|
62
|
+
readonly stack: Schema.String;
|
|
63
|
+
readonly stage: Schema.String;
|
|
64
|
+
}>>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.Json<Schema.$Array<Schema.Any>>, HttpApiEndpoint.Json<HttpApiSchema.asNoContent<typeof HttpApiError.BadRequest>>, never, never>;
|
|
65
|
+
declare const StateGroup_base: HttpApiGroup.HttpApiGroup<"state", HttpApiEndpoint.HttpApiEndpoint<"listStacks", "GET", "/state/stacks", HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.Json<Schema.$Array<Schema.String>>, HttpApiEndpoint.Json<HttpApiSchema.asNoContent<typeof HttpApiError.BadRequest>>, StateAuth, BearerTokenValidator> | HttpApiEndpoint.HttpApiEndpoint<"listStages", "GET", "/state/stacks/:stack/stages", HttpApiEndpoint.StringTree<Schema.Struct<{
|
|
66
|
+
readonly stack: Schema.String;
|
|
67
|
+
}>>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.Json<Schema.$Array<Schema.String>>, HttpApiEndpoint.Json<HttpApiSchema.asNoContent<typeof HttpApiError.BadRequest>>, StateAuth, BearerTokenValidator> | HttpApiEndpoint.HttpApiEndpoint<"listResources", "GET", "/state/stacks/:stack/stages/:stage/resources", HttpApiEndpoint.StringTree<Schema.Struct<{
|
|
68
|
+
readonly stack: Schema.String;
|
|
69
|
+
readonly stage: Schema.String;
|
|
70
|
+
}>>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.Json<Schema.$Array<Schema.String>>, HttpApiEndpoint.Json<HttpApiSchema.asNoContent<typeof HttpApiError.BadRequest>>, StateAuth, BearerTokenValidator> | HttpApiEndpoint.HttpApiEndpoint<"getState", "GET", "/state/stacks/:stack/stages/:stage/resources/:fqn", HttpApiEndpoint.StringTree<Schema.Struct<{
|
|
71
|
+
readonly stack: Schema.String;
|
|
72
|
+
readonly stage: Schema.String;
|
|
73
|
+
readonly fqn: Schema.String;
|
|
74
|
+
}>>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.Json<Schema.UndefinedOr<Schema.Any>>, HttpApiEndpoint.Json<HttpApiSchema.asNoContent<typeof HttpApiError.BadRequest>>, StateAuth, BearerTokenValidator> | HttpApiEndpoint.HttpApiEndpoint<"setState", "PUT", "/state/stacks/:stack/stages/:stage/resources/:fqn", HttpApiEndpoint.StringTree<Schema.Struct<{
|
|
75
|
+
readonly stack: Schema.String;
|
|
76
|
+
readonly stage: Schema.String;
|
|
77
|
+
readonly fqn: Schema.String;
|
|
78
|
+
}>>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.Json<Schema.Any>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.Json<Schema.Any>, HttpApiEndpoint.Json<HttpApiSchema.asNoContent<typeof HttpApiError.BadRequest>>, StateAuth, BearerTokenValidator> | HttpApiEndpoint.HttpApiEndpoint<"deleteState", "DELETE", "/state/stacks/:stack/stages/:stage/resources/:fqn", HttpApiEndpoint.StringTree<Schema.Struct<{
|
|
79
|
+
readonly stack: Schema.String;
|
|
80
|
+
readonly stage: Schema.String;
|
|
81
|
+
readonly fqn: Schema.String;
|
|
82
|
+
}>>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.Json<never>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.Json<HttpApiSchema.NoContent>, HttpApiEndpoint.Json<HttpApiSchema.asNoContent<typeof HttpApiError.BadRequest>>, StateAuth, BearerTokenValidator> | HttpApiEndpoint.HttpApiEndpoint<"deleteStack", "DELETE", "/state/stacks/:stack", HttpApiEndpoint.StringTree<Schema.Struct<{
|
|
83
|
+
readonly stack: Schema.String;
|
|
84
|
+
}>>, HttpApiEndpoint.StringTree<Schema.Struct<{
|
|
85
|
+
readonly stage: Schema.optional<Schema.String>;
|
|
86
|
+
}>>, HttpApiEndpoint.Json<never>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.Json<HttpApiSchema.NoContent>, HttpApiEndpoint.Json<HttpApiSchema.asNoContent<typeof HttpApiError.BadRequest>>, StateAuth, BearerTokenValidator> | HttpApiEndpoint.HttpApiEndpoint<"getReplacedResources", "GET", "/state/stacks/:stack/stages/:stage/replaced-resources", HttpApiEndpoint.StringTree<Schema.Struct<{
|
|
87
|
+
readonly stack: Schema.String;
|
|
88
|
+
readonly stage: Schema.String;
|
|
89
|
+
}>>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.Json<Schema.$Array<Schema.Any>>, HttpApiEndpoint.Json<HttpApiSchema.asNoContent<typeof HttpApiError.BadRequest>>, StateAuth, BearerTokenValidator>, false>;
|
|
90
|
+
export declare class StateGroup extends StateGroup_base {
|
|
91
|
+
}
|
|
92
|
+
declare const StateApi_base: HttpApi.HttpApi<"alchemy-state", typeof StateGroup>;
|
|
93
|
+
export declare class StateApi extends StateApi_base {
|
|
94
|
+
}
|
|
95
|
+
export {};
|
|
96
|
+
//# sourceMappingURL=HttpStateApi.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HttpStateApi.d.ts","sourceRoot":"","sources":["../../src/State/HttpStateApi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,OAAO,MAAM,iCAAiC,CAAC;AAC3D,OAAO,KAAK,eAAe,MAAM,yCAAyC,CAAC;AAC3E,OAAO,KAAK,YAAY,MAAM,sCAAsC,CAAC;AACrE,OAAO,KAAK,YAAY,MAAM,sCAAsC,CAAC;AACrE,OAAO,KAAK,iBAAiB,MAAM,2CAA2C,CAAC;AAC/E,OAAO,KAAK,aAAa,MAAM,uCAAuC,CAAC;AACvE,OAAO,KAAK,eAAe,MAAM,yCAAyC,CAAC;AAE3E,eAAO,MAAM,mBAAmB,YAAa,CAAC;;uBAKvB,CACjB,KAAK,EAAE,MAAM,KACV,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,YAAY,CAAC;;AALvD,qBAAa,oBAAqB,SAAQ,yBAOD;CAAG;;;;;;;;;;;;;AAE5C,qBAAa,SAAU,SAAQ,cAQ7B;CAAG;AAEL,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,KAAK,CACrC,SAAS,EACT,KAAK,EACL,oBAAoB,CAYrB,CAAC;AAyBF,eAAO,MAAM,UAAU,sWAErB,CAAC;AAEH,eAAO,MAAM,UAAU;;gQAOtB,CAAC;AAEF,eAAO,MAAM,aAAa;;;gQAOzB,CAAC;AAEF,eAAO,MAAM,QAAQ;;;;kQAOpB,CAAC;AAEF,eAAO,MAAM,QAAQ;;;;6OAQpB,CAAC;AAEF,eAAO,MAAM,WAAW;;;;qPAOvB,CAAC;AAEF,eAAO,MAAM,WAAW;;;;kNAQvB,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;6PAOhC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;AAEF,qBAAa,UAAW,SAAQ,eASR;CAAG;;AAE3B,qBAAa,QAAS,SAAQ,aAA6C;CAAG"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import * as Context from "effect/Context";
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
import * as Layer from "effect/Layer";
|
|
4
|
+
import * as Redacted from "effect/Redacted";
|
|
5
|
+
import * as Schema from "effect/Schema";
|
|
6
|
+
import * as HttpApi from "effect/unstable/httpapi/HttpApi";
|
|
7
|
+
import * as HttpApiEndpoint from "effect/unstable/httpapi/HttpApiEndpoint";
|
|
8
|
+
import * as HttpApiError from "effect/unstable/httpapi/HttpApiError";
|
|
9
|
+
import * as HttpApiGroup from "effect/unstable/httpapi/HttpApiGroup";
|
|
10
|
+
import * as HttpApiMiddleware from "effect/unstable/httpapi/HttpApiMiddleware";
|
|
11
|
+
import * as HttpApiSchema from "effect/unstable/httpapi/HttpApiSchema";
|
|
12
|
+
import * as HttpApiSecurity from "effect/unstable/httpapi/HttpApiSecurity";
|
|
13
|
+
export const ResourceStateSchema = Schema.Any;
|
|
14
|
+
export class BearerTokenValidator extends Context.Service()("alchemy/State/BearerTokenValidator") {
|
|
15
|
+
}
|
|
16
|
+
export class StateAuth extends HttpApiMiddleware.Service()("alchemy/State/StateAuth", {
|
|
17
|
+
security: {
|
|
18
|
+
bearer: HttpApiSecurity.bearer,
|
|
19
|
+
},
|
|
20
|
+
error: HttpApiError.UnauthorizedNoContent,
|
|
21
|
+
}) {
|
|
22
|
+
}
|
|
23
|
+
export const StateAuthLive = Layer.effect(StateAuth, Effect.gen(function* () {
|
|
24
|
+
const validator = yield* BearerTokenValidator;
|
|
25
|
+
return {
|
|
26
|
+
bearer: (httpEffect, { credential }) => validator
|
|
27
|
+
.validate(Redacted.value(credential))
|
|
28
|
+
.pipe(Effect.flatMap(() => httpEffect)),
|
|
29
|
+
};
|
|
30
|
+
}));
|
|
31
|
+
/** `stack` path segment for nested REST resources. */
|
|
32
|
+
const StackParams = Schema.Struct({
|
|
33
|
+
stack: Schema.String,
|
|
34
|
+
});
|
|
35
|
+
/** Optional stage selector for stack deletion. */
|
|
36
|
+
const OptionalStageQuery = Schema.Struct({
|
|
37
|
+
stage: Schema.optional(Schema.String),
|
|
38
|
+
});
|
|
39
|
+
/** `(stack, stage)` path segments shared by stage-scoped endpoints. */
|
|
40
|
+
const StackStage = Schema.Struct({
|
|
41
|
+
stack: Schema.String,
|
|
42
|
+
stage: Schema.String,
|
|
43
|
+
});
|
|
44
|
+
/** `(stack, stage, fqn)` path segments for a single resource. */
|
|
45
|
+
const ResourceKey = Schema.Struct({
|
|
46
|
+
stack: Schema.String,
|
|
47
|
+
stage: Schema.String,
|
|
48
|
+
fqn: Schema.String,
|
|
49
|
+
});
|
|
50
|
+
export const ListStacks = HttpApiEndpoint.get("listStacks", "/state/stacks", {
|
|
51
|
+
success: Schema.Array(Schema.String),
|
|
52
|
+
});
|
|
53
|
+
export const ListStages = HttpApiEndpoint.get("listStages", "/state/stacks/:stack/stages", {
|
|
54
|
+
params: StackParams,
|
|
55
|
+
success: Schema.Array(Schema.String),
|
|
56
|
+
});
|
|
57
|
+
export const ListResources = HttpApiEndpoint.get("listResources", "/state/stacks/:stack/stages/:stage/resources", {
|
|
58
|
+
params: StackStage,
|
|
59
|
+
success: Schema.Array(Schema.String),
|
|
60
|
+
});
|
|
61
|
+
export const GetState = HttpApiEndpoint.get("getState", "/state/stacks/:stack/stages/:stage/resources/:fqn", {
|
|
62
|
+
params: ResourceKey,
|
|
63
|
+
success: Schema.UndefinedOr(ResourceStateSchema),
|
|
64
|
+
});
|
|
65
|
+
export const SetState = HttpApiEndpoint.put("setState", "/state/stacks/:stack/stages/:stage/resources/:fqn", {
|
|
66
|
+
params: ResourceKey,
|
|
67
|
+
payload: ResourceStateSchema,
|
|
68
|
+
success: ResourceStateSchema,
|
|
69
|
+
});
|
|
70
|
+
export const DeleteState = HttpApiEndpoint.delete("deleteState", "/state/stacks/:stack/stages/:stage/resources/:fqn", {
|
|
71
|
+
params: ResourceKey,
|
|
72
|
+
success: HttpApiSchema.NoContent,
|
|
73
|
+
});
|
|
74
|
+
export const DeleteStack = HttpApiEndpoint.delete("deleteStack", "/state/stacks/:stack", {
|
|
75
|
+
params: StackParams,
|
|
76
|
+
query: OptionalStageQuery,
|
|
77
|
+
success: HttpApiSchema.NoContent,
|
|
78
|
+
});
|
|
79
|
+
export const GetReplacedResources = HttpApiEndpoint.get("getReplacedResources", "/state/stacks/:stack/stages/:stage/replaced-resources", {
|
|
80
|
+
params: StackStage,
|
|
81
|
+
success: Schema.Array(ResourceStateSchema),
|
|
82
|
+
});
|
|
83
|
+
export class StateGroup extends HttpApiGroup.make("state")
|
|
84
|
+
.add(ListStacks)
|
|
85
|
+
.add(ListStages)
|
|
86
|
+
.add(ListResources)
|
|
87
|
+
.add(GetState)
|
|
88
|
+
.add(SetState)
|
|
89
|
+
.add(DeleteState)
|
|
90
|
+
.add(GetReplacedResources)
|
|
91
|
+
.add(DeleteStack)
|
|
92
|
+
.middleware(StateAuth) {
|
|
93
|
+
}
|
|
94
|
+
export class StateApi extends HttpApi.make("alchemy-state").add(StateGroup) {
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=HttpStateApi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HttpStateApi.js","sourceRoot":"","sources":["../../src/State/HttpStateApi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,OAAO,MAAM,iCAAiC,CAAC;AAC3D,OAAO,KAAK,eAAe,MAAM,yCAAyC,CAAC;AAC3E,OAAO,KAAK,YAAY,MAAM,sCAAsC,CAAC;AACrE,OAAO,KAAK,YAAY,MAAM,sCAAsC,CAAC;AACrE,OAAO,KAAK,iBAAiB,MAAM,2CAA2C,CAAC;AAC/E,OAAO,KAAK,aAAa,MAAM,uCAAuC,CAAC;AACvE,OAAO,KAAK,eAAe,MAAM,yCAAyC,CAAC;AAE3E,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC;AAE9C,MAAM,OAAO,oBAAqB,SAAQ,OAAO,CAAC,OAAO,EAOtD,CAAC,oCAAoC,CAAC;CAAG;AAE5C,MAAM,OAAO,SAAU,SAAQ,iBAAiB,CAAC,OAAO,EAGrD,CAAC,yBAAyB,EAAE;IAC7B,QAAQ,EAAE;QACR,MAAM,EAAE,eAAe,CAAC,MAAM;KAC/B;IACD,KAAK,EAAE,YAAY,CAAC,qBAAqB;CAC1C,CAAC;CAAG;AAEL,MAAM,CAAC,MAAM,aAAa,GAItB,KAAK,CAAC,MAAM,CACd,SAAS,EACT,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,oBAAoB,CAAC;IAC9C,OAAO;QACL,MAAM,EAAE,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CACrC,SAAS;aACN,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;aACpC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC;KAC5C,CAAC;AACJ,CAAC,CAAC,CACH,CAAC;AAEF,sDAAsD;AACtD,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC,MAAM;CACrB,CAAC,CAAC;AAEH,kDAAkD;AAClD,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC;IACvC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;CACtC,CAAC,CAAC;AAEH,uEAAuE;AACvE,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC,MAAM;IACpB,KAAK,EAAE,MAAM,CAAC,MAAM;CACrB,CAAC,CAAC;AAEH,iEAAiE;AACjE,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC,MAAM;IACpB,KAAK,EAAE,MAAM,CAAC,MAAM;IACpB,GAAG,EAAE,MAAM,CAAC,MAAM;CACnB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,YAAY,EAAE,eAAe,EAAE;IAC3E,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;CACrC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAC3C,YAAY,EACZ,6BAA6B,EAC7B;IACE,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;CACrC,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,eAAe,CAAC,GAAG,CAC9C,eAAe,EACf,8CAA8C,EAC9C;IACE,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;CACrC,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CACzC,UAAU,EACV,mDAAmD,EACnD;IACE,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC;CACjD,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CACzC,UAAU,EACV,mDAAmD,EACnD;IACE,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,mBAAmB;IAC5B,OAAO,EAAE,mBAAmB;CAC7B,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,CAC/C,aAAa,EACb,mDAAmD,EACnD;IACE,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,aAAa,CAAC,SAAS;CACjC,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,CAC/C,aAAa,EACb,sBAAsB,EACtB;IACE,MAAM,EAAE,WAAW;IACnB,KAAK,EAAE,kBAAkB;IACzB,OAAO,EAAE,aAAa,CAAC,SAAS;CACjC,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,eAAe,CAAC,GAAG,CACrD,sBAAsB,EACtB,uDAAuD,EACvD;IACE,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC;CAC3C,CACF,CAAC;AAEF,MAAM,OAAO,UAAW,SAAQ,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;KACvD,GAAG,CAAC,UAAU,CAAC;KACf,GAAG,CAAC,UAAU,CAAC;KACf,GAAG,CAAC,aAAa,CAAC;KAClB,GAAG,CAAC,QAAQ,CAAC;KACb,GAAG,CAAC,QAAQ,CAAC;KACb,GAAG,CAAC,WAAW,CAAC;KAChB,GAAG,CAAC,oBAAoB,CAAC;KACzB,GAAG,CAAC,WAAW,CAAC;KAChB,UAAU,CAAC,SAAS,CAAC;CAAG;AAE3B,MAAM,OAAO,QAAS,SAAQ,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC;CAAG"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import * as HttpClient from "effect/unstable/http/HttpClient";
|
|
3
|
+
import { type StateService } from "./State.ts";
|
|
4
|
+
export interface HttpStateStoreProps {
|
|
5
|
+
url: string;
|
|
6
|
+
/** Bearer token used to authenticate every request. */
|
|
7
|
+
authToken: string;
|
|
8
|
+
}
|
|
9
|
+
export declare const makeHttpStateStore: ({ url, authToken }: HttpStateStoreProps) => Effect.Effect<StateService, never, HttpClient.HttpClient>;
|
|
10
|
+
//# sourceMappingURL=HttpStateStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HttpStateStore.d.ts","sourceRoot":"","sources":["../../src/State/HttpStateStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,UAAU,MAAM,iCAAiC,CAAC;AAM9D,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAGhE,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,kBAAkB,GAAI,oBAAoB,mBAAmB,8DAuFtE,CAAC"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import * as Schedule from "effect/Schedule";
|
|
3
|
+
import * as HttpClient from "effect/unstable/http/HttpClient";
|
|
4
|
+
import * as HttpClientRequest from "effect/unstable/http/HttpClientRequest";
|
|
5
|
+
import * as HttpApiClient from "effect/unstable/httpapi/HttpApiClient";
|
|
6
|
+
import { StateApi } from "./HttpStateApi.js";
|
|
7
|
+
import { StateStoreError } from "./State.js";
|
|
8
|
+
import { encodeState, reviveStateRecursive } from "./StateEncoding.js";
|
|
9
|
+
export const makeHttpStateStore = ({ url, authToken }) => Effect.gen(function* () {
|
|
10
|
+
const apiClient = yield* HttpApiClient.make(StateApi, {
|
|
11
|
+
baseUrl: url,
|
|
12
|
+
transformClient: HttpClient.mapRequest(HttpClientRequest.bearerToken(authToken)),
|
|
13
|
+
});
|
|
14
|
+
const state = apiClient.state;
|
|
15
|
+
const service = {
|
|
16
|
+
listStacks: () => state.listStacks().pipe(Effect.map((stacks) => [...stacks]), mapStateStoreError),
|
|
17
|
+
listStages: (stack) => state.listStages({ params: { stack } }).pipe(mapStateStoreError),
|
|
18
|
+
list: (request) => state.listResources({ params: request }).pipe(mapStateStoreError),
|
|
19
|
+
get: (request) => state
|
|
20
|
+
.getState({
|
|
21
|
+
params: {
|
|
22
|
+
stack: request.stack,
|
|
23
|
+
stage: request.stage,
|
|
24
|
+
fqn: encodeURIComponent(request.fqn),
|
|
25
|
+
},
|
|
26
|
+
})
|
|
27
|
+
.pipe(Effect.map((s) => s == null
|
|
28
|
+
? undefined
|
|
29
|
+
: reviveStateRecursive(s)), mapStateStoreError),
|
|
30
|
+
getReplacedResources: (request) => state.getReplacedResources({ params: request }).pipe(Effect.map((resources) => resources.map((s) => reviveStateRecursive(s))), mapStateStoreError),
|
|
31
|
+
set: (request) => state
|
|
32
|
+
.setState({
|
|
33
|
+
params: {
|
|
34
|
+
stack: request.stack,
|
|
35
|
+
stage: request.stage,
|
|
36
|
+
fqn: encodeURIComponent(request.fqn),
|
|
37
|
+
},
|
|
38
|
+
payload: encodeState(request.value),
|
|
39
|
+
})
|
|
40
|
+
.pipe(
|
|
41
|
+
// Server echoes the stored value, but the client already
|
|
42
|
+
// has the canonical object (including any Redacted<T>
|
|
43
|
+
// instances); returning the input avoids a lossy round-trip.
|
|
44
|
+
Effect.map(() => request.value), mapStateStoreError),
|
|
45
|
+
delete: (request) => state
|
|
46
|
+
.deleteState({
|
|
47
|
+
params: {
|
|
48
|
+
stack: request.stack,
|
|
49
|
+
stage: request.stage,
|
|
50
|
+
fqn: encodeURIComponent(request.fqn),
|
|
51
|
+
},
|
|
52
|
+
})
|
|
53
|
+
.pipe(Effect.asVoid, mapStateStoreError),
|
|
54
|
+
deleteStack: (request) => state
|
|
55
|
+
.deleteStack({
|
|
56
|
+
params: { stack: request.stack },
|
|
57
|
+
query: request.stage === undefined ? {} : { stage: request.stage },
|
|
58
|
+
})
|
|
59
|
+
.pipe(Effect.asVoid, mapStateStoreError),
|
|
60
|
+
};
|
|
61
|
+
return service;
|
|
62
|
+
});
|
|
63
|
+
/**
|
|
64
|
+
* Predicate over an `HttpClientError`-shaped failure that returns `true`
|
|
65
|
+
* for failures we expect to clear up on their own.
|
|
66
|
+
*
|
|
67
|
+
* We retry:
|
|
68
|
+
* - all transport-level errors (no `response` — DNS, TCP reset, TLS,
|
|
69
|
+
* abort, etc.)
|
|
70
|
+
* - 408 (request timeout) and 429 (rate limit)
|
|
71
|
+
* - 404, which is normal in the seconds after a worker is first
|
|
72
|
+
* deployed and the route hasn't propagated yet
|
|
73
|
+
* - every 5xx
|
|
74
|
+
*
|
|
75
|
+
* Anything else (400/401/403/etc.) is a real client-side problem and
|
|
76
|
+
* shouldn't be hidden behind retries.
|
|
77
|
+
*/
|
|
78
|
+
const isTransient = (e) => {
|
|
79
|
+
if (e?._tag !== "HttpClientError")
|
|
80
|
+
return false;
|
|
81
|
+
const status = e.response?.status;
|
|
82
|
+
if (status == null)
|
|
83
|
+
return true;
|
|
84
|
+
if (status === 404 || status === 408 || status === 429)
|
|
85
|
+
return true;
|
|
86
|
+
return status >= 500 && status < 600;
|
|
87
|
+
};
|
|
88
|
+
const retryTransient = (eff) => Effect.retry(eff, {
|
|
89
|
+
while: isTransient,
|
|
90
|
+
// Exponential backoff capped at 2s, no attempt limit. The state
|
|
91
|
+
// store is on the deploy critical path; we'd rather block than
|
|
92
|
+
// surface a transient blip as a hard failure (which historically
|
|
93
|
+
// stranded `syncState` mid-flight, leaving the remote store
|
|
94
|
+
// partially populated).
|
|
95
|
+
schedule: Schedule.exponential(100).pipe(Schedule.either(Schedule.spaced("2 seconds"))),
|
|
96
|
+
});
|
|
97
|
+
/** Collapse any client failure into a {@link StateStoreError}. */
|
|
98
|
+
const mapStateStoreError = (eff) => eff.pipe(Effect.tapError(Effect.log), retryTransient, Effect.catch((e) => Effect.fail(new StateStoreError({
|
|
99
|
+
message: e instanceof Error ? e.message : String(e),
|
|
100
|
+
cause: e instanceof Error ? e : undefined,
|
|
101
|
+
}))));
|
|
102
|
+
//# sourceMappingURL=HttpStateStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HttpStateStore.js","sourceRoot":"","sources":["../../src/State/HttpStateStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,38 +1,10 @@
|
|
|
1
|
-
import * as Effect from "effect/Effect";
|
|
2
1
|
import * as Layer from "effect/Layer";
|
|
3
2
|
import type { ResourceState } from "./ResourceState.ts";
|
|
4
3
|
import { State } from "./State.ts";
|
|
5
4
|
type StackId = string;
|
|
6
5
|
type StageId = string;
|
|
7
6
|
type Fqn = string;
|
|
8
|
-
export declare const
|
|
9
|
-
export declare const InMemoryService: (
|
|
10
|
-
listStacks: () => Effect.Effect<string[], never, never>;
|
|
11
|
-
listStages: (stack: string) => Effect.Effect<string[], never, never>;
|
|
12
|
-
get: ({ stack, stage, fqn, }: {
|
|
13
|
-
stack: string;
|
|
14
|
-
stage: string;
|
|
15
|
-
fqn: string;
|
|
16
|
-
}) => Effect.Effect<ResourceState, never, never>;
|
|
17
|
-
getReplacedResources: ({ stack, stage, }: {
|
|
18
|
-
stack: string;
|
|
19
|
-
stage: string;
|
|
20
|
-
}) => Effect.Effect<import("./ResourceState.ts").ReplacedResourceState[], never, never>;
|
|
21
|
-
set: <V extends ResourceState>({ stack, stage, fqn, value, }: {
|
|
22
|
-
stack: string;
|
|
23
|
-
stage: string;
|
|
24
|
-
fqn: string;
|
|
25
|
-
value: V;
|
|
26
|
-
}) => Effect.Effect<V, never, never>;
|
|
27
|
-
delete: ({ stack, stage, fqn, }: {
|
|
28
|
-
stack: string;
|
|
29
|
-
stage: string;
|
|
30
|
-
fqn: string;
|
|
31
|
-
}) => Effect.Effect<boolean, never, never>;
|
|
32
|
-
list: ({ stack, stage }: {
|
|
33
|
-
stack: string;
|
|
34
|
-
stage: string;
|
|
35
|
-
}) => Effect.Effect<string[], never, never>;
|
|
36
|
-
};
|
|
7
|
+
export declare const inMemoryState: (initialState?: Record<StackId, Record<StageId, Record<Fqn, ResourceState>>>) => Layer.Layer<State, never, never>;
|
|
8
|
+
export declare const InMemoryService: (state?: Record<StackId, Record<StageId, Record<Fqn, ResourceState>>>) => import("./State.ts").StateService;
|
|
37
9
|
export {};
|
|
38
10
|
//# sourceMappingURL=InMemoryState.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InMemoryState.d.ts","sourceRoot":"","sources":["../../src/State/InMemoryState.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"InMemoryState.d.ts","sourceRoot":"","sources":["../../src/State/InMemoryState.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,KAAK,OAAO,GAAG,MAAM,CAAC;AACtB,KAAK,OAAO,GAAG,MAAM,CAAC;AACtB,KAAK,GAAG,GAAG,MAAM,CAAC;AAElB,eAAO,MAAM,aAAa,GACxB,eAAc,MAAM,CAClB,OAAO,EACP,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,CACvC,qCACgD,CAAC;AAEzD,eAAO,MAAM,eAAe,GAC1B,QAAO,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,CAAM,sCAkEtE,CAAC"}
|
|
@@ -1,22 +1,27 @@
|
|
|
1
1
|
import * as Effect from "effect/Effect";
|
|
2
2
|
import * as Layer from "effect/Layer";
|
|
3
3
|
import { State } from "./State.js";
|
|
4
|
-
export const
|
|
5
|
-
export const InMemoryService = (
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
4
|
+
export const inMemoryState = (initialState = {}) => Layer.succeed(State, InMemoryService(initialState));
|
|
5
|
+
export const InMemoryService = (state = {}) => State.of({
|
|
6
|
+
listStacks: () => Effect.succeed(Array.from(Object.keys(state))),
|
|
7
|
+
listStages: (stack) => Effect.succeed(Array.from(stack in state ? Object.keys(state[stack]) : [])),
|
|
8
|
+
get: ({ stack, stage, fqn, }) => Effect.succeed(state[stack]?.[stage]?.[fqn]),
|
|
9
|
+
getReplacedResources: ({ stack, stage, }) => Effect.succeed(Array.from(Object.values(state[stack]?.[stage] ?? {}) ?? []).filter((s) => s.status === "replaced")),
|
|
10
|
+
set: ({ stack, stage, fqn, value, }) => {
|
|
11
|
+
const stackState = (state[stack] ??= {});
|
|
12
|
+
const stageState = (stackState[stage] ??= {});
|
|
13
|
+
stageState[fqn] = value;
|
|
14
|
+
return Effect.succeed(value);
|
|
15
|
+
},
|
|
16
|
+
delete: ({ stack, stage, fqn, }) => Effect.succeed(delete state[stack]?.[stage]?.[fqn]),
|
|
17
|
+
deleteStack: ({ stack, stage }) => Effect.sync(() => {
|
|
18
|
+
if (stage === undefined) {
|
|
19
|
+
delete state[stack];
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
delete state[stack]?.[stage];
|
|
23
|
+
}
|
|
24
|
+
}),
|
|
25
|
+
list: ({ stack, stage }) => Effect.succeed(Array.from(Object.keys(state[stack]?.[stage] ?? {}) ?? [])),
|
|
26
|
+
});
|
|
22
27
|
//# sourceMappingURL=InMemoryState.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InMemoryState.js","sourceRoot":"","sources":["../../src/State/InMemoryState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"InMemoryState.js","sourceRoot":"","sources":["../../src/State/InMemoryState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAMnC,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,eAGI,EAAE,EACN,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC;AAEzD,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,QAAsE,EAAE,EACxE,EAAE,CACF,KAAK,CAAC,EAAE,CAAC;IACP,UAAU,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAChE,UAAU,EAAE,CAAC,KAAa,EAAE,EAAE,CAC5B,MAAM,CAAC,OAAO,CACZ,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAC5D;IACH,GAAG,EAAE,CAAC,EACJ,KAAK,EACL,KAAK,EACL,GAAG,GAKJ,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAClD,oBAAoB,EAAE,CAAC,EACrB,KAAK,EACL,KAAK,GAIN,EAAE,EAAE,CACH,MAAM,CAAC,OAAO,CACZ,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CACjE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAC/B,CACF;IACH,GAAG,EAAE,CAA0B,EAC7B,KAAK,EACL,KAAK,EACL,GAAG,EACH,KAAK,GAMN,EAAE,EAAE;QACH,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QACzC,MAAM,UAAU,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QAC9C,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACxB,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IACD,MAAM,EAAE,CAAC,EACP,KAAK,EACL,KAAK,EACL,GAAG,GAKJ,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACzD,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAqC,EAAE,EAAE,CACnE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;QACf,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC,CAAC;IACJ,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAoC,EAAE,EAAE,CAC3D,MAAM,CAAC,OAAO,CACZ,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,CAC3D;CACJ,CAAC,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
1
2
|
import * as FileSystem from "effect/FileSystem";
|
|
2
3
|
import * as Layer from "effect/Layer";
|
|
3
4
|
import * as Path from "effect/Path";
|
|
4
|
-
import { State } from "./State.ts";
|
|
5
|
-
export declare const
|
|
5
|
+
import { State, type StateService } from "./State.ts";
|
|
6
|
+
export declare const localState: () => Layer.Layer<State, never, Path.Path | FileSystem.FileSystem>;
|
|
7
|
+
export declare const makeLocalState: () => Effect.Effect<StateService, never, Path.Path | FileSystem.FileSystem>;
|
|
6
8
|
//# sourceMappingURL=LocalState.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalState.d.ts","sourceRoot":"","sources":["../../src/State/LocalState.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"LocalState.d.ts","sourceRoot":"","sources":["../../src/State/LocalState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAGpC,OAAO,EAAE,KAAK,EAAmB,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAGvE,eAAO,MAAM,UAAU,oEAA8C,CAAC;AAEtE,eAAO,MAAM,cAAc,6EAuGvB,CAAC"}
|
package/lib/State/LocalState.js
CHANGED
|
@@ -2,48 +2,11 @@ import * as Effect from "effect/Effect";
|
|
|
2
2
|
import * as FileSystem from "effect/FileSystem";
|
|
3
3
|
import * as Layer from "effect/Layer";
|
|
4
4
|
import * as Path from "effect/Path";
|
|
5
|
-
import * as Redacted from "effect/Redacted";
|
|
6
5
|
import { decodeFqn, encodeFqn } from "../FQN.js";
|
|
7
|
-
import { isResource } from "../Resource.js";
|
|
8
6
|
import { State, StateStoreError } from "./State.js";
|
|
9
|
-
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
return value;
|
|
13
|
-
if (Redacted.isRedacted(value)) {
|
|
14
|
-
return {
|
|
15
|
-
[REDACTED_MARKER]: encodeState(Redacted.value(value)),
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
if (isResource(value)) {
|
|
19
|
-
return {
|
|
20
|
-
id: value.LogicalId,
|
|
21
|
-
type: value.Type,
|
|
22
|
-
props: encodeState(value.Props),
|
|
23
|
-
attr: encodeState(value.Attributes),
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
if (Array.isArray(value))
|
|
27
|
-
return value.map(encodeState);
|
|
28
|
-
if (typeof value === "object") {
|
|
29
|
-
const result = {};
|
|
30
|
-
for (const [k, v] of Object.entries(value)) {
|
|
31
|
-
result[k] = encodeState(v);
|
|
32
|
-
}
|
|
33
|
-
return result;
|
|
34
|
-
}
|
|
35
|
-
return value;
|
|
36
|
-
};
|
|
37
|
-
const reviveState = (_key, value) => {
|
|
38
|
-
if (value !== null &&
|
|
39
|
-
typeof value === "object" &&
|
|
40
|
-
!Array.isArray(value) &&
|
|
41
|
-
REDACTED_MARKER in value) {
|
|
42
|
-
return Redacted.make(value[REDACTED_MARKER]);
|
|
43
|
-
}
|
|
44
|
-
return value;
|
|
45
|
-
};
|
|
46
|
-
export const LocalState = Layer.effect(State, Effect.gen(function* () {
|
|
7
|
+
import { encodeState, reviveState } from "./StateEncoding.js";
|
|
8
|
+
export const localState = () => Layer.effect(State, makeLocalState());
|
|
9
|
+
export const makeLocalState = () => Effect.gen(function* () {
|
|
47
10
|
const fs = yield* FileSystem.FileSystem;
|
|
48
11
|
const path = yield* Path.Path;
|
|
49
12
|
const dotAlchemy = path.join(process.cwd(), ".alchemy");
|
|
@@ -74,9 +37,14 @@ export const LocalState = Layer.effect(State, Effect.gen(function* () {
|
|
|
74
37
|
}),
|
|
75
38
|
set: (request) => ensure(stageDir(request)).pipe(Effect.flatMap(() => fs.writeFileString(resource(request), JSON.stringify(encodeState(request.value), null, 2))), recover, Effect.map(() => request.value)),
|
|
76
39
|
delete: (request) => fs.remove(resource(request)).pipe(recover),
|
|
40
|
+
deleteStack: ({ stack, stage }) => fs
|
|
41
|
+
.remove(stage === undefined
|
|
42
|
+
? path.join(stateDir, stack)
|
|
43
|
+
: stageDir({ stack, stage }), { recursive: true })
|
|
44
|
+
.pipe(recover),
|
|
77
45
|
list: (request) => fs.readDirectory(stageDir(request)).pipe(recover, Effect.map((files) => files?.map((file) => decodeFqn(file.replace(/\.json$/, ""))) ??
|
|
78
46
|
[])),
|
|
79
47
|
};
|
|
80
48
|
return state;
|
|
81
|
-
})
|
|
49
|
+
});
|
|
82
50
|
//# sourceMappingURL=LocalState.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalState.js","sourceRoot":"","sources":["../../src/State/LocalState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAEpC,OAAO,
|
|
1
|
+
{"version":3,"file":"LocalState.js","sourceRoot":"","sources":["../../src/State/LocalState.ts"],"names":[],"mappings":"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"}
|
package/lib/State/State.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ export declare class StateStoreError extends StateStoreError_base<{
|
|
|
9
9
|
cause?: Error;
|
|
10
10
|
}> {
|
|
11
11
|
}
|
|
12
|
-
declare const State_base: Context.ServiceClass<State, "
|
|
12
|
+
declare const State_base: Context.ServiceClass<State, "alchemy/State", StateService>;
|
|
13
13
|
export declare class State extends State_base {
|
|
14
14
|
}
|
|
15
15
|
/**
|
|
@@ -21,8 +21,8 @@ export declare class State extends State_base {
|
|
|
21
21
|
* for provider operations.
|
|
22
22
|
*/
|
|
23
23
|
export interface StateService {
|
|
24
|
-
listStacks(): Effect.Effect<string[], StateStoreError, never>;
|
|
25
|
-
listStages(stack: string): Effect.Effect<string[], StateStoreError, never>;
|
|
24
|
+
listStacks(): Effect.Effect<readonly string[], StateStoreError, never>;
|
|
25
|
+
listStages(stack: string): Effect.Effect<readonly string[], StateStoreError, never>;
|
|
26
26
|
/**
|
|
27
27
|
* Get a resource by its FQN (namespace-qualified key).
|
|
28
28
|
*/
|
|
@@ -58,13 +58,20 @@ export interface StateService {
|
|
|
58
58
|
stage: string;
|
|
59
59
|
fqn: string;
|
|
60
60
|
}): Effect.Effect<void, StateStoreError, never>;
|
|
61
|
+
/**
|
|
62
|
+
* Delete an entire stack, or a single stage when `stage` is provided.
|
|
63
|
+
*/
|
|
64
|
+
deleteStack(request: {
|
|
65
|
+
stack: string;
|
|
66
|
+
stage?: string;
|
|
67
|
+
}): Effect.Effect<void, StateStoreError, never>;
|
|
61
68
|
/**
|
|
62
69
|
* List all resource FQNs in a stack/stage.
|
|
63
70
|
*/
|
|
64
71
|
list(request: {
|
|
65
72
|
stack: string;
|
|
66
73
|
stage: string;
|
|
67
|
-
}): Effect.Effect<string[], StateStoreError, never>;
|
|
74
|
+
}): Effect.Effect<readonly string[], StateStoreError, never>;
|
|
68
75
|
}
|
|
69
76
|
export {};
|
|
70
77
|
//# sourceMappingURL=State.d.ts.map
|