alchemy 2.0.0-beta.36 → 2.0.0-beta.38

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 (741) hide show
  1. package/bin/exec.js +646 -104
  2. package/bin/exec.js.map +1 -1
  3. package/lib/AWS/AutoScaling/LaunchTemplate.d.ts +1 -1
  4. package/lib/AWS/CloudWatch/common.d.ts +1 -1
  5. package/lib/AWS/Credentials.d.ts.map +1 -1
  6. package/lib/AWS/Credentials.js +1 -2
  7. package/lib/AWS/Credentials.js.map +1 -1
  8. package/lib/AWS/DynamoDB/Stream.d.ts.map +1 -1
  9. package/lib/AWS/DynamoDB/Stream.js +1 -1
  10. package/lib/AWS/DynamoDB/Stream.js.map +1 -1
  11. package/lib/AWS/EC2/Instance.d.ts +1 -1
  12. package/lib/AWS/EC2/hosted.d.ts +1 -1
  13. package/lib/AWS/EC2/hosted.d.ts.map +1 -1
  14. package/lib/AWS/EC2/hosted.js +3 -5
  15. package/lib/AWS/EC2/hosted.js.map +1 -1
  16. package/lib/AWS/ECS/Task.d.ts +1 -1
  17. package/lib/AWS/ECS/Task.d.ts.map +1 -1
  18. package/lib/AWS/ECS/Task.js +3 -5
  19. package/lib/AWS/ECS/Task.js.map +1 -1
  20. package/lib/AWS/Endpoint.d.ts.map +1 -1
  21. package/lib/AWS/Endpoint.js +1 -2
  22. package/lib/AWS/Endpoint.js.map +1 -1
  23. package/lib/AWS/Environment.d.ts +2 -2
  24. package/lib/AWS/EventBridge/EventSource.d.ts.map +1 -1
  25. package/lib/AWS/EventBridge/EventSource.js +1 -1
  26. package/lib/AWS/EventBridge/EventSource.js.map +1 -1
  27. package/lib/AWS/Kinesis/StreamEventSource.d.ts.map +1 -1
  28. package/lib/AWS/Kinesis/StreamEventSource.js +1 -1
  29. package/lib/AWS/Kinesis/StreamEventSource.js.map +1 -1
  30. package/lib/AWS/Lambda/BucketEventSource.d.ts +1 -1
  31. package/lib/AWS/Lambda/EventBridgeEventSource.d.ts +1 -1
  32. package/lib/AWS/Lambda/Function.d.ts +1 -1
  33. package/lib/AWS/Lambda/Function.d.ts.map +1 -1
  34. package/lib/AWS/Lambda/Function.js +29 -13
  35. package/lib/AWS/Lambda/Function.js.map +1 -1
  36. package/lib/AWS/Lambda/QueueEventSource.d.ts +1 -1
  37. package/lib/AWS/Lambda/StreamEventSource.d.ts +1 -1
  38. package/lib/AWS/Lambda/TableEventSource.d.ts +1 -1
  39. package/lib/AWS/Lambda/TopicEventSource.d.ts +1 -1
  40. package/lib/AWS/Organizations/common.d.ts +1 -1
  41. package/lib/AWS/Providers.d.ts.map +1 -1
  42. package/lib/AWS/Providers.js +21 -3
  43. package/lib/AWS/Providers.js.map +1 -1
  44. package/lib/AWS/Region.d.ts +1 -1
  45. package/lib/AWS/Region.d.ts.map +1 -1
  46. package/lib/AWS/Region.js +2 -3
  47. package/lib/AWS/Region.js.map +1 -1
  48. package/lib/AWS/S3/Bucket.d.ts.map +1 -1
  49. package/lib/AWS/S3/Bucket.js +5 -2
  50. package/lib/AWS/S3/Bucket.js.map +1 -1
  51. package/lib/AWS/S3/BucketNotifications.d.ts.map +1 -1
  52. package/lib/AWS/S3/BucketNotifications.js +1 -1
  53. package/lib/AWS/S3/BucketNotifications.js.map +1 -1
  54. package/lib/AWS/SNS/TopicEventSource.d.ts.map +1 -1
  55. package/lib/AWS/SNS/TopicEventSource.js +1 -1
  56. package/lib/AWS/SNS/TopicEventSource.js.map +1 -1
  57. package/lib/AWS/SQS/Queue.d.ts.map +1 -1
  58. package/lib/AWS/SQS/Queue.js +23 -5
  59. package/lib/AWS/SQS/Queue.js.map +1 -1
  60. package/lib/Action.d.ts +77 -0
  61. package/lib/Action.d.ts.map +1 -0
  62. package/lib/Action.js +89 -0
  63. package/lib/Action.js.map +1 -0
  64. package/lib/AlchemyContext.d.ts +1 -1
  65. package/lib/Apply.d.ts.map +1 -1
  66. package/lib/Apply.js +228 -4
  67. package/lib/Apply.js.map +1 -1
  68. package/lib/Artifacts.d.ts +1 -1
  69. package/lib/Artifacts.d.ts.map +1 -1
  70. package/lib/Artifacts.js +1 -1
  71. package/lib/Artifacts.js.map +1 -1
  72. package/lib/Auth/AuthProvider.js +1 -1
  73. package/lib/Auth/AuthProvider.js.map +1 -1
  74. package/lib/Auth/Env.d.ts.map +1 -1
  75. package/lib/Auth/Env.js +4 -12
  76. package/lib/Auth/Env.js.map +1 -1
  77. package/lib/Binding.d.ts.map +1 -1
  78. package/lib/Binding.js +5 -5
  79. package/lib/Binding.js.map +1 -1
  80. package/lib/Build/Command.d.ts +1 -1
  81. package/lib/Build/Memo.d.ts +1 -1
  82. package/lib/Bundle/Docker.d.ts +3 -3
  83. package/lib/Bundle/Docker.js +1 -1
  84. package/lib/Bundle/Docker.js.map +1 -1
  85. package/lib/Bundle/TempRoot.d.ts +3 -3
  86. package/lib/Cli/Event.d.ts +1 -1
  87. package/lib/Cli/Event.d.ts.map +1 -1
  88. package/lib/Cli/NamespaceTree.d.ts +11 -5
  89. package/lib/Cli/NamespaceTree.d.ts.map +1 -1
  90. package/lib/Cli/NamespaceTree.js +28 -1
  91. package/lib/Cli/NamespaceTree.js.map +1 -1
  92. package/lib/Cli/commands/_shared.d.ts +1 -1
  93. package/lib/Cli/commands/_shared.js +2 -2
  94. package/lib/Cli/commands/_shared.js.map +1 -1
  95. package/lib/Cli/commands/aws.d.ts +1 -1
  96. package/lib/Cli/commands/cloudflare.d.ts +2 -2
  97. package/lib/Cli/commands/cloudflare.d.ts.map +1 -1
  98. package/lib/Cli/commands/deploy.d.ts +9 -9
  99. package/lib/Cli/commands/deploy.js +1 -1
  100. package/lib/Cli/commands/deploy.js.map +1 -1
  101. package/lib/Cli/commands/login.d.ts +1 -1
  102. package/lib/Cli/commands/logs.d.ts +1 -1
  103. package/lib/Cli/commands/logs.js.map +1 -1
  104. package/lib/Cli/commands/profile.d.ts +1 -3
  105. package/lib/Cli/commands/profile.d.ts.map +1 -1
  106. package/lib/Cli/commands/state.d.ts +1 -1
  107. package/lib/Cli/commands/state.d.ts.map +1 -1
  108. package/lib/Cli/commands/tail.d.ts +1 -1
  109. package/lib/Cli/commands/tail.js.map +1 -1
  110. package/lib/Cli/tui/components/Plan.d.ts.map +1 -1
  111. package/lib/Cli/tui/components/Plan.js +27 -13
  112. package/lib/Cli/tui/components/Plan.js.map +1 -1
  113. package/lib/Cli/tui/components/PlanProgress.d.ts +8 -1
  114. package/lib/Cli/tui/components/PlanProgress.d.ts.map +1 -1
  115. package/lib/Cli/tui/components/PlanProgress.js +95 -16
  116. package/lib/Cli/tui/components/PlanProgress.js.map +1 -1
  117. package/lib/Cloudflare/Access.js +0 -1
  118. package/lib/Cloudflare/Access.js.map +1 -1
  119. package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDataset.d.ts +54 -0
  120. package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDataset.d.ts.map +1 -0
  121. package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDataset.js +17 -0
  122. package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDataset.js.map +1 -0
  123. package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDatasetBinding.d.ts +37 -0
  124. package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDatasetBinding.d.ts.map +1 -0
  125. package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDatasetBinding.js +45 -0
  126. package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDatasetBinding.js.map +1 -0
  127. package/lib/Cloudflare/AnalyticsEngine/index.d.ts +3 -0
  128. package/lib/Cloudflare/AnalyticsEngine/index.d.ts.map +1 -0
  129. package/lib/Cloudflare/AnalyticsEngine/index.js +3 -0
  130. package/lib/Cloudflare/AnalyticsEngine/index.js.map +1 -0
  131. package/lib/Cloudflare/Artifacts/ArtifactsBinding.js +1 -1
  132. package/lib/Cloudflare/Artifacts/ArtifactsBinding.js.map +1 -1
  133. package/lib/Cloudflare/CloudflareEnvironment.d.ts +1 -1
  134. package/lib/Cloudflare/Container/Container.js +0 -1
  135. package/lib/Cloudflare/Container/Container.js.map +1 -1
  136. package/lib/Cloudflare/Container/ContainerApplication.d.ts +1 -1
  137. package/lib/Cloudflare/Container/ContainerApplication.d.ts.map +1 -1
  138. package/lib/Cloudflare/Container/ContainerApplication.js +4 -6
  139. package/lib/Cloudflare/Container/ContainerApplication.js.map +1 -1
  140. package/lib/Cloudflare/Container/ContainerBinding.js +2 -2
  141. package/lib/Cloudflare/Container/ContainerBinding.js.map +1 -1
  142. package/lib/Cloudflare/D1/D1Connection.d.ts +47 -3
  143. package/lib/Cloudflare/D1/D1Connection.d.ts.map +1 -1
  144. package/lib/Cloudflare/D1/D1Connection.js +62 -5
  145. package/lib/Cloudflare/D1/D1Connection.js.map +1 -1
  146. package/lib/Cloudflare/D1/D1Database.d.ts +1 -1
  147. package/lib/Cloudflare/D1/D1SqlFile.d.ts +2 -2
  148. package/lib/Cloudflare/Email/EmailAddress.d.ts +45 -0
  149. package/lib/Cloudflare/Email/EmailAddress.d.ts.map +1 -0
  150. package/lib/Cloudflare/Email/EmailAddress.js +99 -0
  151. package/lib/Cloudflare/Email/EmailAddress.js.map +1 -0
  152. package/lib/Cloudflare/Email/EmailRouting.d.ts +42 -0
  153. package/lib/Cloudflare/Email/EmailRouting.d.ts.map +1 -0
  154. package/lib/Cloudflare/Email/EmailRouting.js +89 -0
  155. package/lib/Cloudflare/Email/EmailRouting.js.map +1 -0
  156. package/lib/Cloudflare/Email/EmailRule.d.ts +80 -0
  157. package/lib/Cloudflare/Email/EmailRule.d.ts.map +1 -0
  158. package/lib/Cloudflare/Email/EmailRule.js +110 -0
  159. package/lib/Cloudflare/Email/EmailRule.js.map +1 -0
  160. package/lib/Cloudflare/Email/SendEmail.d.ts +74 -0
  161. package/lib/Cloudflare/Email/SendEmail.d.ts.map +1 -0
  162. package/lib/Cloudflare/Email/SendEmail.js +19 -0
  163. package/lib/Cloudflare/Email/SendEmail.js.map +1 -0
  164. package/lib/Cloudflare/Email/SendEmailBinding.d.ts +64 -0
  165. package/lib/Cloudflare/Email/SendEmailBinding.d.ts.map +1 -0
  166. package/lib/Cloudflare/Email/SendEmailBinding.js +54 -0
  167. package/lib/Cloudflare/Email/SendEmailBinding.js.map +1 -0
  168. package/lib/Cloudflare/Email/index.d.ts +6 -0
  169. package/lib/Cloudflare/Email/index.d.ts.map +1 -0
  170. package/lib/Cloudflare/Email/index.js +6 -0
  171. package/lib/Cloudflare/Email/index.js.map +1 -0
  172. package/lib/Cloudflare/Hyperdrive/Hyperdrive.d.ts +1 -1
  173. package/lib/Cloudflare/Images/ImagesBinding.js +1 -1
  174. package/lib/Cloudflare/Images/ImagesBinding.js.map +1 -1
  175. package/lib/Cloudflare/KV/KVNamespaceBinding.js +1 -1
  176. package/lib/Cloudflare/KV/KVNamespaceBinding.js.map +1 -1
  177. package/lib/Cloudflare/Local/Sidecar.d.ts +1 -1
  178. package/lib/Cloudflare/Local/SidecarHandlers.d.ts +1 -1
  179. package/lib/Cloudflare/Local/SidecarHandlers.js +9 -1
  180. package/lib/Cloudflare/Local/SidecarHandlers.js.map +1 -1
  181. package/lib/Cloudflare/Local/SidecarServer.js +1 -1
  182. package/lib/Cloudflare/Local/SidecarServer.js.map +1 -1
  183. package/lib/Cloudflare/Providers.d.ts.map +1 -1
  184. package/lib/Cloudflare/Providers.js +9 -1
  185. package/lib/Cloudflare/Providers.js.map +1 -1
  186. package/lib/Cloudflare/Queue/QueueBinding.js +1 -1
  187. package/lib/Cloudflare/Queue/QueueBinding.js.map +1 -1
  188. package/lib/Cloudflare/R2/R2Bucket.d.ts.map +1 -1
  189. package/lib/Cloudflare/R2/R2Bucket.js +16 -0
  190. package/lib/Cloudflare/R2/R2Bucket.js.map +1 -1
  191. package/lib/Cloudflare/R2/R2BucketBinding.js +1 -1
  192. package/lib/Cloudflare/R2/R2BucketBinding.js.map +1 -1
  193. package/lib/Cloudflare/SecretsStore/SecretBinding.js +1 -1
  194. package/lib/Cloudflare/SecretsStore/SecretBinding.js.map +1 -1
  195. package/lib/Cloudflare/StateStore/Api.d.ts +7 -2
  196. package/lib/Cloudflare/StateStore/Api.d.ts.map +1 -1
  197. package/lib/Cloudflare/StateStore/Api.js +23 -1
  198. package/lib/Cloudflare/StateStore/Api.js.map +1 -1
  199. package/lib/Cloudflare/StateStore/State.d.ts +2 -2
  200. package/lib/Cloudflare/StateStore/Store.d.ts +16 -1
  201. package/lib/Cloudflare/StateStore/Store.d.ts.map +1 -1
  202. package/lib/Cloudflare/StateStore/Store.js +22 -5
  203. package/lib/Cloudflare/StateStore/Store.js.map +1 -1
  204. package/lib/Cloudflare/Workers/Assets.d.ts +2 -2
  205. package/lib/Cloudflare/Workers/Assets.d.ts.map +1 -1
  206. package/lib/Cloudflare/Workers/Assets.js +5 -4
  207. package/lib/Cloudflare/Workers/Assets.js.map +1 -1
  208. package/lib/Cloudflare/Workers/CronEventSource.d.ts +35 -0
  209. package/lib/Cloudflare/Workers/CronEventSource.d.ts.map +1 -0
  210. package/lib/Cloudflare/Workers/CronEventSource.js +55 -0
  211. package/lib/Cloudflare/Workers/CronEventSource.js.map +1 -0
  212. package/lib/Cloudflare/Workers/InferEnv.d.ts +37 -2
  213. package/lib/Cloudflare/Workers/InferEnv.d.ts.map +1 -1
  214. package/lib/Cloudflare/Workers/LocalWorkerProvider.d.ts.map +1 -1
  215. package/lib/Cloudflare/Workers/LocalWorkerProvider.js +2 -1
  216. package/lib/Cloudflare/Workers/LocalWorkerProvider.js.map +1 -1
  217. package/lib/Cloudflare/Workers/Rpc.d.ts +76 -3
  218. package/lib/Cloudflare/Workers/Rpc.d.ts.map +1 -1
  219. package/lib/Cloudflare/Workers/Rpc.js +197 -13
  220. package/lib/Cloudflare/Workers/Rpc.js.map +1 -1
  221. package/lib/Cloudflare/Workers/Worker.d.ts +24 -4
  222. package/lib/Cloudflare/Workers/Worker.d.ts.map +1 -1
  223. package/lib/Cloudflare/Workers/Worker.js +187 -45
  224. package/lib/Cloudflare/Workers/Worker.js.map +1 -1
  225. package/lib/Cloudflare/Workers/WorkerBundle.d.ts +1 -1
  226. package/lib/Cloudflare/Workers/WorkerBundle.d.ts.map +1 -1
  227. package/lib/Cloudflare/Workers/WorkerBundle.js +19 -11
  228. package/lib/Cloudflare/Workers/WorkerBundle.js.map +1 -1
  229. package/lib/Cloudflare/Workers/WorkerName.d.ts +1 -1
  230. package/lib/Cloudflare/Workers/Workflow.d.ts +50 -47
  231. package/lib/Cloudflare/Workers/Workflow.d.ts.map +1 -1
  232. package/lib/Cloudflare/Workers/Workflow.js +43 -37
  233. package/lib/Cloudflare/Workers/Workflow.js.map +1 -1
  234. package/lib/Cloudflare/Workers/index.d.ts +1 -0
  235. package/lib/Cloudflare/Workers/index.d.ts.map +1 -1
  236. package/lib/Cloudflare/Workers/index.js +1 -0
  237. package/lib/Cloudflare/Workers/index.js.map +1 -1
  238. package/lib/Cloudflare/index.d.ts +2 -0
  239. package/lib/Cloudflare/index.d.ts.map +1 -1
  240. package/lib/Cloudflare/index.js +2 -0
  241. package/lib/Cloudflare/index.js.map +1 -1
  242. package/lib/Construct.d.ts +3 -3
  243. package/lib/Construct.d.ts.map +1 -1
  244. package/lib/Construct.js.map +1 -1
  245. package/lib/Deploy.d.ts +5 -2
  246. package/lib/Deploy.d.ts.map +1 -1
  247. package/lib/Deploy.js +2 -2
  248. package/lib/Deploy.js.map +1 -1
  249. package/lib/Destroy.d.ts +5 -2
  250. package/lib/Destroy.d.ts.map +1 -1
  251. package/lib/Destroy.js +3 -2
  252. package/lib/Destroy.js.map +1 -1
  253. package/lib/Drizzle/Providers.d.ts +1 -1
  254. package/lib/Drizzle/Schema.d.ts +1 -1
  255. package/lib/GitHub/Providers.d.ts +1 -1
  256. package/lib/Http.d.ts +1 -1
  257. package/lib/Http.d.ts.map +1 -1
  258. package/lib/Http.js +1 -1
  259. package/lib/Http.js.map +1 -1
  260. package/lib/Namespace.d.ts.map +1 -1
  261. package/lib/Namespace.js +3 -4
  262. package/lib/Namespace.js.map +1 -1
  263. package/lib/Neon/Branch.d.ts +2 -2
  264. package/lib/Neon/Branch.d.ts.map +1 -1
  265. package/lib/Neon/Branch.js +59 -27
  266. package/lib/Neon/Branch.js.map +1 -1
  267. package/lib/Neon/Credentials.d.ts +2 -2
  268. package/lib/Neon/Credentials.d.ts.map +1 -1
  269. package/lib/Neon/Credentials.js +2 -2
  270. package/lib/Neon/Credentials.js.map +1 -1
  271. package/lib/Neon/NeonEnvironment.d.ts +1 -1
  272. package/lib/Neon/Project.d.ts +25 -1
  273. package/lib/Neon/Project.d.ts.map +1 -1
  274. package/lib/Neon/Project.js +121 -42
  275. package/lib/Neon/Project.js.map +1 -1
  276. package/lib/Neon/Providers.d.ts +1 -1
  277. package/lib/Neon/SqlFile.d.ts +2 -2
  278. package/lib/Output.d.ts +47 -8
  279. package/lib/Output.d.ts.map +1 -1
  280. package/lib/Output.js +106 -7
  281. package/lib/Output.js.map +1 -1
  282. package/lib/PhysicalName.d.ts +1 -1
  283. package/lib/Plan.d.ts +36 -1
  284. package/lib/Plan.d.ts.map +1 -1
  285. package/lib/Plan.js +284 -37
  286. package/lib/Plan.js.map +1 -1
  287. package/lib/Platform.d.ts.map +1 -1
  288. package/lib/Platform.js +22 -9
  289. package/lib/Platform.js.map +1 -1
  290. package/lib/Provider.d.ts +1 -1
  291. package/lib/Provider.d.ts.map +1 -1
  292. package/lib/Provider.js +1 -1
  293. package/lib/Provider.js.map +1 -1
  294. package/lib/Random.d.ts +1 -1
  295. package/lib/Random.d.ts.map +1 -1
  296. package/lib/Random.js +1 -1
  297. package/lib/Random.js.map +1 -1
  298. package/lib/Ref.d.ts +4 -1
  299. package/lib/Ref.d.ts.map +1 -1
  300. package/lib/Ref.js +1 -1
  301. package/lib/Ref.js.map +1 -1
  302. package/lib/Resource.d.ts +8 -0
  303. package/lib/Resource.d.ts.map +1 -1
  304. package/lib/Resource.js +12 -25
  305. package/lib/Resource.js.map +1 -1
  306. package/lib/Runtime.d.ts +24 -0
  307. package/lib/Runtime.d.ts.map +1 -0
  308. package/lib/Runtime.js +31 -0
  309. package/lib/Runtime.js.map +1 -0
  310. package/lib/RuntimeContext.d.ts +3 -1
  311. package/lib/RuntimeContext.d.ts.map +1 -1
  312. package/lib/RuntimeContext.js.map +1 -1
  313. package/lib/Secret.d.ts +50 -0
  314. package/lib/Secret.d.ts.map +1 -0
  315. package/lib/Secret.js +23 -0
  316. package/lib/Secret.js.map +1 -0
  317. package/lib/Serverless/Function.d.ts +9 -1
  318. package/lib/Serverless/Function.d.ts.map +1 -1
  319. package/lib/Sidecar/RpcClient.d.ts +1 -1
  320. package/lib/Sidecar/RpcPaths.d.ts +1 -1
  321. package/lib/Sidecar/RpcServer.d.ts +1 -1
  322. package/lib/Sidecar/RpcServices.d.ts +1 -1
  323. package/lib/Stack.d.ts +20 -6
  324. package/lib/Stack.d.ts.map +1 -1
  325. package/lib/Stack.js +35 -23
  326. package/lib/Stack.js.map +1 -1
  327. package/lib/State/ActionState.d.ts +48 -0
  328. package/lib/State/ActionState.d.ts.map +1 -0
  329. package/lib/State/ActionState.js +1 -0
  330. package/lib/State/ActionState.js.map +1 -0
  331. package/lib/State/HttpStateApi.d.ts +15 -1
  332. package/lib/State/HttpStateApi.d.ts.map +1 -1
  333. package/lib/State/HttpStateApi.js +11 -0
  334. package/lib/State/HttpStateApi.js.map +1 -1
  335. package/lib/State/HttpStateStore.d.ts.map +1 -1
  336. package/lib/State/HttpStateStore.js +12 -1
  337. package/lib/State/HttpStateStore.js.map +1 -1
  338. package/lib/State/InMemoryState.d.ts +2 -2
  339. package/lib/State/InMemoryState.d.ts.map +1 -1
  340. package/lib/State/InMemoryState.js +12 -6
  341. package/lib/State/InMemoryState.js.map +1 -1
  342. package/lib/State/LocalState.d.ts +2 -2
  343. package/lib/State/LocalState.d.ts.map +1 -1
  344. package/lib/State/LocalState.js +11 -2
  345. package/lib/State/LocalState.js.map +1 -1
  346. package/lib/State/ResourceState.d.ts +5 -0
  347. package/lib/State/ResourceState.d.ts.map +1 -1
  348. package/lib/State/State.d.ts +31 -2
  349. package/lib/State/State.d.ts.map +1 -1
  350. package/lib/State/State.js +2 -0
  351. package/lib/State/State.js.map +1 -1
  352. package/lib/State/index.d.ts +1 -0
  353. package/lib/State/index.d.ts.map +1 -1
  354. package/lib/State/index.js +1 -0
  355. package/lib/State/index.js.map +1 -1
  356. package/lib/Test/Bun.d.ts.map +1 -1
  357. package/lib/Test/Bun.js +30 -7
  358. package/lib/Test/Bun.js.map +1 -1
  359. package/lib/Test/Core.d.ts +19 -4
  360. package/lib/Test/Core.d.ts.map +1 -1
  361. package/lib/Test/Core.js +33 -12
  362. package/lib/Test/Core.js.map +1 -1
  363. package/lib/Test/Vitest.d.ts.map +1 -1
  364. package/lib/Test/Vitest.js +24 -5
  365. package/lib/Test/Vitest.js.map +1 -1
  366. package/lib/Util/FileLogger.d.ts +1 -1
  367. package/lib/Util/LocalhostDns.d.ts +14 -10
  368. package/lib/Util/LocalhostDns.d.ts.map +1 -1
  369. package/lib/Util/LocalhostDns.js +27 -36
  370. package/lib/Util/LocalhostDns.js.map +1 -1
  371. package/lib/Util/effect.d.ts +7 -0
  372. package/lib/Util/effect.d.ts.map +1 -1
  373. package/lib/Util/effect.js +10 -4
  374. package/lib/Util/effect.js.map +1 -1
  375. package/lib/Util/exec.d.ts.map +1 -0
  376. package/lib/Util/exec.js.map +1 -0
  377. package/lib/Util/hash.d.ts +8 -0
  378. package/lib/Util/hash.d.ts.map +1 -0
  379. package/lib/Util/hash.js +11 -0
  380. package/lib/Util/hash.js.map +1 -0
  381. package/lib/Util/ignore.d.ts +40 -0
  382. package/lib/Util/ignore.d.ts.map +1 -0
  383. package/lib/Util/ignore.js +591 -0
  384. package/lib/Util/ignore.js.map +1 -0
  385. package/lib/Variable.d.ts +29 -0
  386. package/lib/Variable.d.ts.map +1 -0
  387. package/lib/Variable.js +9 -0
  388. package/lib/Variable.js.map +1 -0
  389. package/lib/index.d.ts +4 -0
  390. package/lib/index.d.ts.map +1 -1
  391. package/lib/index.js +4 -0
  392. package/lib/index.js.map +1 -1
  393. package/lib/tsconfig.test.tsbuildinfo +1 -1
  394. package/package.json +22 -29
  395. package/src/AWS/Credentials.ts +1 -2
  396. package/src/AWS/DynamoDB/Stream.ts +1 -4
  397. package/src/AWS/EC2/hosted.ts +14 -16
  398. package/src/AWS/ECS/Task.ts +14 -16
  399. package/src/AWS/Endpoint.ts +2 -5
  400. package/src/AWS/EventBridge/EventSource.ts +1 -4
  401. package/src/AWS/Kinesis/StreamEventSource.ts +1 -4
  402. package/src/AWS/Lambda/Function.ts +47 -23
  403. package/src/AWS/Providers.ts +22 -3
  404. package/src/AWS/Region.ts +2 -3
  405. package/src/AWS/S3/Bucket.ts +7 -2
  406. package/src/AWS/S3/BucketNotifications.ts +1 -4
  407. package/src/AWS/SNS/TopicEventSource.ts +1 -4
  408. package/src/AWS/SQS/Queue.ts +40 -6
  409. package/src/Action.ts +280 -0
  410. package/src/Apply.ts +359 -24
  411. package/src/Artifacts.ts +2 -4
  412. package/src/Auth/AuthProvider.ts +1 -1
  413. package/src/Auth/Env.ts +12 -20
  414. package/src/Binding.ts +5 -9
  415. package/src/Bundle/Docker.ts +1 -1
  416. package/src/Cli/Event.ts +4 -0
  417. package/src/Cli/NamespaceTree.ts +52 -5
  418. package/src/Cli/commands/_shared.ts +2 -2
  419. package/src/Cli/commands/deploy.ts +1 -1
  420. package/src/Cli/commands/logs.ts +4 -4
  421. package/src/Cli/commands/tail.ts +4 -4
  422. package/src/Cli/tui/components/Plan.tsx +65 -17
  423. package/src/Cli/tui/components/PlanProgress.tsx +142 -32
  424. package/src/Cloudflare/Access.ts +1 -1
  425. package/src/Cloudflare/AnalyticsEngine/AnalyticsEngineDataset.ts +82 -0
  426. package/src/Cloudflare/AnalyticsEngine/AnalyticsEngineDatasetBinding.ts +106 -0
  427. package/src/Cloudflare/AnalyticsEngine/index.ts +2 -0
  428. package/src/Cloudflare/Artifacts/ArtifactsBinding.ts +1 -1
  429. package/src/Cloudflare/Container/Container.ts +1 -1
  430. package/src/Cloudflare/Container/ContainerApplication.ts +4 -6
  431. package/src/Cloudflare/Container/ContainerBinding.ts +2 -2
  432. package/src/Cloudflare/D1/D1Connection.ts +95 -12
  433. package/src/Cloudflare/Email/EmailAddress.ts +155 -0
  434. package/src/Cloudflare/Email/EmailRouting.ts +138 -0
  435. package/src/Cloudflare/Email/EmailRule.ts +210 -0
  436. package/src/Cloudflare/Email/SendEmail.ts +95 -0
  437. package/src/Cloudflare/Email/SendEmailBinding.ts +124 -0
  438. package/src/Cloudflare/Email/index.ts +5 -0
  439. package/src/Cloudflare/Images/ImagesBinding.ts +1 -1
  440. package/src/Cloudflare/KV/KVNamespaceBinding.ts +1 -1
  441. package/src/Cloudflare/Local/SidecarHandlers.ts +9 -1
  442. package/src/Cloudflare/Local/SidecarServer.ts +1 -1
  443. package/src/Cloudflare/Providers.ts +14 -0
  444. package/src/Cloudflare/Queue/QueueBinding.ts +1 -1
  445. package/src/Cloudflare/R2/R2Bucket.ts +31 -0
  446. package/src/Cloudflare/R2/R2BucketBinding.ts +1 -1
  447. package/src/Cloudflare/SecretsStore/SecretBinding.ts +1 -1
  448. package/src/Cloudflare/StateStore/Api.ts +34 -1
  449. package/src/Cloudflare/StateStore/Store.ts +40 -10
  450. package/src/Cloudflare/Workers/Assets.ts +5 -6
  451. package/src/Cloudflare/Workers/CronEventSource.ts +89 -0
  452. package/src/Cloudflare/Workers/InferEnv.ts +94 -20
  453. package/src/Cloudflare/Workers/LocalWorkerProvider.ts +9 -1
  454. package/src/Cloudflare/Workers/Rpc.ts +227 -18
  455. package/src/Cloudflare/Workers/Worker.ts +294 -65
  456. package/src/Cloudflare/Workers/WorkerBundle.ts +19 -11
  457. package/src/Cloudflare/Workers/Workflow.ts +76 -72
  458. package/src/Cloudflare/Workers/index.ts +1 -0
  459. package/src/Cloudflare/index.ts +2 -0
  460. package/src/Construct.ts +3 -7
  461. package/src/Deploy.ts +5 -1
  462. package/src/Destroy.ts +6 -1
  463. package/src/Http.ts +1 -1
  464. package/src/Namespace.ts +4 -4
  465. package/src/Neon/Branch.ts +93 -59
  466. package/src/Neon/Credentials.ts +2 -2
  467. package/src/Neon/Project.ts +193 -64
  468. package/src/Output.ts +129 -18
  469. package/src/Plan.ts +375 -36
  470. package/src/Platform.ts +26 -11
  471. package/src/Provider.ts +8 -3
  472. package/src/Random.ts +1 -1
  473. package/src/Ref.ts +10 -5
  474. package/src/Resource.ts +24 -25
  475. package/src/Runtime.ts +38 -0
  476. package/src/RuntimeContext.ts +1 -0
  477. package/src/Secret.ts +87 -0
  478. package/src/Serverless/Function.ts +10 -1
  479. package/src/Stack.ts +62 -35
  480. package/src/State/ActionState.ts +51 -0
  481. package/src/State/HttpStateApi.ts +21 -0
  482. package/src/State/HttpStateStore.ts +27 -2
  483. package/src/State/InMemoryState.ts +31 -10
  484. package/src/State/LocalState.ts +28 -4
  485. package/src/State/ResourceState.ts +5 -0
  486. package/src/State/State.ts +38 -2
  487. package/src/State/index.ts +1 -0
  488. package/src/Test/Bun.ts +43 -7
  489. package/src/Test/Core.ts +33 -11
  490. package/src/Test/Vitest.ts +33 -4
  491. package/src/Util/LocalhostDns.ts +30 -36
  492. package/src/Util/effect.ts +29 -4
  493. package/src/Util/hash.ts +14 -0
  494. package/src/Util/ignore.ts +815 -0
  495. package/src/Variable.ts +44 -0
  496. package/src/index.ts +9 -0
  497. package/lib/Agent/Agent.d.ts +0 -9
  498. package/lib/Agent/Agent.d.ts.map +0 -1
  499. package/lib/Agent/Agent.js +0 -10
  500. package/lib/Agent/Agent.js.map +0 -1
  501. package/lib/Agent/Aspect.d.ts +0 -51
  502. package/lib/Agent/Aspect.d.ts.map +0 -1
  503. package/lib/Agent/Aspect.js +0 -45
  504. package/lib/Agent/Aspect.js.map +0 -1
  505. package/lib/Agent/AspectGraph.d.ts +0 -45
  506. package/lib/Agent/AspectGraph.d.ts.map +0 -1
  507. package/lib/Agent/AspectGraph.js +0 -39
  508. package/lib/Agent/AspectGraph.js.map +0 -1
  509. package/lib/Agent/ContextPlugin.d.ts +0 -8
  510. package/lib/Agent/ContextPlugin.d.ts.map +0 -1
  511. package/lib/Agent/ContextPlugin.js +0 -3
  512. package/lib/Agent/ContextPlugin.js.map +0 -1
  513. package/lib/Agent/Plugin.d.ts +0 -18
  514. package/lib/Agent/Plugin.d.ts.map +0 -1
  515. package/lib/Agent/Plugin.js +0 -8
  516. package/lib/Agent/Plugin.js.map +0 -1
  517. package/lib/Agent/chat/channel.d.ts +0 -9
  518. package/lib/Agent/chat/channel.d.ts.map +0 -1
  519. package/lib/Agent/chat/channel.js +0 -10
  520. package/lib/Agent/chat/channel.js.map +0 -1
  521. package/lib/Agent/chat/event.d.ts +0 -32
  522. package/lib/Agent/chat/event.d.ts.map +0 -1
  523. package/lib/Agent/chat/event.js +0 -32
  524. package/lib/Agent/chat/event.js.map +0 -1
  525. package/lib/Agent/chat/message.d.ts +0 -22
  526. package/lib/Agent/chat/message.d.ts.map +0 -1
  527. package/lib/Agent/chat/message.js +0 -31
  528. package/lib/Agent/chat/message.js.map +0 -1
  529. package/lib/Agent/chat/service.d.ts +0 -102
  530. package/lib/Agent/chat/service.d.ts.map +0 -1
  531. package/lib/Agent/chat/service.js +0 -79
  532. package/lib/Agent/chat/service.js.map +0 -1
  533. package/lib/Agent/chat/thread.d.ts +0 -13
  534. package/lib/Agent/chat/thread.d.ts.map +0 -1
  535. package/lib/Agent/chat/thread.js +0 -16
  536. package/lib/Agent/chat/thread.js.map +0 -1
  537. package/lib/Agent/coding/bash.d.ts +0 -36
  538. package/lib/Agent/coding/bash.d.ts.map +0 -1
  539. package/lib/Agent/coding/bash.js +0 -170
  540. package/lib/Agent/coding/bash.js.map +0 -1
  541. package/lib/Agent/coding/edit.d.ts +0 -31
  542. package/lib/Agent/coding/edit.d.ts.map +0 -1
  543. package/lib/Agent/coding/edit.js +0 -90
  544. package/lib/Agent/coding/edit.js.map +0 -1
  545. package/lib/Agent/coding/glob.d.ts +0 -23
  546. package/lib/Agent/coding/glob.d.ts.map +0 -1
  547. package/lib/Agent/coding/glob.js +0 -78
  548. package/lib/Agent/coding/glob.js.map +0 -1
  549. package/lib/Agent/coding/grep.d.ts +0 -26
  550. package/lib/Agent/coding/grep.d.ts.map +0 -1
  551. package/lib/Agent/coding/grep.js +0 -105
  552. package/lib/Agent/coding/grep.js.map +0 -1
  553. package/lib/Agent/coding/index.d.ts +0 -8
  554. package/lib/Agent/coding/index.d.ts.map +0 -1
  555. package/lib/Agent/coding/index.js +0 -8
  556. package/lib/Agent/coding/index.js.map +0 -1
  557. package/lib/Agent/coding/read.d.ts +0 -27
  558. package/lib/Agent/coding/read.d.ts.map +0 -1
  559. package/lib/Agent/coding/read.js +0 -89
  560. package/lib/Agent/coding/read.js.map +0 -1
  561. package/lib/Agent/coding/readlints.d.ts +0 -19
  562. package/lib/Agent/coding/readlints.d.ts.map +0 -1
  563. package/lib/Agent/coding/readlints.js +0 -53
  564. package/lib/Agent/coding/readlints.js.map +0 -1
  565. package/lib/Agent/coding/write.d.ts +0 -22
  566. package/lib/Agent/coding/write.d.ts.map +0 -1
  567. package/lib/Agent/coding/write.js +0 -53
  568. package/lib/Agent/coding/write.js.map +0 -1
  569. package/lib/Agent/fs/file.d.ts +0 -12
  570. package/lib/Agent/fs/file.d.ts.map +0 -1
  571. package/lib/Agent/fs/file.js +0 -8
  572. package/lib/Agent/fs/file.js.map +0 -1
  573. package/lib/Agent/fs/folder.d.ts +0 -5
  574. package/lib/Agent/fs/folder.d.ts.map +0 -1
  575. package/lib/Agent/fs/folder.js +0 -3
  576. package/lib/Agent/fs/folder.js.map +0 -1
  577. package/lib/Agent/index.d.ts +0 -9
  578. package/lib/Agent/index.d.ts.map +0 -1
  579. package/lib/Agent/index.js +0 -9
  580. package/lib/Agent/index.js.map +0 -1
  581. package/lib/Agent/llm/error.d.ts +0 -208
  582. package/lib/Agent/llm/error.d.ts.map +0 -1
  583. package/lib/Agent/llm/error.js +0 -209
  584. package/lib/Agent/llm/error.js.map +0 -1
  585. package/lib/Agent/llm/index.d.ts +0 -5
  586. package/lib/Agent/llm/index.d.ts.map +0 -1
  587. package/lib/Agent/llm/index.js +0 -5
  588. package/lib/Agent/llm/index.js.map +0 -1
  589. package/lib/Agent/llm/llm.d.ts +0 -32
  590. package/lib/Agent/llm/llm.d.ts.map +0 -1
  591. package/lib/Agent/llm/llm.js +0 -74
  592. package/lib/Agent/llm/llm.js.map +0 -1
  593. package/lib/Agent/llm/stream-collectors.d.ts +0 -46
  594. package/lib/Agent/llm/stream-collectors.d.ts.map +0 -1
  595. package/lib/Agent/llm/stream-collectors.js +0 -33
  596. package/lib/Agent/llm/stream-collectors.js.map +0 -1
  597. package/lib/Agent/llm/stream-text-part.d.ts +0 -5
  598. package/lib/Agent/llm/stream-text-part.d.ts.map +0 -1
  599. package/lib/Agent/llm/stream-text-part.js +0 -4
  600. package/lib/Agent/llm/stream-text-part.js.map +0 -1
  601. package/lib/Agent/lsp/client.d.ts +0 -122
  602. package/lib/Agent/lsp/client.d.ts.map +0 -1
  603. package/lib/Agent/lsp/client.js +0 -180
  604. package/lib/Agent/lsp/client.js.map +0 -1
  605. package/lib/Agent/lsp/diagnostics.d.ts +0 -16
  606. package/lib/Agent/lsp/diagnostics.d.ts.map +0 -1
  607. package/lib/Agent/lsp/diagnostics.js +0 -48
  608. package/lib/Agent/lsp/diagnostics.js.map +0 -1
  609. package/lib/Agent/lsp/jsonrpc.d.ts +0 -90
  610. package/lib/Agent/lsp/jsonrpc.d.ts.map +0 -1
  611. package/lib/Agent/lsp/jsonrpc.js +0 -178
  612. package/lib/Agent/lsp/jsonrpc.js.map +0 -1
  613. package/lib/Agent/lsp/manager.d.ts +0 -38
  614. package/lib/Agent/lsp/manager.d.ts.map +0 -1
  615. package/lib/Agent/lsp/manager.js +0 -98
  616. package/lib/Agent/lsp/manager.js.map +0 -1
  617. package/lib/Agent/lsp/servers.d.ts +0 -28
  618. package/lib/Agent/lsp/servers.d.ts.map +0 -1
  619. package/lib/Agent/lsp/servers.js +0 -21
  620. package/lib/Agent/lsp/servers.js.map +0 -1
  621. package/lib/Agent/process/driver.d.ts +0 -10
  622. package/lib/Agent/process/driver.d.ts.map +0 -1
  623. package/lib/Agent/process/driver.js +0 -153
  624. package/lib/Agent/process/driver.js.map +0 -1
  625. package/lib/Agent/process/issue-service.d.ts +0 -44
  626. package/lib/Agent/process/issue-service.d.ts.map +0 -1
  627. package/lib/Agent/process/issue-service.js +0 -28
  628. package/lib/Agent/process/issue-service.js.map +0 -1
  629. package/lib/Agent/process/issue-tools.d.ts +0 -28
  630. package/lib/Agent/process/issue-tools.d.ts.map +0 -1
  631. package/lib/Agent/process/issue-tools.js +0 -28
  632. package/lib/Agent/process/issue-tools.js.map +0 -1
  633. package/lib/Agent/process/issue.d.ts +0 -16
  634. package/lib/Agent/process/issue.d.ts.map +0 -1
  635. package/lib/Agent/process/issue.js +0 -17
  636. package/lib/Agent/process/issue.js.map +0 -1
  637. package/lib/Agent/process/organization.d.ts +0 -4
  638. package/lib/Agent/process/organization.d.ts.map +0 -1
  639. package/lib/Agent/process/organization.js +0 -3
  640. package/lib/Agent/process/organization.js.map +0 -1
  641. package/lib/Agent/process/process.d.ts +0 -5
  642. package/lib/Agent/process/process.d.ts.map +0 -1
  643. package/lib/Agent/process/process.js +0 -3
  644. package/lib/Agent/process/process.js.map +0 -1
  645. package/lib/Agent/process/reply.d.ts +0 -16
  646. package/lib/Agent/process/reply.d.ts.map +0 -1
  647. package/lib/Agent/process/reply.js +0 -18
  648. package/lib/Agent/process/reply.js.map +0 -1
  649. package/lib/Agent/process/task.d.ts +0 -25
  650. package/lib/Agent/process/task.d.ts.map +0 -1
  651. package/lib/Agent/process/task.js +0 -26
  652. package/lib/Agent/process/task.js.map +0 -1
  653. package/lib/Agent/tool/index.d.ts +0 -4
  654. package/lib/Agent/tool/index.d.ts.map +0 -1
  655. package/lib/Agent/tool/index.js +0 -4
  656. package/lib/Agent/tool/index.js.map +0 -1
  657. package/lib/Agent/tool/parameter.d.ts +0 -12
  658. package/lib/Agent/tool/parameter.d.ts.map +0 -1
  659. package/lib/Agent/tool/parameter.js +0 -6
  660. package/lib/Agent/tool/parameter.js.map +0 -1
  661. package/lib/Agent/tool/result.d.ts +0 -17
  662. package/lib/Agent/tool/result.d.ts.map +0 -1
  663. package/lib/Agent/tool/result.js +0 -6
  664. package/lib/Agent/tool/result.js.map +0 -1
  665. package/lib/Agent/tool/tool.d.ts +0 -32
  666. package/lib/Agent/tool/tool.d.ts.map +0 -1
  667. package/lib/Agent/tool/tool.js +0 -16
  668. package/lib/Agent/tool/tool.js.map +0 -1
  669. package/lib/Agent/util/command-validator.d.ts +0 -12
  670. package/lib/Agent/util/command-validator.d.ts.map +0 -1
  671. package/lib/Agent/util/command-validator.js +0 -74
  672. package/lib/Agent/util/command-validator.js.map +0 -1
  673. package/lib/Agent/util/exec.d.ts.map +0 -1
  674. package/lib/Agent/util/exec.js.map +0 -1
  675. package/lib/Agent/util/parser.d.ts +0 -5
  676. package/lib/Agent/util/parser.d.ts.map +0 -1
  677. package/lib/Agent/util/parser.js +0 -41
  678. package/lib/Agent/util/parser.js.map +0 -1
  679. package/lib/Agent/util/replace.d.ts +0 -38
  680. package/lib/Agent/util/replace.d.ts.map +0 -1
  681. package/lib/Agent/util/replace.js +0 -458
  682. package/lib/Agent/util/replace.js.map +0 -1
  683. package/lib/Agent/util/ripgrep.d.ts +0 -109
  684. package/lib/Agent/util/ripgrep.d.ts.map +0 -1
  685. package/lib/Agent/util/ripgrep.js +0 -221
  686. package/lib/Agent/util/ripgrep.js.map +0 -1
  687. package/lib/Neon/api.d.ts +0 -258
  688. package/lib/Neon/api.d.ts.map +0 -1
  689. package/lib/Neon/api.js +0 -215
  690. package/lib/Neon/api.js.map +0 -1
  691. package/src/Agent/Agent.ts +0 -26
  692. package/src/Agent/Aspect.ts +0 -173
  693. package/src/Agent/AspectGraph.ts +0 -98
  694. package/src/Agent/ContextPlugin.ts +0 -18
  695. package/src/Agent/Plugin.ts +0 -29
  696. package/src/Agent/chat/channel.ts +0 -26
  697. package/src/Agent/chat/event.ts +0 -43
  698. package/src/Agent/chat/message.ts +0 -35
  699. package/src/Agent/chat/service.ts +0 -133
  700. package/src/Agent/chat/thread.ts +0 -17
  701. package/src/Agent/coding/bash.ts +0 -197
  702. package/src/Agent/coding/edit.ts +0 -152
  703. package/src/Agent/coding/glob.ts +0 -96
  704. package/src/Agent/coding/grep.ts +0 -143
  705. package/src/Agent/coding/index.ts +0 -7
  706. package/src/Agent/coding/read.ts +0 -119
  707. package/src/Agent/coding/readlints.ts +0 -78
  708. package/src/Agent/coding/write.ts +0 -79
  709. package/src/Agent/fs/file.ts +0 -22
  710. package/src/Agent/fs/folder.ts +0 -16
  711. package/src/Agent/index.ts +0 -9
  712. package/src/Agent/llm/error.ts +0 -330
  713. package/src/Agent/llm/index.ts +0 -4
  714. package/src/Agent/llm/llm.ts +0 -131
  715. package/src/Agent/llm/stream-collectors.ts +0 -58
  716. package/src/Agent/llm/stream-text-part.ts +0 -7
  717. package/src/Agent/lsp/client.ts +0 -293
  718. package/src/Agent/lsp/diagnostics.ts +0 -64
  719. package/src/Agent/lsp/jsonrpc.ts +0 -317
  720. package/src/Agent/lsp/manager.ts +0 -213
  721. package/src/Agent/lsp/servers.ts +0 -37
  722. package/src/Agent/process/driver.ts +0 -168
  723. package/src/Agent/process/issue-service.ts +0 -48
  724. package/src/Agent/process/issue-tools.ts +0 -33
  725. package/src/Agent/process/issue.ts +0 -22
  726. package/src/Agent/process/organization.ts +0 -16
  727. package/src/Agent/process/process.ts +0 -16
  728. package/src/Agent/process/reply.ts +0 -21
  729. package/src/Agent/process/task.ts +0 -34
  730. package/src/Agent/tool/index.ts +0 -3
  731. package/src/Agent/tool/parameter.ts +0 -35
  732. package/src/Agent/tool/result.ts +0 -51
  733. package/src/Agent/tool/tool.ts +0 -74
  734. package/src/Agent/util/command-validator.ts +0 -98
  735. package/src/Agent/util/parser.ts +0 -39
  736. package/src/Agent/util/replace.ts +0 -559
  737. package/src/Agent/util/ripgrep.ts +0 -256
  738. package/src/Neon/api.ts +0 -579
  739. /package/lib/{Agent/util → Util}/exec.d.ts +0 -0
  740. /package/lib/{Agent/util → Util}/exec.js +0 -0
  741. /package/src/{Agent/util → Util}/exec.ts +0 -0
