alchemy-effect 0.6.0 → 0.6.2

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 (1239) hide show
  1. package/bin/alchemy-effect.js +7245 -17778
  2. package/bin/alchemy-effect.js.map +1 -1
  3. package/bin/alchemy-effect.sh +14 -0
  4. package/bin/alchemy-effect.ts +644 -130
  5. package/bin/process-manager.ts +10 -0
  6. package/lib/cli/index.d.ts +206 -377
  7. package/lib/cli/index.d.ts.map +1 -1
  8. package/lib/cli/index.js +4134 -985
  9. package/lib/cli/index.js.map +1 -1
  10. package/package.json +149 -87
  11. package/src/AWS/ACM/Certificate.ts +502 -0
  12. package/src/AWS/ACM/index.ts +1 -0
  13. package/src/AWS/AGENTS.md +505 -0
  14. package/src/AWS/Account.ts +56 -0
  15. package/src/AWS/Assets.ts +182 -0
  16. package/src/AWS/AutoScaling/AutoScalingGroup.ts +440 -0
  17. package/src/AWS/AutoScaling/LaunchTemplate.ts +535 -0
  18. package/src/AWS/AutoScaling/ScalingPolicy.ts +232 -0
  19. package/src/AWS/AutoScaling/index.ts +3 -0
  20. package/src/AWS/Bootstrap.ts +281 -0
  21. package/src/AWS/CloudFront/Distribution.ts +952 -0
  22. package/src/AWS/CloudFront/Function.ts +374 -0
  23. package/src/AWS/CloudFront/Invalidation.ts +202 -0
  24. package/src/AWS/CloudFront/KeyValueStore.ts +216 -0
  25. package/src/AWS/CloudFront/KvEntries.ts +250 -0
  26. package/src/AWS/CloudFront/KvRoutesUpdate.ts +301 -0
  27. package/src/AWS/CloudFront/ManagedPolicies.ts +20 -0
  28. package/src/AWS/CloudFront/OriginAccessControl.ts +266 -0
  29. package/src/AWS/CloudFront/common.ts +55 -0
  30. package/src/AWS/CloudFront/index.ts +15 -0
  31. package/src/AWS/CloudWatch/Alarm.ts +198 -0
  32. package/src/AWS/CloudWatch/AlarmMuteRule.ts +183 -0
  33. package/src/AWS/CloudWatch/AnomalyDetector.ts +242 -0
  34. package/src/AWS/CloudWatch/CompositeAlarm.ts +198 -0
  35. package/src/AWS/CloudWatch/Dashboard.ts +262 -0
  36. package/src/AWS/CloudWatch/DescribeAlarmContributors.ts +79 -0
  37. package/src/AWS/CloudWatch/DescribeAlarmHistory.ts +66 -0
  38. package/src/AWS/CloudWatch/DescribeAlarms.ts +94 -0
  39. package/src/AWS/CloudWatch/DescribeAlarmsForMetric.ts +66 -0
  40. package/src/AWS/CloudWatch/DescribeAnomalyDetectors.ts +68 -0
  41. package/src/AWS/CloudWatch/DescribeInsightRules.ts +66 -0
  42. package/src/AWS/CloudWatch/DisableAlarmActions.ts +74 -0
  43. package/src/AWS/CloudWatch/DisableInsightRules.ts +74 -0
  44. package/src/AWS/CloudWatch/EnableAlarmActions.ts +74 -0
  45. package/src/AWS/CloudWatch/GetAlarmMuteRule.ts +75 -0
  46. package/src/AWS/CloudWatch/GetDashboard.ts +75 -0
  47. package/src/AWS/CloudWatch/GetInsightRuleReport.ts +76 -0
  48. package/src/AWS/CloudWatch/GetMetricData.ts +62 -0
  49. package/src/AWS/CloudWatch/GetMetricStatistics.ts +64 -0
  50. package/src/AWS/CloudWatch/GetMetricStream.ts +75 -0
  51. package/src/AWS/CloudWatch/GetMetricWidgetImage.ts +66 -0
  52. package/src/AWS/CloudWatch/InsightRule.ts +277 -0
  53. package/src/AWS/CloudWatch/ListAlarmMuteRules.ts +64 -0
  54. package/src/AWS/CloudWatch/ListDashboards.ts +62 -0
  55. package/src/AWS/CloudWatch/ListManagedInsightRules.ts +68 -0
  56. package/src/AWS/CloudWatch/ListMetricStreams.ts +64 -0
  57. package/src/AWS/CloudWatch/ListMetrics.ts +62 -0
  58. package/src/AWS/CloudWatch/ListTagsForResource.ts +79 -0
  59. package/src/AWS/CloudWatch/MetricStream.ts +262 -0
  60. package/src/AWS/CloudWatch/PutMetricData.ts +62 -0
  61. package/src/AWS/CloudWatch/SetAlarmState.ts +73 -0
  62. package/src/AWS/CloudWatch/alarmStateChanges.ts +24 -0
  63. package/src/AWS/CloudWatch/binding-common.ts +42 -0
  64. package/src/AWS/CloudWatch/common.ts +168 -0
  65. package/src/AWS/CloudWatch/index.ts +32 -0
  66. package/src/AWS/Context.ts +30 -0
  67. package/src/AWS/Credentials.ts +52 -0
  68. package/src/AWS/DynamoDB/AttributeValue.ts +250 -0
  69. package/src/AWS/DynamoDB/BatchExecuteStatement.ts +113 -0
  70. package/src/AWS/DynamoDB/BatchGetItem.ts +138 -0
  71. package/src/AWS/DynamoDB/BatchWriteItem.ts +144 -0
  72. package/src/AWS/DynamoDB/DeleteItem.ts +67 -0
  73. package/src/AWS/DynamoDB/DescribeTable.ts +69 -0
  74. package/src/AWS/DynamoDB/DescribeTimeToLive.ts +72 -0
  75. package/src/AWS/DynamoDB/ExecuteStatement.ts +91 -0
  76. package/src/AWS/DynamoDB/ExecuteTransaction.ts +77 -0
  77. package/src/AWS/DynamoDB/GetItem.ts +85 -0
  78. package/src/AWS/DynamoDB/ListTables.ts +56 -0
  79. package/src/AWS/DynamoDB/ListTagsOfResource.ts +72 -0
  80. package/src/AWS/DynamoDB/ProjectionExpression.ts +159 -0
  81. package/src/AWS/DynamoDB/PutItem.ts +67 -0
  82. package/src/AWS/DynamoDB/Query.ts +68 -0
  83. package/src/AWS/DynamoDB/RestoreTableToPointInTime.ts +94 -0
  84. package/src/AWS/DynamoDB/Scan.ts +68 -0
  85. package/src/AWS/DynamoDB/Stream.ts +94 -0
  86. package/src/AWS/DynamoDB/Table.ts +1175 -0
  87. package/src/AWS/DynamoDB/TransactGetItems.ts +154 -0
  88. package/src/AWS/DynamoDB/TransactWriteItems.ts +216 -0
  89. package/src/AWS/DynamoDB/UpdateItem.ts +67 -0
  90. package/src/AWS/DynamoDB/UpdateTimeToLive.ts +71 -0
  91. package/src/AWS/DynamoDB/index.ts +24 -0
  92. package/src/AWS/EC2/EIP.ts +285 -0
  93. package/src/AWS/EC2/EgressOnlyInternetGateway.ts +248 -0
  94. package/src/AWS/EC2/Image.ts +108 -0
  95. package/src/AWS/EC2/Instance.ts +877 -0
  96. package/src/AWS/EC2/InternetGateway.ts +382 -0
  97. package/src/AWS/EC2/NatGateway.ts +474 -0
  98. package/src/AWS/EC2/Network.ts +459 -0
  99. package/src/AWS/EC2/NetworkAcl.ts +247 -0
  100. package/src/AWS/EC2/NetworkAclAssociation.ts +206 -0
  101. package/src/AWS/EC2/NetworkAclEntry.ts +300 -0
  102. package/src/AWS/EC2/Route.ts +323 -0
  103. package/src/AWS/EC2/RouteTable.ts +448 -0
  104. package/src/AWS/EC2/RouteTableAssociation.ts +274 -0
  105. package/src/AWS/EC2/SecurityGroup.ts +552 -0
  106. package/src/AWS/EC2/SecurityGroupRule.ts +395 -0
  107. package/src/AWS/EC2/Subnet.ts +583 -0
  108. package/src/AWS/EC2/Vpc.ts +455 -0
  109. package/src/AWS/EC2/VpcEndpoint.ts +657 -0
  110. package/src/AWS/EC2/hosted.ts +891 -0
  111. package/src/AWS/EC2/index.ts +18 -0
  112. package/src/AWS/ECR/Repository.ts +254 -0
  113. package/src/AWS/ECR/index.ts +1 -0
  114. package/src/AWS/ECS/Cluster.ts +257 -0
  115. package/src/AWS/ECS/DescribeTasks.ts +67 -0
  116. package/src/AWS/ECS/ListTasks.ts +67 -0
  117. package/src/AWS/ECS/RunTask.ts +82 -0
  118. package/src/AWS/ECS/Schedule.ts +115 -0
  119. package/src/AWS/ECS/Service.ts +572 -0
  120. package/src/AWS/ECS/StopTask.ts +64 -0
  121. package/src/AWS/ECS/Task.ts +981 -0
  122. package/src/AWS/ECS/index.ts +28 -0
  123. package/src/AWS/EKS/AccessEntry.ts +382 -0
  124. package/src/AWS/EKS/Addon.ts +385 -0
  125. package/src/AWS/EKS/AutoCluster.ts +288 -0
  126. package/src/AWS/EKS/Cluster.ts +655 -0
  127. package/src/AWS/EKS/LoadBalancedWorkload.ts +76 -0
  128. package/src/AWS/EKS/PodIdentityAssociation.ts +354 -0
  129. package/src/AWS/EKS/PodIdentityServiceAccount.ts +156 -0
  130. package/src/AWS/EKS/PodIdentityWorkload.ts +185 -0
  131. package/src/AWS/EKS/Workload.ts +145 -0
  132. package/src/AWS/EKS/index.ts +9 -0
  133. package/src/AWS/ELBv2/Listener.ts +139 -0
  134. package/src/AWS/ELBv2/LoadBalancer.ts +227 -0
  135. package/src/AWS/ELBv2/TargetGroup.ts +209 -0
  136. package/src/AWS/ELBv2/index.ts +3 -0
  137. package/src/AWS/Endpoint.ts +16 -0
  138. package/src/AWS/EventBridge/DescribeEventBus.ts +71 -0
  139. package/src/AWS/EventBridge/DescribeRule.ts +73 -0
  140. package/src/AWS/EventBridge/EventBus.ts +273 -0
  141. package/src/AWS/EventBridge/EventSource.ts +146 -0
  142. package/src/AWS/EventBridge/ListEventBuses.ts +60 -0
  143. package/src/AWS/EventBridge/ListRules.ts +87 -0
  144. package/src/AWS/EventBridge/ListTargetsByRule.ts +76 -0
  145. package/src/AWS/EventBridge/Permission.ts +151 -0
  146. package/src/AWS/EventBridge/PutEvents.ts +91 -0
  147. package/src/AWS/EventBridge/Rule.ts +620 -0
  148. package/src/AWS/EventBridge/TestEventPattern.ts +60 -0
  149. package/src/AWS/EventBridge/ToEcsTask.ts +118 -0
  150. package/src/AWS/EventBridge/ToLambda.ts +87 -0
  151. package/src/AWS/EventBridge/ToQueue.ts +97 -0
  152. package/src/AWS/EventBridge/index.ts +14 -0
  153. package/src/AWS/IAM/AccessKey.ts +142 -0
  154. package/src/AWS/IAM/AccountAlias.ts +96 -0
  155. package/src/AWS/IAM/AccountPasswordPolicy.ts +64 -0
  156. package/src/AWS/IAM/Group.ts +357 -0
  157. package/src/AWS/IAM/GroupMembership.ts +142 -0
  158. package/src/AWS/IAM/InstanceProfile.ts +285 -0
  159. package/src/AWS/IAM/LoginProfile.ts +137 -0
  160. package/src/AWS/IAM/OpenIDConnectProvider.ts +192 -0
  161. package/src/AWS/IAM/Policy.ts +387 -0
  162. package/src/AWS/IAM/Role.ts +500 -0
  163. package/src/AWS/IAM/SAMLProvider.ts +165 -0
  164. package/src/AWS/IAM/SSHPublicKey.ts +148 -0
  165. package/src/AWS/IAM/ServerCertificate.ts +261 -0
  166. package/src/AWS/IAM/ServiceSpecificCredential.ts +172 -0
  167. package/src/AWS/IAM/SigningCertificate.ts +137 -0
  168. package/src/AWS/IAM/User.ts +436 -0
  169. package/src/AWS/IAM/VirtualMFADevice.ts +259 -0
  170. package/src/AWS/IAM/common.ts +89 -0
  171. package/src/AWS/IAM/index.ts +40 -0
  172. package/src/AWS/IdentityCenter/AccountAssignment.ts +290 -0
  173. package/src/AWS/IdentityCenter/Group.ts +211 -0
  174. package/src/AWS/IdentityCenter/Instance.ts +190 -0
  175. package/src/AWS/IdentityCenter/PermissionSet.ts +235 -0
  176. package/src/AWS/IdentityCenter/common.ts +117 -0
  177. package/src/AWS/IdentityCenter/index.ts +4 -0
  178. package/src/AWS/Kinesis/DescribeAccountSettings.ts +63 -0
  179. package/src/AWS/Kinesis/DescribeLimits.ts +59 -0
  180. package/src/AWS/Kinesis/DescribeStream.ts +69 -0
  181. package/src/AWS/Kinesis/DescribeStreamConsumer.ts +72 -0
  182. package/src/AWS/Kinesis/DescribeStreamSummary.ts +72 -0
  183. package/src/AWS/Kinesis/GetRecords.ts +59 -0
  184. package/src/AWS/Kinesis/GetResourcePolicy.ts +72 -0
  185. package/src/AWS/Kinesis/GetShardIterator.ts +71 -0
  186. package/src/AWS/Kinesis/ListShards.ts +66 -0
  187. package/src/AWS/Kinesis/ListStreamConsumers.ts +72 -0
  188. package/src/AWS/Kinesis/ListStreams.ts +56 -0
  189. package/src/AWS/Kinesis/ListTagsForResource.ts +78 -0
  190. package/src/AWS/Kinesis/PutRecord.ts +67 -0
  191. package/src/AWS/Kinesis/PutRecords.ts +67 -0
  192. package/src/AWS/Kinesis/Stream.ts +731 -0
  193. package/src/AWS/Kinesis/StreamConsumer.ts +325 -0
  194. package/src/AWS/Kinesis/StreamEventSource.ts +106 -0
  195. package/src/AWS/Kinesis/StreamSink.ts +68 -0
  196. package/src/AWS/Kinesis/SubscribeToShard.ts +71 -0
  197. package/src/AWS/Kinesis/index.ts +19 -0
  198. package/src/AWS/Lambda/BucketEventSource.ts +146 -0
  199. package/src/AWS/Lambda/EventBridgeEventSource.ts +183 -0
  200. package/src/AWS/Lambda/EventSourceMapping.ts +438 -0
  201. package/src/AWS/Lambda/Function.ts +1185 -0
  202. package/src/AWS/Lambda/HttpServer.ts +125 -0
  203. package/src/AWS/Lambda/InvokeFunction.ts +67 -0
  204. package/src/AWS/Lambda/Permission.ts +217 -0
  205. package/src/AWS/Lambda/QueueEventSource.ts +96 -0
  206. package/src/AWS/Lambda/StreamEventSource.ts +123 -0
  207. package/src/AWS/Lambda/TableEventSource.ts +156 -0
  208. package/src/AWS/Lambda/TopicEventSource.ts +105 -0
  209. package/src/AWS/Lambda/index.ts +13 -0
  210. package/src/AWS/Logs/LogGroup.ts +209 -0
  211. package/src/AWS/Logs/index.ts +1 -0
  212. package/src/AWS/Organizations/Account.ts +328 -0
  213. package/src/AWS/Organizations/DelegatedAdministrator.ts +158 -0
  214. package/src/AWS/Organizations/Organization.ts +179 -0
  215. package/src/AWS/Organizations/OrganizationResourcePolicy.ts +108 -0
  216. package/src/AWS/Organizations/OrganizationalUnit.ts +268 -0
  217. package/src/AWS/Organizations/Policy.ts +241 -0
  218. package/src/AWS/Organizations/PolicyAttachment.ts +130 -0
  219. package/src/AWS/Organizations/Root.ts +151 -0
  220. package/src/AWS/Organizations/RootPolicyType.ts +130 -0
  221. package/src/AWS/Organizations/TenantRoot.ts +506 -0
  222. package/src/AWS/Organizations/TrustedServiceAccess.ts +107 -0
  223. package/src/AWS/Organizations/common.ts +130 -0
  224. package/src/AWS/Organizations/index.ts +11 -0
  225. package/src/AWS/Profile.ts +5 -0
  226. package/src/AWS/Providers.ts +324 -0
  227. package/src/AWS/RDS/Aurora.ts +499 -0
  228. package/src/AWS/RDS/Connect.ts +127 -0
  229. package/src/AWS/RDS/DBCluster.ts +361 -0
  230. package/src/AWS/RDS/DBClusterEndpoint.ts +226 -0
  231. package/src/AWS/RDS/DBClusterParameterGroup.ts +195 -0
  232. package/src/AWS/RDS/DBInstance.ts +274 -0
  233. package/src/AWS/RDS/DBParameterGroup.ts +190 -0
  234. package/src/AWS/RDS/DBProxy.ts +257 -0
  235. package/src/AWS/RDS/DBProxyEndpoint.ts +255 -0
  236. package/src/AWS/RDS/DBProxyTargetGroup.ts +243 -0
  237. package/src/AWS/RDS/DBSubnetGroup.ts +208 -0
  238. package/src/AWS/RDS/index.ts +11 -0
  239. package/src/AWS/RDSData/BatchExecuteStatement.ts +103 -0
  240. package/src/AWS/RDSData/BeginTransaction.ts +97 -0
  241. package/src/AWS/RDSData/CommitTransaction.ts +102 -0
  242. package/src/AWS/RDSData/ExecuteSql.ts +98 -0
  243. package/src/AWS/RDSData/ExecuteStatement.ts +99 -0
  244. package/src/AWS/RDSData/RollbackTransaction.ts +105 -0
  245. package/src/AWS/RDSData/index.ts +6 -0
  246. package/src/AWS/Region.ts +77 -0
  247. package/src/AWS/Route53/Record.ts +342 -0
  248. package/src/AWS/Route53/index.ts +1 -0
  249. package/src/AWS/S3/AbortMultipartUpload.ts +73 -0
  250. package/src/AWS/S3/Bucket.ts +550 -0
  251. package/src/AWS/S3/BucketEventSource.ts +26 -0
  252. package/src/AWS/S3/BucketNotifications.ts +77 -0
  253. package/src/AWS/S3/CompleteMultipartUpload.ts +73 -0
  254. package/src/AWS/S3/CopyObject.ts +68 -0
  255. package/src/AWS/S3/CreateMultipartUpload.ts +73 -0
  256. package/src/AWS/S3/DeleteObject.ts +67 -0
  257. package/src/AWS/S3/GetObject.ts +74 -0
  258. package/src/AWS/S3/HeadObject.ts +67 -0
  259. package/src/AWS/S3/ListObjectsV2.ts +67 -0
  260. package/src/AWS/S3/PutObject.ts +83 -0
  261. package/src/AWS/S3/S3Event.ts +43 -0
  262. package/src/AWS/S3/UploadPart.ts +67 -0
  263. package/src/AWS/S3/index.ts +14 -0
  264. package/src/AWS/SNS/AddPermission.ts +66 -0
  265. package/src/AWS/SNS/ConfirmSubscription.ts +72 -0
  266. package/src/AWS/SNS/GetDataProtectionPolicy.ts +72 -0
  267. package/src/AWS/SNS/GetSubscriptionAttributes.ts +72 -0
  268. package/src/AWS/SNS/GetTopicAttributes.ts +70 -0
  269. package/src/AWS/SNS/ListSubscriptions.ts +60 -0
  270. package/src/AWS/SNS/ListSubscriptionsByTopic.ts +72 -0
  271. package/src/AWS/SNS/ListTagsForResource.ts +72 -0
  272. package/src/AWS/SNS/ListTopics.ts +56 -0
  273. package/src/AWS/SNS/Publish.ts +66 -0
  274. package/src/AWS/SNS/PublishBatch.ts +66 -0
  275. package/src/AWS/SNS/PutDataProtectionPolicy.ts +72 -0
  276. package/src/AWS/SNS/RemovePermission.ts +66 -0
  277. package/src/AWS/SNS/SetSubscriptionAttributes.ts +72 -0
  278. package/src/AWS/SNS/SetTopicAttributes.ts +70 -0
  279. package/src/AWS/SNS/Subscription.ts +305 -0
  280. package/src/AWS/SNS/TagResource.ts +66 -0
  281. package/src/AWS/SNS/Topic.ts +363 -0
  282. package/src/AWS/SNS/TopicEventSource.ts +42 -0
  283. package/src/AWS/SNS/TopicSink.ts +61 -0
  284. package/src/AWS/SNS/UntagResource.ts +66 -0
  285. package/src/AWS/SNS/index.ts +21 -0
  286. package/src/AWS/SQS/DeleteMessage.ts +67 -0
  287. package/src/AWS/SQS/DeleteMessageBatch.ts +72 -0
  288. package/src/AWS/SQS/Queue.ts +210 -0
  289. package/src/AWS/SQS/QueueEventSource.ts +57 -0
  290. package/src/AWS/SQS/QueueSink.ts +62 -0
  291. package/src/AWS/SQS/ReceiveMessage.ts +68 -0
  292. package/src/AWS/SQS/SendMessage.ts +69 -0
  293. package/src/AWS/SQS/SendMessageBatch.ts +67 -0
  294. package/src/AWS/SQS/index.ts +8 -0
  295. package/src/AWS/Scheduler/Schedule.ts +296 -0
  296. package/src/AWS/Scheduler/ScheduleGroup.ts +186 -0
  297. package/src/AWS/Scheduler/builders.ts +229 -0
  298. package/src/AWS/Scheduler/index.ts +3 -0
  299. package/src/AWS/SecretsManager/DescribeSecret.ts +66 -0
  300. package/src/AWS/SecretsManager/GetRandomPassword.ts +65 -0
  301. package/src/AWS/SecretsManager/GetSecretValue.ts +78 -0
  302. package/src/AWS/SecretsManager/ListSecrets.ts +62 -0
  303. package/src/AWS/SecretsManager/PutSecretValue.ts +78 -0
  304. package/src/AWS/SecretsManager/Secret.ts +318 -0
  305. package/src/AWS/SecretsManager/index.ts +6 -0
  306. package/src/AWS/StageConfig.ts +44 -0
  307. package/src/AWS/Website/AssetDeployment.ts +348 -0
  308. package/src/AWS/Website/Router.ts +384 -0
  309. package/src/AWS/Website/SsrSite.ts +393 -0
  310. package/src/AWS/Website/StaticSite.ts +611 -0
  311. package/src/AWS/Website/cfcode.ts +180 -0
  312. package/src/AWS/Website/index.ts +5 -0
  313. package/src/AWS/Website/shared.ts +223 -0
  314. package/src/AWS/index.ts +37 -0
  315. package/src/AdoptPolicy.ts +25 -0
  316. package/src/Agent/Agent.ts +26 -0
  317. package/src/Agent/Aspect.ts +173 -0
  318. package/src/Agent/AspectGraph.ts +98 -0
  319. package/src/Agent/ContextPlugin.ts +18 -0
  320. package/src/Agent/Plugin.ts +29 -0
  321. package/src/Agent/chat/channel.ts +26 -0
  322. package/src/Agent/chat/event.ts +43 -0
  323. package/src/Agent/chat/message.ts +35 -0
  324. package/src/Agent/chat/service.ts +133 -0
  325. package/src/Agent/chat/thread.ts +17 -0
  326. package/src/Agent/coding/bash.ts +198 -0
  327. package/src/Agent/coding/edit.ts +152 -0
  328. package/src/Agent/coding/glob.ts +97 -0
  329. package/src/Agent/coding/grep.ts +144 -0
  330. package/src/Agent/coding/index.ts +7 -0
  331. package/src/Agent/coding/read.ts +119 -0
  332. package/src/Agent/coding/readlints.ts +78 -0
  333. package/src/Agent/coding/write.ts +79 -0
  334. package/src/Agent/fs/file.ts +22 -0
  335. package/src/Agent/fs/folder.ts +16 -0
  336. package/src/Agent/index.ts +9 -0
  337. package/src/Agent/llm/error.ts +330 -0
  338. package/src/Agent/llm/index.ts +4 -0
  339. package/src/Agent/llm/llm.ts +131 -0
  340. package/src/Agent/llm/stream-collectors.ts +58 -0
  341. package/src/Agent/llm/stream-text-part.ts +7 -0
  342. package/src/Agent/lsp/client.ts +293 -0
  343. package/src/Agent/lsp/diagnostics.ts +64 -0
  344. package/src/Agent/lsp/jsonrpc.ts +317 -0
  345. package/src/Agent/lsp/manager.ts +213 -0
  346. package/src/Agent/lsp/servers.ts +37 -0
  347. package/src/Agent/process/driver.ts +168 -0
  348. package/src/Agent/process/issue-service.ts +48 -0
  349. package/src/Agent/process/issue-tools.ts +33 -0
  350. package/src/Agent/process/issue.ts +22 -0
  351. package/src/Agent/process/organization.ts +16 -0
  352. package/src/Agent/process/process.ts +16 -0
  353. package/src/Agent/process/reply.ts +21 -0
  354. package/src/Agent/process/task.ts +34 -0
  355. package/src/Agent/tool/index.ts +3 -0
  356. package/src/Agent/tool/parameter.ts +35 -0
  357. package/src/Agent/tool/result.ts +51 -0
  358. package/src/Agent/tool/tool.ts +74 -0
  359. package/src/Agent/util/command-validator.ts +98 -0
  360. package/src/Agent/util/exec.ts +18 -0
  361. package/src/Agent/util/parser.ts +39 -0
  362. package/src/Agent/util/replace.ts +559 -0
  363. package/src/Agent/util/ripgrep.ts +256 -0
  364. package/src/Apply.ts +1074 -0
  365. package/src/Binding.ts +193 -0
  366. package/src/Build/Command.ts +322 -0
  367. package/src/Build/index.ts +1 -0
  368. package/src/Bundle/Bundle.ts +215 -0
  369. package/src/Bundle/Docker.ts +213 -0
  370. package/src/Bundle/TempRoot.ts +104 -0
  371. package/src/Bundle/index.ts +3 -0
  372. package/src/Cli/Cli.ts +23 -0
  373. package/src/Cli/Event.ts +32 -0
  374. package/src/Cli/InkCLI.tsx +60 -0
  375. package/src/Cli/NamespaceTree.ts +199 -0
  376. package/src/Cli/Reporter.ts +8 -0
  377. package/src/Cli/components/ApprovePlan.tsx +44 -0
  378. package/src/Cli/components/Plan.tsx +148 -0
  379. package/src/Cli/components/PlanProgress.tsx +325 -0
  380. package/src/Cli/index.ts +2 -0
  381. package/src/Cloudflare/Account.ts +38 -0
  382. package/src/Cloudflare/Container.ts +1345 -0
  383. package/src/Cloudflare/KV/Delete.ts +38 -0
  384. package/src/Cloudflare/KV/Get.ts +40 -0
  385. package/src/Cloudflare/KV/GetWithMetadata.ts +54 -0
  386. package/src/Cloudflare/KV/List.ts +45 -0
  387. package/src/Cloudflare/KV/Namespace.ts +150 -0
  388. package/src/Cloudflare/KV/NamespaceBinding.ts +25 -0
  389. package/src/Cloudflare/KV/Put.ts +59 -0
  390. package/src/Cloudflare/KV/index.ts +6 -0
  391. package/src/Cloudflare/Logs.ts +139 -0
  392. package/src/Cloudflare/Providers.ts +75 -0
  393. package/src/Cloudflare/R2/Bucket.ts +173 -0
  394. package/src/Cloudflare/R2/BucketBinding.ts +31 -0
  395. package/src/Cloudflare/R2/CreateMultipartUpload.ts +59 -0
  396. package/src/Cloudflare/R2/DeleteObject.ts +41 -0
  397. package/src/Cloudflare/R2/GetObject.ts +47 -0
  398. package/src/Cloudflare/R2/HeadObject.ts +41 -0
  399. package/src/Cloudflare/R2/ListObjects.ts +45 -0
  400. package/src/Cloudflare/R2/MultipartUploadClient.ts +40 -0
  401. package/src/Cloudflare/R2/PutObject.ts +55 -0
  402. package/src/Cloudflare/R2/ResumeMultipartUpload.ts +48 -0
  403. package/src/Cloudflare/R2/UploadValue.ts +10 -0
  404. package/src/Cloudflare/R2/index.ts +9 -0
  405. package/src/Cloudflare/StageConfig.ts +8 -0
  406. package/src/Cloudflare/Website/StaticSite.ts +35 -0
  407. package/src/Cloudflare/Website/TanstackStart.ts +14 -0
  408. package/src/Cloudflare/Website/index.ts +2 -0
  409. package/src/Cloudflare/Workers/Assets.ts +286 -0
  410. package/src/Cloudflare/Workers/ConfigProvider.ts +9 -0
  411. package/src/Cloudflare/Workers/DurableObject.ts +558 -0
  412. package/src/Cloudflare/Workers/DynamicWorker.ts +144 -0
  413. package/src/Cloudflare/Workers/Fetch.ts +142 -0
  414. package/src/Cloudflare/Workers/Fetcher.ts +280 -0
  415. package/src/Cloudflare/Workers/HttpServer.ts +159 -0
  416. package/src/Cloudflare/Workers/Rpc.ts +472 -0
  417. package/src/Cloudflare/Workers/WebSocket.ts +44 -0
  418. package/src/Cloudflare/Workers/Worker.ts +1222 -0
  419. package/src/Cloudflare/Workers/Workflow.ts +400 -0
  420. package/src/Cloudflare/Workers/cloudflare_workers.ts +25 -0
  421. package/src/Cloudflare/Workers/index.ts +10 -0
  422. package/src/Cloudflare/index.ts +7 -0
  423. package/src/Cloudflare/stream.ts +20 -0
  424. package/src/Config.ts +31 -0
  425. package/src/Construct.ts +75 -0
  426. package/src/Daemon/Client.ts +112 -0
  427. package/src/Daemon/Config.ts +28 -0
  428. package/src/Daemon/Errors.ts +32 -0
  429. package/src/Daemon/Lock.ts +162 -0
  430. package/src/Daemon/ProcessRegistry.ts +284 -0
  431. package/src/Daemon/RpcSchema.ts +43 -0
  432. package/src/Daemon/RpcServer.ts +231 -0
  433. package/src/Daemon/index.ts +25 -0
  434. package/src/Destroy.ts +15 -0
  435. package/src/Diff.ts +142 -0
  436. package/src/ExecutionContext.ts +30 -0
  437. package/src/FQN.ts +94 -0
  438. package/src/Http.ts +105 -0
  439. package/src/Input.ts +91 -0
  440. package/src/InstanceId.ts +19 -0
  441. package/src/Kubernetes/ConfigMap.ts +59 -0
  442. package/src/Kubernetes/Deployment.ts +123 -0
  443. package/src/Kubernetes/Job.ts +82 -0
  444. package/src/Kubernetes/Namespace.ts +49 -0
  445. package/src/Kubernetes/Object.ts +99 -0
  446. package/src/Kubernetes/Service.ts +78 -0
  447. package/src/Kubernetes/ServiceAccount.ts +49 -0
  448. package/src/Kubernetes/client.ts +298 -0
  449. package/src/Kubernetes/common.ts +23 -0
  450. package/src/Kubernetes/index.ts +11 -0
  451. package/src/Kubernetes/types.ts +177 -0
  452. package/src/Namespace.ts +64 -0
  453. package/src/Observability.ts +0 -0
  454. package/src/Output.ts +584 -0
  455. package/src/Phase.ts +5 -0
  456. package/src/PhysicalName.ts +62 -0
  457. package/src/Plan.ts +899 -0
  458. package/src/Platform.ts +398 -0
  459. package/src/Provider.ts +156 -0
  460. package/src/Ref.ts +46 -0
  461. package/src/RemovalPolicy.ts +51 -0
  462. package/src/Resource.ts +387 -0
  463. package/src/SQLite/BunSQLite.ts +132 -0
  464. package/src/SQLite/SQLite.ts +19 -0
  465. package/src/SQLite/SQLiteConnection.ts +55 -0
  466. package/src/SQLite/SQLiteError.ts +904 -0
  467. package/src/SQLite/SQLiteStatement.ts +24 -0
  468. package/src/SQLite/index.ts +6 -0
  469. package/src/SQLite/libSQL.ts +194 -0
  470. package/src/Schema.ts +333 -0
  471. package/src/Self.ts +10 -0
  472. package/src/Server/Process.ts +30 -0
  473. package/src/Server/S3BucketEventSource.ts +100 -0
  474. package/src/Server/SQSQueueEventSource.ts +77 -0
  475. package/src/Server/index.ts +3 -0
  476. package/src/Serverless/Function.ts +18 -0
  477. package/src/Serverless/index.ts +1 -0
  478. package/src/Spawn.ts +23 -0
  479. package/src/Stack.ts +84 -0
  480. package/src/Stage.ts +3 -0
  481. package/src/State/InMemoryState.ts +86 -0
  482. package/src/State/LocalState.ts +120 -0
  483. package/src/State/ResourceState.ts +121 -0
  484. package/src/State/State.ts +72 -0
  485. package/src/State/index.ts +4 -0
  486. package/src/Tags.ts +104 -0
  487. package/src/Test/TestCli.ts +21 -0
  488. package/src/Test/TestState.ts +37 -0
  489. package/src/Test/Vitest.ts +503 -0
  490. package/src/Test/index.ts +3 -0
  491. package/src/Trait.ts +105 -0
  492. package/src/Util/base32.ts +44 -0
  493. package/src/Util/camel.ts +23 -0
  494. package/src/Util/class.ts +7 -0
  495. package/src/Util/effect.ts +57 -0
  496. package/src/Util/index.ts +15 -0
  497. package/src/Util/instance.ts +9 -0
  498. package/src/Util/pointer.ts +5 -0
  499. package/src/Util/schema-to-type.ts +456 -0
  500. package/src/Util/service.ts +16 -0
  501. package/src/Util/sha256.ts +27 -0
  502. package/src/Util/stable.ts +41 -0
  503. package/src/Util/todo.ts +4 -0
  504. package/src/Util/types.ts +25 -0
  505. package/src/Util/unknown.ts +19 -0
  506. package/src/Util/zip.ts +27 -0
  507. package/src/index.ts +29 -26
  508. package/README.md +0 -185
  509. package/lib/$.d.ts +0 -5
  510. package/lib/$.d.ts.map +0 -1
  511. package/lib/$.js +0 -9
  512. package/lib/$.js.map +0 -1
  513. package/lib/app.d.ts +0 -15
  514. package/lib/app.d.ts.map +0 -1
  515. package/lib/app.js +0 -7
  516. package/lib/app.js.map +0 -1
  517. package/lib/apply.d.ts +0 -18
  518. package/lib/apply.d.ts.map +0 -1
  519. package/lib/apply.js +0 -569
  520. package/lib/apply.js.map +0 -1
  521. package/lib/assert-never.d.ts +0 -12
  522. package/lib/assert-never.d.ts.map +0 -1
  523. package/lib/assert-never.js +0 -11
  524. package/lib/assert-never.js.map +0 -1
  525. package/lib/aws/account.d.ts +0 -27
  526. package/lib/aws/account.d.ts.map +0 -1
  527. package/lib/aws/account.js +0 -33
  528. package/lib/aws/account.js.map +0 -1
  529. package/lib/aws/arn.d.ts +0 -2
  530. package/lib/aws/arn.d.ts.map +0 -1
  531. package/lib/aws/arn.js +0 -1
  532. package/lib/aws/arn.js.map +0 -1
  533. package/lib/aws/assets.d.ts +0 -8
  534. package/lib/aws/assets.d.ts.map +0 -1
  535. package/lib/aws/assets.js +0 -4
  536. package/lib/aws/assets.js.map +0 -1
  537. package/lib/aws/bundle.d.ts +0 -4
  538. package/lib/aws/bundle.d.ts.map +0 -1
  539. package/lib/aws/bundle.js +0 -4
  540. package/lib/aws/bundle.js.map +0 -1
  541. package/lib/aws/client.d.ts +0 -8
  542. package/lib/aws/client.d.ts.map +0 -1
  543. package/lib/aws/client.js +0 -40
  544. package/lib/aws/client.js.map +0 -1
  545. package/lib/aws/config.d.ts +0 -15
  546. package/lib/aws/config.d.ts.map +0 -1
  547. package/lib/aws/config.js +0 -1
  548. package/lib/aws/config.js.map +0 -1
  549. package/lib/aws/credentials.d.ts +0 -156
  550. package/lib/aws/credentials.d.ts.map +0 -1
  551. package/lib/aws/credentials.js +0 -196
  552. package/lib/aws/credentials.js.map +0 -1
  553. package/lib/aws/dynamodb/attribute-value.d.ts +0 -20
  554. package/lib/aws/dynamodb/attribute-value.d.ts.map +0 -1
  555. package/lib/aws/dynamodb/attribute-value.js +0 -217
  556. package/lib/aws/dynamodb/attribute-value.js.map +0 -1
  557. package/lib/aws/dynamodb/client.d.ts +0 -12
  558. package/lib/aws/dynamodb/client.d.ts.map +0 -1
  559. package/lib/aws/dynamodb/client.js +0 -11
  560. package/lib/aws/dynamodb/client.js.map +0 -1
  561. package/lib/aws/dynamodb/expr.d.ts +0 -41
  562. package/lib/aws/dynamodb/expr.d.ts.map +0 -1
  563. package/lib/aws/dynamodb/expr.js +0 -1
  564. package/lib/aws/dynamodb/expr.js.map +0 -1
  565. package/lib/aws/dynamodb/index.d.ts +0 -10
  566. package/lib/aws/dynamodb/index.d.ts.map +0 -1
  567. package/lib/aws/dynamodb/index.js +0 -9
  568. package/lib/aws/dynamodb/index.js.map +0 -1
  569. package/lib/aws/dynamodb/projection.d.ts +0 -25
  570. package/lib/aws/dynamodb/projection.d.ts.map +0 -1
  571. package/lib/aws/dynamodb/projection.js +0 -1
  572. package/lib/aws/dynamodb/projection.js.map +0 -1
  573. package/lib/aws/dynamodb/secondary-index.d.ts +0 -26
  574. package/lib/aws/dynamodb/secondary-index.d.ts.map +0 -1
  575. package/lib/aws/dynamodb/secondary-index.js +0 -4
  576. package/lib/aws/dynamodb/secondary-index.js.map +0 -1
  577. package/lib/aws/dynamodb/table.d.ts +0 -59
  578. package/lib/aws/dynamodb/table.d.ts.map +0 -1
  579. package/lib/aws/dynamodb/table.get-item.d.ts +0 -57
  580. package/lib/aws/dynamodb/table.get-item.d.ts.map +0 -1
  581. package/lib/aws/dynamodb/table.get-item.js +0 -77
  582. package/lib/aws/dynamodb/table.get-item.js.map +0 -1
  583. package/lib/aws/dynamodb/table.js +0 -4
  584. package/lib/aws/dynamodb/table.js.map +0 -1
  585. package/lib/aws/dynamodb/table.provider.d.ts +0 -7
  586. package/lib/aws/dynamodb/table.provider.d.ts.map +0 -1
  587. package/lib/aws/dynamodb/table.provider.js +0 -196
  588. package/lib/aws/dynamodb/table.provider.js.map +0 -1
  589. package/lib/aws/ec2/client.d.ts +0 -12
  590. package/lib/aws/ec2/client.d.ts.map +0 -1
  591. package/lib/aws/ec2/client.js +0 -11
  592. package/lib/aws/ec2/client.js.map +0 -1
  593. package/lib/aws/ec2/egress-only-igw.d.ts +0 -55
  594. package/lib/aws/ec2/egress-only-igw.d.ts.map +0 -1
  595. package/lib/aws/ec2/egress-only-igw.js +0 -4
  596. package/lib/aws/ec2/egress-only-igw.js.map +0 -1
  597. package/lib/aws/ec2/egress-only-igw.provider.d.ts +0 -6
  598. package/lib/aws/ec2/egress-only-igw.provider.d.ts.map +0 -1
  599. package/lib/aws/ec2/egress-only-igw.provider.js +0 -114
  600. package/lib/aws/ec2/egress-only-igw.provider.js.map +0 -1
  601. package/lib/aws/ec2/eip.d.ts +0 -85
  602. package/lib/aws/ec2/eip.d.ts.map +0 -1
  603. package/lib/aws/ec2/eip.js +0 -4
  604. package/lib/aws/ec2/eip.js.map +0 -1
  605. package/lib/aws/ec2/eip.provider.d.ts +0 -6
  606. package/lib/aws/ec2/eip.provider.d.ts.map +0 -1
  607. package/lib/aws/ec2/eip.provider.js +0 -135
  608. package/lib/aws/ec2/eip.provider.js.map +0 -1
  609. package/lib/aws/ec2/index.d.ts +0 -33
  610. package/lib/aws/ec2/index.d.ts.map +0 -1
  611. package/lib/aws/ec2/index.js +0 -33
  612. package/lib/aws/ec2/index.js.map +0 -1
  613. package/lib/aws/ec2/internet-gateway.d.ts +0 -65
  614. package/lib/aws/ec2/internet-gateway.d.ts.map +0 -1
  615. package/lib/aws/ec2/internet-gateway.js +0 -4
  616. package/lib/aws/ec2/internet-gateway.js.map +0 -1
  617. package/lib/aws/ec2/internet-gateway.provider.d.ts +0 -6
  618. package/lib/aws/ec2/internet-gateway.provider.d.ts.map +0 -1
  619. package/lib/aws/ec2/internet-gateway.provider.js +0 -197
  620. package/lib/aws/ec2/internet-gateway.provider.js.map +0 -1
  621. package/lib/aws/ec2/nat-gateway.d.ts +0 -127
  622. package/lib/aws/ec2/nat-gateway.d.ts.map +0 -1
  623. package/lib/aws/ec2/nat-gateway.js +0 -4
  624. package/lib/aws/ec2/nat-gateway.js.map +0 -1
  625. package/lib/aws/ec2/nat-gateway.provider.d.ts +0 -6
  626. package/lib/aws/ec2/nat-gateway.provider.d.ts.map +0 -1
  627. package/lib/aws/ec2/nat-gateway.provider.js +0 -222
  628. package/lib/aws/ec2/nat-gateway.provider.js.map +0 -1
  629. package/lib/aws/ec2/network-acl-association.d.ts +0 -44
  630. package/lib/aws/ec2/network-acl-association.d.ts.map +0 -1
  631. package/lib/aws/ec2/network-acl-association.js +0 -4
  632. package/lib/aws/ec2/network-acl-association.js.map +0 -1
  633. package/lib/aws/ec2/network-acl-association.provider.d.ts +0 -4
  634. package/lib/aws/ec2/network-acl-association.provider.d.ts.map +0 -1
  635. package/lib/aws/ec2/network-acl-association.provider.js +0 -115
  636. package/lib/aws/ec2/network-acl-association.provider.js.map +0 -1
  637. package/lib/aws/ec2/network-acl-entry.d.ts +0 -118
  638. package/lib/aws/ec2/network-acl-entry.d.ts.map +0 -1
  639. package/lib/aws/ec2/network-acl-entry.js +0 -3
  640. package/lib/aws/ec2/network-acl-entry.js.map +0 -1
  641. package/lib/aws/ec2/network-acl-entry.provider.d.ts +0 -4
  642. package/lib/aws/ec2/network-acl-entry.provider.d.ts.map +0 -1
  643. package/lib/aws/ec2/network-acl-entry.provider.js +0 -129
  644. package/lib/aws/ec2/network-acl-entry.provider.js.map +0 -1
  645. package/lib/aws/ec2/network-acl.d.ts +0 -82
  646. package/lib/aws/ec2/network-acl.d.ts.map +0 -1
  647. package/lib/aws/ec2/network-acl.js +0 -4
  648. package/lib/aws/ec2/network-acl.js.map +0 -1
  649. package/lib/aws/ec2/network-acl.provider.d.ts +0 -6
  650. package/lib/aws/ec2/network-acl.provider.d.ts.map +0 -1
  651. package/lib/aws/ec2/network-acl.provider.js +0 -136
  652. package/lib/aws/ec2/network-acl.provider.js.map +0 -1
  653. package/lib/aws/ec2/route-table-association.d.ts +0 -63
  654. package/lib/aws/ec2/route-table-association.d.ts.map +0 -1
  655. package/lib/aws/ec2/route-table-association.js +0 -4
  656. package/lib/aws/ec2/route-table-association.js.map +0 -1
  657. package/lib/aws/ec2/route-table-association.provider.d.ts +0 -4
  658. package/lib/aws/ec2/route-table-association.provider.d.ts.map +0 -1
  659. package/lib/aws/ec2/route-table-association.provider.js +0 -121
  660. package/lib/aws/ec2/route-table-association.provider.js.map +0 -1
  661. package/lib/aws/ec2/route-table.d.ts +0 -159
  662. package/lib/aws/ec2/route-table.d.ts.map +0 -1
  663. package/lib/aws/ec2/route-table.js +0 -4
  664. package/lib/aws/ec2/route-table.js.map +0 -1
  665. package/lib/aws/ec2/route-table.provider.d.ts +0 -6
  666. package/lib/aws/ec2/route-table.provider.d.ts.map +0 -1
  667. package/lib/aws/ec2/route-table.provider.js +0 -213
  668. package/lib/aws/ec2/route-table.provider.js.map +0 -1
  669. package/lib/aws/ec2/route.d.ts +0 -155
  670. package/lib/aws/ec2/route.d.ts.map +0 -1
  671. package/lib/aws/ec2/route.js +0 -3
  672. package/lib/aws/ec2/route.js.map +0 -1
  673. package/lib/aws/ec2/route.provider.d.ts +0 -4
  674. package/lib/aws/ec2/route.provider.d.ts.map +0 -1
  675. package/lib/aws/ec2/route.provider.js +0 -166
  676. package/lib/aws/ec2/route.provider.js.map +0 -1
  677. package/lib/aws/ec2/security-group-rule.d.ts +0 -118
  678. package/lib/aws/ec2/security-group-rule.d.ts.map +0 -1
  679. package/lib/aws/ec2/security-group-rule.js +0 -4
  680. package/lib/aws/ec2/security-group-rule.js.map +0 -1
  681. package/lib/aws/ec2/security-group-rule.provider.d.ts +0 -4
  682. package/lib/aws/ec2/security-group-rule.provider.d.ts.map +0 -1
  683. package/lib/aws/ec2/security-group-rule.provider.js +0 -193
  684. package/lib/aws/ec2/security-group-rule.provider.js.map +0 -1
  685. package/lib/aws/ec2/security-group.d.ts +0 -147
  686. package/lib/aws/ec2/security-group.d.ts.map +0 -1
  687. package/lib/aws/ec2/security-group.js +0 -4
  688. package/lib/aws/ec2/security-group.js.map +0 -1
  689. package/lib/aws/ec2/security-group.provider.d.ts +0 -6
  690. package/lib/aws/ec2/security-group.provider.d.ts.map +0 -1
  691. package/lib/aws/ec2/security-group.provider.js +0 -291
  692. package/lib/aws/ec2/security-group.provider.js.map +0 -1
  693. package/lib/aws/ec2/subnet.d.ts +0 -175
  694. package/lib/aws/ec2/subnet.d.ts.map +0 -1
  695. package/lib/aws/ec2/subnet.js +0 -4
  696. package/lib/aws/ec2/subnet.js.map +0 -1
  697. package/lib/aws/ec2/subnet.provider.d.ts +0 -4
  698. package/lib/aws/ec2/subnet.provider.d.ts.map +0 -1
  699. package/lib/aws/ec2/subnet.provider.js +0 -253
  700. package/lib/aws/ec2/subnet.provider.js.map +0 -1
  701. package/lib/aws/ec2/vpc-endpoint.d.ts +0 -176
  702. package/lib/aws/ec2/vpc-endpoint.d.ts.map +0 -1
  703. package/lib/aws/ec2/vpc-endpoint.js +0 -4
  704. package/lib/aws/ec2/vpc-endpoint.js.map +0 -1
  705. package/lib/aws/ec2/vpc-endpoint.provider.d.ts +0 -6
  706. package/lib/aws/ec2/vpc-endpoint.provider.d.ts.map +0 -1
  707. package/lib/aws/ec2/vpc-endpoint.provider.js +0 -315
  708. package/lib/aws/ec2/vpc-endpoint.provider.js.map +0 -1
  709. package/lib/aws/ec2/vpc.d.ts +0 -136
  710. package/lib/aws/ec2/vpc.d.ts.map +0 -1
  711. package/lib/aws/ec2/vpc.js +0 -4
  712. package/lib/aws/ec2/vpc.js.map +0 -1
  713. package/lib/aws/ec2/vpc.provider.d.ts +0 -6
  714. package/lib/aws/ec2/vpc.provider.d.ts.map +0 -1
  715. package/lib/aws/ec2/vpc.provider.js +0 -212
  716. package/lib/aws/ec2/vpc.provider.js.map +0 -1
  717. package/lib/aws/iam.d.ts +0 -23
  718. package/lib/aws/iam.d.ts.map +0 -1
  719. package/lib/aws/iam.js +0 -7
  720. package/lib/aws/iam.js.map +0 -1
  721. package/lib/aws/index.d.ts +0 -28
  722. package/lib/aws/index.d.ts.map +0 -1
  723. package/lib/aws/index.js +0 -21
  724. package/lib/aws/index.js.map +0 -1
  725. package/lib/aws/lambda/client.d.ts +0 -8
  726. package/lib/aws/lambda/client.d.ts.map +0 -1
  727. package/lib/aws/lambda/client.js +0 -7
  728. package/lib/aws/lambda/client.js.map +0 -1
  729. package/lib/aws/lambda/consume.d.ts +0 -16
  730. package/lib/aws/lambda/consume.d.ts.map +0 -1
  731. package/lib/aws/lambda/consume.js +0 -30
  732. package/lib/aws/lambda/consume.js.map +0 -1
  733. package/lib/aws/lambda/function.d.ts +0 -41
  734. package/lib/aws/lambda/function.d.ts.map +0 -1
  735. package/lib/aws/lambda/function.handler.d.ts +0 -7
  736. package/lib/aws/lambda/function.handler.d.ts.map +0 -1
  737. package/lib/aws/lambda/function.handler.js +0 -8
  738. package/lib/aws/lambda/function.handler.js.map +0 -1
  739. package/lib/aws/lambda/function.invoke.d.ts +0 -12
  740. package/lib/aws/lambda/function.invoke.d.ts.map +0 -1
  741. package/lib/aws/lambda/function.invoke.js +0 -33
  742. package/lib/aws/lambda/function.invoke.js.map +0 -1
  743. package/lib/aws/lambda/function.js +0 -3
  744. package/lib/aws/lambda/function.js.map +0 -1
  745. package/lib/aws/lambda/function.provider.d.ts +0 -10
  746. package/lib/aws/lambda/function.provider.d.ts.map +0 -1
  747. package/lib/aws/lambda/function.provider.js +0 -464
  748. package/lib/aws/lambda/function.provider.js.map +0 -1
  749. package/lib/aws/lambda/index.d.ts +0 -9
  750. package/lib/aws/lambda/index.d.ts.map +0 -1
  751. package/lib/aws/lambda/index.js +0 -10
  752. package/lib/aws/lambda/index.js.map +0 -1
  753. package/lib/aws/lambda/serve.d.ts +0 -12
  754. package/lib/aws/lambda/serve.d.ts.map +0 -1
  755. package/lib/aws/lambda/serve.js +0 -7
  756. package/lib/aws/lambda/serve.js.map +0 -1
  757. package/lib/aws/parse-ini.d.ts +0 -4
  758. package/lib/aws/parse-ini.d.ts.map +0 -1
  759. package/lib/aws/parse-ini.js +0 -67
  760. package/lib/aws/parse-ini.js.map +0 -1
  761. package/lib/aws/profile.d.ts +0 -6
  762. package/lib/aws/profile.d.ts.map +0 -1
  763. package/lib/aws/profile.js +0 -4
  764. package/lib/aws/profile.js.map +0 -1
  765. package/lib/aws/region.d.ts +0 -31
  766. package/lib/aws/region.d.ts.map +0 -1
  767. package/lib/aws/region.js +0 -46
  768. package/lib/aws/region.js.map +0 -1
  769. package/lib/aws/s3.d.ts +0 -8
  770. package/lib/aws/s3.d.ts.map +0 -1
  771. package/lib/aws/s3.js +0 -7
  772. package/lib/aws/s3.js.map +0 -1
  773. package/lib/aws/sqs/client.d.ts +0 -12
  774. package/lib/aws/sqs/client.d.ts.map +0 -1
  775. package/lib/aws/sqs/client.js +0 -11
  776. package/lib/aws/sqs/client.js.map +0 -1
  777. package/lib/aws/sqs/index.d.ts +0 -8
  778. package/lib/aws/sqs/index.d.ts.map +0 -1
  779. package/lib/aws/sqs/index.js +0 -8
  780. package/lib/aws/sqs/index.js.map +0 -1
  781. package/lib/aws/sqs/queue.consume.d.ts +0 -12
  782. package/lib/aws/sqs/queue.consume.d.ts.map +0 -1
  783. package/lib/aws/sqs/queue.consume.js +0 -2
  784. package/lib/aws/sqs/queue.consume.js.map +0 -1
  785. package/lib/aws/sqs/queue.d.ts +0 -80
  786. package/lib/aws/sqs/queue.d.ts.map +0 -1
  787. package/lib/aws/sqs/queue.event-source.d.ts +0 -22
  788. package/lib/aws/sqs/queue.event-source.d.ts.map +0 -1
  789. package/lib/aws/sqs/queue.event-source.js +0 -130
  790. package/lib/aws/sqs/queue.event-source.js.map +0 -1
  791. package/lib/aws/sqs/queue.js +0 -3
  792. package/lib/aws/sqs/queue.js.map +0 -1
  793. package/lib/aws/sqs/queue.provider.d.ts +0 -6
  794. package/lib/aws/sqs/queue.provider.d.ts.map +0 -1
  795. package/lib/aws/sqs/queue.provider.js +0 -95
  796. package/lib/aws/sqs/queue.provider.js.map +0 -1
  797. package/lib/aws/sqs/queue.send-message.d.ts +0 -13
  798. package/lib/aws/sqs/queue.send-message.d.ts.map +0 -1
  799. package/lib/aws/sqs/queue.send-message.js +0 -34
  800. package/lib/aws/sqs/queue.send-message.js.map +0 -1
  801. package/lib/aws/sts.d.ts +0 -8
  802. package/lib/aws/sts.d.ts.map +0 -1
  803. package/lib/aws/sts.js +0 -7
  804. package/lib/aws/sts.js.map +0 -1
  805. package/lib/aws/zip.d.ts +0 -3
  806. package/lib/aws/zip.d.ts.map +0 -1
  807. package/lib/aws/zip.js +0 -12
  808. package/lib/aws/zip.js.map +0 -1
  809. package/lib/binding.d.ts +0 -106
  810. package/lib/binding.d.ts.map +0 -1
  811. package/lib/binding.js +0 -27
  812. package/lib/binding.js.map +0 -1
  813. package/lib/capability.d.ts +0 -49
  814. package/lib/capability.d.ts.map +0 -1
  815. package/lib/capability.js +0 -1
  816. package/lib/capability.js.map +0 -1
  817. package/lib/cli/components/ApprovePlan.d.ts +0 -8
  818. package/lib/cli/components/ApprovePlan.d.ts.map +0 -1
  819. package/lib/cli/components/ApprovePlan.js +0 -30
  820. package/lib/cli/components/ApprovePlan.js.map +0 -1
  821. package/lib/cli/components/Plan.d.ts +0 -7
  822. package/lib/cli/components/Plan.d.ts.map +0 -1
  823. package/lib/cli/components/Plan.js +0 -100
  824. package/lib/cli/components/Plan.js.map +0 -1
  825. package/lib/cli/components/PlanProgress.d.ts +0 -13
  826. package/lib/cli/components/PlanProgress.d.ts.map +0 -1
  827. package/lib/cli/components/PlanProgress.js +0 -176
  828. package/lib/cli/components/PlanProgress.js.map +0 -1
  829. package/lib/cli/ink-service.d.ts +0 -4
  830. package/lib/cli/ink-service.d.ts.map +0 -1
  831. package/lib/cli/ink-service.js +0 -43
  832. package/lib/cli/ink-service.js.map +0 -1
  833. package/lib/cli/service.d.ts +0 -21
  834. package/lib/cli/service.d.ts.map +0 -1
  835. package/lib/cli/service.js +0 -5
  836. package/lib/cli/service.js.map +0 -1
  837. package/lib/cloudflare/account.d.ts +0 -10
  838. package/lib/cloudflare/account.d.ts.map +0 -1
  839. package/lib/cloudflare/account.js +0 -24
  840. package/lib/cloudflare/account.js.map +0 -1
  841. package/lib/cloudflare/api.d.ts +0 -36
  842. package/lib/cloudflare/api.d.ts.map +0 -1
  843. package/lib/cloudflare/api.js +0 -100
  844. package/lib/cloudflare/api.js.map +0 -1
  845. package/lib/cloudflare/config.d.ts +0 -9
  846. package/lib/cloudflare/config.d.ts.map +0 -1
  847. package/lib/cloudflare/config.js +0 -1
  848. package/lib/cloudflare/config.js.map +0 -1
  849. package/lib/cloudflare/context.d.ts +0 -27
  850. package/lib/cloudflare/context.d.ts.map +0 -1
  851. package/lib/cloudflare/context.js +0 -24
  852. package/lib/cloudflare/context.js.map +0 -1
  853. package/lib/cloudflare/index.d.ts +0 -8
  854. package/lib/cloudflare/index.d.ts.map +0 -1
  855. package/lib/cloudflare/index.js +0 -8
  856. package/lib/cloudflare/index.js.map +0 -1
  857. package/lib/cloudflare/kv/index.d.ts +0 -4
  858. package/lib/cloudflare/kv/index.d.ts.map +0 -1
  859. package/lib/cloudflare/kv/index.js +0 -4
  860. package/lib/cloudflare/kv/index.js.map +0 -1
  861. package/lib/cloudflare/kv/namespace.binding.d.ts +0 -10
  862. package/lib/cloudflare/kv/namespace.binding.d.ts.map +0 -1
  863. package/lib/cloudflare/kv/namespace.binding.js +0 -15
  864. package/lib/cloudflare/kv/namespace.binding.js.map +0 -1
  865. package/lib/cloudflare/kv/namespace.client.d.ts +0 -11
  866. package/lib/cloudflare/kv/namespace.client.d.ts.map +0 -1
  867. package/lib/cloudflare/kv/namespace.client.js +0 -31
  868. package/lib/cloudflare/kv/namespace.client.js.map +0 -1
  869. package/lib/cloudflare/kv/namespace.d.ts +0 -24
  870. package/lib/cloudflare/kv/namespace.d.ts.map +0 -1
  871. package/lib/cloudflare/kv/namespace.js +0 -3
  872. package/lib/cloudflare/kv/namespace.js.map +0 -1
  873. package/lib/cloudflare/kv/namespace.provider.d.ts +0 -5
  874. package/lib/cloudflare/kv/namespace.provider.d.ts.map +0 -1
  875. package/lib/cloudflare/kv/namespace.provider.js +0 -85
  876. package/lib/cloudflare/kv/namespace.provider.js.map +0 -1
  877. package/lib/cloudflare/live.d.ts +0 -11
  878. package/lib/cloudflare/live.d.ts.map +0 -1
  879. package/lib/cloudflare/live.js +0 -15
  880. package/lib/cloudflare/live.js.map +0 -1
  881. package/lib/cloudflare/r2/bucket.binding.d.ts +0 -10
  882. package/lib/cloudflare/r2/bucket.binding.d.ts.map +0 -1
  883. package/lib/cloudflare/r2/bucket.binding.js +0 -18
  884. package/lib/cloudflare/r2/bucket.binding.js.map +0 -1
  885. package/lib/cloudflare/r2/bucket.client.d.ts +0 -8
  886. package/lib/cloudflare/r2/bucket.client.d.ts.map +0 -1
  887. package/lib/cloudflare/r2/bucket.client.js +0 -9
  888. package/lib/cloudflare/r2/bucket.client.js.map +0 -1
  889. package/lib/cloudflare/r2/bucket.d.ts +0 -33
  890. package/lib/cloudflare/r2/bucket.d.ts.map +0 -1
  891. package/lib/cloudflare/r2/bucket.del.d.ts +0 -4
  892. package/lib/cloudflare/r2/bucket.del.d.ts.map +0 -1
  893. package/lib/cloudflare/r2/bucket.del.js +0 -7
  894. package/lib/cloudflare/r2/bucket.del.js.map +0 -1
  895. package/lib/cloudflare/r2/bucket.get.d.ts +0 -5
  896. package/lib/cloudflare/r2/bucket.get.d.ts.map +0 -1
  897. package/lib/cloudflare/r2/bucket.get.js +0 -7
  898. package/lib/cloudflare/r2/bucket.get.js.map +0 -1
  899. package/lib/cloudflare/r2/bucket.head.d.ts +0 -4
  900. package/lib/cloudflare/r2/bucket.head.d.ts.map +0 -1
  901. package/lib/cloudflare/r2/bucket.head.js +0 -7
  902. package/lib/cloudflare/r2/bucket.head.js.map +0 -1
  903. package/lib/cloudflare/r2/bucket.js +0 -3
  904. package/lib/cloudflare/r2/bucket.js.map +0 -1
  905. package/lib/cloudflare/r2/bucket.list.d.ts +0 -5
  906. package/lib/cloudflare/r2/bucket.list.d.ts.map +0 -1
  907. package/lib/cloudflare/r2/bucket.list.js +0 -7
  908. package/lib/cloudflare/r2/bucket.list.js.map +0 -1
  909. package/lib/cloudflare/r2/bucket.multipart.d.ts +0 -19
  910. package/lib/cloudflare/r2/bucket.multipart.d.ts.map +0 -1
  911. package/lib/cloudflare/r2/bucket.multipart.js +0 -25
  912. package/lib/cloudflare/r2/bucket.multipart.js.map +0 -1
  913. package/lib/cloudflare/r2/bucket.provider.d.ts +0 -5
  914. package/lib/cloudflare/r2/bucket.provider.d.ts.map +0 -1
  915. package/lib/cloudflare/r2/bucket.provider.js +0 -78
  916. package/lib/cloudflare/r2/bucket.provider.js.map +0 -1
  917. package/lib/cloudflare/r2/bucket.put.d.ts +0 -6
  918. package/lib/cloudflare/r2/bucket.put.d.ts.map +0 -1
  919. package/lib/cloudflare/r2/bucket.put.js +0 -8
  920. package/lib/cloudflare/r2/bucket.put.js.map +0 -1
  921. package/lib/cloudflare/r2/index.d.ts +0 -10
  922. package/lib/cloudflare/r2/index.d.ts.map +0 -1
  923. package/lib/cloudflare/r2/index.js +0 -10
  924. package/lib/cloudflare/r2/index.js.map +0 -1
  925. package/lib/cloudflare/stream.d.ts +0 -10
  926. package/lib/cloudflare/stream.d.ts.map +0 -1
  927. package/lib/cloudflare/stream.js +0 -16
  928. package/lib/cloudflare/stream.js.map +0 -1
  929. package/lib/cloudflare/worker/assets.fetch.d.ts +0 -9
  930. package/lib/cloudflare/worker/assets.fetch.d.ts.map +0 -1
  931. package/lib/cloudflare/worker/assets.fetch.js +0 -12
  932. package/lib/cloudflare/worker/assets.fetch.js.map +0 -1
  933. package/lib/cloudflare/worker/assets.provider.d.ts +0 -66
  934. package/lib/cloudflare/worker/assets.provider.d.ts.map +0 -1
  935. package/lib/cloudflare/worker/assets.provider.js +0 -145
  936. package/lib/cloudflare/worker/assets.provider.js.map +0 -1
  937. package/lib/cloudflare/worker/index.d.ts +0 -5
  938. package/lib/cloudflare/worker/index.d.ts.map +0 -1
  939. package/lib/cloudflare/worker/index.js +0 -5
  940. package/lib/cloudflare/worker/index.js.map +0 -1
  941. package/lib/cloudflare/worker/worker.d.ts +0 -66
  942. package/lib/cloudflare/worker/worker.d.ts.map +0 -1
  943. package/lib/cloudflare/worker/worker.handler.d.ts +0 -11
  944. package/lib/cloudflare/worker/worker.handler.d.ts.map +0 -1
  945. package/lib/cloudflare/worker/worker.handler.js +0 -15
  946. package/lib/cloudflare/worker/worker.handler.js.map +0 -1
  947. package/lib/cloudflare/worker/worker.js +0 -4
  948. package/lib/cloudflare/worker/worker.js.map +0 -1
  949. package/lib/cloudflare/worker/worker.provider.d.ts +0 -10
  950. package/lib/cloudflare/worker/worker.provider.d.ts.map +0 -1
  951. package/lib/cloudflare/worker/worker.provider.js +0 -225
  952. package/lib/cloudflare/worker/worker.provider.js.map +0 -1
  953. package/lib/cloudflare/worker/worker.serve.d.ts +0 -39
  954. package/lib/cloudflare/worker/worker.serve.d.ts.map +0 -1
  955. package/lib/cloudflare/worker/worker.serve.js +0 -4
  956. package/lib/cloudflare/worker/worker.serve.js.map +0 -1
  957. package/lib/data.d.ts +0 -3
  958. package/lib/data.d.ts.map +0 -1
  959. package/lib/data.js +0 -8
  960. package/lib/data.js.map +0 -1
  961. package/lib/destroy.d.ts +0 -2
  962. package/lib/destroy.d.ts.map +0 -1
  963. package/lib/destroy.js +0 -3
  964. package/lib/destroy.js.map +0 -1
  965. package/lib/diff.d.ts +0 -18
  966. package/lib/diff.d.ts.map +0 -1
  967. package/lib/diff.js +0 -22
  968. package/lib/diff.js.map +0 -1
  969. package/lib/dot-alchemy.d.ts +0 -10
  970. package/lib/dot-alchemy.d.ts.map +0 -1
  971. package/lib/dot-alchemy.js +0 -15
  972. package/lib/dot-alchemy.js.map +0 -1
  973. package/lib/env.d.ts +0 -9
  974. package/lib/env.d.ts.map +0 -1
  975. package/lib/env.js +0 -19
  976. package/lib/env.js.map +0 -1
  977. package/lib/esbuild.d.ts +0 -28
  978. package/lib/esbuild.d.ts.map +0 -1
  979. package/lib/esbuild.js +0 -63
  980. package/lib/esbuild.js.map +0 -1
  981. package/lib/event.d.ts +0 -16
  982. package/lib/event.d.ts.map +0 -1
  983. package/lib/event.js +0 -1
  984. package/lib/event.js.map +0 -1
  985. package/lib/exports.d.ts +0 -9
  986. package/lib/exports.d.ts.map +0 -1
  987. package/lib/exports.js +0 -13
  988. package/lib/exports.js.map +0 -1
  989. package/lib/index.d.ts +0 -27
  990. package/lib/index.d.ts.map +0 -1
  991. package/lib/index.js +0 -27
  992. package/lib/index.js.map +0 -1
  993. package/lib/input.d.ts +0 -32
  994. package/lib/input.d.ts.map +0 -1
  995. package/lib/input.js +0 -1
  996. package/lib/input.js.map +0 -1
  997. package/lib/instance-id.d.ts +0 -12
  998. package/lib/instance-id.d.ts.map +0 -1
  999. package/lib/instance-id.js +0 -16
  1000. package/lib/instance-id.js.map +0 -1
  1001. package/lib/output.d.ts +0 -145
  1002. package/lib/output.d.ts.map +0 -1
  1003. package/lib/output.js +0 -283
  1004. package/lib/output.js.map +0 -1
  1005. package/lib/phase.d.ts +0 -2
  1006. package/lib/phase.d.ts.map +0 -1
  1007. package/lib/phase.js +0 -1
  1008. package/lib/phase.js.map +0 -1
  1009. package/lib/physical-name.d.ts +0 -28
  1010. package/lib/physical-name.d.ts.map +0 -1
  1011. package/lib/physical-name.js +0 -55
  1012. package/lib/physical-name.js.map +0 -1
  1013. package/lib/plan.d.ts +0 -135
  1014. package/lib/plan.d.ts.map +0 -1
  1015. package/lib/plan.js +0 -687
  1016. package/lib/plan.js.map +0 -1
  1017. package/lib/policy.d.ts +0 -54
  1018. package/lib/policy.d.ts.map +0 -1
  1019. package/lib/policy.js +0 -24
  1020. package/lib/policy.js.map +0 -1
  1021. package/lib/provider.d.ts +0 -71
  1022. package/lib/provider.d.ts.map +0 -1
  1023. package/lib/provider.js +0 -11
  1024. package/lib/provider.js.map +0 -1
  1025. package/lib/ref.d.ts +0 -14
  1026. package/lib/ref.d.ts.map +0 -1
  1027. package/lib/ref.js +0 -21
  1028. package/lib/ref.js.map +0 -1
  1029. package/lib/reporter.d.ts +0 -8
  1030. package/lib/reporter.d.ts.map +0 -1
  1031. package/lib/reporter.js +0 -4
  1032. package/lib/reporter.js.map +0 -1
  1033. package/lib/resource.d.ts +0 -36
  1034. package/lib/resource.d.ts.map +0 -1
  1035. package/lib/resource.js +0 -26
  1036. package/lib/resource.js.map +0 -1
  1037. package/lib/runtime.d.ts +0 -40
  1038. package/lib/runtime.d.ts.map +0 -1
  1039. package/lib/runtime.js +0 -54
  1040. package/lib/runtime.js.map +0 -1
  1041. package/lib/schema.d.ts +0 -37
  1042. package/lib/schema.d.ts.map +0 -1
  1043. package/lib/schema.js +0 -61
  1044. package/lib/schema.js.map +0 -1
  1045. package/lib/service.d.ts +0 -36
  1046. package/lib/service.d.ts.map +0 -1
  1047. package/lib/service.js +0 -4
  1048. package/lib/service.js.map +0 -1
  1049. package/lib/sha256.d.ts +0 -5
  1050. package/lib/sha256.d.ts.map +0 -1
  1051. package/lib/sha256.js +0 -16
  1052. package/lib/sha256.js.map +0 -1
  1053. package/lib/stack.d.ts +0 -60
  1054. package/lib/stack.d.ts.map +0 -1
  1055. package/lib/stack.js +0 -11
  1056. package/lib/stack.js.map +0 -1
  1057. package/lib/stage.d.ts +0 -39
  1058. package/lib/stage.d.ts.map +0 -1
  1059. package/lib/stage.js +0 -32
  1060. package/lib/stage.js.map +0 -1
  1061. package/lib/state.d.ts +0 -157
  1062. package/lib/state.d.ts.map +0 -1
  1063. package/lib/state.js +0 -71
  1064. package/lib/state.js.map +0 -1
  1065. package/lib/tags.d.ts +0 -44
  1066. package/lib/tags.d.ts.map +0 -1
  1067. package/lib/tags.js +0 -73
  1068. package/lib/tags.js.map +0 -1
  1069. package/lib/test.d.ts +0 -35
  1070. package/lib/test.d.ts.map +0 -1
  1071. package/lib/test.js +0 -68
  1072. package/lib/test.js.map +0 -1
  1073. package/lib/todo.d.ts +0 -3
  1074. package/lib/todo.d.ts.map +0 -1
  1075. package/lib/todo.js +0 -3
  1076. package/lib/todo.js.map +0 -1
  1077. package/lib/tsconfig.test.tsbuildinfo +0 -1
  1078. package/lib/type.d.ts +0 -6
  1079. package/lib/type.d.ts.map +0 -1
  1080. package/lib/type.js +0 -3
  1081. package/lib/type.js.map +0 -1
  1082. package/lib/unknown.d.ts +0 -4
  1083. package/lib/unknown.d.ts.map +0 -1
  1084. package/lib/unknown.js +0 -4
  1085. package/lib/unknown.js.map +0 -1
  1086. package/lib/user.d.ts +0 -3
  1087. package/lib/user.d.ts.map +0 -1
  1088. package/lib/user.js +0 -3
  1089. package/lib/user.js.map +0 -1
  1090. package/lib/util.d.ts +0 -6
  1091. package/lib/util.d.ts.map +0 -1
  1092. package/lib/util.js +0 -9
  1093. package/lib/util.js.map +0 -1
  1094. package/src/$.ts +0 -17
  1095. package/src/app.ts +0 -15
  1096. package/src/apply.ts +0 -867
  1097. package/src/aws/account.ts +0 -57
  1098. package/src/aws/assets.ts +0 -8
  1099. package/src/aws/bundle.ts +0 -5
  1100. package/src/aws/client.ts +0 -67
  1101. package/src/aws/config.ts +0 -16
  1102. package/src/aws/credentials.ts +0 -444
  1103. package/src/aws/dynamodb/attribute-value.ts +0 -240
  1104. package/src/aws/dynamodb/client.ts +0 -20
  1105. package/src/aws/dynamodb/index.ts +0 -12
  1106. package/src/aws/dynamodb/projection.ts +0 -159
  1107. package/src/aws/dynamodb/secondary-index.ts +0 -45
  1108. package/src/aws/dynamodb/table.get-item.ts +0 -173
  1109. package/src/aws/dynamodb/table.provider.ts +0 -288
  1110. package/src/aws/dynamodb/table.ts +0 -98
  1111. package/src/aws/ec2/client.ts +0 -20
  1112. package/src/aws/ec2/egress-only-igw.provider.ts +0 -181
  1113. package/src/aws/ec2/egress-only-igw.ts +0 -77
  1114. package/src/aws/ec2/eip.provider.ts +0 -191
  1115. package/src/aws/ec2/eip.ts +0 -106
  1116. package/src/aws/ec2/index.ts +0 -33
  1117. package/src/aws/ec2/internet-gateway.provider.ts +0 -325
  1118. package/src/aws/ec2/internet-gateway.ts +0 -79
  1119. package/src/aws/ec2/nat-gateway.provider.ts +0 -341
  1120. package/src/aws/ec2/nat-gateway.ts +0 -155
  1121. package/src/aws/ec2/network-acl-association.provider.ts +0 -181
  1122. package/src/aws/ec2/network-acl-association.ts +0 -60
  1123. package/src/aws/ec2/network-acl-entry.provider.ts +0 -218
  1124. package/src/aws/ec2/network-acl-entry.ts +0 -140
  1125. package/src/aws/ec2/network-acl.provider.ts +0 -195
  1126. package/src/aws/ec2/network-acl.ts +0 -102
  1127. package/src/aws/ec2/route-table-association.provider.ts +0 -213
  1128. package/src/aws/ec2/route-table-association.ts +0 -82
  1129. package/src/aws/ec2/route-table.provider.ts +0 -305
  1130. package/src/aws/ec2/route-table.ts +0 -175
  1131. package/src/aws/ec2/route.provider.ts +0 -212
  1132. package/src/aws/ec2/route.ts +0 -192
  1133. package/src/aws/ec2/security-group-rule.provider.ts +0 -264
  1134. package/src/aws/ec2/security-group-rule.ts +0 -151
  1135. package/src/aws/ec2/security-group.provider.ts +0 -392
  1136. package/src/aws/ec2/security-group.ts +0 -182
  1137. package/src/aws/ec2/subnet.provider.ts +0 -359
  1138. package/src/aws/ec2/subnet.ts +0 -213
  1139. package/src/aws/ec2/vpc-endpoint.provider.ts +0 -466
  1140. package/src/aws/ec2/vpc-endpoint.ts +0 -213
  1141. package/src/aws/ec2/vpc.provider.ts +0 -301
  1142. package/src/aws/ec2/vpc.ts +0 -165
  1143. package/src/aws/iam.ts +0 -30
  1144. package/src/aws/index.ts +0 -72
  1145. package/src/aws/lambda/client.ts +0 -14
  1146. package/src/aws/lambda/consume.ts +0 -64
  1147. package/src/aws/lambda/function.handler.ts +0 -30
  1148. package/src/aws/lambda/function.invoke.ts +0 -46
  1149. package/src/aws/lambda/function.provider.ts +0 -675
  1150. package/src/aws/lambda/function.ts +0 -50
  1151. package/src/aws/lambda/index.ts +0 -11
  1152. package/src/aws/lambda/serve.ts +0 -29
  1153. package/src/aws/parse-ini.ts +0 -80
  1154. package/src/aws/profile.ts +0 -3
  1155. package/src/aws/region.ts +0 -76
  1156. package/src/aws/s3.ts +0 -10
  1157. package/src/aws/sqs/client.ts +0 -20
  1158. package/src/aws/sqs/index.ts +0 -8
  1159. package/src/aws/sqs/queue.consume.ts +0 -13
  1160. package/src/aws/sqs/queue.event-source.ts +0 -225
  1161. package/src/aws/sqs/queue.provider.ts +0 -118
  1162. package/src/aws/sqs/queue.send-message.ts +0 -50
  1163. package/src/aws/sqs/queue.ts +0 -84
  1164. package/src/aws/sts.ts +0 -13
  1165. package/src/aws/zip.ts +0 -17
  1166. package/src/binding.ts +0 -240
  1167. package/src/capability.ts +0 -63
  1168. package/src/cli/components/ApprovePlan.tsx +0 -44
  1169. package/src/cli/components/Plan.tsx +0 -155
  1170. package/src/cli/components/PlanProgress.tsx +0 -225
  1171. package/src/cli/index.ts +0 -2
  1172. package/src/cli/ink-service.tsx +0 -61
  1173. package/src/cli/service.ts +0 -23
  1174. package/src/cloudflare/account.ts +0 -37
  1175. package/src/cloudflare/api.ts +0 -156
  1176. package/src/cloudflare/config.ts +0 -7
  1177. package/src/cloudflare/context.ts +0 -49
  1178. package/src/cloudflare/index.ts +0 -8
  1179. package/src/cloudflare/kv/index.ts +0 -3
  1180. package/src/cloudflare/kv/namespace.binding.ts +0 -29
  1181. package/src/cloudflare/kv/namespace.client.ts +0 -70
  1182. package/src/cloudflare/kv/namespace.provider.ts +0 -103
  1183. package/src/cloudflare/kv/namespace.ts +0 -30
  1184. package/src/cloudflare/live.ts +0 -32
  1185. package/src/cloudflare/r2/bucket.binding.ts +0 -31
  1186. package/src/cloudflare/r2/bucket.client.ts +0 -22
  1187. package/src/cloudflare/r2/bucket.del.ts +0 -11
  1188. package/src/cloudflare/r2/bucket.get.ts +0 -13
  1189. package/src/cloudflare/r2/bucket.head.ts +0 -11
  1190. package/src/cloudflare/r2/bucket.list.ts +0 -12
  1191. package/src/cloudflare/r2/bucket.multipart.ts +0 -55
  1192. package/src/cloudflare/r2/bucket.provider.ts +0 -94
  1193. package/src/cloudflare/r2/bucket.put.ts +0 -17
  1194. package/src/cloudflare/r2/bucket.ts +0 -44
  1195. package/src/cloudflare/r2/index.ts +0 -9
  1196. package/src/cloudflare/stream.ts +0 -21
  1197. package/src/cloudflare/worker/assets.fetch.ts +0 -29
  1198. package/src/cloudflare/worker/assets.provider.ts +0 -249
  1199. package/src/cloudflare/worker/index.ts +0 -4
  1200. package/src/cloudflare/worker/worker.handler.ts +0 -39
  1201. package/src/cloudflare/worker/worker.provider.ts +0 -279
  1202. package/src/cloudflare/worker/worker.serve.ts +0 -22
  1203. package/src/cloudflare/worker/worker.ts +0 -77
  1204. package/src/destroy.ts +0 -3
  1205. package/src/diff.ts +0 -48
  1206. package/src/dot-alchemy.ts +0 -18
  1207. package/src/env.ts +0 -39
  1208. package/src/esbuild.ts +0 -98
  1209. package/src/event.ts +0 -33
  1210. package/src/exports.ts +0 -21
  1211. package/src/input.ts +0 -81
  1212. package/src/instance-id.ts +0 -20
  1213. package/src/output.ts +0 -544
  1214. package/src/phase.ts +0 -1
  1215. package/src/physical-name.ts +0 -84
  1216. package/src/plan.ts +0 -1129
  1217. package/src/policy.ts +0 -128
  1218. package/src/provider.ts +0 -113
  1219. package/src/ref.ts +0 -48
  1220. package/src/reporter.ts +0 -8
  1221. package/src/resource.ts +0 -140
  1222. package/src/runtime.ts +0 -152
  1223. package/src/schema.ts +0 -102
  1224. package/src/service.ts +0 -59
  1225. package/src/sha256.ts +0 -23
  1226. package/src/stack.ts +0 -116
  1227. package/src/stage.ts +0 -85
  1228. package/src/state.ts +0 -390
  1229. package/src/tags.ts +0 -98
  1230. package/src/test.ts +0 -172
  1231. package/src/todo.ts +0 -4
  1232. package/src/unknown.ts +0 -6
  1233. package/src/user.ts +0 -4
  1234. package/src/util.ts +0 -21
  1235. /package/src/{aws/arn.ts → AWS/Arn.ts} +0 -0
  1236. /package/src/{aws/dynamodb/expr.ts → AWS/DynamoDB/Expr.ts} +0 -0
  1237. /package/src/{assert-never.ts → Util/assert-never.ts} +0 -0
  1238. /package/src/{data.ts → Util/data.ts} +0 -0
  1239. /package/src/{type.ts → Util/type.ts} +0 -0
