alchemy 2.0.0-beta.70 → 2.0.0-beta.71

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 (299) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +5 -0
  3. package/README.md +3 -1
  4. package/THIRD_PARTY_LICENSES.md +127 -0
  5. package/bin/exec.js +25 -9
  6. package/bin/exec.js.map +1 -1
  7. package/lib/AWS/DataZone/Domain.d.ts.map +1 -1
  8. package/lib/AWS/DataZone/Domain.js +7 -7
  9. package/lib/AWS/DataZone/Domain.js.map +1 -1
  10. package/lib/AWS/EC2/InternetGateway.d.ts.map +1 -1
  11. package/lib/AWS/EC2/InternetGateway.js +14 -16
  12. package/lib/AWS/EC2/InternetGateway.js.map +1 -1
  13. package/lib/AWS/EC2/LingeringEnis.d.ts +2 -2
  14. package/lib/AWS/EC2/LingeringEnis.d.ts.map +1 -1
  15. package/lib/AWS/EC2/LingeringEnis.js +9 -7
  16. package/lib/AWS/EC2/LingeringEnis.js.map +1 -1
  17. package/lib/AWS/RDSData/Marshall.d.ts +23 -0
  18. package/lib/AWS/RDSData/Marshall.d.ts.map +1 -0
  19. package/lib/AWS/RDSData/Marshall.js +87 -0
  20. package/lib/AWS/RDSData/Marshall.js.map +1 -0
  21. package/lib/AWS/RDSData/index.d.ts +1 -0
  22. package/lib/AWS/RDSData/index.d.ts.map +1 -1
  23. package/lib/AWS/RDSData/index.js +1 -0
  24. package/lib/AWS/RDSData/index.js.map +1 -1
  25. package/lib/AWS/ResourceGroups/Group.d.ts.map +1 -1
  26. package/lib/AWS/ResourceGroups/Group.js +3 -1
  27. package/lib/AWS/ResourceGroups/Group.js.map +1 -1
  28. package/lib/AWS/S3Tables/Namespace.d.ts.map +1 -1
  29. package/lib/AWS/S3Tables/Namespace.js +3 -1
  30. package/lib/AWS/S3Tables/Namespace.js.map +1 -1
  31. package/lib/AWS/S3Tables/TableBucket.d.ts.map +1 -1
  32. package/lib/AWS/S3Tables/TableBucket.js +8 -2
  33. package/lib/AWS/S3Tables/TableBucket.js.map +1 -1
  34. package/lib/AWS/S3Vectors/VectorBucket.d.ts.map +1 -1
  35. package/lib/AWS/S3Vectors/VectorBucket.js +6 -1
  36. package/lib/AWS/S3Vectors/VectorBucket.js.map +1 -1
  37. package/lib/AWS/Website/cfcode.d.ts.map +1 -1
  38. package/lib/AWS/Website/cfcode.js +2 -0
  39. package/lib/AWS/Website/cfcode.js.map +1 -1
  40. package/lib/Apply.d.ts.map +1 -1
  41. package/lib/Apply.js +22 -8
  42. package/lib/Apply.js.map +1 -1
  43. package/lib/Auth/AuthProvider.d.ts.map +1 -1
  44. package/lib/Auth/AuthProvider.js +1 -1
  45. package/lib/Auth/AuthProvider.js.map +1 -1
  46. package/lib/Bundle/Bundle.js +2 -2
  47. package/lib/Bundle/Bundle.js.map +1 -1
  48. package/lib/Cli/commands/cloudflare.js +1 -1
  49. package/lib/Cli/commands/cloudflare.js.map +1 -1
  50. package/lib/Cli/commands/logs.d.ts.map +1 -1
  51. package/lib/Cli/commands/logs.js +2 -1
  52. package/lib/Cli/commands/logs.js.map +1 -1
  53. package/lib/Cli/commands/nuke.js +1 -1
  54. package/lib/Cli/commands/nuke.js.map +1 -1
  55. package/lib/Cli/commands/tail.d.ts.map +1 -1
  56. package/lib/Cli/commands/tail.js +2 -1
  57. package/lib/Cli/commands/tail.js.map +1 -1
  58. package/lib/Cloudflare/AI/LanguageModel.js +1 -1
  59. package/lib/Cloudflare/AI/LanguageModel.js.map +1 -1
  60. package/lib/Cloudflare/Access.js +1 -1
  61. package/lib/Cloudflare/Access.js.map +1 -1
  62. package/lib/Cloudflare/Containers/ContainerBundle.d.ts +1 -1
  63. package/lib/Cloudflare/Containers/ContainerBundle.js +1 -1
  64. package/lib/Cloudflare/Containers/ContainerProvider.d.ts.map +1 -1
  65. package/lib/Cloudflare/Containers/ContainerProvider.js +24 -2
  66. package/lib/Cloudflare/Containers/ContainerProvider.js.map +1 -1
  67. package/lib/Cloudflare/Containers/LocalContainerProvider.d.ts +1 -1
  68. package/lib/Cloudflare/Containers/LocalContainerProvider.js +1 -1
  69. package/lib/Cloudflare/D1/Database.d.ts +2 -2
  70. package/lib/Cloudflare/D1/Database.d.ts.map +1 -1
  71. package/lib/Cloudflare/D1/LocalD1Gateway.d.ts +3 -3
  72. package/lib/Cloudflare/D1/LocalD1Gateway.d.ts.map +1 -1
  73. package/lib/Cloudflare/D1/LocalD1Gateway.js +3 -3
  74. package/lib/Cloudflare/D1/LocalD1Gateway.js.map +1 -1
  75. package/lib/Cloudflare/KV/LocalKVGateway.js +2 -2
  76. package/lib/Cloudflare/KV/LocalKVGateway.js.map +1 -1
  77. package/lib/Cloudflare/LocalGateway.d.ts +1 -1
  78. package/lib/Cloudflare/LocalGateway.d.ts.map +1 -1
  79. package/lib/Cloudflare/LocalGateway.js +1 -1
  80. package/lib/Cloudflare/LocalGateway.js.map +1 -1
  81. package/lib/Cloudflare/LocalRuntime.d.ts +1 -1
  82. package/lib/Cloudflare/LocalRuntime.d.ts.map +1 -1
  83. package/lib/Cloudflare/LocalRuntime.js +5 -4
  84. package/lib/Cloudflare/LocalRuntime.js.map +1 -1
  85. package/lib/Cloudflare/Queues/Consumer.d.ts +22 -5
  86. package/lib/Cloudflare/Queues/Consumer.d.ts.map +1 -1
  87. package/lib/Cloudflare/Queues/Consumer.js +129 -38
  88. package/lib/Cloudflare/Queues/Consumer.js.map +1 -1
  89. package/lib/Cloudflare/Queues/Queue.d.ts +4 -3
  90. package/lib/Cloudflare/Queues/Queue.d.ts.map +1 -1
  91. package/lib/Cloudflare/Queues/Queue.js +115 -6
  92. package/lib/Cloudflare/Queues/Queue.js.map +1 -1
  93. package/lib/Cloudflare/R2/LocalR2Gateway.js +2 -2
  94. package/lib/Cloudflare/R2/LocalR2Gateway.js.map +1 -1
  95. package/lib/Cloudflare/SecretsStore/LocalSecretsStoreGateway.d.ts +4 -4
  96. package/lib/Cloudflare/SecretsStore/LocalSecretsStoreGateway.d.ts.map +1 -1
  97. package/lib/Cloudflare/SecretsStore/LocalSecretsStoreGateway.js +2 -2
  98. package/lib/Cloudflare/SecretsStore/LocalSecretsStoreGateway.js.map +1 -1
  99. package/lib/Cloudflare/SecretsStore/Secret.d.ts +2 -2
  100. package/lib/Cloudflare/SecretsStore/Secret.d.ts.map +1 -1
  101. package/lib/Cloudflare/StateStore/Api.js +7 -0
  102. package/lib/Cloudflare/StateStore/Api.js.map +1 -1
  103. package/lib/Cloudflare/Website/Astro.d.ts +19 -11
  104. package/lib/Cloudflare/Website/Astro.d.ts.map +1 -1
  105. package/lib/Cloudflare/Website/Astro.js +16 -9
  106. package/lib/Cloudflare/Website/Astro.js.map +1 -1
  107. package/lib/Cloudflare/Website/Nextjs.d.ts +7 -4
  108. package/lib/Cloudflare/Website/Nextjs.d.ts.map +1 -1
  109. package/lib/Cloudflare/Website/Nextjs.js +10 -8
  110. package/lib/Cloudflare/Website/Nextjs.js.map +1 -1
  111. package/lib/Cloudflare/Website/Nuxt.d.ts +5 -4
  112. package/lib/Cloudflare/Website/Nuxt.d.ts.map +1 -1
  113. package/lib/Cloudflare/Website/Nuxt.js +4 -3
  114. package/lib/Cloudflare/Website/Nuxt.js.map +1 -1
  115. package/lib/Cloudflare/Website/Octane.d.ts +4 -3
  116. package/lib/Cloudflare/Website/Octane.d.ts.map +1 -1
  117. package/lib/Cloudflare/Website/Octane.js +5 -4
  118. package/lib/Cloudflare/Website/Octane.js.map +1 -1
  119. package/lib/Cloudflare/Website/SvelteKit.d.ts +17 -10
  120. package/lib/Cloudflare/Website/SvelteKit.d.ts.map +1 -1
  121. package/lib/Cloudflare/Website/SvelteKit.js +9 -5
  122. package/lib/Cloudflare/Website/SvelteKit.js.map +1 -1
  123. package/lib/Cloudflare/Website/Waku.d.ts +20 -9
  124. package/lib/Cloudflare/Website/Waku.d.ts.map +1 -1
  125. package/lib/Cloudflare/Website/Waku.js +10 -4
  126. package/lib/Cloudflare/Website/Waku.js.map +1 -1
  127. package/lib/Cloudflare/Workers/Assets.d.ts +54 -1
  128. package/lib/Cloudflare/Workers/Assets.d.ts.map +1 -1
  129. package/lib/Cloudflare/Workers/Assets.js +60 -26
  130. package/lib/Cloudflare/Workers/Assets.js.map +1 -1
  131. package/lib/Cloudflare/Workers/LocalWorkerProvider.d.ts +2 -2
  132. package/lib/Cloudflare/Workers/LocalWorkerProvider.d.ts.map +1 -1
  133. package/lib/Cloudflare/Workers/LocalWorkerProvider.js +153 -49
  134. package/lib/Cloudflare/Workers/LocalWorkerProvider.js.map +1 -1
  135. package/lib/Cloudflare/Workers/RuntimeBindings.d.ts +3 -3
  136. package/lib/Cloudflare/Workers/RuntimeBindings.d.ts.map +1 -1
  137. package/lib/Cloudflare/Workers/RuntimeBindings.js +2 -2
  138. package/lib/Cloudflare/Workers/RuntimeBindings.js.map +1 -1
  139. package/lib/Cloudflare/Workers/Source.d.ts +1 -1
  140. package/lib/Cloudflare/Workers/Source.d.ts.map +1 -1
  141. package/lib/Cloudflare/Workers/Source.js +1 -1
  142. package/lib/Cloudflare/Workers/Source.js.map +1 -1
  143. package/lib/Cloudflare/Workers/Sources/Rolldown.d.ts.map +1 -1
  144. package/lib/Cloudflare/Workers/Sources/Rolldown.js +3 -4
  145. package/lib/Cloudflare/Workers/Sources/Rolldown.js.map +1 -1
  146. package/lib/Cloudflare/Workers/Sources/Vite.d.ts +1 -1
  147. package/lib/Cloudflare/Workers/Sources/Vite.d.ts.map +1 -1
  148. package/lib/Cloudflare/Workers/Sources/Vite.js +36 -17
  149. package/lib/Cloudflare/Workers/Sources/Vite.js.map +1 -1
  150. package/lib/Cloudflare/Workers/ViteChild.d.ts.map +1 -1
  151. package/lib/Cloudflare/Workers/ViteChild.js +6 -0
  152. package/lib/Cloudflare/Workers/ViteChild.js.map +1 -1
  153. package/lib/Cloudflare/Workers/ViteChild.shared.d.ts +1 -1
  154. package/lib/Cloudflare/Workers/ViteChild.shared.d.ts.map +1 -1
  155. package/lib/Cloudflare/Workers/ViteChildRunner.js +5 -10
  156. package/lib/Cloudflare/Workers/ViteChildRunner.js.map +1 -1
  157. package/lib/Cloudflare/Workers/Worker.d.ts +11 -4
  158. package/lib/Cloudflare/Workers/Worker.d.ts.map +1 -1
  159. package/lib/Cloudflare/Workers/Worker.js.map +1 -1
  160. package/lib/Cloudflare/Workers/WorkerProvider.d.ts +1 -1
  161. package/lib/Cloudflare/Workers/WorkerProvider.d.ts.map +1 -1
  162. package/lib/Cloudflare/Workers/WorkerProvider.js +12 -2
  163. package/lib/Cloudflare/Workers/WorkerProvider.js.map +1 -1
  164. package/lib/Docker/Docker.d.ts.map +1 -1
  165. package/lib/Docker/Docker.js +6 -2
  166. package/lib/Docker/Docker.js.map +1 -1
  167. package/lib/Drizzle/{DurableObject.d.ts → Cloudflare.d.ts} +2 -1
  168. package/lib/Drizzle/Cloudflare.d.ts.map +1 -0
  169. package/lib/Drizzle/{DurableObject.js → Cloudflare.js} +2 -1
  170. package/lib/Drizzle/Cloudflare.js.map +1 -0
  171. package/lib/Drizzle/MySQL.d.ts +2 -2
  172. package/lib/Drizzle/MySQL.d.ts.map +1 -1
  173. package/lib/Drizzle/MySQL.js +5 -3
  174. package/lib/Drizzle/MySQL.js.map +1 -1
  175. package/lib/Drizzle/Postgres.d.ts +1 -1
  176. package/lib/Drizzle/Postgres.d.ts.map +1 -1
  177. package/lib/Drizzle/Postgres.js +4 -2
  178. package/lib/Drizzle/Postgres.js.map +1 -1
  179. package/lib/Drizzle/index.d.ts +0 -3
  180. package/lib/Drizzle/index.d.ts.map +1 -1
  181. package/lib/Drizzle/index.js +5 -3
  182. package/lib/Drizzle/index.js.map +1 -1
  183. package/lib/Neon/Migrations.d.ts.map +1 -1
  184. package/lib/Neon/Migrations.js +1 -5
  185. package/lib/Neon/Migrations.js.map +1 -1
  186. package/lib/PhysicalName.d.ts +8 -0
  187. package/lib/PhysicalName.d.ts.map +1 -1
  188. package/lib/PhysicalName.js +5 -2
  189. package/lib/PhysicalName.js.map +1 -1
  190. package/lib/Plan.d.ts.map +1 -1
  191. package/lib/Plan.js +16 -9
  192. package/lib/Plan.js.map +1 -1
  193. package/lib/ProviderMode.d.ts +45 -0
  194. package/lib/ProviderMode.d.ts.map +1 -1
  195. package/lib/ProviderMode.js +51 -0
  196. package/lib/ProviderMode.js.map +1 -1
  197. package/lib/SQL/ConnectionSource.d.ts +45 -0
  198. package/lib/SQL/ConnectionSource.d.ts.map +1 -0
  199. package/lib/SQL/ConnectionSource.js +51 -0
  200. package/lib/SQL/ConnectionSource.js.map +1 -0
  201. package/lib/SQL/MySQLDriver.d.ts +21 -0
  202. package/lib/SQL/MySQLDriver.d.ts.map +1 -0
  203. package/lib/SQL/MySQLDriver.js +31 -0
  204. package/lib/SQL/MySQLDriver.js.map +1 -0
  205. package/lib/SQL/PostgresDriver.d.ts +21 -0
  206. package/lib/SQL/PostgresDriver.d.ts.map +1 -0
  207. package/lib/SQL/PostgresDriver.js +29 -0
  208. package/lib/SQL/PostgresDriver.js.map +1 -0
  209. package/lib/State/HttpStateApi.d.ts +11 -11
  210. package/lib/State/LocalState.d.ts.map +1 -1
  211. package/lib/State/LocalState.js +17 -1
  212. package/lib/State/LocalState.js.map +1 -1
  213. package/lib/State/ResourceState.d.ts +6 -2
  214. package/lib/State/ResourceState.d.ts.map +1 -1
  215. package/lib/State/StateEncoding.d.ts +8 -0
  216. package/lib/State/StateEncoding.d.ts.map +1 -1
  217. package/lib/State/StateEncoding.js +38 -0
  218. package/lib/State/StateEncoding.js.map +1 -1
  219. package/lib/Sync.d.ts.map +1 -1
  220. package/lib/Sync.js +4 -2
  221. package/lib/Sync.js.map +1 -1
  222. package/lib/Test/Alchemy.d.ts.map +1 -1
  223. package/lib/Test/Alchemy.js +24 -14
  224. package/lib/Test/Alchemy.js.map +1 -1
  225. package/lib/Test/Core.d.ts +25 -8
  226. package/lib/Test/Core.d.ts.map +1 -1
  227. package/lib/Test/Core.js +24 -7
  228. package/lib/Test/Core.js.map +1 -1
  229. package/package.json +49 -40
  230. package/src/AWS/DataZone/Domain.ts +15 -13
  231. package/src/AWS/EC2/InternetGateway.ts +28 -32
  232. package/src/AWS/EC2/LingeringEnis.ts +11 -9
  233. package/src/AWS/RDSData/Marshall.ts +106 -0
  234. package/src/AWS/RDSData/index.ts +1 -0
  235. package/src/AWS/ResourceGroups/Group.ts +5 -1
  236. package/src/AWS/S3Tables/Namespace.ts +3 -1
  237. package/src/AWS/S3Tables/TableBucket.ts +8 -2
  238. package/src/AWS/S3Vectors/VectorBucket.ts +6 -1
  239. package/src/AWS/Website/cfcode.ts +2 -0
  240. package/src/Apply.ts +22 -9
  241. package/src/Auth/AuthProvider.ts +4 -7
  242. package/src/Bundle/Bundle.ts +2 -2
  243. package/src/Cli/commands/cloudflare.ts +1 -1
  244. package/src/Cli/commands/logs.ts +2 -1
  245. package/src/Cli/commands/nuke.ts +1 -1
  246. package/src/Cli/commands/tail.ts +2 -1
  247. package/src/Cloudflare/AI/LanguageModel.ts +3 -0
  248. package/src/Cloudflare/Access.ts +1 -1
  249. package/src/Cloudflare/Containers/ContainerBundle.ts +1 -1
  250. package/src/Cloudflare/Containers/ContainerProvider.ts +35 -5
  251. package/src/Cloudflare/Containers/LocalContainerProvider.ts +1 -1
  252. package/src/Cloudflare/D1/Database.ts +1 -1
  253. package/src/Cloudflare/D1/LocalD1Gateway.ts +4 -4
  254. package/src/Cloudflare/KV/LocalKVGateway.ts +2 -2
  255. package/src/Cloudflare/LocalGateway.ts +1 -1
  256. package/src/Cloudflare/LocalRuntime.ts +6 -4
  257. package/src/Cloudflare/Queues/Consumer.ts +183 -45
  258. package/src/Cloudflare/Queues/Queue.ts +157 -5
  259. package/src/Cloudflare/R2/LocalR2Gateway.ts +2 -2
  260. package/src/Cloudflare/SecretsStore/LocalSecretsStoreGateway.ts +2 -2
  261. package/src/Cloudflare/SecretsStore/Secret.ts +1 -1
  262. package/src/Cloudflare/StateStore/Api.ts +7 -0
  263. package/src/Cloudflare/Website/Astro.ts +20 -12
  264. package/src/Cloudflare/Website/Nextjs.ts +13 -8
  265. package/src/Cloudflare/Website/Nuxt.ts +6 -5
  266. package/src/Cloudflare/Website/Octane.ts +6 -4
  267. package/src/Cloudflare/Website/SvelteKit.ts +18 -11
  268. package/src/Cloudflare/Website/Waku.ts +21 -10
  269. package/src/Cloudflare/Workers/Assets.ts +122 -20
  270. package/src/Cloudflare/Workers/LocalWorkerProvider.ts +228 -81
  271. package/src/Cloudflare/Workers/RuntimeBindings.ts +3 -3
  272. package/src/Cloudflare/Workers/Source.ts +2 -2
  273. package/src/Cloudflare/Workers/Sources/Rolldown.ts +3 -4
  274. package/src/Cloudflare/Workers/Sources/Vite.ts +46 -24
  275. package/src/Cloudflare/Workers/ViteChild.shared.ts +1 -1
  276. package/src/Cloudflare/Workers/ViteChild.ts +6 -0
  277. package/src/Cloudflare/Workers/ViteChildRunner.ts +5 -10
  278. package/src/Cloudflare/Workers/Worker.ts +26 -6
  279. package/src/Cloudflare/Workers/WorkerProvider.ts +19 -2
  280. package/src/Docker/Docker.ts +17 -11
  281. package/src/Drizzle/{DurableObject.ts → Cloudflare.ts} +1 -0
  282. package/src/Drizzle/MySQL.ts +13 -3
  283. package/src/Drizzle/Postgres.ts +10 -2
  284. package/src/Drizzle/index.ts +6 -3
  285. package/src/Neon/Migrations.ts +1 -10
  286. package/src/PhysicalName.ts +17 -1
  287. package/src/Plan.ts +20 -9
  288. package/src/ProviderMode.ts +56 -0
  289. package/src/SQL/ConnectionSource.ts +101 -0
  290. package/src/SQL/MySQLDriver.ts +49 -0
  291. package/src/SQL/PostgresDriver.ts +45 -0
  292. package/src/State/LocalState.ts +24 -0
  293. package/src/State/ResourceState.ts +6 -2
  294. package/src/State/StateEncoding.ts +37 -0
  295. package/src/Sync.ts +4 -2
  296. package/src/Test/Alchemy.ts +17 -6
  297. package/src/Test/Core.ts +42 -15
  298. package/lib/Drizzle/DurableObject.d.ts.map +0 -1
  299. package/lib/Drizzle/DurableObject.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Core.js","sourceRoot":"","sources":["../../src/Test/Core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Core.js","sourceRoot":"","sources":["../../src/Test/Core.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,31 +1,42 @@
