alchemy 2.0.0-beta.42 → 2.0.0-beta.44

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 (712) hide show
  1. package/bin/cli.js +18 -5
  2. package/bin/exec.js +317 -242
  3. package/bin/exec.js.map +1 -1
  4. package/lib/AWS/CloudWatch/DescribeAlarmContributors.d.ts +1 -1
  5. package/lib/AWS/CloudWatch/DescribeAlarmContributors.d.ts.map +1 -1
  6. package/lib/AWS/CloudWatch/DescribeAlarmHistory.d.ts +1 -1
  7. package/lib/AWS/CloudWatch/DescribeAlarmHistory.d.ts.map +1 -1
  8. package/lib/AWS/CloudWatch/DescribeAlarms.d.ts +1 -1
  9. package/lib/AWS/CloudWatch/DescribeAlarms.d.ts.map +1 -1
  10. package/lib/AWS/CloudWatch/DescribeAlarmsForMetric.d.ts +1 -1
  11. package/lib/AWS/CloudWatch/DescribeAlarmsForMetric.d.ts.map +1 -1
  12. package/lib/AWS/CloudWatch/DescribeAnomalyDetectors.d.ts +1 -1
  13. package/lib/AWS/CloudWatch/DescribeAnomalyDetectors.d.ts.map +1 -1
  14. package/lib/AWS/CloudWatch/DescribeInsightRules.d.ts +1 -1
  15. package/lib/AWS/CloudWatch/DescribeInsightRules.d.ts.map +1 -1
  16. package/lib/AWS/CloudWatch/DisableAlarmActions.d.ts +1 -1
  17. package/lib/AWS/CloudWatch/DisableAlarmActions.d.ts.map +1 -1
  18. package/lib/AWS/CloudWatch/DisableInsightRules.d.ts +1 -1
  19. package/lib/AWS/CloudWatch/DisableInsightRules.d.ts.map +1 -1
  20. package/lib/AWS/CloudWatch/EnableAlarmActions.d.ts +1 -1
  21. package/lib/AWS/CloudWatch/EnableAlarmActions.d.ts.map +1 -1
  22. package/lib/AWS/CloudWatch/GetAlarmMuteRule.d.ts +1 -1
  23. package/lib/AWS/CloudWatch/GetAlarmMuteRule.d.ts.map +1 -1
  24. package/lib/AWS/CloudWatch/GetDashboard.d.ts +1 -1
  25. package/lib/AWS/CloudWatch/GetDashboard.d.ts.map +1 -1
  26. package/lib/AWS/CloudWatch/GetInsightRuleReport.d.ts +1 -1
  27. package/lib/AWS/CloudWatch/GetInsightRuleReport.d.ts.map +1 -1
  28. package/lib/AWS/CloudWatch/GetMetricData.d.ts +1 -1
  29. package/lib/AWS/CloudWatch/GetMetricData.d.ts.map +1 -1
  30. package/lib/AWS/CloudWatch/GetMetricStatistics.d.ts +1 -1
  31. package/lib/AWS/CloudWatch/GetMetricStatistics.d.ts.map +1 -1
  32. package/lib/AWS/CloudWatch/GetMetricStream.d.ts +1 -1
  33. package/lib/AWS/CloudWatch/GetMetricStream.d.ts.map +1 -1
  34. package/lib/AWS/CloudWatch/GetMetricWidgetImage.d.ts +1 -1
  35. package/lib/AWS/CloudWatch/GetMetricWidgetImage.d.ts.map +1 -1
  36. package/lib/AWS/CloudWatch/ListAlarmMuteRules.d.ts +1 -1
  37. package/lib/AWS/CloudWatch/ListAlarmMuteRules.d.ts.map +1 -1
  38. package/lib/AWS/CloudWatch/ListDashboards.d.ts +1 -1
  39. package/lib/AWS/CloudWatch/ListDashboards.d.ts.map +1 -1
  40. package/lib/AWS/CloudWatch/ListManagedInsightRules.d.ts +1 -1
  41. package/lib/AWS/CloudWatch/ListManagedInsightRules.d.ts.map +1 -1
  42. package/lib/AWS/CloudWatch/ListMetricStreams.d.ts +1 -1
  43. package/lib/AWS/CloudWatch/ListMetricStreams.d.ts.map +1 -1
  44. package/lib/AWS/CloudWatch/ListMetrics.d.ts +1 -1
  45. package/lib/AWS/CloudWatch/ListMetrics.d.ts.map +1 -1
  46. package/lib/AWS/CloudWatch/ListTagsForResource.d.ts +1 -1
  47. package/lib/AWS/CloudWatch/ListTagsForResource.d.ts.map +1 -1
  48. package/lib/AWS/CloudWatch/PutMetricData.d.ts +1 -1
  49. package/lib/AWS/CloudWatch/PutMetricData.d.ts.map +1 -1
  50. package/lib/AWS/CloudWatch/SetAlarmState.d.ts +1 -1
  51. package/lib/AWS/CloudWatch/SetAlarmState.d.ts.map +1 -1
  52. package/lib/AWS/DynamoDB/BatchExecuteStatement.d.ts +1 -1
  53. package/lib/AWS/DynamoDB/BatchExecuteStatement.d.ts.map +1 -1
  54. package/lib/AWS/DynamoDB/BatchGetItem.d.ts +1 -1
  55. package/lib/AWS/DynamoDB/BatchGetItem.d.ts.map +1 -1
  56. package/lib/AWS/DynamoDB/BatchWriteItem.d.ts +1 -1
  57. package/lib/AWS/DynamoDB/BatchWriteItem.d.ts.map +1 -1
  58. package/lib/AWS/DynamoDB/DeleteItem.d.ts +1 -1
  59. package/lib/AWS/DynamoDB/DeleteItem.d.ts.map +1 -1
  60. package/lib/AWS/DynamoDB/DescribeTable.d.ts +1 -1
  61. package/lib/AWS/DynamoDB/DescribeTable.d.ts.map +1 -1
  62. package/lib/AWS/DynamoDB/DescribeTimeToLive.d.ts +1 -1
  63. package/lib/AWS/DynamoDB/DescribeTimeToLive.d.ts.map +1 -1
  64. package/lib/AWS/DynamoDB/ExecuteStatement.d.ts +1 -1
  65. package/lib/AWS/DynamoDB/ExecuteStatement.d.ts.map +1 -1
  66. package/lib/AWS/DynamoDB/ExecuteTransaction.d.ts +1 -1
  67. package/lib/AWS/DynamoDB/ExecuteTransaction.d.ts.map +1 -1
  68. package/lib/AWS/DynamoDB/GetItem.d.ts +1 -1
  69. package/lib/AWS/DynamoDB/GetItem.d.ts.map +1 -1
  70. package/lib/AWS/DynamoDB/ListTables.d.ts +1 -1
  71. package/lib/AWS/DynamoDB/ListTables.d.ts.map +1 -1
  72. package/lib/AWS/DynamoDB/ListTagsOfResource.d.ts +1 -1
  73. package/lib/AWS/DynamoDB/ListTagsOfResource.d.ts.map +1 -1
  74. package/lib/AWS/DynamoDB/PutItem.d.ts +1 -1
  75. package/lib/AWS/DynamoDB/PutItem.d.ts.map +1 -1
  76. package/lib/AWS/DynamoDB/Query.d.ts +1 -1
  77. package/lib/AWS/DynamoDB/Query.d.ts.map +1 -1
  78. package/lib/AWS/DynamoDB/RestoreTableToPointInTime.d.ts +1 -1
  79. package/lib/AWS/DynamoDB/RestoreTableToPointInTime.d.ts.map +1 -1
  80. package/lib/AWS/DynamoDB/Scan.d.ts +1 -1
  81. package/lib/AWS/DynamoDB/Scan.d.ts.map +1 -1
  82. package/lib/AWS/DynamoDB/TransactGetItems.d.ts +1 -1
  83. package/lib/AWS/DynamoDB/TransactGetItems.d.ts.map +1 -1
  84. package/lib/AWS/DynamoDB/TransactWriteItems.d.ts +1 -1
  85. package/lib/AWS/DynamoDB/TransactWriteItems.d.ts.map +1 -1
  86. package/lib/AWS/DynamoDB/UpdateItem.d.ts +1 -1
  87. package/lib/AWS/DynamoDB/UpdateItem.d.ts.map +1 -1
  88. package/lib/AWS/DynamoDB/UpdateTimeToLive.d.ts +1 -1
  89. package/lib/AWS/DynamoDB/UpdateTimeToLive.d.ts.map +1 -1
  90. package/lib/AWS/ECS/DescribeTasks.d.ts +1 -1
  91. package/lib/AWS/ECS/DescribeTasks.d.ts.map +1 -1
  92. package/lib/AWS/ECS/ListTasks.d.ts +1 -1
  93. package/lib/AWS/ECS/ListTasks.d.ts.map +1 -1
  94. package/lib/AWS/ECS/RunTask.d.ts +1 -1
  95. package/lib/AWS/ECS/RunTask.d.ts.map +1 -1
  96. package/lib/AWS/ECS/StopTask.d.ts +1 -1
  97. package/lib/AWS/ECS/StopTask.d.ts.map +1 -1
  98. package/lib/AWS/EventBridge/DescribeEventBus.d.ts +1 -1
  99. package/lib/AWS/EventBridge/DescribeEventBus.d.ts.map +1 -1
  100. package/lib/AWS/EventBridge/DescribeRule.d.ts +1 -1
  101. package/lib/AWS/EventBridge/DescribeRule.d.ts.map +1 -1
  102. package/lib/AWS/EventBridge/EventSource.d.ts +2 -2
  103. package/lib/AWS/EventBridge/ListEventBuses.d.ts +1 -1
  104. package/lib/AWS/EventBridge/ListEventBuses.d.ts.map +1 -1
  105. package/lib/AWS/EventBridge/ListRules.d.ts +1 -1
  106. package/lib/AWS/EventBridge/ListRules.d.ts.map +1 -1
  107. package/lib/AWS/EventBridge/ListTargetsByRule.d.ts +1 -1
  108. package/lib/AWS/EventBridge/ListTargetsByRule.d.ts.map +1 -1
  109. package/lib/AWS/EventBridge/PutEvents.d.ts +1 -1
  110. package/lib/AWS/EventBridge/PutEvents.d.ts.map +1 -1
  111. package/lib/AWS/EventBridge/TestEventPattern.d.ts +1 -1
  112. package/lib/AWS/EventBridge/TestEventPattern.d.ts.map +1 -1
  113. package/lib/AWS/EventBridge/ToLambda.d.ts +1 -1
  114. package/lib/AWS/EventBridge/ToLambda.d.ts.map +1 -1
  115. package/lib/AWS/EventBridge/ToQueue.d.ts +1 -1
  116. package/lib/AWS/EventBridge/ToQueue.d.ts.map +1 -1
  117. package/lib/AWS/Kinesis/DescribeAccountSettings.d.ts +1 -1
  118. package/lib/AWS/Kinesis/DescribeAccountSettings.d.ts.map +1 -1
  119. package/lib/AWS/Kinesis/DescribeLimits.d.ts +1 -1
  120. package/lib/AWS/Kinesis/DescribeLimits.d.ts.map +1 -1
  121. package/lib/AWS/Kinesis/DescribeStream.d.ts +1 -1
  122. package/lib/AWS/Kinesis/DescribeStream.d.ts.map +1 -1
  123. package/lib/AWS/Kinesis/DescribeStreamConsumer.d.ts +1 -1
  124. package/lib/AWS/Kinesis/DescribeStreamConsumer.d.ts.map +1 -1
  125. package/lib/AWS/Kinesis/DescribeStreamSummary.d.ts +1 -1
  126. package/lib/AWS/Kinesis/DescribeStreamSummary.d.ts.map +1 -1
  127. package/lib/AWS/Kinesis/GetRecords.d.ts +1 -1
  128. package/lib/AWS/Kinesis/GetRecords.d.ts.map +1 -1
  129. package/lib/AWS/Kinesis/GetResourcePolicy.d.ts +1 -1
  130. package/lib/AWS/Kinesis/GetResourcePolicy.d.ts.map +1 -1
  131. package/lib/AWS/Kinesis/GetShardIterator.d.ts +1 -1
  132. package/lib/AWS/Kinesis/GetShardIterator.d.ts.map +1 -1
  133. package/lib/AWS/Kinesis/ListShards.d.ts +1 -1
  134. package/lib/AWS/Kinesis/ListShards.d.ts.map +1 -1
  135. package/lib/AWS/Kinesis/ListStreamConsumers.d.ts +1 -1
  136. package/lib/AWS/Kinesis/ListStreamConsumers.d.ts.map +1 -1
  137. package/lib/AWS/Kinesis/ListStreams.d.ts +1 -1
  138. package/lib/AWS/Kinesis/ListStreams.d.ts.map +1 -1
  139. package/lib/AWS/Kinesis/ListTagsForResource.d.ts +1 -1
  140. package/lib/AWS/Kinesis/ListTagsForResource.d.ts.map +1 -1
  141. package/lib/AWS/Kinesis/PutRecord.d.ts +1 -1
  142. package/lib/AWS/Kinesis/PutRecord.d.ts.map +1 -1
  143. package/lib/AWS/Kinesis/PutRecords.d.ts +1 -1
  144. package/lib/AWS/Kinesis/PutRecords.d.ts.map +1 -1
  145. package/lib/AWS/Kinesis/StreamSink.d.ts +1 -1
  146. package/lib/AWS/Kinesis/StreamSink.d.ts.map +1 -1
  147. package/lib/AWS/Kinesis/SubscribeToShard.d.ts +1 -1
  148. package/lib/AWS/Kinesis/SubscribeToShard.d.ts.map +1 -1
  149. package/lib/AWS/Lambda/BucketEventSource.d.ts +2 -1
  150. package/lib/AWS/Lambda/BucketEventSource.d.ts.map +1 -1
  151. package/lib/AWS/Lambda/EventBridgeEventSource.d.ts +2 -1
  152. package/lib/AWS/Lambda/EventBridgeEventSource.d.ts.map +1 -1
  153. package/lib/AWS/Lambda/InvokeFunction.d.ts +1 -1
  154. package/lib/AWS/Lambda/InvokeFunction.d.ts.map +1 -1
  155. package/lib/AWS/Lambda/QueueEventSource.d.ts +2 -1
  156. package/lib/AWS/Lambda/QueueEventSource.d.ts.map +1 -1
  157. package/lib/AWS/Lambda/StreamEventSource.d.ts +2 -1
  158. package/lib/AWS/Lambda/StreamEventSource.d.ts.map +1 -1
  159. package/lib/AWS/Lambda/TableEventSource.d.ts +2 -1
  160. package/lib/AWS/Lambda/TableEventSource.d.ts.map +1 -1
  161. package/lib/AWS/Lambda/TopicEventSource.d.ts +2 -1
  162. package/lib/AWS/Lambda/TopicEventSource.d.ts.map +1 -1
  163. package/lib/AWS/RDS/Connect.d.ts +1 -1
  164. package/lib/AWS/RDS/Connect.d.ts.map +1 -1
  165. package/lib/AWS/RDSData/BatchExecuteStatement.d.ts +1 -1
  166. package/lib/AWS/RDSData/BatchExecuteStatement.d.ts.map +1 -1
  167. package/lib/AWS/RDSData/BeginTransaction.d.ts +1 -1
  168. package/lib/AWS/RDSData/BeginTransaction.d.ts.map +1 -1
  169. package/lib/AWS/RDSData/CommitTransaction.d.ts +1 -1
  170. package/lib/AWS/RDSData/CommitTransaction.d.ts.map +1 -1
  171. package/lib/AWS/RDSData/ExecuteSql.d.ts +1 -1
  172. package/lib/AWS/RDSData/ExecuteSql.d.ts.map +1 -1
  173. package/lib/AWS/RDSData/ExecuteStatement.d.ts +1 -1
  174. package/lib/AWS/RDSData/ExecuteStatement.d.ts.map +1 -1
  175. package/lib/AWS/RDSData/RollbackTransaction.d.ts +1 -1
  176. package/lib/AWS/RDSData/RollbackTransaction.d.ts.map +1 -1
  177. package/lib/AWS/S3/AbortMultipartUpload.d.ts +1 -1
  178. package/lib/AWS/S3/AbortMultipartUpload.d.ts.map +1 -1
  179. package/lib/AWS/S3/CompleteMultipartUpload.d.ts +1 -1
  180. package/lib/AWS/S3/CompleteMultipartUpload.d.ts.map +1 -1
  181. package/lib/AWS/S3/CopyObject.d.ts +1 -1
  182. package/lib/AWS/S3/CopyObject.d.ts.map +1 -1
  183. package/lib/AWS/S3/CreateMultipartUpload.d.ts +1 -1
  184. package/lib/AWS/S3/CreateMultipartUpload.d.ts.map +1 -1
  185. package/lib/AWS/S3/DeleteObject.d.ts +1 -1
  186. package/lib/AWS/S3/DeleteObject.d.ts.map +1 -1
  187. package/lib/AWS/S3/GetObject.d.ts +1 -1
  188. package/lib/AWS/S3/GetObject.d.ts.map +1 -1
  189. package/lib/AWS/S3/HeadObject.d.ts +1 -1
  190. package/lib/AWS/S3/HeadObject.d.ts.map +1 -1
  191. package/lib/AWS/S3/ListObjectsV2.d.ts +1 -1
  192. package/lib/AWS/S3/ListObjectsV2.d.ts.map +1 -1
  193. package/lib/AWS/S3/PutObject.d.ts +1 -1
  194. package/lib/AWS/S3/PutObject.d.ts.map +1 -1
  195. package/lib/AWS/S3/UploadPart.d.ts +1 -1
  196. package/lib/AWS/S3/UploadPart.d.ts.map +1 -1
  197. package/lib/AWS/SNS/AddPermission.d.ts +1 -1
  198. package/lib/AWS/SNS/AddPermission.d.ts.map +1 -1
  199. package/lib/AWS/SNS/ConfirmSubscription.d.ts +1 -1
  200. package/lib/AWS/SNS/ConfirmSubscription.d.ts.map +1 -1
  201. package/lib/AWS/SNS/GetDataProtectionPolicy.d.ts +1 -1
  202. package/lib/AWS/SNS/GetDataProtectionPolicy.d.ts.map +1 -1
  203. package/lib/AWS/SNS/GetSubscriptionAttributes.d.ts +1 -1
  204. package/lib/AWS/SNS/GetSubscriptionAttributes.d.ts.map +1 -1
  205. package/lib/AWS/SNS/GetTopicAttributes.d.ts +1 -1
  206. package/lib/AWS/SNS/GetTopicAttributes.d.ts.map +1 -1
  207. package/lib/AWS/SNS/ListSubscriptions.d.ts +1 -1
  208. package/lib/AWS/SNS/ListSubscriptions.d.ts.map +1 -1
  209. package/lib/AWS/SNS/ListSubscriptionsByTopic.d.ts +1 -1
  210. package/lib/AWS/SNS/ListSubscriptionsByTopic.d.ts.map +1 -1
  211. package/lib/AWS/SNS/ListTagsForResource.d.ts +1 -1
  212. package/lib/AWS/SNS/ListTagsForResource.d.ts.map +1 -1
  213. package/lib/AWS/SNS/ListTopics.d.ts +1 -1
  214. package/lib/AWS/SNS/ListTopics.d.ts.map +1 -1
  215. package/lib/AWS/SNS/Publish.d.ts +1 -1
  216. package/lib/AWS/SNS/Publish.d.ts.map +1 -1
  217. package/lib/AWS/SNS/PublishBatch.d.ts +1 -1
  218. package/lib/AWS/SNS/PublishBatch.d.ts.map +1 -1
  219. package/lib/AWS/SNS/PutDataProtectionPolicy.d.ts +1 -1
  220. package/lib/AWS/SNS/PutDataProtectionPolicy.d.ts.map +1 -1
  221. package/lib/AWS/SNS/RemovePermission.d.ts +1 -1
  222. package/lib/AWS/SNS/RemovePermission.d.ts.map +1 -1
  223. package/lib/AWS/SNS/SetSubscriptionAttributes.d.ts +1 -1
  224. package/lib/AWS/SNS/SetSubscriptionAttributes.d.ts.map +1 -1
  225. package/lib/AWS/SNS/SetTopicAttributes.d.ts +1 -1
  226. package/lib/AWS/SNS/SetTopicAttributes.d.ts.map +1 -1
  227. package/lib/AWS/SNS/TagResource.d.ts +1 -1
  228. package/lib/AWS/SNS/TagResource.d.ts.map +1 -1
  229. package/lib/AWS/SNS/TopicSink.d.ts +1 -1
  230. package/lib/AWS/SNS/TopicSink.d.ts.map +1 -1
  231. package/lib/AWS/SNS/UntagResource.d.ts +1 -1
  232. package/lib/AWS/SNS/UntagResource.d.ts.map +1 -1
  233. package/lib/AWS/SQS/DeleteMessage.d.ts +1 -1
  234. package/lib/AWS/SQS/DeleteMessage.d.ts.map +1 -1
  235. package/lib/AWS/SQS/DeleteMessageBatch.d.ts +1 -1
  236. package/lib/AWS/SQS/DeleteMessageBatch.d.ts.map +1 -1
  237. package/lib/AWS/SQS/QueueSink.d.ts +1 -1
  238. package/lib/AWS/SQS/QueueSink.d.ts.map +1 -1
  239. package/lib/AWS/SQS/ReceiveMessage.d.ts +1 -1
  240. package/lib/AWS/SQS/ReceiveMessage.d.ts.map +1 -1
  241. package/lib/AWS/SQS/SendMessage.d.ts +1 -1
  242. package/lib/AWS/SQS/SendMessage.d.ts.map +1 -1
  243. package/lib/AWS/SQS/SendMessageBatch.d.ts +1 -1
  244. package/lib/AWS/SQS/SendMessageBatch.d.ts.map +1 -1
  245. package/lib/AWS/SecretsManager/DescribeSecret.d.ts +1 -1
  246. package/lib/AWS/SecretsManager/DescribeSecret.d.ts.map +1 -1
  247. package/lib/AWS/SecretsManager/GetRandomPassword.d.ts +1 -1
  248. package/lib/AWS/SecretsManager/GetRandomPassword.d.ts.map +1 -1
  249. package/lib/AWS/SecretsManager/GetSecretValue.d.ts +1 -1
  250. package/lib/AWS/SecretsManager/GetSecretValue.d.ts.map +1 -1
  251. package/lib/AWS/SecretsManager/ListSecrets.d.ts +1 -1
  252. package/lib/AWS/SecretsManager/ListSecrets.d.ts.map +1 -1
  253. package/lib/AWS/SecretsManager/PutSecretValue.d.ts +1 -1
  254. package/lib/AWS/SecretsManager/PutSecretValue.d.ts.map +1 -1
  255. package/lib/Auth/Lock.js +2 -2
  256. package/lib/Auth/Lock.js.map +1 -1
  257. package/lib/Binding.d.ts +1 -1
  258. package/lib/Binding.d.ts.map +1 -1
  259. package/lib/Bundle/Bundle.d.ts +11 -0
  260. package/lib/Bundle/Bundle.d.ts.map +1 -1
  261. package/lib/Bundle/Bundle.js +19 -12
  262. package/lib/Bundle/Bundle.js.map +1 -1
  263. package/lib/Bundle/BundleAnalyzerPlugin.d.ts +25 -0
  264. package/lib/Bundle/BundleAnalyzerPlugin.d.ts.map +1 -0
  265. package/lib/Bundle/BundleAnalyzerPlugin.js +16 -0
  266. package/lib/Bundle/BundleAnalyzerPlugin.js.map +1 -0
  267. package/lib/Bundle/Docker.d.ts.map +1 -1
  268. package/lib/Bundle/Docker.js +12 -13
  269. package/lib/Bundle/Docker.js.map +1 -1
  270. package/lib/Bundle/RawPlugin.d.ts +36 -0
  271. package/lib/Bundle/RawPlugin.d.ts.map +1 -0
  272. package/lib/Bundle/RawPlugin.js +80 -0
  273. package/lib/Bundle/RawPlugin.js.map +1 -0
  274. package/lib/Bundle/index.d.ts +2 -0
  275. package/lib/Bundle/index.d.ts.map +1 -1
  276. package/lib/Bundle/index.js +2 -0
  277. package/lib/Bundle/index.js.map +1 -1
  278. package/lib/Cli/commands/deploy.d.ts.map +1 -1
  279. package/lib/Cli/commands/deploy.js +1 -0
  280. package/lib/Cli/commands/deploy.js.map +1 -1
  281. package/lib/Cli/commands/dev.d.ts +3 -2
  282. package/lib/Cli/commands/dev.d.ts.map +1 -1
  283. package/lib/Cli/commands/dev.js +9 -1
  284. package/lib/Cli/commands/dev.js.map +1 -1
  285. package/lib/Cli/exec.d.ts.map +1 -1
  286. package/lib/Cli/exec.js +2 -1
  287. package/lib/Cli/exec.js.map +1 -1
  288. package/lib/Cloudflare/AiGateway/AiGatewayBinding.d.ts +8 -7
  289. package/lib/Cloudflare/AiGateway/AiGatewayBinding.d.ts.map +1 -1
  290. package/lib/Cloudflare/AiGateway/AiGatewayBinding.js +2 -6
  291. package/lib/Cloudflare/AiGateway/AiGatewayBinding.js.map +1 -1
  292. package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDatasetBinding.d.ts +4 -3
  293. package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDatasetBinding.d.ts.map +1 -1
  294. package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDatasetBinding.js +2 -1
  295. package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDatasetBinding.js.map +1 -1
  296. package/lib/Cloudflare/Artifacts/ArtifactsBinding.d.ts +8 -7
  297. package/lib/Cloudflare/Artifacts/ArtifactsBinding.d.ts.map +1 -1
  298. package/lib/Cloudflare/Artifacts/ArtifactsBinding.js +2 -2
  299. package/lib/Cloudflare/Artifacts/ArtifactsBinding.js.map +1 -1
  300. package/lib/Cloudflare/D1/D1Connection.d.ts +12 -10
  301. package/lib/Cloudflare/D1/D1Connection.d.ts.map +1 -1
  302. package/lib/Cloudflare/D1/D1Connection.js +2 -2
  303. package/lib/Cloudflare/D1/D1Connection.js.map +1 -1
  304. package/lib/Cloudflare/D1/D1Database.js +1 -1
  305. package/lib/Cloudflare/D1/D1Database.js.map +1 -1
  306. package/lib/Cloudflare/D1/D1Migrations.d.ts +2 -2
  307. package/lib/Cloudflare/D1/D1Migrations.d.ts.map +1 -1
  308. package/lib/Cloudflare/Email/SendEmailBinding.d.ts +5 -4
  309. package/lib/Cloudflare/Email/SendEmailBinding.d.ts.map +1 -1
  310. package/lib/Cloudflare/Email/SendEmailBinding.js +2 -1
  311. package/lib/Cloudflare/Email/SendEmailBinding.js.map +1 -1
  312. package/lib/Cloudflare/Hyperdrive/HyperdriveBinding.d.ts +10 -8
  313. package/lib/Cloudflare/Hyperdrive/HyperdriveBinding.d.ts.map +1 -1
  314. package/lib/Cloudflare/Hyperdrive/HyperdriveBinding.js +2 -2
  315. package/lib/Cloudflare/Hyperdrive/HyperdriveBinding.js.map +1 -1
  316. package/lib/Cloudflare/Images/ImagesBinding.d.ts +5 -4
  317. package/lib/Cloudflare/Images/ImagesBinding.d.ts.map +1 -1
  318. package/lib/Cloudflare/Images/ImagesBinding.js +4 -2
  319. package/lib/Cloudflare/Images/ImagesBinding.js.map +1 -1
  320. package/lib/Cloudflare/KV/KVNamespaceBinding.d.ts +33 -32
  321. package/lib/Cloudflare/KV/KVNamespaceBinding.d.ts.map +1 -1
  322. package/lib/Cloudflare/KV/KVNamespaceBinding.js +5 -2
  323. package/lib/Cloudflare/KV/KVNamespaceBinding.js.map +1 -1
  324. package/lib/Cloudflare/Local.d.ts +2 -0
  325. package/lib/Cloudflare/Local.d.ts.map +1 -0
  326. package/lib/Cloudflare/Local.js +9 -0
  327. package/lib/Cloudflare/Local.js.map +1 -0
  328. package/lib/Cloudflare/Providers.d.ts.map +1 -1
  329. package/lib/Cloudflare/Providers.js +3 -1
  330. package/lib/Cloudflare/Providers.js.map +1 -1
  331. package/lib/Cloudflare/Queue/QueueBinding.d.ts +5 -4
  332. package/lib/Cloudflare/Queue/QueueBinding.d.ts.map +1 -1
  333. package/lib/Cloudflare/Queue/QueueBinding.js +2 -2
  334. package/lib/Cloudflare/Queue/QueueBinding.js.map +1 -1
  335. package/lib/Cloudflare/Queue/QueueEventSource.d.ts +1 -2
  336. package/lib/Cloudflare/Queue/QueueEventSource.d.ts.map +1 -1
  337. package/lib/Cloudflare/R2/R2BucketBinding.d.ts +13 -12
  338. package/lib/Cloudflare/R2/R2BucketBinding.d.ts.map +1 -1
  339. package/lib/Cloudflare/R2/R2BucketBinding.js +2 -2
  340. package/lib/Cloudflare/R2/R2BucketBinding.js.map +1 -1
  341. package/lib/Cloudflare/SecretsStore/SecretBinding.d.ts +5 -4
  342. package/lib/Cloudflare/SecretsStore/SecretBinding.d.ts.map +1 -1
  343. package/lib/Cloudflare/SecretsStore/SecretBinding.js +2 -2
  344. package/lib/Cloudflare/SecretsStore/SecretBinding.js.map +1 -1
  345. package/lib/Cloudflare/StateStore/Api.d.ts +1 -1
  346. package/lib/Cloudflare/Workers/CronEventSource.d.ts +1 -2
  347. package/lib/Cloudflare/Workers/CronEventSource.d.ts.map +1 -1
  348. package/lib/Cloudflare/Workers/DurableObjectBridge.d.ts.map +1 -1
  349. package/lib/Cloudflare/Workers/DurableObjectBridge.js +0 -1
  350. package/lib/Cloudflare/Workers/DurableObjectBridge.js.map +1 -1
  351. package/lib/Cloudflare/Workers/DurableObjectNamespace.d.ts.map +1 -1
  352. package/lib/Cloudflare/Workers/DurableObjectNamespace.js +6 -3
  353. package/lib/Cloudflare/Workers/DurableObjectNamespace.js.map +1 -1
  354. package/lib/Cloudflare/Workers/DynamicWorkerLoader.d.ts.map +1 -1
  355. package/lib/Cloudflare/Workers/DynamicWorkerLoader.js +3 -3
  356. package/lib/Cloudflare/Workers/DynamicWorkerLoader.js.map +1 -1
  357. package/lib/Cloudflare/Workers/Fetch.d.ts +1 -1
  358. package/lib/Cloudflare/Workers/Fetch.d.ts.map +1 -1
  359. package/lib/Cloudflare/Workers/LocalWorkerProvider.d.ts +22 -3
  360. package/lib/Cloudflare/Workers/LocalWorkerProvider.d.ts.map +1 -1
  361. package/lib/Cloudflare/Workers/LocalWorkerProvider.js +413 -21
  362. package/lib/Cloudflare/Workers/LocalWorkerProvider.js.map +1 -1
  363. package/lib/Cloudflare/Workers/RpcAsync.d.ts +55 -0
  364. package/lib/Cloudflare/Workers/RpcAsync.d.ts.map +1 -1
  365. package/lib/Cloudflare/Workers/RpcAsync.js +55 -0
  366. package/lib/Cloudflare/Workers/RpcAsync.js.map +1 -1
  367. package/lib/Cloudflare/Workers/Worker.d.ts +9 -22
  368. package/lib/Cloudflare/Workers/Worker.d.ts.map +1 -1
  369. package/lib/Cloudflare/Workers/Worker.js +3 -4
  370. package/lib/Cloudflare/Workers/Worker.js.map +1 -1
  371. package/lib/Cloudflare/Workers/WorkerBridge.d.ts.map +1 -1
  372. package/lib/Cloudflare/Workers/WorkerBridge.js +3 -5
  373. package/lib/Cloudflare/Workers/WorkerBridge.js.map +1 -1
  374. package/lib/Cloudflare/Workers/WorkerBundle.d.ts +1 -2
  375. package/lib/Cloudflare/Workers/WorkerBundle.d.ts.map +1 -1
  376. package/lib/Cloudflare/Workers/WorkerBundle.js +3 -6
  377. package/lib/Cloudflare/Workers/WorkerBundle.js.map +1 -1
  378. package/lib/Cloudflare/Workers/WorkerRuntimeContext.d.ts.map +1 -1
  379. package/lib/Cloudflare/Workers/WorkerRuntimeContext.js +2 -0
  380. package/lib/Cloudflare/Workers/WorkerRuntimeContext.js.map +1 -1
  381. package/lib/Cloudflare/Workers/Workflow.d.ts +4 -4
  382. package/lib/Cloudflare/Workers/Workflow.d.ts.map +1 -1
  383. package/lib/Cloudflare/Workers/Workflow.js +6 -3
  384. package/lib/Cloudflare/Workers/Workflow.js.map +1 -1
  385. package/lib/Cloudflare/Zaraz/ZarazConfig.d.ts +184 -0
  386. package/lib/Cloudflare/Zaraz/ZarazConfig.d.ts.map +1 -0
  387. package/lib/Cloudflare/Zaraz/ZarazConfig.js +216 -0
  388. package/lib/Cloudflare/Zaraz/ZarazConfig.js.map +1 -0
  389. package/lib/Cloudflare/Zaraz/ZarazEventTypes.d.ts +188 -0
  390. package/lib/Cloudflare/Zaraz/ZarazEventTypes.d.ts.map +1 -0
  391. package/lib/Cloudflare/Zaraz/ZarazEventTypes.js +4 -0
  392. package/lib/Cloudflare/Zaraz/ZarazEventTypes.js.map +1 -0
  393. package/lib/Cloudflare/Zaraz/index.d.ts +3 -0
  394. package/lib/Cloudflare/Zaraz/index.d.ts.map +1 -0
  395. package/lib/Cloudflare/Zaraz/index.js +2 -0
  396. package/lib/Cloudflare/Zaraz/index.js.map +1 -0
  397. package/lib/Cloudflare/index.d.ts +1 -0
  398. package/lib/Cloudflare/index.d.ts.map +1 -1
  399. package/lib/Cloudflare/index.js +1 -0
  400. package/lib/Cloudflare/index.js.map +1 -1
  401. package/lib/Local/RpcProvider.d.ts +54 -0
  402. package/lib/Local/RpcProvider.d.ts.map +1 -0
  403. package/lib/Local/RpcProvider.js +57 -0
  404. package/lib/Local/RpcProvider.js.map +1 -0
  405. package/lib/Local/RpcProviderProxy.d.ts +19 -0
  406. package/lib/Local/RpcProviderProxy.d.ts.map +1 -0
  407. package/lib/Local/RpcProviderProxy.js +48 -0
  408. package/lib/Local/RpcProviderProxy.js.map +1 -0
  409. package/lib/Local/RpcSerialization.d.ts +34 -0
  410. package/lib/Local/RpcSerialization.d.ts.map +1 -0
  411. package/lib/Local/RpcSerialization.js +120 -0
  412. package/lib/Local/RpcSerialization.js.map +1 -0
  413. package/lib/Local/RpcServer.d.ts +63 -0
  414. package/lib/Local/RpcServer.d.ts.map +1 -0
  415. package/lib/Local/RpcServer.js +72 -0
  416. package/lib/Local/RpcServer.js.map +1 -0
  417. package/lib/Local/RpcServerBun.d.ts +3 -0
  418. package/lib/Local/RpcServerBun.d.ts.map +1 -0
  419. package/lib/Local/RpcServerBun.js +47 -0
  420. package/lib/Local/RpcServerBun.js.map +1 -0
  421. package/lib/Local/RpcServerEnvironment.d.ts +20 -0
  422. package/lib/Local/RpcServerEnvironment.d.ts.map +1 -0
  423. package/lib/Local/RpcServerEnvironment.js +22 -0
  424. package/lib/Local/RpcServerEnvironment.js.map +1 -0
  425. package/lib/Local/RpcServerNode.d.ts +3 -0
  426. package/lib/Local/RpcServerNode.d.ts.map +1 -0
  427. package/lib/Local/RpcServerNode.js +43 -0
  428. package/lib/Local/RpcServerNode.js.map +1 -0
  429. package/lib/Local/RpcServerSession.d.ts +27 -0
  430. package/lib/Local/RpcServerSession.d.ts.map +1 -0
  431. package/lib/Local/RpcServerSession.js +68 -0
  432. package/lib/Local/RpcServerSession.js.map +1 -0
  433. package/lib/Local/RpcSpawner.d.ts +21 -0
  434. package/lib/Local/RpcSpawner.d.ts.map +1 -0
  435. package/lib/Local/RpcSpawner.js +132 -0
  436. package/lib/Local/RpcSpawner.js.map +1 -0
  437. package/lib/Neon/Branch.js +1 -1
  438. package/lib/Neon/Branch.js.map +1 -1
  439. package/lib/Neon/Migrations.d.ts +1 -1
  440. package/lib/Neon/Migrations.d.ts.map +1 -1
  441. package/lib/Neon/Project.d.ts.map +1 -1
  442. package/lib/Neon/Project.js +1 -15
  443. package/lib/Neon/Project.js.map +1 -1
  444. package/lib/Phase.d.ts +2 -2
  445. package/lib/Phase.d.ts.map +1 -1
  446. package/lib/Phase.js +2 -1
  447. package/lib/Phase.js.map +1 -1
  448. package/lib/Planetscale/AuthProvider.d.ts +59 -0
  449. package/lib/Planetscale/AuthProvider.d.ts.map +1 -0
  450. package/lib/Planetscale/AuthProvider.js +131 -0
  451. package/lib/Planetscale/AuthProvider.js.map +1 -0
  452. package/lib/Planetscale/Branch.d.ts +113 -0
  453. package/lib/Planetscale/Branch.d.ts.map +1 -0
  454. package/lib/Planetscale/Branch.js +287 -0
  455. package/lib/Planetscale/Branch.js.map +1 -0
  456. package/lib/Planetscale/Credentials.d.ts +35 -0
  457. package/lib/Planetscale/Credentials.d.ts.map +1 -0
  458. package/lib/Planetscale/Credentials.js +56 -0
  459. package/lib/Planetscale/Credentials.js.map +1 -0
  460. package/lib/Planetscale/Database.d.ts +117 -0
  461. package/lib/Planetscale/Database.d.ts.map +1 -0
  462. package/lib/Planetscale/Database.js +1 -0
  463. package/lib/Planetscale/Database.js.map +1 -0
  464. package/lib/Planetscale/MySQL/MySQLBranch.d.ts +86 -0
  465. package/lib/Planetscale/MySQL/MySQLBranch.d.ts.map +1 -0
  466. package/lib/Planetscale/MySQL/MySQLBranch.js +14 -0
  467. package/lib/Planetscale/MySQL/MySQLBranch.js.map +1 -0
  468. package/lib/Planetscale/MySQL/MySQLClusterSize.d.ts +23 -0
  469. package/lib/Planetscale/MySQL/MySQLClusterSize.d.ts.map +1 -0
  470. package/lib/Planetscale/MySQL/MySQLClusterSize.js +44 -0
  471. package/lib/Planetscale/MySQL/MySQLClusterSize.js.map +1 -0
  472. package/lib/Planetscale/MySQL/MySQLDatabase.d.ts +119 -0
  473. package/lib/Planetscale/MySQL/MySQLDatabase.d.ts.map +1 -0
  474. package/lib/Planetscale/MySQL/MySQLDatabase.js +237 -0
  475. package/lib/Planetscale/MySQL/MySQLDatabase.js.map +1 -0
  476. package/lib/Planetscale/MySQL/MySQLMigrations.d.ts +18 -0
  477. package/lib/Planetscale/MySQL/MySQLMigrations.d.ts.map +1 -0
  478. package/lib/Planetscale/MySQL/MySQLMigrations.js +157 -0
  479. package/lib/Planetscale/MySQL/MySQLMigrations.js.map +1 -0
  480. package/lib/Planetscale/MySQL/MySQLOrigin.d.ts +15 -0
  481. package/lib/Planetscale/MySQL/MySQLOrigin.d.ts.map +1 -0
  482. package/lib/Planetscale/MySQL/MySQLOrigin.js +2 -0
  483. package/lib/Planetscale/MySQL/MySQLOrigin.js.map +1 -0
  484. package/lib/Planetscale/MySQL/MySQLPassword.d.ts +115 -0
  485. package/lib/Planetscale/MySQL/MySQLPassword.d.ts.map +1 -0
  486. package/lib/Planetscale/MySQL/MySQLPassword.js +197 -0
  487. package/lib/Planetscale/MySQL/MySQLPassword.js.map +1 -0
  488. package/lib/Planetscale/MySQL/index.d.ts +6 -0
  489. package/lib/Planetscale/MySQL/index.d.ts.map +1 -0
  490. package/lib/Planetscale/MySQL/index.js +6 -0
  491. package/lib/Planetscale/MySQL/index.js.map +1 -0
  492. package/lib/Planetscale/Postgres/PostgresBranch.d.ts +67 -0
  493. package/lib/Planetscale/Postgres/PostgresBranch.d.ts.map +1 -0
  494. package/lib/Planetscale/Postgres/PostgresBranch.js +14 -0
  495. package/lib/Planetscale/Postgres/PostgresBranch.js.map +1 -0
  496. package/lib/Planetscale/Postgres/PostgresClusterSize.d.ts +44 -0
  497. package/lib/Planetscale/Postgres/PostgresClusterSize.d.ts.map +1 -0
  498. package/lib/Planetscale/Postgres/PostgresClusterSize.js +72 -0
  499. package/lib/Planetscale/Postgres/PostgresClusterSize.js.map +1 -0
  500. package/lib/Planetscale/Postgres/PostgresDatabase.d.ts +73 -0
  501. package/lib/Planetscale/Postgres/PostgresDatabase.d.ts.map +1 -0
  502. package/lib/Planetscale/Postgres/PostgresDatabase.js +241 -0
  503. package/lib/Planetscale/Postgres/PostgresDatabase.js.map +1 -0
  504. package/lib/Planetscale/Postgres/PostgresDefaultRole.d.ts +85 -0
  505. package/lib/Planetscale/Postgres/PostgresDefaultRole.d.ts.map +1 -0
  506. package/lib/Planetscale/Postgres/PostgresDefaultRole.js +142 -0
  507. package/lib/Planetscale/Postgres/PostgresDefaultRole.js.map +1 -0
  508. package/lib/Planetscale/Postgres/PostgresMigrations.d.ts +18 -0
  509. package/lib/Planetscale/Postgres/PostgresMigrations.d.ts.map +1 -0
  510. package/lib/Planetscale/Postgres/PostgresMigrations.js +148 -0
  511. package/lib/Planetscale/Postgres/PostgresMigrations.js.map +1 -0
  512. package/lib/Planetscale/Postgres/PostgresOrigin.d.ts +15 -0
  513. package/lib/Planetscale/Postgres/PostgresOrigin.d.ts.map +1 -0
  514. package/lib/Planetscale/Postgres/PostgresOrigin.js +2 -0
  515. package/lib/Planetscale/Postgres/PostgresOrigin.js.map +1 -0
  516. package/lib/Planetscale/Postgres/PostgresRole.d.ts +121 -0
  517. package/lib/Planetscale/Postgres/PostgresRole.d.ts.map +1 -0
  518. package/lib/Planetscale/Postgres/PostgresRole.js +228 -0
  519. package/lib/Planetscale/Postgres/PostgresRole.js.map +1 -0
  520. package/lib/Planetscale/Postgres/index.d.ts +7 -0
  521. package/lib/Planetscale/Postgres/index.d.ts.map +1 -0
  522. package/lib/Planetscale/Postgres/index.js +7 -0
  523. package/lib/Planetscale/Postgres/index.js.map +1 -0
  524. package/lib/Planetscale/Providers.d.ts +25 -0
  525. package/lib/Planetscale/Providers.d.ts.map +1 -0
  526. package/lib/Planetscale/Providers.js +40 -0
  527. package/lib/Planetscale/Providers.js.map +1 -0
  528. package/lib/Planetscale/Util.d.ts +182 -0
  529. package/lib/Planetscale/Util.d.ts.map +1 -0
  530. package/lib/Planetscale/Util.js +98 -0
  531. package/lib/Planetscale/Util.js.map +1 -0
  532. package/lib/Planetscale/index.d.ts +9 -0
  533. package/lib/Planetscale/index.d.ts.map +1 -0
  534. package/lib/Planetscale/index.js +9 -0
  535. package/lib/Planetscale/index.js.map +1 -0
  536. package/lib/Platform.d.ts.map +1 -1
  537. package/lib/Platform.js +7 -2
  538. package/lib/Platform.js.map +1 -1
  539. package/lib/RuntimeContext.d.ts +7 -3
  540. package/lib/RuntimeContext.d.ts.map +1 -1
  541. package/lib/RuntimeContext.js +3 -2
  542. package/lib/RuntimeContext.js.map +1 -1
  543. package/lib/Server/S3BucketEventSource.d.ts +1 -1
  544. package/lib/Server/S3BucketEventSource.d.ts.map +1 -1
  545. package/lib/{Neon → Sql}/SqlFile.d.ts +2 -0
  546. package/lib/Sql/SqlFile.d.ts.map +1 -0
  547. package/lib/{Neon → Sql}/SqlFile.js +14 -0
  548. package/lib/Sql/SqlFile.js.map +1 -0
  549. package/lib/Sql/index.d.ts +2 -0
  550. package/lib/Sql/index.d.ts.map +1 -0
  551. package/lib/Sql/index.js +2 -0
  552. package/lib/Sql/index.js.map +1 -0
  553. package/lib/Util/PlatformServices.d.ts +7 -0
  554. package/lib/Util/PlatformServices.d.ts.map +1 -1
  555. package/lib/Util/PlatformServices.js +22 -11
  556. package/lib/Util/PlatformServices.js.map +1 -1
  557. package/lib/Util/camel.d.ts.map +1 -1
  558. package/lib/Util/camel.js +2 -3
  559. package/lib/Util/camel.js.map +1 -1
  560. package/lib/Util/data.d.ts +5 -0
  561. package/lib/Util/data.d.ts.map +1 -1
  562. package/lib/Util/data.js +29 -0
  563. package/lib/Util/data.js.map +1 -1
  564. package/lib/Util/stable.d.ts.map +1 -1
  565. package/lib/Util/stable.js +3 -6
  566. package/lib/Util/stable.js.map +1 -1
  567. package/lib/tsconfig.test.tsbuildinfo +1 -1
  568. package/package.json +25 -13
  569. package/src/Auth/Lock.ts +2 -2
  570. package/src/Binding.ts +1 -1
  571. package/src/Bundle/Bundle.ts +35 -13
  572. package/src/Bundle/BundleAnalyzerPlugin.ts +33 -0
  573. package/src/Bundle/Docker.ts +12 -15
  574. package/src/Bundle/RawPlugin.ts +82 -0
  575. package/src/Bundle/index.ts +2 -0
  576. package/src/Cli/commands/deploy.ts +1 -0
  577. package/src/Cli/commands/dev.ts +51 -37
  578. package/src/Cli/exec.ts +12 -7
  579. package/src/Cloudflare/AiGateway/AiGatewayBinding.ts +11 -16
  580. package/src/Cloudflare/AnalyticsEngine/AnalyticsEngineDatasetBinding.ts +7 -9
  581. package/src/Cloudflare/Artifacts/ArtifactsBinding.ts +11 -22
  582. package/src/Cloudflare/D1/D1Connection.ts +31 -18
  583. package/src/Cloudflare/D1/D1Database.ts +1 -1
  584. package/src/Cloudflare/D1/D1Migrations.ts +2 -2
  585. package/src/Cloudflare/Email/SendEmailBinding.ts +7 -5
  586. package/src/Cloudflare/Hyperdrive/HyperdriveBinding.ts +16 -12
  587. package/src/Cloudflare/Images/ImagesBinding.ts +8 -8
  588. package/src/Cloudflare/KV/KVNamespaceBinding.ts +38 -38
  589. package/src/Cloudflare/Local.ts +23 -0
  590. package/src/Cloudflare/Providers.ts +3 -0
  591. package/src/Cloudflare/Queue/QueueBinding.ts +7 -6
  592. package/src/Cloudflare/R2/R2BucketBinding.ts +16 -19
  593. package/src/Cloudflare/SecretsStore/SecretBinding.ts +11 -13
  594. package/src/Cloudflare/Workers/DurableObjectBridge.ts +0 -1
  595. package/src/Cloudflare/Workers/DurableObjectNamespace.ts +6 -6
  596. package/src/Cloudflare/Workers/DynamicWorkerLoader.ts +4 -5
  597. package/src/Cloudflare/Workers/LocalWorkerProvider.ts +547 -21
  598. package/src/Cloudflare/Workers/RpcAsync.ts +55 -0
  599. package/src/Cloudflare/Workers/Worker.ts +18 -25
  600. package/src/Cloudflare/Workers/WorkerBridge.ts +3 -5
  601. package/src/Cloudflare/Workers/WorkerBundle.ts +4 -8
  602. package/src/Cloudflare/Workers/WorkerRuntimeContext.ts +2 -0
  603. package/src/Cloudflare/Workers/Workflow.ts +10 -11
  604. package/src/Cloudflare/Zaraz/ZarazConfig.ts +403 -0
  605. package/src/Cloudflare/Zaraz/ZarazEventTypes.ts +257 -0
  606. package/src/Cloudflare/Zaraz/index.ts +25 -0
  607. package/src/Cloudflare/index.ts +1 -0
  608. package/src/Local/RpcProvider.ts +102 -0
  609. package/src/Local/RpcProviderProxy.ts +86 -0
  610. package/src/Local/RpcSerialization.ts +225 -0
  611. package/src/Local/RpcServer.ts +138 -0
  612. package/src/Local/RpcServerBun.ts +59 -0
  613. package/src/Local/RpcServerEnvironment.ts +55 -0
  614. package/src/Local/RpcServerNode.ts +58 -0
  615. package/src/Local/RpcServerSession.ts +87 -0
  616. package/src/Local/RpcSpawner.ts +196 -0
  617. package/src/Neon/Branch.ts +1 -1
  618. package/src/Neon/Migrations.ts +1 -1
  619. package/src/Neon/Project.ts +6 -20
  620. package/src/Phase.ts +2 -0
  621. package/src/Planetscale/AuthProvider.ts +285 -0
  622. package/src/Planetscale/Branch.ts +508 -0
  623. package/src/Planetscale/Credentials.ts +96 -0
  624. package/src/Planetscale/Database.ts +129 -0
  625. package/src/Planetscale/MySQL/MySQLBranch.ts +112 -0
  626. package/src/Planetscale/MySQL/MySQLClusterSize.ts +102 -0
  627. package/src/Planetscale/MySQL/MySQLDatabase.ts +446 -0
  628. package/src/Planetscale/MySQL/MySQLMigrations.ts +271 -0
  629. package/src/Planetscale/MySQL/MySQLOrigin.ts +15 -0
  630. package/src/Planetscale/MySQL/MySQLPassword.ts +387 -0
  631. package/src/Planetscale/MySQL/index.ts +5 -0
  632. package/src/Planetscale/Postgres/PostgresBranch.ts +97 -0
  633. package/src/Planetscale/Postgres/PostgresClusterSize.ts +125 -0
  634. package/src/Planetscale/Postgres/PostgresDatabase.ts +404 -0
  635. package/src/Planetscale/Postgres/PostgresDefaultRole.ts +270 -0
  636. package/src/Planetscale/Postgres/PostgresMigrations.ts +256 -0
  637. package/src/Planetscale/Postgres/PostgresOrigin.ts +15 -0
  638. package/src/Planetscale/Postgres/PostgresRole.ts +469 -0
  639. package/src/Planetscale/Postgres/index.ts +6 -0
  640. package/src/Planetscale/Providers.ts +80 -0
  641. package/src/Planetscale/Util.ts +160 -0
  642. package/src/Planetscale/index.ts +18 -0
  643. package/src/Platform.ts +13 -1
  644. package/src/RuntimeContext.ts +7 -8
  645. package/src/{Neon → Sql}/SqlFile.ts +22 -0
  646. package/src/Sql/index.ts +1 -0
  647. package/src/Util/PlatformServices.ts +41 -27
  648. package/src/Util/camel.ts +3 -5
  649. package/src/Util/data.ts +38 -0
  650. package/src/Util/stable.ts +4 -10
  651. package/lib/Cloudflare/D1/D1SqlFile.d.ts +0 -20
  652. package/lib/Cloudflare/D1/D1SqlFile.d.ts.map +0 -1
  653. package/lib/Cloudflare/D1/D1SqlFile.js +0 -46
  654. package/lib/Cloudflare/D1/D1SqlFile.js.map +0 -1
  655. package/lib/Cloudflare/Local/Sidecar.d.ts +0 -63
  656. package/lib/Cloudflare/Local/Sidecar.d.ts.map +0 -1
  657. package/lib/Cloudflare/Local/Sidecar.js +0 -50
  658. package/lib/Cloudflare/Local/Sidecar.js.map +0 -1
  659. package/lib/Cloudflare/Local/SidecarHandlers.d.ts +0 -8
  660. package/lib/Cloudflare/Local/SidecarHandlers.d.ts.map +0 -1
  661. package/lib/Cloudflare/Local/SidecarHandlers.js +0 -381
  662. package/lib/Cloudflare/Local/SidecarHandlers.js.map +0 -1
  663. package/lib/Cloudflare/Local/SidecarServer.d.ts +0 -2
  664. package/lib/Cloudflare/Local/SidecarServer.d.ts.map +0 -1
  665. package/lib/Cloudflare/Local/SidecarServer.js +0 -34
  666. package/lib/Cloudflare/Local/SidecarServer.js.map +0 -1
  667. package/lib/Neon/SqlFile.d.ts.map +0 -1
  668. package/lib/Neon/SqlFile.js.map +0 -1
  669. package/lib/Sidecar/Lock.d.ts +0 -23
  670. package/lib/Sidecar/Lock.d.ts.map +0 -1
  671. package/lib/Sidecar/Lock.js +0 -39
  672. package/lib/Sidecar/Lock.js.map +0 -1
  673. package/lib/Sidecar/RpcClient.d.ts +0 -15
  674. package/lib/Sidecar/RpcClient.d.ts.map +0 -1
  675. package/lib/Sidecar/RpcClient.js +0 -78
  676. package/lib/Sidecar/RpcClient.js.map +0 -1
  677. package/lib/Sidecar/RpcHandler.d.ts +0 -51
  678. package/lib/Sidecar/RpcHandler.d.ts.map +0 -1
  679. package/lib/Sidecar/RpcHandler.js +0 -87
  680. package/lib/Sidecar/RpcHandler.js.map +0 -1
  681. package/lib/Sidecar/RpcPaths.d.ts +0 -19
  682. package/lib/Sidecar/RpcPaths.d.ts.map +0 -1
  683. package/lib/Sidecar/RpcPaths.js +0 -31
  684. package/lib/Sidecar/RpcPaths.js.map +0 -1
  685. package/lib/Sidecar/RpcServer.d.ts +0 -30
  686. package/lib/Sidecar/RpcServer.d.ts.map +0 -1
  687. package/lib/Sidecar/RpcServer.js +0 -105
  688. package/lib/Sidecar/RpcServer.js.map +0 -1
  689. package/lib/Sidecar/RpcServerBun.d.ts +0 -4
  690. package/lib/Sidecar/RpcServerBun.d.ts.map +0 -1
  691. package/lib/Sidecar/RpcServerBun.js +0 -28
  692. package/lib/Sidecar/RpcServerBun.js.map +0 -1
  693. package/lib/Sidecar/RpcServerNode.d.ts +0 -4
  694. package/lib/Sidecar/RpcServerNode.d.ts.map +0 -1
  695. package/lib/Sidecar/RpcServerNode.js +0 -39
  696. package/lib/Sidecar/RpcServerNode.js.map +0 -1
  697. package/lib/Sidecar/RpcServices.d.ts +0 -6
  698. package/lib/Sidecar/RpcServices.d.ts.map +0 -1
  699. package/lib/Sidecar/RpcServices.js +0 -29
  700. package/lib/Sidecar/RpcServices.js.map +0 -1
  701. package/src/Cloudflare/D1/D1SqlFile.ts +0 -55
  702. package/src/Cloudflare/Local/Sidecar.ts +0 -81
  703. package/src/Cloudflare/Local/SidecarHandlers.ts +0 -491
  704. package/src/Cloudflare/Local/SidecarServer.ts +0 -70
  705. package/src/Sidecar/Lock.ts +0 -66
  706. package/src/Sidecar/RpcClient.ts +0 -142
  707. package/src/Sidecar/RpcHandler.ts +0 -205
  708. package/src/Sidecar/RpcPaths.ts +0 -39
  709. package/src/Sidecar/RpcServer.ts +0 -153
  710. package/src/Sidecar/RpcServerBun.ts +0 -41
  711. package/src/Sidecar/RpcServerNode.ts +0 -51
  712. package/src/Sidecar/RpcServices.ts +0 -48
