alchemy 2.0.0-beta.41 → 2.0.0-beta.43

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 (514) hide show
  1. package/bin/exec.js +2 -9
  2. package/bin/exec.js.map +1 -1
  3. package/lib/AWS/CloudWatch/DescribeAlarmContributors.d.ts +1 -1
  4. package/lib/AWS/CloudWatch/DescribeAlarmContributors.d.ts.map +1 -1
  5. package/lib/AWS/CloudWatch/DescribeAlarmHistory.d.ts +1 -1
  6. package/lib/AWS/CloudWatch/DescribeAlarmHistory.d.ts.map +1 -1
  7. package/lib/AWS/CloudWatch/DescribeAlarms.d.ts +1 -1
  8. package/lib/AWS/CloudWatch/DescribeAlarms.d.ts.map +1 -1
  9. package/lib/AWS/CloudWatch/DescribeAlarmsForMetric.d.ts +1 -1
  10. package/lib/AWS/CloudWatch/DescribeAlarmsForMetric.d.ts.map +1 -1
  11. package/lib/AWS/CloudWatch/DescribeAnomalyDetectors.d.ts +1 -1
  12. package/lib/AWS/CloudWatch/DescribeAnomalyDetectors.d.ts.map +1 -1
  13. package/lib/AWS/CloudWatch/DescribeInsightRules.d.ts +1 -1
  14. package/lib/AWS/CloudWatch/DescribeInsightRules.d.ts.map +1 -1
  15. package/lib/AWS/CloudWatch/DisableAlarmActions.d.ts +1 -1
  16. package/lib/AWS/CloudWatch/DisableAlarmActions.d.ts.map +1 -1
  17. package/lib/AWS/CloudWatch/DisableInsightRules.d.ts +1 -1
  18. package/lib/AWS/CloudWatch/DisableInsightRules.d.ts.map +1 -1
  19. package/lib/AWS/CloudWatch/EnableAlarmActions.d.ts +1 -1
  20. package/lib/AWS/CloudWatch/EnableAlarmActions.d.ts.map +1 -1
  21. package/lib/AWS/CloudWatch/GetAlarmMuteRule.d.ts +1 -1
  22. package/lib/AWS/CloudWatch/GetAlarmMuteRule.d.ts.map +1 -1
  23. package/lib/AWS/CloudWatch/GetDashboard.d.ts +1 -1
  24. package/lib/AWS/CloudWatch/GetDashboard.d.ts.map +1 -1
  25. package/lib/AWS/CloudWatch/GetInsightRuleReport.d.ts +1 -1
  26. package/lib/AWS/CloudWatch/GetInsightRuleReport.d.ts.map +1 -1
  27. package/lib/AWS/CloudWatch/GetMetricData.d.ts +1 -1
  28. package/lib/AWS/CloudWatch/GetMetricData.d.ts.map +1 -1
  29. package/lib/AWS/CloudWatch/GetMetricStatistics.d.ts +1 -1
  30. package/lib/AWS/CloudWatch/GetMetricStatistics.d.ts.map +1 -1
  31. package/lib/AWS/CloudWatch/GetMetricStream.d.ts +1 -1
  32. package/lib/AWS/CloudWatch/GetMetricStream.d.ts.map +1 -1
  33. package/lib/AWS/CloudWatch/GetMetricWidgetImage.d.ts +1 -1
  34. package/lib/AWS/CloudWatch/GetMetricWidgetImage.d.ts.map +1 -1
  35. package/lib/AWS/CloudWatch/ListAlarmMuteRules.d.ts +1 -1
  36. package/lib/AWS/CloudWatch/ListAlarmMuteRules.d.ts.map +1 -1
  37. package/lib/AWS/CloudWatch/ListDashboards.d.ts +1 -1
  38. package/lib/AWS/CloudWatch/ListDashboards.d.ts.map +1 -1
  39. package/lib/AWS/CloudWatch/ListManagedInsightRules.d.ts +1 -1
  40. package/lib/AWS/CloudWatch/ListManagedInsightRules.d.ts.map +1 -1
  41. package/lib/AWS/CloudWatch/ListMetricStreams.d.ts +1 -1
  42. package/lib/AWS/CloudWatch/ListMetricStreams.d.ts.map +1 -1
  43. package/lib/AWS/CloudWatch/ListMetrics.d.ts +1 -1
  44. package/lib/AWS/CloudWatch/ListMetrics.d.ts.map +1 -1
  45. package/lib/AWS/CloudWatch/ListTagsForResource.d.ts +1 -1
  46. package/lib/AWS/CloudWatch/ListTagsForResource.d.ts.map +1 -1
  47. package/lib/AWS/CloudWatch/PutMetricData.d.ts +1 -1
  48. package/lib/AWS/CloudWatch/PutMetricData.d.ts.map +1 -1
  49. package/lib/AWS/CloudWatch/SetAlarmState.d.ts +1 -1
  50. package/lib/AWS/CloudWatch/SetAlarmState.d.ts.map +1 -1
  51. package/lib/AWS/DynamoDB/BatchExecuteStatement.d.ts +1 -1
  52. package/lib/AWS/DynamoDB/BatchExecuteStatement.d.ts.map +1 -1
  53. package/lib/AWS/DynamoDB/BatchGetItem.d.ts +1 -1
  54. package/lib/AWS/DynamoDB/BatchGetItem.d.ts.map +1 -1
  55. package/lib/AWS/DynamoDB/BatchWriteItem.d.ts +1 -1
  56. package/lib/AWS/DynamoDB/BatchWriteItem.d.ts.map +1 -1
  57. package/lib/AWS/DynamoDB/DeleteItem.d.ts +1 -1
  58. package/lib/AWS/DynamoDB/DeleteItem.d.ts.map +1 -1
  59. package/lib/AWS/DynamoDB/DescribeTable.d.ts +1 -1
  60. package/lib/AWS/DynamoDB/DescribeTable.d.ts.map +1 -1
  61. package/lib/AWS/DynamoDB/DescribeTimeToLive.d.ts +1 -1
  62. package/lib/AWS/DynamoDB/DescribeTimeToLive.d.ts.map +1 -1
  63. package/lib/AWS/DynamoDB/ExecuteStatement.d.ts +1 -1
  64. package/lib/AWS/DynamoDB/ExecuteStatement.d.ts.map +1 -1
  65. package/lib/AWS/DynamoDB/ExecuteTransaction.d.ts +1 -1
  66. package/lib/AWS/DynamoDB/ExecuteTransaction.d.ts.map +1 -1
  67. package/lib/AWS/DynamoDB/GetItem.d.ts +1 -1
  68. package/lib/AWS/DynamoDB/GetItem.d.ts.map +1 -1
  69. package/lib/AWS/DynamoDB/ListTables.d.ts +1 -1
  70. package/lib/AWS/DynamoDB/ListTables.d.ts.map +1 -1
  71. package/lib/AWS/DynamoDB/ListTagsOfResource.d.ts +1 -1
  72. package/lib/AWS/DynamoDB/ListTagsOfResource.d.ts.map +1 -1
  73. package/lib/AWS/DynamoDB/PutItem.d.ts +1 -1
  74. package/lib/AWS/DynamoDB/PutItem.d.ts.map +1 -1
  75. package/lib/AWS/DynamoDB/Query.d.ts +1 -1
  76. package/lib/AWS/DynamoDB/Query.d.ts.map +1 -1
  77. package/lib/AWS/DynamoDB/RestoreTableToPointInTime.d.ts +1 -1
  78. package/lib/AWS/DynamoDB/RestoreTableToPointInTime.d.ts.map +1 -1
  79. package/lib/AWS/DynamoDB/Scan.d.ts +1 -1
  80. package/lib/AWS/DynamoDB/Scan.d.ts.map +1 -1
  81. package/lib/AWS/DynamoDB/TransactGetItems.d.ts +1 -1
  82. package/lib/AWS/DynamoDB/TransactGetItems.d.ts.map +1 -1
  83. package/lib/AWS/DynamoDB/TransactWriteItems.d.ts +1 -1
  84. package/lib/AWS/DynamoDB/TransactWriteItems.d.ts.map +1 -1
  85. package/lib/AWS/DynamoDB/UpdateItem.d.ts +1 -1
  86. package/lib/AWS/DynamoDB/UpdateItem.d.ts.map +1 -1
  87. package/lib/AWS/DynamoDB/UpdateTimeToLive.d.ts +1 -1
  88. package/lib/AWS/DynamoDB/UpdateTimeToLive.d.ts.map +1 -1
  89. package/lib/AWS/ECS/DescribeTasks.d.ts +1 -1
  90. package/lib/AWS/ECS/DescribeTasks.d.ts.map +1 -1
  91. package/lib/AWS/ECS/ListTasks.d.ts +1 -1
  92. package/lib/AWS/ECS/ListTasks.d.ts.map +1 -1
  93. package/lib/AWS/ECS/RunTask.d.ts +1 -1
  94. package/lib/AWS/ECS/RunTask.d.ts.map +1 -1
  95. package/lib/AWS/ECS/StopTask.d.ts +1 -1
  96. package/lib/AWS/ECS/StopTask.d.ts.map +1 -1
  97. package/lib/AWS/EventBridge/DescribeEventBus.d.ts +1 -1
  98. package/lib/AWS/EventBridge/DescribeEventBus.d.ts.map +1 -1
  99. package/lib/AWS/EventBridge/DescribeRule.d.ts +1 -1
  100. package/lib/AWS/EventBridge/DescribeRule.d.ts.map +1 -1
  101. package/lib/AWS/EventBridge/EventSource.d.ts +2 -2
  102. package/lib/AWS/EventBridge/ListEventBuses.d.ts +1 -1
  103. package/lib/AWS/EventBridge/ListEventBuses.d.ts.map +1 -1
  104. package/lib/AWS/EventBridge/ListRules.d.ts +1 -1
  105. package/lib/AWS/EventBridge/ListRules.d.ts.map +1 -1
  106. package/lib/AWS/EventBridge/ListTargetsByRule.d.ts +1 -1
  107. package/lib/AWS/EventBridge/ListTargetsByRule.d.ts.map +1 -1
  108. package/lib/AWS/EventBridge/PutEvents.d.ts +1 -1
  109. package/lib/AWS/EventBridge/PutEvents.d.ts.map +1 -1
  110. package/lib/AWS/EventBridge/TestEventPattern.d.ts +1 -1
  111. package/lib/AWS/EventBridge/TestEventPattern.d.ts.map +1 -1
  112. package/lib/AWS/EventBridge/ToLambda.d.ts +1 -1
  113. package/lib/AWS/EventBridge/ToLambda.d.ts.map +1 -1
  114. package/lib/AWS/EventBridge/ToQueue.d.ts +1 -1
  115. package/lib/AWS/EventBridge/ToQueue.d.ts.map +1 -1
  116. package/lib/AWS/Kinesis/DescribeAccountSettings.d.ts +1 -1
  117. package/lib/AWS/Kinesis/DescribeAccountSettings.d.ts.map +1 -1
  118. package/lib/AWS/Kinesis/DescribeLimits.d.ts +1 -1
  119. package/lib/AWS/Kinesis/DescribeLimits.d.ts.map +1 -1
  120. package/lib/AWS/Kinesis/DescribeStream.d.ts +1 -1
  121. package/lib/AWS/Kinesis/DescribeStream.d.ts.map +1 -1
  122. package/lib/AWS/Kinesis/DescribeStreamConsumer.d.ts +1 -1
  123. package/lib/AWS/Kinesis/DescribeStreamConsumer.d.ts.map +1 -1
  124. package/lib/AWS/Kinesis/DescribeStreamSummary.d.ts +1 -1
  125. package/lib/AWS/Kinesis/DescribeStreamSummary.d.ts.map +1 -1
  126. package/lib/AWS/Kinesis/GetRecords.d.ts +1 -1
  127. package/lib/AWS/Kinesis/GetRecords.d.ts.map +1 -1
  128. package/lib/AWS/Kinesis/GetResourcePolicy.d.ts +1 -1
  129. package/lib/AWS/Kinesis/GetResourcePolicy.d.ts.map +1 -1
  130. package/lib/AWS/Kinesis/GetShardIterator.d.ts +1 -1
  131. package/lib/AWS/Kinesis/GetShardIterator.d.ts.map +1 -1
  132. package/lib/AWS/Kinesis/ListShards.d.ts +1 -1
  133. package/lib/AWS/Kinesis/ListShards.d.ts.map +1 -1
  134. package/lib/AWS/Kinesis/ListStreamConsumers.d.ts +1 -1
  135. package/lib/AWS/Kinesis/ListStreamConsumers.d.ts.map +1 -1
  136. package/lib/AWS/Kinesis/ListStreams.d.ts +1 -1
  137. package/lib/AWS/Kinesis/ListStreams.d.ts.map +1 -1
  138. package/lib/AWS/Kinesis/ListTagsForResource.d.ts +1 -1
  139. package/lib/AWS/Kinesis/ListTagsForResource.d.ts.map +1 -1
  140. package/lib/AWS/Kinesis/PutRecord.d.ts +1 -1
  141. package/lib/AWS/Kinesis/PutRecord.d.ts.map +1 -1
  142. package/lib/AWS/Kinesis/PutRecords.d.ts +1 -1
  143. package/lib/AWS/Kinesis/PutRecords.d.ts.map +1 -1
  144. package/lib/AWS/Kinesis/StreamSink.d.ts +1 -1
  145. package/lib/AWS/Kinesis/StreamSink.d.ts.map +1 -1
  146. package/lib/AWS/Kinesis/SubscribeToShard.d.ts +1 -1
  147. package/lib/AWS/Kinesis/SubscribeToShard.d.ts.map +1 -1
  148. package/lib/AWS/Lambda/BucketEventSource.d.ts +2 -1
  149. package/lib/AWS/Lambda/BucketEventSource.d.ts.map +1 -1
  150. package/lib/AWS/Lambda/EventBridgeEventSource.d.ts +2 -1
  151. package/lib/AWS/Lambda/EventBridgeEventSource.d.ts.map +1 -1
  152. package/lib/AWS/Lambda/InvokeFunction.d.ts +1 -1
  153. package/lib/AWS/Lambda/InvokeFunction.d.ts.map +1 -1
  154. package/lib/AWS/Lambda/QueueEventSource.d.ts +2 -1
  155. package/lib/AWS/Lambda/QueueEventSource.d.ts.map +1 -1
  156. package/lib/AWS/Lambda/StreamEventSource.d.ts +2 -1
  157. package/lib/AWS/Lambda/StreamEventSource.d.ts.map +1 -1
  158. package/lib/AWS/Lambda/TableEventSource.d.ts +2 -1
  159. package/lib/AWS/Lambda/TableEventSource.d.ts.map +1 -1
  160. package/lib/AWS/Lambda/TopicEventSource.d.ts +2 -1
  161. package/lib/AWS/Lambda/TopicEventSource.d.ts.map +1 -1
  162. package/lib/AWS/RDS/Connect.d.ts +1 -1
  163. package/lib/AWS/RDS/Connect.d.ts.map +1 -1
  164. package/lib/AWS/RDSData/BatchExecuteStatement.d.ts +1 -1
  165. package/lib/AWS/RDSData/BatchExecuteStatement.d.ts.map +1 -1
  166. package/lib/AWS/RDSData/BeginTransaction.d.ts +1 -1
  167. package/lib/AWS/RDSData/BeginTransaction.d.ts.map +1 -1
  168. package/lib/AWS/RDSData/CommitTransaction.d.ts +1 -1
  169. package/lib/AWS/RDSData/CommitTransaction.d.ts.map +1 -1
  170. package/lib/AWS/RDSData/ExecuteSql.d.ts +1 -1
  171. package/lib/AWS/RDSData/ExecuteSql.d.ts.map +1 -1
  172. package/lib/AWS/RDSData/ExecuteStatement.d.ts +1 -1
  173. package/lib/AWS/RDSData/ExecuteStatement.d.ts.map +1 -1
  174. package/lib/AWS/RDSData/RollbackTransaction.d.ts +1 -1
  175. package/lib/AWS/RDSData/RollbackTransaction.d.ts.map +1 -1
  176. package/lib/AWS/S3/AbortMultipartUpload.d.ts +1 -1
  177. package/lib/AWS/S3/AbortMultipartUpload.d.ts.map +1 -1
  178. package/lib/AWS/S3/CompleteMultipartUpload.d.ts +1 -1
  179. package/lib/AWS/S3/CompleteMultipartUpload.d.ts.map +1 -1
  180. package/lib/AWS/S3/CopyObject.d.ts +1 -1
  181. package/lib/AWS/S3/CopyObject.d.ts.map +1 -1
  182. package/lib/AWS/S3/CreateMultipartUpload.d.ts +1 -1
  183. package/lib/AWS/S3/CreateMultipartUpload.d.ts.map +1 -1
  184. package/lib/AWS/S3/DeleteObject.d.ts +1 -1
  185. package/lib/AWS/S3/DeleteObject.d.ts.map +1 -1
  186. package/lib/AWS/S3/GetObject.d.ts +1 -1
  187. package/lib/AWS/S3/GetObject.d.ts.map +1 -1
  188. package/lib/AWS/S3/HeadObject.d.ts +1 -1
  189. package/lib/AWS/S3/HeadObject.d.ts.map +1 -1
  190. package/lib/AWS/S3/ListObjectsV2.d.ts +1 -1
  191. package/lib/AWS/S3/ListObjectsV2.d.ts.map +1 -1
  192. package/lib/AWS/S3/PutObject.d.ts +1 -1
  193. package/lib/AWS/S3/PutObject.d.ts.map +1 -1
  194. package/lib/AWS/S3/UploadPart.d.ts +1 -1
  195. package/lib/AWS/S3/UploadPart.d.ts.map +1 -1
  196. package/lib/AWS/SNS/AddPermission.d.ts +1 -1
  197. package/lib/AWS/SNS/AddPermission.d.ts.map +1 -1
  198. package/lib/AWS/SNS/ConfirmSubscription.d.ts +1 -1
  199. package/lib/AWS/SNS/ConfirmSubscription.d.ts.map +1 -1
  200. package/lib/AWS/SNS/GetDataProtectionPolicy.d.ts +1 -1
  201. package/lib/AWS/SNS/GetDataProtectionPolicy.d.ts.map +1 -1
  202. package/lib/AWS/SNS/GetSubscriptionAttributes.d.ts +1 -1
  203. package/lib/AWS/SNS/GetSubscriptionAttributes.d.ts.map +1 -1
  204. package/lib/AWS/SNS/GetTopicAttributes.d.ts +1 -1
  205. package/lib/AWS/SNS/GetTopicAttributes.d.ts.map +1 -1
  206. package/lib/AWS/SNS/ListSubscriptions.d.ts +1 -1
  207. package/lib/AWS/SNS/ListSubscriptions.d.ts.map +1 -1
  208. package/lib/AWS/SNS/ListSubscriptionsByTopic.d.ts +1 -1
  209. package/lib/AWS/SNS/ListSubscriptionsByTopic.d.ts.map +1 -1
  210. package/lib/AWS/SNS/ListTagsForResource.d.ts +1 -1
  211. package/lib/AWS/SNS/ListTagsForResource.d.ts.map +1 -1
  212. package/lib/AWS/SNS/ListTopics.d.ts +1 -1
  213. package/lib/AWS/SNS/ListTopics.d.ts.map +1 -1
  214. package/lib/AWS/SNS/Publish.d.ts +1 -1
  215. package/lib/AWS/SNS/Publish.d.ts.map +1 -1
  216. package/lib/AWS/SNS/PublishBatch.d.ts +1 -1
  217. package/lib/AWS/SNS/PublishBatch.d.ts.map +1 -1
  218. package/lib/AWS/SNS/PutDataProtectionPolicy.d.ts +1 -1
  219. package/lib/AWS/SNS/PutDataProtectionPolicy.d.ts.map +1 -1
  220. package/lib/AWS/SNS/RemovePermission.d.ts +1 -1
  221. package/lib/AWS/SNS/RemovePermission.d.ts.map +1 -1
  222. package/lib/AWS/SNS/SetSubscriptionAttributes.d.ts +1 -1
  223. package/lib/AWS/SNS/SetSubscriptionAttributes.d.ts.map +1 -1
  224. package/lib/AWS/SNS/SetTopicAttributes.d.ts +1 -1
  225. package/lib/AWS/SNS/SetTopicAttributes.d.ts.map +1 -1
  226. package/lib/AWS/SNS/TagResource.d.ts +1 -1
  227. package/lib/AWS/SNS/TagResource.d.ts.map +1 -1
  228. package/lib/AWS/SNS/TopicSink.d.ts +1 -1
  229. package/lib/AWS/SNS/TopicSink.d.ts.map +1 -1
  230. package/lib/AWS/SNS/UntagResource.d.ts +1 -1
  231. package/lib/AWS/SNS/UntagResource.d.ts.map +1 -1
  232. package/lib/AWS/SQS/DeleteMessage.d.ts +1 -1
  233. package/lib/AWS/SQS/DeleteMessage.d.ts.map +1 -1
  234. package/lib/AWS/SQS/DeleteMessageBatch.d.ts +1 -1
  235. package/lib/AWS/SQS/DeleteMessageBatch.d.ts.map +1 -1
  236. package/lib/AWS/SQS/QueueSink.d.ts +1 -1
  237. package/lib/AWS/SQS/QueueSink.d.ts.map +1 -1
  238. package/lib/AWS/SQS/ReceiveMessage.d.ts +1 -1
  239. package/lib/AWS/SQS/ReceiveMessage.d.ts.map +1 -1
  240. package/lib/AWS/SQS/SendMessage.d.ts +1 -1
  241. package/lib/AWS/SQS/SendMessage.d.ts.map +1 -1
  242. package/lib/AWS/SQS/SendMessageBatch.d.ts +1 -1
  243. package/lib/AWS/SQS/SendMessageBatch.d.ts.map +1 -1
  244. package/lib/AWS/SecretsManager/DescribeSecret.d.ts +1 -1
  245. package/lib/AWS/SecretsManager/DescribeSecret.d.ts.map +1 -1
  246. package/lib/AWS/SecretsManager/GetRandomPassword.d.ts +1 -1
  247. package/lib/AWS/SecretsManager/GetRandomPassword.d.ts.map +1 -1
  248. package/lib/AWS/SecretsManager/GetSecretValue.d.ts +1 -1
  249. package/lib/AWS/SecretsManager/GetSecretValue.d.ts.map +1 -1
  250. package/lib/AWS/SecretsManager/ListSecrets.d.ts +1 -1
  251. package/lib/AWS/SecretsManager/ListSecrets.d.ts.map +1 -1
  252. package/lib/AWS/SecretsManager/PutSecretValue.d.ts +1 -1
  253. package/lib/AWS/SecretsManager/PutSecretValue.d.ts.map +1 -1
  254. package/lib/Binding.d.ts +1 -1
  255. package/lib/Binding.d.ts.map +1 -1
  256. package/lib/Bundle/Docker.d.ts.map +1 -1
  257. package/lib/Bundle/Docker.js +12 -13
  258. package/lib/Bundle/Docker.js.map +1 -1
  259. package/lib/Cli/commands/deploy.d.ts.map +1 -1
  260. package/lib/Cli/commands/deploy.js +1 -0
  261. package/lib/Cli/commands/deploy.js.map +1 -1
  262. package/lib/Cloudflare/AiGateway/AiGatewayBinding.d.ts +8 -7
  263. package/lib/Cloudflare/AiGateway/AiGatewayBinding.d.ts.map +1 -1
  264. package/lib/Cloudflare/AiGateway/AiGatewayBinding.js +2 -6
  265. package/lib/Cloudflare/AiGateway/AiGatewayBinding.js.map +1 -1
  266. package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDatasetBinding.d.ts +4 -3
  267. package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDatasetBinding.d.ts.map +1 -1
  268. package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDatasetBinding.js +2 -1
  269. package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDatasetBinding.js.map +1 -1
  270. package/lib/Cloudflare/Artifacts/ArtifactsBinding.d.ts +8 -7
  271. package/lib/Cloudflare/Artifacts/ArtifactsBinding.d.ts.map +1 -1
  272. package/lib/Cloudflare/Artifacts/ArtifactsBinding.js +2 -2
  273. package/lib/Cloudflare/Artifacts/ArtifactsBinding.js.map +1 -1
  274. package/lib/Cloudflare/D1/D1Connection.d.ts +12 -10
  275. package/lib/Cloudflare/D1/D1Connection.d.ts.map +1 -1
  276. package/lib/Cloudflare/D1/D1Connection.js +2 -2
  277. package/lib/Cloudflare/D1/D1Connection.js.map +1 -1
  278. package/lib/Cloudflare/D1/D1Database.js +1 -1
  279. package/lib/Cloudflare/D1/D1Database.js.map +1 -1
  280. package/lib/Cloudflare/D1/D1Migrations.d.ts +2 -2
  281. package/lib/Cloudflare/D1/D1Migrations.d.ts.map +1 -1
  282. package/lib/Cloudflare/Email/SendEmailBinding.d.ts +5 -4
  283. package/lib/Cloudflare/Email/SendEmailBinding.d.ts.map +1 -1
  284. package/lib/Cloudflare/Email/SendEmailBinding.js +2 -1
  285. package/lib/Cloudflare/Email/SendEmailBinding.js.map +1 -1
  286. package/lib/Cloudflare/Hyperdrive/HyperdriveBinding.d.ts +10 -8
  287. package/lib/Cloudflare/Hyperdrive/HyperdriveBinding.d.ts.map +1 -1
  288. package/lib/Cloudflare/Hyperdrive/HyperdriveBinding.js +2 -2
  289. package/lib/Cloudflare/Hyperdrive/HyperdriveBinding.js.map +1 -1
  290. package/lib/Cloudflare/Images/ImagesBinding.d.ts +5 -4
  291. package/lib/Cloudflare/Images/ImagesBinding.d.ts.map +1 -1
  292. package/lib/Cloudflare/Images/ImagesBinding.js +4 -2
  293. package/lib/Cloudflare/Images/ImagesBinding.js.map +1 -1
  294. package/lib/Cloudflare/KV/KVNamespaceBinding.d.ts +33 -32
  295. package/lib/Cloudflare/KV/KVNamespaceBinding.d.ts.map +1 -1
  296. package/lib/Cloudflare/KV/KVNamespaceBinding.js +5 -2
  297. package/lib/Cloudflare/KV/KVNamespaceBinding.js.map +1 -1
  298. package/lib/Cloudflare/Queue/QueueBinding.d.ts +5 -4
  299. package/lib/Cloudflare/Queue/QueueBinding.d.ts.map +1 -1
  300. package/lib/Cloudflare/Queue/QueueBinding.js +2 -2
  301. package/lib/Cloudflare/Queue/QueueBinding.js.map +1 -1
  302. package/lib/Cloudflare/Queue/QueueEventSource.d.ts +1 -2
  303. package/lib/Cloudflare/Queue/QueueEventSource.d.ts.map +1 -1
  304. package/lib/Cloudflare/R2/R2BucketBinding.d.ts +13 -12
  305. package/lib/Cloudflare/R2/R2BucketBinding.d.ts.map +1 -1
  306. package/lib/Cloudflare/R2/R2BucketBinding.js +2 -2
  307. package/lib/Cloudflare/R2/R2BucketBinding.js.map +1 -1
  308. package/lib/Cloudflare/SecretsStore/SecretBinding.d.ts +5 -4
  309. package/lib/Cloudflare/SecretsStore/SecretBinding.d.ts.map +1 -1
  310. package/lib/Cloudflare/SecretsStore/SecretBinding.js +2 -2
  311. package/lib/Cloudflare/SecretsStore/SecretBinding.js.map +1 -1
  312. package/lib/Cloudflare/StateStore/Api.d.ts +1 -1
  313. package/lib/Cloudflare/Workers/CronEventSource.d.ts +1 -2
  314. package/lib/Cloudflare/Workers/CronEventSource.d.ts.map +1 -1
  315. package/lib/Cloudflare/Workers/DurableObjectNamespace.d.ts.map +1 -1
  316. package/lib/Cloudflare/Workers/DurableObjectNamespace.js +6 -3
  317. package/lib/Cloudflare/Workers/DurableObjectNamespace.js.map +1 -1
  318. package/lib/Cloudflare/Workers/DynamicWorkerLoader.d.ts.map +1 -1
  319. package/lib/Cloudflare/Workers/DynamicWorkerLoader.js +3 -3
  320. package/lib/Cloudflare/Workers/DynamicWorkerLoader.js.map +1 -1
  321. package/lib/Cloudflare/Workers/Fetch.d.ts +1 -1
  322. package/lib/Cloudflare/Workers/Fetch.d.ts.map +1 -1
  323. package/lib/Cloudflare/Workers/RpcAsync.d.ts +55 -0
  324. package/lib/Cloudflare/Workers/RpcAsync.d.ts.map +1 -1
  325. package/lib/Cloudflare/Workers/RpcAsync.js +55 -0
  326. package/lib/Cloudflare/Workers/RpcAsync.js.map +1 -1
  327. package/lib/Cloudflare/Workers/Worker.d.ts +3 -3
  328. package/lib/Cloudflare/Workers/Worker.d.ts.map +1 -1
  329. package/lib/Cloudflare/Workers/Worker.js +9 -2
  330. package/lib/Cloudflare/Workers/Worker.js.map +1 -1
  331. package/lib/Cloudflare/Workers/WorkerRuntimeContext.d.ts.map +1 -1
  332. package/lib/Cloudflare/Workers/WorkerRuntimeContext.js +2 -0
  333. package/lib/Cloudflare/Workers/WorkerRuntimeContext.js.map +1 -1
  334. package/lib/Cloudflare/Workers/Workflow.d.ts +4 -4
  335. package/lib/Cloudflare/Workers/Workflow.d.ts.map +1 -1
  336. package/lib/Cloudflare/Workers/Workflow.js +6 -3
  337. package/lib/Cloudflare/Workers/Workflow.js.map +1 -1
  338. package/lib/Neon/Branch.js +1 -1
  339. package/lib/Neon/Branch.js.map +1 -1
  340. package/lib/Neon/Migrations.d.ts +1 -1
  341. package/lib/Neon/Migrations.d.ts.map +1 -1
  342. package/lib/Neon/Project.d.ts.map +1 -1
  343. package/lib/Neon/Project.js +1 -15
  344. package/lib/Neon/Project.js.map +1 -1
  345. package/lib/Phase.d.ts +2 -2
  346. package/lib/Phase.d.ts.map +1 -1
  347. package/lib/Phase.js +2 -1
  348. package/lib/Phase.js.map +1 -1
  349. package/lib/Planetscale/AuthProvider.d.ts +59 -0
  350. package/lib/Planetscale/AuthProvider.d.ts.map +1 -0
  351. package/lib/Planetscale/AuthProvider.js +131 -0
  352. package/lib/Planetscale/AuthProvider.js.map +1 -0
  353. package/lib/Planetscale/Branch.d.ts +113 -0
  354. package/lib/Planetscale/Branch.d.ts.map +1 -0
  355. package/lib/Planetscale/Branch.js +287 -0
  356. package/lib/Planetscale/Branch.js.map +1 -0
  357. package/lib/Planetscale/Credentials.d.ts +35 -0
  358. package/lib/Planetscale/Credentials.d.ts.map +1 -0
  359. package/lib/Planetscale/Credentials.js +56 -0
  360. package/lib/Planetscale/Credentials.js.map +1 -0
  361. package/lib/Planetscale/Database.d.ts +117 -0
  362. package/lib/Planetscale/Database.d.ts.map +1 -0
  363. package/lib/Planetscale/Database.js +1 -0
  364. package/lib/Planetscale/Database.js.map +1 -0
  365. package/lib/Planetscale/MySQL/MySQLBranch.d.ts +86 -0
  366. package/lib/Planetscale/MySQL/MySQLBranch.d.ts.map +1 -0
  367. package/lib/Planetscale/MySQL/MySQLBranch.js +14 -0
  368. package/lib/Planetscale/MySQL/MySQLBranch.js.map +1 -0
  369. package/lib/Planetscale/MySQL/MySQLClusterSize.d.ts +23 -0
  370. package/lib/Planetscale/MySQL/MySQLClusterSize.d.ts.map +1 -0
  371. package/lib/Planetscale/MySQL/MySQLClusterSize.js +44 -0
  372. package/lib/Planetscale/MySQL/MySQLClusterSize.js.map +1 -0
  373. package/lib/Planetscale/MySQL/MySQLDatabase.d.ts +119 -0
  374. package/lib/Planetscale/MySQL/MySQLDatabase.d.ts.map +1 -0
  375. package/lib/Planetscale/MySQL/MySQLDatabase.js +237 -0
  376. package/lib/Planetscale/MySQL/MySQLDatabase.js.map +1 -0
  377. package/lib/Planetscale/MySQL/MySQLMigrations.d.ts +18 -0
  378. package/lib/Planetscale/MySQL/MySQLMigrations.d.ts.map +1 -0
  379. package/lib/Planetscale/MySQL/MySQLMigrations.js +157 -0
  380. package/lib/Planetscale/MySQL/MySQLMigrations.js.map +1 -0
  381. package/lib/Planetscale/MySQL/MySQLOrigin.d.ts +15 -0
  382. package/lib/Planetscale/MySQL/MySQLOrigin.d.ts.map +1 -0
  383. package/lib/Planetscale/MySQL/MySQLOrigin.js +2 -0
  384. package/lib/Planetscale/MySQL/MySQLOrigin.js.map +1 -0
  385. package/lib/Planetscale/MySQL/MySQLPassword.d.ts +115 -0
  386. package/lib/Planetscale/MySQL/MySQLPassword.d.ts.map +1 -0
  387. package/lib/Planetscale/MySQL/MySQLPassword.js +197 -0
  388. package/lib/Planetscale/MySQL/MySQLPassword.js.map +1 -0
  389. package/lib/Planetscale/MySQL/index.d.ts +6 -0
  390. package/lib/Planetscale/MySQL/index.d.ts.map +1 -0
  391. package/lib/Planetscale/MySQL/index.js +6 -0
  392. package/lib/Planetscale/MySQL/index.js.map +1 -0
  393. package/lib/Planetscale/Postgres/PostgresBranch.d.ts +67 -0
  394. package/lib/Planetscale/Postgres/PostgresBranch.d.ts.map +1 -0
  395. package/lib/Planetscale/Postgres/PostgresBranch.js +14 -0
  396. package/lib/Planetscale/Postgres/PostgresBranch.js.map +1 -0
  397. package/lib/Planetscale/Postgres/PostgresClusterSize.d.ts +44 -0
  398. package/lib/Planetscale/Postgres/PostgresClusterSize.d.ts.map +1 -0
  399. package/lib/Planetscale/Postgres/PostgresClusterSize.js +72 -0
  400. package/lib/Planetscale/Postgres/PostgresClusterSize.js.map +1 -0
  401. package/lib/Planetscale/Postgres/PostgresDatabase.d.ts +73 -0
  402. package/lib/Planetscale/Postgres/PostgresDatabase.d.ts.map +1 -0
  403. package/lib/Planetscale/Postgres/PostgresDatabase.js +241 -0
  404. package/lib/Planetscale/Postgres/PostgresDatabase.js.map +1 -0
  405. package/lib/Planetscale/Postgres/PostgresDefaultRole.d.ts +85 -0
  406. package/lib/Planetscale/Postgres/PostgresDefaultRole.d.ts.map +1 -0
  407. package/lib/Planetscale/Postgres/PostgresDefaultRole.js +142 -0
  408. package/lib/Planetscale/Postgres/PostgresDefaultRole.js.map +1 -0
  409. package/lib/Planetscale/Postgres/PostgresMigrations.d.ts +18 -0
  410. package/lib/Planetscale/Postgres/PostgresMigrations.d.ts.map +1 -0
  411. package/lib/Planetscale/Postgres/PostgresMigrations.js +148 -0
  412. package/lib/Planetscale/Postgres/PostgresMigrations.js.map +1 -0
  413. package/lib/Planetscale/Postgres/PostgresOrigin.d.ts +15 -0
  414. package/lib/Planetscale/Postgres/PostgresOrigin.d.ts.map +1 -0
  415. package/lib/Planetscale/Postgres/PostgresOrigin.js +2 -0
  416. package/lib/Planetscale/Postgres/PostgresOrigin.js.map +1 -0
  417. package/lib/Planetscale/Postgres/PostgresRole.d.ts +121 -0
  418. package/lib/Planetscale/Postgres/PostgresRole.d.ts.map +1 -0
  419. package/lib/Planetscale/Postgres/PostgresRole.js +228 -0
  420. package/lib/Planetscale/Postgres/PostgresRole.js.map +1 -0
  421. package/lib/Planetscale/Postgres/index.d.ts +7 -0
  422. package/lib/Planetscale/Postgres/index.d.ts.map +1 -0
  423. package/lib/Planetscale/Postgres/index.js +7 -0
  424. package/lib/Planetscale/Postgres/index.js.map +1 -0
  425. package/lib/Planetscale/Providers.d.ts +25 -0
  426. package/lib/Planetscale/Providers.d.ts.map +1 -0
  427. package/lib/Planetscale/Providers.js +40 -0
  428. package/lib/Planetscale/Providers.js.map +1 -0
  429. package/lib/Planetscale/Util.d.ts +182 -0
  430. package/lib/Planetscale/Util.d.ts.map +1 -0
  431. package/lib/Planetscale/Util.js +98 -0
  432. package/lib/Planetscale/Util.js.map +1 -0
  433. package/lib/Planetscale/index.d.ts +9 -0
  434. package/lib/Planetscale/index.d.ts.map +1 -0
  435. package/lib/Planetscale/index.js +9 -0
  436. package/lib/Planetscale/index.js.map +1 -0
  437. package/lib/Platform.d.ts.map +1 -1
  438. package/lib/Platform.js +7 -2
  439. package/lib/Platform.js.map +1 -1
  440. package/lib/RuntimeContext.d.ts +7 -3
  441. package/lib/RuntimeContext.d.ts.map +1 -1
  442. package/lib/RuntimeContext.js +3 -2
  443. package/lib/RuntimeContext.js.map +1 -1
  444. package/lib/Server/S3BucketEventSource.d.ts +1 -1
  445. package/lib/Server/S3BucketEventSource.d.ts.map +1 -1
  446. package/lib/{Neon → Sql}/SqlFile.d.ts +2 -0
  447. package/lib/Sql/SqlFile.d.ts.map +1 -0
  448. package/lib/{Neon → Sql}/SqlFile.js +14 -0
  449. package/lib/Sql/SqlFile.js.map +1 -0
  450. package/lib/Sql/index.d.ts +2 -0
  451. package/lib/Sql/index.d.ts.map +1 -0
  452. package/lib/Sql/index.js +2 -0
  453. package/lib/Sql/index.js.map +1 -0
  454. package/lib/tsconfig.test.tsbuildinfo +1 -1
  455. package/package.json +20 -6
  456. package/src/Binding.ts +1 -1
  457. package/src/Bundle/Docker.ts +12 -15
  458. package/src/Cli/commands/deploy.ts +1 -0
  459. package/src/Cloudflare/AiGateway/AiGatewayBinding.ts +11 -16
  460. package/src/Cloudflare/AnalyticsEngine/AnalyticsEngineDatasetBinding.ts +7 -9
  461. package/src/Cloudflare/Artifacts/ArtifactsBinding.ts +11 -22
  462. package/src/Cloudflare/D1/D1Connection.ts +31 -18
  463. package/src/Cloudflare/D1/D1Database.ts +1 -1
  464. package/src/Cloudflare/D1/D1Migrations.ts +2 -2
  465. package/src/Cloudflare/Email/SendEmailBinding.ts +7 -5
  466. package/src/Cloudflare/Hyperdrive/HyperdriveBinding.ts +16 -12
  467. package/src/Cloudflare/Images/ImagesBinding.ts +8 -8
  468. package/src/Cloudflare/KV/KVNamespaceBinding.ts +38 -38
  469. package/src/Cloudflare/Queue/QueueBinding.ts +7 -6
  470. package/src/Cloudflare/R2/R2BucketBinding.ts +16 -19
  471. package/src/Cloudflare/SecretsStore/SecretBinding.ts +11 -13
  472. package/src/Cloudflare/Workers/DurableObjectNamespace.ts +6 -6
  473. package/src/Cloudflare/Workers/DynamicWorkerLoader.ts +4 -5
  474. package/src/Cloudflare/Workers/RpcAsync.ts +55 -0
  475. package/src/Cloudflare/Workers/Worker.ts +17 -5
  476. package/src/Cloudflare/Workers/WorkerRuntimeContext.ts +2 -0
  477. package/src/Cloudflare/Workers/Workflow.ts +10 -11
  478. package/src/Neon/Branch.ts +1 -1
  479. package/src/Neon/Migrations.ts +1 -1
  480. package/src/Neon/Project.ts +6 -20
  481. package/src/Phase.ts +2 -0
  482. package/src/Planetscale/AuthProvider.ts +285 -0
  483. package/src/Planetscale/Branch.ts +508 -0
  484. package/src/Planetscale/Credentials.ts +96 -0
  485. package/src/Planetscale/Database.ts +129 -0
  486. package/src/Planetscale/MySQL/MySQLBranch.ts +112 -0
  487. package/src/Planetscale/MySQL/MySQLClusterSize.ts +102 -0
  488. package/src/Planetscale/MySQL/MySQLDatabase.ts +446 -0
  489. package/src/Planetscale/MySQL/MySQLMigrations.ts +271 -0
  490. package/src/Planetscale/MySQL/MySQLOrigin.ts +15 -0
  491. package/src/Planetscale/MySQL/MySQLPassword.ts +387 -0
  492. package/src/Planetscale/MySQL/index.ts +5 -0
  493. package/src/Planetscale/Postgres/PostgresBranch.ts +97 -0
  494. package/src/Planetscale/Postgres/PostgresClusterSize.ts +125 -0
  495. package/src/Planetscale/Postgres/PostgresDatabase.ts +404 -0
  496. package/src/Planetscale/Postgres/PostgresDefaultRole.ts +270 -0
  497. package/src/Planetscale/Postgres/PostgresMigrations.ts +256 -0
  498. package/src/Planetscale/Postgres/PostgresOrigin.ts +15 -0
  499. package/src/Planetscale/Postgres/PostgresRole.ts +469 -0
  500. package/src/Planetscale/Postgres/index.ts +6 -0
  501. package/src/Planetscale/Providers.ts +80 -0
  502. package/src/Planetscale/Util.ts +160 -0
  503. package/src/Planetscale/index.ts +18 -0
  504. package/src/Platform.ts +13 -1
  505. package/src/RuntimeContext.ts +7 -8
  506. package/src/{Neon → Sql}/SqlFile.ts +22 -0
  507. package/src/Sql/index.ts +1 -0
  508. package/lib/Cloudflare/D1/D1SqlFile.d.ts +0 -20
  509. package/lib/Cloudflare/D1/D1SqlFile.d.ts.map +0 -1
  510. package/lib/Cloudflare/D1/D1SqlFile.js +0 -46
  511. package/lib/Cloudflare/D1/D1SqlFile.js.map +0 -1
  512. package/lib/Neon/SqlFile.d.ts.map +0 -1
  513. package/lib/Neon/SqlFile.js.map +0 -1
  514. package/src/Cloudflare/D1/D1SqlFile.ts +0 -55