@@ -1,20 +1,30 @@
1
1
  import { toPath } from "../FQN.ts";
2
- import type { BindingAction, CRUD } from "../Plan.ts";
2
+ import type {
3
+ BindingAction,
4
+ CRUD,
5
+ ActionApply,
6
+ ActionDelete,
7
+ } from "../Plan.ts";
3
8
 
4
9
  export interface TreeBinding {
5
10
  sid: string;
6
11
  action: BindingAction;
7
12
  }
8
13
 
14
+ export type ActionTreeItem = ActionApply | ActionDelete;
15
+ export type ActionVerb = ActionTreeItem["action"]; // "run" | "noop" | "delete"
16
+
9
17
  /**
10
18
  * A tree node representing a namespace.
11
- * Resources live directly inside the namespace where they were created.
19
+ * Resources and tasks live directly inside the namespace where they were
20
+ * created.
12
21
  */
13
22
  export interface TreeNode {
14
23
  id: string;
15
24
  path: string[];
16
25
  children: Map<string, TreeNode>;
17
26
  resources: CRUD[];
27
+ actions: ActionTreeItem[];
18
28
  }
19
29
 
20
30
  export type DerivedAction =
@@ -25,12 +35,16 @@ export type DerivedAction =
25
35
  | "noop"
26
36
  | "mixed";