@@ -0,0 +1,160 @@
1
+ import * as ops from "@distilled.cloud/planetscale/Operations";
2
+ import * as Clock from "effect/Clock";
3
+ import * as Data from "effect/Data";
4
+ import * as Effect from "effect/Effect";
5
+ import * as Schedule from "effect/Schedule";
6
+ import type { ScopedPlanStatusSession } from "../Cli/Cli.ts";
7
+
8
+ export const DEFAULT_MIGRATIONS_TABLE = "__alchemy_migrations";
9
+
10
+ /**
11
+ * Tagged error raised when polling for a state predicate that has not yet
12
+ * been reached. Used internally with `Effect.retry` to drive long-running
13
+ * status waits.
14
+ */
15
+ class NotReady extends Data.TaggedError("Planetscale::NotReady")<{
16
+ description: string;
17
+ }> {}
18
+
19
+ /**
20
+ * Tagged error raised by reconcilers when an immutable property of a live
21
+ * PlanetScale resource does not match the desired configuration (e.g.
22
+ * region, kind, parent_branch). User-recoverable: change the config to
23
+ * match, or replace/delete the existing resource and retry.
24
+ */
25
+ export class PlanetscaleConflict extends Data.TaggedError(
26
+ "Planetscale::Conflict",
27
+ )<{
28
+ message: string;
29
+ }> {}
30
+
31
+ /**
32
+ * Default polling schedule: 5s spaced retries with a 10-minute total
33
+ * budget (120 × 5s). Avoids the exponential-blowup trap where later
34
+ * iterations would wait hours, indistinguishable from a hang.
35
+ */
36
+ const defaultSchedule = Schedule.spaced("5 seconds").pipe(
37
+ Schedule.both(Schedule.recurs(120)),
38
+ );
39
+
40
+ /**
41
+ * Generic polling helper that retries until `predicate(value)` returns true
42
+ * (or until the schedule is exhausted). Engine-specific helpers (e.g.
43
+ * `waitForKeyspaceReady`, `waitForPendingPostgresChanges`) are built on top
44
+ * of this primitive.
45
+ */
46
+ export const pollUntil = <A, E, R>(
47
+ description: string,
48
+ fn: Effect.Effect<A, E, R>,
49
+ predicate: (value: A) => boolean,
50
+ schedule: Schedule.Schedule<unknown, unknown, never> = defaultSchedule,
51
+ ): Effect.Effect<A, E, R> =>
52
+ fn.pipe(
53
+ Effect.flatMap((value) =>
54
+ predicate(value)
55
+ ? Effect.succeed(value)
56
+ : Effect.fail(new NotReady({ description })),
57
+ ),
58
+ Effect.retry({
59
+ while: (e: any) => e?._tag === "Planetscale::NotReady",
60
+ schedule,
61
+ }),
62
+ ) as Effect.Effect<A, E, R>;
63
+
64
+ /**
65
+ * Polls a branch via `getBranch` until it reports `ready === true`. Returns
66
+ * the final branch shape. `NotFound` during polling is treated as
67
+ * not-yet-ready (the branch is being provisioned by an upstream operation).
68
+ *
69
+ * If a `session` is supplied, each poll emits a note with elapsed seconds and
70
+ * expectation-setting so the CLI surfaces progress while we sit in the spaced
71
+ * retry loop.
72
+ */
73
+ export const waitForBranchReady = Effect.fn(function* (
74
+ organization: string,
75
+ database: string,
76
+ branch: string,
77
+ session?: ScopedPlanStatusSession,
78
+ ) {
79
+ const startedAt = yield* Clock.currentTimeMillis;
80
+ return yield* pollUntil(
81
+ `branch "${branch}" ready`,
82
+ Effect.gen(function* () {
83
+ if (session) {
84
+ const now = yield* Clock.currentTimeMillis;
85
+ const seconds = Math.floor((now - startedAt) / 1000);
86
+ yield* session.note(
87
+ `Waiting for branch to be ready... (${seconds} seconds elapsed; this can take a few minutes)`,
88
+ );
89
+ }
90
+ return yield* ops.getBranch({ organization, database, branch });
91
+ }).pipe(
92
+ Effect.catchTag("NotFound", () =>
93
+ Effect.fail(
94
+ new NotReady({ description: `branch "${branch}" not found yet` }),
95
+ ),
96
+ ),
97
+ ),
98
+ (data) => data.ready,
99
+ );
100
+ });
101
+
102
+ /**
103
+ * Polls a database via `getDatabase` until it reports `ready === true`.
104
+ * `NotFound` during polling is treated as not-yet-ready (the database is
105
+ * being provisioned by an upstream operation).
106
+ *
107
+ * If a `session` is supplied, each poll emits a note with elapsed seconds and
108
+ * expectation-setting so the CLI surfaces progress while we sit in the spaced
109
+ * retry loop.
110
+ */
111
+ export const waitForDatabaseReady = Effect.fn(function* (
112
+ organization: string,
113
+ database: string,
114
+ session?: ScopedPlanStatusSession,
115
+ ) {
116
+ const startedAt = yield* Clock.currentTimeMillis;
117
+ return yield* pollUntil(
118
+ `database "${database}" ready`,
119
+ Effect.gen(function* () {
120
+ if (session) {
121
+ const now = yield* Clock.currentTimeMillis;
122
+ const seconds = Math.floor((now - startedAt) / 1000);
123
+ yield* session.note(
124
+ `Waiting for database to be ready... (${seconds} seconds elapsed; this can take a few minutes)`,
125
+ );
126
+ }
127
+ return yield* ops.getDatabase({ organization, database });
128
+ }).pipe(
129
+ Effect.catchTag("NotFound", () =>
130
+ Effect.fail(
131
+ new NotReady({
132
+ description: `database "${database}" not found yet`,
133
+ }),
134
+ ),
135
+ ),
136
+ ),
137
+ (data) => data.ready,
138
+ );
139
+ });
140
+
141
+ export const isKnownError =
142
+ (tag: string, message: string) => (error: unknown) =>
143
+ typeof error === "object" &&
144
+ error !== null &&
145
+ (error as { readonly _tag?: unknown })._tag === tag &&
146
+ (error as { readonly message?: unknown }).message === message;
147
+
148
+ // todo: this repeats across Neon, D1, and PlanetScale resources so maybe we should move it to Diff? or Util?
149
+ export const recordsEqual = (
150
+ a: Record<string, string>,
151
+ b: Record<string, string>,
152
+ ): boolean => {
153
+ const aKeys = Object.keys(a);
154
+ const bKeys = Object.keys(b);
155
+ if (aKeys.length !== bKeys.length) return false;
156
+ for (const k of aKeys) {
157
+ if (a[k] !== b[k]) return false;
158
+ }
159
+ return true;
160
+ };
@@ -0,0 +1,18 @@
1
+ export * as Auth from "./AuthProvider.ts";
2
+ export {
3
+ type BaseBranchAttributes,
4
+ type BaseBranchProps,
5
+ makeBranchProvider,
6
+ } from "./Branch.ts";
7
+ export {
8
+ Credentials,
9
+ CredentialsFromEnv,
10
+ DEFAULT_API_BASE_URL,
11
+ fromAuthProvider,
12
+ fromToken,
13
+ } from "./Credentials.ts";
14
+ export * from "./Database.ts";
15
+ export * from "./MySQL/index.ts";
16
+ export * from "./Postgres/index.ts";
17
+ export * from "./Providers.ts";
18
+ export * from "./Util.ts";
package/src/Platform.ts CHANGED
@@ -10,6 +10,7 @@ import type { PolicyLike } from "./Binding.ts";
10
10
  import type { ExecutionContext } from "./ExecutionContext.ts";
