alchemy 0.66.0 → 0.68.0

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 (825) hide show
  1. package/bin/alchemy.js +25554 -26250
  2. package/bin/alchemy.ts +6 -2
  3. package/bin/commands/configure.ts +194 -0
  4. package/bin/commands/login.ts +99 -55
  5. package/bin/commands/logout.ts +66 -0
  6. package/bin/services/find-workspace-root.ts +1 -1
  7. package/bin/trpc.ts +27 -2
  8. package/lib/alchemy.d.ts +6 -0
  9. package/lib/alchemy.d.ts.map +1 -1
  10. package/lib/alchemy.js +1 -0
  11. package/lib/alchemy.js.map +1 -1
  12. package/lib/apply.d.ts +2 -2
  13. package/lib/apply.d.ts.map +1 -1
  14. package/lib/apply.js +18 -15
  15. package/lib/apply.js.map +1 -1
  16. package/lib/auth.d.ts +72 -0
  17. package/lib/auth.d.ts.map +1 -0
  18. package/lib/auth.js +163 -0
  19. package/lib/auth.js.map +1 -0
  20. package/lib/aws/bucket.d.ts +12 -3
  21. package/lib/aws/bucket.d.ts.map +1 -1
  22. package/lib/aws/bucket.js +2 -2
  23. package/lib/aws/bucket.js.map +1 -1
  24. package/lib/aws/control/resource.d.ts +34 -3
  25. package/lib/aws/control/resource.d.ts.map +1 -1
  26. package/lib/aws/control/resource.js +3 -3
  27. package/lib/aws/control/resource.js.map +1 -1
  28. package/lib/aws/ec2/internet-gateway-attachment.d.ts +1 -2
  29. package/lib/aws/ec2/internet-gateway-attachment.d.ts.map +1 -1
  30. package/lib/aws/ec2/internet-gateway-attachment.js +4 -4
  31. package/lib/aws/ec2/internet-gateway-attachment.js.map +1 -1
  32. package/lib/aws/ec2/internet-gateway.d.ts +1 -2
  33. package/lib/aws/ec2/internet-gateway.d.ts.map +1 -1
  34. package/lib/aws/ec2/internet-gateway.js +2 -2
  35. package/lib/aws/ec2/internet-gateway.js.map +1 -1
  36. package/lib/aws/ec2/nat-gateway.d.ts +1 -2
  37. package/lib/aws/ec2/nat-gateway.d.ts.map +1 -1
  38. package/lib/aws/ec2/nat-gateway.js +2 -2
  39. package/lib/aws/ec2/nat-gateway.js.map +1 -1
  40. package/lib/aws/ec2/route-table-association.d.ts +1 -2
  41. package/lib/aws/ec2/route-table-association.d.ts.map +1 -1
  42. package/lib/aws/ec2/route-table-association.js +2 -2
  43. package/lib/aws/ec2/route-table-association.js.map +1 -1
  44. package/lib/aws/ec2/route-table.d.ts +1 -2
  45. package/lib/aws/ec2/route-table.d.ts.map +1 -1
  46. package/lib/aws/ec2/route-table.js +2 -2
  47. package/lib/aws/ec2/route-table.js.map +1 -1
  48. package/lib/aws/ec2/route.d.ts +1 -2
  49. package/lib/aws/ec2/route.d.ts.map +1 -1
  50. package/lib/aws/ec2/route.js +2 -2
  51. package/lib/aws/ec2/route.js.map +1 -1
  52. package/lib/aws/ec2/security-group-rule.d.ts +1 -2
  53. package/lib/aws/ec2/security-group-rule.d.ts.map +1 -1
  54. package/lib/aws/ec2/security-group-rule.js +2 -2
  55. package/lib/aws/ec2/security-group-rule.js.map +1 -1
  56. package/lib/aws/ec2/security-group.d.ts +1 -2
  57. package/lib/aws/ec2/security-group.d.ts.map +1 -1
  58. package/lib/aws/ec2/security-group.js +2 -2
  59. package/lib/aws/ec2/security-group.js.map +1 -1
  60. package/lib/aws/ec2/subnet.d.ts +1 -2
  61. package/lib/aws/ec2/subnet.d.ts.map +1 -1
  62. package/lib/aws/ec2/subnet.js +2 -2
  63. package/lib/aws/ec2/subnet.js.map +1 -1
  64. package/lib/aws/ec2/vpc.d.ts +1 -2
  65. package/lib/aws/ec2/vpc.d.ts.map +1 -1
  66. package/lib/aws/ec2/vpc.js +2 -2
  67. package/lib/aws/ec2/vpc.js.map +1 -1
  68. package/lib/aws/function.d.ts +116 -3
  69. package/lib/aws/function.d.ts.map +1 -1
  70. package/lib/aws/function.js +2 -2
  71. package/lib/aws/function.js.map +1 -1
  72. package/lib/aws/oidc/github-oidc-provider.d.ts +13 -2
  73. package/lib/aws/oidc/github-oidc-provider.d.ts.map +1 -1
  74. package/lib/aws/oidc/oidc-provider.d.ts +48 -3
  75. package/lib/aws/oidc/oidc-provider.d.ts.map +1 -1
  76. package/lib/aws/oidc/oidc-provider.js +2 -2
  77. package/lib/aws/oidc/oidc-provider.js.map +1 -1
  78. package/lib/aws/policy-attachment.d.ts +2 -3
  79. package/lib/aws/policy-attachment.d.ts.map +1 -1
  80. package/lib/aws/policy-attachment.js +1 -1
  81. package/lib/aws/policy-attachment.js.map +1 -1
  82. package/lib/aws/policy.d.ts +1 -2
  83. package/lib/aws/policy.d.ts.map +1 -1
  84. package/lib/aws/policy.js +4 -4
  85. package/lib/aws/policy.js.map +1 -1
  86. package/lib/aws/queue.d.ts +1 -2
  87. package/lib/aws/queue.d.ts.map +1 -1
  88. package/lib/aws/queue.js +4 -4
  89. package/lib/aws/queue.js.map +1 -1
  90. package/lib/aws/role.d.ts +1 -2
  91. package/lib/aws/role.d.ts.map +1 -1
  92. package/lib/aws/role.js +2 -2
  93. package/lib/aws/role.js.map +1 -1
  94. package/lib/aws/ses.d.ts +1 -2
  95. package/lib/aws/ses.d.ts.map +1 -1
  96. package/lib/aws/ses.js +2 -2
  97. package/lib/aws/ses.js.map +1 -1
  98. package/lib/aws/ssm-parameter.d.ts +1 -2
  99. package/lib/aws/ssm-parameter.d.ts.map +1 -1
  100. package/lib/aws/ssm-parameter.js +2 -2
  101. package/lib/aws/ssm-parameter.js.map +1 -1
  102. package/lib/aws/table.d.ts +1 -2
  103. package/lib/aws/table.d.ts.map +1 -1
  104. package/lib/aws/table.js +2 -2
  105. package/lib/aws/table.js.map +1 -1
  106. package/lib/cloudflare/account-api-token.d.ts +1 -2
  107. package/lib/cloudflare/account-api-token.d.ts.map +1 -1
  108. package/lib/cloudflare/account-api-token.js +2 -2
  109. package/lib/cloudflare/account-api-token.js.map +1 -1
  110. package/lib/cloudflare/ai-gateway.d.ts +1 -2
  111. package/lib/cloudflare/ai-gateway.d.ts.map +1 -1
  112. package/lib/cloudflare/ai-gateway.js +2 -2
  113. package/lib/cloudflare/ai-gateway.js.map +1 -1
  114. package/lib/cloudflare/api-gateway-operation.d.ts +1 -2
  115. package/lib/cloudflare/api-gateway-operation.d.ts.map +1 -1
  116. package/lib/cloudflare/api-gateway-operation.js +2 -2
  117. package/lib/cloudflare/api-gateway-operation.js.map +1 -1
  118. package/lib/cloudflare/api-schema.d.ts +1 -2
  119. package/lib/cloudflare/api-schema.d.ts.map +1 -1
  120. package/lib/cloudflare/api-schema.js +2 -2
  121. package/lib/cloudflare/api-schema.js.map +1 -1
  122. package/lib/cloudflare/api-shield.d.ts +1 -2
  123. package/lib/cloudflare/api-shield.d.ts.map +1 -1
  124. package/lib/cloudflare/api-shield.js +2 -2
  125. package/lib/cloudflare/api-shield.js.map +1 -1
  126. package/lib/cloudflare/api.d.ts +18 -10
  127. package/lib/cloudflare/api.d.ts.map +1 -1
  128. package/lib/cloudflare/api.js +93 -38
  129. package/lib/cloudflare/api.js.map +1 -1
  130. package/lib/cloudflare/assets.d.ts +21 -43
  131. package/lib/cloudflare/assets.d.ts.map +1 -1
  132. package/lib/cloudflare/assets.js +78 -70
  133. package/lib/cloudflare/assets.js.map +1 -1
  134. package/lib/cloudflare/auth.d.ts +91 -17
  135. package/lib/cloudflare/auth.d.ts.map +1 -1
  136. package/lib/cloudflare/auth.js +141 -62
  137. package/lib/cloudflare/auth.js.map +1 -1
  138. package/lib/cloudflare/bindings.d.ts +17 -5
  139. package/lib/cloudflare/bindings.d.ts.map +1 -1
  140. package/lib/cloudflare/bindings.js +3 -1
  141. package/lib/cloudflare/bindings.js.map +1 -1
  142. package/lib/cloudflare/bound.d.ts +4 -3
  143. package/lib/cloudflare/bound.d.ts.map +1 -1
  144. package/lib/cloudflare/bucket.d.ts +60 -8
  145. package/lib/cloudflare/bucket.d.ts.map +1 -1
  146. package/lib/cloudflare/bucket.js +161 -18
  147. package/lib/cloudflare/bucket.js.map +1 -1
  148. package/lib/cloudflare/bundle/internal-worker-bundle.d.ts +1 -1
  149. package/lib/cloudflare/bundle/internal-worker-bundle.d.ts.map +1 -1
  150. package/lib/cloudflare/bundle/internal-worker-bundle.js.map +1 -1
  151. package/lib/cloudflare/bundle/plugin-wasm.js +4 -2
  152. package/lib/cloudflare/bundle/plugin-wasm.js.map +1 -1
  153. package/lib/cloudflare/certificate-pack.d.ts +1 -2
  154. package/lib/cloudflare/certificate-pack.d.ts.map +1 -1
  155. package/lib/cloudflare/certificate-pack.js +4 -4
  156. package/lib/cloudflare/certificate-pack.js.map +1 -1
  157. package/lib/cloudflare/compatibility-date.gen.d.ts +1 -1
  158. package/lib/cloudflare/compatibility-date.gen.js +1 -1
  159. package/lib/cloudflare/container.d.ts +1 -2
  160. package/lib/cloudflare/container.d.ts.map +1 -1
  161. package/lib/cloudflare/container.js +6 -6
  162. package/lib/cloudflare/container.js.map +1 -1
  163. package/lib/cloudflare/custom-domain.d.ts +1 -2
  164. package/lib/cloudflare/custom-domain.d.ts.map +1 -1
  165. package/lib/cloudflare/custom-domain.js +2 -2
  166. package/lib/cloudflare/custom-domain.js.map +1 -1
  167. package/lib/cloudflare/d1-database.d.ts +2 -3
  168. package/lib/cloudflare/d1-database.d.ts.map +1 -1
  169. package/lib/cloudflare/d1-database.js +5 -5
  170. package/lib/cloudflare/d1-database.js.map +1 -1
  171. package/lib/cloudflare/dispatch-namespace.d.ts +2 -3
  172. package/lib/cloudflare/dispatch-namespace.d.ts.map +1 -1
  173. package/lib/cloudflare/dispatch-namespace.js +3 -3
  174. package/lib/cloudflare/dispatch-namespace.js.map +1 -1
  175. package/lib/cloudflare/dns-records.d.ts +1 -2
  176. package/lib/cloudflare/dns-records.d.ts.map +1 -1
  177. package/lib/cloudflare/dns-records.js +4 -4
  178. package/lib/cloudflare/dns-records.js.map +1 -1
  179. package/lib/cloudflare/email-address.d.ts +1 -2
  180. package/lib/cloudflare/email-address.d.ts.map +1 -1
  181. package/lib/cloudflare/email-address.js +6 -6
  182. package/lib/cloudflare/email-address.js.map +1 -1
  183. package/lib/cloudflare/email-catch-all.d.ts +1 -2
  184. package/lib/cloudflare/email-catch-all.d.ts.map +1 -1
  185. package/lib/cloudflare/email-catch-all.js +4 -4
  186. package/lib/cloudflare/email-catch-all.js.map +1 -1
  187. package/lib/cloudflare/email-routing.d.ts +1 -2
  188. package/lib/cloudflare/email-routing.d.ts.map +1 -1
  189. package/lib/cloudflare/email-routing.js +4 -4
  190. package/lib/cloudflare/email-routing.js.map +1 -1
  191. package/lib/cloudflare/email-rule.d.ts +1 -2
  192. package/lib/cloudflare/email-rule.d.ts.map +1 -1
  193. package/lib/cloudflare/email-rule.js +4 -4
  194. package/lib/cloudflare/email-rule.js.map +1 -1
  195. package/lib/cloudflare/hyperdrive-ref.d.ts +23 -0
  196. package/lib/cloudflare/hyperdrive-ref.d.ts.map +1 -0
  197. package/lib/cloudflare/hyperdrive-ref.js +52 -0
  198. package/lib/cloudflare/hyperdrive-ref.js.map +1 -0
  199. package/lib/cloudflare/hyperdrive.d.ts +1 -2
  200. package/lib/cloudflare/hyperdrive.d.ts.map +1 -1
  201. package/lib/cloudflare/hyperdrive.js +4 -4
  202. package/lib/cloudflare/hyperdrive.js.map +1 -1
  203. package/lib/cloudflare/index.d.ts +2 -0
  204. package/lib/cloudflare/index.d.ts.map +1 -1
  205. package/lib/cloudflare/index.js +2 -0
  206. package/lib/cloudflare/index.js.map +1 -1
  207. package/lib/cloudflare/kv-namespace.d.ts +2 -3
  208. package/lib/cloudflare/kv-namespace.d.ts.map +1 -1
  209. package/lib/cloudflare/kv-namespace.js +5 -5
  210. package/lib/cloudflare/kv-namespace.js.map +1 -1
  211. package/lib/cloudflare/miniflare/build-worker-options.d.ts +2 -1
  212. package/lib/cloudflare/miniflare/build-worker-options.d.ts.map +1 -1
  213. package/lib/cloudflare/miniflare/build-worker-options.js +11 -6
  214. package/lib/cloudflare/miniflare/build-worker-options.js.map +1 -1
  215. package/lib/cloudflare/miniflare/delete.js +1 -1
  216. package/lib/cloudflare/miniflare/delete.js.map +1 -1
  217. package/lib/cloudflare/miniflare/miniflare-controller.d.ts +3 -1
  218. package/lib/cloudflare/miniflare/miniflare-controller.d.ts.map +1 -1
  219. package/lib/cloudflare/miniflare/miniflare-controller.js +24 -9
  220. package/lib/cloudflare/miniflare/miniflare-controller.js.map +1 -1
  221. package/lib/cloudflare/miniflare/miniflare-worker-proxy.d.ts +24 -13
  222. package/lib/cloudflare/miniflare/miniflare-worker-proxy.d.ts.map +1 -1
  223. package/lib/cloudflare/miniflare/miniflare-worker-proxy.js +90 -79
  224. package/lib/cloudflare/miniflare/miniflare-worker-proxy.js.map +1 -1
  225. package/lib/cloudflare/miniflare/remote-binding-proxy.d.ts.map +1 -1
  226. package/lib/cloudflare/miniflare/remote-binding-proxy.js +15 -4
  227. package/lib/cloudflare/miniflare/remote-binding-proxy.js.map +1 -1
  228. package/lib/cloudflare/miniflare/tunnel.d.ts +18 -0
  229. package/lib/cloudflare/miniflare/tunnel.d.ts.map +1 -0
  230. package/lib/cloudflare/miniflare/tunnel.js +79 -0
  231. package/lib/cloudflare/miniflare/tunnel.js.map +1 -0
  232. package/lib/cloudflare/next.d.ts.map +1 -1
  233. package/lib/cloudflare/next.js +3 -0
  234. package/lib/cloudflare/next.js.map +1 -1
  235. package/lib/cloudflare/permission-groups.d.ts +1 -2
  236. package/lib/cloudflare/permission-groups.d.ts.map +1 -1
  237. package/lib/cloudflare/permission-groups.js +1 -1
  238. package/lib/cloudflare/permission-groups.js.map +1 -1
  239. package/lib/cloudflare/pipeline.d.ts +2 -3
  240. package/lib/cloudflare/pipeline.d.ts.map +1 -1
  241. package/lib/cloudflare/pipeline.js +5 -5
  242. package/lib/cloudflare/pipeline.js.map +1 -1
  243. package/lib/cloudflare/queue-consumer.d.ts +1 -2
  244. package/lib/cloudflare/queue-consumer.d.ts.map +1 -1
  245. package/lib/cloudflare/queue-consumer.js +4 -4
  246. package/lib/cloudflare/queue-consumer.js.map +1 -1
  247. package/lib/cloudflare/queue.d.ts +1 -2
  248. package/lib/cloudflare/queue.d.ts.map +1 -1
  249. package/lib/cloudflare/queue.js +4 -4
  250. package/lib/cloudflare/queue.js.map +1 -1
  251. package/lib/cloudflare/quick-tunnel.d.ts +1 -1
  252. package/lib/cloudflare/react-router/plugin.d.ts.map +1 -1
  253. package/lib/cloudflare/react-router/plugin.js +13 -0
  254. package/lib/cloudflare/react-router/plugin.js.map +1 -1
  255. package/lib/cloudflare/redirect-rule.d.ts +1 -2
  256. package/lib/cloudflare/redirect-rule.d.ts.map +1 -1
  257. package/lib/cloudflare/redirect-rule.js +4 -4
  258. package/lib/cloudflare/redirect-rule.js.map +1 -1
  259. package/lib/cloudflare/route.d.ts +1 -2
  260. package/lib/cloudflare/route.d.ts.map +1 -1
  261. package/lib/cloudflare/route.js +4 -4
  262. package/lib/cloudflare/route.js.map +1 -1
  263. package/lib/cloudflare/ruleset.d.ts +1 -2
  264. package/lib/cloudflare/ruleset.d.ts.map +1 -1
  265. package/lib/cloudflare/ruleset.js +2 -2
  266. package/lib/cloudflare/ruleset.js.map +1 -1
  267. package/lib/cloudflare/secret-ref.d.ts +38 -0
  268. package/lib/cloudflare/secret-ref.d.ts.map +1 -0
  269. package/lib/cloudflare/secret-ref.js +38 -0
  270. package/lib/cloudflare/secret-ref.js.map +1 -0
  271. package/lib/cloudflare/secret.d.ts +2 -3
  272. package/lib/cloudflare/secret.d.ts.map +1 -1
  273. package/lib/cloudflare/secret.js +3 -3
  274. package/lib/cloudflare/secret.js.map +1 -1
  275. package/lib/cloudflare/secrets-store.d.ts +2 -3
  276. package/lib/cloudflare/secrets-store.d.ts.map +1 -1
  277. package/lib/cloudflare/secrets-store.js +3 -3
  278. package/lib/cloudflare/secrets-store.js.map +1 -1
  279. package/lib/cloudflare/tunnel.d.ts +2 -3
  280. package/lib/cloudflare/tunnel.d.ts.map +1 -1
  281. package/lib/cloudflare/tunnel.js +3 -3
  282. package/lib/cloudflare/tunnel.js.map +1 -1
  283. package/lib/cloudflare/user.d.ts +3 -2
  284. package/lib/cloudflare/user.d.ts.map +1 -1
  285. package/lib/cloudflare/user.js +7 -5
  286. package/lib/cloudflare/user.js.map +1 -1
  287. package/lib/cloudflare/vectorize-index.d.ts +2 -3
  288. package/lib/cloudflare/vectorize-index.d.ts.map +1 -1
  289. package/lib/cloudflare/vectorize-index.js +6 -6
  290. package/lib/cloudflare/vectorize-index.js.map +1 -1
  291. package/lib/cloudflare/vectorize-metadata-index.d.ts +2 -3
  292. package/lib/cloudflare/vectorize-metadata-index.d.ts.map +1 -1
  293. package/lib/cloudflare/vectorize-metadata-index.js +4 -4
  294. package/lib/cloudflare/vectorize-metadata-index.js.map +1 -1
  295. package/lib/cloudflare/website.js +1 -1
  296. package/lib/cloudflare/website.js.map +1 -1
  297. package/lib/cloudflare/worker-assets.d.ts +1 -29
  298. package/lib/cloudflare/worker-assets.d.ts.map +1 -1
  299. package/lib/cloudflare/worker-assets.js +9 -42
  300. package/lib/cloudflare/worker-assets.js.map +1 -1
  301. package/lib/cloudflare/worker-metadata.d.ts +1 -1
  302. package/lib/cloudflare/worker-metadata.d.ts.map +1 -1
  303. package/lib/cloudflare/worker-metadata.js +7 -9
  304. package/lib/cloudflare/worker-metadata.js.map +1 -1
  305. package/lib/cloudflare/worker-stub.d.ts +2 -3
  306. package/lib/cloudflare/worker-stub.d.ts.map +1 -1
  307. package/lib/cloudflare/worker-stub.js +3 -3
  308. package/lib/cloudflare/worker-stub.js.map +1 -1
  309. package/lib/cloudflare/worker-subdomain.d.ts +4 -3
  310. package/lib/cloudflare/worker-subdomain.d.ts.map +1 -1
  311. package/lib/cloudflare/worker-subdomain.js +5 -5
  312. package/lib/cloudflare/worker-subdomain.js.map +1 -1
  313. package/lib/cloudflare/worker.d.ts +19 -5
  314. package/lib/cloudflare/worker.d.ts.map +1 -1
  315. package/lib/cloudflare/worker.js +18 -5
  316. package/lib/cloudflare/worker.js.map +1 -1
  317. package/lib/cloudflare/wrangler.json.d.ts +2 -1
  318. package/lib/cloudflare/wrangler.json.d.ts.map +1 -1
  319. package/lib/cloudflare/wrangler.json.js +4 -6
  320. package/lib/cloudflare/wrangler.json.js.map +1 -1
  321. package/lib/cloudflare/zone.d.ts +1 -2
  322. package/lib/cloudflare/zone.d.ts.map +1 -1
  323. package/lib/cloudflare/zone.js +2 -2
  324. package/lib/cloudflare/zone.js.map +1 -1
  325. package/lib/context.d.ts +8 -8
  326. package/lib/context.d.ts.map +1 -1
  327. package/lib/context.js.map +1 -1
  328. package/lib/destroy.d.ts +1 -1
  329. package/lib/destroy.d.ts.map +1 -1
  330. package/lib/destroy.js.map +1 -1
  331. package/lib/dns/import-dns.d.ts +1 -2
  332. package/lib/dns/import-dns.d.ts.map +1 -1
  333. package/lib/dns/import-dns.js +2 -2
  334. package/lib/dns/import-dns.js.map +1 -1
  335. package/lib/docker/container.d.ts +1 -2
  336. package/lib/docker/container.d.ts.map +1 -1
  337. package/lib/docker/container.js +2 -3
  338. package/lib/docker/container.js.map +1 -1
  339. package/lib/docker/image.d.ts +1 -2
  340. package/lib/docker/image.d.ts.map +1 -1
  341. package/lib/docker/image.js +9 -9
  342. package/lib/docker/image.js.map +1 -1
  343. package/lib/docker/network.d.ts +1 -2
  344. package/lib/docker/network.d.ts.map +1 -1
  345. package/lib/docker/network.js +2 -3
  346. package/lib/docker/network.js.map +1 -1
  347. package/lib/docker/remote-image.d.ts +1 -2
  348. package/lib/docker/remote-image.d.ts.map +1 -1
  349. package/lib/docker/remote-image.js +2 -3
  350. package/lib/docker/remote-image.js.map +1 -1
  351. package/lib/docker/volume.d.ts +1 -2
  352. package/lib/docker/volume.d.ts.map +1 -1
  353. package/lib/docker/volume.js +2 -3
  354. package/lib/docker/volume.js.map +1 -1
  355. package/lib/esbuild/bundle.d.ts +1 -2
  356. package/lib/esbuild/bundle.d.ts.map +1 -1
  357. package/lib/esbuild/bundle.js +4 -4
  358. package/lib/esbuild/bundle.js.map +1 -1
  359. package/lib/fs/copy-file.d.ts +1 -2
  360. package/lib/fs/copy-file.d.ts.map +1 -1
  361. package/lib/fs/copy-file.js +2 -2
  362. package/lib/fs/copy-file.js.map +1 -1
  363. package/lib/fs/file.d.ts +1 -2
  364. package/lib/fs/file.d.ts.map +1 -1
  365. package/lib/fs/file.js +2 -2
  366. package/lib/fs/file.js.map +1 -1
  367. package/lib/fs/folder.d.ts +1 -2
  368. package/lib/fs/folder.d.ts.map +1 -1
  369. package/lib/fs/folder.js +2 -2
  370. package/lib/fs/folder.js.map +1 -1
  371. package/lib/github/comment.d.ts +1 -2
  372. package/lib/github/comment.d.ts.map +1 -1
  373. package/lib/github/comment.js +4 -4
  374. package/lib/github/comment.js.map +1 -1
  375. package/lib/github/repository-environment.d.ts +1 -2
  376. package/lib/github/repository-environment.d.ts.map +1 -1
  377. package/lib/github/repository-environment.js +2 -2
  378. package/lib/github/repository-environment.js.map +1 -1
  379. package/lib/github/repository-webhook.d.ts +1 -2
  380. package/lib/github/repository-webhook.d.ts.map +1 -1
  381. package/lib/github/repository-webhook.js +2 -2
  382. package/lib/github/repository-webhook.js.map +1 -1
  383. package/lib/github/secret.d.ts +1 -2
  384. package/lib/github/secret.d.ts.map +1 -1
  385. package/lib/github/secret.js +2 -2
  386. package/lib/github/secret.js.map +1 -1
  387. package/lib/llms.cloudflare.txt +1 -1
  388. package/lib/neon/api/client.gen.d.ts +13 -0
  389. package/lib/neon/api/client.gen.d.ts.map +1 -0
  390. package/lib/neon/api/client.gen.js +7 -0
  391. package/lib/neon/api/client.gen.js.map +1 -0
  392. package/lib/neon/api/sdk.gen.d.ts +880 -0
  393. package/lib/neon/api/sdk.gen.d.ts.map +1 -0
  394. package/lib/neon/api/sdk.gen.js +1527 -0
  395. package/lib/neon/api/sdk.gen.js.map +1 -0
  396. package/lib/neon/api/types.gen.d.ts +7250 -0
  397. package/lib/neon/api/types.gen.d.ts.map +1 -0
  398. package/lib/neon/api/types.gen.js +2 -0
  399. package/lib/neon/api/types.gen.js.map +1 -0
  400. package/lib/neon/api.d.ts +14 -49
  401. package/lib/neon/api.d.ts.map +1 -1
  402. package/lib/neon/api.js +36 -114
  403. package/lib/neon/api.js.map +1 -1
  404. package/lib/neon/branch.d.ts +141 -0
  405. package/lib/neon/branch.d.ts.map +1 -0
  406. package/lib/neon/branch.js +112 -0
  407. package/lib/neon/branch.js.map +1 -0
  408. package/lib/neon/index.d.ts +1 -1
  409. package/lib/neon/index.d.ts.map +1 -1
  410. package/lib/neon/index.js +1 -1
  411. package/lib/neon/index.js.map +1 -1
  412. package/lib/neon/project.d.ts +32 -242
  413. package/lib/neon/project.d.ts.map +1 -1
  414. package/lib/neon/project.js +90 -269
  415. package/lib/neon/project.js.map +1 -1
  416. package/lib/neon/utils.d.ts +49 -0
  417. package/lib/neon/utils.d.ts.map +1 -0
  418. package/lib/neon/utils.js +44 -0
  419. package/lib/neon/utils.js.map +1 -0
  420. package/lib/os/exec.d.ts +1 -2
  421. package/lib/os/exec.d.ts.map +1 -1
  422. package/lib/os/exec.js +2 -2
  423. package/lib/os/exec.js.map +1 -1
  424. package/lib/planetscale/api/client.gen.d.ts +12 -1749
  425. package/lib/planetscale/api/client.gen.d.ts.map +1 -1
  426. package/lib/planetscale/api/client.gen.js +6 -2400
  427. package/lib/planetscale/api/client.gen.js.map +1 -1
  428. package/lib/planetscale/api/sdk.gen.d.ts +1582 -0
  429. package/lib/planetscale/api/sdk.gen.d.ts.map +1 -0
  430. package/lib/planetscale/api/sdk.gen.js +2219 -0
  431. package/lib/planetscale/api/sdk.gen.js.map +1 -0
  432. package/lib/planetscale/api/types.gen.d.ts +594 -449
  433. package/lib/planetscale/api/types.gen.d.ts.map +1 -1
  434. package/lib/planetscale/api.d.ts +43 -0
  435. package/lib/planetscale/api.d.ts.map +1 -0
  436. package/lib/planetscale/api.js +53 -0
  437. package/lib/planetscale/api.js.map +1 -0
  438. package/lib/planetscale/branch.d.ts +2 -3
  439. package/lib/planetscale/branch.d.ts.map +1 -1
  440. package/lib/planetscale/branch.js +17 -15
  441. package/lib/planetscale/branch.js.map +1 -1
  442. package/lib/planetscale/database.d.ts +2 -3
  443. package/lib/planetscale/database.d.ts.map +1 -1
  444. package/lib/planetscale/database.js +34 -34
  445. package/lib/planetscale/database.js.map +1 -1
  446. package/lib/planetscale/index.d.ts +1 -1
  447. package/lib/planetscale/index.d.ts.map +1 -1
  448. package/lib/planetscale/index.js +1 -1
  449. package/lib/planetscale/index.js.map +1 -1
  450. package/lib/planetscale/password.d.ts +2 -3
  451. package/lib/planetscale/password.d.ts.map +1 -1
  452. package/lib/planetscale/password.js +11 -11
  453. package/lib/planetscale/password.js.map +1 -1
  454. package/lib/planetscale/role.d.ts +2 -3
  455. package/lib/planetscale/role.d.ts.map +1 -1
  456. package/lib/planetscale/role.js +18 -18
  457. package/lib/planetscale/role.js.map +1 -1
  458. package/lib/planetscale/utils.d.ts +1 -1
  459. package/lib/planetscale/utils.d.ts.map +1 -1
  460. package/lib/planetscale/utils.js +17 -33
  461. package/lib/planetscale/utils.js.map +1 -1
  462. package/lib/random/random-string.d.ts +1 -2
  463. package/lib/random/random-string.d.ts.map +1 -1
  464. package/lib/random/random-string.js +3 -3
  465. package/lib/random/random-string.js.map +1 -1
  466. package/lib/resource.d.ts +4 -1
  467. package/lib/resource.d.ts.map +1 -1
  468. package/lib/resource.js.map +1 -1
  469. package/lib/scope.d.ts +10 -1
  470. package/lib/scope.d.ts.map +1 -1
  471. package/lib/scope.js +3 -1
  472. package/lib/scope.js.map +1 -1
  473. package/lib/sentry/client-key.d.ts +1 -2
  474. package/lib/sentry/client-key.d.ts.map +1 -1
  475. package/lib/sentry/client-key.js +2 -2
  476. package/lib/sentry/client-key.js.map +1 -1
  477. package/lib/sentry/project.d.ts +1 -2
  478. package/lib/sentry/project.d.ts.map +1 -1
  479. package/lib/sentry/project.js +2 -2
  480. package/lib/sentry/project.js.map +1 -1
  481. package/lib/sentry/team.d.ts +1 -2
  482. package/lib/sentry/team.d.ts.map +1 -1
  483. package/lib/sentry/team.js +2 -2
  484. package/lib/sentry/team.js.map +1 -1
  485. package/lib/state/r2-rest-state-store.d.ts +1 -0
  486. package/lib/state/r2-rest-state-store.d.ts.map +1 -1
  487. package/lib/state/r2-rest-state-store.js +15 -34
  488. package/lib/state/r2-rest-state-store.js.map +1 -1
  489. package/lib/stripe/card.d.ts +1 -2
  490. package/lib/stripe/card.d.ts.map +1 -1
  491. package/lib/stripe/card.js +2 -2
  492. package/lib/stripe/card.js.map +1 -1
  493. package/lib/stripe/coupon.d.ts +1 -2
  494. package/lib/stripe/coupon.d.ts.map +1 -1
  495. package/lib/stripe/coupon.js +2 -2
  496. package/lib/stripe/coupon.js.map +1 -1
  497. package/lib/stripe/customer.d.ts +1 -2
  498. package/lib/stripe/customer.d.ts.map +1 -1
  499. package/lib/stripe/customer.js +2 -2
  500. package/lib/stripe/customer.js.map +1 -1
  501. package/lib/stripe/entitlements-feature.d.ts +1 -2
  502. package/lib/stripe/entitlements-feature.d.ts.map +1 -1
  503. package/lib/stripe/entitlements-feature.js +2 -2
  504. package/lib/stripe/entitlements-feature.js.map +1 -1
  505. package/lib/stripe/file.d.ts +1 -2
  506. package/lib/stripe/file.d.ts.map +1 -1
  507. package/lib/stripe/file.js +2 -2
  508. package/lib/stripe/file.js.map +1 -1
  509. package/lib/stripe/meter.d.ts +1 -2
  510. package/lib/stripe/meter.d.ts.map +1 -1
  511. package/lib/stripe/meter.js +1 -1
  512. package/lib/stripe/meter.js.map +1 -1
  513. package/lib/stripe/portal-configuration.d.ts +1 -2
  514. package/lib/stripe/portal-configuration.d.ts.map +1 -1
  515. package/lib/stripe/portal-configuration.js +2 -2
  516. package/lib/stripe/portal-configuration.js.map +1 -1
  517. package/lib/stripe/price.d.ts +1 -2
  518. package/lib/stripe/price.d.ts.map +1 -1
  519. package/lib/stripe/price.js +2 -2
  520. package/lib/stripe/price.js.map +1 -1
  521. package/lib/stripe/product-feature.d.ts +1 -2
  522. package/lib/stripe/product-feature.d.ts.map +1 -1
  523. package/lib/stripe/product-feature.js +2 -2
  524. package/lib/stripe/product-feature.js.map +1 -1
  525. package/lib/stripe/product.d.ts +1 -2
  526. package/lib/stripe/product.d.ts.map +1 -1
  527. package/lib/stripe/product.js +2 -2
  528. package/lib/stripe/product.js.map +1 -1
  529. package/lib/stripe/promotion-code.d.ts +1 -2
  530. package/lib/stripe/promotion-code.d.ts.map +1 -1
  531. package/lib/stripe/promotion-code.js +2 -2
  532. package/lib/stripe/promotion-code.js.map +1 -1
  533. package/lib/stripe/shipping-rate.d.ts +1 -2
  534. package/lib/stripe/shipping-rate.d.ts.map +1 -1
  535. package/lib/stripe/shipping-rate.js +2 -2
  536. package/lib/stripe/shipping-rate.js.map +1 -1
  537. package/lib/stripe/tax-rate.d.ts +1 -2
  538. package/lib/stripe/tax-rate.d.ts.map +1 -1
  539. package/lib/stripe/tax-rate.js +2 -2
  540. package/lib/stripe/tax-rate.js.map +1 -1
  541. package/lib/stripe/webhook.d.ts +16 -3
  542. package/lib/stripe/webhook.d.ts.map +1 -1
  543. package/lib/stripe/webhook.js +2 -2
  544. package/lib/stripe/webhook.js.map +1 -1
  545. package/lib/test/bun.d.ts.map +1 -1
  546. package/lib/test/bun.js +1 -0
  547. package/lib/test/bun.js.map +1 -1
  548. package/lib/test/options.d.ts +5 -0
  549. package/lib/test/options.d.ts.map +1 -1
  550. package/lib/test/vitest.d.ts.map +1 -1
  551. package/lib/test/vitest.js +1 -0
  552. package/lib/test/vitest.js.map +1 -1
  553. package/lib/upstash/redis.d.ts +1 -2
  554. package/lib/upstash/redis.d.ts.map +1 -1
  555. package/lib/upstash/redis.js.map +1 -1
  556. package/lib/util/api/client/client.gen.d.ts +3 -0
  557. package/lib/util/api/client/client.gen.d.ts.map +1 -0
  558. package/lib/util/api/client/client.gen.js +205 -0
  559. package/lib/util/api/client/client.gen.js.map +1 -0
  560. package/lib/util/api/client/index.d.ts +8 -0
  561. package/lib/util/api/client/index.d.ts.map +1 -0
  562. package/lib/util/api/client/index.js +6 -0
  563. package/lib/util/api/client/index.js.map +1 -0
  564. package/lib/util/api/client/types.gen.d.ts +125 -0
  565. package/lib/util/api/client/types.gen.d.ts.map +1 -0
  566. package/lib/util/api/client/types.gen.js +2 -0
  567. package/lib/util/api/client/types.gen.js.map +1 -0
  568. package/lib/util/api/client/utils.gen.d.ts +34 -0
  569. package/lib/util/api/client/utils.gen.d.ts.map +1 -0
  570. package/lib/util/api/client/utils.gen.js +231 -0
  571. package/lib/util/api/client/utils.gen.js.map +1 -0
  572. package/lib/util/api/core/auth.gen.d.ts +19 -0
  573. package/lib/util/api/core/auth.gen.d.ts.map +1 -0
  574. package/lib/util/api/core/auth.gen.js +15 -0
  575. package/lib/util/api/core/auth.gen.js.map +1 -0
  576. package/lib/util/api/core/bodySerializer.gen.d.ts +18 -0
  577. package/lib/util/api/core/bodySerializer.gen.d.ts.map +1 -0
  578. package/lib/util/api/core/bodySerializer.gen.js +58 -0
  579. package/lib/util/api/core/bodySerializer.gen.js.map +1 -0
  580. package/lib/util/api/core/params.gen.d.ts +34 -0
  581. package/lib/util/api/core/params.gen.d.ts.map +1 -0
  582. package/lib/util/api/core/params.gen.js +89 -0
  583. package/lib/util/api/core/params.gen.js.map +1 -0
  584. package/lib/util/api/core/pathSerializer.gen.d.ts +34 -0
  585. package/lib/util/api/core/pathSerializer.gen.d.ts.map +1 -0
  586. package/lib/util/api/core/pathSerializer.gen.js +115 -0
  587. package/lib/util/api/core/pathSerializer.gen.js.map +1 -0
  588. package/lib/util/api/core/serverSentEvents.gen.d.ts +72 -0
  589. package/lib/util/api/core/serverSentEvents.gen.d.ts.map +1 -0
  590. package/lib/util/api/core/serverSentEvents.gen.js +136 -0
  591. package/lib/util/api/core/serverSentEvents.gen.js.map +1 -0
  592. package/lib/util/api/core/types.gen.d.ts +79 -0
  593. package/lib/util/api/core/types.gen.d.ts.map +1 -0
  594. package/lib/util/api/core/types.gen.js +2 -0
  595. package/lib/util/api/core/types.gen.js.map +1 -0
  596. package/lib/util/api/core/utils.gen.d.ts +20 -0
  597. package/lib/util/api/core/utils.gen.d.ts.map +1 -0
  598. package/lib/util/api/core/utils.gen.js +88 -0
  599. package/lib/util/api/core/utils.gen.js.map +1 -0
  600. package/lib/util/http.d.ts +7 -2
  601. package/lib/util/http.d.ts.map +1 -1
  602. package/lib/util/http.js +29 -11
  603. package/lib/util/http.js.map +1 -1
  604. package/lib/util/idempotent-spawn.d.ts.map +1 -1
  605. package/lib/util/idempotent-spawn.js +5 -8
  606. package/lib/util/idempotent-spawn.js.map +1 -1
  607. package/lib/util/lock.d.ts +20 -0
  608. package/lib/util/lock.d.ts.map +1 -0
  609. package/lib/util/lock.js +45 -0
  610. package/lib/util/lock.js.map +1 -0
  611. package/lib/util/memoize.d.ts +6 -0
  612. package/lib/util/memoize.d.ts.map +1 -1
  613. package/lib/util/memoize.js +23 -0
  614. package/lib/util/memoize.js.map +1 -1
  615. package/lib/util/oauth-client.d.ts +71 -0
  616. package/lib/util/oauth-client.d.ts.map +1 -0
  617. package/lib/util/oauth-client.js +188 -0
  618. package/lib/util/oauth-client.js.map +1 -0
  619. package/lib/util/poll.d.ts +33 -0
  620. package/lib/util/poll.d.ts.map +1 -0
  621. package/lib/util/poll.js +19 -0
  622. package/lib/util/poll.js.map +1 -0
  623. package/lib/vercel/project-domain.d.ts +1 -2
  624. package/lib/vercel/project-domain.d.ts.map +1 -1
  625. package/lib/vercel/project-domain.js.map +1 -1
  626. package/lib/vercel/project.d.ts +1 -2
  627. package/lib/vercel/project.d.ts.map +1 -1
  628. package/lib/vercel/project.js +2 -2
  629. package/lib/vercel/project.js.map +1 -1
  630. package/package.json +5 -1
  631. package/src/alchemy.ts +7 -0
  632. package/src/apply.ts +32 -29
  633. package/src/auth.ts +253 -0
  634. package/src/aws/bucket.ts +3 -3
  635. package/src/aws/control/resource.ts +4 -6
  636. package/src/aws/ec2/internet-gateway-attachment.ts +5 -6
  637. package/src/aws/ec2/internet-gateway.ts +3 -5
  638. package/src/aws/ec2/nat-gateway.ts +3 -5
  639. package/src/aws/ec2/route-table-association.ts +3 -5
  640. package/src/aws/ec2/route-table.ts +3 -5
  641. package/src/aws/ec2/route.ts +3 -3
  642. package/src/aws/ec2/security-group-rule.ts +3 -5
  643. package/src/aws/ec2/security-group.ts +3 -5
  644. package/src/aws/ec2/subnet.ts +3 -3
  645. package/src/aws/ec2/vpc.ts +3 -3
  646. package/src/aws/function.ts +3 -3
  647. package/src/aws/oidc/oidc-provider.ts +3 -5
  648. package/src/aws/policy-attachment.ts +2 -4
  649. package/src/aws/policy.ts +5 -5
  650. package/src/aws/queue.ts +5 -5
  651. package/src/aws/role.ts +3 -3
  652. package/src/aws/ses.ts +3 -3
  653. package/src/aws/ssm-parameter.ts +3 -3
  654. package/src/aws/table.ts +3 -3
  655. package/src/cloudflare/account-api-token.ts +3 -4
  656. package/src/cloudflare/ai-gateway.ts +3 -5
  657. package/src/cloudflare/api-gateway-operation.ts +3 -4
  658. package/src/cloudflare/api-schema.ts +25 -26
  659. package/src/cloudflare/api-shield.ts +3 -4
  660. package/src/cloudflare/api.ts +122 -57
  661. package/src/cloudflare/assets.ts +95 -136
  662. package/src/cloudflare/auth.ts +160 -95
  663. package/src/cloudflare/bindings.ts +21 -4
  664. package/src/cloudflare/bound.ts +50 -52
  665. package/src/cloudflare/bucket.ts +321 -58
  666. package/src/cloudflare/bundle/internal-worker-bundle.ts +2 -1
  667. package/src/cloudflare/bundle/plugin-wasm.ts +5 -5
  668. package/src/cloudflare/certificate-pack.ts +5 -6
  669. package/src/cloudflare/compatibility-date.gen.ts +1 -1
  670. package/src/cloudflare/container.ts +7 -8
  671. package/src/cloudflare/custom-domain.ts +3 -5
  672. package/src/cloudflare/d1-database.ts +33 -34
  673. package/src/cloudflare/dispatch-namespace.ts +5 -6
  674. package/src/cloudflare/dns-records.ts +5 -5
  675. package/src/cloudflare/email-address.ts +7 -7
  676. package/src/cloudflare/email-catch-all.ts +6 -6
  677. package/src/cloudflare/email-routing.ts +5 -5
  678. package/src/cloudflare/email-rule.ts +5 -5
  679. package/src/cloudflare/hyperdrive-ref.ts +98 -0
  680. package/src/cloudflare/hyperdrive.ts +35 -36
  681. package/src/cloudflare/index.ts +2 -0
  682. package/src/cloudflare/kv-namespace.ts +31 -32
  683. package/src/cloudflare/miniflare/build-worker-options.ts +21 -12
  684. package/src/cloudflare/miniflare/delete.ts +1 -1
  685. package/src/cloudflare/miniflare/miniflare-controller.ts +27 -12
  686. package/src/cloudflare/miniflare/miniflare-worker-proxy.ts +117 -102
  687. package/src/cloudflare/miniflare/remote-binding-proxy.ts +16 -4
  688. package/src/cloudflare/miniflare/tunnel.ts +116 -0
  689. package/src/cloudflare/next.ts +3 -0
  690. package/src/cloudflare/permission-groups.ts +4 -6
  691. package/src/cloudflare/pipeline.ts +29 -30
  692. package/src/cloudflare/queue-consumer.ts +5 -7
  693. package/src/cloudflare/queue.ts +42 -43
  694. package/src/cloudflare/react-router/plugin.ts +20 -0
  695. package/src/cloudflare/redirect-rule.ts +5 -5
  696. package/src/cloudflare/route.ts +5 -5
  697. package/src/cloudflare/ruleset.ts +3 -4
  698. package/src/cloudflare/secret-ref.ts +56 -0
  699. package/src/cloudflare/secret.ts +35 -36
  700. package/src/cloudflare/secrets-store.ts +5 -8
  701. package/src/cloudflare/tunnel.ts +5 -7
  702. package/src/cloudflare/user.ts +12 -9
  703. package/src/cloudflare/vectorize-index.ts +8 -12
  704. package/src/cloudflare/vectorize-metadata-index.ts +6 -8
  705. package/src/cloudflare/website.ts +1 -1
  706. package/src/cloudflare/worker-assets.ts +10 -56
  707. package/src/cloudflare/worker-metadata.ts +14 -12
  708. package/src/cloudflare/worker-stub.ts +5 -5
  709. package/src/cloudflare/worker-subdomain.ts +6 -7
  710. package/src/cloudflare/worker.ts +123 -92
  711. package/src/cloudflare/wrangler.json.ts +13 -11
  712. package/src/cloudflare/zone.ts +3 -3
  713. package/src/context.ts +9 -7
  714. package/src/destroy.ts +2 -2
  715. package/src/dns/import-dns.ts +3 -5
  716. package/src/docker/container.ts +3 -6
  717. package/src/docker/image.ts +13 -13
  718. package/src/docker/network.ts +3 -4
  719. package/src/docker/remote-image.ts +3 -6
  720. package/src/docker/volume.ts +3 -4
  721. package/src/esbuild/bundle.ts +10 -8
  722. package/src/fs/copy-file.ts +3 -3
  723. package/src/fs/file.ts +3 -3
  724. package/src/fs/folder.ts +3 -3
  725. package/src/github/comment.ts +5 -7
  726. package/src/github/repository-environment.ts +3 -5
  727. package/src/github/repository-webhook.ts +3 -5
  728. package/src/github/secret.ts +3 -5
  729. package/src/llms.cloudflare.txt +1 -1
  730. package/src/neon/api/client.gen.ts +28 -0
  731. package/src/neon/api/sdk.gen.ts +2596 -0
  732. package/src/neon/api/types.gen.ts +8287 -0
  733. package/src/neon/api.ts +51 -147
  734. package/src/neon/branch.ts +278 -0
  735. package/src/neon/index.ts +1 -1
  736. package/src/neon/project.ts +136 -721
  737. package/src/neon/utils.ts +105 -0
  738. package/src/os/exec.ts +3 -3
  739. package/src/planetscale/api/client.gen.ts +28 -2882
  740. package/src/planetscale/api/sdk.gen.ts +3336 -0
  741. package/src/planetscale/api/types.gen.ts +778 -450
  742. package/src/planetscale/api.ts +101 -0
  743. package/src/planetscale/branch.ts +20 -19
  744. package/src/planetscale/database.ts +69 -70
  745. package/src/planetscale/index.ts +1 -1
  746. package/src/planetscale/password.ts +18 -22
  747. package/src/planetscale/role.ts +21 -21
  748. package/src/planetscale/utils.ts +20 -74
  749. package/src/random/random-string.ts +4 -4
  750. package/src/resource.ts +6 -2
  751. package/src/scope.ts +12 -1
  752. package/src/sentry/client-key.ts +3 -5
  753. package/src/sentry/project.ts +3 -5
  754. package/src/sentry/team.ts +3 -3
  755. package/src/state/r2-rest-state-store.ts +15 -57
  756. package/src/stripe/card.ts +3 -3
  757. package/src/stripe/coupon.ts +3 -3
  758. package/src/stripe/customer.ts +3 -3
  759. package/src/stripe/entitlements-feature.ts +3 -5
  760. package/src/stripe/file.ts +3 -3
  761. package/src/stripe/meter.ts +3 -3
  762. package/src/stripe/portal-configuration.ts +3 -5
  763. package/src/stripe/price.ts +3 -3
  764. package/src/stripe/product-feature.ts +3 -5
  765. package/src/stripe/product.ts +3 -3
  766. package/src/stripe/promotion-code.ts +3 -5
  767. package/src/stripe/shipping-rate.ts +3 -5
  768. package/src/stripe/tax-rate.ts +3 -3
  769. package/src/stripe/webhook.ts +3 -5
  770. package/src/test/bun.ts +1 -0
  771. package/src/test/options.ts +6 -0
  772. package/src/test/vitest.ts +1 -0
  773. package/src/upstash/redis.ts +1 -3
  774. package/src/util/api/client/client.gen.ts +268 -0
  775. package/src/util/api/client/index.ts +25 -0
  776. package/src/util/api/client/types.gen.ts +268 -0
  777. package/src/util/api/client/utils.gen.ts +331 -0
  778. package/src/util/api/core/auth.gen.ts +42 -0
  779. package/src/util/api/core/bodySerializer.gen.ts +92 -0
  780. package/src/util/api/core/params.gen.ts +153 -0
  781. package/src/util/api/core/pathSerializer.gen.ts +181 -0
  782. package/src/util/api/core/serverSentEvents.gen.ts +264 -0
  783. package/src/util/api/core/types.gen.ts +118 -0
  784. package/src/util/api/core/utils.gen.ts +143 -0
  785. package/src/util/http.ts +38 -11
  786. package/src/util/idempotent-spawn.ts +5 -6
  787. package/src/util/lock.ts +48 -0
  788. package/src/util/memoize.ts +26 -0
  789. package/src/util/oauth-client.ts +238 -0
  790. package/src/util/poll.ts +55 -0
  791. package/src/vercel/project-domain.ts +1 -3
  792. package/src/vercel/project.ts +3 -3
  793. package/templates/rwsdk/.cursor/rules/alchemy_cloudflare.mdc +1 -1
  794. package/templates/rwsdk/package.json +3 -3
  795. package/workers/cloudflare-state-store.js +8 -5619
  796. package/workers/dofs-state-store.js +2 -802
  797. package/workers/remote-binding-proxy.js +3 -39
  798. package/workers/remote-binding-proxy.ts +126 -35
  799. package/workers/tunnel-proxy.js +43 -0
  800. package/workers/tunnel-proxy.ts +121 -0
  801. package/lib/cloudflare/asset-manifest.d.ts +0 -15
  802. package/lib/cloudflare/asset-manifest.d.ts.map +0 -1
  803. package/lib/cloudflare/asset-manifest.js +0 -1
  804. package/lib/cloudflare/asset-manifest.js.map +0 -1
  805. package/lib/cloudflare/oauth.d.ts +0 -22
  806. package/lib/cloudflare/oauth.d.ts.map +0 -1
  807. package/lib/cloudflare/oauth.js +0 -214
  808. package/lib/cloudflare/oauth.js.map +0 -1
  809. package/lib/neon/api-error.d.ts +0 -31
  810. package/lib/neon/api-error.d.ts.map +0 -1
  811. package/lib/neon/api-error.js +0 -73
  812. package/lib/neon/api-error.js.map +0 -1
  813. package/lib/planetscale/api/index.d.ts +0 -3
  814. package/lib/planetscale/api/index.d.ts.map +0 -1
  815. package/lib/planetscale/api/index.js +0 -4
  816. package/lib/planetscale/api/index.js.map +0 -1
  817. package/lib/util/neverthrow.d.ts +0 -16
  818. package/lib/util/neverthrow.d.ts.map +0 -1
  819. package/lib/util/neverthrow.js +0 -46
  820. package/lib/util/neverthrow.js.map +0 -1
  821. package/src/cloudflare/asset-manifest.ts +0 -16
  822. package/src/cloudflare/oauth.ts +0 -301
  823. package/src/neon/api-error.ts +0 -81
  824. package/src/planetscale/api/index.ts +0 -4
  825. package/src/util/neverthrow.ts +0 -64
