@alchemy.run/modal 0.0.0 → 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 +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
package/lib/Queue.d.ts ADDED
@@ -0,0 +1,147 @@
1
+ import * as queue from "@distilled.cloud/modal/queue";
2
+ import * as Provider from "alchemy/Provider";
3
+ import { Resource } from "alchemy/Resource";
4
+ import * as Effect from "effect/Effect";
5
+ import { type EnvironmentInput } from "./internal.ts";
6
+ import type { Providers } from "./Providers.ts";
7
+ declare const QueueUnexpectedResponse_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 & {
8
+ readonly _tag: "Modal.QueueUnexpectedResponse";
9
+ } & Readonly<A>;
10
+ export declare class QueueUnexpectedResponse extends QueueUnexpectedResponse_base<{
11
+ readonly message: string;
12
+ }> {
13
+ }
14
+ export interface QueueProps {
15
+ /**
16
+ * Queue name, unique per environment. If omitted, a unique name is
17
+ * generated from the stack, stage and logical ID. Changing it replaces the
18
+ * queue (Modal can't rename queues).
19
+ */
20
+ name?: string;
21
+ /**
22
+ * Environment the queue lives in. Changing it replaces the queue.
23
+ * @default the workspace's default environment
24
+ */
25
+ environment?: EnvironmentInput;
26
+ }
27
+ export interface QueueAttributes {
28
+ /** Queue ID (`qu-…`). */
29
+ queueId: string;
30
+ /** Queue name. */
31
+ name: string;
32
+ /** Environment name, or `undefined` for the workspace default. */
33
+ environment: string | undefined;
34
+ }
35
+ /**
36
+ * A Modal Queue: a distributed FIFO queue shared by every container, Sandbox
37
+ * and client in the workspace, with optional named partitions. Items expire
38
+ * 24 hours after they are put (partitions can set their own TTL).
39
+ *
40
+ * Bind it with {@link WriteQueue} to put items, {@link ReadQueue} to take
41
+ * them, or {@link ReadWriteQueue} for both, from a Worker, Lambda or any
42
+ * other runtime. Values travel as bytes: the bindings encode them as JSON by
43
+ * default.
44
+ *
45
+ * Modal queues have no tags. Ownership is inferred from Alchemy state: a
46
+ * queue found under an explicit `name` without prior state is reported as
47
+ * unowned.
48
+ *
49
+ * ### Creating a Queue
50
+ * **Example:** A queue with a generated name
51
+ * ```typescript
52
+ * import * as Modal from "@alchemy.run/modal";
53
+ *
54
+ * export const Jobs = Modal.Queue("Jobs", {});
55
+ * ```
56
+ *
57
+ * **Example:** A named queue in an environment
58
+ * ```typescript
59
+ * import * as Modal from "@alchemy.run/modal";
60
+ *
61
+ * export const Agents = Modal.Environment("Agents", {});
62
+ * export const Tasks = Modal.Queue("Tasks", { name: "tasks", environment: Agents });
63
+ * ```
64
+ *
65
+ * ### Producing from a Worker
66
+ * **Example:** Bind write access and put a job
67
+ * ```typescript
68
+ * import * as Cloudflare from "@alchemy.run/cloudflare";
69
+ * import * as Modal from "@alchemy.run/modal";
70
+ * import * as Effect from "effect/Effect";
71
+ * import * as HttpServerResponse from "effect/http/HttpServerResponse";
72
+ * import { Jobs } from "./Storage.ts";
73
+ *
74
+ * export default class Api extends Cloudflare.Worker<Api>()(
75
+ * "Api",
76
+ * { main: import.meta.url },
77
+ * Effect.gen(function* () {
78
+ * const jobs = yield* Modal.WriteQueue(Jobs);
79
+ * return {
80
+ * fetch: Effect.gen(function* () {
81
+ * yield* jobs.put({ repo: "alchemy-run/alchemy", command: "pnpm test" });
82
+ * return HttpServerResponse.text("queued");
83
+ * }).pipe(Effect.orDie),
84
+ * };
85
+ * }).pipe(Effect.provide(Modal.WriteQueueHttp)),
86
+ * ) {}
87
+ * ```
88
+ *
89
+ * ### Looking up an existing queue
90
+ * `Queue.lookup` references a queue Alchemy doesn't manage (created with
91
+ * the Modal CLI or by another stack). It is read during plan/deploy, never
92
+ * created, updated or deleted.
93
+ *
94
+ * **Example:** Reference an existing queue
95
+ * ```typescript
96
+ * const jobs = Modal.Queue.lookup({ name: "jobs" });
97
+ * ```
98
+ *
99
+ * @resource
100
+ * @product Queue
101
+ */
102
+ export declare const Queue: import("alchemy/Resource").ResourceConstructor<Queue, Providers> & Effect.Effect<import("alchemy/Resource").ResourceConstructor<Queue, never>, never, never> & {
103
+ Self: import("alchemy/Self").Self<Queue>;
104
+ Provider: Provider.Provider<Queue>;
105
+ Aliases: readonly string[] | undefined;
106
+ ref(id: string, options?: {
107
+ stage?: string;
108
+ stack?: string;
109
+ }): Effect.Effect<Queue, never, never>;
110
+ } & {
111
+ lookup(props: {
112
+ name: import("alchemy/Input").Input<string>;
113
+ environment?: import("alchemy/Input").Input<string | undefined>;
114
+ }): Queue;
115
+ } & ((id: string, props: import("./internal/Declared.ts").DeclaredProps<QueueProps>) => Effect.Effect<Queue, never, Providers>);
116
+ export type Queue = Resource<"Modal.Queue", QueueProps, QueueAttributes, never, Providers, QueueLookup>;
117
+ /**
118
+ * Props for {@link Queue.lookup}: find a queue this stack
119
+ * doesn't manage by its name.
120
+ */
121
+ export interface QueueLookup {
122
+ /** Queue name. */
123
+ name: string;
124
+ /**
125
+ * Modal environment the object lives in.
126
+ * @default the workspace's default environment
127
+ */
128
+ environment?: string;
129
+ }
130
+ /** A queue by name, or `undefined` when missing. */
131
+ export declare const lookupQueue: (getOrCreate: (input: queue.QueueGetOrCreateRequest) => Effect.Effect<queue.QueueGetOrCreateResponse, queue.QueueGetOrCreateError, never>, name: string, env: string | undefined) => Effect.Effect<{
132
+ queueId: string;
133
+ name: string;
134
+ environment: string | undefined;
135
+ } | undefined, queue.EnvironmentNotFound | queue.QueueAlreadyExists | queue.ModalOpError, never>;
136
+ /**
137
+ * Get a queue by name, creating it when missing: the one implementation behind
138
+ * {@link Queue}'s reconcile and the runtime {@link CreateQueue} client.
139
+ */
140
+ export declare const ensureQueue: (getOrCreate: (input: queue.QueueGetOrCreateRequest) => Effect.Effect<queue.QueueGetOrCreateResponse, queue.QueueGetOrCreateError, never>, name: string, env: string | undefined) => Effect.Effect<{
141
+ queueId: string;
142
+ name: string;
143
+ environment: string | undefined;
144
+ }, QueueUnexpectedResponse | queue.QueueGetOrCreateError, never>;
145
+ export declare const QueueProvider: () => import("effect/Layer").Layer<Provider.Provider<Queue>, never, import("alchemy/Stack").Stack | import("alchemy/Stage").Stage | queue.ModalOpContext>;
146
+ export {};
147
+ //# sourceMappingURL=Queue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Queue.d.ts","sources":["../src/Queue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,8BAA8B,CAAC;AAGtD,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EACL,KAAK,gBAAgB,EAOtB,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;;;;AAGhD,qBAAa,uBAAwB,SAAQ,6BAAkD;IAC7F,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;CAAG;AAEL,MAAM,WAAW,UAAU;IACzB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,WAAW,CAAC,EAAE,gBAAgB,CAAC;CAChC;AAED,MAAM,WAAW,eAAe;IAC9B,yBAAyB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,kEAAkE;IAClE,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkEG;AACH,eAAO,MAAM,KAAK;;;;;;;;;;;;;+HAAsD,CAAC;AAEzE,MAAM,MAAM,KAAK,GAAG,QAAQ,CAC1B,aAAa,EACb,UAAU,EACV,eAAe,EACf,KAAK,EACL,SAAS,EACT,WAAW,CACZ,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,oDAAoD;AACpD,eAAO,MAAM,WAAW;;;;gGAYtB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;gEAgBtB,CAAC;AAEH,eAAO,MAAM,aAAa,2JAiFvB,CAAC"}
package/lib/Queue.js ADDED
@@ -0,0 +1,177 @@
1
+ import * as queue from "@distilled.cloud/modal/queue";
2
+ import { Unowned } from "alchemy/AdoptPolicy";
3
+ import { isResolved } from "alchemy/Diff";
4
+ import * as Provider from "alchemy/Provider";
5
+ import { Resource } from "alchemy/Resource";
6
+ import * as Data from "effect/Data";
7
+ import * as Effect from "effect/Effect";
8
+ import { envNameOf, environmentNames, environmentOf, isGeneratedName, listAll, objectName, } from "./internal.js";
9
+ import { declarable } from "./internal/Declared.js";
10
+ import { isRuntimeName } from "./RuntimeOwner.js";
11
+ export class QueueUnexpectedResponse extends Data.TaggedError("Modal.QueueUnexpectedResponse") {
12
+ }
13
+ /**
14
+ * A Modal Queue: a distributed FIFO queue shared by every container, Sandbox
15
+ * and client in the workspace, with optional named partitions. Items expire
16
+ * 24 hours after they are put (partitions can set their own TTL).
17
+ *
18
+ * Bind it with {@link WriteQueue} to put items, {@link ReadQueue} to take
19
+ * them, or {@link ReadWriteQueue} for both, from a Worker, Lambda or any
20
+ * other runtime. Values travel as bytes: the bindings encode them as JSON by
21
+ * default.
22
+ *
23
+ * Modal queues have no tags. Ownership is inferred from Alchemy state: a
24
+ * queue found under an explicit `name` without prior state is reported as
25
+ * unowned.
26
+ *
27
+ * ### Creating a Queue
28
+ * **Example:** A queue with a generated name
29
+ * ```typescript
30
+ * import * as Modal from "@alchemy.run/modal";
31
+ *
32
+ * export const Jobs = Modal.Queue("Jobs", {});
33
+ * ```
34
+ *
35
+ * **Example:** A named queue in an environment
36
+ * ```typescript
37
+ * import * as Modal from "@alchemy.run/modal";
38
+ *
39
+ * export const Agents = Modal.Environment("Agents", {});
40
+ * export const Tasks = Modal.Queue("Tasks", { name: "tasks", environment: Agents });
41
+ * ```
42
+ *
43
+ * ### Producing from a Worker
44
+ * **Example:** Bind write access and put a job
45
+ * ```typescript
46
+ * import * as Cloudflare from "@alchemy.run/cloudflare";
47
+ * import * as Modal from "@alchemy.run/modal";
48
+ * import * as Effect from "effect/Effect";
49
+ * import * as HttpServerResponse from "effect/http/HttpServerResponse";
50
+ * import { Jobs } from "./Storage.ts";
51
+ *
52
+ * export default class Api extends Cloudflare.Worker<Api>()(
53
+ * "Api",
54
+ * { main: import.meta.url },
55
+ * Effect.gen(function* () {
56
+ * const jobs = yield* Modal.WriteQueue(Jobs);
57
+ * return {
58
+ * fetch: Effect.gen(function* () {
59
+ * yield* jobs.put({ repo: "alchemy-run/alchemy", command: "pnpm test" });
60
+ * return HttpServerResponse.text("queued");
61
+ * }).pipe(Effect.orDie),
62
+ * };
63
+ * }).pipe(Effect.provide(Modal.WriteQueueHttp)),
64
+ * ) {}
65
+ * ```
66
+ *
67
+ * ### Looking up an existing queue
68
+ * `Queue.lookup` references a queue Alchemy doesn't manage (created with
69
+ * the Modal CLI or by another stack). It is read during plan/deploy, never
70
+ * created, updated or deleted.
71
+ *
72
+ * **Example:** Reference an existing queue
73
+ * ```typescript
74
+ * const jobs = Modal.Queue.lookup({ name: "jobs" });
75
+ * ```
76
+ *
77
+ * @resource
78
+ * @product Queue
79
+ */
80
+ export const Queue = declarable()(Resource("Modal.Queue"));
81
+ /** A queue by name, or `undefined` when missing. */
82
+ export const lookupQueue = Effect.fn(function* (getOrCreate, name, env) {
83
+ const found = yield* getOrCreate({
84
+ deploymentName: name,
85
+ environmentName: environmentOf(env),
86
+ objectCreationType: "OBJECT_CREATION_TYPE_UNSPECIFIED",
87
+ }).pipe(Effect.catchTag("QueueNotFound", () => Effect.undefined));
88
+ if (!found?.queueId)
89
+ return undefined;
90
+ return { queueId: found.queueId, name, environment: env };
91
+ });
92
+ /**
93
+ * Get a queue by name, creating it when missing: the one implementation behind
94
+ * {@link Queue}'s reconcile and the runtime {@link CreateQueue} client.
95
+ */
96
+ export const ensureQueue = Effect.fn(function* (getOrCreate, name, env) {
97
+ const created = yield* getOrCreate({
98
+ deploymentName: name,
99
+ environmentName: environmentOf(env),
100
+ objectCreationType: "OBJECT_CREATION_TYPE_CREATE_IF_MISSING",
101
+ });
102
+ if (!created.queueId) {
103
+ return yield* new QueueUnexpectedResponse({
104
+ message: `Modal returned no id for queue ${name}`,
105
+ });
106
+ }
107
+ return { queueId: created.queueId, name, environment: env };
108
+ });
109
+ export const QueueProvider = () => Provider.effect(Queue, Effect.gen(function* () {
110
+ const observe = Effect.fn(function* (queueId, name, env) {
111
+ if (queueId !== undefined) {
112
+ const byId = yield* queue
113
+ .queueGetById({ queueId })
114
+ .pipe(Effect.catchTag("QueueNotFound", () => Effect.undefined));
115
+ if (byId?.queueId) {
116
+ return {
117
+ queueId: byId.queueId,
118
+ name: byId.metadata?.name ?? name,
119
+ environment: env,
120
+ };
121
+ }
122
+ }
123
+ return yield* lookupQueue(yield* queue.queueGetOrCreate, name, env);
124
+ });
125
+ return {
126
+ stables: ["queueId", "name", "environment"],
127
+ diff: Effect.fn(function* ({ id, news, olds, output }) {
128
+ if (!isResolved(news))
129
+ return undefined;
130
+ if (envNameOf(news.environment) !== envNameOf(olds?.environment))
131
+ return { action: "replace" };
132
+ const name = yield* objectName(id, news.name);
133
+ if (output !== undefined && name !== output.name)
134
+ return { action: "replace" };
135
+ return undefined;
136
+ }),
137
+ lookup: Effect.fn(function* ({ name, environment }) {
138
+ return yield* observe(undefined, name, environment);
139
+ }),
140
+ read: Effect.fn(function* ({ id, olds, output }) {
141
+ const name = output?.name ?? (yield* objectName(id, olds?.name));
142
+ const observed = yield* observe(output?.queueId, name, envNameOf(olds?.environment));
143
+ if (!observed)
144
+ return undefined;
145
+ return output !== undefined || olds?.name === undefined ? observed : Unowned(observed);
146
+ }),
147
+ reconcile: Effect.fn(function* ({ id, news, output, session }) {
148
+ const name = output?.name ?? (yield* objectName(id, news.name));
149
+ const current = yield* observe(output?.queueId, name, envNameOf(news.environment));
150
+ if (current)
151
+ return current;
152
+ yield* session.note(`Creating queue ${name}...`);
153
+ return yield* ensureQueue(yield* queue.queueGetOrCreate, name, envNameOf(news.environment));
154
+ }),
155
+ delete: Effect.fn(function* ({ output }) {
156
+ yield* queue
157
+ .deleteQueue({ queueId: output.queueId })
158
+ .pipe(Effect.catchTag("QueueNotFound", () => Effect.void));
159
+ }),
160
+ list: Effect.fn(function* () {
161
+ const envs = yield* environmentNames;
162
+ const all = [];
163
+ for (const env of envs) {
164
+ const items = yield* listAll((pagination) => queue
165
+ .listQueue({ environmentName: env, pagination })
166
+ .pipe(Effect.map((response) => response.queues ?? [])), (item) => item.createdAt);
167
+ for (const item of items) {
168
+ if (!item.queueId || !(isGeneratedName(item.name) || isRuntimeName(item.name)))
169
+ continue;
170
+ all.push({ queueId: item.queueId, name: item.name ?? "", environment: env });
171
+ }
172
+ }
173
+ return all;
174
+ }),
175
+ };
176
+ }));
177
+ //# sourceMappingURL=Queue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Queue.js","sources":["../src/Queue.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ import * as queue from "@distilled.cloud/modal/queue";
2
+ import type { RuntimeContext } from "alchemy/RuntimeContext";
3
+ import * as Effect from "effect/Effect";
4
+ import { type ModalValueNotJson } from "./BindingHttp.ts";
5
+ import { type OpError } from "./internal.ts";
6
+ /** The queue operations the clients call, resolved by `ModalBindings.withCredentials`. */
7
+ export declare const QueueOps: Effect.Effect<{
8
+ readonly clearQueue: (input: queue.ClearQueueRequest) => Effect.Effect<queue.ClearQueueResponse, queue.ClearQueueError, never>;
9
+ readonly getQueue: (input: queue.GetQueueRequest) => Effect.Effect<queue.GetQueueResponse, queue.ModalOpError, never>;
10
+ readonly putQueue: (input: queue.PutQueueRequest) => Effect.Effect<queue.PutQueueResponse, queue.PutQueueError, never>;
11
+ readonly queueLen: (input: queue.QueueLenRequest) => Effect.Effect<queue.QueueLenResponse, queue.QueueLenError, never>;
12
+ readonly queueNextItems: (input: queue.QueueNextItemsRequest) => Effect.Effect<queue.QueueNextItemsResponse, queue.QueueNextItemsError, never>;
13
+ }, never, import("./internal.ts").OperationServices>;
14
+ export type QueueOps = Effect.Success<typeof QueueOps>;
15
+ /** A queue call's error: the operation's typed errors, and items that aren't JSON. */
16
+ export type QueueError<K extends keyof QueueOps> = OpError<QueueOps, K> | ModalValueNotJson;
17
+ /** Which partition of a queue a call uses; omitted means the default partition. */
18
+ export interface QueuePartitionOptions {
19
+ readonly partition?: string;
20
+ }
21
+ /**
22
+ * Take items from one queue. Items are JSON (the bytes of `JSON.stringify`),
23
+ * so Python consumers read them with `json.loads`.
24
+ */
25
+ export interface ReadQueueClient {
26
+ readonly queueId: Effect.Effect<string>;
27
+ /**
28
+ * Remove and return up to `count` items, waiting up to `timeout` for the
29
+ * first one (an empty array when none arrived).
30
+ */
31
+ take<A = unknown>(options?: QueuePartitionOptions & {
32
+ readonly count?: number;
33
+ readonly timeout?: number | string;
34
+ }): Effect.Effect<ReadonlyArray<A>, QueueError<"getQueue">, RuntimeContext>;
35
+ /** Items currently in the queue, without removing them. */
36
+ peek<A = unknown>(options?: QueuePartitionOptions): Effect.Effect<ReadonlyArray<A>, QueueError<"queueNextItems">, RuntimeContext>;
37
+ /** Number of items in a partition (or, with `total`, in every partition). */
38
+ len(options?: QueuePartitionOptions & {
39
+ readonly total?: boolean;
40
+ }): Effect.Effect<number, OpError<QueueOps, "queueLen">, RuntimeContext>;
41
+ }
42
+ /** Put items into one queue. */
43
+ export interface WriteQueueClient {
44
+ readonly queueId: Effect.Effect<string>;
45
+ /** Append one item. */
46
+ put(value: unknown, options?: QueuePartitionOptions & {
47
+ readonly partitionTtl?: number | string;
48
+ }): Effect.Effect<void, OpError<QueueOps, "putQueue">, RuntimeContext>;
49
+ /** Append many items in order. */
50
+ putMany(values: Iterable<unknown>, options?: QueuePartitionOptions & {
51
+ readonly partitionTtl?: number | string;
52
+ }): Effect.Effect<void, OpError<QueueOps, "putQueue">, RuntimeContext>;
53
+ /** Remove every item of a partition (or of all partitions). */
54
+ clear(options?: QueuePartitionOptions & {
55
+ readonly all?: boolean;
56
+ }): Effect.Effect<void, OpError<QueueOps, "clearQueue">, RuntimeContext>;
57
+ }
58
+ /** Put and take items. */
59
+ export interface ReadWriteQueueClient extends ReadQueueClient, WriteQueueClient {
60
+ }
61
+ export declare const makeReadQueueClient: (queueId: Effect.Effect<string>, ops: QueueOps) => ReadQueueClient;
62
+ export declare const makeWriteQueueClient: (queueId: Effect.Effect<string>, ops: QueueOps) => WriteQueueClient;
63
+ export declare const makeReadWriteQueueClient: (queueId: Effect.Effect<string>, ops: QueueOps) => ReadWriteQueueClient;
64
+ //# sourceMappingURL=QueueClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueueClient.d.ts","sources":["../src/QueueClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ import * as queue from "@distilled.cloud/modal/queue";
2
+ import * as Effect from "effect/Effect";
3
+ import { decodeJson, encodeJson } from "./BindingHttp.js";
4
+ import { operations, seconds } from "./internal.js";
5
+ /** The queue operations the clients call, resolved by `ModalBindings.withCredentials`. */
6
+ export const QueueOps = operations({
7
+ clearQueue: queue.clearQueue,
8
+ getQueue: queue.getQueue,
9
+ putQueue: queue.putQueue,
10
+ queueLen: queue.queueLen,
11
+ queueNextItems: queue.queueNextItems,
12
+ });
13
+ export const makeReadQueueClient = (queueId, ops) => ({
14
+ queueId,
15
+ take: (options = {}) => Effect.gen(function* () {
16
+ const id = yield* queueId;
17
+ const { values } = yield* ops.getQueue({
18
+ queueId: id,
19
+ partitionKey: options.partition,
20
+ nValues: options.count ?? 1,
21
+ timeout: seconds(options.timeout) ?? 0,
22
+ });
23
+ return yield* Effect.forEach(values ?? [], (value) => decodeJson(value));
24
+ }),
25
+ peek: (options = {}) => Effect.gen(function* () {
26
+ const id = yield* queueId;
27
+ const { items } = yield* ops.queueNextItems({
28
+ queueId: id,
29
+ partitionKey: options.partition,
30
+ itemPollTimeout: 0,
31
+ });
32
+ return yield* Effect.forEach(items ?? [], (item) => decodeJson(item.value ?? ""));
33
+ }),
34
+ len: (options = {}) => Effect.gen(function* () {
35
+ const id = yield* queueId;
36
+ const response = yield* ops.queueLen({
37
+ queueId: id,
38
+ partitionKey: options.partition,
39
+ total: options.total,
40
+ });
41
+ return response.len ?? 0;
42
+ }),
43
+ });
44
+ export const makeWriteQueueClient = (queueId, ops) => {
45
+ const putMany = (values, options = {}) => Effect.gen(function* () {
46
+ const id = yield* queueId;
47
+ const encoded = yield* Effect.forEach([...values], (value) => encodeJson(value));
48
+ yield* ops.putQueue({
49
+ queueId: id,
50
+ values: encoded,
51
+ partitionKey: options.partition,
52
+ partitionTtlSeconds: seconds(options.partitionTtl),
53
+ });
54
+ });
55
+ return {
56
+ queueId,
57
+ put: (value, options) => putMany([value], options),
58
+ putMany,
59
+ clear: (options = {}) => Effect.gen(function* () {
60
+ const id = yield* queueId;
61
+ yield* ops.clearQueue({
62
+ queueId: id,
63
+ partitionKey: options.partition,
64
+ allPartitions: options.all,
65
+ });
66
+ }),
67
+ };
68
+ };
69
+ export const makeReadWriteQueueClient = (queueId, ops) => ({
70
+ ...makeReadQueueClient(queueId, ops),
71
+ ...makeWriteQueueClient(queueId, ops),
72
+ });
73
+ //# sourceMappingURL=QueueClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueueClient.js","sources":["../src/QueueClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ import type * as app from "@distilled.cloud/modal/app";
2
+ import * as Binding from "alchemy/Binding";
3
+ import type { RuntimeContext } from "alchemy/RuntimeContext";
4
+ import type * as Effect from "effect/Effect";
5
+ import type { App } from "./App.ts";
6
+ import type { OpError } from "./internal.ts";
7
+ import type { ReadAppOps } from "./ReadAppHttp.ts";
8
+ import type { TimeRange } from "./ReadFunction.ts";
9
+ /** One log line. */
10
+ export interface AppLogLine {
11
+ readonly data: string;
12
+ /** Epoch seconds. */
13
+ readonly timestamp: number | undefined;
14
+ readonly stream: "stdout" | "stderr" | "info" | undefined;
15
+ readonly functionId: string | undefined;
16
+ readonly functionCallId: string | undefined;
17
+ readonly containerId: string | undefined;
18
+ readonly sandboxId: string | undefined;
19
+ }
20
+ /** Filters for an App's logs. */
21
+ export interface AppLogFilter {
22
+ readonly functionId?: string;
23
+ readonly functionCallId?: string;
24
+ readonly containerId?: string;
25
+ readonly sandboxId?: string;
26
+ readonly search?: string;
27
+ readonly stream?: "stdout" | "stderr" | "info";
28
+ }
29
+ /** Observe an App: logs, functions, and deployment history. */
30
+ export interface AppReader {
31
+ /** Log lines in a time range, oldest first. */
32
+ logs(query: TimeRange & AppLogFilter & {
33
+ readonly limit?: number;
34
+ }): Effect.Effect<ReadonlyArray<AppLogLine>, OpError<ReadAppOps, "fetchLogs">, RuntimeContext>;
35
+ /**
36
+ * Follow the App's logs: lines after `cursor` (or the latest), waiting up
37
+ * to `timeout` for new ones. Pass the returned cursor to the next call.
38
+ */
39
+ tail(query?: AppLogFilter & {
40
+ readonly cursor?: string;
41
+ readonly timeout?: number;
42
+ }): Effect.Effect<{
43
+ readonly lines: ReadonlyArray<AppLogLine>;
44
+ readonly cursor: string | undefined;
45
+ }, OpError<ReadAppOps, "getLogs">, RuntimeContext>;
46
+ /** Log lines per time bucket. */
47
+ logCount(query: TimeRange & AppLogFilter & {
48
+ readonly bucketSecs?: number;
49
+ }): Effect.Effect<app.AppCountLogsResponse, OpError<ReadAppOps, "countLogs">, RuntimeContext>;
50
+ /** The App's metadata and a summary of each function. */
51
+ info(): Effect.Effect<app.AppGetInfoResponse, OpError<ReadAppOps, "info">, RuntimeContext>;
52
+ /** When the App was created, deployed and stopped, and by whom. */
53
+ lifecycle(): Effect.Effect<app.AppLifecycle | undefined, OpError<ReadAppOps, "lifecycle">, RuntimeContext>;
54
+ /** The functions and classes the App serves, by name. */
55
+ layout(): Effect.Effect<{
56
+ readonly functionIds: Record<string, string>;
57
+ readonly classIds: Record<string, string>;
58
+ }, OpError<ReadAppOps, "layout">, RuntimeContext>;
59
+ /** Every deployed version, and the version in production. */
60
+ deployments(): Effect.Effect<app.AppDeploymentHistoryResponse, OpError<ReadAppOps, "deployments">, RuntimeContext>;
61
+ }
62
+ /**
63
+ * Read a Modal App from any runtime: its logs (every function, server and
64
+ * sandbox in it), function summaries and deployment history.
65
+ *
66
+ * ### Logs
67
+ * **Example:** Errors from the last hour
68
+ * ```typescript
69
+ * const backend = yield* Modal.ReadApp(Backend);
70
+ * const lines = yield* backend.logs({ since: new Date(Date.now() - 3_600_000), stream: "stderr" });
71
+ * ```
72
+ *
73
+ * ### Deployments
74
+ * **Example:** The version in production
75
+ * ```typescript
76
+ * const { productionAppVersion } = yield* backend.deployments();
77
+ * ```
78
+ *
79
+ * @binding
80
+ * @product App
81
+ */
82
+ export interface ReadApp extends Binding.Service<ReadApp, "Modal.ReadApp", (app: App) => Effect.Effect<AppReader>> {
83
+ }
84
+ export declare const ReadApp: ReadApp;
85
+ //# sourceMappingURL=ReadApp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReadApp.d.ts","sources":["../src/ReadApp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,4BAA4B,CAAC;AACvD,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,GAAG,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,oBAAoB;AACpB,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,qBAAqB;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;IAC1D,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CACxC;AAED,iCAAiC;AACjC,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;CAChD;AAED,+DAA+D;AAC/D,MAAM,WAAW,SAAS;IACxB,+CAA+C;IAC/C,IAAI,CACF,KAAK,EAAE,SAAS,GAAG,YAAY,GAAG;QAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC5D,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,cAAc,CAAC,CAAC;IAC9F;;;OAGG;IACH,IAAI,CACF,KAAK,CAAC,EAAE,YAAY,GAAG;QAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAC7E,MAAM,CAAC,MAAM,CACd;QAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,EAClF,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,EAC9B,cAAc,CACf,CAAC;IACF,iCAAiC;IACjC,QAAQ,CACN,KAAK,EAAE,SAAS,GAAG,YAAY,GAAG;QAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GACjE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,OAAO,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,cAAc,CAAC,CAAC;IAC7F,yDAAyD;IACzD,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,cAAc,CAAC,CAAC;IAC3F,mEAAmE;IACnE,SAAS,IAAI,MAAM,CAAC,MAAM,CACxB,GAAG,CAAC,YAAY,GAAG,SAAS,EAC5B,OAAO,CAAC,UAAU,EAAE,WAAW,CAAC,EAChC,cAAc,CACf,CAAC;IACF,yDAAyD;IACzD,MAAM,IAAI,MAAM,CAAC,MAAM,CACrB;QAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,EAC3F,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,EAC7B,cAAc,CACf,CAAC;IACF,6DAA6D;IAC7D,WAAW,IAAI,MAAM,CAAC,MAAM,CAC1B,GAAG,CAAC,4BAA4B,EAChC,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC,EAClC,cAAc,CACf,CAAC;CACH;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,OAAQ,SAAQ,OAAO,CAAC,OAAO,CAC9C,OAAO,EACP,eAAe,EACf,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CACvC;CAAG;AAEJ,eAAO,MAAM,OAAO,SAA4C,CAAC"}
package/lib/ReadApp.js ADDED
@@ -0,0 +1,3 @@
1
+ import * as Binding from "alchemy/Binding";
2
+ export const ReadApp = Binding.Service("Modal.ReadApp");
3
+ //# sourceMappingURL=ReadApp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReadApp.js","sources":["../src/ReadApp.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAmG3C,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAU,eAAe,CAAC,CAAC"}
@@ -0,0 +1,26 @@
1
+ import * as app from "@distilled.cloud/modal/app";
2
+ import * as Effect from "effect/Effect";
3
+ import * as Layer from "effect/Layer";
4
+ import { ReadApp } from "./ReadApp.ts";
5
+ /** The operations the client calls, resolved by `ModalBindings.withCredentials`. */
6
+ declare const ReadAppOps: Effect.Effect<{
7
+ readonly fetchLogs: (input: app.AppFetchLogsRequest) => Effect.Effect<app.AppFetchLogsResponse, app.AppFetchLogsError, never>;
8
+ readonly getLogs: import("@distilled.cloud/core/api").StreamingCall<app.AppGetLogsRequest, app.AppGetLogsStream, app.AppGetLogsError, never, app.TaskLogsBatch>;
9
+ readonly countLogs: (input: app.AppCountLogsRequest) => Effect.Effect<app.AppCountLogsResponse, app.AppCountLogsError, never>;
10
+ readonly info: (input: app.AppGetInfoRequest) => Effect.Effect<app.AppGetInfoResponse, app.AppGetInfoError, never>;
11
+ readonly lifecycle: (input: app.AppGetLifecycleRequest) => Effect.Effect<app.AppGetLifecycleResponse, app.AppGetLifecycleError, never>;
12
+ readonly layout: (input: app.AppGetLayoutRequest) => Effect.Effect<app.AppGetLayoutResponse, app.AppGetLayoutError, never>;
13
+ readonly deployments: (input: app.AppDeploymentHistoryRequest) => Effect.Effect<app.AppDeploymentHistoryResponse, app.AppDeploymentHistoryError, never>;
14
+ }, never, import("./internal.ts").OperationServices>;
15
+ export type ReadAppOps = Effect.Success<typeof ReadAppOps>;
16
+ /**
17
+ * {@link ReadApp} over Modal's API. Grants the host's identity (a scoped
18
+ * `Modal.ServiceUser`) the `viewer` role on the App's environment.
19
+ *
20
+ * @layer
21
+ * @product App
22
+ * @provides Modal.ReadApp
23
+ */
24
+ export declare const ReadAppHttp: Layer.Layer<ReadApp, never, never>;
25
+ export {};
26
+ //# sourceMappingURL=ReadAppHttp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReadAppHttp.d.ts","sources":["../src/ReadAppHttp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,4BAA4B,CAAC;AAClD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAItC,OAAO,EAAE,OAAO,EAAsD,MAAM,cAAc,CAAC;AA0B3F,oFAAoF;AACpF,QAAA,MAAM,UAAU;;;;;;;;oDAQd,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,UAAU,CAAC,CAAC;AAE3D;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,oCAwFvB,CAAC"}