11
11
  import type { HttpEffect } from "./Http.ts";
12
12
  import type { InputProps } from "./Input.ts";
13
+ import { ALCHEMY_PHASE } from "./Phase.ts";
13
14
  import type { Provider, ProviderCollectionLike } from "./Provider.ts";
14
15
  import { Resource, type ResourceLike } from "./Resource.ts";
15
16
  import type { Rpc } from "./Rpc.ts";
@@ -192,7 +193,7 @@ export const Platform = <
192
193
  type Impl = Effect.Effect<any>;
193
194
 
194
195
  const resource = Resource(type);
195
- const PlatformContext = RuntimeContext(type);
196
+ const PlatformContext = RuntimeContext;
196
197
 
197
198
  const constructor = (
198
199
  id?: string,
@@ -351,6 +352,17 @@ export const Platform = <
351
352
  Layer.succeed(resource.Self, instance),
352
353
  Layer.succeed(Platform.Self, instance),
353
354
  Layer.succeed(Self, instance),
355
+ runtimeContext.planServices
356
+ ? Layer.unwrap(
357
+ ALCHEMY_PHASE.pipe(
358
+ Effect.map((phase) =>
359
+ phase === "plan"
360
+ ? runtimeContext.planServices!
361
+ : Layer.empty,
362
+ ),
363
+ ),
364
+ )
365
+ : Layer.empty,
354
366
  ),
