@alchemy.run/modal 0.0.0 → 2.0.0-beta.87

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 (499) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +96 -4
  3. package/lib/App.d.ts +143 -0
  4. package/lib/App.d.ts.map +1 -0
  5. package/lib/App.js +198 -0
  6. package/lib/App.js.map +1 -0
  7. package/lib/AuthProvider.d.ts +53 -0
  8. package/lib/AuthProvider.d.ts.map +1 -0
  9. package/lib/AuthProvider.js +209 -0
  10. package/lib/AuthProvider.js.map +1 -0
  11. package/lib/BindingHttp.d.ts +56 -0
  12. package/lib/BindingHttp.d.ts.map +1 -0
  13. package/lib/BindingHttp.js +50 -0
  14. package/lib/BindingHttp.js.map +1 -0
  15. package/lib/Blob.d.ts +34 -0
  16. package/lib/Blob.d.ts.map +1 -0
  17. package/lib/Blob.js +59 -0
  18. package/lib/Blob.js.map +1 -0
  19. package/lib/Bootstrap.d.ts +8 -0
  20. package/lib/Bootstrap.d.ts.map +1 -0
  21. package/lib/Bootstrap.js +26 -0
  22. package/lib/Bootstrap.js.map +1 -0
  23. package/lib/Cbor.d.ts +10 -0
  24. package/lib/Cbor.d.ts.map +1 -0
  25. package/lib/Cbor.js +177 -0
  26. package/lib/Cbor.js.map +1 -0
  27. package/lib/ConnectSandbox.d.ts +64 -0
  28. package/lib/ConnectSandbox.d.ts.map +1 -0
  29. package/lib/ConnectSandbox.js +33 -0
  30. package/lib/ConnectSandbox.js.map +1 -0
  31. package/lib/Container.d.ts +124 -0
  32. package/lib/Container.d.ts.map +1 -0
  33. package/lib/Container.js +1 -0
  34. package/lib/Container.js.map +1 -0
  35. package/lib/Contributions.d.ts +7 -0
  36. package/lib/Contributions.d.ts.map +1 -0
  37. package/lib/Contributions.js +6 -0
  38. package/lib/Contributions.js.map +1 -0
  39. package/lib/CreateDict.d.ts +83 -0
  40. package/lib/CreateDict.d.ts.map +1 -0
  41. package/lib/CreateDict.js +3 -0
  42. package/lib/CreateDict.js.map +1 -0
  43. package/lib/CreateDictHttp.d.ts +33 -0
  44. package/lib/CreateDictHttp.d.ts.map +1 -0
  45. package/lib/CreateDictHttp.js +67 -0
  46. package/lib/CreateDictHttp.js.map +1 -0
  47. package/lib/CreateImage.d.ts +98 -0
  48. package/lib/CreateImage.d.ts.map +1 -0
  49. package/lib/CreateImage.js +3 -0
  50. package/lib/CreateImage.js.map +1 -0
  51. package/lib/CreateImageHttp.d.ts +51 -0
  52. package/lib/CreateImageHttp.d.ts.map +1 -0
  53. package/lib/CreateImageHttp.js +87 -0
  54. package/lib/CreateImageHttp.js.map +1 -0
  55. package/lib/CreateQueue.d.ts +83 -0
  56. package/lib/CreateQueue.d.ts.map +1 -0
  57. package/lib/CreateQueue.js +3 -0
  58. package/lib/CreateQueue.js.map +1 -0
  59. package/lib/CreateQueueHttp.d.ts +31 -0
  60. package/lib/CreateQueueHttp.d.ts.map +1 -0
  61. package/lib/CreateQueueHttp.js +67 -0
  62. package/lib/CreateQueueHttp.js.map +1 -0
  63. package/lib/CreateSandbox.d.ts +186 -0
  64. package/lib/CreateSandbox.d.ts.map +1 -0
  65. package/lib/CreateSandbox.js +3 -0
  66. package/lib/CreateSandbox.js.map +1 -0
  67. package/lib/CreateSandboxHttp.d.ts +17 -0
  68. package/lib/CreateSandboxHttp.d.ts.map +1 -0
  69. package/lib/CreateSandboxHttp.js +117 -0
  70. package/lib/CreateSandboxHttp.js.map +1 -0
  71. package/lib/CreateSecret.d.ts +95 -0
  72. package/lib/CreateSecret.d.ts.map +1 -0
  73. package/lib/CreateSecret.js +3 -0
  74. package/lib/CreateSecret.js.map +1 -0
  75. package/lib/CreateSecretHttp.d.ts +24 -0
  76. package/lib/CreateSecretHttp.d.ts.map +1 -0
  77. package/lib/CreateSecretHttp.js +60 -0
  78. package/lib/CreateSecretHttp.js.map +1 -0
  79. package/lib/CreateVolume.d.ts +84 -0
  80. package/lib/CreateVolume.d.ts.map +1 -0
  81. package/lib/CreateVolume.js +3 -0
  82. package/lib/CreateVolume.js.map +1 -0
  83. package/lib/CreateVolumeHttp.d.ts +32 -0
  84. package/lib/CreateVolumeHttp.d.ts.map +1 -0
  85. package/lib/CreateVolumeHttp.js +69 -0
  86. package/lib/CreateVolumeHttp.js.map +1 -0
  87. package/lib/Credentials.d.ts +32 -0
  88. package/lib/Credentials.d.ts.map +1 -0
  89. package/lib/Credentials.js +44 -0
  90. package/lib/Credentials.js.map +1 -0
  91. package/lib/Dict.d.ts +147 -0
  92. package/lib/Dict.d.ts.map +1 -0
  93. package/lib/Dict.js +175 -0
  94. package/lib/Dict.js.map +1 -0
  95. package/lib/DictClient.d.ts +55 -0
  96. package/lib/DictClient.d.ts.map +1 -0
  97. package/lib/DictClient.js +89 -0
  98. package/lib/DictClient.js.map +1 -0
  99. package/lib/Domain.d.ts +86 -0
  100. package/lib/Domain.d.ts.map +1 -0
  101. package/lib/Domain.js +113 -0
  102. package/lib/Domain.js.map +1 -0
  103. package/lib/Endpoint.d.ts +181 -0
  104. package/lib/Endpoint.d.ts.map +1 -0
  105. package/lib/Endpoint.js +283 -0
  106. package/lib/Endpoint.js.map +1 -0
  107. package/lib/Environment.d.ts +174 -0
  108. package/lib/Environment.d.ts.map +1 -0
  109. package/lib/Environment.js +244 -0
  110. package/lib/Environment.js.map +1 -0
  111. package/lib/FetchServer.d.ts +105 -0
  112. package/lib/FetchServer.d.ts.map +1 -0
  113. package/lib/FetchServer.js +3 -0
  114. package/lib/FetchServer.js.map +1 -0
  115. package/lib/FetchServerHttp.d.ts +21 -0
  116. package/lib/FetchServerHttp.d.ts.map +1 -0
  117. package/lib/FetchServerHttp.js +84 -0
  118. package/lib/FetchServerHttp.js.map +1 -0
  119. package/lib/Function.d.ts +236 -0
  120. package/lib/Function.d.ts.map +1 -0
  121. package/lib/Function.js +273 -0
  122. package/lib/Function.js.map +1 -0
  123. package/lib/FunctionAutoscaler.d.ts +99 -0
  124. package/lib/FunctionAutoscaler.d.ts.map +1 -0
  125. package/lib/FunctionAutoscaler.js +136 -0
  126. package/lib/FunctionAutoscaler.js.map +1 -0
  127. package/lib/FunctionTarget.d.ts +61 -0
  128. package/lib/FunctionTarget.d.ts.map +1 -0
  129. package/lib/FunctionTarget.js +136 -0
  130. package/lib/FunctionTarget.js.map +1 -0
  131. package/lib/Image.d.ts +159 -0
  132. package/lib/Image.d.ts.map +1 -0
  133. package/lib/Image.js +203 -0
  134. package/lib/Image.js.map +1 -0
  135. package/lib/ImageBuild.d.ts +108 -0
  136. package/lib/ImageBuild.d.ts.map +1 -0
  137. package/lib/ImageBuild.js +157 -0
  138. package/lib/ImageBuild.js.map +1 -0
  139. package/lib/ImagePlan.d.ts +31 -0
  140. package/lib/ImagePlan.d.ts.map +1 -0
  141. package/lib/ImagePlan.js +70 -0
  142. package/lib/ImagePlan.js.map +1 -0
  143. package/lib/InferEnv.d.ts +26 -0
  144. package/lib/InferEnv.d.ts.map +1 -0
  145. package/lib/InferEnv.js +1 -0
  146. package/lib/InferEnv.js.map +1 -0
  147. package/lib/InvokeFunction.d.ts +186 -0
  148. package/lib/InvokeFunction.d.ts.map +1 -0
  149. package/lib/InvokeFunction.js +10 -0
  150. package/lib/InvokeFunction.js.map +1 -0
  151. package/lib/InvokeFunctionHttp.d.ts +39 -0
  152. package/lib/InvokeFunctionHttp.d.ts.map +1 -0
  153. package/lib/InvokeFunctionHttp.js +210 -0
  154. package/lib/InvokeFunctionHttp.js.map +1 -0
  155. package/lib/ModalBindings.d.ts +138 -0
  156. package/lib/ModalBindings.d.ts.map +1 -0
  157. package/lib/ModalBindings.js +223 -0
  158. package/lib/ModalBindings.js.map +1 -0
  159. package/lib/MountBucket.d.ts +80 -0
  160. package/lib/MountBucket.d.ts.map +1 -0
  161. package/lib/MountBucket.js +44 -0
  162. package/lib/MountBucket.js.map +1 -0
  163. package/lib/MountVolume.d.ts +77 -0
  164. package/lib/MountVolume.d.ts.map +1 -0
  165. package/lib/MountVolume.js +41 -0
  166. package/lib/MountVolume.js.map +1 -0
  167. package/lib/Mounts.d.ts +134 -0
  168. package/lib/Mounts.d.ts.map +1 -0
  169. package/lib/Mounts.js +87 -0
  170. package/lib/Mounts.js.map +1 -0
  171. package/lib/PersistentSandbox.d.ts +75 -0
  172. package/lib/PersistentSandbox.d.ts.map +1 -0
  173. package/lib/PersistentSandbox.js +93 -0
  174. package/lib/PersistentSandbox.js.map +1 -0
  175. package/lib/Providers.d.ts +23 -0
  176. package/lib/Providers.d.ts.map +1 -0
  177. package/lib/Providers.js +64 -0
  178. package/lib/Providers.js.map +1 -0
  179. package/lib/Proxy.d.ts +94 -0
  180. package/lib/Proxy.d.ts.map +1 -0
  181. package/lib/Proxy.js +132 -0
  182. package/lib/Proxy.js.map +1 -0
  183. package/lib/Queue.d.ts +147 -0
  184. package/lib/Queue.d.ts.map +1 -0
  185. package/lib/Queue.js +177 -0
  186. package/lib/Queue.js.map +1 -0
  187. package/lib/QueueClient.d.ts +64 -0
  188. package/lib/QueueClient.d.ts.map +1 -0
  189. package/lib/QueueClient.js +73 -0
  190. package/lib/QueueClient.js.map +1 -0
  191. package/lib/ReadApp.d.ts +85 -0
  192. package/lib/ReadApp.d.ts.map +1 -0
  193. package/lib/ReadApp.js +3 -0
  194. package/lib/ReadApp.js.map +1 -0
  195. package/lib/ReadAppHttp.d.ts +26 -0
  196. package/lib/ReadAppHttp.d.ts.map +1 -0
  197. package/lib/ReadAppHttp.js +106 -0
  198. package/lib/ReadAppHttp.js.map +1 -0
  199. package/lib/ReadDict.d.ts +39 -0
  200. package/lib/ReadDict.d.ts.map +1 -0
  201. package/lib/ReadDict.js +3 -0
  202. package/lib/ReadDict.js.map +1 -0
  203. package/lib/ReadDictHttp.d.ts +12 -0
  204. package/lib/ReadDictHttp.d.ts.map +1 -0
  205. package/lib/ReadDictHttp.js +23 -0
  206. package/lib/ReadDictHttp.js.map +1 -0
  207. package/lib/ReadFunction.d.ts +73 -0
  208. package/lib/ReadFunction.d.ts.map +1 -0
  209. package/lib/ReadFunction.js +3 -0
  210. package/lib/ReadFunction.js.map +1 -0
  211. package/lib/ReadFunctionHttp.d.ts +25 -0
  212. package/lib/ReadFunctionHttp.d.ts.map +1 -0
  213. package/lib/ReadFunctionHttp.js +63 -0
  214. package/lib/ReadFunctionHttp.js.map +1 -0
  215. package/lib/ReadQueue.d.ts +39 -0
  216. package/lib/ReadQueue.d.ts.map +1 -0
  217. package/lib/ReadQueue.js +3 -0
  218. package/lib/ReadQueue.js.map +1 -0
  219. package/lib/ReadQueueHttp.d.ts +12 -0
  220. package/lib/ReadQueueHttp.d.ts.map +1 -0
  221. package/lib/ReadQueueHttp.js +23 -0
  222. package/lib/ReadQueueHttp.js.map +1 -0
  223. package/lib/ReadServer.d.ts +72 -0
  224. package/lib/ReadServer.d.ts.map +1 -0
  225. package/lib/ReadServer.js +3 -0
  226. package/lib/ReadServer.js.map +1 -0
  227. package/lib/ReadServerHttp.d.ts +25 -0
  228. package/lib/ReadServerHttp.d.ts.map +1 -0
  229. package/lib/ReadServerHttp.js +70 -0
  230. package/lib/ReadServerHttp.js.map +1 -0
  231. package/lib/ReadVolume.d.ts +40 -0
  232. package/lib/ReadVolume.d.ts.map +1 -0
  233. package/lib/ReadVolume.js +3 -0
  234. package/lib/ReadVolume.js.map +1 -0
  235. package/lib/ReadVolumeHttp.d.ts +12 -0
  236. package/lib/ReadVolumeHttp.d.ts.map +1 -0
  237. package/lib/ReadVolumeHttp.js +24 -0
  238. package/lib/ReadVolumeHttp.js.map +1 -0
  239. package/lib/ReadWriteDict.d.ts +39 -0
  240. package/lib/ReadWriteDict.d.ts.map +1 -0
  241. package/lib/ReadWriteDict.js +3 -0
  242. package/lib/ReadWriteDict.js.map +1 -0
  243. package/lib/ReadWriteDictHttp.d.ts +12 -0
  244. package/lib/ReadWriteDictHttp.d.ts.map +1 -0
  245. package/lib/ReadWriteDictHttp.js +23 -0
  246. package/lib/ReadWriteDictHttp.js.map +1 -0
  247. package/lib/ReadWriteQueue.d.ts +40 -0
  248. package/lib/ReadWriteQueue.d.ts.map +1 -0
  249. package/lib/ReadWriteQueue.js +3 -0
  250. package/lib/ReadWriteQueue.js.map +1 -0
  251. package/lib/ReadWriteQueueHttp.d.ts +12 -0
  252. package/lib/ReadWriteQueueHttp.d.ts.map +1 -0
  253. package/lib/ReadWriteQueueHttp.js +23 -0
  254. package/lib/ReadWriteQueueHttp.js.map +1 -0
  255. package/lib/ReadWriteVolume.d.ts +40 -0
  256. package/lib/ReadWriteVolume.d.ts.map +1 -0
  257. package/lib/ReadWriteVolume.js +3 -0
  258. package/lib/ReadWriteVolume.js.map +1 -0
  259. package/lib/ReadWriteVolumeHttp.d.ts +12 -0
  260. package/lib/ReadWriteVolumeHttp.d.ts.map +1 -0
  261. package/lib/ReadWriteVolumeHttp.js +24 -0
  262. package/lib/ReadWriteVolumeHttp.js.map +1 -0
  263. package/lib/RuntimeOwner.d.ts +39 -0
  264. package/lib/RuntimeOwner.d.ts.map +1 -0
  265. package/lib/RuntimeOwner.js +85 -0
  266. package/lib/RuntimeOwner.js.map +1 -0
  267. package/lib/Sandbox.d.ts +215 -0
  268. package/lib/Sandbox.d.ts.map +1 -0
  269. package/lib/Sandbox.js +278 -0
  270. package/lib/Sandbox.js.map +1 -0
  271. package/lib/SandboxClient.d.ts +748 -0
  272. package/lib/SandboxClient.d.ts.map +1 -0
  273. package/lib/SandboxClient.js +710 -0
  274. package/lib/SandboxClient.js.map +1 -0
  275. package/lib/ScaleFunction.d.ts +54 -0
  276. package/lib/ScaleFunction.d.ts.map +1 -0
  277. package/lib/ScaleFunction.js +3 -0
  278. package/lib/ScaleFunction.js.map +1 -0
  279. package/lib/ScaleFunctionHttp.d.ts +21 -0
  280. package/lib/ScaleFunctionHttp.d.ts.map +1 -0
  281. package/lib/ScaleFunctionHttp.js +39 -0
  282. package/lib/ScaleFunctionHttp.js.map +1 -0
  283. package/lib/Secret.d.ts +170 -0
  284. package/lib/Secret.d.ts.map +1 -0
  285. package/lib/Secret.js +196 -0
  286. package/lib/Secret.js.map +1 -0
  287. package/lib/Server.d.ts +155 -0
  288. package/lib/Server.d.ts.map +1 -0
  289. package/lib/Server.js +184 -0
  290. package/lib/Server.js.map +1 -0
  291. package/lib/ServiceUser.d.ts +139 -0
  292. package/lib/ServiceUser.d.ts.map +1 -0
  293. package/lib/ServiceUser.js +210 -0
  294. package/lib/ServiceUser.js.map +1 -0
  295. package/lib/Volume.d.ts +170 -0
  296. package/lib/Volume.d.ts.map +1 -0
  297. package/lib/Volume.js +220 -0
  298. package/lib/Volume.js.map +1 -0
  299. package/lib/VolumeClient.d.ts +53 -0
  300. package/lib/VolumeClient.d.ts.map +1 -0
  301. package/lib/VolumeClient.js +22 -0
  302. package/lib/VolumeClient.js.map +1 -0
  303. package/lib/VolumeFiles.d.ts +94 -0
  304. package/lib/VolumeFiles.d.ts.map +1 -0
  305. package/lib/VolumeFiles.js +139 -0
  306. package/lib/VolumeFiles.js.map +1 -0
  307. package/lib/WebhookToken.d.ts +102 -0
  308. package/lib/WebhookToken.d.ts.map +1 -0
  309. package/lib/WebhookToken.js +176 -0
  310. package/lib/WebhookToken.js.map +1 -0
  311. package/lib/WorkspaceSettings.d.ts +70 -0
  312. package/lib/WorkspaceSettings.d.ts.map +1 -0
  313. package/lib/WorkspaceSettings.js +105 -0
  314. package/lib/WorkspaceSettings.js.map +1 -0
  315. package/lib/WriteApp.d.ts +38 -0
  316. package/lib/WriteApp.d.ts.map +1 -0
  317. package/lib/WriteApp.js +3 -0
  318. package/lib/WriteApp.js.map +1 -0
  319. package/lib/WriteAppHttp.d.ts +23 -0
  320. package/lib/WriteAppHttp.d.ts.map +1 -0
  321. package/lib/WriteAppHttp.js +36 -0
  322. package/lib/WriteAppHttp.js.map +1 -0
  323. package/lib/WriteDict.d.ts +39 -0
  324. package/lib/WriteDict.d.ts.map +1 -0
  325. package/lib/WriteDict.js +3 -0
  326. package/lib/WriteDict.js.map +1 -0
  327. package/lib/WriteDictHttp.d.ts +12 -0
  328. package/lib/WriteDictHttp.d.ts.map +1 -0
  329. package/lib/WriteDictHttp.js +23 -0
  330. package/lib/WriteDictHttp.js.map +1 -0
  331. package/lib/WriteQueue.d.ts +39 -0
  332. package/lib/WriteQueue.d.ts.map +1 -0
  333. package/lib/WriteQueue.js +3 -0
  334. package/lib/WriteQueue.js.map +1 -0
  335. package/lib/WriteQueueHttp.d.ts +12 -0
  336. package/lib/WriteQueueHttp.d.ts.map +1 -0
  337. package/lib/WriteQueueHttp.js +23 -0
  338. package/lib/WriteQueueHttp.js.map +1 -0
  339. package/lib/WriteSecret.d.ts +53 -0
  340. package/lib/WriteSecret.d.ts.map +1 -0
  341. package/lib/WriteSecret.js +3 -0
  342. package/lib/WriteSecret.js.map +1 -0
  343. package/lib/WriteSecretHttp.d.ts +23 -0
  344. package/lib/WriteSecretHttp.d.ts.map +1 -0
  345. package/lib/WriteSecretHttp.js +44 -0
  346. package/lib/WriteSecretHttp.js.map +1 -0
  347. package/lib/WriteVolume.d.ts +39 -0
  348. package/lib/WriteVolume.d.ts.map +1 -0
  349. package/lib/WriteVolume.js +3 -0
  350. package/lib/WriteVolume.js.map +1 -0
  351. package/lib/WriteVolumeHttp.d.ts +12 -0
  352. package/lib/WriteVolumeHttp.d.ts.map +1 -0
  353. package/lib/WriteVolumeHttp.js +24 -0
  354. package/lib/WriteVolumeHttp.js.map +1 -0
  355. package/lib/index.d.ts +80 -0
  356. package/lib/index.d.ts.map +1 -0
  357. package/lib/index.js +78 -0
  358. package/lib/index.js.map +1 -0
  359. package/lib/internal/Declared.d.ts +29 -0
  360. package/lib/internal/Declared.d.ts.map +1 -0
  361. package/lib/internal/Declared.js +31 -0
  362. package/lib/internal/Declared.js.map +1 -0
  363. package/lib/internal/Deploy.d.ts +110 -0
  364. package/lib/internal/Deploy.d.ts.map +1 -0
  365. package/lib/internal/Deploy.js +230 -0
  366. package/lib/internal/Deploy.js.map +1 -0
  367. package/lib/internal/Entrypoint.d.ts +52 -0
  368. package/lib/internal/Entrypoint.d.ts.map +1 -0
  369. package/lib/internal/Entrypoint.js +193 -0
  370. package/lib/internal/Entrypoint.js.map +1 -0
  371. package/lib/internal/Rpc.d.ts +17 -0
  372. package/lib/internal/Rpc.d.ts.map +1 -0
  373. package/lib/internal/Rpc.js +49 -0
  374. package/lib/internal/Rpc.js.map +1 -0
  375. package/lib/internal/RpcAuth.d.ts +41 -0
  376. package/lib/internal/RpcAuth.d.ts.map +1 -0
  377. package/lib/internal/RpcAuth.js +100 -0
  378. package/lib/internal/RpcAuth.js.map +1 -0
  379. package/lib/internal/Runtime.d.ts +127 -0
  380. package/lib/internal/Runtime.d.ts.map +1 -0
  381. package/lib/internal/Runtime.js +246 -0
  382. package/lib/internal/Runtime.js.map +1 -0
  383. package/lib/internal/Tags.d.ts +19 -0
  384. package/lib/internal/Tags.d.ts.map +1 -0
  385. package/lib/internal/Tags.js +33 -0
  386. package/lib/internal/Tags.js.map +1 -0
  387. package/lib/internal/TcpConnect.d.ts +12 -0
  388. package/lib/internal/TcpConnect.d.ts.map +1 -0
  389. package/lib/internal/TcpConnect.js +46 -0
  390. package/lib/internal/TcpConnect.js.map +1 -0
  391. package/lib/internal/Transport.d.ts +13 -0
  392. package/lib/internal/Transport.d.ts.map +1 -0
  393. package/lib/internal/Transport.js +16 -0
  394. package/lib/internal/Transport.js.map +1 -0
  395. package/lib/internal.d.ts +71 -0
  396. package/lib/internal.d.ts.map +1 -0
  397. package/lib/internal.js +102 -0
  398. package/lib/internal.js.map +1 -0
  399. package/package.json +59 -3
  400. package/src/App.ts +262 -0
  401. package/src/AuthProvider.ts +295 -0
  402. package/src/BindingHttp.ts +112 -0
  403. package/src/Blob.ts +71 -0
  404. package/src/Bootstrap.ts +52 -0
  405. package/src/Cbor.ts +158 -0
  406. package/src/ConnectSandbox.ts +99 -0
  407. package/src/Container.ts +121 -0
  408. package/src/Contributions.ts +9 -0
  409. package/src/CreateDict.ts +95 -0
  410. package/src/CreateDictHttp.ts +91 -0
  411. package/src/CreateImage.ts +105 -0
  412. package/src/CreateImageHttp.ts +117 -0
  413. package/src/CreateQueue.ts +95 -0
  414. package/src/CreateQueueHttp.ts +91 -0
  415. package/src/CreateSandbox.ts +228 -0
  416. package/src/CreateSandboxHttp.ts +160 -0
  417. package/src/CreateSecret.ts +109 -0
  418. package/src/CreateSecretHttp.ts +83 -0
  419. package/src/CreateVolume.ts +96 -0
  420. package/src/CreateVolumeHttp.ts +93 -0
  421. package/src/Credentials.ts +74 -0
  422. package/src/Dict.ts +245 -0
  423. package/src/DictClient.ts +166 -0
  424. package/src/Domain.ts +147 -0
  425. package/src/Endpoint.ts +406 -0
  426. package/src/Environment.ts +373 -0
  427. package/src/FetchServer.ts +126 -0
  428. package/src/FetchServerHttp.ts +110 -0
  429. package/src/Function.ts +397 -0
  430. package/src/FunctionAutoscaler.ts +210 -0
  431. package/src/FunctionTarget.ts +181 -0
  432. package/src/Image.ts +281 -0
  433. package/src/ImageBuild.ts +228 -0
  434. package/src/ImagePlan.ts +78 -0
  435. package/src/InferEnv.ts +27 -0
  436. package/src/InvokeFunction.ts +211 -0
  437. package/src/InvokeFunctionHttp.ts +316 -0
  438. package/src/ModalBindings.ts +310 -0
  439. package/src/MountBucket.ts +137 -0
  440. package/src/MountVolume.ts +113 -0
  441. package/src/Mounts.ts +230 -0
  442. package/src/PersistentSandbox.ts +142 -0
  443. package/src/Providers.ts +100 -0
  444. package/src/Proxy.ts +191 -0
  445. package/src/Queue.ts +258 -0
  446. package/src/QueueClient.ts +149 -0
  447. package/src/ReadApp.ts +101 -0
  448. package/src/ReadAppHttp.ts +142 -0
  449. package/src/ReadDict.ts +44 -0
  450. package/src/ReadDictHttp.ts +27 -0
  451. package/src/ReadFunction.ts +107 -0
  452. package/src/ReadFunctionHttp.ts +91 -0
  453. package/src/ReadQueue.ts +44 -0
  454. package/src/ReadQueueHttp.ts +27 -0
  455. package/src/ReadServer.ts +98 -0
  456. package/src/ReadServerHttp.ts +101 -0
  457. package/src/ReadVolume.ts +45 -0
  458. package/src/ReadVolumeHttp.ts +28 -0
  459. package/src/ReadWriteDict.ts +44 -0
  460. package/src/ReadWriteDictHttp.ts +27 -0
  461. package/src/ReadWriteQueue.ts +45 -0
  462. package/src/ReadWriteQueueHttp.ts +27 -0
  463. package/src/ReadWriteVolume.ts +45 -0
  464. package/src/ReadWriteVolumeHttp.ts +28 -0
  465. package/src/RuntimeOwner.ts +111 -0
  466. package/src/Sandbox.ts +402 -0
  467. package/src/SandboxClient.ts +1404 -0
  468. package/src/ScaleFunction.ts +70 -0
  469. package/src/ScaleFunctionHttp.ts +54 -0
  470. package/src/Secret.ts +296 -0
  471. package/src/Server.ts +285 -0
  472. package/src/ServiceUser.ts +295 -0
  473. package/src/Volume.ts +320 -0
  474. package/src/VolumeClient.ts +108 -0
  475. package/src/VolumeFiles.ts +194 -0
  476. package/src/WebhookToken.ts +230 -0
  477. package/src/WorkspaceSettings.ts +160 -0
  478. package/src/WriteApp.ts +43 -0
  479. package/src/WriteAppHttp.ts +51 -0
  480. package/src/WriteDict.ts +44 -0
  481. package/src/WriteDictHttp.ts +27 -0
  482. package/src/WriteQueue.ts +44 -0
  483. package/src/WriteQueueHttp.ts +27 -0
  484. package/src/WriteSecret.ts +60 -0
  485. package/src/WriteSecretHttp.ts +56 -0
  486. package/src/WriteVolume.ts +44 -0
  487. package/src/WriteVolumeHttp.ts +28 -0
  488. package/src/globals.d.ts +2 -0
  489. package/src/index.ts +85 -0
  490. package/src/internal/Declared.ts +80 -0
  491. package/src/internal/Deploy.ts +309 -0
  492. package/src/internal/Entrypoint.ts +198 -0
  493. package/src/internal/Rpc.ts +59 -0
  494. package/src/internal/RpcAuth.ts +132 -0
  495. package/src/internal/Runtime.ts +386 -0
  496. package/src/internal/Tags.ts +44 -0
  497. package/src/internal/TcpConnect.ts +78 -0
  498. package/src/internal/Transport.ts +25 -0
  499. package/src/internal.ts +147 -0