@@ -15,6 +15,7 @@ import {
15
15
  import type { Assets } from "./assets.ts";
16
16
  import type {
17
17
  Bindings,
18
+ Self,
18
19
  WorkerBindingDurableObjectNamespace,
19
20
  WorkerBindingSpec,
20
21
  } from "./bindings.ts";
@@ -58,6 +59,8 @@ import { Workflow, isWorkflow, upsertWorkflow } from "./workflow.ts";
58
59
  // Previous versions of `Worker` used the `Bundle` resource.
59
60
  // This import is here to avoid errors when destroying the `Bundle` resource.
60
61
  import "../esbuild/bundle.ts";
62
+ import { Scope } from "../scope.ts";
63
+ import type { WorkerRef } from "./worker-ref.ts";
61
64
 
62
65
  /**
63
66
  * Configuration options for static assets
@@ -330,11 +333,19 @@ export interface BaseWorkerProps<
330
333
  * @default false
331
334
  */
332
335
  remote?: boolean;
336
+ /**
337
+ * Whether to expose the worker via a Cloudflare Tunnel.
338
+ *
339
+ * @default false
340
+ */
341
+ tunnel?: boolean;
333
342
  url?: undefined;
334
343
  }
335
344
  | {
336
345
  url: string;
337
346
  remote?: undefined;
347
+ tunnel?: undefined;
348
+ port?: undefined;
338
349
  };