27
37
 
28
- export function buildNamespaceTree(items: CRUD[]): TreeNode {
38
+ export function buildNamespaceTree(
39
+ items: CRUD[],
40
+ actions: ReadonlyArray<ActionTreeItem> = [],
41
+ ): TreeNode {
29
42
  const root: TreeNode = {
30
43
  id: "",
31
44
  path: [],
32
45
  children: new Map(),
33
46
  resources: [],
47
+ actions: [],
34
48
  };
35
49
 
36
50
  const getNode = (path: string[]) => {
@@ -44,6 +58,7 @@ export function buildNamespaceTree(items: CRUD[]): TreeNode {
44
58
  path: path.slice(0, i + 1),
45
59
  children: new Map(),
46
60
  resources: [],
61
+ actions: [],
47
62
  };
48
63
  current.children.set(segment, child);
49
64
  }
@@ -55,6 +70,9 @@ export function buildNamespaceTree(items: CRUD[]): TreeNode {
55
70
  for (const item of items) {
56
71
  getNode(toPath(item.resource.Namespace)).resources.push(item);
57
72
  }
73
+ for (const action of actions) {
74
+ getNode(toPath(action.def.Namespace)).actions.push(action);
75
+ }
58
76
 
59
77
  return root;
60
78
  }
@@ -65,6 +83,17 @@ export function deriveNamespaceAction(node: TreeNode): DerivedAction {
65
83
  for (const resource of node.resources) {
66
84
  actions.add(deriveResourceChildrenAction(resource, node));
67
85
  }
86
+ for (const action of node.actions) {
87
+ // Map task actions onto the resource action space for the rollup:
88
+ // run → create, delete → delete, noop → noop.
89
+ actions.add(
90
+ action.action === "run"
91
+ ? "create"
92
+ : action.action === "delete"
93
+ ? "delete"
94
+ : "noop",
95
+ );
96
+ }
68
97
  for (const child of node.children.values()) {
69
98
  const childAction = deriveNamespaceAction(child);
70
99
  if (childAction === "mixed") {
@@ -77,15 +106,17 @@ export function deriveNamespaceAction(node: TreeNode): DerivedAction {
77
106
  }
78
107
 
79
108
  export interface FlattenedItem {
80
- type: "namespace" | "resource" | "binding";
109
+ type: "namespace" | "resource" | "binding" | "action";
81
110
  depth: number;
82
111
  id: string;
83
112
  path: string[];
84
- action: CRUD["action"] | BindingAction | DerivedAction;
113
+ action: CRUD["action"] | BindingAction | DerivedAction | ActionVerb;
85
114
  resourceType?: string;
86
115
  bindingSid?: string;
87
116
  bindingCount?: number;
88
117
  hasChildren?: boolean;
118
+ /** For task items, the Task's Type (e.g. "Sync"). */
119
+ actionType?: string;
89
120
  }
90
121
 
91
122
  export function flattenTree(
@@ -154,10 +185,26 @@ const flattenNamespace = (
154
185
  flattenNamespace(childNamespace, depth + 1, result);
155
186
  }
156
187
  }
188
+
189
+ // Actions are listed after resources at the same depth.
190
+ const sortedActions = [...node.actions].sort((a, b) =>
191
+ a.def.LogicalId.localeCompare(b.def.LogicalId),
192
+ );
193
+ for (const action of sortedActions) {
194
+ result.push({
195
+ type: "action",
196
+ depth,
197
+ id: action.def.LogicalId,
198
+ path: [...node.path, action.def.LogicalId],
199
+ action: action.action,
200
+ actionType: action.def.Type,
201
+ });
202
+ }
157
203
  };
158
204
 
159
205
  const isEmpty = (node: TreeNode) =>
160
206
  node.resources.length === 0 &&
207
+ node.actions.length === 0 &&
161
208
  Array.from(node.children.values()).every(isEmpty);
162
209
 
163
210
  const countVisibleChildren = (node: TreeNode) => {
@@ -21,7 +21,7 @@ export const USER = Config.string("USER").pipe(
21
21
 
22
22
  export const STAGE = Config.string("stage").pipe(
23
23
  Config.option,
24
- (a) => a.asEffect(),
24
+ (a) => a,
25
25
  Effect.map(Option.getOrUndefined),
26
26
  );
27
27
 
@@ -96,7 +96,7 @@ export const stage = Flag.string("stage").pipe(
96
96
  ),
97
97
  Effect.flatMap((s) =>
98
98
  s === undefined
99
- ? USER.asEffect().pipe(
99
+ ? USER.pipe(
100
100
  Effect.map((user) => `dev_${user}`),
101
101
  Effect.catch(() => Effect.succeed("unknown")),
102
102
  )
@@ -83,7 +83,7 @@ export const execStack = Effect.fn(function* ({
83
83
  const services = Layer.mergeAll(
84
84
  Layer.effect(
85
85
  AlchemyContext,
86
- AlchemyContext.asEffect().pipe(
86
+ AlchemyContext.pipe(
87
87
  Effect.map((ctx) => ({
88
88
  ...ctx,
89
89
  dev,
@@ -119,16 +119,16 @@ export const logsCommand = Command.make(
119
119
  stage: stack.stage,
120
120
  fqn,
121
121
  });
122
- if (!resourceState?.attr) continue;
122
+ if (!(resourceState as any)?.attr) continue;
123
123
 
124
124
  const provider = yield* findProviderByType(resource.Type);
125
125
  if (!provider.logs) continue;
126
126
 
127
127
  const lines = yield* provider.logs({
128
128
  id: resource.LogicalId,
129
- instanceId: resourceState.instanceId,
130
- props: resourceState.props as any,
131
- output: resourceState.attr as any,
129
+ instanceId: (resourceState as any).instanceId,
130
+ props: (resourceState as any).props,
131
+ output: (resourceState as any).attr,
132
132
  options: { limit, since: sinceDate },
133
133
  });
134
134
 
@@ -95,7 +95,7 @@ export const tailCommand = Command.make(
95
95
  stage: stack.stage,
96
96
  fqn,
97
97
  });
98
- if (!resourceState?.attr) continue;
98
+ if (!(resourceState as any)?.attr) continue;
99
99
 
100
100
  const provider = yield* findProviderByType(resource.Type);
101
101
  if (!provider.tail) continue;
@@ -104,9 +104,9 @@ export const tailCommand = Command.make(
104
104
  logicalId: resource.LogicalId,
105
105
  stream: provider.tail({
106
106
  id: resource.LogicalId,
107
- instanceId: resourceState.instanceId,
108
- props: resourceState.props as any,
109
- output: resourceState.attr as any,
107
+ instanceId: (resourceState as any).instanceId,
108
+ props: (resourceState as any).props,
109
+ output: (resourceState as any).attr,
110
110
  }),
111
111
  });
112
112
  }
@@ -6,11 +6,14 @@ import type {
6
6
  Plan as AlchemyPlan,
7
7
  BindingAction,
8
8
  CRUD,
9
+ ActionApply,
10
+ ActionDelete,
9
11
  } from "../../../Plan.ts";
10
12
  import {
11
13
  buildNamespaceTree,
12
14
  flattenTree,
13
15
  type DerivedAction,
16
+ type ActionVerb,
14
17
  } from "../../NamespaceTree.ts";
15
18
 
16
19
  export interface PlanProps {
@@ -25,13 +28,21 @@ export function Plan({ plan }: PlanProps): JSX.Element {
25
28
  ] as CRUD[],
26
29
  [plan],
27
30
  );
31
+ const taskItems = useMemo(
32
+ () =>
33
+ [
34
+ ...Object.values(plan.actions ?? {}),
35
+ ...Object.values(plan.actionDeletions ?? {}),
36
+ ].filter((t): t is ActionApply | ActionDelete => t !== undefined),
37
+ [plan],
38
+ );
28
39
 
29
40
  const flatItems = useMemo(() => {
30
- const tree = buildNamespaceTree(items);
41
+ const tree = buildNamespaceTree(items, taskItems);
31
42
  return flattenTree(tree);
32
- }, [items]);
43
+ }, [items, taskItems]);
33
44
 
34
- if (items.length === 0) {
45
+ if (items.length === 0 && taskItems.length === 0) {
35
46
  return <Text color="gray">No changes planned</Text>;
36
47
  }
37
48
 
@@ -42,31 +53,46 @@ export function Plan({ plan }: PlanProps): JSX.Element {
42
53
  noop: 0,
43
54
  replace: 0,
44
55
  });
56
+ const taskCounts = taskItems.reduce(
57
+ (acc, item) => (acc[item.action]++, acc),
58
+ { run: 0, noop: 0, delete: 0 },
59
+ );
45
60
 
46
61
  const actions = (["create", "update", "delete", "replace"] as const).filter(
47
62
  (action) => counts[action] > 0,
48
63
  );
64
+ const taskHeaderEntries = [
65
+ taskCounts.run > 0 ? `${taskCounts.run} to run` : undefined,
66
+ taskCounts.delete > 0 ? `${taskCounts.delete} to drop` : undefined,
67
+ ].filter((s): s is string => !!s);
49
68
 
50
69
  return (
51
70
  <Box flexDirection="column">
52
71
  <Box marginTop={1}>
53
72
  <Text underline>Plan</Text>
54
73
  <Text>: </Text>
55
- {actions.flatMap((action, i) => {
56
- const count = counts[action];
57
- const color = actionColor(action);
58
- if (count === 0) return [];
59
- const box = (
60
- <Box key={action}>
61
- <Text color={color}>
62
- {count} to {action}
63
- </Text>
74
+ {[
75
+ ...actions.map((action) => {
76
+ const count = counts[action];
77
+ const color = actionColor(action);
78
+ return (
79
+ <Box key={action}>
80
+ <Text color={color}>
81
+ {count} to {action}
82
+ </Text>
83
+ </Box>
84
+ );
85
+ }),
86
+ ...taskHeaderEntries.map((label, i) => (
87
+ <Box key={`task-${i}`}>
88
+ <Text color="cyan">{label}</Text>
64
89
  </Box>
65
- );
66
- return i === actions.length - 1
90
+ )),
91
+ ].flatMap((box, i, arr) =>
92
+ i === arr.length - 1
67
93
  ? [box]
68
- : [box, <Text key={`${action}-separator`}> | </Text>];
69
- })}
94
+ : [box, <Text key={`sep-${i}`}> | </Text>],
95
+ )}
70
96
  </Box>
71
97
  <Box flexDirection="column" marginTop={1}>
72
98
  {flatItems.map((item) => {
@@ -99,6 +125,26 @@ export function Plan({ plan }: PlanProps): JSX.Element {
99
125
  );
100
126
  }
101
127
 
128
+ if (item.type === "action") {
129
+ return (
130
+ <Box key={key} flexDirection="row">
131
+ <Text>{indent}</Text>
132
+ <Box width={2}>
133
+ <Text color={color}>{icon} </Text>
134
+ </Box>
135
+ <Box>
136
+ <Text bold>{item.id}</Text>
137
+ </Box>
138
+ <Box marginLeft={1}>
139
+ <Text color="blackBright">({item.actionType})</Text>
140
+ </Box>
141
+ <Box marginLeft={1}>
142
+ <Text color="cyan">[action]</Text>
143
+ </Box>
144
+ </Box>
145
+ );
146
+ }
147
+
102
148
  // Resource item
103
149
  return (
104
150
  <Box key={key} flexDirection="row">
@@ -127,7 +173,7 @@ export function Plan({ plan }: PlanProps): JSX.Element {
127
173
 
128
174
  type Color = Parameters<typeof Text>[0]["color"];
129
175
 
130
- type AnyAction = CRUD["action"] | BindingAction | DerivedAction;
176
+ type AnyAction = CRUD["action"] | BindingAction | DerivedAction | ActionVerb;
131
177
 
132
178
  const getActionColor = (action: AnyAction): Color =>
133
179
  ({
@@ -137,6 +183,7 @@ const getActionColor = (action: AnyAction): Color =>
137
183
  delete: "red",
138
184
  replace: "magenta",
139
185
  mixed: "cyan",
186
+ run: "cyan",
140
187
  })[action] ?? "gray";
141
188
 
142
189
  const getActionIcon = (action: AnyAction): string =>
@@ -147,6 +194,7 @@ const getActionIcon = (action: AnyAction): string =>
147
194
  noop: "•",
148
195
  replace: "!",
149
196
  mixed: "*",
197
+ run: "λ",
150
198
  })[action] ?? "?";
151
199
 
152
200
  const actionColor = (action: CRUD["action"]): Color => getActionColor(action);
@@ -2,7 +2,7 @@
2
2
  import { useEffect, useMemo, useRef, useState, type JSX } from "react";
3
3
 
4
4
  import { Box, Text } from "ink";
5
- import type { CRUD, Plan } from "../../../Plan.ts";
5
+ import type { CRUD, Plan, ActionApply, ActionDelete } from "../../../Plan.ts";
6
6
 
7
7
  import type {
8
8
  ApplyEvent,
@@ -13,6 +13,7 @@ import {
13
13
  buildNamespaceTree,
14
14
  flattenTree,
15
15
  type FlattenedItem,
16
+ type ActionVerb,
16
17
  } from "../../NamespaceTree.ts";
17
18
 
18
19
  interface ProgressEventSource {
@@ -51,6 +52,14 @@ export type ProgressRow =
51
52
  action: CRUD["action"];
52
53
  /** For `noop` resources, persisted state status to show instead of `pending`. */
53
54
  persistedApplyStatus?: "created" | "updated";
55
+ }
56
+ | {
57
+ key: string;
58
+ type: "task";
59
+ id: string;
60
+ depth: number;
61
+ actionType: string;
62
+ action: ActionVerb;
54
63
  };
55
64
 
56
65
  const getTaskKey = (item: FlattenedItem) => item.path.join("/");
@@ -65,42 +74,55 @@ export const buildProgressRows = (plan: Plan): ProgressRow[] => {
65
74
  item !== undefined,
66
75
  ),
67
76
  ] as PlanItem[];
68
- const tree = buildNamespaceTree(items);
77
+ const taskItems = [
78
+ ...Object.values(plan.actions ?? {}),
79
+ ...Object.values(plan.actionDeletions ?? {}),
80
+ ].filter((t): t is ActionApply | ActionDelete => t !== undefined);
81
+ const tree = buildNamespaceTree(items, taskItems);
69
82
  return flattenTree(tree)
70
83
  .filter((item) => item.type !== "binding")
71
- .map((item) =>
72
- item.type === "namespace"
73
- ? {
74
- key: getTaskKey(item),
75
- type: "namespace" as const,
76
- id: item.id,
77
- depth: item.depth,
78
- action: item.action,
79
- }
80
- : {
81
- key: getTaskKey(item),
82
- type: "resource" as const,
83
- id: item.id,
84
- depth: item.depth,
85
- resourceType: item.resourceType ?? "unknown",
86
- action: item.action as CRUD["action"],
87
- persistedApplyStatus:
88
- item.action === "noop"
89
- ? (() => {
90
- const crud = findCrudByLogicalId(plan, item.id);
91
- return crud?.action === "noop"
92
- ? crud.state.status
93
- : undefined;
94
- })()
95
- : undefined,
96
- },
97
- );
84
+ .map((item) => {
85
+ if (item.type === "namespace") {
86
+ return {
87
+ key: getTaskKey(item),
88
+ type: "namespace" as const,
89
+ id: item.id,
90
+ depth: item.depth,
91
+ action: item.action,
92
+ };
93
+ }
94
+ if (item.type === "action") {
95
+ return {
96
+ key: getTaskKey(item),
97
+ type: "task" as const,
98
+ id: item.id,
99
+ depth: item.depth,
100
+ actionType: item.actionType ?? "unknown",
101
+ action: item.action as ActionVerb,
102
+ };
103
+ }
104
+ return {
105
+ key: getTaskKey(item),
106
+ type: "resource" as const,
107
+ id: item.id,
108
+ depth: item.depth,
109
+ resourceType: item.resourceType ?? "unknown",
110
+ action: item.action as CRUD["action"],
111
+ persistedApplyStatus:
112
+ item.action === "noop"
113
+ ? (() => {
114
+ const crud = findCrudByLogicalId(plan, item.id);
115
+ return crud?.action === "noop" ? crud.state.status : undefined;
116
+ })()
117
+ : undefined,
118
+ };
119
+ });
98
120
  };
99
121
 
100
122
  const buildLogicalIdIndex = (rows: ProgressRow[]) => {
101
123
  const index = new Map<string, string[]>();
102
124
  for (const row of rows) {
103
- if (row.type !== "resource") continue;
125
+ if (row.type !== "resource" && row.type !== "task") continue;
104
126
  const keys = index.get(row.id);
105
127
  if (keys) {
106
128
  keys.push(row.key);
@@ -142,7 +164,27 @@ export function toPlanTask(
142
164
  const buildInitialTasks = (rows: ProgressRow[]) =>
143
165
  new Map(
144
166
  rows.flatMap((row) =>
145
- row.type === "resource" ? [[row.key, toPlanTask(row)]] : [],
167
+ row.type === "resource"
168
+ ? [[row.key, toPlanTask(row)]]
169
+ : row.type === "task"
170
+ ? [
171
+ [
172
+ row.key,
173
+ {
174
+ key: row.key,
175
+ id: row.id,
176
+ type: row.actionType,
177
+ // `noop` tasks are skipped — render as gray `•` from the start
178
+ // rather than briefly flashing the `ran` cyan styling.
179
+ status:
180
+ row.action === "noop"
181
+ ? ("skipped" as ApplyStatus)
182
+ : ("pending" as ApplyStatus),
183
+ updatedAt: Date.now(),
184
+ },
185
+ ],
186
+ ]
187
+ : [],
146
188
  ),
147
189
  );
148
190
 
@@ -220,6 +262,53 @@ export function PlanProgress(props: PlanProgressProps): JSX.Element {
220
262
  );
221
263
  }
222
264
 
265
+ if (row.type === "task") {
266
+ const t = tasks.get(row.key);
267
+ const status: ApplyStatus =
268
+ t?.status ?? (row.action === "noop" ? "ran" : "pending");
269
+ const color = statusColor(status);
270
+ const icon = taskIcon(row.action, status, spinner);
271
+ const label =
272
+ row.action === "delete"
273
+ ? status === "deleted"
274
+ ? "deleted"
275
+ : "drop"
276
+ : status === "ran"
277
+ ? row.action === "noop"
278
+ ? "skip"
279
+ : "ran"
280
+ : status === "running"
281
+ ? "running"
282
+ : status === "fail"
283
+ ? "fail"
284
+ : row.action === "noop"
285
+ ? "skip"
286
+ : "run";
287
+
288
+ return (
289
+ <Box key={row.key} flexDirection="column">
290
+ <Box flexDirection="row">
291
+ <Text>{indent}</Text>
292
+ <Box width={2}>
293
+ <Text color={color}>{icon} </Text>
294
+ </Box>
295
+ <Text bold>{row.id}</Text>
296
+ <Text dimColor> ({row.actionType})</Text>
297
+ <Text color={color}> {label}</Text>
298
+ <Text color="cyan" dimColor>
299
+ {" "}
300
+ [action]
301
+ </Text>
302
+ </Box>
303
+ {t?.message ? (
304
+ <Box paddingLeft={row.depth * 2 + 2}>
305
+ <Text dimColor>• {t.message}</Text>
306
+ </Box>
307
+ ) : null}
308
+ </Box>
309
+ );
310
+ }
311
+
223
312
  const task = tasks.get(row.key) ?? toPlanTask(row);
224
313
  const displayStatus = getDisplayStatus(row, task.status);
225
314
  const color = statusColor(displayStatus);
@@ -276,6 +365,11 @@ function statusColor(
276
365
  case "deleting":
277
366
  case "deleted":
278
367
  return "red";
368
+ case "running":
369
+ case "ran":
370
+ return "cyan";
371
+ case "skipped":
372
+ return "gray";
279
373
  case "fail":
280
374
  return "redBright";
281
375
  default:
@@ -283,6 +377,21 @@ function statusColor(
283
377
  }
284
378
  }
285
379
 
380
+ function taskIcon(
381
+ action: ActionVerb,
382
+ status: ApplyStatus,
383
+ spinnerChar: string,
384
+ ): string {
385
+ if (status === "running") return spinnerChar;
386
+ if (status === "fail") return "✗";
387
+ if (status === "skipped") return "•";
388
+ if (status === "ran") return action === "noop" ? "•" : "✓";
389
+ if (status === "deleted") return "✓";
390
+ if (action === "delete") return "-";
391
+ if (action === "noop") return "•";
392
+ return "λ";
393
+ }
394
+
286
395
  function statusIcon(status: ApplyStatus, spinnerChar: string): string {
287
396
  if (isInProgress(status)) return spinnerChar;
288
397
  if (status === "fail") return "✗";
@@ -294,7 +403,8 @@ function isInProgress(status: ApplyStatus): boolean {
294
403
  status === "pending" ||
295
404
  status === "creating" ||
296
405
  status === "updating" ||
297
- status === "deleting"
406
+ status === "deleting" ||
407
+ status === "running"
298
408
  );
299
409
  }
300
410
 
@@ -75,7 +75,7 @@ export const AccessLive = Layer.effect(
75
75
 
76
76
  const getEnv = (name: string) =>
77
77
  Config.string(name)
78
- .asEffect()
78
+
79
79
  .pipe(Effect.catchTag("ConfigError", () => Effect.succeed(undefined)));
80
80
 
81
81
  return Access.of({
@@ -0,0 +1,82 @@
1
+ import * as Effect from "effect/Effect";
2
+ import { AnalyticsEngineDatasetBinding } from "./AnalyticsEngineDatasetBinding.ts";
3
+
4
+ type AnalyticsEngineDatasetTypeId = typeof AnalyticsEngineDatasetTypeId;
5
+ const AnalyticsEngineDatasetTypeId =
6
+ "Cloudflare.AnalyticsEngineDataset" as const;
7
+
8
+ export type AnalyticsEngineDatasetProps = {
9
+ /**
10
+ * Dataset name. If omitted, the logical ID is used.
11
+ */
12
+ dataset?: string;
13
+ };
14
+
15
+ /**
16
+ * A Cloudflare Workers Analytics Engine dataset binding.
17
+ *
18
+ * Analytics Engine datasets are configured as Worker bindings. The binding
19
+ * exposes `writeDataPoint()` at runtime and does not require separate
20
+ * provisioning through the Cloudflare API.
21
+ *
22
+ * @resource
23
+ *
24
+ * @section Binding to a Worker
25
+ * @example Basic Analytics Engine binding
26
+ * ```typescript
27
+ * const Analytics = yield* Cloudflare.AnalyticsEngineDataset("Analytics", {
28
+ * dataset: "app-events",
29
+ * });
30
+ *
31
+ * export const Worker = Cloudflare.Worker("Worker", {
32
+ * main: "./src/worker.ts",
33
+ * bindings: { Analytics },
34
+ * });
35
+ * ```
36
+ *
37
+ * @example Effect-style worker
38
+ * ```typescript
39
+ * const analytics = yield* Cloudflare.AnalyticsEngineDataset.bind(Analytics);
40
+ * yield* analytics.writeDataPoint({ blobs: ["signup"] });
41
+ * ```
42
+ */
43
+ export type AnalyticsEngineDataset = {
44
+ kind: AnalyticsEngineDatasetTypeId;
45
+ name: string;
46
+ dataset: string;
47
+ };
48
+
49
+ export const isAnalyticsEngineDataset = (
50
+ value: unknown,
51
+ ): value is AnalyticsEngineDataset =>
52
+ typeof value === "object" &&
53
+ value !== null &&
54
+ "kind" in value &&
55
+ (value as AnalyticsEngineDataset).kind === AnalyticsEngineDatasetTypeId;
56
+
57
+ export const AnalyticsEngineDataset: {
58
+ (
59
+ name: string,
60
+ props?: AnalyticsEngineDatasetProps,
61
+ ): Effect.Effect<AnalyticsEngineDataset>;
62
+ /**
63
+ * Bind Analytics Engine to the surrounding Worker, returning an
64
+ * Effect-native client with access to the native Workers runtime binding.
65
+ */
66
+ bind: typeof AnalyticsEngineDatasetBinding.bind;
67
+ } = Object.assign(
68
+ Effect.fnUntraced(function* (
69
+ name: string,
70
+ props?: AnalyticsEngineDatasetProps,
71
+ ) {
72
+ return {
73
+ kind: AnalyticsEngineDatasetTypeId,
74
+ name,
75
+ dataset: props?.dataset ?? name,
76
+ } satisfies AnalyticsEngineDataset;
77
+ }),
78
+ {
79
+ bind: (...args: Parameters<typeof AnalyticsEngineDatasetBinding.bind>) =>
80
+ AnalyticsEngineDatasetBinding.bind(...args),
81
+ },
82
+ );