@trigger.dev/sdk 0.0.0-python-preview-20250226140121 → 0.0.0-rc-4-8-0-20261021151928
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/README.md +29 -9
- package/dist/commonjs/imports/ai-runtime-cjs.cjs.map +1 -0
- package/dist/commonjs/imports/ai-runtime.d.ts +1 -0
- package/dist/commonjs/imports/ai-runtime.js +31 -0
- package/dist/commonjs/imports/uncrypto.js +4 -4
- package/dist/commonjs/package.json +2 -1
- package/dist/commonjs/v3/agentSkillsRuntime.d.ts +28 -0
- package/dist/commonjs/v3/agentSkillsRuntime.js +173 -0
- package/dist/commonjs/v3/agentSkillsRuntime.js.map +1 -0
- package/dist/commonjs/v3/ai-shared.d.ts +156 -0
- package/dist/commonjs/v3/ai-shared.js +215 -0
- package/dist/commonjs/v3/ai-shared.js.map +1 -0
- package/dist/commonjs/v3/ai.d.ts +4225 -0
- package/dist/commonjs/v3/ai.js +11569 -0
- package/dist/commonjs/v3/ai.js.map +1 -0
- package/dist/commonjs/v3/aiAutoTelemetry.d.ts +2 -0
- package/dist/commonjs/v3/aiAutoTelemetry.js +81 -0
- package/dist/commonjs/v3/aiAutoTelemetry.js.map +1 -0
- package/dist/commonjs/v3/auth.d.ts +71 -10
- package/dist/commonjs/v3/auth.js +85 -19
- package/dist/commonjs/v3/auth.js.map +1 -1
- package/dist/commonjs/v3/batch.d.ts +3 -3
- package/dist/commonjs/v3/batch.js.map +1 -1
- package/dist/commonjs/v3/cache.js.map +1 -1
- package/dist/commonjs/v3/chat-client.d.ts +324 -0
- package/dist/commonjs/v3/chat-client.js +774 -0
- package/dist/commonjs/v3/chat-client.js.map +1 -0
- package/dist/commonjs/v3/chat-react.d.ts +244 -0
- package/dist/commonjs/v3/chat-react.js +463 -0
- package/dist/commonjs/v3/chat-react.js.map +1 -0
- package/dist/commonjs/v3/chat-server.d.ts +350 -0
- package/dist/commonjs/v3/chat-server.js +965 -0
- package/dist/commonjs/v3/chat-server.js.map +1 -0
- package/dist/commonjs/v3/chat-tab-coordinator.d.ts +65 -0
- package/dist/commonjs/v3/chat-tab-coordinator.js +235 -0
- package/dist/commonjs/v3/chat-tab-coordinator.js.map +1 -0
- package/dist/commonjs/v3/chat.d.ts +792 -0
- package/dist/commonjs/v3/chat.js +1662 -0
- package/dist/commonjs/v3/chat.js.map +1 -0
- package/dist/commonjs/v3/chatRouteWait.d.ts +21 -0
- package/dist/commonjs/v3/chatRouteWait.js +43 -0
- package/dist/commonjs/v3/chatRouteWait.js.map +1 -0
- package/dist/commonjs/v3/chatSnapshotIo.d.ts +2 -0
- package/dist/commonjs/v3/chatSnapshotIo.js +173 -0
- package/dist/commonjs/v3/chatSnapshotIo.js.map +1 -0
- package/dist/commonjs/v3/chatVersionSkew.d.ts +12 -0
- package/dist/commonjs/v3/chatVersionSkew.js +30 -0
- package/dist/commonjs/v3/chatVersionSkew.js.map +1 -0
- package/dist/commonjs/v3/compactionResponse.d.ts +9 -0
- package/dist/commonjs/v3/compactionResponse.js +37 -0
- package/dist/commonjs/v3/compactionResponse.js.map +1 -0
- package/dist/commonjs/v3/concurrency-shared.d.ts +13 -0
- package/dist/commonjs/v3/concurrency-shared.js +35 -0
- package/dist/commonjs/v3/concurrency-shared.js.map +1 -0
- package/dist/commonjs/v3/concurrencyLimits.d.ts +103 -0
- package/dist/commonjs/v3/concurrencyLimits.js +134 -0
- package/dist/commonjs/v3/concurrencyLimits.js.map +1 -0
- package/dist/commonjs/v3/config.js.map +1 -1
- package/dist/commonjs/v3/deployments.d.ts +25 -0
- package/dist/commonjs/v3/deployments.js +37 -0
- package/dist/commonjs/v3/deployments.js.map +1 -0
- package/dist/commonjs/v3/envvars.d.ts +5 -5
- package/dist/commonjs/v3/envvars.js.map +1 -1
- package/dist/commonjs/v3/externalDeploymentId.d.ts +23 -0
- package/dist/commonjs/v3/externalDeploymentId.js +43 -0
- package/dist/commonjs/v3/externalDeploymentId.js.map +1 -0
- package/dist/commonjs/v3/heartbeats.d.ts +37 -0
- package/dist/commonjs/v3/heartbeats.js +45 -0
- package/dist/commonjs/v3/heartbeats.js.map +1 -0
- package/dist/commonjs/v3/hooks.d.ts +26 -0
- package/dist/commonjs/v3/hooks.js +79 -0
- package/dist/commonjs/v3/hooks.js.map +1 -0
- package/dist/commonjs/v3/idempotencyKeys.d.ts +2 -1
- package/dist/commonjs/v3/idempotencyKeys.js +1 -0
- package/dist/commonjs/v3/idempotencyKeys.js.map +1 -1
- package/dist/commonjs/v3/index.d.ts +20 -5
- package/dist/commonjs/v3/index.js +56 -20
- package/dist/commonjs/v3/index.js.map +1 -1
- package/dist/commonjs/v3/locals.d.ts +3 -0
- package/dist/commonjs/v3/locals.js +6 -0
- package/dist/commonjs/v3/locals.js.map +1 -0
- package/dist/commonjs/v3/managedChatResponse.d.ts +44 -0
- package/dist/commonjs/v3/managedChatResponse.js +221 -0
- package/dist/commonjs/v3/managedChatResponse.js.map +1 -0
- package/dist/commonjs/v3/metadata.d.ts +5 -2
- package/dist/commonjs/v3/metadata.js +8 -1
- package/dist/commonjs/v3/metadata.js.map +1 -1
- package/dist/commonjs/v3/modelFileDownload.d.ts +10 -0
- package/dist/commonjs/v3/modelFileDownload.js +164 -0
- package/dist/commonjs/v3/modelFileDownload.js.map +1 -0
- package/dist/commonjs/v3/otel.d.ts +4 -0
- package/dist/commonjs/v3/otel.js +12 -0
- package/dist/commonjs/v3/otel.js.map +1 -0
- package/dist/commonjs/v3/prompt.d.ts +38 -0
- package/dist/commonjs/v3/prompt.js +146 -0
- package/dist/commonjs/v3/prompt.js.map +1 -0
- package/dist/commonjs/v3/promptManagement.d.ts +26 -0
- package/dist/commonjs/v3/promptManagement.js +180 -0
- package/dist/commonjs/v3/promptManagement.js.map +1 -0
- package/dist/commonjs/v3/prompts.d.ts +3 -0
- package/dist/commonjs/v3/prompts.js +15 -0
- package/dist/commonjs/v3/prompts.js.map +1 -0
- package/dist/commonjs/v3/query.d.ts +545 -0
- package/dist/commonjs/v3/query.js +163 -0
- package/dist/commonjs/v3/query.js.map +1 -0
- package/dist/commonjs/v3/queues.d.ts +107 -0
- package/dist/commonjs/v3/queues.js +225 -0
- package/dist/commonjs/v3/queues.js.map +1 -0
- package/dist/commonjs/v3/retry.d.ts +6 -2
- package/dist/commonjs/v3/retry.js +34 -23
- package/dist/commonjs/v3/retry.js.map +1 -1
- package/dist/commonjs/v3/runs.d.ts +182 -101
- package/dist/commonjs/v3/runs.js +99 -5
- package/dist/commonjs/v3/runs.js.map +1 -1
- package/dist/commonjs/v3/schedules/api.d.ts +8 -1
- package/dist/commonjs/v3/schedules/index.d.ts +29 -9
- package/dist/commonjs/v3/schedules/index.js +5 -1
- package/dist/commonjs/v3/schedules/index.js.map +1 -1
- package/dist/commonjs/v3/schemas.d.ts +1 -0
- package/dist/commonjs/{integrations.js → v3/schemas.js} +1 -1
- package/dist/commonjs/v3/schemas.js.map +1 -0
- package/dist/commonjs/v3/sessionTracing.d.ts +7 -0
- package/dist/commonjs/v3/sessionTracing.js +44 -0
- package/dist/commonjs/v3/sessionTracing.js.map +1 -0
- package/dist/commonjs/v3/sessions.d.ts +268 -0
- package/dist/commonjs/v3/sessions.js +776 -0
- package/dist/commonjs/v3/sessions.js.map +1 -0
- package/dist/commonjs/v3/shared.d.ts +129 -24
- package/dist/commonjs/v3/shared.js +1527 -689
- package/dist/commonjs/v3/shared.js.map +1 -1
- package/dist/commonjs/v3/skill.d.ts +99 -0
- package/dist/commonjs/v3/skill.js +165 -0
- package/dist/commonjs/v3/skill.js.map +1 -0
- package/dist/commonjs/v3/skills.d.ts +2 -0
- package/dist/commonjs/v3/skills.js +6 -0
- package/dist/commonjs/v3/skills.js.map +1 -0
- package/dist/commonjs/v3/steeringContext.d.ts +41 -0
- package/dist/commonjs/v3/steeringContext.js +118 -0
- package/dist/commonjs/v3/steeringContext.js.map +1 -0
- package/dist/commonjs/v3/streams.d.ts +298 -0
- package/dist/commonjs/v3/streams.js +584 -0
- package/dist/commonjs/v3/streams.js.map +1 -0
- package/dist/commonjs/v3/tasks.d.ts +19 -4
- package/dist/commonjs/v3/tasks.js +15 -1
- package/dist/commonjs/v3/tasks.js.map +1 -1
- package/dist/commonjs/v3/test/index.d.ts +5 -0
- package/dist/commonjs/v3/test/index.js +23 -0
- package/dist/commonjs/v3/test/index.js.map +1 -0
- package/dist/commonjs/v3/test/mock-channel-connector.d.ts +172 -0
- package/dist/commonjs/v3/test/mock-channel-connector.js +173 -0
- package/dist/commonjs/v3/test/mock-channel-connector.js.map +1 -0
- package/dist/commonjs/v3/test/mock-chat-agent.d.ts +388 -0
- package/dist/commonjs/v3/test/mock-chat-agent.js +689 -0
- package/dist/commonjs/v3/test/mock-chat-agent.js.map +1 -0
- package/dist/commonjs/v3/test/setup-catalog.d.ts +1 -0
- package/dist/commonjs/v3/test/setup-catalog.js +18 -0
- package/dist/commonjs/v3/test/setup-catalog.js.map +1 -0
- package/dist/commonjs/v3/test/test-session-handle.d.ts +24 -0
- package/dist/commonjs/v3/test/test-session-handle.js +271 -0
- package/dist/commonjs/v3/test/test-session-handle.js.map +1 -0
- package/dist/commonjs/v3/test/transcript-storage-tests.d.ts +40 -0
- package/dist/commonjs/v3/test/transcript-storage-tests.js +258 -0
- package/dist/commonjs/v3/test/transcript-storage-tests.js.map +1 -0
- package/dist/commonjs/v3/toolResultOrder.d.ts +15 -0
- package/dist/commonjs/v3/toolResultOrder.js +58 -0
- package/dist/commonjs/v3/toolResultOrder.js.map +1 -0
- package/dist/commonjs/v3/transcriptStorage.d.ts +307 -0
- package/dist/commonjs/v3/transcriptStorage.js +445 -0
- package/dist/commonjs/v3/transcriptStorage.js.map +1 -0
- package/dist/commonjs/v3/triggerClient.d.ts +45 -0
- package/dist/commonjs/v3/triggerClient.js +114 -0
- package/dist/commonjs/v3/triggerClient.js.map +1 -0
- package/dist/commonjs/v3/uiMessageChunks.d.ts +1 -0
- package/dist/commonjs/v3/uiMessageChunks.js +119 -0
- package/dist/commonjs/v3/uiMessageChunks.js.map +1 -0
- package/dist/commonjs/v3/usage.js +7 -6
- package/dist/commonjs/v3/usage.js.map +1 -1
- package/dist/commonjs/v3/wait.d.ts +218 -3
- package/dist/commonjs/v3/wait.js +433 -7
- package/dist/commonjs/v3/wait.js.map +1 -1
- package/dist/commonjs/v3/waitUntil.js.map +1 -1
- package/dist/commonjs/v3/webhookWaiters.d.ts +80 -0
- package/dist/commonjs/v3/webhookWaiters.js +156 -0
- package/dist/commonjs/v3/webhookWaiters.js.map +1 -0
- package/dist/commonjs/v3/webhooks.d.ts +192 -2
- package/dist/commonjs/v3/webhooks.js +340 -2
- package/dist/commonjs/v3/webhooks.js.map +1 -1
- package/dist/commonjs/version.js +1 -1
- package/dist/esm/imports/ai-runtime.d.ts +2 -0
- package/dist/esm/imports/ai-runtime.js +16 -0
- package/dist/esm/imports/ai-runtime.js.map +1 -0
- package/dist/esm/package.json +2 -1
- package/dist/esm/v3/agentSkillsRuntime.d.ts +28 -0
- package/dist/esm/v3/agentSkillsRuntime.js +136 -0
- package/dist/esm/v3/agentSkillsRuntime.js.map +1 -0
- package/dist/esm/v3/ai-shared.d.ts +156 -0
- package/dist/esm/v3/ai-shared.js +208 -0
- package/dist/esm/v3/ai-shared.js.map +1 -0
- package/dist/esm/v3/ai.d.ts +4225 -0
- package/dist/esm/v3/ai.js +11550 -0
- package/dist/esm/v3/ai.js.map +1 -0
- package/dist/esm/v3/aiAutoTelemetry.d.ts +2 -0
- package/dist/esm/v3/aiAutoTelemetry.js +78 -0
- package/dist/esm/v3/aiAutoTelemetry.js.map +1 -0
- package/dist/esm/v3/auth.d.ts +71 -10
- package/dist/esm/v3/auth.js +83 -17
- package/dist/esm/v3/auth.js.map +1 -1
- package/dist/esm/v3/batch.d.ts +3 -3
- package/dist/esm/v3/batch.js +2 -2
- package/dist/esm/v3/batch.js.map +1 -1
- package/dist/esm/v3/chat-client.d.ts +324 -0
- package/dist/esm/v3/chat-client.js +769 -0
- package/dist/esm/v3/chat-client.js.map +1 -0
- package/dist/esm/v3/chat-react.d.ts +244 -0
- package/dist/esm/v3/chat-react.js +455 -0
- package/dist/esm/v3/chat-react.js.map +1 -0
- package/dist/esm/v3/chat-server.d.ts +350 -0
- package/dist/esm/v3/chat-server.js +962 -0
- package/dist/esm/v3/chat-server.js.map +1 -0
- package/dist/esm/v3/chat-tab-coordinator.d.ts +65 -0
- package/dist/esm/v3/chat-tab-coordinator.js +231 -0
- package/dist/esm/v3/chat-tab-coordinator.js.map +1 -0
- package/dist/esm/v3/chat.d.ts +792 -0
- package/dist/esm/v3/chat.js +1655 -0
- package/dist/esm/v3/chat.js.map +1 -0
- package/dist/esm/v3/chatRouteWait.d.ts +21 -0
- package/dist/esm/v3/chatRouteWait.js +40 -0
- package/dist/esm/v3/chatRouteWait.js.map +1 -0
- package/dist/esm/v3/chatSnapshotIo.d.ts +2 -0
- package/dist/esm/v3/chatSnapshotIo.js +165 -0
- package/dist/esm/v3/chatSnapshotIo.js.map +1 -0
- package/dist/esm/v3/chatVersionSkew.d.ts +12 -0
- package/dist/esm/v3/chatVersionSkew.js +27 -0
- package/dist/esm/v3/chatVersionSkew.js.map +1 -0
- package/dist/esm/v3/compactionResponse.d.ts +9 -0
- package/dist/esm/v3/compactionResponse.js +34 -0
- package/dist/esm/v3/compactionResponse.js.map +1 -0
- package/dist/esm/v3/concurrency-shared.d.ts +13 -0
- package/dist/esm/v3/concurrency-shared.js +31 -0
- package/dist/esm/v3/concurrency-shared.js.map +1 -0
- package/dist/esm/v3/concurrencyLimits.d.ts +103 -0
- package/dist/esm/v3/concurrencyLimits.js +126 -0
- package/dist/esm/v3/concurrencyLimits.js.map +1 -0
- package/dist/esm/v3/deployments.d.ts +25 -0
- package/dist/esm/v3/deployments.js +34 -0
- package/dist/esm/v3/deployments.js.map +1 -0
- package/dist/esm/v3/envvars.d.ts +5 -5
- package/dist/esm/v3/envvars.js.map +1 -1
- package/dist/esm/v3/externalDeploymentId.d.ts +23 -0
- package/dist/esm/v3/externalDeploymentId.js +38 -0
- package/dist/esm/v3/externalDeploymentId.js.map +1 -0
- package/dist/esm/v3/heartbeats.d.ts +37 -0
- package/dist/esm/v3/heartbeats.js +42 -0
- package/dist/esm/v3/heartbeats.js.map +1 -0
- package/dist/esm/v3/hooks.d.ts +26 -0
- package/dist/esm/v3/hooks.js +66 -0
- package/dist/esm/v3/hooks.js.map +1 -0
- package/dist/esm/v3/idempotencyKeys.d.ts +2 -1
- package/dist/esm/v3/idempotencyKeys.js +2 -1
- package/dist/esm/v3/idempotencyKeys.js.map +1 -1
- package/dist/esm/v3/index.d.ts +20 -5
- package/dist/esm/v3/index.js +16 -2
- package/dist/esm/v3/index.js.map +1 -1
- package/dist/esm/v3/locals.d.ts +3 -0
- package/dist/esm/v3/locals.js +3 -0
- package/dist/esm/v3/locals.js.map +1 -0
- package/dist/esm/v3/managedChatResponse.d.ts +44 -0
- package/dist/esm/v3/managedChatResponse.js +216 -0
- package/dist/esm/v3/managedChatResponse.js.map +1 -0
- package/dist/esm/v3/metadata.d.ts +5 -2
- package/dist/esm/v3/metadata.js +8 -1
- package/dist/esm/v3/metadata.js.map +1 -1
- package/dist/esm/v3/modelFileDownload.d.ts +10 -0
- package/dist/esm/v3/modelFileDownload.js +161 -0
- package/dist/esm/v3/modelFileDownload.js.map +1 -0
- package/dist/esm/v3/otel.d.ts +4 -0
- package/dist/esm/v3/otel.js +9 -0
- package/dist/esm/v3/otel.js.map +1 -0
- package/dist/esm/v3/prompt.d.ts +38 -0
- package/dist/esm/v3/prompt.js +143 -0
- package/dist/esm/v3/prompt.js.map +1 -0
- package/dist/esm/v3/promptManagement.d.ts +26 -0
- package/dist/esm/v3/promptManagement.js +170 -0
- package/dist/esm/v3/promptManagement.js.map +1 -0
- package/dist/esm/v3/prompts.d.ts +3 -0
- package/dist/esm/v3/prompts.js +3 -0
- package/dist/esm/v3/prompts.js.map +1 -0
- package/dist/esm/v3/query.d.ts +545 -0
- package/dist/esm/v3/query.js +160 -0
- package/dist/esm/v3/query.js.map +1 -0
- package/dist/esm/v3/queues.d.ts +107 -0
- package/dist/esm/v3/queues.js +217 -0
- package/dist/esm/v3/queues.js.map +1 -0
- package/dist/esm/v3/retry.d.ts +6 -2
- package/dist/esm/v3/retry.js +27 -19
- package/dist/esm/v3/retry.js.map +1 -1
- package/dist/esm/v3/runs.d.ts +179 -98
- package/dist/esm/v3/runs.js +99 -5
- package/dist/esm/v3/runs.js.map +1 -1
- package/dist/esm/v3/schedules/api.d.ts +8 -1
- package/dist/esm/v3/schedules/index.d.ts +29 -9
- package/dist/esm/v3/schedules/index.js +6 -2
- package/dist/esm/v3/schedules/index.js.map +1 -1
- package/dist/esm/v3/schemas.d.ts +1 -0
- package/dist/esm/v3/schemas.js +2 -0
- package/dist/esm/v3/schemas.js.map +1 -0
- package/dist/esm/v3/sessionTracing.d.ts +7 -0
- package/dist/esm/v3/sessionTracing.js +40 -0
- package/dist/esm/v3/sessionTracing.js.map +1 -0
- package/dist/esm/v3/sessions.d.ts +268 -0
- package/dist/esm/v3/sessions.js +767 -0
- package/dist/esm/v3/sessions.js.map +1 -0
- package/dist/esm/v3/shared.d.ts +129 -24
- package/dist/esm/v3/shared.js +1521 -688
- package/dist/esm/v3/shared.js.map +1 -1
- package/dist/esm/v3/skill.d.ts +99 -0
- package/dist/esm/v3/skill.js +128 -0
- package/dist/esm/v3/skill.js.map +1 -0
- package/dist/esm/v3/skills.d.ts +2 -0
- package/dist/esm/v3/skills.js +2 -0
- package/dist/esm/v3/skills.js.map +1 -0
- package/dist/esm/v3/steeringContext.d.ts +41 -0
- package/dist/esm/v3/steeringContext.js +113 -0
- package/dist/esm/v3/steeringContext.js.map +1 -0
- package/dist/esm/v3/streams.d.ts +298 -0
- package/dist/esm/v3/streams.js +580 -0
- package/dist/esm/v3/streams.js.map +1 -0
- package/dist/esm/v3/tasks.d.ts +19 -4
- package/dist/esm/v3/tasks.js +16 -2
- package/dist/esm/v3/tasks.js.map +1 -1
- package/dist/esm/v3/test/index.d.ts +5 -0
- package/dist/esm/v3/test/index.js +15 -0
- package/dist/esm/v3/test/index.js.map +1 -0
- package/dist/esm/v3/test/mock-channel-connector.d.ts +172 -0
- package/dist/esm/v3/test/mock-channel-connector.js +170 -0
- package/dist/esm/v3/test/mock-channel-connector.js.map +1 -0
- package/dist/esm/v3/test/mock-chat-agent.d.ts +388 -0
- package/dist/esm/v3/test/mock-chat-agent.js +685 -0
- package/dist/esm/v3/test/mock-chat-agent.js.map +1 -0
- package/dist/esm/v3/test/setup-catalog.d.ts +1 -0
- package/dist/esm/v3/test/setup-catalog.js +16 -0
- package/dist/esm/v3/test/setup-catalog.js.map +1 -0
- package/dist/esm/v3/test/test-session-handle.d.ts +24 -0
- package/dist/esm/v3/test/test-session-handle.js +268 -0
- package/dist/esm/v3/test/test-session-handle.js.map +1 -0
- package/dist/esm/v3/test/transcript-storage-tests.d.ts +40 -0
- package/dist/esm/v3/test/transcript-storage-tests.js +255 -0
- package/dist/esm/v3/test/transcript-storage-tests.js.map +1 -0
- package/dist/esm/v3/toolResultOrder.d.ts +15 -0
- package/dist/esm/v3/toolResultOrder.js +55 -0
- package/dist/esm/v3/toolResultOrder.js.map +1 -0
- package/dist/esm/v3/transcriptStorage.d.ts +307 -0
- package/dist/esm/v3/transcriptStorage.js +431 -0
- package/dist/esm/v3/transcriptStorage.js.map +1 -0
- package/dist/esm/v3/triggerClient.d.ts +45 -0
- package/dist/esm/v3/triggerClient.js +77 -0
- package/dist/esm/v3/triggerClient.js.map +1 -0
- package/dist/esm/v3/uiMessageChunks.d.ts +1 -0
- package/dist/esm/v3/uiMessageChunks.js +116 -0
- package/dist/esm/v3/uiMessageChunks.js.map +1 -0
- package/dist/esm/v3/usage.js +7 -6
- package/dist/esm/v3/usage.js.map +1 -1
- package/dist/esm/v3/wait.d.ts +218 -3
- package/dist/esm/v3/wait.js +431 -7
- package/dist/esm/v3/wait.js.map +1 -1
- package/dist/esm/v3/webhookWaiters.d.ts +80 -0
- package/dist/esm/v3/webhookWaiters.js +149 -0
- package/dist/esm/v3/webhookWaiters.js.map +1 -0
- package/dist/esm/v3/webhooks.d.ts +192 -2
- package/dist/esm/v3/webhooks.js +336 -2
- package/dist/esm/v3/webhooks.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/docs/ai/observability.mdx +174 -0
- package/docs/ai/prompts.mdx +426 -0
- package/docs/ai-chat/actions.mdx +148 -0
- package/docs/ai-chat/anatomy.mdx +87 -0
- package/docs/ai-chat/backend.mdx +933 -0
- package/docs/ai-chat/background-injection.mdx +320 -0
- package/docs/ai-chat/changelog.mdx +958 -0
- package/docs/ai-chat/chat-local.mdx +170 -0
- package/docs/ai-chat/client-protocol.mdx +1091 -0
- package/docs/ai-chat/compaction.mdx +413 -0
- package/docs/ai-chat/custom-agents.mdx +545 -0
- package/docs/ai-chat/error-handling.mdx +379 -0
- package/docs/ai-chat/fast-starts.mdx +764 -0
- package/docs/ai-chat/frontend.mdx +634 -0
- package/docs/ai-chat/how-it-works.mdx +226 -0
- package/docs/ai-chat/lifecycle-hooks.mdx +532 -0
- package/docs/ai-chat/mcp.mdx +97 -0
- package/docs/ai-chat/migrating-from-a-route-handler.mdx +594 -0
- package/docs/ai-chat/migrating-from-hydrate-messages.mdx +299 -0
- package/docs/ai-chat/overview.mdx +86 -0
- package/docs/ai-chat/patterns/branching-conversations.mdx +145 -0
- package/docs/ai-chat/patterns/code-sandbox.mdx +122 -0
- package/docs/ai-chat/patterns/database-persistence.mdx +425 -0
- package/docs/ai-chat/patterns/human-in-the-loop.mdx +281 -0
- package/docs/ai-chat/patterns/large-payloads.mdx +165 -0
- package/docs/ai-chat/patterns/native-compaction.mdx +310 -0
- package/docs/ai-chat/patterns/oom-resilience.mdx +116 -0
- package/docs/ai-chat/patterns/persistence-and-replay.mdx +218 -0
- package/docs/ai-chat/patterns/recovery-boot.mdx +233 -0
- package/docs/ai-chat/patterns/redacting-telemetry.mdx +117 -0
- package/docs/ai-chat/patterns/skills.mdx +214 -0
- package/docs/ai-chat/patterns/sub-agents.mdx +412 -0
- package/docs/ai-chat/patterns/tool-result-auditing.mdx +145 -0
- package/docs/ai-chat/patterns/trusted-edge-signals.mdx +333 -0
- package/docs/ai-chat/patterns/version-upgrades.mdx +261 -0
- package/docs/ai-chat/pending-messages.mdx +363 -0
- package/docs/ai-chat/prompt-caching.mdx +204 -0
- package/docs/ai-chat/quick-start.mdx +163 -0
- package/docs/ai-chat/reference.mdx +1071 -0
- package/docs/ai-chat/server-chat.mdx +259 -0
- package/docs/ai-chat/sessions.mdx +334 -0
- package/docs/ai-chat/side-channels.mdx +172 -0
- package/docs/ai-chat/testing.mdx +691 -0
- package/docs/ai-chat/tools.mdx +192 -0
- package/docs/ai-chat/transcript-storage.mdx +247 -0
- package/docs/ai-chat/types.mdx +242 -0
- package/docs/ai-chat/upgrade-guide.mdx +511 -0
- package/docs/apikeys.mdx +170 -0
- package/docs/billing-limits.mdx +73 -0
- package/docs/building-with-ai.mdx +261 -0
- package/docs/bulk-actions.mdx +77 -0
- package/docs/changelog.mdx +6 -0
- package/docs/cli-deploy-commands.mdx +9 -0
- package/docs/cli-dev-commands.mdx +9 -0
- package/docs/cli-env-commands.mdx +115 -0
- package/docs/cli-init-commands.mdx +84 -0
- package/docs/cli-introduction.mdx +25 -0
- package/docs/cli-list-profiles-commands.mdx +42 -0
- package/docs/cli-login-commands.mdx +53 -0
- package/docs/cli-logout-commands.mdx +33 -0
- package/docs/cli-preview-archive.mdx +59 -0
- package/docs/cli-projects-commands.mdx +74 -0
- package/docs/cli-promote-commands.mdx +9 -0
- package/docs/cli-runs-commands.mdx +95 -0
- package/docs/cli-switch.mdx +43 -0
- package/docs/cli-tasks-commands.mdx +95 -0
- package/docs/cli-update-commands.mdx +48 -0
- package/docs/cli-whoami-commands.mdx +45 -0
- package/docs/community.mdx +6 -0
- package/docs/concurrency.mdx +416 -0
- package/docs/config/config-file.mdx +662 -0
- package/docs/config/extensions/additionalFiles.mdx +38 -0
- package/docs/config/extensions/additionalPackages.mdx +40 -0
- package/docs/config/extensions/aptGet.mdx +34 -0
- package/docs/config/extensions/audioWaveform.mdx +23 -0
- package/docs/config/extensions/custom.mdx +393 -0
- package/docs/config/extensions/emitDecoratorMetadata.mdx +52 -0
- package/docs/config/extensions/esbuildPlugin.mdx +31 -0
- package/docs/config/extensions/ffmpeg.mdx +45 -0
- package/docs/config/extensions/lightpanda.mdx +56 -0
- package/docs/config/extensions/overview.mdx +69 -0
- package/docs/config/extensions/playwright.mdx +195 -0
- package/docs/config/extensions/prismaExtension.mdx +1013 -0
- package/docs/config/extensions/puppeteer.mdx +28 -0
- package/docs/config/extensions/pythonExtension.mdx +190 -0
- package/docs/config/extensions/syncEnvVars.mdx +330 -0
- package/docs/context.mdx +235 -0
- package/docs/database-connections.mdx +213 -0
- package/docs/deploy-environment-variables.mdx +466 -0
- package/docs/deployment/atomic-deployment.mdx +470 -0
- package/docs/deployment/dev-branches.mdx +92 -0
- package/docs/deployment/overview.mdx +260 -0
- package/docs/deployment/preview-branches.mdx +227 -0
- package/docs/errors-retrying.mdx +383 -0
- package/docs/github-actions.mdx +260 -0
- package/docs/github-integration.mdx +148 -0
- package/docs/github-repo.mdx +8 -0
- package/docs/help-email.mdx +6 -0
- package/docs/help-slack.mdx +12 -0
- package/docs/hidden-tasks.mdx +56 -0
- package/docs/how-it-works.mdx +454 -0
- package/docs/how-to-reduce-your-spend.mdx +211 -0
- package/docs/idempotency.mdx +542 -0
- package/docs/introduction.mdx +135 -0
- package/docs/limits.mdx +284 -0
- package/docs/logging.mdx +195 -0
- package/docs/machines.mdx +952 -0
- package/docs/manual-setup.mdx +632 -0
- package/docs/mcp-agent-rules.mdx +41 -0
- package/docs/mcp-introduction.mdx +386 -0
- package/docs/mcp-tools.mdx +425 -0
- package/docs/migrating-from-v3.mdx +332 -0
- package/docs/observability/dashboards.mdx +166 -0
- package/docs/observability/query.mdx +614 -0
- package/docs/open-source-contributing.mdx +16 -0
- package/docs/private-networking/aws-console-setup.mdx +304 -0
- package/docs/private-networking/overview.mdx +144 -0
- package/docs/private-networking/troubleshooting.mdx +78 -0
- package/docs/queues.mdx +271 -0
- package/docs/quick-start.mdx +60 -0
- package/docs/realtime/auth.mdx +228 -0
- package/docs/realtime/backend/input-streams.mdx +159 -0
- package/docs/realtime/backend/overview.mdx +45 -0
- package/docs/realtime/backend/streams.mdx +433 -0
- package/docs/realtime/backend/subscribe.mdx +225 -0
- package/docs/realtime/how-it-works.mdx +94 -0
- package/docs/realtime/overview.mdx +63 -0
- package/docs/realtime/react-hooks/overview.mdx +73 -0
- package/docs/realtime/react-hooks/session-stream.mdx +126 -0
- package/docs/realtime/react-hooks/streams.mdx +517 -0
- package/docs/realtime/react-hooks/subscribe.mdx +690 -0
- package/docs/realtime/react-hooks/swr.mdx +87 -0
- package/docs/realtime/react-hooks/triggering.mdx +194 -0
- package/docs/realtime/react-hooks/use-wait-token.mdx +34 -0
- package/docs/realtime/run-object.mdx +197 -0
- package/docs/replaying.mdx +97 -0
- package/docs/reports.mdx +159 -0
- package/docs/request-feature.mdx +6 -0
- package/docs/roadmap.mdx +6 -0
- package/docs/run-tests.mdx +21 -0
- package/docs/run-usage.mdx +113 -0
- package/docs/runs/bulk-actions.mdx +183 -0
- package/docs/runs/heartbeats.mdx +38 -0
- package/docs/runs/list-best-practices.mdx +234 -0
- package/docs/runs/max-duration.mdx +143 -0
- package/docs/runs/metadata.mdx +731 -0
- package/docs/runs/priority.mdx +8 -0
- package/docs/runs.mdx +406 -0
- package/docs/self-hosting/docker.mdx +512 -0
- package/docs/self-hosting/env/supervisor.mdx +78 -0
- package/docs/self-hosting/env/webapp.mdx +305 -0
- package/docs/self-hosting/kubernetes.mdx +725 -0
- package/docs/self-hosting/overview.mdx +145 -0
- package/docs/self-hosting/security.mdx +67 -0
- package/docs/skills.mdx +85 -0
- package/docs/tags.mdx +126 -0
- package/docs/tasks/overview.mdx +695 -0
- package/docs/tasks/scheduled.mdx +479 -0
- package/docs/tasks/schemaTask.mdx +413 -0
- package/docs/tasks/streams.mdx +887 -0
- package/docs/triggering.mdx +1340 -0
- package/docs/troubleshooting-alerts.mdx +607 -0
- package/docs/troubleshooting-debugging-in-vscode.mdx +9 -0
- package/docs/troubleshooting-github-issues.mdx +6 -0
- package/docs/troubleshooting-uptime-status.mdx +7 -0
- package/docs/troubleshooting-zod.mdx +158 -0
- package/docs/troubleshooting.mdx +414 -0
- package/docs/upgrading-packages.mdx +80 -0
- package/docs/vercel-integration.mdx +250 -0
- package/docs/versioning.mdx +58 -0
- package/docs/video-walkthrough.mdx +23 -0
- package/docs/wait-for-token.mdx +540 -0
- package/docs/wait-for.mdx +42 -0
- package/docs/wait-until.mdx +53 -0
- package/docs/wait.mdx +18 -0
- package/docs/webhooks/channels.mdx +154 -0
- package/docs/webhooks/connect.mdx +91 -0
- package/docs/webhooks/deliveries.mdx +99 -0
- package/docs/webhooks/filters.mdx +146 -0
- package/docs/webhooks/human-in-the-loop.mdx +158 -0
- package/docs/webhooks/linear.mdx +186 -0
- package/docs/webhooks/overview.mdx +115 -0
- package/docs/webhooks/session-routing.mdx +141 -0
- package/docs/webhooks/slack.mdx +393 -0
- package/docs/webhooks/sources.mdx +250 -0
- package/docs/webhooks/waiters.mdx +190 -0
- package/docs/writing-tasks-introduction.mdx +34 -0
- package/package.json +143 -42
- package/skills/trigger-authoring-chat-agent/SKILL.md +308 -0
- package/skills/trigger-authoring-tasks/SKILL.md +254 -0
- package/skills/trigger-chat-agent-advanced/SKILL.md +403 -0
- package/skills/trigger-cost-savings/SKILL.md +116 -0
- package/skills/trigger-realtime-and-frontend/SKILL.md +276 -0
- package/dist/commonjs/apiClient.d.ts +0 -727
- package/dist/commonjs/apiClient.js +0 -692
- package/dist/commonjs/apiClient.js.map +0 -1
- package/dist/commonjs/concurrencyLimit.d.ts +0 -10
- package/dist/commonjs/concurrencyLimit.js +0 -17
- package/dist/commonjs/concurrencyLimit.js.map +0 -1
- package/dist/commonjs/errors.d.ts +0 -66
- package/dist/commonjs/errors.js +0 -109
- package/dist/commonjs/errors.js.map +0 -1
- package/dist/commonjs/httpEndpoint.d.ts +0 -87
- package/dist/commonjs/httpEndpoint.js +0 -130
- package/dist/commonjs/httpEndpoint.js.map +0 -1
- package/dist/commonjs/index.d.ts +0 -23
- package/dist/commonjs/index.js +0 -55
- package/dist/commonjs/index.js.map +0 -1
- package/dist/commonjs/integrations.d.ts +0 -11
- package/dist/commonjs/integrations.js.map +0 -1
- package/dist/commonjs/io.d.ts +0 -441
- package/dist/commonjs/io.js +0 -1165
- package/dist/commonjs/io.js.map +0 -1
- package/dist/commonjs/ioWithIntegrations.d.ts +0 -4
- package/dist/commonjs/ioWithIntegrations.js +0 -32
- package/dist/commonjs/ioWithIntegrations.js.map +0 -1
- package/dist/commonjs/job.d.ts +0 -96
- package/dist/commonjs/job.js +0 -210
- package/dist/commonjs/job.js.map +0 -1
- package/dist/commonjs/retry.d.ts +0 -20
- package/dist/commonjs/retry.js +0 -22
- package/dist/commonjs/retry.js.map +0 -1
- package/dist/commonjs/runLocalStorage.d.ts +0 -8
- package/dist/commonjs/runLocalStorage.js +0 -6
- package/dist/commonjs/runLocalStorage.js.map +0 -1
- package/dist/commonjs/security.d.ts +0 -18
- package/dist/commonjs/security.js +0 -41
- package/dist/commonjs/security.js.map +0 -1
- package/dist/commonjs/status.d.ts +0 -19
- package/dist/commonjs/status.js +0 -38
- package/dist/commonjs/status.js.map +0 -1
- package/dist/commonjs/store/keyValueStore.d.ts +0 -17
- package/dist/commonjs/store/keyValueStore.js +0 -138
- package/dist/commonjs/store/keyValueStore.js.map +0 -1
- package/dist/commonjs/store/keyValueStoreClient.d.ts +0 -19
- package/dist/commonjs/store/keyValueStoreClient.js +0 -65
- package/dist/commonjs/store/keyValueStoreClient.js.map +0 -1
- package/dist/commonjs/triggerClient.d.ts +0 -290
- package/dist/commonjs/triggerClient.js +0 -1366
- package/dist/commonjs/triggerClient.js.map +0 -1
- package/dist/commonjs/triggers/dynamic.d.ts +0 -56
- package/dist/commonjs/triggers/dynamic.js +0 -97
- package/dist/commonjs/triggers/dynamic.js.map +0 -1
- package/dist/commonjs/triggers/eventTrigger.d.ts +0 -58
- package/dist/commonjs/triggers/eventTrigger.js +0 -69
- package/dist/commonjs/triggers/eventTrigger.js.map +0 -1
- package/dist/commonjs/triggers/externalSource.d.ts +0 -148
- package/dist/commonjs/triggers/externalSource.js +0 -106
- package/dist/commonjs/triggers/externalSource.js.map +0 -1
- package/dist/commonjs/triggers/invokeTrigger.d.ts +0 -39
- package/dist/commonjs/triggers/invokeTrigger.js +0 -58
- package/dist/commonjs/triggers/invokeTrigger.js.map +0 -1
- package/dist/commonjs/triggers/notifications.d.ts +0 -111
- package/dist/commonjs/triggers/notifications.js +0 -101
- package/dist/commonjs/triggers/notifications.js.map +0 -1
- package/dist/commonjs/triggers/scheduled.d.ts +0 -145
- package/dist/commonjs/triggers/scheduled.js +0 -208
- package/dist/commonjs/triggers/scheduled.js.map +0 -1
- package/dist/commonjs/triggers/webhook.d.ts +0 -143
- package/dist/commonjs/triggers/webhook.js +0 -133
- package/dist/commonjs/triggers/webhook.js.map +0 -1
- package/dist/commonjs/typed-emitter.d.ts +0 -37
- package/dist/commonjs/typed-emitter.js +0 -3
- package/dist/commonjs/typed-emitter.js.map +0 -1
- package/dist/commonjs/types.d.ts +0 -204
- package/dist/commonjs/types.js +0 -23
- package/dist/commonjs/types.js.map +0 -1
- package/dist/commonjs/utils/formatSchemaErrors.d.ts +0 -3
- package/dist/commonjs/utils/formatSchemaErrors.js +0 -10
- package/dist/commonjs/utils/formatSchemaErrors.js.map +0 -1
- package/dist/commonjs/utils/typedAsyncLocalStorage.d.ts +0 -6
- package/dist/commonjs/utils/typedAsyncLocalStorage.js +0 -18
- package/dist/commonjs/utils/typedAsyncLocalStorage.js.map +0 -1
- package/dist/commonjs/utils.d.ts +0 -1
- package/dist/commonjs/utils.js +0 -11
- package/dist/commonjs/utils.js.map +0 -1
- package/dist/esm/apiClient.d.ts +0 -727
- package/dist/esm/apiClient.js +0 -687
- package/dist/esm/apiClient.js.map +0 -1
- package/dist/esm/concurrencyLimit.d.ts +0 -10
- package/dist/esm/concurrencyLimit.js +0 -13
- package/dist/esm/concurrencyLimit.js.map +0 -1
- package/dist/esm/errors.d.ts +0 -66
- package/dist/esm/errors.js +0 -95
- package/dist/esm/errors.js.map +0 -1
- package/dist/esm/httpEndpoint.d.ts +0 -87
- package/dist/esm/httpEndpoint.js +0 -125
- package/dist/esm/httpEndpoint.js.map +0 -1
- package/dist/esm/index.d.ts +0 -23
- package/dist/esm/index.js +0 -35
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/integrations.d.ts +0 -11
- package/dist/esm/integrations.js +0 -2
- package/dist/esm/integrations.js.map +0 -1
- package/dist/esm/io.d.ts +0 -441
- package/dist/esm/io.js +0 -1159
- package/dist/esm/io.js.map +0 -1
- package/dist/esm/ioWithIntegrations.d.ts +0 -4
- package/dist/esm/ioWithIntegrations.js +0 -29
- package/dist/esm/ioWithIntegrations.js.map +0 -1
- package/dist/esm/job.d.ts +0 -96
- package/dist/esm/job.js +0 -206
- package/dist/esm/job.js.map +0 -1
- package/dist/esm/retry.d.ts +0 -20
- package/dist/esm/retry.js +0 -19
- package/dist/esm/retry.js.map +0 -1
- package/dist/esm/runLocalStorage.d.ts +0 -8
- package/dist/esm/runLocalStorage.js +0 -3
- package/dist/esm/runLocalStorage.js.map +0 -1
- package/dist/esm/security.d.ts +0 -18
- package/dist/esm/security.js +0 -34
- package/dist/esm/security.js.map +0 -1
- package/dist/esm/status.d.ts +0 -19
- package/dist/esm/status.js +0 -34
- package/dist/esm/status.js.map +0 -1
- package/dist/esm/store/keyValueStore.d.ts +0 -17
- package/dist/esm/store/keyValueStore.js +0 -134
- package/dist/esm/store/keyValueStore.js.map +0 -1
- package/dist/esm/store/keyValueStoreClient.d.ts +0 -19
- package/dist/esm/store/keyValueStoreClient.js +0 -61
- package/dist/esm/store/keyValueStoreClient.js.map +0 -1
- package/dist/esm/triggerClient.d.ts +0 -288
- package/dist/esm/triggerClient.js +0 -1359
- package/dist/esm/triggerClient.js.map +0 -1
- package/dist/esm/triggers/dynamic.d.ts +0 -56
- package/dist/esm/triggers/dynamic.js +0 -93
- package/dist/esm/triggers/dynamic.js.map +0 -1
- package/dist/esm/triggers/eventTrigger.d.ts +0 -58
- package/dist/esm/triggers/eventTrigger.js +0 -64
- package/dist/esm/triggers/eventTrigger.js.map +0 -1
- package/dist/esm/triggers/externalSource.d.ts +0 -148
- package/dist/esm/triggers/externalSource.js +0 -100
- package/dist/esm/triggers/externalSource.js.map +0 -1
- package/dist/esm/triggers/invokeTrigger.d.ts +0 -39
- package/dist/esm/triggers/invokeTrigger.js +0 -53
- package/dist/esm/triggers/invokeTrigger.js.map +0 -1
- package/dist/esm/triggers/notifications.d.ts +0 -111
- package/dist/esm/triggers/notifications.js +0 -94
- package/dist/esm/triggers/notifications.js.map +0 -1
- package/dist/esm/triggers/scheduled.d.ts +0 -145
- package/dist/esm/triggers/scheduled.js +0 -197
- package/dist/esm/triggers/scheduled.js.map +0 -1
- package/dist/esm/triggers/webhook.d.ts +0 -143
- package/dist/esm/triggers/webhook.js +0 -128
- package/dist/esm/triggers/webhook.js.map +0 -1
- package/dist/esm/typed-emitter.d.ts +0 -37
- package/dist/esm/typed-emitter.js +0 -2
- package/dist/esm/typed-emitter.js.map +0 -1
- package/dist/esm/types.d.ts +0 -204
- package/dist/esm/types.js +0 -19
- package/dist/esm/types.js.map +0 -1
- package/dist/esm/utils/formatSchemaErrors.d.ts +0 -3
- package/dist/esm/utils/formatSchemaErrors.js +0 -7
- package/dist/esm/utils/formatSchemaErrors.js.map +0 -1
- package/dist/esm/utils/typedAsyncLocalStorage.d.ts +0 -6
- package/dist/esm/utils/typedAsyncLocalStorage.js +0 -14
- package/dist/esm/utils/typedAsyncLocalStorage.js.map +0 -1
- package/dist/esm/utils.d.ts +0 -1
- package/dist/esm/utils.js +0 -8
- package/dist/esm/utils.js.map +0 -1
|
@@ -0,0 +1,540 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Wait for token"
|
|
3
|
+
description: "Wait until a token is completed using waitpoint tokens."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Waitpoint tokens pause task runs until you complete the token. They're commonly used for approval workflows and other scenarios where you need to wait for external confirmation, such as human-in-the-loop processes.
|
|
7
|
+
|
|
8
|
+
You can complete a token using the SDK or by making a POST request to the token's URL.
|
|
9
|
+
|
|
10
|
+
<Note>
|
|
11
|
+
If you're waiting for data from an [input stream](/tasks/streams#input-streams), use
|
|
12
|
+
[`inputStream.wait()`](/tasks/streams#wait--suspend-until-data-arrives) instead — it uses
|
|
13
|
+
waitpoint tokens internally but provides a simpler API with full type safety from your stream
|
|
14
|
+
definition.
|
|
15
|
+
</Note>
|
|
16
|
+
|
|
17
|
+
## Usage
|
|
18
|
+
|
|
19
|
+
To get started using wait tokens, you need to first create a token using the `wait.createToken` function:
|
|
20
|
+
|
|
21
|
+
```ts
|
|
22
|
+
import { wait } from "@trigger.dev/sdk";
|
|
23
|
+
|
|
24
|
+
// This can be called anywhere in your codebase, either in a task or in your backend code
|
|
25
|
+
const token = await wait.createToken({
|
|
26
|
+
timeout: "10m", // you can optionally specify a timeout for the token
|
|
27
|
+
});
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Once you have a token, you can wait for it to be completed using the `wait.forToken` function:
|
|
31
|
+
|
|
32
|
+
```ts
|
|
33
|
+
import { wait } from "@trigger.dev/sdk";
|
|
34
|
+
|
|
35
|
+
type ApprovalToken = {
|
|
36
|
+
status: "approved" | "rejected";
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
// This must be called inside a task run function
|
|
40
|
+
const result = await wait.forToken<ApprovalToken>(tokenId);
|
|
41
|
+
|
|
42
|
+
if (result.ok) {
|
|
43
|
+
console.log("Token completed", result.output.status); // "approved" or "rejected"
|
|
44
|
+
} else {
|
|
45
|
+
console.log("Token timed out", result.error);
|
|
46
|
+
}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
To complete a token, you can use the `wait.completeToken` function:
|
|
50
|
+
|
|
51
|
+
```ts
|
|
52
|
+
import { wait } from "@trigger.dev/sdk";
|
|
53
|
+
// This can be called anywhere in your codebase, or from an external service,
|
|
54
|
+
// passing in the token ID and the output of the token
|
|
55
|
+
await wait.completeToken<ApprovalToken>(tokenId, {
|
|
56
|
+
status: "approved",
|
|
57
|
+
});
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Completing from the browser
|
|
61
|
+
|
|
62
|
+
The `publicAccessToken` returned by `wait.createToken()` is scoped to that specific waitpoint and intended for client-side completion. The completion endpoint has CORS enabled, so you can call it directly from client-side code without proxying through your backend.
|
|
63
|
+
|
|
64
|
+
<Steps>
|
|
65
|
+
<Step title="Create the token in your backend">
|
|
66
|
+
```typescript
|
|
67
|
+
import { wait } from "@trigger.dev/sdk";
|
|
68
|
+
|
|
69
|
+
const token = await wait.createToken({ timeout: "10m" });
|
|
70
|
+
// Pass token.id and token.publicAccessToken to your frontend
|
|
71
|
+
```
|
|
72
|
+
</Step>
|
|
73
|
+
<Step title="Complete the token from the browser">
|
|
74
|
+
```typescript
|
|
75
|
+
// tokenId and publicAccessToken passed from your backend
|
|
76
|
+
const tokenId = token.id;
|
|
77
|
+
const publicAccessToken = token.publicAccessToken;
|
|
78
|
+
|
|
79
|
+
const response = await fetch(
|
|
80
|
+
`https://api.trigger.dev/api/v1/waitpoints/tokens/${tokenId}/complete`,
|
|
81
|
+
{
|
|
82
|
+
method: "POST",
|
|
83
|
+
headers: {
|
|
84
|
+
"Authorization": `Bearer ${publicAccessToken}`,
|
|
85
|
+
"Content-Type": "application/json",
|
|
86
|
+
},
|
|
87
|
+
body: JSON.stringify({ data: { status: "approved" } }),
|
|
88
|
+
}
|
|
89
|
+
);
|
|
90
|
+
|
|
91
|
+
if (!response.ok) {
|
|
92
|
+
throw new Error(`Failed to complete token: ${response.statusText}`);
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
</Step>
|
|
96
|
+
</Steps>
|
|
97
|
+
|
|
98
|
+
## Completing via webhook callback
|
|
99
|
+
|
|
100
|
+
<Warning>
|
|
101
|
+
The `token.url` webhook callback URL is designed for server-to-server use and does **not** have
|
|
102
|
+
CORS headers. Don't call it from the browser, use the [Completing from the
|
|
103
|
+
browser](#completing-from-the-browser) pattern instead.
|
|
104
|
+
</Warning>
|
|
105
|
+
|
|
106
|
+
Or you can make an HTTP POST request to the `url` it returns. This is an HTTP callback:
|
|
107
|
+
|
|
108
|
+
```ts
|
|
109
|
+
import { wait } from "@trigger.dev/sdk";
|
|
110
|
+
|
|
111
|
+
const token = await wait.createToken({
|
|
112
|
+
timeout: "10m",
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
const call = await replicate.predictions.create({
|
|
116
|
+
version: "27b93a2413e7f36cd83da926f3656280b2931564ff050bf9575f1fdf9bcd7478",
|
|
117
|
+
input: {
|
|
118
|
+
prompt: "A painting of a cat by Andy Warhol",
|
|
119
|
+
},
|
|
120
|
+
// pass the provided URL to Replicate's webhook, so they can "callback"
|
|
121
|
+
webhook: token.url,
|
|
122
|
+
webhook_events_filter: ["completed"],
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
const prediction = await wait.forToken<Prediction>(token).unwrap();
|
|
126
|
+
// unwrap() throws a timeout error or returns the result 👆
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## wait.createToken
|
|
130
|
+
|
|
131
|
+
Create a waitpoint token.
|
|
132
|
+
|
|
133
|
+
### options
|
|
134
|
+
|
|
135
|
+
The `createToken` function accepts an object with the following properties:
|
|
136
|
+
|
|
137
|
+
<ParamField query="timeout" type="string" optional>
|
|
138
|
+
The maximum amount of time to wait for the token to be completed. If omitted, the token has no timeout. Accepts a duration string like `"30s"` or `"4w"`, or a `Date`.
|
|
139
|
+
</ParamField>
|
|
140
|
+
|
|
141
|
+
<ParamField query="idempotencyKey" type="string" optional>
|
|
142
|
+
An idempotency key for the token. If provided, the token will be completed with the same payload
|
|
143
|
+
if the same idempotency key is used again.
|
|
144
|
+
</ParamField>
|
|
145
|
+
|
|
146
|
+
<ParamField query="idempotencyKeyTTL" type="string" optional>
|
|
147
|
+
The time to live for the idempotency key. If omitted, the key does not expire.
|
|
148
|
+
</ParamField>
|
|
149
|
+
|
|
150
|
+
<ParamField query="tags" type="string[]" optional>
|
|
151
|
+
Tags to attach to the token. Tags can be used to filter waitpoints in the dashboard.
|
|
152
|
+
</ParamField>
|
|
153
|
+
|
|
154
|
+
### returns
|
|
155
|
+
|
|
156
|
+
The `createToken` function returns a token object with the following properties:
|
|
157
|
+
|
|
158
|
+
<ParamField query="id" type="string">
|
|
159
|
+
The ID of the token. Starts with `waitpoint_`.
|
|
160
|
+
</ParamField>
|
|
161
|
+
|
|
162
|
+
<ParamField query="url" type="string">
|
|
163
|
+
The URL of the token. This is the URL you can make a POST request to in order to complete the token.
|
|
164
|
+
|
|
165
|
+
The JSON body of the POST request will be used as the output of the token. If there's no body the output will be an empty object `{}`.
|
|
166
|
+
|
|
167
|
+
</ParamField>
|
|
168
|
+
|
|
169
|
+
<ParamField query="isCached" type="boolean">
|
|
170
|
+
Whether the token is cached. Will return true if the token was created with an idempotency key and
|
|
171
|
+
the same idempotency key was used again.
|
|
172
|
+
</ParamField>
|
|
173
|
+
|
|
174
|
+
<ParamField query="publicAccessToken" type="string">
|
|
175
|
+
A Public Access Token that can be used to complete the token from a client-side application (or
|
|
176
|
+
another backend). See our [Realtime docs](/realtime/auth) for more details.
|
|
177
|
+
</ParamField>
|
|
178
|
+
|
|
179
|
+
### Example
|
|
180
|
+
|
|
181
|
+
```ts
|
|
182
|
+
import { wait } from "@trigger.dev/sdk";
|
|
183
|
+
|
|
184
|
+
const token = await wait.createToken({
|
|
185
|
+
timeout: "10m",
|
|
186
|
+
idempotencyKey: "my-idempotency-key",
|
|
187
|
+
tags: ["my-tag"],
|
|
188
|
+
});
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
## wait.completeToken
|
|
192
|
+
|
|
193
|
+
Complete a waitpoint token.
|
|
194
|
+
|
|
195
|
+
### parameters
|
|
196
|
+
|
|
197
|
+
<ParamField query="id" type="string">
|
|
198
|
+
The ID of the token to complete.
|
|
199
|
+
</ParamField>
|
|
200
|
+
|
|
201
|
+
<ParamField query="output" type="any">
|
|
202
|
+
The data to complete the token with.
|
|
203
|
+
</ParamField>
|
|
204
|
+
|
|
205
|
+
### returns
|
|
206
|
+
|
|
207
|
+
The `completeToken` function returns an object with the following properties:
|
|
208
|
+
|
|
209
|
+
<ParamField query="success" type="boolean">
|
|
210
|
+
Whether the token was completed successfully.
|
|
211
|
+
</ParamField>
|
|
212
|
+
|
|
213
|
+
### Example
|
|
214
|
+
|
|
215
|
+
```ts
|
|
216
|
+
import { wait } from "@trigger.dev/sdk";
|
|
217
|
+
|
|
218
|
+
await wait.completeToken<ApprovalToken>(tokenId, {
|
|
219
|
+
status: "approved",
|
|
220
|
+
});
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
### From another language
|
|
224
|
+
|
|
225
|
+
You can complete a token using a raw HTTP request or from another language.
|
|
226
|
+
|
|
227
|
+
<CodeGroup>
|
|
228
|
+
|
|
229
|
+
```bash curl
|
|
230
|
+
curl -X POST "https://api.trigger.dev/api/v1/waitpoints/tokens/{tokenId}/complete" \
|
|
231
|
+
-H "Authorization: Bearer {token}" \
|
|
232
|
+
-H "Content-Type: application/json" \
|
|
233
|
+
-d '{"data": { "status": "approved"}}'
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
```python python
|
|
237
|
+
import requests
|
|
238
|
+
|
|
239
|
+
response = requests.post(
|
|
240
|
+
"https://api.trigger.dev/api/v1/waitpoints/tokens/{tokenId}/complete",
|
|
241
|
+
headers={"Authorization": f"Bearer {token}"},
|
|
242
|
+
json={"data": { "status": "approved"}}
|
|
243
|
+
)
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
```ruby ruby
|
|
247
|
+
require "net/http"
|
|
248
|
+
|
|
249
|
+
uri = URI("https://api.trigger.dev/api/v1/waitpoints/tokens/{tokenId}/complete")
|
|
250
|
+
|
|
251
|
+
http = Net::HTTP.new(uri.host, uri.port)
|
|
252
|
+
request = Net::HTTP::Post.new(uri)
|
|
253
|
+
request["Authorization"] = "Bearer {token}"
|
|
254
|
+
request["Content-Type"] = "application/json"
|
|
255
|
+
request.body = JSON.generate({ data: { status: "approved" } })
|
|
256
|
+
|
|
257
|
+
response = http.request(request)
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
```go go
|
|
261
|
+
package main
|
|
262
|
+
|
|
263
|
+
import (
|
|
264
|
+
"bytes"
|
|
265
|
+
"encoding/json"
|
|
266
|
+
"fmt"
|
|
267
|
+
"net/http"
|
|
268
|
+
)
|
|
269
|
+
|
|
270
|
+
func main() {
|
|
271
|
+
url := "https://api.trigger.dev/api/v1/waitpoints/tokens/{tokenId}/complete"
|
|
272
|
+
|
|
273
|
+
payload := map[string]interface{}{
|
|
274
|
+
"data": map[string]interface{}{
|
|
275
|
+
"status": "approved",
|
|
276
|
+
},
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
jsonData, err := json.Marshal(payload)
|
|
280
|
+
if err != nil {
|
|
281
|
+
fmt.Println("Error marshalling payload:", err)
|
|
282
|
+
return
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
|
|
286
|
+
if err != nil {
|
|
287
|
+
fmt.Println("Error creating request:", err)
|
|
288
|
+
return
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
req.Header.Set("Authorization", "Bearer {token}")
|
|
292
|
+
req.Header.Set("Content-Type", "application/json")
|
|
293
|
+
|
|
294
|
+
client := &http.Client{}
|
|
295
|
+
resp, err := client.Do(req)
|
|
296
|
+
if err != nil {
|
|
297
|
+
fmt.Println("Error sending request:", err)
|
|
298
|
+
return
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
defer resp.Body.Close()
|
|
302
|
+
|
|
303
|
+
fmt.Println("Response status:", resp.Status)
|
|
304
|
+
}
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
</CodeGroup>
|
|
308
|
+
|
|
309
|
+
## wait.forToken
|
|
310
|
+
|
|
311
|
+
Wait for a token to be completed.
|
|
312
|
+
|
|
313
|
+
### parameters
|
|
314
|
+
|
|
315
|
+
<ParamField query="token" type="string | { id: string }">
|
|
316
|
+
The token to wait for.
|
|
317
|
+
</ParamField>
|
|
318
|
+
|
|
319
|
+
### returns
|
|
320
|
+
|
|
321
|
+
The `forToken` function returns a result object with the following properties:
|
|
322
|
+
|
|
323
|
+
<ParamField query="ok" type="boolean">
|
|
324
|
+
Whether the token was completed successfully.
|
|
325
|
+
</ParamField>
|
|
326
|
+
|
|
327
|
+
<ParamField query="output" type="any">
|
|
328
|
+
If `ok` is `true`, this will be the output of the token.
|
|
329
|
+
</ParamField>
|
|
330
|
+
|
|
331
|
+
<ParamField query="error" type="Error">
|
|
332
|
+
If `ok` is `false`, this will be the error that occurred. The only error that can occur is a
|
|
333
|
+
timeout error.
|
|
334
|
+
</ParamField>
|
|
335
|
+
|
|
336
|
+
### unwrap()
|
|
337
|
+
|
|
338
|
+
We provide a handy `.unwrap()` method that will throw an error if the result is not ok. This means your happy path is a lot cleaner.
|
|
339
|
+
|
|
340
|
+
```ts
|
|
341
|
+
const approval = await wait.forToken<ApprovalToken>(tokenId).unwrap();
|
|
342
|
+
// unwrap means an error will throw if the waitpoint times out 👆
|
|
343
|
+
|
|
344
|
+
// This is the actual data you sent to the token now, not a result object
|
|
345
|
+
console.log("Approval", approval);
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
### Example
|
|
349
|
+
|
|
350
|
+
```ts
|
|
351
|
+
import { wait } from "@trigger.dev/sdk";
|
|
352
|
+
|
|
353
|
+
const result = await wait.forToken<ApprovalToken>(tokenId);
|
|
354
|
+
|
|
355
|
+
if (result.ok) {
|
|
356
|
+
console.log("Token completed", result.output.status); // "approved" or "rejected"
|
|
357
|
+
} else {
|
|
358
|
+
console.log("Token timed out", result.error);
|
|
359
|
+
}
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
## wait.listTokens
|
|
363
|
+
|
|
364
|
+
List all tokens for an environment.
|
|
365
|
+
|
|
366
|
+
### parameters
|
|
367
|
+
|
|
368
|
+
The `listTokens` function accepts an object with the following properties:
|
|
369
|
+
|
|
370
|
+
<ParamField query="status" type="string | string[]" optional>
|
|
371
|
+
Statuses to filter by. Can be one or more of: `WAITING`, `COMPLETED`, `TIMED_OUT`.
|
|
372
|
+
</ParamField>
|
|
373
|
+
|
|
374
|
+
<ParamField query="idempotencyKey" type="string" optional>
|
|
375
|
+
The idempotency key to filter by.
|
|
376
|
+
</ParamField>
|
|
377
|
+
|
|
378
|
+
<ParamField query="tags" type="string | string[]" optional>
|
|
379
|
+
Tags to filter by.
|
|
380
|
+
</ParamField>
|
|
381
|
+
|
|
382
|
+
<ParamField query="period" type="string" optional>
|
|
383
|
+
The period to filter by, as a duration string such as `1h`, `1d`, `7d` or `30d`.
|
|
384
|
+
</ParamField>
|
|
385
|
+
|
|
386
|
+
<ParamField query="from" type="Date | number" optional>
|
|
387
|
+
The start date to filter by.
|
|
388
|
+
</ParamField>
|
|
389
|
+
|
|
390
|
+
<ParamField query="to" type="Date | number" optional>
|
|
391
|
+
The end date to filter by.
|
|
392
|
+
</ParamField>
|
|
393
|
+
|
|
394
|
+
### returns
|
|
395
|
+
|
|
396
|
+
The `listTokens` function returns a list of tokens that can be iterated over using a for-await-of loop.
|
|
397
|
+
|
|
398
|
+
Each token is an object with the following properties:
|
|
399
|
+
|
|
400
|
+
<ParamField query="id" type="string">
|
|
401
|
+
The ID of the token.
|
|
402
|
+
</ParamField>
|
|
403
|
+
|
|
404
|
+
<ParamField query="url" type="string">
|
|
405
|
+
The URL of the token. This is the URL you can make a POST request to in order to complete the token.
|
|
406
|
+
|
|
407
|
+
The JSON body of the POST request will be used as the output of the token. If there's no body the output will be an empty object `{}`.
|
|
408
|
+
|
|
409
|
+
</ParamField>
|
|
410
|
+
|
|
411
|
+
<ParamField query="status" type="string">
|
|
412
|
+
The status of the token.
|
|
413
|
+
</ParamField>
|
|
414
|
+
|
|
415
|
+
<ParamField query="completedAt" type="Date">
|
|
416
|
+
The date and time the token was completed.
|
|
417
|
+
</ParamField>
|
|
418
|
+
|
|
419
|
+
<ParamField query="timeoutAt" type="Date">
|
|
420
|
+
The date and time the token will timeout.
|
|
421
|
+
</ParamField>
|
|
422
|
+
|
|
423
|
+
<ParamField query="idempotencyKey" type="string">
|
|
424
|
+
The idempotency key of the token.
|
|
425
|
+
</ParamField>
|
|
426
|
+
|
|
427
|
+
<ParamField query="idempotencyKeyExpiresAt" type="Date">
|
|
428
|
+
The date and time the idempotency key will expire.
|
|
429
|
+
</ParamField>
|
|
430
|
+
|
|
431
|
+
<ParamField query="tags" type="string[]">
|
|
432
|
+
The tags of the token.
|
|
433
|
+
</ParamField>
|
|
434
|
+
|
|
435
|
+
<ParamField query="createdAt" type="Date">
|
|
436
|
+
The date and time the token was created.
|
|
437
|
+
</ParamField>
|
|
438
|
+
|
|
439
|
+
<Note>
|
|
440
|
+
The output of the token is not included in the list. To get the output, you need to retrieve the
|
|
441
|
+
token using the `wait.retrieveToken` function.
|
|
442
|
+
</Note>
|
|
443
|
+
|
|
444
|
+
### Example
|
|
445
|
+
|
|
446
|
+
```ts
|
|
447
|
+
import { wait } from "@trigger.dev/sdk";
|
|
448
|
+
|
|
449
|
+
const tokens = await wait.listTokens({
|
|
450
|
+
status: "COMPLETED",
|
|
451
|
+
tags: ["user:123"],
|
|
452
|
+
});
|
|
453
|
+
|
|
454
|
+
for await (const token of tokens) {
|
|
455
|
+
console.log(token);
|
|
456
|
+
}
|
|
457
|
+
```
|
|
458
|
+
|
|
459
|
+
## wait.retrieveToken
|
|
460
|
+
|
|
461
|
+
Retrieve a token by ID.
|
|
462
|
+
|
|
463
|
+
### parameters
|
|
464
|
+
|
|
465
|
+
<ParamField query="id" type="string">
|
|
466
|
+
The ID of the token to retrieve.
|
|
467
|
+
</ParamField>
|
|
468
|
+
|
|
469
|
+
### returns
|
|
470
|
+
|
|
471
|
+
The `retrieveToken` function returns a token object with the following properties:
|
|
472
|
+
|
|
473
|
+
<ParamField query="id" type="string">
|
|
474
|
+
The ID of the token.
|
|
475
|
+
</ParamField>
|
|
476
|
+
|
|
477
|
+
<ParamField query="url" type="string">
|
|
478
|
+
The URL of the token. This is the URL you can make a POST request to in order to complete the token.
|
|
479
|
+
|
|
480
|
+
The JSON body of the POST request will be used as the output of the token. If there's no body the output will be an empty object `{}`.
|
|
481
|
+
|
|
482
|
+
</ParamField>
|
|
483
|
+
|
|
484
|
+
<ParamField query="status" type="string">
|
|
485
|
+
The status of the token.
|
|
486
|
+
</ParamField>
|
|
487
|
+
|
|
488
|
+
<ParamField query="completedAt" type="Date">
|
|
489
|
+
The date and time the token was completed.
|
|
490
|
+
</ParamField>
|
|
491
|
+
|
|
492
|
+
<ParamField query="timeoutAt" type="Date">
|
|
493
|
+
The date and time the token will timeout.
|
|
494
|
+
</ParamField>
|
|
495
|
+
|
|
496
|
+
<ParamField query="idempotencyKey" type="string">
|
|
497
|
+
The idempotency key of the token.
|
|
498
|
+
</ParamField>
|
|
499
|
+
|
|
500
|
+
<ParamField query="idempotencyKeyExpiresAt" type="Date">
|
|
501
|
+
The date and time the idempotency key will expire.
|
|
502
|
+
</ParamField>
|
|
503
|
+
|
|
504
|
+
<ParamField query="tags" type="string[]">
|
|
505
|
+
The tags of the token.
|
|
506
|
+
</ParamField>
|
|
507
|
+
|
|
508
|
+
<ParamField query="createdAt" type="Date">
|
|
509
|
+
The date and time the token was created.
|
|
510
|
+
</ParamField>
|
|
511
|
+
|
|
512
|
+
<ParamField query="output" type="any">
|
|
513
|
+
The output of the token.
|
|
514
|
+
</ParamField>
|
|
515
|
+
|
|
516
|
+
<ParamField query="error" type="Error">
|
|
517
|
+
The error that occurred.
|
|
518
|
+
</ParamField>
|
|
519
|
+
|
|
520
|
+
### Example
|
|
521
|
+
|
|
522
|
+
```ts
|
|
523
|
+
import { wait } from "@trigger.dev/sdk";
|
|
524
|
+
|
|
525
|
+
const token = await wait.retrieveToken(tokenId);
|
|
526
|
+
|
|
527
|
+
console.log(token);
|
|
528
|
+
```
|
|
529
|
+
|
|
530
|
+
## Wait idempotency
|
|
531
|
+
|
|
532
|
+
You can pass an idempotency key to any wait function, allowing you to skip waits if the same idempotency key is used again. This can be useful if you want to skip waits when retrying a task, for example:
|
|
533
|
+
|
|
534
|
+
```ts
|
|
535
|
+
// Specify the idempotency key and TTL when creating a wait token
|
|
536
|
+
const token = await wait.createToken({
|
|
537
|
+
idempotencyKey: "my-idempotency-key",
|
|
538
|
+
idempotencyKeyTTL: "1h",
|
|
539
|
+
});
|
|
540
|
+
```
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Wait for"
|
|
3
|
+
description: "Wait for a period of time, then continue execution."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
import PausedExecutionFree from "/snippets/paused-execution-free.mdx"
|
|
7
|
+
|
|
8
|
+
Inside your tasks you can wait for a period of time before you want execution to continue.
|
|
9
|
+
|
|
10
|
+
```ts /trigger/long-task.ts
|
|
11
|
+
export const veryLongTask = task({
|
|
12
|
+
id: "very-long-task",
|
|
13
|
+
run: async (payload) => {
|
|
14
|
+
await wait.for({ seconds: 5 });
|
|
15
|
+
|
|
16
|
+
await wait.for({ minutes: 10 });
|
|
17
|
+
|
|
18
|
+
await wait.for({ hours: 1 });
|
|
19
|
+
|
|
20
|
+
await wait.for({ days: 1 });
|
|
21
|
+
|
|
22
|
+
await wait.for({ weeks: 1 });
|
|
23
|
+
|
|
24
|
+
await wait.for({ months: 1 });
|
|
25
|
+
|
|
26
|
+
await wait.for({ years: 1 });
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
This allows you to write linear code without having to worry about the complexity of scheduling or managing cron jobs.
|
|
32
|
+
|
|
33
|
+
<PausedExecutionFree />
|
|
34
|
+
|
|
35
|
+
## Wait idempotency
|
|
36
|
+
|
|
37
|
+
You can pass an idempotency key to any wait function, allowing you to skip waits if the same idempotency key is used again. This can be useful if you want to skip waits when retrying a task, for example:
|
|
38
|
+
|
|
39
|
+
```ts
|
|
40
|
+
// Specify the idempotency key and TTL when waiting for a duration:
|
|
41
|
+
await wait.for({ seconds: 10, idempotencyKey: "my-idempotency-key", idempotencyKeyTTL: "1h" });
|
|
42
|
+
```
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Wait until"
|
|
3
|
+
description: "Wait until a date, then continue execution."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
import PausedExecutionFree from "/snippets/paused-execution-free.mdx"
|
|
7
|
+
|
|
8
|
+
This example sends a reminder email to a user at the specified datetime.
|
|
9
|
+
|
|
10
|
+
```ts /trigger/reminder-email.ts
|
|
11
|
+
export const sendReminderEmail = task({
|
|
12
|
+
id: "send-reminder-email",
|
|
13
|
+
run: async (payload: { to: string; name: string; date: string }) => {
|
|
14
|
+
//wait until the date
|
|
15
|
+
await wait.until({ date: new Date(payload.date) });
|
|
16
|
+
|
|
17
|
+
//todo send email
|
|
18
|
+
const { data, error } = await resend.emails.send({
|
|
19
|
+
from: "hello@trigger.dev",
|
|
20
|
+
to: payload.to,
|
|
21
|
+
subject: "Don't forget…",
|
|
22
|
+
html: `<p>Hello ${payload.name},</p><p>...</p>`,
|
|
23
|
+
});
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
This allows you to write linear code without having to worry about the complexity of scheduling or managing cron jobs.
|
|
29
|
+
|
|
30
|
+
<PausedExecutionFree />
|
|
31
|
+
|
|
32
|
+
## `throwIfInThePast`
|
|
33
|
+
|
|
34
|
+
You can optionally throw an error if the date is already in the past when the function is called:
|
|
35
|
+
|
|
36
|
+
```ts
|
|
37
|
+
await wait.until({ date: new Date(date), throwIfInThePast: true });
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
You can of course use try/catch if you want to do something special in this case.
|
|
41
|
+
|
|
42
|
+
## Wait idempotency
|
|
43
|
+
|
|
44
|
+
You can pass an idempotency key to any wait function, allowing you to skip waits if the same idempotency key is used again. This can be useful if you want to skip waits when retrying a task, for example:
|
|
45
|
+
|
|
46
|
+
```ts
|
|
47
|
+
// Specify the idempotency key and TTL when waiting until a date:
|
|
48
|
+
await wait.until({
|
|
49
|
+
date: futureDate,
|
|
50
|
+
idempotencyKey: "my-idempotency-key",
|
|
51
|
+
idempotencyKeyTTL: "1h",
|
|
52
|
+
});
|
|
53
|
+
```
|
package/docs/wait.mdx
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Wait: Overview"
|
|
3
|
+
sidebarTitle: "Overview"
|
|
4
|
+
description: "During your run you can wait for a period of time or for something to happen."
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
import PausedExecutionFree from "/snippets/paused-execution-free.mdx";
|
|
8
|
+
|
|
9
|
+
Waiting allows you to write complex tasks as a set of async code, without having to schedule another task or poll for changes.
|
|
10
|
+
|
|
11
|
+
<PausedExecutionFree />
|
|
12
|
+
|
|
13
|
+
| Function | What it does |
|
|
14
|
+
| :------------------------------------------------ | :--------------------------------------------------------------- |
|
|
15
|
+
| [wait.for()](/wait-for) | Waits for a specific period of time, e.g. 1 day. |
|
|
16
|
+
| [wait.until()](/wait-until) | Waits until the provided `Date`. |
|
|
17
|
+
| [wait.forToken()](/wait-for-token) | Pauses runs until a token is completed. |
|
|
18
|
+
| [inputStream.wait()](/tasks/streams#wait--suspend-until-data-arrives) | Pauses runs until data arrives on an input stream. |
|