1
1
  {
2
2
  "name": "alchemy",
3
- "version": "2.0.0-beta.70",
3
+ "version": "2.0.0-beta.71",
4
+ "description": "Infrastructure as Effects for TypeScript.",
4
5
  "homepage": "https://alchemy.run",
5
6
  "license": "Apache-2.0",
6
7
  "author": "Sam Goodwin <sam@alchemy.run>",
8
+ "keywords": [
9
+ "alchemy",
10
+ "effect",
11
+ "infrastructure-as-code"
12
+ ],
7
13
  "repository": {
8
14
  "type": "git",
9
15
  "url": "git+https://github.com/alchemy-run/alchemy.git",
10
16
  "directory": "packages/alchemy"
11
17
  },
18
+ "bugs": {
19
+ "url": "https://github.com/alchemy-run/alchemy/issues"
20
+ },
12
21
  "bin": {
13
22
  "alchemy": "./bin/cli.js"
14
23
  },
15
24
  "files": [
16
25
  "bin",
17
26
  "lib",
18
- "src"
27
+ "src",
28
+ "NOTICE",
29
+ "THIRD_PARTY_LICENSES.md"
19
30
  ],
20
31
  "type": "module",
21
32
  "sideEffects": false,
22
33
  "scripts": {
23
34
  "clear:state": "cd ../../ && bun clear:state",
24
35
  "dev": "tsdown --watch",
25
- "build": "rm -rf lib && tsc -b --force && tsc -b tsconfig.bin.json --force && bun bundle",
36
+ "build": "rm -rf lib && tsc -b --force && tsc -b tsconfig.bin.json --force && bun bundle && bun ../../scripts/copy-package-files.ts alchemy",
26
37
  "bundle": "tsdown",
27
38
  "bundle:watch": "tsdown --watch",
28
- "publish:npm": "cp ../README.md . && bun publish && rm README.md",
39
+ "publish:npm": "bun publish",
29
40
  "test": "alchemy-test",
30
41
  "test:benchmark": "tsx --tsconfig tsconfig.test.json test/types.benchmark.ts",
31
42
  "nuke": "cd ../../ && bun nuke"
@@ -169,6 +180,12 @@
169
180
  "worker": "./src/Drizzle/index.ts",
170
181
  "import": "./lib/Drizzle/index.js"
171
182
  },
183
+ "./Drizzle/*": {
184
+ "types": "./lib/Drizzle/*.d.ts",
185
+ "bun": "./src/Drizzle/*.ts",
186
+ "worker": "./src/Drizzle/*.ts",
187
+ "import": "./lib/Drizzle/*.js"
188
+ },
172
189
  "./Axiom": {
173
190
  "types": "./lib/Axiom/index.d.ts",
174
191
  "bun": "./src/Axiom/index.ts",
@@ -350,18 +367,16 @@
350
367
  "@alchemy.run/node-utils": "0.0.5",
351
368
  "@aws-sdk/credential-providers": "^3.0.0",
352
369
  "@clack/prompts": "^1.7.0",
353
- "@distilled.cloud/aws": "1.0.0-rc.2",
354
- "@distilled.cloud/axiom": "1.0.0-rc.2",
355
- "@distilled.cloud/cloudflare-rolldown-plugin": "0.16.1",
356
- "@distilled.cloud/cloudflare-runtime": "0.16.1",
357
- "@distilled.cloud/cloudflare-vite-plugin": "0.16.1",
358
- "@distilled.cloud/cloudflare": "1.0.0-rc.2",
359
- "@distilled.cloud/core": "1.0.0-rc.2",
360
- "@distilled.cloud/neon": "1.0.0-rc.2",
361
- "@distilled.cloud/planetscale": "1.0.0-rc.2",
362
- "@effect/sql-d1": ">=4.0.0-beta.102 || >=4.0.0",
363
- "@effect/sql-sqlite-do": ">=4.0.0-beta.102 || >=4.0.0",
364
- "@effect/vitest": ">=4.0.0-beta.102 || >=4.0.0",
370
+ "@distilled.cloud/aws": "1.0.0-rc.4",
371
+ "@distilled.cloud/axiom": "1.0.0-rc.4",
372
+ "@alchemy.run/cloudflare-runtime": "2.0.0-beta.71",
373
+ "@distilled.cloud/cloudflare": "1.0.0-rc.4",
374
+ "@distilled.cloud/core": "1.0.0-rc.4",
375
+ "@distilled.cloud/neon": "1.0.0-rc.4",
376
+ "@distilled.cloud/planetscale": "1.0.0-rc.4",
377
+ "@effect/sql-d1": ">=4.0.0-beta.105 || >=4.0.0",
378
+ "@effect/sql-sqlite-do": ">=4.0.0-beta.105 || >=4.0.0",
379
+ "@effect/vitest": ">=4.0.0-beta.105 || >=4.0.0",
365
380
  "@libsql/client": "^0.17.0",
366
381
  "@octokit/rest": "^22.0.1",
367
382
  "@octokit/webhooks": "^14.2.0",
@@ -389,15 +404,10 @@
389
404
  "@cloudflare/containers": "^0.3.7",
390
405
  "@cloudflare/puppeteer": "^1.1.0",
391
406
  "@cloudflare/workers-types": "^4.20250805.0",
392
- "@distilled.cloud/astro": "0.13.7",
393
- "@distilled.cloud/nextjs": "0.13.7",
394
- "@distilled.cloud/nuxt": "0.13.7",
395
- "@distilled.cloud/octane": "0.13.7",
396
- "@distilled.cloud/sveltekit": "0.13.7",
397
- "@distilled.cloud/waku": "0.13.7",
398
- "@effect/platform-bun": ">=4.0.0-beta.102 || >=4.0.0",
399
- "@effect/platform-node-shared": ">=4.0.0-beta.102 || >=4.0.0",
400
- "@effect/platform-node": ">=4.0.0-beta.102 || >=4.0.0",
407
+ "@alchemy.run/cloudflare-frameworks": "2.0.0-beta.71",
408
+ "@effect/platform-bun": ">=4.0.0-beta.105 || >=4.0.0",
409
+ "@effect/platform-node": ">=4.0.0-beta.105 || >=4.0.0",
410
+ "@effect/platform-node-shared": ">=4.0.0-beta.105 || >=4.0.0",
401
411
  "@foldkit/vite-plugin": "^0.11.3",
402
412
  "@octanejs/adapter-cloudflare": "0.0.12",
403
413
  "@octanejs/vite-plugin": "0.1.22",
@@ -410,7 +420,7 @@
410
420
  "@types/aws-lambda": "^8.10.152",
411
421
  "@types/bun": "latest",
412
422
  "@types/node": "latest",
413
- "@types/pg": "^8.11.0",
423
+ "@types/pg": "^8.20.0",
414
424
  "@types/picomatch": "^4.0.0",
415
425
  "@types/react-dom": "^19.2.2",
416
426
  "@types/react": "^19.2.2",
@@ -419,19 +429,18 @@
419
429
  "@vitejs/plugin-react": "^6.0.2",
420
430
  "@vitejs/plugin-rsc": "^0.5.27",
421
431
  "alchemy-test": "0.0.0",
422
- "astro": "7.1.0",
423
- "better-auth": "^1.6.2",
424
- "effect": ">=4.0.0-beta.102 || >=4.0.0",
432
+ "astro": "7.2.0",
433
+ "effect": ">=4.0.0-beta.105 || >=4.0.0",
425
434
  "foldkit": "^0.137.0",
426
435
  "hono": "^4.12.14",
427
436
  "iovalkey": "^0.3.3",
428
437
  "mongodb": "^6.10.0",
429
- "mysql2": "^3.15.3",
438
+ "mysql2": "^3.23.2",
430
439
  "next": "16.2.10",
431
440
  "nitropack": "2.13.4",
432
441
  "nuxt": "4.5.1",
433
442
  "octane": "0.1.22",
434
- "pg": "^8.13.0",
443
+ "pg": "^8.22.0",
435
444
  "react-devtools-core": "^7.0.1",
436
445
  "react-dom": "^19.2.7",
437
446
  "react-router": "7.16.0",
@@ -450,17 +459,17 @@
450
459
  },
451
460
  "peerDependencies": {
452
461
  "@aws/durable-execution-sdk-js": "^2.1.0",
453
- "@effect/platform-bun": ">=4.0.0-beta.102 || >=4.0.0",
454
- "@effect/platform-node": ">=4.0.0-beta.102 || >=4.0.0",
455
- "@effect/sql-mysql2": ">=4.0.0-beta.102 || >=4.0.0",
456
- "@effect/sql-pg": ">=4.0.0-beta.102 || >=4.0.0",
462
+ "@effect/platform-bun": ">=4.0.0-beta.105 || >=4.0.0",
463
+ "@effect/platform-node": ">=4.0.0-beta.105 || >=4.0.0",
464
+ "@effect/sql-mysql2": ">=4.0.0-beta.105 || >=4.0.0",
465
+ "@effect/sql-pg": ">=4.0.0-beta.105 || >=4.0.0",
457
466
  "@vercel/nft": "^1.10.2",
458
- "drizzle-kit": "1.0.0-rc.4",
459
- "drizzle-orm": "1.0.0-rc.4",
460
- "effect": ">=4.0.0-beta.102 || >=4.0.0",
467
+ "drizzle-kit": "1.0.0-rc.5-ab785fc",
468
+ "drizzle-orm": "1.0.0-rc.5-ab785fc",
469
+ "effect": ">=4.0.0-beta.105 || >=4.0.0",
461
470
  "mongodb": "^6.10.0",
462
- "mysql2": "^3.15.3",
463
- "pg": "^8.13.0",
471
+ "mysql2": "^3.23.2",
472
+ "pg": "^8.22.0",
464
473
  "vite": "^8.0.7",
465
474
  "ws": "^8.20.0"
466
475
  },
@@ -148,11 +148,11 @@ export class DomainCreationFailed extends Data.TaggedError(
148
148
  const DOMAIN_TRANSIENT = new Set(["CREATING", "DELETING"]);
149
149
 
150
150
  /**
151
- * A freshly created IAM role is eventually consistent; `createDomain` can
152
- * transiently reject a role it cannot yet assume. Wrapped in an
153
- * explicitly-typed helper so the `Effect.retry` conditional return type does
154
- * not leak into declaration emit and widen the provider layer's requirement
155
- * to `unknown` (see PATTERNS §7).
151
+ * A freshly created (or re-observed) IAM role is eventually consistent;
152
+ * `createDomain` / `updateDomain` can transiently reject a role DataZone
153
+ * cannot yet assume. Wrapped in an explicitly-typed helper so the
154
+ * `Effect.retry` conditional return type does not leak into declaration emit
155
+ * and widen the provider layer's requirement to `unknown` (see PATTERNS §7).
156
156
  */
157
157
  const retryWhileRoleAssumeFails = <A, E extends { _tag: string }, R>(
158
158
  self: Effect.Effect<A, E, R>,
@@ -426,14 +426,16 @@ export const DomainProvider = () =>
426
426
  (news.serviceRole !== undefined &&
427
427
  domain.serviceRole !== news.serviceRole);
428
428
  if (drifted) {
429
- yield* datazone.updateDomain({
430
- identifier: domain.id,
431
- name,
432
- description: news.description,
433
- domainExecutionRole: executionRoleArn,
434
- serviceRole: news.serviceRole,
435
- singleSignOn: news.singleSignOn,
436
- });
429
+ yield* retryWhileRoleAssumeFails(
430
+ datazone.updateDomain({
431
+ identifier: domain.id,
432
+ name,
433
+ description: news.description,
434
+ domainExecutionRole: executionRoleArn,
435
+ serviceRole: news.serviceRole,
436
+ singleSignOn: news.singleSignOn,
437
+ }),
438
+ );
437
439
  domain = (yield* getDomainOrUndefined(domain.id)) ?? domain;
438
440
  }
439
441
  }
@@ -16,6 +16,7 @@ import { AWSEnvironment, type AccountID } from "../Environment.ts";
16
16
  import type { Providers } from "../Providers.ts";
17
17
  import type { RegionID } from "../Region.ts";
18
18
  import { getDefaultVpcScope } from "./defaultVpcScope.ts";
19
+ import { retryWhileLingeringEnis } from "./LingeringEnis.ts";
19
20
  import type { VpcId } from "./Vpc.ts";
20
21
 
21
22
  export type InternetGatewayId<ID extends string = string> = `igw-${ID}`;
@@ -376,41 +377,36 @@ export const InternetGatewayProvider = () =>
376
377
  }
377
378
  const attachments = igw.Attachments ?? [];
378
379
 
379
- // 1. Detach from all VPCs first
380
+ // 1. Detach from all VPCs first. DetachInternetGateway fails with
381
+ // DependencyViolation ("has some mapped public address(es)") while
382
+ // any ENI in the VPC still holds a public IP — a just-deleted VPC
383
+ // Lambda's Hyperplane ENIs or draining Fargate task ENIs can hold
384
+ // theirs for 5-20 minutes after the owner is gone. Ride that
385
+ // window out on the same budget the subnet delete uses, reaping
386
+ // detached Lambda ENIs between attempts to accelerate the release.
380
387
  if (attachments.length > 0) {
381
388
  for (const attachment of attachments) {
382
- yield* ec2
383
- .detachInternetGateway({
384
- InternetGatewayId: internetGatewayId,
385
- VpcId: attachment.VpcId!,
386
- })
387
- .pipe(
388
- Effect.tapError(Effect.logDebug),
389
- Effect.catchTag("Gateway.NotAttached", () => Effect.void),
390
- Effect.catchTag(
391
- "InvalidInternetGatewayID.NotFound",
392
- () => Effect.void,
393
- ),
394
- // Retry on dependency violations (e.g., NAT Gateway with EIP still attached)
395
- Effect.retry({
396
- while: (e) => {
397
- return e._tag === "DependencyViolation";
398
- },
399
- // Public addresses on a draining EKS/HyperPod control
400
- // plane's ENIs can take several minutes to release —
401
- // 5s x 60 = ~5 min.
402
- schedule: Schedule.max([
403
- Schedule.fixed(5000),
404
- Schedule.recurs(60),
405
- ]).pipe(
406
- Schedule.tap(({ attempt }) =>
407
- session.note(
408
- `Waiting for VPC dependencies to clear before detaching... (attempt ${attempt})`,
409
- ),
410
- ),
389
+ yield* retryWhileLingeringEnis(
390
+ ec2
391
+ .detachInternetGateway({
392
+ InternetGatewayId: internetGatewayId,
393
+ VpcId: attachment.VpcId!,
394
+ })
395
+ .pipe(
396
+ Effect.tapError(Effect.logDebug),
397
+ Effect.catchTag("Gateway.NotAttached", () => Effect.void),
398
+ Effect.catchTag(
399
+ "InvalidInternetGatewayID.NotFound",
400
+ () => Effect.void,
411
401
  ),
412
- }),
413
- );
402
+ ),
403
+ {
404
+ scope: { name: "vpc-id", value: attachment.VpcId! },
405
+ isDependencyViolation: (e) =>
406
+ e._tag === "DependencyViolation",
407
+ session,
408
+ },
409
+ );
414
410
  yield* session.note(`Detached from VPC: ${attachment.VpcId}`);
415
411
  }
416
412
  }
@@ -13,13 +13,15 @@ import * as Result from "effect/Result";
13
13
  * gone, `DeleteSubnet`/`DeleteSecurityGroup` fail with `DependencyViolation`
14
14
  * — historically forcing users to run `destroy` twice, minutes apart.
15
15
  *
16
- * `retryWhileLingeringEnis` wraps a subnet/security-group delete call:
17
- * on every `DependencyViolation` it observes the ENIs still occupying the
18
- * resource, explicitly deletes any *detached* (status `available`) Lambda
19
- * ENI instead of waiting for Lambda's reaper, and — while the blockers are
20
- * exclusively Lambda ENIs that are provably on their way out — keeps waiting
21
- * on an extended budget that covers AWS's worst-case release window. Any
22
- * other lingering dependency keeps today's shorter budget.
16
+ * `retryWhileLingeringEnis` wraps a subnet/security-group delete call (or an
17
+ * internet-gateway detach, which `DependencyViolation`s while any ENI in the
18
+ * VPC still holds a mapped public address): on every `DependencyViolation`
19
+ * it observes the ENIs still occupying the resource, explicitly deletes any
20
+ * *detached* (status `available`) Lambda ENI instead of waiting for Lambda's
21
+ * reaper, and — while the blockers are exclusively Lambda ENIs that are
22
+ * provably on their way out — keeps waiting on an extended budget that
23
+ * covers AWS's worst-case release window. Any other lingering dependency
24
+ * keeps today's shorter budget.
23
25
  */
24
26
 
25
27
  /**
@@ -40,8 +42,8 @@ const isReapableEni = (eni: ec2.NetworkInterface): boolean =>
40
42
  (eni.Description?.startsWith("AWS Lambda VPC ENI") ?? false);
41
43
 
42
44
  export interface LingeringEniScope {
43
- /** ENI filter naming the resource being deleted. */
44
- readonly name: "subnet-id" | "group-id";
45
+ /** ENI filter naming the resource being deleted or detached. */
46
+ readonly name: "subnet-id" | "group-id" | "vpc-id";
45
47
  readonly value: string;
46
48
  }
47
49
 
@@ -0,0 +1,106 @@
1
+ import type * as rdsdata from "@distilled.cloud/aws/rds-data";
2
+
3
+ /**
4
+ * JS value → Data API `SqlParameter` marshalling, matching the Postgres
5
+ * wire expectations: integers as `longValue`, floats as `doubleValue`,
6
+ * `Date`s as `TIMESTAMP`-hinted strings, `Uint8Array` as blobs, and
7
+ * anything else JSON-stringified.
8
+ */
9
+ export const toSqlParameter = (
10
+ name: string,
11
+ value: unknown,
12
+ ): rdsdata.SqlParameter => {
13
+ if (value === null || value === undefined) {
14
+ return { name, value: { isNull: true } };
15
+ }
16
+ if (typeof value === "string") {
17
+ return { name, value: { stringValue: value } };
18
+ }
19
+ if (typeof value === "number") {
20
+ return Number.isInteger(value)
21
+ ? { name, value: { longValue: value } }
22
+ : { name, value: { doubleValue: value } };
23
+ }
24
+ if (typeof value === "bigint") {
25
+ return { name, value: { longValue: Number(value) } };
26
+ }
27
+ if (typeof value === "boolean") {
28
+ return { name, value: { booleanValue: value } };
29
+ }
30
+ if (value instanceof Date) {
31
+ return {
32
+ name,
33
+ typeHint: "TIMESTAMP",
34
+ value: {
35
+ stringValue: value.toISOString().replace("T", " ").replace("Z", ""),
36
+ },
37
+ };
38
+ }
39
+ if (value instanceof Uint8Array) {
40
+ return { name, value: { blobValue: value } as rdsdata.Field };
41
+ }
42
+ return { name, value: { stringValue: JSON.stringify(value) } };
43
+ };
44
+
45
+ const TIMESTAMP_TYPES = new Set([
46
+ "timestamp",
47
+ "timestamptz",
48
+ "date",
49
+ "datetime",
50
+ ]);
51
+
52
+ /**
53
+ * Data API `Field` → JS value. Timestamp-typed columns (per the response's
54
+ * `columnMetadata.typeName`) revive as `Date`s — the Data API returns UTC
55
+ * timestamps as `"YYYY-MM-DD HH:MM:SS[.FFF]"` strings.
56
+ */
57
+ export const fromField = (
58
+ field: rdsdata.Field,
59
+ typeName: string | undefined,
60
+ ): unknown => {
61
+ const f = field as {
62
+ stringValue?: string;
63
+ longValue?: number;
64
+ doubleValue?: number;
65
+ booleanValue?: boolean;
66
+ blobValue?: unknown;
67
+ isNull?: boolean;
68
+ };
69
+ if (f.isNull) {
70
+ return null;
71
+ }
72
+ if (f.stringValue !== undefined) {
73
+ if (typeName !== undefined && TIMESTAMP_TYPES.has(typeName.toLowerCase())) {
74
+ const iso = f.stringValue.replace(" ", "T");
75
+ return new Date(/[Z+]/.test(iso.slice(10)) ? iso : `${iso}Z`);
76
+ }
77
+ return f.stringValue;
78
+ }
79
+ if (f.longValue !== undefined) return f.longValue;
80
+ if (f.doubleValue !== undefined) return f.doubleValue;
81
+ if (f.booleanValue !== undefined) return f.booleanValue;
82
+ if (f.blobValue !== undefined) return f.blobValue;
83
+ return null;
84
+ };
85
+
86
+ /**
87
+ * Map an `executeStatement` response (with `includeResultMetadata: true`)
88
+ * to rows keyed by column label.
89
+ */
90
+ export const toRows = (response: {
91
+ records?: rdsdata.Field[][];
92
+ columnMetadata?: rdsdata.ColumnMetadata[];
93
+ }): Record<string, unknown>[] => {
94
+ const metadata = response.columnMetadata ?? [];
95
+ return (response.records ?? []).map((record) => {
96
+ const row: Record<string, unknown> = {};
97
+ record.forEach((field, index) => {
98
+ const column = metadata[index];
99
+ row[column?.label ?? column?.name ?? `column${index}`] = fromField(
100
+ field,
101
+ column?.typeName ?? undefined,
102
+ );
103
+ });
104
+ return row;
105
+ });
106
+ };
@@ -8,5 +8,6 @@ export * from "./ExecuteSql.ts";
8
8
  export * from "./ExecuteSqlHttp.ts";
9
9
  export * from "./ExecuteStatement.ts";
10
10
  export * from "./ExecuteStatementHttp.ts";
11
+ export * from "./Marshall.ts";
11
12
  export * from "./RollbackTransaction.ts";
12
13
  export * from "./RollbackTransactionHttp.ts";
@@ -242,7 +242,11 @@ export const GroupProvider = () =>
242
242
  Group,
243
243
  Effect.gen(function* () {
244
244
  const createName = Effect.fn(function* (id: string, props: GroupProps) {
245
- return props.groupName ?? (yield* createPhysicalName({ id }));
245
+ // Group names must not start with 'AWS' (reserved by the service).
246
+ return (
247
+ props.groupName ??
248
+ (yield* createPhysicalName({ id, forbiddenPrefixes: ["aws"] }))
249
+ );
246
250
  });
247
251
 
248
252
  const readGroupTags = (groupArn: string) =>
@@ -72,11 +72,13 @@ const createNamespaceName = (
72
72
  return props.namespace;
73
73
  }
74
74
  // Namespace names allow lowercase letters, numbers, and underscores only —
75
- // no hyphens — so translate the DNS-style physical name.
75
+ // no hyphens — so translate the DNS-style physical name. Namespace names
76
+ // must not start with the reserved prefix `aws`.
76
77
  const base = yield* createPhysicalName({
77
78
  id,
78
79
  maxLength: 60,
79
80
  lowercase: true,
81
+ forbiddenPrefixes: ["aws"],
80
82
  });
81
83
  return base.replaceAll("-", "_");
82
84
  });
@@ -100,8 +100,14 @@ const createBucketName = (id: string, props: { name?: string | undefined }) =>
100
100
  if (props.name) {
101
101
  return props.name;
102
102
  }
103
- // Table-bucket names follow S3-bucket DNS rules: lowercase, 3-63 chars.
104
- return yield* createPhysicalName({ id, maxLength: 63, lowercase: true });
103
+ // Table-bucket names follow S3-bucket DNS rules: lowercase, 3-63 chars,
104
+ // and must not start with the service-reserved prefixes.
105
+ return yield* createPhysicalName({
106
+ id,
107
+ maxLength: 63,
108
+ lowercase: true,
109
+ forbiddenPrefixes: ["xn--", "sthree-", "amzn-s3-demo-", "aws"],
110
+ });
105
111
  });