355
367
  Layer.succeedContext(outerServices),
356
368
  ),
@@ -1,9 +1,9 @@
1
1
  import * as Context from "effect/Context";
2
2
  import * as Effect from "effect/Effect";
3
+ import * as Layer from "effect/Layer";
3
4
  import * as Option from "effect/Option";
4
5
  import type { HttpEffect } from "./Http.ts";
5
6
  import type { Output } from "./Output.ts";
6
- import { GenericService } from "./Util/service.ts";
7
7
 
8
8
  export interface BaseRuntimeContext {
9
9
  Type: string;
@@ -17,20 +17,19 @@ export interface BaseRuntimeContext {
17
17
  options?: { shape?: Record<string, unknown> },
18
18
  ): Effect.Effect<void, never, Req>;
19
19
  shape?: () => Record<string, unknown>;
20
+ /** additional services to provide to the plan */
21
+ planServices?: Layer.Layer<any>;
20
22
  }
21
23
 
22
- export interface RuntimeContext<
23
- Ctx extends BaseRuntimeContext = BaseRuntimeContext,
24
- > extends Context.Service<`RuntimeContext<${Ctx["Type"]}>`, Ctx> {}
25
-
26
24
  /**
27
25
  * Context of the runtime environment.
28
26
  *
29
27
  * E.g. the context of a running Worker, Task, Process, Function
30
28
  */