@@ -0,0 +1,287 @@
1
+ import { Credentials } from "@distilled.cloud/planetscale/Credentials";
2
+ import * as ops from "@distilled.cloud/planetscale/Operations";
3
+ import * as Effect from "effect/Effect";
4
+ import { Unowned } from "../AdoptPolicy.js";
5
+ import { isResolved } from "../Diff.js";
6
+ import { createPhysicalName } from "../PhysicalName.js";
7
+ import * as Provider from "../Provider.js";
8
+ import { hashImports, hashMigrations } from "../Sql/SqlFile.js";
9
+ import { ensureMySQLProductionBranchClusterSize } from "./MySQL/MySQLClusterSize.js";
10
+ import { ensurePostgresProductionBranchClusterSize, toPostgresClusterSku, } from "./Postgres/PostgresClusterSize.js";
11
+ import { DEFAULT_MIGRATIONS_TABLE, PlanetscaleConflict, isKnownError, recordsEqual, waitForBranchReady, } from "./Util.js";
12
+ const resolveDatabase = (database) => {
13
+ const ref = database;
14
+ if (!ref)
15
+ return { name: "" };
16
+ return typeof ref === "string"
17
+ ? { name: ref }
18
+ : { name: ref.name, organization: ref.organization };
19
+ };
20
+ const resolveParent = (parent) => {
21
+ const ref = parent;
22
+ return !ref ? "main" : typeof ref === "string" ? ref : ref.name;
23
+ };
24
+ const createBranchName = (id, name) => Effect.gen(function* () {
25
+ return (name ??
26
+ (yield* createPhysicalName({ id, lowercase: true, maxLength: 63 })));
27
+ });
28
+ /**
29
+ * Build a branch provider for a specific PlanetScale engine. The
30
+ * caller supplies the typed `Resource` token and the engine's migration
31
+ * runners; everything else (observe / ensure / sync / delete) is shared.
32
+ */
33
+ export const makeBranchProvider = (opts) => Provider.effect(opts.resource, Effect.gen(function* () {
34
+ const rootDir = yield* Effect.sync(() => process.cwd());
35
+ const createBranch = yield* ops.createBranch;
36
+ const getBranch = yield* ops.getBranch;
37
+ const updateBranch = yield* ops.updateBranch;
38
+ const deleteBranch = yield* ops.deleteBranch;
39
+ const promoteBranch = yield* ops.promoteBranch;
40
+ const demoteBranch = yield* ops.demoteBranch;
41
+ const enableSafe = yield* ops.enableSafeMigrations;
42
+ const disableSafe = yield* ops.disableSafeMigrations;
43
+ const { runMigrations, runImports } = opts.runners;
44
+ return {
45
+ stables: ["organization", "database"],
46
+ diff: Effect.fn(function* ({ news, olds, output }) {
47
+ if (!isResolved(news))
48
+ return undefined;
49
+ const newDb = resolveDatabase(news.database).name;
50
+ const oldDbRef = output?.database ?? olds.database;
51
+ if (oldDbRef) {
52
+ const oldDb = resolveDatabase(oldDbRef).name;
53
+ if (newDb !== oldDb) {
54
+ return { action: "replace" };
55
+ }
56
+ }
57
+ const newParent = resolveParent(news.parentBranch);
58
+ const oldParent = output?.parentBranch ?? resolveParent(olds.parentBranch);
59
+ if (newParent !== oldParent) {
60
+ return { action: "replace" };
61
+ }
62
+ if (news.region?.slug &&
63
+ output?.region?.slug &&
64
+ news.region.slug !== output.region.slug) {
65
+ return { action: "replace" };
66
+ }
67
+ if (news.migrationsDir) {
68
+ const newHashes = yield* hashMigrations(news.migrationsDir);
69
+ if (!recordsEqual(newHashes, output?.migrationsHashes ?? {})) {
70
+ return { action: "update" };
71
+ }
72
+ if ((news.migrationsTable ?? DEFAULT_MIGRATIONS_TABLE) !==
73
+ (output?.migrationsTable ?? DEFAULT_MIGRATIONS_TABLE)) {
74
+ return { action: "update" };
75
+ }
76
+ }
77
+ if (news.importFiles?.length) {
78
+ const newHashes = yield* hashImports(news.importFiles, rootDir);
79
+ if (!recordsEqual(newHashes, output?.importHashes ?? {})) {
80
+ return { action: "update" };
81
+ }
82
+ }
83
+ return undefined;
84
+ }),
85
+ read: Effect.fn(function* ({ id, olds, output }) {
86
+ // If we have neither a cached output nor a usable `olds.database`
87
+ // there's no way to identify which branch to refresh — most often
88
+ // this is destroy of a partially-created resource whose props
89
+ // never got fully persisted. Return `undefined` so the engine
90
+ // treats it as already-gone and drops the state entry.
91
+ if (!output && !olds?.database) {
92
+ return undefined;
93
+ }
94
+ const dbInfo = output
95
+ ? { name: output.database, organization: output.organization }
96
+ : resolveDatabase(olds.database);
97
+ const { organization: envOrg } = yield* Credentials;
98
+ const organization = output?.organization ?? dbInfo.organization ?? envOrg;
99
+ const databaseName = output?.database ?? dbInfo.name;
100
+ const branchName = output?.name ?? (yield* createBranchName(id, olds.name));
101
+ return yield* getBranch({
102
+ organization,
103
+ database: databaseName,
104
+ branch: branchName,
105
+ }).pipe(Effect.map((data) => {
106
+ const attrs = {
107
+ name: data.name,
108
+ organization,
109
+ database: databaseName,
110
+ parentBranch: data.parent_branch ?? "main",
111
+ production: data.production,
112
+ createdAt: data.created_at,
113
+ updatedAt: data.updated_at,
114
+ htmlUrl: data.html_url,
115
+ region: { slug: data.region.slug },
116
+ migrationsDir: output?.migrationsDir ?? olds?.migrationsDir,
117
+ migrationsTable: output?.migrationsTable ?? olds?.migrationsTable,
118
+ migrationsHashes: output?.migrationsHashes ?? {},
119
+ importHashes: output?.importHashes ?? {},
120
+ };
121
+ return output ? attrs : Unowned(attrs);
122
+ }), Effect.catchTag("NotFound", () => Effect.succeed(undefined)));
123
+ }),
124
+ reconcile: Effect.fn(function* ({ id, news, output, session }) {
125
+ const { organization: envOrg } = yield* Credentials;
126
+ const dbInfo = resolveDatabase(news.database);
127
+ const organization = output?.organization ?? dbInfo.organization ?? envOrg;
128
+ const databaseName = output?.database ?? dbInfo.name;
129
+ const desiredBranchName = yield* createBranchName(id, news.name);
130
+ const observedBranchName = output?.name ?? desiredBranchName;
131
+ const parentBranchName = resolveParent(news.parentBranch);
132
+ // If parentBranch is a plain string (an unmanaged branch reference),
133
+ // wait for it to be ready before we touch the child branch. When it
134
+ // is a Branch resource, Alchemy's resource graph already guarantees
135
+ // readiness before this resource's inputs are resolved.
136
+ if (news.parentBranch && typeof news.parentBranch === "string") {
137
+ yield* waitForBranchReady(organization, databaseName, parentBranchName, session);
138
+ }
139
+ // Observe — fetch the live branch state.
140
+ let current = yield* getBranch({
141
+ organization,
142
+ database: databaseName,
143
+ branch: observedBranchName,
144
+ }).pipe(Effect.catchTag("NotFound", () => Effect.succeed(undefined)));
145
+ // Ensure — if missing, create. The parent must be ready before
146
+ // the child can fork from it. PostgreSQL short cluster sizes need
147
+ // to be expanded against the parent's region so the API call lands
148
+ // with a valid sku.
149
+ if (!current) {
150
+ const parent = yield* waitForBranchReady(organization, databaseName, parentBranchName, session);
151
+ const parentClusterSize = news.clusterSize
152
+ ? parent.kind === "postgresql"
153
+ ? toPostgresClusterSku({
154
+ size: news.clusterSize,
155
+ region: parent.region.slug,
156
+ })
157
+ : news.clusterSize
158
+ : undefined;
159
+ yield* session.note("Creating branch...");
160
+ current = yield* createBranch({
161
+ organization,
162
+ database: databaseName,
163
+ name: desiredBranchName,
164
+ parent_branch: parentBranchName,
165
+ backup_id: news.backupId,
166
+ seed_data: news.seedData,
167
+ region: news.region?.slug,
168
+ cluster_size: parentClusterSize,
169
+ });
170
+ }
171
+ if (current.kind !== opts.expectedKind) {
172
+ return yield* Effect.fail(new PlanetscaleConflict({
173
+ message: `Planetscale branch "${current.name}" (database "${databaseName}") has kind ` +
174
+ `"${current.kind}" but this resource is a ${opts.engineLabel}. ` +
175
+ `Use the matching ${current.kind === "mysql" ? "MySQLBranch" : "PostgresBranch"} ` +
176
+ `resource instead.`,
177
+ }));
178
+ }
179
+ yield* waitForBranchReady(organization, databaseName, current.name, session);
180
+ // Sync name — branch names are mutable. Continue subsequent syncs
181
+ // under the name returned by the API.
182
+ if (current.name !== desiredBranchName) {
183
+ current = yield* updateBranch({
184
+ organization,
185
+ database: databaseName,
186
+ branch: current.name,
187
+ new_name: desiredBranchName,
188
+ });
189
+ }
190
+ const branchName = current.name;
191
+ // Sync production status before branch settings that depend on it.
192
+ // PlanetScale only supports explicit branch promotion/demotion for MySQL.
193
+ if (opts.expectedKind === "mysql") {
194
+ const desiredProduction = news.isProduction ?? false;
195
+ if (current.production !== desiredProduction) {
196
+ current = desiredProduction
197
+ ? yield* promoteBranch({
198
+ organization,
199
+ database: databaseName,
200
+ branch: branchName,
201
+ })
202
+ : yield* demoteBranch({
203
+ organization,
204
+ database: databaseName,
205
+ branch: branchName,
206
+ });
207
+ }
208
+ }
209
+ // Sync safeMigrations — observed via `current.safe_migrations`,
210
+ // skip the API call entirely on no-op.
211
+ if (news.safeMigrations !== undefined &&
212
+ current.safe_migrations !== news.safeMigrations) {
213
+ if (news.safeMigrations) {
214
+ yield* enableSafe({
215
+ organization,
216
+ database: databaseName,
217
+ branch: branchName,
218
+ });
219
+ }
220
+ else {
221
+ yield* disableSafe({
222
+ organization,
223
+ database: databaseName,
224
+ branch: branchName,
225
+ });
226
+ }
227
+ }
228
+ // Sync clusterSize — only meaningful on production branches.
229
+ if (news.clusterSize) {
230
+ if (current.kind === "postgresql") {
231
+ yield* ensurePostgresProductionBranchClusterSize(organization, databaseName, branchName, news.clusterSize);
232
+ }
233
+ else {
234
+ yield* ensureMySQLProductionBranchClusterSize(organization, databaseName, branchName, news.clusterSize);
235
+ }
236
+ }
237
+ // Re-read so the returned attributes reflect any mutation.
238
+ const updated = yield* getBranch({
239
+ organization,
240
+ database: databaseName,
241
+ branch: branchName,
242
+ });
243
+ const migrationTarget = {
244
+ organization,
245
+ database: databaseName,
246
+ branch: updated.name,
247
+ };
248
+ const migrationsTable = news.migrationsTable ??
249
+ output?.migrationsTable ??
250
+ DEFAULT_MIGRATIONS_TABLE;
251
+ const migrationsHashes = news.migrationsDir
252
+ ? yield* runMigrations(migrationTarget, news.migrationsDir, migrationsTable)
253
+ : (output?.migrationsHashes ?? {});
254
+ const importHashes = news.importFiles?.length
255
+ ? yield* runImports(migrationTarget, news.importFiles, rootDir, output?.importHashes ?? {})
256
+ : {};
257
+ return {
258
+ name: updated.name,
259
+ organization,
260
+ database: databaseName,
261
+ parentBranch: updated.parent_branch ?? parentBranchName,
262
+ production: updated.production,
263
+ createdAt: updated.created_at,
264
+ updatedAt: updated.updated_at,
265
+ htmlUrl: updated.html_url,
266
+ region: { slug: updated.region.slug },
267
+ migrationsDir: news.migrationsDir,
268
+ migrationsTable: news.migrationsDir ? migrationsTable : undefined,
269
+ migrationsHashes,
270
+ importHashes,
271
+ };
272
+ }),
273
+ delete: Effect.fn(function* ({ output }) {
274
+ // If `read` returned undefined (e.g. destroy of a partially-
275
+ // created branch whose props never finished persisting), there
276
+ // is nothing addressable to delete. Drop the state entry.
277
+ if (!output)
278
+ return;
279
+ yield* deleteBranch({
280
+ organization: output.organization,
281
+ database: output.database,
282
+ branch: output.name,
283
+ }).pipe(Effect.catchTag("NotFound", () => Effect.void), Effect.catchIf(isKnownError("UnprocessableEntity", "The default branch cannot be deleted."), () => Effect.void));
284
+ }),
285
+ };
286
+ }));
287
+ //# sourceMappingURL=Branch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Branch.js","sourceRoot":"","sources":["../../src/Planetscale/Branch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import { Credentials } from "@distilled.cloud/planetscale/Credentials";
2
+ import { ConfigError } from "@distilled.cloud/core/errors";
3
+ import * as Config from "effect/Config";
4
+ import * as Layer from "effect/Layer";
5
+ import * as Redacted from "effect/Redacted";
6
+ import { Profile } from "../Auth/Profile.ts";
7
+ export { Credentials, CredentialsFromEnv, DEFAULT_API_BASE_URL, } from "@distilled.cloud/planetscale/Credentials";
8
+ /**
9
+ * Build a PlanetScale `Credentials` Layer from an explicit token. Useful for
10
+ * tests or when the caller already has credentials in hand.
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * Effect.provide(
15
+ * Planetscale.fromToken({
16
+ * tokenId: "abcd1234",
17
+ * token: "api-token-secret",
18
+ * organization: "my-org",
19
+ * }),
20
+ * )
21
+ * ```
22
+ */
23
+ export declare const fromToken: (input: {
24
+ tokenId: string | Redacted.Redacted<string>;
25
+ token: string | Redacted.Redacted<string>;
26
+ organization: string;
27
+ apiBaseUrl?: string;
28
+ }) => Layer.Layer<Credentials, never, never>;
29
+ /**
30
+ * Build a PlanetScale `Credentials` Layer that resolves credentials via the
31
+ * Alchemy AuthProvider using the configured profile (defaults to "default",
32
+ * overridable with the `ALCHEMY_PROFILE` env/config value).
33
+ */
34
+ export declare const fromAuthProvider: () => Layer.Layer<Credentials, Config.ConfigError | import("../Auth/AuthProvider.ts").AuthError | ConfigError, Profile | import("../index.ts").AuthProviders>;
35
+ //# sourceMappingURL=Credentials.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Credentials.d.ts","sourceRoot":"","sources":["../../src/Planetscale/Credentials.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EAEZ,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAmB,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAO9D,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,0CAA0C,CAAC;AAElD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,SAAS,GAAI,OAAO;IAC/B,OAAO,EAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC5C,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1C,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,2CAYG,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,+JAiC1B,CAAC"}
@@ -0,0 +1,56 @@
1
+ import { Credentials, DEFAULT_API_BASE_URL, } from "@distilled.cloud/planetscale/Credentials";
2
+ import { ConfigError } from "@distilled.cloud/core/errors";
3
+ import * as Config from "effect/Config";
4
+ import * as Effect from "effect/Effect";
5
+ import * as Layer from "effect/Layer";
6
+ import * as Redacted from "effect/Redacted";
7
+ import { getAuthProvider } from "../Auth/AuthProvider.js";
8
+ import { ALCHEMY_PROFILE, Profile } from "../Auth/Profile.js";
9
+ import { PLANETSCALE_AUTH_PROVIDER_NAME, } from "./AuthProvider.js";
10
+ export { Credentials, CredentialsFromEnv, DEFAULT_API_BASE_URL, } from "@distilled.cloud/planetscale/Credentials";
11
+ /**
12
+ * Build a PlanetScale `Credentials` Layer from an explicit token. Useful for
13
+ * tests or when the caller already has credentials in hand.
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * Effect.provide(
18
+ * Planetscale.fromToken({
19
+ * tokenId: "abcd1234",
20
+ * token: "api-token-secret",
21
+ * organization: "my-org",
22
+ * }),
23
+ * )
24
+ * ```
25
+ */
26
+ export const fromToken = (input) => Layer.succeed(Credentials, {
27
+ tokenId: typeof input.token === "string"
28
+ ? Redacted.make(input.token)
29
+ : input.token,
30
+ token: typeof input.token === "string"
31
+ ? Redacted.make(input.token)
32
+ : input.token,
33
+ organization: input.organization,
34
+ apiBaseUrl: input.apiBaseUrl ?? DEFAULT_API_BASE_URL,
35
+ });
36
+ /**
37
+ * Build a PlanetScale `Credentials` Layer that resolves credentials via the
38
+ * Alchemy AuthProvider using the configured profile (defaults to "default",
39
+ * overridable with the `ALCHEMY_PROFILE` env/config value).
40
+ */
41
+ export const fromAuthProvider = () => Layer.effect(Credentials, Effect.gen(function* () {
42
+ const profile = yield* Profile;
43
+ const auth = yield* getAuthProvider(PLANETSCALE_AUTH_PROVIDER_NAME);
44
+ const profileName = yield* ALCHEMY_PROFILE;
45
+ const ci = yield* Config.boolean("CI").pipe(Config.withDefault(false));
46
+ const apiBaseUrl = yield* Config.string("PLANETSCALE_API_BASE_URL").pipe(Config.withDefault(DEFAULT_API_BASE_URL));
47
+ return yield* profile.loadOrConfigure(auth, profileName, { ci }).pipe(Effect.flatMap((config) => auth.read(profileName, config)), Effect.map((creds) => ({
48
+ tokenId: creds.tokenId,
49
+ token: creds.token,
50
+ organization: creds.organization,
51
+ apiBaseUrl,
52
+ })), Effect.mapError((e) => new ConfigError({
53
+ message: `Failed to resolve Planetscale credentials for profile '${profileName}': ${e.message ?? String(e)}`,
54
+ })));
55
+ }));
56
+ //# sourceMappingURL=Credentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Credentials.js","sourceRoot":"","sources":["../../src/Planetscale/Credentials.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,117 @@
1
+ /**
2
+ * Region selector for a PlanetScale Database.
3
+ */
4
+ export interface DatabaseRegion {
5
+ /**
6
+ * Region slug (e.g. `"us-east"`, `"eu-west"`, `"gcp-us-central1"`).
7
+ * @see https://planetscale.com/docs/concepts/regions#available-regions
8
+ */
9
+ slug: "us-east" | "eu-west" | "gcp-us-central1" | (string & {});
10
+ }
11
+ /**
12
+ * Properties shared between {@link MySQLDatabase} and
13
+ * {@link PostgresDatabase}. Engine-specific props live on the per-engine
14
+ * resource types.
15
+ */
16
+ export interface BaseDatabaseProps {
17
+ /**
18
+ * Database name. Must be lowercase. If omitted, a unique name will be
19
+ * generated from the stack/stage/logical-id.
20
+ */
21
+ name?: string;
22
+ /**
23
+ * Region where the database will be created. Cannot be changed after
24
+ * creation. If omitted, the organization's default region is used.
25
+ */
26
+ region?: DatabaseRegion;
27
+ /**
28
+ * Number of replicas for the database. `0` for non-HA, `2+` for HA.
29
+ * Create-only.
30
+ */
31
+ replicas?: number;
32
+ /**
33
+ * Whether deploy requests must be approved by a database administrator
34
+ * other than the request creator.
35
+ */
36
+ requireApprovalForDeploy?: boolean;
37
+ /**
38
+ * Whether to limit branch creation to the same region as the one
39
+ * selected during database creation.
40
+ */
41
+ restrictBranchRegion?: boolean;
42
+ /**
43
+ * Whether the web console can be used on the production branch.
44
+ */
45
+ productionBranchWebConsole?: boolean;
46
+ /**
47
+ * The default branch of the database.
48
+ * @default "main"
49
+ */
50
+ defaultBranch?: string;
51
+ /**
52
+ * Directory containing `.sql` migration files. Files are sorted by numeric
53
+ * prefix (for example `0001_init.sql`) and applied in order against the
54
+ * default branch.
55
+ */
56
+ migrationsDir?: string;
57
+ /**
58
+ * Name of the table used to track applied migrations.
59
+ * @default "planetscale_migrations"
60
+ */
61
+ migrationsTable?: string;
62
+ /**
63
+ * Paths to additional `.sql` files to apply after migrations. Each file is
64
+ * hashed; only files whose contents change are re-applied on later deploys.
65
+ */
66
+ importFiles?: string[];
67
+ }
68
+ /**
69
+ * Output attributes shared by both database engines.
70
+ */
71
+ export interface BaseDatabaseAttributes {
72
+ /** The unique identifier of the database. */
73
+ id: string;
74
+ /** The name of the database. */
75
+ name: string;
76
+ /** The PlanetScale organization slug that owns the database. */
77
+ organization: string;
78
+ /** The current state of the database. */
79
+ state: string;
80
+ /** The default branch name. */
81
+ defaultBranch: string;
82
+ /** The plan tier (e.g. `"hobby"`, `"scaler"`). */
83
+ plan: string;
84
+ /** Time at which the database was created (ISO 8601). */
85
+ createdAt: string;
86
+ /** Time at which the database was last updated (ISO 8601). */
87
+ updatedAt: string;
88
+ /** HTML URL for accessing the database in the dashboard. */
89
+ htmlUrl: string;
90
+ /** The region of the database as reported by PlanetScale. */
91
+ region: DatabaseRegion;
92
+ /** The cluster size that was actually applied. */
93
+ clusterSize: string;
94
+ /** Directory containing migration files, if configured. */
95
+ migrationsDir: string | undefined;
96
+ /** Table used to track applied migrations, if configured. */
97
+ migrationsTable: string | undefined;
98
+ /** Content hashes for the last applied migration files. */
99
+ migrationsHashes: Record<string, string>;
100
+ /** Content hashes for the last applied import files. */
101
+ importHashes: Record<string, string>;
102
+ /**
103
+ * Whether deploy requests must be approved by a database administrator
104
+ * other than the request creator.
105
+ */
106
+ requireApprovalForDeploy: boolean;
107
+ /**
108
+ * Whether to limit branch creation to the same region as the one
109
+ * selected during database creation.
110
+ */
111
+ restrictBranchRegion: boolean;
112
+ /**
113
+ * Whether the web console can be used on the production branch.
114
+ */
115
+ productionBranchWebConsole: boolean;
116
+ }
117
+ //# sourceMappingURL=Database.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Database.d.ts","sourceRoot":"","sources":["../../src/Planetscale/Database.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,iBAAiB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;CACjE;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,MAAM,CAAC,EAAE,cAAc,CAAC;IAExB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAEnC;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B;;OAEG;IACH,0BAA0B,CAAC,EAAE,OAAO,CAAC;IAErC;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,6CAA6C;IAC7C,EAAE,EAAE,MAAM,CAAC;IACX,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,gEAAgE;IAChE,YAAY,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,SAAS,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,SAAS,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,OAAO,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,MAAM,EAAE,cAAc,CAAC;IACvB,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,2DAA2D;IAC3D,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,6DAA6D;IAC7D,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,2DAA2D;IAC3D,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,wDAAwD;IACxD,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC;;;OAGG;IACH,wBAAwB,EAAE,OAAO,CAAC;IAElC;;;OAGG;IACH,oBAAoB,EAAE,OAAO,CAAC;IAE9B;;OAEG;IACH,0BAA0B,EAAE,OAAO,CAAC;CACrC"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=Database.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Database.js","sourceRoot":"","sources":["../../src/Planetscale/Database.ts"],"names":[],"mappings":""}
@@ -0,0 +1,86 @@
1
+ import { Resource } from "../../Resource.ts";
2
+ import { type BaseBranchAttributes, type BaseBranchProps } from "../Branch.ts";
3
+ import type { Providers } from "../Providers.ts";
4
+ import type { MySQLClusterSize } from "./MySQLClusterSize.ts";
5
+ import type { MySQLDatabase } from "./MySQLDatabase.ts";
6
+ /**
7
+ * Properties for creating or updating a {@link MySQLBranch}.
8
+ */
9
+ export interface MySQLBranchProps extends BaseBranchProps {
10
+ /**
11
+ * Whether the branch should be a production branch.
12
+ */
13
+ isProduction: boolean;
14
+ /**
15
+ * The MySQL database. Either a string database name or a
16
+ * {@link MySQLDatabase} resource.
17
+ */
18
+ database: string | MySQLDatabase;
19
+ /**
20
+ * MySQL cluster size for the branch. Required if `backupId` is provided.
21
+ * For non-production branches must be `"PS_DEV"`.
22
+ */
23
+ clusterSize?: MySQLClusterSize;
24
+ /**
25
+ * Parent branch — either a string name or another {@link MySQLBranch}.
26
+ * @default "main"
27
+ */
28
+ parentBranch?: string | MySQLBranch;
29
+ }
30
+ /**
31
+ * Output attributes of a deployed {@link MySQLBranch}.
32
+ */
33
+ export interface MySQLBranchAttributes extends BaseBranchAttributes {
34
+ }
35
+ /**
36
+ * A PlanetScale branch of a {@link MySQLDatabase}. For PostgreSQL branches
37
+ * use {@link PostgresBranch} instead.
38
+ *
39
+ * @section Creating a Branch
40
+ * @example Branch from main
41
+ * ```typescript
42
+ * const branch = yield* Planetscale.MySQLBranch("Feature123", {
43
+ * database: "my-db",
44
+ * parentBranch: "main",
45
+ * isProduction: false,
46
+ * });
47
+ * ```
48
+ *
49
+ * @example Branch from a MySQLDatabase resource
50
+ * ```typescript
51
+ * const db = yield* Planetscale.MySQLDatabase("MyDb", { clusterSize: "PS_10" });
52
+ * const branch = yield* Planetscale.MySQLBranch("Feature456", {
53
+ * database: db,
54
+ * parentBranch: "main",
55
+ * isProduction: false,
56
+ * });
57
+ * ```
58
+ *
59
+ * @section Restoring from Backup
60
+ * @example Branch restored from a backup
61
+ * ```typescript
62
+ * const branch = yield* Planetscale.MySQLBranch("Restored", {
63
+ * database: "my-db",
64
+ * parentBranch: "main",
65
+ * isProduction: true,
66
+ * backupId: "backup-123",
67
+ * clusterSize: "PS_10",
68
+ * });
69
+ * ```
70
+ *
71
+ * @section Migrations and seed data
72
+ * @example Apply migrations on a branch
73
+ * ```typescript
74
+ * const branch = yield* Planetscale.MySQLBranch("Feature123", {
75
+ * database: db,
76
+ * parentBranch: "main",
77
+ * isProduction: false,
78
+ * migrationsDir: "./migrations",
79
+ * importFiles: ["./seed.sql"],
80
+ * });
81
+ * ```
82
+ */
83
+ export type MySQLBranch = Resource<"Planetscale.MySQLBranch", MySQLBranchProps, MySQLBranchAttributes, never, Providers>;
84
+ export declare const MySQLBranch: import("../../Resource.ts").ResourceClass<MySQLBranch>;
85
+ export declare const MySQLBranchProvider: () => import("effect/Layer").Layer<import("../../Provider.ts").Provider<MySQLBranch>, never, import("@distilled.cloud/planetscale/Credentials").Credentials>;
86
+ //# sourceMappingURL=MySQLBranch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MySQLBranch.d.ts","sourceRoot":"","sources":["../../../src/Planetscale/MySQL/MySQLBranch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,eAAe,EAErB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACvD;;OAEG;IACH,YAAY,EAAE,OAAO,CAAC;IAEtB;;;OAGG;IACH,QAAQ,EAAE,MAAM,GAAG,aAAa,CAAC;IAEjC;;;OAGG;IACH,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAE/B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAsB,SAAQ,oBAAoB;CAAG;AAEtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,CAChC,yBAAyB,EACzB,gBAAgB,EAChB,qBAAqB,EACrB,KAAK,EACL,SAAS,CACV,CAAC;AAEF,eAAO,MAAM,WAAW,wDAAmD,CAAC;AAE5E,eAAO,MAAM,mBAAmB,8JAS5B,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { Resource } from "../../Resource.js";
2
+ import { makeBranchProvider, } from "../Branch.js";
3
+ import { runMySQLImports, runMySQLMigrations } from "./MySQLMigrations.js";
4
+ export const MySQLBranch = Resource("Planetscale.MySQLBranch");
5
+ export const MySQLBranchProvider = () => makeBranchProvider({
6
+ resource: MySQLBranch,
7
+ expectedKind: "mysql",
8
+ engineLabel: "MySQLBranch",
9
+ runners: {
10
+ runMigrations: runMySQLMigrations,
11
+ runImports: runMySQLImports,
12
+ },
13
+ });
14
+ //# sourceMappingURL=MySQLBranch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MySQLBranch.js","sourceRoot":"","sources":["../../../src/Planetscale/MySQL/MySQLBranch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAGL,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AA4F3E,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CAAc,yBAAyB,CAAC,CAAC;AAE5E,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE,CACtC,kBAAkB,CAAC;IACjB,QAAQ,EAAE,WAAW;IACrB,YAAY,EAAE,OAAO;IACrB,WAAW,EAAE,aAAa;IAC1B,OAAO,EAAE;QACP,aAAa,EAAE,kBAAkB;QACjC,UAAU,EAAE,eAAe;KAC5B;CACF,CAAC,CAAC"}