@alchemy.run/modal 0.0.0-stage → 2.0.0-beta.86

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 +100 -2
  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 +75 -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
package/lib/Cbor.js ADDED
@@ -0,0 +1,177 @@
1
+ /**
2
+ * Minimal CBOR (RFC 8949) codec for Modal function arguments and results
3
+ * (`DATA_FORMAT_CBOR`): null, booleans, numbers, strings, byte strings,
4
+ * arrays and string-keyed maps. NOT exported from `index.ts`.
5
+ */
6
+ const enc = new TextEncoder();
7
+ const dec = new TextDecoder();
8
+ class Out {
9
+ bytes = [];
10
+ head(major, n) {
11
+ if (n < 24)
12
+ this.bytes.push((major << 5) | n);
13
+ else if (n < 0x100)
14
+ this.bytes.push((major << 5) | 24, n);
15
+ else if (n < 0x10000)
16
+ this.bytes.push((major << 5) | 25, n >> 8, n & 0xff);
17
+ else if (n < 0x100000000)
18
+ this.bytes.push((major << 5) | 26, (n >>> 24) & 0xff, (n >>> 16) & 0xff, (n >>> 8) & 0xff, n & 0xff);
19
+ else {
20
+ const big = BigInt(n);
21
+ this.bytes.push((major << 5) | 27);
22
+ for (let i = 7; i >= 0; i--)
23
+ this.bytes.push(Number((big >> BigInt(i * 8)) & 0xffn));
24
+ }
25
+ }
26
+ }
27
+ const write = (out, value) => {
28
+ if (value === null || value === undefined) {
29
+ out.bytes.push(0xf6);
30
+ }
31
+ else if (value === false) {
32
+ out.bytes.push(0xf4);
33
+ }
34
+ else if (value === true) {
35
+ out.bytes.push(0xf5);
36
+ }
37
+ else if (typeof value === "number") {
38
+ if (Number.isSafeInteger(value)) {
39
+ if (value >= 0)
40
+ out.head(0, value);
41
+ else
42
+ out.head(1, -1 - value);
43
+ }
44
+ else {
45
+ const view = new DataView(new ArrayBuffer(8));
46
+ view.setFloat64(0, value);
47
+ out.bytes.push(0xfb, ...new Uint8Array(view.buffer));
48
+ }
49
+ }
50
+ else if (typeof value === "bigint") {
51
+ write(out, Number(value));
52
+ }
53
+ else if (typeof value === "string") {
54
+ const bytes = enc.encode(value);
55
+ out.head(3, bytes.length);
56
+ out.bytes.push(...bytes);
57
+ }
58
+ else if (value instanceof Uint8Array) {
59
+ out.head(2, value.length);
60
+ out.bytes.push(...value);
61
+ }
62
+ else if (Array.isArray(value)) {
63
+ out.head(4, value.length);
64
+ for (const item of value)
65
+ write(out, item);
66
+ }
67
+ else if (typeof value === "object") {
68
+ const entries = Object.entries(value).filter(([, v]) => v !== undefined);
69
+ out.head(5, entries.length);
70
+ for (const [key, item] of entries) {
71
+ write(out, key);
72
+ write(out, item);
73
+ }
74
+ }
75
+ else {
76
+ throw new TypeError(`Can't encode ${typeof value} as CBOR`);
77
+ }
78
+ };
79
+ /** Encode a value as CBOR. Throws a `TypeError` for functions and symbols. */
80
+ export const encodeCbor = (value) => {
81
+ const out = new Out();
82
+ write(out, value);
83
+ return new Uint8Array(out.bytes);
84
+ };
85
+ /** Decode CBOR. Throws a `RangeError` on malformed input. */
86
+ export const decodeCbor = (bytes) => {
87
+ const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
88
+ let pos = 0;
89
+ const need = (n) => {
90
+ if (pos + n > bytes.length)
91
+ throw new RangeError("Truncated CBOR");
92
+ };
93
+ const length = (info) => {
94
+ if (info < 24)
95
+ return info;
96
+ if (info === 24)
97
+ return (need(1), bytes[pos++]);
98
+ if (info === 25)
99
+ return (need(2), (pos += 2), view.getUint16(pos - 2));
100
+ if (info === 26)
101
+ return (need(4), (pos += 4), view.getUint32(pos - 4));
102
+ if (info === 27)
103
+ return (need(8), (pos += 8), Number(view.getBigUint64(pos - 8)));
104
+ throw new RangeError(`Unsupported CBOR length ${info}`);
105
+ };
106
+ const read = () => {
107
+ need(1);
108
+ const first = bytes[pos++];
109
+ const major = first >> 5;
110
+ const info = first & 31;
111
+ switch (major) {
112
+ case 0:
113
+ return length(info);
114
+ case 1:
115
+ return -1 - length(info);
116
+ case 2: {
117
+ const n = length(info);
118
+ need(n);
119
+ pos += n;
120
+ return bytes.slice(pos - n, pos);
121
+ }
122
+ case 3: {
123
+ const n = length(info);
124
+ need(n);
125
+ pos += n;
126
+ return dec.decode(bytes.subarray(pos - n, pos));
127
+ }
128
+ case 4: {
129
+ const n = length(info);
130
+ return Array.from({ length: n }, read);
131
+ }
132
+ case 5: {
133
+ const n = length(info);
134
+ const out = {};
135
+ for (let i = 0; i < n; i++) {
136
+ const key = read();
137
+ out[String(key)] = read();
138
+ }
139
+ return out;
140
+ }
141
+ case 6:
142
+ length(info);
143
+ return read();
144
+ case 7:
145
+ if (info === 20)
146
+ return false;
147
+ if (info === 21)
148
+ return true;
149
+ if (info === 22 || info === 23)
150
+ return null;
151
+ if (info === 25) {
152
+ need(2);
153
+ pos += 2;
154
+ return view.getFloat16 ? view.getFloat16(pos - 2) : halfToFloat(view.getUint16(pos - 2));
155
+ }
156
+ if (info === 26)
157
+ return (need(4), (pos += 4), view.getFloat32(pos - 4));
158
+ if (info === 27)
159
+ return (need(8), (pos += 8), view.getFloat64(pos - 8));
160
+ throw new RangeError(`Unsupported CBOR simple value ${info}`);
161
+ default:
162
+ throw new RangeError(`Unsupported CBOR major type ${major}`);
163
+ }
164
+ };
165
+ return read();
166
+ };
167
+ const halfToFloat = (h) => {
168
+ const sign = h & 0x8000 ? -1 : 1;
169
+ const exp = (h >> 10) & 0x1f;
170
+ const frac = h & 0x3ff;
171
+ if (exp === 0)
172
+ return sign * 2 ** -14 * (frac / 1024);
173
+ if (exp === 31)
174
+ return frac ? Number.NaN : sign * Number.POSITIVE_INFINITY;
175
+ return sign * 2 ** (exp - 15) * (1 + frac / 1024);
176
+ };
177
+ //# sourceMappingURL=Cbor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Cbor.js","sources":["../src/Cbor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC;AAC9B,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC;AAE9B,MAAM,GAAG;IACP,KAAK,GAAa,EAAE,CAAC;IACrB,IAAI,CAAC,KAAa,EAAE,CAAS;QAC3B,IAAI,CAAC,GAAG,EAAE;YAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;aACzC,IAAI,CAAC,GAAG,KAAK;YAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;aACrD,IAAI,CAAC,GAAG,OAAO;YAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;aACtE,IAAI,CAAC,GAAG,WAAW;YACtB,IAAI,CAAC,KAAK,CAAC,IAAI,CACb,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,EAAE,EACjB,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,EACjB,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,EACjB,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,EAChB,CAAC,GAAG,IAAI,CACT,CAAC;aACC,CAAC;YACJ,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;gBAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;CACF;AAED,MAAM,KAAK,GAAG,CAAC,GAAQ,EAAE,KAAc,EAAQ,EAAE;IAC/C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;SAAM,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;QAC3B,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;SAAM,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC1B,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACrC,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,IAAI,KAAK,IAAI,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;;gBAC9B,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9C,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YAC1B,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACrC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5B,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1B,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;IAC3B,CAAC;SAAM,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;QACvC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1B,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;IAC3B,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1B,KAAK,MAAM,IAAI,IAAI,KAAK;YAAE,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;QACzE,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5B,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,OAAO,EAAE,CAAC;YAClC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAChB,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,SAAS,CAAC,gBAAgB,OAAO,KAAK,UAAU,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC,CAAC;AAEF,8EAA8E;AAC9E,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAc,EAAc,EAAE;IACvD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;IACtB,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAClB,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC,CAAC;AAEF,6DAA6D;AAC7D,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAiB,EAAW,EAAE;IACvD,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAC5E,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE;QACzB,IAAI,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM;YAAE,MAAM,IAAI,UAAU,CAAC,gBAAgB,CAAC,CAAC;IACrE,CAAC,CAAC;IACF,MAAM,MAAM,GAAG,CAAC,IAAY,EAAU,EAAE;QACtC,IAAI,IAAI,GAAG,EAAE;YAAE,OAAO,IAAI,CAAC;QAC3B,IAAI,IAAI,KAAK,EAAE;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,EAAE,CAAE,CAAC,CAAC;QACjD,IAAI,IAAI,KAAK,EAAE;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACvE,IAAI,IAAI,KAAK,EAAE;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACvE,IAAI,IAAI,KAAK,EAAE;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAClF,MAAM,IAAI,UAAU,CAAC,2BAA2B,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC,CAAC;IACF,MAAM,IAAI,GAAG,GAAY,EAAE;QACzB,IAAI,CAAC,CAAC,CAAC,CAAC;QACR,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,CAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,KAAK,IAAI,CAAC,CAAC;QACzB,MAAM,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;QACxB,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,CAAC;gBACJ,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;YACtB,KAAK,CAAC;gBACJ,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAC3B,KAAK,CAAC,EAAE,CAAC;gBACP,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;gBACvB,IAAI,CAAC,CAAC,CAAC,CAAC;gBACR,GAAG,IAAI,CAAC,CAAC;gBACT,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;YACnC,CAAC;YACD,KAAK,CAAC,EAAE,CAAC;gBACP,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;gBACvB,IAAI,CAAC,CAAC,CAAC,CAAC;gBACR,GAAG,IAAI,CAAC,CAAC;gBACT,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAClD,CAAC;YACD,KAAK,CAAC,EAAE,CAAC;gBACP,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;gBACvB,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACzC,CAAC;YACD,KAAK,CAAC,EAAE,CAAC;gBACP,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;gBACvB,MAAM,GAAG,GAA4B,EAAE,CAAC;gBACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC3B,MAAM,GAAG,GAAG,IAAI,EAAE,CAAC;oBACnB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC;gBAC5B,CAAC;gBACD,OAAO,GAAG,CAAC;YACb,CAAC;YACD,KAAK,CAAC;gBACJ,MAAM,CAAC,IAAI,CAAC,CAAC;gBACb,OAAO,IAAI,EAAE,CAAC;YAChB,KAAK,CAAC;gBACJ,IAAI,IAAI,KAAK,EAAE;oBAAE,OAAO,KAAK,CAAC;gBAC9B,IAAI,IAAI,KAAK,EAAE;oBAAE,OAAO,IAAI,CAAC;gBAC7B,IAAI,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,EAAE;oBAAE,OAAO,IAAI,CAAC;gBAC5C,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;oBAChB,IAAI,CAAC,CAAC,CAAC,CAAC;oBACR,GAAG,IAAI,CAAC,CAAC;oBACT,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC3F,CAAC;gBACD,IAAI,IAAI,KAAK,EAAE;oBAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACxE,IAAI,IAAI,KAAK,EAAE;oBAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACxE,MAAM,IAAI,UAAU,CAAC,iCAAiC,IAAI,EAAE,CAAC,CAAC;YAChE;gBACE,MAAM,IAAI,UAAU,CAAC,+BAA+B,KAAK,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC,CAAC;IACF,OAAO,IAAI,EAAE,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,CAAS,EAAU,EAAE;IACxC,MAAM,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IAC7B,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC;IACvB,IAAI,GAAG,KAAK,CAAC;QAAE,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IACtD,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAC3E,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;AACpD,CAAC,CAAC"}
@@ -0,0 +1,64 @@
1
+ import * as Binding from "alchemy/Binding";
2
+ import type { RuntimeContext } from "alchemy/RuntimeContext";
3
+ import * as Effect from "effect/Effect";
4
+ import * as Layer from "effect/Layer";
5
+ import type { PersistentSandbox } from "./PersistentSandbox.ts";
6
+ import { type PersistentSandboxHandleOf } from "./SandboxClient.ts";
7
+ /**
8
+ * A declared `Modal.PersistentSandbox`, reached from a runtime: its id, and
9
+ * the box's session API.
10
+ */
11
+ export interface ConnectedPersistentSandbox extends Omit<PersistentSandboxHandleOf<RuntimeContext>, "persistentSandboxId"> {
12
+ /** The box's id (`ps-…`). */
13
+ readonly persistentSandboxId: Effect.Effect<string>;
14
+ }
15
+ /**
16
+ * Connect to a declared `Modal.PersistentSandbox` from any runtime. The
17
+ * handle follows Modal's session API: `session()` returns the running
18
+ * session, resuming the box from its last session's filesystem when it's
19
+ * paused, and every session is a full sandbox handle (`exec`, `files`,
20
+ * snapshots).
21
+ *
22
+ * ### Use a persistent box
23
+ * **Example:** From a Cloudflare Worker
24
+ * ```typescript
25
+ * import * as Cloudflare from "@alchemy.run/cloudflare";
26
+ * import * as Modal from "@alchemy.run/modal";
27
+ * import * as Effect from "effect/Effect";
28
+ * import * as HttpServerResponse from "effect/http/HttpServerResponse";
29
+ * import { DevBox } from "./DevBox.ts";
30
+ *
31
+ * export default class Shell extends Cloudflare.Worker<Shell>()(
32
+ * "Shell",
33
+ * { main: import.meta.url, compatibility: { flags: ["nodejs_compat"] } },
34
+ * Effect.gen(function* () {
35
+ * const box = yield* Modal.ConnectSandbox(DevBox);
36
+ * return {
37
+ * fetch: Effect.gen(function* () {
38
+ * const session = yield* box.session();
39
+ * const status = yield* session.exec("git status");
40
+ * return HttpServerResponse.text(status.stdout);
41
+ * }).pipe(Effect.orDie),
42
+ * };
43
+ * }).pipe(Effect.provide(Modal.ConnectSandboxHttp)),
44
+ * ) {}
45
+ * ```
46
+ *
47
+ * @binding
48
+ * @product Sandbox
49
+ */
50
+ export interface ConnectSandbox extends Binding.Service<ConnectSandbox, "Modal.ConnectSandbox", (box: PersistentSandbox) => Effect.Effect<ConnectedPersistentSandbox>> {
51
+ }
52
+ export declare const ConnectSandbox: ConnectSandbox;
53
+ /**
54
+ * {@link ConnectSandbox} over Modal's API. Grants the runtime's identity the
55
+ * `contributor` role on the box's environment.
56
+ *
57
+ * @layer
58
+ * @product Sandbox
59
+ * @provides Modal.ConnectSandbox
60
+ */
61
+ export declare const ConnectSandboxHttp: Layer.Layer<ConnectSandbox, never, never>;
62
+ /** {@link ConnectSandboxHttp}: Modal has one transport, so both names provide it. */
63
+ export declare const ConnectSandboxLive: Layer.Layer<ConnectSandbox, never, never>;
64
+ //# sourceMappingURL=ConnectSandbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConnectSandbox.d.ts","sources":["../src/ConnectSandbox.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAEL,KAAK,yBAAyB,EAE/B,MAAM,oBAAoB,CAAC;AAE5B;;;GAGG;AACH,MAAM,WAAW,0BAA2B,SAAQ,IAAI,CACtD,yBAAyB,CAAC,cAAc,CAAC,EACzC,qBAAqB,CACtB;IACC,6BAA6B;IAC7B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;CACrD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,WAAW,cAAe,SAAQ,OAAO,CAAC,OAAO,CACrD,cAAc,EACd,sBAAsB,EACtB,CAAC,GAAG,EAAE,iBAAiB,KAAK,MAAM,CAAC,MAAM,CAAC,0BAA0B,CAAC,CACtE;CAAG;AAEJ,eAAO,MAAM,cAAc,gBAA0D,CAAC;AAEtF;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,2CAoB9B,CAAC;AAEF,qFAAqF;AACrF,eAAO,MAAM,kBAAkB,2CAAqB,CAAC"}
@@ -0,0 +1,33 @@
1
+ import * as Binding from "alchemy/Binding";
2
+ import * as Effect from "effect/Effect";
3
+ import * as Layer from "effect/Layer";
4
+ import { makeModalBinding } from "./BindingHttp.js";
5
+ import { persistentSandboxHandle, SandboxOps, } from "./SandboxClient.js";
6
+ export const ConnectSandbox = Binding.Service("Modal.ConnectSandbox");
7
+ /**
8
+ * {@link ConnectSandbox} over Modal's API. Grants the runtime's identity the
9
+ * `contributor` role on the box's environment.
10
+ *
11
+ * @layer
12
+ * @product Sandbox
13
+ * @provides Modal.ConnectSandbox
14
+ */
15
+ export const ConnectSandboxHttp = Layer.effect(ConnectSandbox, makeModalBinding({
16
+ tag: "Modal.ConnectSandbox",
17
+ operations: SandboxOps,
18
+ role: "contributor",
19
+ make: Effect.fn(function* (box, ops) {
20
+ const persistentSandboxId = yield* box.persistentSandboxId;
21
+ const environment = yield* box.environment;
22
+ // The box's identity resolves at runtime, on each call.
23
+ const handle = Effect.map(Effect.all([persistentSandboxId, environment]), ([id, env]) => persistentSandboxHandle(ops, id, { environment: env }));
24
+ return {
25
+ persistentSandboxId,
26
+ session: () => Effect.flatMap(handle, (h) => h.session()),
27
+ terminate: () => Effect.flatMap(handle, (h) => h.terminate()),
28
+ };
29
+ }),
30
+ }));
31
+ /** {@link ConnectSandboxHttp}: Modal has one transport, so both names provide it. */
32
+ export const ConnectSandboxLive = ConnectSandboxHttp;
33
+ //# sourceMappingURL=ConnectSandbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConnectSandbox.js","sources":["../src/ConnectSandbox.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAE3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EACL,uBAAuB,EAEvB,UAAU,GACX,MAAM,oBAAoB,CAAC;AAuD5B,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAiB,sBAAsB,CAAC,CAAC;AAEtF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAC,MAAM,CAC5C,cAAc,EACd,gBAAgB,CAAC;IACf,GAAG,EAAE,sBAAsB;IAC3B,UAAU,EAAE,UAAU;IACtB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAsB,EAAE,GAAG;QACpD,MAAM,mBAAmB,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC;QAC3D,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC;QAC3C,wDAAwD;QACxD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CACtF,uBAAuB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CACvD,CAAC;QACF,OAAO;YACL,mBAAmB;YACnB,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YACzD,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;SACzB,CAAC;IACzC,CAAC,CAAC;CACH,CAAC,CACH,CAAC;AAEF,qFAAqF;AACrF,MAAM,CAAC,MAAM,kBAAkB,GAAG,kBAAkB,CAAC"}
@@ -0,0 +1,124 @@
1
+ import type * as Bundle from "alchemy/Bundle/Bundle";
2
+ import type { PlatformProps } from "alchemy/Platform";
3
+ import type * as Effect from "effect/Effect";
4
+ import type { App } from "./App.ts";
5
+ import type { Mount } from "./Mounts.ts";
6
+ import type { Providers } from "./Providers.ts";
7
+ import type { DurationInput } from "./SandboxClient.ts";
8
+ /** A resource, or the module-scope Effect that declares it. */
9
+ export type Ref<T> = T | Effect.Effect<T, never, Providers>;
10
+ /**
11
+ * Container settings shared by `Modal.Function` and `Modal.Server`: the
12
+ * program, the image it runs on, and Modal's resource, scaling and
13
+ * placement options.
14
+ */
15
+ export interface ContainerProps extends PlatformProps {
16
+ /**
17
+ * Module entrypoint, bundled into the image. Typically `import.meta.url`.
18
+ * A change to the bundle builds a new image.
19
+ */
20
+ main: string;
21
+ /** The App the function is deployed in. Changing it replaces the function. */
22
+ app: Ref<App>;
23
+ /**
24
+ * Name of the function in its App, unique per App. Changing it replaces
25
+ * the function.
26
+ * @default the logical ID
27
+ */
28
+ name?: string;
29
+ /**
30
+ * Base image the bundle runs on. It needs Bun on the `PATH`; Alchemy adds
31
+ * Python (see {@link python}).
32
+ * @default "oven/bun:1"
33
+ */
34
+ image?: string;
35
+ /** Dockerfile lines run on the base before the bundle is added. */
36
+ commands?: string[];
37
+ /**
38
+ * Standalone Python added to the image. Modal starts every Function
39
+ * container with its Python entrypoint, which then starts the program.
40
+ * Set `false` when the base image already has Python 3.10+ on the `PATH`.
41
+ * @default "3.12"
42
+ */
43
+ python?: string | false;
44
+ /**
45
+ * Port the program listens on.
46
+ * @default 8000
47
+ */
48
+ port?: number;
49
+ /**
50
+ * Named export to load from `main`.
51
+ * @default "default"
52
+ */
53
+ handler?: string;
54
+ /**
55
+ * Extra environment variables for the program. Stored, with the bindings'
56
+ * env, in a Modal Secret attached to the function.
57
+ */
58
+ env?: Record<string, any>;
59
+ /** Bundler options. */
60
+ build?: Bundle.BundleConfig;
61
+ /** Secrets whose variables the program sees as environment variables. */
62
+ secrets?: Array<Ref<{
63
+ readonly secretId: string;
64
+ }>>;
65
+ /**
66
+ * Volumes and cloud buckets mounted into every container:
67
+ * `{ volume: Data, path: "/data" }`, `{ bucket: Uploads, path: "/uploads", secret: R2Keys }`.
68
+ * `Modal.MountVolume` and `Modal.MountBucket` add more from the program.
69
+ */
70
+ mounts?: Mount[];
71
+ /** CPU cores to reserve (fractional allowed). */
72
+ cpu?: number;
73
+ /** Most CPU cores a container may use. */
74
+ cpuLimit?: number;
75
+ /** Memory in MiB to reserve. */
76
+ memory?: number;
77
+ /** Most memory in MiB a container may use. */
78
+ memoryLimit?: number;
79
+ /** GPU: `"T4"`, `"L4"`, `"A10G"`, `"A100-80GB"`, `"H100"`, ..., with an optional `":<count>"`. */
80
+ gpu?: string;
81
+ /** Ephemeral disk in MiB. */
82
+ ephemeralDisk?: number;
83
+ /**
84
+ * Most time one input (a call, a request) may run.
85
+ * @default 300 seconds
86
+ */
87
+ timeout?: DurationInput;
88
+ /**
89
+ * Most time a container may take to start.
90
+ * @default the timeout
91
+ */
92
+ startupTimeout?: DurationInput;
93
+ /** Containers kept running even with no traffic. @default 0 */
94
+ minContainers?: number;
95
+ /** Most containers running at once. */
96
+ maxContainers?: number;
97
+ /** Idle containers kept on top of demand while the function is busy. */
98
+ bufferContainers?: number;
99
+ /** Seconds of sustained demand before scaling up. */
100
+ scaleupWindow?: number;
101
+ /** Seconds a container may stay idle before it scales down. */
102
+ scaledownWindow?: number;
103
+ /** Regions containers may run in (`"us-east"`, `"eu"`, ...). */
104
+ regions?: string[];
105
+ /** Cloud provider containers run on. */
106
+ cloud?: "aws" | "gcp" | "oci" | "auto";
107
+ /** Run on non-preemptible capacity (costs more). */
108
+ nonpreemptible?: boolean;
109
+ /** A `Modal.Proxy` outbound traffic goes through (static egress IPs). */
110
+ proxy?: Ref<{
111
+ readonly proxyId: string;
112
+ }>;
113
+ /** Block all outbound network access. */
114
+ blockNetwork?: boolean;
115
+ /** Stop the program from calling Modal's API with the container's identity. */
116
+ restrictModalAccess?: boolean;
117
+ /** Snapshot the container's memory after startup, so cold starts restore it. */
118
+ enableMemorySnapshot?: boolean;
119
+ /** Enable IPv6 networking between the function's containers. */
120
+ i6pn?: boolean;
121
+ /** Pin Modal's image builder version (`"2025.06"`). */
122
+ builderVersion?: string;
123
+ }
124
+ //# sourceMappingURL=Container.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Container.d.ts","sources":["../src/Container.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=Container.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Container.js","sources":["../src/Container.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import * as Contributions from "alchemy/Contributions";
2
+ declare const _default: {
3
+ readonly name: "modal";
4
+ readonly auth: Contributions.Lazy<import("effect/Layer").Layer<never, never, import("alchemy/Auth/Registry").AuthProviders | import("effect/process/ChildProcessSpawner").ChildProcessSpawner | import("effect/FileSystem").FileSystem | import("effect/Path").Path | import("effect/crypto/SecureRandom").SecureRandom>>;
5
+ };
6
+ export default _default;
7
+ //# sourceMappingURL=Contributions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Contributions.d.ts","sources":["../src/Contributions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,uBAAuB,CAAC;;;;;AAEvD,wBAMG"}
@@ -0,0 +1,6 @@
1
+ import * as Contributions from "alchemy/Contributions";
2
+ export default Contributions.make({
3
+ name: "modal",
4
+ auth: Contributions.lazy(() => import("./AuthProvider.js"), (module) => module.ModalAuth),
5
+ });
6
+ //# sourceMappingURL=Contributions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Contributions.js","sources":["../src/Contributions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,uBAAuB,CAAC;AAEvD,eAAe,aAAa,CAAC,IAAI,CAAC;IAChC,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,aAAa,CAAC,IAAI,CACtB,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,EACjC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAC7B;CACF,CAAC,CAAC"}
@@ -0,0 +1,83 @@
1
+ import * as Binding from "alchemy/Binding";
2
+ import type { RuntimeContext } from "alchemy/RuntimeContext";
3
+ import type * as Effect from "effect/Effect";
4
+ import type { DictsOps } from "./CreateDictHttp.ts";
5
+ import type { ensureDict, lookupDict } from "./Dict.ts";
6
+ import type { DictAttributes } from "./Dict.ts";
7
+ import type { ReadWriteDictClient } from "./DictClient.ts";
8
+ import type { Environment } from "./Environment.ts";
9
+ import type { ErrorOf, OpError } from "./internal.ts";
10
+ /** A dict created or found at runtime: its attributes plus a read-write client. */
11
+ export interface DictHandle extends ReadWriteDictClient {
12
+ readonly dictId: Effect.Effect<string>;
13
+ readonly name: string;
14
+ /** The attributes, to pass where a `Modal.Dict` is accepted (e.g. sandbox mounts). */
15
+ readonly attributes: DictAttributes;
16
+ }
17
+ /** Get, create, list and delete dicts by name in one environment. */
18
+ export interface DictsClientOf<R> {
19
+ /** The dict named `name`, created when missing (Modal's own get-or-create). */
20
+ getOrCreate(name: string): Effect.Effect<DictHandle, ErrorOf<typeof ensureDict>, R>;
21
+ /** The dict named `name`, or `undefined`. */
22
+ get(name: string): Effect.Effect<DictHandle | undefined, ErrorOf<typeof lookupDict>, R>;
23
+ /** Delete the dict named `name` (no-op when missing). */
24
+ delete(name: string): Effect.Effect<void, ErrorOf<typeof lookupDict> | Exclude<OpError<DictsOps, "delete">, {
25
+ readonly _tag: "DictNotFound";
26
+ }>, R>;
27
+ /** Names of every dict in the environment. */
28
+ list(): Effect.Effect<ReadonlyArray<string>, OpError<DictsOps, "list">, R>;
29
+ }
30
+ /** A DictsClient whose calls run inside a deployed runtime. */
31
+ export type DictsClient = DictsClientOf<RuntimeContext>;
32
+ /**
33
+ * Create dicts by name at runtime: one per user, session or task.
34
+ * Modal's native shape is get-or-create by name, so `getOrCreate` is
35
+ * idempotent and safe to call on every request.
36
+ *
37
+ * Bind it to a `Modal.Environment` to keep these runtime objects in their
38
+ * own namespace (or to nothing, for the workspace's default environment).
39
+ * They aren't in Alchemy state: deleting the environment removes them.
40
+ *
41
+ * Objects created at run time are tagged with the stack, stage and binding
42
+ * (`alchemy::stack`, `alchemy::stage`, `alchemy::id`) and are not deleted when
43
+ * the stack is destroyed. A Modal dict has only a name, so the tags become
44
+ * its name prefix, `Modal.runtimePrefix({ stack, stage, id })`: list them
45
+ * with `modal dict list` and delete the ones whose name starts with it.
46
+ *
47
+ * ### One dict per user
48
+ * **Example:** From a Cloudflare Worker
49
+ * ```typescript
50
+ * import * as Cloudflare from "@alchemy.run/cloudflare";
51
+ * import * as Modal from "@alchemy.run/modal";
52
+ * import * as Effect from "effect/Effect";
53
+ * import * as Layer from "effect/Layer";
54
+ * import { HttpServerRequest } from "effect/http/HttpServerRequest";
55
+ * import * as HttpServerResponse from "effect/http/HttpServerResponse";
56
+ * import { Agents, Coder } from "./Coder.ts";
57
+ *
58
+ * export default class Api extends Cloudflare.Worker<Api>()(
59
+ * "Api",
60
+ * { main: import.meta.url },
61
+ * Effect.gen(function* () {
62
+ * const dicts = yield* Modal.CreateDict(Agents);
63
+ * const sandboxes = yield* Modal.CreateSandbox(Coder);
64
+ * return {
65
+ * fetch: Effect.gen(function* () {
66
+ * const request = yield* HttpServerRequest;
67
+ * const user = request.headers["x-user"] ?? "anonymous";
68
+ * const state = yield* dicts.getOrCreate(`state-${user}`);
69
+ * yield* state.put("lastSeen", Date.now());
70
+ * return HttpServerResponse.text("ok");
71
+ * }).pipe(Effect.orDie),
72
+ * };
73
+ * }).pipe(Effect.provide(Layer.mergeAll(Modal.CreateDictHttp, Modal.CreateSandboxHttp))),
74
+ * ) {}
75
+ * ```
76
+ *
77
+ * @binding
78
+ * @product Dict
79
+ */
80
+ export interface CreateDict extends Binding.Service<CreateDict, "Modal.CreateDict", (environment?: Environment) => Effect.Effect<DictsClient>> {
81
+ }
82
+ export declare const CreateDict: CreateDict;
83
+ //# sourceMappingURL=CreateDict.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CreateDict.d.ts","sources":["../src/CreateDict.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAEtD,mFAAmF;AACnF,MAAM,WAAW,UAAW,SAAQ,mBAAmB;IACrD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sFAAsF;IACtF,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;CACrC;AAED,qEAAqE;AACrE,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,+EAA+E;IAC/E,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;IACpF,6CAA6C;IAC7C,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,GAAG,SAAS,EAAE,OAAO,CAAC,OAAO,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;IACxF,yDAAyD;IACzD,MAAM,CACJ,IAAI,EAAE,MAAM,GACX,MAAM,CAAC,MAAM,CACd,IAAI,EACF,OAAO,CAAC,OAAO,UAAU,CAAC,GAC1B,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;KAAE,CAAC,EACzE,CAAC,CACF,CAAC;IACF,8CAA8C;IAC9C,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;CAC5E;AAED,+DAA+D;AAC/D,MAAM,MAAM,WAAW,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,MAAM,WAAW,UAAW,SAAQ,OAAO,CAAC,OAAO,CACjD,UAAU,EACV,kBAAkB,EAClB,CAAC,WAAW,CAAC,EAAE,WAAW,KAAK,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAC1D;CAAG;AAEJ,eAAO,MAAM,UAAU,YAAkD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import * as Binding from "alchemy/Binding";
2
+ export const CreateDict = Binding.Service("Modal.CreateDict");
3
+ //# sourceMappingURL=CreateDict.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CreateDict.js","sources":["../src/CreateDict.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AA8F3C,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAa,kBAAkB,CAAC,CAAC"}
@@ -0,0 +1,33 @@
1
+ import * as dict from "@distilled.cloud/modal/dict";
2
+ import * as Effect from "effect/Effect";
3
+ import * as Layer from "effect/Layer";
4
+ import { CreateDict, type DictsClientOf } from "./CreateDict.ts";
5
+ import { type RuntimeOwner } from "./RuntimeOwner.ts";
6
+ /** The operations the client calls, resolved by `ModalBindings.withCredentials`. */
7
+ export declare const DictsOps: Effect.Effect<{
8
+ readonly getOrCreate: (input: dict.DictGetOrCreateRequest) => Effect.Effect<dict.DictGetOrCreateResponse, dict.DictGetOrCreateError, never>;
9
+ readonly delete: (input: dict.DeleteDictRequest) => Effect.Effect<dict.DeleteDictResponse, dict.DeleteDictError, never>;
10
+ readonly list: import("@distilled.cloud/core/api").PaginatedCall<dict.ListDictRequest, dict.ListDictResponse, dict.ListDictError, never, dict.ListDictResponseDictInfo>;
11
+ readonly client: {
12
+ readonly clearDict: (input: dict.ClearDictRequest) => Effect.Effect<dict.ClearDictResponse, dict.ClearDictError, never>;
13
+ readonly dictContains: (input: dict.DictContainsRequest) => Effect.Effect<dict.DictContainsResponse, dict.DictContainsError, never>;
14
+ readonly dictContents: import("@distilled.cloud/core/api").StreamingCall<dict.DictContentsRequest, dict.DictContentsStream, dict.DictContentsError, never, dict.DictEntry>;
15
+ readonly dictLen: (input: dict.DictLenRequest) => Effect.Effect<dict.DictLenResponse, dict.DictLenError, never>;
16
+ readonly dictPop: (input: dict.DictPopRequest) => Effect.Effect<dict.DictPopResponse, dict.DictPopError, never>;
17
+ readonly getDict: (input: dict.GetDictRequest) => Effect.Effect<dict.GetDictResponse, dict.GetDictError, never>;
18
+ readonly updateDict: (input: dict.UpdateDictRequest) => Effect.Effect<dict.UpdateDictResponse, dict.UpdateDictError, never>;
19
+ };
20
+ }, never, import("./internal.ts").OperationServices>;
21
+ export type DictsOps = Effect.Success<typeof DictsOps>;
22
+ /** A dicts client over an environment name resolved per call. */
23
+ export declare const makeDictsClient: (environment: Effect.Effect<string | undefined>, ops: DictsOps, owner?: Effect.Effect<RuntimeOwner | undefined>) => DictsClientOf<never>;
24
+ /**
25
+ * {@link CreateDict} over Modal's API. Grants the host's identity (a scoped
26
+ * `Modal.ServiceUser`) the `contributor` role on the environment.
27
+ *
28
+ * @layer
29
+ * @product Dict
30
+ * @provides Modal.CreateDict
31
+ */
32
+ export declare const CreateDictHttp: Layer.Layer<CreateDict, never, never>;
33
+ //# sourceMappingURL=CreateDictHttp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CreateDictHttp.d.ts","sources":["../src/CreateDictHttp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,6BAA6B,CAAC;AACpD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAmB,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAKlF,OAAO,EAAa,KAAK,YAAY,EAA+B,MAAM,mBAAmB,CAAC;AAE9F,oFAAoF;AACpF,eAAO,MAAM,QAAQ;;;;;;;;;;;;;oDAKnB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,QAAQ,CAAC,CAAC;AASvD,iEAAiE;AACjE,eAAO,MAAM,eAAe,gBACb,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,OACzC,QAAQ,UACN,MAAM,CAAC,MAAM,CAAC,YAAY,GAAG,SAAS,CAAC,KAC7C,aAAa,CAAC,KAAK,CAkCpB,CAAC;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,uCAa1B,CAAC"}