339
350
 
340
351
  /**
@@ -421,8 +432,8 @@ export type WorkerProps<
421
432
  RPC extends Rpc.WorkerEntrypointBranded = Rpc.WorkerEntrypointBranded,
422
433
  > = InlineWorkerProps<B, RPC> | EntrypointWorkerProps<B, RPC>;
423
434
 
424
- export function isWorker(resource: Resource): resource is Worker<any> {
425
- return resource[ResourceKind] === "cloudflare::Worker";
435
+ export function isWorker(resource: any): resource is Worker<any> {
436
+ return resource?.[ResourceKind] === "cloudflare::Worker";
426
437
  }
427
438
 
428
439
  /**
@@ -431,109 +442,108 @@ export function isWorker(resource: Resource): resource is Worker<any> {
431
442
  export type Worker<
432
443
  B extends Bindings | undefined = Bindings | undefined,
433
444
  RPC extends Rpc.WorkerEntrypointBranded = Rpc.WorkerEntrypointBranded,
434
- > = Resource<"cloudflare::Worker"> &
435
- Omit<WorkerProps<B>, "url" | "script" | "routes" | "domains"> & {
436
- /** @internal phantom property */
437
- __rpc__?: RPC;
445
+ > = Omit<WorkerProps<B>, "url" | "script" | "routes" | "domains"> & {
446
+ /** @internal phantom property */
447
+ __rpc__?: RPC;
438
448
 
439
- type: "service";
449
+ type: "service";
440
450
 
441
- /**
442
- * The ID of the worker
443
- */
444
- id: string;
451
+ /**
452
+ * The ID of the worker
453
+ */
454
+ id: string;
445
455
 
446
- /**
447
- * The name of the worker
448
- */
449
- name: string;
456
+ /**
457
+ * The name of the worker
458
+ */
459
+ name: string;
450
460
 
451
- /**
452
- * The root directory of the project
453
- * @default process.cwd()
454
- */
455
- cwd: string;
461
+ /**
462
+ * The root directory of the project
463
+ * @default process.cwd()
464
+ */
465
+ cwd: string;
456
466
 
457
- /**
458
- * Time at which the worker was created
459
- */
460
- createdAt: number;
467
+ /**
468
+ * Time at which the worker was created
469
+ */
470
+ createdAt: number;
461
471
 
462
- /**
463
- * Time at which the worker was last updated
464
- */
465
- updatedAt: number;
472
+ /**
473
+ * Time at which the worker was last updated
474
+ */
475
+ updatedAt: number;
466
476
 
467
- /**
468
- * The worker's URL if enabled
469
- * Format: {name}.{subdomain}.workers.dev
470
- *
471
- * @default true
472
- */
473
- url?: string;
477
+ /**
478
+ * The worker's URL if enabled
479
+ * Format: {name}.{subdomain}.workers.dev
480
+ *
481
+ * @default true
482
+ */
483
+ url?: string;
474
484
 
475
- /**
476
- * The bindings that were created
477
- */
478
- bindings: B;
485
+ /**
486
+ * The bindings that were created
487
+ */
488
+ bindings: B;
479
489
 
480
- /**
481
- * Configuration for static assets
482
- */
483
- assets?: AssetsConfig;
490
+ /**
491
+ * Configuration for static assets
492
+ */
493
+ assets?: AssetsConfig;
484
494
 
485
- /**
486
- * The routes that were created for this worker
487
- */
488
- routes?: Route[];
495
+ /**
496
+ * The routes that were created for this worker
497
+ */
498
+ routes?: Route[];
489
499
 
490
- /**
491
- * The custom domains that were created for this worker
492
- */
493
- domains?: CustomDomain[];
500
+ /**
501
+ * The custom domains that were created for this worker
502
+ */
503
+ domains?: CustomDomain[];
494
504
 
495
- // phantom property (for typeof myWorker.Env)
496
- Env: B extends Bindings
497
- ? {
498
- [bindingName in keyof B]: Bound<B[bindingName]>;
499
- }
500
- : undefined;
505
+ // phantom property (for typeof myWorker.Env)
506
+ Env: B extends Bindings
507
+ ? {
508
+ [bindingName in keyof B]: Bound<B[bindingName]>;
509
+ }
510
+ : undefined;
501
511
 
502
- /**
503
- * The compatibility date for the worker
504
- */
505
- compatibilityDate: string;
512
+ /**
513
+ * The compatibility date for the worker
514
+ */
515
+ compatibilityDate: string;
506
516
 
507
- /**
508
- * The compatibility flags for the worker
509
- */
510
- compatibilityFlags: string[];
517
+ /**
518
+ * The compatibility flags for the worker
519
+ */
520
+ compatibilityFlags: string[];
511
521
 
512
- /**
513
- * The dispatch namespace this worker is deployed to
514
- */
515
- namespace?: string | DispatchNamespace;
522
+ /**
523
+ * The dispatch namespace this worker is deployed to
524
+ */
525
+ namespace?: string | DispatchNamespace;
516
526
 
517
- /**
518
- * Version label for this worker deployment
519
- */
520
- version?: string;
527
+ /**
528
+ * Version label for this worker deployment
529
+ */
530
+ version?: string;
521
531
 
522
- /**
523
- * Smart placement configuration for the worker
524
- */
525
- placement?: {
526
- mode: "smart";
527
- };
532
+ /**
533
+ * Smart placement configuration for the worker
534
+ */
535
+ placement?: {
536
+ mode: "smart";
537
+ };
528
538
 
529
- /**
530
- * Whether the worker has a remote deployment
531
- * @internal
532
- */
533
- dev?: {
534
- hasRemote: boolean;
535
- };
539
+ /**
540
+ * Whether the worker has a remote deployment
541
+ * @internal
542
+ */
543
+ dev?: {
544
+ hasRemote: boolean;
536
545
  };
546
+ };
537
547
 