31
- export const RuntimeContext = GenericService<{
32
- <Ctx extends BaseRuntimeContext>(type: Ctx["Type"]): RuntimeContext<Ctx>;
33
- }>()("Alchemy::RuntimeContext");
29
+ export class RuntimeContext extends Context.Service<
30
+ RuntimeContext,
31
+ BaseRuntimeContext
32
+ >()("RuntimeContext") {}
34
33
 
35
34
  export const CurrentRuntimeContext = Effect.serviceOption(RuntimeContext).pipe(
36
35
  Effect.map(Option.getOrUndefined),
@@ -48,6 +48,28 @@ export const readSqlFile = (directory: string, name: string) =>
48
48
  return file;
49
49
  });
50
50
 
51
+ export const hashMigrations = (migrationsDir: string) =>
52
+ listSqlFiles(migrationsDir).pipe(
53
+ Effect.map((files) => {
54
+ const hashes: Record<string, string> = {};
55
+ for (const file of files) hashes[file.id] = file.hash;
56
+ return hashes;
57
+ }),
58
+ );
59
+
60
+ export const hashImports = (
61
+ importFiles: ReadonlyArray<string>,
62
+ rootDir: string,
63
+ ) =>
64
+ Effect.gen(function* () {
65
+ const hashes: Record<string, string> = {};
66
+ for (const filePath of importFiles) {
67
+ const file = yield* readSqlFile(rootDir, filePath);
68
+ hashes[filePath] = file.hash;
69
+ }
70
+ return hashes;
71
+ });
72
+
51
73
  const getPrefix = (name: string): number | null => {
52
74
  const prefix = name.split("_")[0];
53
75
  const num = Number.parseInt(prefix, 10);
@@ -0,0 +1 @@
1
+ export * from "./SqlFile.ts";
@@ -12,6 +12,23 @@ import type { WebSocketConstructor } from "effect/unstable/socket/Socket";
12
12
 
13
13
  const isBun = typeof Bun !== "undefined";
14
14
 
15
+ /**
16
+ * Constructs a layer with different implementations for Bun and Node.
17
+ */
18
+ export const platformLayer = <A, E, R>(constructors: {
19
+ bun: () => Promise<Layer.Layer<A, E, R>>;
20
+ node: () => Promise<Layer.Layer<A, E, R>>;
21
+ }) =>
22
+ Layer.unwrap(
23
+ Effect.promise(async () => {
24
+ if (isBun) {
25
+ return await constructors.bun();
26
+ } else {
27
+ return await constructors.node();
28
+ }
29
+ }),
30
+ );
31
+
15
32
  export type PlatformServices =
16
33
  | ChildProcessSpawner
17
34
  | FileSystem
@@ -21,29 +38,25 @@ export type PlatformServices =
21
38
  // WebSocketConstructor is not included in NodeServices/BunServices, but required for Workers tail
22
39
  | WebSocketConstructor;
23
40
 
24
- export const PlatformServices: Layer.Layer<PlatformServices> = Effect.promise(
25
- async () => {
26
- if (isBun) {
27
- const [BunServices, BunSocket] = await Promise.all([
28
- import("@effect/platform-bun/BunServices"),
29
- import("@effect/platform-bun/BunSocket"),
30
- ]);
31
- return Layer.merge(
32
- BunServices.layer,
33
- BunSocket.layerWebSocketConstructor,
34
- );
35
- } else {
36
- const [NodeServices, NodeSocket] = await Promise.all([
37
- import("@effect/platform-node/NodeServices"),
38
- import("@effect/platform-node/NodeSocket"),
39
- ]);
40
- return Layer.merge(
41
- NodeServices.layer,
42
- NodeSocket.layerWebSocketConstructor,
43
- );
44
- }
41
+ export const PlatformServices: Layer.Layer<PlatformServices> = platformLayer({
42
+ bun: async () => {
43
+ const [BunServices, BunSocket] = await Promise.all([
44
+ import("@effect/platform-bun/BunServices"),
45
+ import("@effect/platform-bun/BunSocket"),
46
+ ]);
47
+ return Layer.merge(BunServices.layer, BunSocket.layerWebSocketConstructor);
48
+ },
49
+ node: async () => {
50
+ const [NodeServices, NodeSocket] = await Promise.all([
51
+ import("@effect/platform-node/NodeServices"),
52
+ import("@effect/platform-node/NodeSocket"),
53
+ ]);
54
+ return Layer.merge(
55
+ NodeServices.layer,
56
+ NodeSocket.layerWebSocketConstructor,
57
+ );
45
58
  },
46
- ).pipe(Layer.unwrap);
59
+ });
47
60
 
48
61
  export const runMain = <E, A>(
49
62
  effect: Effect.Effect<A, E>,
@@ -67,15 +80,16 @@ export const httpServer = (
67
80
  port: number = 0,
68
81
  host: string = "127.0.0.1",
69
82
  ): Layer.Layer<HttpServer, ServeError> =>
70
- Effect.promise(async () => {
71
- if (isBun) {
83
+ platformLayer({
84
+ bun: async () => {
72
85
  const BunHttpServer = await import("@effect/platform-bun/BunHttpServer");
73
86
  return BunHttpServer.layer({ hostname: host, port });
74
- } else {
87
+ },
88
+ node: async () => {
75
89
  const [NodeHttpServer, Http] = await Promise.all([
76
90
  import("@effect/platform-node/NodeHttpServer"),
77
91
  import("node:http"),
78
92
  ]);
79
93
  return NodeHttpServer.layerServer(Http.createServer, { host, port });
80
- }
81
- }).pipe(Layer.unwrap);
94
+ },
95
+ });
package/src/Util/camel.ts CHANGED
@@ -1,3 +1,5 @@
1
+ import { isPlainObject } from "./data.ts";
2
+
1
3
  export const camelCaseKey = (key: string) =>
2
4
  key
3
5
  .replace(/^_+/, "")
@@ -7,11 +9,7 @@ export const toCamelCase = <T>(value: unknown): T => {
7
9
  if (Array.isArray(value)) {
8
10
  return value.map((item) => toCamelCase(item)) as T;
9
11
  }
10
- if (
11
- value &&
12
- typeof value === "object" &&
13
- Object.getPrototypeOf(value) === Object.prototype
14
- ) {
12
+ if (isPlainObject(value)) {
15
13
  return Object.fromEntries(
16
14
  Object.entries(value).map(([key, nested]) => [
17
15
  camelCaseKey(key),
package/src/Util/data.ts CHANGED
@@ -1,3 +1,7 @@
1
+ import * as Predicate from "effect/Predicate";
2
+ import * as EffectRecord from "effect/Record";
3
+ import * as Redacted from "effect/Redacted";
4
+
1
5
  export type Primitive =
2
6
  | never
3
7
  | undefined
@@ -16,3 +20,37 @@ export const isPrimitive = (value: any): value is Primitive =>
16
20
  typeof value === "string" ||
17
21
  typeof value === "symbol" ||
18
22
  typeof value === "bigint";
23
+
24
+ export const isPlainObject = (
25
+ value: unknown,
26
+ ): value is Record<string, unknown> => {
27
+ if (!Predicate.isObject(value)) return false;
28
+ return Object.getPrototypeOf(value) === Object.prototype;
29
+ };
30
+
31
+ export const stripFields = <T>(value: T, empty: null | undefined): T => {
32
+ if (Array.isArray(value)) {
33
+ return value.map((item) => stripFields(item, empty)) as T;
34
+ }
35
+ if (!isPlainObject(value)) return value;
36
+ return EffectRecord.map(
37
+ EffectRecord.filter(value, (entry) => entry !== empty),
38
+ (entry) => stripFields(entry, empty),
39
+ ) as T;
40
+ };
41
+
42
+ export const stripNullFields = <T>(value: T): T => stripFields(value, null);
43
+
44
+ export const stripUndefinedFields = <T>(value: T): T =>
45
+ stripFields(value, undefined);
46
+
47
+ export const unwrapRedacted = <T>(value: T): T => {
48
+ if (Redacted.isRedacted(value)) {
49
+ return Redacted.value(value) as T;
50
+ }
51
+ if (Array.isArray(value)) {
52
+ return value.map(unwrapRedacted) as T;
53
+ }
54
+ if (!isPlainObject(value)) return value;
55
+ return EffectRecord.map(value, unwrapRedacted) as T;
56
+ };
@@ -1,3 +1,5 @@
1
+ import { isPlainObject } from "./data.ts";
2
+
1
3
  export const normalizeNulls = <T>(value: T): T => {
2
4
  if (value === null) {
3
5
  return undefined as T;
@@ -5,11 +7,7 @@ export const normalizeNulls = <T>(value: T): T => {
5
7
  if (Array.isArray(value)) {
6
8
  return value.map((item) => normalizeNulls(item)) as T;
7
9
  }
8
- if (
9
- value &&
10
- typeof value === "object" &&
11
- Object.getPrototypeOf(value) === Object.prototype
12
- ) {
10
+ if (isPlainObject(value)) {
13
11
  return Object.fromEntries(
14
12
  Object.entries(value)
15
13
  .map(([key, nested]) => [key, normalizeNulls(nested)])
@@ -23,11 +21,7 @@ export const stableValue = (value: unknown): unknown => {
23
21
  if (Array.isArray(value)) {
24
22
  return value.map(stableValue);
25
23
  }
26
- if (
27
- value &&
28
- typeof value === "object" &&
29
- Object.getPrototypeOf(value) === Object.prototype
30
- ) {
24
+ if (isPlainObject(value)) {
31
25
  return Object.fromEntries(
32
26
  Object.entries(value)
33
27
  .sort(([a], [b]) => a.localeCompare(b))
@@ -1,20 +0,0 @@
1
- import * as Effect from "effect/Effect";
2
- import * as FileSystem from "effect/FileSystem";
3
- import * as Path from "effect/Path";
4
- export interface D1SqlFile {
5
- id: string;
6
- sql: string;
7
- hash: string;
8
- }
9
- /**
10
- * Recursively list `.sql` files under `directory`, sorted by their numeric
11
- * prefix (e.g. `0001_init.sql`) and then by name.
12
- */
13
- export declare const listSqlFiles: (directory: string) => Effect.Effect<D1SqlFile[], import("effect/PlatformError").PlatformError, FileSystem.FileSystem | Path.Path>;
14
- /**
15
- * Read a single `.sql` file relative to `directory` and compute its content
16
- * hash. The `sql` field is marked non-enumerable so it isn't serialized into
17
- * resource state.
18
- */
19
- export declare const readSqlFile: (directory: string, name: string) => Effect.Effect<D1SqlFile, import("effect/PlatformError").PlatformError, FileSystem.FileSystem | Path.Path>;
20
- //# sourceMappingURL=D1SqlFile.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"D1SqlFile.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/D1/D1SqlFile.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAEpC,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,WAAW,MAAM,gHAiB1C,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,WAAW,MAAM,EAAE,MAAM,MAAM,8GASvD,CAAC"}
@@ -1,46 +0,0 @@
1
- import crypto from "node:crypto";
2
- import * as Effect from "effect/Effect";
3
- import * as FileSystem from "effect/FileSystem";
4
- import * as Path from "effect/Path";
5
- /**
6
- * Recursively list `.sql` files under `directory`, sorted by their numeric
7
- * prefix (e.g. `0001_init.sql`) and then by name.
8
- */
9
- export const listSqlFiles = (directory) => Effect.gen(function* () {
10
- const fs = yield* FileSystem.FileSystem;
11
- const entries = yield* fs.readDirectory(directory, { recursive: true });
12
- const sqlFiles = entries
13
- .filter((name) => name.endsWith(".sql"))
14
- .sort((a, b) => {
15
- const aNum = getPrefix(a);
16
- const bNum = getPrefix(b);
17
- if (aNum !== null && bNum !== null)
18
- return aNum - bNum;
19
- if (aNum !== null)
20
- return -1;
21
- if (bNum !== null)
22
- return 1;
23
- return a.localeCompare(b);
24
- });
25
- return yield* Effect.all(sqlFiles.map((id) => readSqlFile(directory, id)));
26
- });
27
- /**
28
- * Read a single `.sql` file relative to `directory` and compute its content
29
- * hash. The `sql` field is marked non-enumerable so it isn't serialized into
30
- * resource state.
31
- */
32
- export const readSqlFile = (directory, name) => Effect.gen(function* () {
33
- const fs = yield* FileSystem.FileSystem;
34
- const path = yield* Path.Path;
35
- const sql = yield* fs.readFileString(path.resolve(directory, name));
36
- const hash = crypto.createHash("sha256").update(sql).digest("hex");
37
- const file = { id: name, sql, hash };
38
- Object.defineProperty(file, "sql", { enumerable: false });
39
- return file;
40
- });
41
- const getPrefix = (name) => {
42
- const prefix = name.split("_")[0];
43
- const num = Number.parseInt(prefix, 10);
44
- return Number.isNaN(num) ? null : num;
45
- };
46
- //# sourceMappingURL=D1SqlFile.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"D1SqlFile.js","sourceRoot":"","sources":["../../../src/Cloudflare/D1/D1SqlFile.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAQpC;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,SAAiB,EAAE,EAAE,CAChD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;IACxC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAExE,MAAM,QAAQ,GAAG,OAAO;SACrB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;SACvC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACb,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,IAAI,GAAG,IAAI,CAAC;QACvD,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,CAAC,CAAC,CAAC;QAC7B,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,CAAC,CAAC;QAC5B,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEL,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7E,CAAC,CAAC,CAAC;AAEL;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,SAAiB,EAAE,IAAY,EAAE,EAAE,CAC7D,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;IACxC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9B,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;IACpE,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACnE,MAAM,IAAI,GAAc,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;IAChD,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1D,OAAO,IAAI,CAAC;AACd,CAAC,CAAC,CAAC;AAEL,MAAM,SAAS,GAAG,CAAC,IAAY,EAAiB,EAAE;IAChD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACxC,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;AACxC,CAAC,CAAC"}
@@ -1,63 +0,0 @@
1
- import * as Effect from "effect/Effect";
2
- import * as Schema from "effect/Schema";
3
- import { BundleError } from "../../Bundle/Bundle.ts";
4
- import type { ResourceBinding } from "../../Resource.ts";
5
- import type { Worker, WorkerProps } from "../Workers/Worker.ts";
6
- export interface ReconcileOptions {
7
- id: string;
8
- props: WorkerProps;
9
- bindings: ResourceBinding<Worker["Binding"]>[];
10
- stack: {
11
- name: string;
12
- stage: string;
13
- };
14
- instanceId: string;
15
- }
16
- declare const ValidationError_base: Schema.Class<ValidationError, Schema.TaggedStruct<"ValidationError", {
17
- readonly message: Schema.String;
18
- readonly hint: Schema.optional<Schema.String>;
19
- readonly value: Schema.Unknown;
20
- }>, import("effect/Cause").YieldableError>;
21
- export declare class ValidationError extends ValidationError_base {
22
- }
23
- export declare const ServeResult: Schema.Struct<{
24
- readonly workerId: Schema.String;
25
- readonly workerName: Schema.String;
26
- readonly logpush: Schema.UndefinedOr<Schema.Boolean>;
27
- readonly url: Schema.String;
28
- readonly tags: Schema.mutable<Schema.$Array<Schema.String>>;
29
- readonly durableObjectNamespaces: Schema.$Record<Schema.String, Schema.String>;
30
- readonly domains: Schema.mutable<Schema.$Array<Schema.Struct<{
31
- readonly hostname: Schema.String;
32
- readonly id: Schema.String;
33
- readonly zoneId: Schema.String;
34
- }>>>;
35
- readonly crons: Schema.mutable<Schema.$Array<Schema.String>>;
36
- readonly accountId: Schema.String;
37
- }>;
38
- export type ServeResult = typeof ServeResult.Type;
39
- export declare const ServeError: Schema.Union<readonly [Schema.Union<readonly [typeof import("@distilled.cloud/cloudflare-runtime").ConfigError, typeof import("@distilled.cloud/cloudflare-runtime").SystemError, typeof import("@distilled.cloud/cloudflare-runtime").ApiError]>, typeof BundleError, typeof ValidationError]>;
40
- export type ServeError = typeof ServeError.Type;
41
- export declare const DiffResult: Schema.Struct<{
42
- readonly action: Schema.Literals<readonly ["update", "noop"]>;
43
- }>;
44
- export type DiffResult = typeof DiffResult.Type;
45
- export declare const SidecarSchema: import("../../Sidecar/RpcHandler.ts").RpcHandlerEncoders<{
46
- readonly diff: (options: ReconcileOptions) => Effect.Effect<DiffResult>;
47
- readonly reconcile: (options: ReconcileOptions) => Effect.Effect<ServeResult, ServeError>;
48
- readonly delete: (id: string) => Effect.Effect<void>;
49
- }> & import("../../Sidecar/RpcHandler.ts").RpcHandlerDecoders<{
50
- readonly diff: (options: ReconcileOptions) => Effect.Effect<DiffResult>;
51
- readonly reconcile: (options: ReconcileOptions) => Effect.Effect<ServeResult, ServeError>;
52
- readonly delete: (id: string) => Effect.Effect<void>;
53
- }>;
54
- declare const Sidecar_base: import("effect/Context").ServiceClass<Sidecar, "Sidecar", {
55
- readonly diff: (options: ReconcileOptions) => Effect.Effect<DiffResult>;
56
- readonly reconcile: (options: ReconcileOptions) => Effect.Effect<ServeResult, ServeError>;
57
- readonly delete: (id: string) => Effect.Effect<void>;
58
- }>;
59
- export declare class Sidecar extends Sidecar_base {
60
- }
61
- export declare const SidecarLive: import("effect/Layer").Layer<Sidecar, never, import("effect/unstable/process/ChildProcessSpawner").ChildProcessSpawner | import("effect/FileSystem").FileSystem | import("effect/Path").Path | import("../../AlchemyContext.ts").AlchemyContext>;
62
- export {};
63
- //# sourceMappingURL=Sidecar.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Sidecar.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Local/Sidecar.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGzD,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;IAC/C,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,UAAU,EAAE,MAAM,CAAC;CACpB;;;;;;AAED,qBAAa,eAAgB,SAAQ,oBAOpC;CAAG;AAEJ,eAAO,MAAM,WAAW;;;;;;;;;;;;;;EAgBtB,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC,IAAI,CAAC;AAElD,eAAO,MAAM,UAAU,iSAIrB,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,IAAI,CAAC;AAEhD,eAAO,MAAM,UAAU;;EAErB,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,IAAI,CAAC;AAEhD,eAAO,MAAM,aAAa;mBAYP,CAAC,OAAO,EAAE,gBAAgB,KAAK,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;wBACnD,CAClB,OAAO,EAAE,gBAAgB,KACtB,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC;qBAC1B,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;;mBAJrC,CAAC,OAAO,EAAE,gBAAgB,KAAK,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;wBACnD,CAClB,OAAO,EAAE,gBAAgB,KACtB,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC;qBAC1B,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;EATtD,CAAC;;mBAKgB,CAAC,OAAO,EAAE,gBAAgB,KAAK,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;wBACnD,CAClB,OAAO,EAAE,gBAAgB,KACtB,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC;qBAC1B,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;;AAPxD,qBAAa,OAAQ,SAAQ,YASf;CAAG;AAEjB,eAAO,MAAM,WAAW,kPAGtB,CAAC"}