Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| dc08b803e2 | |||
| 2186a995ff | |||
| 3d5c521688 | |||
| 2d1710c549 |
@@ -1,5 +1,14 @@
|
||||
# @trigger.dev/airtable
|
||||
|
||||
## 2.3.19
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [2d1710c54]
|
||||
- Updated dependencies [3d5c52168]
|
||||
- @trigger.dev/sdk@2.3.19
|
||||
- @trigger.dev/integration-kit@2.3.19
|
||||
|
||||
## 2.3.18
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@trigger.dev/airtable",
|
||||
"version": "2.3.18",
|
||||
"version": "2.3.19",
|
||||
"description": "Trigger.dev integration for airtable",
|
||||
"main": "./dist/index.js",
|
||||
"types": "./dist/index.d.ts",
|
||||
@@ -25,8 +25,8 @@
|
||||
"typecheck": "tsc --noEmit"
|
||||
},
|
||||
"dependencies": {
|
||||
"@trigger.dev/integration-kit": "workspace:^2.3.18",
|
||||
"@trigger.dev/sdk": "workspace:^2.3.18",
|
||||
"@trigger.dev/integration-kit": "workspace:^2.3.19",
|
||||
"@trigger.dev/sdk": "workspace:^2.3.19",
|
||||
"airtable": "^0.12.1",
|
||||
"zod": "3.22.3"
|
||||
},
|
||||
|
||||
@@ -1,5 +1,14 @@
|
||||
# @trigger.dev/github
|
||||
|
||||
## 2.3.19
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [2d1710c54]
|
||||
- Updated dependencies [3d5c52168]
|
||||
- @trigger.dev/sdk@2.3.19
|
||||
- @trigger.dev/integration-kit@2.3.19
|
||||
|
||||
## 2.3.18
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@trigger.dev/github",
|
||||
"version": "2.3.18",
|
||||
"version": "2.3.19",
|
||||
"description": "The official GitHub integration for Trigger.dev",
|
||||
"main": "./dist/index.js",
|
||||
"types": "./dist/index.d.ts",
|
||||
@@ -30,8 +30,8 @@
|
||||
"@octokit/request-error": "^5.0.1",
|
||||
"@octokit/webhooks": "^12.0.10",
|
||||
"octokit": "^3.1.2",
|
||||
"@trigger.dev/integration-kit": "workspace:^2.3.18",
|
||||
"@trigger.dev/sdk": "workspace:^2.3.18",
|
||||
"@trigger.dev/integration-kit": "workspace:^2.3.19",
|
||||
"@trigger.dev/sdk": "workspace:^2.3.19",
|
||||
"zod": "3.22.3"
|
||||
},
|
||||
"engines": {
|
||||
|
||||
@@ -1,5 +1,14 @@
|
||||
# @trigger.dev/linear
|
||||
|
||||
## 2.3.19
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [2d1710c54]
|
||||
- Updated dependencies [3d5c52168]
|
||||
- @trigger.dev/sdk@2.3.19
|
||||
- @trigger.dev/integration-kit@2.3.19
|
||||
|
||||
## 2.3.18
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@trigger.dev/linear",
|
||||
"version": "2.3.18",
|
||||
"version": "2.3.19",
|
||||
"description": "Trigger.dev integration for @linear/sdk",
|
||||
"main": "./dist/index.js",
|
||||
"types": "./dist/index.d.ts",
|
||||
@@ -26,8 +26,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@linear/sdk": "^8.0.0",
|
||||
"@trigger.dev/integration-kit": "workspace:^2.3.18",
|
||||
"@trigger.dev/sdk": "workspace:^2.3.18",
|
||||
"@trigger.dev/integration-kit": "workspace:^2.3.19",
|
||||
"@trigger.dev/sdk": "workspace:^2.3.19",
|
||||
"zod": "3.22.3"
|
||||
},
|
||||
"engines": {
|
||||
|
||||
@@ -1,5 +1,14 @@
|
||||
# @trigger.dev/slack
|
||||
|
||||
## 2.3.19
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [2d1710c54]
|
||||
- Updated dependencies [3d5c52168]
|
||||
- @trigger.dev/sdk@2.3.19
|
||||
- @trigger.dev/integration-kit@2.3.19
|
||||
|
||||
## 2.3.18
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@trigger.dev/openai",
|
||||
"version": "2.3.18",
|
||||
"version": "2.3.19",
|
||||
"description": "The official OpenAI integration for Trigger.dev",
|
||||
"main": "./dist/index.js",
|
||||
"types": "./dist/index.d.ts",
|
||||
@@ -42,8 +42,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"openai": "^4.16.1",
|
||||
"@trigger.dev/sdk": "workspace:^2.3.18",
|
||||
"@trigger.dev/integration-kit": "workspace:^2.3.18"
|
||||
"@trigger.dev/sdk": "workspace:^2.3.19",
|
||||
"@trigger.dev/integration-kit": "workspace:^2.3.19"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18.0.0"
|
||||
|
||||
@@ -1,5 +1,14 @@
|
||||
# @trigger.dev/plain
|
||||
|
||||
## 2.3.19
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [2d1710c54]
|
||||
- Updated dependencies [3d5c52168]
|
||||
- @trigger.dev/sdk@2.3.19
|
||||
- @trigger.dev/integration-kit@2.3.19
|
||||
|
||||
## 2.3.18
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@trigger.dev/plain",
|
||||
"version": "2.3.18",
|
||||
"version": "2.3.19",
|
||||
"description": "The official Plain.com integration for Trigger.dev",
|
||||
"main": "./dist/index.js",
|
||||
"types": "./dist/index.d.ts",
|
||||
@@ -24,8 +24,8 @@
|
||||
"build:tsup": "tsup"
|
||||
},
|
||||
"dependencies": {
|
||||
"@trigger.dev/integration-kit": "workspace:^2.3.18",
|
||||
"@trigger.dev/sdk": "workspace:^2.3.18",
|
||||
"@trigger.dev/integration-kit": "workspace:^2.3.19",
|
||||
"@trigger.dev/sdk": "workspace:^2.3.19",
|
||||
"@team-plain/typescript-sdk": "^2.7.0"
|
||||
},
|
||||
"engines": {
|
||||
|
||||
@@ -1,5 +1,14 @@
|
||||
# @trigger.dev/replicate
|
||||
|
||||
## 2.3.19
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [2d1710c54]
|
||||
- Updated dependencies [3d5c52168]
|
||||
- @trigger.dev/sdk@2.3.19
|
||||
- @trigger.dev/integration-kit@2.3.19
|
||||
|
||||
## 2.3.18
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@trigger.dev/replicate",
|
||||
"version": "2.3.18",
|
||||
"version": "2.3.19",
|
||||
"description": "Trigger.dev integration for replicate",
|
||||
"main": "./dist/index.js",
|
||||
"types": "./dist/index.d.ts",
|
||||
@@ -25,8 +25,8 @@
|
||||
"typecheck": "tsc --noEmit"
|
||||
},
|
||||
"dependencies": {
|
||||
"@trigger.dev/integration-kit": "workspace:^2.3.18",
|
||||
"@trigger.dev/sdk": "workspace:^2.3.18",
|
||||
"@trigger.dev/integration-kit": "workspace:^2.3.19",
|
||||
"@trigger.dev/sdk": "workspace:^2.3.19",
|
||||
"replicate": "^0.18.1",
|
||||
"zod": "3.22.3"
|
||||
},
|
||||
|
||||
@@ -1,5 +1,14 @@
|
||||
# @trigger.dev/resend
|
||||
|
||||
## 2.3.19
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [2d1710c54]
|
||||
- Updated dependencies [3d5c52168]
|
||||
- @trigger.dev/sdk@2.3.19
|
||||
- @trigger.dev/integration-kit@2.3.19
|
||||
|
||||
## 2.3.18
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@trigger.dev/resend",
|
||||
"version": "2.3.18",
|
||||
"version": "2.3.19",
|
||||
"description": "The official Resend.com integration for Trigger.dev",
|
||||
"main": "./dist/index.js",
|
||||
"types": "./dist/index.d.ts",
|
||||
@@ -24,8 +24,8 @@
|
||||
"build:tsup": "tsup"
|
||||
},
|
||||
"dependencies": {
|
||||
"@trigger.dev/integration-kit": "workspace:^2.3.18",
|
||||
"@trigger.dev/sdk": "workspace:^2.3.18",
|
||||
"@trigger.dev/integration-kit": "workspace:^2.3.19",
|
||||
"@trigger.dev/sdk": "workspace:^2.3.19",
|
||||
"resend": "^2.1.0"
|
||||
},
|
||||
"engines": {
|
||||
|
||||
@@ -1,5 +1,14 @@
|
||||
# @trigger.dev/sendgrid
|
||||
|
||||
## 2.3.19
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [2d1710c54]
|
||||
- Updated dependencies [3d5c52168]
|
||||
- @trigger.dev/sdk@2.3.19
|
||||
- @trigger.dev/integration-kit@2.3.19
|
||||
|
||||
## 2.3.18
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@trigger.dev/sendgrid",
|
||||
"version": "2.3.18",
|
||||
"version": "2.3.19",
|
||||
"description": "Trigger.dev integration for @sendgrid/mail",
|
||||
"main": "./dist/index.js",
|
||||
"types": "./dist/index.d.ts",
|
||||
@@ -26,8 +26,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@sendgrid/mail": "^7.7.0",
|
||||
"@trigger.dev/sdk": "workspace:^2.3.18",
|
||||
"@trigger.dev/integration-kit": "workspace:^2.3.18"
|
||||
"@trigger.dev/sdk": "workspace:^2.3.19",
|
||||
"@trigger.dev/integration-kit": "workspace:^2.3.19"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=16.8.0"
|
||||
|
||||
@@ -1,5 +1,14 @@
|
||||
# @trigger.dev/shopify
|
||||
|
||||
## 2.3.19
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [2d1710c54]
|
||||
- Updated dependencies [3d5c52168]
|
||||
- @trigger.dev/sdk@2.3.19
|
||||
- @trigger.dev/integration-kit@2.3.19
|
||||
|
||||
## 2.3.18
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@trigger.dev/shopify",
|
||||
"version": "2.3.18",
|
||||
"version": "2.3.19",
|
||||
"description": "Trigger.dev integration for @shopify/shopify-api",
|
||||
"main": "./dist/index.js",
|
||||
"types": "./dist/index.d.ts",
|
||||
@@ -26,8 +26,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@shopify/shopify-api": "^8.0.2",
|
||||
"@trigger.dev/sdk": "workspace:^2.3.18",
|
||||
"@trigger.dev/integration-kit": "workspace:^2.3.18",
|
||||
"@trigger.dev/sdk": "workspace:^2.3.19",
|
||||
"@trigger.dev/integration-kit": "workspace:^2.3.19",
|
||||
"zod": "3.22.3"
|
||||
},
|
||||
"engines": {
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
# @trigger.dev/slack
|
||||
|
||||
## 2.3.19
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [2d1710c54]
|
||||
- Updated dependencies [3d5c52168]
|
||||
- @trigger.dev/sdk@2.3.19
|
||||
|
||||
## 2.3.18
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@trigger.dev/slack",
|
||||
"version": "2.3.18",
|
||||
"version": "2.3.19",
|
||||
"description": "The official Slack integration for Trigger.dev",
|
||||
"main": "./dist/index.js",
|
||||
"types": "./dist/index.d.ts",
|
||||
@@ -25,7 +25,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@slack/web-api": "^6.8.1",
|
||||
"@trigger.dev/sdk": "workspace:^2.3.18",
|
||||
"@trigger.dev/sdk": "workspace:^2.3.19",
|
||||
"zod": "3.22.3"
|
||||
},
|
||||
"engines": {
|
||||
|
||||
@@ -1,5 +1,14 @@
|
||||
# @trigger.dev/stripe
|
||||
|
||||
## 2.3.19
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [2d1710c54]
|
||||
- Updated dependencies [3d5c52168]
|
||||
- @trigger.dev/sdk@2.3.19
|
||||
- @trigger.dev/integration-kit@2.3.19
|
||||
|
||||
## 2.3.18
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@trigger.dev/stripe",
|
||||
"version": "2.3.18",
|
||||
"version": "2.3.19",
|
||||
"description": "Trigger.dev integration for stripe",
|
||||
"main": "./dist/index.js",
|
||||
"types": "./dist/index.d.ts",
|
||||
@@ -25,8 +25,8 @@
|
||||
"typecheck": "tsc --noEmit"
|
||||
},
|
||||
"dependencies": {
|
||||
"@trigger.dev/integration-kit": "workspace:^2.3.18",
|
||||
"@trigger.dev/sdk": "workspace:^2.3.18",
|
||||
"@trigger.dev/integration-kit": "workspace:^2.3.19",
|
||||
"@trigger.dev/sdk": "workspace:^2.3.19",
|
||||
"stripe": "^12.14.0",
|
||||
"zod": "3.22.3"
|
||||
},
|
||||
|
||||
@@ -1,5 +1,14 @@
|
||||
# @trigger.dev/supabase
|
||||
|
||||
## 2.3.19
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [2d1710c54]
|
||||
- Updated dependencies [3d5c52168]
|
||||
- @trigger.dev/sdk@2.3.19
|
||||
- @trigger.dev/integration-kit@2.3.19
|
||||
|
||||
## 2.3.18
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@trigger.dev/supabase",
|
||||
"version": "2.3.18",
|
||||
"version": "2.3.19",
|
||||
"description": "Trigger.dev integration for @supabase/supabase-js",
|
||||
"main": "./dist/index.js",
|
||||
"types": "./dist/index.d.ts",
|
||||
@@ -26,8 +26,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@supabase/supabase-js": "^2.26.0",
|
||||
"@trigger.dev/integration-kit": "workspace:^2.3.18",
|
||||
"@trigger.dev/sdk": "workspace:^2.3.18",
|
||||
"@trigger.dev/integration-kit": "workspace:^2.3.19",
|
||||
"@trigger.dev/sdk": "workspace:^2.3.19",
|
||||
"supabase-management-js": "^1.0.0",
|
||||
"zod": "3.22.3"
|
||||
},
|
||||
|
||||
@@ -1,5 +1,14 @@
|
||||
# @trigger.dev/typeform
|
||||
|
||||
## 2.3.19
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [2d1710c54]
|
||||
- Updated dependencies [3d5c52168]
|
||||
- @trigger.dev/sdk@2.3.19
|
||||
- @trigger.dev/integration-kit@2.3.19
|
||||
|
||||
## 2.3.18
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@trigger.dev/typeform",
|
||||
"version": "2.3.18",
|
||||
"version": "2.3.19",
|
||||
"description": "The official Typeform integration for Trigger.dev",
|
||||
"main": "./dist/index.js",
|
||||
"types": "./dist/index.d.ts",
|
||||
@@ -24,8 +24,8 @@
|
||||
"typecheck": "tsc --noEmit"
|
||||
},
|
||||
"dependencies": {
|
||||
"@trigger.dev/integration-kit": "workspace:^2.3.18",
|
||||
"@trigger.dev/sdk": "workspace:^2.3.18",
|
||||
"@trigger.dev/integration-kit": "workspace:^2.3.19",
|
||||
"@trigger.dev/sdk": "workspace:^2.3.19",
|
||||
"@typeform/api-client": "^1.8.0",
|
||||
"zod": "3.22.3"
|
||||
},
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
# @trigger.dev/astro
|
||||
|
||||
## 2.3.19
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [2d1710c54]
|
||||
- Updated dependencies [3d5c52168]
|
||||
- @trigger.dev/sdk@2.3.19
|
||||
|
||||
## 2.3.18
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@trigger.dev/astro",
|
||||
"description": "An Astro-native integration for Trigger.dev background jobs platform",
|
||||
"version": "2.3.18",
|
||||
"version": "2.3.19",
|
||||
"main": "./dist/index.js",
|
||||
"types": "./dist/index.d.ts",
|
||||
"files": [
|
||||
@@ -20,7 +20,7 @@
|
||||
"build:tsup": "tsup"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@trigger.dev/sdk": "workspace:^2.3.18"
|
||||
"@trigger.dev/sdk": "workspace:^2.3.19"
|
||||
},
|
||||
"devDependencies": {
|
||||
"astro": "^3.0.12",
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
# trigger.dev
|
||||
|
||||
## 1.0.8
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [2d1710c54]
|
||||
- Updated dependencies [3d5c52168]
|
||||
- @trigger.dev/core@2.3.19
|
||||
|
||||
## 1.0.7
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "trigger.dev",
|
||||
"version": "1.0.7",
|
||||
"version": "1.0.8",
|
||||
"description": "A Command-Line Interface for Trigger.dev (v3) projects",
|
||||
"main": "./dist/index.js",
|
||||
"types": "./dist/index.d.ts",
|
||||
|
||||
@@ -1,5 +1,14 @@
|
||||
# create-trigger
|
||||
|
||||
## 2.3.19
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [2d1710c54]
|
||||
- Updated dependencies [3d5c52168]
|
||||
- @trigger.dev/core@2.3.19
|
||||
- @trigger.dev/yalt@2.3.19
|
||||
|
||||
## 2.3.18
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@trigger.dev/cli",
|
||||
"version": "2.3.18",
|
||||
"version": "2.3.19",
|
||||
"description": "The Trigger.dev CLI",
|
||||
"main": "./dist/index.js",
|
||||
"types": "./dist/index.d.ts",
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
# @trigger.dev/core-backend
|
||||
|
||||
## 2.3.19
|
||||
|
||||
## 2.3.18
|
||||
|
||||
## 2.3.17
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@trigger.dev/core-backend",
|
||||
"version": "2.3.18",
|
||||
"version": "2.3.19",
|
||||
"description": "Core code used across `@trigger.dev/sdk` and Trigger.dev server",
|
||||
"license": "MIT",
|
||||
"main": "./dist/index.js",
|
||||
|
||||
@@ -1,5 +1,12 @@
|
||||
# internal-platform
|
||||
|
||||
## 2.3.19
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 2d1710c54: v2: Better handle recovering from platform communication errors by auto-yielding back to the platform in case of temporary API failures
|
||||
- 3d5c52168: When a v2 run hits the rate limit, reschedule with the reset date
|
||||
|
||||
## 2.3.18
|
||||
|
||||
## 2.3.17
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@trigger.dev/core",
|
||||
"version": "2.3.18",
|
||||
"version": "2.3.19",
|
||||
"description": "Core code used across the Trigger.dev SDK and platform",
|
||||
"license": "MIT",
|
||||
"main": "./dist/index.js",
|
||||
|
||||
@@ -671,6 +671,13 @@ export type RunJobAutoYieldWithCompletedTaskExecutionError = z.infer<
|
||||
typeof RunJobAutoYieldWithCompletedTaskExecutionErrorSchema
|
||||
>;
|
||||
|
||||
export const RunJobAutoYieldRateLimitErrorSchema = z.object({
|
||||
status: z.literal("AUTO_YIELD_RATE_LIMIT"),
|
||||
reset: z.coerce.number(),
|
||||
});
|
||||
|
||||
export type RunJobAutoYieldRateLimitError = z.infer<typeof RunJobAutoYieldRateLimitErrorSchema>;
|
||||
|
||||
export const RunJobInvalidPayloadErrorSchema = z.object({
|
||||
status: z.literal("INVALID_PAYLOAD"),
|
||||
errors: z.array(SchemaErrorSchema),
|
||||
@@ -719,6 +726,7 @@ export const RunJobErrorResponseSchema = z.union([
|
||||
RunJobAutoYieldExecutionErrorSchema,
|
||||
RunJobAutoYieldWithCompletedTaskExecutionErrorSchema,
|
||||
RunJobYieldExecutionErrorSchema,
|
||||
RunJobAutoYieldRateLimitErrorSchema,
|
||||
RunJobErrorSchema,
|
||||
RunJobUnresolvedAuthErrorSchema,
|
||||
RunJobInvalidPayloadErrorSchema,
|
||||
@@ -741,6 +749,7 @@ export const RunJobResponseSchema = z.discriminatedUnion("status", [
|
||||
RunJobAutoYieldExecutionErrorSchema,
|
||||
RunJobAutoYieldWithCompletedTaskExecutionErrorSchema,
|
||||
RunJobYieldExecutionErrorSchema,
|
||||
RunJobAutoYieldRateLimitErrorSchema,
|
||||
RunJobErrorSchema,
|
||||
RunJobUnresolvedAuthErrorSchema,
|
||||
RunJobInvalidPayloadErrorSchema,
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
# @trigger.dev/eslint-plugin
|
||||
|
||||
## 2.3.19
|
||||
|
||||
## 2.3.18
|
||||
|
||||
## 2.3.17
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@trigger.dev/eslint-plugin",
|
||||
"version": "2.3.18",
|
||||
"version": "2.3.19",
|
||||
"description": "ESLint plugin with trigger.dev best practices",
|
||||
"keywords": [
|
||||
"eslint",
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
# @trigger.dev/express
|
||||
|
||||
## 2.3.19
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [2d1710c54]
|
||||
- Updated dependencies [3d5c52168]
|
||||
- @trigger.dev/sdk@2.3.19
|
||||
|
||||
## 2.3.18
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@trigger.dev/express",
|
||||
"version": "2.3.18",
|
||||
"version": "2.3.19",
|
||||
"description": "Official Express adapter for Trigger.dev",
|
||||
"license": "MIT",
|
||||
"main": "./dist/index.js",
|
||||
@@ -23,7 +23,7 @@
|
||||
"./package.json": "./package.json"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@trigger.dev/sdk": "workspace:^2.3.18",
|
||||
"@trigger.dev/sdk": "workspace:^2.3.19",
|
||||
"@trigger.dev/tsconfig": "workspace:*",
|
||||
"@types/debug": "^4.1.7",
|
||||
"@types/express": "^4.17.13",
|
||||
@@ -39,7 +39,7 @@
|
||||
"build:tsup": "tsup"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@trigger.dev/sdk": "workspace:^2.3.18"
|
||||
"@trigger.dev/sdk": "workspace:^2.3.19"
|
||||
},
|
||||
"dependencies": {
|
||||
"debug": "^4.3.4",
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
# @trigger.dev/hono
|
||||
|
||||
## 2.3.19
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [2d1710c54]
|
||||
- Updated dependencies [3d5c52168]
|
||||
- @trigger.dev/sdk@2.3.19
|
||||
|
||||
## 2.3.18
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@trigger.dev/hono",
|
||||
"version": "2.3.18",
|
||||
"version": "2.3.19",
|
||||
"description": "A Trigger.dev adapter for Hono.dev",
|
||||
"license": "MIT",
|
||||
"main": "./dist/index.js",
|
||||
@@ -32,7 +32,7 @@
|
||||
},
|
||||
"peerDependencies": {
|
||||
"hono": "3.x",
|
||||
"@trigger.dev/sdk": "workspace:^2.3.18"
|
||||
"@trigger.dev/sdk": "workspace:^2.3.19"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@trigger.dev/tsconfig": "workspace:*",
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
# @trigger.dev/integration-kit
|
||||
|
||||
## 2.3.19
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [2d1710c54]
|
||||
- Updated dependencies [3d5c52168]
|
||||
- @trigger.dev/core@2.3.19
|
||||
|
||||
## 2.3.18
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@trigger.dev/integration-kit",
|
||||
"version": "2.3.18",
|
||||
"version": "2.3.19",
|
||||
"description": "Trigger.dev Integration Kit has helpers to make creating integrations easier",
|
||||
"license": "MIT",
|
||||
"main": "./dist/index.js",
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
# @trigger.dev/nestjs
|
||||
|
||||
## 2.3.19
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [2d1710c54]
|
||||
- Updated dependencies [3d5c52168]
|
||||
- @trigger.dev/sdk@2.3.19
|
||||
|
||||
## 2.3.18
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@trigger.dev/nestjs",
|
||||
"version": "2.3.18",
|
||||
"version": "2.3.19",
|
||||
"description": "Official NestJS adapter for Trigger.dev",
|
||||
"license": "MIT",
|
||||
"main": "./dist/index.js",
|
||||
@@ -23,7 +23,7 @@
|
||||
"./package.json": "./package.json"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@trigger.dev/sdk": "workspace:^2.3.18",
|
||||
"@trigger.dev/sdk": "workspace:^2.3.19",
|
||||
"@trigger.dev/tsconfig": "workspace:*",
|
||||
"@types/debug": "^4.1.7",
|
||||
"@types/express": "^4.17.13",
|
||||
@@ -41,7 +41,7 @@
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@nestjs/common": ">=10.0.0",
|
||||
"@trigger.dev/sdk": "workspace:^2.3.18"
|
||||
"@trigger.dev/sdk": "workspace:^2.3.19"
|
||||
},
|
||||
"dependencies": {
|
||||
"@nestjs/common": "^10.2.4",
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
# @trigger.dev/nextjs
|
||||
|
||||
## 2.3.19
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [2d1710c54]
|
||||
- Updated dependencies [3d5c52168]
|
||||
- @trigger.dev/sdk@2.3.19
|
||||
|
||||
## 2.3.18
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@trigger.dev/nextjs",
|
||||
"version": "2.3.18",
|
||||
"version": "2.3.19",
|
||||
"description": "Trigger.dev Next.js integration",
|
||||
"license": "MIT",
|
||||
"main": "./dist/index.js",
|
||||
@@ -41,7 +41,7 @@
|
||||
"build:tsup": "tsup"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@trigger.dev/sdk": "workspace:^2.3.18",
|
||||
"@trigger.dev/sdk": "workspace:^2.3.19",
|
||||
"next": ">=12.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
# @trigger.dev/react
|
||||
|
||||
## 2.3.19
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [2d1710c54]
|
||||
- Updated dependencies [3d5c52168]
|
||||
- @trigger.dev/core@2.3.19
|
||||
|
||||
## 2.3.18
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@trigger.dev/react",
|
||||
"version": "2.3.18",
|
||||
"version": "2.3.19",
|
||||
"description": "Trigger.dev React SDK",
|
||||
"license": "MIT",
|
||||
"types": "dist/index.d.ts",
|
||||
@@ -27,7 +27,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@tanstack/react-query": "5.0.0-beta.2",
|
||||
"@trigger.dev/core": "workspace:^2.3.18",
|
||||
"@trigger.dev/core": "workspace:^2.3.19",
|
||||
"debug": "^4.3.4",
|
||||
"zod": "3.22.3"
|
||||
},
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
# @trigger.dev/remix
|
||||
|
||||
## 2.3.19
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [2d1710c54]
|
||||
- Updated dependencies [3d5c52168]
|
||||
- @trigger.dev/sdk@2.3.19
|
||||
|
||||
## 2.3.18
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@trigger.dev/remix",
|
||||
"version": "2.3.18",
|
||||
"version": "2.3.19",
|
||||
"description": "Trigger.dev Remix integration",
|
||||
"license": "MIT",
|
||||
"main": "./dist/index.js",
|
||||
@@ -39,7 +39,7 @@
|
||||
"build:tsup": "tsup"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@trigger.dev/sdk": "workspace:^2.3.18",
|
||||
"@trigger.dev/sdk": "workspace:^2.3.19",
|
||||
"@remix-run/server-runtime": ">1.19.0"
|
||||
},
|
||||
"dependencies": {
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
# @trigger.dev/sveltekit
|
||||
|
||||
## 2.3.19
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [2d1710c54]
|
||||
- Updated dependencies [3d5c52168]
|
||||
- @trigger.dev/sdk@2.3.19
|
||||
|
||||
## 2.3.18
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@trigger.dev/sveltekit",
|
||||
"version": "2.3.18",
|
||||
"version": "2.3.19",
|
||||
"description": "Trigger.dev svelteKit integration",
|
||||
"license": "MIT",
|
||||
"main": "./dist/index.js",
|
||||
@@ -39,7 +39,7 @@
|
||||
"build:tsup": "tsup"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@trigger.dev/sdk": "workspace:^2.3.18"
|
||||
"@trigger.dev/sdk": "workspace:^2.3.19"
|
||||
},
|
||||
"dependencies": {
|
||||
"debug": "^4.3.4"
|
||||
|
||||
@@ -1,5 +1,14 @@
|
||||
# @trigger.dev/testing
|
||||
|
||||
## 2.3.19
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [2d1710c54]
|
||||
- Updated dependencies [3d5c52168]
|
||||
- @trigger.dev/sdk@2.3.19
|
||||
- @trigger.dev/core@2.3.19
|
||||
|
||||
## 2.3.18
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@trigger.dev/testing",
|
||||
"description": "A collection of useful tools to write tests for Trigger.dev.",
|
||||
"version": "2.3.18",
|
||||
"version": "2.3.19",
|
||||
"license": "MIT",
|
||||
"main": "./dist/index.js",
|
||||
"types": "./dist/index.d.ts",
|
||||
|
||||
@@ -1,5 +1,16 @@
|
||||
# @trigger.dev/sdk
|
||||
|
||||
## 2.3.19
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 2d1710c54: v2: Better handle recovering from platform communication errors by auto-yielding back to the platform in case of temporary API failures
|
||||
- 3d5c52168: When a v2 run hits the rate limit, reschedule with the reset date
|
||||
- Updated dependencies [2d1710c54]
|
||||
- Updated dependencies [3d5c52168]
|
||||
- @trigger.dev/core@2.3.19
|
||||
- @trigger.dev/core-backend@2.3.19
|
||||
|
||||
## 2.3.18
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@trigger.dev/sdk",
|
||||
"version": "2.3.18",
|
||||
"version": "2.3.19",
|
||||
"description": "trigger.dev Node.JS SDK",
|
||||
"license": "MIT",
|
||||
"main": "./dist/index.js",
|
||||
@@ -30,8 +30,8 @@
|
||||
"typecheck": "tsc --noEmit"
|
||||
},
|
||||
"dependencies": {
|
||||
"@trigger.dev/core": "workspace:^2.3.18",
|
||||
"@trigger.dev/core-backend": "workspace:^2.3.18",
|
||||
"@trigger.dev/core": "workspace:^2.3.19",
|
||||
"@trigger.dev/core-backend": "workspace:^2.3.19",
|
||||
"chalk": "^5.2.0",
|
||||
"cronstrue": "^2.21.0",
|
||||
"debug": "^4.3.4",
|
||||
|
||||
@@ -44,6 +44,7 @@ import { env } from "node:process";
|
||||
|
||||
import { z } from "zod";
|
||||
import { KeyValueStoreClient } from "./store/keyValueStoreClient";
|
||||
import { AutoYieldRateLimitError } from "./errors";
|
||||
|
||||
export type ApiClientOptions = {
|
||||
apiKey?: string;
|
||||
@@ -74,6 +75,18 @@ export type RunRecord = {
|
||||
event: ApiEventLog;
|
||||
};
|
||||
|
||||
export class UnknownVersionError extends Error {
|
||||
constructor(version: string) {
|
||||
super(`Unknown version ${version}`);
|
||||
}
|
||||
}
|
||||
|
||||
const MAX_RETRIES = 8;
|
||||
const EXPONENT_FACTOR = 2;
|
||||
const MIN_DELAY_IN_MS = 80;
|
||||
const MAX_DELAY_IN_MS = 2000;
|
||||
const JITTER_IN_MS = 50;
|
||||
|
||||
export class ApiClient {
|
||||
#apiUrl: string;
|
||||
#options: ApiClientOptions;
|
||||
@@ -129,11 +142,10 @@ export class ApiClient {
|
||||
) {
|
||||
const apiKey = await this.#apiKey();
|
||||
|
||||
this.#logger.debug("Running Task", {
|
||||
task,
|
||||
});
|
||||
this.#logger.debug(`[ApiClient] runTask ${task.displayKey}`);
|
||||
|
||||
return await zodfetchWithVersions(
|
||||
this.#logger,
|
||||
{
|
||||
[API_VERSIONS.LAZY_LOADED_CACHED_TASKS]: RunTaskResponseWithCachedTasksBodySchema,
|
||||
},
|
||||
@@ -771,6 +783,7 @@ async function zodfetchWithVersions<
|
||||
TUnversionedResponseBodySchema extends z.ZodTypeAny,
|
||||
TOptional extends boolean = false,
|
||||
>(
|
||||
logger: Logger,
|
||||
versionedSchemaMap: TVersionedResponseBodyMap,
|
||||
unversionedSchema: TUnversionedResponseBodySchema,
|
||||
url: string,
|
||||
@@ -785,66 +798,141 @@ async function zodfetchWithVersions<
|
||||
? VersionedResponseBody<TVersionedResponseBodyMap, TUnversionedResponseBodySchema> | undefined
|
||||
: VersionedResponseBody<TVersionedResponseBodyMap, TUnversionedResponseBodySchema>
|
||||
> {
|
||||
const response = await fetch(url, requestInitWithCache(requestInit));
|
||||
try {
|
||||
const fullRequestInit = requestInitWithCache(requestInit);
|
||||
|
||||
if (
|
||||
(!requestInit || requestInit.method === "GET") &&
|
||||
response.status === 404 &&
|
||||
options?.optional
|
||||
) {
|
||||
// @ts-ignore
|
||||
return;
|
||||
}
|
||||
const response = await fetch(url, fullRequestInit);
|
||||
|
||||
if (response.status >= 400 && response.status < 500) {
|
||||
const body = await response.json();
|
||||
|
||||
throw new Error(body.error);
|
||||
}
|
||||
|
||||
if (response.status >= 500 && retryCount < 6) {
|
||||
// retry with exponential backoff and jitter
|
||||
const delay = exponentialBackoff(retryCount + 1, 2, 50, 1150, 50);
|
||||
|
||||
await new Promise((resolve) => setTimeout(resolve, delay));
|
||||
|
||||
return zodfetchWithVersions(
|
||||
versionedSchemaMap,
|
||||
unversionedSchema,
|
||||
logger.debug(`[ApiClient] zodfetchWithVersions ${url} (attempt ${retryCount + 1})`, {
|
||||
url,
|
||||
requestInit,
|
||||
options,
|
||||
retryCount + 1
|
||||
);
|
||||
}
|
||||
retryCount,
|
||||
requestHeaders: fullRequestInit?.headers,
|
||||
responseHeaders: Object.fromEntries(response.headers.entries()),
|
||||
});
|
||||
|
||||
if (response.status !== 200) {
|
||||
throw new Error(
|
||||
options?.errorMessage ?? `Failed to fetch ${url}, got status code ${response.status}`
|
||||
);
|
||||
}
|
||||
if (
|
||||
(!requestInit || requestInit.method === "GET") &&
|
||||
response.status === 404 &&
|
||||
options?.optional
|
||||
) {
|
||||
// @ts-ignore
|
||||
return;
|
||||
}
|
||||
|
||||
const jsonBody = await response.json();
|
||||
//rate limit, so we want to reschedule
|
||||
if (response.status === 429) {
|
||||
//unix timestamp in milliseconds
|
||||
const retryAfter = response.headers.get("x-ratelimit-reset");
|
||||
if (retryAfter) {
|
||||
throw new AutoYieldRateLimitError(parseInt(retryAfter));
|
||||
}
|
||||
}
|
||||
|
||||
const version = response.headers.get("trigger-version");
|
||||
if (response.status >= 400 && response.status < 500) {
|
||||
const rawBody = await safeResponseText(response);
|
||||
const body = safeJsonParse(rawBody);
|
||||
|
||||
logger.error(`[ApiClient] zodfetchWithVersions failed with ${response.status}`, {
|
||||
url,
|
||||
retryCount,
|
||||
requestHeaders: fullRequestInit?.headers,
|
||||
responseHeaders: Object.fromEntries(response.headers.entries()),
|
||||
status: response.status,
|
||||
rawBody,
|
||||
});
|
||||
|
||||
if (body && body.error) {
|
||||
throw new Error(body.error);
|
||||
} else {
|
||||
throw new Error(rawBody);
|
||||
}
|
||||
}
|
||||
|
||||
if (response.status >= 500 && retryCount < MAX_RETRIES) {
|
||||
// retry with exponential backoff and jitter
|
||||
const delay = exponentialBackoff(retryCount + 1);
|
||||
|
||||
await new Promise((resolve) => setTimeout(resolve, delay));
|
||||
|
||||
return zodfetchWithVersions(
|
||||
logger,
|
||||
versionedSchemaMap,
|
||||
unversionedSchema,
|
||||
url,
|
||||
requestInit,
|
||||
options,
|
||||
retryCount + 1
|
||||
);
|
||||
}
|
||||
|
||||
if (response.status !== 200) {
|
||||
const rawBody = await safeResponseText(response);
|
||||
|
||||
logger.error(`[ApiClient] zodfetchWithVersions failed with ${response.status}`, {
|
||||
url,
|
||||
retryCount,
|
||||
requestHeaders: fullRequestInit?.headers,
|
||||
responseHeaders: Object.fromEntries(response.headers.entries()),
|
||||
status: response.status,
|
||||
rawBody,
|
||||
});
|
||||
|
||||
throw new Error(
|
||||
options?.errorMessage ?? `Failed to fetch ${url}, got status code ${response.status}`
|
||||
);
|
||||
}
|
||||
|
||||
const jsonBody = await response.json();
|
||||
|
||||
const version = response.headers.get("trigger-version");
|
||||
|
||||
if (!version) {
|
||||
return {
|
||||
version: "unversioned",
|
||||
body: unversionedSchema.parse(jsonBody),
|
||||
};
|
||||
}
|
||||
|
||||
const versionedSchema = versionedSchemaMap[version];
|
||||
|
||||
if (!versionedSchema) {
|
||||
throw new UnknownVersionError(version);
|
||||
}
|
||||
|
||||
if (!version) {
|
||||
return {
|
||||
version: "unversioned",
|
||||
body: unversionedSchema.parse(jsonBody),
|
||||
version,
|
||||
body: versionedSchema.parse(jsonBody),
|
||||
};
|
||||
} catch (error) {
|
||||
if (error instanceof UnknownVersionError || error instanceof AutoYieldRateLimitError) {
|
||||
throw error;
|
||||
}
|
||||
|
||||
logger.error(`[ApiClient] zodfetchWithVersions failed with a connection error`, {
|
||||
url,
|
||||
retryCount,
|
||||
error,
|
||||
});
|
||||
|
||||
if (retryCount < MAX_RETRIES) {
|
||||
// retry with exponential backoff and jitter
|
||||
const delay = exponentialBackoff(retryCount + 1);
|
||||
|
||||
await new Promise((resolve) => setTimeout(resolve, delay));
|
||||
|
||||
return zodfetchWithVersions(
|
||||
logger,
|
||||
versionedSchemaMap,
|
||||
unversionedSchema,
|
||||
url,
|
||||
requestInit,
|
||||
options,
|
||||
retryCount + 1
|
||||
);
|
||||
}
|
||||
|
||||
throw error;
|
||||
}
|
||||
|
||||
const versionedSchema = versionedSchemaMap[version];
|
||||
|
||||
if (!versionedSchema) {
|
||||
throw new Error(`Unknown version ${version}`);
|
||||
}
|
||||
|
||||
return {
|
||||
version,
|
||||
body: versionedSchema.parse(jsonBody),
|
||||
};
|
||||
}
|
||||
|
||||
function requestInitWithCache(requestInit?: RequestInit): RequestInit {
|
||||
@@ -873,9 +961,9 @@ async function fetchHead(
|
||||
};
|
||||
const response = await fetch(url, requestInitWithCache(requestInit));
|
||||
|
||||
if (response.status >= 500 && retryCount < 6) {
|
||||
if (response.status >= 500 && retryCount < MAX_RETRIES) {
|
||||
// retry with exponential backoff and jitter
|
||||
const delay = exponentialBackoff(retryCount + 1, 2, 50, 1150, 50);
|
||||
const delay = exponentialBackoff(retryCount + 1);
|
||||
|
||||
await new Promise((resolve) => setTimeout(resolve, delay));
|
||||
|
||||
@@ -897,56 +985,93 @@ async function zodfetch<TResponseSchema extends z.ZodTypeAny, TOptional extends
|
||||
): Promise<
|
||||
TOptional extends true ? z.infer<TResponseSchema> | undefined : z.infer<TResponseSchema>
|
||||
> {
|
||||
const response = await fetch(url, requestInitWithCache(requestInit));
|
||||
try {
|
||||
const response = await fetch(url, requestInitWithCache(requestInit));
|
||||
|
||||
if (
|
||||
(!requestInit || requestInit.method === "GET") &&
|
||||
response.status === 404 &&
|
||||
options?.optional
|
||||
) {
|
||||
// @ts-ignore
|
||||
return;
|
||||
if (
|
||||
(!requestInit || requestInit.method === "GET") &&
|
||||
response.status === 404 &&
|
||||
options?.optional
|
||||
) {
|
||||
// @ts-ignore
|
||||
return;
|
||||
}
|
||||
|
||||
//rate limit, so we want to reschedule
|
||||
if (response.status === 429) {
|
||||
//unix timestamp in milliseconds
|
||||
const retryAfter = response.headers.get("x-ratelimit-reset");
|
||||
if (retryAfter) {
|
||||
throw new AutoYieldRateLimitError(parseInt(retryAfter));
|
||||
}
|
||||
}
|
||||
|
||||
if (response.status >= 400 && response.status < 500) {
|
||||
const body = await response.json();
|
||||
|
||||
throw new Error(body.error);
|
||||
}
|
||||
|
||||
if (response.status >= 500 && retryCount < MAX_RETRIES) {
|
||||
// retry with exponential backoff and jitter
|
||||
const delay = exponentialBackoff(retryCount + 1);
|
||||
|
||||
await new Promise((resolve) => setTimeout(resolve, delay));
|
||||
|
||||
return zodfetch(schema, url, requestInit, options, retryCount + 1);
|
||||
}
|
||||
|
||||
if (response.status !== 200) {
|
||||
throw new Error(
|
||||
options?.errorMessage ?? `Failed to fetch ${url}, got status code ${response.status}`
|
||||
);
|
||||
}
|
||||
|
||||
const jsonBody = await response.json();
|
||||
|
||||
return schema.parse(jsonBody);
|
||||
} catch (error) {
|
||||
if (error instanceof AutoYieldRateLimitError) {
|
||||
throw error;
|
||||
}
|
||||
|
||||
if (retryCount < MAX_RETRIES) {
|
||||
// retry with exponential backoff and jitter
|
||||
const delay = exponentialBackoff(retryCount + 1);
|
||||
|
||||
await new Promise((resolve) => setTimeout(resolve, delay));
|
||||
|
||||
return zodfetch(schema, url, requestInit, options, retryCount + 1);
|
||||
}
|
||||
|
||||
throw error;
|
||||
}
|
||||
|
||||
if (response.status >= 400 && response.status < 500) {
|
||||
const body = await response.json();
|
||||
|
||||
throw new Error(body.error);
|
||||
}
|
||||
|
||||
if (response.status >= 500 && retryCount < 6) {
|
||||
// retry with exponential backoff and jitter
|
||||
const delay = exponentialBackoff(retryCount + 1, 2, 50, 1150, 50);
|
||||
|
||||
await new Promise((resolve) => setTimeout(resolve, delay));
|
||||
|
||||
return zodfetch(schema, url, requestInit, options, retryCount + 1);
|
||||
}
|
||||
|
||||
if (response.status !== 200) {
|
||||
throw new Error(
|
||||
options?.errorMessage ?? `Failed to fetch ${url}, got status code ${response.status}`
|
||||
);
|
||||
}
|
||||
|
||||
const jsonBody = await response.json();
|
||||
|
||||
return schema.parse(jsonBody);
|
||||
}
|
||||
|
||||
function exponentialBackoff(
|
||||
retryCount: number,
|
||||
exponential: number,
|
||||
minDelay: number,
|
||||
maxDelay: number,
|
||||
jitter: number
|
||||
): number {
|
||||
// First retry will have a delay of 80ms, second 160ms, third 320ms, etc.
|
||||
function exponentialBackoff(retryCount: number): number {
|
||||
// Calculate the delay using the exponential backoff formula
|
||||
const delay = Math.min(Math.pow(exponential, retryCount) * minDelay, maxDelay);
|
||||
const delay = Math.min(Math.pow(EXPONENT_FACTOR, retryCount) * MIN_DELAY_IN_MS, MAX_DELAY_IN_MS);
|
||||
|
||||
// Calculate the jitter
|
||||
const jitterValue = Math.random() * jitter;
|
||||
const jitterValue = Math.random() * JITTER_IN_MS;
|
||||
|
||||
// Return the calculated delay with jitter
|
||||
return delay + jitterValue;
|
||||
}
|
||||
|
||||
function safeJsonParse(rawBody: string) {
|
||||
try {
|
||||
return JSON.parse(rawBody);
|
||||
} catch (error) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
async function safeResponseText(response: Response) {
|
||||
try {
|
||||
return await response.text();
|
||||
} catch (error) {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,6 +45,10 @@ export class AutoYieldWithCompletedTaskExecutionError {
|
||||
) {}
|
||||
}
|
||||
|
||||
export class AutoYieldRateLimitError {
|
||||
constructor(public resetAtTimestamp: number) {}
|
||||
}
|
||||
|
||||
export class ParsedPayloadSchemaError {
|
||||
constructor(public schemaErrors: SchemaError[]) {}
|
||||
}
|
||||
@@ -56,6 +60,7 @@ export type TriggerInternalError =
|
||||
| YieldExecutionError
|
||||
| AutoYieldExecutionError
|
||||
| AutoYieldWithCompletedTaskExecutionError
|
||||
| AutoYieldRateLimitError
|
||||
| ResumeWithParallelTaskError;
|
||||
|
||||
/** Use this function if you're using a `try/catch` block to catch errors.
|
||||
@@ -72,6 +77,7 @@ export function isTriggerError(err: unknown): err is TriggerInternalError {
|
||||
err instanceof YieldExecutionError ||
|
||||
err instanceof AutoYieldExecutionError ||
|
||||
err instanceof AutoYieldWithCompletedTaskExecutionError ||
|
||||
err instanceof AutoYieldRateLimitError ||
|
||||
err instanceof ResumeWithParallelTaskError
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import {
|
||||
API_VERSIONS,
|
||||
CachedTask,
|
||||
CompleteTaskBodyV2Input,
|
||||
ConnectionAuth,
|
||||
CronOptions,
|
||||
ErrorWithStackSchema,
|
||||
@@ -11,6 +12,7 @@ import {
|
||||
FetchTimeoutOptions,
|
||||
InitialStatusUpdate,
|
||||
IntervalOptions,
|
||||
RunTaskBodyInput,
|
||||
RunTaskOptions,
|
||||
SendEvent,
|
||||
SendEventOptions,
|
||||
@@ -26,6 +28,7 @@ import { webcrypto } from "node:crypto";
|
||||
import { ApiClient } from "./apiClient";
|
||||
import {
|
||||
AutoYieldExecutionError,
|
||||
AutoYieldRateLimitError,
|
||||
AutoYieldWithCompletedTaskExecutionError,
|
||||
CanceledWithTaskError,
|
||||
ErrorWithTask,
|
||||
@@ -1161,19 +1164,18 @@ export class IO {
|
||||
|
||||
const runOptions = { ...(options ?? {}), parseOutput: undefined };
|
||||
|
||||
const response = await this._apiClient.runTask(
|
||||
this._id,
|
||||
{
|
||||
idempotencyKey,
|
||||
displayKey: typeof cacheKey === "string" ? cacheKey : undefined,
|
||||
noop: false,
|
||||
...(runOptions ?? {}),
|
||||
parentId,
|
||||
},
|
||||
{
|
||||
cachedTasksCursor: this._cachedTasksCursor,
|
||||
}
|
||||
);
|
||||
const response = await this.#doRunTask({
|
||||
idempotencyKey,
|
||||
displayKey: typeof cacheKey === "string" ? cacheKey : undefined,
|
||||
noop: false,
|
||||
...(runOptions ?? {}),
|
||||
parentId,
|
||||
});
|
||||
|
||||
if (!response) {
|
||||
this.#forceYield("failed_task_run");
|
||||
throw new Error("Failed to run task"); // this shouldn't actually happen, because forceYield will throw
|
||||
}
|
||||
|
||||
const task =
|
||||
response.version === API_VERSIONS.LAZY_LOADED_CACHED_TASKS
|
||||
@@ -1267,11 +1269,16 @@ export class IO {
|
||||
|
||||
this.#detectAutoYield("before_complete_task", 500, task, output);
|
||||
|
||||
const completedTask = await this._apiClient.completeTask(this._id, task.id, {
|
||||
const completedTask = await this.#doCompleteTask(task.id, {
|
||||
output,
|
||||
properties: task.outputProperties ?? undefined,
|
||||
});
|
||||
|
||||
if (!completedTask) {
|
||||
this.#forceYield("before_complete_task", task, output);
|
||||
throw new Error("Failed to complete task"); // this shouldn't actually happen, because forceYield will throw
|
||||
}
|
||||
|
||||
if (completedTask.forceYield) {
|
||||
this._logger.debug("Forcing yield after task completed", {
|
||||
idempotencyKey,
|
||||
@@ -1448,6 +1455,32 @@ export class IO {
|
||||
this._cachedTasks.set(task.idempotencyKey, task);
|
||||
}
|
||||
|
||||
async #doRunTask(task: RunTaskBodyInput) {
|
||||
try {
|
||||
return await this._apiClient.runTask(this._id, task, {
|
||||
cachedTasksCursor: this._cachedTasksCursor,
|
||||
});
|
||||
} catch (error) {
|
||||
if (error instanceof AutoYieldRateLimitError) {
|
||||
this._logger.debug("AutoYieldRateLimitError", {
|
||||
error,
|
||||
});
|
||||
|
||||
throw error;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
async #doCompleteTask(id: string, task: CompleteTaskBodyV2Input) {
|
||||
try {
|
||||
return await this._apiClient.completeTask(this._id, id, task);
|
||||
} catch (error) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
#detectAutoYield(location: string, threshold: number = 1500, task?: ServerTask, output?: string) {
|
||||
const timeRemaining = this.#getRemainingTimeInMillis();
|
||||
|
||||
@@ -1469,11 +1502,24 @@ export class IO {
|
||||
}
|
||||
}
|
||||
|
||||
#forceYield(location: string) {
|
||||
#forceYield(location: string, task?: ServerTask, output?: string) {
|
||||
const timeRemaining = this.#getRemainingTimeInMillis();
|
||||
|
||||
if (timeRemaining) {
|
||||
throw new AutoYieldExecutionError(location, timeRemaining, this.#getTimeElapsed());
|
||||
if (task) {
|
||||
throw new AutoYieldWithCompletedTaskExecutionError(
|
||||
task.id,
|
||||
task.outputProperties ?? [],
|
||||
{
|
||||
location,
|
||||
timeRemaining,
|
||||
timeElapsed: this.#getTimeElapsed(),
|
||||
},
|
||||
output
|
||||
);
|
||||
} else {
|
||||
throw new AutoYieldExecutionError(location, timeRemaining, this.#getTimeElapsed());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -52,6 +52,7 @@ import { ApiClient } from "./apiClient";
|
||||
import { ConcurrencyLimit, ConcurrencyLimitOptions } from "./concurrencyLimit";
|
||||
import {
|
||||
AutoYieldExecutionError,
|
||||
AutoYieldRateLimitError,
|
||||
AutoYieldWithCompletedTaskExecutionError,
|
||||
CanceledWithTaskError,
|
||||
ErrorWithTask,
|
||||
@@ -198,11 +199,15 @@ export class TriggerClient {
|
||||
constructor(options: Prettify<TriggerClientOptions>) {
|
||||
this.id = options.id;
|
||||
this.#options = options;
|
||||
this.#client = new ApiClient(this.#options);
|
||||
this.#internalLogger = new Logger("trigger.dev", this.#options.verbose ? "debug" : "log", [
|
||||
"output",
|
||||
"noopTasksSet",
|
||||
]);
|
||||
this.#client = new ApiClient({
|
||||
logLevel: this.#options.verbose ? "debug" : "log",
|
||||
...this.#options,
|
||||
});
|
||||
|
||||
this.#envStore = new KeyValueStore(this.#client);
|
||||
}
|
||||
|
||||
@@ -1231,6 +1236,13 @@ export class TriggerClient {
|
||||
};
|
||||
}
|
||||
|
||||
if (error instanceof AutoYieldRateLimitError) {
|
||||
return {
|
||||
status: "AUTO_YIELD_RATE_LIMIT",
|
||||
reset: error.resetAtTimestamp,
|
||||
};
|
||||
}
|
||||
|
||||
if (error instanceof YieldExecutionError) {
|
||||
return { status: "YIELD_EXECUTION", key: error.key };
|
||||
}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
# @trigger.dev/yalt
|
||||
|
||||
## 2.3.19
|
||||
|
||||
## 2.3.18
|
||||
|
||||
## 2.3.17
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@trigger.dev/yalt",
|
||||
"version": "2.3.18",
|
||||
"version": "2.3.19",
|
||||
"description": "yalt.dev client library",
|
||||
"license": "MIT",
|
||||
"main": "./dist/index.js",
|
||||
|
||||
Generated
+36
-36
@@ -430,7 +430,7 @@ importers:
|
||||
devDependencies:
|
||||
eslint: 8.31.0
|
||||
eslint-config-prettier: 8.6.0_eslint@8.31.0
|
||||
eslint-config-turbo: 1.12.3_eslint@8.31.0
|
||||
eslint-config-turbo: 1.13.3_eslint@8.31.0
|
||||
eslint-plugin-react: 7.31.8_eslint@8.31.0
|
||||
typescript: 4.9.4
|
||||
|
||||
@@ -458,8 +458,8 @@ importers:
|
||||
|
||||
integrations/airtable:
|
||||
specifiers:
|
||||
'@trigger.dev/integration-kit': workspace:^2.3.18
|
||||
'@trigger.dev/sdk': workspace:^2.3.18
|
||||
'@trigger.dev/integration-kit': workspace:^2.3.19
|
||||
'@trigger.dev/sdk': workspace:^2.3.19
|
||||
'@trigger.dev/tsconfig': workspace:*
|
||||
'@trigger.dev/tsup': workspace:*
|
||||
'@types/node': 16.x
|
||||
@@ -488,8 +488,8 @@ importers:
|
||||
'@octokit/types': ^12.4.0
|
||||
'@octokit/webhooks': ^12.0.10
|
||||
'@octokit/webhooks-types': ^7.3.1
|
||||
'@trigger.dev/integration-kit': workspace:^2.3.18
|
||||
'@trigger.dev/sdk': workspace:^2.3.18
|
||||
'@trigger.dev/integration-kit': workspace:^2.3.19
|
||||
'@trigger.dev/sdk': workspace:^2.3.19
|
||||
'@trigger.dev/tsconfig': workspace:*
|
||||
'@trigger.dev/tsup': workspace:*
|
||||
'@types/node': '18'
|
||||
@@ -519,8 +519,8 @@ importers:
|
||||
integrations/linear:
|
||||
specifiers:
|
||||
'@linear/sdk': ^8.0.0
|
||||
'@trigger.dev/integration-kit': workspace:^2.3.18
|
||||
'@trigger.dev/sdk': workspace:^2.3.18
|
||||
'@trigger.dev/integration-kit': workspace:^2.3.19
|
||||
'@trigger.dev/sdk': workspace:^2.3.19
|
||||
'@trigger.dev/tsconfig': workspace:*
|
||||
'@trigger.dev/tsup': workspace:*
|
||||
'@types/node': 16.x
|
||||
@@ -543,8 +543,8 @@ importers:
|
||||
|
||||
integrations/openai:
|
||||
specifiers:
|
||||
'@trigger.dev/integration-kit': workspace:^2.3.18
|
||||
'@trigger.dev/sdk': workspace:^2.3.18
|
||||
'@trigger.dev/integration-kit': workspace:^2.3.19
|
||||
'@trigger.dev/sdk': workspace:^2.3.19
|
||||
'@trigger.dev/tsconfig': workspace:*
|
||||
'@trigger.dev/tsup': workspace:*
|
||||
'@types/jest': ^29.5.3
|
||||
@@ -573,8 +573,8 @@ importers:
|
||||
integrations/plain:
|
||||
specifiers:
|
||||
'@team-plain/typescript-sdk': ^2.7.0
|
||||
'@trigger.dev/integration-kit': workspace:^2.3.18
|
||||
'@trigger.dev/sdk': workspace:^2.3.18
|
||||
'@trigger.dev/integration-kit': workspace:^2.3.19
|
||||
'@trigger.dev/sdk': workspace:^2.3.19
|
||||
'@trigger.dev/tsconfig': workspace:*
|
||||
'@trigger.dev/tsup': workspace:*
|
||||
'@types/node': '18'
|
||||
@@ -595,8 +595,8 @@ importers:
|
||||
|
||||
integrations/replicate:
|
||||
specifiers:
|
||||
'@trigger.dev/integration-kit': workspace:^2.3.18
|
||||
'@trigger.dev/sdk': workspace:^2.3.18
|
||||
'@trigger.dev/integration-kit': workspace:^2.3.19
|
||||
'@trigger.dev/sdk': workspace:^2.3.19
|
||||
'@trigger.dev/tsconfig': workspace:*
|
||||
'@trigger.dev/tsup': workspace:*
|
||||
'@types/node': 16.x
|
||||
@@ -620,8 +620,8 @@ importers:
|
||||
|
||||
integrations/resend:
|
||||
specifiers:
|
||||
'@trigger.dev/integration-kit': workspace:^2.3.18
|
||||
'@trigger.dev/sdk': workspace:^2.3.18
|
||||
'@trigger.dev/integration-kit': workspace:^2.3.19
|
||||
'@trigger.dev/sdk': workspace:^2.3.19
|
||||
'@trigger.dev/tsconfig': workspace:*
|
||||
'@trigger.dev/tsup': workspace:*
|
||||
'@types/node': '18'
|
||||
@@ -644,8 +644,8 @@ importers:
|
||||
integrations/sendgrid:
|
||||
specifiers:
|
||||
'@sendgrid/mail': ^7.7.0
|
||||
'@trigger.dev/integration-kit': workspace:^2.3.18
|
||||
'@trigger.dev/sdk': workspace:^2.3.18
|
||||
'@trigger.dev/integration-kit': workspace:^2.3.19
|
||||
'@trigger.dev/sdk': workspace:^2.3.19
|
||||
'@trigger.dev/tsconfig': workspace:*
|
||||
'@trigger.dev/tsup': workspace:*
|
||||
'@types/node': 16.x
|
||||
@@ -667,8 +667,8 @@ importers:
|
||||
integrations/shopify:
|
||||
specifiers:
|
||||
'@shopify/shopify-api': ^8.0.2
|
||||
'@trigger.dev/integration-kit': workspace:^2.3.18
|
||||
'@trigger.dev/sdk': workspace:^2.3.18
|
||||
'@trigger.dev/integration-kit': workspace:^2.3.19
|
||||
'@trigger.dev/sdk': workspace:^2.3.19
|
||||
'@trigger.dev/tsconfig': workspace:*
|
||||
'@trigger.dev/tsup': workspace:*
|
||||
'@types/node': 16.x
|
||||
@@ -692,7 +692,7 @@ importers:
|
||||
integrations/slack:
|
||||
specifiers:
|
||||
'@slack/web-api': ^6.8.1
|
||||
'@trigger.dev/sdk': workspace:^2.3.18
|
||||
'@trigger.dev/sdk': workspace:^2.3.19
|
||||
'@trigger.dev/tsconfig': workspace:*
|
||||
'@trigger.dev/tsup': workspace:*
|
||||
'@types/node': '18'
|
||||
@@ -714,8 +714,8 @@ importers:
|
||||
|
||||
integrations/stripe:
|
||||
specifiers:
|
||||
'@trigger.dev/integration-kit': workspace:^2.3.18
|
||||
'@trigger.dev/sdk': workspace:^2.3.18
|
||||
'@trigger.dev/integration-kit': workspace:^2.3.19
|
||||
'@trigger.dev/sdk': workspace:^2.3.19
|
||||
'@trigger.dev/tsup': workspace:*
|
||||
'@types/node': 16.x
|
||||
rimraf: ^3.0.2
|
||||
@@ -740,8 +740,8 @@ importers:
|
||||
integrations/supabase:
|
||||
specifiers:
|
||||
'@supabase/supabase-js': ^2.26.0
|
||||
'@trigger.dev/integration-kit': workspace:^2.3.18
|
||||
'@trigger.dev/sdk': workspace:^2.3.18
|
||||
'@trigger.dev/integration-kit': workspace:^2.3.19
|
||||
'@trigger.dev/sdk': workspace:^2.3.19
|
||||
'@trigger.dev/tsconfig': workspace:*
|
||||
'@trigger.dev/tsup': workspace:*
|
||||
'@types/node': 18.x
|
||||
@@ -766,8 +766,8 @@ importers:
|
||||
|
||||
integrations/typeform:
|
||||
specifiers:
|
||||
'@trigger.dev/integration-kit': workspace:^2.3.18
|
||||
'@trigger.dev/sdk': workspace:^2.3.18
|
||||
'@trigger.dev/integration-kit': workspace:^2.3.19
|
||||
'@trigger.dev/sdk': workspace:^2.3.19
|
||||
'@trigger.dev/tsup': workspace:*
|
||||
'@typeform/api-client': ^1.8.0
|
||||
'@types/node': 16.x
|
||||
@@ -1112,7 +1112,7 @@ importers:
|
||||
|
||||
packages/express:
|
||||
specifiers:
|
||||
'@trigger.dev/sdk': workspace:^2.3.18
|
||||
'@trigger.dev/sdk': workspace:^2.3.19
|
||||
'@trigger.dev/tsconfig': workspace:*
|
||||
'@trigger.dev/tsup': workspace:*
|
||||
'@types/debug': ^4.1.7
|
||||
@@ -1182,7 +1182,7 @@ importers:
|
||||
specifiers:
|
||||
'@nestjs/common': ^10.2.4
|
||||
'@remix-run/web-fetch': ^4.3.5
|
||||
'@trigger.dev/sdk': workspace:^2.3.18
|
||||
'@trigger.dev/sdk': workspace:^2.3.19
|
||||
'@trigger.dev/tsconfig': workspace:*
|
||||
'@trigger.dev/tsup': workspace:*
|
||||
'@types/debug': ^4.1.7
|
||||
@@ -1241,7 +1241,7 @@ importers:
|
||||
packages/react:
|
||||
specifiers:
|
||||
'@tanstack/react-query': 5.0.0-beta.2
|
||||
'@trigger.dev/core': workspace:^2.3.18
|
||||
'@trigger.dev/core': workspace:^2.3.19
|
||||
'@trigger.dev/tsconfig': workspace:*
|
||||
'@types/debug': ^4.1.7
|
||||
'@types/react': 18.2.17
|
||||
@@ -1344,8 +1344,8 @@ importers:
|
||||
|
||||
packages/trigger-sdk:
|
||||
specifiers:
|
||||
'@trigger.dev/core': workspace:^2.3.18
|
||||
'@trigger.dev/core-backend': workspace:^2.3.18
|
||||
'@trigger.dev/core': workspace:^2.3.19
|
||||
'@trigger.dev/core-backend': workspace:^2.3.19
|
||||
'@trigger.dev/tsconfig': workspace:*
|
||||
'@trigger.dev/tsup': workspace:*
|
||||
'@types/debug': ^4.1.7
|
||||
@@ -20591,13 +20591,13 @@ packages:
|
||||
eslint: 8.45.0
|
||||
dev: true
|
||||
|
||||
/eslint-config-turbo/1.12.3_eslint@8.31.0:
|
||||
resolution: {integrity: sha512-Q46MEOiNJpJWC3Et5/YEuIYYhbOieS04yZwQOinO2hpZw3folEXV+hbwVo8M+ap/q8gtpjIWiRMZ1A4QxmhEqQ==}
|
||||
/eslint-config-turbo/1.13.3_eslint@8.31.0:
|
||||
resolution: {integrity: sha512-if/QtwEiWZ5b7Bg8yZBPSvS0TeCG2Zvfa/+XBYANS7uSYucjmW+BBC8enJB0PqpB/YLGGOumeo3x7h1Nuba9iw==}
|
||||
peerDependencies:
|
||||
eslint: '>6.6.0'
|
||||
dependencies:
|
||||
eslint: 8.31.0
|
||||
eslint-plugin-turbo: 1.12.3_eslint@8.31.0
|
||||
eslint-plugin-turbo: 1.13.3_eslint@8.31.0
|
||||
dev: true
|
||||
|
||||
/eslint-doc-generator/1.4.3_eslint@8.45.0:
|
||||
@@ -21300,8 +21300,8 @@ packages:
|
||||
- typescript
|
||||
dev: true
|
||||
|
||||
/eslint-plugin-turbo/1.12.3_eslint@8.31.0:
|
||||
resolution: {integrity: sha512-7hEyxa+oP898EFNoxVenHlH8jtBwV1hbbIkdQWgqDcB0EmVNGVEZkYRo5Hm6BuMAjR433B+NISBJdj0bQo4/Lg==}
|
||||
/eslint-plugin-turbo/1.13.3_eslint@8.31.0:
|
||||
resolution: {integrity: sha512-RjmlnqYsEqnJ+U3M3IS5jLJDjWv5NsvReCpsC61n5pJ4JMHTZ/lU0EIoL1ccuL1L5wP0APzdXdByBxERcPQ+Nw==}
|
||||
peerDependencies:
|
||||
eslint: '>6.6.0'
|
||||
dependencies:
|
||||
|
||||
@@ -22,6 +22,8 @@ client.defineJob({
|
||||
await io.runTask(
|
||||
`task-${i}`,
|
||||
async (task) => {
|
||||
await new Promise((resolve) => setTimeout(resolve, 2000));
|
||||
|
||||
return {
|
||||
output: "a".repeat(300 * 1024),
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user