538
548
  /**
539
549
  * A Cloudflare Worker is a serverless function that can be deployed to the Cloudflare network.
@@ -603,7 +613,7 @@ export type Worker<
603
613
  *
604
614
  * @example
605
615
  * // Create a worker with static assets:
606
- * const staticAssets = await Assets("static", {
616
+ * const staticAssets = await Assets({
607
617
  * path: "./src/assets"
608
618
  * });
609
619
  *
@@ -699,6 +709,25 @@ export function Worker<const B extends Bindings>(
699
709
  return _Worker(id, props as WorkerProps<B>);
700
710
  }
701
711
 
712
+ Worker.experimentalEntrypoint = <RPC extends Rpc.WorkerEntrypointBranded>(
713
+ worker: Worker | WorkerRef | Self,
714
+ entrypoint: string,
715
+ ) => {
716
+ if (Scope.getScope()?.local) {
717
+ logger.warn(
718
+ "Worker.experimentalEntrypoint is not supported in local development. See: https://github.com/cloudflare/workers-sdk/issues/10681",
719
+ );
720
+ }
721
+ return {
722
+ ...worker,
723
+ // we rename the entrypoint in order to prevent collisions with entrypoint on Worker
724
+ __entrypoint__: entrypoint,
725
+ } as (Worker | WorkerRef) & {
726
+ __entrypoint__?: string;
727
+ __rpc__?: RPC;
728
+ };
729
+ };
730
+
702
731
  const _Worker = Resource(
703
732
  "cloudflare::Worker",
704
733
  {
@@ -854,7 +883,8 @@ const _Worker = Resource(
854
883
  eventSources: props.eventSources,
855
884
  assets: props.assets,
856
885
  bundle,
857
- port: (props.dev as { port?: number } | undefined)?.port,
886
+ port: props.dev?.port,
887
+ tunnel: props.dev?.tunnel ?? this.scope.tunnel,
858
888
  });
859
889
  this.onCleanup(() => controller.dispose());
860
890
  }
@@ -870,7 +900,7 @@ const _Worker = Resource(
870
900
  containers: options.containers,
871
901
  },
872
902
  );
873
- return this({
903
+ return {
874
904
  ...props,
875
905
  type: "service",
876
906
  id,
@@ -889,7 +919,7 @@ const _Worker = Resource(
889
919
  hasRemote: this.output?.dev?.hasRemote ?? false,
890
920
  },
891
921
  Env: undefined!,
892
- } as unknown as Worker<B>);
922
+ } as unknown as Worker<B>;
893
923
  }
894
924
 
895
925
  if (this.phase === "create" || this.output.dev?.hasRemote === false) {
@@ -1014,7 +1044,7 @@ const _Worker = Resource(
1014
1044
  );
1015
1045
 
1016
1046
  const now = new Date();
1017
- return this({
1047
+ return {
1018
1048
  ...props,
1019
1049
  type: "service",
1020
1050
  id,
@@ -1043,7 +1073,7 @@ const _Worker = Resource(
1043
1073
  dev: {
1044
1074
  hasRemote: true,
1045
1075
  },
1046
- } as unknown as Worker<B>);
1076
+ } as unknown as Worker<B>;
1047
1077
  },
1048
1078
  );
1049
1079
 
@@ -1159,6 +1189,7 @@ async function provisionResources<B extends Bindings>(
1159
1189
  apiToken: props.apiToken,
1160
1190
  email: props.email,
1161
1191
  baseUrl: props.baseUrl,
1192
+ profile: props.profile,
1162
1193
  } satisfies CloudflareApiOptions,
1163
1194
  };
1164
1195
 
@@ -5,11 +5,7 @@ import { Resource } from "../resource.ts";
5
5
  import { Scope } from "../scope.ts";
6
6
  import { isSecret } from "../secret.ts";
7
7
  import { assertNever } from "../util/assert-never.ts";
8
- import {
9
- Self,
10
- type Bindings,
11
- type WorkerBindingRateLimit,
12
- } from "./bindings.ts";
8
+ import type { Bindings, WorkerBindingRateLimit } from "./bindings.ts";
13
9
  import type { R2BucketJurisdiction } from "./bucket.ts";
14
10
  import type { DurableObjectNamespace } from "./durable-object-namespace.ts";
15
11
  import type { EventSource } from "./event-source.ts";
@@ -371,6 +367,7 @@ export interface WranglerJsonSpec {
371
367
  binding: string;
372
368
  service: string;
373
369
  environment?: string;
370
+ entrypoint?: string;
374
371
  }[];
375
372
 
376
373
  /**
@@ -534,8 +531,12 @@ function processBindings(
534
531
  preview_bucket_name: string;
535
532
  jurisdiction?: R2BucketJurisdiction;
536
533
  }[] = [];
537
- const services: { binding: string; service: string; environment?: string }[] =
538
- [];
534
+ const services: {
535
+ binding: string;
536
+ service: string;
537
+ environment?: string;
538
+ entrypoint?: string;
539
+ }[] = [];
539
540
  const secrets: string[] = [];
540
541
  const workflows: {
541
542
  name: string;
@@ -625,17 +626,20 @@ function processBindings(
625
626
  } else if (writeSecrets && isSecret(binding)) {
626
627
  spec.vars ??= {};
627
628
  spec.vars[bindingName] = binding as any;
628
- } else if (binding === Self) {
629
+ } else if (binding.type === "cloudflare::Worker::Self") {
629
630
  // Self(service) binding
630
631
  services.push({
631
632
  binding: bindingName,
632
633
  service: workerName,
634
+ entrypoint: binding.__entrypoint__,
633
635
  });
634
636
  } else if (binding.type === "service") {
635
637
  // Service binding
636
638
  services.push({
637
639
  binding: bindingName,
638
640
  service: "name" in binding ? binding.name : binding.service,
641
+ entrypoint:
642
+ "__entrypoint__" in binding ? binding.__entrypoint__ : undefined,
639
643
  });
640
644
  } else if (binding.type === "kv_namespace") {
641
645
  // KV Namespace binding
@@ -759,8 +763,6 @@ function processBindings(
759
763
  binding: bindingName,
760
764
  dataset: binding.dataset,
761
765
  });
762
- } else if (binding.type === "ai_gateway") {
763
- // no-op
764
766
  } else if (binding.type === "version_metadata") {
765
767
  if (spec.version_metadata) {
766
768
  throw new Error(
@@ -775,7 +777,7 @@ function processBindings(
775
777
  binding: bindingName,
776
778
  id: binding.hyperdriveId,
777
779
  localConnectionString: writeSecrets
778
- ? binding.dev.origin.unencrypted
780
+ ? binding.dev?.origin.unencrypted
779
781
  : undefined,
780
782
  });
781
783
  } else if (binding.type === "pipeline") {
@@ -263,7 +263,7 @@ export interface ZoneData {
263
263
  /**
264
264
  * Output returned after Zone creation/update
265
265
  */
