alchemy 2.0.0-beta.76 → 2.0.0-beta.78

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 (3442) hide show
  1. package/README.md +1 -1
  2. package/THIRD_PARTY_LICENSES.md +11 -11
  3. package/bin/alchemy.js +1 -1
  4. package/bin/alchemy.js.map +1 -1
  5. package/bin/alchemy.ts +1 -1
  6. package/bin/cli.js +166 -35
  7. package/bin/exec.js +12863 -6308
  8. package/bin/exec.js.map +1 -1
  9. package/bin/exec.ts +1 -1
  10. package/bin/register-oxc.js +38 -0
  11. package/lib/AWS/AMP/Scraper.js +1 -1
  12. package/lib/AWS/AMP/Scraper.js.map +1 -1
  13. package/lib/AWS/ApiGateway/common.d.ts +1 -1
  14. package/lib/AWS/ApiGateway/common.d.ts.map +1 -1
  15. package/lib/AWS/ApiGatewayV2/common.d.ts +1 -1
  16. package/lib/AWS/ApiGatewayV2/common.d.ts.map +1 -1
  17. package/lib/AWS/AppRunner/Service.d.ts +11 -27
  18. package/lib/AWS/AppRunner/Service.d.ts.map +1 -1
  19. package/lib/AWS/AppRunner/Service.js +7 -21
  20. package/lib/AWS/AppRunner/Service.js.map +1 -1
  21. package/lib/AWS/AppSync/common.d.ts +1 -1
  22. package/lib/AWS/AppSync/common.d.ts.map +1 -1
  23. package/lib/AWS/Assets.d.ts +2 -2
  24. package/lib/AWS/Assets.d.ts.map +1 -1
  25. package/lib/AWS/Assets.js +2 -2
  26. package/lib/AWS/Assets.js.map +1 -1
  27. package/lib/AWS/AuthProvider.d.ts +40 -53
  28. package/lib/AWS/AuthProvider.d.ts.map +1 -1
  29. package/lib/AWS/AuthProvider.js +480 -215
  30. package/lib/AWS/AuthProvider.js.map +1 -1
  31. package/lib/AWS/Batch/JobDefinition.d.ts +11 -27
  32. package/lib/AWS/Batch/JobDefinition.d.ts.map +1 -1
  33. package/lib/AWS/Batch/JobDefinition.js +7 -21
  34. package/lib/AWS/Batch/JobDefinition.js.map +1 -1
  35. package/lib/AWS/Bedrock/LanguageModel.d.ts +2 -2
  36. package/lib/AWS/Bedrock/LanguageModel.d.ts.map +1 -1
  37. package/lib/AWS/Bedrock/LanguageModel.js +1 -1
  38. package/lib/AWS/Bedrock/LanguageModel.js.map +1 -1
  39. package/lib/AWS/Bootstrap.d.ts +2 -2
  40. package/lib/AWS/Bootstrap.d.ts.map +1 -1
  41. package/lib/AWS/Budgets/BindingHttp.d.ts +1 -8
  42. package/lib/AWS/Budgets/BindingHttp.d.ts.map +1 -1
  43. package/lib/AWS/Budgets/BindingHttp.js +2 -7
  44. package/lib/AWS/Budgets/BindingHttp.js.map +1 -1
  45. package/lib/AWS/Budgets/DescribeBudgetActionsForBudgetHttp.d.ts.map +1 -1
  46. package/lib/AWS/Budgets/DescribeBudgetActionsForBudgetHttp.js +0 -3
  47. package/lib/AWS/Budgets/DescribeBudgetActionsForBudgetHttp.js.map +1 -1
  48. package/lib/AWS/CloudFront/KvRoutesUpdate.d.ts.map +1 -1
  49. package/lib/AWS/CloudFront/KvRoutesUpdate.js +9 -1
  50. package/lib/AWS/CloudFront/KvRoutesUpdate.js.map +1 -1
  51. package/lib/AWS/CloudMap/internal.d.ts +2 -2
  52. package/lib/AWS/CloudMap/internal.d.ts.map +1 -1
  53. package/lib/AWS/Connection/DbAuthToken.d.ts +2 -1
  54. package/lib/AWS/Connection/DbAuthToken.d.ts.map +1 -1
  55. package/lib/AWS/Credentials.d.ts +2 -2
  56. package/lib/AWS/Credentials.d.ts.map +1 -1
  57. package/lib/AWS/Credentials.js +1 -1
  58. package/lib/AWS/Credentials.js.map +1 -1
  59. package/lib/AWS/DSQL/Connect.d.ts +2 -2
  60. package/lib/AWS/DSQL/Connect.d.ts.map +1 -1
  61. package/lib/AWS/DynamoDB/Table.d.ts.map +1 -1
  62. package/lib/AWS/DynamoDB/Table.js +22 -11
  63. package/lib/AWS/DynamoDB/Table.js.map +1 -1
  64. package/lib/AWS/EC2/GetAmi.d.ts +2 -0
  65. package/lib/AWS/EC2/GetAmi.d.ts.map +1 -1
  66. package/lib/AWS/EC2/Instance.d.ts +11 -27
  67. package/lib/AWS/EC2/Instance.d.ts.map +1 -1
  68. package/lib/AWS/EC2/Instance.js +17 -22
  69. package/lib/AWS/EC2/Instance.js.map +1 -1
  70. package/lib/AWS/EC2/SecurityGroup.d.ts +70 -2
  71. package/lib/AWS/EC2/SecurityGroup.d.ts.map +1 -1
  72. package/lib/AWS/EC2/SecurityGroup.js +256 -66
  73. package/lib/AWS/EC2/SecurityGroup.js.map +1 -1
  74. package/lib/AWS/EC2/SecurityGroupRule.d.ts +43 -9
  75. package/lib/AWS/EC2/SecurityGroupRule.d.ts.map +1 -1
  76. package/lib/AWS/EC2/SecurityGroupRule.js +102 -22
  77. package/lib/AWS/EC2/SecurityGroupRule.js.map +1 -1
  78. package/lib/AWS/EC2/hosted.d.ts +6 -7
  79. package/lib/AWS/EC2/hosted.d.ts.map +1 -1
  80. package/lib/AWS/EC2/hosted.js.map +1 -1
  81. package/lib/AWS/ECR/Image.d.ts +23 -12
  82. package/lib/AWS/ECR/Image.d.ts.map +1 -1
  83. package/lib/AWS/ECR/Image.js +26 -5
  84. package/lib/AWS/ECR/Image.js.map +1 -1
  85. package/lib/AWS/ECR/ImageSource.d.ts +5 -6
  86. package/lib/AWS/ECR/ImageSource.d.ts.map +1 -1
  87. package/lib/AWS/ECR/ImageSource.js.map +1 -1
  88. package/lib/AWS/ECS/EcsDevWatch.d.ts +1 -1
  89. package/lib/AWS/ECS/EcsDevWatch.d.ts.map +1 -1
  90. package/lib/AWS/ECS/FlociServiceProvider.js +2 -2
  91. package/lib/AWS/ECS/FlociTaskProvider.js +2 -2
  92. package/lib/AWS/ECS/Service.d.ts +7 -21
  93. package/lib/AWS/ECS/Service.d.ts.map +1 -1
  94. package/lib/AWS/ECS/Service.js +14 -28
  95. package/lib/AWS/ECS/Service.js.map +1 -1
  96. package/lib/AWS/ECS/Task.d.ts +12 -26
  97. package/lib/AWS/ECS/Task.d.ts.map +1 -1
  98. package/lib/AWS/ECS/Task.js +7 -21
  99. package/lib/AWS/ECS/Task.js.map +1 -1
  100. package/lib/AWS/EKS/KubernetesAdapter.js +4 -4
  101. package/lib/AWS/EKS/internal/podIdentity.d.ts +4 -4
  102. package/lib/AWS/EKS/internal/podIdentity.d.ts.map +1 -1
  103. package/lib/AWS/ElastiCache/CacheCluster.d.ts +60 -0
  104. package/lib/AWS/ElastiCache/CacheCluster.d.ts.map +1 -0
  105. package/lib/AWS/ElastiCache/CacheCluster.js +199 -0
  106. package/lib/AWS/ElastiCache/CacheCluster.js.map +1 -0
  107. package/lib/AWS/ElastiCache/ConnectCacheCluster.d.ts +46 -0
  108. package/lib/AWS/ElastiCache/ConnectCacheCluster.d.ts.map +1 -0
  109. package/lib/AWS/ElastiCache/ConnectCacheCluster.js +5 -0
  110. package/lib/AWS/ElastiCache/ConnectCacheCluster.js.map +1 -0
  111. package/lib/AWS/ElastiCache/ConnectCacheClusterHttp.d.ts +4 -0
  112. package/lib/AWS/ElastiCache/ConnectCacheClusterHttp.d.ts.map +1 -0
  113. package/lib/AWS/ElastiCache/ConnectCacheClusterHttp.js +52 -0
  114. package/lib/AWS/ElastiCache/ConnectCacheClusterHttp.js.map +1 -0
  115. package/lib/AWS/ElastiCache/ConnectReplicationGroup.d.ts +47 -0
  116. package/lib/AWS/ElastiCache/ConnectReplicationGroup.d.ts.map +1 -0
  117. package/lib/AWS/ElastiCache/ConnectReplicationGroup.js +5 -0
  118. package/lib/AWS/ElastiCache/ConnectReplicationGroup.js.map +1 -0
  119. package/lib/AWS/ElastiCache/ConnectReplicationGroupHttp.d.ts +4 -0
  120. package/lib/AWS/ElastiCache/ConnectReplicationGroupHttp.d.ts.map +1 -0
  121. package/lib/AWS/ElastiCache/ConnectReplicationGroupHttp.js +77 -0
  122. package/lib/AWS/ElastiCache/ConnectReplicationGroupHttp.js.map +1 -0
  123. package/lib/AWS/ElastiCache/ReplicationGroup.d.ts +95 -0
  124. package/lib/AWS/ElastiCache/ReplicationGroup.d.ts.map +1 -0
  125. package/lib/AWS/ElastiCache/ReplicationGroup.js +383 -0
  126. package/lib/AWS/ElastiCache/ReplicationGroup.js.map +1 -0
  127. package/lib/AWS/ElastiCache/SubnetGroup.d.ts +39 -0
  128. package/lib/AWS/ElastiCache/SubnetGroup.d.ts.map +1 -0
  129. package/lib/AWS/ElastiCache/SubnetGroup.js +136 -0
  130. package/lib/AWS/ElastiCache/SubnetGroup.js.map +1 -0
  131. package/lib/AWS/ElastiCache/index.d.ts +7 -0
  132. package/lib/AWS/ElastiCache/index.d.ts.map +1 -1
  133. package/lib/AWS/ElastiCache/index.js +7 -0
  134. package/lib/AWS/ElastiCache/index.js.map +1 -1
  135. package/lib/AWS/ElastiCache/internal.d.ts +13 -0
  136. package/lib/AWS/ElastiCache/internal.d.ts.map +1 -0
  137. package/lib/AWS/ElastiCache/internal.js +19 -0
  138. package/lib/AWS/ElastiCache/internal.js.map +1 -0
  139. package/lib/AWS/Environment.d.ts +2 -3
  140. package/lib/AWS/Environment.d.ts.map +1 -1
  141. package/lib/AWS/Environment.js +17 -47
  142. package/lib/AWS/Environment.js.map +1 -1
  143. package/lib/AWS/IAM/actions.generated.js +1 -1
  144. package/lib/AWS/IAM/actions.generated.js.map +1 -1
  145. package/lib/AWS/IdentityCenter/AccountAssignment.js +6 -0
  146. package/lib/AWS/IdentityCenter/AccountAssignment.js.map +1 -1
  147. package/lib/AWS/IdentityCenter/common.d.ts +2 -2
  148. package/lib/AWS/IdentityCenter/common.d.ts.map +1 -1
  149. package/lib/AWS/Lambda/BindingHttp.d.ts +62 -10
  150. package/lib/AWS/Lambda/BindingHttp.d.ts.map +1 -1
  151. package/lib/AWS/Lambda/BindingHttp.js +161 -22
  152. package/lib/AWS/Lambda/BindingHttp.js.map +1 -1
  153. package/lib/AWS/Lambda/EventInvokeConfig.d.ts +1 -1
  154. package/lib/AWS/Lambda/EventInvokeConfig.d.ts.map +1 -1
  155. package/lib/AWS/Lambda/FlociFunctionProvider.js +2 -2
  156. package/lib/AWS/Lambda/FlociMicrovmImageProvider.js +2 -2
  157. package/lib/AWS/Lambda/Function.d.ts +14 -23
  158. package/lib/AWS/Lambda/Function.d.ts.map +1 -1
  159. package/lib/AWS/Lambda/Function.js +38 -35
  160. package/lib/AWS/Lambda/Function.js.map +1 -1
  161. package/lib/AWS/Lambda/FunctionImage.d.ts +1 -1
  162. package/lib/AWS/Lambda/GetFunctionHttp.d.ts +1 -1
  163. package/lib/AWS/Lambda/GetFunctionHttp.d.ts.map +1 -1
  164. package/lib/AWS/Lambda/InvokeFunctionHttp.d.ts +1 -1
  165. package/lib/AWS/Lambda/InvokeFunctionHttp.d.ts.map +1 -1
  166. package/lib/AWS/Lambda/InvokeWithResponseStreamHttp.d.ts +1 -1
  167. package/lib/AWS/Lambda/InvokeWithResponseStreamHttp.d.ts.map +1 -1
  168. package/lib/AWS/Lambda/MicrovmBinding.d.ts.map +1 -1
  169. package/lib/AWS/Lambda/MicrovmBinding.js +11 -214
  170. package/lib/AWS/Lambda/MicrovmBinding.js.map +1 -1
  171. package/lib/AWS/Lambda/MicrovmBundle.d.ts +1 -1
  172. package/lib/AWS/Lambda/MicrovmBundle.d.ts.map +1 -1
  173. package/lib/AWS/Lambda/MicrovmBundle.js +1 -12
  174. package/lib/AWS/Lambda/MicrovmBundle.js.map +1 -1
  175. package/lib/AWS/Lambda/MicrovmImage.d.ts +12 -28
  176. package/lib/AWS/Lambda/MicrovmImage.d.ts.map +1 -1
  177. package/lib/AWS/Lambda/MicrovmImage.js +8 -22
  178. package/lib/AWS/Lambda/MicrovmImage.js.map +1 -1
  179. package/lib/AWS/Lambda/MicrovmRuntimeContext.js +1 -1
  180. package/lib/AWS/Local/DevWatchProvider.d.ts +4 -4
  181. package/lib/AWS/Local/DevWatchProvider.d.ts.map +1 -1
  182. package/lib/AWS/Local/DevWatchProvider.js +16 -6
  183. package/lib/AWS/Local/DevWatchProvider.js.map +1 -1
  184. package/lib/AWS/Local/Local.d.ts +13 -1
  185. package/lib/AWS/Local/Local.d.ts.map +1 -1
  186. package/lib/AWS/Local/Local.js +10 -9
  187. package/lib/AWS/Local/Local.js.map +1 -1
  188. package/lib/AWS/Logs/LogGroup.d.ts.map +1 -1
  189. package/lib/AWS/Logs/LogGroup.js +6 -2
  190. package/lib/AWS/Logs/LogGroup.js.map +1 -1
  191. package/lib/AWS/MediaPackageV2/internal.d.ts +1 -1
  192. package/lib/AWS/MediaPackageV2/internal.d.ts.map +1 -1
  193. package/lib/AWS/Notifications/internal.d.ts +1 -1
  194. package/lib/AWS/Notifications/internal.d.ts.map +1 -1
  195. package/lib/AWS/OAM/internal.d.ts +1 -1
  196. package/lib/AWS/OAM/internal.d.ts.map +1 -1
  197. package/lib/AWS/Organizations/Account.d.ts +2 -2
  198. package/lib/AWS/Organizations/Account.d.ts.map +1 -1
  199. package/lib/AWS/Organizations/Account.js +16 -8
  200. package/lib/AWS/Organizations/Account.js.map +1 -1
  201. package/lib/AWS/Organizations/DelegatedAdministrator.d.ts +2 -3
  202. package/lib/AWS/Organizations/DelegatedAdministrator.d.ts.map +1 -1
  203. package/lib/AWS/Organizations/DelegatedAdministrator.js +5 -5
  204. package/lib/AWS/Organizations/DelegatedAdministrator.js.map +1 -1
  205. package/lib/AWS/Organizations/Organization.d.ts +1 -1
  206. package/lib/AWS/Organizations/Organization.d.ts.map +1 -1
  207. package/lib/AWS/Organizations/Organization.js +2 -2
  208. package/lib/AWS/Organizations/Organization.js.map +1 -1
  209. package/lib/AWS/Organizations/common.d.ts +9 -0
  210. package/lib/AWS/Organizations/common.d.ts.map +1 -1
  211. package/lib/AWS/Organizations/common.js +17 -1
  212. package/lib/AWS/Organizations/common.js.map +1 -1
  213. package/lib/AWS/Personalize/internal.d.ts +1 -1
  214. package/lib/AWS/Personalize/internal.d.ts.map +1 -1
  215. package/lib/AWS/Providers.d.ts.map +1 -1
  216. package/lib/AWS/Providers.js +4 -1
  217. package/lib/AWS/Providers.js.map +1 -1
  218. package/lib/AWS/RDS/Connect.d.ts +3 -3
  219. package/lib/AWS/RDS/Connect.d.ts.map +1 -1
  220. package/lib/AWS/RDS/DBInstance.d.ts +226 -11
  221. package/lib/AWS/RDS/DBInstance.d.ts.map +1 -1
  222. package/lib/AWS/RDS/DBInstance.js +692 -36
  223. package/lib/AWS/RDS/DBInstance.js.map +1 -1
  224. package/lib/AWS/RDS/DBParameterGroup.d.ts +8 -9
  225. package/lib/AWS/RDS/DBParameterGroup.d.ts.map +1 -1
  226. package/lib/AWS/RDS/DBParameterGroup.js +53 -27
  227. package/lib/AWS/RDS/DBParameterGroup.js.map +1 -1
  228. package/lib/AWS/Route53/HostedZoneLookup.d.ts +1 -1
  229. package/lib/AWS/Route53/HostedZoneLookup.d.ts.map +1 -1
  230. package/lib/AWS/S3/AbortMultipartUploadHttp.d.ts +1 -1
  231. package/lib/AWS/S3/AbortMultipartUploadHttp.d.ts.map +1 -1
  232. package/lib/AWS/S3/BindingHttp.d.ts +13 -5
  233. package/lib/AWS/S3/BindingHttp.d.ts.map +1 -1
  234. package/lib/AWS/S3/BindingHttp.js +28 -30
  235. package/lib/AWS/S3/BindingHttp.js.map +1 -1
  236. package/lib/AWS/S3/Bucket.d.ts +95 -5
  237. package/lib/AWS/S3/Bucket.d.ts.map +1 -1
  238. package/lib/AWS/S3/Bucket.js +165 -47
  239. package/lib/AWS/S3/Bucket.js.map +1 -1
  240. package/lib/AWS/S3/CompleteMultipartUploadHttp.d.ts +1 -1
  241. package/lib/AWS/S3/CompleteMultipartUploadHttp.d.ts.map +1 -1
  242. package/lib/AWS/S3/CopyObjectHttp.d.ts +1 -1
  243. package/lib/AWS/S3/CopyObjectHttp.d.ts.map +1 -1
  244. package/lib/AWS/S3/CreateMultipartUploadHttp.d.ts +1 -1
  245. package/lib/AWS/S3/CreateMultipartUploadHttp.d.ts.map +1 -1
  246. package/lib/AWS/S3/DeleteObjectHttp.d.ts +1 -1
  247. package/lib/AWS/S3/DeleteObjectHttp.d.ts.map +1 -1
  248. package/lib/AWS/S3/DeleteObjectTaggingHttp.d.ts +1 -1
  249. package/lib/AWS/S3/DeleteObjectTaggingHttp.d.ts.map +1 -1
  250. package/lib/AWS/S3/DeleteObjectsHttp.d.ts +1 -1
  251. package/lib/AWS/S3/DeleteObjectsHttp.d.ts.map +1 -1
  252. package/lib/AWS/S3/GetObjectAttributesHttp.d.ts +1 -1
  253. package/lib/AWS/S3/GetObjectAttributesHttp.d.ts.map +1 -1
  254. package/lib/AWS/S3/GetObjectHttp.d.ts +1 -1
  255. package/lib/AWS/S3/GetObjectHttp.d.ts.map +1 -1
  256. package/lib/AWS/S3/GetObjectLegalHoldHttp.d.ts +1 -1
  257. package/lib/AWS/S3/GetObjectLegalHoldHttp.d.ts.map +1 -1
  258. package/lib/AWS/S3/GetObjectRetentionHttp.d.ts +1 -1
  259. package/lib/AWS/S3/GetObjectRetentionHttp.d.ts.map +1 -1
  260. package/lib/AWS/S3/GetObjectTaggingHttp.d.ts +1 -1
  261. package/lib/AWS/S3/GetObjectTaggingHttp.d.ts.map +1 -1
  262. package/lib/AWS/S3/HeadObjectHttp.d.ts +1 -1
  263. package/lib/AWS/S3/HeadObjectHttp.d.ts.map +1 -1
  264. package/lib/AWS/S3/ListMultipartUploadsHttp.d.ts +1 -1
  265. package/lib/AWS/S3/ListMultipartUploadsHttp.d.ts.map +1 -1
  266. package/lib/AWS/S3/ListObjectVersionsHttp.d.ts +1 -1
  267. package/lib/AWS/S3/ListObjectVersionsHttp.d.ts.map +1 -1
  268. package/lib/AWS/S3/ListObjectsV2Http.d.ts +1 -1
  269. package/lib/AWS/S3/ListObjectsV2Http.d.ts.map +1 -1
  270. package/lib/AWS/S3/ListPartsHttp.d.ts +1 -1
  271. package/lib/AWS/S3/ListPartsHttp.d.ts.map +1 -1
  272. package/lib/AWS/S3/PresignGetObject.d.ts +2 -2
  273. package/lib/AWS/S3/PresignGetObject.d.ts.map +1 -1
  274. package/lib/AWS/S3/PresignGetObject.js.map +1 -1
  275. package/lib/AWS/S3/PresignPutObject.d.ts +2 -2
  276. package/lib/AWS/S3/PresignPutObject.d.ts.map +1 -1
  277. package/lib/AWS/S3/PresignPutObject.js.map +1 -1
  278. package/lib/AWS/S3/PutObjectHttp.d.ts +1 -1
  279. package/lib/AWS/S3/PutObjectHttp.d.ts.map +1 -1
  280. package/lib/AWS/S3/PutObjectLegalHoldHttp.d.ts +1 -1
  281. package/lib/AWS/S3/PutObjectLegalHoldHttp.d.ts.map +1 -1
  282. package/lib/AWS/S3/PutObjectRetentionHttp.d.ts +1 -1
  283. package/lib/AWS/S3/PutObjectRetentionHttp.d.ts.map +1 -1
  284. package/lib/AWS/S3/PutObjectTaggingHttp.d.ts +1 -1
  285. package/lib/AWS/S3/PutObjectTaggingHttp.d.ts.map +1 -1
  286. package/lib/AWS/S3/RestoreObjectHttp.d.ts +1 -1
  287. package/lib/AWS/S3/RestoreObjectHttp.d.ts.map +1 -1
  288. package/lib/AWS/S3/UploadPartCopyHttp.d.ts +1 -1
  289. package/lib/AWS/S3/UploadPartCopyHttp.d.ts.map +1 -1
  290. package/lib/AWS/S3/UploadPartHttp.d.ts +1 -1
  291. package/lib/AWS/S3/UploadPartHttp.d.ts.map +1 -1
  292. package/lib/AWS/SNS/Subscription.d.ts.map +1 -1
  293. package/lib/AWS/SNS/Subscription.js +21 -5
  294. package/lib/AWS/SNS/Subscription.js.map +1 -1
  295. package/lib/AWS/StateStore/State.d.ts +24 -4
  296. package/lib/AWS/StateStore/State.d.ts.map +1 -1
  297. package/lib/AWS/StateStore/State.js +19 -27
  298. package/lib/AWS/StateStore/State.js.map +1 -1
  299. package/lib/AWS/Synthetics/Canary.d.ts.map +1 -1
  300. package/lib/AWS/Synthetics/Canary.js +4 -9
  301. package/lib/AWS/Synthetics/Canary.js.map +1 -1
  302. package/lib/Alchemist/Entrypoint.d.ts +22 -0
  303. package/lib/Alchemist/Entrypoint.d.ts.map +1 -0
  304. package/lib/Alchemist/Entrypoint.js +27 -0
  305. package/lib/Alchemist/Entrypoint.js.map +1 -0
  306. package/lib/Alchemist/Errors.d.ts +31 -0
  307. package/lib/Alchemist/Errors.d.ts.map +1 -0
  308. package/lib/Alchemist/Errors.js +19 -0
  309. package/lib/Alchemist/Errors.js.map +1 -0
  310. package/lib/Alchemist/Progress.d.ts +16 -0
  311. package/lib/Alchemist/Progress.d.ts.map +1 -0
  312. package/lib/Alchemist/Progress.js +129 -0
  313. package/lib/Alchemist/Progress.js.map +1 -0
  314. package/lib/Alchemist/Runtime.d.ts +22 -0
  315. package/lib/Alchemist/Runtime.d.ts.map +1 -0
  316. package/lib/Alchemist/Runtime.js +28 -0
  317. package/lib/Alchemist/Runtime.js.map +1 -0
  318. package/lib/Alchemist/Session.d.ts +114 -0
  319. package/lib/Alchemist/Session.d.ts.map +1 -0
  320. package/lib/Alchemist/Session.js +214 -0
  321. package/lib/Alchemist/Session.js.map +1 -0
  322. package/lib/Alchemist/index.d.ts +15 -0
  323. package/lib/Alchemist/index.d.ts.map +1 -0
  324. package/lib/Alchemist/index.js +15 -0
  325. package/lib/Alchemist/index.js.map +1 -0
  326. package/lib/Alchemist/routes/aws.d.ts +21 -0
  327. package/lib/Alchemist/routes/aws.d.ts.map +1 -0
  328. package/lib/Alchemist/routes/aws.js +54 -0
  329. package/lib/Alchemist/routes/aws.js.map +1 -0
  330. package/lib/Alchemist/routes/cloudflare.d.ts +63 -0
  331. package/lib/Alchemist/routes/cloudflare.d.ts.map +1 -0
  332. package/lib/Alchemist/routes/cloudflare.js +113 -0
  333. package/lib/Alchemist/routes/cloudflare.js.map +1 -0
  334. package/lib/Alchemist/routes/cloudflareToken.d.ts +93 -0
  335. package/lib/Alchemist/routes/cloudflareToken.d.ts.map +1 -0
  336. package/lib/Alchemist/routes/cloudflareToken.js +111 -0
  337. package/lib/Alchemist/routes/cloudflareToken.js.map +1 -0
  338. package/lib/Alchemist/routes/drift.d.ts +55 -0
  339. package/lib/Alchemist/routes/drift.d.ts.map +1 -0
  340. package/lib/Alchemist/routes/drift.js +52 -0
  341. package/lib/Alchemist/routes/drift.js.map +1 -0
  342. package/lib/Alchemist/routes/logs.d.ts +41 -0
  343. package/lib/Alchemist/routes/logs.d.ts.map +1 -0
  344. package/lib/Alchemist/routes/logs.js +112 -0
  345. package/lib/Alchemist/routes/logs.js.map +1 -0
  346. package/lib/Alchemist/routes/nuke.d.ts +46 -0
  347. package/lib/Alchemist/routes/nuke.d.ts.map +1 -0
  348. package/lib/Alchemist/routes/nuke.js +80 -0
  349. package/lib/Alchemist/routes/nuke.js.map +1 -0
  350. package/lib/Alchemist/routes/profile.d.ts +133 -0
  351. package/lib/Alchemist/routes/profile.d.ts.map +1 -0
  352. package/lib/Alchemist/routes/profile.js +257 -0
  353. package/lib/Alchemist/routes/profile.js.map +1 -0
  354. package/lib/Alchemist/routes/provider.d.ts +33 -0
  355. package/lib/Alchemist/routes/provider.d.ts.map +1 -0
  356. package/lib/Alchemist/routes/provider.js +65 -0
  357. package/lib/Alchemist/routes/provider.js.map +1 -0
  358. package/lib/Alchemist/routes/stack.d.ts +78 -0
  359. package/lib/Alchemist/routes/stack.d.ts.map +1 -0
  360. package/lib/Alchemist/routes/stack.js +67 -0
  361. package/lib/Alchemist/routes/stack.js.map +1 -0
  362. package/lib/Alchemist/routes/state.d.ts +35 -0
  363. package/lib/Alchemist/routes/state.d.ts.map +1 -0
  364. package/lib/Alchemist/routes/state.js +46 -0
  365. package/lib/Alchemist/routes/state.js.map +1 -0
  366. package/lib/Apply.d.ts +8 -6
  367. package/lib/Apply.d.ts.map +1 -1
  368. package/lib/Apply.js +209 -103
  369. package/lib/Apply.js.map +1 -1
  370. package/lib/Auth/AuthProvider.d.ts +201 -25
  371. package/lib/Auth/AuthProvider.d.ts.map +1 -1
  372. package/lib/Auth/AuthProvider.js +180 -40
  373. package/lib/Auth/AuthProvider.js.map +1 -1
  374. package/lib/Auth/BrowserOAuth.d.ts +27 -0
  375. package/lib/Auth/BrowserOAuth.d.ts.map +1 -0
  376. package/lib/Auth/BrowserOAuth.js +41 -0
  377. package/lib/Auth/BrowserOAuth.js.map +1 -0
  378. package/lib/Auth/Credentials.d.ts +11 -6
  379. package/lib/Auth/Credentials.d.ts.map +1 -1
  380. package/lib/Auth/Credentials.js +62 -23
  381. package/lib/Auth/Credentials.js.map +1 -1
  382. package/lib/Auth/CredentialsCache.d.ts +15 -0
  383. package/lib/Auth/CredentialsCache.d.ts.map +1 -0
  384. package/lib/Auth/CredentialsCache.js +34 -0
  385. package/lib/Auth/CredentialsCache.js.map +1 -0
  386. package/lib/Auth/Demand.d.ts +59 -34
  387. package/lib/Auth/Demand.d.ts.map +1 -1
  388. package/lib/Auth/Demand.js +151 -61
  389. package/lib/Auth/Demand.js.map +1 -1
  390. package/lib/Auth/Env.d.ts +4 -4
  391. package/lib/Auth/Env.d.ts.map +1 -1
  392. package/lib/Auth/Env.js +18 -9
  393. package/lib/Auth/Env.js.map +1 -1
  394. package/lib/Auth/Inspect.d.ts +33 -0
  395. package/lib/Auth/Inspect.d.ts.map +1 -0
  396. package/lib/Auth/Inspect.js +67 -0
  397. package/lib/Auth/Inspect.js.map +1 -0
  398. package/lib/Auth/Lock.d.ts +6 -0
  399. package/lib/Auth/Lock.d.ts.map +1 -1
  400. package/lib/Auth/Lock.js +26 -14
  401. package/lib/Auth/Lock.js.map +1 -1
  402. package/lib/Auth/OAuthFlow.d.ts +119 -0
  403. package/lib/Auth/OAuthFlow.d.ts.map +1 -0
  404. package/lib/Auth/OAuthFlow.js +314 -0
  405. package/lib/Auth/OAuthFlow.js.map +1 -0
  406. package/lib/Auth/Paths.d.ts +18 -0
  407. package/lib/Auth/Paths.d.ts.map +1 -0
  408. package/lib/Auth/Paths.js +20 -0
  409. package/lib/Auth/Paths.js.map +1 -0
  410. package/lib/Auth/Profile.d.ts +91 -67
  411. package/lib/Auth/Profile.d.ts.map +1 -1
  412. package/lib/Auth/Profile.js +449 -92
  413. package/lib/Auth/Profile.js.map +1 -1
  414. package/lib/Auth/Resolve.d.ts +42 -0
  415. package/lib/Auth/Resolve.d.ts.map +1 -0
  416. package/lib/Auth/Resolve.js +90 -0
  417. package/lib/Auth/Resolve.js.map +1 -0
  418. package/lib/Auth/StoredAuthProvider.d.ts +84 -0
  419. package/lib/Auth/StoredAuthProvider.d.ts.map +1 -0
  420. package/lib/Auth/StoredAuthProvider.js +179 -0
  421. package/lib/Auth/StoredAuthProvider.js.map +1 -0
  422. package/lib/Auth/index.d.ts +1 -0
  423. package/lib/Auth/index.d.ts.map +1 -1
  424. package/lib/Auth/index.js +1 -0
  425. package/lib/Auth/index.js.map +1 -1
  426. package/lib/Axiom/AuthProvider.d.ts +17 -26
  427. package/lib/Axiom/AuthProvider.d.ts.map +1 -1
  428. package/lib/Axiom/AuthProvider.js +89 -172
  429. package/lib/Axiom/AuthProvider.js.map +1 -1
  430. package/lib/Axiom/Credentials.d.ts +2 -4
  431. package/lib/Axiom/Credentials.d.ts.map +1 -1
  432. package/lib/Axiom/Credentials.js +5 -10
  433. package/lib/Axiom/Credentials.js.map +1 -1
  434. package/lib/Axiom/Providers.d.ts +2 -2
  435. package/lib/Axiom/Providers.d.ts.map +1 -1
  436. package/lib/Axiom/Providers.js +3 -3
  437. package/lib/Axiom/Providers.js.map +1 -1
  438. package/lib/Bundle/Bundle.d.ts +3 -5
  439. package/lib/Bundle/Bundle.d.ts.map +1 -1
  440. package/lib/Bundle/Bundle.js.map +1 -1
  441. package/lib/Cli/CliKit/CliKit.d.ts +92 -0
  442. package/lib/Cli/CliKit/CliKit.d.ts.map +1 -0
  443. package/lib/Cli/CliKit/CliKit.js +27 -0
  444. package/lib/Cli/CliKit/CliKit.js.map +1 -0
  445. package/lib/Cli/CliKit/index.d.ts +9 -0
  446. package/lib/Cli/CliKit/index.d.ts.map +1 -0
  447. package/lib/Cli/CliKit/index.js +9 -0
  448. package/lib/Cli/CliKit/index.js.map +1 -0
  449. package/lib/Cli/CliKit/interaction.d.ts +13 -0
  450. package/lib/Cli/CliKit/interaction.d.ts.map +1 -0
  451. package/lib/Cli/CliKit/interaction.js +17 -0
  452. package/lib/Cli/CliKit/interaction.js.map +1 -0
  453. package/lib/Cli/CliKit/layer.d.ts +7 -0
  454. package/lib/Cli/CliKit/layer.d.ts.map +1 -0
  455. package/lib/Cli/CliKit/layer.js +34 -0
  456. package/lib/Cli/CliKit/layer.js.map +1 -0
  457. package/lib/Cli/DevOptions.d.ts +17 -0
  458. package/lib/Cli/DevOptions.d.ts.map +1 -0
  459. package/lib/Cli/DevOptions.js +16 -0
  460. package/lib/Cli/DevOptions.js.map +1 -0
  461. package/lib/Cli/Format.d.ts +5 -0
  462. package/lib/Cli/Format.d.ts.map +1 -0
  463. package/lib/Cli/Format.js +27 -0
  464. package/lib/Cli/Format.js.map +1 -0
  465. package/lib/Cli/GlobalLog.d.ts +41 -0
  466. package/lib/Cli/GlobalLog.d.ts.map +1 -0
  467. package/lib/Cli/GlobalLog.js +112 -0
  468. package/lib/Cli/GlobalLog.js.map +1 -0
  469. package/lib/Cli/LoggingCli.d.ts +4 -3
  470. package/lib/Cli/LoggingCli.d.ts.map +1 -1
  471. package/lib/Cli/LoggingCli.js +240 -100
  472. package/lib/Cli/LoggingCli.js.map +1 -1
  473. package/lib/Cli/ModeTag.d.ts +1 -1
  474. package/lib/Cli/ModeTag.js +1 -1
  475. package/lib/Cli/NamespaceTree.d.ts +18 -8
  476. package/lib/Cli/NamespaceTree.d.ts.map +1 -1
  477. package/lib/Cli/NamespaceTree.js +52 -11
  478. package/lib/Cli/NamespaceTree.js.map +1 -1
  479. package/lib/Cli/PlainCliFormatter.d.ts +11 -0
  480. package/lib/Cli/PlainCliFormatter.d.ts.map +1 -0
  481. package/lib/Cli/PlainCliFormatter.js +70 -0
  482. package/lib/Cli/PlainCliFormatter.js.map +1 -0
  483. package/lib/Cli/PropertyDiff.d.ts +37 -0
  484. package/lib/Cli/PropertyDiff.d.ts.map +1 -0
  485. package/lib/Cli/PropertyDiff.js +162 -0
  486. package/lib/Cli/PropertyDiff.js.map +1 -0
  487. package/lib/Cli/checkVersion.d.ts.map +1 -1
  488. package/lib/Cli/checkVersion.js +10 -6
  489. package/lib/Cli/checkVersion.js.map +1 -1
  490. package/lib/Cli/commands/aws.d.ts +2 -4
  491. package/lib/Cli/commands/aws.d.ts.map +1 -1
  492. package/lib/Cli/commands/aws.js +44 -56
  493. package/lib/Cli/commands/aws.js.map +1 -1
  494. package/lib/Cli/commands/cloudflare.d.ts +6 -7
  495. package/lib/Cli/commands/cloudflare.d.ts.map +1 -1
  496. package/lib/Cli/commands/cloudflare.js +156 -314
  497. package/lib/Cli/commands/cloudflare.js.map +1 -1
  498. package/lib/Cli/commands/compat.d.ts +11 -0
  499. package/lib/Cli/commands/compat.d.ts.map +1 -0
  500. package/lib/Cli/commands/compat.js +19 -0
  501. package/lib/Cli/commands/compat.js.map +1 -0
  502. package/lib/Cli/commands/confirm.d.ts +33 -0
  503. package/lib/Cli/commands/confirm.d.ts.map +1 -0
  504. package/lib/Cli/commands/confirm.js +39 -0
  505. package/lib/Cli/commands/confirm.js.map +1 -0
  506. package/lib/Cli/commands/deploy.d.ts +20 -32
  507. package/lib/Cli/commands/deploy.d.ts.map +1 -1
  508. package/lib/Cli/commands/deploy.js +141 -141
  509. package/lib/Cli/commands/deploy.js.map +1 -1
  510. package/lib/Cli/commands/dev.d.ts +5 -4
  511. package/lib/Cli/commands/dev.d.ts.map +1 -1
  512. package/lib/Cli/commands/dev.js +55 -26
  513. package/lib/Cli/commands/dev.js.map +1 -1
  514. package/lib/Cli/commands/drift.d.ts +12 -0
  515. package/lib/Cli/commands/drift.d.ts.map +1 -0
  516. package/lib/Cli/commands/drift.js +68 -0
  517. package/lib/Cli/commands/drift.js.map +1 -0
  518. package/lib/Cli/commands/errors.d.ts +35 -0
  519. package/lib/Cli/commands/errors.d.ts.map +1 -0
  520. package/lib/Cli/commands/errors.js +106 -0
  521. package/lib/Cli/commands/errors.js.map +1 -0
  522. package/lib/Cli/commands/flags.d.ts +48 -0
  523. package/lib/Cli/commands/flags.d.ts.map +1 -0
  524. package/lib/Cli/commands/flags.js +100 -0
  525. package/lib/Cli/commands/flags.js.map +1 -0
  526. package/lib/Cli/commands/instrument.d.ts +10 -0
  527. package/lib/Cli/commands/instrument.d.ts.map +1 -0
  528. package/lib/Cli/commands/instrument.js +14 -0
  529. package/lib/Cli/commands/instrument.js.map +1 -0
  530. package/lib/Cli/commands/logs.d.ts +5 -4
  531. package/lib/Cli/commands/logs.d.ts.map +1 -1
  532. package/lib/Cli/commands/logs.js +64 -89
  533. package/lib/Cli/commands/logs.js.map +1 -1
  534. package/lib/Cli/commands/nuke.d.ts +3 -2
  535. package/lib/Cli/commands/nuke.d.ts.map +1 -1
  536. package/lib/Cli/commands/nuke.js +89 -588
  537. package/lib/Cli/commands/nuke.js.map +1 -1
  538. package/lib/Cli/commands/profile/commands.d.ts +9 -0
  539. package/lib/Cli/commands/profile/commands.d.ts.map +1 -0
  540. package/lib/Cli/commands/profile/commands.js +276 -0
  541. package/lib/Cli/commands/profile/commands.js.map +1 -0
  542. package/lib/Cli/commands/profile/flows.d.ts +36 -0
  543. package/lib/Cli/commands/profile/flows.d.ts.map +1 -0
  544. package/lib/Cli/commands/profile/flows.js +155 -0
  545. package/lib/Cli/commands/profile/flows.js.map +1 -0
  546. package/lib/Cli/commands/profile/hub.d.ts +8 -0
  547. package/lib/Cli/commands/profile/hub.d.ts.map +1 -0
  548. package/lib/Cli/commands/profile/hub.js +154 -0
  549. package/lib/Cli/commands/profile/hub.js.map +1 -0
  550. package/lib/Cli/commands/profile/index.d.ts +2 -0
  551. package/lib/Cli/commands/profile/index.d.ts.map +1 -0
  552. package/lib/Cli/commands/profile/index.js +2 -0
  553. package/lib/Cli/commands/profile/index.js.map +1 -0
  554. package/lib/Cli/commands/provider.d.ts +17 -0
  555. package/lib/Cli/commands/provider.d.ts.map +1 -0
  556. package/lib/Cli/commands/provider.js +44 -0
  557. package/lib/Cli/commands/provider.js.map +1 -0
  558. package/lib/Cli/commands/render.d.ts +12 -0
  559. package/lib/Cli/commands/render.d.ts.map +1 -0
  560. package/lib/Cli/commands/render.js +82 -0
  561. package/lib/Cli/commands/render.js.map +1 -0
  562. package/lib/Cli/commands/state.d.ts +8 -1
  563. package/lib/Cli/commands/state.d.ts.map +1 -1
  564. package/lib/Cli/commands/state.js +125 -248
  565. package/lib/Cli/commands/state.js.map +1 -1
  566. package/lib/Cli/components/types.d.ts +104 -0
  567. package/lib/Cli/components/types.d.ts.map +1 -0
  568. package/lib/Cli/components/types.js +4 -0
  569. package/lib/Cli/components/types.js.map +1 -0
  570. package/lib/Cli/components/ui/Data.d.ts +15 -0
  571. package/lib/Cli/components/ui/Data.d.ts.map +1 -0
  572. package/lib/Cli/components/ui/Data.js +8 -0
  573. package/lib/Cli/components/ui/Data.js.map +1 -0
  574. package/lib/Cli/components/ui/Environment.d.ts +45 -0
  575. package/lib/Cli/components/ui/Environment.d.ts.map +1 -0
  576. package/lib/Cli/components/ui/Environment.js +38 -0
  577. package/lib/Cli/components/ui/Environment.js.map +1 -0
  578. package/lib/Cli/components/ui/Feedback.d.ts +57 -0
  579. package/lib/Cli/components/ui/Feedback.d.ts.map +1 -0
  580. package/lib/Cli/components/ui/Feedback.js +83 -0
  581. package/lib/Cli/components/ui/Feedback.js.map +1 -0
  582. package/lib/Cli/components/ui/Interactive.d.ts +157 -0
  583. package/lib/Cli/components/ui/Interactive.d.ts.map +1 -0
  584. package/lib/Cli/components/ui/Interactive.js +527 -0
  585. package/lib/Cli/components/ui/Interactive.js.map +1 -0
  586. package/lib/Cli/components/ui/Layout.d.ts +74 -0
  587. package/lib/Cli/components/ui/Layout.d.ts.map +1 -0
  588. package/lib/Cli/components/ui/Layout.js +91 -0
  589. package/lib/Cli/components/ui/Layout.js.map +1 -0
  590. package/lib/Cli/components/ui/Live.d.ts +49 -0
  591. package/lib/Cli/components/ui/Live.d.ts.map +1 -0
  592. package/lib/Cli/components/ui/Live.js +43 -0
  593. package/lib/Cli/components/ui/Live.js.map +1 -0
  594. package/lib/Cli/components/ui/ProgressBar.d.ts +16 -0
  595. package/lib/Cli/components/ui/ProgressBar.d.ts.map +1 -0
  596. package/lib/Cli/components/ui/ProgressBar.js +17 -0
  597. package/lib/Cli/components/ui/ProgressBar.js.map +1 -0
  598. package/lib/Cli/components/ui/Transcript.d.ts +12 -0
  599. package/lib/Cli/components/ui/Transcript.d.ts.map +1 -0
  600. package/lib/Cli/components/ui/Transcript.js +14 -0
  601. package/lib/Cli/components/ui/Transcript.js.map +1 -0
  602. package/lib/Cli/components/ui/Typography.d.ts +17 -0
  603. package/lib/Cli/components/ui/Typography.d.ts.map +1 -0
  604. package/lib/Cli/components/ui/Typography.js +21 -0
  605. package/lib/Cli/components/ui/Typography.js.map +1 -0
  606. package/lib/Cli/components/ui/index.d.ts +16 -0
  607. package/lib/Cli/components/ui/index.d.ts.map +1 -0
  608. package/lib/Cli/components/ui/index.js +16 -0
  609. package/lib/Cli/components/ui/index.js.map +1 -0
  610. package/lib/Cli/components/view/ApprovePlan.d.ts +16 -0
  611. package/lib/Cli/components/view/ApprovePlan.d.ts.map +1 -0
  612. package/lib/Cli/components/view/ApprovePlan.js +59 -0
  613. package/lib/Cli/components/view/ApprovePlan.js.map +1 -0
  614. package/lib/Cli/components/view/Help.d.ts +4 -0
  615. package/lib/Cli/components/view/Help.d.ts.map +1 -0
  616. package/lib/Cli/components/view/Help.js +116 -0
  617. package/lib/Cli/components/view/Help.js.map +1 -0
  618. package/lib/Cli/components/view/Logo.d.ts +7 -0
  619. package/lib/Cli/components/view/Logo.d.ts.map +1 -0
  620. package/lib/Cli/components/view/Logo.js +118 -0
  621. package/lib/Cli/components/view/Logo.js.map +1 -0
  622. package/lib/Cli/components/view/Nuke.d.ts +36 -0
  623. package/lib/Cli/components/view/Nuke.d.ts.map +1 -0
  624. package/lib/Cli/components/view/Nuke.js +148 -0
  625. package/lib/Cli/components/view/Nuke.js.map +1 -0
  626. package/lib/Cli/components/view/PlanDecision.d.ts +15 -0
  627. package/lib/Cli/components/view/PlanDecision.d.ts.map +1 -0
  628. package/lib/Cli/components/view/PlanDecision.js +26 -0
  629. package/lib/Cli/components/view/PlanDecision.js.map +1 -0
  630. package/lib/Cli/components/view/PlanRow.d.ts +17 -0
  631. package/lib/Cli/components/view/PlanRow.d.ts.map +1 -0
  632. package/lib/Cli/components/view/PlanRow.js +14 -0
  633. package/lib/Cli/components/view/PlanRow.js.map +1 -0
  634. package/lib/Cli/components/view/PlanTree.d.ts +116 -0
  635. package/lib/Cli/components/view/PlanTree.d.ts.map +1 -0
  636. package/lib/Cli/components/view/PlanTree.js +207 -0
  637. package/lib/Cli/components/view/PlanTree.js.map +1 -0
  638. package/lib/Cli/components/view/PlanView.d.ts +23 -0
  639. package/lib/Cli/components/view/PlanView.d.ts.map +1 -0
  640. package/lib/Cli/components/view/PlanView.js +310 -0
  641. package/lib/Cli/components/view/PlanView.js.map +1 -0
  642. package/lib/Cli/components/view/Profile.d.ts +130 -0
  643. package/lib/Cli/components/view/Profile.d.ts.map +1 -0
  644. package/lib/Cli/components/view/Profile.js +147 -0
  645. package/lib/Cli/components/view/Profile.js.map +1 -0
  646. package/lib/Cli/components/view/ProfileDashboard.d.ts +152 -0
  647. package/lib/Cli/components/view/ProfileDashboard.d.ts.map +1 -0
  648. package/lib/Cli/components/view/ProfileDashboard.js +485 -0
  649. package/lib/Cli/components/view/ProfileDashboard.js.map +1 -0
  650. package/lib/Cli/components/view/Prompts.d.ts +10 -0
  651. package/lib/Cli/components/view/Prompts.d.ts.map +1 -0
  652. package/lib/Cli/components/view/Prompts.js +440 -0
  653. package/lib/Cli/components/view/Prompts.js.map +1 -0
  654. package/lib/Cli/components/view/Runtime.d.ts +8 -0
  655. package/lib/Cli/components/view/Runtime.d.ts.map +1 -0
  656. package/lib/Cli/components/view/Runtime.js +670 -0
  657. package/lib/Cli/components/view/Runtime.js.map +1 -0
  658. package/lib/Cli/components/view/SigilCli.d.ts +5 -0
  659. package/lib/Cli/components/view/SigilCli.d.ts.map +1 -0
  660. package/lib/Cli/components/view/SigilCli.js +134 -0
  661. package/lib/Cli/components/view/SigilCli.js.map +1 -0
  662. package/lib/Cli/components/view/StackOutputs.d.ts +10 -0
  663. package/lib/Cli/components/view/StackOutputs.d.ts.map +1 -0
  664. package/lib/Cli/components/view/StackOutputs.js +14 -0
  665. package/lib/Cli/components/view/StackOutputs.js.map +1 -0
  666. package/lib/Cli/components/view/StateExplorer.d.ts +118 -0
  667. package/lib/Cli/components/view/StateExplorer.d.ts.map +1 -0
  668. package/lib/Cli/components/view/StateExplorer.js +664 -0
  669. package/lib/Cli/components/view/StateExplorer.js.map +1 -0
  670. package/lib/Cli/components/view/statusStyle.d.ts +18 -0
  671. package/lib/Cli/components/view/statusStyle.d.ts.map +1 -0
  672. package/lib/Cli/components/view/statusStyle.js +69 -0
  673. package/lib/Cli/components/view/statusStyle.js.map +1 -0
  674. package/lib/Cli/components/view/usePlanPresentation.d.ts +25 -0
  675. package/lib/Cli/components/view/usePlanPresentation.d.ts.map +1 -0
  676. package/lib/Cli/components/view/usePlanPresentation.js +54 -0
  677. package/lib/Cli/components/view/usePlanPresentation.js.map +1 -0
  678. package/lib/Cli/components/view/usePlanViewport.d.ts +31 -0
  679. package/lib/Cli/components/view/usePlanViewport.d.ts.map +1 -0
  680. package/lib/Cli/components/view/usePlanViewport.js +113 -0
  681. package/lib/Cli/components/view/usePlanViewport.js.map +1 -0
  682. package/lib/Cli/exec.d.ts +5 -1
  683. package/lib/Cli/exec.d.ts.map +1 -1
  684. package/lib/Cli/exec.js +174 -19
  685. package/lib/Cli/exec.js.map +1 -1
  686. package/lib/Cli/main.d.ts +4 -1
  687. package/lib/Cli/main.d.ts.map +1 -1
  688. package/lib/Cli/main.js +129 -38
  689. package/lib/Cli/main.js.map +1 -1
  690. package/lib/Cli/selectCli.d.ts +5 -3
  691. package/lib/Cli/selectCli.d.ts.map +1 -1
  692. package/lib/Cli/selectCli.js +16 -9
  693. package/lib/Cli/selectCli.js.map +1 -1
  694. package/lib/Cloudflare/AI/GatewayProvider.d.ts +1 -1
  695. package/lib/Cloudflare/AI/GatewayProvider.js +1 -1
  696. package/lib/Cloudflare/AI/LanguageModel.d.ts +2 -2
  697. package/lib/Cloudflare/AI/LanguageModel.d.ts.map +1 -1
  698. package/lib/Cloudflare/AI/LanguageModel.js +1 -1
  699. package/lib/Cloudflare/AI/ProviderKey.d.ts +3 -3
  700. package/lib/Cloudflare/AI/ProviderKey.js +3 -3
  701. package/lib/Cloudflare/AI/SearchToken.d.ts.map +1 -1
  702. package/lib/Cloudflare/AI/SearchToken.js +3 -6
  703. package/lib/Cloudflare/AI/SearchToken.js.map +1 -1
  704. package/lib/Cloudflare/Access.js +1 -1
  705. package/lib/Cloudflare/Alerting/Webhook.d.ts +1 -1
  706. package/lib/Cloudflare/Alerting/Webhook.js +1 -1
  707. package/lib/Cloudflare/ApiToken/UserApiToken.d.ts +1 -1
  708. package/lib/Cloudflare/ApiToken/UserApiToken.js +1 -1
  709. package/lib/Cloudflare/Auth/AuthConfig.d.ts +60 -0
  710. package/lib/Cloudflare/Auth/AuthConfig.d.ts.map +1 -0
  711. package/lib/Cloudflare/Auth/AuthConfig.js +68 -0
  712. package/lib/Cloudflare/Auth/AuthConfig.js.map +1 -0
  713. package/lib/Cloudflare/Auth/AuthProvider.d.ts +2 -142
  714. package/lib/Cloudflare/Auth/AuthProvider.d.ts.map +1 -1
  715. package/lib/Cloudflare/Auth/AuthProvider.js +473 -327
  716. package/lib/Cloudflare/Auth/AuthProvider.js.map +1 -1
  717. package/lib/Cloudflare/Auth/OAuthClient.d.ts +16 -48
  718. package/lib/Cloudflare/Auth/OAuthClient.d.ts.map +1 -1
  719. package/lib/Cloudflare/Auth/OAuthClient.js +25 -260
  720. package/lib/Cloudflare/Auth/OAuthClient.js.map +1 -1
  721. package/lib/Cloudflare/Auth/OAuthScopes.d.ts +88 -0
  722. package/lib/Cloudflare/Auth/OAuthScopes.d.ts.map +1 -0
  723. package/lib/Cloudflare/Auth/OAuthScopes.js +887 -0
  724. package/lib/Cloudflare/Auth/OAuthScopes.js.map +1 -0
  725. package/lib/Cloudflare/Auth/TokenPolicy.d.ts +34 -0
  726. package/lib/Cloudflare/Auth/TokenPolicy.d.ts.map +1 -0
  727. package/lib/Cloudflare/Auth/TokenPolicy.js +51 -0
  728. package/lib/Cloudflare/Auth/TokenPolicy.js.map +1 -0
  729. package/lib/Cloudflare/Bridge.d.ts +7 -0
  730. package/lib/Cloudflare/Bridge.d.ts.map +1 -1
  731. package/lib/Cloudflare/Bridge.js +8 -0
  732. package/lib/Cloudflare/Bridge.js.map +1 -1
  733. package/lib/Cloudflare/CloudflareEnvironment.d.ts +3 -10
  734. package/lib/Cloudflare/CloudflareEnvironment.d.ts.map +1 -1
  735. package/lib/Cloudflare/CloudflareEnvironment.js +10 -16
  736. package/lib/Cloudflare/CloudflareEnvironment.js.map +1 -1
  737. package/lib/Cloudflare/CloudflareEnvironmentService.d.ts +9 -0
  738. package/lib/Cloudflare/CloudflareEnvironmentService.d.ts.map +1 -0
  739. package/lib/Cloudflare/CloudflareEnvironmentService.js +5 -0
  740. package/lib/Cloudflare/CloudflareEnvironmentService.js.map +1 -0
  741. package/lib/Cloudflare/Containers/Container.d.ts +10 -25
  742. package/lib/Cloudflare/Containers/Container.d.ts.map +1 -1
  743. package/lib/Cloudflare/Containers/Container.js +9 -23
  744. package/lib/Cloudflare/Containers/Container.js.map +1 -1
  745. package/lib/Cloudflare/Containers/ContainerApplication.d.ts +23 -31
  746. package/lib/Cloudflare/Containers/ContainerApplication.d.ts.map +1 -1
  747. package/lib/Cloudflare/Containers/ContainerApplication.js +0 -1
  748. package/lib/Cloudflare/Containers/ContainerApplication.js.map +1 -1
  749. package/lib/Cloudflare/Containers/ContainerPlatform.d.ts +2 -2
  750. package/lib/Cloudflare/Containers/ContainerPlatform.d.ts.map +1 -1
  751. package/lib/Cloudflare/Containers/ContainerPlatform.js +1 -2
  752. package/lib/Cloudflare/Containers/ContainerPlatform.js.map +1 -1
  753. package/lib/Cloudflare/Containers/ContainerProvider.d.ts.map +1 -1
  754. package/lib/Cloudflare/Containers/ContainerProvider.js +122 -65
  755. package/lib/Cloudflare/Containers/ContainerProvider.js.map +1 -1
  756. package/lib/Cloudflare/Containers/ContainerPublication.d.ts +4 -0
  757. package/lib/Cloudflare/Containers/ContainerPublication.d.ts.map +1 -0
  758. package/lib/Cloudflare/Containers/ContainerPublication.js +8 -0
  759. package/lib/Cloudflare/Containers/ContainerPublication.js.map +1 -0
  760. package/lib/Cloudflare/Containers/LocalContainerProvider.d.ts.map +1 -1
  761. package/lib/Cloudflare/Containers/LocalContainerProvider.js +3 -2
  762. package/lib/Cloudflare/Containers/LocalContainerProvider.js.map +1 -1
  763. package/lib/Cloudflare/Containers/StartContainer.d.ts +1 -1
  764. package/lib/Cloudflare/Containers/StartContainer.d.ts.map +1 -1
  765. package/lib/Cloudflare/Credentials.d.ts +6 -20
  766. package/lib/Cloudflare/Credentials.d.ts.map +1 -1
  767. package/lib/Cloudflare/Credentials.js +12 -54
  768. package/lib/Cloudflare/Credentials.js.map +1 -1
  769. package/lib/Cloudflare/D1/CloneDatabase.d.ts +1 -1
  770. package/lib/Cloudflare/D1/CloneDatabase.d.ts.map +1 -1
  771. package/lib/Cloudflare/D1/Database.js +3 -3
  772. package/lib/Cloudflare/D1/Database.js.map +1 -1
  773. package/lib/Cloudflare/D1/ImportDatabase.d.ts +1 -1
  774. package/lib/Cloudflare/D1/ImportDatabase.d.ts.map +1 -1
  775. package/lib/Cloudflare/DNS/ReadDnsLocal.d.ts +1 -1
  776. package/lib/Cloudflare/DNS/ReadDnsLocal.d.ts.map +1 -1
  777. package/lib/Cloudflare/DNS/ReadWriteDnsLocal.d.ts +1 -1
  778. package/lib/Cloudflare/DNS/ReadWriteDnsLocal.d.ts.map +1 -1
  779. package/lib/Cloudflare/DNS/WriteDnsLocal.d.ts +1 -1
  780. package/lib/Cloudflare/DNS/WriteDnsLocal.d.ts.map +1 -1
  781. package/lib/Cloudflare/EdgeSession.d.ts +1 -1
  782. package/lib/Cloudflare/EdgeSession.d.ts.map +1 -1
  783. package/lib/Cloudflare/EdgeSession.js +1 -1
  784. package/lib/Cloudflare/EdgeSession.js.map +1 -1
  785. package/lib/Cloudflare/Fetcher.d.ts.map +1 -1
  786. package/lib/Cloudflare/Fetcher.js +58 -116
  787. package/lib/Cloudflare/Fetcher.js.map +1 -1
  788. package/lib/Cloudflare/Flagship/Flag.d.ts +8 -1
  789. package/lib/Cloudflare/Flagship/Flag.d.ts.map +1 -1
  790. package/lib/Cloudflare/Flagship/Flag.js.map +1 -1
  791. package/lib/Cloudflare/HostnameTlsSetting/HostnameTlsSetting.d.ts.map +1 -1
  792. package/lib/Cloudflare/HostnameTlsSetting/HostnameTlsSetting.js +10 -24
  793. package/lib/Cloudflare/HostnameTlsSetting/HostnameTlsSetting.js.map +1 -1
  794. package/lib/Cloudflare/Hyperdrive/Connection.d.ts +1 -1
  795. package/lib/Cloudflare/Hyperdrive/Connection.d.ts.map +1 -1
  796. package/lib/Cloudflare/Hyperdrive/Connection.js +10 -7
  797. package/lib/Cloudflare/Hyperdrive/Connection.js.map +1 -1
  798. package/lib/Cloudflare/KV/ReadNamespaceHttp.d.ts +1 -1
  799. package/lib/Cloudflare/KV/ReadNamespaceLocal.d.ts +1 -1
  800. package/lib/Cloudflare/KV/ReadNamespaceLocal.d.ts.map +1 -1
  801. package/lib/Cloudflare/KV/ReadWriteNamespaceHttp.d.ts +1 -1
  802. package/lib/Cloudflare/KV/ReadWriteNamespaceLocal.d.ts +1 -1
  803. package/lib/Cloudflare/KV/ReadWriteNamespaceLocal.d.ts.map +1 -1
  804. package/lib/Cloudflare/KV/WriteNamespaceHttp.d.ts +1 -1
  805. package/lib/Cloudflare/KV/WriteNamespaceLocal.d.ts +1 -1
  806. package/lib/Cloudflare/KV/WriteNamespaceLocal.d.ts.map +1 -1
  807. package/lib/Cloudflare/LoadBalancer/LoadBalancer.js +1 -1
  808. package/lib/Cloudflare/LoadBalancer/LoadBalancer.js.map +1 -1
  809. package/lib/Cloudflare/LoadBalancer/Monitor.js.map +1 -1
  810. package/lib/Cloudflare/Local.d.ts +8 -1
  811. package/lib/Cloudflare/Local.d.ts.map +1 -1
  812. package/lib/Cloudflare/Local.js +6 -2
  813. package/lib/Cloudflare/Local.js.map +1 -1
  814. package/lib/Cloudflare/LocalGateway.d.ts +1 -1
  815. package/lib/Cloudflare/LocalGateway.d.ts.map +1 -1
  816. package/lib/Cloudflare/LocalRuntime.d.ts +7 -2
  817. package/lib/Cloudflare/LocalRuntime.d.ts.map +1 -1
  818. package/lib/Cloudflare/LocalRuntime.js +8 -2
  819. package/lib/Cloudflare/LocalRuntime.js.map +1 -1
  820. package/lib/Cloudflare/Logs.d.ts.map +1 -1
  821. package/lib/Cloudflare/Logs.js +18 -13
  822. package/lib/Cloudflare/Logs.js.map +1 -1
  823. package/lib/Cloudflare/MagicTransit/IpsecTunnel.d.ts +1 -1
  824. package/lib/Cloudflare/MagicTransit/IpsecTunnel.js +1 -1
  825. package/lib/Cloudflare/MtlsCertificate/MtlsCertificate.d.ts +1 -1
  826. package/lib/Cloudflare/MtlsCertificate/MtlsCertificate.js +1 -1
  827. package/lib/Cloudflare/Organization/Organization.js +1 -1
  828. package/lib/Cloudflare/Organization/Organization.js.map +1 -1
  829. package/lib/Cloudflare/OriginTlsClientAuth/Certificate.d.ts +2 -2
  830. package/lib/Cloudflare/OriginTlsClientAuth/Certificate.js +2 -2
  831. package/lib/Cloudflare/OriginTlsClientAuth/HostnameAssociation.d.ts +1 -1
  832. package/lib/Cloudflare/OriginTlsClientAuth/HostnameAssociation.js +1 -1
  833. package/lib/Cloudflare/OriginTlsClientAuth/HostnameCertificate.d.ts +2 -2
  834. package/lib/Cloudflare/OriginTlsClientAuth/HostnameCertificate.js +2 -2
  835. package/lib/Cloudflare/OriginTlsClientAuth/Setting.d.ts +1 -1
  836. package/lib/Cloudflare/OriginTlsClientAuth/Setting.js +1 -1
  837. package/lib/Cloudflare/Pages/Project.d.ts +1 -1
  838. package/lib/Cloudflare/Pages/Project.js +1 -1
  839. package/lib/Cloudflare/Pipelines/LegacyPipeline.d.ts +2 -2
  840. package/lib/Cloudflare/Pipelines/LegacyPipeline.js +2 -2
  841. package/lib/Cloudflare/Pipelines/Sink.d.ts +3 -3
  842. package/lib/Cloudflare/Pipelines/Sink.js +3 -3
  843. package/lib/Cloudflare/Providers.d.ts +12 -18
  844. package/lib/Cloudflare/Providers.d.ts.map +1 -1
  845. package/lib/Cloudflare/Providers.js +15 -21
  846. package/lib/Cloudflare/Providers.js.map +1 -1
  847. package/lib/Cloudflare/Queues/Consumer.js +2 -2
  848. package/lib/Cloudflare/Queues/Consumer.js.map +1 -1
  849. package/lib/Cloudflare/Queues/Queue.js +2 -2
  850. package/lib/Cloudflare/Queues/Queue.js.map +1 -1
  851. package/lib/Cloudflare/Queues/WriteQueueHttp.d.ts +1 -1
  852. package/lib/Cloudflare/R2/Bucket.d.ts.map +1 -1
  853. package/lib/Cloudflare/R2/Bucket.js +15 -2
  854. package/lib/Cloudflare/R2/Bucket.js.map +1 -1
  855. package/lib/Cloudflare/R2/BucketBinding.d.ts.map +1 -1
  856. package/lib/Cloudflare/R2/BucketBinding.js +1 -0
  857. package/lib/Cloudflare/R2/BucketBinding.js.map +1 -1
  858. package/lib/Cloudflare/R2/BucketSippy.d.ts +7 -7
  859. package/lib/Cloudflare/R2/BucketSippy.js +7 -7
  860. package/lib/Cloudflare/R2/BucketTypes.d.ts +8 -0
  861. package/lib/Cloudflare/R2/BucketTypes.d.ts.map +1 -1
  862. package/lib/Cloudflare/R2/BucketTypes.js.map +1 -1
  863. package/lib/Cloudflare/R2/ReadBucketHttp.d.ts +1 -1
  864. package/lib/Cloudflare/R2/ReadBucketLocal.d.ts +1 -1
  865. package/lib/Cloudflare/R2/ReadBucketLocal.d.ts.map +1 -1
  866. package/lib/Cloudflare/R2/ReadWriteBucketHttp.d.ts +1 -1
  867. package/lib/Cloudflare/R2/ReadWriteBucketLocal.d.ts +1 -1
  868. package/lib/Cloudflare/R2/ReadWriteBucketLocal.d.ts.map +1 -1
  869. package/lib/Cloudflare/R2/WriteBucketBinding.d.ts.map +1 -1
  870. package/lib/Cloudflare/R2/WriteBucketBinding.js +9 -6
  871. package/lib/Cloudflare/R2/WriteBucketBinding.js.map +1 -1
  872. package/lib/Cloudflare/R2/WriteBucketHttp.d.ts +1 -1
  873. package/lib/Cloudflare/R2/WriteBucketLocal.d.ts +1 -1
  874. package/lib/Cloudflare/R2/WriteBucketLocal.d.ts.map +1 -1
  875. package/lib/Cloudflare/R2/index.d.ts +1 -0
  876. package/lib/Cloudflare/R2/index.d.ts.map +1 -1
  877. package/lib/Cloudflare/R2/index.js +1 -0
  878. package/lib/Cloudflare/R2/index.js.map +1 -1
  879. package/lib/Cloudflare/SecretsStore/Secret.js +3 -3
  880. package/lib/Cloudflare/SecretsStore/Secret.js.map +1 -1
  881. package/lib/Cloudflare/Snippets/SnippetRules.d.ts.map +1 -1
  882. package/lib/Cloudflare/Snippets/SnippetRules.js +5 -3
  883. package/lib/Cloudflare/Snippets/SnippetRules.js.map +1 -1
  884. package/lib/Cloudflare/StateStore/Api.d.ts +18 -0
  885. package/lib/Cloudflare/StateStore/Api.d.ts.map +1 -1
  886. package/lib/Cloudflare/StateStore/Api.js +2 -2
  887. package/lib/Cloudflare/StateStore/Api.js.map +1 -1
  888. package/lib/Cloudflare/StateStore/CredentialsFile.d.ts +10 -6
  889. package/lib/Cloudflare/StateStore/CredentialsFile.d.ts.map +1 -1
  890. package/lib/Cloudflare/StateStore/CredentialsFile.js +23 -1
  891. package/lib/Cloudflare/StateStore/CredentialsFile.js.map +1 -1
  892. package/lib/Cloudflare/StateStore/State.d.ts +11 -9
  893. package/lib/Cloudflare/StateStore/State.d.ts.map +1 -1
  894. package/lib/Cloudflare/StateStore/State.js +138 -113
  895. package/lib/Cloudflare/StateStore/State.js.map +1 -1
  896. package/lib/Cloudflare/Tunnel/ReadTunnelBinding.d.ts +1 -1
  897. package/lib/Cloudflare/Tunnel/ReadTunnelBinding.d.ts.map +1 -1
  898. package/lib/Cloudflare/Tunnel/ReadTunnelLocal.d.ts +1 -1
  899. package/lib/Cloudflare/Tunnel/ReadTunnelLocal.d.ts.map +1 -1
  900. package/lib/Cloudflare/Tunnel/ReadWriteTunnelBinding.d.ts +1 -1
  901. package/lib/Cloudflare/Tunnel/ReadWriteTunnelBinding.d.ts.map +1 -1
  902. package/lib/Cloudflare/Tunnel/ReadWriteTunnelLocal.d.ts +1 -1
  903. package/lib/Cloudflare/Tunnel/ReadWriteTunnelLocal.d.ts.map +1 -1
  904. package/lib/Cloudflare/Tunnel/WriteTunnelBinding.d.ts +1 -1
  905. package/lib/Cloudflare/Tunnel/WriteTunnelBinding.d.ts.map +1 -1
  906. package/lib/Cloudflare/Tunnel/WriteTunnelLocal.d.ts +1 -1
  907. package/lib/Cloudflare/Tunnel/WriteTunnelLocal.d.ts.map +1 -1
  908. package/lib/Cloudflare/Vectorize/SearchIndexHttpClient.js +1 -1
  909. package/lib/Cloudflare/Vectorize/SearchIndexHttpClient.js.map +1 -1
  910. package/lib/Cloudflare/Website/Nextjs.d.ts.map +1 -1
  911. package/lib/Cloudflare/Website/Nextjs.js +4 -12
  912. package/lib/Cloudflare/Website/Nextjs.js.map +1 -1
  913. package/lib/Cloudflare/Website/Nuxt.d.ts +1 -1
  914. package/lib/Cloudflare/Website/Nuxt.js +1 -1
  915. package/lib/Cloudflare/Website/Octane.d.ts +1 -1
  916. package/lib/Cloudflare/Website/Octane.js +1 -1
  917. package/lib/Cloudflare/Website/SvelteKit.d.ts +1 -1
  918. package/lib/Cloudflare/Website/SvelteKit.js +1 -1
  919. package/lib/Cloudflare/Website/Vocs.d.ts +1 -1
  920. package/lib/Cloudflare/Website/Vocs.d.ts.map +1 -1
  921. package/lib/Cloudflare/Website/Vocs.js +3 -7
  922. package/lib/Cloudflare/Website/Vocs.js.map +1 -1
  923. package/lib/Cloudflare/Workers/AIBinding.d.ts +1 -1
  924. package/lib/Cloudflare/Workers/AIBinding.d.ts.map +1 -1
  925. package/lib/Cloudflare/Workers/Assets.d.ts +2 -2
  926. package/lib/Cloudflare/Workers/Assets.d.ts.map +1 -1
  927. package/lib/Cloudflare/Workers/Assets.js +74 -26
  928. package/lib/Cloudflare/Workers/Assets.js.map +1 -1
  929. package/lib/Cloudflare/Workers/BrowserBinding.d.ts +1 -1
  930. package/lib/Cloudflare/Workers/BrowserBinding.d.ts.map +1 -1
  931. package/lib/Cloudflare/Workers/BrowserHttpClient.d.ts +2 -2
  932. package/lib/Cloudflare/Workers/BrowserHttpClient.d.ts.map +1 -1
  933. package/lib/Cloudflare/Workers/BrowserHttpClient.js +10 -3
  934. package/lib/Cloudflare/Workers/BrowserHttpClient.js.map +1 -1
  935. package/lib/Cloudflare/Workers/CloudflareTracer.d.ts +9 -0
  936. package/lib/Cloudflare/Workers/CloudflareTracer.d.ts.map +1 -0
  937. package/lib/Cloudflare/Workers/CloudflareTracer.js +87 -0
  938. package/lib/Cloudflare/Workers/CloudflareTracer.js.map +1 -0
  939. package/lib/Cloudflare/Workers/Compatibility.d.ts +13 -0
  940. package/lib/Cloudflare/Workers/Compatibility.d.ts.map +1 -1
  941. package/lib/Cloudflare/Workers/Compatibility.js +31 -6
  942. package/lib/Cloudflare/Workers/Compatibility.js.map +1 -1
  943. package/lib/Cloudflare/Workers/DurableObject.d.ts +72 -7
  944. package/lib/Cloudflare/Workers/DurableObject.d.ts.map +1 -1
  945. package/lib/Cloudflare/Workers/DurableObject.js +48 -7
  946. package/lib/Cloudflare/Workers/DurableObject.js.map +1 -1
  947. package/lib/Cloudflare/Workers/DurableObjectBridge.d.ts.map +1 -1
  948. package/lib/Cloudflare/Workers/DurableObjectBridge.js +5 -1
  949. package/lib/Cloudflare/Workers/DurableObjectBridge.js.map +1 -1
  950. package/lib/Cloudflare/Workers/DurableObjectState.d.ts +25 -2
  951. package/lib/Cloudflare/Workers/DurableObjectState.d.ts.map +1 -1
  952. package/lib/Cloudflare/Workers/DurableObjectState.js +7 -2
  953. package/lib/Cloudflare/Workers/DurableObjectState.js.map +1 -1
  954. package/lib/Cloudflare/Workers/DurableObjectStorage.d.ts +7 -1
  955. package/lib/Cloudflare/Workers/DurableObjectStorage.d.ts.map +1 -1
  956. package/lib/Cloudflare/Workers/DurableObjectStorage.js +27 -22
  957. package/lib/Cloudflare/Workers/DurableObjectStorage.js.map +1 -1
  958. package/lib/Cloudflare/Workers/HttpServer.d.ts +1 -1
  959. package/lib/Cloudflare/Workers/HttpServer.d.ts.map +1 -1
  960. package/lib/Cloudflare/Workers/HttpServer.js +1 -1
  961. package/lib/Cloudflare/Workers/HttpServer.js.map +1 -1
  962. package/lib/Cloudflare/Workers/InferEnv.d.ts +1 -1
  963. package/lib/Cloudflare/Workers/InferEnv.d.ts.map +1 -1
  964. package/lib/Cloudflare/Workers/LocalWorkerProvider.d.ts.map +1 -1
  965. package/lib/Cloudflare/Workers/LocalWorkerProvider.js +155 -68
  966. package/lib/Cloudflare/Workers/LocalWorkerProvider.js.map +1 -1
  967. package/lib/Cloudflare/Workers/RateLimitBinding.d.ts +1 -1
  968. package/lib/Cloudflare/Workers/RateLimitBinding.d.ts.map +1 -1
  969. package/lib/Cloudflare/Workers/Rpc.d.ts +9 -1
  970. package/lib/Cloudflare/Workers/Rpc.d.ts.map +1 -1
  971. package/lib/Cloudflare/Workers/Rpc.js +4 -3
  972. package/lib/Cloudflare/Workers/Rpc.js.map +1 -1
  973. package/lib/Cloudflare/Workers/RpcAsync.js +1 -1
  974. package/lib/Cloudflare/Workers/RpcAsync.js.map +1 -1
  975. package/lib/Cloudflare/Workers/RpcWorker.d.ts +12 -5
  976. package/lib/Cloudflare/Workers/RpcWorker.d.ts.map +1 -1
  977. package/lib/Cloudflare/Workers/RpcWorker.js +8 -2
  978. package/lib/Cloudflare/Workers/RpcWorker.js.map +1 -1
  979. package/lib/Cloudflare/Workers/SecretKeyBinding.d.ts +1 -1
  980. package/lib/Cloudflare/Workers/SecretKeyBinding.d.ts.map +1 -1
  981. package/lib/Cloudflare/Workers/Source.d.ts +3 -0
  982. package/lib/Cloudflare/Workers/Source.d.ts.map +1 -1
  983. package/lib/Cloudflare/Workers/Source.js +3 -1
  984. package/lib/Cloudflare/Workers/Source.js.map +1 -1
  985. package/lib/Cloudflare/Workers/Sources/Prebuilt.d.ts.map +1 -1
  986. package/lib/Cloudflare/Workers/Sources/Prebuilt.js +3 -2
  987. package/lib/Cloudflare/Workers/Sources/Prebuilt.js.map +1 -1
  988. package/lib/Cloudflare/Workers/Sources/Python.d.ts +2 -0
  989. package/lib/Cloudflare/Workers/Sources/Python.d.ts.map +1 -1
  990. package/lib/Cloudflare/Workers/Sources/Python.js +19 -14
  991. package/lib/Cloudflare/Workers/Sources/Python.js.map +1 -1
  992. package/lib/Cloudflare/Workers/Sources/Rolldown.d.ts.map +1 -1
  993. package/lib/Cloudflare/Workers/Sources/Rolldown.js +25 -10
  994. package/lib/Cloudflare/Workers/Sources/Rolldown.js.map +1 -1
  995. package/lib/Cloudflare/Workers/Sources/Vite.d.ts +1 -1
  996. package/lib/Cloudflare/Workers/Sources/Vite.d.ts.map +1 -1
  997. package/lib/Cloudflare/Workers/Sources/Vite.js +6 -4
  998. package/lib/Cloudflare/Workers/Sources/Vite.js.map +1 -1
  999. package/lib/Cloudflare/Workers/Sources/WorkerModulePlugin.d.ts +23 -0
  1000. package/lib/Cloudflare/Workers/Sources/WorkerModulePlugin.d.ts.map +1 -0
  1001. package/lib/Cloudflare/Workers/Sources/WorkerModulePlugin.js +52 -0
  1002. package/lib/Cloudflare/Workers/Sources/WorkerModulePlugin.js.map +1 -0
  1003. package/lib/Cloudflare/Workers/Telemetry.d.ts +113 -0
  1004. package/lib/Cloudflare/Workers/Telemetry.d.ts.map +1 -0
  1005. package/lib/Cloudflare/Workers/Telemetry.js +129 -0
  1006. package/lib/Cloudflare/Workers/Telemetry.js.map +1 -0
  1007. package/lib/Cloudflare/Workers/VersionMetadataBinding.d.ts +1 -1
  1008. package/lib/Cloudflare/Workers/VersionMetadataBinding.d.ts.map +1 -1
  1009. package/lib/Cloudflare/Workers/ViteBuildChildRunner.js +6 -1
  1010. package/lib/Cloudflare/Workers/ViteBuildChildRunner.js.map +1 -1
  1011. package/lib/Cloudflare/Workers/ViteChild.d.ts +2 -2
  1012. package/lib/Cloudflare/Workers/ViteChild.d.ts.map +1 -1
  1013. package/lib/Cloudflare/Workers/ViteChild.js +21 -18
  1014. package/lib/Cloudflare/Workers/ViteChild.js.map +1 -1
  1015. package/lib/Cloudflare/Workers/ViteChild.shared.d.ts +2 -0
  1016. package/lib/Cloudflare/Workers/ViteChild.shared.d.ts.map +1 -1
  1017. package/lib/Cloudflare/Workers/ViteChild.shared.js.map +1 -1
  1018. package/lib/Cloudflare/Workers/ViteChildRunner.js +2 -1
  1019. package/lib/Cloudflare/Workers/ViteChildRunner.js.map +1 -1
  1020. package/lib/Cloudflare/Workers/Worker.d.ts +269 -150
  1021. package/lib/Cloudflare/Workers/Worker.d.ts.map +1 -1
  1022. package/lib/Cloudflare/Workers/Worker.js +137 -147
  1023. package/lib/Cloudflare/Workers/Worker.js.map +1 -1
  1024. package/lib/Cloudflare/Workers/WorkerAsyncBindings.d.ts +9 -1
  1025. package/lib/Cloudflare/Workers/WorkerAsyncBindings.d.ts.map +1 -1
  1026. package/lib/Cloudflare/Workers/WorkerAsyncBindings.js +23 -0
  1027. package/lib/Cloudflare/Workers/WorkerAsyncBindings.js.map +1 -1
  1028. package/lib/Cloudflare/Workers/WorkerBinding.d.ts +37 -1
  1029. package/lib/Cloudflare/Workers/WorkerBinding.d.ts.map +1 -1
  1030. package/lib/Cloudflare/Workers/WorkerBridge.js +5 -5
  1031. package/lib/Cloudflare/Workers/WorkerBridge.js.map +1 -1
  1032. package/lib/Cloudflare/Workers/WorkerEntrypoint.d.ts +42 -13
  1033. package/lib/Cloudflare/Workers/WorkerEntrypoint.d.ts.map +1 -1
  1034. package/lib/Cloudflare/Workers/WorkerEntrypoint.js +36 -10
  1035. package/lib/Cloudflare/Workers/WorkerEntrypoint.js.map +1 -1
  1036. package/lib/Cloudflare/Workers/WorkerLoader.d.ts +30 -4
  1037. package/lib/Cloudflare/Workers/WorkerLoader.d.ts.map +1 -1
  1038. package/lib/Cloudflare/Workers/WorkerLoader.js +36 -5
  1039. package/lib/Cloudflare/Workers/WorkerLoader.js.map +1 -1
  1040. package/lib/Cloudflare/Workers/WorkerProvider.d.ts +20 -0
  1041. package/lib/Cloudflare/Workers/WorkerProvider.d.ts.map +1 -1
  1042. package/lib/Cloudflare/Workers/WorkerProvider.js +486 -72
  1043. package/lib/Cloudflare/Workers/WorkerProvider.js.map +1 -1
  1044. package/lib/Cloudflare/Workers/WorkerRuntime.d.ts +82 -0
  1045. package/lib/Cloudflare/Workers/WorkerRuntime.d.ts.map +1 -0
  1046. package/lib/Cloudflare/Workers/WorkerRuntime.js +77 -0
  1047. package/lib/Cloudflare/Workers/WorkerRuntime.js.map +1 -0
  1048. package/lib/Cloudflare/Workers/WorkerRuntimeContext.d.ts.map +1 -1
  1049. package/lib/Cloudflare/Workers/WorkerRuntimeContext.js +9 -6
  1050. package/lib/Cloudflare/Workers/WorkerRuntimeContext.js.map +1 -1
  1051. package/lib/Cloudflare/Workers/cloudflare_workers.d.ts.map +1 -1
  1052. package/lib/Cloudflare/Workers/cloudflare_workers.js +4 -1
  1053. package/lib/Cloudflare/Workers/cloudflare_workers.js.map +1 -1
  1054. package/lib/Cloudflare/Workers/index.d.ts +1 -0
  1055. package/lib/Cloudflare/Workers/index.d.ts.map +1 -1
  1056. package/lib/Cloudflare/Workers/index.js +1 -0
  1057. package/lib/Cloudflare/Workers/index.js.map +1 -1
  1058. package/lib/Cloudflare/Workflows/Workflow.d.ts +79 -31
  1059. package/lib/Cloudflare/Workflows/Workflow.d.ts.map +1 -1
  1060. package/lib/Cloudflare/Workflows/Workflow.js +49 -21
  1061. package/lib/Cloudflare/Workflows/Workflow.js.map +1 -1
  1062. package/lib/Cloudflare/Workflows/WorkflowBridge.d.ts +2 -1
  1063. package/lib/Cloudflare/Workflows/WorkflowBridge.d.ts.map +1 -1
  1064. package/lib/Cloudflare/Workflows/WorkflowBridge.js +9 -6
  1065. package/lib/Cloudflare/Workflows/WorkflowBridge.js.map +1 -1
  1066. package/lib/Cloudflare/Workflows/WorkflowRuntime.d.ts +42 -0
  1067. package/lib/Cloudflare/Workflows/WorkflowRuntime.d.ts.map +1 -0
  1068. package/lib/Cloudflare/Workflows/WorkflowRuntime.js +20 -0
  1069. package/lib/Cloudflare/Workflows/WorkflowRuntime.js.map +1 -0
  1070. package/lib/Cloudflare/index.d.ts.map +1 -1
  1071. package/lib/Cloudflare/index.js +3 -1
  1072. package/lib/Cloudflare/index.js.map +1 -1
  1073. package/lib/Command/Command.d.ts +1 -1
  1074. package/lib/Command/Command.d.ts.map +1 -1
  1075. package/lib/Command/Command.js +2 -2
  1076. package/lib/Command/Command.js.map +1 -1
  1077. package/lib/Command/Dev.d.ts +5 -2
  1078. package/lib/Command/Dev.d.ts.map +1 -1
  1079. package/lib/Command/Dev.js +33 -8
  1080. package/lib/Command/Dev.js.map +1 -1
  1081. package/lib/Command/Local.d.ts +7 -1
  1082. package/lib/Command/Local.d.ts.map +1 -1
  1083. package/lib/Command/Local.js +5 -2
  1084. package/lib/Command/Local.js.map +1 -1
  1085. package/lib/Command/Memo.d.ts.map +1 -1
  1086. package/lib/Command/Memo.js +6 -7
  1087. package/lib/Command/Memo.js.map +1 -1
  1088. package/lib/Command/Providers.d.ts +1 -1
  1089. package/lib/Command/Providers.d.ts.map +1 -1
  1090. package/lib/Deploy.d.ts +1 -1
  1091. package/lib/Deploy.d.ts.map +1 -1
  1092. package/lib/Destroy.d.ts +1 -1
  1093. package/lib/Destroy.d.ts.map +1 -1
  1094. package/lib/Docker/BuildHash.d.ts +13 -0
  1095. package/lib/Docker/BuildHash.d.ts.map +1 -1
  1096. package/lib/Docker/BuildHash.js +53 -3
  1097. package/lib/Docker/BuildHash.js.map +1 -1
  1098. package/lib/Docker/Container.d.ts +1 -1
  1099. package/lib/Docker/Container.js +1 -1
  1100. package/lib/Docker/Docker.d.ts +20 -8
  1101. package/lib/Docker/Docker.d.ts.map +1 -1
  1102. package/lib/Docker/Docker.js +132 -54
  1103. package/lib/Docker/Docker.js.map +1 -1
  1104. package/lib/Docker/Image.d.ts +1 -1
  1105. package/lib/Docker/Image.js +1 -1
  1106. package/lib/Docker/Registry.d.ts +1 -1
  1107. package/lib/Docker/RegistryError.d.ts +21 -0
  1108. package/lib/Docker/RegistryError.d.ts.map +1 -0
  1109. package/lib/Docker/RegistryError.js +28 -0
  1110. package/lib/Docker/RegistryError.js.map +1 -0
  1111. package/lib/Docker/RemoteImage.d.ts +1 -1
  1112. package/lib/Docker/RemoteImage.js +1 -1
  1113. package/lib/Docker/Service.d.ts +7 -21
  1114. package/lib/Docker/Service.d.ts.map +1 -1
  1115. package/lib/Docker/Service.js +7 -21
  1116. package/lib/Docker/Service.js.map +1 -1
  1117. package/lib/Docker/ServiceImage.d.ts +5 -6
  1118. package/lib/Docker/ServiceImage.d.ts.map +1 -1
  1119. package/lib/Docker/ServiceImage.js.map +1 -1
  1120. package/lib/Docker/index.d.ts +1 -0
  1121. package/lib/Docker/index.d.ts.map +1 -1
  1122. package/lib/Docker/index.js +1 -0
  1123. package/lib/Docker/index.js.map +1 -1
  1124. package/lib/Drift.d.ts +91 -0
  1125. package/lib/Drift.d.ts.map +1 -0
  1126. package/lib/{Sync.js → Drift.js} +98 -29
  1127. package/lib/Drift.js.map +1 -0
  1128. package/lib/Drizzle/Postgres.d.ts.map +1 -1
  1129. package/lib/Drizzle/Postgres.js +3 -1
  1130. package/lib/Drizzle/Postgres.js.map +1 -1
  1131. package/lib/Drizzle/Schema.d.ts.map +1 -1
  1132. package/lib/Drizzle/Schema.js +5 -5
  1133. package/lib/Drizzle/Schema.js.map +1 -1
  1134. package/lib/Fly/App.d.ts +1 -1
  1135. package/lib/Fly/App.d.ts.map +1 -1
  1136. package/lib/Fly/AuthProvider.d.ts +6 -20
  1137. package/lib/Fly/AuthProvider.d.ts.map +1 -1
  1138. package/lib/Fly/AuthProvider.js +32 -124
  1139. package/lib/Fly/AuthProvider.js.map +1 -1
  1140. package/lib/Fly/Bucket.d.ts +1 -1
  1141. package/lib/Fly/Bucket.d.ts.map +1 -1
  1142. package/lib/Fly/BucketBinding.js +5 -5
  1143. package/lib/Fly/Catalog.d.ts +1 -1
  1144. package/lib/Fly/Catalog.d.ts.map +1 -1
  1145. package/lib/Fly/CheckpointHttp.d.ts.map +1 -1
  1146. package/lib/Fly/CheckpointHttp.js +2 -2
  1147. package/lib/Fly/CheckpointHttp.js.map +1 -1
  1148. package/lib/Fly/Credentials.d.ts +15 -6
  1149. package/lib/Fly/Credentials.d.ts.map +1 -1
  1150. package/lib/Fly/Credentials.js +25 -13
  1151. package/lib/Fly/Credentials.js.map +1 -1
  1152. package/lib/Fly/DecryptHttp.d.ts.map +1 -1
  1153. package/lib/Fly/DecryptHttp.js +2 -2
  1154. package/lib/Fly/DecryptHttp.js.map +1 -1
  1155. package/lib/Fly/EncryptHttp.d.ts.map +1 -1
  1156. package/lib/Fly/EncryptHttp.js +2 -2
  1157. package/lib/Fly/EncryptHttp.js.map +1 -1
  1158. package/lib/Fly/Environment.d.ts +1 -1
  1159. package/lib/Fly/Environment.d.ts.map +1 -1
  1160. package/lib/Fly/ExecHttp.d.ts.map +1 -1
  1161. package/lib/Fly/ExecHttp.js +2 -2
  1162. package/lib/Fly/ExecHttp.js.map +1 -1
  1163. package/lib/Fly/GetSecretHttp.d.ts.map +1 -1
  1164. package/lib/Fly/GetSecretHttp.js +3 -3
  1165. package/lib/Fly/GetSecretHttp.js.map +1 -1
  1166. package/lib/Fly/ListSecretsHttp.d.ts.map +1 -1
  1167. package/lib/Fly/ListSecretsHttp.js +2 -2
  1168. package/lib/Fly/ListSecretsHttp.js.map +1 -1
  1169. package/lib/Fly/Machine.d.ts +65 -0
  1170. package/lib/Fly/Machine.d.ts.map +1 -1
  1171. package/lib/Fly/Machine.js +34 -19
  1172. package/lib/Fly/Machine.js.map +1 -1
  1173. package/lib/Fly/Postgres.d.ts +1 -1
  1174. package/lib/Fly/Postgres.d.ts.map +1 -1
  1175. package/lib/Fly/Providers.d.ts +1 -1
  1176. package/lib/Fly/Providers.d.ts.map +1 -1
  1177. package/lib/Fly/Providers.js +2 -2
  1178. package/lib/Fly/Providers.js.map +1 -1
  1179. package/lib/Fly/Redis.d.ts +1 -1
  1180. package/lib/Fly/Redis.d.ts.map +1 -1
  1181. package/lib/Fly/RedisBinding.js +2 -2
  1182. package/lib/Fly/Secret.d.ts +4 -4
  1183. package/lib/Fly/Secret.js +4 -4
  1184. package/lib/Fly/SecretHttp.js +1 -1
  1185. package/lib/Fly/Service.d.ts +46 -3
  1186. package/lib/Fly/Service.d.ts.map +1 -1
  1187. package/lib/Fly/Service.js +47 -22
  1188. package/lib/Fly/Service.js.map +1 -1
  1189. package/lib/Fly/SignHttp.d.ts.map +1 -1
  1190. package/lib/Fly/SignHttp.js +2 -2
  1191. package/lib/Fly/SignHttp.js.map +1 -1
  1192. package/lib/Fly/Sprite.d.ts +2 -2
  1193. package/lib/Fly/Sprite.js +2 -2
  1194. package/lib/Fly/VerifyHttp.d.ts.map +1 -1
  1195. package/lib/Fly/VerifyHttp.js +2 -2
  1196. package/lib/Fly/VerifyHttp.js.map +1 -1
  1197. package/lib/Fly/Volume.d.ts +8 -8
  1198. package/lib/Fly/Volume.d.ts.map +1 -1
  1199. package/lib/Fly/Website/AssetDeployment.d.ts.map +1 -1
  1200. package/lib/Fly/Website/AssetDeployment.js +1 -1
  1201. package/lib/Fly/Website/AssetDeployment.js.map +1 -1
  1202. package/lib/Fly/WriteSecretHttp.d.ts.map +1 -1
  1203. package/lib/Fly/WriteSecretHttp.js +2 -2
  1204. package/lib/Fly/WriteSecretHttp.js.map +1 -1
  1205. package/lib/Fly/replicas.d.ts +12 -10
  1206. package/lib/Fly/replicas.d.ts.map +1 -1
  1207. package/lib/Fly/replicas.js +74 -9
  1208. package/lib/Fly/replicas.js.map +1 -1
  1209. package/lib/Git/Api/GitHub.d.ts +38 -0
  1210. package/lib/Git/Api/GitHub.d.ts.map +1 -0
  1211. package/lib/Git/Api/GitHub.js +38 -0
  1212. package/lib/Git/Api/GitHub.js.map +1 -0
  1213. package/lib/Git/Api/Internal.d.ts +27 -0
  1214. package/lib/Git/Api/Internal.d.ts.map +1 -0
  1215. package/lib/Git/Api/Internal.js +27 -0
  1216. package/lib/Git/Api/Internal.js.map +1 -0
  1217. package/lib/Git/Api/Objects.d.ts +140 -0
  1218. package/lib/Git/Api/Objects.d.ts.map +1 -0
  1219. package/lib/Git/Api/Objects.js +100 -0
  1220. package/lib/Git/Api/Objects.js.map +1 -0
  1221. package/lib/Git/Api/Protocol.d.ts +41 -0
  1222. package/lib/Git/Api/Protocol.d.ts.map +1 -0
  1223. package/lib/Git/Api/Protocol.js +23 -0
  1224. package/lib/Git/Api/Protocol.js.map +1 -0
  1225. package/lib/Git/Api/Pulls.d.ts +157 -0
  1226. package/lib/Git/Api/Pulls.d.ts.map +1 -0
  1227. package/lib/Git/Api/Pulls.js +109 -0
  1228. package/lib/Git/Api/Pulls.js.map +1 -0
  1229. package/lib/Git/Api/Refs.d.ts +95 -0
  1230. package/lib/Git/Api/Refs.d.ts.map +1 -0
  1231. package/lib/Git/Api/Refs.js +70 -0
  1232. package/lib/Git/Api/Refs.js.map +1 -0
  1233. package/lib/Git/Api/Repos.d.ts +168 -0
  1234. package/lib/Git/Api/Repos.d.ts.map +1 -0
  1235. package/lib/Git/Api/Repos.js +123 -0
  1236. package/lib/Git/Api/Repos.js.map +1 -0
  1237. package/lib/Git/Api/Schema.d.ts +511 -0
  1238. package/lib/Git/Api/Schema.d.ts.map +1 -0
  1239. package/lib/Git/Api/Schema.js +443 -0
  1240. package/lib/Git/Api/Schema.js.map +1 -0
  1241. package/lib/Git/Api.d.ts +65 -0
  1242. package/lib/Git/Api.d.ts.map +1 -0
  1243. package/lib/Git/Api.js +54 -0
  1244. package/lib/Git/Api.js.map +1 -0
  1245. package/lib/Git/BlobStore.d.ts +129 -0
  1246. package/lib/Git/BlobStore.d.ts.map +1 -0
  1247. package/lib/Git/BlobStore.js +118 -0
  1248. package/lib/Git/BlobStore.js.map +1 -0
  1249. package/lib/Git/BlobStoreS3.d.ts +13 -0
  1250. package/lib/Git/BlobStoreS3.d.ts.map +1 -0
  1251. package/lib/Git/BlobStoreS3.js +184 -0
  1252. package/lib/Git/BlobStoreS3.js.map +1 -0
  1253. package/lib/Git/Engine.d.ts +127 -0
  1254. package/lib/Git/Engine.d.ts.map +1 -0
  1255. package/lib/Git/Engine.js +290 -0
  1256. package/lib/Git/Engine.js.map +1 -0
  1257. package/lib/Git/GitHubCompat.d.ts +155 -0
  1258. package/lib/Git/GitHubCompat.d.ts.map +1 -0
  1259. package/lib/Git/GitHubCompat.js +444 -0
  1260. package/lib/Git/GitHubCompat.js.map +1 -0
  1261. package/lib/Git/Hasher/Hasher.d.ts +129 -0
  1262. package/lib/Git/Hasher/Hasher.d.ts.map +1 -0
  1263. package/lib/Git/Hasher/Hasher.js +170 -0
  1264. package/lib/Git/Hasher/Hasher.js.map +1 -0
  1265. package/lib/Git/Hasher/Lambda.d.ts +18 -0
  1266. package/lib/Git/Hasher/Lambda.d.ts.map +1 -0
  1267. package/lib/Git/Hasher/Lambda.js +81 -0
  1268. package/lib/Git/Hasher/Lambda.js.map +1 -0
  1269. package/lib/Git/Hasher/LambdaEvent.d.ts +45 -0
  1270. package/lib/Git/Hasher/LambdaEvent.d.ts.map +1 -0
  1271. package/lib/Git/Hasher/LambdaEvent.js +99 -0
  1272. package/lib/Git/Hasher/LambdaEvent.js.map +1 -0
  1273. package/lib/Git/Hasher/LambdaFunction.d.ts +7 -0
  1274. package/lib/Git/Hasher/LambdaFunction.d.ts.map +1 -0
  1275. package/lib/Git/Hasher/LambdaFunction.js +41 -0
  1276. package/lib/Git/Hasher/LambdaFunction.js.map +1 -0
  1277. package/lib/Git/Hasher/Protocol.d.ts +46 -0
  1278. package/lib/Git/Hasher/Protocol.d.ts.map +1 -0
  1279. package/lib/Git/Hasher/Protocol.js +235 -0
  1280. package/lib/Git/Hasher/Protocol.js.map +1 -0
  1281. package/lib/Git/Hasher/WorkerLoader.d.ts +17 -0
  1282. package/lib/Git/Hasher/WorkerLoader.d.ts.map +1 -0
  1283. package/lib/Git/Hasher/WorkerLoader.js +90 -0
  1284. package/lib/Git/Hasher/WorkerLoader.js.map +1 -0
  1285. package/lib/Git/Hasher/WorkerLoaderModule.d.ts +5 -0
  1286. package/lib/Git/Hasher/WorkerLoaderModule.d.ts.map +1 -0
  1287. package/lib/Git/Hasher/WorkerLoaderModule.js +47 -0
  1288. package/lib/Git/Hasher/WorkerLoaderModule.js.map +1 -0
  1289. package/lib/Git/Hasher/index.d.ts +16 -0
  1290. package/lib/Git/Hasher/index.d.ts.map +1 -0
  1291. package/lib/Git/Hasher/index.js +16 -0
  1292. package/lib/Git/Hasher/index.js.map +1 -0
  1293. package/lib/Git/Http/ReceivePack.d.ts +38 -0
  1294. package/lib/Git/Http/ReceivePack.d.ts.map +1 -0
  1295. package/lib/Git/Http/ReceivePack.js +94 -0
  1296. package/lib/Git/Http/ReceivePack.js.map +1 -0
  1297. package/lib/Git/Http.d.ts +5 -0
  1298. package/lib/Git/Http.d.ts.map +1 -0
  1299. package/lib/Git/Http.js +5 -0
  1300. package/lib/Git/Http.js.map +1 -0
  1301. package/lib/Git/Jobs/Bundle.d.ts +139 -0
  1302. package/lib/Git/Jobs/Bundle.d.ts.map +1 -0
  1303. package/lib/Git/Jobs/Bundle.js +160 -0
  1304. package/lib/Git/Jobs/Bundle.js.map +1 -0
  1305. package/lib/Git/Jobs/Compact.d.ts +145 -0
  1306. package/lib/Git/Jobs/Compact.d.ts.map +1 -0
  1307. package/lib/Git/Jobs/Compact.js +331 -0
  1308. package/lib/Git/Jobs/Compact.js.map +1 -0
  1309. package/lib/Git/Jobs/Fork.d.ts +116 -0
  1310. package/lib/Git/Jobs/Fork.d.ts.map +1 -0
  1311. package/lib/Git/Jobs/Fork.js +173 -0
  1312. package/lib/Git/Jobs/Fork.js.map +1 -0
  1313. package/lib/Git/Jobs/Import.d.ts +144 -0
  1314. package/lib/Git/Jobs/Import.d.ts.map +1 -0
  1315. package/lib/Git/Jobs/Import.js +291 -0
  1316. package/lib/Git/Jobs/Import.js.map +1 -0
  1317. package/lib/Git/Jobs/Purge.d.ts +62 -0
  1318. package/lib/Git/Jobs/Purge.d.ts.map +1 -0
  1319. package/lib/Git/Jobs/Purge.js +55 -0
  1320. package/lib/Git/Jobs/Purge.js.map +1 -0
  1321. package/lib/Git/Operations.d.ts +136 -0
  1322. package/lib/Git/Operations.d.ts.map +1 -0
  1323. package/lib/Git/Operations.js +684 -0
  1324. package/lib/Git/Operations.js.map +1 -0
  1325. package/lib/Git/Protocol/Advertise.d.ts +50 -0
  1326. package/lib/Git/Protocol/Advertise.d.ts.map +1 -0
  1327. package/lib/Git/Protocol/Advertise.js +116 -0
  1328. package/lib/Git/Protocol/Advertise.js.map +1 -0
  1329. package/lib/Git/Protocol/Delta.d.ts +60 -0
  1330. package/lib/Git/Protocol/Delta.d.ts.map +1 -0
  1331. package/lib/Git/Protocol/Delta.js +147 -0
  1332. package/lib/Git/Protocol/Delta.js.map +1 -0
  1333. package/lib/Git/Protocol/GzipBody.d.ts +65 -0
  1334. package/lib/Git/Protocol/GzipBody.d.ts.map +1 -0
  1335. package/lib/Git/Protocol/GzipBody.js +108 -0
  1336. package/lib/Git/Protocol/GzipBody.js.map +1 -0
  1337. package/lib/Git/Protocol/ObjectCodec.d.ts +346 -0
  1338. package/lib/Git/Protocol/ObjectCodec.d.ts.map +1 -0
  1339. package/lib/Git/Protocol/ObjectCodec.js +685 -0
  1340. package/lib/Git/Protocol/ObjectCodec.js.map +1 -0
  1341. package/lib/Git/Protocol/PackParser.d.ts +231 -0
  1342. package/lib/Git/Protocol/PackParser.d.ts.map +1 -0
  1343. package/lib/Git/Protocol/PackParser.js +636 -0
  1344. package/lib/Git/Protocol/PackParser.js.map +1 -0
  1345. package/lib/Git/Protocol/PackWriter.d.ts +50 -0
  1346. package/lib/Git/Protocol/PackWriter.d.ts.map +1 -0
  1347. package/lib/Git/Protocol/PackWriter.js +82 -0
  1348. package/lib/Git/Protocol/PackWriter.js.map +1 -0
  1349. package/lib/Git/Protocol/PartialScan.d.ts +183 -0
  1350. package/lib/Git/Protocol/PartialScan.d.ts.map +1 -0
  1351. package/lib/Git/Protocol/PartialScan.js +513 -0
  1352. package/lib/Git/Protocol/PartialScan.js.map +1 -0
  1353. package/lib/Git/Protocol/Pkt.d.ts +107 -0
  1354. package/lib/Git/Protocol/Pkt.d.ts.map +1 -0
  1355. package/lib/Git/Protocol/Pkt.js +227 -0
  1356. package/lib/Git/Protocol/Pkt.js.map +1 -0
  1357. package/lib/Git/Protocol/ReceivePack.d.ts +190 -0
  1358. package/lib/Git/Protocol/ReceivePack.d.ts.map +1 -0
  1359. package/lib/Git/Protocol/ReceivePack.js +250 -0
  1360. package/lib/Git/Protocol/ReceivePack.js.map +1 -0
  1361. package/lib/Git/Protocol/Sideband.d.ts +97 -0
  1362. package/lib/Git/Protocol/Sideband.d.ts.map +1 -0
  1363. package/lib/Git/Protocol/Sideband.js +214 -0
  1364. package/lib/Git/Protocol/Sideband.js.map +1 -0
  1365. package/lib/Git/Protocol/Store.d.ts +160 -0
  1366. package/lib/Git/Protocol/Store.d.ts.map +1 -0
  1367. package/lib/Git/Protocol/Store.js +11 -0
  1368. package/lib/Git/Protocol/Store.js.map +1 -0
  1369. package/lib/Git/Protocol/TreeDiff.d.ts +114 -0
  1370. package/lib/Git/Protocol/TreeDiff.d.ts.map +1 -0
  1371. package/lib/Git/Protocol/TreeDiff.js +347 -0
  1372. package/lib/Git/Protocol/TreeDiff.js.map +1 -0
  1373. package/lib/Git/Protocol/UploadPack.d.ts +103 -0
  1374. package/lib/Git/Protocol/UploadPack.d.ts.map +1 -0
  1375. package/lib/Git/Protocol/UploadPack.js +269 -0
  1376. package/lib/Git/Protocol/UploadPack.js.map +1 -0
  1377. package/lib/Git/Protocol/Zlib.d.ts +75 -0
  1378. package/lib/Git/Protocol/Zlib.d.ts.map +1 -0
  1379. package/lib/Git/Protocol/Zlib.js +256 -0
  1380. package/lib/Git/Protocol/Zlib.js.map +1 -0
  1381. package/lib/Git/Push.d.ts +47 -0
  1382. package/lib/Git/Push.d.ts.map +1 -0
  1383. package/lib/Git/Push.js +12 -0
  1384. package/lib/Git/Push.js.map +1 -0
  1385. package/lib/Git/PushInput.d.ts +14 -0
  1386. package/lib/Git/PushInput.d.ts.map +1 -0
  1387. package/lib/Git/PushInput.js +45 -0
  1388. package/lib/Git/PushInput.js.map +1 -0
  1389. package/lib/Git/PushWire.d.ts +17 -0
  1390. package/lib/Git/PushWire.d.ts.map +1 -0
  1391. package/lib/Git/PushWire.js +49 -0
  1392. package/lib/Git/PushWire.js.map +1 -0
  1393. package/lib/Git/RegistryD1.d.ts +10 -0
  1394. package/lib/Git/RegistryD1.d.ts.map +1 -0
  1395. package/lib/Git/RegistryD1.js +188 -0
  1396. package/lib/Git/RegistryD1.js.map +1 -0
  1397. package/lib/Git/RegistryObject.d.ts +210 -0
  1398. package/lib/Git/RegistryObject.d.ts.map +1 -0
  1399. package/lib/Git/RegistryObject.js +287 -0
  1400. package/lib/Git/RegistryObject.js.map +1 -0
  1401. package/lib/Git/RepoObject.d.ts +804 -0
  1402. package/lib/Git/RepoObject.d.ts.map +1 -0
  1403. package/lib/Git/RepoObject.js +3839 -0
  1404. package/lib/Git/RepoObject.js.map +1 -0
  1405. package/lib/Git/Server.d.ts +215 -0
  1406. package/lib/Git/Server.d.ts.map +1 -0
  1407. package/lib/Git/Server.js +620 -0
  1408. package/lib/Git/Server.js.map +1 -0
  1409. package/lib/Git/Store/Closure.d.ts +85 -0
  1410. package/lib/Git/Store/Closure.d.ts.map +1 -0
  1411. package/lib/Git/Store/Closure.js +374 -0
  1412. package/lib/Git/Store/Closure.js.map +1 -0
  1413. package/lib/Git/Store/HeadSnapshot.d.ts +38 -0
  1414. package/lib/Git/Store/HeadSnapshot.d.ts.map +1 -0
  1415. package/lib/Git/Store/HeadSnapshot.js +12 -0
  1416. package/lib/Git/Store/HeadSnapshot.js.map +1 -0
  1417. package/lib/Git/Store/IncomingBody.d.ts +37 -0
  1418. package/lib/Git/Store/IncomingBody.d.ts.map +1 -0
  1419. package/lib/Git/Store/IncomingBody.js +61 -0
  1420. package/lib/Git/Store/IncomingBody.js.map +1 -0
  1421. package/lib/Git/Store/Keys.d.ts +105 -0
  1422. package/lib/Git/Store/Keys.d.ts.map +1 -0
  1423. package/lib/Git/Store/Keys.js +107 -0
  1424. package/lib/Git/Store/Keys.js.map +1 -0
  1425. package/lib/Git/Store/ObjectStore.d.ts +210 -0
  1426. package/lib/Git/Store/ObjectStore.d.ts.map +1 -0
  1427. package/lib/Git/Store/ObjectStore.js +598 -0
  1428. package/lib/Git/Store/ObjectStore.js.map +1 -0
  1429. package/lib/Git/Store/PackSource.d.ts +23 -0
  1430. package/lib/Git/Store/PackSource.d.ts.map +1 -0
  1431. package/lib/Git/Store/PackSource.js +129 -0
  1432. package/lib/Git/Store/PackSource.js.map +1 -0
  1433. package/lib/Git/Store/Sql.d.ts +213 -0
  1434. package/lib/Git/Store/Sql.d.ts.map +1 -0
  1435. package/lib/Git/Store/Sql.js +244 -0
  1436. package/lib/Git/Store/Sql.js.map +1 -0
  1437. package/lib/Git/Store/StreamingSource.d.ts +66 -0
  1438. package/lib/Git/Store/StreamingSource.d.ts.map +1 -0
  1439. package/lib/Git/Store/StreamingSource.js +274 -0
  1440. package/lib/Git/Store/StreamingSource.js.map +1 -0
  1441. package/lib/Git/index.d.ts +39 -0
  1442. package/lib/Git/index.d.ts.map +1 -0
  1443. package/lib/Git/index.js +38 -0
  1444. package/lib/Git/index.js.map +1 -0
  1445. package/lib/GitHub/AuthProvider.d.ts +20 -29
  1446. package/lib/GitHub/AuthProvider.d.ts.map +1 -1
  1447. package/lib/GitHub/AuthProvider.js +141 -75
  1448. package/lib/GitHub/AuthProvider.js.map +1 -1
  1449. package/lib/GitHub/BranchProtection.d.ts +309 -0
  1450. package/lib/GitHub/BranchProtection.d.ts.map +1 -0
  1451. package/lib/GitHub/BranchProtection.js +334 -0
  1452. package/lib/GitHub/BranchProtection.js.map +1 -0
  1453. package/lib/GitHub/Collaborator.d.ts +112 -0
  1454. package/lib/GitHub/Collaborator.d.ts.map +1 -0
  1455. package/lib/GitHub/Collaborator.js +164 -0
  1456. package/lib/GitHub/Collaborator.js.map +1 -0
  1457. package/lib/GitHub/Credentials.d.ts +2 -3
  1458. package/lib/GitHub/Credentials.d.ts.map +1 -1
  1459. package/lib/GitHub/Credentials.js +6 -10
  1460. package/lib/GitHub/Credentials.js.map +1 -1
  1461. package/lib/GitHub/Env.js +7 -7
  1462. package/lib/GitHub/Issue.d.ts +168 -0
  1463. package/lib/GitHub/Issue.d.ts.map +1 -0
  1464. package/lib/GitHub/Issue.js +229 -0
  1465. package/lib/GitHub/Issue.js.map +1 -0
  1466. package/lib/GitHub/Label.d.ts +194 -0
  1467. package/lib/GitHub/Label.d.ts.map +1 -0
  1468. package/lib/GitHub/Label.js +260 -0
  1469. package/lib/GitHub/Label.js.map +1 -0
  1470. package/lib/GitHub/Milestone.d.ts +203 -0
  1471. package/lib/GitHub/Milestone.d.ts.map +1 -0
  1472. package/lib/GitHub/Milestone.js +261 -0
  1473. package/lib/GitHub/Milestone.js.map +1 -0
  1474. package/lib/GitHub/Providers.d.ts +3 -4
  1475. package/lib/GitHub/Providers.d.ts.map +1 -1
  1476. package/lib/GitHub/Providers.js +24 -5
  1477. package/lib/GitHub/Providers.js.map +1 -1
  1478. package/lib/GitHub/PullRequest.d.ts +220 -0
  1479. package/lib/GitHub/PullRequest.d.ts.map +1 -0
  1480. package/lib/GitHub/PullRequest.js +323 -0
  1481. package/lib/GitHub/PullRequest.js.map +1 -0
  1482. package/lib/GitHub/Release.d.ts +256 -0
  1483. package/lib/GitHub/Release.d.ts.map +1 -0
  1484. package/lib/GitHub/Release.js +315 -0
  1485. package/lib/GitHub/Release.js.map +1 -0
  1486. package/lib/GitHub/Ruleset.d.ts +277 -0
  1487. package/lib/GitHub/Ruleset.d.ts.map +1 -0
  1488. package/lib/GitHub/Ruleset.js +284 -0
  1489. package/lib/GitHub/Ruleset.js.map +1 -0
  1490. package/lib/GitHub/TeamAccess.d.ts +130 -0
  1491. package/lib/GitHub/TeamAccess.d.ts.map +1 -0
  1492. package/lib/GitHub/TeamAccess.js +176 -0
  1493. package/lib/GitHub/TeamAccess.js.map +1 -0
  1494. package/lib/GitHub/WikiPage.d.ts +252 -0
  1495. package/lib/GitHub/WikiPage.d.ts.map +1 -0
  1496. package/lib/GitHub/WikiPage.js +360 -0
  1497. package/lib/GitHub/WikiPage.js.map +1 -0
  1498. package/lib/GitHub/index.d.ts +10 -0
  1499. package/lib/GitHub/index.d.ts.map +1 -1
  1500. package/lib/GitHub/index.js +10 -0
  1501. package/lib/GitHub/index.js.map +1 -1
  1502. package/lib/Hetzner/AuthProvider.d.ts +7 -20
  1503. package/lib/Hetzner/AuthProvider.d.ts.map +1 -1
  1504. package/lib/Hetzner/AuthProvider.js +42 -130
  1505. package/lib/Hetzner/AuthProvider.js.map +1 -1
  1506. package/lib/Hetzner/Catalog.d.ts +5 -5
  1507. package/lib/Hetzner/Catalog.d.ts.map +1 -1
  1508. package/lib/Hetzner/Credentials.d.ts +1 -3
  1509. package/lib/Hetzner/Credentials.d.ts.map +1 -1
  1510. package/lib/Hetzner/Credentials.js +4 -9
  1511. package/lib/Hetzner/Credentials.js.map +1 -1
  1512. package/lib/Hetzner/PlacementGroup.d.ts +1 -1
  1513. package/lib/Hetzner/PlacementGroup.d.ts.map +1 -1
  1514. package/lib/Hetzner/Providers.d.ts +1 -1
  1515. package/lib/Hetzner/Providers.d.ts.map +1 -1
  1516. package/lib/Hetzner/Providers.js +2 -2
  1517. package/lib/Hetzner/Providers.js.map +1 -1
  1518. package/lib/Hetzner/Server.d.ts.map +1 -1
  1519. package/lib/Hetzner/Server.js +29 -6
  1520. package/lib/Hetzner/Server.js.map +1 -1
  1521. package/lib/Hetzner/hosted.d.ts +2 -2
  1522. package/lib/Http/Platform.d.ts +18 -0
  1523. package/lib/Http/Platform.d.ts.map +1 -0
  1524. package/lib/Http/Platform.js +35 -0
  1525. package/lib/Http/Platform.js.map +1 -0
  1526. package/lib/Http/index.d.ts +6 -0
  1527. package/lib/Http/index.d.ts.map +1 -0
  1528. package/lib/Http/index.js +6 -0
  1529. package/lib/Http/index.js.map +1 -0
  1530. package/lib/Http.d.ts +7 -1
  1531. package/lib/Http.d.ts.map +1 -1
  1532. package/lib/Http.js +2 -4
  1533. package/lib/Http.js.map +1 -1
  1534. package/lib/Interaction.d.ts +186 -0
  1535. package/lib/Interaction.d.ts.map +1 -0
  1536. package/lib/Interaction.js +149 -0
  1537. package/lib/Interaction.js.map +1 -0
  1538. package/lib/Kubernetes/ClusterAdapter.d.ts +4 -5
  1539. package/lib/Kubernetes/ClusterAdapter.d.ts.map +1 -1
  1540. package/lib/Kubernetes/ClusterAdapter.js.map +1 -1
  1541. package/lib/Kubernetes/Deployment.d.ts +7 -21
  1542. package/lib/Kubernetes/Deployment.d.ts.map +1 -1
  1543. package/lib/Kubernetes/Deployment.js +7 -21
  1544. package/lib/Kubernetes/Deployment.js.map +1 -1
  1545. package/lib/Kubernetes/Job.d.ts +7 -21
  1546. package/lib/Kubernetes/Job.d.ts.map +1 -1
  1547. package/lib/Kubernetes/Job.js +7 -21
  1548. package/lib/Kubernetes/Job.js.map +1 -1
  1549. package/lib/Kubernetes/internal/helm.js +1 -1
  1550. package/lib/Kubernetes/internal/kubeconfig.js +1 -1
  1551. package/lib/Kubernetes/internal/workload.js +4 -4
  1552. package/lib/Local/DevLog.d.ts +32 -0
  1553. package/lib/Local/DevLog.d.ts.map +1 -0
  1554. package/lib/Local/DevLog.js +114 -0
  1555. package/lib/Local/DevLog.js.map +1 -0
  1556. package/lib/Local/LocalProvider.d.ts +4 -3
  1557. package/lib/Local/LocalProvider.d.ts.map +1 -1
  1558. package/lib/Local/LocalProvider.js +5 -4
  1559. package/lib/Local/LocalProvider.js.map +1 -1
  1560. package/lib/Local/ProviderLayer.d.ts +12 -9
  1561. package/lib/Local/ProviderLayer.d.ts.map +1 -1
  1562. package/lib/Local/ProviderLayer.js +25 -15
  1563. package/lib/Local/ProviderLayer.js.map +1 -1
  1564. package/lib/Local/RpcProvider.d.ts +2 -2
  1565. package/lib/Local/RpcProvider.d.ts.map +1 -1
  1566. package/lib/Local/RpcProvider.js +2 -2
  1567. package/lib/Local/RpcProvider.js.map +1 -1
  1568. package/lib/Local/RpcProviderProxy.d.ts +13 -1
  1569. package/lib/Local/RpcProviderProxy.d.ts.map +1 -1
  1570. package/lib/Local/RpcProviderProxy.js +16 -17
  1571. package/lib/Local/RpcProviderProxy.js.map +1 -1
  1572. package/lib/Local/RpcServer.d.ts +31 -10
  1573. package/lib/Local/RpcServer.d.ts.map +1 -1
  1574. package/lib/Local/RpcServer.js +40 -21
  1575. package/lib/Local/RpcServer.js.map +1 -1
  1576. package/lib/Local/RpcServerEnvironment.d.ts +2 -2
  1577. package/lib/Local/RpcServerEnvironment.d.ts.map +1 -1
  1578. package/lib/Local/RpcServerEnvironment.js +4 -3
  1579. package/lib/Local/RpcServerEnvironment.js.map +1 -1
  1580. package/lib/Local/RpcSpawner.d.ts +14 -5
  1581. package/lib/Local/RpcSpawner.d.ts.map +1 -1
  1582. package/lib/Local/RpcSpawner.js +105 -38
  1583. package/lib/Local/RpcSpawner.js.map +1 -1
  1584. package/lib/Local/Sidecar.d.ts +2 -0
  1585. package/lib/Local/Sidecar.d.ts.map +1 -0
  1586. package/lib/Local/Sidecar.js +30 -0
  1587. package/lib/Local/Sidecar.js.map +1 -0
  1588. package/lib/Neon/AuthProvider.d.ts +4 -13
  1589. package/lib/Neon/AuthProvider.d.ts.map +1 -1
  1590. package/lib/Neon/AuthProvider.js +24 -107
  1591. package/lib/Neon/AuthProvider.js.map +1 -1
  1592. package/lib/Neon/Credentials.d.ts +1 -3
  1593. package/lib/Neon/Credentials.d.ts.map +1 -1
  1594. package/lib/Neon/Credentials.js +4 -9
  1595. package/lib/Neon/Credentials.js.map +1 -1
  1596. package/lib/Neon/Providers.d.ts +1 -1
  1597. package/lib/Neon/Providers.d.ts.map +1 -1
  1598. package/lib/Neon/Providers.js +2 -2
  1599. package/lib/Neon/Providers.js.map +1 -1
  1600. package/lib/Nuke.d.ts +89 -0
  1601. package/lib/Nuke.d.ts.map +1 -0
  1602. package/lib/Nuke.js +267 -0
  1603. package/lib/Nuke.js.map +1 -0
  1604. package/lib/Output.js +1 -1
  1605. package/lib/Phase.js +2 -2
  1606. package/lib/Plan.d.ts +27 -5
  1607. package/lib/Plan.d.ts.map +1 -1
  1608. package/lib/Plan.js +174 -25
  1609. package/lib/Plan.js.map +1 -1
  1610. package/lib/Planetscale/AuthProvider.d.ts +25 -37
  1611. package/lib/Planetscale/AuthProvider.d.ts.map +1 -1
  1612. package/lib/Planetscale/AuthProvider.js +267 -150
  1613. package/lib/Planetscale/AuthProvider.js.map +1 -1
  1614. package/lib/Planetscale/Credentials.d.ts +2 -3
  1615. package/lib/Planetscale/Credentials.d.ts.map +1 -1
  1616. package/lib/Planetscale/Credentials.js +17 -14
  1617. package/lib/Planetscale/Credentials.js.map +1 -1
  1618. package/lib/Planetscale/OAuthClient.d.ts +8 -52
  1619. package/lib/Planetscale/OAuthClient.d.ts.map +1 -1
  1620. package/lib/Planetscale/OAuthClient.js +18 -240
  1621. package/lib/Planetscale/OAuthClient.js.map +1 -1
  1622. package/lib/Planetscale/Providers.d.ts +1 -1
  1623. package/lib/Planetscale/Providers.d.ts.map +1 -1
  1624. package/lib/Planetscale/Providers.js +2 -2
  1625. package/lib/Planetscale/Providers.js.map +1 -1
  1626. package/lib/Planetscale/Util.d.ts +1 -1
  1627. package/lib/Planetscale/Util.d.ts.map +1 -1
  1628. package/lib/Prisma/App.d.ts.map +1 -1
  1629. package/lib/Prisma/App.js +81 -43
  1630. package/lib/Prisma/App.js.map +1 -1
  1631. package/lib/Prisma/AuthProvider.d.ts +7 -15
  1632. package/lib/Prisma/AuthProvider.d.ts.map +1 -1
  1633. package/lib/Prisma/AuthProvider.js +54 -121
  1634. package/lib/Prisma/AuthProvider.js.map +1 -1
  1635. package/lib/Prisma/Branch.d.ts.map +1 -1
  1636. package/lib/Prisma/Branch.js +81 -36
  1637. package/lib/Prisma/Branch.js.map +1 -1
  1638. package/lib/Prisma/Bucket.d.ts.map +1 -1
  1639. package/lib/Prisma/Bucket.js +41 -21
  1640. package/lib/Prisma/Bucket.js.map +1 -1
  1641. package/lib/Prisma/BucketAccessKey.d.ts.map +1 -1
  1642. package/lib/Prisma/BucketAccessKey.js +46 -19
  1643. package/lib/Prisma/BucketAccessKey.js.map +1 -1
  1644. package/lib/Prisma/Client.d.ts +2 -1
  1645. package/lib/Prisma/Client.d.ts.map +1 -1
  1646. package/lib/Prisma/Client.js +5 -5
  1647. package/lib/Prisma/Client.js.map +1 -1
  1648. package/lib/Prisma/Compute.d.ts +89 -31
  1649. package/lib/Prisma/Compute.d.ts.map +1 -1
  1650. package/lib/Prisma/Compute.js +240 -137
  1651. package/lib/Prisma/Compute.js.map +1 -1
  1652. package/lib/Prisma/ComputeArchive.d.ts +9 -0
  1653. package/lib/Prisma/ComputeArchive.d.ts.map +1 -1
  1654. package/lib/Prisma/ComputeArchive.js +14 -4
  1655. package/lib/Prisma/ComputeArchive.js.map +1 -1
  1656. package/lib/Prisma/ComputeBuild.d.ts +67 -2
  1657. package/lib/Prisma/ComputeBuild.d.ts.map +1 -1
  1658. package/lib/Prisma/ComputeBuild.js +147 -1
  1659. package/lib/Prisma/ComputeBuild.js.map +1 -1
  1660. package/lib/Prisma/ComputeLifecycle.d.ts +51 -8
  1661. package/lib/Prisma/ComputeLifecycle.d.ts.map +1 -1
  1662. package/lib/Prisma/ComputeLifecycle.js +82 -40
  1663. package/lib/Prisma/ComputeLifecycle.js.map +1 -1
  1664. package/lib/Prisma/Connection.d.ts.map +1 -1
  1665. package/lib/Prisma/Connection.js +72 -30
  1666. package/lib/Prisma/Connection.js.map +1 -1
  1667. package/lib/Prisma/Credentials.d.ts +22 -0
  1668. package/lib/Prisma/Credentials.d.ts.map +1 -0
  1669. package/lib/Prisma/Credentials.js +43 -0
  1670. package/lib/Prisma/Credentials.js.map +1 -0
  1671. package/lib/Prisma/Database.d.ts +9 -4
  1672. package/lib/Prisma/Database.d.ts.map +1 -1
  1673. package/lib/Prisma/Database.js +102 -66
  1674. package/lib/Prisma/Database.js.map +1 -1
  1675. package/lib/Prisma/Deployment.d.ts.map +1 -1
  1676. package/lib/Prisma/Deployment.js +55 -26
  1677. package/lib/Prisma/Deployment.js.map +1 -1
  1678. package/lib/Prisma/EnvironmentVariable.d.ts.map +1 -1
  1679. package/lib/Prisma/EnvironmentVariable.js +50 -26
  1680. package/lib/Prisma/EnvironmentVariable.js.map +1 -1
  1681. package/lib/Prisma/Internal/AppPromotion.d.ts +5 -4
  1682. package/lib/Prisma/Internal/AppPromotion.d.ts.map +1 -1
  1683. package/lib/Prisma/Internal/AppPromotion.js +16 -15
  1684. package/lib/Prisma/Internal/AppPromotion.js.map +1 -1
  1685. package/lib/Prisma/Internal/DatabaseSecrets.d.ts +5 -5
  1686. package/lib/Prisma/Internal/DatabaseSecrets.d.ts.map +1 -1
  1687. package/lib/Prisma/Internal/DatabaseSecrets.js +10 -5
  1688. package/lib/Prisma/Internal/DatabaseSecrets.js.map +1 -1
  1689. package/lib/Prisma/Internal/DeploymentActions.d.ts +3 -3
  1690. package/lib/Prisma/Internal/DeploymentActions.d.ts.map +1 -1
  1691. package/lib/Prisma/Internal/DeploymentActions.js +7 -11
  1692. package/lib/Prisma/Internal/DeploymentActions.js.map +1 -1
  1693. package/lib/Prisma/Internal/DeploymentIdentity.d.ts +2 -3
  1694. package/lib/Prisma/Internal/DeploymentIdentity.d.ts.map +1 -1
  1695. package/lib/Prisma/Internal/DeploymentIdentity.js +23 -2
  1696. package/lib/Prisma/Internal/DeploymentIdentity.js.map +1 -1
  1697. package/lib/Prisma/Internal/DeploymentObserve.d.ts +2 -2
  1698. package/lib/Prisma/Internal/DeploymentObserve.d.ts.map +1 -1
  1699. package/lib/Prisma/Internal/DeploymentObserve.js +3 -1
  1700. package/lib/Prisma/Internal/DeploymentObserve.js.map +1 -1
  1701. package/lib/Prisma/Internal/LogsClient.d.ts +8 -0
  1702. package/lib/Prisma/Internal/LogsClient.d.ts.map +1 -0
  1703. package/lib/Prisma/Internal/LogsClient.js +120 -0
  1704. package/lib/Prisma/Internal/LogsClient.js.map +1 -0
  1705. package/lib/Prisma/Internal/Observed.d.ts +164 -0
  1706. package/lib/Prisma/Internal/Observed.d.ts.map +1 -0
  1707. package/lib/Prisma/Internal/Observed.js +36 -0
  1708. package/lib/Prisma/Internal/Observed.js.map +1 -0
  1709. package/lib/Prisma/Internal/Pagination.d.ts +18 -0
  1710. package/lib/Prisma/Internal/Pagination.d.ts.map +1 -0
  1711. package/lib/Prisma/Internal/Pagination.js +13 -0
  1712. package/lib/Prisma/Internal/Pagination.js.map +1 -0
  1713. package/lib/Prisma/Operations.d.ts +2 -2
  1714. package/lib/Prisma/Operations.d.ts.map +1 -1
  1715. package/lib/Prisma/Operations.js +3 -2
  1716. package/lib/Prisma/Operations.js.map +1 -1
  1717. package/lib/Prisma/PrismaEnvironment.d.ts +1 -2
  1718. package/lib/Prisma/PrismaEnvironment.d.ts.map +1 -1
  1719. package/lib/Prisma/PrismaEnvironment.js +4 -9
  1720. package/lib/Prisma/PrismaEnvironment.js.map +1 -1
  1721. package/lib/Prisma/PrismaLogs.d.ts +2 -2
  1722. package/lib/Prisma/PrismaLogs.d.ts.map +1 -1
  1723. package/lib/Prisma/PrismaLogs.js +13 -4
  1724. package/lib/Prisma/PrismaLogs.js.map +1 -1
  1725. package/lib/Prisma/Project.d.ts +1 -2
  1726. package/lib/Prisma/Project.d.ts.map +1 -1
  1727. package/lib/Prisma/Project.js +84 -52
  1728. package/lib/Prisma/Project.js.map +1 -1
  1729. package/lib/Prisma/Providers.d.ts +19 -3
  1730. package/lib/Prisma/Providers.d.ts.map +1 -1
  1731. package/lib/Prisma/Providers.js +31 -12
  1732. package/lib/Prisma/Providers.js.map +1 -1
  1733. package/lib/Prisma/SourceRepository.d.ts.map +1 -1
  1734. package/lib/Prisma/SourceRepository.js +137 -45
  1735. package/lib/Prisma/SourceRepository.js.map +1 -1
  1736. package/lib/Provider.d.ts +16 -4
  1737. package/lib/Provider.d.ts.map +1 -1
  1738. package/lib/Provider.js +21 -18
  1739. package/lib/Provider.js.map +1 -1
  1740. package/lib/Railway/AuditLog.d.ts +46 -5
  1741. package/lib/Railway/AuditLog.d.ts.map +1 -1
  1742. package/lib/Railway/AuditLog.js +14 -4
  1743. package/lib/Railway/AuditLog.js.map +1 -1
  1744. package/lib/Railway/AuthProvider.d.ts +19 -19
  1745. package/lib/Railway/AuthProvider.d.ts.map +1 -1
  1746. package/lib/Railway/AuthProvider.js +193 -127
  1747. package/lib/Railway/AuthProvider.js.map +1 -1
  1748. package/lib/Railway/Bucket.d.ts +1 -1
  1749. package/lib/Railway/Bucket.d.ts.map +1 -1
  1750. package/lib/Railway/Bucket.js +41 -21
  1751. package/lib/Railway/Bucket.js.map +1 -1
  1752. package/lib/Railway/BucketBinding.js +5 -5
  1753. package/lib/Railway/Catalog.d.ts +42 -4
  1754. package/lib/Railway/Catalog.d.ts.map +1 -1
  1755. package/lib/Railway/Catalog.js +6 -1
  1756. package/lib/Railway/Catalog.js.map +1 -1
  1757. package/lib/Railway/CloudAgent.d.ts +68 -4
  1758. package/lib/Railway/CloudAgent.d.ts.map +1 -1
  1759. package/lib/Railway/CloudAgent.js +26 -22
  1760. package/lib/Railway/CloudAgent.js.map +1 -1
  1761. package/lib/Railway/Credentials.d.ts +2 -5
  1762. package/lib/Railway/Credentials.d.ts.map +1 -1
  1763. package/lib/Railway/Credentials.js +5 -11
  1764. package/lib/Railway/Credentials.js.map +1 -1
  1765. package/lib/Railway/CustomDomain.d.ts +1 -1
  1766. package/lib/Railway/CustomDomain.d.ts.map +1 -1
  1767. package/lib/Railway/CustomDomain.js +60 -34
  1768. package/lib/Railway/CustomDomain.js.map +1 -1
  1769. package/lib/Railway/Environment.d.ts +20 -2
  1770. package/lib/Railway/Environment.d.ts.map +1 -1
  1771. package/lib/Railway/Environment.js +7 -2
  1772. package/lib/Railway/Environment.js.map +1 -1
  1773. package/lib/Railway/Function.d.ts +1 -1
  1774. package/lib/Railway/Function.d.ts.map +1 -1
  1775. package/lib/Railway/Function.js +77 -59
  1776. package/lib/Railway/Function.js.map +1 -1
  1777. package/lib/Railway/GraphQL.d.ts +1230 -0
  1778. package/lib/Railway/GraphQL.d.ts.map +1 -0
  1779. package/lib/Railway/GraphQL.js +132 -0
  1780. package/lib/Railway/GraphQL.js.map +1 -0
  1781. package/lib/Railway/Group.d.ts +1 -1
  1782. package/lib/Railway/Group.d.ts.map +1 -1
  1783. package/lib/Railway/Group.js +103 -32
  1784. package/lib/Railway/Group.js.map +1 -1
  1785. package/lib/Railway/LoginSession.d.ts +13 -5
  1786. package/lib/Railway/LoginSession.d.ts.map +1 -1
  1787. package/lib/Railway/LoginSession.js +9 -8
  1788. package/lib/Railway/LoginSession.js.map +1 -1
  1789. package/lib/Railway/Mongo.d.ts +1 -1
  1790. package/lib/Railway/Mongo.d.ts.map +1 -1
  1791. package/lib/Railway/Mongo.js +118 -104
  1792. package/lib/Railway/Mongo.js.map +1 -1
  1793. package/lib/Railway/MountVolume.d.ts.map +1 -1
  1794. package/lib/Railway/MountVolume.js +5 -4
  1795. package/lib/Railway/MountVolume.js.map +1 -1
  1796. package/lib/Railway/MySQL.d.ts +1 -1
  1797. package/lib/Railway/MySQL.d.ts.map +1 -1
  1798. package/lib/Railway/MySQL.js +118 -104
  1799. package/lib/Railway/MySQL.js.map +1 -1
  1800. package/lib/Railway/Postgres.d.ts +1 -1
  1801. package/lib/Railway/Postgres.d.ts.map +1 -1
  1802. package/lib/Railway/Postgres.js +124 -106
  1803. package/lib/Railway/Postgres.js.map +1 -1
  1804. package/lib/Railway/PrivateNetwork.d.ts +87 -61
  1805. package/lib/Railway/PrivateNetwork.d.ts.map +1 -1
  1806. package/lib/Railway/PrivateNetwork.js +298 -196
  1807. package/lib/Railway/PrivateNetwork.js.map +1 -1
  1808. package/lib/Railway/Project.d.ts +80 -6
  1809. package/lib/Railway/Project.d.ts.map +1 -1
  1810. package/lib/Railway/Project.js +27 -20
  1811. package/lib/Railway/Project.js.map +1 -1
  1812. package/lib/Railway/ProjectEnvironment.d.ts +1 -1
  1813. package/lib/Railway/ProjectEnvironment.d.ts.map +1 -1
  1814. package/lib/Railway/ProjectEnvironment.js +25 -18
  1815. package/lib/Railway/ProjectEnvironment.js.map +1 -1
  1816. package/lib/Railway/Providers.d.ts +1 -1
  1817. package/lib/Railway/Providers.d.ts.map +1 -1
  1818. package/lib/Railway/Providers.js +4 -3
  1819. package/lib/Railway/Providers.js.map +1 -1
  1820. package/lib/Railway/Redis.d.ts +1 -1
  1821. package/lib/Railway/Redis.d.ts.map +1 -1
  1822. package/lib/Railway/Redis.js +57 -46
  1823. package/lib/Railway/Redis.js.map +1 -1
  1824. package/lib/Railway/RedisBinding.js +2 -2
  1825. package/lib/Railway/Sandbox.d.ts +183 -17
  1826. package/lib/Railway/Sandbox.d.ts.map +1 -1
  1827. package/lib/Railway/Sandbox.js +117 -58
  1828. package/lib/Railway/Sandbox.js.map +1 -1
  1829. package/lib/Railway/SandboxCheckpoint.d.ts +84 -0
  1830. package/lib/Railway/SandboxCheckpoint.d.ts.map +1 -0
  1831. package/lib/Railway/SandboxCheckpoint.js +189 -0
  1832. package/lib/Railway/SandboxCheckpoint.js.map +1 -0
  1833. package/lib/Railway/Service.d.ts +75 -2
  1834. package/lib/Railway/Service.d.ts.map +1 -1
  1835. package/lib/Railway/Service.js +42 -0
  1836. package/lib/Railway/Service.js.map +1 -1
  1837. package/lib/Railway/ServiceDomain.d.ts +102 -3
  1838. package/lib/Railway/ServiceDomain.d.ts.map +1 -1
  1839. package/lib/Railway/ServiceDomain.js +135 -38
  1840. package/lib/Railway/ServiceDomain.js.map +1 -1
  1841. package/lib/Railway/ServiceProvider.d.ts +2 -10
  1842. package/lib/Railway/ServiceProvider.d.ts.map +1 -1
  1843. package/lib/Railway/ServiceProvider.js +281 -125
  1844. package/lib/Railway/ServiceProvider.js.map +1 -1
  1845. package/lib/Railway/TcpProxy.d.ts +1 -1
  1846. package/lib/Railway/TcpProxy.d.ts.map +1 -1
  1847. package/lib/Railway/TcpProxy.js +26 -18
  1848. package/lib/Railway/TcpProxy.js.map +1 -1
  1849. package/lib/Railway/Template.d.ts +5 -5
  1850. package/lib/Railway/Template.d.ts.map +1 -1
  1851. package/lib/Railway/Template.js +84 -57
  1852. package/lib/Railway/Template.js.map +1 -1
  1853. package/lib/Railway/Usage.d.ts +82 -5
  1854. package/lib/Railway/Usage.d.ts.map +1 -1
  1855. package/lib/Railway/Usage.js +30 -14
  1856. package/lib/Railway/Usage.js.map +1 -1
  1857. package/lib/Railway/Variable.d.ts +1 -1
  1858. package/lib/Railway/Variable.d.ts.map +1 -1
  1859. package/lib/Railway/Variable.js +10 -12
  1860. package/lib/Railway/Variable.js.map +1 -1
  1861. package/lib/Railway/Volume.d.ts +77 -3
  1862. package/lib/Railway/Volume.d.ts.map +1 -1
  1863. package/lib/Railway/Volume.js +71 -39
  1864. package/lib/Railway/Volume.js.map +1 -1
  1865. package/lib/Railway/VolumeBackup.d.ts +20 -4
  1866. package/lib/Railway/VolumeBackup.d.ts.map +1 -1
  1867. package/lib/Railway/VolumeBackup.js +53 -34
  1868. package/lib/Railway/VolumeBackup.js.map +1 -1
  1869. package/lib/Railway/Website/Cdn.d.ts +18 -2
  1870. package/lib/Railway/Website/Cdn.d.ts.map +1 -1
  1871. package/lib/Railway/Website/Cdn.js +82 -35
  1872. package/lib/Railway/Website/Cdn.js.map +1 -1
  1873. package/lib/Railway/hosted.d.ts.map +1 -1
  1874. package/lib/Railway/hosted.js +10 -3
  1875. package/lib/Railway/hosted.js.map +1 -1
  1876. package/lib/Railway/index.d.ts +1 -0
  1877. package/lib/Railway/index.d.ts.map +1 -1
  1878. package/lib/Railway/index.js +1 -0
  1879. package/lib/Railway/index.js.map +1 -1
  1880. package/lib/Railway/local-context.d.ts +125 -0
  1881. package/lib/Railway/local-context.d.ts.map +1 -0
  1882. package/lib/Railway/local-context.js +254 -0
  1883. package/lib/Railway/local-context.js.map +1 -0
  1884. package/lib/Railway/transient.d.ts +6 -16
  1885. package/lib/Railway/transient.d.ts.map +1 -1
  1886. package/lib/Railway/transient.js +20 -32
  1887. package/lib/Railway/transient.js.map +1 -1
  1888. package/lib/Report.d.ts +248 -0
  1889. package/lib/Report.d.ts.map +1 -0
  1890. package/lib/Report.js +18 -0
  1891. package/lib/Report.js.map +1 -0
  1892. package/lib/Rpc.d.ts +22 -1
  1893. package/lib/Rpc.d.ts.map +1 -1
  1894. package/lib/Rpc.js +37 -2
  1895. package/lib/Rpc.js.map +1 -1
  1896. package/lib/Runtime/Bootstrap/Process.js +2 -2
  1897. package/lib/Runtime.d.ts +1 -1
  1898. package/lib/Runtime.js +1 -1
  1899. package/lib/RuntimeContext.d.ts +1 -1
  1900. package/lib/RuntimeContext.js +1 -1
  1901. package/lib/SQL/Postgres.d.ts.map +1 -1
  1902. package/lib/SQL/Postgres.js +5 -1
  1903. package/lib/SQL/Postgres.js.map +1 -1
  1904. package/lib/SQL/PostgresTls.d.ts +29 -0
  1905. package/lib/SQL/PostgresTls.d.ts.map +1 -0
  1906. package/lib/SQL/PostgresTls.js +63 -0
  1907. package/lib/SQL/PostgresTls.js.map +1 -0
  1908. package/lib/Server/Process.js +1 -1
  1909. package/lib/Server/index.d.ts +0 -2
  1910. package/lib/Server/index.d.ts.map +1 -1
  1911. package/lib/Server/index.js +0 -2
  1912. package/lib/Server/index.js.map +1 -1
  1913. package/lib/Stack.d.ts +7 -6
  1914. package/lib/Stack.d.ts.map +1 -1
  1915. package/lib/Stack.js +4 -5
  1916. package/lib/Stack.js.map +1 -1
  1917. package/lib/StackContext.d.ts +4 -0
  1918. package/lib/StackContext.d.ts.map +1 -0
  1919. package/lib/StackContext.js +3 -0
  1920. package/lib/StackContext.js.map +1 -0
  1921. package/lib/State/Export.d.ts +6 -4
  1922. package/lib/State/Export.d.ts.map +1 -1
  1923. package/lib/State/Export.js +13 -18
  1924. package/lib/State/Export.js.map +1 -1
  1925. package/lib/State/HttpStateApi.d.ts +8 -8
  1926. package/lib/State/HttpStateStore.d.ts +6 -11
  1927. package/lib/State/HttpStateStore.d.ts.map +1 -1
  1928. package/lib/State/HttpStateStore.js +25 -35
  1929. package/lib/State/HttpStateStore.js.map +1 -1
  1930. package/lib/State/LocalState.d.ts.map +1 -1
  1931. package/lib/State/LocalState.js +6 -13
  1932. package/lib/State/LocalState.js.map +1 -1
  1933. package/lib/State/PostgresState.d.ts +4 -4
  1934. package/lib/State/PostgresState.d.ts.map +1 -1
  1935. package/lib/State/PostgresState.js +5 -4
  1936. package/lib/State/PostgresState.js.map +1 -1
  1937. package/lib/State/State.d.ts +5 -0
  1938. package/lib/State/State.d.ts.map +1 -1
  1939. package/lib/State/State.js.map +1 -1
  1940. package/lib/State/Tree.d.ts +62 -0
  1941. package/lib/State/Tree.d.ts.map +1 -0
  1942. package/lib/State/Tree.js +166 -0
  1943. package/lib/State/Tree.js.map +1 -0
  1944. package/lib/State/index.d.ts +1 -0
  1945. package/lib/State/index.d.ts.map +1 -1
  1946. package/lib/State/index.js +1 -0
  1947. package/lib/State/index.js.map +1 -1
  1948. package/lib/Stripe/Account.d.ts +308 -0
  1949. package/lib/Stripe/Account.d.ts.map +1 -0
  1950. package/lib/Stripe/Account.js +436 -0
  1951. package/lib/Stripe/Account.js.map +1 -0
  1952. package/lib/Stripe/AccountExternalAccount.d.ts +139 -0
  1953. package/lib/Stripe/AccountExternalAccount.d.ts.map +1 -0
  1954. package/lib/Stripe/AccountExternalAccount.js +354 -0
  1955. package/lib/Stripe/AccountExternalAccount.js.map +1 -0
  1956. package/lib/Stripe/AccountPerson.d.ts +142 -0
  1957. package/lib/Stripe/AccountPerson.d.ts.map +1 -0
  1958. package/lib/Stripe/AccountPerson.js +354 -0
  1959. package/lib/Stripe/AccountPerson.js.map +1 -0
  1960. package/lib/Stripe/Alert.d.ts +168 -0
  1961. package/lib/Stripe/Alert.d.ts.map +1 -0
  1962. package/lib/Stripe/Alert.js +285 -0
  1963. package/lib/Stripe/Alert.js.map +1 -0
  1964. package/lib/Stripe/ApplePayDomain.d.ts +75 -0
  1965. package/lib/Stripe/ApplePayDomain.d.ts.map +1 -0
  1966. package/lib/Stripe/ApplePayDomain.js +178 -0
  1967. package/lib/Stripe/ApplePayDomain.js.map +1 -0
  1968. package/lib/Stripe/AppsSecret.d.ts +120 -0
  1969. package/lib/Stripe/AppsSecret.d.ts.map +1 -0
  1970. package/lib/Stripe/AppsSecret.js +232 -0
  1971. package/lib/Stripe/AppsSecret.js.map +1 -0
  1972. package/lib/Stripe/AuthProvider.d.ts +27 -0
  1973. package/lib/Stripe/AuthProvider.d.ts.map +1 -0
  1974. package/lib/Stripe/AuthProvider.js +56 -0
  1975. package/lib/Stripe/AuthProvider.js.map +1 -0
  1976. package/lib/Stripe/BillingMeter.d.ts +168 -0
  1977. package/lib/Stripe/BillingMeter.d.ts.map +1 -0
  1978. package/lib/Stripe/BillingMeter.js +270 -0
  1979. package/lib/Stripe/BillingMeter.js.map +1 -0
  1980. package/lib/Stripe/BillingPortalConfiguration.d.ts +358 -0
  1981. package/lib/Stripe/BillingPortalConfiguration.d.ts.map +1 -0
  1982. package/lib/Stripe/BillingPortalConfiguration.js +480 -0
  1983. package/lib/Stripe/BillingPortalConfiguration.js.map +1 -0
  1984. package/lib/Stripe/ConsumeEvents.d.ts +80 -0
  1985. package/lib/Stripe/ConsumeEvents.d.ts.map +1 -0
  1986. package/lib/Stripe/ConsumeEvents.js +139 -0
  1987. package/lib/Stripe/ConsumeEvents.js.map +1 -0
  1988. package/lib/Stripe/Coupon.d.ts +179 -0
  1989. package/lib/Stripe/Coupon.d.ts.map +1 -0
  1990. package/lib/Stripe/Coupon.js +323 -0
  1991. package/lib/Stripe/Coupon.js.map +1 -0
  1992. package/lib/Stripe/CreateAccount.d.ts +25 -0
  1993. package/lib/Stripe/CreateAccount.d.ts.map +1 -0
  1994. package/lib/Stripe/CreateAccount.js +3 -0
  1995. package/lib/Stripe/CreateAccount.js.map +1 -0
  1996. package/lib/Stripe/CreateAccountHttp.d.ts +11 -0
  1997. package/lib/Stripe/CreateAccountHttp.d.ts.map +1 -0
  1998. package/lib/Stripe/CreateAccountHttp.js +17 -0
  1999. package/lib/Stripe/CreateAccountHttp.js.map +1 -0
  2000. package/lib/Stripe/CreateAccountLink.d.ts +29 -0
  2001. package/lib/Stripe/CreateAccountLink.d.ts.map +1 -0
  2002. package/lib/Stripe/CreateAccountLink.js +3 -0
  2003. package/lib/Stripe/CreateAccountLink.js.map +1 -0
  2004. package/lib/Stripe/CreateAccountLinkHttp.d.ts +11 -0
  2005. package/lib/Stripe/CreateAccountLinkHttp.d.ts.map +1 -0
  2006. package/lib/Stripe/CreateAccountLinkHttp.js +17 -0
  2007. package/lib/Stripe/CreateAccountLinkHttp.js.map +1 -0
  2008. package/lib/Stripe/CreateAppsSecret.d.ts +25 -0
  2009. package/lib/Stripe/CreateAppsSecret.d.ts.map +1 -0
  2010. package/lib/Stripe/CreateAppsSecret.js +3 -0
  2011. package/lib/Stripe/CreateAppsSecret.js.map +1 -0
  2012. package/lib/Stripe/CreateAppsSecretHttp.d.ts +11 -0
  2013. package/lib/Stripe/CreateAppsSecretHttp.d.ts.map +1 -0
  2014. package/lib/Stripe/CreateAppsSecretHttp.js +17 -0
  2015. package/lib/Stripe/CreateAppsSecretHttp.js.map +1 -0
  2016. package/lib/Stripe/CreateBillingPortalSession.d.ts +33 -0
  2017. package/lib/Stripe/CreateBillingPortalSession.d.ts.map +1 -0
  2018. package/lib/Stripe/CreateBillingPortalSession.js +3 -0
  2019. package/lib/Stripe/CreateBillingPortalSession.js.map +1 -0
  2020. package/lib/Stripe/CreateBillingPortalSessionHttp.d.ts +11 -0
  2021. package/lib/Stripe/CreateBillingPortalSessionHttp.d.ts.map +1 -0
  2022. package/lib/Stripe/CreateBillingPortalSessionHttp.js +17 -0
  2023. package/lib/Stripe/CreateBillingPortalSessionHttp.js.map +1 -0
  2024. package/lib/Stripe/CreateCheckoutSession.d.ts +35 -0
  2025. package/lib/Stripe/CreateCheckoutSession.d.ts.map +1 -0
  2026. package/lib/Stripe/CreateCheckoutSession.js +3 -0
  2027. package/lib/Stripe/CreateCheckoutSession.js.map +1 -0
  2028. package/lib/Stripe/CreateCheckoutSessionHttp.d.ts +11 -0
  2029. package/lib/Stripe/CreateCheckoutSessionHttp.d.ts.map +1 -0
  2030. package/lib/Stripe/CreateCheckoutSessionHttp.js +17 -0
  2031. package/lib/Stripe/CreateCheckoutSessionHttp.js.map +1 -0
  2032. package/lib/Stripe/CreateCreditGrant.d.ts +27 -0
  2033. package/lib/Stripe/CreateCreditGrant.d.ts.map +1 -0
  2034. package/lib/Stripe/CreateCreditGrant.js +3 -0
  2035. package/lib/Stripe/CreateCreditGrant.js.map +1 -0
  2036. package/lib/Stripe/CreateCreditGrantHttp.d.ts +11 -0
  2037. package/lib/Stripe/CreateCreditGrantHttp.d.ts.map +1 -0
  2038. package/lib/Stripe/CreateCreditGrantHttp.js +17 -0
  2039. package/lib/Stripe/CreateCreditGrantHttp.js.map +1 -0
  2040. package/lib/Stripe/CreateCustomer.d.ts +24 -0
  2041. package/lib/Stripe/CreateCustomer.d.ts.map +1 -0
  2042. package/lib/Stripe/CreateCustomer.js +3 -0
  2043. package/lib/Stripe/CreateCustomer.js.map +1 -0
  2044. package/lib/Stripe/CreateCustomerHttp.d.ts +11 -0
  2045. package/lib/Stripe/CreateCustomerHttp.d.ts.map +1 -0
  2046. package/lib/Stripe/CreateCustomerHttp.js +17 -0
  2047. package/lib/Stripe/CreateCustomerHttp.js.map +1 -0
  2048. package/lib/Stripe/CreateFileLink.d.ts +23 -0
  2049. package/lib/Stripe/CreateFileLink.d.ts.map +1 -0
  2050. package/lib/Stripe/CreateFileLink.js +3 -0
  2051. package/lib/Stripe/CreateFileLink.js.map +1 -0
  2052. package/lib/Stripe/CreateFileLinkHttp.d.ts +11 -0
  2053. package/lib/Stripe/CreateFileLinkHttp.d.ts.map +1 -0
  2054. package/lib/Stripe/CreateFileLinkHttp.js +17 -0
  2055. package/lib/Stripe/CreateFileLinkHttp.js.map +1 -0
  2056. package/lib/Stripe/CreateIssuingCard.d.ts +25 -0
  2057. package/lib/Stripe/CreateIssuingCard.d.ts.map +1 -0
  2058. package/lib/Stripe/CreateIssuingCard.js +3 -0
  2059. package/lib/Stripe/CreateIssuingCard.js.map +1 -0
  2060. package/lib/Stripe/CreateIssuingCardHttp.d.ts +11 -0
  2061. package/lib/Stripe/CreateIssuingCardHttp.d.ts.map +1 -0
  2062. package/lib/Stripe/CreateIssuingCardHttp.js +17 -0
  2063. package/lib/Stripe/CreateIssuingCardHttp.js.map +1 -0
  2064. package/lib/Stripe/CreateIssuingCardholder.d.ts +32 -0
  2065. package/lib/Stripe/CreateIssuingCardholder.d.ts.map +1 -0
  2066. package/lib/Stripe/CreateIssuingCardholder.js +3 -0
  2067. package/lib/Stripe/CreateIssuingCardholder.js.map +1 -0
  2068. package/lib/Stripe/CreateIssuingCardholderHttp.d.ts +11 -0
  2069. package/lib/Stripe/CreateIssuingCardholderHttp.d.ts.map +1 -0
  2070. package/lib/Stripe/CreateIssuingCardholderHttp.js +17 -0
  2071. package/lib/Stripe/CreateIssuingCardholderHttp.js.map +1 -0
  2072. package/lib/Stripe/CreateTerminalReader.d.ts +25 -0
  2073. package/lib/Stripe/CreateTerminalReader.d.ts.map +1 -0
  2074. package/lib/Stripe/CreateTerminalReader.js +3 -0
  2075. package/lib/Stripe/CreateTerminalReader.js.map +1 -0
  2076. package/lib/Stripe/CreateTerminalReaderHttp.d.ts +11 -0
  2077. package/lib/Stripe/CreateTerminalReaderHttp.d.ts.map +1 -0
  2078. package/lib/Stripe/CreateTerminalReaderHttp.js +17 -0
  2079. package/lib/Stripe/CreateTerminalReaderHttp.js.map +1 -0
  2080. package/lib/Stripe/Credentials.d.ts +15 -0
  2081. package/lib/Stripe/Credentials.d.ts.map +1 -0
  2082. package/lib/Stripe/Credentials.js +27 -0
  2083. package/lib/Stripe/Credentials.js.map +1 -0
  2084. package/lib/Stripe/CreditGrant.d.ts +219 -0
  2085. package/lib/Stripe/CreditGrant.d.ts.map +1 -0
  2086. package/lib/Stripe/CreditGrant.js +364 -0
  2087. package/lib/Stripe/CreditGrant.js.map +1 -0
  2088. package/lib/Stripe/Customer.d.ts +90 -0
  2089. package/lib/Stripe/Customer.d.ts.map +1 -0
  2090. package/lib/Stripe/Customer.js +203 -0
  2091. package/lib/Stripe/Customer.js.map +1 -0
  2092. package/lib/Stripe/CustomerTaxId.d.ts +81 -0
  2093. package/lib/Stripe/CustomerTaxId.d.ts.map +1 -0
  2094. package/lib/Stripe/CustomerTaxId.js +228 -0
  2095. package/lib/Stripe/CustomerTaxId.js.map +1 -0
  2096. package/lib/Stripe/EntitlementsFeature.d.ts +96 -0
  2097. package/lib/Stripe/EntitlementsFeature.d.ts.map +1 -0
  2098. package/lib/Stripe/EntitlementsFeature.js +261 -0
  2099. package/lib/Stripe/EntitlementsFeature.js.map +1 -0
  2100. package/lib/Stripe/Events.d.ts +91 -0
  2101. package/lib/Stripe/Events.d.ts.map +1 -0
  2102. package/lib/Stripe/Events.js +102 -0
  2103. package/lib/Stripe/Events.js.map +1 -0
  2104. package/lib/Stripe/FileLink.d.ts +92 -0
  2105. package/lib/Stripe/FileLink.d.ts.map +1 -0
  2106. package/lib/Stripe/FileLink.js +229 -0
  2107. package/lib/Stripe/FileLink.js.map +1 -0
  2108. package/lib/Stripe/IssuingCard.d.ts +249 -0
  2109. package/lib/Stripe/IssuingCard.d.ts.map +1 -0
  2110. package/lib/Stripe/IssuingCard.js +423 -0
  2111. package/lib/Stripe/IssuingCard.js.map +1 -0
  2112. package/lib/Stripe/IssuingCardholder.d.ts +366 -0
  2113. package/lib/Stripe/IssuingCardholder.d.ts.map +1 -0
  2114. package/lib/Stripe/IssuingCardholder.js +520 -0
  2115. package/lib/Stripe/IssuingCardholder.js.map +1 -0
  2116. package/lib/Stripe/IssuingPersonalizationDesign.d.ts +185 -0
  2117. package/lib/Stripe/IssuingPersonalizationDesign.d.ts.map +1 -0
  2118. package/lib/Stripe/IssuingPersonalizationDesign.js +340 -0
  2119. package/lib/Stripe/IssuingPersonalizationDesign.js.map +1 -0
  2120. package/lib/Stripe/Metadata.d.ts +39 -0
  2121. package/lib/Stripe/Metadata.d.ts.map +1 -0
  2122. package/lib/Stripe/Metadata.js +58 -0
  2123. package/lib/Stripe/Metadata.js.map +1 -0
  2124. package/lib/Stripe/PaymentLink.d.ts +219 -0
  2125. package/lib/Stripe/PaymentLink.d.ts.map +1 -0
  2126. package/lib/Stripe/PaymentLink.js +491 -0
  2127. package/lib/Stripe/PaymentLink.js.map +1 -0
  2128. package/lib/Stripe/PaymentMethodConfiguration.d.ts +269 -0
  2129. package/lib/Stripe/PaymentMethodConfiguration.d.ts.map +1 -0
  2130. package/lib/Stripe/PaymentMethodConfiguration.js +330 -0
  2131. package/lib/Stripe/PaymentMethodConfiguration.js.map +1 -0
  2132. package/lib/Stripe/PaymentMethodDomain.d.ts +118 -0
  2133. package/lib/Stripe/PaymentMethodDomain.d.ts.map +1 -0
  2134. package/lib/Stripe/PaymentMethodDomain.js +209 -0
  2135. package/lib/Stripe/PaymentMethodDomain.js.map +1 -0
  2136. package/lib/Stripe/Plan.d.ts +175 -0
  2137. package/lib/Stripe/Plan.d.ts.map +1 -0
  2138. package/lib/Stripe/Plan.js +305 -0
  2139. package/lib/Stripe/Plan.js.map +1 -0
  2140. package/lib/Stripe/Price.d.ts +176 -0
  2141. package/lib/Stripe/Price.d.ts.map +1 -0
  2142. package/lib/Stripe/Price.js +344 -0
  2143. package/lib/Stripe/Price.js.map +1 -0
  2144. package/lib/Stripe/Product.d.ts +92 -0
  2145. package/lib/Stripe/Product.d.ts.map +1 -0
  2146. package/lib/Stripe/Product.js +222 -0
  2147. package/lib/Stripe/Product.js.map +1 -0
  2148. package/lib/Stripe/ProductFeature.d.ts +70 -0
  2149. package/lib/Stripe/ProductFeature.d.ts.map +1 -0
  2150. package/lib/Stripe/ProductFeature.js +206 -0
  2151. package/lib/Stripe/ProductFeature.js.map +1 -0
  2152. package/lib/Stripe/PromotionCode.d.ts +168 -0
  2153. package/lib/Stripe/PromotionCode.d.ts.map +1 -0
  2154. package/lib/Stripe/PromotionCode.js +396 -0
  2155. package/lib/Stripe/PromotionCode.js.map +1 -0
  2156. package/lib/Stripe/Providers.d.ts +36 -0
  2157. package/lib/Stripe/Providers.d.ts.map +1 -0
  2158. package/lib/Stripe/Providers.js +162 -0
  2159. package/lib/Stripe/Providers.js.map +1 -0
  2160. package/lib/Stripe/RadarValueList.d.ts +112 -0
  2161. package/lib/Stripe/RadarValueList.d.ts.map +1 -0
  2162. package/lib/Stripe/RadarValueList.js +259 -0
  2163. package/lib/Stripe/RadarValueList.js.map +1 -0
  2164. package/lib/Stripe/RadarValueListItem.d.ts +69 -0
  2165. package/lib/Stripe/RadarValueListItem.d.ts.map +1 -0
  2166. package/lib/Stripe/RadarValueListItem.js +213 -0
  2167. package/lib/Stripe/RadarValueListItem.js.map +1 -0
  2168. package/lib/Stripe/RestrictedApiKey.d.ts +85 -0
  2169. package/lib/Stripe/RestrictedApiKey.d.ts.map +1 -0
  2170. package/lib/Stripe/RestrictedApiKey.js +91 -0
  2171. package/lib/Stripe/RestrictedApiKey.js.map +1 -0
  2172. package/lib/Stripe/RetrieveAccount.d.ts +23 -0
  2173. package/lib/Stripe/RetrieveAccount.d.ts.map +1 -0
  2174. package/lib/Stripe/RetrieveAccount.js +3 -0
  2175. package/lib/Stripe/RetrieveAccount.js.map +1 -0
  2176. package/lib/Stripe/RetrieveAccountExternalAccount.d.ts +23 -0
  2177. package/lib/Stripe/RetrieveAccountExternalAccount.d.ts.map +1 -0
  2178. package/lib/Stripe/RetrieveAccountExternalAccount.js +3 -0
  2179. package/lib/Stripe/RetrieveAccountExternalAccount.js.map +1 -0
  2180. package/lib/Stripe/RetrieveAccountExternalAccountHttp.d.ts +11 -0
  2181. package/lib/Stripe/RetrieveAccountExternalAccountHttp.d.ts.map +1 -0
  2182. package/lib/Stripe/RetrieveAccountExternalAccountHttp.js +31 -0
  2183. package/lib/Stripe/RetrieveAccountExternalAccountHttp.js.map +1 -0
  2184. package/lib/Stripe/RetrieveAccountHttp.d.ts +11 -0
  2185. package/lib/Stripe/RetrieveAccountHttp.d.ts.map +1 -0
  2186. package/lib/Stripe/RetrieveAccountHttp.js +18 -0
  2187. package/lib/Stripe/RetrieveAccountHttp.js.map +1 -0
  2188. package/lib/Stripe/RetrieveAccountPerson.d.ts +23 -0
  2189. package/lib/Stripe/RetrieveAccountPerson.d.ts.map +1 -0
  2190. package/lib/Stripe/RetrieveAccountPerson.js +3 -0
  2191. package/lib/Stripe/RetrieveAccountPerson.js.map +1 -0
  2192. package/lib/Stripe/RetrieveAccountPersonHttp.d.ts +11 -0
  2193. package/lib/Stripe/RetrieveAccountPersonHttp.d.ts.map +1 -0
  2194. package/lib/Stripe/RetrieveAccountPersonHttp.js +31 -0
  2195. package/lib/Stripe/RetrieveAccountPersonHttp.js.map +1 -0
  2196. package/lib/Stripe/RetrieveAlert.d.ts +23 -0
  2197. package/lib/Stripe/RetrieveAlert.d.ts.map +1 -0
  2198. package/lib/Stripe/RetrieveAlert.js +3 -0
  2199. package/lib/Stripe/RetrieveAlert.js.map +1 -0
  2200. package/lib/Stripe/RetrieveAlertHttp.d.ts +10 -0
  2201. package/lib/Stripe/RetrieveAlertHttp.d.ts.map +1 -0
  2202. package/lib/Stripe/RetrieveAlertHttp.js +17 -0
  2203. package/lib/Stripe/RetrieveAlertHttp.js.map +1 -0
  2204. package/lib/Stripe/RetrieveApplePayDomain.d.ts +23 -0
  2205. package/lib/Stripe/RetrieveApplePayDomain.d.ts.map +1 -0
  2206. package/lib/Stripe/RetrieveApplePayDomain.js +3 -0
  2207. package/lib/Stripe/RetrieveApplePayDomain.js.map +1 -0
  2208. package/lib/Stripe/RetrieveApplePayDomainHttp.d.ts +11 -0
  2209. package/lib/Stripe/RetrieveApplePayDomainHttp.d.ts.map +1 -0
  2210. package/lib/Stripe/RetrieveApplePayDomainHttp.js +18 -0
  2211. package/lib/Stripe/RetrieveApplePayDomainHttp.js.map +1 -0
  2212. package/lib/Stripe/RetrieveAppsSecret.d.ts +24 -0
  2213. package/lib/Stripe/RetrieveAppsSecret.d.ts.map +1 -0
  2214. package/lib/Stripe/RetrieveAppsSecret.js +3 -0
  2215. package/lib/Stripe/RetrieveAppsSecret.js.map +1 -0
  2216. package/lib/Stripe/RetrieveAppsSecretHttp.d.ts +11 -0
  2217. package/lib/Stripe/RetrieveAppsSecretHttp.d.ts.map +1 -0
  2218. package/lib/Stripe/RetrieveAppsSecretHttp.js +36 -0
  2219. package/lib/Stripe/RetrieveAppsSecretHttp.js.map +1 -0
  2220. package/lib/Stripe/RetrieveBillingMeter.d.ts +23 -0
  2221. package/lib/Stripe/RetrieveBillingMeter.d.ts.map +1 -0
  2222. package/lib/Stripe/RetrieveBillingMeter.js +3 -0
  2223. package/lib/Stripe/RetrieveBillingMeter.js.map +1 -0
  2224. package/lib/Stripe/RetrieveBillingMeterHttp.d.ts +10 -0
  2225. package/lib/Stripe/RetrieveBillingMeterHttp.d.ts.map +1 -0
  2226. package/lib/Stripe/RetrieveBillingMeterHttp.js +17 -0
  2227. package/lib/Stripe/RetrieveBillingMeterHttp.js.map +1 -0
  2228. package/lib/Stripe/RetrieveBillingPortalConfiguration.d.ts +23 -0
  2229. package/lib/Stripe/RetrieveBillingPortalConfiguration.d.ts.map +1 -0
  2230. package/lib/Stripe/RetrieveBillingPortalConfiguration.js +3 -0
  2231. package/lib/Stripe/RetrieveBillingPortalConfiguration.js.map +1 -0
  2232. package/lib/Stripe/RetrieveBillingPortalConfigurationHttp.d.ts +10 -0
  2233. package/lib/Stripe/RetrieveBillingPortalConfigurationHttp.d.ts.map +1 -0
  2234. package/lib/Stripe/RetrieveBillingPortalConfigurationHttp.js +17 -0
  2235. package/lib/Stripe/RetrieveBillingPortalConfigurationHttp.js.map +1 -0
  2236. package/lib/Stripe/RetrieveCoupon.d.ts +23 -0
  2237. package/lib/Stripe/RetrieveCoupon.d.ts.map +1 -0
  2238. package/lib/Stripe/RetrieveCoupon.js +3 -0
  2239. package/lib/Stripe/RetrieveCoupon.js.map +1 -0
  2240. package/lib/Stripe/RetrieveCouponHttp.d.ts +11 -0
  2241. package/lib/Stripe/RetrieveCouponHttp.d.ts.map +1 -0
  2242. package/lib/Stripe/RetrieveCouponHttp.js +18 -0
  2243. package/lib/Stripe/RetrieveCouponHttp.js.map +1 -0
  2244. package/lib/Stripe/RetrieveCreditGrant.d.ts +23 -0
  2245. package/lib/Stripe/RetrieveCreditGrant.d.ts.map +1 -0
  2246. package/lib/Stripe/RetrieveCreditGrant.js +3 -0
  2247. package/lib/Stripe/RetrieveCreditGrant.js.map +1 -0
  2248. package/lib/Stripe/RetrieveCreditGrantHttp.d.ts +11 -0
  2249. package/lib/Stripe/RetrieveCreditGrantHttp.d.ts.map +1 -0
  2250. package/lib/Stripe/RetrieveCreditGrantHttp.js +18 -0
  2251. package/lib/Stripe/RetrieveCreditGrantHttp.js.map +1 -0
  2252. package/lib/Stripe/RetrieveCustomer.d.ts +23 -0
  2253. package/lib/Stripe/RetrieveCustomer.d.ts.map +1 -0
  2254. package/lib/Stripe/RetrieveCustomer.js +3 -0
  2255. package/lib/Stripe/RetrieveCustomer.js.map +1 -0
  2256. package/lib/Stripe/RetrieveCustomerHttp.d.ts +11 -0
  2257. package/lib/Stripe/RetrieveCustomerHttp.d.ts.map +1 -0
  2258. package/lib/Stripe/RetrieveCustomerHttp.js +18 -0
  2259. package/lib/Stripe/RetrieveCustomerHttp.js.map +1 -0
  2260. package/lib/Stripe/RetrieveCustomerTaxId.d.ts +23 -0
  2261. package/lib/Stripe/RetrieveCustomerTaxId.d.ts.map +1 -0
  2262. package/lib/Stripe/RetrieveCustomerTaxId.js +3 -0
  2263. package/lib/Stripe/RetrieveCustomerTaxId.js.map +1 -0
  2264. package/lib/Stripe/RetrieveCustomerTaxIdHttp.d.ts +11 -0
  2265. package/lib/Stripe/RetrieveCustomerTaxIdHttp.d.ts.map +1 -0
  2266. package/lib/Stripe/RetrieveCustomerTaxIdHttp.js +31 -0
  2267. package/lib/Stripe/RetrieveCustomerTaxIdHttp.js.map +1 -0
  2268. package/lib/Stripe/RetrieveEntitlementsFeature.d.ts +23 -0
  2269. package/lib/Stripe/RetrieveEntitlementsFeature.d.ts.map +1 -0
  2270. package/lib/Stripe/RetrieveEntitlementsFeature.js +3 -0
  2271. package/lib/Stripe/RetrieveEntitlementsFeature.js.map +1 -0
  2272. package/lib/Stripe/RetrieveEntitlementsFeatureHttp.d.ts +10 -0
  2273. package/lib/Stripe/RetrieveEntitlementsFeatureHttp.d.ts.map +1 -0
  2274. package/lib/Stripe/RetrieveEntitlementsFeatureHttp.js +17 -0
  2275. package/lib/Stripe/RetrieveEntitlementsFeatureHttp.js.map +1 -0
  2276. package/lib/Stripe/RetrieveFileLink.d.ts +23 -0
  2277. package/lib/Stripe/RetrieveFileLink.d.ts.map +1 -0
  2278. package/lib/Stripe/RetrieveFileLink.js +3 -0
  2279. package/lib/Stripe/RetrieveFileLink.js.map +1 -0
  2280. package/lib/Stripe/RetrieveFileLinkHttp.d.ts +11 -0
  2281. package/lib/Stripe/RetrieveFileLinkHttp.d.ts.map +1 -0
  2282. package/lib/Stripe/RetrieveFileLinkHttp.js +18 -0
  2283. package/lib/Stripe/RetrieveFileLinkHttp.js.map +1 -0
  2284. package/lib/Stripe/RetrieveIssuingCard.d.ts +23 -0
  2285. package/lib/Stripe/RetrieveIssuingCard.d.ts.map +1 -0
  2286. package/lib/Stripe/RetrieveIssuingCard.js +3 -0
  2287. package/lib/Stripe/RetrieveIssuingCard.js.map +1 -0
  2288. package/lib/Stripe/RetrieveIssuingCardHttp.d.ts +11 -0
  2289. package/lib/Stripe/RetrieveIssuingCardHttp.d.ts.map +1 -0
  2290. package/lib/Stripe/RetrieveIssuingCardHttp.js +18 -0
  2291. package/lib/Stripe/RetrieveIssuingCardHttp.js.map +1 -0
  2292. package/lib/Stripe/RetrieveIssuingCardholder.d.ts +23 -0
  2293. package/lib/Stripe/RetrieveIssuingCardholder.d.ts.map +1 -0
  2294. package/lib/Stripe/RetrieveIssuingCardholder.js +3 -0
  2295. package/lib/Stripe/RetrieveIssuingCardholder.js.map +1 -0
  2296. package/lib/Stripe/RetrieveIssuingCardholderHttp.d.ts +11 -0
  2297. package/lib/Stripe/RetrieveIssuingCardholderHttp.d.ts.map +1 -0
  2298. package/lib/Stripe/RetrieveIssuingCardholderHttp.js +18 -0
  2299. package/lib/Stripe/RetrieveIssuingCardholderHttp.js.map +1 -0
  2300. package/lib/Stripe/RetrieveIssuingPersonalizationDesign.d.ts +23 -0
  2301. package/lib/Stripe/RetrieveIssuingPersonalizationDesign.d.ts.map +1 -0
  2302. package/lib/Stripe/RetrieveIssuingPersonalizationDesign.js +3 -0
  2303. package/lib/Stripe/RetrieveIssuingPersonalizationDesign.js.map +1 -0
  2304. package/lib/Stripe/RetrieveIssuingPersonalizationDesignHttp.d.ts +11 -0
  2305. package/lib/Stripe/RetrieveIssuingPersonalizationDesignHttp.d.ts.map +1 -0
  2306. package/lib/Stripe/RetrieveIssuingPersonalizationDesignHttp.js +18 -0
  2307. package/lib/Stripe/RetrieveIssuingPersonalizationDesignHttp.js.map +1 -0
  2308. package/lib/Stripe/RetrievePaymentLink.d.ts +23 -0
  2309. package/lib/Stripe/RetrievePaymentLink.d.ts.map +1 -0
  2310. package/lib/Stripe/RetrievePaymentLink.js +3 -0
  2311. package/lib/Stripe/RetrievePaymentLink.js.map +1 -0
  2312. package/lib/Stripe/RetrievePaymentLinkHttp.d.ts +11 -0
  2313. package/lib/Stripe/RetrievePaymentLinkHttp.d.ts.map +1 -0
  2314. package/lib/Stripe/RetrievePaymentLinkHttp.js +18 -0
  2315. package/lib/Stripe/RetrievePaymentLinkHttp.js.map +1 -0
  2316. package/lib/Stripe/RetrievePaymentMethodConfiguration.d.ts +23 -0
  2317. package/lib/Stripe/RetrievePaymentMethodConfiguration.d.ts.map +1 -0
  2318. package/lib/Stripe/RetrievePaymentMethodConfiguration.js +3 -0
  2319. package/lib/Stripe/RetrievePaymentMethodConfiguration.js.map +1 -0
  2320. package/lib/Stripe/RetrievePaymentMethodConfigurationHttp.d.ts +10 -0
  2321. package/lib/Stripe/RetrievePaymentMethodConfigurationHttp.d.ts.map +1 -0
  2322. package/lib/Stripe/RetrievePaymentMethodConfigurationHttp.js +17 -0
  2323. package/lib/Stripe/RetrievePaymentMethodConfigurationHttp.js.map +1 -0
  2324. package/lib/Stripe/RetrievePaymentMethodDomain.d.ts +23 -0
  2325. package/lib/Stripe/RetrievePaymentMethodDomain.d.ts.map +1 -0
  2326. package/lib/Stripe/RetrievePaymentMethodDomain.js +3 -0
  2327. package/lib/Stripe/RetrievePaymentMethodDomain.js.map +1 -0
  2328. package/lib/Stripe/RetrievePaymentMethodDomainHttp.d.ts +10 -0
  2329. package/lib/Stripe/RetrievePaymentMethodDomainHttp.d.ts.map +1 -0
  2330. package/lib/Stripe/RetrievePaymentMethodDomainHttp.js +17 -0
  2331. package/lib/Stripe/RetrievePaymentMethodDomainHttp.js.map +1 -0
  2332. package/lib/Stripe/RetrievePlan.d.ts +23 -0
  2333. package/lib/Stripe/RetrievePlan.d.ts.map +1 -0
  2334. package/lib/Stripe/RetrievePlan.js +3 -0
  2335. package/lib/Stripe/RetrievePlan.js.map +1 -0
  2336. package/lib/Stripe/RetrievePlanHttp.d.ts +11 -0
  2337. package/lib/Stripe/RetrievePlanHttp.d.ts.map +1 -0
  2338. package/lib/Stripe/RetrievePlanHttp.js +18 -0
  2339. package/lib/Stripe/RetrievePlanHttp.js.map +1 -0
  2340. package/lib/Stripe/RetrievePrice.d.ts +23 -0
  2341. package/lib/Stripe/RetrievePrice.d.ts.map +1 -0
  2342. package/lib/Stripe/RetrievePrice.js +3 -0
  2343. package/lib/Stripe/RetrievePrice.js.map +1 -0
  2344. package/lib/Stripe/RetrievePriceHttp.d.ts +11 -0
  2345. package/lib/Stripe/RetrievePriceHttp.d.ts.map +1 -0
  2346. package/lib/Stripe/RetrievePriceHttp.js +18 -0
  2347. package/lib/Stripe/RetrievePriceHttp.js.map +1 -0
  2348. package/lib/Stripe/RetrieveProduct.d.ts +30 -0
  2349. package/lib/Stripe/RetrieveProduct.d.ts.map +1 -0
  2350. package/lib/Stripe/RetrieveProduct.js +3 -0
  2351. package/lib/Stripe/RetrieveProduct.js.map +1 -0
  2352. package/lib/Stripe/RetrieveProductFeature.d.ts +23 -0
  2353. package/lib/Stripe/RetrieveProductFeature.d.ts.map +1 -0
  2354. package/lib/Stripe/RetrieveProductFeature.js +3 -0
  2355. package/lib/Stripe/RetrieveProductFeature.js.map +1 -0
  2356. package/lib/Stripe/RetrieveProductFeatureHttp.d.ts +11 -0
  2357. package/lib/Stripe/RetrieveProductFeatureHttp.d.ts.map +1 -0
  2358. package/lib/Stripe/RetrieveProductFeatureHttp.js +31 -0
  2359. package/lib/Stripe/RetrieveProductFeatureHttp.js.map +1 -0
  2360. package/lib/Stripe/RetrieveProductHttp.d.ts +12 -0
  2361. package/lib/Stripe/RetrieveProductHttp.d.ts.map +1 -0
  2362. package/lib/Stripe/RetrieveProductHttp.js +33 -0
  2363. package/lib/Stripe/RetrieveProductHttp.js.map +1 -0
  2364. package/lib/Stripe/RetrievePromotionCode.d.ts +23 -0
  2365. package/lib/Stripe/RetrievePromotionCode.d.ts.map +1 -0
  2366. package/lib/Stripe/RetrievePromotionCode.js +3 -0
  2367. package/lib/Stripe/RetrievePromotionCode.js.map +1 -0
  2368. package/lib/Stripe/RetrievePromotionCodeHttp.d.ts +11 -0
  2369. package/lib/Stripe/RetrievePromotionCodeHttp.d.ts.map +1 -0
  2370. package/lib/Stripe/RetrievePromotionCodeHttp.js +18 -0
  2371. package/lib/Stripe/RetrievePromotionCodeHttp.js.map +1 -0
  2372. package/lib/Stripe/RetrieveRadarValueList.d.ts +23 -0
  2373. package/lib/Stripe/RetrieveRadarValueList.d.ts.map +1 -0
  2374. package/lib/Stripe/RetrieveRadarValueList.js +3 -0
  2375. package/lib/Stripe/RetrieveRadarValueList.js.map +1 -0
  2376. package/lib/Stripe/RetrieveRadarValueListHttp.d.ts +10 -0
  2377. package/lib/Stripe/RetrieveRadarValueListHttp.d.ts.map +1 -0
  2378. package/lib/Stripe/RetrieveRadarValueListHttp.js +17 -0
  2379. package/lib/Stripe/RetrieveRadarValueListHttp.js.map +1 -0
  2380. package/lib/Stripe/RetrieveRadarValueListItem.d.ts +23 -0
  2381. package/lib/Stripe/RetrieveRadarValueListItem.d.ts.map +1 -0
  2382. package/lib/Stripe/RetrieveRadarValueListItem.js +3 -0
  2383. package/lib/Stripe/RetrieveRadarValueListItem.js.map +1 -0
  2384. package/lib/Stripe/RetrieveRadarValueListItemHttp.d.ts +10 -0
  2385. package/lib/Stripe/RetrieveRadarValueListItemHttp.d.ts.map +1 -0
  2386. package/lib/Stripe/RetrieveRadarValueListItemHttp.js +17 -0
  2387. package/lib/Stripe/RetrieveRadarValueListItemHttp.js.map +1 -0
  2388. package/lib/Stripe/RetrieveShippingRate.d.ts +23 -0
  2389. package/lib/Stripe/RetrieveShippingRate.d.ts.map +1 -0
  2390. package/lib/Stripe/RetrieveShippingRate.js +3 -0
  2391. package/lib/Stripe/RetrieveShippingRate.js.map +1 -0
  2392. package/lib/Stripe/RetrieveShippingRateHttp.d.ts +11 -0
  2393. package/lib/Stripe/RetrieveShippingRateHttp.d.ts.map +1 -0
  2394. package/lib/Stripe/RetrieveShippingRateHttp.js +18 -0
  2395. package/lib/Stripe/RetrieveShippingRateHttp.js.map +1 -0
  2396. package/lib/Stripe/RetrieveTaxRate.d.ts +23 -0
  2397. package/lib/Stripe/RetrieveTaxRate.d.ts.map +1 -0
  2398. package/lib/Stripe/RetrieveTaxRate.js +3 -0
  2399. package/lib/Stripe/RetrieveTaxRate.js.map +1 -0
  2400. package/lib/Stripe/RetrieveTaxRateHttp.d.ts +11 -0
  2401. package/lib/Stripe/RetrieveTaxRateHttp.d.ts.map +1 -0
  2402. package/lib/Stripe/RetrieveTaxRateHttp.js +18 -0
  2403. package/lib/Stripe/RetrieveTaxRateHttp.js.map +1 -0
  2404. package/lib/Stripe/RetrieveTaxRegistration.d.ts +23 -0
  2405. package/lib/Stripe/RetrieveTaxRegistration.d.ts.map +1 -0
  2406. package/lib/Stripe/RetrieveTaxRegistration.js +3 -0
  2407. package/lib/Stripe/RetrieveTaxRegistration.js.map +1 -0
  2408. package/lib/Stripe/RetrieveTaxRegistrationHttp.d.ts +11 -0
  2409. package/lib/Stripe/RetrieveTaxRegistrationHttp.d.ts.map +1 -0
  2410. package/lib/Stripe/RetrieveTaxRegistrationHttp.js +18 -0
  2411. package/lib/Stripe/RetrieveTaxRegistrationHttp.js.map +1 -0
  2412. package/lib/Stripe/RetrieveTaxSettings.d.ts +25 -0
  2413. package/lib/Stripe/RetrieveTaxSettings.d.ts.map +1 -0
  2414. package/lib/Stripe/RetrieveTaxSettings.js +3 -0
  2415. package/lib/Stripe/RetrieveTaxSettings.js.map +1 -0
  2416. package/lib/Stripe/RetrieveTaxSettingsHttp.d.ts +12 -0
  2417. package/lib/Stripe/RetrieveTaxSettingsHttp.d.ts.map +1 -0
  2418. package/lib/Stripe/RetrieveTaxSettingsHttp.js +26 -0
  2419. package/lib/Stripe/RetrieveTaxSettingsHttp.js.map +1 -0
  2420. package/lib/Stripe/RetrieveTerminalConfiguration.d.ts +23 -0
  2421. package/lib/Stripe/RetrieveTerminalConfiguration.d.ts.map +1 -0
  2422. package/lib/Stripe/RetrieveTerminalConfiguration.js +3 -0
  2423. package/lib/Stripe/RetrieveTerminalConfiguration.js.map +1 -0
  2424. package/lib/Stripe/RetrieveTerminalConfigurationHttp.d.ts +11 -0
  2425. package/lib/Stripe/RetrieveTerminalConfigurationHttp.d.ts.map +1 -0
  2426. package/lib/Stripe/RetrieveTerminalConfigurationHttp.js +18 -0
  2427. package/lib/Stripe/RetrieveTerminalConfigurationHttp.js.map +1 -0
  2428. package/lib/Stripe/RetrieveTerminalLocation.d.ts +23 -0
  2429. package/lib/Stripe/RetrieveTerminalLocation.d.ts.map +1 -0
  2430. package/lib/Stripe/RetrieveTerminalLocation.js +3 -0
  2431. package/lib/Stripe/RetrieveTerminalLocation.js.map +1 -0
  2432. package/lib/Stripe/RetrieveTerminalLocationHttp.d.ts +11 -0
  2433. package/lib/Stripe/RetrieveTerminalLocationHttp.d.ts.map +1 -0
  2434. package/lib/Stripe/RetrieveTerminalLocationHttp.js +18 -0
  2435. package/lib/Stripe/RetrieveTerminalLocationHttp.js.map +1 -0
  2436. package/lib/Stripe/RetrieveTerminalReader.d.ts +23 -0
  2437. package/lib/Stripe/RetrieveTerminalReader.d.ts.map +1 -0
  2438. package/lib/Stripe/RetrieveTerminalReader.js +3 -0
  2439. package/lib/Stripe/RetrieveTerminalReader.js.map +1 -0
  2440. package/lib/Stripe/RetrieveTerminalReaderHttp.d.ts +11 -0
  2441. package/lib/Stripe/RetrieveTerminalReaderHttp.d.ts.map +1 -0
  2442. package/lib/Stripe/RetrieveTerminalReaderHttp.js +18 -0
  2443. package/lib/Stripe/RetrieveTerminalReaderHttp.js.map +1 -0
  2444. package/lib/Stripe/RetrieveWebhookEndpoint.d.ts +23 -0
  2445. package/lib/Stripe/RetrieveWebhookEndpoint.d.ts.map +1 -0
  2446. package/lib/Stripe/RetrieveWebhookEndpoint.js +3 -0
  2447. package/lib/Stripe/RetrieveWebhookEndpoint.js.map +1 -0
  2448. package/lib/Stripe/RetrieveWebhookEndpointHttp.d.ts +11 -0
  2449. package/lib/Stripe/RetrieveWebhookEndpointHttp.d.ts.map +1 -0
  2450. package/lib/Stripe/RetrieveWebhookEndpointHttp.js +18 -0
  2451. package/lib/Stripe/RetrieveWebhookEndpointHttp.js.map +1 -0
  2452. package/lib/Stripe/ShippingRate.d.ts +192 -0
  2453. package/lib/Stripe/ShippingRate.d.ts.map +1 -0
  2454. package/lib/Stripe/ShippingRate.js +375 -0
  2455. package/lib/Stripe/ShippingRate.js.map +1 -0
  2456. package/lib/Stripe/StripeHttp.d.ts +58 -0
  2457. package/lib/Stripe/StripeHttp.d.ts.map +1 -0
  2458. package/lib/Stripe/StripeHttp.js +110 -0
  2459. package/lib/Stripe/StripeHttp.js.map +1 -0
  2460. package/lib/Stripe/TaxRate.d.ts +153 -0
  2461. package/lib/Stripe/TaxRate.d.ts.map +1 -0
  2462. package/lib/Stripe/TaxRate.js +287 -0
  2463. package/lib/Stripe/TaxRate.js.map +1 -0
  2464. package/lib/Stripe/TaxRegistration.d.ts +275 -0
  2465. package/lib/Stripe/TaxRegistration.d.ts.map +1 -0
  2466. package/lib/Stripe/TaxRegistration.js +300 -0
  2467. package/lib/Stripe/TaxRegistration.js.map +1 -0
  2468. package/lib/Stripe/TaxSettings.d.ts +165 -0
  2469. package/lib/Stripe/TaxSettings.d.ts.map +1 -0
  2470. package/lib/Stripe/TaxSettings.js +207 -0
  2471. package/lib/Stripe/TaxSettings.js.map +1 -0
  2472. package/lib/Stripe/TerminalConfiguration.d.ts +368 -0
  2473. package/lib/Stripe/TerminalConfiguration.d.ts.map +1 -0
  2474. package/lib/Stripe/TerminalConfiguration.js +537 -0
  2475. package/lib/Stripe/TerminalConfiguration.js.map +1 -0
  2476. package/lib/Stripe/TerminalLocation.d.ts +215 -0
  2477. package/lib/Stripe/TerminalLocation.d.ts.map +1 -0
  2478. package/lib/Stripe/TerminalLocation.js +371 -0
  2479. package/lib/Stripe/TerminalLocation.js.map +1 -0
  2480. package/lib/Stripe/TerminalReader.d.ts +124 -0
  2481. package/lib/Stripe/TerminalReader.d.ts.map +1 -0
  2482. package/lib/Stripe/TerminalReader.js +239 -0
  2483. package/lib/Stripe/TerminalReader.js.map +1 -0
  2484. package/lib/Stripe/UpdateAccount.d.ts +23 -0
  2485. package/lib/Stripe/UpdateAccount.d.ts.map +1 -0
  2486. package/lib/Stripe/UpdateAccount.js +3 -0
  2487. package/lib/Stripe/UpdateAccount.js.map +1 -0
  2488. package/lib/Stripe/UpdateAccountHttp.d.ts +11 -0
  2489. package/lib/Stripe/UpdateAccountHttp.d.ts.map +1 -0
  2490. package/lib/Stripe/UpdateAccountHttp.js +18 -0
  2491. package/lib/Stripe/UpdateAccountHttp.js.map +1 -0
  2492. package/lib/Stripe/UpdateCreditGrant.d.ts +24 -0
  2493. package/lib/Stripe/UpdateCreditGrant.d.ts.map +1 -0
  2494. package/lib/Stripe/UpdateCreditGrant.js +3 -0
  2495. package/lib/Stripe/UpdateCreditGrant.js.map +1 -0
  2496. package/lib/Stripe/UpdateCreditGrantHttp.d.ts +11 -0
  2497. package/lib/Stripe/UpdateCreditGrantHttp.d.ts.map +1 -0
  2498. package/lib/Stripe/UpdateCreditGrantHttp.js +18 -0
  2499. package/lib/Stripe/UpdateCreditGrantHttp.js.map +1 -0
  2500. package/lib/Stripe/UpdateCustomer.d.ts +23 -0
  2501. package/lib/Stripe/UpdateCustomer.d.ts.map +1 -0
  2502. package/lib/Stripe/UpdateCustomer.js +3 -0
  2503. package/lib/Stripe/UpdateCustomer.js.map +1 -0
  2504. package/lib/Stripe/UpdateCustomerHttp.d.ts +11 -0
  2505. package/lib/Stripe/UpdateCustomerHttp.d.ts.map +1 -0
  2506. package/lib/Stripe/UpdateCustomerHttp.js +18 -0
  2507. package/lib/Stripe/UpdateCustomerHttp.js.map +1 -0
  2508. package/lib/Stripe/UpdateFileLink.d.ts +24 -0
  2509. package/lib/Stripe/UpdateFileLink.d.ts.map +1 -0
  2510. package/lib/Stripe/UpdateFileLink.js +3 -0
  2511. package/lib/Stripe/UpdateFileLink.js.map +1 -0
  2512. package/lib/Stripe/UpdateFileLinkHttp.d.ts +11 -0
  2513. package/lib/Stripe/UpdateFileLinkHttp.d.ts.map +1 -0
  2514. package/lib/Stripe/UpdateFileLinkHttp.js +18 -0
  2515. package/lib/Stripe/UpdateFileLinkHttp.js.map +1 -0
  2516. package/lib/Stripe/UpdateIssuingCard.d.ts +23 -0
  2517. package/lib/Stripe/UpdateIssuingCard.d.ts.map +1 -0
  2518. package/lib/Stripe/UpdateIssuingCard.js +3 -0
  2519. package/lib/Stripe/UpdateIssuingCard.js.map +1 -0
  2520. package/lib/Stripe/UpdateIssuingCardHttp.d.ts +11 -0
  2521. package/lib/Stripe/UpdateIssuingCardHttp.d.ts.map +1 -0
  2522. package/lib/Stripe/UpdateIssuingCardHttp.js +18 -0
  2523. package/lib/Stripe/UpdateIssuingCardHttp.js.map +1 -0
  2524. package/lib/Stripe/UpdateIssuingCardholder.d.ts +23 -0
  2525. package/lib/Stripe/UpdateIssuingCardholder.d.ts.map +1 -0
  2526. package/lib/Stripe/UpdateIssuingCardholder.js +3 -0
  2527. package/lib/Stripe/UpdateIssuingCardholder.js.map +1 -0
  2528. package/lib/Stripe/UpdateIssuingCardholderHttp.d.ts +11 -0
  2529. package/lib/Stripe/UpdateIssuingCardholderHttp.d.ts.map +1 -0
  2530. package/lib/Stripe/UpdateIssuingCardholderHttp.js +18 -0
  2531. package/lib/Stripe/UpdateIssuingCardholderHttp.js.map +1 -0
  2532. package/lib/Stripe/UpdateTaxSettings.d.ts +28 -0
  2533. package/lib/Stripe/UpdateTaxSettings.d.ts.map +1 -0
  2534. package/lib/Stripe/UpdateTaxSettings.js +3 -0
  2535. package/lib/Stripe/UpdateTaxSettings.js.map +1 -0
  2536. package/lib/Stripe/UpdateTaxSettingsHttp.d.ts +12 -0
  2537. package/lib/Stripe/UpdateTaxSettingsHttp.d.ts.map +1 -0
  2538. package/lib/Stripe/UpdateTaxSettingsHttp.js +26 -0
  2539. package/lib/Stripe/UpdateTaxSettingsHttp.js.map +1 -0
  2540. package/lib/Stripe/UpdateTerminalReader.d.ts +23 -0
  2541. package/lib/Stripe/UpdateTerminalReader.d.ts.map +1 -0
  2542. package/lib/Stripe/UpdateTerminalReader.js +3 -0
  2543. package/lib/Stripe/UpdateTerminalReader.js.map +1 -0
  2544. package/lib/Stripe/UpdateTerminalReaderHttp.d.ts +11 -0
  2545. package/lib/Stripe/UpdateTerminalReaderHttp.d.ts.map +1 -0
  2546. package/lib/Stripe/UpdateTerminalReaderHttp.js +18 -0
  2547. package/lib/Stripe/UpdateTerminalReaderHttp.js.map +1 -0
  2548. package/lib/Stripe/WebhookEndpoint.d.ts +135 -0
  2549. package/lib/Stripe/WebhookEndpoint.d.ts.map +1 -0
  2550. package/lib/Stripe/WebhookEndpoint.js +266 -0
  2551. package/lib/Stripe/WebhookEndpoint.js.map +1 -0
  2552. package/lib/Stripe/index.d.ts +151 -0
  2553. package/lib/Stripe/index.d.ts.map +1 -0
  2554. package/lib/Stripe/index.js +151 -0
  2555. package/lib/Stripe/index.js.map +1 -0
  2556. package/lib/Stripe/missing.d.ts +9 -0
  2557. package/lib/Stripe/missing.d.ts.map +1 -0
  2558. package/lib/Stripe/missing.js +13 -0
  2559. package/lib/Stripe/missing.js.map +1 -0
  2560. package/lib/Telemetry/Layer.d.ts +6 -0
  2561. package/lib/Telemetry/Layer.d.ts.map +1 -1
  2562. package/lib/Telemetry/Layer.js +16 -5
  2563. package/lib/Telemetry/Layer.js.map +1 -1
  2564. package/lib/Telemetry.d.ts +7 -61
  2565. package/lib/Telemetry.d.ts.map +1 -1
  2566. package/lib/Telemetry.js +9 -304
  2567. package/lib/Telemetry.js.map +1 -1
  2568. package/lib/TelemetryRuntime.d.ts +105 -0
  2569. package/lib/TelemetryRuntime.d.ts.map +1 -0
  2570. package/lib/TelemetryRuntime.js +308 -0
  2571. package/lib/TelemetryRuntime.js.map +1 -0
  2572. package/lib/Test/Alchemy.d.ts +2 -0
  2573. package/lib/Test/Alchemy.d.ts.map +1 -1
  2574. package/lib/Test/Alchemy.js +2 -0
  2575. package/lib/Test/Alchemy.js.map +1 -1
  2576. package/lib/Test/Bun.d.ts +2 -0
  2577. package/lib/Test/Bun.d.ts.map +1 -1
  2578. package/lib/Test/Bun.js +2 -0
  2579. package/lib/Test/Bun.js.map +1 -1
  2580. package/lib/Test/Core.d.ts +23 -4
  2581. package/lib/Test/Core.d.ts.map +1 -1
  2582. package/lib/Test/Core.js +24 -10
  2583. package/lib/Test/Core.js.map +1 -1
  2584. package/lib/Test/Vitest.d.ts +2 -0
  2585. package/lib/Test/Vitest.d.ts.map +1 -1
  2586. package/lib/Test/Vitest.js +2 -0
  2587. package/lib/Test/Vitest.js.map +1 -1
  2588. package/lib/Test/index.d.ts +1 -1
  2589. package/lib/Test/index.d.ts.map +1 -1
  2590. package/lib/Test/index.js +1 -1
  2591. package/lib/Test/index.js.map +1 -1
  2592. package/lib/UserFacingError.d.ts +26 -0
  2593. package/lib/UserFacingError.d.ts.map +1 -0
  2594. package/lib/UserFacingError.js +25 -0
  2595. package/lib/UserFacingError.js.map +1 -0
  2596. package/lib/Util/AtomicFile.d.ts +19 -0
  2597. package/lib/Util/AtomicFile.d.ts.map +1 -0
  2598. package/lib/Util/AtomicFile.js +22 -0
  2599. package/lib/Util/AtomicFile.js.map +1 -0
  2600. package/lib/Util/ConsoleSink.d.ts +4 -0
  2601. package/lib/Util/ConsoleSink.d.ts.map +1 -0
  2602. package/lib/Util/ConsoleSink.js +24 -0
  2603. package/lib/Util/ConsoleSink.js.map +1 -0
  2604. package/lib/Util/LineBuffer.d.ts +9 -0
  2605. package/lib/Util/LineBuffer.d.ts.map +1 -0
  2606. package/lib/Util/LineBuffer.js +23 -0
  2607. package/lib/Util/LineBuffer.js.map +1 -0
  2608. package/lib/Util/Memoize.d.ts +20 -0
  2609. package/lib/Util/Memoize.d.ts.map +1 -0
  2610. package/lib/Util/Memoize.js +38 -0
  2611. package/lib/Util/Memoize.js.map +1 -0
  2612. package/lib/Util/Node.d.ts +29 -5
  2613. package/lib/Util/Node.d.ts.map +1 -1
  2614. package/lib/Util/Node.js +37 -10
  2615. package/lib/Util/Node.js.map +1 -1
  2616. package/lib/Util/PlatformServices.d.ts +6 -2
  2617. package/lib/Util/PlatformServices.d.ts.map +1 -1
  2618. package/lib/Util/PlatformServices.js +6 -2
  2619. package/lib/Util/PlatformServices.js.map +1 -1
  2620. package/lib/Util/ResourceOutput.d.ts +30 -0
  2621. package/lib/Util/ResourceOutput.d.ts.map +1 -0
  2622. package/lib/Util/ResourceOutput.js +60 -0
  2623. package/lib/Util/ResourceOutput.js.map +1 -0
  2624. package/lib/Util/Terminal.d.ts +23 -0
  2625. package/lib/Util/Terminal.d.ts.map +1 -0
  2626. package/lib/Util/Terminal.js +56 -0
  2627. package/lib/Util/Terminal.js.map +1 -0
  2628. package/lib/Util/Theme.d.ts +123 -0
  2629. package/lib/Util/Theme.d.ts.map +1 -0
  2630. package/lib/Util/Theme.js +133 -0
  2631. package/lib/Util/Theme.js.map +1 -0
  2632. package/lib/Util/gitignore-rules-to-globs.d.ts +3 -3
  2633. package/lib/Util/gitignore-rules-to-globs.js +3 -3
  2634. package/lib/Util/interactive.d.ts +17 -12
  2635. package/lib/Util/interactive.d.ts.map +1 -1
  2636. package/lib/Util/interactive.js +81 -13
  2637. package/lib/Util/interactive.js.map +1 -1
  2638. package/lib/Util/proxy-chain.js +17 -0
  2639. package/lib/Util/proxy-chain.js.map +1 -1
  2640. package/lib/Util/scc.d.ts +11 -3
  2641. package/lib/Util/scc.d.ts.map +1 -1
  2642. package/lib/Util/scc.js +35 -22
  2643. package/lib/Util/scc.js.map +1 -1
  2644. package/lib/Util/tarGzip.d.ts +3 -1
  2645. package/lib/Util/tarGzip.d.ts.map +1 -1
  2646. package/lib/Util/tarGzip.js +15 -5
  2647. package/lib/Util/tarGzip.js.map +1 -1
  2648. package/lib/Util/zip.d.ts +2 -2
  2649. package/lib/Util/zip.d.ts.map +1 -1
  2650. package/lib/Util/zip.js +13 -38
  2651. package/lib/Util/zip.js.map +1 -1
  2652. package/lib/Utils/ip-address.d.ts +6 -0
  2653. package/lib/Utils/ip-address.d.ts.map +1 -0
  2654. package/lib/Utils/ip-address.js +83 -0
  2655. package/lib/Utils/ip-address.js.map +1 -0
  2656. package/lib/Website/Server.d.ts.map +1 -1
  2657. package/lib/Website/Server.js +14 -4
  2658. package/lib/Website/Server.js.map +1 -1
  2659. package/lib/Website/ServerLocal.d.ts +2 -1
  2660. package/lib/Website/ServerLocal.js +1 -2
  2661. package/lib/Website/ServerLocal.js.map +1 -1
  2662. package/lib/index.d.ts +3 -2
  2663. package/lib/index.d.ts.map +1 -1
  2664. package/lib/index.js +3 -2
  2665. package/lib/index.js.map +1 -1
  2666. package/package.json +94 -60
  2667. package/src/AWS/AGENTS.md +1 -1
  2668. package/src/AWS/AMP/Scraper.ts +1 -1
  2669. package/src/AWS/AppRunner/Service.ts +11 -27
  2670. package/src/AWS/Assets.ts +2 -2
  2671. package/src/AWS/AuthProvider.ts +748 -429
  2672. package/src/AWS/Batch/JobDefinition.ts +11 -27
  2673. package/src/AWS/Bedrock/LanguageModel.ts +2 -2
  2674. package/src/AWS/Budgets/BindingHttp.ts +2 -13
  2675. package/src/AWS/Budgets/DescribeBudgetActionsForBudgetHttp.ts +0 -3
  2676. package/src/AWS/CloudFront/KvRoutesUpdate.ts +20 -1
  2677. package/src/AWS/Connection/DbAuthToken.ts +1 -1
  2678. package/src/AWS/Credentials.ts +3 -3
  2679. package/src/AWS/DSQL/Connect.ts +2 -2
  2680. package/src/AWS/DynamoDB/Table.ts +33 -17
  2681. package/src/AWS/EC2/Instance.ts +24 -29
  2682. package/src/AWS/EC2/InternetGateway.ts +1 -1
  2683. package/src/AWS/EC2/NatGateway.ts +1 -1
  2684. package/src/AWS/EC2/NetworkInterface.ts +1 -1
  2685. package/src/AWS/EC2/NetworkInterfaceAttachment.ts +1 -1
  2686. package/src/AWS/EC2/RouteTable.ts +1 -1
  2687. package/src/AWS/EC2/RouteTableAssociation.ts +1 -1
  2688. package/src/AWS/EC2/SecurityGroup.ts +376 -79
  2689. package/src/AWS/EC2/SecurityGroupRule.ts +147 -23
  2690. package/src/AWS/EC2/Snapshot.ts +1 -1
  2691. package/src/AWS/EC2/Subnet.ts +1 -1
  2692. package/src/AWS/EC2/Volume.ts +1 -1
  2693. package/src/AWS/EC2/VolumeAttachment.ts +1 -1
  2694. package/src/AWS/EC2/Vpc.ts +1 -1
  2695. package/src/AWS/EC2/VpcEndpoint.ts +1 -1
  2696. package/src/AWS/EC2/hosted.ts +5 -6
  2697. package/src/AWS/ECR/Image.ts +29 -7
  2698. package/src/AWS/ECR/ImageSource.ts +4 -5
  2699. package/src/AWS/ECS/FlociServiceProvider.ts +2 -2
  2700. package/src/AWS/ECS/FlociTaskProvider.ts +2 -2
  2701. package/src/AWS/ECS/Service.ts +13 -28
  2702. package/src/AWS/ECS/Task.ts +7 -21
  2703. package/src/AWS/EKS/KubernetesAdapter.ts +4 -4
  2704. package/src/AWS/ElastiCache/CacheCluster.ts +323 -0
  2705. package/src/AWS/ElastiCache/ConnectCacheCluster.ts +58 -0
  2706. package/src/AWS/ElastiCache/ConnectCacheClusterHttp.ts +77 -0
  2707. package/src/AWS/ElastiCache/ConnectReplicationGroup.ts +62 -0
  2708. package/src/AWS/ElastiCache/ConnectReplicationGroupHttp.ts +110 -0
  2709. package/src/AWS/ElastiCache/ReplicationGroup.ts +594 -0
  2710. package/src/AWS/ElastiCache/SubnetGroup.ts +208 -0
  2711. package/src/AWS/ElastiCache/index.ts +7 -0
  2712. package/src/AWS/ElastiCache/internal.ts +36 -0
  2713. package/src/AWS/Environment.ts +21 -54
  2714. package/src/AWS/IAM/actions.generated.ts +1 -1
  2715. package/src/AWS/IdentityCenter/AccountAssignment.ts +7 -0
  2716. package/src/AWS/Lambda/BindingHttp.ts +237 -25
  2717. package/src/AWS/Lambda/FlociFunctionProvider.ts +2 -2
  2718. package/src/AWS/Lambda/FlociMicrovmImageProvider.ts +2 -2
  2719. package/src/AWS/Lambda/Function.ts +62 -44
  2720. package/src/AWS/Lambda/MicrovmBinding.ts +15 -276
  2721. package/src/AWS/Lambda/MicrovmBundle.ts +1 -16
  2722. package/src/AWS/Lambda/MicrovmImage.ts +12 -28
  2723. package/src/AWS/Lambda/MicrovmProvider.ts +1 -1
  2724. package/src/AWS/Lambda/MicrovmRuntimeContext.ts +1 -1
  2725. package/src/AWS/Lambda/NetworkConnector.ts +1 -1
  2726. package/src/AWS/Local/DevWatchProvider.ts +18 -8
  2727. package/src/AWS/Local/Local.ts +11 -10
  2728. package/src/AWS/Logs/LogGroup.ts +8 -2
  2729. package/src/AWS/Organizations/Account.ts +18 -10
  2730. package/src/AWS/Organizations/DelegatedAdministrator.ts +7 -7
  2731. package/src/AWS/Organizations/Organization.ts +3 -5
  2732. package/src/AWS/Organizations/common.ts +21 -1
  2733. package/src/AWS/Providers.ts +12 -0
  2734. package/src/AWS/RDS/Connect.ts +3 -3
  2735. package/src/AWS/RDS/DBInstance.ts +979 -53
  2736. package/src/AWS/RDS/DBParameterGroup.ts +89 -40
  2737. package/src/AWS/S3/BindingHttp.ts +46 -37
  2738. package/src/AWS/S3/Bucket.ts +221 -83
  2739. package/src/AWS/S3/PresignGetObject.ts +2 -4
  2740. package/src/AWS/S3/PresignPutObject.ts +2 -4
  2741. package/src/AWS/SNS/Subscription.ts +29 -9
  2742. package/src/AWS/StateStore/State.ts +24 -36
  2743. package/src/AWS/Synthetics/Canary.ts +4 -11
  2744. package/src/Alchemist/Entrypoint.ts +33 -0
  2745. package/src/Alchemist/Errors.ts +36 -0
  2746. package/src/Alchemist/Progress.ts +175 -0
  2747. package/src/Alchemist/Runtime.ts +40 -0
  2748. package/src/Alchemist/Session.ts +452 -0
  2749. package/src/Alchemist/index.ts +24 -0
  2750. package/src/Alchemist/routes/aws.ts +88 -0
  2751. package/src/Alchemist/routes/cloudflare.ts +188 -0
  2752. package/src/Alchemist/routes/cloudflareToken.ts +215 -0
  2753. package/src/Alchemist/routes/drift.ts +94 -0
  2754. package/src/Alchemist/routes/logs.ts +185 -0
  2755. package/src/Alchemist/routes/nuke.ts +146 -0
  2756. package/src/Alchemist/routes/profile.ts +427 -0
  2757. package/src/Alchemist/routes/provider.ts +107 -0
  2758. package/src/Alchemist/routes/stack.ts +137 -0
  2759. package/src/Alchemist/routes/state.ts +90 -0
  2760. package/src/Apply.ts +312 -173
  2761. package/src/Auth/AuthProvider.ts +416 -158
  2762. package/src/Auth/BrowserOAuth.ts +68 -0
  2763. package/src/Auth/Credentials.ts +155 -46
  2764. package/src/Auth/CredentialsCache.ts +57 -0
  2765. package/src/Auth/Demand.ts +209 -84
  2766. package/src/Auth/Env.ts +40 -16
  2767. package/src/Auth/Inspect.ts +129 -0
  2768. package/src/Auth/Lock.ts +48 -30
  2769. package/src/Auth/OAuthFlow.ts +551 -0
  2770. package/src/Auth/Paths.ts +30 -0
  2771. package/src/Auth/Profile.ts +768 -164
  2772. package/src/Auth/Resolve.ts +136 -0
  2773. package/src/Auth/StoredAuthProvider.ts +291 -0
  2774. package/src/Auth/index.ts +1 -0
  2775. package/src/Axiom/AuthProvider.ts +112 -314
  2776. package/src/Axiom/Credentials.ts +5 -13
  2777. package/src/Axiom/Providers.ts +3 -3
  2778. package/src/Bundle/Bundle.ts +3 -5
  2779. package/src/Cli/CliKit/CliKit.ts +183 -0
  2780. package/src/Cli/CliKit/index.ts +50 -0
  2781. package/src/Cli/CliKit/interaction.ts +19 -0
  2782. package/src/Cli/CliKit/layer.ts +50 -0
  2783. package/src/Cli/DevOptions.ts +19 -0
  2784. package/src/Cli/Format.ts +31 -0
  2785. package/src/Cli/GlobalLog.ts +147 -0
  2786. package/src/Cli/LoggingCli.ts +312 -108
  2787. package/src/Cli/ModeTag.ts +1 -1
  2788. package/src/Cli/NamespaceTree.ts +94 -21
  2789. package/src/Cli/PlainCliFormatter.ts +75 -0
  2790. package/src/Cli/PropertyDiff.ts +229 -0
  2791. package/src/Cli/checkVersion.ts +19 -6
  2792. package/src/Cli/commands/aws.ts +68 -101
  2793. package/src/Cli/commands/cloudflare.ts +204 -444
  2794. package/src/Cli/commands/compat.ts +25 -0
  2795. package/src/Cli/commands/confirm.ts +46 -0
  2796. package/src/Cli/commands/deploy.ts +226 -213
  2797. package/src/Cli/commands/dev.ts +75 -34
  2798. package/src/Cli/commands/drift.ts +107 -0
  2799. package/src/Cli/commands/errors.ts +162 -0
  2800. package/src/Cli/commands/flags.ts +203 -0
  2801. package/src/Cli/commands/instrument.ts +27 -0
  2802. package/src/Cli/commands/logs.ts +127 -145
  2803. package/src/Cli/commands/nuke.ts +146 -819
  2804. package/src/Cli/commands/profile/commands.ts +482 -0
  2805. package/src/Cli/commands/profile/flows.ts +218 -0
  2806. package/src/Cli/commands/profile/hub.ts +191 -0
  2807. package/src/Cli/commands/profile/index.ts +1 -0
  2808. package/src/Cli/commands/provider.ts +63 -0
  2809. package/src/Cli/commands/render.ts +121 -0
  2810. package/src/Cli/commands/state.ts +250 -387
  2811. package/src/Cli/components/types.ts +141 -0
  2812. package/src/Cli/components/ui/Data.tsx +44 -0
  2813. package/src/Cli/components/ui/Environment.tsx +87 -0
  2814. package/src/Cli/components/ui/Feedback.tsx +269 -0
  2815. package/src/Cli/components/ui/Interactive.tsx +1061 -0
  2816. package/src/Cli/components/ui/Layout.tsx +252 -0
  2817. package/src/Cli/components/ui/Live.tsx +131 -0
  2818. package/src/Cli/components/ui/ProgressBar.tsx +57 -0
  2819. package/src/Cli/components/ui/Transcript.tsx +42 -0
  2820. package/src/Cli/components/ui/Typography.tsx +83 -0
  2821. package/src/Cli/components/ui/index.ts +68 -0
  2822. package/src/Cli/components/view/ApprovePlan.tsx +102 -0
  2823. package/src/Cli/components/view/Help.tsx +381 -0
  2824. package/src/Cli/components/view/Logo.tsx +169 -0
  2825. package/src/Cli/components/view/Nuke.tsx +258 -0
  2826. package/src/Cli/components/view/PlanDecision.tsx +81 -0
  2827. package/src/Cli/components/view/PlanRow.tsx +39 -0
  2828. package/src/Cli/components/view/PlanTree.ts +354 -0
  2829. package/src/Cli/components/view/PlanView.tsx +826 -0
  2830. package/src/Cli/components/view/Profile.tsx +446 -0
  2831. package/src/Cli/components/view/ProfileDashboard.tsx +930 -0
  2832. package/src/Cli/components/view/Prompts.tsx +794 -0
  2833. package/src/Cli/components/view/Runtime.tsx +976 -0
  2834. package/src/Cli/components/view/SigilCli.tsx +186 -0
  2835. package/src/Cli/components/view/StackOutputs.tsx +38 -0
  2836. package/src/Cli/components/view/StateExplorer.tsx +1179 -0
  2837. package/src/Cli/components/view/statusStyle.ts +97 -0
  2838. package/src/Cli/components/view/usePlanPresentation.ts +82 -0
  2839. package/src/Cli/components/view/usePlanViewport.ts +172 -0
  2840. package/src/Cli/exec.ts +281 -32
  2841. package/src/Cli/main.ts +188 -42
  2842. package/src/Cli/selectCli.ts +30 -15
  2843. package/src/Cloudflare/AI/GatewayProvider.ts +1 -1
  2844. package/src/Cloudflare/AI/LanguageModel.ts +2 -2
  2845. package/src/Cloudflare/AI/ProviderKey.ts +3 -3
  2846. package/src/Cloudflare/AI/SearchToken.ts +3 -6
  2847. package/src/Cloudflare/Access.ts +1 -1
  2848. package/src/Cloudflare/Alerting/Webhook.ts +1 -1
  2849. package/src/Cloudflare/ApiToken/UserApiToken.ts +1 -1
  2850. package/src/Cloudflare/Auth/AuthConfig.ts +117 -0
  2851. package/src/Cloudflare/Auth/AuthProvider.ts +712 -608
  2852. package/src/Cloudflare/Auth/OAuthClient.ts +40 -366
  2853. package/src/Cloudflare/Auth/OAuthScopes.ts +921 -0
  2854. package/src/Cloudflare/Auth/TokenPolicy.ts +79 -0
  2855. package/src/Cloudflare/Bridge.ts +9 -0
  2856. package/src/Cloudflare/CloudflareEnvironment.ts +11 -25
  2857. package/src/Cloudflare/CloudflareEnvironmentService.ts +10 -0
  2858. package/src/Cloudflare/Containers/Container.ts +12 -24
  2859. package/src/Cloudflare/Containers/ContainerApplication.ts +22 -30
  2860. package/src/Cloudflare/Containers/ContainerPlatform.ts +6 -6
  2861. package/src/Cloudflare/Containers/ContainerProvider.ts +183 -86
  2862. package/src/Cloudflare/Containers/ContainerPublication.ts +13 -0
  2863. package/src/Cloudflare/Containers/LocalContainerProvider.ts +3 -2
  2864. package/src/Cloudflare/Credentials.ts +18 -72
  2865. package/src/Cloudflare/D1/Database.ts +3 -3
  2866. package/src/Cloudflare/EdgeSession.ts +2 -3
  2867. package/src/Cloudflare/Fetcher.ts +65 -174
  2868. package/src/Cloudflare/Flagship/Flag.ts +13 -2
  2869. package/src/Cloudflare/HostnameTlsSetting/HostnameTlsSetting.ts +21 -41
  2870. package/src/Cloudflare/Hyperdrive/Connection.ts +19 -12
  2871. package/src/Cloudflare/Iam/ResourceGroup.ts +1 -1
  2872. package/src/Cloudflare/LoadBalancer/LoadBalancer.ts +2 -2
  2873. package/src/Cloudflare/LoadBalancer/Monitor.ts +1 -1
  2874. package/src/Cloudflare/Local.ts +8 -4
  2875. package/src/Cloudflare/LocalRuntime.ts +8 -2
  2876. package/src/Cloudflare/Logs.ts +73 -59
  2877. package/src/Cloudflare/MagicTransit/IpsecTunnel.ts +1 -1
  2878. package/src/Cloudflare/MtlsCertificate/MtlsCertificate.ts +1 -1
  2879. package/src/Cloudflare/Organization/Organization.ts +1 -1
  2880. package/src/Cloudflare/OriginTlsClientAuth/Certificate.ts +2 -2
  2881. package/src/Cloudflare/OriginTlsClientAuth/HostnameAssociation.ts +1 -1
  2882. package/src/Cloudflare/OriginTlsClientAuth/HostnameCertificate.ts +2 -2
  2883. package/src/Cloudflare/OriginTlsClientAuth/Setting.ts +1 -1
  2884. package/src/Cloudflare/Pages/Project.ts +1 -1
  2885. package/src/Cloudflare/Pipelines/LegacyPipeline.ts +2 -2
  2886. package/src/Cloudflare/Pipelines/Sink.ts +3 -3
  2887. package/src/Cloudflare/Providers.ts +13 -51
  2888. package/src/Cloudflare/Queues/Consumer.ts +2 -2
  2889. package/src/Cloudflare/Queues/Queue.ts +2 -2
  2890. package/src/Cloudflare/R2/Bucket.ts +25 -2
  2891. package/src/Cloudflare/R2/BucketBinding.ts +1 -0
  2892. package/src/Cloudflare/R2/BucketSippy.ts +7 -7
  2893. package/src/Cloudflare/R2/BucketTypes.ts +8 -0
  2894. package/src/Cloudflare/R2/WriteBucketBinding.ts +9 -6
  2895. package/src/Cloudflare/R2/index.ts +1 -0
  2896. package/src/Cloudflare/SecretsStore/Secret.ts +3 -3
  2897. package/src/Cloudflare/Snippets/SnippetRules.ts +9 -3
  2898. package/src/Cloudflare/StateStore/Api.ts +2 -2
  2899. package/src/Cloudflare/StateStore/CredentialsFile.ts +11 -6
  2900. package/src/Cloudflare/StateStore/State.ts +262 -210
  2901. package/src/Cloudflare/Vectorize/SearchIndexHttpClient.ts +2 -2
  2902. package/src/Cloudflare/Website/Nextjs.ts +4 -15
  2903. package/src/Cloudflare/Website/Nuxt.ts +1 -1
  2904. package/src/Cloudflare/Website/Octane.ts +1 -1
  2905. package/src/Cloudflare/Website/SvelteKit.ts +1 -1
  2906. package/src/Cloudflare/Website/Vocs.ts +3 -7
  2907. package/src/Cloudflare/Workers/Assets.ts +106 -38
  2908. package/src/Cloudflare/Workers/BrowserHttpClient.ts +10 -3
  2909. package/src/Cloudflare/Workers/CloudflareTracer.ts +113 -0
  2910. package/src/Cloudflare/Workers/Compatibility.ts +37 -7
  2911. package/src/Cloudflare/Workers/DurableObject.ts +90 -12
  2912. package/src/Cloudflare/Workers/DurableObjectBridge.ts +9 -1
  2913. package/src/Cloudflare/Workers/DurableObjectState.ts +46 -9
  2914. package/src/Cloudflare/Workers/DurableObjectStorage.ts +46 -35
  2915. package/src/Cloudflare/Workers/HttpServer.ts +2 -1
  2916. package/src/Cloudflare/Workers/InferEnv.ts +2 -2
  2917. package/src/Cloudflare/Workers/LocalWorkerProvider.ts +204 -79
  2918. package/src/Cloudflare/Workers/Rpc.ts +17 -2
  2919. package/src/Cloudflare/Workers/RpcAsync.ts +1 -1
  2920. package/src/Cloudflare/Workers/RpcWorker.ts +44 -18
  2921. package/src/Cloudflare/Workers/Source.ts +9 -1
  2922. package/src/Cloudflare/Workers/Sources/Prebuilt.ts +3 -2
  2923. package/src/Cloudflare/Workers/Sources/Python.ts +21 -14
  2924. package/src/Cloudflare/Workers/Sources/Rolldown.ts +35 -19
  2925. package/src/Cloudflare/Workers/Sources/Vite.ts +42 -34
  2926. package/src/Cloudflare/Workers/Sources/WorkerModulePlugin.ts +75 -0
  2927. package/src/Cloudflare/Workers/Telemetry.ts +170 -0
  2928. package/src/Cloudflare/Workers/ViteBuildChildRunner.ts +6 -1
  2929. package/src/Cloudflare/Workers/ViteChild.shared.ts +2 -0
  2930. package/src/Cloudflare/Workers/ViteChild.ts +23 -22
  2931. package/src/Cloudflare/Workers/ViteChildRunner.ts +2 -1
  2932. package/src/Cloudflare/Workers/Worker.ts +277 -268
  2933. package/src/Cloudflare/Workers/WorkerAsyncBindings.ts +29 -0
  2934. package/src/Cloudflare/Workers/WorkerBinding.ts +1 -1
  2935. package/src/Cloudflare/Workers/WorkerBridge.ts +6 -6
  2936. package/src/Cloudflare/Workers/WorkerEntrypoint.ts +47 -14
  2937. package/src/Cloudflare/Workers/WorkerLoader.ts +40 -8
  2938. package/src/Cloudflare/Workers/WorkerProvider.ts +641 -59
  2939. package/src/Cloudflare/Workers/WorkerRuntime.ts +195 -0
  2940. package/src/Cloudflare/Workers/WorkerRuntimeContext.ts +10 -6
  2941. package/src/Cloudflare/Workers/cloudflare_workers.ts +5 -1
  2942. package/src/Cloudflare/Workers/index.ts +1 -0
  2943. package/src/Cloudflare/Workers/worker-module.d.ts +9 -0
  2944. package/src/Cloudflare/Workflows/Workflow.ts +105 -43
  2945. package/src/Cloudflare/Workflows/WorkflowBridge.ts +14 -10
  2946. package/src/Cloudflare/Workflows/WorkflowRuntime.ts +56 -0
  2947. package/src/Cloudflare/index.ts +3 -1
  2948. package/src/Command/Command.ts +11 -3
  2949. package/src/Command/Dev.ts +35 -9
  2950. package/src/Command/Local.ts +8 -2
  2951. package/src/Command/Memo.ts +6 -7
  2952. package/src/Docker/BuildHash.ts +75 -8
  2953. package/src/Docker/Container.ts +1 -1
  2954. package/src/Docker/Docker.ts +226 -81
  2955. package/src/Docker/Image.ts +1 -1
  2956. package/src/Docker/Registry.ts +1 -1
  2957. package/src/Docker/RegistryError.ts +52 -0
  2958. package/src/Docker/RemoteImage.ts +1 -1
  2959. package/src/Docker/Service.ts +7 -21
  2960. package/src/Docker/ServiceImage.ts +4 -5
  2961. package/src/Docker/index.ts +5 -0
  2962. package/src/{Sync.ts → Drift.ts} +161 -59
  2963. package/src/Drizzle/Postgres.ts +3 -1
  2964. package/src/Drizzle/Schema.ts +5 -7
  2965. package/src/Fly/AuthProvider.ts +44 -232
  2966. package/src/Fly/BucketBinding.ts +6 -6
  2967. package/src/Fly/CheckpointHttp.ts +5 -2
  2968. package/src/Fly/Credentials.ts +29 -16
  2969. package/src/Fly/DecryptHttp.ts +5 -2
  2970. package/src/Fly/EncryptHttp.ts +5 -2
  2971. package/src/Fly/ExecHttp.ts +5 -2
  2972. package/src/Fly/GetSecretHttp.ts +6 -3
  2973. package/src/Fly/ListSecretsHttp.ts +5 -2
  2974. package/src/Fly/Machine.ts +67 -20
  2975. package/src/Fly/Providers.ts +2 -2
  2976. package/src/Fly/RedisBinding.ts +2 -2
  2977. package/src/Fly/Secret.ts +4 -4
  2978. package/src/Fly/SecretHttp.ts +1 -1
  2979. package/src/Fly/Service.ts +47 -23
  2980. package/src/Fly/SignHttp.ts +5 -2
  2981. package/src/Fly/Sprite.ts +2 -2
  2982. package/src/Fly/VerifyHttp.ts +5 -2
  2983. package/src/Fly/Website/AssetDeployment.ts +12 -9
  2984. package/src/Fly/WriteSecretHttp.ts +5 -2
  2985. package/src/Fly/replicas.ts +94 -10
  2986. package/src/Git/Api/GitHub.ts +106 -0
  2987. package/src/Git/Api/Internal.ts +27 -0
  2988. package/src/Git/Api/Objects.ts +161 -0
  2989. package/src/Git/Api/Protocol.ts +37 -0
  2990. package/src/Git/Api/Pulls.ts +158 -0
  2991. package/src/Git/Api/Refs.ts +96 -0
  2992. package/src/Git/Api/Repos.ts +170 -0
  2993. package/src/Git/Api/Schema.ts +552 -0
  2994. package/src/Git/Api.ts +82 -0
  2995. package/src/Git/BlobStore.ts +265 -0
  2996. package/src/Git/BlobStoreS3.ts +265 -0
  2997. package/src/Git/DESIGN.md +2098 -0
  2998. package/src/Git/Engine.ts +461 -0
  2999. package/src/Git/GitHubCompat.ts +713 -0
  3000. package/src/Git/Hasher/Hasher.ts +360 -0
  3001. package/src/Git/Hasher/Lambda.ts +126 -0
  3002. package/src/Git/Hasher/LambdaEvent.ts +149 -0
  3003. package/src/Git/Hasher/LambdaFunction.ts +46 -0
  3004. package/src/Git/Hasher/Protocol.ts +309 -0
  3005. package/src/Git/Hasher/WorkerLoader.ts +179 -0
  3006. package/src/Git/Hasher/WorkerLoaderModule.ts +72 -0
  3007. package/src/Git/Hasher/index.ts +39 -0
  3008. package/src/Git/Http/ReceivePack.ts +133 -0
  3009. package/src/Git/Http.ts +4 -0
  3010. package/src/Git/Jobs/Bundle.ts +264 -0
  3011. package/src/Git/Jobs/Compact.ts +517 -0
  3012. package/src/Git/Jobs/Fork.ts +376 -0
  3013. package/src/Git/Jobs/Import.ts +435 -0
  3014. package/src/Git/Jobs/Purge.ts +136 -0
  3015. package/src/Git/Operations.ts +1087 -0
  3016. package/src/Git/Protocol/Advertise.ts +159 -0
  3017. package/src/Git/Protocol/Delta.ts +182 -0
  3018. package/src/Git/Protocol/GzipBody.ts +153 -0
  3019. package/src/Git/Protocol/ObjectCodec.ts +941 -0
  3020. package/src/Git/Protocol/PackParser.ts +907 -0
  3021. package/src/Git/Protocol/PackWriter.ts +141 -0
  3022. package/src/Git/Protocol/PartialScan.ts +705 -0
  3023. package/src/Git/Protocol/Pkt.ts +289 -0
  3024. package/src/Git/Protocol/ReceivePack.ts +446 -0
  3025. package/src/Git/Protocol/Sideband.ts +289 -0
  3026. package/src/Git/Protocol/Store.ts +176 -0
  3027. package/src/Git/Protocol/TreeDiff.ts +464 -0
  3028. package/src/Git/Protocol/UploadPack.ts +366 -0
  3029. package/src/Git/Protocol/Zlib.ts +350 -0
  3030. package/src/Git/Push.ts +71 -0
  3031. package/src/Git/PushInput.ts +73 -0
  3032. package/src/Git/PushWire.ts +90 -0
  3033. package/src/Git/RFC-building-blocks.md +548 -0
  3034. package/src/Git/RegistryD1.ts +338 -0
  3035. package/src/Git/RegistryObject.ts +522 -0
  3036. package/src/Git/RepoObject.ts +5876 -0
  3037. package/src/Git/Server.ts +827 -0
  3038. package/src/Git/Store/Closure.ts +539 -0
  3039. package/src/Git/Store/HeadSnapshot.ts +49 -0
  3040. package/src/Git/Store/IncomingBody.ts +67 -0
  3041. package/src/Git/Store/Keys.ts +129 -0
  3042. package/src/Git/Store/ObjectStore.ts +1086 -0
  3043. package/src/Git/Store/PackSource.ts +160 -0
  3044. package/src/Git/Store/Sql.ts +492 -0
  3045. package/src/Git/Store/StreamingSource.ts +335 -0
  3046. package/src/Git/index.ts +75 -0
  3047. package/src/GitHub/AuthProvider.ts +225 -143
  3048. package/src/GitHub/BranchProtection.ts +651 -0
  3049. package/src/GitHub/Collaborator.ts +239 -0
  3050. package/src/GitHub/Credentials.ts +6 -13
  3051. package/src/GitHub/Env.ts +8 -8
  3052. package/src/GitHub/Issue.ts +379 -0
  3053. package/src/GitHub/Label.ts +373 -0
  3054. package/src/GitHub/Milestone.ts +424 -0
  3055. package/src/GitHub/Providers.ts +37 -5
  3056. package/src/GitHub/PullRequest.ts +570 -0
  3057. package/src/GitHub/Release.ts +520 -0
  3058. package/src/GitHub/Ruleset.ts +568 -0
  3059. package/src/GitHub/TeamAccess.ts +251 -0
  3060. package/src/GitHub/WikiPage.ts +581 -0
  3061. package/src/GitHub/index.ts +10 -0
  3062. package/src/Hetzner/AuthProvider.ts +50 -238
  3063. package/src/Hetzner/Credentials.ts +4 -12
  3064. package/src/Hetzner/Providers.ts +2 -2
  3065. package/src/Hetzner/Server.ts +34 -6
  3066. package/src/Http/Platform.ts +47 -0
  3067. package/src/Http/index.ts +5 -0
  3068. package/src/Http.ts +9 -5
  3069. package/src/Interaction.ts +354 -0
  3070. package/src/Kubernetes/ClusterAdapter.ts +4 -5
  3071. package/src/Kubernetes/Deployment.ts +7 -21
  3072. package/src/Kubernetes/Job.ts +7 -21
  3073. package/src/Kubernetes/internal/helm.ts +1 -1
  3074. package/src/Kubernetes/internal/kubeconfig.ts +1 -1
  3075. package/src/Kubernetes/internal/workload.ts +4 -4
  3076. package/src/Local/DevLog.ts +135 -0
  3077. package/src/Local/LocalProvider.ts +7 -6
  3078. package/src/Local/ProviderLayer.ts +31 -15
  3079. package/src/Local/RpcProvider.ts +3 -3
  3080. package/src/Local/RpcProviderProxy.ts +28 -21
  3081. package/src/Local/RpcServer.ts +101 -53
  3082. package/src/Local/RpcServerEnvironment.ts +4 -3
  3083. package/src/Local/RpcSpawner.ts +161 -78
  3084. package/src/Local/Sidecar.ts +32 -0
  3085. package/src/Neon/AuthProvider.ts +31 -203
  3086. package/src/Neon/Credentials.ts +4 -12
  3087. package/src/Neon/Providers.ts +2 -2
  3088. package/src/Nuke.ts +467 -0
  3089. package/src/Output.ts +1 -1
  3090. package/src/Phase.ts +3 -3
  3091. package/src/Plan.ts +931 -712
  3092. package/src/Planetscale/AuthProvider.ts +397 -324
  3093. package/src/Planetscale/Credentials.ts +21 -19
  3094. package/src/Planetscale/OAuthClient.ts +34 -328
  3095. package/src/Planetscale/Providers.ts +2 -2
  3096. package/src/Planetscale/Util.ts +1 -1
  3097. package/src/Prisma/App.ts +126 -80
  3098. package/src/Prisma/AuthProvider.ts +62 -240
  3099. package/src/Prisma/Branch.ts +133 -66
  3100. package/src/Prisma/Bucket.ts +64 -25
  3101. package/src/Prisma/BucketAccessKey.ts +68 -32
  3102. package/src/Prisma/Client.ts +8 -11
  3103. package/src/Prisma/Compute.ts +362 -200
  3104. package/src/Prisma/ComputeArchive.ts +29 -3
  3105. package/src/Prisma/ComputeBuild.ts +256 -3
  3106. package/src/Prisma/ComputeLifecycle.ts +179 -160
  3107. package/src/Prisma/Connection.ts +112 -55
  3108. package/src/Prisma/Credentials.ts +73 -0
  3109. package/src/Prisma/Database.ts +191 -155
  3110. package/src/Prisma/Deployment.ts +70 -50
  3111. package/src/Prisma/EnvironmentVariable.ts +112 -69
  3112. package/src/Prisma/Internal/AppPromotion.ts +39 -27
  3113. package/src/Prisma/Internal/DatabaseSecrets.ts +23 -19
  3114. package/src/Prisma/Internal/DeploymentActions.ts +24 -40
  3115. package/src/Prisma/Internal/DeploymentIdentity.ts +29 -3
  3116. package/src/Prisma/Internal/DeploymentObserve.ts +4 -5
  3117. package/src/Prisma/Internal/LogsClient.ts +165 -0
  3118. package/src/Prisma/Internal/Observed.ts +192 -0
  3119. package/src/Prisma/Internal/Pagination.ts +16 -0
  3120. package/src/Prisma/Operations.ts +3 -2
  3121. package/src/Prisma/PrismaEnvironment.ts +8 -16
  3122. package/src/Prisma/PrismaLogs.ts +38 -16
  3123. package/src/Prisma/Project.ts +163 -129
  3124. package/src/Prisma/Providers.ts +44 -9
  3125. package/src/Prisma/SourceRepository.ts +223 -87
  3126. package/src/Provider.ts +31 -28
  3127. package/src/Railway/AuditLog.ts +41 -17
  3128. package/src/Railway/AuthProvider.ts +292 -236
  3129. package/src/Railway/Bucket.ts +96 -65
  3130. package/src/Railway/BucketBinding.ts +7 -7
  3131. package/src/Railway/Catalog.ts +8 -1
  3132. package/src/Railway/CloudAgent.ts +73 -56
  3133. package/src/Railway/Credentials.ts +5 -14
  3134. package/src/Railway/CustomDomain.ts +112 -67
  3135. package/src/Railway/Environment.ts +18 -7
  3136. package/src/Railway/Function.ts +169 -136
  3137. package/src/Railway/GraphQL.ts +215 -0
  3138. package/src/Railway/Group.ts +172 -72
  3139. package/src/Railway/LoginSession.ts +12 -17
  3140. package/src/Railway/Mongo.ts +236 -194
  3141. package/src/Railway/MountVolume.ts +5 -4
  3142. package/src/Railway/MySQL.ts +236 -194
  3143. package/src/Railway/Postgres.ts +243 -197
  3144. package/src/Railway/PrivateNetwork.ts +444 -310
  3145. package/src/Railway/Project.ts +86 -64
  3146. package/src/Railway/ProjectEnvironment.ts +87 -58
  3147. package/src/Railway/Providers.ts +8 -4
  3148. package/src/Railway/Redis.ts +118 -93
  3149. package/src/Railway/RedisBinding.ts +2 -2
  3150. package/src/Railway/Sandbox.ts +282 -133
  3151. package/src/Railway/SandboxCheckpoint.ts +290 -0
  3152. package/src/Railway/Service.ts +76 -2
  3153. package/src/Railway/ServiceDomain.ts +279 -63
  3154. package/src/Railway/ServiceProvider.ts +500 -238
  3155. package/src/Railway/TcpProxy.ts +50 -37
  3156. package/src/Railway/Template.ts +190 -136
  3157. package/src/Railway/Usage.ts +93 -47
  3158. package/src/Railway/Variable.ts +35 -35
  3159. package/src/Railway/Volume.ts +150 -90
  3160. package/src/Railway/VolumeBackup.ts +144 -101
  3161. package/src/Railway/Website/Cdn.ts +136 -55
  3162. package/src/Railway/hosted.ts +10 -3
  3163. package/src/Railway/index.ts +1 -0
  3164. package/src/Railway/local-context.ts +333 -0
  3165. package/src/Railway/transient.ts +26 -52
  3166. package/src/Report.ts +365 -0
  3167. package/src/Rpc.ts +53 -1
  3168. package/src/Runtime/Bootstrap/Process.ts +2 -2
  3169. package/src/Runtime.ts +1 -1
  3170. package/src/RuntimeContext.ts +1 -1
  3171. package/src/SQL/Postgres.ts +5 -1
  3172. package/src/SQL/PostgresTls.ts +70 -0
  3173. package/src/Server/Process.ts +1 -1
  3174. package/src/Server/index.ts +0 -2
  3175. package/src/Stack.ts +14 -9
  3176. package/src/StackContext.ts +6 -0
  3177. package/src/State/Export.ts +28 -47
  3178. package/src/State/HttpStateStore.ts +31 -37
  3179. package/src/State/LocalState.ts +6 -16
  3180. package/src/State/PostgresState.ts +6 -5
  3181. package/src/State/State.ts +5 -0
  3182. package/src/State/Tree.ts +277 -0
  3183. package/src/State/index.ts +1 -0
  3184. package/src/Stripe/Account.ts +795 -0
  3185. package/src/Stripe/AccountExternalAccount.ts +568 -0
  3186. package/src/Stripe/AccountPerson.ts +562 -0
  3187. package/src/Stripe/Alert.ts +437 -0
  3188. package/src/Stripe/ApplePayDomain.ts +254 -0
  3189. package/src/Stripe/AppsSecret.ts +385 -0
  3190. package/src/Stripe/AuthProvider.ts +74 -0
  3191. package/src/Stripe/BillingMeter.ts +449 -0
  3192. package/src/Stripe/BillingPortalConfiguration.ts +920 -0
  3193. package/src/Stripe/ConsumeEvents.ts +278 -0
  3194. package/src/Stripe/Coupon.ts +535 -0
  3195. package/src/Stripe/CreateAccount.ts +39 -0
  3196. package/src/Stripe/CreateAccountHttp.ts +20 -0
  3197. package/src/Stripe/CreateAccountLink.ts +43 -0
  3198. package/src/Stripe/CreateAccountLinkHttp.ts +20 -0
  3199. package/src/Stripe/CreateAppsSecret.ts +39 -0
  3200. package/src/Stripe/CreateAppsSecretHttp.ts +20 -0
  3201. package/src/Stripe/CreateBillingPortalSession.ts +52 -0
  3202. package/src/Stripe/CreateBillingPortalSessionHttp.ts +20 -0
  3203. package/src/Stripe/CreateCheckoutSession.ts +53 -0
  3204. package/src/Stripe/CreateCheckoutSessionHttp.ts +20 -0
  3205. package/src/Stripe/CreateCreditGrant.ts +45 -0
  3206. package/src/Stripe/CreateCreditGrantHttp.ts +20 -0
  3207. package/src/Stripe/CreateCustomer.ts +38 -0
  3208. package/src/Stripe/CreateCustomerHttp.ts +20 -0
  3209. package/src/Stripe/CreateFileLink.ts +37 -0
  3210. package/src/Stripe/CreateFileLinkHttp.ts +20 -0
  3211. package/src/Stripe/CreateIssuingCard.ts +43 -0
  3212. package/src/Stripe/CreateIssuingCardHttp.ts +20 -0
  3213. package/src/Stripe/CreateIssuingCardholder.ts +50 -0
  3214. package/src/Stripe/CreateIssuingCardholderHttp.ts +20 -0
  3215. package/src/Stripe/CreateTerminalReader.ts +43 -0
  3216. package/src/Stripe/CreateTerminalReaderHttp.ts +20 -0
  3217. package/src/Stripe/Credentials.ts +54 -0
  3218. package/src/Stripe/CreditGrant.ts +627 -0
  3219. package/src/Stripe/Customer.ts +315 -0
  3220. package/src/Stripe/CustomerTaxId.ts +351 -0
  3221. package/src/Stripe/EntitlementsFeature.ts +384 -0
  3222. package/src/Stripe/Events.ts +94 -0
  3223. package/src/Stripe/FileLink.ts +335 -0
  3224. package/src/Stripe/IssuingCard.ts +712 -0
  3225. package/src/Stripe/IssuingCardholder.ts +907 -0
  3226. package/src/Stripe/IssuingPersonalizationDesign.ts +582 -0
  3227. package/src/Stripe/Metadata.ts +93 -0
  3228. package/src/Stripe/PaymentLink.ts +779 -0
  3229. package/src/Stripe/PaymentMethodConfiguration.ts +619 -0
  3230. package/src/Stripe/PaymentMethodDomain.ts +342 -0
  3231. package/src/Stripe/Plan.ts +482 -0
  3232. package/src/Stripe/Price.ts +523 -0
  3233. package/src/Stripe/Product.ts +339 -0
  3234. package/src/Stripe/ProductFeature.ts +300 -0
  3235. package/src/Stripe/PromotionCode.ts +612 -0
  3236. package/src/Stripe/Providers.ts +306 -0
  3237. package/src/Stripe/RadarValueList.ts +397 -0
  3238. package/src/Stripe/RadarValueListItem.ts +308 -0
  3239. package/src/Stripe/RestrictedApiKey.ts +210 -0
  3240. package/src/Stripe/RetrieveAccount.ts +42 -0
  3241. package/src/Stripe/RetrieveAccountExternalAccount.ts +47 -0
  3242. package/src/Stripe/RetrieveAccountExternalAccountHttp.ts +52 -0
  3243. package/src/Stripe/RetrieveAccountHttp.ts +21 -0
  3244. package/src/Stripe/RetrieveAccountPerson.ts +42 -0
  3245. package/src/Stripe/RetrieveAccountPersonHttp.ts +52 -0
  3246. package/src/Stripe/RetrieveAlert.ts +42 -0
  3247. package/src/Stripe/RetrieveAlertHttp.ts +20 -0
  3248. package/src/Stripe/RetrieveApplePayDomain.ts +46 -0
  3249. package/src/Stripe/RetrieveApplePayDomainHttp.ts +21 -0
  3250. package/src/Stripe/RetrieveAppsSecret.ts +47 -0
  3251. package/src/Stripe/RetrieveAppsSecretHttp.ts +58 -0
  3252. package/src/Stripe/RetrieveBillingMeter.ts +42 -0
  3253. package/src/Stripe/RetrieveBillingMeterHttp.ts +20 -0
  3254. package/src/Stripe/RetrieveBillingPortalConfiguration.ts +47 -0
  3255. package/src/Stripe/RetrieveBillingPortalConfigurationHttp.ts +20 -0
  3256. package/src/Stripe/RetrieveCoupon.ts +42 -0
  3257. package/src/Stripe/RetrieveCouponHttp.ts +21 -0
  3258. package/src/Stripe/RetrieveCreditGrant.ts +46 -0
  3259. package/src/Stripe/RetrieveCreditGrantHttp.ts +21 -0
  3260. package/src/Stripe/RetrieveCustomer.ts +42 -0
  3261. package/src/Stripe/RetrieveCustomerHttp.ts +21 -0
  3262. package/src/Stripe/RetrieveCustomerTaxId.ts +42 -0
  3263. package/src/Stripe/RetrieveCustomerTaxIdHttp.ts +52 -0
  3264. package/src/Stripe/RetrieveEntitlementsFeature.ts +47 -0
  3265. package/src/Stripe/RetrieveEntitlementsFeatureHttp.ts +20 -0
  3266. package/src/Stripe/RetrieveFileLink.ts +42 -0
  3267. package/src/Stripe/RetrieveFileLinkHttp.ts +21 -0
  3268. package/src/Stripe/RetrieveIssuingCard.ts +42 -0
  3269. package/src/Stripe/RetrieveIssuingCardHttp.ts +21 -0
  3270. package/src/Stripe/RetrieveIssuingCardholder.ts +47 -0
  3271. package/src/Stripe/RetrieveIssuingCardholderHttp.ts +21 -0
  3272. package/src/Stripe/RetrieveIssuingPersonalizationDesign.ts +47 -0
  3273. package/src/Stripe/RetrieveIssuingPersonalizationDesignHttp.ts +21 -0
  3274. package/src/Stripe/RetrievePaymentLink.ts +42 -0
  3275. package/src/Stripe/RetrievePaymentLinkHttp.ts +21 -0
  3276. package/src/Stripe/RetrievePaymentMethodConfiguration.ts +47 -0
  3277. package/src/Stripe/RetrievePaymentMethodConfigurationHttp.ts +20 -0
  3278. package/src/Stripe/RetrievePaymentMethodDomain.ts +47 -0
  3279. package/src/Stripe/RetrievePaymentMethodDomainHttp.ts +20 -0
  3280. package/src/Stripe/RetrievePlan.ts +39 -0
  3281. package/src/Stripe/RetrievePlanHttp.ts +21 -0
  3282. package/src/Stripe/RetrievePrice.ts +39 -0
  3283. package/src/Stripe/RetrievePriceHttp.ts +21 -0
  3284. package/src/Stripe/RetrieveProduct.ts +46 -0
  3285. package/src/Stripe/RetrieveProductFeature.ts +46 -0
  3286. package/src/Stripe/RetrieveProductFeatureHttp.ts +52 -0
  3287. package/src/Stripe/RetrieveProductHttp.ts +58 -0
  3288. package/src/Stripe/RetrievePromotionCode.ts +46 -0
  3289. package/src/Stripe/RetrievePromotionCodeHttp.ts +21 -0
  3290. package/src/Stripe/RetrieveRadarValueList.ts +46 -0
  3291. package/src/Stripe/RetrieveRadarValueListHttp.ts +20 -0
  3292. package/src/Stripe/RetrieveRadarValueListItem.ts +47 -0
  3293. package/src/Stripe/RetrieveRadarValueListItemHttp.ts +20 -0
  3294. package/src/Stripe/RetrieveShippingRate.ts +42 -0
  3295. package/src/Stripe/RetrieveShippingRateHttp.ts +21 -0
  3296. package/src/Stripe/RetrieveTaxRate.ts +42 -0
  3297. package/src/Stripe/RetrieveTaxRateHttp.ts +21 -0
  3298. package/src/Stripe/RetrieveTaxRegistration.ts +46 -0
  3299. package/src/Stripe/RetrieveTaxRegistrationHttp.ts +21 -0
  3300. package/src/Stripe/RetrieveTaxSettings.ts +41 -0
  3301. package/src/Stripe/RetrieveTaxSettingsHttp.ts +46 -0
  3302. package/src/Stripe/RetrieveTerminalConfiguration.ts +47 -0
  3303. package/src/Stripe/RetrieveTerminalConfigurationHttp.ts +21 -0
  3304. package/src/Stripe/RetrieveTerminalLocation.ts +45 -0
  3305. package/src/Stripe/RetrieveTerminalLocationHttp.ts +21 -0
  3306. package/src/Stripe/RetrieveTerminalReader.ts +46 -0
  3307. package/src/Stripe/RetrieveTerminalReaderHttp.ts +21 -0
  3308. package/src/Stripe/RetrieveWebhookEndpoint.ts +46 -0
  3309. package/src/Stripe/RetrieveWebhookEndpointHttp.ts +21 -0
  3310. package/src/Stripe/ShippingRate.ts +614 -0
  3311. package/src/Stripe/StripeHttp.ts +241 -0
  3312. package/src/Stripe/TaxRate.ts +468 -0
  3313. package/src/Stripe/TaxRegistration.ts +722 -0
  3314. package/src/Stripe/TaxSettings.ts +395 -0
  3315. package/src/Stripe/TerminalConfiguration.ts +977 -0
  3316. package/src/Stripe/TerminalLocation.ts +627 -0
  3317. package/src/Stripe/TerminalReader.ts +377 -0
  3318. package/src/Stripe/UpdateAccount.ts +42 -0
  3319. package/src/Stripe/UpdateAccountHttp.ts +21 -0
  3320. package/src/Stripe/UpdateCreditGrant.ts +47 -0
  3321. package/src/Stripe/UpdateCreditGrantHttp.ts +21 -0
  3322. package/src/Stripe/UpdateCustomer.ts +42 -0
  3323. package/src/Stripe/UpdateCustomerHttp.ts +21 -0
  3324. package/src/Stripe/UpdateFileLink.ts +43 -0
  3325. package/src/Stripe/UpdateFileLinkHttp.ts +21 -0
  3326. package/src/Stripe/UpdateIssuingCard.ts +46 -0
  3327. package/src/Stripe/UpdateIssuingCardHttp.ts +21 -0
  3328. package/src/Stripe/UpdateIssuingCardholder.ts +46 -0
  3329. package/src/Stripe/UpdateIssuingCardholderHttp.ts +21 -0
  3330. package/src/Stripe/UpdateTaxSettings.ts +48 -0
  3331. package/src/Stripe/UpdateTaxSettingsHttp.ts +46 -0
  3332. package/src/Stripe/UpdateTerminalReader.ts +46 -0
  3333. package/src/Stripe/UpdateTerminalReaderHttp.ts +21 -0
  3334. package/src/Stripe/WebhookEndpoint.ts +411 -0
  3335. package/src/Stripe/index.ts +150 -0
  3336. package/src/Stripe/missing.ts +16 -0
  3337. package/src/Telemetry/Layer.ts +16 -5
  3338. package/src/Telemetry.ts +21 -440
  3339. package/src/TelemetryRuntime.ts +446 -0
  3340. package/src/Test/Alchemy.ts +2 -0
  3341. package/src/Test/Bun.ts +2 -0
  3342. package/src/Test/Core.ts +42 -13
  3343. package/src/Test/Vitest.ts +2 -0
  3344. package/src/Test/index.ts +6 -1
  3345. package/src/UserFacingError.ts +35 -0
  3346. package/src/Util/AtomicFile.ts +36 -0
  3347. package/src/Util/ConsoleSink.ts +23 -0
  3348. package/src/Util/LineBuffer.ts +20 -0
  3349. package/src/Util/Memoize.ts +48 -0
  3350. package/src/Util/Node.ts +44 -14
  3351. package/src/Util/PlatformServices.ts +11 -1
  3352. package/src/Util/ResourceOutput.ts +77 -0
  3353. package/src/Util/Terminal.ts +81 -0
  3354. package/src/Util/Theme.ts +150 -0
  3355. package/src/Util/gitignore-rules-to-globs.ts +3 -3
  3356. package/src/Util/interactive.ts +103 -16
  3357. package/src/Util/proxy-chain.ts +19 -0
  3358. package/src/Util/scc.ts +43 -23
  3359. package/src/Util/tarGzip.ts +33 -5
  3360. package/src/Util/zip.ts +16 -45
  3361. package/src/Utils/ip-address.ts +90 -0
  3362. package/src/Website/Server.ts +19 -4
  3363. package/src/Website/ServerLocal.ts +6 -2
  3364. package/src/index.ts +3 -2
  3365. package/lib/AWS/Website/ServerLocal.d.ts +0 -2
  3366. package/lib/AWS/Website/ServerLocal.d.ts.map +0 -1
  3367. package/lib/AWS/Website/ServerLocal.js +0 -4
  3368. package/lib/AWS/Website/ServerLocal.js.map +0 -1
  3369. package/lib/Cli/Cli.d.ts +0 -21
  3370. package/lib/Cli/Cli.d.ts.map +0 -1
  3371. package/lib/Cli/Cli.js +0 -5
  3372. package/lib/Cli/Cli.js.map +0 -1
  3373. package/lib/Cli/Event.d.ts +0 -29
  3374. package/lib/Cli/Event.d.ts.map +0 -1
  3375. package/lib/Cli/Event.js +0 -1
  3376. package/lib/Cli/Event.js.map +0 -1
  3377. package/lib/Cli/commands/_shared.d.ts +0 -138
  3378. package/lib/Cli/commands/_shared.d.ts.map +0 -1
  3379. package/lib/Cli/commands/_shared.js +0 -298
  3380. package/lib/Cli/commands/_shared.js.map +0 -1
  3381. package/lib/Cli/commands/login.d.ts +0 -14
  3382. package/lib/Cli/commands/login.d.ts.map +0 -1
  3383. package/lib/Cli/commands/login.js +0 -115
  3384. package/lib/Cli/commands/login.js.map +0 -1
  3385. package/lib/Cli/commands/profile.d.ts +0 -25
  3386. package/lib/Cli/commands/profile.d.ts.map +0 -1
  3387. package/lib/Cli/commands/profile.js +0 -83
  3388. package/lib/Cli/commands/profile.js.map +0 -1
  3389. package/lib/Cli/commands/sync.d.ts +0 -22
  3390. package/lib/Cli/commands/sync.d.ts.map +0 -1
  3391. package/lib/Cli/commands/sync.js +0 -64
  3392. package/lib/Cli/commands/sync.js.map +0 -1
  3393. package/lib/Cli/commands/tail.d.ts +0 -9
  3394. package/lib/Cli/commands/tail.d.ts.map +0 -1
  3395. package/lib/Cli/commands/tail.js +0 -97
  3396. package/lib/Cli/commands/tail.js.map +0 -1
  3397. package/lib/Cli/tui/InkCLI.d.ts +0 -4
  3398. package/lib/Cli/tui/InkCLI.d.ts.map +0 -1
  3399. package/lib/Cli/tui/InkCLI.js +0 -53
  3400. package/lib/Cli/tui/InkCLI.js.map +0 -1
  3401. package/lib/Cli/tui/components/ApprovePlan.d.ts +0 -9
  3402. package/lib/Cli/tui/components/ApprovePlan.d.ts.map +0 -1
  3403. package/lib/Cli/tui/components/ApprovePlan.js +0 -21
  3404. package/lib/Cli/tui/components/ApprovePlan.js.map +0 -1
  3405. package/lib/Cli/tui/components/Nuke.d.ts +0 -36
  3406. package/lib/Cli/tui/components/Nuke.d.ts.map +0 -1
  3407. package/lib/Cli/tui/components/Nuke.js +0 -132
  3408. package/lib/Cli/tui/components/Nuke.js.map +0 -1
  3409. package/lib/Cli/tui/components/Plan.d.ts +0 -8
  3410. package/lib/Cli/tui/components/Plan.d.ts.map +0 -1
  3411. package/lib/Cli/tui/components/Plan.js +0 -87
  3412. package/lib/Cli/tui/components/Plan.js.map +0 -1
  3413. package/lib/Cli/tui/components/PlanProgress.d.ts +0 -55
  3414. package/lib/Cli/tui/components/PlanProgress.d.ts.map +0 -1
  3415. package/lib/Cli/tui/components/PlanProgress.js +0 -292
  3416. package/lib/Cli/tui/components/PlanProgress.js.map +0 -1
  3417. package/lib/Railway/RetryPolicy.d.ts +0 -22
  3418. package/lib/Railway/RetryPolicy.d.ts.map +0 -1
  3419. package/lib/Railway/RetryPolicy.js +0 -43
  3420. package/lib/Railway/RetryPolicy.js.map +0 -1
  3421. package/lib/Sync.d.ts +0 -109
  3422. package/lib/Sync.d.ts.map +0 -1
  3423. package/lib/Sync.js.map +0 -1
  3424. package/lib/Util/Clank.d.ts +0 -45
  3425. package/lib/Util/Clank.d.ts.map +0 -1
  3426. package/lib/Util/Clank.js +0 -79
  3427. package/lib/Util/Clank.js.map +0 -1
  3428. package/src/AWS/Website/ServerLocal.ts +0 -4
  3429. package/src/Cli/Cli.ts +0 -23
  3430. package/src/Cli/Event.ts +0 -51
  3431. package/src/Cli/commands/_shared.ts +0 -498
  3432. package/src/Cli/commands/login.ts +0 -169
  3433. package/src/Cli/commands/profile.ts +0 -132
  3434. package/src/Cli/commands/sync.ts +0 -123
  3435. package/src/Cli/commands/tail.ts +0 -155
  3436. package/src/Cli/tui/InkCLI.tsx +0 -69
  3437. package/src/Cli/tui/components/ApprovePlan.tsx +0 -44
  3438. package/src/Cli/tui/components/Nuke.tsx +0 -273
  3439. package/src/Cli/tui/components/Plan.tsx +0 -211
  3440. package/src/Cli/tui/components/PlanProgress.tsx +0 -455
  3441. package/src/Railway/RetryPolicy.ts +0 -53
  3442. package/src/Util/Clank.ts +0 -103
@@ -0,0 +1,2098 @@
1
+ # git-service — Final Design Document
2
+
3
+ **A Git hosting service on Cloudflare Workers + Durable Objects + R2, built as `packages/git` with Alchemy Effect-native Workers.**
4
+
5
+ Stance: **protocol-first minimalist core (Proposal A's skeleton) with Proposal B's product ergonomics and scale seams grafted on.** v1 is the smallest system that real `git` clients (git ≥ 1.6.6 through current) can clone, fetch, and push against, with transactional refs and a typed REST management plane. Every cut has a named upgrade seam. The architecture is the ripgit/chr33s-validated shape (Worker router → one DO per repo → SQLite refs/objects + R2 overflow), re-expressed in Effect with real transactions (`transactionSync`), typed errors, streaming responses, and auth from day one.
6
+
7
+ ---
8
+
9
+ ## 0. Resolved contradictions (A vs B)
10
+
11
+ Every place the two proposals disagreed, with the decision and the one-line reason:
12
+
13
+ | Topic | A said | B said | **Decision** | Why (one line) |
14
+ |---|---|---|---|---|
15
+ | Object bytes at rest | zlib rows in DO SQLite, >1 MiB → R2 | Pack-first: pushed packs verbatim to R2, DO holds index only | **A** (rows + R2 overflow; packs are v1.1) | Pack emission from pre-deflated rows is pure concatenation (zero CPU), ripgit-proven in 128 MB; B's two-pass R2-fixup ingest is the single riskiest subsystem and buys nothing until repos outgrow the 50 MiB push cap — the `location`/`pack_id` columns keep B's endgame reachable without a migration. |
16
+ | Where the protocol runs | Inside the Repo DO | Worker data plane, DO control plane | **A** (in the DO) | The bytes live in the DO's SQLite so they must transit it anyway; duration billing is ~$0.0001 per clone-minute (0.125 GB × 60 s × $12.50/M GB-s), and B's Worker-side streaming becomes the natural v1.1 fast path only once compacted packs live in R2. |
17
+ | Fetch protocol | v0 only | v2 primary + v0 fallback | **A** (v0 only) | Every client ≥1.6.6 falls back to v0 silently; v2 is a pure-additive choreography file over the same closure/pack code, so shipping it in v1 doubles conformance surface for zero client reach. |
18
+ | Push ingestion | Buffer ≤ 50 MiB, `RandomAccess` seam | Stream to R2 multipart + 2-pass fixups | **A** (buffer + cap) | Bounded, simple, ripgit-proven; the parser is written against a `RandomAccess` source so the R2-tee upgrade is one implementation swap, not a protocol change. |
19
+ | Served deltas / thin packs | Never (fat packs) | Thin REF_DELTA against have-closure | **A** (never) | Thin-pack/ofs-delta serving are protocol MAYs; fat fetches are a bandwidth tax, not a correctness issue, and delta emission is the classic source of corruption bugs. |
20
+ | Name authority | Singleton Registry DO | Per-namespace NamespaceDO | **A** (singleton) with B's shard seam | Control-plane traffic is tiny in v1 and a singleton gives global listing for free; `getByName("registry:" + owner)` sharding changes no RPC interface. |
21
+ | Concurrent pushes | Unaddressed (staging ids make it safe-ish) | SQL receive lease + 503 | **Graft B, simplified**: in-memory `Effect.Semaphore` in the DO | Two 50 MiB buffers ≈ the whole isolate heap; one DO instance means an in-memory gate suffices (eviction kills the connection anyway) — no lease table needed. Waiters block ≤ 30 s, then `503 Retry-After: 10`. |
22
+ | Connectivity check on push | new-oids exist only | Full referenced-object membership | **Graft B** (full check) | With everything in SQLite the membership check is cheap batched SQL, and it's the difference between "corrupt client" and "corrupt repo". |
23
+ | Commit graph shape | `commits` + `commit_parents` tables | Single row, concatenated parents, `gen`, `commit_time` | **A's normalized tables + B's `gen`/`commit_time` columns** | Normalized parents make the BFS a JOIN; generation numbers bound negotiation walks and cost nothing at ingest. |
24
+ | Oid encoding | TEXT 40-hex | BLOB 20-byte | **A** (TEXT hex) | zdata BLOBs dominate storage, so index bytes aren't the bottleneck; hex rows are debuggable and match the wire. |
25
+ | Fork | Vague (test-plan only) | Catalog-row sharing of parent's immutable R2 keys | **Graft B's sharing, adapted**: row snapshot copy + shared R2 keys via `objects.r2_key` | SQLite rows must be copied (no cross-DO sharing), but R2 objects are immutable and shared by full key; parent's R2 prefix is retained while `fork_count > 0`. |
26
+ | Import / fork / delete execution | Unspecified | Cloudflare Queue consumer jobs | **DO alarm jobs, no Queue** | Alarms have the same 15-min budget as queue consumers, reuse the DO-resident ingest code directly, and add zero infrastructure. |
27
+ | Async-op status surface | — | `jobs` table + jobs endpoints | **Neither**: `Repo.status` field + `RepoNotReady` error | Polling `GET /repos/:o/:r` for `status: importing\|forking\|deleting → ready\|404` needs no jobs API and no cross-DO status plumbing. |
28
+ | REST ref writes | Deferred to v2 | PUT/DELETE with CAS in v1 | **Graft B** (in v1) | They reuse the exact `transactionSync` CAS path receive-pack already needs — ~50 lines for a genuinely useful surface (CI tagging, release automation). |
29
+ | Repo create response | `Repo` | `RepoCreated` with bootstrap write token + remote URL | **Graft B** | Kills the create-then-mint round trip; the token machinery exists anyway. |
30
+ | `readOnly` repos | — | Repo flag, `ReadOnlyRepo` 403 | **Graft B** | One config row + one check in receive-pack and ref-write; Artifacts parity. |
31
+ | Token scopes | read/write/admin, names, optional TTL | read/write, mandatory TTL | **A** (three scopes, names, optional TTL) | Per-repo `admin` scope enables delegated token management without handing out the deployer key; mandatory TTL is policy, not mechanism — leave it to the caller. |
32
+ | Blob REST reads | base64 JSON ≤ 1 MiB + raw streaming route | Octet-stream HttpApi endpoint + `file` path endpoint | **A's split + B's `file` route** (as a raw route) | Raw routes keep binary streaming out of schema land (repo convention); the path-walk `file` read is cheap over existing tree primitives and highly useful. |
33
+ | Error tag namespacing | Plain tags (`RepoNotFound`) | Prefixed (`git-service/RepoNotFound`) | **A** (plain) | Shorter wire payloads, matches `HttpApiError` conventions; the API name already scopes the client. |
34
+ | Repo delete semantics | Sync NoContent | Async job id | **NoContent immediately, async purge via alarm** (`status: "deleting"` until gone) | R2 prefix deletion is a list+delete loop that can't run inline; the status field already carries the async story. |
35
+
36
+ ---
37
+
38
+ ## 1. Decisions up front (the opinionated core)
39
+
40
+ | Decision | Choice | Why |
41
+ |---|---|---|
42
+ | Protocol version | **v0 only** (upload-pack and receive-pack) | git ≥ 2.26 sends `Git-Protocol: version=2` but falls back cleanly when the server answers v0. ripgit ships v0-only and hosts 40k-commit repos. v2 is a pure-additive upgrade (§10). |
43
+ | Negotiation | multi_ack_detailed + no-done, "lazy-ready" | Converges in ≤ 2 POSTs, stateless, answered per-POST from SQLite. |
44
+ | Served packs | **No deltas, no thin packs.** Every entry = varint header + stored zlib bytes, concatenated | Legal (thin-pack/ofs-delta are MAYs); zero-CPU pack emission because objects are stored as `zlib(content)` — pack generation is literally concatenation + SHA-1. |
45
+ | Push ingestion | Full thin-pack + ofs/ref-delta support, **pack body buffered, hard cap 50 MiB**, one push at a time per repo | Thin packs on push are non-optional (git always sends them over HTTP). Buffering with a cap is the ripgit-proven memory budget; the streaming-to-R2 upgrade is a contained change (§3.6). |
46
+ | Where the protocol runs | **Inside the Repo DO** (Worker authenticates + proxies) | The DO owns refs and all loose object bytes; single-threading + input/output gates make ref CAS trivially serializable. Duration billing is a non-issue (§0). |
47
+ | Object storage | zlib-compressed rows in DO SQLite; objects > 1 MiB compressed → R2; pack compaction to R2 is **v1.1**, schema-ready | Simplest storage that is actually transactional. The 2 MB SQLite row cap forces the R2 split; the `location` column makes compaction additive. |
48
+ | Refs | DO SQLite, CAS inside `transactionSync` | The single strongest reason this architecture works. R2 is disqualified (1 write/s/key, last-writer-wins). |
49
+ | Hashing | SHA-1 only (`object-format=sha1`) | sha256 repos are rare; oid schemas are branded so widening later is mechanical. |
50
+ | Repos | All private in v1. Anonymous = 401. `readOnly` flag rejects writes with a typed 403 | Cuts the visibility model; auth is one code path. |
51
+ | Shallow | `shallow` + `deepen <n>` (depth only) in v1 | Without it `actions/checkout` (depth=1 default) fails hard. Bounded BFS + boundary lines — cheap. `deepen-since`/`deepen-not` cut. |
52
+ | Fork / import / delete | Async DO-alarm jobs; status via `Repo.status`; forks share parent R2 keys | Reuses DO-resident ingest and purge code; zero new infrastructure; R2 immutability makes sharing safe. |
53
+ | Free Workers plan | Unsupported | 10 ms CPU cannot inflate a pack. `GitWorker` sets `limits.cpu_ms = 300_000`. |
54
+
55
+ ---
56
+
57
+ ## 2. Architecture
58
+
59
+ ### 2.1 Components
60
+
61
+ ```
62
+ ┌────────────────────────────────────────────────┐
63
+ git CLI / REST │ GitWorker (stateless, Effect-native Worker) │
64
+ client │ • routes /api/v1/** → Effect HttpApi │
65
+ ──────────────► │ • routes /:owner/:repo.git/** → git protocol │
66
+ │ • parses Basic/Bearer creds (never verifies │
67
+ │ repo tokens itself — the Repo DO does) │
68
+ │ • verifies the admin key (timingSafeEqual) │
69
+ │ • Registry lookups (owner/name → repoId), │
70
+ │ 60 s in-isolate LRU cache │
71
+ └───────┬──────────────────────────┬─────────────┘
72
+ │ typed RPC / stub.fetch │ typed RPC
73
+ ▼ ▼
74
+ ┌──────────────────────────────┐ ┌────────────────────────┐
75
+ │ Repo DO (one per repo, │ │ Registry DO │
76
+ │ getByName(repoId)) │ │ (singleton, │
77
+ │ owns: refs, objects index, │ │ getByName("registry"))│
78
+ │ loose object bytes, tokens, │ │ owns: owner/name → │
79
+ │ commit graph, push staging, │ │ repoId map, listing, │
80
+ │ alarm jobs (import/fork/ │ │ uniqueness, fork │
81
+ │ delete-purge/GC) │ │ lineage + counts │
82
+ │ runs: advertise, upload- │ └────────────────────────┘
83
+ │ pack, receive-pack │
84
+ └──────────┬───────────────────┘
85
+ │ R2 binding (inside the DO for oversize reads/writes)
86
+
87
+ ┌──────────────────────────────┐
88
+ │ R2 bucket "git-objects" │
89
+ │ {repoId}/objects/{oid} │ oversize loose objects (immutable)
90
+ │ {repoId}/packs/pack-*.pack │ v1.1 compaction output (immutable)
91
+ └──────────────────────────────┘
92
+ ```
93
+
94
+ **Why one DO per repo (not a namespace DO holding many):** per-repo write serialization for free (ref CAS needs no locks), per-repo isolation of the 10 GB SQLite ceiling, horizontal scale by construction. The DO id is `idFromName(repoId)` where `repoId` is a ULID minted at creation — **not** `owner/name` — so renames never move data and a deleted-then-recreated `owner/name` gets a fresh DO (no zombie state).
95
+
96
+ **Why a singleton Registry DO:** repo CRUD needs a uniqueness authority, a listing surface, and a fork-lineage ledger. It's low-rate control-plane traffic. Upgrade seam: shard by owner via `getByName("registry:" + owner)` — the RPC interface doesn't change; global listing then requires fan-out or is cut. The Worker caches `owner/name → repoId` per-isolate for 60 s; the Repo DO stores its own `(owner, name)` and rejects mismatched requests, so a stale cache entry fails safe and triggers re-resolve.
97
+
98
+ **Why the git protocol runs in the DO, not the Worker:** every byte the protocol needs (refs, object rows, commit graph, tokens) lives in the DO's SQLite. Running upload/receive-pack in the Worker would mean chatty RPC choreography for thin-base lookups, staging batches, and manifest paging. Inside the DO it's direct synchronous SQL. Long pushes don't starve reads: workerd interleaves other events at non-storage `await` points (client body reads, R2 calls), and the ref CAS at the end is a single `transactionSync`. The one inherited rule: **re-verify nothing across an `await` — all ref reads/writes happen inside the final `transactionSync`.**
99
+
100
+ **Push serialization:** the Repo DO's runtime closure holds an `Effect.Semaphore(1)` guarding receive-pack ingest (two concurrent 50 MiB buffers would exhaust the 128 MB isolate). A second push waits up to 30 s for the permit, then gets `503` + `Retry-After: 10` (git retries cleanly). In-memory is sufficient: there is exactly one live instance per DO, and an eviction mid-push kills the holder's connection anyway.
101
+
102
+ ### 2.2 URL space
103
+
104
+ ```
105
+ /api/v1/** REST (Effect HttpApi)
106
+ /api/v1/repos/:o/:r/blobs/:oid/raw raw blob bytes (raw route, streaming)
107
+ /api/v1/repos/:o/:r/file?ref&path file-at-path bytes (raw route, streaming)
108
+ /:owner/:repo[.git]/info/refs smart-HTTP ref advertisement
109
+ /:owner/:repo[.git]/git-upload-pack fetch/clone
110
+ /:owner/:repo[.git]/git-receive-pack push
111
+ ```
112
+
113
+ `api` is a reserved owner name (Registry rejects it at creation). The Worker's `fetch` is the canonical `StateStore/Api.ts` composition: `HttpApiBuilder.layer(GitApi)` + handler layers + `Layer.merge(rawGitRoutes)` (raw routes registered on the same `HttpRouter`) + `[Etag.layer, HttpPlatformStub, Path.layer]` + `HttpRouter.toHttpEffect` (§5, §6).
114
+
115
+ ### 2.3 Request flows
116
+
117
+ **Clone (fresh):**
118
+ 1. `GET /:o/:r.git/info/refs?service=git-upload-pack` → Worker parses Basic creds, Registry lookup (cached) → `repos.getByName(repoId).fetch(request)` → DO verifies token (read scope), rejects with `RepoNotReady` semantics (503) while `status != ready`, then emits the v0 advertisement: `# service=` prelude, flush, `HEAD` first with capability line (`multi_ack_detailed no-done side-band-64k shallow ofs-delta agent=git-service/1 symref=HEAD:refs/heads/<default> object-format=sha1`), refs sorted, annotated tags peeled (`^{}` lines), flush. `Cache-Control: no-cache`. Empty repo: zero-id `capabilities^{}` line.
119
+ 2. `POST git-upload-pack` — body is `want`s + flush + `done` (no haves). DO gunzips if `Content-Encoding: gzip` (`DecompressionStream("gzip")`; sniff `1f 8b` defensively), parses pkt-lines, computes the full closure (§3.5), replies `NAK` then the pack on sideband band 1 (65515-byte frames), progress on band 2, flush. If the client did **not** negotiate `side-band-64k`, the pack is sent raw after the ACK/NAK section. The response body is a `Stream<Uint8Array>` — `HttpServerResponse.stream(...)`, chunked, flushed as written; the Worker proxies the `HttpServerResponse` from `stub.fetch` untouched.
120
+
121
+ **Incremental fetch:** same, but the POST carries `have`s. Round 1 (ends in flush): DO `ACK <oid> common` for each have that exists in `objects`, `ACK <oid> ready` once the want-closure is coverable, else `NAK`. With `no-done` the DO may continue straight into the pack after `ready`. Round 2 (ends in `done`): final `ACK`/`NAK` + pack. Closure = commits BFS from wants stopping at ACKed haves (generation numbers bound the walk), plus those commits' full tree/blob closure with an in-walk visited set (§3.5 — the accepted v1 fat: ~one snapshot's worth of redundancy at the boundary; harmless to clients).
122
+
123
+ **Shallow clone (`--depth N`):** wants + `deepen N`. DO does a depth-bounded BFS, emits `shallow <oid>` boundary lines (and `unshallow` for previously-shallow client tips now complete), flush, then ACK/NAK + depth-truncated pack. Client `shallow` lines on later fetches are treated as additional walk boundaries.
124
+
125
+ **Push:**
126
+ 1. `GET info/refs?service=git-receive-pack` → v0 advertisement with `report-status report-status-v2 delete-refs side-band-64k atomic ofs-delta object-format=sha1 agent=git-service/1`.
127
+ 2. `POST git-receive-pack` → DO: acquire the push semaphore; parse command pkt-lines (`old new refname\0caps` on the first); handle the **empty-flush probe** (git sends a bare `0000` POST when the payload exceeds `http.postBuffer`; reply empty 200 so it retries with the real body). Reject writes to `readOnly` repos with `ng` per ref. Buffer the raw pack (reject > 50 MiB with `unpack pack exceeds 50 MiB limit` + per-ref `ng` — a clean in-band report, not an HTTP error). Ingest (§3.6): index → resolve deltas (thin bases from own store) → hash → stage → **connectivity check** (every oid referenced by staged commits/trees is in staged ∪ live objects; batched SQL). Then one `transactionSync`: CAS every command's old-oid against `refs`, honor `atomic` (all-or-nothing) vs per-ref, flip staged objects live, insert commit-graph rows, update `default_branch` on first branch push. Reply `report-status` (`unpack ok` / `ok|ng <ref>`) **wrapped in sideband band 1** when the client negotiated side-band (unmuxed report while sideband is active breaks the client). `report-status-v2` is advertised and implemented identically (no `option` lines — valid).
128
+ 3. Post-commit, `state.waitUntil`: GC bookkeeping, compaction-threshold check (v1.1 alarm).
129
+
130
+ **Fork:** `POST /repos/:o/:r/fork` → Registry CAS-inserts the target row (`status: "forking"`, `fork_of`, bump parent `fork_count`) → new Repo DO initializes and arms an immediate alarm → alarm job streams a row snapshot from the parent DO over an RPC `Stream` (refs, objects metadata **including `zdata` for `location='row'` rows**, commits, config) and copies it in batches; `location='r2'` rows are copied **by reference** — the `r2_key` column carries the parent's full key (immutable, shared) → `status: "ready"`. Documented v1 limit: fork cost is O(parent row bytes); v1.1 compaction (bytes in shared R2 packs) makes forks near-O(index).
131
+
132
+ **Import:** `POST /repos/import` → Registry inserts (`status: "importing"`) → Repo DO alarm job acts as a git v0/v2 HTTP client against the source URL (depth-limited fetch), ingests through the same `PackParser` path with the same 50 MiB cap (documented v1 limit: small/depth-limited imports only), sets refs, `status: "ready"`; failures set `status` back plus an error detail readable on the Repo resource.
133
+
134
+ **Delete:** `DELETE /repos/:o/:r` → Registry marks `deleted_at` (name freed for reuse only after purge), Repo `status: "deleting"` → NoContent immediately → alarm job purges: R2 prefix list+delete loop (bounded per alarm run, re-armed until done) — **but the R2 prefix is retained while Registry reports `fork_count > 0`** (forks reference those keys); SQLite dropped via `deleteAll`; Registry row removed last. Purge is idempotent and alarm-retried.
135
+
136
+ **REST call:** `POST /api/v1/repos/:o/:r/tokens` → HttpApi middleware parses credentials into a `Credentials` service → handler calls `repos.getByName(repoId).createToken(credentials, {...})` → DO enforces scope and returns; tagged errors surface as typed HTTP statuses.
137
+
138
+ ---
139
+
140
+ ## 3. Storage design
141
+
142
+ ### 3.1 Repo DO SQLite schema (exact DDL)
143
+
144
+ ```sql
145
+ -- config: repoId, owner, name, default_branch, description, created_at,
146
+ -- schema_version, status ('ready'|'importing'|'forking'|'deleting'),
147
+ -- read_only ('0'|'1'), fork_of (parent repoId or absent)
148
+ CREATE TABLE IF NOT EXISTS config (key TEXT PRIMARY KEY, value TEXT NOT NULL);
149
+
150
+ -- all refs, full names. HEAD is virtual: symref to config.default_branch.
151
+ CREATE TABLE IF NOT EXISTS refs (
152
+ name TEXT PRIMARY KEY, -- 'refs/heads/main', 'refs/tags/v1'
153
+ oid TEXT NOT NULL -- 40-hex sha1
154
+ ) WITHOUT ROWID;
155
+
156
+ -- object index + loose bytes. zdata is zlib(content) WITHOUT the loose header,
157
+ -- so pack emission is: varint(type,size) + zdata, verbatim.
158
+ CREATE TABLE IF NOT EXISTS objects (
159
+ oid TEXT PRIMARY KEY, -- 40-hex
160
+ type INTEGER NOT NULL, -- 1=commit 2=tree 3=blob 4=tag
161
+ size INTEGER NOT NULL, -- uncompressed bytes
162
+ zsize INTEGER NOT NULL, -- stored/compressed bytes
163
+ location TEXT NOT NULL DEFAULT 'row', -- 'row' | 'r2' | 'pack' (pack = v1.1)
164
+ zdata BLOB, -- NULL when location != 'row'
165
+ r2_key TEXT, -- full R2 key when location='r2'; may point at a
166
+ -- FORK PARENT's prefix (immutable, shared)
167
+ pack_id TEXT, -- v1.1: packs/pack-<sha>.pack
168
+ pack_offset INTEGER, -- v1.1: byte offset of zdata within pack
169
+ staged_push TEXT -- NULL = live; else the push_id that staged it
170
+ ) WITHOUT ROWID;
171
+ CREATE INDEX IF NOT EXISTS idx_objects_staged ON objects(staged_push) WHERE staged_push IS NOT NULL;
172
+
173
+ -- commit graph for closure/negotiation walks (populated at ingest)
174
+ CREATE TABLE IF NOT EXISTS commits (
175
+ oid TEXT PRIMARY KEY,
176
+ tree TEXT NOT NULL,
177
+ gen INTEGER NOT NULL, -- generation number: max(parent gen) + 1; roots = 1
178
+ commit_time INTEGER NOT NULL -- committer timestamp (seam: deepen-since)
179
+ ) WITHOUT ROWID;
180
+ CREATE TABLE IF NOT EXISTS commit_parents (
181
+ oid TEXT NOT NULL,
182
+ parent TEXT NOT NULL,
183
+ ord INTEGER NOT NULL,
184
+ PRIMARY KEY (oid, parent)
185
+ ) WITHOUT ROWID;
186
+
187
+ -- per-repo access tokens (§8)
188
+ CREATE TABLE IF NOT EXISTS tokens (
189
+ id TEXT PRIMARY KEY, -- ULID
190
+ token_hash TEXT NOT NULL UNIQUE, -- hex(sha256(token))
191
+ name TEXT NOT NULL,
192
+ scope TEXT NOT NULL, -- 'read' | 'write' | 'admin'
193
+ created_at INTEGER NOT NULL,
194
+ expires_at INTEGER, -- NULL = no expiry
195
+ last_used_at INTEGER
196
+ ) WITHOUT ROWID;
197
+
198
+ -- crash-safety bookkeeping for pushes (GC'd by alarm)
199
+ CREATE TABLE IF NOT EXISTS pushes (
200
+ push_id TEXT PRIMARY KEY,
201
+ started_at INTEGER NOT NULL,
202
+ state TEXT NOT NULL -- 'staging' | 'committed'
203
+ ) WITHOUT ROWID;
204
+
205
+ -- async job bookkeeping (import/fork/delete-purge progress; single row per kind)
206
+ CREATE TABLE IF NOT EXISTS jobs (
207
+ kind TEXT PRIMARY KEY, -- 'import' | 'fork' | 'purge' | 'gc'
208
+ state TEXT NOT NULL, -- 'running' | 'failed'
209
+ detail TEXT,
210
+ updated_at INTEGER NOT NULL
211
+ ) WITHOUT ROWID;
212
+ ```
213
+
214
+ Registry DO:
215
+
216
+ ```sql
217
+ CREATE TABLE IF NOT EXISTS repos (
218
+ owner TEXT NOT NULL,
219
+ name TEXT NOT NULL,
220
+ repo_id TEXT NOT NULL UNIQUE, -- ULID
221
+ description TEXT,
222
+ fork_of TEXT, -- parent repo_id, NULL if not a fork
223
+ fork_count INTEGER NOT NULL DEFAULT 0,
224
+ created_at INTEGER NOT NULL,
225
+ deleted_at INTEGER, -- soft-delete marker during purge
226
+ PRIMARY KEY (owner, name)
227
+ ) WITHOUT ROWID;
228
+ ```
229
+
230
+ Schema init runs in the DO's outer init effect under `blockConcurrencyWhile` semantics (idempotent `CREATE TABLE IF NOT EXISTS`), with a `schema_version` config row for future migrations. Note the platform gotcha: DO RPC methods must not be named `delete` (Cloudflare stub proxy reserves it) — use `remove`/`purge`.
231
+
232
+ ### 3.2 R2 key scheme
233
+
234
+ ```
235
+ {repoId}/objects/{oid} zlib(content), immutable, written once
236
+ {repoId}/packs/pack-{sha1}.pack v1.1 compaction output, immutable
237
+ ```
238
+
239
+ All R2 keys are **immutable and content-addressed** — this sidesteps the 1-write/s/key limit, makes conditional-put re-runs (idempotent alarm jobs) safe, and makes **cross-repo fork references safe** (a fork's `objects.r2_key` may point into the parent's prefix). R2 `list()` is never used on a hot path (Class A, $4.50/M); the `objects` table is the sole inventory. List is used only in delete-purge and GC reconciliation.
240
+
241
+ ### 3.3 Loose vs. R2 thresholds and the promotion story
242
+
243
+ - **`location='row'`**: compressed size ≤ **1 MiB** (safety margin under the 2 MB SQLite row cap). This is where every normal object lives in v1. Read cost: DO rows at $0.001/M, synchronous, no 6-connection cap — 360× cheaper and far faster than per-object R2 GETs.
244
+ - **`location='r2'`**: compressed size > 1 MiB → written to `{repoId}/objects/{oid}` at ingest (single streaming `put`), row records metadata + `r2_key`.
245
+ - **Per-object cap (v1): 64 MiB uncompressed.** Delta application needs base + result in memory; this cap keeps worst-case ingest memory bounded. Rejected with `unpack object too large` + `ng`.
246
+ - **Promotion/compaction (v1.1, schema-ready, not in v1):** an alarm fires when `SUM(zsize) WHERE location='row'` > **1 GB** or live loose count > **50 000**. The handler streams a no-delta pack of the oldest N objects to R2 via multipart (5 MiB uniform parts), then in one `transactionSync` flips those rows to `location='pack'` with `pack_id`/`pack_offset` and NULLs `zdata`. Because pack entries are `varint header + zlib(content)` and we store `zlib(content)`, the "pack" is a concatenation — and `pack_offset` points at the zdata span, so fetch does **ranged R2 reads** per object, or (B's fast path, adopted as the v1.1 clone path) streams whole entry-regions verbatim for full clones. Idempotent (content-addressed pack key + conditional put), alarm-retried, 15-min budget respected by capping objects per run. Nothing in the fetch path changes shape: the emitter already dispatches on `location`.
247
+
248
+ This ordering (row → r2/pack) is forced by the platform numbers: DO storage $0.20/GB-mo vs R2 $0.015 (13×) makes R2 the long-term home; DO rows' read economics make them the right hot tier; the 2 MB row cap draws the line.
249
+
250
+ ### 3.4 Transactionality of ref updates
251
+
252
+ All ref mutations — push commands, REST ref writes, fork/import finalization — go through one code path in the Repo DO:
253
+
254
+ ```ts
255
+ // inside receive-pack finalize, single event, no awaits inside:
256
+ storage.transactionSync(() => {
257
+ for (const cmd of commands) {
258
+ const current = sql.exec("SELECT oid FROM refs WHERE name = ?", cmd.ref).one()?.oid ?? ZERO;
259
+ if (current !== cmd.oldOid) { results.push(ng(cmd.ref, "fetch first")); if (atomic) throw new RefCasFailed(results); continue; }
260
+ // delete / insert / update refs row
261
+ }
262
+ sql.exec("UPDATE objects SET staged_push = NULL WHERE staged_push = ?", pushId);
263
+ // insert commits / commit_parents rows for staged commits
264
+ sql.exec("UPDATE pushes SET state = 'committed' WHERE push_id = ?", pushId);
265
+ });
266
+ ```
267
+
268
+ The DO's input/output gates guarantee no interleaving between statements; `transactionSync` guarantees atomicity against mid-event failure. The client's `old-oid` is the compare-and-swap token (this also makes force-push semantics correct without locking). REST `PUT/DELETE` ref endpoints run the same block with a single synthetic command (`expectedOid` → old-oid; absent `expectedOid` = unconditional). Crash before the transaction ⇒ staged rows with a dangling `push_id`; a daily alarm deletes `pushes` rows in `staging` older than 24 h and their staged objects (R2 orphans under `objects/` are harmless — content-addressed — and re-pushed identical objects hit the same key).
269
+
270
+ ### 3.5 Fetch closure computation and pack assembly within 128 MB
271
+
272
+ **Closure:** BFS from wants over `commit_parents` (in-DO SQL, chunked `IN` lists ≤ 100 params), stopping at haves that exist in `objects`, bounded below by generation numbers (never walk past `min(gen(haves))` unnecessarily), and at the depth bound when `deepen` is present. Then walk each frontier commit's tree: read tree rows, parse entries, recurse, with an in-memory visited `Set<string>` shared across the whole walk. Memory: 500 k oids ≈ 25 MB of Set — cap manifest at 1 M objects for v1 (larger repos are a documented v1 limit; the v1.1 fix is whole-pack streaming from R2 for clones).
273
+
274
+ **Emission (all streaming, constant memory):**
275
+
276
+ ```
277
+ PACK + version(2) + count(manifest.length) — count known before streaming: manifest is materialized first
278
+ for each oid in manifest (batched row reads, ≤100/query, ~8 MiB adaptive zsize budget):
279
+ emit varint(type, size) + zdata — 'row': the BLOB; 'r2': R2 get body; 'pack' (v1.1): R2 ranged get
280
+ sha1.update(everything) — node:crypto createHash, incremental
281
+ emit sha1 trailer
282
+ ```
283
+
284
+ Wrapped in a sideband-band-1 framing transform (≤ 65515-byte payloads) when negotiated, returned as `HttpServerResponse.stream`. No compression CPU at all — bytes are stored pre-deflated. Progress lines (`Counting objects...`) on band 2 every N objects.
285
+
286
+ ### 3.6 Push ingest within 128 MB
287
+
288
+ Single pass over the buffered pack (≤ 50 MiB), under the push semaphore:
289
+
290
+ 1. Validate `PACK`, version 2, count.
291
+ 2. Per entry: parse type/size varint. Non-delta: `zlib.createInflate()`, feed the tail; on `end`, `bytesWritten` = exact compressed span (workerd-verified). Hash `sha1("<type> <size>\0" + content)`. **Store the compressed span verbatim as `zdata`** — no recompression. Deltas (OFS with the +1-bias offset decoding, REF with 20-byte base id): resolve base from (a) already-ingested entries via a bounded LRU of resolved contents (20 MiB, shared buffers), (b) re-inflation from the pack buffer on cache miss, or (c) **the object store for thin bases** (REF_DELTA to a prior push — the normal case). Apply the copy/insert instruction stream (`size==0 ⇒ 0x10000` special case), verify `result_size`, hash, `deflateSync` (level 6), store.
292
+ 3. Verify the trailing pack SHA-1; mismatch ⇒ `unpack pack checksum mismatch` + all-`ng`.
293
+ 4. Rows inserted with `staged_push = pushId` as resolved (objects > 1 MiB compressed go to R2 first, then the row). Existing oids skipped (idempotent re-push).
294
+ 5. **Connectivity check (full):** collect every oid referenced by staged commits (tree, parents) and staged trees (entries), and every command's `new-oid`; batched `SELECT` membership against staged ∪ live objects (chunked `IN` ≤ 100). Any miss ⇒ `unpack missing objects` + all-`ng`. Cheap SQL; prevents a buggy/malicious client from corrupting the repo.
295
+ 6. Compute `gen`/`commit_time` for staged commits (parents are all present per step 5).
296
+
297
+ Budget: 50 MiB pack + 20 MiB cache + ≤ 64 MiB single-object worst case is theoretical-max-tight; in practice large objects aren't delta'd against large bases, and ripgit ships this exact profile in 128 MB. The semaphore guarantees one ingest at a time. The pack size cap is enforced *before* buffering via `Content-Length` when present and by counting during body read otherwise.
298
+
299
+ **Upgrade seam (v1.x, when the 50 MiB cap hurts):** tee the incoming body to R2 multipart (`{repoId}/incoming/{pushId}.pack`) while indexing in the same pass; delta re-resolution then uses R2 ranged reads instead of the memory buffer. The parser is written against a `RandomAccess` abstraction (`PackParser.ingest(source: RandomAccess)`) from day one so this swap touches one implementation, not the protocol code.
300
+
301
+ ---
302
+
303
+ ## 4. Git protocol scope for v1
304
+
305
+ ### Supported (exact)
306
+
307
+ | Area | v1 support |
308
+ |---|---|
309
+ | Transport | Smart HTTP only. `info/refs` advertisement with `# service=` prelude for both services; `Cache-Control: no-cache`; 401 + `WWW-Authenticate: Basic realm="git-service"`; gzip request bodies decompressed (`DecompressionStream("gzip")` + `1f 8b` sniff); streamed chunked responses; `ERR` pkt / band-3 for in-band fatals; 503 + `Retry-After` on push contention. |
310
+ | upload-pack (fetch/clone) | **Protocol v0.** Capabilities: `multi_ack_detailed`, `no-done`, `side-band-64k`, `shallow` (+ `deepen <n>` only), `agent`, `symref=HEAD:...`, `object-format=sha1`. Peeled `^{}` lines for annotated tags. Negotiation: ack `common` for known haves, `ready` when coverable, else `NAK`; ≤ 2 rounds. Empty-repo advertisement (`capabilities^{}`). Non-sideband clients get the raw pack. |
311
+ | receive-pack (push) | Protocol v0 (push has no v2). Capabilities: `report-status`, `report-status-v2`, `delete-refs`, `side-band-64k`, `atomic`, `ofs-delta`, `object-format=sha1`, `agent`. Create/update/delete refs, old-oid CAS, force push (unpoliced in v1), thin-pack + ofs/ref-delta ingestion, full connectivity check, empty-flush probe handling, report inside band 1, one-push-at-a-time serialization. |
312
+ | Objects | commit, tree, blob, **tag (annotated tags stored and served — not dropped)**. Byte-verbatim round-tripping (we never re-serialize; hashes, gpgsig, timezones survive — automatic, since stored bytes are the received bytes). |
313
+
314
+ The cut list with upgrade paths is consolidated in §10.
315
+
316
+ ---
317
+
318
+ ## 5. The Effect HttpApi REST surface
319
+
320
+ Contract lives in `src/Api.ts`, following `packages/alchemy/src/Cloudflare/StateStore/Api.ts` / `State/HttpStateApi.ts` conventions (effect `4.0.0-beta.105`, `effect/unstable/httpapi`). Abbreviated only where repetitive:
321
+
322
+ ```ts
323
+ import * as Context from "effect/Context";
324
+ import * as Redacted from "effect/Redacted";
325
+ import * as Schema from "effect/Schema";
326
+ import * as HttpApi from "effect/unstable/httpapi/HttpApi";
327
+ import * as HttpApiGroup from "effect/unstable/httpapi/HttpApiGroup";
328
+ import * as HttpApiEndpoint from "effect/unstable/httpapi/HttpApiEndpoint";
329
+ import * as HttpApiMiddleware from "effect/unstable/httpapi/HttpApiMiddleware";
330
+ import * as HttpApiSecurity from "effect/unstable/httpapi/HttpApiSecurity";
331
+ import * as HttpApiSchema from "effect/unstable/httpapi/HttpApiSchema";
332
+
333
+ // ── primitives ────────────────────────────────────────────────────────────
334
+ export const Oid = Schema.String.pipe(Schema.pattern(/^[0-9a-f]{40}$/), Schema.brand("Oid"));
335
+ export const RepoName = Schema.String.pipe(Schema.pattern(/^[a-z0-9](?:[a-z0-9._-]{0,98}[a-z0-9])?$/i));
336
+ export const OwnerName = RepoName;
337
+ export const RefName = Schema.String.pipe(Schema.pattern(/^refs\/[^\s~^:?*\[\\]+$/));
338
+ export const TokenScope = Schema.Literals(["read", "write", "admin"]);
339
+ export const RepoStatus = Schema.Literals(["ready", "importing", "forking", "deleting"]);
340
+
341
+ // ── error taxonomy (tagged, status-annotated) ─────────────────────────────
342
+ export class Unauthorized extends Schema.TaggedErrorClass<Unauthorized>()("Unauthorized",
343
+ {}, HttpApiSchema.annotations({ status: 401 })) {}
344
+ export class Forbidden extends Schema.TaggedErrorClass<Forbidden>()("Forbidden",
345
+ { required: TokenScope }, HttpApiSchema.annotations({ status: 403 })) {}
346
+ export class ReadOnlyRepo extends Schema.TaggedErrorClass<ReadOnlyRepo>()("ReadOnlyRepo",
347
+ {}, HttpApiSchema.annotations({ status: 403 })) {}
348
+ export class RepoNotFound extends Schema.TaggedErrorClass<RepoNotFound>()("RepoNotFound",
349
+ { owner: Schema.String, repo: Schema.String }, HttpApiSchema.annotations({ status: 404 })) {}
350
+ export class RepoAlreadyExists extends Schema.TaggedErrorClass<RepoAlreadyExists>()("RepoAlreadyExists",
351
+ { owner: Schema.String, repo: Schema.String }, HttpApiSchema.annotations({ status: 409 })) {}
352
+ export class RepoNotReady extends Schema.TaggedErrorClass<RepoNotReady>()("RepoNotReady",
353
+ { status: RepoStatus }, HttpApiSchema.annotations({ status: 409 })) {}
354
+ export class RefNotFound extends Schema.TaggedErrorClass<RefNotFound>()("RefNotFound",
355
+ { ref: Schema.String }, HttpApiSchema.annotations({ status: 404 })) {}
356
+ export class RefConflict extends Schema.TaggedErrorClass<RefConflict>()("RefConflict",
357
+ { ref: Schema.String, currentOid: Schema.NullOr(Oid) }, HttpApiSchema.annotations({ status: 409 })) {}
358
+ export class ObjectNotFound extends Schema.TaggedErrorClass<ObjectNotFound>()("ObjectNotFound",
359
+ { oid: Schema.String }, HttpApiSchema.annotations({ status: 404 })) {}
360
+ export class WrongObjectType extends Schema.TaggedErrorClass<WrongObjectType>()("WrongObjectType",
361
+ { oid: Schema.String, expected: Schema.String, actual: Schema.String },
362
+ HttpApiSchema.annotations({ status: 422 })) {}
363
+ export class ObjectTooLarge extends Schema.TaggedErrorClass<ObjectTooLarge>()("ObjectTooLarge",
364
+ { oid: Schema.String, size: Schema.Number }, HttpApiSchema.annotations({ status: 422 })) {}
365
+ export class TokenNotFound extends Schema.TaggedErrorClass<TokenNotFound>()("TokenNotFound",
366
+ { id: Schema.String }, HttpApiSchema.annotations({ status: 404 })) {}
367
+ export class ImportFailed extends Schema.TaggedErrorClass<ImportFailed>()("ImportFailed",
368
+ { reason: Schema.String }, HttpApiSchema.annotations({ status: 502 })) {}
369
+ export class ValidationError extends Schema.TaggedErrorClass<ValidationError>()("ValidationError",
370
+ { message: Schema.String }, HttpApiSchema.annotations({ status: 400 })) {}
371
+
372
+ // ── auth middleware ───────────────────────────────────────────────────────
373
+ // Parses Basic (git CLI: password = token) or Bearer into a Credentials service.
374
+ // Enforcement happens in the Repo DO, which owns the tokens table (§8).
375
+ export class Credentials extends Context.Service<Credentials, {
376
+ readonly token: Redacted.Redacted<string>; // repo token or admin key
377
+ }>()("git-service/Credentials") {}
378
+
379
+ export class GitAuth extends HttpApiMiddleware.Service<GitAuth, { provides: Credentials }>()(
380
+ "git-service/GitAuth",
381
+ { security: { bearer: HttpApiSecurity.bearer, basic: HttpApiSecurity.basic },
382
+ error: Unauthorized },
383
+ ) {}
384
+
385
+ // ── domain shapes ─────────────────────────────────────────────────────────
386
+ export class Repo extends Schema.Class<Repo>("Repo")({
387
+ owner: OwnerName, name: RepoName, repoId: Schema.String,
388
+ defaultBranch: Schema.String, description: Schema.NullOr(Schema.String),
389
+ readOnly: Schema.Boolean,
390
+ forkOf: Schema.NullOr(Schema.String), // parent repoId
391
+ status: RepoStatus, // poll this for async fork/import/delete
392
+ createdAt: Schema.Number,
393
+ }) {}
394
+ export class Ref extends Schema.Class<Ref>("Ref")({
395
+ name: RefName, oid: Oid, peeled: Schema.optional(Oid),
396
+ }) {}
397
+ const Signature = Schema.Struct({
398
+ name: Schema.String, email: Schema.String, date: Schema.Number, tz: Schema.String });
399
+ export class CommitInfo extends Schema.Class<CommitInfo>("CommitInfo")({
400
+ oid: Oid, tree: Oid, parents: Schema.Array(Oid),
401
+ author: Signature, committer: Signature, message: Schema.String,
402
+ }) {}
403
+ export class TreeEntry extends Schema.Class<TreeEntry>("TreeEntry")({
404
+ mode: Schema.String, name: Schema.String, oid: Oid,
405
+ type: Schema.Literals(["blob", "tree", "commit"]), // commit = gitlink
406
+ }) {}
407
+ export class TokenInfo extends Schema.Class<TokenInfo>("TokenInfo")({
408
+ id: Schema.String, name: Schema.String, scope: TokenScope,
409
+ createdAt: Schema.Number, expiresAt: Schema.NullOr(Schema.Number),
410
+ lastUsedAt: Schema.NullOr(Schema.Number),
411
+ }) {}
412
+ export class CreatedToken extends TokenInfo.extend<CreatedToken>("CreatedToken")({
413
+ token: Schema.String, // shown exactly once
414
+ }) {}
415
+ export class RepoCreated extends Schema.Class<RepoCreated>("RepoCreated")({
416
+ repo: Repo,
417
+ remote: Schema.String, // https clone URL
418
+ token: CreatedToken, // bootstrap 'write' token, one round trip
419
+ }) {}
420
+ const Paginated = <A extends Schema.Top>(items: A) => Schema.Struct({
421
+ items: Schema.Array(items), nextCursor: Schema.NullOr(Schema.String), hasMore: Schema.Boolean,
422
+ });
423
+
424
+ // ── groups ────────────────────────────────────────────────────────────────
425
+ const RepoPath = Schema.Struct({ owner: OwnerName, repo: RepoName });
426
+
427
+ const repos = HttpApiGroup.make("repos")
428
+ .add(HttpApiEndpoint.post("create", "/repos", {
429
+ payload: Schema.Struct({
430
+ owner: OwnerName, name: RepoName,
431
+ defaultBranch: Schema.optional(Schema.String), // default "main"
432
+ description: Schema.optional(Schema.String),
433
+ readOnly: Schema.optional(Schema.Boolean),
434
+ }),
435
+ success: RepoCreated,
436
+ error: [RepoAlreadyExists, ValidationError, Forbidden],
437
+ }))
438
+ .add(HttpApiEndpoint.get("get", "/repos/:owner/:repo", {
439
+ params: RepoPath, success: Repo, error: RepoNotFound,
440
+ }))
441
+ .add(HttpApiEndpoint.patch("update", "/repos/:owner/:repo", {
442
+ params: RepoPath,
443
+ payload: Schema.Struct({
444
+ description: Schema.optional(Schema.NullOr(Schema.String)),
445
+ defaultBranch: Schema.optional(Schema.String), // must resolve to an existing branch
446
+ readOnly: Schema.optional(Schema.Boolean),
447
+ }),
448
+ success: Repo,
449
+ error: [RepoNotFound, RefNotFound, Forbidden],
450
+ }))
451
+ .add(HttpApiEndpoint.get("list", "/repos", {
452
+ query: Schema.Struct({
453
+ owner: Schema.optional(OwnerName),
454
+ cursor: Schema.optional(Schema.String),
455
+ limit: Schema.optional(Schema.Int.pipe(Schema.between(1, 100))),
456
+ }),
457
+ success: Paginated(Repo),
458
+ }))
459
+ .add(HttpApiEndpoint.del("delete", "/repos/:owner/:repo", {
460
+ params: RepoPath, success: HttpApiSchema.NoContent, // async purge; status → 'deleting' → 404
461
+ error: [RepoNotFound, Forbidden],
462
+ }))
463
+ .add(HttpApiEndpoint.post("fork", "/repos/:owner/:repo/fork", {
464
+ params: RepoPath,
465
+ payload: Schema.Struct({ targetOwner: OwnerName, targetName: RepoName }),
466
+ success: RepoCreated, // status: 'forking'; poll GET repo
467
+ error: [RepoNotFound, RepoAlreadyExists, RepoNotReady, Forbidden],
468
+ }))
469
+ .add(HttpApiEndpoint.post("import", "/repos/import", {
470
+ payload: Schema.Struct({
471
+ owner: OwnerName, name: RepoName,
472
+ source: Schema.Struct({
473
+ url: Schema.String,
474
+ ref: Schema.optional(Schema.String),
475
+ depth: Schema.optional(Schema.Int.pipe(Schema.greaterThan(0))),
476
+ }),
477
+ }),
478
+ success: RepoCreated, // status: 'importing'; poll GET repo
479
+ error: [RepoAlreadyExists, ImportFailed, Forbidden],
480
+ }))
481
+ .middleware(GitAuth);
482
+
483
+ const refs = HttpApiGroup.make("refs")
484
+ .add(HttpApiEndpoint.get("list", "/repos/:owner/:repo/refs", {
485
+ params: RepoPath,
486
+ query: Schema.Struct({ prefix: Schema.optional(Schema.String) }), // e.g. "refs/heads/"
487
+ success: Schema.Struct({ head: Schema.NullOr(Schema.String), refs: Schema.Array(Ref) }),
488
+ error: RepoNotFound,
489
+ }))
490
+ .add(HttpApiEndpoint.get("get", "/repos/:owner/:repo/ref", {
491
+ params: RepoPath,
492
+ query: Schema.Struct({ name: RefName }), // query, not path — refnames contain '/'
493
+ success: Ref,
494
+ error: [RepoNotFound, RefNotFound],
495
+ }))
496
+ .add(HttpApiEndpoint.put("update", "/repos/:owner/:repo/ref", {
497
+ params: RepoPath,
498
+ query: Schema.Struct({ name: RefName }),
499
+ payload: Schema.Struct({
500
+ newOid: Oid,
501
+ expectedOid: Schema.optional(Schema.NullOr(Oid)), // null = must-not-exist; absent = unconditional
502
+ }),
503
+ success: Ref,
504
+ error: [RepoNotFound, RefConflict, ObjectNotFound, ReadOnlyRepo, Forbidden],
505
+ }))
506
+ .add(HttpApiEndpoint.del("remove", "/repos/:owner/:repo/ref", {
507
+ params: RepoPath,
508
+ query: Schema.Struct({ name: RefName }),
509
+ payload: Schema.Struct({ expectedOid: Schema.optional(Oid) }),
510
+ success: HttpApiSchema.NoContent,
511
+ error: [RepoNotFound, RefNotFound, RefConflict, ReadOnlyRepo, Forbidden],
512
+ }))
513
+ .middleware(GitAuth);
514
+
515
+ const objects = HttpApiGroup.make("objects")
516
+ .add(HttpApiEndpoint.get("commit", "/repos/:owner/:repo/commits/:oid", {
517
+ params: RepoPath.pipe(Schema.extend(Schema.Struct({ oid: Oid }))),
518
+ success: CommitInfo,
519
+ error: [RepoNotFound, ObjectNotFound, WrongObjectType],
520
+ }))
521
+ .add(HttpApiEndpoint.get("log", "/repos/:owner/:repo/log", {
522
+ params: RepoPath,
523
+ query: Schema.Struct({
524
+ ref: Schema.optional(Schema.String), // refname or oid; default HEAD
525
+ cursor: Schema.optional(Schema.String),
526
+ limit: Schema.optional(Schema.Int.pipe(Schema.between(1, 100))),
527
+ }),
528
+ success: Paginated(CommitInfo),
529
+ error: [RepoNotFound, RefNotFound],
530
+ }))
531
+ .add(HttpApiEndpoint.get("tree", "/repos/:owner/:repo/trees/:oid", {
532
+ params: RepoPath.pipe(Schema.extend(Schema.Struct({ oid: Oid }))),
533
+ success: Schema.Struct({ oid: Oid, entries: Schema.Array(TreeEntry) }),
534
+ error: [RepoNotFound, ObjectNotFound, WrongObjectType],
535
+ }))
536
+ .add(HttpApiEndpoint.get("blob", "/repos/:owner/:repo/blobs/:oid", {
537
+ params: RepoPath.pipe(Schema.extend(Schema.Struct({ oid: Oid }))),
538
+ success: Schema.Struct({
539
+ oid: Oid, size: Schema.Number,
540
+ encoding: Schema.Literals(["base64"]), content: Schema.String, // ≤ 1 MiB only
541
+ }),
542
+ error: [RepoNotFound, ObjectNotFound, WrongObjectType, ObjectTooLarge], // 422 → use /raw
543
+ }))
544
+ // Raw streaming reads are registered as RAW HttpRouter routes (octet-stream),
545
+ // outside HttpApi schema-land by design (same policy as the git wire endpoints):
546
+ // GET /api/v1/repos/:owner/:repo/blobs/:oid/raw
547
+ // GET /api/v1/repos/:owner/:repo/file?ref=<refname|oid>&path=<path> (tree-walk per segment)
548
+ .middleware(GitAuth);
549
+
550
+ const tokens = HttpApiGroup.make("tokens")
551
+ .add(HttpApiEndpoint.post("create", "/repos/:owner/:repo/tokens", {
552
+ params: RepoPath,
553
+ payload: Schema.Struct({
554
+ name: Schema.String, scope: TokenScope,
555
+ ttlSeconds: Schema.optional(Schema.Int.pipe(Schema.greaterThan(0))),
556
+ }),
557
+ success: CreatedToken,
558
+ error: [RepoNotFound, Forbidden],
559
+ }))
560
+ .add(HttpApiEndpoint.get("list", "/repos/:owner/:repo/tokens", {
561
+ params: RepoPath, success: Schema.Array(TokenInfo), error: [RepoNotFound, Forbidden],
562
+ }))
563
+ .add(HttpApiEndpoint.del("revoke", "/repos/:owner/:repo/tokens/:id", {
564
+ params: RepoPath.pipe(Schema.extend(Schema.Struct({ id: Schema.String }))),
565
+ success: HttpApiSchema.NoContent,
566
+ error: [RepoNotFound, TokenNotFound, Forbidden],
567
+ }))
568
+ .middleware(GitAuth);
569
+
570
+ export const GitApi = HttpApi.make("git-service")
571
+ .add(repos).add(refs).add(objects).add(tokens)
572
+ .prefix("/api/v1");
573
+ ```
574
+
575
+ **Authorization matrix** (enforced in the Repo DO, §8): admin key → everything; repo `admin` token → its repo's write + token create/list/revoke + repo update/delete; `write` → its repo's reads + receive-pack + ref writes; `read` → its repo's reads + upload-pack only. Repo create/list-all/fork/import are admin-key-only.
576
+
577
+ `GitAuthLive` follows `StateAuthLive` exactly: `Layer.effect(GitAuth, ...)` returning `{ bearer, basic }` handlers that wrap the endpoint effect with a `Credentials` provision (Basic: password field is the token, username ignored). Handlers pass `Credentials` to Repo-DO RPCs, which are the enforcement point. Mounting uses the canonical composition — `HttpApiBuilder.layer(GitApi)` + group handler layers + `GitAuthLive` + `[Etag.layer, HttpPlatformStub, Path.layer]` (the `HttpPlatform` stub copied verbatim from `StateStore/Api.ts:333`) + `Layer.merge(rawApi)` + `HttpRouter.toHttpEffect` assigned to `fetch`.
578
+
579
+ ---
580
+
581
+ ## 6. Package layout — `packages/git`
582
+
583
+ Shape: **library-with-deployable-stack**, modeled on `packages/better-auth` — exports Worker/DO classes + the HttpApi contract for users to compose into their own Stacks, plus a canonical Stack factory and an example app.
584
+
585
+ ```
586
+ packages/git/
587
+ package.json # @alchemy.run/git; exports ".", "./*" (types/bun/worker→src, import→lib);
588
+ # peerDeps: alchemy workspace:*, effect catalog:, @cloudflare/workers-types catalog:;
589
+ # devDeps: alchemy-test workspace:*, isomorphic-git (test-only wire client)
590
+ tsconfig.json # composite, extends ../../tsconfig.base.json, refs ../alchemy, paths @/* → src/*
591
+ tsconfig.test.json
592
+ src/
593
+ index.ts # barrel: Api contract, error classes, GitWorker, Repo, Registry, GitService
594
+ Api.ts # §5 verbatim — HttpApi contract + schemas + tagged errors + GitAuth tag
595
+ Auth.ts # Credentials service, GitAuthLive, credential parsing (Basic/Bearer),
596
+ # admin-key timing-safe compare (crypto.subtle.timingSafeEqual)
597
+ GitWorker.ts # class GitWorker extends Cloudflare.Worker<GitWorker>()(...):
598
+ # HttpApi mount, raw routes (git wire, /blobs/:oid/raw, /file),
599
+ # Registry LRU cache, stub.fetch proxying, nodejs_compat + limits.cpu_ms
600
+ RepoObject.ts # class Repo extends Cloudflare.DurableObject<Repo>()("GitRepo") {} + Repo.make(impl):
601
+ # RPC surface (verifyToken, createToken, listTokens, revokeToken,
602
+ # getRepoMeta, updateRepoMeta, listRefs, getRef, updateRef, removeRef,
603
+ # readObject, readCommitLog, readFileAtPath, snapshotRows (Stream),
604
+ # startImport, startFork, startPurge)
605
+ # + fetch (git wire choreography) + alarm (jobs: import/fork/purge/gc)
606
+ # + in-memory push Semaphore
607
+ RegistryObject.ts # class Registry DO: createRepo, resolve, list, forkLineage,
608
+ # bumpForkCount, markDeleted, remove
609
+ Service.ts # GitService(options?): a function returning an Effect the user
610
+ # yields inside their OWN Alchemy.Stack; deploys GitWorker (+ DOs + R2
611
+ # transitively) and returns { worker, url }. No Stack is shipped.
612
+ git/ # pure protocol/codec modules — no DO/R2 imports, unit-testable
613
+ Pkt.ts # pkt-line read/write, flush/delim, ERR pkt; Stream transforms
614
+ Sideband.ts # band-1/2/3 framing transform (65515 cap)
615
+ ObjectCodec.ts # oid hashing (node:crypto sha1, incremental), loose header,
616
+ # commit/tree/tag parse + tree entry sort rules, varints
617
+ Delta.ts # copy/insert delta application, size verification
618
+ PackParser.ts # §3.6 ingest over a RandomAccess source; node:zlib Inflate.bytesWritten
619
+ PackWriter.ts # §3.5 no-delta emitter: header/count, varint+zdata concat, sha1 trailer
620
+ Advertise.ts # v0 advertisement builders (upload/receive capability sets, peeled tags)
621
+ UploadPack.ts # v0 fetch choreography: request parse, negotiation, shallow, closure driver
622
+ ReceivePack.ts # v0 push choreography: command parse, probe, ingest driver,
623
+ # connectivity check driver, report-status
624
+ GzipBody.ts # Content-Encoding: gzip detection + DecompressionStream + 1f8b sniff
625
+ store/
626
+ Sql.ts # DDL (§3.1), typed query helpers, chunked-IN utilities, transactionSync wrappers
627
+ ObjectStore.ts # row/r2/pack placement policy, batched reads, thresholds, staging, r2_key resolution
628
+ Keys.ts # R2 key scheme (§3.2)
629
+ Closure.ts # commit BFS (gen-bounded), tree walk, visited set, depth bounds
630
+ jobs/
631
+ Import.ts # alarm job: git HTTP client against source, PackParser reuse, status flips
632
+ Fork.ts # alarm job: parent snapshotRows Stream → batched inserts, r2_key sharing
633
+ Purge.ts # alarm job: bounded R2 prefix delete loop (fork-count-gated), deleteAll, Registry removal
634
+ test/
635
+ fixtures/stack.ts # user-authored Alchemy.Stack over GitService() — one per suite
636
+ fixtures/packs/*.pack # generated once by real git, checked in (never at test time)
637
+ codec.test.ts # pure: pkt-line, varints, delta apply, object hashing, tree sort
638
+ pack.test.ts # pure: parse/write round-trips against checked-in fixture packs
639
+ GitService.test.ts # REST lifecycle via HttpApiClient against deployed URL
640
+ GitProtocol.e2e.test.ts # real git CLI against deployed URL (§9)
641
+ GitProtocol.wire.test.ts # isomorphic-git in-process client: malformed packs, forced thin REF_DELTA,
642
+ # ERR-pkt / band-3 assertions
643
+ examples/git-service/
644
+ alchemy.run.ts # user-authored Alchemy.Stack yielding GitService()
645
+ package.json # alchemy deploy | dev | destroy | logs | tail
646
+ ```
647
+
648
+ Conventions honored: no `Input<T>` in props; Effect 4 APIs only (`Effect.result` + `Result.*`, `Schema.TaggedErrorClass`, `Schema.Literals`, `Effect.fn`); no `async/await`/raw Node IO in handlers (Effect platform services; sync CPU crypto/zlib wrapped in `Effect.sync` at module boundaries, not per-byte); file-based `main: import.meta.url` (never inline `script` — unsupported in dev); `@/` path alias; test fixtures own their directory; DO RPC methods avoid the reserved name `delete`; JSDoc `@section`/`@example` on exported classes for `bun generate:api-reference` (synthetic provider dir like better-auth).
649
+
650
+ ---
651
+
652
+ ## 7. Core codec plan: write it in Effect; the zlib boundary is `node:zlib`
653
+
654
+ **Reuse verdict: write our own; port algorithms, import nothing (at runtime).** isomorphic-git is Promise-based, filesystem-shaped, and not streaming-safe under 128 MB (it *is* used as a **devDependency test client** for wire-level negative tests); wasm-git drags libgit2 through WASM for a problem that is ~1500 lines of well-specified codec; ripgit's Rust is the right recipe in the wrong language. The wire formats are small, frozen, and exhaustively documented — the risk is in choreography, not codecs, and choreography must be ours anyway. Everything is pure functions / Stream transforms in `src/Git/Protocol/` with zero platform imports, so the entire codec layer unit-tests in plain bun without a deploy. Port with attribution: `applyDelta` (~80 lines) and tree sort-order from isomorphic-git; OFS-delta offset codec cross-checked against ripgit and gitformat-pack.
655
+
656
+ **The zlib boundary (the one platform-sensitive decision), per empirical workerd verification (workerd 1.20260801.1):**
657
+
658
+ | Need | Tool | Why |
659
+ |---|---|---|
660
+ | Pack entry parsing (unknown compressed span) | `node:zlib` `createInflate()` per entry | `end` fires at `Z_STREAM_END` mid-`write` without `.end()`, and `inflate.bytesWritten` reports the **exact compressed bytes consumed** — the only way to find the next entry. Native, one instance per object, cheap. `DecompressionStream` is disqualified: errors on trailing bytes, doesn't report consumption. |
661
+ | One-shot inflate of an exactly-known span (blob reads via index) | `zlib.inflateSync` or `DecompressionStream("deflate")` | Spans are exact so strictness is fine. |
662
+ | Request-body gunzip | `DecompressionStream("gzip")` | Single well-formed stream; pipe-through. Branch on `Content-Encoding: gzip`, sniff `1f 8b` defensively. |
663
+ | Compression at rest | `zlib.deflateSync(content)` (level 6) | Only runs for delta-resolved objects — the ingest fast path stores the pack's compressed span **verbatim** for non-delta entries. |
664
+ | Hashing | `node:crypto` `createHash("sha1")` incremental | Pack trailers and large objects; loose ids hash `"<type> <size>\0" + content`. |
665
+
666
+ `Protocol/PackParser.ts` (via a thin `Zlib` helper) is the **only** module allowed to touch `node:zlib`. No pako, no fflate.
667
+
668
+ Codec inventory: pkt-line reader/writer (65516 payload cap, flush/delim/ERR), sideband mux, type/size varint (little-endian 7-bit), OFS_DELTA offset (big-endian 7-bit **with the +1 bias per continuation** — the classic bug), delta instruction stream (copy/insert, `size==0 ⇒ 0x10000`), tree entry encode/parse with the `foo` < `foo/` directory sort quirk, commit/tag header parsing (continuation lines, gpgsig), pack header/trailer. Each has table-driven unit tests plus round-trip tests against real-git-generated fixture packs checked into `test/fixtures/packs/` (normal, thin, ofs-heavy, ref-delta, big-blob, empty), with `git index-pack --strict` / `git fsck` as the oracle for writer output.
669
+
670
+ ---
671
+
672
+ ## 8. Auth model: nothing inside the engine
673
+
674
+ The engine holds no credentials, no users, and no policy. Who may call
675
+ which route is decided by the `HttpRouter` middleware the user puts in front
676
+ of the routes, before the engine sees a request; the engine's routes
677
+ declare no middleware and no auth errors.
678
+
679
+ Every endpoint in `Api/*.ts` is an Effect `HttpApiEndpoint`.
680
+ The user defines their own API and composes its routes beside Git. `Git.ApiLive` is a native HttpRouter route layer,
681
+ merged beside `HttpApiBuilder.layer(AppApi)` by the application. `Git.ApiHandlersLive`
682
+ supplies the shared implementation. `Git.GroupsLive` exposes default native
683
+ group layers for applications that override a Git handler with
684
+ `HttpApiBuilder.group(Git.Api, ...)` and ordinary `Layer.mergeAll`.
685
+
686
+ The application owns authentication and the HTTP server. Its
687
+ `HttpRouter.middleware` layer applies to whichever public route layers it
688
+ chooses. Schema composition (`addHttpApi`) is independent of route registration.
689
+ There is no Git server wrapper and no application API argument.
690
+
691
+ The application can instead build its own API from the exported groups and
692
+ native `HttpApiMiddleware`. Every group must be built against that actual API.
693
+ Raw handlers still receive middleware-provided services.
694
+
695
+ `Git.Engine` provides transport-independent repository operations. The HTTP
696
+ adapter `ReceivePack.decode` reads bounded commands and retains the streaming
697
+ body. The handler authorizes the proposed refs, calls `preparePush`, optionally
698
+ reads staged objects to validate content, then calls `commitPush`. These are
699
+ scoped, single-use operations. Scope exit aborts uncommitted staging; cleanup
700
+ checks durable commit state before deleting spilled bytes. Git report-status
701
+ encoding lives in the HTTP adapter. There is no policy callback service.
702
+
703
+ Application policy functions use ordinary typed effects, including the request
704
+ user and database services. REST ref updates/removals use `prepareRefUpdate` /
705
+ `prepareRefRemoval`; merges use `prepareMerge`, pinning both inspected tips.
706
+ Applications call the same policies on every exposed write path, including
707
+ GitHub merges. `PushDenied` is encoded as a Git rejection or a typed JSON 403.
708
+
709
+ The push pipeline's internal hash route is not part of `Git.Api`: it is
710
+ `Git.InternalApi`, registered by `Git.InternalApiLive` beside public routes and
711
+ outside the user's middleware; it authenticates with `InternalSecret`, a
712
+ deploy-time `Alchemy.Random` value no user holds.
713
+
714
+ Tokens, users, and sessions are an implementation outside the engine:
715
+ the example uses Better Auth API keys (`@better-auth/api-key`) as the
716
+ git password and Better Auth sessions for browsers, both resolved in its
717
+ one middleware; anonymous callers read public repositories (the
718
+ middleware asks `Git.RegistryStore`). The test fixtures do the same with
719
+ two shared secrets. There is no tokens table and no admin key.
720
+
721
+ ---
722
+
723
+ ## 9. v1 test plan sketch
724
+
725
+ **Tier 1 — pure codec (no cloud, milliseconds):** `codec.test.ts` / `pack.test.ts` in plain alchemy-test. Table-driven pkt-line/varint/delta/tree-sort cases; parse→write→parse round-trips on checked-in fixture packs (generated once by real `git pack-objects`, committed — never generated at test time); thin-pack resolution against a fixture object store; the OFS +1-bias multi-byte offset case; the `0x10000` copy-size case; tree-sort fsck cases; zlib-boundary accounting (concatenated streams, trailing junk, mid-chunk `Z_STREAM_END`); PackWriter output accepted by `git index-pack --strict`.
726
+
727
+ **Tier 2 — deployed REST (`GitService.test.ts`):** standard harness —
728
+
729
+ ```ts
730
+ const { test, beforeAll, afterAll, deploy, destroy } = Test.make({
731
+ providers: Cloudflare.providers(), state: Cloudflare.state() });
732
+ const stack = beforeAll(deploy(Stack)); // fixtures/stack.ts
733
+ afterAll.skipIf(!!process.env.NO_DESTROY)(destroy(Stack));
734
+ ```
735
+
736
+ `HttpApiClient.make(GitApi, { baseUrl: url })` driving: create repo (admin key) → `RepoCreated` carries a working bootstrap token → 409 on duplicate → PATCH description/readOnly → mint read/write tokens → token list is masked → refs empty on fresh repo → REST ref update with CAS (`RefConflict` on stale `expectedOid`, `ObjectNotFound` on bogus oid, `ReadOnlyRepo` when flagged) → typed 404s decode as the tagged classes → token TTL expiry (60 s + bounded `Effect.repeat` poll) and revocation → 401/403 after → delete → `status: "deleting"` → eventual 404. First requests retried through edge propagation (`Schedule.spaced("1500 millis"), times: 40`). Deterministic repo names; pre-test purge of leftovers (delete-if-exists before create).
737
+
738
+ **Tier 3 — real git CLI e2e (`GitProtocol.e2e.test.ts`, the money suite):** deploys the same stack; drives the actual `git` binary via the Effect platform `Command` service against `https://x:${token}@${host}/${owner}/${repo}.git`, work-trees under `FileSystem.makeTempDirectory` (Effect platform services only — no `node:fs`). Every step wrapped in bounded retries/timeouts per the speed doctrine (per-test ≤ 120 s):
739
+
740
+ 1. **Empty-repo clone** — clone succeeds, warns empty, correct default branch (symref/unborn behavior).
741
+ 2. **First push** — init, 3 commits (incl. an executable file, a symlink, a subdirectory), `git push` → `ok` report; REST `refs` + `commits/:oid` + `trees/:oid` + `/file` agree with `git rev-parse`/`git ls-tree`/`git show` byte-for-byte.
742
+ 3. **Clone-back + fsck** — fresh clone, `git fsck --strict` clean, `git log` matches. (Transitively proves advertisement, negotiation, pack emission, object round-tripping.)
743
+ 4. **Incremental fetch** — push 2 more commits from clone A; `git fetch` in clone B; fast-forward merge; content identical (asserts the haves/ACK path, not just re-clone).
744
+ 5. **CAS / force push** — non-FF push rejected (`ng fetch first`), then `push --force` succeeds; fetch-after-force-push works in the other clone. **CAS race**: two clones push conflicting updates concurrently → exactly one `ok`, one `ng`; `--atomic` batch is all-or-nothing.
745
+ 6. **Concurrent push serialization** — two parallel pushes to one repo → both eventually succeed (semaphore wait) or the second sees 503 + retry; never a corrupted repo.
746
+ 7. **Branch + tag lifecycle** — push new branch, push **annotated** tag (round-trips as a tag object, peeled `^{}` in advertisement — ripgit's silent-drop bug is a named regression test), `git push --delete` both.
747
+ 8. **Shallow** — `git clone --depth 1` succeeds; `git fetch --deepen 1` extends it.
748
+ 9. **Large blob** — commit a 3 MiB random binary (deterministic seed), push, clone back, byte-identical (exercises `location='r2'` both directions).
749
+ 10. **Big-ish push** (`skipIf(process.env.FAST)`) — ~2 000 deterministic commits (fixture script, cached tarball) push and clone within timeout (exercises thin-pack ingest with deep delta chains).
750
+ 11. **readOnly** — flag repo readOnly, push → per-ref `ng`; unflag, push succeeds.
751
+ 12. **Auth matrix** — read token clones but push → 403/`ng`; garbage token → 401 + git auth-retry stderr; token in remote URL works.
752
+ 13. **Fork + import** — fork, poll `status` via `Effect.repeat` until `ready`, clone fork, histories identical, push divergent commit to fork → parent unaffected; **delete parent → fork still clones** (R2 fork-retention pin). Import from a sibling repo in the same deployment (avoids external flake), verify refs; optionally a small public repo depth-limited.
753
+ 14. **Cleanup pin** — `stack.destroy()` at suite end; out-of-band distilled verification that the R2 prefix and Registry rows are gone (leak = provider bug by definition).
754
+
755
+ **Tier 3b — wire-level negative tests (`GitProtocol.wire.test.ts`):** isomorphic-git as an in-process HTTP client for cases needing byte-level control without shelling out: truncated pack → checksum `ng`; forced thin REF_DELTA against known base; pack referencing a missing tree → connectivity-check `ng`; oversize pack → clean in-band 50 MiB rejection; `ERR` pkt / band-3 assertions.
756
+
757
+ Per house rules: `bun run test test/... --profile testing` wrapped in `timeout 240`; `Effect.repeat` with bounded schedules for all polling (never `while(Date.now())`); deterministic names (never `Date.now()`); `NO_DESTROY=1` for local iteration.
758
+
759
+ ---
760
+
761
+ ## 10. Cut list & v2 seams
762
+
763
+ Every cut, its consequence, and the seam that makes it additive (seams marked **▲** are already load-bearing columns/interfaces in v1's shape):
764
+
765
+ | Cut | Consequence | Upgrade path |
766
+ |---|---|---|
767
+ | Protocol v2 | None visible — clients fall back to v0 silently | Additive: branch on `Git-Protocol: version=2` in `info/refs`, add `ls-refs` + `fetch` command handlers over the same `Closure` + `PackWriter` code. Advertisement/choreography are per-version files — a new file, not a rewrite. |
768
+ | ▲ Pack compaction / R2 packs (v1.1) | DO storage cost 13× R2 until it lands; 1 M-object manifest cap | `objects.location='pack'` + `pack_id`/`pack_offset` columns exist; emitter dispatches on location; alarm scaffolding present. Clone fast-path then streams whole entry-regions from R2 (B's verbatim-region trick — OFS offsets are entry-relative, so contiguous regions copy safely). |
769
+ | ▲ Streaming push > 50 MiB | Large initial pushes rejected (clean in-band report) | `PackParser` is written against `RandomAccess`; swap the memory buffer for an R2-multipart tee + ranged-read re-resolution. Plan body caps (100 MB Pro) remain the outer bound. |
770
+ | `thin-pack` / `ofs-delta` in **served** packs | Fatter fetches (~1.3–2×, no cross-object compression) | Delta-aware writer, or serve compaction packs (which may carry deltas) verbatim for clones. |
771
+ | `filter` (partial clone) | v0 clients warn and ignore; `--filter` unavailable | Advertise `filter`; `blob:none`/`blob:limit` are manifest predicates — the walk already knows types/sizes. |
772
+ | `include-tag` | Clients cope (fetch tags explicitly) | Tag-closure step in `Closure`. |
773
+ | `deepen-since` / `deepen-not` / `deepen-relative` (`git fetch --deepen`) | Rare flags fail (absolute `--depth <n>` deepening works) | ▲ `commits.commit_time` already stored; add walk predicates. |
774
+ | Multi-round minimal negotiation | Slightly fat incremental fetches (boundary snapshot redundancy) | ▲ Real common-ancestor negotiation over `commits`/`commit_parents` + `gen` — all data present. |
775
+ | `packfile-uris` | — | Natural once compacted packs exist: presigned R2 URLs for whole packs. |
776
+ | push-cert, push-options | Not advertised ⇒ clients don't send them | Add protocol parsing and expose decoded data to application handlers. |
777
+ | Force-push / branch protection | Any write token can force-push | Policy table consulted inside the existing CAS `transactionSync` — pure addition. |
778
+ | Object-level GC | Unreachable objects persist (storage is the cheap resource) | Reachability sweep in the GC alarm; fork-aware deletion needs the refcount ledger below. |
779
+ | Shared-pack refcount ledger | Fork-retention rule is coarse (`fork_count > 0` retains the whole prefix forever) | Registry-maintained per-key refcounts on fork/delete → precise shared-object GC. |
780
+ | Dumb HTTP | None (modern git never falls back when smart content-types are correct) | Never. |
781
+ | SHA-256 repos | `object-format=sha1` advertised; mismatch rejected with `ERR` | ▲ `Oid` is branded; widen schema + dual hashing. |
782
+ | LFS | Large files ride normal objects up to the 64 MiB cap | LFS Batch API as an independent REST group + R2 streaming (chr33s reference); keys `{repoId}/lfs/<sha256>` reserved. |
783
+ | Registry sharding / global listing at scale | Singleton Registry serializes control-plane writes | ▲ `getByName("registry:" + owner)` — RPC interface unchanged. |
784
+ | Users / orgs / OAuth / public repos | Single admin key + capability tokens only | ▲ `Credentials` Context service boundary; edge-auth worker via service binding. |
785
+ | Cheap forks / big-repo import | Fork copies parent row bytes; import capped at 50 MiB pack | Falls out of compaction (bytes in shared R2 packs) + streaming ingest — both seams above. |
786
+ | PRs / issues / review | — | New tables in the Repo DO (it already holds the commit graph; merge-bases are `commit_parents` BFS), new HttpApi groups; the REST layer grows by group addition, not restructuring. |
787
+
788
+ ---
789
+
790
+ *Implementable from this document plus the repo: start with `src/Git/Protocol/` (Tier-1 tests green offline), then `Store/`, then `RepoObject.ts` choreography, then the Worker/API mount, then the e2e suite. `packages/alchemy/src/Cloudflare/StateStore/Api.ts` is the mounting reference; `test/Cloudflare/Workers/fixtures/http-api/` is the Worker+DO+R2 reference; `packages/better-auth` is the packaging reference.*
791
+ ---
792
+
793
+ # Part II — v2: scaling to enormous repositories
794
+
795
+ v1 is deliberately one Durable Object per repo holding **everything**: refs,
796
+ the object index, and the object bytes. That buys transactional ref CAS for
797
+ free and is provably correct (Part I), but it caps out on two axes:
798
+
799
+ - **Storage** — DO SQLite is 10 GB, so bytes-in-rows caps a repo at ~10 GB.
800
+ - **Bandwidth** — every clone byte transits one single-threaded DO in one
801
+ datacenter. No horizontal read scaling, no geographic spread.
802
+
803
+ The v2 insight: **a git repo is 99.9% immutable content-addressed bytes and
804
+ 0.1% mutable transactional state.** Immutable content-addressed data needs
805
+ *zero* coordination, so it should never live behind a coordination point.
806
+ Sharding the DO would be solving a problem we should not have. Instead,
807
+ split the planes.
808
+
809
+ ## 11. The three planes
810
+
811
+ | Plane | Home | Holds | Scales by |
812
+ |---|---|---|---|
813
+ | **Refs** (mutable) | Repo DO | refs, tokens, config, push staging, commit graph | Nothing needed — kilobytes; the only thing that requires serialized CAS |
814
+ | **Objects** (immutable) | R2 | content-addressed packs + pack indexes + clone bundles | R2 (unbounded, immutable keys, no per-key write contention) |
815
+ | **Serving** (stateless) | Workers + Cache API | advertisement, negotiation, pack streaming | Per-PoP: every datacenter serves independently |
816
+
817
+ The DO stays the authority for "what is the current tip", which is the only
818
+ question that needs an authority. Everything else is content-addressed and
819
+ therefore cacheable, shareable, and replicable without coordination.
820
+
821
+ ### 11.1 Why this is the right shape
822
+
823
+ This is the same refs-in-database + objects-in-blob-store architecture that
824
+ GitHub (Spokes), GitLab (Gitaly + object storage), and AWS CodeCommit
825
+ (DynamoDB + S3) converged on, expressed in Cloudflare primitives. The
826
+ difference from v1 is not "more machines" — it is *removing the byte path
827
+ from the coordination point*.
828
+
829
+ ### 11.2 Request flows after v2
830
+
831
+ ```
832
+ clone (warm) client → Worker → Cache API hit (DO: 0 calls, R2: 0 gets)
833
+ clone (cold) client → Worker → DO.planClone (refs only, ~1 KB)
834
+ → R2 GET bundle → stream to client (DO: 1 tiny RPC)
835
+ fetch (incr.) client → Worker → DO.planFetch (negotiate on the
836
+ commit graph) → R2 ranged reads (DO: 1 tiny RPC)
837
+ push client → Worker → DO (ingest + CAS, unchanged) (serialized, by design)
838
+ ```
839
+
840
+ ## 12. Object plane: packs, indexes, bundles
841
+
842
+ ### 12.1 Compaction (loose rows → R2 packs)
843
+
844
+ An alarm fires when `SUM(zsize) WHERE location='row'` exceeds **1 GB** or the
845
+ live loose count exceeds **50 000**. It streams a no-delta pack of the
846
+ oldest N objects to R2 via multipart (5 MiB parts), then flips those rows to
847
+ `location='pack'` with `pack_id`/`pack_offset` in one `transactionSync` and
848
+ NULLs their `zdata`.
849
+
850
+ Because objects are stored **pre-deflated** (v1's decision, made for CPU
851
+ reasons), a pack is literally `varint header + zdata` concatenated — so
852
+ compaction is a copy, not a recompression, and `pack_offset` points at a
853
+ byte span that can be served by an R2 ranged read verbatim.
854
+
855
+ Keys are content-addressed and immutable:
856
+
857
+ ```
858
+ {repoId}/packs/pack-{sha1}.pack compacted objects (immutable)
859
+ {repoId}/bundles/bundle-{refsHash}.pack full-clone bundle (immutable)
860
+ {repoId}/objects/{oid} oversize loose objects (v1, unchanged)
861
+ ```
862
+
863
+ **Only blobs are packed (DESIGN §22).** `Compact.ts` selects `type = 3`
864
+ rows exclusively; commits, trees and tags stay `location='row'` in SQLite
865
+ for the life of the repo, and the REST `ObjectStats` reports them as
866
+ `resident` (distinct from `loose`, which is now *blobs awaiting
867
+ compaction*). The reason is the fetch path: the want→have closure is a
868
+ tree walk, and a tree walk over pack storage is the worst access pattern
869
+ a window cache can see — trees are tiny and, packed in oid order, land in
870
+ every 4 MiB window of every pack. On a 15.6k-object repo that walk alone
871
+ cost 12 s of TTFB after batching (27 s before). Over rows it is a handful
872
+ of batched `SELECT ... IN` calls. Commits and trees are a few percent of a
873
+ repo's bytes, so keeping them local buys sub-second negotiation for every
874
+ incremental fetch at negligible SQLite cost.
875
+
876
+ ### 12.2 Clone bundles
877
+
878
+ A clone is, on the wire, exactly one pack containing the closure of the
879
+ advertised refs. v1 recomputes that pack per clone. A **bundle** computes it
880
+ once, after pushes settle (debounced alarm), and stores it under a key
881
+ derived from the ref snapshot it covers (`refsHash`).
882
+
883
+ Serving a clone then becomes: match the request's wants against the current
884
+ advertisement, and if they agree, stream the bundle bytes. No closure walk,
885
+ no per-object reads, no compression — and the bytes are immutable, so the
886
+ Cache API can serve them from every PoP.
887
+
888
+ Staleness is handled in three escalating tiers:
889
+
890
+ 1. **Exact match** (v2.0) — bundle covers exactly the current refs → stream
891
+ it; otherwise fall back to dynamic assembly. Hot repos with bursty clone
892
+ traffic (CI fleets cloning the same tip) hit this nearly always.
893
+ 2. **`packfile-uris`** (v2.1, needs protocol v2) — the server hands the
894
+ client a CDN URL for the big pack and sends only the remainder in-band.
895
+ The bundle no longer has to be current, only *mostly* current.
896
+ 3. **`bundle-uri`** (v2.2, git ≥ 2.38) — advertise a base bundle plus
897
+ incrementals with `creationToken`s; the client fetches them all from
898
+ cache and then does an ordinary incremental fetch. Server work per clone
899
+ collapses to a tiny negotiation.
900
+
901
+ Bundles are derived data: GC keeps the newest base plus K incrementals and
902
+ deletes older ones lazily. Because keys are content-addressed, a new bundle
903
+ never overwrites an in-flight one.
904
+
905
+ ### 12.3 The object index at scale
906
+
907
+ If the index itself outgrows the DO (~10M+ objects), the answer is again not
908
+ a shard: the **pack index files in R2 are the index** (binary-searchable by
909
+ oid), and the oid's own hash prefix is a perfectly uniform partition key if
910
+ they ever need splitting. Content addressing *is* the trie — there is no
911
+ tree structure to invent.
912
+
913
+ ## 13. Serving plane: Workers + Cache API
914
+
915
+ - **Advertisement caching.** `GET /info/refs` output changes only on push,
916
+ so it is cached under a key derived from the repo id + refs hash and
917
+ purged on push. A clone storm then costs the DO ~one call *per push*
918
+ rather than one per clone.
919
+ - **Worker-side clone fast path.** The Worker asks the DO for a *plan*
920
+ (`planClone`: refs snapshot + bundle key, ~1 KB) and, when the plan says
921
+ "bundle", streams R2 → client itself, framing sideband as it goes. The DO
922
+ never touches a pack byte.
923
+ - **Dynamic fetches** stay proxied to the DO in v2.0 (they need the commit
924
+ graph); v2.1 moves negotiation to the Worker over a cached commit-graph
925
+ file, leaving the DO purely as the ref authority.
926
+
927
+ ## 14. Scaling model (napkin math)
928
+
929
+ Everything is per-repo; repos are independent DOs, so fleet capacity is the
930
+ sum. These are estimates derived from platform limits and architecture, not
931
+ measurements — §15 is the plan to replace them with numbers.
932
+
933
+ | Dimension | v1 (as built) | v2 (this design) | Bound by |
934
+ |---|---|---|---|
935
+ | Clone bandwidth (per repo) | ~50–100 MB/s aggregate | edge line rate; Tbps-class aggregate | v1: one DO streams every byte. v2: immutable bytes in cache/R2 |
936
+ | Clone TPS (per repo) | ~50–200/s | 10k+/s | v2: advertisement cached; DO called ~once per push |
937
+ | Incremental fetch | ~1–5 s CPU per 1M-object closure | ms for recent tips | commit graph + (v2.1) bitmaps |
938
+ | Push TPS (per repo) | ~3–10/s | ~5–20/s | **Inherent**: a ref is a serialization point in git's own semantics |
939
+ | Repo size | ~10 GB | unbounded (R2) | DO SQLite cap lifted off the byte path |
940
+ | Push size | 50 MiB | unbounded | `RandomAccess` seam → R2 multipart tee |
941
+
942
+ **v2 makes reads scale like a CDN and leaves writes scaling like git** —
943
+ which is the correct place to land, because git's semantics cap per-ref
944
+ write concurrency regardless of who hosts it.
945
+
946
+ ## 15. Remaining bottlenecks (ranked) and how each is measured
947
+
948
+ 1. **Cold closure computation on enormous repos.** A 10M-object visited set
949
+ as a JS `Set` is ~400 MB–1 GB, over the Worker's 128 MB. Fix is git's own:
950
+ binary commit-graph + **reachability bitmaps** (EWAH), turning a 10M-node
951
+ walk into bitmap ANDs over a few MB. This is the hardest real engineering
952
+ on the path to enormous repos.
953
+ 2. ~~**Subrequest limit (1000) vs. fragmented packs.**~~ **Addressed**
954
+ (§16.2): pack reads are served from window-aligned slabs, so a fetch
955
+ costs a handful of R2 GETs rather than one per object (68.2 s → 1.16 s
956
+ on a 1202-object pack). Remaining work is pack *ordering* — laying out
957
+ compaction output so a typical fetch touches few windows — which is an
958
+ optimization now rather than a cliff.
959
+ 3. **Per-repo push serialization.** Inherent (see above); measured, not
960
+ fixed.
961
+ 4. **Registry singleton** — ~500 control-plane ops/s globally. Resolve
962
+ caching shields reads; `getByName("registry:" + owner)` shards writes.
963
+ 5. **First-byte latency for distant clients** — the refs DO lives in one
964
+ datacenter. Cached advertisements hide most of it; location hints place
965
+ hot repos near their users.
966
+ 6. **R2 write throughput during compaction/bundling** — a large repack is
967
+ minutes of alarm work; must use the bounded-per-run + re-arm pattern the
968
+ purge job already uses (15-minute alarm budget).
969
+
970
+ Each gets a benchmark in `test/GitBench.e2e.test.ts` (§16) so the table
971
+ above becomes measured numbers rather than estimates.
972
+
973
+ ## 16. Measured (test/GitBench.e2e.test.ts, deployed, SCALE=1)
974
+
975
+ Run: `bun run test test/GitBench.e2e.test.ts --profile testing`
976
+ (`BENCH_SCALE=4` for 4× workloads). Each case asserts only correctness and
977
+ prints a line, so a slow datacenter minute can never fail the suite.
978
+
979
+ ### 16.1 End-to-end (via the `git` CLI, so client cost is included)
980
+
981
+ | Measurement | Result | Reading |
982
+ |---|---|---|
983
+ | push 300 commits | 2.0 s (147 commits/s) | one push, ingest-dominated |
984
+ | clone — dynamic closure walk | 1.17 s | v1 path: walk + per-object reads |
985
+ | **clone — R2 bundle** | **0.44 s** | **2.7× faster** |
986
+ | clone — fully packed repo (ranged R2 reads) | 0.60 s | compaction costs ~35% vs bundle, still beats dynamic |
987
+ | incremental fetch (1 commit) | 477 ms | 2 round trips + negotiation |
988
+ | 8 concurrent clones, 256 KiB each | 9.9–10.7 clones/s | bound by `git` process spawn + TLS, **not** by the server |
989
+ | 10 serial pushes (same branch) | 4.6 pushes/s | the predicted per-ref serialization floor |
990
+ | 4 concurrent pushes (distinct branches) | 9.2 pushes/s | DO semaphore serializes ingest, by design |
991
+ | 10 concurrent repo creates | 7.9–12 creates/s | Registry singleton |
992
+ | repo GET (resolve-cached) | 25 ms | in-isolate cache hit |
993
+ | repo LIST, 13 rows → 14 rows | **416 ms → 27 ms** | **15×** after fixing the N+1 (below) |
994
+ | compact 202 loose objects → R2 | 0.9 s | ~220 objects/s |
995
+
996
+ ### 16.2 Server capacity — the v2 claim, measured
997
+
998
+ Driving `git-upload-pack` over raw HTTP removes the client from the
999
+ measurement. Comparing the bundle path against the dynamic closure walk
1000
+ (forced by sending a `have` the server does not know, which disqualifies
1001
+ the bundle while producing the identical pack) is like-for-like:
1002
+
1003
+ | Concurrency | dynamic closure walk (v1 path) | R2 bundle via Worker (v2 path) |
1004
+ |---|---|---|
1005
+ | 1 | 4.7 clones/s, 2.4 MiB/s | 5.4 clones/s, 2.7 MiB/s |
1006
+ | 8 | 17.2 clones/s, 8.7 MiB/s | 17.9 clones/s, 9.1 MiB/s |
1007
+ | **32** | **20.2 clones/s, 10.2 MiB/s** | **62.1 clones/s, 31.5 MiB/s** |
1008
+
1009
+ Dynamic fetch over a **compacted** repo (1202 objects in one R2 pack), the
1010
+ case bottleneck #2 warned about:
1011
+
1012
+ | | |
1013
+ |---|---|
1014
+ | one ranged GET per object (naive) | **68.2 s** for a 53 KiB fetch |
1015
+ | coalesced window reads | **1.16 s** (59×) |
1016
+
1017
+ Reading a pack object-by-object costs one serialized R2 round trip each.
1018
+ Window-aligned slabs (4 MiB, ≤6 retained) mean touching any object fetches
1019
+ its whole neighbourhood once, so a small pack collapses to a single GET —
1020
+ and the Workers subrequest budget stops being a correctness cliff.
1021
+
1022
+ This is the design's central claim, measured. The dynamic path **saturates
1023
+ at ~20 clones/s** — one Durable Object's single-threaded ceiling, and more
1024
+ load does not improve it — while the bundle path keeps scaling with
1025
+ concurrency (3.1× at 32-way, still climbing). Serialized planes flatten;
1026
+ immutable content-addressed bytes served by Workers do not.
1027
+
1028
+ ### 16.3 Real world: this repository (test/GitRealWorld.e2e.test.ts)
1029
+
1030
+ The strongest test we have is pushing the alchemy monorepo itself — a
1031
+ depth-1 tree re-committed as one root commit, which keeps the real object
1032
+ count and byte volume while staying fully connected (pushing from a shallow
1033
+ clone would reference parents the server does not have, which receive-pack
1034
+ correctly refuses):
1035
+
1036
+ | Step | Result |
1037
+ |---|---|
1038
+ | push 12,315 files / 13,699 objects / 38.1 MiB | 20.6 s |
1039
+ | clone back, loose objects | 19.5 s |
1040
+ | **clone back after compaction (R2 packs)** | **3.4 s — 5.7×** |
1041
+ | `git fsck --strict`, HEAD and tree oid equality | identical |
1042
+ | incremental push on top | works |
1043
+
1044
+ Compaction making clones **5.7× faster** on a real repo is the v2 storage
1045
+ plane paying off end to end: the same objects, read as a few large ranged
1046
+ GETs out of an immutable pack instead of thousands of row reads.
1047
+
1048
+ Verification note: the suite deliberately does **not** `diff -r` the two
1049
+ working trees. Tree-oid equality is the stronger and correct assertion —
1050
+ identical tree oids mean every path, mode and blob matches — whereas a
1051
+ directory diff also compares things git does not track (empty directories,
1052
+ submodule mount points), which legitimately differ between a working tree
1053
+ and a fresh clone of it.
1054
+
1055
+ ### 16.4 Push size: the cap is gone, the large path needs a cursor
1056
+
1057
+ A push larger than the in-memory threshold is **no longer rejected**. The
1058
+ body is parked in R2 and parsed back through `Store/PackSource.ts`, an
1059
+ R2-backed `RandomAccess` with window-coalesced reads — the seam
1060
+ `PackParser` was written against from the start. The DO's ingest now runs
1061
+ on `PackParser` (which the pack fixtures cover directly) rather than its
1062
+ own buffer-only copy.
1063
+
1064
+ Getting there took one real fix. `PackParser` read **the entire remainder
1065
+ of the pack for every entry** (`source.read(offset, dataEnd - offset)`).
1066
+ On a buffer that is free — a subarray view — which is why nobody noticed;
1067
+ against R2 it copies ~19 MiB per entry, so a 13.7k-object pack moved
1068
+ hundreds of gigabytes and blew a 600 s timeout. Entries are a few KiB, so
1069
+ the parser now reads a bounded 512 KiB window and grows it only for the
1070
+ rare object whose compressed stream runs past it.
1071
+
1072
+ | 38 MiB alchemy push | before | after |
1073
+ |---|---|---|
1074
+ | via R2 (streamed ingest) | >600 s (timeout) | **44.4 s** |
1075
+ | in memory | 20.6 s | 20.6 s |
1076
+
1077
+ So the R2 path costs about **2×** memory rather than 30×, and the
1078
+ threshold ships at 32 MiB — comfortably inside a 128 MB isolate, covering
1079
+ the overwhelming majority of pushes at full speed, with anything larger
1080
+ merely slower instead of refused.
1081
+
1082
+ ### 16.5 Public repos — anonymous read access
1083
+
1084
+ Repos carry a `public` flag (GitHub's model). Tokenless callers are
1085
+ `{ kind: "anonymous" }` in `CallerAuth` and get exactly one grant: `read`
1086
+ on repos whose flag is set — REST reads, raw file/blob routes, the
1087
+ advertisement, and `upload-pack` (tokenless `git clone`). Writes, token
1088
+ management, and everything on private repos still require a token;
1089
+ anonymous wire requests to private repos answer `401 + WWW-Authenticate`
1090
+ so git prompts. Listing is visibility-filtered: the admin key sees all
1091
+ rows, everyone else sees `is_public = 1` only (denormalized into the
1092
+ Registry, like the other list columns). Enforcement stays in the Repo DO
1093
+ (`authorize`/`wireAuth`) — the Worker middleware only parses credentials,
1094
+ and a missing `Authorization` header now parses to anonymous instead of
1095
+ 401.
1096
+
1097
+ ### 16.5 The push cap was still there — request buffering
1098
+
1099
+ Pushing the **full alchemy history** (~100 MiB pack) found the residual
1100
+ cap: the DO read the request with `request.arrayBuffer`, materializing the
1101
+ whole body inside the 128 MB isolate before any parsing — OOM, 500, after
1102
+ ~7 s. Everything downstream (R2 parking, windowed parsing) was already
1103
+ size-independent; the *receive* wasn't.
1104
+
1105
+ The fix is `Store/IncomingBody.ts`: the body is consumed as a stream.
1106
+ Bodies that finish within `MAX_PACK_BYTES` return as one buffer (the fast
1107
+ path); the moment the threshold is crossed, everything received and
1108
+ everything still arriving spills to R2 via **multipart upload** in uniform
1109
+ 8 MiB parts, so peak memory is ~threshold + one part no matter how large
1110
+ the push. A 1 MiB head is retained for the pkt-line command section, and
1111
+ the pack is parsed back off R2 through `sliceRandomAccess` + windowed
1112
+ reads. gzip bodies (git only gzips requests it fully buffered, i.e. small
1113
+ ones) keep the buffered path; a spilled gzip body is rejected in-band.
1114
+
1115
+ Measured, full alchemy `main` (44,051 objects, 67 MiB thin pack):
1116
+
1117
+ push: 92 s wall — server ingest 76.8 s (SQL 5.7 s)
1118
+ clone back: 50.6 s, 152.8 MiB; `git fsck --strict` clean, HEAD identical
1119
+
1120
+ Also worth recording: Cloudflare's edge caps request bodies at 100 MB on
1121
+ most plans, so beyond that git needs its transfer split (`git push` per
1122
+ ref / partial history first) regardless of what this service does.
1123
+
1124
+ ### 16.6 Ingest batching, and what it revealed
1125
+
1126
+ Staging cost **two statements per object** — an existence probe and an
1127
+ insert — so a 13.7k-object push ran ~27k statements and ~13.7k transactions
1128
+ inside one single-threaded Durable Object. Ingest now stages in batches of
1129
+ 256 (or 8 MiB) via a single `transactionSync` with `INSERT OR IGNORE` (no
1130
+ probe), adopting crashed-push rows with one chunked `UPDATE`, and the
1131
+ parser hands the sink its already-inflated bytes so commits/trees are not
1132
+ inflated twice.
1133
+
1134
+ 38 MiB alchemy push via R2: 44.4s -> 37.4s
1135
+ clone back: 18.5s -> 16.6s
1136
+
1137
+ A 16% win, not the 5x the statement count suggested — which is the useful
1138
+ result: **transaction commits were not the dominant cost**. What remains is
1139
+ per-object work that batching cannot remove (inflate, sha1, one statement
1140
+ each, Effect frames) plus, importantly, *client-side* cost the measurement
1141
+ does not separate: `git push` also packs 13.7k objects locally and uploads
1142
+ 38 MiB over the tester's uplink. Isolating server ingest needs either
1143
+ server-side timing or a loopback baseline — until then these numbers are an
1144
+ upper bound on server cost, not a measurement of it.
1145
+
1146
+ The deeper point is that this work is **serial by construction**: one repo
1147
+ is one Durable Object, and a push is one request to it. No amount of
1148
+ horizontal Worker/R2 scale touches it. Making a single large push
1149
+ dramatically faster requires parallelism *within* the repo — see §17.
1150
+
1151
+ ### 16.7 What the measurements corrected
1152
+
1153
+ 1. **`repos.list` was O(N) Durable Object wakes** — the handler fanned out
1154
+ `getRepoMeta` per row, so listing 100 repos woke 100 DOs. **Fixed**:
1155
+ `default_branch` / `read_only` / `status` are denormalised onto the
1156
+ registry row (the Repo DO pushes them on change and remains the source
1157
+ of truth). 416 ms → 27 ms. Live `objects` stats still need the DO, so a
1158
+ listing reports zeros there and callers who want them read the repo
1159
+ directly. Note for future schema work: the Registry needed an explicit
1160
+ `ALTER TABLE` migration, because `CREATE TABLE IF NOT EXISTS` silently
1161
+ leaves an existing table's columns alone.
1162
+ 2. **Small-clone throughput is round-trip-bound, not bandwidth-bound.** At
1163
+ 256 KiB per clone the git client's process spawn plus two HTTP round
1164
+ trips dominate, so the bundle win shows up as latency; the bandwidth
1165
+ ceiling only appears under raw concurrency (§16.2) or on much larger
1166
+ repos.
1167
+ 3. **Advertisement caching is deliberately NOT implemented.** A TTL cache
1168
+ on `info/refs` would make "push, then fetch from another machine"
1169
+ unreliable for the length of the TTL — a real correctness regression for
1170
+ CI. Doing it properly means an epoch the Worker can read without asking
1171
+ the DO (Cache API entry purged on push), which is a v2.1 item; the
1172
+ remaining per-clone DO cost is two small RPCs, and §16.2 shows that is
1173
+ not the ceiling.
1174
+
1175
+ ---
1176
+
1177
+ # Part III — v3: the maximum-performance DO architecture
1178
+
1179
+ ## 17. Why v2 still has a floor
1180
+
1181
+ v2 made *reads* scale (immutable bytes served by Workers from R2) and left
1182
+ *writes* where git semantics put them. But the measurements in §16 expose a
1183
+ floor that no amount of horizontal scale removes:
1184
+
1185
+ - one repo = one Durable Object = **one thread**;
1186
+ - a push is **one request** to it;
1187
+ - ingest is ~13.7k objects × (inflate + sha1 + one statement + Effect
1188
+ frames), strictly serial.
1189
+
1190
+ Batching transactions bought 16% (§16.5) — proof that the remaining cost is
1191
+ per-object work, not commit overhead. Making a large push an order of
1192
+ magnitude faster requires parallelism **inside the repo**.
1193
+
1194
+ The enabling observation: a repo holds two kinds of state with completely
1195
+ different constraints.
1196
+
1197
+ | | mutability | ordering | consequence |
1198
+ |---|---|---|---|
1199
+ | refs, tokens | mutable | CAS, strictly serialized | must live in one DO |
1200
+ | objects | **immutable, content-addressed** | **none whatsoever** | can be written anywhere, in any order, in parallel |
1201
+
1202
+ Object writes are serialized today only because they share a DO with the
1203
+ refs. That serialization is *accidental*, not essential.
1204
+
1205
+ ## 18. Target architecture
1206
+
1207
+ | Tier | Instances | Holds | Why here |
1208
+ |---|---|---|---|
1209
+ | **Worker** | horizontal | pack parsing (inflate + sha1), fan-out, response assembly | stateless CPU; parsing has no reason to sit in a coordination point |
1210
+ | **Ref DO** | 1 / repo | refs, tokens, commit graph, push staging state, CAS | the only thing git forces to serialize |
1211
+ | **Object shard DO** | N / repo, by oid prefix | content-addressed objects (hot tier) | independent writes ⇒ N-way parallel; N × 10 GB ceiling |
1212
+ | **R2** | — | compacted packs, clone bundles | immutable bulk, ranged reads, no egress |
1213
+
1214
+ **Sharding key: the oid itself.** An oid is a uniform hash, so a fixed
1215
+ 2-hex-char prefix distributes perfectly with zero rebalancing. A trie or
1216
+ dynamic split solves skewed key distributions — a problem content
1217
+ addressing does not have. Fix `N = 256` at repo creation and never reshard:
1218
+ 256 × 10 GB = 2.5 TB per repo.
1219
+
1220
+ **Why fan-out is safe.** Staging across shards is not atomic and does not
1221
+ need to be: objects are immutable and content-addressed, so a partial write
1222
+ is inert (worst case some staged rows are GC'd). The only atomic step is
1223
+ the ref CAS in the ref DO, which runs after the connectivity check passes.
1224
+ Sharding never touches the consistency-critical path.
1225
+
1226
+ **Cost shape.** DO *instances* are not billed; requests, active duration and
1227
+ storage are. Fan-out means one RPC per shard **touched** (objects batched
1228
+ per shard), so ~256 requests for a large push (~$0.00004) and far *less*
1229
+ total active duration, since 256 DOs busy ~50 ms beats one DO busy 20 s.
1230
+ The real costs are cold-start latency across shards and a wider failure
1231
+ surface — both mitigated by immutability making every retry free.
1232
+
1233
+ ## 19. Phases
1234
+
1235
+ **Phase 0 — measure honestly (prerequisite). DONE — and it settled the
1236
+ question.** Repos now report `lastPush` timing measured inside the Durable
1237
+ Object. For the 38 MiB / 13,701-object alchemy push:
1238
+
1239
+ | | |
1240
+ |---|---|
1241
+ | **server ingest** | **27.0 s** |
1242
+ | connectivity check | ~0 ms |
1243
+ | ref CAS finalize | ~0 ms |
1244
+ | **server total** | **28.7 s of a 32.3 s wall clock (89%)** |
1245
+ | client + network | 3.5 s |
1246
+
1247
+ So the earlier suspicion that client packing and upload dominated was
1248
+ **wrong**: the server owns 89% of the time, and effectively all of it is
1249
+ the per-object ingest loop at **2.10 ms/object**. Connectivity and CAS —
1250
+ the parts that genuinely must be serialized — are free.
1251
+
1252
+ **Phase 0b — where the ingest time actually goes.** Splitting `ingestMs`
1253
+ settled the next question too:
1254
+
1255
+ | | | |
1256
+ |---|---|---|
1257
+ | SQL staging | 2.0 s | **9%** |
1258
+ | CPU (inflate, sha1, parse, Effect frames) | 20.4 s | **91%** |
1259
+
1260
+ So **sharding storage addresses only 9%** of push cost. It remains valuable
1261
+ for the 10 GB → 2.5 TB capacity ceiling, but it is not the throughput fix.
1262
+ The throughput fix is per-object CPU — and 1.49 ms to inflate ~2.7 KB and
1263
+ hash it is ~50x the cost of the actual work, i.e. it is overhead, not
1264
+ computation.
1265
+
1266
+ First cut at that overhead: `zlib.createInflate()` built a Node Transform
1267
+ stream (EventEmitter, buffers) and took an async event-loop round trip **per
1268
+ object**. Driving the engine synchronously the way Node's own `inflateSync`
1269
+ does removes both:
1270
+
1271
+ CPU 20.4s -> 15.9s per object 1.74ms -> 1.42ms
1272
+ wall clock 28.1s -> 23.2s
1273
+
1274
+ with a hard-won caveat baked into the code: workerd's `node:zlib` shim
1275
+ returns only the *first chunk* (observed: 525,107 bytes of a 1,337,267-byte
1276
+ object) and reports a plausible `bytesWritten` alongside it, where Node
1277
+ loops until done. The fast path therefore validates its output against the
1278
+ size the pack header already declares and falls back to the stream path on
1279
+ any mismatch — silent truncation would otherwise corrupt objects. Pack
1280
+ fixtures alone would not have caught this; only the deployed push did.
1281
+
1282
+ Remaining per-object overhead to attack next, in order: `crypto.createHash`
1283
+ allocated per object (same shape of problem as `createInflate`), Effect
1284
+ frames in the sink, and window slicing.
1285
+
1286
+ That is still the argument for phases 1–2, but with corrected weights: the expensive work
1287
+ (inflate, sha1, one insert) is *per object* and has no ordering
1288
+ requirement, yet runs single-threaded because it shares a DO with the refs.
1289
+ At 2.10 ms/object, 16-way fan-out puts a 13.7k-object push at ~1.7 s.
1290
+
1291
+ **Phase 1 — hoist pack parsing to the Worker.** Inflate + sha1 for every
1292
+ object currently runs on the ref DO's single thread; it is stateless CPU.
1293
+ Moving it to the Worker frees the DO and is the prerequisite for fan-out
1294
+ (the Worker must hold resolved objects to route them).
1295
+
1296
+ **Phase 2 — shard the object store.** `ObjectShard` DO addressed
1297
+ `{repoId}:{oidPrefix}`; `ObjectStore` becomes a router that batches by
1298
+ prefix and writes shards in parallel. Connectivity checks become N parallel
1299
+ batched queries. Compaction runs per shard, producing per-shard R2 packs.
1300
+
1301
+ **Phase 3 — parallel fetch assembly.** A dynamic fetch reads its manifest
1302
+ from N shards concurrently instead of walking one DO.
1303
+
1304
+ **Phase 4 — reachability bitmaps.** With throughput fixed, the remaining
1305
+ ceiling is closure computation on multi-million-object repos: EWAH bitmaps
1306
+ over the commit graph replace the visited-set walk.
1307
+
1308
+ Expected shape of the win: 13.7k objects at ~1.5 ms serial ≈ 20 s; fanned
1309
+ across even 16 shards with parsing overlapped in the Worker ≈ 1–2 s.
1310
+
1311
+
1312
+ ## 20. GitHub REST v3 compatibility (Tier 1)
1313
+
1314
+ `src/GitHubCompat.ts` mounts a `/api/v3/**` facade so GitHub-flavored
1315
+ tooling talks to the service unmodified:
1316
+
1317
+ ```sh
1318
+ export GH_HOST=git.example.com # your deployed host (https)
1319
+ export GH_ENTERPRISE_TOKEN=gs_... # admin key or repo token
1320
+ gh api repos/alchemy/alchemy # → GitHub-shaped JSON
1321
+ gh api repos/alchemy/alchemy/pulls -f state=open
1322
+ gh api -X POST repos/o/r/pulls -f title=T -f head=topic -f base=main
1323
+ gh api -X PUT repos/o/r/pulls/1/merge
1324
+ ```
1325
+
1326
+ The facade is a pure translation layer over the same Repo-DO RPCs as
1327
+ `/api/v1` (auth enforcement unchanged, anonymous reads on public repos
1328
+ included). Covered: `/user`, repo get, branches, commits (list/single with
1329
+ files), contents, and the full pulls lifecycle. GitHub-isms handled:
1330
+ `Authorization: token` scheme, merged-PR = `closed`+`merged: true`,
1331
+ `{ message }` errors, `Link: rel="next"` pagination carrying opaque keyset
1332
+ cursors (`gh api --paginate` and Octokit follow them verbatim).
1333
+
1334
+ Out of scope, deliberately: GraphQL (so `gh pr ...` porcelain does not
1335
+ work — use `gh api` paths), issues/reviews/comments/checks/search, rename
1336
+ detection, and additions/deletions counts (always 0; content diffs are
1337
+ client-side by design). `gh` requires https for enterprise hosts, so the
1338
+ facade is exercised locally by shape tests replaying gh's exact wire
1339
+ requests (verified against `GH_DEBUG=api` output) and by `gh` itself only
1340
+ against https deployments.
1341
+
1342
+ ## 21. Learnings from Cursor's Continuity (git-at-any-scale)
1343
+
1344
+ Cursor's Continuity ([blog](https://cursor.com/blog/git-at-any-scale))
1345
+ solves the same problem shape — git on object storage with a single
1346
+ linearization point — with one structural inversion worth studying: for
1347
+ them **object storage is the source of truth** (a WAL of pushed packs +
1348
+ a tiny WAL-index object updated by compare-and-swap), and every server
1349
+ disk is a disposable warm cache rebuilt from the WAL. For us the Durable
1350
+ Object's SQLite *is* the truth and R2 holds derived artifacts. Their
1351
+ compute is fungible and their storage is authoritative; ours is the
1352
+ opposite. What transfers:
1353
+
1354
+ **Adopt — the push WAL (durability + provenance).** Today the DO's
1355
+ SQLite is the only representation of refs/index/graph; the received pack
1356
+ is exploded into rows and discarded. Appending a small WAL record per
1357
+ push to the BlobStore — `{ pushId, refTxn (old→new per ref), packKey,
1358
+ subject, timestamp }` plus the self-contained (fattened) pack — makes
1359
+ the entire repository reconstructable from blob storage alone: disaster
1360
+ recovery independent of DO state, byte-level push provenance ("rewind
1361
+ and fast-forward", audit paired with the auth `subject`), backend
1362
+ migration, and future read replicas. This composes with the planned
1363
+ push-epoch redesign (§19 / RFC): the epoch record *is* the WAL entry —
1364
+ make it durable in the BlobStore instead of a SQLite row and both
1365
+ designs land in one change. Storage cost is bounded by folding WAL packs
1366
+ into compaction epochs (Continuity compacts the WAL too).
1367
+
1368
+ **Adopt — geometric pack compaction.** `Compact` currently writes one
1369
+ new pack per run and never merges packs, so pack count grows with
1370
+ repository age and read fan-out grows with it. Continuity's incremental
1371
+ geometric compaction (merge packs whenever sizes violate a geometric
1372
+ progression) bounds pack count logarithmically. Directly applicable to
1373
+ our Compact job; also the precondition for WAL-pack folding above.
1374
+
1375
+ **Adapt — conditional-GET freshness for DO-less reads.** Continuity
1376
+ replicas serve reads after a ~10 ms conditional GET on the WAL index
1377
+ (304 = current). Mapped onto us: a tiny `head` object in R2 (ref
1378
+ snapshot hash + current bundle key), updated at push finalize, would let
1379
+ **Workers serve advertisements and clone bundles without waking the DO**
1380
+ — the clone-storm path goes fully DO-less while the DO remains the write
1381
+ linearization point. The subtlety is commit ordering: SQLite commit is
1382
+ our truth, so the head object is written after commit and a crash
1383
+ between the two leaves it stale. Either accept bounded staleness with
1384
+ repair-on-next-push, or move the commit point into the head-object CAS
1385
+ itself (the full Continuity inversion — a much bigger change). Start
1386
+ with the former.
1387
+
1388
+ **Adapt — repos as cattle (hibernation).** Continuity garbage-collects
1389
+ idle replicas and re-materializes from the WAL on access. Our analog:
1390
+ once a WAL exists, an idle repo's DO can evict object rows (or all
1391
+ state) and re-materialize on next access — DO storage is the expensive
1392
+ tier, R2 the cheap one. Matters for the agent-created-repos fleet shape
1393
+ (their explicit target, and ours).
1394
+
1395
+ **Skip — running upstream git.** Their biggest simplification (normal
1396
+ git repos on NVMe, upstream git does the work) is unavailable on
1397
+ workerd: no processes, no disk. Our Effect reimplementation is the cost
1398
+ of running where we run.
1399
+
1400
+ **Note — S3 CAS revives the AWS-parity store story.** Continuity's
1401
+ linearization is a compare-and-swap on an S3 object (`If-Match` /
1402
+ `If-None-Match` conditional writes) — no DynamoDB, no consensus. That
1403
+ replaces the RFC §6 assumption that AWS parity needs DynamoDB
1404
+ transactions for ref CAS: a WAL-index CAS on S3 is sufficient, exactly
1405
+ as Continuity demonstrates at 120–300 pushes/s (Standard vs Express One
1406
+ Zone). The wire-plane hosting problem (Lambda's ~6 MB request cap)
1407
+ remains the real blocker; the store problem is now solved on paper.
1408
+
1409
+ Benchmarks worth stealing: sustained small-push throughput per repo
1410
+ (their 120–300/s number; ours is bounded by one DO — measure it), and
1411
+ read-scaling under clone storm with the DO-less head-object path.
1412
+
1413
+ ### §21.2 Push admission, and a bottleneck that wasn't
1414
+
1415
+ **Push admission is bounded by memory, not by count.** The Repo DO's
1416
+ ingest semaphore existed for one reason (§2.1): two concurrent 50 MiB
1417
+ buffers would exhaust a 128 MB isolate. It is *not* a correctness
1418
+ device — a DO's input gate only closes across storage awaits, and
1419
+ receive-pack awaits the network and blob storage, so pushes interleave
1420
+ regardless; what makes that safe is `staged_push = pushId` scoping plus
1421
+ a synchronous `transactionSync` finalize. Bounding the count therefore
1422
+ made a kilobyte push wait out a 50 MiB upload for no reason. It now
1423
+ reserves permits by buffered ceiling (`min(content-length,
1424
+ MAX_PACK_BYTES)`, one permit per MiB, budget 64).
1425
+
1426
+ | small push (same repo) | latency |
1427
+ | --- | --- |
1428
+ | uncontended | 737 ms |
1429
+ | while a 12 MiB upload is in flight | **802 ms** (+9%) |
1430
+
1431
+ Under the old single permit the second push waited for the first to
1432
+ release, i.e. for the whole upload — by construction, not by measurement.
1433
+
1434
+ **What this does NOT fix:** concurrent pushes to *different branches*
1435
+ still measure ~2.7/s, unchanged. Admission was never the ceiling there;
1436
+ the DO is one JavaScript thread, so each push's inflate/SHA-1/SQL work
1437
+ serializes whatever admission allows. Per-repo push throughput remains
1438
+ the sharding problem of Part III.
1439
+
1440
+ **Stale clone bundles are not a bottleneck (measured, hypothesis
1441
+ withdrawn).** The concern was that any ref moving after a bundle was cut
1442
+ drops every clone onto a dynamic closure walk until the next re-cut.
1443
+ Measured in one run against one repo, with the serving plane recorded on
1444
+ `x-git-served-by` so neither arm can be mistaken for the other:
1445
+
1446
+ | clones, concurrency 32 | served by | rate |
1447
+ | --- | --- | --- |
1448
+ | fresh bundle | `do-bundle:bundle` | 40.4/s |
1449
+ | stale bundle | `dynamic` | **35.9/s** |
1450
+
1451
+ An 11% cost, not the ~2x the earlier cross-run comparison suggested —
1452
+ those "dynamic" figures came from requests carrying an unknown `have`,
1453
+ which forces a *negotiation* walk, a strictly more expensive path than a
1454
+ plain full clone with no usable bundle. Comparing across runs compared
1455
+ two different things.
1456
+
1457
+ A bundle+delta splice was built and reverted. It is defeated by a
1458
+ deliberate v1 tradeoff in `Store/Closure.ts`: boundary (common) commits'
1459
+ tree/blob closures are **not** subtracted, so
1460
+ `computeClosure(wants, haves = bundle refs)` returns a whole snapshot
1461
+ rather than a delta. The spliced pack measured exactly 2x the bundle
1462
+ (1.013 MiB vs 0.507 MiB) at 15.8 clones/s — worse than the dynamic path
1463
+ it replaced. Making it work needs one of: the bundle recording its own
1464
+ object set at cut time (`runBundleJob` already holds the manifest) so
1465
+ the delta is a set subtraction rather than a walk; or protocol v2
1466
+ `packfile-uris`, which is git's own answer — the client takes the bundle
1467
+ by URI and runs an ordinary incremental fetch on top. Neither is worth
1468
+ doing for 11%.
1469
+
1470
+ ### §21.1 Implemented and measured
1471
+
1472
+ Both performance adoptions above are now implemented; measured on a
1473
+ deployed stack (`test/GitBench.e2e.test.ts --profile testing`, SCALE=1,
1474
+ same machine, before/after runs ~1 h apart).
1475
+
1476
+ **The head snapshot (DO-less anonymous reads).** The Repo DO rewrites a
1477
+ tiny JSON object (`{repoId}/head`: refs, visibility, current bundle)
1478
+ after every commit that changes what an anonymous reader can see; the
1479
+ Worker serves the `info/refs` advertisement and bundle-covered full
1480
+ clones straight from it. Engagement is proven, not inferred: responses
1481
+ carry `x-git-served-by: head-snapshot` and the bench asserts it. The
1482
+ Auth block still decides anonymous access (the Worker asks it with the
1483
+ snapshot's repo context), a presented credential always goes to the DO,
1484
+ and `startPurge` deletes the snapshot synchronously so deleted repos
1485
+ stop serving immediately.
1486
+
1487
+ | anonymous reads on a public repo | before | after |
1488
+ | --- | --- | --- |
1489
+ | raw full clones, concurrency 32 | 69.4/s · 17.4 MiB/s | **101.0/s · 25.3 MiB/s** |
1490
+ | same run, authed clones (DO path) | — | 48.1/s · 24.4 MiB/s |
1491
+ | advertisements, concurrency 32 | 201.2/s | 206.5/s |
1492
+ | advertisement, serial | — | 87 ms each |
1493
+
1494
+ The controlled comparison is the second row: in the same run, on the
1495
+ same bytes, anonymous DO-less clones sustain **2.1× the throughput of
1496
+ authed clones that plan through the DO** — cloud noise hits both
1497
+ equally. The advertisement storm is flat because the *client* is the
1498
+ bottleneck there (87 ms serial ≈ the bench machine's RTT; 32-way ≈
1499
+ 200/s is its ceiling): the assertion proves the DO left the path, but a
1500
+ single-machine instrument cannot show the server-side headroom that
1501
+ buys. The clone rows, which move real bytes, do.
1502
+
1503
+ **Geometric pack merging.** `Compact` now restores the geometric
1504
+ invariant (factor 2) after each run: the smallest violating packs merge
1505
+ by pure concatenation — our packs store non-delta entries, so a merge
1506
+ is `header(Σcounts) + bodies + sha1` and one additive offset UPDATE per
1507
+ source pack, no recompression. Unreferenced source packs grace-delete a
1508
+ minute later (in-flight ranged reads finish first).
1509
+
1510
+ | dynamic fetch, repo compacted in 6 increments | before | after |
1511
+ | --- | --- | --- |
1512
+ | ms/fetch (serial ×8, 2.3 MiB pack) | 730 | **300–334** |
1513
+
1514
+ **2.2–2.4× faster** reads over the aged repo, reproduced across two
1515
+ post-change runs. The push path is unchanged by both features (serial
1516
+ push 1.3–1.5/s across all runs — the per-ref serialization floor §15
1517
+ already names; that ceiling is v3's problem, not this change's).
1518
+
1519
+ ## 22. The clone-throughput sweep
1520
+
1521
+ The complaint: clones pull 10–20 MB/s. The first question was whose
1522
+ number that is, and the answer settles what to fix.
1523
+
1524
+ ### §22.1 Diagnosis (production, `alchemy/alchemy`, 44k objects)
1525
+
1526
+ | measurement | value | meaning |
1527
+ | --- | --- | --- |
1528
+ | client ← Cloudflare edge, 50 MB static download | **67 MB/s** | the pipe is not the limit |
1529
+ | bundle path, raw passthrough, 152 MiB | 10–21 MB/s (one sample stalled at 227 KB/s for 264 s) | **our streaming path is the limit** |
1530
+ | bundle path, sideband | 10.5–17 MB/s | framing is not the difference; the variance is |
1531
+ | dynamic path | 3.1 MB/s, TTFB 9.2 s | 44k sequential SQLite point reads |
1532
+ | `info/refs` advertisement (2 refs) | **1.5 s** | per-request planning cost, paid twice per clone |
1533
+ | repo object stats | loose=44,041 packed=0 r2=10, 152.7 MiB | **never compacted** — `COMPACT_COUNT_THRESHOLD` was 50,000 |
1534
+ | bytes served vs bytes pushed | 152 MiB served, 70 MiB thin pack pushed | non-delta packs are 2.2x on the wire |
1535
+
1536
+ Three independent problems, in order of user impact: the Worker's bundle
1537
+ streaming pipeline caps single-stream throughput far below the client's
1538
+ pipe; every wire request pays ~1.5 s before its first byte; and the repo
1539
+ was serving its fallback path from 44k un-packed SQLite rows.
1540
+
1541
+ ### §22.2 Root causes
1542
+
1543
+ **Streaming (the throughput ceiling).** `serveBundle` piped R2's body
1544
+ through `Stream.fromReadableStream` → `wrapSideband` (a `Stream.flatMap`
1545
+ per chunk) → `HttpServerResponse.stream` → `toReadableStream`. Every
1546
+ R2 chunk crossed an Effect fiber hand-off twice and was copied twice by
1547
+ the sideband framer (`sidebandFrame` allocated a payload buffer, then
1548
+ `pktLine` allocated again). At concurrency 4 the aggregate was only
1549
+ 1.5x a single stream — the isolate was CPU-bound on stream machinery,
1550
+ not waiting on the network.
1551
+
1552
+ **TTFB.** `readMeta` ran `SELECT location, COUNT(*), SUM(zsize) FROM
1553
+ objects GROUP BY location` on **every** request (via `requireMeta` at
1554
+ the wire dispatch, inside `authorize`, and inside `writeHeadSnapshot`),
1555
+ a full scan of a `WITHOUT ROWID` table whose leaf pages carry inline
1556
+ zdata. Only the REST repo-detail response ever reads `meta.objects`.
1557
+
1558
+ **Dynamic path.** `packEntryStream` did one `sql.first` and ~6 Effect
1559
+ stream nodes per object; the closure's tree walk did one SQL round trip
1560
+ plus one inflate per tree, serially, before the first byte; and the
1561
+ manifest order (commits → tags → trees → blobs) was uncorrelated with
1562
+ compacted-pack layout (`ORDER BY oid`), so a 6-window LRU over a large
1563
+ pack thrashed.
1564
+
1565
+ ### §22.3 What changed
1566
+
1567
+ - **Native passthrough.** `ObjectBody`/`BlobBody` expose the store's
1568
+ own `ReadableStream` (`readable`); `respondWithPack` pipes it into the
1569
+ `Response` via `HttpServerResponse.raw`. Raw clones go through an
1570
+ `IdentityTransformStream` (workerd pipes it without JS touching the
1571
+ bytes); sideband clones go through `sidebandTransform`, a web
1572
+ `TransformStream` emitting a 5-byte header + a `subarray` per frame —
1573
+ no copy, no fiber per chunk. The Effect path remains as the fallback
1574
+ for stores without a native stream (S3).
1575
+ - **`requireMeta` is config-only.** The objects aggregate is opt-in
1576
+ (`requireMetaStats`), paid by `getRepoMeta`/`updateRepoMeta` only.
1577
+ - **Compaction thresholds** 50k objects / 1 GiB → **4k / 64 MiB**.
1578
+ - **Batched emission and closure.** `ObjectStore.packEntries` reads
1579
+ objects 256 per statement, concatenates each batch into one chunk,
1580
+ and orders pack-resident objects by (pack, offset) so each 4 MiB
1581
+ window is fetched exactly once; `readContentBatch` + a level-order BFS
1582
+ read whole tree levels per statement. `packStream` uses the batched
1583
+ emitter whenever the source offers it.
1584
+ - `sidebandFrame` builds its frame in one allocation (was two copies).
1585
+
1586
+ ### §22.4 Measured (36 MiB / 15.6k-object repo, one client, same edge)
1587
+
1588
+ All numbers from `GitBench.e2e.test.ts` "single large clone", the same
1589
+ client machine and edge for every row. "Before" is the row-storage,
1590
+ Effect-stream code at the start of the sweep; the rest are cumulative.
1591
+
1592
+ | path (what real clients use) | before | native pump | +blob-only compaction | +pre-framed twin, per-window emitter |
1593
+ | --- | --- | --- | --- | --- |
1594
+ | raw bundle, 1 stream | 20.3 MiB/s | 41.0 | 37.9 | 40.9 (client line rate ≈ 40–70) |
1595
+ | raw bundle, 4 streams (aggregate) | 29.7 MiB/s | 106.1 | 71.8 | 82.3 |
1596
+ | **sideband bundle (every `git clone`)** | 15.5 MiB/s | 12.7–15.7 | 15.7 | **32.7** |
1597
+ | dynamic fetch — TTFB | 1.4 s (rows) / 27.5 s (packed) | 12.0 s | **0.43 s** | 0.56 s |
1598
+ | dynamic fetch — transfer | 6.2 MiB/s (rows) / 0.2 (packed) | 7.9 | 7.0 | 7.9 |
1599
+
1600
+ Run-to-run variance on the client link is large; the best verified run of
1601
+ the final code (every pack de-framed and trailer-checked): raw 98.4 MiB/s
1602
+ (0.56 s end to end), sideband **80.2 MiB/s** (0.69 s — a real `git clone`
1603
+ of the 40 MiB repo), dynamic 9.8 MiB/s with 0.72 s TTFB, four concurrent
1604
+ raw streams at 93 MiB/s aggregate. Before the sweep the same clone took
1605
+ about 3 s.
1606
+
1607
+ What each step bought, and what it did not:
1608
+
1609
+ - **Native pump** (§22.3): the raw path went from an Effect stream to a
1610
+ platform `pipeTo` and doubled; four streams saturate the client link.
1611
+ It did NOT move sideband — three different framers (Effect stream,
1612
+ `TransformStream`, manual 1 MiB batched writes) all landed at ~15 MiB/s.
1613
+ The constant was never the framing: it is the cost of bundle bytes
1614
+ crossing into JS at all. Hence the **pre-framed twin**
1615
+ (`bundleSidebandKey`): the bundle job writes the pack a second time,
1616
+ already cut into 65515-byte band-1 frames, and sideband serving becomes
1617
+ a pure pipe plus a 4-byte flush. 2× on the path every real client uses,
1618
+ for 2× bundle storage.
1619
+ - **Lowering the compaction thresholds** (50k → 4k objects) exposed a
1620
+ latent disaster: a fetch over pack storage took 27 s to start and 243 s
1621
+ to finish — the per-object emitter, in manifest order, missed the
1622
+ window cache on nearly every object (15.6k × 4 MiB window reads).
1623
+ Batching + (pack, offset) ordering fixed the transfer (0.2 → 7.9 MiB/s)
1624
+ but the tree walk still cost 12 s: trees are tiny and, packed in oid
1625
+ order, touch every window. **Blob-only compaction** removed the walk
1626
+ from R2 entirely — TTFB 12 s → 0.43 s — at the cost of keeping
1627
+ commits/trees/tags (a few percent of bytes) as SQLite rows.
1628
+ - The dynamic transfer rate is now bounded by generation inside the DO
1629
+ (per-batch SQL + concat for resident objects, one window fetch per
1630
+ 4 MiB of blobs), not by the response path; the per-window emitter and
1631
+ one-window lookahead did not move it. Clones do not take this path (the
1632
+ bundle covers them); incremental fetches are small. Left as the next
1633
+ target.
1634
+
1635
+ **Durability finding, same sweep.** A real `git push` of the 36 MiB
1636
+ clone (a delta-heavy pack, unlike the snapshot the bench pushes) was
1637
+ rejected: `Durable Object's isolate exceeded its memory limit and was
1638
+ reset`, mid-`transactionSync`. The ingest's own footprint is bounded
1639
+ (8 MiB staging batches, 20 MiB resolved-content LRU) — but the whole
1640
+ pack sat in memory under the 50 MiB spill threshold, and instances of one
1641
+ DO class share an isolate: the other repo's per-instance window cache and
1642
+ its push gate were invisible to this push's accounting. Fixed by making
1643
+ the window cache and the push-admission semaphore **isolate-wide**
1644
+ (one 32 MiB LRU, one 64-permit gate) and lowering the in-memory spill
1645
+ threshold to 24 MiB. The same push then succeeded with the first repo's
1646
+ caches warm; the clone back through the DO was fsck-clean.
1647
+
1648
+ **Truncation finding, same sweep.** One bench run reported the dynamic
1649
+ arm at 0.5 MiB of a 40.6 MiB pack — and passed. The compaction alarm
1650
+ had moved rows to a pack between the closure (which recorded
1651
+ `location='row'`) and emission (whose batched `SELECT oid, zdata` then
1652
+ saw NULL); the emitter failed the stream, the bridge errored the
1653
+ `ReadableStream`, the pump aborted the writable — and the client's HTTP
1654
+ library read the aborted body as a clean end. Two fixes: the row emitter
1655
+ now re-dispatches a moved object on its *current* location instead of
1656
+ failing (compaction and fetches run concurrently by design), and every
1657
+ timed clone in the bench de-frames the response and verifies the pack's
1658
+ SHA-1 trailer, so bytes-received can never again stand in for a pack.
1659
+ Real git was never at risk of a silent bad clone — it verifies the same
1660
+ trailer — but it would have seen "unexpected EOF" on a fetch that raced a
1661
+ compaction.
1662
+
1663
+ ### §22.5 The push-ingest sweep
1664
+
1665
+ Measured with the platform's own per-invocation `cpuTime`/`wallTime`
1666
+ (a `wrangler tail`), because workerd freezes `performance.now()` during
1667
+ synchronous work — server-side timers only advance across awaits, which
1668
+ is itself diagnostic but cannot attribute CPU. The 15.6k-object, 40 MiB
1669
+ push of this repository, real `git push`, same edge:
1670
+
1671
+ | | push wall | DO cpu / wall | ingest | staging | finalize |
1672
+ | --- | --- | --- | --- | --- | --- |
1673
+ | start of sweep (in memory, per-row staging) | 63.6 s | — | 46 s | 3.1 s | 2.0 s |
1674
+ | spilled reads as views, 64 KiB probe | 34 s | 10.0 / 34.9 s | 20 s | 6.6 s | 2.7 s |
1675
+ | **promoted wire pack** | **24 s** | 8.3 / 16.0 s | 11–15 s | **0.4 s** | **0.7 s** |
1676
+ | + synchronous per-entry fast path | 16–18 s | 7.2 / 16.9 s | 8.7–10.8 s | 0.3–0.6 s | 0.6–0.7 s |
1677
+
1678
+ What the numbers taught, in order:
1679
+
1680
+ 1. **Production CPU is ~10x this laptop, uniformly.** A probe worker
1681
+ timing every per-object primitive (sync/streaming inflate, SHA-1,
1682
+ copies, a JS loop, Effect overhead, deflate) found nothing
1683
+ pathological — each is 8–15x slower there. Local ingest at
1684
+ 0.14 ms/object *is* production ingest at ~1.5 ms. Every microsecond
1685
+ per object is worth ten. (`ZlibProbe.e2e.test.ts`; the local variant
1686
+ pins that workerd keeps the synchronous exact-span inflate.)
1687
+ 2. **The spilled reader copied 512 KiB per entry.** `blobRandomAccess`
1688
+ returned `slice()` for in-window reads and the parser probes each
1689
+ entry with a window-sized read: ~8 GB of memcpy per push, 31.9 s of
1690
+ CPU. Views fixed it (the in-memory reader always handed out views);
1691
+ the probe dropped to 64 KiB so crossing a window edge is rare and
1692
+ small, and the window grows to the header's declared size in one step.
1693
+ 3. **Durable Object storage cost is bytes WRITTEN, not statements.**
1694
+ Multi-row inserts and 8x larger batches did nothing on production
1695
+ (locally they halved staging time — commits are cheap there); finalize
1696
+ was 55 ms locally vs 4.9 s in production for the same 7.3k-object push.
1697
+ Staging writes every blob into SQLite; the staged→live flip rewrites
1698
+ every one of those records. Both are proportional to blob bytes.
1699
+ 4. **So don't write blobs to SQLite: promote the wire pack.** A push whose
1700
+ body spilled already holds every non-delta blob in exactly the
1701
+ compaction layout (typeSize header + zdata). Ingest now stages those
1702
+ rows as `location='pack'` references into the incoming object (pack id
1703
+ `wire-<receiveId>`, `packKeyOf` maps it), which then outlives the
1704
+ request as repo data. 9,633 of this push's 15.6k objects never touch a
1705
+ row; staging 6.6 s → 0.4 s, finalize 2.7 s → 0.7 s, and the later
1706
+ compaction rewrite of those blobs never happens. Delta-resolved blobs
1707
+ (fresh deflate, in no pack), trees, commits and tags still take rows.
1708
+ 5. **Spill early; merge rewrites wire packs.** With promotion the spilled
1709
+ path is the fast path, so the in-memory threshold is 4 MiB (a 5.7 MiB
1710
+ in-memory push spent 6 s in finalize; spilled, 2.2 s), and a spilled
1711
+ push's admission permit is its window working set, not its body. Wire
1712
+ packs also carry trees, commits and delta entries, so geometric merge
1713
+ *rewrites* them — copies only the referenced spans with regenerated
1714
+ headers and repoints each row — into a clean pack, then grace-deletes
1715
+ the wire object like any other source. Read fan-out stays geometric.
1716
+
1717
+ 6. **A synchronous inner loop.** With sources exposing `readSync` (a
1718
+ view into the buffer or a cached window), a non-delta entry is decoded,
1719
+ inflated, hashed and copied with no fiber hop, and entries reach the
1720
+ staging sink 256 at a time. 13% of production ingest CPU; workerd's
1721
+ `_processChunk` closes its binding after one chunk, so an inflate
1722
+ engine cannot be reused there (probed and recorded).
1723
+
1724
+ Where this leaves a 40 MiB push: about 6.7 s is the client (git's own
1725
+ pack build plus the upload; GitHub pays the same), ~7 s is the server's
1726
+ per-object verification CPU on a core roughly 10x slower than a laptop's,
1727
+ and ~1 s is staging plus finalize. The verification is what git requires
1728
+ to trust a pack — every entry inflated and hashed before any ref moves —
1729
+ and it runs single-threaded in the repo's Durable Object. Going meaningfully
1730
+ below this means parallelizing that verification across isolates (a pack
1731
+ has no index, so boundaries are only known by inflating; hashing could be
1732
+ fanned out but is under half the work) or changing what the client sends.
1733
+
1734
+ Left: the remaining ingest CPU (inflate + SHA-1 + parse, ~7 s here) is
1735
+ the work git itself requires to trust a pack; finalize's residual is the
1736
+ flip of the delta-resolved rows. Both scale with object count, not bytes.
1737
+
1738
+ ### §22.6 Streaming ingest
1739
+
1740
+ The push body was received whole (in memory below the threshold, spilled
1741
+ to blob storage above it) and only then parsed. Two serial phases, each
1742
+ as long as the other; and a 128 MB isolate that can hold exactly one
1743
+ large body. Ingest now parses the body **while it arrives**:
1744
+
1745
+ - `StreamingSource` (`Store/StreamingSource.ts`) is a `RandomAccess` over
1746
+ 4 MiB slabs the receiver fills. A read past what has arrived waits;
1747
+ a read behind the retention window (16 MiB) is served from the spilled
1748
+ object once the body has ended — and fails if it never spills, so a
1749
+ parser that needs an evicted base defers that entry to a pass after
1750
+ `awaitEnd` (`BaseEvictedError`). The feeder parks when it is 24 MiB
1751
+ ahead of the parser, and a waiting reader always releases a parked
1752
+ feeder: the two never deadlock on each other.
1753
+ - `receiveWireBodyStreaming` feeds the source and, past the threshold,
1754
+ uploads uniform 8 MiB parts concurrently (three in flight) so no
1755
+ round trip to blob storage stalls the request body. The part list is
1756
+ completed in part-number order regardless of settle order
1757
+ (`orderedMultipart`) — R2 validates the uniform-part rule against the
1758
+ list as given, and the tail settles before earlier parts do.
1759
+ - The parser tolerates an unknown pack length: the entry loop is driven
1760
+ by the header's count, the trailer SHA-1 is fed incrementally with a
1761
+ 20-byte lag, and the trailer is compared once the source ends.
1762
+
1763
+ The head of the body (the pkt-line commands) is read as a 1 MiB range
1764
+ before anything else; a delete-only push is a 12-byte probe that fails.
1765
+
1766
+ ### §22.7 The hasher fan-out
1767
+
1768
+ Verification is what git requires to trust a pack: every entry inflated
1769
+ and hashed before any ref moves. It scales with object count, and on a
1770
+ core ~10x slower than a laptop it was the bulk of a 40 MiB push. It is
1771
+ now a service — `Hasher` (`Hasher/Hasher.ts`) — with two layers:
1772
+ `HasherInline` (the same isolate) and `HasherSelf`, which POSTs pack
1773
+ parts to `/_alchemy/git/hash` on the Worker's own `Self` binding, so a
1774
+ push is verified by as many isolates as it has parts. The route is
1775
+ admin-authenticated (the Worker's own key) and answers a compact binary
1776
+ result: entry coordinates, oids, and for delta-resolved entries the fresh
1777
+ zlib bytes; non-delta entries ship no bytes (their rows are promoted
1778
+ coordinates or are read back from the source).
1779
+
1780
+ ### §22.8 Raw chunks, resync, stitching
1781
+
1782
+ A pack has no index: entry boundaries are only known by inflating. The
1783
+ first fan-out shipped each part with the previous part's incomplete tail,
1784
+ which made the dispatch a serial chain gated on each part's result — the
1785
+ fan-out degenerated to one hasher at a time. Two passes (a cheap
1786
+ boundary pre-scan in the DO, then hashing by known spans) moved the CPU
1787
+ back into the single-threaded object.
1788
+
1789
+ The pump now dispatches **raw 4 MiB chunks as they arrive**, four in
1790
+ flight, with no dependency between them. Every chunk but the first is
1791
+ scanned in *resync* mode (`PartialScan.ts`): `findBoundary` walks the
1792
+ chunk for a zlib header (`0x78` + one of the four FLG bytes) at which two
1793
+ consecutive entries parse, and the scan proceeds from there — lenient,
1794
+ because `remaining` is only an upper bound and the last chunk runs into
1795
+ the trailer. The DO then consumes results in chunk order: the bytes
1796
+ between the last settled boundary and a chunk's first found boundary —
1797
+ one straddling entry, normally — are scanned as a region from the
1798
+ retained payloads; a region that ends exactly at the found boundary
1799
+ confirms the resync, otherwise the chunk is rescanned sequentially from
1800
+ the settled boundary. Chunks too small to hold two entries report no
1801
+ boundary and are settled by a later region. Deltas whose base lies in
1802
+ another chunk come back unresolved and are applied after the trailer,
1803
+ against bases from any chunk or from the live store.
1804
+
1805
+ The platform's own timeline (a `wrangler tail` of the hash calls) showed
1806
+ the fan-out working and the push still slow: chunks 0–3 arrived within
1807
+ 0.7 s and the rest dribbled in at ~4 MiB/s, while the receive-pack
1808
+ invocation's wall time was five times its CPU. Everything the Durable
1809
+ Object received it also sent out twice — to the spill and to the hashers.
1810
+
1811
+ ### §22.9 The pack never enters the Durable Object
1812
+
1813
+ The whole pipeline above now runs in the **stateless Worker**
1814
+ (`Server.ts` `receivePackRoute`): it receives the body, verifies it
1815
+ through the fan-out, stitches, resolves deltas, and ships the Repo DO only
1816
+ *rows* over RPC — `beginPush` (authorization of the parsed commands, the
1817
+ staging push row), `stagePush` (batches of staged rows, three in flight
1818
+ and joined before the commit; promoted rows are coordinates into the wire
1819
+ pack, inline rows carry their zlib bytes — `PushWire.ts`), `readPushBase`
1820
+ (thin-delta bases), and `commitPush` (connectivity over the staged rows,
1821
+ the commit graph, the transactional ref CAS, post-commit bookkeeping).
1822
+ The DO's memory, CPU and egress are untouched by push size; its part of
1823
+ a push is SQL.
1824
+
1825
+ Moving the pipeline exposed the next wall: the receiver was sending
1826
+ every byte out twice — to the spill and to the hashers — and the last
1827
+ part was dispatched only when the multipart upload completed, because
1828
+ that was when the streaming source ended. Three changes:
1829
+
1830
+ - **The hasher writes the spill.** Parts are body-aligned 8 MiB (R2's
1831
+ uniform-part rule), and each `hashPart` call carries the multipart
1832
+ upload's key and id: the hasher isolate writes the part it verifies
1833
+ (`BlobStoreShape.uploadPart` — parts may be uploaded from any isolate;
1834
+ `complete` takes the collected parts and sorts them). The receiver
1835
+ sends each byte out once; the first part carries the command section
1836
+ and the pack header before its first entry (`skip`).
1837
+ - **The source ends at body end.** `expectFallback` makes an evicted read
1838
+ wait for the completed spill instead of failing, so the last part is
1839
+ dispatched the moment the body ends, and results settle while the body
1840
+ is still arriving: the consumer is a forked fiber, the producer runs
1841
+ on the request's own (hash fibers are its children).
1842
+ - **The straddler is speculative.** The entry crossing a part edge is
1843
+ dispatched the moment its part settles, sized from its own header out
1844
+ of the retained bytes, so a 10 MB blob spanning three parts is hashed
1845
+ alongside the parts rather than after the last one — and `findBoundary`
1846
+ searches the whole part (it searched the first MiB: a part whose head
1847
+ lay inside such a blob reported no boundary and was hashed serially).
1848
+
1849
+ What is left is the Worker's own I/O: a single invocation receives the
1850
+ body and forwards it, and the two share the isolate's throughput.
1851
+
1852
+ ### §22.10 Measured, and the wall
1853
+
1854
+ The same two pushes as §22.5 — this repository's 15.6k-object, 40 MiB
1855
+ delta-heavy pack (`loose`) and a 15.3k-object, 44 MiB pack of mostly
1856
+ whole blobs (`synthetic`) — real `git push` from the same client, same
1857
+ edge, and GitHub on a fresh repository from the same client for scale.
1858
+ Cloudflare timings vary run to run by ±20%; the ranges are what was seen.
1859
+
1860
+ | | loose push | synthetic push | incremental push | bare clone |
1861
+ | --- | --- | --- | --- | --- |
1862
+ | GitHub (fresh repo) | 3.3 s | 4.6 s | 1.2 s | 1.3 / 2.1 s |
1863
+ | start of this sweep (in-DO, sequential fan-out) | 16 s | 10.8 s | 0.9–1.3 s | 1.3 s |
1864
+ | pipeline in the Worker (§22.9) | 19 s | 12.9 s | | |
1865
+ | + hashers write the spill, body-aligned parts | 14–19 s | 9.3–12.9 s | | |
1866
+ | + speculative straddler, whole-part boundary search | 11.3–14.8 s | 7.7 s | 0.3–0.4 s | |
1867
+ | + scan-first hash responses, native receive loop | 13–14.6 s | 9.5–11 s | 0.3–0.7 s | 1.3 s |
1868
+ | **`HasherInline`** (no fan-out; the reference assembly) | 9.9–13.5 s | 8.8 s | 0.24–0.27 s | 1.3 s |
1869
+
1870
+ The receive-side phases of a loose push at the end of the sweep (from
1871
+ the pump's own log, `Date.now` advancing only across I/O): parts 1–3
1872
+ arrive within 1.3 s (18 MiB/s, the client's rate to Cloudflare's own
1873
+ speed test), then nothing arrives for 4.5 s while three hash calls are in
1874
+ flight, then the rest; the body ends at 8.7 s and the last result settles
1875
+ at 8.7 s. The hash calls' wall times stack instead of overlapping.
1876
+
1877
+ **Why: service-binding subrequests run on the caller's thread.** A probe
1878
+ route fanning one 8 MiB part out N times, timed from the client:
1879
+
1880
+ | transport | n=1 | n=3 | n=6 |
1881
+ | --- | --- | --- | --- |
1882
+ | self service binding (`Cloudflare.Workers.Self`) | 1.1 s | 1.9–2.6 s | 3.9–4.5 s |
1883
+ | service binding to a second script | 0.7–1.0 s | 1.4–2.5 s | 3.6–3.9 s |
1884
+ | `fetch` to the Worker's own workers.dev URL | refused (connection lost) |
1885
+ | `fetch` to a second script's workers.dev URL | refused (connection lost) |
1886
+
1887
+ Six calls cost six times one call over both bindings: the callee executes
1888
+ in the caller's isolate (four concurrent self calls with 8 MiB bodies hit
1889
+ the isolate's memory limit, error 1102), and the in-Worker clock does not
1890
+ even advance across the call. The fan-out therefore never parallelized
1891
+ CPU; it moved bytes around on one thread. What it did buy — and what the
1892
+ Worker-side pipeline keeps — is a Durable Object that never sees a pack
1893
+ byte, a receive that is not blocked on the spill, and hashing that
1894
+ overlaps the client's upload as well as one thread allows.
1895
+
1896
+ Requests arriving from OUTSIDE are spread across isolates: four
1897
+ concurrent external calls of the same part finished as two pairs (2.0 s
1898
+ and 4.1 s), i.e. two-way parallelism. Cross-zone `fetch` to a hasher on
1899
+ another zone would inherit that, at the price of real network egress
1900
+ competing with the client's upload.
1901
+
1902
+ On one thread the floor for a push is roughly `max(ingress, hash CPU)`
1903
+ plus staging and commit: for the loose pack about 2.5 s of upload and 5 s
1904
+ of hashing on a core ~10x slower than a laptop's, so 6–7 s before the
1905
+ commit — the measured 8.7–11 s is that floor plus imperfect overlap. The
1906
+ synthetic pack hashes in ~2 s and lands nearer 6 s. Reaching GitHub's
1907
+ 3.3 s on the delta-heavy pack needs compute Workers do not offer per
1908
+ request: native `index-pack` in a Container (verifying 40 MiB in well
1909
+ under a second, writing R2 from its own network), or a multi-core host
1910
+ behind a cross-zone HTTP hasher. Both are layers this design admits
1911
+ (`Hasher` is a service); neither is built here.
1912
+
1913
+ With the fan-out removed (`HasherInline`, the receiver hashing as parts
1914
+ arrive and spilling them itself), the loose push measures 9.9–13.5 s and
1915
+ the receiver's own CPU shows the hashing — 5.0–7.9 s of it — that the
1916
+ fan-out had spread over invocations on the same thread. That layer is now
1917
+ the reference assembly; `HasherSelf` stays as the shape a remote hasher
1918
+ takes.
1919
+
1920
+ Where the pipeline is already at or past parity: incremental pushes
1921
+ (0.24–0.7 s vs 1.2 s), bare clones (§22.4), and the read path.
1922
+
1923
+ ### §22.11 Hasher layers: the same push on other compute
1924
+
1925
+ `Hasher` is a service precisely so the compute behind verification can be
1926
+ chosen per deployment. Three layers ship:
1927
+
1928
+ | layer | where the scan runs | spill parts written by | parallelism | cost model |
1929
+ | --- | --- | --- | --- | --- |
1930
+ | `HasherInline` (default) | the receiving Worker | the receiver | none (one thread) | included in the Worker's CPU |
1931
+ | `HasherSelf` | another invocation of the same script | the hasher | none on Cloudflare (§22.10) | same |
1932
+ | `HasherLambda(fn)` (`alchemy/Git/Hasher`) | an AWS Lambda per chunk | the receiver | one Lambda per 4 MiB chunk, all at once | Lambda-seconds + cross-cloud egress |
1933
+
1934
+ **`HasherLambda`.** The Git Worker binds `AWS.Lambda.InvokeFunction` on a
1935
+ Lambda declared in the same stack (`HasherFunction`, an Effect-native
1936
+ Function whose only handler answers hash events); the stack carries both
1937
+ provider sets. Binding a Lambda operation to a *Worker* host provisions —
1938
+ once per Worker — an IAM user, key and least-privilege assume-role Role,
1939
+ binds the key and role ARN onto the Worker, and signs each invoke with
1940
+ credentials assumed through a single-flight, expiry-aware resolver: the
1941
+ cross-cloud scaffolding the MicroVM bindings introduced, now shared by
1942
+ every function-scoped Lambda `*Http` binding (`BindingHttp.ts`).
1943
+
1944
+ The invoke payload is JSON, so a chunk travels base64: chunks are 4 MiB
1945
+ (≈5.6 MB encoded, under the 6 MB limit) — the pump reads chunks of the
1946
+ hasher's declared size and, because a Lambda cannot reach the blob store,
1947
+ uploads the 8 MiB spill parts itself from the retained bytes
1948
+ (`writesSpill: false`). The response is bounded to the same limit: the
1949
+ Lambda omits non-blob content (the receiver inflates trees and commits
1950
+ from its retained bytes) and, when the fresh zdata of delta-resolved
1951
+ entries would still overflow, demotes the largest of them back to
1952
+ `unresolved` with their base references, so the receiver resolves those
1953
+ as it would any cross-chunk delta. Any failure on the Lambda side — a
1954
+ throttle, a cold-start timeout, a rejected payload — hashes that chunk
1955
+ inline: a push never fails because its hasher did.
1956
+
1957
+ Measured, same pushes and client as §22.10 (`HasherLambda`, `us-east-1`,
1958
+ 3 GB functions, the Worker on Cloudflare's edge):
1959
+
1960
+ | | loose push | synthetic push | incremental push |
1961
+ | --- | --- | --- | --- |
1962
+ | GitHub (fresh repo) | 3.3 s | 4.6 s | 1.2 s |
1963
+ | `HasherInline` | 9.9–13.5 s | 8.8 s | 0.24–0.4 s |
1964
+ | **`HasherLambda`** | **6.8–7.9 s** | **6.3–6.7 s** | 0.27–0.8 s |
1965
+
1966
+ The body now arrives in 0.8–2.7 s (the receiver's thread is free), the
1967
+ last chunk settles within a second of it, and the receiver's own CPU
1968
+ drops to 1.4–2.7 s: the trailer SHA-1, the staging batches, and — on the
1969
+ delta-heavy pack — 515 cross-chunk deltas resolved locally plus the
1970
+ 10 MB straddler that exceeds an invoke payload and is hashed inline.
1971
+ Those, the staging round trips (0.7–1.2 s) and the commit (0.6–0.7 s)
1972
+ are what remains between this and GitHub.
1973
+
1974
+ What this buys: every chunk verifies at once, on a core several times
1975
+ faster than a Worker's, so hashing leaves the receive's critical path;
1976
+ what it costs: the chunk crosses to AWS and the scan comes back, so a
1977
+ Lambda hasher is worth it for pushes of tens of MiB and irrelevant for the
1978
+ kilobyte pushes that dominate a repository's life — which is why it is a
1979
+ layer and not the default.
1980
+
1981
+ ### §22.12 Hasher on dynamically loaded Workers
1982
+
1983
+ `WorkerLoader` instantiates a Worker from module source at runtime, under
1984
+ a name the runtime caches. The question that decides whether it is a
1985
+ hasher was answered by a probe (four loaded workers each running a fixed
1986
+ CPU burn, timed from the client):
1987
+
1988
+ | | n=1 | n=4 same name | n=4 distinct names | n=8 |
1989
+ | --- | --- | --- | --- | --- |
1990
+ | CPU burn, client time | 0.44–0.79 s | 1.94 s (serial) | **0.65 s (parallel)** | refused |
1991
+ | 100 MB allocation each | ok | ok | ok, four isolates at once | refused |
1992
+
1993
+ Distinct names are distinct isolates, and distinct isolates run **in
1994
+ parallel with the caller** — unlike a service binding (§22.10). Each has
1995
+ its own 128 MB. The runtime allows four concurrent dynamic-worker
1996
+ invocations per request; an eighth call fails with "Dynamic worker
1997
+ concurrency limit exceeded".
1998
+
1999
+ `HasherWorkerLoader` (`alchemy/Git/Hasher`) keeps four fixed names
2000
+ (`git-hasher-0..3`, warm across pushes), dispatches 4 MiB chunks over the
2001
+ hash route's own protocol, and lets the pump write the spill
2002
+ (`writesSpill: false`); the loaded hasher has no bindings and
2003
+ `globalOutbound: null`. Its module is the real scanner: the Worker
2004
+ bundler gained a `?worker` import (`WorkerModulePlugin.ts`) that bundles
2005
+ the target into one self-contained module and imports it as a string —
2006
+ nested `?worker` imports included — so `WorkerLoaderModule.ts` is ordinary
2007
+ TypeScript that shares `PartialScan` with everything else. (The loader's
2008
+ `get` also wrapped the native stub as an entrypoint and had no `fetch`;
2009
+ fixed with a regression test.)
2010
+
2011
+ Measured, same pushes and client as §22.10:
2012
+
2013
+ | | loose push | synthetic push | incremental push |
2014
+ | --- | --- | --- | --- |
2015
+ | GitHub (fresh repo) | 3.3 s | 4.6 s | 1.2 s |
2016
+ | `HasherInline` | 9.9–13.5 s | 8.8 s | 0.24–0.4 s |
2017
+ | `HasherLambda` | 6.8–7.9 s | 6.3–6.7 s | 0.27–0.8 s |
2018
+ | **`HasherWorkerLoader`** | **7.1–7.8 s** | **6.8 s** | 0.24 s |
2019
+
2020
+ The body is in by 0.8–1.5 s, chunks settle in waves of four (four by
2021
+ 0.9 s, the next four by 2.1 s, the last by 2.5 s), and the receiver's own
2022
+ CPU is the lowest of the three (0.9–1.4 s: no base64, no signing). What
2023
+ remains is the same tail as §22.11 — cross-chunk deltas, the oversize
2024
+ straddler, staging and the commit — and the four-way cap: a push wider
2025
+ than four chunks hashes in waves.
2026
+
2027
+ ### §22.13 Deltas as jobs, and the resolved pack
2028
+
2029
+ Two receiver-side costs survived every hasher: the cross-chunk and thin
2030
+ deltas the scan leaves unresolved (515 on the delta-heavy pack) were
2031
+ applied, hashed and deflated on the receiver's thread, and every
2032
+ delta-resolved blob was staged inline — its fresh zlib written into
2033
+ SQLite and rewritten by the staged→live flip.
2034
+
2035
+ **Delta rounds.** `Hasher.resolveDeltas(bases, jobs)` applies a batch of
2036
+ deltas whose bases the caller supplies (a base's zlib or, for a live
2037
+ object, its content), returning oid, fresh zlib and non-blob content.
2038
+ The pump resolves in rounds: every delta whose base is known joins a
2039
+ byte-bounded batch — bases shipped once per batch — and the batches run
2040
+ across the hasher's slots at once; a delta on a still-unresolved delta
2041
+ waits for the next round. The receiver only assembles bytes it already
2042
+ holds. Every layer implements it (the loaded worker and the self route
2043
+ answer `mode=deltas`; the Lambda keeps it inline until its payload budget
2044
+ is worth spending). 515 deltas: 0.26–0.37 s of round trips instead of
2045
+ receiver CPU.
2046
+
2047
+ **The resolved pack.** While a body spills, delta-resolved blobs are held
2048
+ back from staging; after the rounds their zlib is written as one object,
2049
+ `wire-<receiveId>-r` (`typeSize header + zdata` per entry, the promoted
2050
+ layout `packKeyOf` already maps), and their rows become coordinates. The
2051
+ DO writes no blob bytes for a large push at all: on the delta-heavy pack
2052
+ every one of its 13,646 blobs is a coordinate and 1,968 trees, commits
2053
+ and tags stay resident (the resolved pack is 4.1 MB). Compaction's
2054
+ geometric merge treats it like any wire pack.
2055
+
2056
+ ### §22.14 The lazy flip
2057
+
2058
+ With every blob a coordinate, `finalize` was still 0.6–0.7 s of a
2059
+ ~4.3 s push: `UPDATE objects SET staged_push = NULL WHERE staged_push = ?`
2060
+ rewrites every staged row of a WITHOUT ROWID table keyed by random oids —
2061
+ one page per row, on the response path. A staging table would only move
2062
+ the same random-page insert to commit time.
2063
+
2064
+ A push's objects are now live the moment its `pushes` row is committed:
2065
+ every read predicate is `LIVE_OBJECTS` —
2066
+ `staged_push IS NULL OR staged_push IN (committed pushes)` — a
2067
+ materialized subquery over a table that holds at most the pushes whose
2068
+ flip is pending. The transaction commits the refs, the graph and the
2069
+ push row; the per-row rewrite runs after the response (`flipPush`, in
2070
+ the DO's `waitUntil`), and GC flips any committed push whose deferred
2071
+ flip never ran. A new push may adopt rows only from pushes that are not
2072
+ committed, so a committed-unflipped row is never re-staged (and then
2073
+ GC'd) out from under a live object. Finalize on the delta-heavy push:
2074
+ 0.7 s → the refs and graph alone; locally 50 ms → 2 ms.
2075
+
2076
+ ### §22.15 Where the sweep stands
2077
+
2078
+ Same pushes and client; three runs each on the loader hasher after
2079
+ §22.13–14, best and median (the spread is the client's uplink — the
2080
+ route's own total is 3.4–3.9 s for the loose push and 2.2–3.6 s for the
2081
+ synthetic one):
2082
+
2083
+ | | loose push | synthetic push |
2084
+ | --- | --- | --- |
2085
+ | GitHub (fresh repo) | 3.3 s | 4.6 s |
2086
+ | start of the sweep | 63.6 s | — |
2087
+ | `HasherWorkerLoader`, §22.12 | 7.1–7.8 s | 6.8 s |
2088
+ | + delta jobs, resolved pack, lazy flip, batched graph, edge-only connectivity | **5.9 s best, 6.5 s median** | **4.8 s best, 6.4 s median** |
2089
+
2090
+ The whole-blob push meets GitHub on a good run. The delta-heavy push is
2091
+ 2.6 s behind on its best run, and the route's remaining time is the
2092
+ hashing waves — ten 4 MiB chunks over four isolates, the third wave
2093
+ landing a second after the body — plus the delta rounds (0.2–0.4 s),
2094
+ the resolved pack's late write and the commit round trip (0.5–0.7 s).
2095
+ The next lever for it is more than four hashers per push: a loaded
2096
+ hasher can hold a loader binding of its own and fan a chunk out a
2097
+ second time, or a push can split its chunks across the loader and a
2098
+ Lambda. Neither is built here.