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.
Files changed (311) hide show
  1. package/bin/alchemy.js +9477 -9290
  2. package/bin/alchemy.js.map +1 -1
  3. package/bin/alchemy.ts +6 -2
  4. package/bin/cli.js +61 -0
  5. package/bin/commands/deploy.ts +6 -4
  6. package/bin/commands/login.ts +1 -1
  7. package/bin/commands/logs.ts +1 -1
  8. package/bin/commands/state.ts +233 -0
  9. package/bin/commands/tail.ts +1 -1
  10. package/lib/AWS/AutoScaling/LaunchTemplate.d.ts +1 -1
  11. package/lib/AWS/EC2/Instance.d.ts +1 -1
  12. package/lib/AWS/EC2/hosted.d.ts +2 -2
  13. package/lib/AWS/ECS/Task.d.ts +4 -4
  14. package/lib/AWS/ECS/Task.d.ts.map +1 -1
  15. package/lib/AWS/ECS/Task.js +2 -2
  16. package/lib/AWS/ECS/Task.js.map +1 -1
  17. package/lib/AWS/Environment.d.ts +2 -2
  18. package/lib/AWS/Lambda/BucketEventSource.d.ts +1 -1
  19. package/lib/AWS/Lambda/BucketEventSource.d.ts.map +1 -1
  20. package/lib/AWS/Lambda/EventBridgeEventSource.d.ts +1 -1
  21. package/lib/AWS/Lambda/EventBridgeEventSource.d.ts.map +1 -1
  22. package/lib/AWS/Lambda/Function.d.ts +2 -2
  23. package/lib/AWS/Lambda/Function.d.ts.map +1 -1
  24. package/lib/AWS/Lambda/Function.js +1 -2
  25. package/lib/AWS/Lambda/Function.js.map +1 -1
  26. package/lib/AWS/Lambda/QueueEventSource.d.ts +1 -1
  27. package/lib/AWS/Lambda/QueueEventSource.d.ts.map +1 -1
  28. package/lib/AWS/Lambda/StreamEventSource.d.ts +1 -1
  29. package/lib/AWS/Lambda/StreamEventSource.d.ts.map +1 -1
  30. package/lib/AWS/Lambda/TableEventSource.d.ts +1 -1
  31. package/lib/AWS/Lambda/TableEventSource.d.ts.map +1 -1
  32. package/lib/AWS/Lambda/TopicEventSource.d.ts +1 -1
  33. package/lib/AWS/Lambda/TopicEventSource.d.ts.map +1 -1
  34. package/lib/AWS/SQS/QueueSink.d.ts.map +1 -1
  35. package/lib/AWS/SQS/QueueSink.js +1 -2
  36. package/lib/AWS/SQS/QueueSink.js.map +1 -1
  37. package/lib/Agent/coding/bash.d.ts +2 -6
  38. package/lib/Agent/coding/bash.d.ts.map +1 -1
  39. package/lib/Agent/coding/bash.js +2 -3
  40. package/lib/Agent/coding/bash.js.map +1 -1
  41. package/lib/Agent/coding/edit.d.ts +1 -1
  42. package/lib/Agent/coding/glob.d.ts +2 -4
  43. package/lib/Agent/coding/glob.d.ts.map +1 -1
  44. package/lib/Agent/coding/glob.js +1 -2
  45. package/lib/Agent/coding/glob.js.map +1 -1
  46. package/lib/Agent/coding/grep.d.ts +2 -4
  47. package/lib/Agent/coding/grep.d.ts.map +1 -1
  48. package/lib/Agent/coding/grep.js +1 -2
  49. package/lib/Agent/coding/grep.js.map +1 -1
  50. package/lib/Agent/coding/read.d.ts +1 -1
  51. package/lib/Agent/coding/write.d.ts +1 -1
  52. package/lib/Agent/lsp/client.d.ts +2 -2
  53. package/lib/Agent/util/ripgrep.d.ts +2 -2
  54. package/lib/AlchemyContext.d.ts +13 -0
  55. package/lib/AlchemyContext.d.ts.map +1 -0
  56. package/lib/AlchemyContext.js +18 -0
  57. package/lib/AlchemyContext.js.map +1 -0
  58. package/lib/Auth/AuthProvider.js +1 -1
  59. package/lib/Auth/AuthProvider.js.map +1 -1
  60. package/lib/Auth/Profile.d.ts +1 -1
  61. package/lib/Auth/index.d.ts +3 -1
  62. package/lib/Auth/index.d.ts.map +1 -1
  63. package/lib/Auth/index.js +3 -0
  64. package/lib/Auth/index.js.map +1 -1
  65. package/lib/Build/Command.d.ts +1 -1
  66. package/lib/Build/Memo.d.ts +1 -1
  67. package/lib/Bundle/Docker.d.ts +3 -3
  68. package/lib/Bundle/TempRoot.d.ts +3 -3
  69. package/lib/Cli/LoggingCli.d.ts +4 -0
  70. package/lib/Cli/LoggingCli.d.ts.map +1 -0
  71. package/lib/{Test/TestCli.js → Cli/LoggingCli.js} +3 -3
  72. package/lib/Cli/LoggingCli.js.map +1 -0
  73. package/lib/Cli/index.d.ts +0 -1
  74. package/lib/Cli/index.d.ts.map +1 -1
  75. package/lib/Cli/index.js +4 -1
  76. package/lib/Cli/index.js.map +1 -1
  77. package/lib/Cloudflare/ApiToken/AccountApiToken.d.ts +58 -0
  78. package/lib/Cloudflare/ApiToken/AccountApiToken.d.ts.map +1 -0
  79. package/lib/Cloudflare/ApiToken/AccountApiToken.js +137 -0
  80. package/lib/Cloudflare/ApiToken/AccountApiToken.js.map +1 -0
  81. package/lib/Cloudflare/ApiToken/Common.d.ts +91 -0
  82. package/lib/Cloudflare/ApiToken/Common.d.ts.map +1 -0
  83. package/lib/Cloudflare/ApiToken/Common.js +61 -0
  84. package/lib/Cloudflare/ApiToken/Common.js.map +1 -0
  85. package/lib/Cloudflare/ApiToken/PermissionGroups.d.ts +1549 -0
  86. package/lib/Cloudflare/ApiToken/PermissionGroups.d.ts.map +1 -0
  87. package/lib/Cloudflare/ApiToken/PermissionGroups.js +1856 -0
  88. package/lib/Cloudflare/ApiToken/PermissionGroups.js.map +1 -0
  89. package/lib/Cloudflare/ApiToken/UserApiToken.d.ts +49 -0
  90. package/lib/Cloudflare/ApiToken/UserApiToken.d.ts.map +1 -0
  91. package/lib/Cloudflare/ApiToken/UserApiToken.js +113 -0
  92. package/lib/Cloudflare/ApiToken/UserApiToken.js.map +1 -0
  93. package/lib/Cloudflare/ApiToken/index.d.ts +5 -0
  94. package/lib/Cloudflare/ApiToken/index.d.ts.map +1 -0
  95. package/lib/Cloudflare/ApiToken/index.js +5 -0
  96. package/lib/Cloudflare/ApiToken/index.js.map +1 -0
  97. package/lib/Cloudflare/Auth/AuthProvider.js +2 -2
  98. package/lib/Cloudflare/Auth/AuthProvider.js.map +1 -1
  99. package/lib/Cloudflare/CloudflareEnvironment.d.ts +1 -1
  100. package/lib/Cloudflare/Container/ContainerApplication.d.ts +2 -2
  101. package/lib/Cloudflare/Container/ContainerApplication.d.ts.map +1 -1
  102. package/lib/Cloudflare/Container/ContainerApplication.js +7 -2
  103. package/lib/Cloudflare/Container/ContainerApplication.js.map +1 -1
  104. package/lib/Cloudflare/EdgeSession.d.ts +53 -0
  105. package/lib/Cloudflare/EdgeSession.d.ts.map +1 -0
  106. package/lib/Cloudflare/EdgeSession.js +78 -0
  107. package/lib/Cloudflare/EdgeSession.js.map +1 -0
  108. package/lib/Cloudflare/Providers.d.ts +1 -1
  109. package/lib/Cloudflare/Providers.d.ts.map +1 -1
  110. package/lib/Cloudflare/Providers.js +4 -1
  111. package/lib/Cloudflare/Providers.js.map +1 -1
  112. package/lib/Cloudflare/StateStore/Api.d.ts +61 -0
  113. package/lib/Cloudflare/StateStore/Api.d.ts.map +1 -0
  114. package/lib/Cloudflare/StateStore/Api.js +103 -0
  115. package/lib/Cloudflare/StateStore/Api.js.map +1 -0
  116. package/lib/Cloudflare/StateStore/State.d.ts +39 -0
  117. package/lib/Cloudflare/StateStore/State.d.ts.map +1 -0
  118. package/lib/Cloudflare/StateStore/State.js +217 -0
  119. package/lib/Cloudflare/StateStore/State.js.map +1 -0
  120. package/lib/Cloudflare/StateStore/Store.d.ts +82 -0
  121. package/lib/Cloudflare/StateStore/Store.d.ts.map +1 -0
  122. package/lib/Cloudflare/StateStore/Store.js +191 -0
  123. package/lib/Cloudflare/StateStore/Store.js.map +1 -0
  124. package/lib/Cloudflare/StateStore/Token.d.ts +43 -0
  125. package/lib/Cloudflare/StateStore/Token.d.ts.map +1 -0
  126. package/lib/Cloudflare/StateStore/Token.js +61 -0
  127. package/lib/Cloudflare/StateStore/Token.js.map +1 -0
  128. package/lib/Cloudflare/StateStore/index.d.ts +2 -0
  129. package/lib/Cloudflare/StateStore/index.d.ts.map +1 -0
  130. package/lib/Cloudflare/StateStore/index.js +2 -0
  131. package/lib/Cloudflare/StateStore/index.js.map +1 -0
  132. package/lib/Cloudflare/Workers/Assets.d.ts +2 -2
  133. package/lib/Cloudflare/Workers/DurableObjectNamespace.d.ts +2 -2
  134. package/lib/Cloudflare/Workers/DurableObjectNamespace.d.ts.map +1 -1
  135. package/lib/Cloudflare/Workers/DurableObjectNamespace.js +0 -1
  136. package/lib/Cloudflare/Workers/DurableObjectNamespace.js.map +1 -1
  137. package/lib/Cloudflare/Workers/HttpServer.d.ts +1 -1
  138. package/lib/Cloudflare/Workers/HttpServer.d.ts.map +1 -1
  139. package/lib/Cloudflare/Workers/HttpServer.js.map +1 -1
  140. package/lib/Cloudflare/Workers/Worker.d.ts +5 -5
  141. package/lib/Cloudflare/Workers/Worker.d.ts.map +1 -1
  142. package/lib/Cloudflare/Workers/Worker.js +0 -1
  143. package/lib/Cloudflare/Workers/Worker.js.map +1 -1
  144. package/lib/Cloudflare/index.d.ts +4 -1
  145. package/lib/Cloudflare/index.d.ts.map +1 -1
  146. package/lib/Cloudflare/index.js +4 -1
  147. package/lib/Cloudflare/index.js.map +1 -1
  148. package/lib/Deploy.d.ts +10 -0
  149. package/lib/Deploy.d.ts.map +1 -0
  150. package/lib/Deploy.js +12 -0
  151. package/lib/Deploy.js.map +1 -0
  152. package/lib/Destroy.d.ts +8 -3
  153. package/lib/Destroy.d.ts.map +1 -1
  154. package/lib/Destroy.js +8 -8
  155. package/lib/Destroy.js.map +1 -1
  156. package/lib/GitHub/Providers.d.ts +3 -0
  157. package/lib/GitHub/Providers.d.ts.map +1 -0
  158. package/lib/GitHub/Providers.js +5 -0
  159. package/lib/GitHub/Providers.js.map +1 -0
  160. package/lib/GitHub/index.d.ts +1 -0
  161. package/lib/GitHub/index.d.ts.map +1 -1
  162. package/lib/GitHub/index.js +1 -0
  163. package/lib/GitHub/index.js.map +1 -1
  164. package/lib/Http.d.ts +1 -1
  165. package/lib/Http.d.ts.map +1 -1
  166. package/lib/Http.js +7 -3
  167. package/lib/Http.js.map +1 -1
  168. package/lib/Kubernetes/client.d.ts +10 -10
  169. package/lib/Output.d.ts.map +1 -1
  170. package/lib/Output.js +4 -0
  171. package/lib/Output.js.map +1 -1
  172. package/lib/Plan.d.ts.map +1 -1
  173. package/lib/Plan.js +4 -0
  174. package/lib/Plan.js.map +1 -1
  175. package/lib/Platform.d.ts +2 -2
  176. package/lib/Platform.d.ts.map +1 -1
  177. package/lib/Platform.js.map +1 -1
  178. package/lib/Provider.d.ts.map +1 -1
  179. package/lib/Provider.js +0 -1
  180. package/lib/Provider.js.map +1 -1
  181. package/lib/Stack.d.ts +24 -12
  182. package/lib/Stack.d.ts.map +1 -1
  183. package/lib/Stack.js +47 -10
  184. package/lib/Stack.js.map +1 -1
  185. package/lib/State/HttpStateApi.d.ts +96 -0
  186. package/lib/State/HttpStateApi.d.ts.map +1 -0
  187. package/lib/State/HttpStateApi.js +96 -0
  188. package/lib/State/HttpStateApi.js.map +1 -0
  189. package/lib/State/HttpStateStore.d.ts +10 -0
  190. package/lib/State/HttpStateStore.d.ts.map +1 -0
  191. package/lib/State/HttpStateStore.js +102 -0
  192. package/lib/State/HttpStateStore.js.map +1 -0
  193. package/lib/State/InMemoryState.d.ts +2 -30
  194. package/lib/State/InMemoryState.d.ts.map +1 -1
  195. package/lib/State/InMemoryState.js +23 -18
  196. package/lib/State/InMemoryState.js.map +1 -1
  197. package/lib/State/LocalState.d.ts +4 -2
  198. package/lib/State/LocalState.d.ts.map +1 -1
  199. package/lib/State/LocalState.js +9 -41
  200. package/lib/State/LocalState.js.map +1 -1
  201. package/lib/State/State.d.ts +11 -4
  202. package/lib/State/State.d.ts.map +1 -1
  203. package/lib/State/State.js +1 -1
  204. package/lib/State/State.js.map +1 -1
  205. package/lib/State/StateEncoding.d.ts +31 -0
  206. package/lib/State/StateEncoding.d.ts.map +1 -0
  207. package/lib/State/StateEncoding.js +82 -0
  208. package/lib/State/StateEncoding.js.map +1 -0
  209. package/lib/State/Sync.d.ts +23 -0
  210. package/lib/State/Sync.d.ts.map +1 -0
  211. package/lib/State/Sync.js +49 -0
  212. package/lib/State/Sync.js.map +1 -0
  213. package/lib/State/index.d.ts +4 -0
  214. package/lib/State/index.d.ts.map +1 -1
  215. package/lib/State/index.js +4 -0
  216. package/lib/State/index.js.map +1 -1
  217. package/lib/Test/Bun.d.ts +13 -17
  218. package/lib/Test/Bun.d.ts.map +1 -1
  219. package/lib/Test/Bun.js +17 -36
  220. package/lib/Test/Bun.js.map +1 -1
  221. package/lib/Test/TestState.d.ts +1 -2
  222. package/lib/Test/TestState.d.ts.map +1 -1
  223. package/lib/Test/TestState.js +5 -9
  224. package/lib/Test/TestState.js.map +1 -1
  225. package/lib/Test/Vitest.d.ts +3 -2
  226. package/lib/Test/Vitest.d.ts.map +1 -1
  227. package/lib/Test/Vitest.js +20 -11
  228. package/lib/Test/Vitest.js.map +1 -1
  229. package/lib/Test/index.d.ts +0 -1
  230. package/lib/Test/index.d.ts.map +1 -1
  231. package/lib/Test/index.js +0 -1
  232. package/lib/Test/index.js.map +1 -1
  233. package/lib/Util/FileLogger.d.ts +2 -2
  234. package/lib/Util/FileLogger.d.ts.map +1 -1
  235. package/lib/Util/FileLogger.js +2 -2
  236. package/lib/Util/FileLogger.js.map +1 -1
  237. package/lib/cli/index.d.ts +10 -5
  238. package/lib/cli/index.d.ts.map +1 -1
  239. package/lib/cli/index.js +2 -43045
  240. package/lib/cli/index.js.map +1 -1
  241. package/lib/index.d.ts +2 -1
  242. package/lib/index.d.ts.map +1 -1
  243. package/lib/index.js +2 -1
  244. package/lib/index.js.map +1 -1
  245. package/package.json +30 -15
  246. package/src/AWS/ECS/Task.ts +4 -4
  247. package/src/AWS/Lambda/Function.ts +2 -3
  248. package/src/AWS/SQS/QueueSink.ts +1 -2
  249. package/src/Agent/coding/bash.ts +2 -3
  250. package/src/Agent/coding/glob.ts +1 -2
  251. package/src/Agent/coding/grep.ts +1 -2
  252. package/src/AlchemyContext.ts +27 -0
  253. package/src/Auth/AuthProvider.ts +1 -1
  254. package/src/Auth/index.ts +3 -1
  255. package/src/{Test/TestCli.ts → Cli/LoggingCli.ts} +2 -2
  256. package/src/Cli/index.ts +4 -1
  257. package/src/Cloudflare/ApiToken/AccountApiToken.ts +197 -0
  258. package/src/Cloudflare/ApiToken/Common.ts +148 -0
  259. package/src/Cloudflare/ApiToken/PermissionGroups.ts +1910 -0
  260. package/src/Cloudflare/ApiToken/UserApiToken.ts +168 -0
  261. package/src/Cloudflare/ApiToken/index.ts +4 -0
  262. package/src/Cloudflare/Auth/AuthProvider.ts +2 -2
  263. package/src/Cloudflare/Container/ContainerApplication.ts +8 -2
  264. package/src/Cloudflare/EdgeSession.ts +144 -0
  265. package/src/Cloudflare/Providers.ts +5 -0
  266. package/src/Cloudflare/StateStore/Api.ts +159 -0
  267. package/src/Cloudflare/StateStore/State.ts +318 -0
  268. package/src/Cloudflare/StateStore/Store.ts +290 -0
  269. package/src/Cloudflare/StateStore/Token.ts +68 -0
  270. package/src/Cloudflare/StateStore/index.ts +1 -0
  271. package/src/Cloudflare/Workers/DurableObjectNamespace.ts +1 -6
  272. package/src/Cloudflare/Workers/HttpServer.ts +1 -1
  273. package/src/Cloudflare/Workers/Worker.ts +7 -7
  274. package/src/Cloudflare/index.ts +4 -1
  275. package/src/Deploy.ts +25 -0
  276. package/src/Destroy.ts +25 -13
  277. package/src/GitHub/Providers.ts +6 -0
  278. package/src/GitHub/index.ts +1 -0
  279. package/src/Http.ts +31 -16
  280. package/src/Output.ts +3 -2
  281. package/src/Plan.ts +3 -0
  282. package/src/Platform.ts +8 -2
  283. package/src/Provider.ts +0 -2
  284. package/src/Stack.ts +146 -45
  285. package/src/State/HttpStateApi.ts +155 -0
  286. package/src/State/HttpStateStore.ts +156 -0
  287. package/src/State/InMemoryState.ts +15 -17
  288. package/src/State/LocalState.ts +13 -45
  289. package/src/State/State.ts +13 -4
  290. package/src/State/StateEncoding.ts +83 -0
  291. package/src/State/Sync.ts +89 -0
  292. package/src/State/index.ts +4 -0
  293. package/src/Test/Bun.ts +31 -89
  294. package/src/Test/TestState.ts +6 -8
  295. package/src/Test/Vitest.ts +32 -19
  296. package/src/Test/index.ts +0 -1
  297. package/src/Util/FileLogger.ts +2 -2
  298. package/src/index.ts +2 -1
  299. package/lib/Config.d.ts +0 -20
  300. package/lib/Config.d.ts.map +0 -1
  301. package/lib/Config.js +0 -22
  302. package/lib/Config.js.map +0 -1
  303. package/lib/Observability.d.ts +0 -2
  304. package/lib/Observability.d.ts.map +0 -1
  305. package/lib/Observability.js +0 -1
  306. package/lib/Observability.js.map +0 -1
  307. package/lib/Test/TestCli.d.ts +0 -4
  308. package/lib/Test/TestCli.d.ts.map +0 -1
  309. package/lib/Test/TestCli.js.map +0 -1
  310. package/src/Config.ts +0 -31
  311. 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":"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"}
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 InMemory: (initialState?: Record<StackId, Record<StageId, Record<Fqn, ResourceState>>>) => Layer.Layer<State, never, never>;
9
- export declare const InMemoryService: (initialState?: Record<StackId, Record<StageId, Record<Fqn, ResourceState>>>) => {
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":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAqB,MAAM,YAAY,CAAC;AAEtD,KAAK,OAAO,GAAG,MAAM,CAAC;AACtB,KAAK,OAAO,GAAG,MAAM,CAAC;AACtB,KAAK,GAAG,GAAG,MAAM,CAAC;AAElB,eAAO,MAAM,QAAQ,GACnB,eAAc,MAAM,CAClB,OAAO,EACP,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,CACvC,KAEiD,KAAK,CAAC,KAAK,CAChE,KAAK,EACL,KAAK,EACL,KAAK,CACN,CAAC;AAEJ,eAAO,MAAM,eAAe,GAC1B,eAAc,MAAM,CAClB,OAAO,EACP,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,CACvC;;wBAKgB,MAAM;kCAQvB;QACD,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;KACb;8CAIE;QACD,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf;UAMK,CAAC,SAAS,aAAa,iCAK1B;QACD,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,CAAC,CAAC;KACV;qCAUE;QACD,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;KACb;6BACwB;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;CAK5D,CAAC"}
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 InMemory = (initialState = {}) => Layer.succeed(State, InMemoryService(initialState));
5
- export const InMemoryService = (initialState = {}) => {
6
- const state = initialState;
7
- return {
8
- listStacks: () => Effect.succeed(Array.from(Object.keys(state))),
9
- listStages: (stack) => Effect.succeed(Array.from(stack in state ? Object.keys(state[stack]) : [])),
10
- get: ({ stack, stage, fqn, }) => Effect.succeed(state[stack]?.[stage]?.[fqn]),
11
- getReplacedResources: ({ stack, stage, }) => Effect.succeed(Array.from(Object.values(state[stack]?.[stage] ?? {}) ?? []).filter((s) => s.status === "replaced")),
12
- set: ({ stack, stage, fqn, value, }) => {
13
- const stackState = (state[stack] ??= {});
14
- const stageState = (stackState[stage] ??= {});
15
- stageState[fqn] = value;
16
- return Effect.succeed(value);
17
- },
18
- delete: ({ stack, stage, fqn, }) => Effect.succeed(delete state[stack]?.[stage]?.[fqn]),
19
- list: ({ stack, stage }) => Effect.succeed(Array.from(Object.keys(state[stack]?.[stage] ?? {}) ?? [])),
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,EAAqB,MAAM,YAAY,CAAC;AAMtD,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,eAGI,EAAE,EACN,EAAE,CACF,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,eAAe,CAAC,YAAY,CAAC,CAIjD,CAAC;AAEJ,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,eAGI,EAAE,EACN,EAAE;IACF,MAAM,KAAK,GAAG,YAAY,CAAC;IAC3B,OAAO;QACL,UAAU,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAChE,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;QACH,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;QAClD,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;QACH,GAAG,EAAE,CAA0B,EAC7B,KAAK,EACL,KAAK,EACL,GAAG,EACH,KAAK,GAMN,EAAE,EAAE;YACH,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;YACzC,MAAM,UAAU,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;YAC9C,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACxB,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QACD,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;QACzD,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;KACmB,CAAC;AAC3B,CAAC,CAAC"}
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 LocalState: Layer.Layer<State, never, FileSystem.FileSystem | Path.Path>;
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":"AACA,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAKpC,OAAO,EAAE,KAAK,EAAsC,MAAM,YAAY,CAAC;AA0CvE,eAAO,MAAM,UAAU,8DAgGtB,CAAC"}
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"}
@@ -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
- const REDACTED_MARKER = "__redacted__";
10
- const encodeState = (value) => {
11
- if (value === null || value === undefined)
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":"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"}
1
+ {"version":3,"file":"LocalState.js","sourceRoot":"","sources":["../../src/State/LocalState.ts"],"names":[],"mappings":"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"}
@@ -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, "AWS::Lambda::State", StateService>;
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