106
112
 
107
113
  export const TableBucketProvider = () =>
@@ -128,9 +128,14 @@ export const VectorBucketProvider = () =>
128
128
  id: string,
129
129
  props: Pick<VectorBucketProps, "vectorBucketName">,
130
130
  ) {
131
+ // The service rejects bucket names starting with `aws` as reserved.
131
132
  return (
132
133
  props.vectorBucketName ??
133
- (yield* createPhysicalName({ id, maxLength: 63 })).toLowerCase()
134
+ (yield* createPhysicalName({
135
+ id,
136
+ maxLength: 63,
137
+ forbiddenPrefixes: ["aws"],
138
+ })).toLowerCase()
134
139
  );
135
140
  });
136
141
 
@@ -1,3 +1,5 @@
1
+ // Alchemy modifications are licensed under Apache-2.0.
2
+ // This file includes third-party code; see /THIRD_PARTY_LICENSES.md.
1
3
  /**
2
4
  * CloudFront Function injection code ported from SST's Router component.
3
5
  * These are JavaScript code strings that get injected into CloudFront Function handlers.
package/src/Apply.ts CHANGED
@@ -36,7 +36,7 @@ import {
36
36
  missingProviderError,
37
37
  tryFindProviderByType,
38
38
  } from "./Provider.ts";
39
- import type { ProviderMode } from "./ProviderMode.ts";
39
+ import { stampedMode, type ProviderMode } from "./ProviderMode.ts";
40
40
  import type { ResourceBinding } from "./Resource.ts";
41
41
  import { Stack } from "./Stack.ts";
42
42
  import { Stage } from "./Stage.ts";
@@ -550,6 +550,16 @@ const executeNode = (
550
550
  status,
551
551
  providerMode: node.mode,
552
552
  });
553
+ // A local dev instance announces where it's serving: any
554
+ // local-mode row whose fresh Attributes carry a string `url`
555
+ // (Workers expose their dev-proxy URL this way) gets a
556
+ // `[id] ready at http://localhost:1337` line.
557
+ if (node.mode === "local") {
558
+ const url = (tracker[fqn]?.output as { url?: unknown })?.url;
559
+ if (typeof url === "string" && url.length > 0) {
560
+ yield* scopedSession.note(`ready at ${url}`);
561
+ }
562
+ }
553
563
  // Emit immediately so the CLI surfaces the terminal status as soon
554
564
  // as the resource is actually done — instead of batching every
555
565
  // resource's "created"/"updated" event to the end of apply(), which
@@ -1037,12 +1047,12 @@ const executeNode = (
1037
1047
  // Delete each old generation with the provider variant of the
1038
1048
  // mode that created it — after a local ⇄ live switch,
1039
1049
  // `node.provider` (the new mode) cannot tear down the other
1040
- // runtime's instance. `providerMode: undefined` (legacy row or
1041
- // mode-agnostic provider) resolves to the provider as
1042
- // registered.
1050
+ // runtime's instance. Unstamped rows (legacy or written by a
1051
+ // mode-agnostic provider) are physically live, unless their
1052
+ // attrs carry the `dev:` identity marker — see stampedMode.
1043
1053
  const oldProvider = yield* findProviderByType(
1044
1054
  node.resource.Type,
1045
- old.providerMode,
1055
+ stampedMode(old),
1046
1056
  );
1047
1057
  yield* oldProvider
1048
1058
  .delete({
@@ -1813,8 +1823,9 @@ const collectGarbage = Effect.fn(function* (
1813
1823
  downstream: node.downstream,
1814
1824
  props: node.state.props,
1815
1825
  attr: node.state.attr,
1816
- // Plan resolved this provider for the row's persisted
1817
- // `providerMode` (see the deletions builder in Plan.ts).
1826
+ // Plan resolved this provider for the row's persisted (or
1827
+ // marker-inferred) `providerMode` (see the deletions builder
1828
+ // in Plan.ts).
1818
1829
  provider: node.provider,
1819
1830
  providerMode: node.state.providerMode,
1820
1831
  }
@@ -1831,10 +1842,12 @@ const collectGarbage = Effect.fn(function* (
1831
1842
  // rows (see the deletions builder in Plan.ts); this guards
1832
1843
  // the replaced-chain generations that bypass plan. The old
1833
1844
  // generation is torn down with the provider variant of the
1834
- // mode that created it (local ⇄ live replacements).
1845
+ // mode that created it (local ⇄ live replacements);
1846
+ // unstamped rows are physically live unless their attrs
1847
+ // carry the `dev:` identity marker (see stampedMode).
1835
1848
  provider: yield* tryFindProviderByType(
1836
1849
  node.old.resourceType,
1837
- node.old.providerMode,
1850
+ stampedMode(node.old),
1838
1851
  ).pipe(
1839
1852
  Effect.flatMap(
1840
1853
  Option.match({
@@ -40,13 +40,10 @@ const LOCKED_METHODS = new Set(["read", "login", "logout", "configure"]);
40
40
  const INTERACTIVE_METHODS = new Set(["login", "configure"]);
41
41
  const interactiveMutex = Semaphore.makeUnsafe(1);
42
42
 
43
- export class AuthError extends Schema.TaggedErrorClass<AuthError>()(
44
- "AuthError",
45
- {
46
- message: Schema.String,
47
- cause: Schema.optional(Schema.Defect()),
48
- },
49
- ) {}
43
+ export class AuthError extends Schema.TaggedError<AuthError>()("AuthError", {
44
+ message: Schema.String,
45
+ cause: Schema.optional(Schema.Defect()),
46
+ }) {}
50
47
 
51
48
  export class AuthProviders extends Context.Service<
52
49
  AuthProviders,