package/src/plan.ts DELETED
@@ -1,1129 +0,0 @@
1
- import * as Context from "effect/Context";
2
- import * as Data from "effect/Data";
3
- import * as Effect from "effect/Effect";
4
- import * as Layer from "effect/Layer";
5
- import { omit } from "effect/Struct";
6
- import { App } from "./app.ts";
7
- import type {
8
- AnyBinding,
9
- BindingDiffProps,
10
- BindingService,
11
- } from "./binding.ts";
12
- import type { Capability } from "./capability.ts";
13
- import type { Diff, NoopDiff, UpdateDiff } from "./diff.ts";
14
- import { InstanceId } from "./instance-id.ts";
15
- import * as Output from "./output.ts";
16
- import type { Instance } from "./policy.ts";
17
- import type { Provider } from "./provider.ts";
18
- import { getProviderByType, type ProviderService } from "./provider.ts";
19
- import type { AnyResource, Resource, ResourceTags } from "./resource.ts";
20
- import { isService, type IService, type Service } from "./service.ts";
21
- import {
22
- State,
23
- StateStoreError,
24
- type CreatedResourceState,
25
- type CreatingResourceState,
26
- type ReplacedResourceState,
27
- type ReplacingResourceState,
28
- type ResourceState,
29
- type UpdatedResourceState,
30
- type UpdatingReourceState,
31
- } from "./state.ts";
32
- import { asEffect } from "./util.ts";
33
-
34
- export type PlanError = never;
35
-
36
- export const isBindNode = (node: any): node is BindNode => {
37
- return (
38
- node &&
39
- typeof node === "object" &&
40
- (node.action === "attach" ||
41
- node.action === "detach" ||
42
- node.action === "noop")
43
- );
44
- };
45
-
46
- /**
47
- * A node in the plan that represents a binding operation acting on a resource.
48
- */
49
- export type BindNode<B extends AnyBinding = AnyBinding> =
50
- | Attach<B>
51
- | Reattach<B>
52
- | Detach<B>
53
- | NoopBind<B>;
54
-
55
- export type Attach<B extends AnyBinding = AnyBinding> = {
56
- action: "attach";
57
- binding: B;
58
- olds: BindNode | undefined;
59
- attr: B["attr"] | undefined;
60
- };
61
-
62
- export type Reattach<B extends AnyBinding = AnyBinding> = {
63
- action: "reattach";
64
- binding: B;
65
- olds: BindNode;
66
- attr: B["attr"];
67
- };
68
-
69
- export type Detach<B extends AnyBinding = AnyBinding> = {
70
- action: "detach";
71
- binding: B;
72
- attr: B["attr"] | undefined;
73
- };
74
-
75
- export type NoopBind<B extends AnyBinding = AnyBinding> = {
76
- action: "noop";
77
- binding: B;
78
- attr: B["attr"];
79
- };
80
-
81
- export const isCRUD = (node: any): node is CRUD => {
82
- return (
83
- node &&
84
- typeof node === "object" &&
85
- (node.action === "create" ||
86
- node.action === "update" ||
87
- node.action === "replace" ||
88
- node.action === "noop")
89
- );
90
- };
91
-
92
- /**
93
- * A node in the plan that represents a resource CRUD operation.
94
- */
95
- export type CRUD<R extends Resource = AnyResource> =
96
- | Create<R>
97
- | Update<R>
98
- | Delete<R>
99
- | Replace<R>
100
- | NoopUpdate<R>;
101
-
102
- export type Apply<R extends Resource = AnyResource> =
103
- | Create<R>
104
- | Update<R>
105
- | Replace<R>
106
- | NoopUpdate<R>;
107
-
108
- export interface BaseNode<R extends Resource = AnyResource> {
109
- resource: R;
110
- provider: ProviderService<R>;
111
- bindings: BindNode[];
112
- downstream: string[];
113
- }
114
-
115
- export interface Create<R extends Resource = AnyResource> extends BaseNode<R> {
116
- action: "create";
117
- props: any;
118
- state: CreatingResourceState | undefined;
119
- }
120
-
121
- export interface Update<R extends Resource = AnyResource> extends BaseNode<R> {
122
- action: "update";
123
- props: any;
124
- state:
125
- | CreatedResourceState
126
- | UpdatedResourceState
127
- | UpdatingReourceState
128
- // the props can change after creating the replacement resource,
129
- // so Apply needs to handle updates and then continue with cleaning up the replaced graph
130
- | ReplacedResourceState;
131
- }
132
-
133
- export interface Delete<R extends Resource = AnyResource> extends BaseNode<R> {
134
- action: "delete";
135
- // a resource can be deleted no matter what state it's in
136
- state: ResourceState;
137
- }
138
-
139
- export interface NoopUpdate<
140
- R extends Resource = AnyResource,
141
- > extends BaseNode<R> {
142
- action: "noop";
143
- state: CreatedResourceState | UpdatedResourceState;
144
- }
145
-
146
- export interface Replace<R extends Resource = AnyResource> extends BaseNode<R> {
147
- action: "replace";
148
- props: any;
149
- deleteFirst: boolean;
150
- state:
151
- | CreatingResourceState
152
- | CreatedResourceState
153
- | UpdatingReourceState
154
- | UpdatedResourceState
155
- | ReplacingResourceState
156
- | ReplacedResourceState;
157
- }
158
-
159
- export type ResourceGraph<Resources extends Service | Resource> = ToGraph<
160
- TraverseResources<Resources>
161
- >;
162
-
163
- export type TraverseResources<Resources extends Service | Resource> =
164
- | Resources
165
- | BoundResources<Resources>
166
- | TransitiveResources<Resources>;
167
-
168
- type ToGraph<Resources extends Service | Resource> = {
169
- [ID in Resources["id"]]: Apply<Extract<Resources, { id: ID }>>;
170
- };
171
-
172
- export type BoundResources<Resources extends Service | Resource> = NeverUnknown<
173
- Extract<
174
- Resources,
175
- IService
176
- >["props"]["bindings"]["capabilities"][number]["resource"]
177
- >;
178
-
179
- // finds transitive dependencies at most two levels deep
180
- // TODO(sam): figure out an efficient way to do arbitrary depth
181
- export type TransitiveResources<
182
- Resources extends Service | Resource,
183
- Found extends Service | Resource = never,
184
- > = Extract<
185
- | Found
186
- | {
187
- [prop in keyof Resources["props"]]: IsAny<
188
- Resources["props"][prop]
189
- > extends true
190
- ? Found
191
- : Resources["props"][prop] extends { kind: "alchemy/Policy" }
192
- ? Found
193
- : Resources["props"][prop] extends Output.Output<any, infer Src, any>
194
- ? Src extends Found
195
- ? Found
196
- : TransitiveResources<Src, Src | Found>
197
- : {
198
- [p in keyof Resources["props"][prop]]: IsAny<
199
- Resources["props"][prop][p]
200
- > extends true
201
- ? Found
202
- : Resources["props"][prop][p] extends Output.Output<
203
- any,
204
- infer Src,
205
- any
206
- >
207
- ? Src extends Found
208
- ? Found
209
- : string extends Src["id"]
210
- ? Found
211
- : TransitiveResources<Src, Src | Found>
212
- : Found;
213
- }[keyof Resources["props"][prop]];
214
- }[keyof Resources["props"]],
215
- Service | Resource
216
- >;
217
-
218
- export type Providers<Resources extends Service | Resource> =
219
- | ResourceProviders<Resources>
220
- | BindingTags<Resources>;
221
-
222
- export type ResourceProviders<Res extends Service | Resource> = Res extends any
223
- ? Provider<Extract<Res["base"], Service | Resource>>
224
- : never;
225
-
226
- export type BindingTags<Resources extends Service | Resource> = NeverUnknown<
227
- Extract<Resources, Service>["props"]["bindings"]["tags"][number]
228
- >;
229
-
230
- type NeverUnknown<T> = unknown extends T ? never : T;
231
-
232
- type IsAny<T> = 0 extends 1 & T ? true : false;
233
-
234
- export type DerivePlan<Resources extends Service | Resource> = {
235
- resources: {
236
- [ID in keyof ResourceGraph<Resources>]: ResourceGraph<Resources>[ID];
237
- };
238
- deletions: {
239
- [ID in string]: Delete<AnyResource>;
240
- };
241
- };
242
-
243
- export type IPlan = {
244
- resources: {
245
- [id in string]: Apply<any>;
246
- };
247
- deletions: {
248
- [id in string]?: Delete<Resource>;
249
- };
250
- };
251
-
252
- export type Plan<Resources extends Service | Resource> = Effect.Effect<
253
- DerivePlan<Resources>,
254
- | CannotReplacePartiallyReplacedResource
255
- | DeleteResourceHasDownstreamDependencies,
256
- Providers<Resources> | State
257
- >;
258
-
259
- export const plan = <const Resources extends (Service | Resource)[]>(
260
- ..._resources: Resources
261
- ): Plan<Instance<Resources[number]>> =>
262
- Effect.gen(function* () {
263
- const state = yield* State;
264
-
265
- const findResources = (
266
- resource: Service | Resource,
267
- visited: Set<string>,
268
- ): (Service | Resource)[] => {
269
- if (visited.has(resource.id)) {
270
- return [];
271
- }
272
- visited.add(resource.id);
273
- const upstream = Object.values(Output.upstreamAny(resource.props)) as (
274
- | Service
275
- | Resource
276
- )[];
277
- return [
278
- resource,
279
- ...upstream,
280
- ...upstream.flatMap((r) => findResources(r, visited)),
281
- ];
282
- };
283
- const resources = _resources
284
- .flatMap((r) => findResources(r, new Set()))
285
- .filter((r, i, arr) => arr.findIndex((r2) => r2.id === r.id) === i);
286
-
287
- // TODO(sam): rename terminology to Stack
288
- const app = yield* App;
289
-
290
- const resourceIds = yield* state.list({
291
- stack: app.name,
292
- stage: app.stage,
293
- });
294
- const oldResources = yield* Effect.all(
295
- resourceIds.map((id) =>
296
- state.get({ stack: app.name, stage: app.stage, resourceId: id }),
297
- ),
298
- { concurrency: "unbounded" },
299
- );
300
-
301
- type ResolveEffect<T> = Effect.Effect<T, ResolveErr, ResolveReq>;
302
- type ResolveErr = StateStoreError;
303
- type ResolveReq =
304
- | Context.TagClass<
305
- Provider<Resource<string, string, any, any>>,
306
- string,
307
- ProviderService<Resource<string, string, any, any>>
308
- >
309
- | State;
310
-
311
- const resolvedResources: Record<
312
- string,
313
- ResolveEffect<
314
- | {
315
- [attr in string]: any;
316
- }
317
- | undefined
318
- >
319
- > = {};
320
-
321
- const resolveResource = (
322
- resourceExpr: Output.ResourceExpr<any, any, any>,
323
- ) =>
324
- Effect.gen(function* () {
325
- return yield* (resolvedResources[resourceExpr.src.id] ??=
326
- yield* Effect.cached(
327
- Effect.gen(function* () {
328
- const resource = resourceExpr.src as Resource & {
329
- provider: ResourceTags<Resource<string, string, any, any>>;
330
- };
331
- const provider = yield* resource.provider.tag;
332
- const props = yield* resolveInput(resource.props);
333
- const oldState = yield* state.get({
334
- stack: app.name,
335
- stage: app.stage,
336
- resourceId: resource.id,
337
- });
338
-
339
- if (!oldState || oldState.status === "creating") {
340
- return resourceExpr;
341
- }
342
-
343
- const oldProps =
344
- oldState.status === "created" ||
345
- oldState.status === "updated" ||
346
- oldState.status === "replaced"
347
- ? // if we're in a stable state, then just use the props
348
- oldState.props
349
- : // if we failed to update or replace, compare with the last known stable props
350
- oldState.status === "updating" ||
351
- oldState.status === "replacing"
352
- ? oldState.old.props
353
- : // TODO(sam): it kinda doesn't make sense to diff with a "deleting" state
354
- oldState.props;
355
-
356
- const diff = yield* provider.diff
357
- ? provider
358
- .diff({
359
- id: resource.id,
360
- olds: oldProps,
361
- instanceId: oldState.instanceId,
362
- news: props,
363
- output: oldState.attr,
364
- })
365
- .pipe(
366
- Effect.provide(
367
- Layer.succeed(InstanceId, oldState.instanceId),
368
- ),
369
- )
370
- : Effect.succeed(undefined);
371
-
372
- const stables: string[] = [
373
- ...(provider.stables ?? []),
374
- ...(diff?.stables ?? []),
375
- ];
376
-
377
- const withStables = (output: any) =>
378
- stables.length > 0
379
- ? new Output.ResourceExpr(
380
- resourceExpr.src,
381
- Object.fromEntries(
382
- stables.map((stable) => [stable, output?.[stable]]),
383
- ),
384
- )
385
- : // if there are no stable properties, treat every property as changed
386
- resourceExpr;
387
-
388
- if (diff == null) {
389
- if (arePropsChanged(oldProps, props)) {
390
- // the props have changed but the provider did not provide any hints as to what is stable
391
- // so we must assume everything has changed
392
- return withStables(oldState?.attr);
393
- }
394
- } else if (diff.action === "update") {
395
- return withStables(oldState?.attr);
396
- } else if (diff.action === "replace") {
397
- return resourceExpr;
398
- }
399
- if (
400
- oldState.status === "created" ||
401
- oldState.status === "updated" ||
402
- oldState.status === "replaced"
403
- ) {
404
- // we can safely return the attributes if we know they have stabilized
405
- return oldState?.attr;
406
- } else {
407
- // we must assume the resource doesn't exist if it hasn't stabilized
408
- return resourceExpr;
409
- }
410
- }),
411
- ));
412
- });
413
-
414
- const resolveInput = (input: any): ResolveEffect<any> =>
415
- Effect.gen(function* () {
416
- if (!input) {
417
- return input;
418
- } else if (Output.isExpr(input)) {
419
- return yield* resolveOutput(input);
420
- } else if (Array.isArray(input)) {
421
- return yield* Effect.all(input.map(resolveInput), {
422
- concurrency: "unbounded",
423
- });
424
- } else if (typeof input === "object") {
425
- return Object.fromEntries(
426
- yield* Effect.all(
427
- Object.entries(input).map(([key, value]) =>
428
- resolveInput(value).pipe(Effect.map((value) => [key, value])),
429
- ),
430
- { concurrency: "unbounded" },
431
- ),
432
- );
433
- }
434
- return input;
435
- });
436
-
437
- const resolveOutput = (expr: Output.Expr<any>): ResolveEffect<any> =>
438
- Effect.gen(function* () {
439
- if (Output.isResourceExpr(expr)) {
440
- return yield* resolveResource(expr);
441
- } else if (Output.isPropExpr(expr)) {
442
- const upstream = yield* resolveOutput(expr.expr);
443
- return upstream?.[expr.identifier];
444
- } else if (Output.isApplyExpr(expr)) {
445
- const upstream = yield* resolveOutput(expr.expr);
446
- return Output.hasOutputs(upstream) ? expr : expr.f(upstream);
447
- } else if (Output.isEffectExpr(expr)) {
448
- const upstream = yield* resolveOutput(expr.expr);
449
- return Output.hasOutputs(upstream) ? expr : yield* expr.f(upstream);
450
- } else if (Output.isAllExpr(expr)) {
451
- return yield* Effect.all(expr.outs.map(resolveOutput), {
452
- concurrency: "unbounded",
453
- });
454
- }
455
- return yield* Effect.die(new Error("Not implemented yet"));
456
- });
457
-
458
- // map of resource ID -> its downstream dependencies (resources that depend on it)
459
- const oldDownstreamDependencies: {
460
- [resourceId: string]: string[];
461
- } = Object.fromEntries(
462
- oldResources
463
- .filter((resource) => !!resource)
464
- .map((resource) => [resource.logicalId, resource.downstream]),
465
- );
466
-
467
- const newUpstreamDependencies: {
468
- [resourceId: string]: string[];
469
- } = Object.fromEntries(
470
- resources.map((resource) => [
471
- resource.id,
472
- [
473
- ...Object.values(Output.upstreamAny(resource.props)).map((r) => r.id),
474
- ...(isService(resource)
475
- ? resource.props.bindings.capabilities.map((cap) => cap.resource.id)
476
- : []),
477
- ],
478
- ]),
479
- );
480
-
481
- const newDownstreamDependencies: {
482
- [resourceId: string]: string[];
483
- } = Object.fromEntries(
484
- resources.map((resource) => [
485
- resource.id,
486
- Object.entries(newUpstreamDependencies)
487
- .filter(([_, downstream]) => downstream.includes(resource.id))
488
- .map(([id]) => id),
489
- ]),
490
- );
491
-
492
- const resourceGraph = Object.fromEntries(
493
- (yield* Effect.all(
494
- resources
495
- .flatMap((resource) => [
496
- ...(isService(resource)
497
- ? resource.props.bindings.capabilities.map(
498
- (cap: Capability) => cap.resource as Resource,
499
- )
500
- : []),
501
- ...Object.values(Output.upstreamAny(resource.props)),
502
- resource,
503
- ])
504
- .filter(
505
- (node, i, arr) => arr.findIndex((n) => n.id === node.id) === i,
506
- )
507
- .map(
508
- Effect.fn(function* (node) {
509
- const id = node.id;
510
- const resource = node as Resource & {
511
- provider: ResourceTags<Resource<string, string, any, any>>;
512
- };
513
- const news = yield* resolveInput(resource.props);
514
-
515
- const oldState = yield* state.get({
516
- stack: app.name,
517
- stage: app.stage,
518
- resourceId: id,
519
- });
520
- const provider = yield* resource.provider.tag;
521
-
522
- const downstream = newDownstreamDependencies[id] ?? [];
523
-
524
- const bindings = isService(node)
525
- ? yield* diffBindings({
526
- oldState,
527
- bindings: (
528
- node.props.bindings as unknown as {
529
- bindings: AnyBinding[];
530
- }
531
- ).bindings,
532
- target: {
533
- id: node.id,
534
- props: node.props,
535
- // TODO(sam): pick the right ones based on old status
536
- oldAttr: oldState?.attr,
537
- oldProps: oldState?.props,
538
- },
539
- })
540
- : []; // TODO(sam): return undefined instead of empty array
541
-
542
- const Node = <T extends Apply>(
543
- node: Omit<
544
- T,
545
- "provider" | "resource" | "bindings" | "downstream"
546
- >,
547
- ) =>
548
- ({
549
- ...node,
550
- provider,
551
- resource,
552
- bindings,
553
- downstream,
554
- }) as any as T;
555
-
556
- // handle empty and intermediate (non-final) states:
557
- if (oldState === undefined) {
558
- return Node<Create<Resource>>({
559
- action: "create",
560
- props: news,
561
- state: oldState,
562
- });
563
- } else if (
564
- oldState.status === "creating" &&
565
- oldState.attr === undefined
566
- ) {
567
- if (provider.read) {
568
- const attr = yield* provider.read({
569
- id,
570
- instanceId: oldState.instanceId,
571
- olds: oldState.props,
572
- output: oldState.attr,
573
- bindings,
574
- });
575
- if (attr) {
576
- return Node<Create<Resource>>({
577
- action: "create",
578
- props: news,
579
- state: { ...oldState, attr },
580
- });
581
- }
582
- }
583
- }
584
-
585
- // TODO(sam): is this correct for all possible states a resource can be in?
586
- const oldProps = oldState.props;
587
-
588
- const diff = yield* asEffect(
589
- provider.diff
590
- ? provider
591
- .diff({
592
- id,
593
- olds: oldProps,
594
- instanceId: oldState.instanceId,
595
- output: oldState.attr,
596
- news,
597
- })
598
- .pipe(
599
- Effect.provide(
600
- Layer.succeed(InstanceId, oldState.instanceId),
601
- ),
602
- )
603
- : undefined,
604
- ).pipe(
605
- Effect.map(
606
- (diff) =>
607
- diff ??
608
- ({
609
- action: arePropsChanged(oldProps, news)
610
- ? "update"
611
- : "noop",
612
- } as UpdateDiff | NoopDiff),
613
- ),
614
- );
615
-
616
- if (oldState.status === "creating") {
617
- if (diff.action === "noop") {
618
- // we're in the creating state and props are un-changed
619
- // let's just continue where we left off
620
- return Node<Create<Resource>>({
621
- action: "create",
622
- props: news,
623
- state: oldState,
624
- });
625
- } else if (diff.action === "update") {
626
- // props have changed in a way that is updatable
627
- // again, just continue with the create
628
- // TODO(sam): should we maybe try an update instead?
629
- return Node<Create<Resource>>({
630
- action: "create",
631
- props: news,
632
- state: oldState,
633
- });
634
- } else {
635
- // props have changed in an incompatible way
636
- // because it's possible that an un-updatable resource has already been created
637
- // we must use a replace step to create a new one and delete the potential old one
638
- return Node<Replace<Resource>>({
639
- action: "replace",
640
- props: news,
641
- deleteFirst: diff.deleteFirst ?? false,
642
- state: oldState,
643
- });
644
- }
645
- } else if (oldState.status === "updating") {
646
- // we started to update a resource but did not complete
647
- if (diff.action === "update" || diff.action === "noop") {
648
- return Node<Update<Resource>>({
649
- action: "update",
650
- props: news,
651
- state: oldState,
652
- });
653
- } else {
654
- // we started to update a resource but now believe we should replace it
655
- return Node<Replace<Resource>>({
656
- action: "replace",
657
- deleteFirst: diff.deleteFirst ?? false,
658
- props: news,
659
- // TODO(sam): can Apply handle replacements when the oldState is UpdatingResourceState?
660
- // -> or is there we do a provider.read to try and reconcile back to UpdatedResourceState?
661
- state: oldState,
662
- });
663
- }
664
- } else if (oldState.status === "replacing") {
665
- // resource replacement started, but the replacement may or may not have been created
666
- if (diff.action === "noop") {
667
- // this is the stable case - noop means just continue with the replacement
668
- return Node<Replace<Resource>>({
669
- action: "replace",
670
- deleteFirst: oldState.deleteFirst,
671
- props: news,
672
- state: oldState,
673
- });
674
- } else if (diff.action === "update") {
675
- // potential problem here - the props have changed since we tried to replace,
676
- // but not enough to trigger another replacement. the resource provider should
677
- // be designed as idempotent to converge to the right state when creating the new resource
678
- // the newly generated instanceId is intended to assist with this
679
- return Node<Replace<Resource>>({
680
- action: "replace",
681
- deleteFirst: oldState.deleteFirst,
682
- props: news,
683
- state: oldState,
684
- });
685
- } else {
686
- // ah shit, so we tried to replace the resource and then crashed
687
- // now the props have changed again in such a way that the (maybe, maybe not)
688
- // created resource should also be replaced
689
-
690
- // TODO(sam): what should we do?
691
- // 1. trigger a deletion of the potentially created resource
692
- // 2. expect the resource provider to handle it idempotently?
693
- // -> i don't think this case is fair to put on the resource provider
694
- // because if the resource was created, it's in a state that can't be updated
695
- return yield* Effect.fail(
696
- new CannotReplacePartiallyReplacedResource(id),
697
- );
698
- }
699
- } else if (oldState.status === "replaced") {
700
- // replacement has been created but we're not done cleaning up the old state
701
- if (diff.action === "noop") {
702
- // this is the stable case - noop means just continue cleaning up the replacement
703
- return Node<Replace<Resource>>({
704
- action: "replace",
705
- deleteFirst: oldState.deleteFirst,
706
- props: news,
707
- state: oldState,
708
- });
709
- } else if (diff.action === "update") {
710
- // the replacement has been created but now also needs to be updated
711
- // the resource provider should:
712
- // 1. Update the newly created replacement resource
713
- // 2. Then proceed as normal to delete the replaced resources (after all downstream references are updated)
714
- return Node<Update<Resource>>({
715
- action: "update",
716
- props: news,
717
- state: oldState,
718
- });
719
- } else {
720
- // the replacement has been created but now it needs to be replaced
721
- // this is the worst-case scenario because downstream resources
722
- // could have been been updated to point to the replaced resources
723
- return yield* Effect.fail(
724
- new CannotReplacePartiallyReplacedResource(id),
725
- );
726
- }
727
- } else if (oldState.status === "deleting") {
728
- if (diff.action === "noop" || diff.action === "update") {
729
- // we're in a partially deleted state, it is unclear whether it was or was not deleted
730
- // it should be safe to re-create it with the same instanceId?
731
- return Node<Create<Resource>>({
732
- action: "create",
733
- props: news,
734
- state: {
735
- ...oldState,
736
- status: "creating",
737
- props: news,
738
- },
739
- });
740
- } else {
741
- return yield* Effect.fail(
742
- new CannotReplacePartiallyReplacedResource(id),
743
- );
744
- }
745
- } else if (diff.action === "update") {
746
- return Node<Update<Resource>>({
747
- action: "update",
748
- props: news,
749
- state: oldState,
750
- });
751
- } else if (diff.action === "replace") {
752
- return Node<Replace<Resource>>({
753
- action: "replace",
754
- props: news,
755
- state: oldState,
756
- deleteFirst: diff?.deleteFirst ?? false,
757
- });
758
- } else {
759
- return Node<NoopUpdate<Resource>>({
760
- action: "noop",
761
- state: oldState,
762
- });
763
- }
764
- }),
765
- ),
766
- { concurrency: "unbounded" },
767
- )).map((update) => [update.resource.id, update]),
768
- ) as IPlan["resources"];
769
-
770
- const deletions = Object.fromEntries(
771
- (yield* Effect.all(
772
- (yield* state.list({ stack: app.name, stage: app.stage })).map(
773
- Effect.fn(function* (id) {
774
- if (id in resourceGraph) {
775
- return;
776
- }
777
- const oldState = yield* state.get({
778
- stack: app.name,
779
- stage: app.stage,
780
- resourceId: id,
781
- });
782
- let attr: any = oldState?.attr;
783
- if (oldState) {
784
- const provider = yield* getProviderByType(oldState.resourceType);
785
- if (oldState.attr === undefined) {
786
- if (provider.read) {
787
- attr = yield* provider
788
- .read({
789
- id,
790
- instanceId: oldState.instanceId,
791
- olds: oldState.props as never,
792
- output: oldState.attr as never,
793
- bindings: oldState.bindings ?? [],
794
- })
795
- .pipe(
796
- Effect.provide(
797
- Layer.succeed(InstanceId, oldState.instanceId),
798
- ),
799
- );
800
- }
801
- }
802
- return [
803
- id,
804
- {
805
- action: "delete",
806
- state: { ...oldState, attr },
807
- // // TODO(sam): Support Detach Bindings
808
- bindings: [],
809
- provider,
810
- resource: {
811
- id: id,
812
- type: oldState.resourceType,
813
- attr,
814
- props: oldState.props,
815
- } as Resource,
816
- // TODO(sam): is it enough to just pass through oldState?
817
- downstream: oldDownstreamDependencies[id] ?? [],
818
- } satisfies Delete<Resource>,
819
- ] as const;
820
- }
821
- }),
822
- ),
823
- { concurrency: "unbounded" },
824
- )).filter((v) => !!v),
825
- );
826
-
827
- for (const [resourceId, deletion] of Object.entries(deletions)) {
828
- const dependencies = deletion.state.downstream.filter(
829
- (d) => d in resourceGraph,
830
- );
831
- if (dependencies.length > 0) {
832
- return yield* Effect.fail(
833
- new DeleteResourceHasDownstreamDependencies({
834
- message: `Resource ${resourceId} has downstream dependencies`,
835
- resourceId,
836
- dependencies,
837
- }),
838
- );
839
- }
840
- }
841
-
842
- return {
843
- resources: resourceGraph,
844
- deletions,
845
- } satisfies IPlan as IPlan;
846
- }) as any;
847
-
848
- export class CannotReplacePartiallyReplacedResource extends Data.TaggedError(
849
- "CannotReplacePartiallyReplacedResource",
850
- )<{
851
- message: string;
852
- logicalId: string;
853
- }> {
854
- constructor(logicalId: string) {
855
- super({
856
- message:
857
- `Resource '${logicalId}' did not finish being replaced in a previous deployment ` +
858
- `and is expected to be replaced again in this deployment. ` +
859
- `You should revert its properties and try again after a successful deployment.`,
860
- logicalId,
861
- });
862
- }
863
- }
864
-
865
- export class DeleteResourceHasDownstreamDependencies extends Data.TaggedError(
866
- "DeleteResourceHasDownstreamDependencies",
867
- )<{
868
- message: string;
869
- resourceId: string;
870
- dependencies: string[];
871
- }> {}
872
-
873
- const arePropsChanged = <R extends Resource>(
874
- oldProps: R["props"] | undefined,
875
- newProps: R["props"],
876
- ) => {
877
- return (
878
- Output.hasOutputs(newProps) ||
879
- JSON.stringify(omit((oldProps ?? {}) as any, "bindings")) !==
880
- JSON.stringify(omit((newProps ?? {}) as any, "bindings"))
881
- );
882
- };
883
-
884
- const diffBindings = Effect.fn(function* ({
885
- oldState,
886
- bindings,
887
- target,
888
- }: {
889
- oldState: ResourceState | undefined;
890
- bindings: AnyBinding[];
891
- target: BindingDiffProps["target"];
892
- }) {
893
- // const actions: BindNode[] = [];
894
- const oldBindings = oldState?.bindings;
895
- // const oldSids = new Set(
896
- // oldBindings?.map(({ binding }) => binding.capability.sid),
897
- // );
898
-
899
- const diffBinding: (
900
- binding: AnyBinding,
901
- ) => Effect.Effect<BindNode, StateStoreError, State> = Effect.fn(
902
- function* (binding) {
903
- const cap = binding.capability;
904
- const sid = cap.sid ?? `${cap.action}:${cap.resource.ID}`;
905
- // Find potential oldBinding for this sid
906
- const oldBinding = oldBindings?.find(
907
- ({ binding }) => binding.capability.sid === sid,
908
- );
909
- if (!oldBinding) {
910
- return {
911
- action: "attach",
912
- binding,
913
- attr: undefined,
914
- olds: undefined,
915
- } satisfies Attach<AnyBinding>;
916
- }
917
-
918
- const diff = yield* isBindingDiff({
919
- target,
920
- oldBinding,
921
- newBinding: binding,
922
- });
923
- // if (diff === false) {
924
- // } else if (diff === true) {
925
- // return {
926
- // action: "attach",
927
- // binding,
928
- // olds: oldBinding,
929
- // } satisfies Attach<AnyBinding>;
930
- // }
931
- if (diff.action === "replace") {
932
- return yield* Effect.die(
933
- new Error("Replace binding not yet supported"),
934
- );
935
- // TODO(sam): implement support for replacing bindings
936
- // return {
937
- // action: "replace",
938
- // binding,
939
- // olds: oldBinding,
940
- // };
941
- } else if (diff?.action === "update") {
942
- return {
943
- action: "reattach",
944
- binding,
945
- olds: oldBinding,
946
- attr: oldBinding.attr,
947
- } satisfies Reattach<AnyBinding>;
948
- }
949
- return {
950
- action: "noop",
951
- binding,
952
- attr: oldBinding.attr,
953
- } satisfies NoopBind<AnyBinding>;
954
- },
955
- );
956
-
957
- return (yield* Effect.all(bindings.map(diffBinding), {
958
- concurrency: "unbounded",
959
- })).filter((action): action is BindNode => action !== null);
960
- });
961
-
962
- const isBindingDiff = Effect.fn(function* ({
963
- target,
964
- oldBinding: { binding: oldBinding },
965
- newBinding,
966
- }: {
967
- // TODO(sam): support binding to other Resources
968
- target: BindingDiffProps["target"];
969
- oldBinding: BindNode;
970
- newBinding: AnyBinding;
971
- }) {
972
- const oldCap = oldBinding.capability;
973
- const newCap = newBinding.capability;
974
- if (
975
- // if the binding provider has changed
976
- oldBinding.tag !== newBinding.tag ||
977
- // if it points to a totally different resource, we should replace
978
- oldCap?.resource?.id !== newCap?.resource?.id ||
979
- // if it is a different action
980
- oldCap.action !== newCap.action
981
- ) {
982
- // then we must replace (we need to detach and attach with different bindings or to different resources)
983
- return {
984
- action: "replace",
985
- } satisfies Diff;
986
- }
987
-
988
- const binding = newBinding as AnyBinding & {
989
- // smuggled property (because it interacts poorly with inference)
990
- Tag: Context.Tag<never, BindingService>;
991
- };
992
- const provider = yield* binding.Tag;
993
- if (provider.diff) {
994
- const state = yield* State;
995
- const oldState = yield* state.get(oldCap.resource.id);
996
- if (oldState) {
997
- const diff = yield* provider
998
- .diff({
999
- source: {
1000
- id: oldCap.resource.id,
1001
- props: newCap.resource.props,
1002
- oldProps: oldState?.props,
1003
- oldAttr: oldState?.attr,
1004
- },
1005
- props: newBinding.props,
1006
- attr: oldBinding.attr,
1007
- target,
1008
- })
1009
- .pipe(Effect.provide(Layer.succeed(InstanceId, oldState.instanceId)));
1010
-
1011
- if (diff?.action === "update" || diff?.action === "replace") {
1012
- return diff;
1013
- }
1014
- }
1015
- }
1016
- return {
1017
- action:
1018
- oldBinding.capability.action !== newBinding.capability.action ||
1019
- oldBinding.capability?.resource?.id !==
1020
- newBinding.capability?.resource?.id
1021
- ? "update"
1022
- : "noop",
1023
- } as const;
1024
- });
1025
- // TODO(sam): compare props
1026
- // oldBinding.props !== newBinding.props;
1027
-
1028
- /**
1029
- * Print a plan in a human-readable format that shows the graph topology.
1030
- */
1031
- export const printPlan = (plan: IPlan): string => {
1032
- const lines: string[] = [];
1033
- const allNodes = { ...plan.resources, ...plan.deletions };
1034
-
1035
- // Build reverse mapping: upstream -> downstream
1036
- const upstreamMap: Record<string, string[]> = {};
1037
- for (const [id] of Object.entries(allNodes)) {
1038
- upstreamMap[id] = [];
1039
- }
1040
- for (const [id, node] of Object.entries(allNodes)) {
1041
- if (!node) continue;
1042
- for (const downstreamId of node.state?.downstream ?? []) {
1043
- if (upstreamMap[downstreamId]) {
1044
- upstreamMap[downstreamId].push(id);
1045
- }
1046
- }
1047
- }
1048
-
1049
- // Action symbols
1050
- const actionSymbol = (action: string) => {
1051
- switch (action) {
1052
- case "create":
1053
- return "+";
1054
- case "update":
1055
- return "~";
1056
- case "delete":
1057
- return "-";
1058
- case "replace":
1059
- return "±";
1060
- case "noop":
1061
- return "=";
1062
- default:
1063
- return "?";
1064
- }
1065
- };
1066
-
1067
- // Print header
1068
- lines.push(
1069
- "╔════════════════════════════════════════════════════════════════╗",
1070
- );
1071
- lines.push(
1072
- "║ PLAN ║",
1073
- );
1074
- lines.push(
1075
- "╠════════════════════════════════════════════════════════════════╣",
1076
- );
1077
- lines.push(
1078
- "║ Legend: + create, ~ update, - delete, ± replace, = noop ║",
1079
- );
1080
- lines.push(
1081
- "╚════════════════════════════════════════════════════════════════╝",
1082
- );
1083
- lines.push("");
1084
-
1085
- // Print resources section
1086
- lines.push(
1087
- "┌─ Resources ────────────────────────────────────────────────────┐",
1088
- );
1089
- const resourceIds = Object.keys(plan.resources).sort();
1090
- for (const id of resourceIds) {
1091
- const node = plan.resources[id];
1092
- const symbol = actionSymbol(node.action);
1093
- const type = node.resource?.type ?? "unknown";
1094
- const downstream = node.state?.downstream?.length
1095
- ? ` → [${node.state?.downstream.join(", ")}]`
1096
- : "";
1097
- lines.push(`│ [${symbol}] ${id} (${type})${downstream}`);
1098
- }
1099
- if (resourceIds.length === 0) {
1100
- lines.push("│ (none)");
1101
- }
1102
- lines.push(
1103
- "└────────────────────────────────────────────────────────────────┘",
1104
- );
1105
- lines.push("");
1106
-
1107
- // Print deletions section
1108
- lines.push(
1109
- "┌─ Deletions ────────────────────────────────────────────────────┐",
1110
- );
1111
- const deletionIds = Object.keys(plan.deletions).sort();
1112
- for (const id of deletionIds) {
1113
- const node = plan.deletions[id]!;
1114
- const type = node.resource?.type ?? "unknown";
1115
- const downstream = node.state.downstream?.length
1116
- ? ` → [${node.state.downstream.join(", ")}]`
1117
- : "";
1118
- lines.push(`│ [-] ${id} (${type})${downstream}`);
1119
- }
1120
- if (deletionIds.length === 0) {
1121
- lines.push("│ (none)");
1122
- }
1123
- lines.push(
1124
- "└────────────────────────────────────────────────────────────────┘",
1125
- );
1126
- lines.push("");
1127
-
1128
- return lines.join("\n");
1129
- };