@alchemy.run/modal 0.0.0 → 2.0.0-beta.87
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +96 -4
- package/lib/App.d.ts +143 -0
- package/lib/App.d.ts.map +1 -0
- package/lib/App.js +198 -0
- package/lib/App.js.map +1 -0
- package/lib/AuthProvider.d.ts +53 -0
- package/lib/AuthProvider.d.ts.map +1 -0
- package/lib/AuthProvider.js +209 -0
- package/lib/AuthProvider.js.map +1 -0
- package/lib/BindingHttp.d.ts +56 -0
- package/lib/BindingHttp.d.ts.map +1 -0
- package/lib/BindingHttp.js +50 -0
- package/lib/BindingHttp.js.map +1 -0
- package/lib/Blob.d.ts +34 -0
- package/lib/Blob.d.ts.map +1 -0
- package/lib/Blob.js +59 -0
- package/lib/Blob.js.map +1 -0
- package/lib/Bootstrap.d.ts +8 -0
- package/lib/Bootstrap.d.ts.map +1 -0
- package/lib/Bootstrap.js +26 -0
- package/lib/Bootstrap.js.map +1 -0
- package/lib/Cbor.d.ts +10 -0
- package/lib/Cbor.d.ts.map +1 -0
- package/lib/Cbor.js +177 -0
- package/lib/Cbor.js.map +1 -0
- package/lib/ConnectSandbox.d.ts +64 -0
- package/lib/ConnectSandbox.d.ts.map +1 -0
- package/lib/ConnectSandbox.js +33 -0
- package/lib/ConnectSandbox.js.map +1 -0
- package/lib/Container.d.ts +124 -0
- package/lib/Container.d.ts.map +1 -0
- package/lib/Container.js +1 -0
- package/lib/Container.js.map +1 -0
- package/lib/Contributions.d.ts +7 -0
- package/lib/Contributions.d.ts.map +1 -0
- package/lib/Contributions.js +6 -0
- package/lib/Contributions.js.map +1 -0
- package/lib/CreateDict.d.ts +83 -0
- package/lib/CreateDict.d.ts.map +1 -0
- package/lib/CreateDict.js +3 -0
- package/lib/CreateDict.js.map +1 -0
- package/lib/CreateDictHttp.d.ts +33 -0
- package/lib/CreateDictHttp.d.ts.map +1 -0
- package/lib/CreateDictHttp.js +67 -0
- package/lib/CreateDictHttp.js.map +1 -0
- package/lib/CreateImage.d.ts +98 -0
- package/lib/CreateImage.d.ts.map +1 -0
- package/lib/CreateImage.js +3 -0
- package/lib/CreateImage.js.map +1 -0
- package/lib/CreateImageHttp.d.ts +51 -0
- package/lib/CreateImageHttp.d.ts.map +1 -0
- package/lib/CreateImageHttp.js +87 -0
- package/lib/CreateImageHttp.js.map +1 -0
- package/lib/CreateQueue.d.ts +83 -0
- package/lib/CreateQueue.d.ts.map +1 -0
- package/lib/CreateQueue.js +3 -0
- package/lib/CreateQueue.js.map +1 -0
- package/lib/CreateQueueHttp.d.ts +31 -0
- package/lib/CreateQueueHttp.d.ts.map +1 -0
- package/lib/CreateQueueHttp.js +67 -0
- package/lib/CreateQueueHttp.js.map +1 -0
- package/lib/CreateSandbox.d.ts +186 -0
- package/lib/CreateSandbox.d.ts.map +1 -0
- package/lib/CreateSandbox.js +3 -0
- package/lib/CreateSandbox.js.map +1 -0
- package/lib/CreateSandboxHttp.d.ts +17 -0
- package/lib/CreateSandboxHttp.d.ts.map +1 -0
- package/lib/CreateSandboxHttp.js +117 -0
- package/lib/CreateSandboxHttp.js.map +1 -0
- package/lib/CreateSecret.d.ts +95 -0
- package/lib/CreateSecret.d.ts.map +1 -0
- package/lib/CreateSecret.js +3 -0
- package/lib/CreateSecret.js.map +1 -0
- package/lib/CreateSecretHttp.d.ts +24 -0
- package/lib/CreateSecretHttp.d.ts.map +1 -0
- package/lib/CreateSecretHttp.js +60 -0
- package/lib/CreateSecretHttp.js.map +1 -0
- package/lib/CreateVolume.d.ts +84 -0
- package/lib/CreateVolume.d.ts.map +1 -0
- package/lib/CreateVolume.js +3 -0
- package/lib/CreateVolume.js.map +1 -0
- package/lib/CreateVolumeHttp.d.ts +32 -0
- package/lib/CreateVolumeHttp.d.ts.map +1 -0
- package/lib/CreateVolumeHttp.js +69 -0
- package/lib/CreateVolumeHttp.js.map +1 -0
- package/lib/Credentials.d.ts +32 -0
- package/lib/Credentials.d.ts.map +1 -0
- package/lib/Credentials.js +44 -0
- package/lib/Credentials.js.map +1 -0
- package/lib/Dict.d.ts +147 -0
- package/lib/Dict.d.ts.map +1 -0
- package/lib/Dict.js +175 -0
- package/lib/Dict.js.map +1 -0
- package/lib/DictClient.d.ts +55 -0
- package/lib/DictClient.d.ts.map +1 -0
- package/lib/DictClient.js +89 -0
- package/lib/DictClient.js.map +1 -0
- package/lib/Domain.d.ts +86 -0
- package/lib/Domain.d.ts.map +1 -0
- package/lib/Domain.js +113 -0
- package/lib/Domain.js.map +1 -0
- package/lib/Endpoint.d.ts +181 -0
- package/lib/Endpoint.d.ts.map +1 -0
- package/lib/Endpoint.js +283 -0
- package/lib/Endpoint.js.map +1 -0
- package/lib/Environment.d.ts +174 -0
- package/lib/Environment.d.ts.map +1 -0
- package/lib/Environment.js +244 -0
- package/lib/Environment.js.map +1 -0
- package/lib/FetchServer.d.ts +105 -0
- package/lib/FetchServer.d.ts.map +1 -0
- package/lib/FetchServer.js +3 -0
- package/lib/FetchServer.js.map +1 -0
- package/lib/FetchServerHttp.d.ts +21 -0
- package/lib/FetchServerHttp.d.ts.map +1 -0
- package/lib/FetchServerHttp.js +84 -0
- package/lib/FetchServerHttp.js.map +1 -0
- package/lib/Function.d.ts +236 -0
- package/lib/Function.d.ts.map +1 -0
- package/lib/Function.js +273 -0
- package/lib/Function.js.map +1 -0
- package/lib/FunctionAutoscaler.d.ts +99 -0
- package/lib/FunctionAutoscaler.d.ts.map +1 -0
- package/lib/FunctionAutoscaler.js +136 -0
- package/lib/FunctionAutoscaler.js.map +1 -0
- package/lib/FunctionTarget.d.ts +61 -0
- package/lib/FunctionTarget.d.ts.map +1 -0
- package/lib/FunctionTarget.js +136 -0
- package/lib/FunctionTarget.js.map +1 -0
- package/lib/Image.d.ts +159 -0
- package/lib/Image.d.ts.map +1 -0
- package/lib/Image.js +203 -0
- package/lib/Image.js.map +1 -0
- package/lib/ImageBuild.d.ts +108 -0
- package/lib/ImageBuild.d.ts.map +1 -0
- package/lib/ImageBuild.js +157 -0
- package/lib/ImageBuild.js.map +1 -0
- package/lib/ImagePlan.d.ts +31 -0
- package/lib/ImagePlan.d.ts.map +1 -0
- package/lib/ImagePlan.js +70 -0
- package/lib/ImagePlan.js.map +1 -0
- package/lib/InferEnv.d.ts +26 -0
- package/lib/InferEnv.d.ts.map +1 -0
- package/lib/InferEnv.js +1 -0
- package/lib/InferEnv.js.map +1 -0
- package/lib/InvokeFunction.d.ts +186 -0
- package/lib/InvokeFunction.d.ts.map +1 -0
- package/lib/InvokeFunction.js +10 -0
- package/lib/InvokeFunction.js.map +1 -0
- package/lib/InvokeFunctionHttp.d.ts +39 -0
- package/lib/InvokeFunctionHttp.d.ts.map +1 -0
- package/lib/InvokeFunctionHttp.js +210 -0
- package/lib/InvokeFunctionHttp.js.map +1 -0
- package/lib/ModalBindings.d.ts +138 -0
- package/lib/ModalBindings.d.ts.map +1 -0
- package/lib/ModalBindings.js +223 -0
- package/lib/ModalBindings.js.map +1 -0
- package/lib/MountBucket.d.ts +80 -0
- package/lib/MountBucket.d.ts.map +1 -0
- package/lib/MountBucket.js +44 -0
- package/lib/MountBucket.js.map +1 -0
- package/lib/MountVolume.d.ts +77 -0
- package/lib/MountVolume.d.ts.map +1 -0
- package/lib/MountVolume.js +41 -0
- package/lib/MountVolume.js.map +1 -0
- package/lib/Mounts.d.ts +134 -0
- package/lib/Mounts.d.ts.map +1 -0
- package/lib/Mounts.js +87 -0
- package/lib/Mounts.js.map +1 -0
- package/lib/PersistentSandbox.d.ts +75 -0
- package/lib/PersistentSandbox.d.ts.map +1 -0
- package/lib/PersistentSandbox.js +93 -0
- package/lib/PersistentSandbox.js.map +1 -0
- package/lib/Providers.d.ts +23 -0
- package/lib/Providers.d.ts.map +1 -0
- package/lib/Providers.js +64 -0
- package/lib/Providers.js.map +1 -0
- package/lib/Proxy.d.ts +94 -0
- package/lib/Proxy.d.ts.map +1 -0
- package/lib/Proxy.js +132 -0
- package/lib/Proxy.js.map +1 -0
- package/lib/Queue.d.ts +147 -0
- package/lib/Queue.d.ts.map +1 -0
- package/lib/Queue.js +177 -0
- package/lib/Queue.js.map +1 -0
- package/lib/QueueClient.d.ts +64 -0
- package/lib/QueueClient.d.ts.map +1 -0
- package/lib/QueueClient.js +73 -0
- package/lib/QueueClient.js.map +1 -0
- package/lib/ReadApp.d.ts +85 -0
- package/lib/ReadApp.d.ts.map +1 -0
- package/lib/ReadApp.js +3 -0
- package/lib/ReadApp.js.map +1 -0
- package/lib/ReadAppHttp.d.ts +26 -0
- package/lib/ReadAppHttp.d.ts.map +1 -0
- package/lib/ReadAppHttp.js +106 -0
- package/lib/ReadAppHttp.js.map +1 -0
- package/lib/ReadDict.d.ts +39 -0
- package/lib/ReadDict.d.ts.map +1 -0
- package/lib/ReadDict.js +3 -0
- package/lib/ReadDict.js.map +1 -0
- package/lib/ReadDictHttp.d.ts +12 -0
- package/lib/ReadDictHttp.d.ts.map +1 -0
- package/lib/ReadDictHttp.js +23 -0
- package/lib/ReadDictHttp.js.map +1 -0
- package/lib/ReadFunction.d.ts +73 -0
- package/lib/ReadFunction.d.ts.map +1 -0
- package/lib/ReadFunction.js +3 -0
- package/lib/ReadFunction.js.map +1 -0
- package/lib/ReadFunctionHttp.d.ts +25 -0
- package/lib/ReadFunctionHttp.d.ts.map +1 -0
- package/lib/ReadFunctionHttp.js +63 -0
- package/lib/ReadFunctionHttp.js.map +1 -0
- package/lib/ReadQueue.d.ts +39 -0
- package/lib/ReadQueue.d.ts.map +1 -0
- package/lib/ReadQueue.js +3 -0
- package/lib/ReadQueue.js.map +1 -0
- package/lib/ReadQueueHttp.d.ts +12 -0
- package/lib/ReadQueueHttp.d.ts.map +1 -0
- package/lib/ReadQueueHttp.js +23 -0
- package/lib/ReadQueueHttp.js.map +1 -0
- package/lib/ReadServer.d.ts +72 -0
- package/lib/ReadServer.d.ts.map +1 -0
- package/lib/ReadServer.js +3 -0
- package/lib/ReadServer.js.map +1 -0
- package/lib/ReadServerHttp.d.ts +25 -0
- package/lib/ReadServerHttp.d.ts.map +1 -0
- package/lib/ReadServerHttp.js +70 -0
- package/lib/ReadServerHttp.js.map +1 -0
- package/lib/ReadVolume.d.ts +40 -0
- package/lib/ReadVolume.d.ts.map +1 -0
- package/lib/ReadVolume.js +3 -0
- package/lib/ReadVolume.js.map +1 -0
- package/lib/ReadVolumeHttp.d.ts +12 -0
- package/lib/ReadVolumeHttp.d.ts.map +1 -0
- package/lib/ReadVolumeHttp.js +24 -0
- package/lib/ReadVolumeHttp.js.map +1 -0
- package/lib/ReadWriteDict.d.ts +39 -0
- package/lib/ReadWriteDict.d.ts.map +1 -0
- package/lib/ReadWriteDict.js +3 -0
- package/lib/ReadWriteDict.js.map +1 -0
- package/lib/ReadWriteDictHttp.d.ts +12 -0
- package/lib/ReadWriteDictHttp.d.ts.map +1 -0
- package/lib/ReadWriteDictHttp.js +23 -0
- package/lib/ReadWriteDictHttp.js.map +1 -0
- package/lib/ReadWriteQueue.d.ts +40 -0
- package/lib/ReadWriteQueue.d.ts.map +1 -0
- package/lib/ReadWriteQueue.js +3 -0
- package/lib/ReadWriteQueue.js.map +1 -0
- package/lib/ReadWriteQueueHttp.d.ts +12 -0
- package/lib/ReadWriteQueueHttp.d.ts.map +1 -0
- package/lib/ReadWriteQueueHttp.js +23 -0
- package/lib/ReadWriteQueueHttp.js.map +1 -0
- package/lib/ReadWriteVolume.d.ts +40 -0
- package/lib/ReadWriteVolume.d.ts.map +1 -0
- package/lib/ReadWriteVolume.js +3 -0
- package/lib/ReadWriteVolume.js.map +1 -0
- package/lib/ReadWriteVolumeHttp.d.ts +12 -0
- package/lib/ReadWriteVolumeHttp.d.ts.map +1 -0
- package/lib/ReadWriteVolumeHttp.js +24 -0
- package/lib/ReadWriteVolumeHttp.js.map +1 -0
- package/lib/RuntimeOwner.d.ts +39 -0
- package/lib/RuntimeOwner.d.ts.map +1 -0
- package/lib/RuntimeOwner.js +85 -0
- package/lib/RuntimeOwner.js.map +1 -0
- package/lib/Sandbox.d.ts +215 -0
- package/lib/Sandbox.d.ts.map +1 -0
- package/lib/Sandbox.js +278 -0
- package/lib/Sandbox.js.map +1 -0
- package/lib/SandboxClient.d.ts +748 -0
- package/lib/SandboxClient.d.ts.map +1 -0
- package/lib/SandboxClient.js +710 -0
- package/lib/SandboxClient.js.map +1 -0
- package/lib/ScaleFunction.d.ts +54 -0
- package/lib/ScaleFunction.d.ts.map +1 -0
- package/lib/ScaleFunction.js +3 -0
- package/lib/ScaleFunction.js.map +1 -0
- package/lib/ScaleFunctionHttp.d.ts +21 -0
- package/lib/ScaleFunctionHttp.d.ts.map +1 -0
- package/lib/ScaleFunctionHttp.js +39 -0
- package/lib/ScaleFunctionHttp.js.map +1 -0
- package/lib/Secret.d.ts +170 -0
- package/lib/Secret.d.ts.map +1 -0
- package/lib/Secret.js +196 -0
- package/lib/Secret.js.map +1 -0
- package/lib/Server.d.ts +155 -0
- package/lib/Server.d.ts.map +1 -0
- package/lib/Server.js +184 -0
- package/lib/Server.js.map +1 -0
- package/lib/ServiceUser.d.ts +139 -0
- package/lib/ServiceUser.d.ts.map +1 -0
- package/lib/ServiceUser.js +210 -0
- package/lib/ServiceUser.js.map +1 -0
- package/lib/Volume.d.ts +170 -0
- package/lib/Volume.d.ts.map +1 -0
- package/lib/Volume.js +220 -0
- package/lib/Volume.js.map +1 -0
- package/lib/VolumeClient.d.ts +53 -0
- package/lib/VolumeClient.d.ts.map +1 -0
- package/lib/VolumeClient.js +22 -0
- package/lib/VolumeClient.js.map +1 -0
- package/lib/VolumeFiles.d.ts +94 -0
- package/lib/VolumeFiles.d.ts.map +1 -0
- package/lib/VolumeFiles.js +139 -0
- package/lib/VolumeFiles.js.map +1 -0
- package/lib/WebhookToken.d.ts +102 -0
- package/lib/WebhookToken.d.ts.map +1 -0
- package/lib/WebhookToken.js +176 -0
- package/lib/WebhookToken.js.map +1 -0
- package/lib/WorkspaceSettings.d.ts +70 -0
- package/lib/WorkspaceSettings.d.ts.map +1 -0
- package/lib/WorkspaceSettings.js +105 -0
- package/lib/WorkspaceSettings.js.map +1 -0
- package/lib/WriteApp.d.ts +38 -0
- package/lib/WriteApp.d.ts.map +1 -0
- package/lib/WriteApp.js +3 -0
- package/lib/WriteApp.js.map +1 -0
- package/lib/WriteAppHttp.d.ts +23 -0
- package/lib/WriteAppHttp.d.ts.map +1 -0
- package/lib/WriteAppHttp.js +36 -0
- package/lib/WriteAppHttp.js.map +1 -0
- package/lib/WriteDict.d.ts +39 -0
- package/lib/WriteDict.d.ts.map +1 -0
- package/lib/WriteDict.js +3 -0
- package/lib/WriteDict.js.map +1 -0
- package/lib/WriteDictHttp.d.ts +12 -0
- package/lib/WriteDictHttp.d.ts.map +1 -0
- package/lib/WriteDictHttp.js +23 -0
- package/lib/WriteDictHttp.js.map +1 -0
- package/lib/WriteQueue.d.ts +39 -0
- package/lib/WriteQueue.d.ts.map +1 -0
- package/lib/WriteQueue.js +3 -0
- package/lib/WriteQueue.js.map +1 -0
- package/lib/WriteQueueHttp.d.ts +12 -0
- package/lib/WriteQueueHttp.d.ts.map +1 -0
- package/lib/WriteQueueHttp.js +23 -0
- package/lib/WriteQueueHttp.js.map +1 -0
- package/lib/WriteSecret.d.ts +53 -0
- package/lib/WriteSecret.d.ts.map +1 -0
- package/lib/WriteSecret.js +3 -0
- package/lib/WriteSecret.js.map +1 -0
- package/lib/WriteSecretHttp.d.ts +23 -0
- package/lib/WriteSecretHttp.d.ts.map +1 -0
- package/lib/WriteSecretHttp.js +44 -0
- package/lib/WriteSecretHttp.js.map +1 -0
- package/lib/WriteVolume.d.ts +39 -0
- package/lib/WriteVolume.d.ts.map +1 -0
- package/lib/WriteVolume.js +3 -0
- package/lib/WriteVolume.js.map +1 -0
- package/lib/WriteVolumeHttp.d.ts +12 -0
- package/lib/WriteVolumeHttp.d.ts.map +1 -0
- package/lib/WriteVolumeHttp.js +24 -0
- package/lib/WriteVolumeHttp.js.map +1 -0
- package/lib/index.d.ts +80 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +78 -0
- package/lib/index.js.map +1 -0
- package/lib/internal/Declared.d.ts +29 -0
- package/lib/internal/Declared.d.ts.map +1 -0
- package/lib/internal/Declared.js +31 -0
- package/lib/internal/Declared.js.map +1 -0
- package/lib/internal/Deploy.d.ts +110 -0
- package/lib/internal/Deploy.d.ts.map +1 -0
- package/lib/internal/Deploy.js +230 -0
- package/lib/internal/Deploy.js.map +1 -0
- package/lib/internal/Entrypoint.d.ts +52 -0
- package/lib/internal/Entrypoint.d.ts.map +1 -0
- package/lib/internal/Entrypoint.js +193 -0
- package/lib/internal/Entrypoint.js.map +1 -0
- package/lib/internal/Rpc.d.ts +17 -0
- package/lib/internal/Rpc.d.ts.map +1 -0
- package/lib/internal/Rpc.js +49 -0
- package/lib/internal/Rpc.js.map +1 -0
- package/lib/internal/RpcAuth.d.ts +41 -0
- package/lib/internal/RpcAuth.d.ts.map +1 -0
- package/lib/internal/RpcAuth.js +100 -0
- package/lib/internal/RpcAuth.js.map +1 -0
- package/lib/internal/Runtime.d.ts +127 -0
- package/lib/internal/Runtime.d.ts.map +1 -0
- package/lib/internal/Runtime.js +246 -0
- package/lib/internal/Runtime.js.map +1 -0
- package/lib/internal/Tags.d.ts +19 -0
- package/lib/internal/Tags.d.ts.map +1 -0
- package/lib/internal/Tags.js +33 -0
- package/lib/internal/Tags.js.map +1 -0
- package/lib/internal/TcpConnect.d.ts +12 -0
- package/lib/internal/TcpConnect.d.ts.map +1 -0
- package/lib/internal/TcpConnect.js +46 -0
- package/lib/internal/TcpConnect.js.map +1 -0
- package/lib/internal/Transport.d.ts +13 -0
- package/lib/internal/Transport.d.ts.map +1 -0
- package/lib/internal/Transport.js +16 -0
- package/lib/internal/Transport.js.map +1 -0
- package/lib/internal.d.ts +71 -0
- package/lib/internal.d.ts.map +1 -0
- package/lib/internal.js +102 -0
- package/lib/internal.js.map +1 -0
- package/package.json +59 -3
- package/src/App.ts +262 -0
- package/src/AuthProvider.ts +295 -0
- package/src/BindingHttp.ts +112 -0
- package/src/Blob.ts +71 -0
- package/src/Bootstrap.ts +52 -0
- package/src/Cbor.ts +158 -0
- package/src/ConnectSandbox.ts +99 -0
- package/src/Container.ts +121 -0
- package/src/Contributions.ts +9 -0
- package/src/CreateDict.ts +95 -0
- package/src/CreateDictHttp.ts +91 -0
- package/src/CreateImage.ts +105 -0
- package/src/CreateImageHttp.ts +117 -0
- package/src/CreateQueue.ts +95 -0
- package/src/CreateQueueHttp.ts +91 -0
- package/src/CreateSandbox.ts +228 -0
- package/src/CreateSandboxHttp.ts +160 -0
- package/src/CreateSecret.ts +109 -0
- package/src/CreateSecretHttp.ts +83 -0
- package/src/CreateVolume.ts +96 -0
- package/src/CreateVolumeHttp.ts +93 -0
- package/src/Credentials.ts +74 -0
- package/src/Dict.ts +245 -0
- package/src/DictClient.ts +166 -0
- package/src/Domain.ts +147 -0
- package/src/Endpoint.ts +406 -0
- package/src/Environment.ts +373 -0
- package/src/FetchServer.ts +126 -0
- package/src/FetchServerHttp.ts +110 -0
- package/src/Function.ts +397 -0
- package/src/FunctionAutoscaler.ts +210 -0
- package/src/FunctionTarget.ts +181 -0
- package/src/Image.ts +281 -0
- package/src/ImageBuild.ts +228 -0
- package/src/ImagePlan.ts +78 -0
- package/src/InferEnv.ts +27 -0
- package/src/InvokeFunction.ts +211 -0
- package/src/InvokeFunctionHttp.ts +316 -0
- package/src/ModalBindings.ts +310 -0
- package/src/MountBucket.ts +137 -0
- package/src/MountVolume.ts +113 -0
- package/src/Mounts.ts +230 -0
- package/src/PersistentSandbox.ts +142 -0
- package/src/Providers.ts +100 -0
- package/src/Proxy.ts +191 -0
- package/src/Queue.ts +258 -0
- package/src/QueueClient.ts +149 -0
- package/src/ReadApp.ts +101 -0
- package/src/ReadAppHttp.ts +142 -0
- package/src/ReadDict.ts +44 -0
- package/src/ReadDictHttp.ts +27 -0
- package/src/ReadFunction.ts +107 -0
- package/src/ReadFunctionHttp.ts +91 -0
- package/src/ReadQueue.ts +44 -0
- package/src/ReadQueueHttp.ts +27 -0
- package/src/ReadServer.ts +98 -0
- package/src/ReadServerHttp.ts +101 -0
- package/src/ReadVolume.ts +45 -0
- package/src/ReadVolumeHttp.ts +28 -0
- package/src/ReadWriteDict.ts +44 -0
- package/src/ReadWriteDictHttp.ts +27 -0
- package/src/ReadWriteQueue.ts +45 -0
- package/src/ReadWriteQueueHttp.ts +27 -0
- package/src/ReadWriteVolume.ts +45 -0
- package/src/ReadWriteVolumeHttp.ts +28 -0
- package/src/RuntimeOwner.ts +111 -0
- package/src/Sandbox.ts +402 -0
- package/src/SandboxClient.ts +1404 -0
- package/src/ScaleFunction.ts +70 -0
- package/src/ScaleFunctionHttp.ts +54 -0
- package/src/Secret.ts +296 -0
- package/src/Server.ts +285 -0
- package/src/ServiceUser.ts +295 -0
- package/src/Volume.ts +320 -0
- package/src/VolumeClient.ts +108 -0
- package/src/VolumeFiles.ts +194 -0
- package/src/WebhookToken.ts +230 -0
- package/src/WorkspaceSettings.ts +160 -0
- package/src/WriteApp.ts +43 -0
- package/src/WriteAppHttp.ts +51 -0
- package/src/WriteDict.ts +44 -0
- package/src/WriteDictHttp.ts +27 -0
- package/src/WriteQueue.ts +44 -0
- package/src/WriteQueueHttp.ts +27 -0
- package/src/WriteSecret.ts +60 -0
- package/src/WriteSecretHttp.ts +56 -0
- package/src/WriteVolume.ts +44 -0
- package/src/WriteVolumeHttp.ts +28 -0
- package/src/globals.d.ts +2 -0
- package/src/index.ts +85 -0
- package/src/internal/Declared.ts +80 -0
- package/src/internal/Deploy.ts +309 -0
- package/src/internal/Entrypoint.ts +198 -0
- package/src/internal/Rpc.ts +59 -0
- package/src/internal/RpcAuth.ts +132 -0
- package/src/internal/Runtime.ts +386 -0
- package/src/internal/Tags.ts +44 -0
- package/src/internal/TcpConnect.ts +78 -0
- package/src/internal/Transport.ts +25 -0
- package/src/internal.ts +147 -0
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import * as dict from "@distilled.cloud/modal/dict";
|
|
2
|
+
import type { RuntimeContext } from "alchemy/RuntimeContext";
|
|
3
|
+
import * as Effect from "effect/Effect";
|
|
4
|
+
import { decodeJson, encodeJson, type ModalValueNotJson } from "./BindingHttp.ts";
|
|
5
|
+
import { type OpError, operations } from "./internal.ts";
|
|
6
|
+
|
|
7
|
+
/** The dict operations the clients call, resolved by `ModalBindings.withCredentials`. */
|
|
8
|
+
export const DictOps = operations({
|
|
9
|
+
clearDict: dict.clearDict,
|
|
10
|
+
dictContains: dict.dictContains,
|
|
11
|
+
dictContents: dict.dictContents,
|
|
12
|
+
dictLen: dict.dictLen,
|
|
13
|
+
dictPop: dict.dictPop,
|
|
14
|
+
getDict: dict.getDict,
|
|
15
|
+
updateDict: dict.updateDict,
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
export type DictOps = Effect.Success<typeof DictOps>;
|
|
19
|
+
|
|
20
|
+
/** A dict call's error: the operation's typed errors, and values that aren't JSON. */
|
|
21
|
+
export type DictError<K extends keyof DictOps> = OpError<DictOps, K> | ModalValueNotJson;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Read access to one dict. Keys and values are JSON: `put("a", { n: 1 })`
|
|
25
|
+
* stores the bytes of `JSON.stringify`, so Python code reads them with
|
|
26
|
+
* `json.loads` (Modal's Python client pickles by default).
|
|
27
|
+
*/
|
|
28
|
+
export interface ReadDictClient {
|
|
29
|
+
readonly dictId: Effect.Effect<string>;
|
|
30
|
+
/** The value under `key`, or `undefined`. */
|
|
31
|
+
get<A = unknown>(
|
|
32
|
+
key: unknown,
|
|
33
|
+
): Effect.Effect<A | undefined, DictError<"getDict">, RuntimeContext>;
|
|
34
|
+
/** Whether `key` is present. */
|
|
35
|
+
contains(key: unknown): Effect.Effect<boolean, OpError<DictOps, "dictContains">, RuntimeContext>;
|
|
36
|
+
/** Number of entries. */
|
|
37
|
+
len(): Effect.Effect<number, OpError<DictOps, "dictLen">, RuntimeContext>;
|
|
38
|
+
/** Every entry. */
|
|
39
|
+
entries<A = unknown>(): Effect.Effect<
|
|
40
|
+
ReadonlyArray<readonly [unknown, A]>,
|
|
41
|
+
DictError<"dictContents">,
|
|
42
|
+
RuntimeContext
|
|
43
|
+
>;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/** Write access to one dict. */
|
|
47
|
+
export interface WriteDictClient {
|
|
48
|
+
readonly dictId: Effect.Effect<string>;
|
|
49
|
+
/** Set `key` to `value`; with `ifNotExists`, only when absent (returns whether it wrote). */
|
|
50
|
+
put(
|
|
51
|
+
key: unknown,
|
|
52
|
+
value: unknown,
|
|
53
|
+
options?: { readonly ifNotExists?: boolean },
|
|
54
|
+
): Effect.Effect<boolean, OpError<DictOps, "updateDict">, RuntimeContext>;
|
|
55
|
+
/** Set many entries at once. */
|
|
56
|
+
update(
|
|
57
|
+
entries: Iterable<readonly [unknown, unknown]>,
|
|
58
|
+
): Effect.Effect<void, OpError<DictOps, "updateDict">, RuntimeContext>;
|
|
59
|
+
/** Remove `key` and return its value, or `undefined`. */
|
|
60
|
+
pop<A = unknown>(
|
|
61
|
+
key: unknown,
|
|
62
|
+
): Effect.Effect<A | undefined, DictError<"dictPop">, RuntimeContext>;
|
|
63
|
+
/** Remove every entry. */
|
|
64
|
+
clear(): Effect.Effect<void, OpError<DictOps, "clearDict">, RuntimeContext>;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/** Read and write access to one dict. */
|
|
68
|
+
export interface ReadWriteDictClient extends ReadDictClient, WriteDictClient {}
|
|
69
|
+
|
|
70
|
+
export const makeReadDictClient = (
|
|
71
|
+
dictId: Effect.Effect<string>,
|
|
72
|
+
ops: DictOps,
|
|
73
|
+
): ReadDictClient => ({
|
|
74
|
+
dictId,
|
|
75
|
+
get: <A>(key: unknown) =>
|
|
76
|
+
Effect.gen(function* () {
|
|
77
|
+
const encodedKey = yield* encodeJson(key);
|
|
78
|
+
const id = yield* dictId;
|
|
79
|
+
const response = yield* ops.getDict({
|
|
80
|
+
dictId: id,
|
|
81
|
+
key: encodedKey,
|
|
82
|
+
});
|
|
83
|
+
return response.found && response.value !== undefined
|
|
84
|
+
? yield* decodeJson<A>(response.value)
|
|
85
|
+
: undefined;
|
|
86
|
+
}),
|
|
87
|
+
contains: (key) =>
|
|
88
|
+
Effect.gen(function* () {
|
|
89
|
+
const encodedKey = yield* encodeJson(key);
|
|
90
|
+
const id = yield* dictId;
|
|
91
|
+
const response = yield* ops.dictContains({
|
|
92
|
+
dictId: id,
|
|
93
|
+
key: encodedKey,
|
|
94
|
+
});
|
|
95
|
+
return response.found ?? false;
|
|
96
|
+
}),
|
|
97
|
+
len: () =>
|
|
98
|
+
Effect.gen(function* () {
|
|
99
|
+
const id = yield* dictId;
|
|
100
|
+
const response = yield* ops.dictLen({ dictId: id });
|
|
101
|
+
return response.len ?? 0;
|
|
102
|
+
}),
|
|
103
|
+
entries: <A>() =>
|
|
104
|
+
Effect.gen(function* () {
|
|
105
|
+
const id = yield* dictId;
|
|
106
|
+
const { items } = yield* ops.dictContents({
|
|
107
|
+
dictId: id,
|
|
108
|
+
keys: true,
|
|
109
|
+
values: true,
|
|
110
|
+
});
|
|
111
|
+
return yield* Effect.forEach(items, (entry) =>
|
|
112
|
+
Effect.all([decodeJson(entry.key ?? ""), decodeJson<A>(entry.value ?? "")] as const),
|
|
113
|
+
);
|
|
114
|
+
}),
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
export const makeWriteDictClient = (
|
|
118
|
+
dictId: Effect.Effect<string>,
|
|
119
|
+
ops: DictOps,
|
|
120
|
+
): WriteDictClient => ({
|
|
121
|
+
dictId,
|
|
122
|
+
put: (key, value, options = {}) =>
|
|
123
|
+
Effect.gen(function* () {
|
|
124
|
+
const encodedKey = yield* encodeJson(key);
|
|
125
|
+
const id = yield* dictId;
|
|
126
|
+
const response = yield* ops.updateDict({
|
|
127
|
+
dictId: id,
|
|
128
|
+
updates: [{ key: encodedKey, value: yield* encodeJson(value) }],
|
|
129
|
+
ifNotExists: options.ifNotExists,
|
|
130
|
+
});
|
|
131
|
+
return options.ifNotExists ? (response.created ?? false) : true;
|
|
132
|
+
}),
|
|
133
|
+
update: (entries) =>
|
|
134
|
+
Effect.gen(function* () {
|
|
135
|
+
const updates = yield* Effect.forEach([...entries], ([key, value]) =>
|
|
136
|
+
Effect.all({ key: encodeJson(key), value: encodeJson(value) }),
|
|
137
|
+
);
|
|
138
|
+
const id = yield* dictId;
|
|
139
|
+
yield* ops.updateDict({ dictId: id, updates });
|
|
140
|
+
}),
|
|
141
|
+
pop: <A>(key: unknown) =>
|
|
142
|
+
Effect.gen(function* () {
|
|
143
|
+
const encodedKey = yield* encodeJson(key);
|
|
144
|
+
const id = yield* dictId;
|
|
145
|
+
const response = yield* ops.dictPop({
|
|
146
|
+
dictId: id,
|
|
147
|
+
key: encodedKey,
|
|
148
|
+
});
|
|
149
|
+
return response.found && response.value !== undefined
|
|
150
|
+
? yield* decodeJson<A>(response.value)
|
|
151
|
+
: undefined;
|
|
152
|
+
}),
|
|
153
|
+
clear: () =>
|
|
154
|
+
Effect.gen(function* () {
|
|
155
|
+
const id = yield* dictId;
|
|
156
|
+
yield* ops.clearDict({ dictId: id });
|
|
157
|
+
}),
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
export const makeReadWriteDictClient = (
|
|
161
|
+
dictId: Effect.Effect<string>,
|
|
162
|
+
ops: DictOps,
|
|
163
|
+
): ReadWriteDictClient => ({
|
|
164
|
+
...makeReadDictClient(dictId, ops),
|
|
165
|
+
...makeWriteDictClient(dictId, ops),
|
|
166
|
+
});
|
package/src/Domain.ts
ADDED
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import * as domain from "@distilled.cloud/modal/domain";
|
|
2
|
+
import { isResolved } from "alchemy/Diff";
|
|
3
|
+
import * as Provider from "alchemy/Provider";
|
|
4
|
+
import { Resource } from "alchemy/Resource";
|
|
5
|
+
import * as Data from "effect/Data";
|
|
6
|
+
import * as Effect from "effect/Effect";
|
|
7
|
+
import { declarable } from "./internal/Declared.ts";
|
|
8
|
+
import type { Providers } from "./Providers.ts";
|
|
9
|
+
|
|
10
|
+
export class DomainUnexpectedResponse extends Data.TaggedError("Modal.DomainUnexpectedResponse")<{
|
|
11
|
+
readonly message: string;
|
|
12
|
+
}> {}
|
|
13
|
+
|
|
14
|
+
export interface DomainProps {
|
|
15
|
+
/** The domain name (`agents.example.com`). Changing it replaces the domain. */
|
|
16
|
+
domainName: string;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/** A DNS record to create at your DNS provider. */
|
|
20
|
+
export interface DomainDnsRecord {
|
|
21
|
+
readonly type: string;
|
|
22
|
+
readonly name: string;
|
|
23
|
+
readonly value: string;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export interface DomainAttributes {
|
|
27
|
+
/** Domain ID. */
|
|
28
|
+
domainId: string;
|
|
29
|
+
/** The domain name. */
|
|
30
|
+
domainName: string;
|
|
31
|
+
/** Records to create at your DNS provider before the certificate issues. */
|
|
32
|
+
dnsRecords: DomainDnsRecord[];
|
|
33
|
+
/** `pending`, `issued`, `failed` or `revoked`. */
|
|
34
|
+
certificateStatus: string;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* A custom domain for Modal web endpoints, sandbox tunnels
|
|
39
|
+
* (`customDomain` on `create`) and model endpoints. Create the records in
|
|
40
|
+
* `dnsRecords` at your DNS provider; Modal issues the certificate once they
|
|
41
|
+
* resolve.
|
|
42
|
+
*
|
|
43
|
+
* :::caution
|
|
44
|
+
* Modal has no API to remove a domain. Destroying this resource stops
|
|
45
|
+
* tracking it; remove the domain in the Modal dashboard.
|
|
46
|
+
* :::
|
|
47
|
+
*
|
|
48
|
+
* ### Adding a domain
|
|
49
|
+
* **Example:** Register a domain and output its DNS records
|
|
50
|
+
* ```typescript
|
|
51
|
+
* // alchemy.run.ts
|
|
52
|
+
* import * as Modal from "@alchemy.run/modal";
|
|
53
|
+
* import * as Alchemy from "alchemy";
|
|
54
|
+
* import * as Effect from "effect/Effect";
|
|
55
|
+
*
|
|
56
|
+
* export default Alchemy.Stack(
|
|
57
|
+
* "Agents",
|
|
58
|
+
* { providers: Modal.providers() },
|
|
59
|
+
* Effect.gen(function* () {
|
|
60
|
+
* const agents = yield* Modal.Domain("Agents", { domainName: "agents.example.com" });
|
|
61
|
+
* return { records: agents.dnsRecords, certificate: agents.certificateStatus };
|
|
62
|
+
* }),
|
|
63
|
+
* );
|
|
64
|
+
* ```
|
|
65
|
+
*
|
|
66
|
+
* ### Serving a sandbox on it
|
|
67
|
+
* **Example:** Tunnels on the custom domain
|
|
68
|
+
* ```typescript
|
|
69
|
+
* const sandbox = yield* sandboxes.create({
|
|
70
|
+
* encryptedPorts: [3000],
|
|
71
|
+
* customDomain: "agents.example.com",
|
|
72
|
+
* });
|
|
73
|
+
* ```
|
|
74
|
+
*
|
|
75
|
+
* @resource
|
|
76
|
+
* @product Domain
|
|
77
|
+
*/
|
|
78
|
+
export const Domain = declarable<Domain>()(Resource<Domain>("Modal.Domain"));
|
|
79
|
+
|
|
80
|
+
export type Domain = Resource<"Modal.Domain", DomainProps, DomainAttributes, never, Providers>;
|
|
81
|
+
|
|
82
|
+
const STATUS: Record<string, string> = {
|
|
83
|
+
CERTIFICATE_STATUS_PENDING: "pending",
|
|
84
|
+
CERTIFICATE_STATUS_ISSUED: "issued",
|
|
85
|
+
CERTIFICATE_STATUS_FAILED: "failed",
|
|
86
|
+
CERTIFICATE_STATUS_REVOKED: "revoked",
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
const toAttrs = (d: domain.Domain): DomainAttributes => ({
|
|
90
|
+
domainId: d.domainId ?? "",
|
|
91
|
+
domainName: d.domainName ?? "",
|
|
92
|
+
dnsRecords: (d.dnsRecords ?? []).map((record) => ({
|
|
93
|
+
type: (record.type ?? "").replace(/^DNS_RECORD_TYPE_/, ""),
|
|
94
|
+
name: record.name ?? "",
|
|
95
|
+
value: record.value ?? "",
|
|
96
|
+
})),
|
|
97
|
+
certificateStatus: STATUS[d.certificateStatus ?? ""] ?? "pending",
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
export const DomainProvider = () =>
|
|
101
|
+
Provider.effect(
|
|
102
|
+
Domain,
|
|
103
|
+
Effect.gen(function* () {
|
|
104
|
+
const observe = Effect.fn(function* (domainName: string) {
|
|
105
|
+
const { domains } = yield* domain.listDomain({});
|
|
106
|
+
return (domains ?? []).find((d) => d.domainName === domainName);
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
return {
|
|
110
|
+
stables: ["domainId", "domainName"],
|
|
111
|
+
diff: Effect.fn(function* ({ news, olds }) {
|
|
112
|
+
if (!isResolved(news)) return undefined;
|
|
113
|
+
return news.domainName !== olds?.domainName
|
|
114
|
+
? ({ action: "replace" } as const)
|
|
115
|
+
: undefined;
|
|
116
|
+
}),
|
|
117
|
+
read: Effect.fn(function* ({ olds, output }) {
|
|
118
|
+
const name = output?.domainName ?? olds?.domainName;
|
|
119
|
+
if (!name) return undefined;
|
|
120
|
+
const found = yield* observe(name);
|
|
121
|
+
return found ? toAttrs(found) : undefined;
|
|
122
|
+
}),
|
|
123
|
+
reconcile: Effect.fn(function* ({ news, session }) {
|
|
124
|
+
// Observe, then ensure; refresh the certificate status either way.
|
|
125
|
+
let found = yield* observe(news.domainName);
|
|
126
|
+
if (!found) {
|
|
127
|
+
yield* session.note(`Adding domain ${news.domainName}...`);
|
|
128
|
+
yield* domain
|
|
129
|
+
.createDomain({ domainName: news.domainName })
|
|
130
|
+
.pipe(Effect.catchTag("DomainAlreadyExists", () => Effect.void));
|
|
131
|
+
found = yield* observe(news.domainName);
|
|
132
|
+
}
|
|
133
|
+
if (!found?.domainId) {
|
|
134
|
+
return yield* new DomainUnexpectedResponse({
|
|
135
|
+
message: `Modal domain ${news.domainName} was not listed after create`,
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
const verified = yield* domain
|
|
139
|
+
.verifyDomainCertificate({ domainId: found.domainId })
|
|
140
|
+
.pipe(Effect.catchTag("DomainNotFound", () => Effect.succeed({ domain: found })));
|
|
141
|
+
return toAttrs(verified.domain ?? found);
|
|
142
|
+
}),
|
|
143
|
+
// Modal has no domain delete RPC; see the caution in the JSDoc.
|
|
144
|
+
delete: () => Effect.void,
|
|
145
|
+
};
|
|
146
|
+
}),
|
|
147
|
+
);
|