266
- export interface Zone extends Resource<"cloudflare::Zone">, ZoneData {}
266
+ export interface Zone extends ZoneData {}
267
267
 
268
268
  /**
269
269
  * A Cloudflare Zone represents a domain and its configuration settings on Cloudflare.
@@ -425,7 +425,7 @@ export const Zone = Resource(
425
425
  this.props?.botManagement,
426
426
  );
427
427
 
428
- return this({
428
+ return {
429
429
  id: zoneData.id,
430
430
  name: zoneData.name,
431
431
  type: zoneData.type,
@@ -440,7 +440,7 @@ export const Zone = Resource(
440
440
  ? new Date(zoneData.activated_on).getTime()
441
441
  : null,
442
442
  settings: await getZoneSettings(api, zoneData.id),
443
- });
443
+ };
444
444
  },
445
445
  );
446
446
 
package/src/context.ts CHANGED
@@ -6,24 +6,26 @@ import {
6
6
  ResourceScope,
7
7
  ResourceSeq,
8
8
  type Resource,
9
+ type ResourceAttributes,
9
10
  type ResourceProps,
10
11
  } from "./resource.ts";
11
12
  import type { Scope } from "./scope.ts";
12
13
  import type { State } from "./state.ts";
13
14
 
14
15
  export type Context<
15
- Out extends Resource,
16
+ Out extends ResourceAttributes,
16
17
  Props extends ResourceProps = ResourceProps,
17
18
  > = CreateContext<Out> | UpdateContext<Out, Props> | DeleteContext<Out, Props>;
18
19
 
19
- export interface CreateContext<Out extends Resource> extends BaseContext<Out> {
20
+ export interface CreateContext<Out extends ResourceAttributes>
21
+ extends BaseContext<Out> {
20
22
  phase: "create";
21
23
  output?: undefined;
22
24
  props?: undefined;
23
25
  }
24
26
 
25
27
  export interface UpdateContext<
26
- Out extends Resource,
28
+ Out extends ResourceAttributes,
27
29
  Props extends ResourceProps = ResourceProps,
28
30
  > extends BaseContext<Out> {
29
31
  phase: "update";
@@ -32,7 +34,7 @@ export interface UpdateContext<
32
34
  }
33
35
 
34
36
  export interface DeleteContext<
35
- Out extends Resource,
37
+ Out extends ResourceAttributes,
36
38
  Props extends ResourceProps = ResourceProps,
37
39
  > extends BaseContext<Out> {
38
40
  phase: "delete";
@@ -40,7 +42,7 @@ export interface DeleteContext<
40
42
  props: Props;
41
43
  }
42
44
 
43
- export interface BaseContext<Out extends Resource> {
45
+ export interface BaseContext<Out extends ResourceAttributes> {
44
46
  quiet: boolean;
45
47
  stage: string;
46
48
  id: ResourceID;
@@ -94,7 +96,7 @@ export interface BaseContext<Out extends Resource> {
94
96
  export function context<
95
97
  Kind extends string,
96
98
  Props extends ResourceProps | undefined,
97
- Out extends Resource,
99
+ Out extends ResourceAttributes,
98
100
  >({
99
101
  scope,
100
102
  phase,
@@ -114,7 +116,7 @@ export function context<
114
116
  fqn: ResourceFQN;
115
117
  seq: number;
116
118
  props: Props;
117
- state: State<Kind, Props, Out>;
119
+ state: State<Kind, Props, Out & Resource>;
118
120
  replace: (force?: boolean) => never;
119
121
  isReplacement?: boolean;
120
122
  }): Context<Out> {
package/src/destroy.ts CHANGED
@@ -50,10 +50,10 @@ function isScopeArgs(a: any): a is [scope: Scope, options?: DestroyOptions] {
50
50
  /**
51
51
  * Prune all resources from an Output and "down", i.e. that branches from it.
52
52
  */