@@ -0,0 +1,89 @@
1
+ import * as dict from "@distilled.cloud/modal/dict";
2
+ import * as Effect from "effect/Effect";
3
+ import { decodeJson, encodeJson } from "./BindingHttp.js";
4
+ import { operations } from "./internal.js";
5
+ /** The dict operations the clients call, resolved by `ModalBindings.withCredentials`. */
6
+ export const DictOps = operations({
7
+ clearDict: dict.clearDict,
8
+ dictContains: dict.dictContains,
9
+ dictContents: dict.dictContents,
10
+ dictLen: dict.dictLen,
11
+ dictPop: dict.dictPop,
12
+ getDict: dict.getDict,
13
+ updateDict: dict.updateDict,
14
+ });
15
+ export const makeReadDictClient = (dictId, ops) => ({
16
+ dictId,
17
+ get: (key) => Effect.gen(function* () {
18
+ const encodedKey = yield* encodeJson(key);
19
+ const id = yield* dictId;
20
+ const response = yield* ops.getDict({
21
+ dictId: id,
22
+ key: encodedKey,
23
+ });
24
+ return response.found && response.value !== undefined
25
+ ? yield* decodeJson(response.value)
26
+ : undefined;
27
+ }),
28
+ contains: (key) => Effect.gen(function* () {
29
+ const encodedKey = yield* encodeJson(key);
30
+ const id = yield* dictId;
31
+ const response = yield* ops.dictContains({
32
+ dictId: id,
33
+ key: encodedKey,
34
+ });
35
+ return response.found ?? false;
36
+ }),
37
+ len: () => Effect.gen(function* () {
38
+ const id = yield* dictId;
39
+ const response = yield* ops.dictLen({ dictId: id });
40
+ return response.len ?? 0;
41
+ }),
42
+ entries: () => Effect.gen(function* () {
43
+ const id = yield* dictId;
44
+ const { items } = yield* ops.dictContents({
45
+ dictId: id,
46
+ keys: true,
47
+ values: true,
48
+ });
49
+ return yield* Effect.forEach(items, (entry) => Effect.all([decodeJson(entry.key ?? ""), decodeJson(entry.value ?? "")]));
50
+ }),
51
+ });
52
+ export const makeWriteDictClient = (dictId, ops) => ({
53
+ dictId,
54
+ put: (key, value, options = {}) => Effect.gen(function* () {
55
+ const encodedKey = yield* encodeJson(key);
56
+ const id = yield* dictId;
57
+ const response = yield* ops.updateDict({
58
+ dictId: id,
59
+ updates: [{ key: encodedKey, value: yield* encodeJson(value) }],
60
+ ifNotExists: options.ifNotExists,
61
+ });
62
+ return options.ifNotExists ? (response.created ?? false) : true;
63
+ }),
64
+ update: (entries) => Effect.gen(function* () {
65
+ const updates = yield* Effect.forEach([...entries], ([key, value]) => Effect.all({ key: encodeJson(key), value: encodeJson(value) }));
66
+ const id = yield* dictId;
67
+ yield* ops.updateDict({ dictId: id, updates });
68
+ }),
69
+ pop: (key) => Effect.gen(function* () {
70
+ const encodedKey = yield* encodeJson(key);
71
+ const id = yield* dictId;
72
+ const response = yield* ops.dictPop({
73
+ dictId: id,
74
+ key: encodedKey,
75
+ });
76
+ return response.found && response.value !== undefined
77
+ ? yield* decodeJson(response.value)
78
+ : undefined;
79
+ }),
80
+ clear: () => Effect.gen(function* () {
81
+ const id = yield* dictId;
82
+ yield* ops.clearDict({ dictId: id });
83
+ }),
84
+ });
85
+ export const makeReadWriteDictClient = (dictId, ops) => ({
86
+ ...makeReadDictClient(dictId, ops),
87
+ ...makeWriteDictClient(dictId, ops),
88
+ });
89
+ //# sourceMappingURL=DictClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DictClient.js","sources":["../src/DictClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,6BAA6B,CAAC;AAEpD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,UAAU,EAA0B,MAAM,kBAAkB,CAAC;AAClF,OAAO,EAAgB,UAAU,EAAE,MAAM,eAAe,CAAC;AAEzD,yFAAyF;AACzF,MAAM,CAAC,MAAM,OAAO,GAAG,UAAU,CAAC;IAChC,SAAS,EAAE,IAAI,CAAC,SAAS;IACzB,YAAY,EAAE,IAAI,CAAC,YAAY;IAC/B,YAAY,EAAE,IAAI,CAAC,YAAY;IAC/B,OAAO,EAAE,IAAI,CAAC,OAAO;IACrB,OAAO,EAAE,IAAI,CAAC,OAAO;IACrB,OAAO,EAAE,IAAI,CAAC,OAAO;IACrB,UAAU,EAAE,IAAI,CAAC,UAAU;CAC5B,CAAC,CAAC;AAsDH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,MAA6B,EAC7B,GAAY,EACI,EAAE,CAAC,CAAC;IACpB,MAAM;IACN,GAAG,EAAE,CAAI,GAAY,EAAE,EAAE,CACvB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC1C,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC;QACzB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;YAClC,MAAM,EAAE,EAAE;YACV,GAAG,EAAE,UAAU;SAChB,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS;YACnD,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAI,QAAQ,CAAC,KAAK,CAAC;YACtC,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC,CAAC;IACJ,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAChB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC1C,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC;QACzB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC;YACvC,MAAM,EAAE,EAAE;YACV,GAAG,EAAE,UAAU;SAChB,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,KAAK,IAAI,KAAK,CAAC;IACjC,CAAC,CAAC;IACJ,GAAG,EAAE,GAAG,EAAE,CACR,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC;QACzB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QACpD,OAAO,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;IAC3B,CAAC,CAAC;IACJ,OAAO,EAAE,GAAM,EAAE,CACf,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC;QACzB,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC;YACxC,MAAM,EAAE,EAAE;YACV,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,IAAI;SACb,CAAC,CAAC;QACH,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAC5C,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,UAAU,CAAI,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAU,CAAC,CACrF,CAAC;IACJ,CAAC,CAAC;CACL,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,MAA6B,EAC7B,GAAY,EACK,EAAE,CAAC,CAAC;IACrB,MAAM;IACN,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE,CAChC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC1C,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC;QACzB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC;YACrC,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/D,WAAW,EAAE,OAAO,CAAC,WAAW;SACjC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClE,CAAC,CAAC;IACJ,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAClB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CACnE,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAC/D,CAAC;QACF,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC;QACzB,KAAK,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IACjD,CAAC,CAAC;IACJ,GAAG,EAAE,CAAI,GAAY,EAAE,EAAE,CACvB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC1C,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC;QACzB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;YAClC,MAAM,EAAE,EAAE;YACV,GAAG,EAAE,UAAU;SAChB,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS;YACnD,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAI,QAAQ,CAAC,KAAK,CAAC;YACtC,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC,CAAC;IACJ,KAAK,EAAE,GAAG,EAAE,CACV,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC;QACzB,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;IACvC,CAAC,CAAC;CACL,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,MAA6B,EAC7B,GAAY,EACS,EAAE,CAAC,CAAC;IACzB,GAAG,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC;IAClC,GAAG,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC;CACpC,CAAC,CAAC"}
@@ -0,0 +1,86 @@
1
+ import * as domain from "@distilled.cloud/modal/domain";
2
+ import * as Provider from "alchemy/Provider";
3
+ import { Resource } from "alchemy/Resource";
4
+ import * as Effect from "effect/Effect";
5
+ import type { Providers } from "./Providers.ts";
6
+ declare const DomainUnexpectedResponse_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
7
+ readonly _tag: "Modal.DomainUnexpectedResponse";
8
+ } & Readonly<A>;
9
+ export declare class DomainUnexpectedResponse extends DomainUnexpectedResponse_base<{
10
+ readonly message: string;
11
+ }> {
12
+ }
13
+ export interface DomainProps {
14
+ /** The domain name (`agents.example.com`). Changing it replaces the domain. */
15
+ domainName: string;
16
+ }
17
+ /** A DNS record to create at your DNS provider. */
18
+ export interface DomainDnsRecord {
19
+ readonly type: string;
20
+ readonly name: string;
21
+ readonly value: string;
22
+ }
23
+ export interface DomainAttributes {
24
+ /** Domain ID. */
25
+ domainId: string;
26
+ /** The domain name. */
27
+ domainName: string;
28
+ /** Records to create at your DNS provider before the certificate issues. */
29
+ dnsRecords: DomainDnsRecord[];
30
+ /** `pending`, `issued`, `failed` or `revoked`. */
31
+ certificateStatus: string;
32
+ }
33
+ /**
34
+ * A custom domain for Modal web endpoints, sandbox tunnels
35
+ * (`customDomain` on `create`) and model endpoints. Create the records in
36
+ * `dnsRecords` at your DNS provider; Modal issues the certificate once they
37
+ * resolve.
38
+ *
39
+ * :::caution
40
+ * Modal has no API to remove a domain. Destroying this resource stops
41
+ * tracking it; remove the domain in the Modal dashboard.
42
+ * :::
43
+ *
44
+ * ### Adding a domain
45
+ * **Example:** Register a domain and output its DNS records
46
+ * ```typescript
47
+ * // alchemy.run.ts
48
+ * import * as Modal from "@alchemy.run/modal";
49
+ * import * as Alchemy from "alchemy";
50
+ * import * as Effect from "effect/Effect";
51
+ *
52
+ * export default Alchemy.Stack(
53
+ * "Agents",
54
+ * { providers: Modal.providers() },
55
+ * Effect.gen(function* () {
56
+ * const agents = yield* Modal.Domain("Agents", { domainName: "agents.example.com" });
57
+ * return { records: agents.dnsRecords, certificate: agents.certificateStatus };
58
+ * }),
59
+ * );
60
+ * ```
61
+ *
62
+ * ### Serving a sandbox on it
63
+ * **Example:** Tunnels on the custom domain
64
+ * ```typescript
65
+ * const sandbox = yield* sandboxes.create({
66
+ * encryptedPorts: [3000],
67
+ * customDomain: "agents.example.com",
68
+ * });
69
+ * ```
70
+ *
71
+ * @resource
72
+ * @product Domain
73
+ */
74
+ export declare const Domain: import("alchemy/Resource").ResourceConstructor<Domain, Providers> & Effect.Effect<import("alchemy/Resource").ResourceConstructor<Domain, never>, never, never> & {
75
+ Self: import("alchemy/Self").Self<Domain>;
76
+ Provider: Provider.Provider<Domain>;
77
+ Aliases: readonly string[] | undefined;
78
+ ref(id: string, options?: {
79
+ stage?: string;
80
+ stack?: string;
81
+ }): Effect.Effect<Domain, never, never>;
82
+ } & ((id: string, props: import("./internal/Declared.ts").DeclaredProps<DomainProps>) => Effect.Effect<Domain, never, Providers>);
83
+ export type Domain = Resource<"Modal.Domain", DomainProps, DomainAttributes, never, Providers>;
84
+ export declare const DomainProvider: () => import("effect/Layer").Layer<Provider.Provider<Domain>, never, domain.ModalOpContext>;
85
+ export {};
86
+ //# sourceMappingURL=Domain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Domain.d.ts","sources":["../src/Domain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAC;AAExD,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;;;;AAEhD,qBAAa,wBAAyB,SAAQ,8BAAmD;IAC/F,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;CAAG;AAEL,MAAM,WAAW,WAAW;IAC1B,+EAA+E;IAC/E,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,mDAAmD;AACnD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,iBAAiB;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,uBAAuB;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,kDAAkD;IAClD,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,eAAO,MAAM,MAAM;;;;;;;;iIAAyD,CAAC;AAE7E,MAAM,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,EAAE,WAAW,EAAE,gBAAgB,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;AAoB/F,eAAO,MAAM,cAAc,6FA+CxB,CAAC"}
package/lib/Domain.js ADDED
@@ -0,0 +1,113 @@
1
+ import * as domain from "@distilled.cloud/modal/domain";
2
+ import { isResolved } from "alchemy/Diff";
3
+ import * as Provider from "alchemy/Provider";
4
+ import { Resource } from "alchemy/Resource";
5
+ import * as Data from "effect/Data";
6
+ import * as Effect from "effect/Effect";
7
+ import { declarable } from "./internal/Declared.js";
8
+ export class DomainUnexpectedResponse extends Data.TaggedError("Modal.DomainUnexpectedResponse") {
9
+ }
10
+ /**
11
+ * A custom domain for Modal web endpoints, sandbox tunnels
12
+ * (`customDomain` on `create`) and model endpoints. Create the records in
13
+ * `dnsRecords` at your DNS provider; Modal issues the certificate once they
14
+ * resolve.
15
+ *
16
+ * :::caution
17
+ * Modal has no API to remove a domain. Destroying this resource stops
18
+ * tracking it; remove the domain in the Modal dashboard.
19
+ * :::
20
+ *
21
+ * ### Adding a domain
22
+ * **Example:** Register a domain and output its DNS records
23
+ * ```typescript
24
+ * // alchemy.run.ts
25
+ * import * as Modal from "@alchemy.run/modal";
26
+ * import * as Alchemy from "alchemy";
27
+ * import * as Effect from "effect/Effect";
28
+ *
29
+ * export default Alchemy.Stack(
30
+ * "Agents",
31
+ * { providers: Modal.providers() },
32
+ * Effect.gen(function* () {
33
+ * const agents = yield* Modal.Domain("Agents", { domainName: "agents.example.com" });
34
+ * return { records: agents.dnsRecords, certificate: agents.certificateStatus };
35
+ * }),
36
+ * );
37
+ * ```
38
+ *
39
+ * ### Serving a sandbox on it
40
+ * **Example:** Tunnels on the custom domain
41
+ * ```typescript
42
+ * const sandbox = yield* sandboxes.create({
43
+ * encryptedPorts: [3000],
44
+ * customDomain: "agents.example.com",
45
+ * });
46
+ * ```
47
+ *
48
+ * @resource
49
+ * @product Domain
50
+ */
51
+ export const Domain = declarable()(Resource("Modal.Domain"));
52
+ const STATUS = {
53
+ CERTIFICATE_STATUS_PENDING: "pending",
54
+ CERTIFICATE_STATUS_ISSUED: "issued",
55
+ CERTIFICATE_STATUS_FAILED: "failed",
56
+ CERTIFICATE_STATUS_REVOKED: "revoked",
57
+ };
58
+ const toAttrs = (d) => ({
59
+ domainId: d.domainId ?? "",
60
+ domainName: d.domainName ?? "",
61
+ dnsRecords: (d.dnsRecords ?? []).map((record) => ({
62
+ type: (record.type ?? "").replace(/^DNS_RECORD_TYPE_/, ""),
63
+ name: record.name ?? "",
64
+ value: record.value ?? "",
65
+ })),
66
+ certificateStatus: STATUS[d.certificateStatus ?? ""] ?? "pending",
67
+ });
68
+ export const DomainProvider = () => Provider.effect(Domain, Effect.gen(function* () {
69
+ const observe = Effect.fn(function* (domainName) {
70
+ const { domains } = yield* domain.listDomain({});
71
+ return (domains ?? []).find((d) => d.domainName === domainName);
72
+ });
73
+ return {
74
+ stables: ["domainId", "domainName"],
75
+ diff: Effect.fn(function* ({ news, olds }) {
76
+ if (!isResolved(news))
77
+ return undefined;
78
+ return news.domainName !== olds?.domainName
79
+ ? { action: "replace" }
80
+ : undefined;
81
+ }),
82
+ read: Effect.fn(function* ({ olds, output }) {
83
+ const name = output?.domainName ?? olds?.domainName;
84
+ if (!name)
85
+ return undefined;
86
+ const found = yield* observe(name);
87
+ return found ? toAttrs(found) : undefined;
88
+ }),
89
+ reconcile: Effect.fn(function* ({ news, session }) {
90
+ // Observe, then ensure; refresh the certificate status either way.
91
+ let found = yield* observe(news.domainName);
92
+ if (!found) {
93
+ yield* session.note(`Adding domain ${news.domainName}...`);
94
+ yield* domain
95
+ .createDomain({ domainName: news.domainName })
96
+ .pipe(Effect.catchTag("DomainAlreadyExists", () => Effect.void));
97
+ found = yield* observe(news.domainName);
98
+ }
99
+ if (!found?.domainId) {
100
+ return yield* new DomainUnexpectedResponse({
101
+ message: `Modal domain ${news.domainName} was not listed after create`,
102
+ });
103
+ }
104
+ const verified = yield* domain
105
+ .verifyDomainCertificate({ domainId: found.domainId })
106
+ .pipe(Effect.catchTag("DomainNotFound", () => Effect.succeed({ domain: found })));
107
+ return toAttrs(verified.domain ?? found);
108
+ }),
109
+ // Modal has no domain delete RPC; see the caution in the JSDoc.
110
+ delete: () => Effect.void,
111
+ };
112
+ }));
113
+ //# sourceMappingURL=Domain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Domain.js","sources":["../src/Domain.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,181 @@
1
+ import * as endpoint from "@distilled.cloud/modal/endpoint";
2
+ import * as Provider from "alchemy/Provider";
3
+ import { Resource } from "alchemy/Resource";
4
+ import * as Effect from "effect/Effect";
5
+ import * as Redacted from "effect/Redacted";
6
+ import { type EnvironmentInput } from "./internal.ts";
7
+ import type { Providers } from "./Providers.ts";
8
+ declare const EndpointProvisioningFailed_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
9
+ readonly _tag: "Modal.EndpointProvisioningFailed";
10
+ } & Readonly<A>;
11
+ /** Provisioning failed, was cancelled, or didn't finish in time. */
12
+ export declare class EndpointProvisioningFailed extends EndpointProvisioningFailed_base<{
13
+ readonly endpointId: string;
14
+ readonly status: string;
15
+ readonly message: string;
16
+ }> {
17
+ }
18
+ /** Where the model comes from. */
19
+ export type EndpointModel =
20
+ /** A model from Modal's catalog, by Hugging Face repo id (`"Qwen/Qwen3-8B"`). */
21
+ {
22
+ readonly repoId: string;
23
+ }
24
+ /** A Hugging Face repo, with a token for gated or private models. */
25
+ | {
26
+ readonly huggingface: string;
27
+ readonly revision?: string;
28
+ readonly token?: string | Redacted.Redacted<string>;
29
+ /** The catalog model it's derived from, for serving defaults. */
30
+ readonly baseModel: string;
31
+ }
32
+ /** Weights on a Modal Volume. */
33
+ | {
34
+ readonly volume: {
35
+ readonly volumeId: string;
36
+ };
37
+ readonly path: string;
38
+ /** The catalog model it's derived from, for serving defaults. */
39
+ readonly baseModel: string;
40
+ };
41
+ export type EndpointApi = "openai-chat-completions" | "openai-responses" | "anthropic-messages";
42
+ export interface EndpointProps {
43
+ /**
44
+ * Endpoint name, unique per environment. If omitted, one is generated from
45
+ * the stack, stage and logical ID. Changing it replaces the endpoint.
46
+ */
47
+ name?: string;
48
+ /** Environment the endpoint runs in. Changing it replaces the endpoint. */
49
+ environment?: EnvironmentInput;
50
+ /** The model to serve. Changing it replaces the endpoint. */
51
+ model: EndpointModel;
52
+ /**
53
+ * APIs the endpoint speaks.
54
+ * @default ["openai-chat-completions"]
55
+ */
56
+ apis?: EndpointApi[];
57
+ /**
58
+ * Inputs the model accepts.
59
+ * @default ["text"]
60
+ */
61
+ inputs?: Array<"text" | "image" | "audio">;
62
+ /**
63
+ * `dedicated` runs on GPUs reserved for you (billed while running);
64
+ * `shared` runs on Modal's shared pool.
65
+ * @default "dedicated"
66
+ */
67
+ servingMode?: "dedicated" | "shared";
68
+ /** Regions the model runs in. @default Modal picks */
69
+ regions?: string[];
70
+ /**
71
+ * The region requests enter through. Changing it replaces the endpoint.
72
+ * @default "us-west"
73
+ */
74
+ routingRegion?: string;
75
+ /**
76
+ * Serve without proxy authentication. Without it, callers send a
77
+ * `Modal.WebhookToken` as `Modal-Key` / `Modal-Secret`, and Modal only
78
+ * creates the endpoint once a webhook token with access to its environment
79
+ * exists (`EndpointProxyTokenRequired` otherwise): deploy the token first.
80
+ * @default false
81
+ */
82
+ unauthenticated?: boolean;
83
+ /** Free-form description. */
84
+ description?: string;
85
+ }
86
+ export interface EndpointAttributes {
87
+ /** Endpoint ID. */
88
+ endpointId: string;
89
+ /** Endpoint name. */
90
+ name: string;
91
+ /** Environment name, or `undefined` for the workspace default. */
92
+ environment: string | undefined;
93
+ /** Base URL of the endpoint's APIs (`…/v1/chat/completions`, `…/v1/messages`). */
94
+ url: string;
95
+ /** Whether callers need a proxy auth token. */
96
+ requiresAuth: boolean;
97
+ }
98
+ /**
99
+ * A Modal Endpoint: a managed model server that speaks the OpenAI Chat
100
+ * Completions, OpenAI Responses or Anthropic Messages API, from a catalog
101
+ * model, a Hugging Face repo, or weights on a Modal Volume.
102
+ *
103
+ * Reconcile waits until the endpoint is live, which takes minutes while the
104
+ * model loads. Modal can't change an endpoint in place, so any change
105
+ * replaces it.
106
+ *
107
+ * :::caution
108
+ * A dedicated endpoint reserves GPUs and is billed while it runs. Destroy it
109
+ * (or use `servingMode: "shared"`) when you're done.
110
+ * :::
111
+ *
112
+ * ### Serving a model
113
+ * **Example:** A catalog model behind the OpenAI API
114
+ * ```typescript
115
+ * import * as Modal from "@alchemy.run/modal";
116
+ *
117
+ * export const Qwen = Modal.Endpoint("Qwen", {
118
+ * model: { repoId: "Qwen/Qwen3-8B" },
119
+ * apis: ["openai-chat-completions", "anthropic-messages"],
120
+ * });
121
+ * ```
122
+ *
123
+ * **Example:** Fine-tuned weights from a Volume
124
+ * ```typescript
125
+ * import * as Modal from "@alchemy.run/modal";
126
+ *
127
+ * export const Weights = Modal.Volume("Weights", {});
128
+ * export const Tuned = Modal.Endpoint("Tuned", {
129
+ * model: { volume: Weights, path: "/checkpoints/final", baseModel: "Qwen/Qwen3-8B" },
130
+ * });
131
+ * ```
132
+ *
133
+ * ### Calling it
134
+ * **Example:** From a Cloudflare Worker with `Modal.FetchServer`
135
+ * ```typescript
136
+ * import * as Cloudflare from "@alchemy.run/cloudflare";
137
+ * import * as Modal from "@alchemy.run/modal";
138
+ * import * as Effect from "effect/Effect";
139
+ * import * as HttpClientRequest from "effect/http/HttpClientRequest";
140
+ * import * as HttpServerResponse from "effect/http/HttpServerResponse";
141
+ * import { Qwen } from "./Qwen.ts";
142
+ *
143
+ * export default class Chat extends Cloudflare.Worker<Chat>()(
144
+ * "Chat",
145
+ * { main: import.meta.url },
146
+ * Effect.gen(function* () {
147
+ * // Creates a webhook token for the Worker and sends it as Modal's proxy auth.
148
+ * const qwen = yield* Modal.FetchServer(Qwen);
149
+ * return {
150
+ * fetch: Effect.gen(function* () {
151
+ * const response = yield* qwen.fetch(
152
+ * HttpClientRequest.post("/v1/chat/completions").pipe(
153
+ * HttpClientRequest.bodyJsonUnsafe({
154
+ * model: "Qwen/Qwen3-8B",
155
+ * messages: [{ role: "user", content: "hi" }],
156
+ * }),
157
+ * ),
158
+ * );
159
+ * return HttpServerResponse.json(yield* response.json);
160
+ * }).pipe(Effect.orDie),
161
+ * };
162
+ * }).pipe(Effect.provide(Modal.FetchServerHttp)),
163
+ * ) {}
164
+ * ```
165
+ *
166
+ * @resource
167
+ * @product Endpoint
168
+ */
169
+ export declare const Endpoint: import("alchemy/Resource").ResourceConstructor<Endpoint, Providers> & Effect.Effect<import("alchemy/Resource").ResourceConstructor<Endpoint, never>, never, never> & {
170
+ Self: import("alchemy/Self").Self<Endpoint>;
171
+ Provider: Provider.Provider<Endpoint>;
172
+ Aliases: readonly string[] | undefined;
173
+ ref(id: string, options?: {
174
+ stage?: string;
175
+ stack?: string;
176
+ }): Effect.Effect<Endpoint, never, never>;
177
+ } & ((id: string, props: import("./internal/Declared.ts").DeclaredProps<EndpointProps>) => Effect.Effect<Endpoint, never, Providers>);
178
+ export type Endpoint = Resource<"Modal.Endpoint", EndpointProps, EndpointAttributes, never, Providers>;
179
+ export declare const EndpointProvider: () => import("effect/Layer").Layer<Provider.Provider<Endpoint>, never, import("alchemy/Stack").Stack | import("alchemy/Stage").Stage | endpoint.ModalOpContext>;
180
+ export {};
181
+ //# sourceMappingURL=Endpoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Endpoint.d.ts","sources":["../src/Endpoint.ts"],"names":[],"mappings":"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"}