53
- export async function destroy<Type extends string>(
53
+ export async function destroy(
54
54
  ...args:
55
55
  | [scope: Scope, options?: DestroyOptions]
56
- | [resource: Resource<Type> | undefined | null, options?: DestroyOptions]
56
+ | [resource: any | undefined | null, options?: DestroyOptions]
57
57
  ): Promise<void> {
58
58
  if (isScopeArgs(args)) {
59
59
  const [scope] = args;
@@ -62,9 +62,7 @@ export interface ImportDnsRecordsProps {
62
62
  /**
63
63
  * Output returned after DNS records import
64
64
  */
65
- export interface ImportDnsRecords
66
- extends Resource<"dns::ImportDnsRecords">,
67
- ImportDnsRecordsProps {
65
+ export interface ImportDnsRecords extends ImportDnsRecordsProps {
68
66
  /**
69
67
  * The DNS records as a flat array, directly compatible with DnsRecords function
70
68
  */
@@ -204,11 +202,11 @@ export const ImportDnsRecords = Resource(
204
202
  }
205
203
 
206
204
  // Return the resource with fetched records as a flat array
207
- return this({
205
+ return {
208
206
  domain: props.domain,
209
207
  recordTypes: [...recordTypes],
210
208
  records: allRecords,
211
209
  importedAt: Date.now(),
212
- });
210
+ };
213
211
  },
214
212
  );
@@ -120,9 +120,7 @@ export interface ContainerProps {
120
120
  /**
121
121
  * Docker Container resource
122
122
  */
123
- export interface Container
124
- extends Resource<"docker::Container">,
125
- ContainerProps {
123
+ export interface Container extends ContainerProps {
126
124
  /**
127
125
  * Container ID
128
126
  */
@@ -266,14 +264,13 @@ export const Container = Resource(
266
264
  containerState = "running";
267
265
  }
268
266
 
269
- // Return the resource using this() to construct output
270
- return this({
267
+ return {
271
268
  ...props,
272
269
  id: containerId,
273
270
  name: containerName,
274
271
  state: containerState,
275
272
  createdAt: Date.now(),
276
- });
273
+ };
277
274
  }
278
275
  },
279
276
  );
@@ -84,7 +84,7 @@ export interface ImageProps {
84
84
  /**
85
85
  * Docker Image resource
86
86
  */
87
- export interface Image extends Resource<"docker::Image">, ImageProps {
87
+ export interface Image extends ImageProps {
88
88
  /**
89
89
  * Image name
90
90
  */
@@ -135,16 +135,8 @@ export const Image = Resource(
135
135
  id: string,
136
136
  props: ImageProps,
137
137
  ): Promise<Image> {
138
- // Create a temporary directory that will act as an isolated Docker config
139
- // (credentials) directory. This prevents race-conditions when multiple
140
- // concurrent tests perform `docker login` / `logout` by ensuring each
141
- // Image operation has its own credential store.
142
- const tempConfigDir = await fs.mkdtemp(
143
- path.join(os.tmpdir(), "docker-config-"),
144
- );
145
-
146
138
  // Initialize Docker API client with the isolated config directory
147
- const api = new DockerApi({ configDir: tempConfigDir });
139
+ const api = new DockerApi();
148
140
 
149
141
  if (this.phase === "delete") {
150
142
  // No action needed for delete as Docker images aren't automatically removed
@@ -232,6 +224,15 @@ export const Image = Resource(
232
224
  : `${registryHost}/${imageRef}`;
233
225
 
234
226
  try {
227
+ // Create a temporary directory that will act as an isolated Docker config
228
+ // (credentials) directory. This prevents race-conditions when multiple
229
+ // concurrent tests perform `docker login` / `logout` by ensuring each
230
+ // Image operation has its own credential store.
231
+ const tempConfigDir = await fs.mkdtemp(
232
+ path.join(os.tmpdir(), "docker-config-"),
233
+ );
234
+ const api = new DockerApi({ configDir: tempConfigDir });
235
+
235
236
  // Authenticate to registry using the isolated config directory
236
237
  await api.login(registryHost, username, password.unencrypted);
237
238
 
@@ -265,15 +266,14 @@ export const Image = Resource(
265
266
  }
266
267
  }
267
268
 
268
- // Return the resource using this() to construct output
269
- return this({
269
+ return {
270
270
  ...props,
271
271
  name,
272
272
  imageRef: finalImageRef,
273
273
  imageId,
274
274
  repoDigest,
275
275
  builtAt: Date.now(),
276
- });
276
+ };
277
277
  }
278
278
  },
279
279
  );
@@ -34,7 +34,7 @@ export interface NetworkProps {
34
34
  /**
35
35
  * Docker Network resource
36
36
  */
37
- export interface Network extends Resource<"docker::Network">, NetworkProps {
37
+ export interface Network extends NetworkProps {
38
38
  /**
39
39
  * Network ID
40
40
  */
@@ -104,13 +104,12 @@ export const Network = Resource(
104
104
  props.driver = props.driver || "bridge";
105
105
  const networkId = await api.createNetwork(networkName, props.driver);
106
106
 
107
- // Return the resource using this() to construct output
108
- return this({
107
+ return {
109
108
  ...props,
110
109
  id: networkId,
111
110
  name: networkName,
112
111
  createdAt: Date.now(),
113
- });
112
+ };
114
113
  }
115
114
  },
116
115
  );
@@ -25,9 +25,7 @@ export interface RemoteImageProps {
25
25
  /**
26
26
  * Docker Remote Image resource
27
27
  */
28
- export interface RemoteImage
29
- extends Resource<"docker::RemoteImage">,
30
- RemoteImageProps {
28
+ export interface RemoteImage extends RemoteImageProps {
31
29
  /**
32
30
  * Full image reference (name:tag)
33
31
  */
@@ -72,12 +70,11 @@ export const RemoteImage = Resource(
72
70
  // Pull image
73
71
  await api.pullImage(imageRef);
74
72
 
75
- // Return the resource using this() to construct output
76
- return this({
73
+ return {
77
74
  ...props,
78
75
  imageRef,
79
76
  createdAt: Date.now(),
80
- });
77
+ };
81
78
  }
82
79
  },
83
80
  );