From 83dc871550f364367958df09d5b476e6b6462894 Mon Sep 17 00:00:00 2001 From: nicktrn <55853254+nicktrn@users.noreply.github.com> Date: Wed, 1 May 2024 10:48:27 +0100 Subject: [PATCH 01/17] add changeset --- .changeset/little-crabs-cross.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .changeset/little-crabs-cross.md diff --git a/.changeset/little-crabs-cross.md b/.changeset/little-crabs-cross.md new file mode 100644 index 000000000..245e825b8 --- /dev/null +++ b/.changeset/little-crabs-cross.md @@ -0,0 +1,6 @@ +--- +"trigger.dev": patch +"@trigger.dev/core": patch +--- + +Fix issues with consecutive waits From 25de9e59af12f6444b1be70a3351df9948417fbe Mon Sep 17 00:00:00 2001 From: nicktrn <55853254+nicktrn@users.noreply.github.com> Date: Wed, 1 May 2024 10:57:09 +0100 Subject: [PATCH 02/17] run workflows --- packages/cli-v3/src/workers/prod/entry-point.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cli-v3/src/workers/prod/entry-point.ts b/packages/cli-v3/src/workers/prod/entry-point.ts index 457ada131..e8b35d61e 100644 --- a/packages/cli-v3/src/workers/prod/entry-point.ts +++ b/packages/cli-v3/src/workers/prod/entry-point.ts @@ -86,7 +86,7 @@ class ProdWorker { // Currently, this is only used for duration waits. Might need adjusting for other use cases. this.#backgroundWorker.onCancelCheckpoint.attach(async (message) => { - logger.log("onCancelCheckpoint()", { message }); + logger.log("onCancelCheckpoint", { message }); const { checkpointCanceled } = await this.#coordinatorSocket.socket.emitWithAck( "CANCEL_CHECKPOINT", From 9feb0f70b068018ccb6288bee5acc53001f92a64 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 1 May 2024 11:32:15 +0100 Subject: [PATCH 03/17] chore: Update version for release (beta) (#1079) Co-authored-by: github-actions[bot] --- .changeset/pre.json | 1 + integrations/airtable/CHANGELOG.md | 7 +++++++ integrations/airtable/package.json | 6 +++--- integrations/github/CHANGELOG.md | 7 +++++++ integrations/github/package.json | 6 +++--- integrations/linear/CHANGELOG.md | 7 +++++++ integrations/linear/package.json | 6 +++--- integrations/openai/CHANGELOG.md | 7 +++++++ integrations/openai/package.json | 6 +++--- integrations/plain/CHANGELOG.md | 7 +++++++ integrations/plain/package.json | 6 +++--- integrations/replicate/CHANGELOG.md | 7 +++++++ integrations/replicate/package.json | 6 +++--- integrations/resend/CHANGELOG.md | 7 +++++++ integrations/resend/package.json | 6 +++--- integrations/sendgrid/CHANGELOG.md | 7 +++++++ integrations/sendgrid/package.json | 6 +++--- integrations/shopify/CHANGELOG.md | 7 +++++++ integrations/shopify/package.json | 6 +++--- integrations/slack/CHANGELOG.md | 6 ++++++ integrations/slack/package.json | 4 ++-- integrations/stripe/CHANGELOG.md | 7 +++++++ integrations/stripe/package.json | 6 +++--- integrations/supabase/CHANGELOG.md | 7 +++++++ integrations/supabase/package.json | 6 +++--- integrations/typeform/CHANGELOG.md | 7 +++++++ integrations/typeform/package.json | 6 +++--- packages/astro/CHANGELOG.md | 6 ++++++ packages/astro/package.json | 4 ++-- packages/cli-v3/CHANGELOG.md | 8 ++++++++ packages/cli-v3/package.json | 4 ++-- packages/cli/CHANGELOG.md | 8 ++++++++ packages/cli/package.json | 2 +- packages/core-apps/CHANGELOG.md | 2 ++ packages/core-apps/package.json | 2 +- packages/core-backend/CHANGELOG.md | 2 ++ packages/core-backend/package.json | 2 +- packages/core/CHANGELOG.md | 6 ++++++ packages/core/package.json | 2 +- packages/eslint-plugin/CHANGELOG.md | 2 ++ packages/eslint-plugin/package.json | 2 +- packages/express/CHANGELOG.md | 6 ++++++ packages/express/package.json | 6 +++--- packages/hono/CHANGELOG.md | 6 ++++++ packages/hono/package.json | 4 ++-- packages/integration-kit/CHANGELOG.md | 7 +++++++ packages/integration-kit/package.json | 2 +- packages/nestjs/CHANGELOG.md | 6 ++++++ packages/nestjs/package.json | 6 +++--- packages/nextjs/CHANGELOG.md | 6 ++++++ packages/nextjs/package.json | 4 ++-- packages/otlp-importer/CHANGELOG.md | 2 ++ packages/otlp-importer/package.json | 2 +- packages/react/CHANGELOG.md | 7 +++++++ packages/react/package.json | 4 ++-- packages/remix/CHANGELOG.md | 6 ++++++ packages/remix/package.json | 4 ++-- packages/sveltekit/CHANGELOG.md | 6 ++++++ packages/sveltekit/package.json | 4 ++-- packages/testing/CHANGELOG.md | 8 ++++++++ packages/testing/package.json | 2 +- packages/trigger-sdk/CHANGELOG.md | 8 ++++++++ packages/trigger-sdk/package.json | 6 +++--- packages/yalt/CHANGELOG.md | 2 ++ packages/yalt/package.json | 2 +- 65 files changed, 265 insertions(+), 70 deletions(-) diff --git a/.changeset/pre.json b/.changeset/pre.json index 56db4e545..a1ac89851 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -67,6 +67,7 @@ "lemon-jobs-repair", "light-bulldogs-press", "light-dragons-complain", + "little-crabs-cross", "loud-actors-remember", "many-ligers-pump", "mighty-camels-joke", diff --git a/integrations/airtable/CHANGELOG.md b/integrations/airtable/CHANGELOG.md index f866f92e1..6ebe90100 100644 --- a/integrations/airtable/CHANGELOG.md +++ b/integrations/airtable/CHANGELOG.md @@ -1,5 +1,12 @@ # @trigger.dev/airtable +## 3.0.0-beta.24 + +### Patch Changes + +- @trigger.dev/integration-kit@3.0.0-beta.24 +- @trigger.dev/sdk@3.0.0-beta.24 + ## 3.0.0-beta.23 ### Patch Changes diff --git a/integrations/airtable/package.json b/integrations/airtable/package.json index 473ea62f7..cab5163e4 100644 --- a/integrations/airtable/package.json +++ b/integrations/airtable/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/airtable", - "version": "3.0.0-beta.23", + "version": "3.0.0-beta.24", "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:^3.0.0-beta.23", - "@trigger.dev/sdk": "workspace:^3.0.0-beta.23", + "@trigger.dev/integration-kit": "workspace:^3.0.0-beta.24", + "@trigger.dev/sdk": "workspace:^3.0.0-beta.24", "airtable": "^0.12.1", "zod": "3.22.3" }, diff --git a/integrations/github/CHANGELOG.md b/integrations/github/CHANGELOG.md index 9f7854fdc..4669850a9 100644 --- a/integrations/github/CHANGELOG.md +++ b/integrations/github/CHANGELOG.md @@ -1,5 +1,12 @@ # @trigger.dev/github +## 3.0.0-beta.24 + +### Patch Changes + +- @trigger.dev/integration-kit@3.0.0-beta.24 +- @trigger.dev/sdk@3.0.0-beta.24 + ## 3.0.0-beta.23 ### Patch Changes diff --git a/integrations/github/package.json b/integrations/github/package.json index 7162f8130..9c9d7dfec 100644 --- a/integrations/github/package.json +++ b/integrations/github/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/github", - "version": "3.0.0-beta.23", + "version": "3.0.0-beta.24", "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:^3.0.0-beta.23", - "@trigger.dev/sdk": "workspace:^3.0.0-beta.23", + "@trigger.dev/integration-kit": "workspace:^3.0.0-beta.24", + "@trigger.dev/sdk": "workspace:^3.0.0-beta.24", "zod": "3.22.3" }, "engines": { diff --git a/integrations/linear/CHANGELOG.md b/integrations/linear/CHANGELOG.md index f785081c4..f2725ea4d 100644 --- a/integrations/linear/CHANGELOG.md +++ b/integrations/linear/CHANGELOG.md @@ -1,5 +1,12 @@ # @trigger.dev/linear +## 3.0.0-beta.24 + +### Patch Changes + +- @trigger.dev/integration-kit@3.0.0-beta.24 +- @trigger.dev/sdk@3.0.0-beta.24 + ## 3.0.0-beta.23 ### Patch Changes diff --git a/integrations/linear/package.json b/integrations/linear/package.json index 674117abe..db8977942 100644 --- a/integrations/linear/package.json +++ b/integrations/linear/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/linear", - "version": "3.0.0-beta.23", + "version": "3.0.0-beta.24", "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:^3.0.0-beta.23", - "@trigger.dev/sdk": "workspace:^3.0.0-beta.23", + "@trigger.dev/integration-kit": "workspace:^3.0.0-beta.24", + "@trigger.dev/sdk": "workspace:^3.0.0-beta.24", "zod": "3.22.3" }, "engines": { diff --git a/integrations/openai/CHANGELOG.md b/integrations/openai/CHANGELOG.md index 857476015..1e9d2f1bb 100644 --- a/integrations/openai/CHANGELOG.md +++ b/integrations/openai/CHANGELOG.md @@ -1,5 +1,12 @@ # @trigger.dev/slack +## 3.0.0-beta.24 + +### Patch Changes + +- @trigger.dev/integration-kit@3.0.0-beta.24 +- @trigger.dev/sdk@3.0.0-beta.24 + ## 3.0.0-beta.23 ### Patch Changes diff --git a/integrations/openai/package.json b/integrations/openai/package.json index 5db724d37..1cd787eb9 100644 --- a/integrations/openai/package.json +++ b/integrations/openai/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/openai", - "version": "3.0.0-beta.23", + "version": "3.0.0-beta.24", "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:^3.0.0-beta.23", - "@trigger.dev/integration-kit": "workspace:^3.0.0-beta.23" + "@trigger.dev/sdk": "workspace:^3.0.0-beta.24", + "@trigger.dev/integration-kit": "workspace:^3.0.0-beta.24" }, "engines": { "node": ">=18.0.0" diff --git a/integrations/plain/CHANGELOG.md b/integrations/plain/CHANGELOG.md index a1eeb3359..f0bd22bd4 100644 --- a/integrations/plain/CHANGELOG.md +++ b/integrations/plain/CHANGELOG.md @@ -1,5 +1,12 @@ # @trigger.dev/plain +## 3.0.0-beta.24 + +### Patch Changes + +- @trigger.dev/integration-kit@3.0.0-beta.24 +- @trigger.dev/sdk@3.0.0-beta.24 + ## 3.0.0-beta.23 ### Patch Changes diff --git a/integrations/plain/package.json b/integrations/plain/package.json index 8aeea0adf..88327da5d 100644 --- a/integrations/plain/package.json +++ b/integrations/plain/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/plain", - "version": "3.0.0-beta.23", + "version": "3.0.0-beta.24", "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:^3.0.0-beta.23", - "@trigger.dev/sdk": "workspace:^3.0.0-beta.23", + "@trigger.dev/integration-kit": "workspace:^3.0.0-beta.24", + "@trigger.dev/sdk": "workspace:^3.0.0-beta.24", "@team-plain/typescript-sdk": "^2.7.0" }, "engines": { diff --git a/integrations/replicate/CHANGELOG.md b/integrations/replicate/CHANGELOG.md index 89b1ed428..97c91e7aa 100644 --- a/integrations/replicate/CHANGELOG.md +++ b/integrations/replicate/CHANGELOG.md @@ -1,5 +1,12 @@ # @trigger.dev/replicate +## 3.0.0-beta.24 + +### Patch Changes + +- @trigger.dev/integration-kit@3.0.0-beta.24 +- @trigger.dev/sdk@3.0.0-beta.24 + ## 3.0.0-beta.23 ### Patch Changes diff --git a/integrations/replicate/package.json b/integrations/replicate/package.json index 6265695af..6df43b3a2 100644 --- a/integrations/replicate/package.json +++ b/integrations/replicate/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/replicate", - "version": "3.0.0-beta.23", + "version": "3.0.0-beta.24", "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:^3.0.0-beta.23", - "@trigger.dev/sdk": "workspace:^3.0.0-beta.23", + "@trigger.dev/integration-kit": "workspace:^3.0.0-beta.24", + "@trigger.dev/sdk": "workspace:^3.0.0-beta.24", "replicate": "^0.18.1", "zod": "3.22.3" }, diff --git a/integrations/resend/CHANGELOG.md b/integrations/resend/CHANGELOG.md index 93a0f3358..f991efdc6 100644 --- a/integrations/resend/CHANGELOG.md +++ b/integrations/resend/CHANGELOG.md @@ -1,5 +1,12 @@ # @trigger.dev/resend +## 3.0.0-beta.24 + +### Patch Changes + +- @trigger.dev/integration-kit@3.0.0-beta.24 +- @trigger.dev/sdk@3.0.0-beta.24 + ## 3.0.0-beta.23 ### Patch Changes diff --git a/integrations/resend/package.json b/integrations/resend/package.json index 206fa4b42..375a7e227 100644 --- a/integrations/resend/package.json +++ b/integrations/resend/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/resend", - "version": "3.0.0-beta.23", + "version": "3.0.0-beta.24", "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:^3.0.0-beta.23", - "@trigger.dev/sdk": "workspace:^3.0.0-beta.23", + "@trigger.dev/integration-kit": "workspace:^3.0.0-beta.24", + "@trigger.dev/sdk": "workspace:^3.0.0-beta.24", "resend": "^2.1.0" }, "engines": { diff --git a/integrations/sendgrid/CHANGELOG.md b/integrations/sendgrid/CHANGELOG.md index cc5ca677a..5fcc210e2 100644 --- a/integrations/sendgrid/CHANGELOG.md +++ b/integrations/sendgrid/CHANGELOG.md @@ -1,5 +1,12 @@ # @trigger.dev/sendgrid +## 3.0.0-beta.24 + +### Patch Changes + +- @trigger.dev/integration-kit@3.0.0-beta.24 +- @trigger.dev/sdk@3.0.0-beta.24 + ## 3.0.0-beta.23 ### Patch Changes diff --git a/integrations/sendgrid/package.json b/integrations/sendgrid/package.json index 855b1a9d1..cbe683d36 100644 --- a/integrations/sendgrid/package.json +++ b/integrations/sendgrid/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/sendgrid", - "version": "3.0.0-beta.23", + "version": "3.0.0-beta.24", "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:^3.0.0-beta.23", - "@trigger.dev/integration-kit": "workspace:^3.0.0-beta.23" + "@trigger.dev/sdk": "workspace:^3.0.0-beta.24", + "@trigger.dev/integration-kit": "workspace:^3.0.0-beta.24" }, "engines": { "node": ">=16.8.0" diff --git a/integrations/shopify/CHANGELOG.md b/integrations/shopify/CHANGELOG.md index ac4121142..119f39c0d 100644 --- a/integrations/shopify/CHANGELOG.md +++ b/integrations/shopify/CHANGELOG.md @@ -1,5 +1,12 @@ # @trigger.dev/shopify +## 3.0.0-beta.24 + +### Patch Changes + +- @trigger.dev/integration-kit@3.0.0-beta.24 +- @trigger.dev/sdk@3.0.0-beta.24 + ## 3.0.0-beta.23 ### Patch Changes diff --git a/integrations/shopify/package.json b/integrations/shopify/package.json index a06251c19..42d06307a 100644 --- a/integrations/shopify/package.json +++ b/integrations/shopify/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/shopify", - "version": "3.0.0-beta.23", + "version": "3.0.0-beta.24", "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:^3.0.0-beta.23", - "@trigger.dev/integration-kit": "workspace:^3.0.0-beta.23", + "@trigger.dev/sdk": "workspace:^3.0.0-beta.24", + "@trigger.dev/integration-kit": "workspace:^3.0.0-beta.24", "zod": "3.22.3" }, "engines": { diff --git a/integrations/slack/CHANGELOG.md b/integrations/slack/CHANGELOG.md index 4bf60263e..d1f64c3cc 100644 --- a/integrations/slack/CHANGELOG.md +++ b/integrations/slack/CHANGELOG.md @@ -1,5 +1,11 @@ # @trigger.dev/slack +## 3.0.0-beta.24 + +### Patch Changes + +- @trigger.dev/sdk@3.0.0-beta.24 + ## 3.0.0-beta.23 ### Patch Changes diff --git a/integrations/slack/package.json b/integrations/slack/package.json index 1ae95c1c0..837afc6b2 100644 --- a/integrations/slack/package.json +++ b/integrations/slack/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/slack", - "version": "3.0.0-beta.23", + "version": "3.0.0-beta.24", "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:^3.0.0-beta.23", + "@trigger.dev/sdk": "workspace:^3.0.0-beta.24", "zod": "3.22.3" }, "engines": { diff --git a/integrations/stripe/CHANGELOG.md b/integrations/stripe/CHANGELOG.md index f3fb391e8..dbc0c1e4a 100644 --- a/integrations/stripe/CHANGELOG.md +++ b/integrations/stripe/CHANGELOG.md @@ -1,5 +1,12 @@ # @trigger.dev/stripe +## 3.0.0-beta.24 + +### Patch Changes + +- @trigger.dev/integration-kit@3.0.0-beta.24 +- @trigger.dev/sdk@3.0.0-beta.24 + ## 3.0.0-beta.23 ### Patch Changes diff --git a/integrations/stripe/package.json b/integrations/stripe/package.json index 9e60bc520..ccb790173 100644 --- a/integrations/stripe/package.json +++ b/integrations/stripe/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/stripe", - "version": "3.0.0-beta.23", + "version": "3.0.0-beta.24", "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:^3.0.0-beta.23", - "@trigger.dev/sdk": "workspace:^3.0.0-beta.23", + "@trigger.dev/integration-kit": "workspace:^3.0.0-beta.24", + "@trigger.dev/sdk": "workspace:^3.0.0-beta.24", "stripe": "^12.14.0", "zod": "3.22.3" }, diff --git a/integrations/supabase/CHANGELOG.md b/integrations/supabase/CHANGELOG.md index d8728b059..06bb64185 100644 --- a/integrations/supabase/CHANGELOG.md +++ b/integrations/supabase/CHANGELOG.md @@ -1,5 +1,12 @@ # @trigger.dev/supabase +## 3.0.0-beta.24 + +### Patch Changes + +- @trigger.dev/integration-kit@3.0.0-beta.24 +- @trigger.dev/sdk@3.0.0-beta.24 + ## 3.0.0-beta.23 ### Patch Changes diff --git a/integrations/supabase/package.json b/integrations/supabase/package.json index de2103f0c..8b9a15e50 100644 --- a/integrations/supabase/package.json +++ b/integrations/supabase/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/supabase", - "version": "3.0.0-beta.23", + "version": "3.0.0-beta.24", "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:^3.0.0-beta.23", - "@trigger.dev/sdk": "workspace:^3.0.0-beta.23", + "@trigger.dev/integration-kit": "workspace:^3.0.0-beta.24", + "@trigger.dev/sdk": "workspace:^3.0.0-beta.24", "supabase-management-js": "^1.0.0", "zod": "3.22.3" }, diff --git a/integrations/typeform/CHANGELOG.md b/integrations/typeform/CHANGELOG.md index 1e113b7bb..7a64b2cab 100644 --- a/integrations/typeform/CHANGELOG.md +++ b/integrations/typeform/CHANGELOG.md @@ -1,5 +1,12 @@ # @trigger.dev/typeform +## 3.0.0-beta.24 + +### Patch Changes + +- @trigger.dev/integration-kit@3.0.0-beta.24 +- @trigger.dev/sdk@3.0.0-beta.24 + ## 3.0.0-beta.23 ### Patch Changes diff --git a/integrations/typeform/package.json b/integrations/typeform/package.json index 1df5fa92d..de86ce7fb 100644 --- a/integrations/typeform/package.json +++ b/integrations/typeform/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/typeform", - "version": "3.0.0-beta.23", + "version": "3.0.0-beta.24", "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:^3.0.0-beta.23", - "@trigger.dev/sdk": "workspace:^3.0.0-beta.23", + "@trigger.dev/integration-kit": "workspace:^3.0.0-beta.24", + "@trigger.dev/sdk": "workspace:^3.0.0-beta.24", "@typeform/api-client": "^1.8.0", "zod": "3.22.3" }, diff --git a/packages/astro/CHANGELOG.md b/packages/astro/CHANGELOG.md index b8b5ca97a..09bfbaebb 100644 --- a/packages/astro/CHANGELOG.md +++ b/packages/astro/CHANGELOG.md @@ -1,5 +1,11 @@ # @trigger.dev/astro +## 3.0.0-beta.24 + +### Patch Changes + +- @trigger.dev/sdk@3.0.0-beta.24 + ## 3.0.0-beta.23 ### Patch Changes diff --git a/packages/astro/package.json b/packages/astro/package.json index 0e9dda74f..09cfbc31c 100644 --- a/packages/astro/package.json +++ b/packages/astro/package.json @@ -1,7 +1,7 @@ { "name": "@trigger.dev/astro", "description": "An Astro-native integration for Trigger.dev background jobs platform", - "version": "3.0.0-beta.23", + "version": "3.0.0-beta.24", "main": "./dist/index.js", "types": "./dist/index.d.ts", "files": [ @@ -20,7 +20,7 @@ "build:tsup": "tsup" }, "peerDependencies": { - "@trigger.dev/sdk": "workspace:^3.0.0-beta.23" + "@trigger.dev/sdk": "workspace:^3.0.0-beta.24" }, "devDependencies": { "astro": "^3.0.12", diff --git a/packages/cli-v3/CHANGELOG.md b/packages/cli-v3/CHANGELOG.md index f02b5a53e..0de462192 100644 --- a/packages/cli-v3/CHANGELOG.md +++ b/packages/cli-v3/CHANGELOG.md @@ -1,5 +1,13 @@ # trigger.dev +## 3.0.0-beta.24 + +### Patch Changes + +- 83dc87155: Fix issues with consecutive waits +- Updated dependencies [83dc87155] + - @trigger.dev/core@3.0.0-beta.24 + ## 3.0.0-beta.23 ### Patch Changes diff --git a/packages/cli-v3/package.json b/packages/cli-v3/package.json index 63feb7ca8..3c7a1f73a 100644 --- a/packages/cli-v3/package.json +++ b/packages/cli-v3/package.json @@ -1,6 +1,6 @@ { "name": "trigger.dev", - "version": "3.0.0-beta.23", + "version": "3.0.0-beta.24", "description": "A Command-Line Interface for Trigger.dev (v3) projects", "main": "./dist/index.js", "types": "./dist/index.d.ts", @@ -86,7 +86,7 @@ "@opentelemetry/sdk-trace-base": "^1.22.0", "@opentelemetry/sdk-trace-node": "^1.22.0", "@opentelemetry/semantic-conventions": "^1.22.0", - "@trigger.dev/core": "workspace:3.0.0-beta.23", + "@trigger.dev/core": "workspace:3.0.0-beta.24", "@types/degit": "^2.8.3", "chalk": "^5.2.0", "chokidar": "^3.5.3", diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index bca332d2c..512ba940e 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,13 @@ # create-trigger +## 3.0.0-beta.24 + +### Patch Changes + +- Updated dependencies [83dc87155] + - @trigger.dev/core@3.0.0-beta.24 + - @trigger.dev/yalt@3.0.0-beta.24 + ## 3.0.0-beta.23 ### Patch Changes diff --git a/packages/cli/package.json b/packages/cli/package.json index c425fc0cb..54a0f7e77 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/cli", - "version": "3.0.0-beta.23", + "version": "3.0.0-beta.24", "description": "The Trigger.dev CLI", "main": "./dist/index.js", "types": "./dist/index.d.ts", diff --git a/packages/core-apps/CHANGELOG.md b/packages/core-apps/CHANGELOG.md index 5178b683a..339b575a2 100644 --- a/packages/core-apps/CHANGELOG.md +++ b/packages/core-apps/CHANGELOG.md @@ -1,5 +1,7 @@ # @trigger.dev/core-apps +## 3.0.0-beta.24 + ## 3.0.0-beta.23 ## 3.0.0-beta.22 diff --git a/packages/core-apps/package.json b/packages/core-apps/package.json index f7f776f26..900ac7b84 100644 --- a/packages/core-apps/package.json +++ b/packages/core-apps/package.json @@ -1,7 +1,7 @@ { "name": "@trigger.dev/core-apps", "description": "Backend core code used across apps", - "version": "3.0.0-beta.23", + "version": "3.0.0-beta.24", "private": true, "license": "MIT", "main": "./dist/index.js", diff --git a/packages/core-backend/CHANGELOG.md b/packages/core-backend/CHANGELOG.md index e85118ed6..9d6a8653a 100644 --- a/packages/core-backend/CHANGELOG.md +++ b/packages/core-backend/CHANGELOG.md @@ -1,5 +1,7 @@ # @trigger.dev/core-backend +## 3.0.0-beta.24 + ## 3.0.0-beta.23 ## 3.0.0-beta.22 diff --git a/packages/core-backend/package.json b/packages/core-backend/package.json index e69087107..3f412f622 100644 --- a/packages/core-backend/package.json +++ b/packages/core-backend/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/core-backend", - "version": "3.0.0-beta.23", + "version": "3.0.0-beta.24", "description": "Core code used across `@trigger.dev/sdk` and Trigger.dev server", "license": "MIT", "main": "./dist/index.js", diff --git a/packages/core/CHANGELOG.md b/packages/core/CHANGELOG.md index 77acfe5d4..7c97870d1 100644 --- a/packages/core/CHANGELOG.md +++ b/packages/core/CHANGELOG.md @@ -1,5 +1,11 @@ # internal-platform +## 3.0.0-beta.24 + +### Patch Changes + +- 83dc87155: Fix issues with consecutive waits + ## 3.0.0-beta.23 ## 3.0.0-beta.22 diff --git a/packages/core/package.json b/packages/core/package.json index 122f1d08f..7d795f9ba 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/core", - "version": "3.0.0-beta.23", + "version": "3.0.0-beta.24", "description": "Core code used across the Trigger.dev SDK and platform", "license": "MIT", "main": "./dist/index.js", diff --git a/packages/eslint-plugin/CHANGELOG.md b/packages/eslint-plugin/CHANGELOG.md index 3e1319a18..64b9285fb 100644 --- a/packages/eslint-plugin/CHANGELOG.md +++ b/packages/eslint-plugin/CHANGELOG.md @@ -1,5 +1,7 @@ # @trigger.dev/eslint-plugin +## 3.0.0-beta.24 + ## 3.0.0-beta.23 ## 3.0.0-beta.22 diff --git a/packages/eslint-plugin/package.json b/packages/eslint-plugin/package.json index e48df6b85..6cf95d521 100644 --- a/packages/eslint-plugin/package.json +++ b/packages/eslint-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/eslint-plugin", - "version": "3.0.0-beta.23", + "version": "3.0.0-beta.24", "description": "ESLint plugin with trigger.dev best practices", "keywords": [ "eslint", diff --git a/packages/express/CHANGELOG.md b/packages/express/CHANGELOG.md index 0753eb35a..e762b6237 100644 --- a/packages/express/CHANGELOG.md +++ b/packages/express/CHANGELOG.md @@ -1,5 +1,11 @@ # @trigger.dev/express +## 3.0.0-beta.24 + +### Patch Changes + +- @trigger.dev/sdk@3.0.0-beta.24 + ## 3.0.0-beta.23 ### Patch Changes diff --git a/packages/express/package.json b/packages/express/package.json index 49c3432c2..6ae21390b 100644 --- a/packages/express/package.json +++ b/packages/express/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/express", - "version": "3.0.0-beta.23", + "version": "3.0.0-beta.24", "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:^3.0.0-beta.23", + "@trigger.dev/sdk": "workspace:^3.0.0-beta.24", "@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:^3.0.0-beta.23" + "@trigger.dev/sdk": "workspace:^3.0.0-beta.24" }, "dependencies": { "debug": "^4.3.4", diff --git a/packages/hono/CHANGELOG.md b/packages/hono/CHANGELOG.md index ef522e646..c4a980c30 100644 --- a/packages/hono/CHANGELOG.md +++ b/packages/hono/CHANGELOG.md @@ -1,5 +1,11 @@ # @trigger.dev/hono +## 3.0.0-beta.24 + +### Patch Changes + +- @trigger.dev/sdk@3.0.0-beta.24 + ## 3.0.0-beta.23 ### Patch Changes diff --git a/packages/hono/package.json b/packages/hono/package.json index 59242b114..939c82dbf 100644 --- a/packages/hono/package.json +++ b/packages/hono/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/hono", - "version": "3.0.0-beta.23", + "version": "3.0.0-beta.24", "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:^3.0.0-beta.23" + "@trigger.dev/sdk": "workspace:^3.0.0-beta.24" }, "devDependencies": { "@trigger.dev/tsconfig": "workspace:*", diff --git a/packages/integration-kit/CHANGELOG.md b/packages/integration-kit/CHANGELOG.md index 51e0c2e55..c786a38e7 100644 --- a/packages/integration-kit/CHANGELOG.md +++ b/packages/integration-kit/CHANGELOG.md @@ -1,5 +1,12 @@ # @trigger.dev/integration-kit +## 3.0.0-beta.24 + +### Patch Changes + +- Updated dependencies [83dc87155] + - @trigger.dev/core@3.0.0-beta.24 + ## 3.0.0-beta.23 ### Patch Changes diff --git a/packages/integration-kit/package.json b/packages/integration-kit/package.json index e6db7a9f7..1061190ad 100644 --- a/packages/integration-kit/package.json +++ b/packages/integration-kit/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/integration-kit", - "version": "3.0.0-beta.23", + "version": "3.0.0-beta.24", "description": "Trigger.dev Integration Kit has helpers to make creating integrations easier", "license": "MIT", "main": "./dist/index.js", diff --git a/packages/nestjs/CHANGELOG.md b/packages/nestjs/CHANGELOG.md index e8a25cf8f..c978628cb 100644 --- a/packages/nestjs/CHANGELOG.md +++ b/packages/nestjs/CHANGELOG.md @@ -1,5 +1,11 @@ # @trigger.dev/nestjs +## 3.0.0-beta.24 + +### Patch Changes + +- @trigger.dev/sdk@3.0.0-beta.24 + ## 3.0.0-beta.23 ### Patch Changes diff --git a/packages/nestjs/package.json b/packages/nestjs/package.json index 007ebc785..00cd79e13 100644 --- a/packages/nestjs/package.json +++ b/packages/nestjs/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/nestjs", - "version": "3.0.0-beta.23", + "version": "3.0.0-beta.24", "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:^3.0.0-beta.23", + "@trigger.dev/sdk": "workspace:^3.0.0-beta.24", "@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:^3.0.0-beta.23" + "@trigger.dev/sdk": "workspace:^3.0.0-beta.24" }, "dependencies": { "@nestjs/common": "^10.2.4", diff --git a/packages/nextjs/CHANGELOG.md b/packages/nextjs/CHANGELOG.md index bbc1e02e5..cf4bd325b 100644 --- a/packages/nextjs/CHANGELOG.md +++ b/packages/nextjs/CHANGELOG.md @@ -1,5 +1,11 @@ # @trigger.dev/nextjs +## 3.0.0-beta.24 + +### Patch Changes + +- @trigger.dev/sdk@3.0.0-beta.24 + ## 3.0.0-beta.23 ### Patch Changes diff --git a/packages/nextjs/package.json b/packages/nextjs/package.json index 437f03523..1617d1816 100644 --- a/packages/nextjs/package.json +++ b/packages/nextjs/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/nextjs", - "version": "3.0.0-beta.23", + "version": "3.0.0-beta.24", "description": "Trigger.dev Next.js integration", "license": "MIT", "main": "./dist/index.js", @@ -41,7 +41,7 @@ "build:tsup": "tsup" }, "peerDependencies": { - "@trigger.dev/sdk": "workspace:^3.0.0-beta.23", + "@trigger.dev/sdk": "workspace:^3.0.0-beta.24", "next": ">=12.0.0" }, "dependencies": { diff --git a/packages/otlp-importer/CHANGELOG.md b/packages/otlp-importer/CHANGELOG.md index 0f5b96e57..2e148db9b 100644 --- a/packages/otlp-importer/CHANGELOG.md +++ b/packages/otlp-importer/CHANGELOG.md @@ -1,5 +1,7 @@ # @trigger.dev/otlp-importer +## 3.0.0-beta.24 + ## 3.0.0-beta.23 ## 3.0.0-beta.22 diff --git a/packages/otlp-importer/package.json b/packages/otlp-importer/package.json index 8bbf16e06..650b643be 100644 --- a/packages/otlp-importer/package.json +++ b/packages/otlp-importer/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/otlp-importer", - "version": "3.0.0-beta.23", + "version": "3.0.0-beta.24", "description": "OpenTelemetry OTLP Importer for Node.js written in TypeScript", "license": "MIT", "main": "./dist/index.js", diff --git a/packages/react/CHANGELOG.md b/packages/react/CHANGELOG.md index f0a4d0903..e4e25ce4d 100644 --- a/packages/react/CHANGELOG.md +++ b/packages/react/CHANGELOG.md @@ -1,5 +1,12 @@ # @trigger.dev/react +## 3.0.0-beta.24 + +### Patch Changes + +- Updated dependencies [83dc87155] + - @trigger.dev/core@3.0.0-beta.24 + ## 3.0.0-beta.23 ### Patch Changes diff --git a/packages/react/package.json b/packages/react/package.json index 1db7b2aa5..a84ce54bc 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/react", - "version": "3.0.0-beta.23", + "version": "3.0.0-beta.24", "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:^3.0.0-beta.23", + "@trigger.dev/core": "workspace:^3.0.0-beta.24", "debug": "^4.3.4", "zod": "3.22.3" }, diff --git a/packages/remix/CHANGELOG.md b/packages/remix/CHANGELOG.md index 5f5166ba0..3c236350d 100644 --- a/packages/remix/CHANGELOG.md +++ b/packages/remix/CHANGELOG.md @@ -1,5 +1,11 @@ # @trigger.dev/remix +## 3.0.0-beta.24 + +### Patch Changes + +- @trigger.dev/sdk@3.0.0-beta.24 + ## 3.0.0-beta.23 ### Patch Changes diff --git a/packages/remix/package.json b/packages/remix/package.json index 7d495ab4f..8a3b2b9c1 100644 --- a/packages/remix/package.json +++ b/packages/remix/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/remix", - "version": "3.0.0-beta.23", + "version": "3.0.0-beta.24", "description": "Trigger.dev Remix integration", "license": "MIT", "main": "./dist/index.js", @@ -39,7 +39,7 @@ "build:tsup": "tsup" }, "peerDependencies": { - "@trigger.dev/sdk": "workspace:^3.0.0-beta.23", + "@trigger.dev/sdk": "workspace:^3.0.0-beta.24", "@remix-run/server-runtime": ">1.19.0" }, "dependencies": { diff --git a/packages/sveltekit/CHANGELOG.md b/packages/sveltekit/CHANGELOG.md index f03ba813a..4b22d2185 100644 --- a/packages/sveltekit/CHANGELOG.md +++ b/packages/sveltekit/CHANGELOG.md @@ -1,5 +1,11 @@ # @trigger.dev/sveltekit +## 3.0.0-beta.24 + +### Patch Changes + +- @trigger.dev/sdk@3.0.0-beta.24 + ## 3.0.0-beta.23 ### Patch Changes diff --git a/packages/sveltekit/package.json b/packages/sveltekit/package.json index b7304492f..666e2ceee 100644 --- a/packages/sveltekit/package.json +++ b/packages/sveltekit/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/sveltekit", - "version": "3.0.0-beta.23", + "version": "3.0.0-beta.24", "description": "Trigger.dev svelteKit integration", "license": "MIT", "main": "./dist/index.js", @@ -39,7 +39,7 @@ "build:tsup": "tsup" }, "peerDependencies": { - "@trigger.dev/sdk": "workspace:^3.0.0-beta.23" + "@trigger.dev/sdk": "workspace:^3.0.0-beta.24" }, "dependencies": { "debug": "^4.3.4" diff --git a/packages/testing/CHANGELOG.md b/packages/testing/CHANGELOG.md index f5cc3e84c..afd608922 100644 --- a/packages/testing/CHANGELOG.md +++ b/packages/testing/CHANGELOG.md @@ -1,5 +1,13 @@ # @trigger.dev/testing +## 3.0.0-beta.24 + +### Patch Changes + +- Updated dependencies [83dc87155] + - @trigger.dev/core@3.0.0-beta.24 + - @trigger.dev/sdk@3.0.0-beta.24 + ## 3.0.0-beta.23 ### Patch Changes diff --git a/packages/testing/package.json b/packages/testing/package.json index bd968f7d1..ca8062b28 100644 --- a/packages/testing/package.json +++ b/packages/testing/package.json @@ -1,7 +1,7 @@ { "name": "@trigger.dev/testing", "description": "A collection of useful tools to write tests for Trigger.dev.", - "version": "3.0.0-beta.23", + "version": "3.0.0-beta.24", "license": "MIT", "main": "./dist/index.js", "types": "./dist/index.d.ts", diff --git a/packages/trigger-sdk/CHANGELOG.md b/packages/trigger-sdk/CHANGELOG.md index a65a1cea4..cbb50597b 100644 --- a/packages/trigger-sdk/CHANGELOG.md +++ b/packages/trigger-sdk/CHANGELOG.md @@ -1,5 +1,13 @@ # @trigger.dev/sdk +## 3.0.0-beta.24 + +### Patch Changes + +- Updated dependencies [83dc87155] + - @trigger.dev/core@3.0.0-beta.24 + - @trigger.dev/core-backend@3.0.0-beta.24 + ## 3.0.0-beta.23 ### Patch Changes diff --git a/packages/trigger-sdk/package.json b/packages/trigger-sdk/package.json index e8003e063..5ef9c08eb 100644 --- a/packages/trigger-sdk/package.json +++ b/packages/trigger-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/sdk", - "version": "3.0.0-beta.23", + "version": "3.0.0-beta.24", "description": "trigger.dev Node.JS SDK", "license": "MIT", "main": "./dist/index.js", @@ -48,8 +48,8 @@ "@opentelemetry/api": "^1.8.0", "@opentelemetry/api-logs": "^0.48.0", "@opentelemetry/semantic-conventions": "^1.22.0", - "@trigger.dev/core": "workspace:3.0.0-beta.23", - "@trigger.dev/core-backend": "workspace:3.0.0-beta.23", + "@trigger.dev/core": "workspace:3.0.0-beta.24", + "@trigger.dev/core-backend": "workspace:3.0.0-beta.24", "chalk": "^5.2.0", "cronstrue": "^2.21.0", "debug": "^4.3.4", diff --git a/packages/yalt/CHANGELOG.md b/packages/yalt/CHANGELOG.md index 32a80fb1a..d71abaced 100644 --- a/packages/yalt/CHANGELOG.md +++ b/packages/yalt/CHANGELOG.md @@ -1,5 +1,7 @@ # @trigger.dev/yalt +## 3.0.0-beta.24 + ## 3.0.0-beta.23 ## 3.0.0-beta.22 diff --git a/packages/yalt/package.json b/packages/yalt/package.json index dadb80220..6c6efe5a5 100644 --- a/packages/yalt/package.json +++ b/packages/yalt/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/yalt", - "version": "3.0.0-beta.23", + "version": "3.0.0-beta.24", "description": "yalt.dev client library", "license": "MIT", "main": "./dist/index.js", From ed03f4bc15b10f076823567dcfa048f65e26916a Mon Sep 17 00:00:00 2001 From: nicktrn <55853254+nicktrn@users.noreply.github.com> Date: Wed, 1 May 2024 11:33:10 +0100 Subject: [PATCH 04/17] fix lockfile --- pnpm-lock.yaml | 70 +++++++++++++++++++++++++------------------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index be2dc4374..9b8eaf292 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -845,10 +845,10 @@ importers: integrations/airtable: dependencies: '@trigger.dev/integration-kit': - specifier: workspace:^3.0.0-beta.23 + specifier: workspace:^3.0.0-beta.24 version: link:../../packages/integration-kit '@trigger.dev/sdk': - specifier: workspace:^3.0.0-beta.23 + specifier: workspace:^3.0.0-beta.24 version: link:../../packages/trigger-sdk airtable: specifier: ^0.12.1 @@ -888,10 +888,10 @@ importers: specifier: ^12.0.10 version: 12.0.10 '@trigger.dev/integration-kit': - specifier: workspace:^3.0.0-beta.23 + specifier: workspace:^3.0.0-beta.24 version: link:../../packages/integration-kit '@trigger.dev/sdk': - specifier: workspace:^3.0.0-beta.23 + specifier: workspace:^3.0.0-beta.24 version: link:../../packages/trigger-sdk octokit: specifier: ^3.1.2 @@ -931,10 +931,10 @@ importers: specifier: ^8.0.0 version: 8.0.0 '@trigger.dev/integration-kit': - specifier: workspace:^3.0.0-beta.23 + specifier: workspace:^3.0.0-beta.24 version: link:../../packages/integration-kit '@trigger.dev/sdk': - specifier: workspace:^3.0.0-beta.23 + specifier: workspace:^3.0.0-beta.24 version: link:../../packages/trigger-sdk zod: specifier: 3.22.3 @@ -962,10 +962,10 @@ importers: integrations/openai: dependencies: '@trigger.dev/integration-kit': - specifier: workspace:^3.0.0-beta.23 + specifier: workspace:^3.0.0-beta.24 version: link:../../packages/integration-kit '@trigger.dev/sdk': - specifier: workspace:^3.0.0-beta.23 + specifier: workspace:^3.0.0-beta.24 version: link:../../packages/trigger-sdk openai: specifier: ^4.16.1 @@ -1005,10 +1005,10 @@ importers: specifier: ^2.7.0 version: 2.7.0 '@trigger.dev/integration-kit': - specifier: workspace:^3.0.0-beta.23 + specifier: workspace:^3.0.0-beta.24 version: link:../../packages/integration-kit '@trigger.dev/sdk': - specifier: workspace:^3.0.0-beta.23 + specifier: workspace:^3.0.0-beta.24 version: link:../../packages/trigger-sdk devDependencies: '@trigger.dev/tsconfig': @@ -1033,10 +1033,10 @@ importers: integrations/replicate: dependencies: '@trigger.dev/integration-kit': - specifier: workspace:^3.0.0-beta.23 + specifier: workspace:^3.0.0-beta.24 version: link:../../packages/integration-kit '@trigger.dev/sdk': - specifier: workspace:^3.0.0-beta.23 + specifier: workspace:^3.0.0-beta.24 version: link:../../packages/trigger-sdk replicate: specifier: ^0.18.1 @@ -1067,10 +1067,10 @@ importers: integrations/resend: dependencies: '@trigger.dev/integration-kit': - specifier: workspace:^3.0.0-beta.23 + specifier: workspace:^3.0.0-beta.24 version: link:../../packages/integration-kit '@trigger.dev/sdk': - specifier: workspace:^3.0.0-beta.23 + specifier: workspace:^3.0.0-beta.24 version: link:../../packages/trigger-sdk resend: specifier: ^2.1.0 @@ -1101,10 +1101,10 @@ importers: specifier: ^7.7.0 version: 7.7.0 '@trigger.dev/integration-kit': - specifier: workspace:^3.0.0-beta.23 + specifier: workspace:^3.0.0-beta.24 version: link:../../packages/integration-kit '@trigger.dev/sdk': - specifier: workspace:^3.0.0-beta.23 + specifier: workspace:^3.0.0-beta.24 version: link:../../packages/trigger-sdk devDependencies: '@trigger.dev/tsconfig': @@ -1132,10 +1132,10 @@ importers: specifier: ^8.0.2 version: 8.0.2 '@trigger.dev/integration-kit': - specifier: workspace:^3.0.0-beta.23 + specifier: workspace:^3.0.0-beta.24 version: link:../../packages/integration-kit '@trigger.dev/sdk': - specifier: workspace:^3.0.0-beta.23 + specifier: workspace:^3.0.0-beta.24 version: link:../../packages/trigger-sdk zod: specifier: 3.22.3 @@ -1166,7 +1166,7 @@ importers: specifier: ^6.8.1 version: 6.8.1 '@trigger.dev/sdk': - specifier: workspace:^3.0.0-beta.23 + specifier: workspace:^3.0.0-beta.24 version: link:../../packages/trigger-sdk zod: specifier: 3.22.3 @@ -1194,10 +1194,10 @@ importers: integrations/stripe: dependencies: '@trigger.dev/integration-kit': - specifier: workspace:^3.0.0-beta.23 + specifier: workspace:^3.0.0-beta.24 version: link:../../packages/integration-kit '@trigger.dev/sdk': - specifier: workspace:^3.0.0-beta.23 + specifier: workspace:^3.0.0-beta.24 version: link:../../packages/trigger-sdk stripe: specifier: ^12.14.0 @@ -1231,10 +1231,10 @@ importers: specifier: ^2.26.0 version: 2.31.0 '@trigger.dev/integration-kit': - specifier: workspace:^3.0.0-beta.23 + specifier: workspace:^3.0.0-beta.24 version: link:../../packages/integration-kit '@trigger.dev/sdk': - specifier: workspace:^3.0.0-beta.23 + specifier: workspace:^3.0.0-beta.24 version: link:../../packages/trigger-sdk supabase-management-js: specifier: ^1.0.0 @@ -1265,10 +1265,10 @@ importers: integrations/typeform: dependencies: '@trigger.dev/integration-kit': - specifier: workspace:^3.0.0-beta.23 + specifier: workspace:^3.0.0-beta.24 version: link:../../packages/integration-kit '@trigger.dev/sdk': - specifier: workspace:^3.0.0-beta.23 + specifier: workspace:^3.0.0-beta.24 version: link:../../packages/trigger-sdk '@typeform/api-client': specifier: ^1.8.0 @@ -1296,7 +1296,7 @@ importers: packages/astro: dependencies: '@trigger.dev/sdk': - specifier: workspace:^3.0.0-beta.23 + specifier: workspace:^3.0.0-beta.24 version: link:../trigger-sdk debug: specifier: ^4.3.4 @@ -1514,7 +1514,7 @@ importers: specifier: ^1.22.0 version: 1.22.0 '@trigger.dev/core': - specifier: workspace:3.0.0-beta.23 + specifier: workspace:3.0.0-beta.24 version: link:../core '@types/degit': specifier: ^2.8.3 @@ -1956,7 +1956,7 @@ importers: version: 4.18.2 devDependencies: '@trigger.dev/sdk': - specifier: workspace:^3.0.0-beta.23 + specifier: workspace:^3.0.0-beta.24 version: link:../trigger-sdk '@trigger.dev/tsconfig': specifier: workspace:* @@ -2051,7 +2051,7 @@ importers: version: 4.3.4(supports-color@8.1.1) devDependencies: '@trigger.dev/sdk': - specifier: workspace:^3.0.0-beta.23 + specifier: workspace:^3.0.0-beta.24 version: link:../trigger-sdk '@trigger.dev/tsconfig': specifier: workspace:* @@ -2084,7 +2084,7 @@ importers: packages/nextjs: dependencies: '@trigger.dev/sdk': - specifier: workspace:^3.0.0-beta.23 + specifier: workspace:^3.0.0-beta.24 version: link:../trigger-sdk debug: specifier: ^4.3.4 @@ -2170,7 +2170,7 @@ importers: specifier: 5.0.0-beta.2 version: 5.0.0-beta.2(react@18.2.0) '@trigger.dev/core': - specifier: workspace:^3.0.0-beta.23 + specifier: workspace:^3.0.0-beta.24 version: link:../core debug: specifier: ^4.3.4 @@ -2213,7 +2213,7 @@ importers: packages/remix: dependencies: '@trigger.dev/sdk': - specifier: workspace:^3.0.0-beta.23 + specifier: workspace:^3.0.0-beta.24 version: link:../trigger-sdk debug: specifier: ^4.3.4 @@ -2250,7 +2250,7 @@ importers: packages/sveltekit: dependencies: '@trigger.dev/sdk': - specifier: workspace:^3.0.0-beta.23 + specifier: workspace:^3.0.0-beta.24 version: link:../trigger-sdk debug: specifier: ^4.3.4 @@ -2324,10 +2324,10 @@ importers: specifier: ^1.22.0 version: 1.22.0 '@trigger.dev/core': - specifier: workspace:3.0.0-beta.23 + specifier: workspace:3.0.0-beta.24 version: link:../core '@trigger.dev/core-backend': - specifier: workspace:3.0.0-beta.23 + specifier: workspace:3.0.0-beta.24 version: link:../core-backend chalk: specifier: ^5.2.0 From 9e5382951b34b5bbdfb9ec38e174ee582bfedb49 Mon Sep 17 00:00:00 2001 From: Eric Allam Date: Wed, 1 May 2024 13:52:01 +0100 Subject: [PATCH 05/17] Improve the display of non-object return types in the run trace viewer --- .changeset/six-ligers-exist.md | 5 + apps/webapp/app/models/message.server.ts | 3 +- .../app/presenters/v3/SpanPresenter.server.ts | 2 +- .../resources.taskruns.$runParam.replay.ts | 8 ++ apps/webapp/app/v3/eventRepository.server.ts | 74 ++++++++++++--- packages/core/src/v3/index.ts | 1 + .../core/src/v3/utils/flattenAttributes.ts | 93 +++++++++++++------ packages/core/src/v3/utils/ioSerialization.ts | 6 +- packages/core/test/flattenAttributes.test.ts | 32 ++++++- .../v3-catalog/src/trigger/returnTypes.ts | 25 +++++ 10 files changed, 197 insertions(+), 52 deletions(-) create mode 100644 .changeset/six-ligers-exist.md diff --git a/.changeset/six-ligers-exist.md b/.changeset/six-ligers-exist.md new file mode 100644 index 000000000..b021e43de --- /dev/null +++ b/.changeset/six-ligers-exist.md @@ -0,0 +1,5 @@ +--- +"@trigger.dev/core": patch +--- + +Improve the display of non-object return types in the run trace viewer diff --git a/apps/webapp/app/models/message.server.ts b/apps/webapp/app/models/message.server.ts index d1278c1c2..85f49a710 100644 --- a/apps/webapp/app/models/message.server.ts +++ b/apps/webapp/app/models/message.server.ts @@ -1,5 +1,4 @@ -import { json, Session } from "@remix-run/node"; -import { redirect } from "remix-typedjson"; +import { json, redirect, Session } from "@remix-run/node"; import { createCookieSessionStorage } from "@remix-run/node"; import { env } from "~/env.server"; diff --git a/apps/webapp/app/presenters/v3/SpanPresenter.server.ts b/apps/webapp/app/presenters/v3/SpanPresenter.server.ts index c36ba7be6..c21a05bde 100644 --- a/apps/webapp/app/presenters/v3/SpanPresenter.server.ts +++ b/apps/webapp/app/presenters/v3/SpanPresenter.server.ts @@ -42,7 +42,7 @@ export class SpanPresenter { const output = span.outputType === "application/store" ? `/resources/packets/${span.environmentId}/${span.output}` - : typeof span.output !== "undefined" && span.output !== null + : typeof span.output !== "undefined" ? await prettyPrintPacket(span.output, span.outputType ?? undefined) : undefined; diff --git a/apps/webapp/app/routes/resources.taskruns.$runParam.replay.ts b/apps/webapp/app/routes/resources.taskruns.$runParam.replay.ts index 0abd29f14..f211e81e6 100644 --- a/apps/webapp/app/routes/resources.taskruns.$runParam.replay.ts +++ b/apps/webapp/app/routes/resources.taskruns.$runParam.replay.ts @@ -63,6 +63,14 @@ export const action: ActionFunction = async ({ request, params }) => { { spanId: newRun.spanId } ); + logger.debug("Replayed run", { + taskRunId: taskRun.id, + taskRunFriendlyId: taskRun.friendlyId, + newRunId: newRun.id, + newRunFriendlyId: newRun.friendlyId, + runPath, + }); + return redirectWithSuccessMessage(runPath, request, `Replaying run`); } catch (error) { if (error instanceof Error) { diff --git a/apps/webapp/app/v3/eventRepository.server.ts b/apps/webapp/app/v3/eventRepository.server.ts index adfea6133..6e9ea22cd 100644 --- a/apps/webapp/app/v3/eventRepository.server.ts +++ b/apps/webapp/app/v3/eventRepository.server.ts @@ -13,6 +13,7 @@ import { correctErrorStackTrace, createPacketAttributesAsJson, flattenAttributes, + NULL_SENTINEL, isExceptionSpanEvent, omit, unflattenAttributes, @@ -438,21 +439,10 @@ export class EventRepository { return; } - const output = isEmptyJson(fullEvent.output) - ? null - : unflattenAttributes(fullEvent.output as Attributes); + const output = rehydrateJson(fullEvent.output); + const payload = rehydrateJson(fullEvent.payload); - const payload = isEmptyJson(fullEvent.payload) - ? null - : unflattenAttributes(fullEvent.payload as Attributes); - - const show = unflattenAttributes( - filteredAttributes(fullEvent.properties as Attributes, SemanticInternalAttributes.SHOW) - )[SemanticInternalAttributes.SHOW] as - | { - actions?: boolean; - } - | undefined; + const show = rehydrateShow(fullEvent.properties); const properties = sanitizedAttributes(fullEvent.properties); @@ -1046,7 +1036,7 @@ function isEmptyJson(json: Prisma.JsonValue) { return false; } -function sanitizedAttributes(json: Prisma.JsonValue): Record | undefined { +function sanitizedAttributes(json: Prisma.JsonValue) { if (json === null || json === undefined) { return; } @@ -1143,3 +1133,57 @@ function getNowInNanoseconds(): bigint { function getDateFromNanoseconds(nanoseconds: bigint) { return new Date(Number(nanoseconds) / 1_000_000); } + +function rehydrateJson(json: Prisma.JsonValue): any { + if (json === null) { + return undefined; + } + + if (json === NULL_SENTINEL) { + return null; + } + + if (typeof json === "string") { + return json; + } + + if (typeof json === "number") { + return json; + } + + if (typeof json === "boolean") { + return json; + } + + if (Array.isArray(json)) { + return json.map((item) => rehydrateJson(item)); + } + + if (typeof json === "object") { + return unflattenAttributes(json as Attributes); + } + + return null; +} + +function rehydrateShow(properties: Prisma.JsonValue): { actions?: boolean } | undefined { + if (properties === null || properties === undefined) { + return; + } + + if (typeof properties !== "object") { + return; + } + + if (Array.isArray(properties)) { + return; + } + + const actions = properties[SemanticInternalAttributes.SHOW_ACTIONS]; + + if (typeof actions === "boolean") { + return { actions }; + } + + return; +} diff --git a/packages/core/src/v3/index.ts b/packages/core/src/v3/index.ts index 2428a7c7e..d8698d0ac 100644 --- a/packages/core/src/v3/index.ts +++ b/packages/core/src/v3/index.ts @@ -28,6 +28,7 @@ export { flattenAttributes, primitiveValueOrflattenedAttributes, unflattenAttributes, + NULL_SENTINEL, } from "./utils/flattenAttributes"; export { omit } from "./utils/omit"; export { diff --git a/packages/core/src/v3/utils/flattenAttributes.ts b/packages/core/src/v3/utils/flattenAttributes.ts index a8afe13ce..e58f5d8b7 100644 --- a/packages/core/src/v3/utils/flattenAttributes.ts +++ b/packages/core/src/v3/utils/flattenAttributes.ts @@ -1,5 +1,7 @@ import { Attributes } from "@opentelemetry/api"; +export const NULL_SENTINEL = "$@null(("; + export function flattenAttributes( obj: Record | Array | string | boolean | number | null | undefined, prefix?: string @@ -7,7 +9,12 @@ export function flattenAttributes( const result: Attributes = {}; // Check if obj is null or undefined - if (!obj) { + if (obj === undefined) { + return result; + } + + if (obj === null) { + result[prefix || ""] = NULL_SENTINEL; return result; } @@ -27,14 +34,18 @@ export function flattenAttributes( } for (const [key, value] of Object.entries(obj)) { - const newPrefix = `${prefix ? `${prefix}.` : ""}${key}`; + const newPrefix = `${prefix ? `${prefix}.` : ""}${Array.isArray(obj) ? `[${key}]` : key}`; if (Array.isArray(value)) { for (let i = 0; i < value.length; i++) { if (typeof value[i] === "object" && value[i] !== null) { // update null check here as well Object.assign(result, flattenAttributes(value[i], `${newPrefix}.[${i}]`)); } else { - result[`${newPrefix}.[${i}]`] = value[i]; + if (value[i] === null) { + result[`${newPrefix}.[${i}]`] = NULL_SENTINEL; + } else { + result[`${newPrefix}.[${i}]`] = value[i]; + } } } } else if (isRecord(value)) { @@ -43,6 +54,8 @@ export function flattenAttributes( } else { if (typeof value === "number" || typeof value === "string" || typeof value === "boolean") { result[newPrefix] = value; + } else if (value === null) { + result[newPrefix] = NULL_SENTINEL; } } } @@ -54,55 +67,69 @@ function isRecord(value: unknown): value is Record { return value !== null && typeof value === "object" && !Array.isArray(value); } -export function unflattenAttributes(obj: Attributes): Record { +export function unflattenAttributes( + obj: Attributes +): Record | string | number | boolean | null | undefined { if (typeof obj !== "object" || obj === null || Array.isArray(obj)) { return obj; } + if ( + typeof obj === "object" && + obj !== null && + Object.keys(obj).length === 1 && + Object.keys(obj)[0] === "" + ) { + return rehydrateNull(obj[""]) as any; + } + + if (Object.keys(obj).length === 0) { + return; + } + const result: Record = {}; for (const [key, value] of Object.entries(obj)) { const parts = key.split(".").reduce((acc, part) => { - // Splitting array indices as separate parts - if (detectIsArrayIndex(part)) { - acc.push(part); + if (part.includes("[")) { + // Handling nested array indices + const subparts = part.split(/\[|\]/).filter((p) => p !== ""); + acc.push(...subparts); } else { - acc.push(...part.split(/\.\[(.*?)\]/).filter(Boolean)); + acc.push(part); } return acc; }, [] as string[]); - let current: Record = result; + let current: any = result; for (let i = 0; i < parts.length - 1; i++) { const part = parts[i]; - const isArray = detectIsArrayIndex(part); - const cleanPart = isArray ? part.substring(1, part.length - 1) : part; - const nextIsArray = detectIsArrayIndex(parts[i + 1]); - if (!current[cleanPart]) { - current[cleanPart] = nextIsArray ? [] : {}; + const nextPart = parts[i + 1]; + const isArray = /^\d+$/.test(nextPart); + if (isArray && !Array.isArray(current[part])) { + current[part] = []; + } else if (!isArray && current[part] === undefined) { + current[part] = {}; } - current = current[cleanPart] as Record; + current = current[part]; } const lastPart = parts[parts.length - 1]; - const cleanLastPart = detectIsArrayIndex(lastPart) - ? parseInt(lastPart.substring(1, lastPart.length - 1), 10) - : lastPart; - current[cleanLastPart] = value; + current[lastPart] = rehydrateNull(value); + } + + // Convert the result to an array if all top-level keys are numeric indices + if (Object.keys(result).every((k) => /^\d+$/.test(k))) { + const maxIndex = Math.max(...Object.keys(result).map((k) => parseInt(k))); + const arrayResult = Array(maxIndex + 1); + for (const key in result) { + arrayResult[parseInt(key)] = result[key]; + } + return arrayResult as any; } return result; } -function detectIsArrayIndex(key: string): boolean { - const match = key.match(/^\[(\d+)\]$/); - - if (match) { - return true; - } - - return false; -} - export function primitiveValueOrflattenedAttributes( obj: Record | Array | string | boolean | number | undefined, prefix: string | undefined @@ -129,3 +156,11 @@ export function primitiveValueOrflattenedAttributes( return attributes; } + +function rehydrateNull(value: any): any { + if (value === NULL_SENTINEL) { + return null; + } + + return value; +} diff --git a/packages/core/src/v3/utils/ioSerialization.ts b/packages/core/src/v3/utils/ioSerialization.ts index e39c3277e..d03688c95 100644 --- a/packages/core/src/v3/utils/ioSerialization.ts +++ b/packages/core/src/v3/utils/ioSerialization.ts @@ -216,11 +216,13 @@ export async function createPacketAttributes( const parsed = parse(packet.data) as any; const jsonified = JSON.parse(JSON.stringify(parsed, safeReplacer)); - return { + const result = { ...flattenAttributes(jsonified, dataKey), [dataTypeKey]: "application/json", }; - } catch { + + return result; + } catch (e) { return; } diff --git a/packages/core/test/flattenAttributes.test.ts b/packages/core/test/flattenAttributes.test.ts index 3ce865112..86c6036cb 100644 --- a/packages/core/test/flattenAttributes.test.ts +++ b/packages/core/test/flattenAttributes.test.ts @@ -1,24 +1,50 @@ import { flattenAttributes, unflattenAttributes } from "../src/v3/utils/flattenAttributes"; describe("flattenAttributes", () => { - it("handles null and undefined gracefully", () => { - expect(flattenAttributes(null)).toEqual({}); - expect(flattenAttributes(undefined)).toEqual({}); + it("handles null correctly", () => { + expect(flattenAttributes(null)).toEqual({ "": "$@null((" }); + expect(unflattenAttributes({ "": "$@null((" })).toEqual(null); + + expect(flattenAttributes(null, "$output")).toEqual({ $output: "$@null((" }); + expect(flattenAttributes({ foo: null })).toEqual({ foo: "$@null((" }); + expect(unflattenAttributes({ foo: "$@null((" })).toEqual({ foo: null }); + + expect(flattenAttributes({ foo: [null] })).toEqual({ "foo.[0]": "$@null((" }); + expect(unflattenAttributes({ "foo.[0]": "$@null((" })).toEqual({ foo: [null] }); + + expect(flattenAttributes([null])).toEqual({ "[0]": "$@null((" }); + expect(unflattenAttributes({ "[0]": "$@null((" })).toEqual([null]); }); it("flattens string attributes correctly", () => { const result = flattenAttributes("testString"); expect(result).toEqual({ "": "testString" }); + expect(unflattenAttributes(result)).toEqual("testString"); }); it("flattens number attributes correctly", () => { const result = flattenAttributes(12345); expect(result).toEqual({ "": 12345 }); + expect(unflattenAttributes(result)).toEqual(12345); }); it("flattens boolean attributes correctly", () => { const result = flattenAttributes(true); expect(result).toEqual({ "": true }); + expect(unflattenAttributes(result)).toEqual(true); + }); + + it("flattens boolean attributes correctly", () => { + const result = flattenAttributes(true, "$output"); + expect(result).toEqual({ $output: true }); + expect(unflattenAttributes(result)).toEqual({ $output: true }); + }); + + it("flattens array attributes correctly", () => { + const input = [1, 2, 3]; + const result = flattenAttributes(input); + expect(result).toEqual({ "[0]": 1, "[1]": 2, "[2]": 3 }); + expect(unflattenAttributes(result)).toEqual(input); }); it("flattens complex objects correctly", () => { diff --git a/references/v3-catalog/src/trigger/returnTypes.ts b/references/v3-catalog/src/trigger/returnTypes.ts index e09dc4bd8..ccac7aa2f 100644 --- a/references/v3-catalog/src/trigger/returnTypes.ts +++ b/references/v3-catalog/src/trigger/returnTypes.ts @@ -1,5 +1,30 @@ import { task } from "@trigger.dev/sdk/v3"; +export const returnAllTypes = task({ + id: "return-all-types", + run: async () => { + const resultString = await returnString.triggerAndWait(); + const resultNumber = await returnNumber.triggerAndWait(); + const resultTrue = await returnTrue.triggerAndWait(); + const resultFalse = await returnFalse.triggerAndWait(); + const resultNull = await returnNull.triggerAndWait(); + const resultUndefined = await returnUndefined.triggerAndWait(); + const resultObject = await returnObject.triggerAndWait(); + const resultArray = await returnArray.triggerAndWait(); + + return { + resultString, + resultNumber, + resultTrue, + resultFalse, + resultNull, + resultUndefined, + resultObject, + resultArray, + }; + }, +}); + export const returnString = task({ id: "return-string", run: async () => { From e337b21650c369f1328ca164b6a3c9bd992f53e4 Mon Sep 17 00:00:00 2001 From: Eric Allam Date: Wed, 1 May 2024 14:16:52 +0100 Subject: [PATCH 06/17] Add a postInstall option to allow running scripts after dependencies have been installed in deployed images --- .changeset/rare-lamps-promise.md | 6 ++++++ packages/cli-v3/src/Containerfile.prod | 2 ++ packages/cli-v3/src/commands/deploy.ts | 15 +++++++++++++-- packages/core/src/v3/schemas/schemas.ts | 1 + packages/core/src/v3/types/config.ts | 7 +++++++ references/v3-catalog/prisma/schema.prisma | 14 ++++++++++++++ references/v3-catalog/trigger.config.ts | 5 +++-- 7 files changed, 46 insertions(+), 4 deletions(-) create mode 100644 .changeset/rare-lamps-promise.md create mode 100644 references/v3-catalog/prisma/schema.prisma diff --git a/.changeset/rare-lamps-promise.md b/.changeset/rare-lamps-promise.md new file mode 100644 index 000000000..16c0bd3d1 --- /dev/null +++ b/.changeset/rare-lamps-promise.md @@ -0,0 +1,6 @@ +--- +"trigger.dev": patch +"@trigger.dev/core": patch +--- + +Add a postInstall option to allow running scripts after dependencies have been installed in deployed images diff --git a/packages/cli-v3/src/Containerfile.prod b/packages/cli-v3/src/Containerfile.prod index df09ff001..737a1cbbd 100644 --- a/packages/cli-v3/src/Containerfile.prod +++ b/packages/cli-v3/src/Containerfile.prod @@ -19,6 +19,8 @@ COPY --chown=node:node . . USER node RUN npm ci --no-fund --no-audit && npm cache clean --force +__POST_INSTALL__ + # Development or production stage builds upon the base stage FROM base AS final diff --git a/packages/cli-v3/src/commands/deploy.ts b/packages/cli-v3/src/commands/deploy.ts index dc841c11e..d82c032d7 100644 --- a/packages/cli-v3/src/commands/deploy.ts +++ b/packages/cli-v3/src/commands/deploy.ts @@ -1325,8 +1325,19 @@ async function compileProject( // Write the Containerfile to /tmp/dir/Containerfile const containerFilePath = join(cliRootPath(), "Containerfile.prod"); - // Copy the Containerfile to /tmp/dir/Containerfile - await copyFile(containerFilePath, join(tempDir, "Containerfile")); + + let containerFileContents = readFileSync(containerFilePath, "utf-8"); + + if (config.postInstall) { + containerFileContents = containerFileContents.replace( + "__POST_INSTALL__", + `RUN ${config.postInstall}` + ); + } else { + containerFileContents = containerFileContents.replace("__POST_INSTALL__", ""); + } + + await writeFile(join(tempDir, "Containerfile"), containerFileContents); const contentHasher = createHash("sha256"); contentHasher.update(Buffer.from(entryPointOutputFile.text)); diff --git a/packages/core/src/v3/schemas/schemas.ts b/packages/core/src/v3/schemas/schemas.ts index fe82a1be3..af72652d7 100644 --- a/packages/core/src/v3/schemas/schemas.ts +++ b/packages/core/src/v3/schemas/schemas.ts @@ -212,6 +212,7 @@ export const Config = z.object({ dependenciesToBundle: z.array(z.union([z.string(), RegexSchema])).optional(), logLevel: z.string().optional(), enableConsoleLogging: z.boolean().optional(), + postInstall: z.string().optional(), }); export type Config = z.infer; diff --git a/packages/core/src/v3/types/config.ts b/packages/core/src/v3/types/config.ts index 81786576d..33055ec55 100644 --- a/packages/core/src/v3/types/config.ts +++ b/packages/core/src/v3/types/config.ts @@ -69,4 +69,11 @@ export interface ProjectConfig { * onStart is called the first time a task is executed in a run (not before every retry) */ onStart?: (payload: unknown, params: StartFnParams) => Promise; + + /** + * postInstall will run during the deploy build step, after all the dependencies have been installed. + * + * @example "prisma generate" + */ + postInstall?: string; } diff --git a/references/v3-catalog/prisma/schema.prisma b/references/v3-catalog/prisma/schema.prisma new file mode 100644 index 000000000..0789f5d39 --- /dev/null +++ b/references/v3-catalog/prisma/schema.prisma @@ -0,0 +1,14 @@ +datasource db { + provider = "postgresql" + url = env("DATABASE_URL") + directUrl = env("DIRECT_URL") +} + +generator client { + provider = "prisma-client-js" +} + +model User { + id String @id @default(cuid()) + email String @unique +} diff --git a/references/v3-catalog/trigger.config.ts b/references/v3-catalog/trigger.config.ts index d30df2e2f..41650c57f 100644 --- a/references/v3-catalog/trigger.config.ts +++ b/references/v3-catalog/trigger.config.ts @@ -16,8 +16,8 @@ export const config: TriggerConfig = { randomize: true, }, }, - additionalPackages: ["wrangler@3.35.0", "pg@8.11.5"], - additionalFiles: ["./wrangler/wrangler.toml"], + additionalPackages: ["wrangler@3.35.0", "pg@8.11.5", "prisma@5.11.0"], + additionalFiles: ["./wrangler/wrangler.toml", "./prisma/schema.prisma"], dependenciesToBundle: [/@sindresorhus/, "escape-string-regexp"], instrumentations: [new OpenAIInstrumentation()], logLevel: "log", @@ -34,4 +34,5 @@ export const config: TriggerConfig = { throw error; }, + postInstall: "npm exec --package prisma -- prisma generate", }; From 2dfe191c553e17043c1aa655bdaadb76d980ba4c Mon Sep 17 00:00:00 2001 From: Eric Allam Date: Wed, 1 May 2024 14:47:50 +0100 Subject: [PATCH 07/17] Fixed some docs that were missing imports --- docs/v3/errors-retrying.mdx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/docs/v3/errors-retrying.mdx b/docs/v3/errors-retrying.mdx index 11c40ef2a..eface1e49 100644 --- a/docs/v3/errors-retrying.mdx +++ b/docs/v3/errors-retrying.mdx @@ -29,6 +29,8 @@ This task will retry 10 times with exponential backoff. One way to gain reliability is to break your work into smaller tasks and [trigger](/v3/triggering) them from each other. Each task can have its own retrying behavior: ```ts /trigger/multiple-tasks.ts +import { task } from "@trigger.dev/sdk/v3"; + export const myTask = task({ id: "my-task", retry: { @@ -66,7 +68,7 @@ We provide some useful functions that you can use to retry smaller parts of a ta You can retry a block of code that can throw an error, with the same retry settings as a task. ```ts /trigger/retry-on-throw.ts -import { task, logger, retry } from "@trigger.dev/sdk/v3" +import { task, logger, retry } from "@trigger.dev/sdk/v3"; export const retryOnThrow = task({ id: "retry-on-throw", @@ -102,6 +104,8 @@ You can use `fetch`, `axios`, or any other library in your code. But we do provide a convenient function to perform HTTP requests with conditional retrying based on the response: ```ts /trigger/retry-fetch.ts +import { task, logger, retry } from "@trigger.dev/sdk/v3"; + export const taskWithFetchRetries = task({ id: "task-with-fetch-retries", run: async ({ payload, ctx }) => { @@ -195,6 +199,8 @@ In this complicated example: - If we've run out of requests or tokens we retry at the time specified in the headers. ```ts +import { task } from "@trigger.dev/sdk/v3"; + export const openaiTask = task({ id: "openai-task", retry: { From c37c82231498cca5969c6b40cc94e5f4c20a71d2 Mon Sep 17 00:00:00 2001 From: Eric Allam Date: Wed, 1 May 2024 15:51:39 +0100 Subject: [PATCH 08/17] Use locked package versions when resolving dependencies in deployed workers --- .changeset/tender-moose-tell.md | 5 + packages/cli-v3/src/commands/deploy.ts | 27 +- .../cli-v3/src/utilities/javascriptProject.ts | 247 ++++++++++--- pnpm-lock.yaml | 342 +++++++++++++++--- references/v3-catalog/package.json | 5 + references/v3-catalog/src/trigger/email.tsx | 13 + .../v3-catalog/src/trigger/emails/index.tsx | 15 + references/v3-catalog/tsconfig.json | 3 +- 8 files changed, 529 insertions(+), 128 deletions(-) create mode 100644 .changeset/tender-moose-tell.md create mode 100644 references/v3-catalog/src/trigger/email.tsx create mode 100644 references/v3-catalog/src/trigger/emails/index.tsx diff --git a/.changeset/tender-moose-tell.md b/.changeset/tender-moose-tell.md new file mode 100644 index 000000000..43a14bdcb --- /dev/null +++ b/.changeset/tender-moose-tell.md @@ -0,0 +1,5 @@ +--- +"trigger.dev": patch +--- + +Use locked package versions when resolving dependencies in deployed workers diff --git a/packages/cli-v3/src/commands/deploy.ts b/packages/cli-v3/src/commands/deploy.ts index d82c032d7..cda816596 100644 --- a/packages/cli-v3/src/commands/deploy.ts +++ b/packages/cli-v3/src/commands/deploy.ts @@ -1283,6 +1283,8 @@ async function compileProject( const dependencies = await gatherRequiredDependencies(allImports, config, javascriptProject); + logger.debug("gatherRequiredDependencies()", { dependencies }); + const packageJsonContents = { name: "trigger-worker", version: "0.0.0", @@ -1547,6 +1549,7 @@ async function gatherRequiredDependencies( project: JavascriptProject ) { const dependencies: Record = {}; + const resolvablePackageNames = new Set(); for (const file of imports) { if ((file.kind !== "require-call" && file.kind !== "dynamic-import") || !file.external) { @@ -1555,26 +1558,32 @@ async function gatherRequiredDependencies( const packageName = detectPackageNameFromImportPath(file.path); - if (dependencies[packageName]) { + if (!packageName) { continue; } - const externalDependencyVersion = await project.resolve(packageName); + resolvablePackageNames.add(packageName); + } - if (externalDependencyVersion) { - dependencies[packageName] = stripWorkspaceFromVersion(externalDependencyVersion); - continue; - } + const resolvedPackageVersions = await project.resolveAll(Array.from(resolvablePackageNames)); + const missingPackages = Array.from(resolvablePackageNames).filter( + (packageName) => !resolvedPackageVersions[packageName] + ); + for (const missingPackage of missingPackages) { const internalDependencyVersion = - (packageJson.dependencies as Record)[packageName] ?? - detectDependencyVersion(packageName); + (packageJson.dependencies as Record)[missingPackage] ?? + detectDependencyVersion(missingPackage); if (internalDependencyVersion) { - dependencies[packageName] = stripWorkspaceFromVersion(internalDependencyVersion); + dependencies[missingPackage] = stripWorkspaceFromVersion(internalDependencyVersion); } } + for (const [packageName, version] of Object.entries(resolvedPackageVersions)) { + dependencies[packageName] = version; + } + if (config.additionalPackages) { for (const packageName of config.additionalPackages) { if (dependencies[packageName]) { diff --git a/packages/cli-v3/src/utilities/javascriptProject.ts b/packages/cli-v3/src/utilities/javascriptProject.ts index 36229963e..fd9ba32d2 100644 --- a/packages/cli-v3/src/utilities/javascriptProject.ts +++ b/packages/cli-v3/src/utilities/javascriptProject.ts @@ -5,51 +5,10 @@ import { logger } from "./logger"; import { PackageManager, getUserPackageManager } from "./getUserPackageManager"; import { PackageJson } from "type-fest"; import { assertExhaustive } from "./assertExhaustive"; +import { builtinModules } from "node:module"; export type ResolveOptions = { allowDev: boolean }; -const BuiltInModules = new Set([ - "assert", - "async_hooks", - "buffer", - "child_process", - "cluster", - "console", - "constants", - "crypto", - "dgram", - "dns", - "domain", - "events", - "fs", - "http", - "http2", - "https", - "inspector", - "module", - "net", - "os", - "path", - "perf_hooks", - "process", - "punycode", - "querystring", - "readline", - "repl", - "stream", - "string_decoder", - "timers", - "tls", - "trace_events", - "tty", - "url", - "util", - "v8", - "vm", - "worker_threads", - "zlib", -]); - export class JavascriptProject { private _packageJson?: PackageJson; private _packageManager?: PackageManager; @@ -84,27 +43,73 @@ export class JavascriptProject { } } + async resolveAll( + packageNames: string[], + options?: ResolveOptions + ): Promise> { + const externalPackages = packageNames.filter((packageName) => !isBuiltInModule(packageName)); + + const opts = { allowDev: false, ...options }; + + const command = await this.#getCommand(); + + try { + const versions = await command.resolveDependencyVersions(externalPackages, { + cwd: this.projectPath, + }); + + if (versions) { + logger.debug(`Resolved [${externalPackages.join(", ")}] version using ${command.name}`, { + versions, + }); + } + + // Merge the resolved versions with the package.json dependencies + const missingPackages = externalPackages.filter((packageName) => !versions[packageName]); + const missingPackageVersions: Record = {}; + + for (const packageName of missingPackages) { + const packageJsonVersion = this.packageJson.dependencies?.[packageName]; + + if (typeof packageJsonVersion === "string") { + logger.debug(`Resolved ${packageName} version using package.json`, { + packageJsonVersion, + }); + + missingPackageVersions[packageName] = packageJsonVersion; + } + + if (opts.allowDev) { + const devPackageJsonVersion = this.packageJson.devDependencies?.[packageName]; + + if (typeof devPackageJsonVersion === "string") { + logger.debug(`Resolved ${packageName} version using devDependencies`, { + devPackageJsonVersion, + }); + + missingPackageVersions[packageName] = devPackageJsonVersion; + } + } + } + + return { ...versions, ...missingPackageVersions }; + } catch (error) { + logger.debug(`Failed to resolve dependency versions using ${command.name}`, { + packageNames, + error, + }); + + return {}; + } + } + async resolve(packageName: string, options?: ResolveOptions): Promise { - if (BuiltInModules.has(packageName)) { + if (isBuiltInModule(packageName)) { return undefined; } const opts = { allowDev: false, ...options }; - const packageJsonVersion = this.packageJson.dependencies?.[packageName]; - - if (typeof packageJsonVersion === "string") { - return packageJsonVersion; - } - - if (opts.allowDev) { - const devPackageJsonVersion = this.packageJson.devDependencies?.[packageName]; - - if (typeof devPackageJsonVersion === "string") { - return devPackageJsonVersion; - } - } - const command = await this.#getCommand(); try { @@ -113,8 +118,30 @@ export class JavascriptProject { }); if (version) { + logger.debug(`Resolved ${packageName} version using ${command.name}`, { version }); + return version; } + + const packageJsonVersion = this.packageJson.dependencies?.[packageName]; + + if (typeof packageJsonVersion === "string") { + logger.debug(`Resolved ${packageName} version using package.json`, { packageJsonVersion }); + + return packageJsonVersion; + } + + if (opts.allowDev) { + const devPackageJsonVersion = this.packageJson.devDependencies?.[packageName]; + + if (typeof devPackageJsonVersion === "string") { + logger.debug(`Resolved ${packageName} version using devDependencies`, { + devPackageJsonVersion, + }); + + return devPackageJsonVersion; + } + } } catch (error) { logger.debug(`Failed to resolve dependency version using ${command.name}`, { packageName, @@ -176,6 +203,11 @@ interface PackageManagerCommands { packageName: string, options: PackageManagerOptions ): Promise; + + resolveDependencyVersions( + packageNames: string[], + options: PackageManagerOptions + ): Promise>; } class PNPMCommands implements PackageManagerCommands { @@ -197,7 +229,7 @@ class PNPMCommands implements PackageManagerCommands { const { stdout } = await $({ cwd: options.cwd })`${this.cmd} list ${packageName} -r --json`; const result = JSON.parse(stdout) as PnpmList; - logger.debug(`Resolving ${packageName} version using ${this.name}`, { result }); + logger.debug(`Resolving ${packageName} version using ${this.name}`); // Return the first dependency version that matches the package name for (const dep of result) { @@ -208,6 +240,31 @@ class PNPMCommands implements PackageManagerCommands { } } } + + async resolveDependencyVersions( + packageNames: string[], + options: PackageManagerOptions + ): Promise> { + const { stdout } = await $({ cwd: options.cwd })`${this.cmd} list ${packageNames} -r --json`; + const result = JSON.parse(stdout) as PnpmList; + + logger.debug(`Resolving ${packageNames.join(" ")} version using ${this.name}`); + + const results: Record = {}; + + // Return the first dependency version that matches the package name + for (const dep of result) { + for (const packageName of packageNames) { + const dependency = dep.dependencies?.[packageName]; + + if (dependency) { + results[packageName] = dependency.version; + } + } + } + + return results; + } } type NpmDependency = { @@ -246,6 +303,28 @@ class NPMCommands implements PackageManagerCommands { return this.#recursivelySearchDependencies(output.dependencies, packageName); } + async resolveDependencyVersions( + packageNames: string[], + options: PackageManagerOptions + ): Promise> { + const { stdout } = await $({ cwd: options.cwd })`${this.cmd} list ${packageNames} --json`; + const output = JSON.parse(stdout) as NpmListOutput; + + logger.debug(`Resolving ${packageNames.join(" ")} version using ${this.name}`, { output }); + + const results: Record = {}; + + for (const packageName of packageNames) { + const version = this.#recursivelySearchDependencies(output.dependencies, packageName); + + if (version) { + results[packageName] = version; + } + } + + return results; + } + #recursivelySearchDependencies( dependencies: Record, packageName: string @@ -286,7 +365,7 @@ class YarnCommands implements PackageManagerCommands { const lines = stdout.split("\n"); - logger.debug(`Resolving ${packageName} version using ${this.name}`, { lines }); + logger.debug(`Resolving ${packageName} version using ${this.name}`); for (const line of lines) { const json = JSON.parse(line); @@ -296,4 +375,54 @@ class YarnCommands implements PackageManagerCommands { } } } + + async resolveDependencyVersions( + packageNames: string[], + options: PackageManagerOptions + ): Promise> { + const { stdout } = await $({ cwd: options.cwd })`${this.cmd} info ${packageNames} --json`; + + const lines = stdout.split("\n"); + + logger.debug(`Resolving ${packageNames.join(" ")} version using ${this.name}`); + + const results: Record = {}; + + for (const line of lines) { + const json = JSON.parse(line); + + const packageName = this.#parseYarnValueIntoPackageName(json.value); + + if (packageNames.includes(packageName)) { + results[packageName] = json.children.Version; + } + } + + return results; + } + + // The "value" when doing yarn info is formatted like this: + // "package-name@npm:version" or "package-name@workspace:version" + // This function will parse the value into just the package name. + // This correctly handles scoped packages as well e.g. @scope/package-name@npm:version + #parseYarnValueIntoPackageName(value: string): string { + const parts = value.split("@"); + + // If the value does not contain an "@" symbol, then it's just the package name + if (parts.length === 3) { + return parts[1] as string; + } + + // If the value contains an "@" symbol, then the package name is the first part + return parts[0] as string; + } +} + +function isBuiltInModule(module: string): boolean { + // if the module has node: prefix, it's a built-in module + if (module.startsWith("node:")) { + return true; + } + + return builtinModules.includes(module); } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9b8eaf292..054fe4e13 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -3083,6 +3083,12 @@ importers: '@opentelemetry/api': specifier: ^1.8.0 version: 1.8.0 + '@react-email/components': + specifier: ^0.0.17 + version: 0.0.17(@types/react@18.3.1)(react@18.2.0) + '@react-email/render': + specifier: ^0.0.7 + version: 0.0.7 '@sindresorhus/slugify': specifier: ^2.2.1 version: 2.2.1 @@ -3110,6 +3116,12 @@ importers: pg: specifier: ^8.11.5 version: 8.11.5 + react: + specifier: ^18.2.0 + version: 18.2.0 + react-email: + specifier: ^1.6.1 + version: 1.6.1(react@18.2.0) reflect-metadata: specifier: ^0.1.13 version: 0.1.13 @@ -3129,6 +3141,9 @@ importers: '@types/node': specifier: 20.4.2 version: 20.4.2 + '@types/react': + specifier: ^18.3.1 + version: 18.3.1 trigger.dev: specifier: workspace:* version: link:../../packages/cli-v3 @@ -8771,7 +8786,7 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: '@npmcli/git': 4.1.0 - glob: 10.3.3 + glob: 10.3.10 hosted-git-info: 6.1.1 json-parse-even-better-errors: 3.0.0 normalize-package-data: 5.0.0 @@ -9717,6 +9732,20 @@ packages: react: 18.2.0 dev: false + /@radix-ui/react-compose-refs@1.0.1(@types/react@18.3.1)(react@18.2.0): + resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.22.5 + '@types/react': 18.3.1 + react: 18.2.0 + dev: false + /@radix-ui/react-context@1.0.0(react@18.2.0): resolution: {integrity: sha512-1pVM9RfOQ+n/N5PJK33kRSKsr1glNxomxONs5c49MliinBY6Yw2Q995qfBUUo0/Mbg05B/sGA0gkgPI7kmSHBg==} peerDependencies: @@ -10293,6 +10322,21 @@ packages: react: 18.2.0 dev: false + /@radix-ui/react-slot@1.0.2(@types/react@18.3.1)(react@18.2.0): + resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.22.5 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.1)(react@18.2.0) + '@types/react': 18.3.1 + react: 18.2.0 + dev: false + /@radix-ui/react-switch@1.0.3(@types/react-dom@18.2.7)(@types/react@18.2.69)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-mxm87F88HyHztsI7N+ZUmEoARGkC22YVW5CaC+Byc+HRpuvCrOBPTAnXgf+tZ/7i0Sg/eOePGdMhUKhPaQEqow==} peerDependencies: @@ -11206,24 +11250,138 @@ packages: react: 18.2.0 dev: false + /@react-email/body@0.0.8(react@18.2.0): + resolution: {integrity: sha512-gqdkNYlIaIw0OdpWu8KjIcQSIFvx7t2bZpXVxMMvBS859Ia1+1X3b5RNbjI3S1ZqLddUf7owOHkO4MiXGE+nxg==} + peerDependencies: + react: ^18.2.0 + dependencies: + react: 18.2.0 + dev: false + + /@react-email/button@0.0.15(react@18.2.0): + resolution: {integrity: sha512-9Zi6SO3E8PoHYDfcJTecImiHLyitYWmIRs0HE3Ogra60ZzlWP2EXu+AZqwQnhXuq+9pbgwBWNWxB5YPetNPTNA==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.2.0 + dependencies: + react: 18.2.0 + dev: false + /@react-email/button@0.0.4: resolution: {integrity: sha512-6leTjsbf37fBb54AKSTOp1lzDsEFgJ/RdoBAy9MhuiciOqnUhJ5BRHZd4LJkt46FsBrILs8Ob50Y4quzV4kP0Q==} dependencies: react: 18.2.0 dev: false + /@react-email/code-block@0.0.4(react@18.2.0): + resolution: {integrity: sha512-xjVLi/9dFNJ70N7hYme+21eQWa3b9/kgp4V+FKQJkQCuIMobxPRCIGM5jKD/0Vo2OqrE5chYv/dkg/aP8a8sPg==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.2.0 + dependencies: + prismjs: 1.29.0 + react: 18.2.0 + dev: false + + /@react-email/code-inline@0.0.2(react@18.2.0): + resolution: {integrity: sha512-0cmgbbibFeOJl0q04K9jJlPDuJ+SEiX/OG6m3Ko7UOkG3TqjRD8Dtvkij6jNDVfUh/zESpqJCP2CxrCLLMUjdA==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.2.0 + dependencies: + react: 18.2.0 + dev: false + + /@react-email/column@0.0.10(react@18.2.0): + resolution: {integrity: sha512-MnP8Mnwipr0X3XtdD6jMLckb0sI5/IlS6Kl/2F6/rsSWBJy5Gg6nizlekTdkwDmy0kNSe3/1nGU0Zqo98pl63Q==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.2.0 + dependencies: + react: 18.2.0 + dev: false + + /@react-email/components@0.0.17(@types/react@18.3.1)(react@18.2.0): + resolution: {integrity: sha512-x5gGQaK0QchbwHvUrCBVnE8GCWdO5osTVuTSA54Fwzels6ZDeNTHEYRx9gI3Nwcf/dkoVYkVH4rzWST0SF0MLA==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.2.0 + dependencies: + '@react-email/body': 0.0.8(react@18.2.0) + '@react-email/button': 0.0.15(react@18.2.0) + '@react-email/code-block': 0.0.4(react@18.2.0) + '@react-email/code-inline': 0.0.2(react@18.2.0) + '@react-email/column': 0.0.10(react@18.2.0) + '@react-email/container': 0.0.12(react@18.2.0) + '@react-email/font': 0.0.6(react@18.2.0) + '@react-email/head': 0.0.8(react@18.2.0) + '@react-email/heading': 0.0.12(@types/react@18.3.1)(react@18.2.0) + '@react-email/hr': 0.0.8(react@18.2.0) + '@react-email/html': 0.0.8(react@18.2.0) + '@react-email/img': 0.0.8(react@18.2.0) + '@react-email/link': 0.0.8(react@18.2.0) + '@react-email/markdown': 0.0.10(react@18.2.0) + '@react-email/preview': 0.0.9(react@18.2.0) + '@react-email/render': 0.0.13 + '@react-email/row': 0.0.8(react@18.2.0) + '@react-email/section': 0.0.12(react@18.2.0) + '@react-email/tailwind': 0.0.16(react@18.2.0) + '@react-email/text': 0.0.8(react@18.2.0) + react: 18.2.0 + transitivePeerDependencies: + - '@types/react' + dev: false + + /@react-email/container@0.0.12(react@18.2.0): + resolution: {integrity: sha512-HFu8Pu5COPFfeZxSL+wKv/TV5uO/sp4zQ0XkRCdnGkj/xoq0lqOHVDL4yC2Pu6fxXF/9C3PHDA++5uEYV5WVJw==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.2.0 + dependencies: + react: 18.2.0 + dev: false + /@react-email/container@0.0.4: resolution: {integrity: sha512-NwyppwXFfj+jzociP/jXIVkxCB6q9hNyoyMPIOnSbZDl6A16WaEi4ABo+i8BG3dzqQCJ357KPvMRkn8PJ/pWjA==} dependencies: react: 18.2.0 dev: false + /@react-email/font@0.0.6(react@18.2.0): + resolution: {integrity: sha512-sZZFvEZ4U3vNCAZ8wXqIO3DuGJR2qE/8m2fEH+tdqwa532zGO3zW+UlCTg0b9455wkJSzEBeaWik0IkNvjXzxw==} + peerDependencies: + react: ^18.2.0 + dependencies: + react: 18.2.0 + dev: false + /@react-email/head@0.0.2: resolution: {integrity: sha512-DLPDRPsqxOKTUYMy7TouldjGZ6/ZAnfmQuRFceliL2YyP4QPQyR+cWaYUItw026+wIJ4eNqLmVgb6M6UOFzB9w==} dependencies: react: 18.2.0 dev: false + /@react-email/head@0.0.8(react@18.2.0): + resolution: {integrity: sha512-8/NI0gtQmLIilAe6rebK1TWw3IXHxtrR02rInkQq8yQ7zKbYbzx7Q/FhmsJgAk+uYh2Er/KhgYJ0sHZyDhfMTQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.2.0 + dependencies: + react: 18.2.0 + dev: false + + /@react-email/heading@0.0.12(@types/react@18.3.1)(react@18.2.0): + resolution: {integrity: sha512-eB7mpnAvDmwvQLoPuwEiPRH4fPXWe6ltz6Ptbry2BlI88F0a2k11Ghb4+sZHBqg7vVw/MKbqEgtLqr3QJ/KfCQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.2.0 + dependencies: + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.1)(react@18.2.0) + react: 18.2.0 + transitivePeerDependencies: + - '@types/react' + dev: false + /@react-email/heading@0.0.5: resolution: {integrity: sha512-guSPzy6x+za+O4ch+3XeRkhgu82rT6FvcDtpuUwAqrFrrY4RTRIZ4jlRWO/hMC9EYGd76PjpsRG7deb+YcwmcQ==} dependencies: @@ -11238,28 +11396,83 @@ packages: react: 18.2.0 dev: false + /@react-email/hr@0.0.8(react@18.2.0): + resolution: {integrity: sha512-JLVvpCg2wYKEB+n/PGCggWG9fRU5e4lxsGdpK5SDLsCL0ic3OLKSpHMfeE+ZSuw0GixAVVQN7F64PVJHQkd4MQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.2.0 + dependencies: + react: 18.2.0 + dev: false + /@react-email/html@0.0.2: resolution: {integrity: sha512-j6r7PdBUuH0G5OhiIskCtDerdowkiOia8nzAMbKt2S3vkRkgIIULIZwWA1mEjHXyTP5ZAOeCaqFTILt4Wn1seA==} dev: false + /@react-email/html@0.0.8(react@18.2.0): + resolution: {integrity: sha512-arII3wBNLpeJtwyIJXPaILm5BPKhA+nvdC1F9QkuKcOBJv2zXctn8XzPqyGqDfdplV692ulNJP7XY55YqbKp6w==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.2.0 + dependencies: + react: 18.2.0 + dev: false + /@react-email/img@0.0.2: resolution: {integrity: sha512-ULvl6OnKlifj0kcQ3U0WL2Ita2e6FOqjZb9PFYGzu82ZphceiK3aMetn9tK+WJCsQA1LEKt9fYr5o3Yz8MF58A==} dependencies: react: 18.2.0 dev: false + /@react-email/img@0.0.8(react@18.2.0): + resolution: {integrity: sha512-jx/rPuKo31tV18fu7P5rRqelaH5wkhg83Dq7uLwJpfqhbi4KFBGeBfD0Y3PiLPPoh+WvYf+Adv9W2ghNW8nOMQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.2.0 + dependencies: + react: 18.2.0 + dev: false + /@react-email/link@0.0.2: resolution: {integrity: sha512-HhUGxOfoBJW6G/7dWs7LIKwkGBn+PfTYcewpkxBoA+IBc6YTwu1KL0gyB3VLTB0qeEXDlT9lNM+qc/EZNsRoaQ==} dependencies: react: 18.2.0 dev: false + /@react-email/link@0.0.8(react@18.2.0): + resolution: {integrity: sha512-nVikuTi8WJHa6Baad4VuRUbUCa/7EtZ1Qy73TRejaCHn+vhetc39XGqHzKLNh+Z/JFL8Hv9g+4AgG16o2R0ogQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.2.0 + dependencies: + react: 18.2.0 + dev: false + + /@react-email/markdown@0.0.10(react@18.2.0): + resolution: {integrity: sha512-MH0xO+NJ4IuJcx9nyxbgGKAMXyudFjCZ0A2GQvuWajemW9qy2hgnJ3mW3/z5lwcenG+JPn7JyO/iZpizQ7u1tA==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.2.0 + dependencies: + md-to-react-email: 5.0.2(react@18.2.0) + react: 18.2.0 + dev: false + /@react-email/preview@0.0.2: resolution: {integrity: sha512-qUe4n5R3z999O12H1IGGzq/zCFKKrzRoi30PLCpxqN4e1CWB+e/s0w20UDFJRy7rRpaZYuLTwTQ5w4T6XHNHIg==} dependencies: react: 18.2.0 dev: false + /@react-email/preview@0.0.9(react@18.2.0): + resolution: {integrity: sha512-2fyAA/zzZYfYmxfyn3p2YOIU30klyA6Dq4ytyWq4nfzQWWglt5hNDE0cMhObvRtfjM9ghMSVtoELAb0MWiF/kw==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.2.0 + dependencies: + react: 18.2.0 + dev: false + /@react-email/render@0.0.12: resolution: {integrity: sha512-S8WRv/PqECEi6x0QJBj0asnAb5GFtJaHlnByxLETLkgJjc76cxMYDH4r9wdbuJ4sjkcbpwP3LPnVzwS+aIjT7g==} engines: {node: '>=18.0.0'} @@ -11270,6 +11483,16 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false + /@react-email/render@0.0.13: + resolution: {integrity: sha512-lmBizrV+rQeSa3GjiL8/kPU0gENqO/wv+4xrlWANabp9UY3lTLXzy7HMRSE8YFBES9AbxP5VX1iRKuEnsoBDew==} + engines: {node: '>=18.0.0'} + dependencies: + html-to-text: 9.0.5 + js-beautify: 1.15.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + /@react-email/render@0.0.4(react@18.2.0): resolution: {integrity: sha512-HPWjgw1TKcvYUPh74BjVC8Xq0ZU4nqb/tKsTa/VK/Ln4yXqnakBXNYl/UdHeJs57Ic9RMXSA9iOciQEHLgFWOg==} engines: {node: '>=16.0.0'} @@ -11301,18 +11524,54 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false + /@react-email/row@0.0.8(react@18.2.0): + resolution: {integrity: sha512-JsB6pxs/ZyjYpEML3nbwJRGAerjcN/Pa/QG48XUwnT/MioDWrUuyQuefw+CwCrSUZ2P1IDrv2tUD3/E3xzcoKw==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.2.0 + dependencies: + react: 18.2.0 + dev: false + /@react-email/section@0.0.1: resolution: {integrity: sha512-Pb2HcGNhTOtFRJVB+Kq2vTUnd8M+LuZBuHfpUD16ua/m2/mbW5WeXAfSuJ2Tl6qspzvDKLHqVX+o6HBc1qgl2Q==} dependencies: react: 18.2.0 dev: false + /@react-email/section@0.0.12(react@18.2.0): + resolution: {integrity: sha512-UCD/N/BeOTN4h3VZBUaFdiSem6HnpuxD1Q51TdBFnqeNqS5hBomp8LWJJ9s4gzwHWk1XPdNfLA3I/fJwulJshg==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.2.0 + dependencies: + react: 18.2.0 + dev: false + + /@react-email/tailwind@0.0.16(react@18.2.0): + resolution: {integrity: sha512-uMifPxCEHaHLhpS1kVCMGyTeEL+aMYzHT4bgj8CkgCiBoF9wNNfIVMUlHGzHUTv4ZTEPaMfZgC/Hi8RqzL/Ogw==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.2.0 + dependencies: + react: 18.2.0 + dev: false + /@react-email/text@0.0.2: resolution: {integrity: sha512-BUOl5/2nsImBLSBC9XE7Khj3KWpubni73l0jT1weLzXG+GY3cZARTEErSit3BC5/KAG9lVISwFTTOfnVjhVDBA==} dependencies: react: 18.2.0 dev: false + /@react-email/text@0.0.8(react@18.2.0): + resolution: {integrity: sha512-uvN2TNWMrfC9wv/LLmMLbbEN1GrMWZb9dBK14eYxHHAEHCeyvGb5ePZZ2MPyzO7Y5yTC+vFEnCEr76V+hWMxCQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.2.0 + dependencies: + react: 18.2.0 + dev: false + /@react-stately/calendar@3.4.3(react@18.2.0): resolution: {integrity: sha512-OrEcdskszDjnjVnFuSiDC2PVBJ6lWMCJROD5s6W1LUehUtBp8LX9wPavAGHV43LbhN9ldj560sxaQ4WCddrRCA==} peerDependencies: @@ -14246,6 +14505,12 @@ packages: '@types/scheduler': 0.16.2 csstype: 3.1.1 + /@types/react@18.3.1: + resolution: {integrity: sha512-V0kuGBX3+prX+DQ/7r2qsv1NsdfnCLnTgnRJ1pYnxykBhGMz+qj+box5lq7XsO5mtZsBqpjwwTu/7wszPfMBcw==} + dependencies: + '@types/prop-types': 15.7.5 + csstype: 3.1.1 + /@types/request@2.48.12: resolution: {integrity: sha512-G3sY+NpsA9jnwm0ixhAFQSJ3Q9JkpLZpJbI3GMv0mIAT0y3mRabYeINzal5WOChIiaTEGQYlHOKgkaM9EisWHw==} dependencies: @@ -17318,6 +17583,7 @@ packages: /commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + dev: true /commander@4.1.1: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} @@ -18436,16 +18702,6 @@ packages: safe-buffer: 5.2.1 dev: false - /editorconfig@0.15.3: - resolution: {integrity: sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==} - hasBin: true - dependencies: - commander: 2.20.3 - lru-cache: 4.1.5 - semver: 5.7.1 - sigmund: 1.0.1 - dev: false - /editorconfig@1.0.4: resolution: {integrity: sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q==} engines: {node: '>=14'} @@ -21429,18 +21685,6 @@ packages: minipass: 7.0.3 path-scurry: 1.10.1 - /glob@10.3.3: - resolution: {integrity: sha512-92vPiMb/iqpmEgsOoIDvTjc50wf9CCCvMzsi6W0JLPeUKE8TWP1a73PgqSrqy7iAZxaSD1YdzU7QZR5LF51MJw==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true - dependencies: - foreground-child: 3.1.1 - jackspeak: 2.3.0 - minimatch: 9.0.3 - minipass: 7.0.3 - path-scurry: 1.10.1 - dev: true - /glob@7.1.6: resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} dependencies: @@ -21493,17 +21737,6 @@ packages: once: 1.4.0 dev: false - /glob@8.1.0: - resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} - engines: {node: '>=12'} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 5.1.2 - once: 1.4.0 - dev: false - /glob@9.3.5: resolution: {integrity: sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==} engines: {node: '>=16 || 14 >=14.17'} @@ -23031,15 +23264,6 @@ packages: resolution: {integrity: sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q==} engines: {node: '>=6'} - /jackspeak@2.3.0: - resolution: {integrity: sha512-uKmsITSsF4rUWQHzqaRUuyAir3fZfW3f202Ee34lz/gZCi970CPZwyQXLGNgWJvvZbvFyzeyGq0+4fcG/mBKZg==} - engines: {node: '>=14'} - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - dev: true - /jackspeak@2.3.6: resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} engines: {node: '>=14'} @@ -23721,17 +23945,6 @@ packages: resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} engines: {node: '>=10'} - /js-beautify@1.14.7: - resolution: {integrity: sha512-5SOX1KXPFKx+5f6ZrPsIPEY7NwKeQz47n3jm2i+XeHx9MoRsfQenlOP13FQhWvg8JRS0+XLO6XYUQ2GX+q+T9A==} - engines: {node: '>=10'} - hasBin: true - dependencies: - config-chain: 1.1.13 - editorconfig: 0.15.3 - glob: 8.1.0 - nopt: 6.0.0 - dev: false - /js-beautify@1.15.1: resolution: {integrity: sha512-ESjNzSlt/sWE8sciZH8kBF8BPlwXPwhR6pWKAw8bw4Bwj+iZcnKW6ONWUutJ7eObuBZQpiIb8S7OYspWrKt7rA==} engines: {node: '>=14'} @@ -24471,6 +24684,12 @@ packages: hasBin: true dev: false + /marked@7.0.4: + resolution: {integrity: sha512-t8eP0dXRJMtMvBojtkcsA7n48BkauktUKzfkPSCq85ZMTJ0v76Rke4DYz01omYpPTUh4p/f7HePgRo3ebG8+QQ==} + engines: {node: '>= 16'} + hasBin: true + dev: false + /match-sorter@6.3.1: resolution: {integrity: sha512-mxybbo3pPNuA+ZuCUhm5bwNkXrJTbsk5VWbR5wiwz/GC6LIiegBGn2w3O08UG/jdbYLinw51fSQ5xNU1U3MgBw==} dependencies: @@ -24478,6 +24697,15 @@ packages: remove-accents: 0.4.2 dev: false + /md-to-react-email@5.0.2(react@18.2.0): + resolution: {integrity: sha512-x6kkpdzIzUhecda/yahltfEl53mH26QdWu4abUF9+S0Jgam8P//Ciro8cdhyMHnT5MQUJYrIbO6ORM2UxPiNNA==} + peerDependencies: + react: 18.x + dependencies: + marked: 7.0.4 + react: 18.2.0 + dev: false + /md5@2.3.0: resolution: {integrity: sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==} dependencies: @@ -27950,7 +28178,7 @@ packages: dependencies: condense-newlines: 0.2.1 extend-shallow: 2.0.1 - js-beautify: 1.14.7 + js-beautify: 1.15.1 dev: false /printable-characters@1.0.42: @@ -29852,10 +30080,6 @@ packages: /siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} - /sigmund@1.0.1: - resolution: {integrity: sha512-fCvEXfh6NWpm+YSuY2bpXb/VIihqWA6hLsgboC+0nl71Q7N7o2eaCW8mJa/NLvQhs6jpd3VZV4UiUQlV6+lc8g==} - dev: false - /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} diff --git a/references/v3-catalog/package.json b/references/v3-catalog/package.json index a6e915e7b..52b673a11 100644 --- a/references/v3-catalog/package.json +++ b/references/v3-catalog/package.json @@ -10,6 +10,8 @@ "@ffmpeg-installer/ffmpeg": "^1.1.0", "@ffprobe-installer/ffprobe": "^2.1.2", "@opentelemetry/api": "^1.8.0", + "@react-email/components": "^0.0.17", + "@react-email/render": "^0.0.7", "@sindresorhus/slugify": "^2.2.1", "@traceloop/instrumentation-openai": "^0.3.9", "@trigger.dev/core": "workspace:^3.0.0-beta.0", @@ -19,6 +21,8 @@ "msw": "^2.2.1", "openai": "^4.28.0", "pg": "^8.11.5", + "react": "^18.2.0", + "react-email": "^1.6.1", "reflect-metadata": "^0.1.13", "stripe": "^12.14.0", "typeorm": "^0.3.20", @@ -27,6 +31,7 @@ "devDependencies": { "@trigger.dev/tsconfig": "workspace:*", "@types/node": "20.4.2", + "@types/react": "^18.3.1", "trigger.dev": "workspace:*", "ts-node": "^10.9.2", "tsconfig-paths": "^4.2.0", diff --git a/references/v3-catalog/src/trigger/email.tsx b/references/v3-catalog/src/trigger/email.tsx new file mode 100644 index 000000000..5d2f010b7 --- /dev/null +++ b/references/v3-catalog/src/trigger/email.tsx @@ -0,0 +1,13 @@ +import { task } from "@trigger.dev/sdk/v3"; +import { ExampleEmail } from "./emails"; +import { render } from "@react-email/render"; + +export const emailTask = task({ + id: "email", + run: async () => { + return { + subject: "Example email", + react: render(), + }; + }, +}); diff --git a/references/v3-catalog/src/trigger/emails/index.tsx b/references/v3-catalog/src/trigger/emails/index.tsx new file mode 100644 index 000000000..d66c79ac6 --- /dev/null +++ b/references/v3-catalog/src/trigger/emails/index.tsx @@ -0,0 +1,15 @@ +import { Button, Html } from "@react-email/components"; +import * as React from "react"; + +export function ExampleEmail(props: {}) { + return ( + + + + ); +} diff --git a/references/v3-catalog/tsconfig.json b/references/v3-catalog/tsconfig.json index 11f740215..707fe9531 100644 --- a/references/v3-catalog/tsconfig.json +++ b/references/v3-catalog/tsconfig.json @@ -1,7 +1,8 @@ { "extends": "@trigger.dev/tsconfig/node18.json", - "include": ["./src/**/*.ts", "trigger.config.ts"], + "include": ["./src/**/*.ts", "trigger.config.ts", "src/trigger/email.tsx"], "compilerOptions": { + "jsx": "react-jsx", "baseUrl": ".", "lib": ["DOM", "DOM.Iterable"], "paths": { From bc0ca01319e47ec2f27d5e48178e9d807e44f10b Mon Sep 17 00:00:00 2001 From: Eric Allam Date: Wed, 1 May 2024 22:13:52 +0100 Subject: [PATCH 09/17] Fix fair queue priority strategy off-by one error --- apps/webapp/app/v3/marqs/index.server.ts | 7 ++++--- apps/webapp/app/v3/marqs/priorityStrategy.server.ts | 8 +++++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/apps/webapp/app/v3/marqs/index.server.ts b/apps/webapp/app/v3/marqs/index.server.ts index b46628d07..dc96a26f0 100644 --- a/apps/webapp/app/v3/marqs/index.server.ts +++ b/apps/webapp/app/v3/marqs/index.server.ts @@ -584,9 +584,10 @@ export class MarQS { span.setAttributes({ ...flattenAttributes(queuesWithScores, "marqs.queuesWithScores"), }); - span.setAttribute("marqs.nextRange", range); - span.setAttribute("marqs.queueCount", queues.length); - span.setAttribute("marqs.queueChoice", choice); + span.setAttribute("nextRange.start", range[0]); + span.setAttribute("nextRange.end", range[1]); + span.setAttribute("queueCount", queues.length); + span.setAttribute("queueChoice", choice); return choice; }, diff --git a/apps/webapp/app/v3/marqs/priorityStrategy.server.ts b/apps/webapp/app/v3/marqs/priorityStrategy.server.ts index d4cb1c7a3..af52f6163 100644 --- a/apps/webapp/app/v3/marqs/priorityStrategy.server.ts +++ b/apps/webapp/app/v3/marqs/priorityStrategy.server.ts @@ -45,7 +45,9 @@ export class SimpleWeightedChoiceStrategy implements MarQSQueuePriorityStrategy constructor(private options: SimpleWeightedChoiceStrategyOptions) {} private nextRangeForParentQueue(parentQueue: string) { - return this._nextRangesByParentQueue.get(parentQueue) ?? [0, this.options.queueSelectionCount]; + return ( + this._nextRangesByParentQueue.get(parentQueue) ?? [0, this.options.queueSelectionCount - 1] + ); } chooseQueue( @@ -61,9 +63,9 @@ export class SimpleWeightedChoiceStrategy implements MarQSQueuePriorityStrategy const nextRange: [number, number] = nextRangeForParentQueue ? [ nextRangeForParentQueue[1], - nextRangeForParentQueue[1] + this.options.queueSelectionCount, + nextRangeForParentQueue[1] + this.options.queueSelectionCount - 1, ] - : [this.options.queueSelectionCount, this.options.queueSelectionCount * 2]; + : [this.options.queueSelectionCount, this.options.queueSelectionCount * 2 - 1]; // If all queues are at capacity, and we were passed the max number of queues, then we will slide the window "to the right" this._nextRangesByParentQueue.set(parentQueue, nextRange); } else { From 339c39d73974d7862ffa8cd78e51ffd036d6e988 Mon Sep 17 00:00:00 2001 From: Eric Allam Date: Wed, 1 May 2024 22:23:38 +0100 Subject: [PATCH 10/17] Fix type issues and unit tests --- apps/webapp/app/models/message.server.ts | 3 ++- apps/webapp/test/marqs.test.ts | 12 ++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/apps/webapp/app/models/message.server.ts b/apps/webapp/app/models/message.server.ts index 85f49a710..b488a4304 100644 --- a/apps/webapp/app/models/message.server.ts +++ b/apps/webapp/app/models/message.server.ts @@ -1,5 +1,6 @@ -import { json, redirect, Session } from "@remix-run/node"; +import { json, Session } from "@remix-run/node"; import { createCookieSessionStorage } from "@remix-run/node"; +import { redirect } from "remix-typedjson"; import { env } from "~/env.server"; export type ToastMessage = { diff --git a/apps/webapp/test/marqs.test.ts b/apps/webapp/test/marqs.test.ts index 36a60679b..23e79de92 100644 --- a/apps/webapp/test/marqs.test.ts +++ b/apps/webapp/test/marqs.test.ts @@ -88,7 +88,7 @@ describe("SimpleWeightedChoiceStrategy", () => { const nextSelection = await stategy.nextCandidateSelection("parentQueue"); - expect(nextSelection).toEqual({ range: [3, 6], selectionId: expect.any(String) }); + expect(nextSelection).toEqual({ range: [2, 4], selectionId: expect.any(String) }); // Now pass some queues that have some capacity const chosenQueue2 = stategy.chooseQueue( @@ -129,7 +129,7 @@ describe("SimpleWeightedChoiceStrategy", () => { const nextSelection2 = await stategy.nextCandidateSelection("parentQueue"); - expect(nextSelection2).toEqual({ range: [0, 3], selectionId: expect.any(String) }); + expect(nextSelection2).toEqual({ range: [0, 2], selectionId: expect.any(String) }); }); it("should adjust the next filter range only if passed the maximum number of queues", async () => { @@ -167,7 +167,7 @@ describe("SimpleWeightedChoiceStrategy", () => { const nextSelection = await stategy.nextCandidateSelection("parentQueue"); - expect(nextSelection).toEqual({ range: [0, 3], selectionId: expect.any(String) }); + expect(nextSelection).toEqual({ range: [0, 2], selectionId: expect.any(String) }); }); it("should adjust the next candidate range ONLY for the matching parent queue", async () => { @@ -214,11 +214,11 @@ describe("SimpleWeightedChoiceStrategy", () => { const nextSelection = await stategy.nextCandidateSelection("parentQueue2"); - expect(nextSelection).toEqual({ range: [0, 3], selectionId: expect.any(String) }); + expect(nextSelection).toEqual({ range: [0, 2], selectionId: expect.any(String) }); const nextSelection2 = await stategy.nextCandidateSelection("parentQueue"); - expect(nextSelection2).toEqual({ range: [3, 6], selectionId: expect.any(String) }); + expect(nextSelection2).toEqual({ range: [2, 4], selectionId: expect.any(String) }); const chosenQueue2 = stategy.chooseQueue( [ @@ -258,6 +258,6 @@ describe("SimpleWeightedChoiceStrategy", () => { const nextSelection3 = await stategy.nextCandidateSelection("parentQueue2"); - expect(nextSelection3).toEqual({ range: [0, 3], selectionId: expect.any(String) }); + expect(nextSelection3).toEqual({ range: [0, 2], selectionId: expect.any(String) }); }); }); From 95f0c7b78007500fc3b6c2652e96ac9bca38ed1f Mon Sep 17 00:00:00 2001 From: Eric Allam Date: Wed, 1 May 2024 22:41:50 +0100 Subject: [PATCH 11/17] increase queue selection count to 36 --- apps/webapp/app/v3/marqs/index.server.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/webapp/app/v3/marqs/index.server.ts b/apps/webapp/app/v3/marqs/index.server.ts index dc96a26f0..0cedd5bd5 100644 --- a/apps/webapp/app/v3/marqs/index.server.ts +++ b/apps/webapp/app/v3/marqs/index.server.ts @@ -1538,7 +1538,7 @@ function getMarQSClient() { return new MarQS({ keysProducer: new MarQSShortKeyProducer(KEY_PREFIX), - queuePriorityStrategy: new SimpleWeightedChoiceStrategy({ queueSelectionCount: 12 }), + queuePriorityStrategy: new SimpleWeightedChoiceStrategy({ queueSelectionCount: 36 }), envQueuePriorityStrategy: new SimpleWeightedChoiceStrategy({ queueSelectionCount: 12 }), workers: 1, redis: redisOptions, From 68dd3804a79dcc8fd5900893424232667b228a78 Mon Sep 17 00:00:00 2001 From: Eric Allam Date: Thu, 2 May 2024 11:56:35 +0100 Subject: [PATCH 12/17] Improve the fair queue selection strategy by paginating through all the queues in the parent queue --- apps/webapp/app/v3/marqs/index.server.ts | 37 +++++---- .../app/v3/marqs/priorityStrategy.server.ts | 54 ++++++------- .../v3/marqs/sharedQueueConsumer.server.ts | 5 +- apps/webapp/app/v3/marqs/types.ts | 6 +- apps/webapp/app/v3/sharedSocketConnection.ts | 2 +- apps/webapp/test/marqs.test.ts | 75 ++++++++++++++++--- 6 files changed, 125 insertions(+), 54 deletions(-) diff --git a/apps/webapp/app/v3/marqs/index.server.ts b/apps/webapp/app/v3/marqs/index.server.ts index 0cedd5bd5..b20c0d99e 100644 --- a/apps/webapp/app/v3/marqs/index.server.ts +++ b/apps/webapp/app/v3/marqs/index.server.ts @@ -19,6 +19,7 @@ import { MarQSQueuePriorityStrategy, MessagePayload, QueueCapacities, + QueueRange, } from "./types"; const tracer = trace.getTracer("marqs"); @@ -563,7 +564,7 @@ export class MarQS { parentQueue ); - const queues = await this.#zrangeWithScores(parentQueue, range[0], range[1]); + const queues = await this.#getChildQueuesWithScores(parentQueue, range); const queuesWithScores = await this.#calculateQueueScores(queues, calculateCapacities); @@ -574,22 +575,25 @@ export class MarQS { selectionId ); - if (typeof choice !== "string") { - return; - } - span.setAttributes({ ...flattenAttributes(queues, "marqs.queues"), }); span.setAttributes({ ...flattenAttributes(queuesWithScores, "marqs.queuesWithScores"), }); - span.setAttribute("nextRange.start", range[0]); - span.setAttribute("nextRange.end", range[1]); + span.setAttribute("nextRange.offset", range.offset); + span.setAttribute("nextRange.count", range.count); span.setAttribute("queueCount", queues.length); - span.setAttribute("queueChoice", choice); - return choice; + if (typeof choice !== "string") { + span.setAttribute("noQueueChoice", true); + + return; + } else { + span.setAttribute("queueChoice", choice); + + return choice; + } }, { kind: SpanKind.CONSUMER, @@ -633,12 +637,19 @@ export class MarQS { }); } - async #zrangeWithScores( + async #getChildQueuesWithScores( key: string, - min: number, - max: number + range: QueueRange ): Promise> { - const valuesWithScores = await this.redis.zrange(key, min, max, "WITHSCORES"); + const valuesWithScores = await this.redis.zrangebyscore( + key, + "-inf", + Date.now(), + "WITHSCORES", + "LIMIT", + range.offset, + range.count + ); const result: Array<{ value: string; score: number }> = []; for (let i = 0; i < valuesWithScores.length; i += 2) { diff --git a/apps/webapp/app/v3/marqs/priorityStrategy.server.ts b/apps/webapp/app/v3/marqs/priorityStrategy.server.ts index af52f6163..cb488aa50 100644 --- a/apps/webapp/app/v3/marqs/priorityStrategy.server.ts +++ b/apps/webapp/app/v3/marqs/priorityStrategy.server.ts @@ -1,5 +1,10 @@ import { RedisOptions } from "ioredis"; -import { MarQSQueuePriorityStrategy, PriorityStrategyChoice, QueueWithScores } from "./types"; +import { + MarQSQueuePriorityStrategy, + PriorityStrategyChoice, + QueueRange, + QueueWithScores, +} from "./types"; import { nanoid } from "nanoid"; import seedrandom from "seedrandom"; @@ -26,9 +31,7 @@ export class DynamicWeightedChoiceStrategy implements MarQSQueuePriorityStrategy throw new Error("Method not implemented."); } - nextCandidateSelection( - parentQueue: string - ): Promise<{ range: [number, number]; selectionId: string }> { + nextCandidateSelection(parentQueue: string): Promise<{ range: QueueRange; selectionId: string }> { throw new Error("Method not implemented."); } } @@ -39,14 +42,17 @@ export type SimpleWeightedChoiceStrategyOptions = { }; export class SimpleWeightedChoiceStrategy implements MarQSQueuePriorityStrategy { - private _nextRangesByParentQueue: Map = new Map(); + private _nextRangesByParentQueue: Map = new Map(); private _randomGenerator = seedrandom(this.options.randomSeed); constructor(private options: SimpleWeightedChoiceStrategyOptions) {} - private nextRangeForParentQueue(parentQueue: string) { + private nextRangeForParentQueue(parentQueue: string): QueueRange { return ( - this._nextRangesByParentQueue.get(parentQueue) ?? [0, this.options.queueSelectionCount - 1] + this._nextRangesByParentQueue.get(parentQueue) ?? { + offset: 0, + count: this.options.queueSelectionCount, + } ); } @@ -57,25 +63,23 @@ export class SimpleWeightedChoiceStrategy implements MarQSQueuePriorityStrategy ): PriorityStrategyChoice { const filteredQueues = filterQueuesAtCapacity(queues); - if (filteredQueues.length === 0) { - if (queues.length === this.options.queueSelectionCount) { - const nextRangeForParentQueue = this.nextRangeForParentQueue(parentQueue); - const nextRange: [number, number] = nextRangeForParentQueue - ? [ - nextRangeForParentQueue[1], - nextRangeForParentQueue[1] + this.options.queueSelectionCount - 1, - ] - : [this.options.queueSelectionCount, this.options.queueSelectionCount * 2 - 1]; - // If all queues are at capacity, and we were passed the max number of queues, then we will slide the window "to the right" - this._nextRangesByParentQueue.set(parentQueue, nextRange); - } else { - this._nextRangesByParentQueue.delete(parentQueue); - } - - return { abort: true }; + if (queues.length === this.options.queueSelectionCount) { + const nextRangeForParentQueue = this.nextRangeForParentQueue(parentQueue); + const nextRange: QueueRange = nextRangeForParentQueue + ? { + offset: nextRangeForParentQueue.offset + this.options.queueSelectionCount, + count: this.options.queueSelectionCount, + } + : { offset: this.options.queueSelectionCount, count: this.options.queueSelectionCount }; + // If all queues are at capacity, and we were passed the max number of queues, then we will slide the window "to the right" + this._nextRangesByParentQueue.set(parentQueue, nextRange); + } else { + this._nextRangesByParentQueue.delete(parentQueue); } - this._nextRangesByParentQueue.delete(parentQueue); + if (filteredQueues.length === 0) { + return { abort: true }; + } const queueWeights = this.#calculateQueueWeights(filteredQueues); @@ -84,7 +88,7 @@ export class SimpleWeightedChoiceStrategy implements MarQSQueuePriorityStrategy async nextCandidateSelection( parentQueue: string - ): Promise<{ range: [number, number]; selectionId: string }> { + ): Promise<{ range: QueueRange; selectionId: string }> { return { range: this.nextRangeForParentQueue(parentQueue), selectionId: nanoid(24) }; } diff --git a/apps/webapp/app/v3/marqs/sharedQueueConsumer.server.ts b/apps/webapp/app/v3/marqs/sharedQueueConsumer.server.ts index d79cbd0df..5cc15e90d 100644 --- a/apps/webapp/app/v3/marqs/sharedQueueConsumer.server.ts +++ b/apps/webapp/app/v3/marqs/sharedQueueConsumer.server.ts @@ -27,7 +27,7 @@ import { generateFriendlyId } from "../friendlyIdentifiers"; import { socketIo } from "../handleSocketIo.server"; import { findCurrentWorkerDeployment } from "../models/workerDeployment.server"; import { RestoreCheckpointService } from "../services/restoreCheckpoint.server"; -import { tracer } from "../tracer.server"; +import { SEMINTATTRS_FORCE_RECORDING, tracer } from "../tracer.server"; import { CrashTaskRunService } from "../services/crashTaskRun.server"; const WithTraceContext = z.object({ @@ -200,6 +200,9 @@ export class SharedQueueConsumer { "SharedQueueConsumer.doWork()", { kind: SpanKind.CONSUMER, + attributes: { + [SEMINTATTRS_FORCE_RECORDING]: true, + }, }, parentContext ); diff --git a/apps/webapp/app/v3/marqs/types.ts b/apps/webapp/app/v3/marqs/types.ts index d1c8afd69..68d22cf28 100644 --- a/apps/webapp/app/v3/marqs/types.ts +++ b/apps/webapp/app/v3/marqs/types.ts @@ -18,6 +18,8 @@ export type QueueWithScores = { age: number; }; +export type QueueRange = { offset: number; count: number }; + export interface MarQSKeyProducer { queueConcurrencyLimitKey(env: AuthenticatedEnvironment, queue: string): string; envConcurrencyLimitKey(env: AuthenticatedEnvironment): string; @@ -69,9 +71,7 @@ export interface MarQSQueuePriorityStrategy { * * @returns The scores and the selectionId for the next candidate selection */ - nextCandidateSelection( - parentQueue: string - ): Promise<{ range: [number, number]; selectionId: string }>; + nextCandidateSelection(parentQueue: string): Promise<{ range: QueueRange; selectionId: string }>; } export const MessagePayload = z.object({ diff --git a/apps/webapp/app/v3/sharedSocketConnection.ts b/apps/webapp/app/v3/sharedSocketConnection.ts index 634f0384b..f7b969264 100644 --- a/apps/webapp/app/v3/sharedSocketConnection.ts +++ b/apps/webapp/app/v3/sharedSocketConnection.ts @@ -100,7 +100,7 @@ export class SharedSocketConnection { }, }); - logger.log("Starting SharedQueueConsumer pool", { + logger.debug("Starting SharedQueueConsumer pool", { poolSize: opts.poolSize ?? this._defaultPoolSize, }); diff --git a/apps/webapp/test/marqs.test.ts b/apps/webapp/test/marqs.test.ts index 23e79de92..5458336cc 100644 --- a/apps/webapp/test/marqs.test.ts +++ b/apps/webapp/test/marqs.test.ts @@ -88,7 +88,10 @@ describe("SimpleWeightedChoiceStrategy", () => { const nextSelection = await stategy.nextCandidateSelection("parentQueue"); - expect(nextSelection).toEqual({ range: [2, 4], selectionId: expect.any(String) }); + expect(nextSelection).toEqual({ + range: { offset: 3, count: 3 }, + selectionId: expect.any(String), + }); // Now pass some queues that have some capacity const chosenQueue2 = stategy.chooseQueue( @@ -129,7 +132,10 @@ describe("SimpleWeightedChoiceStrategy", () => { const nextSelection2 = await stategy.nextCandidateSelection("parentQueue"); - expect(nextSelection2).toEqual({ range: [0, 2], selectionId: expect.any(String) }); + expect(nextSelection2).toEqual({ + range: { offset: 6, count: 3 }, + selectionId: expect.any(String), + }); }); it("should adjust the next filter range only if passed the maximum number of queues", async () => { @@ -167,7 +173,10 @@ describe("SimpleWeightedChoiceStrategy", () => { const nextSelection = await stategy.nextCandidateSelection("parentQueue"); - expect(nextSelection).toEqual({ range: [0, 2], selectionId: expect.any(String) }); + expect(nextSelection).toEqual({ + range: { offset: 0, count: 3 }, + selectionId: expect.any(String), + }); }); it("should adjust the next candidate range ONLY for the matching parent queue", async () => { @@ -182,7 +191,7 @@ describe("SimpleWeightedChoiceStrategy", () => { queue: "queue1", age: 4497, capacities: { - queue: { current: 10, limit: 10 }, + queue: { current: 0, limit: 10 }, env: { current: 0, limit: 10 }, org: { current: 0, limit: 10 }, }, @@ -210,15 +219,21 @@ describe("SimpleWeightedChoiceStrategy", () => { "selectionId" ); - expect(chosenQueue).toEqual({ abort: true }); + expect(chosenQueue).toEqual("queue1"); const nextSelection = await stategy.nextCandidateSelection("parentQueue2"); - expect(nextSelection).toEqual({ range: [0, 2], selectionId: expect.any(String) }); + expect(nextSelection).toEqual({ + range: { offset: 0, count: 3 }, + selectionId: expect.any(String), + }); const nextSelection2 = await stategy.nextCandidateSelection("parentQueue"); - expect(nextSelection2).toEqual({ range: [2, 4], selectionId: expect.any(String) }); + expect(nextSelection2).toEqual({ + range: { offset: 3, count: 3 }, + selectionId: expect.any(String), + }); const chosenQueue2 = stategy.chooseQueue( [ @@ -250,14 +265,52 @@ describe("SimpleWeightedChoiceStrategy", () => { }, }, ], - "parentQueue2", + "parentQueue", "selectionId" ); - expect(chosenQueue2).toEqual("queue3"); + expect(chosenQueue2).toEqual("queue2"); - const nextSelection3 = await stategy.nextCandidateSelection("parentQueue2"); + const nextSelection3 = await stategy.nextCandidateSelection("parentQueue"); - expect(nextSelection3).toEqual({ range: [0, 2], selectionId: expect.any(String) }); + expect(nextSelection3).toEqual({ + range: { offset: 6, count: 3 }, + selectionId: expect.any(String), + }); + + // Not passed 3 queues, so the range should be reset (we've reached the end) + const chosenQueue3 = stategy.chooseQueue( + [ + { + queue: "queue1", + age: 4497, + capacities: { + queue: { current: 0, limit: 10 }, + env: { current: 0, limit: 10 }, + org: { current: 0, limit: 10 }, + }, + }, + { + queue: "queue2", + age: 19670, + capacities: { + queue: { current: 0, limit: 10 }, + env: { current: 0, limit: 10 }, + org: { current: 0, limit: 10 }, + }, + }, + ], + "parentQueue", + "selectionId" + ); + + expect(chosenQueue3).toEqual("queue2"); + + const nextSelection4 = await stategy.nextCandidateSelection("parentQueue"); + + expect(nextSelection4).toEqual({ + range: { offset: 0, count: 3 }, + selectionId: expect.any(String), + }); }); }); From 3ed016bc2b28ca11da57ffff139cf52f822bcde4 Mon Sep 17 00:00:00 2001 From: Eric Allam Date: Thu, 2 May 2024 12:31:55 +0100 Subject: [PATCH 13/17] Fixed SharedQueueConsumer internal otel logging --- .../v3/marqs/sharedQueueConsumer.server.ts | 11 ++------ apps/webapp/app/v3/sharedSocketConnection.ts | 28 ++++--------------- apps/webapp/app/v3/tracer.server.ts | 2 +- 3 files changed, 8 insertions(+), 33 deletions(-) diff --git a/apps/webapp/app/v3/marqs/sharedQueueConsumer.server.ts b/apps/webapp/app/v3/marqs/sharedQueueConsumer.server.ts index 5cc15e90d..399634ae9 100644 --- a/apps/webapp/app/v3/marqs/sharedQueueConsumer.server.ts +++ b/apps/webapp/app/v3/marqs/sharedQueueConsumer.server.ts @@ -67,7 +67,6 @@ export type SharedQueueConsumerOptions = { traceTimeoutSeconds?: number; nextTickInterval?: number; interval?: number; - parentContext?: Context; }; export class SharedQueueConsumer { @@ -93,7 +92,6 @@ export class SharedQueueConsumer { traceTimeoutSeconds: options.traceTimeoutSeconds ?? 60, // 60 seconds nextTickInterval: options.nextTickInterval ?? 1000, // 1 second interval: options.interval ?? 100, // 100ms - parentContext: options.parentContext ?? ROOT_CONTEXT, }; } @@ -193,22 +191,17 @@ export class SharedQueueConsumer { ) { this.#endCurrentSpan(); - const parentContext = this._options.parentContext ?? ROOT_CONTEXT; - // Create a new trace this._currentSpan = tracer.startSpan( "SharedQueueConsumer.doWork()", { kind: SpanKind.CONSUMER, - attributes: { - [SEMINTATTRS_FORCE_RECORDING]: true, - }, }, - parentContext + ROOT_CONTEXT ); // Get the span trace context - this._currentSpanContext = trace.setSpan(parentContext, this._currentSpan); + this._currentSpanContext = trace.setSpan(ROOT_CONTEXT, this._currentSpan); this._perTraceCountdown = this._options.maximumItemsPerTrace; this._lastNewTrace = new Date(); diff --git a/apps/webapp/app/v3/sharedSocketConnection.ts b/apps/webapp/app/v3/sharedSocketConnection.ts index f7b969264..53cbd133c 100644 --- a/apps/webapp/app/v3/sharedSocketConnection.ts +++ b/apps/webapp/app/v3/sharedSocketConnection.ts @@ -1,19 +1,17 @@ +import { trace } from "@opentelemetry/api"; import { clientWebsocketMessages, serverWebsocketMessages } from "@trigger.dev/core/v3"; +import type { StructuredLogger } from "@trigger.dev/core/v3/utils/structuredLogger"; import { + MessageCatalogToSocketIoEvents, ZodMessageHandler, ZodMessageSender, - MessageCatalogToSocketIoEvents, } from "@trigger.dev/core/v3/zodMessageHandler"; -import type { StructuredLogger } from "@trigger.dev/core/v3/utils/structuredLogger"; import { Evt } from "evt"; import { randomUUID } from "node:crypto"; +import type { DisconnectReason, Namespace, Socket } from "socket.io"; +import { env } from "~/env.server"; import { logger } from "~/services/logger.server"; import { SharedQueueConsumer } from "./marqs/sharedQueueConsumer.server"; -import type { DisconnectReason, Namespace, Socket } from "socket.io"; -import { ROOT_CONTEXT, Span, SpanKind, trace } from "@opentelemetry/api"; -import { env } from "~/env.server"; - -const tracer = trace.getTracer("sharedQueueConsumerPool"); interface SharedQueueConsumerPoolOptions { sender: ZodMessageSender; @@ -22,22 +20,8 @@ interface SharedQueueConsumerPoolOptions { class SharedQueueConsumerPool { #consumers: SharedQueueConsumer[]; - #span: Span; constructor(opts: SharedQueueConsumerPoolOptions) { - this.#span = tracer.startSpan( - "SharedQueueConsumerPool()", - { - kind: SpanKind.CONSUMER, - attributes: { - "pool.size": opts.poolSize, - }, - }, - ROOT_CONTEXT - ); - - const spanContext = trace.setSpan(ROOT_CONTEXT, this.#span); - this.#consumers = Array(opts.poolSize) .fill(null) .map( @@ -45,7 +29,6 @@ class SharedQueueConsumerPool { new SharedQueueConsumer(opts.sender, { interval: env.SHARED_QUEUE_CONSUMER_INTERVAL_MS, nextTickInterval: env.SHARED_QUEUE_CONSUMER_NEXT_TICK_INTERVAL_MS, - parentContext: spanContext, }) ); } @@ -56,7 +39,6 @@ class SharedQueueConsumerPool { async stop() { await Promise.allSettled(this.#consumers.map((consumer) => consumer.stop())); - this.#span.end(); } } diff --git a/apps/webapp/app/v3/tracer.server.ts b/apps/webapp/app/v3/tracer.server.ts index eaa58486f..f95c894bf 100644 --- a/apps/webapp/app/v3/tracer.server.ts +++ b/apps/webapp/app/v3/tracer.server.ts @@ -125,7 +125,7 @@ function getTracer() { ); } else { if (env.INTERNAL_OTEL_TRACE_LOGGING_ENABLED === "1") { - console.log(`🔦 Tracer: Logger exporter enabled`); + console.log(`🔦 Tracer: Logger exporter enabled (sampling = ${samplingRate})`); const loggerExporter = new LoggerSpanExporter(); From ff6e2461d566589a457653a003e1b62014cf72cc Mon Sep 17 00:00:00 2001 From: Eric Allam Date: Thu, 2 May 2024 14:12:16 +0100 Subject: [PATCH 14/17] Add admin tooltips to make support/debugging easier for admin users --- .../app/components/admin/debugTooltip.tsx | 27 +++++++++ apps/webapp/app/hooks/useUser.ts | 6 ++ apps/webapp/app/models/admin.server.ts | 6 ++ .../app/presenters/v3/RunPresenter.server.ts | 9 +++ .../route.tsx | 23 +++++++- .../route.tsx | 19 ++++++- .../route.tsx | 56 +++++++++++++++++++ .../route.tsx | 14 +++++ .../route.tsx | 22 +++++++- .../route.tsx | 26 ++++++++- apps/webapp/app/routes/_app/route.tsx | 9 ++- apps/webapp/app/routes/admin.orgs.tsx | 6 +- 12 files changed, 209 insertions(+), 14 deletions(-) create mode 100644 apps/webapp/app/components/admin/debugTooltip.tsx diff --git a/apps/webapp/app/components/admin/debugTooltip.tsx b/apps/webapp/app/components/admin/debugTooltip.tsx new file mode 100644 index 000000000..f1189b914 --- /dev/null +++ b/apps/webapp/app/components/admin/debugTooltip.tsx @@ -0,0 +1,27 @@ +import { ShieldCheckIcon } from "@heroicons/react/20/solid"; +import { + Tooltip, + TooltipContent, + TooltipProvider, + TooltipTrigger, +} from "~/components/primitives/Tooltip"; +import { useHasAdminAccess } from "~/hooks/useUser"; + +export function AdminDebugTooltip({ children }: { children: React.ReactNode }) { + const hasAdminAccess = useHasAdminAccess(); + + if (!hasAdminAccess) { + return null; + } + + return ( + + + + + + {children} + + + ); +} diff --git a/apps/webapp/app/hooks/useUser.ts b/apps/webapp/app/hooks/useUser.ts index b48da0617..e1ee34190 100644 --- a/apps/webapp/app/hooks/useUser.ts +++ b/apps/webapp/app/hooks/useUser.ts @@ -26,3 +26,9 @@ export function useUser(matches?: UIMatch[]): User { export function useUserChanged(callback: (user: User | undefined) => void) { useChanged(useOptionalUser, callback); } + +export function useHasAdminAccess(matches?: UIMatch[]): boolean { + const user = useOptionalUser(matches); + + return Boolean(user?.admin); +} diff --git a/apps/webapp/app/models/admin.server.ts b/apps/webapp/app/models/admin.server.ts index 9fae4fc56..30093d485 100644 --- a/apps/webapp/app/models/admin.server.ts +++ b/apps/webapp/app/models/admin.server.ts @@ -168,6 +168,12 @@ export async function adminGetOrganizations(userId: string, { page, search }: Se mode: "insensitive", }, }, + { + id: { + contains: search, + mode: "insensitive", + }, + }, ], } : undefined, diff --git a/apps/webapp/app/presenters/v3/RunPresenter.server.ts b/apps/webapp/app/presenters/v3/RunPresenter.server.ts index dd6aba782..3397f92e6 100644 --- a/apps/webapp/app/presenters/v3/RunPresenter.server.ts +++ b/apps/webapp/app/presenters/v3/RunPresenter.server.ts @@ -38,6 +38,7 @@ export class RunPresenter { id: true, type: true, slug: true, + organizationId: true, orgMember: { select: { user: { @@ -66,9 +67,13 @@ export class RunPresenter { if (!traceSummary) { return { run: { + id: run.id, number: run.number, friendlyId: run.friendlyId, + traceId: run.traceId, environment: { + id: run.runtimeEnvironment.id, + organizationId: run.runtimeEnvironment.organizationId, type: run.runtimeEnvironment.type, slug: run.runtimeEnvironment.slug, userId: run.runtimeEnvironment.orgMember?.user.id, @@ -118,9 +123,13 @@ export class RunPresenter { return { run: { + id: run.id, number: run.number, friendlyId: run.friendlyId, + traceId: run.traceId, environment: { + id: run.runtimeEnvironment.id, + organizationId: run.runtimeEnvironment.organizationId, type: run.runtimeEnvironment.type, slug: run.runtimeEnvironment.slug, userId: run.runtimeEnvironment.orgMember?.user.id, diff --git a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.v3.$projectParam._index/route.tsx b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.v3.$projectParam._index/route.tsx index 3c9dedcf6..5ed4e7ab8 100644 --- a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.v3.$projectParam._index/route.tsx +++ b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.v3.$projectParam._index/route.tsx @@ -9,6 +9,7 @@ import { TypedAwait, typeddefer, useTypedLoaderData } from "remix-typedjson"; import { Feedback } from "~/components/Feedback"; import { InitCommandV3, TriggerDevStepV3, TriggerLoginStepV3 } from "~/components/SetupCommands"; import { StepContentContainer } from "~/components/StepContentContainer"; +import { AdminDebugTooltip } from "~/components/admin/debugTooltip"; import { InlineCode } from "~/components/code/InlineCode"; import { EnvironmentLabel } from "~/components/environments/EnvironmentLabel"; import { MainCenteredContainer, PageBody, PageContainer } from "~/components/layout/AppLayout"; @@ -17,8 +18,9 @@ import { Callout } from "~/components/primitives/Callout"; import { formatDateTime } from "~/components/primitives/DateTime"; import { Header1, Header2, Header3 } from "~/components/primitives/Headers"; import { Input } from "~/components/primitives/Input"; -import { NavBar, PageTitle } from "~/components/primitives/PageHeader"; +import { NavBar, PageAccessories, PageTitle } from "~/components/primitives/PageHeader"; import { Paragraph } from "~/components/primitives/Paragraph"; +import { Property, PropertyTable } from "~/components/primitives/PropertyTable"; import { Spinner } from "~/components/primitives/Spinner"; import { StepNumber } from "~/components/primitives/StepNumber"; import { @@ -125,6 +127,25 @@ export default function Page() { + + + + {tasks.map((task) => ( + +
+ + {task.environments + .map((e) => + e.userName ? `${e.userName}/${e.id}` : `${e.type.slice(0, 3)}/${e.id}` + ) + .join(", ")} + +
+
+ ))} +
+
+
diff --git a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.v3.$projectParam.apikeys/route.tsx b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.v3.$projectParam.apikeys/route.tsx index a151ca312..7ffd1e5d9 100644 --- a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.v3.$projectParam.apikeys/route.tsx +++ b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.v3.$projectParam.apikeys/route.tsx @@ -1,7 +1,8 @@ -import { BookOpenIcon } from "@heroicons/react/20/solid"; +import { BookOpenIcon, LightBulbIcon, ShieldCheckIcon } from "@heroicons/react/20/solid"; import { Form } from "@remix-run/react"; import { ActionFunctionArgs, LoaderFunctionArgs } from "@remix-run/server-runtime"; import { typedjson, useTypedLoaderData } from "remix-typedjson"; +import { AdminDebugTooltip } from "~/components/admin/debugTooltip"; import { EnvironmentLabel, environmentTitle } from "~/components/environments/EnvironmentLabel"; import { RegenerateApiKeyModal } from "~/components/environments/RegenerateApiKeyModal"; import { PageBody, PageContainer } from "~/components/layout/AppLayout"; @@ -10,8 +11,9 @@ import { Callout } from "~/components/primitives/Callout"; import { ClipboardField } from "~/components/primitives/ClipboardField"; import { DateTime } from "~/components/primitives/DateTime"; import { Header3 } from "~/components/primitives/Headers"; -import { PageAccessories, NavBar, PageTitle } from "~/components/primitives/PageHeader"; +import { NavBar, PageAccessories, PageTitle } from "~/components/primitives/PageHeader"; import { Paragraph } from "~/components/primitives/Paragraph"; +import { Property, PropertyTable } from "~/components/primitives/PropertyTable"; import { Table, TableBody, @@ -24,7 +26,6 @@ import { import { TextLink } from "~/components/primitives/TextLink"; import { prisma } from "~/db.server"; import { useFeatures } from "~/hooks/useFeatures"; -import { useProject } from "~/hooks/useProject"; import { redirectWithErrorMessage, redirectWithSuccessMessage } from "~/models/message.server"; import { createEnvironment } from "~/models/organization.server"; import { ApiKeysPresenter } from "~/presenters/v3/ApiKeysPresenter.server"; @@ -132,6 +133,18 @@ export default function Page() { + + + {environments.map((environment) => ( + +
+ {environment.id} +
+
+ ))} +
+
+ { const userId = await requireUserId(request); @@ -116,6 +118,33 @@ export default function Page() { title={`Run #${run.number}`} /> + + + +
+ {run.id} +
+
+ +
+ {run.traceId} +
+
+ +
+ {run.environment.id} +
+
+ +
+ + {run.environment.organizationId} + +
+
+
+
+ + + + +
+ {run.id} +
+
+ +
+ {run.traceId} +
+
+ +
+ {run.environment.id} +
+
+ +
+ + {run.environment.organizationId} + +
+
+
+
+
diff --git a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.v3.$projectParam.schedules/route.tsx b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.v3.$projectParam.schedules/route.tsx index aace86174..710a6f035 100644 --- a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.v3.$projectParam.schedules/route.tsx +++ b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.v3.$projectParam.schedules/route.tsx @@ -4,6 +4,7 @@ import { Outlet, useLocation, useParams } from "@remix-run/react"; import { LoaderFunctionArgs } from "@remix-run/server-runtime"; import { typedjson, useTypedLoaderData } from "remix-typedjson"; import { BlankstateInstructions } from "~/components/BlankstateInstructions"; +import { AdminDebugTooltip } from "~/components/admin/debugTooltip"; import { InlineCode } from "~/components/code/InlineCode"; import { EnvironmentLabel } from "~/components/environments/EnvironmentLabel"; import { MainCenteredContainer, PageBody, PageContainer } from "~/components/layout/AppLayout"; @@ -12,6 +13,7 @@ import { DateTime } from "~/components/primitives/DateTime"; import { NavBar, PageAccessories, PageTitle } from "~/components/primitives/PageHeader"; import { PaginationControls } from "~/components/primitives/Pagination"; import { Paragraph } from "~/components/primitives/Paragraph"; +import { Property, PropertyTable } from "~/components/primitives/PropertyTable"; import { ResizableHandle, ResizablePanel, @@ -93,6 +95,18 @@ export default function Page() { + + + {schedules.map((schedule) => ( + +
+ {schedule.id} +
+
+ ))} +
+
+ + + + + + +
+ {project.id} +
+
+ +
+ {project.organizationId} +
+
+
+
+
diff --git a/apps/webapp/app/routes/_app.orgs.$organizationSlug.team/route.tsx b/apps/webapp/app/routes/_app.orgs.$organizationSlug.team/route.tsx index f6cd7a4fc..0885e3714 100644 --- a/apps/webapp/app/routes/_app.orgs.$organizationSlug.team/route.tsx +++ b/apps/webapp/app/routes/_app.orgs.$organizationSlug.team/route.tsx @@ -8,6 +8,7 @@ import { UseDataFunctionReturn, typedjson, useTypedLoaderData } from "remix-type import invariant from "tiny-invariant"; import { z } from "zod"; import { UserAvatar } from "~/components/UserProfilePhoto"; +import { AdminDebugTooltip } from "~/components/admin/debugTooltip"; import { PageBody, PageContainer } from "~/components/layout/AppLayout"; import { Alert, @@ -23,8 +24,9 @@ import { Button, ButtonContent, LinkButton } from "~/components/primitives/Butto import { DateTime } from "~/components/primitives/DateTime"; import { Header2, Header3 } from "~/components/primitives/Headers"; import { NamedIcon } from "~/components/primitives/NamedIcon"; -import { NavBar, PageTitle } from "~/components/primitives/PageHeader"; +import { NavBar, PageAccessories, PageTitle } from "~/components/primitives/PageHeader"; import { Paragraph } from "~/components/primitives/Paragraph"; +import { Property, PropertyTable } from "~/components/primitives/PropertyTable"; import { SimpleTooltip } from "~/components/primitives/Tooltip"; import { useOrganization } from "~/hooks/useOrganizations"; import { useUser } from "~/hooks/useUser"; @@ -107,6 +109,28 @@ export default function Page() { + + + + + +
+ {organization.id} +
+
+ + {members.map((member) => ( + +
+ + {member.user.email} - {member.user.id} + +
+
+ ))} +
+
+
Members diff --git a/apps/webapp/app/routes/_app/route.tsx b/apps/webapp/app/routes/_app/route.tsx index 6d8f8e9dc..23e1b3834 100644 --- a/apps/webapp/app/routes/_app/route.tsx +++ b/apps/webapp/app/routes/_app/route.tsx @@ -15,9 +15,12 @@ export const loader = async ({ request }: LoaderFunctionArgs) => { return redirect(confirmBasicDetailsPath()); } - return typedjson({ - headers: [["Set-Cookie", await commitSession(await clearRedirectTo(request))]], - }); + return typedjson( + {}, + { + headers: { "Set-Cookie": await commitSession(await clearRedirectTo(request)) }, + } + ); }; export default function App() { diff --git a/apps/webapp/app/routes/admin.orgs.tsx b/apps/webapp/app/routes/admin.orgs.tsx index 3c0321213..591e2ae5b 100644 --- a/apps/webapp/app/routes/admin.orgs.tsx +++ b/apps/webapp/app/routes/admin.orgs.tsx @@ -1,11 +1,9 @@ import { MagnifyingGlassIcon } from "@heroicons/react/20/solid"; import { Form } from "@remix-run/react"; import type { ActionFunctionArgs, LoaderFunctionArgs } from "@remix-run/server-runtime"; -import { redirect } from "@remix-run/server-runtime"; import { typedjson, useTypedLoaderData } from "remix-typedjson"; import { z } from "zod"; import { Button, LinkButton } from "~/components/primitives/Buttons"; -import { Header1 } from "~/components/primitives/Headers"; import { Input } from "~/components/primitives/Input"; import { PaginationControls } from "~/components/primitives/Pagination"; import { Paragraph } from "~/components/primitives/Paragraph"; @@ -18,10 +16,8 @@ import { TableHeaderCell, TableRow, } from "~/components/primitives/Table"; -import { useUser } from "~/hooks/useUser"; -import { adminGetOrganizations, adminGetUsers, setV3Enabled } from "~/models/admin.server"; +import { adminGetOrganizations, setV3Enabled } from "~/models/admin.server"; import { redirectWithSuccessMessage } from "~/models/message.server"; -import { commitImpersonationSession, setImpersonationId } from "~/services/impersonation.server"; import { requireUserId } from "~/services/session.server"; import { createSearchParams } from "~/utils/searchParams"; From c8538c236cf111204c4619cb76438ef7908850f4 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 2 May 2024 15:58:42 +0100 Subject: [PATCH 15/17] chore: Update version for release (beta) (#1080) Co-authored-by: github-actions[bot] --- .changeset/pre.json | 3 +++ integrations/airtable/CHANGELOG.md | 7 +++++++ integrations/airtable/package.json | 6 +++--- integrations/github/CHANGELOG.md | 7 +++++++ integrations/github/package.json | 6 +++--- integrations/linear/CHANGELOG.md | 7 +++++++ integrations/linear/package.json | 6 +++--- integrations/openai/CHANGELOG.md | 7 +++++++ integrations/openai/package.json | 6 +++--- integrations/plain/CHANGELOG.md | 7 +++++++ integrations/plain/package.json | 6 +++--- integrations/replicate/CHANGELOG.md | 7 +++++++ integrations/replicate/package.json | 6 +++--- integrations/resend/CHANGELOG.md | 7 +++++++ integrations/resend/package.json | 6 +++--- integrations/sendgrid/CHANGELOG.md | 7 +++++++ integrations/sendgrid/package.json | 6 +++--- integrations/shopify/CHANGELOG.md | 7 +++++++ integrations/shopify/package.json | 6 +++--- integrations/slack/CHANGELOG.md | 6 ++++++ integrations/slack/package.json | 4 ++-- integrations/stripe/CHANGELOG.md | 7 +++++++ integrations/stripe/package.json | 6 +++--- integrations/supabase/CHANGELOG.md | 7 +++++++ integrations/supabase/package.json | 6 +++--- integrations/typeform/CHANGELOG.md | 7 +++++++ integrations/typeform/package.json | 6 +++--- packages/astro/CHANGELOG.md | 6 ++++++ packages/astro/package.json | 4 ++-- packages/cli-v3/CHANGELOG.md | 10 ++++++++++ packages/cli-v3/package.json | 4 ++-- packages/cli/CHANGELOG.md | 9 +++++++++ packages/cli/package.json | 2 +- packages/core-apps/CHANGELOG.md | 2 ++ packages/core-apps/package.json | 2 +- packages/core-backend/CHANGELOG.md | 2 ++ packages/core-backend/package.json | 2 +- packages/core/CHANGELOG.md | 7 +++++++ packages/core/package.json | 2 +- packages/eslint-plugin/CHANGELOG.md | 2 ++ packages/eslint-plugin/package.json | 2 +- packages/express/CHANGELOG.md | 6 ++++++ packages/express/package.json | 6 +++--- packages/hono/CHANGELOG.md | 6 ++++++ packages/hono/package.json | 4 ++-- packages/integration-kit/CHANGELOG.md | 8 ++++++++ packages/integration-kit/package.json | 2 +- packages/nestjs/CHANGELOG.md | 6 ++++++ packages/nestjs/package.json | 6 +++--- packages/nextjs/CHANGELOG.md | 6 ++++++ packages/nextjs/package.json | 4 ++-- packages/otlp-importer/CHANGELOG.md | 2 ++ packages/otlp-importer/package.json | 2 +- packages/react/CHANGELOG.md | 8 ++++++++ packages/react/package.json | 4 ++-- packages/remix/CHANGELOG.md | 6 ++++++ packages/remix/package.json | 4 ++-- packages/sveltekit/CHANGELOG.md | 6 ++++++ packages/sveltekit/package.json | 4 ++-- packages/testing/CHANGELOG.md | 9 +++++++++ packages/testing/package.json | 2 +- packages/trigger-sdk/CHANGELOG.md | 9 +++++++++ packages/trigger-sdk/package.json | 6 +++--- packages/yalt/CHANGELOG.md | 2 ++ packages/yalt/package.json | 2 +- 65 files changed, 275 insertions(+), 70 deletions(-) diff --git a/.changeset/pre.json b/.changeset/pre.json index a1ac89851..1acf64c53 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -80,6 +80,7 @@ "polite-rockets-matter", "poor-flowers-cross", "purple-garlics-shop", + "rare-lamps-promise", "rare-roses-float", "real-planets-stare", "rich-kangaroos-unite", @@ -91,6 +92,7 @@ "sharp-zebras-serve", "shiny-coats-cry", "silly-suits-switch", + "six-ligers-exist", "slow-buses-own", "smart-needles-move", "smart-olives-eat", @@ -102,6 +104,7 @@ "swift-dragons-peel", "tall-bees-wave", "tame-guests-know", + "tender-moose-tell", "tender-oranges-rhyme", "tidy-balloons-suffer", "tidy-dryers-sleep", diff --git a/integrations/airtable/CHANGELOG.md b/integrations/airtable/CHANGELOG.md index 6ebe90100..c438f9d53 100644 --- a/integrations/airtable/CHANGELOG.md +++ b/integrations/airtable/CHANGELOG.md @@ -1,5 +1,12 @@ # @trigger.dev/airtable +## 3.0.0-beta.25 + +### Patch Changes + +- @trigger.dev/integration-kit@3.0.0-beta.25 +- @trigger.dev/sdk@3.0.0-beta.25 + ## 3.0.0-beta.24 ### Patch Changes diff --git a/integrations/airtable/package.json b/integrations/airtable/package.json index cab5163e4..9181733b0 100644 --- a/integrations/airtable/package.json +++ b/integrations/airtable/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/airtable", - "version": "3.0.0-beta.24", + "version": "3.0.0-beta.25", "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:^3.0.0-beta.24", - "@trigger.dev/sdk": "workspace:^3.0.0-beta.24", + "@trigger.dev/integration-kit": "workspace:^3.0.0-beta.25", + "@trigger.dev/sdk": "workspace:^3.0.0-beta.25", "airtable": "^0.12.1", "zod": "3.22.3" }, diff --git a/integrations/github/CHANGELOG.md b/integrations/github/CHANGELOG.md index 4669850a9..4731f81c6 100644 --- a/integrations/github/CHANGELOG.md +++ b/integrations/github/CHANGELOG.md @@ -1,5 +1,12 @@ # @trigger.dev/github +## 3.0.0-beta.25 + +### Patch Changes + +- @trigger.dev/integration-kit@3.0.0-beta.25 +- @trigger.dev/sdk@3.0.0-beta.25 + ## 3.0.0-beta.24 ### Patch Changes diff --git a/integrations/github/package.json b/integrations/github/package.json index 9c9d7dfec..a01a43664 100644 --- a/integrations/github/package.json +++ b/integrations/github/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/github", - "version": "3.0.0-beta.24", + "version": "3.0.0-beta.25", "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:^3.0.0-beta.24", - "@trigger.dev/sdk": "workspace:^3.0.0-beta.24", + "@trigger.dev/integration-kit": "workspace:^3.0.0-beta.25", + "@trigger.dev/sdk": "workspace:^3.0.0-beta.25", "zod": "3.22.3" }, "engines": { diff --git a/integrations/linear/CHANGELOG.md b/integrations/linear/CHANGELOG.md index f2725ea4d..f7c01cb4d 100644 --- a/integrations/linear/CHANGELOG.md +++ b/integrations/linear/CHANGELOG.md @@ -1,5 +1,12 @@ # @trigger.dev/linear +## 3.0.0-beta.25 + +### Patch Changes + +- @trigger.dev/integration-kit@3.0.0-beta.25 +- @trigger.dev/sdk@3.0.0-beta.25 + ## 3.0.0-beta.24 ### Patch Changes diff --git a/integrations/linear/package.json b/integrations/linear/package.json index db8977942..3d56f79b3 100644 --- a/integrations/linear/package.json +++ b/integrations/linear/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/linear", - "version": "3.0.0-beta.24", + "version": "3.0.0-beta.25", "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:^3.0.0-beta.24", - "@trigger.dev/sdk": "workspace:^3.0.0-beta.24", + "@trigger.dev/integration-kit": "workspace:^3.0.0-beta.25", + "@trigger.dev/sdk": "workspace:^3.0.0-beta.25", "zod": "3.22.3" }, "engines": { diff --git a/integrations/openai/CHANGELOG.md b/integrations/openai/CHANGELOG.md index 1e9d2f1bb..c124aa659 100644 --- a/integrations/openai/CHANGELOG.md +++ b/integrations/openai/CHANGELOG.md @@ -1,5 +1,12 @@ # @trigger.dev/slack +## 3.0.0-beta.25 + +### Patch Changes + +- @trigger.dev/integration-kit@3.0.0-beta.25 +- @trigger.dev/sdk@3.0.0-beta.25 + ## 3.0.0-beta.24 ### Patch Changes diff --git a/integrations/openai/package.json b/integrations/openai/package.json index 1cd787eb9..a8613207d 100644 --- a/integrations/openai/package.json +++ b/integrations/openai/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/openai", - "version": "3.0.0-beta.24", + "version": "3.0.0-beta.25", "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:^3.0.0-beta.24", - "@trigger.dev/integration-kit": "workspace:^3.0.0-beta.24" + "@trigger.dev/sdk": "workspace:^3.0.0-beta.25", + "@trigger.dev/integration-kit": "workspace:^3.0.0-beta.25" }, "engines": { "node": ">=18.0.0" diff --git a/integrations/plain/CHANGELOG.md b/integrations/plain/CHANGELOG.md index f0bd22bd4..2f4eea253 100644 --- a/integrations/plain/CHANGELOG.md +++ b/integrations/plain/CHANGELOG.md @@ -1,5 +1,12 @@ # @trigger.dev/plain +## 3.0.0-beta.25 + +### Patch Changes + +- @trigger.dev/integration-kit@3.0.0-beta.25 +- @trigger.dev/sdk@3.0.0-beta.25 + ## 3.0.0-beta.24 ### Patch Changes diff --git a/integrations/plain/package.json b/integrations/plain/package.json index 88327da5d..73a19c14b 100644 --- a/integrations/plain/package.json +++ b/integrations/plain/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/plain", - "version": "3.0.0-beta.24", + "version": "3.0.0-beta.25", "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:^3.0.0-beta.24", - "@trigger.dev/sdk": "workspace:^3.0.0-beta.24", + "@trigger.dev/integration-kit": "workspace:^3.0.0-beta.25", + "@trigger.dev/sdk": "workspace:^3.0.0-beta.25", "@team-plain/typescript-sdk": "^2.7.0" }, "engines": { diff --git a/integrations/replicate/CHANGELOG.md b/integrations/replicate/CHANGELOG.md index 97c91e7aa..951f3f4a2 100644 --- a/integrations/replicate/CHANGELOG.md +++ b/integrations/replicate/CHANGELOG.md @@ -1,5 +1,12 @@ # @trigger.dev/replicate +## 3.0.0-beta.25 + +### Patch Changes + +- @trigger.dev/integration-kit@3.0.0-beta.25 +- @trigger.dev/sdk@3.0.0-beta.25 + ## 3.0.0-beta.24 ### Patch Changes diff --git a/integrations/replicate/package.json b/integrations/replicate/package.json index 6df43b3a2..9183a07b2 100644 --- a/integrations/replicate/package.json +++ b/integrations/replicate/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/replicate", - "version": "3.0.0-beta.24", + "version": "3.0.0-beta.25", "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:^3.0.0-beta.24", - "@trigger.dev/sdk": "workspace:^3.0.0-beta.24", + "@trigger.dev/integration-kit": "workspace:^3.0.0-beta.25", + "@trigger.dev/sdk": "workspace:^3.0.0-beta.25", "replicate": "^0.18.1", "zod": "3.22.3" }, diff --git a/integrations/resend/CHANGELOG.md b/integrations/resend/CHANGELOG.md index f991efdc6..6c1a670e8 100644 --- a/integrations/resend/CHANGELOG.md +++ b/integrations/resend/CHANGELOG.md @@ -1,5 +1,12 @@ # @trigger.dev/resend +## 3.0.0-beta.25 + +### Patch Changes + +- @trigger.dev/integration-kit@3.0.0-beta.25 +- @trigger.dev/sdk@3.0.0-beta.25 + ## 3.0.0-beta.24 ### Patch Changes diff --git a/integrations/resend/package.json b/integrations/resend/package.json index 375a7e227..21a6de3ca 100644 --- a/integrations/resend/package.json +++ b/integrations/resend/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/resend", - "version": "3.0.0-beta.24", + "version": "3.0.0-beta.25", "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:^3.0.0-beta.24", - "@trigger.dev/sdk": "workspace:^3.0.0-beta.24", + "@trigger.dev/integration-kit": "workspace:^3.0.0-beta.25", + "@trigger.dev/sdk": "workspace:^3.0.0-beta.25", "resend": "^2.1.0" }, "engines": { diff --git a/integrations/sendgrid/CHANGELOG.md b/integrations/sendgrid/CHANGELOG.md index 5fcc210e2..93f29cc5a 100644 --- a/integrations/sendgrid/CHANGELOG.md +++ b/integrations/sendgrid/CHANGELOG.md @@ -1,5 +1,12 @@ # @trigger.dev/sendgrid +## 3.0.0-beta.25 + +### Patch Changes + +- @trigger.dev/integration-kit@3.0.0-beta.25 +- @trigger.dev/sdk@3.0.0-beta.25 + ## 3.0.0-beta.24 ### Patch Changes diff --git a/integrations/sendgrid/package.json b/integrations/sendgrid/package.json index cbe683d36..05c86d67a 100644 --- a/integrations/sendgrid/package.json +++ b/integrations/sendgrid/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/sendgrid", - "version": "3.0.0-beta.24", + "version": "3.0.0-beta.25", "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:^3.0.0-beta.24", - "@trigger.dev/integration-kit": "workspace:^3.0.0-beta.24" + "@trigger.dev/sdk": "workspace:^3.0.0-beta.25", + "@trigger.dev/integration-kit": "workspace:^3.0.0-beta.25" }, "engines": { "node": ">=16.8.0" diff --git a/integrations/shopify/CHANGELOG.md b/integrations/shopify/CHANGELOG.md index 119f39c0d..2ef7bd7c2 100644 --- a/integrations/shopify/CHANGELOG.md +++ b/integrations/shopify/CHANGELOG.md @@ -1,5 +1,12 @@ # @trigger.dev/shopify +## 3.0.0-beta.25 + +### Patch Changes + +- @trigger.dev/integration-kit@3.0.0-beta.25 +- @trigger.dev/sdk@3.0.0-beta.25 + ## 3.0.0-beta.24 ### Patch Changes diff --git a/integrations/shopify/package.json b/integrations/shopify/package.json index 42d06307a..f3707803e 100644 --- a/integrations/shopify/package.json +++ b/integrations/shopify/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/shopify", - "version": "3.0.0-beta.24", + "version": "3.0.0-beta.25", "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:^3.0.0-beta.24", - "@trigger.dev/integration-kit": "workspace:^3.0.0-beta.24", + "@trigger.dev/sdk": "workspace:^3.0.0-beta.25", + "@trigger.dev/integration-kit": "workspace:^3.0.0-beta.25", "zod": "3.22.3" }, "engines": { diff --git a/integrations/slack/CHANGELOG.md b/integrations/slack/CHANGELOG.md index d1f64c3cc..1180a28c0 100644 --- a/integrations/slack/CHANGELOG.md +++ b/integrations/slack/CHANGELOG.md @@ -1,5 +1,11 @@ # @trigger.dev/slack +## 3.0.0-beta.25 + +### Patch Changes + +- @trigger.dev/sdk@3.0.0-beta.25 + ## 3.0.0-beta.24 ### Patch Changes diff --git a/integrations/slack/package.json b/integrations/slack/package.json index 837afc6b2..13d2b04e1 100644 --- a/integrations/slack/package.json +++ b/integrations/slack/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/slack", - "version": "3.0.0-beta.24", + "version": "3.0.0-beta.25", "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:^3.0.0-beta.24", + "@trigger.dev/sdk": "workspace:^3.0.0-beta.25", "zod": "3.22.3" }, "engines": { diff --git a/integrations/stripe/CHANGELOG.md b/integrations/stripe/CHANGELOG.md index dbc0c1e4a..c1a67cd8e 100644 --- a/integrations/stripe/CHANGELOG.md +++ b/integrations/stripe/CHANGELOG.md @@ -1,5 +1,12 @@ # @trigger.dev/stripe +## 3.0.0-beta.25 + +### Patch Changes + +- @trigger.dev/integration-kit@3.0.0-beta.25 +- @trigger.dev/sdk@3.0.0-beta.25 + ## 3.0.0-beta.24 ### Patch Changes diff --git a/integrations/stripe/package.json b/integrations/stripe/package.json index ccb790173..1527d58f7 100644 --- a/integrations/stripe/package.json +++ b/integrations/stripe/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/stripe", - "version": "3.0.0-beta.24", + "version": "3.0.0-beta.25", "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:^3.0.0-beta.24", - "@trigger.dev/sdk": "workspace:^3.0.0-beta.24", + "@trigger.dev/integration-kit": "workspace:^3.0.0-beta.25", + "@trigger.dev/sdk": "workspace:^3.0.0-beta.25", "stripe": "^12.14.0", "zod": "3.22.3" }, diff --git a/integrations/supabase/CHANGELOG.md b/integrations/supabase/CHANGELOG.md index 06bb64185..b7e7cfe81 100644 --- a/integrations/supabase/CHANGELOG.md +++ b/integrations/supabase/CHANGELOG.md @@ -1,5 +1,12 @@ # @trigger.dev/supabase +## 3.0.0-beta.25 + +### Patch Changes + +- @trigger.dev/integration-kit@3.0.0-beta.25 +- @trigger.dev/sdk@3.0.0-beta.25 + ## 3.0.0-beta.24 ### Patch Changes diff --git a/integrations/supabase/package.json b/integrations/supabase/package.json index 8b9a15e50..db5926990 100644 --- a/integrations/supabase/package.json +++ b/integrations/supabase/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/supabase", - "version": "3.0.0-beta.24", + "version": "3.0.0-beta.25", "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:^3.0.0-beta.24", - "@trigger.dev/sdk": "workspace:^3.0.0-beta.24", + "@trigger.dev/integration-kit": "workspace:^3.0.0-beta.25", + "@trigger.dev/sdk": "workspace:^3.0.0-beta.25", "supabase-management-js": "^1.0.0", "zod": "3.22.3" }, diff --git a/integrations/typeform/CHANGELOG.md b/integrations/typeform/CHANGELOG.md index 7a64b2cab..462608a36 100644 --- a/integrations/typeform/CHANGELOG.md +++ b/integrations/typeform/CHANGELOG.md @@ -1,5 +1,12 @@ # @trigger.dev/typeform +## 3.0.0-beta.25 + +### Patch Changes + +- @trigger.dev/integration-kit@3.0.0-beta.25 +- @trigger.dev/sdk@3.0.0-beta.25 + ## 3.0.0-beta.24 ### Patch Changes diff --git a/integrations/typeform/package.json b/integrations/typeform/package.json index de86ce7fb..21ed57031 100644 --- a/integrations/typeform/package.json +++ b/integrations/typeform/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/typeform", - "version": "3.0.0-beta.24", + "version": "3.0.0-beta.25", "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:^3.0.0-beta.24", - "@trigger.dev/sdk": "workspace:^3.0.0-beta.24", + "@trigger.dev/integration-kit": "workspace:^3.0.0-beta.25", + "@trigger.dev/sdk": "workspace:^3.0.0-beta.25", "@typeform/api-client": "^1.8.0", "zod": "3.22.3" }, diff --git a/packages/astro/CHANGELOG.md b/packages/astro/CHANGELOG.md index 09bfbaebb..efa065c83 100644 --- a/packages/astro/CHANGELOG.md +++ b/packages/astro/CHANGELOG.md @@ -1,5 +1,11 @@ # @trigger.dev/astro +## 3.0.0-beta.25 + +### Patch Changes + +- @trigger.dev/sdk@3.0.0-beta.25 + ## 3.0.0-beta.24 ### Patch Changes diff --git a/packages/astro/package.json b/packages/astro/package.json index 09cfbc31c..d16d9c32e 100644 --- a/packages/astro/package.json +++ b/packages/astro/package.json @@ -1,7 +1,7 @@ { "name": "@trigger.dev/astro", "description": "An Astro-native integration for Trigger.dev background jobs platform", - "version": "3.0.0-beta.24", + "version": "3.0.0-beta.25", "main": "./dist/index.js", "types": "./dist/index.d.ts", "files": [ @@ -20,7 +20,7 @@ "build:tsup": "tsup" }, "peerDependencies": { - "@trigger.dev/sdk": "workspace:^3.0.0-beta.24" + "@trigger.dev/sdk": "workspace:^3.0.0-beta.25" }, "devDependencies": { "astro": "^3.0.12", diff --git a/packages/cli-v3/CHANGELOG.md b/packages/cli-v3/CHANGELOG.md index 0de462192..ce72e1189 100644 --- a/packages/cli-v3/CHANGELOG.md +++ b/packages/cli-v3/CHANGELOG.md @@ -1,5 +1,15 @@ # trigger.dev +## 3.0.0-beta.25 + +### Patch Changes + +- e337b2165: Add a postInstall option to allow running scripts after dependencies have been installed in deployed images +- c37c82231: Use locked package versions when resolving dependencies in deployed workers +- Updated dependencies [e337b2165] +- Updated dependencies [9e5382951] + - @trigger.dev/core@3.0.0-beta.25 + ## 3.0.0-beta.24 ### Patch Changes diff --git a/packages/cli-v3/package.json b/packages/cli-v3/package.json index 3c7a1f73a..c3b903997 100644 --- a/packages/cli-v3/package.json +++ b/packages/cli-v3/package.json @@ -1,6 +1,6 @@ { "name": "trigger.dev", - "version": "3.0.0-beta.24", + "version": "3.0.0-beta.25", "description": "A Command-Line Interface for Trigger.dev (v3) projects", "main": "./dist/index.js", "types": "./dist/index.d.ts", @@ -86,7 +86,7 @@ "@opentelemetry/sdk-trace-base": "^1.22.0", "@opentelemetry/sdk-trace-node": "^1.22.0", "@opentelemetry/semantic-conventions": "^1.22.0", - "@trigger.dev/core": "workspace:3.0.0-beta.24", + "@trigger.dev/core": "workspace:3.0.0-beta.25", "@types/degit": "^2.8.3", "chalk": "^5.2.0", "chokidar": "^3.5.3", diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index 512ba940e..4ff628804 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,14 @@ # create-trigger +## 3.0.0-beta.25 + +### Patch Changes + +- Updated dependencies [e337b2165] +- Updated dependencies [9e5382951] + - @trigger.dev/core@3.0.0-beta.25 + - @trigger.dev/yalt@3.0.0-beta.25 + ## 3.0.0-beta.24 ### Patch Changes diff --git a/packages/cli/package.json b/packages/cli/package.json index 54a0f7e77..a901c8e2c 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/cli", - "version": "3.0.0-beta.24", + "version": "3.0.0-beta.25", "description": "The Trigger.dev CLI", "main": "./dist/index.js", "types": "./dist/index.d.ts", diff --git a/packages/core-apps/CHANGELOG.md b/packages/core-apps/CHANGELOG.md index 339b575a2..771114d04 100644 --- a/packages/core-apps/CHANGELOG.md +++ b/packages/core-apps/CHANGELOG.md @@ -1,5 +1,7 @@ # @trigger.dev/core-apps +## 3.0.0-beta.25 + ## 3.0.0-beta.24 ## 3.0.0-beta.23 diff --git a/packages/core-apps/package.json b/packages/core-apps/package.json index 900ac7b84..be71c33ec 100644 --- a/packages/core-apps/package.json +++ b/packages/core-apps/package.json @@ -1,7 +1,7 @@ { "name": "@trigger.dev/core-apps", "description": "Backend core code used across apps", - "version": "3.0.0-beta.24", + "version": "3.0.0-beta.25", "private": true, "license": "MIT", "main": "./dist/index.js", diff --git a/packages/core-backend/CHANGELOG.md b/packages/core-backend/CHANGELOG.md index 9d6a8653a..d4ddf0db8 100644 --- a/packages/core-backend/CHANGELOG.md +++ b/packages/core-backend/CHANGELOG.md @@ -1,5 +1,7 @@ # @trigger.dev/core-backend +## 3.0.0-beta.25 + ## 3.0.0-beta.24 ## 3.0.0-beta.23 diff --git a/packages/core-backend/package.json b/packages/core-backend/package.json index 3f412f622..827bb633c 100644 --- a/packages/core-backend/package.json +++ b/packages/core-backend/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/core-backend", - "version": "3.0.0-beta.24", + "version": "3.0.0-beta.25", "description": "Core code used across `@trigger.dev/sdk` and Trigger.dev server", "license": "MIT", "main": "./dist/index.js", diff --git a/packages/core/CHANGELOG.md b/packages/core/CHANGELOG.md index 7c97870d1..2c18de9fb 100644 --- a/packages/core/CHANGELOG.md +++ b/packages/core/CHANGELOG.md @@ -1,5 +1,12 @@ # internal-platform +## 3.0.0-beta.25 + +### Patch Changes + +- e337b2165: Add a postInstall option to allow running scripts after dependencies have been installed in deployed images +- 9e5382951: Improve the display of non-object return types in the run trace viewer + ## 3.0.0-beta.24 ### Patch Changes diff --git a/packages/core/package.json b/packages/core/package.json index 7d795f9ba..6cda753ae 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/core", - "version": "3.0.0-beta.24", + "version": "3.0.0-beta.25", "description": "Core code used across the Trigger.dev SDK and platform", "license": "MIT", "main": "./dist/index.js", diff --git a/packages/eslint-plugin/CHANGELOG.md b/packages/eslint-plugin/CHANGELOG.md index 64b9285fb..d66e8e15a 100644 --- a/packages/eslint-plugin/CHANGELOG.md +++ b/packages/eslint-plugin/CHANGELOG.md @@ -1,5 +1,7 @@ # @trigger.dev/eslint-plugin +## 3.0.0-beta.25 + ## 3.0.0-beta.24 ## 3.0.0-beta.23 diff --git a/packages/eslint-plugin/package.json b/packages/eslint-plugin/package.json index 6cf95d521..64c4e6a54 100644 --- a/packages/eslint-plugin/package.json +++ b/packages/eslint-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/eslint-plugin", - "version": "3.0.0-beta.24", + "version": "3.0.0-beta.25", "description": "ESLint plugin with trigger.dev best practices", "keywords": [ "eslint", diff --git a/packages/express/CHANGELOG.md b/packages/express/CHANGELOG.md index e762b6237..0142ae384 100644 --- a/packages/express/CHANGELOG.md +++ b/packages/express/CHANGELOG.md @@ -1,5 +1,11 @@ # @trigger.dev/express +## 3.0.0-beta.25 + +### Patch Changes + +- @trigger.dev/sdk@3.0.0-beta.25 + ## 3.0.0-beta.24 ### Patch Changes diff --git a/packages/express/package.json b/packages/express/package.json index 6ae21390b..aef773ff0 100644 --- a/packages/express/package.json +++ b/packages/express/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/express", - "version": "3.0.0-beta.24", + "version": "3.0.0-beta.25", "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:^3.0.0-beta.24", + "@trigger.dev/sdk": "workspace:^3.0.0-beta.25", "@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:^3.0.0-beta.24" + "@trigger.dev/sdk": "workspace:^3.0.0-beta.25" }, "dependencies": { "debug": "^4.3.4", diff --git a/packages/hono/CHANGELOG.md b/packages/hono/CHANGELOG.md index c4a980c30..fd513a107 100644 --- a/packages/hono/CHANGELOG.md +++ b/packages/hono/CHANGELOG.md @@ -1,5 +1,11 @@ # @trigger.dev/hono +## 3.0.0-beta.25 + +### Patch Changes + +- @trigger.dev/sdk@3.0.0-beta.25 + ## 3.0.0-beta.24 ### Patch Changes diff --git a/packages/hono/package.json b/packages/hono/package.json index 939c82dbf..c147c8807 100644 --- a/packages/hono/package.json +++ b/packages/hono/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/hono", - "version": "3.0.0-beta.24", + "version": "3.0.0-beta.25", "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:^3.0.0-beta.24" + "@trigger.dev/sdk": "workspace:^3.0.0-beta.25" }, "devDependencies": { "@trigger.dev/tsconfig": "workspace:*", diff --git a/packages/integration-kit/CHANGELOG.md b/packages/integration-kit/CHANGELOG.md index c786a38e7..4a3f5f772 100644 --- a/packages/integration-kit/CHANGELOG.md +++ b/packages/integration-kit/CHANGELOG.md @@ -1,5 +1,13 @@ # @trigger.dev/integration-kit +## 3.0.0-beta.25 + +### Patch Changes + +- Updated dependencies [e337b2165] +- Updated dependencies [9e5382951] + - @trigger.dev/core@3.0.0-beta.25 + ## 3.0.0-beta.24 ### Patch Changes diff --git a/packages/integration-kit/package.json b/packages/integration-kit/package.json index 1061190ad..c4430af34 100644 --- a/packages/integration-kit/package.json +++ b/packages/integration-kit/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/integration-kit", - "version": "3.0.0-beta.24", + "version": "3.0.0-beta.25", "description": "Trigger.dev Integration Kit has helpers to make creating integrations easier", "license": "MIT", "main": "./dist/index.js", diff --git a/packages/nestjs/CHANGELOG.md b/packages/nestjs/CHANGELOG.md index c978628cb..dd71d2081 100644 --- a/packages/nestjs/CHANGELOG.md +++ b/packages/nestjs/CHANGELOG.md @@ -1,5 +1,11 @@ # @trigger.dev/nestjs +## 3.0.0-beta.25 + +### Patch Changes + +- @trigger.dev/sdk@3.0.0-beta.25 + ## 3.0.0-beta.24 ### Patch Changes diff --git a/packages/nestjs/package.json b/packages/nestjs/package.json index 00cd79e13..5c854a42d 100644 --- a/packages/nestjs/package.json +++ b/packages/nestjs/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/nestjs", - "version": "3.0.0-beta.24", + "version": "3.0.0-beta.25", "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:^3.0.0-beta.24", + "@trigger.dev/sdk": "workspace:^3.0.0-beta.25", "@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:^3.0.0-beta.24" + "@trigger.dev/sdk": "workspace:^3.0.0-beta.25" }, "dependencies": { "@nestjs/common": "^10.2.4", diff --git a/packages/nextjs/CHANGELOG.md b/packages/nextjs/CHANGELOG.md index cf4bd325b..d54dafdc9 100644 --- a/packages/nextjs/CHANGELOG.md +++ b/packages/nextjs/CHANGELOG.md @@ -1,5 +1,11 @@ # @trigger.dev/nextjs +## 3.0.0-beta.25 + +### Patch Changes + +- @trigger.dev/sdk@3.0.0-beta.25 + ## 3.0.0-beta.24 ### Patch Changes diff --git a/packages/nextjs/package.json b/packages/nextjs/package.json index 1617d1816..2fbb99668 100644 --- a/packages/nextjs/package.json +++ b/packages/nextjs/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/nextjs", - "version": "3.0.0-beta.24", + "version": "3.0.0-beta.25", "description": "Trigger.dev Next.js integration", "license": "MIT", "main": "./dist/index.js", @@ -41,7 +41,7 @@ "build:tsup": "tsup" }, "peerDependencies": { - "@trigger.dev/sdk": "workspace:^3.0.0-beta.24", + "@trigger.dev/sdk": "workspace:^3.0.0-beta.25", "next": ">=12.0.0" }, "dependencies": { diff --git a/packages/otlp-importer/CHANGELOG.md b/packages/otlp-importer/CHANGELOG.md index 2e148db9b..68255bcd4 100644 --- a/packages/otlp-importer/CHANGELOG.md +++ b/packages/otlp-importer/CHANGELOG.md @@ -1,5 +1,7 @@ # @trigger.dev/otlp-importer +## 3.0.0-beta.25 + ## 3.0.0-beta.24 ## 3.0.0-beta.23 diff --git a/packages/otlp-importer/package.json b/packages/otlp-importer/package.json index 650b643be..92a1703c8 100644 --- a/packages/otlp-importer/package.json +++ b/packages/otlp-importer/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/otlp-importer", - "version": "3.0.0-beta.24", + "version": "3.0.0-beta.25", "description": "OpenTelemetry OTLP Importer for Node.js written in TypeScript", "license": "MIT", "main": "./dist/index.js", diff --git a/packages/react/CHANGELOG.md b/packages/react/CHANGELOG.md index e4e25ce4d..815e11879 100644 --- a/packages/react/CHANGELOG.md +++ b/packages/react/CHANGELOG.md @@ -1,5 +1,13 @@ # @trigger.dev/react +## 3.0.0-beta.25 + +### Patch Changes + +- Updated dependencies [e337b2165] +- Updated dependencies [9e5382951] + - @trigger.dev/core@3.0.0-beta.25 + ## 3.0.0-beta.24 ### Patch Changes diff --git a/packages/react/package.json b/packages/react/package.json index a84ce54bc..afe0a0337 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/react", - "version": "3.0.0-beta.24", + "version": "3.0.0-beta.25", "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:^3.0.0-beta.24", + "@trigger.dev/core": "workspace:^3.0.0-beta.25", "debug": "^4.3.4", "zod": "3.22.3" }, diff --git a/packages/remix/CHANGELOG.md b/packages/remix/CHANGELOG.md index 3c236350d..2af5967eb 100644 --- a/packages/remix/CHANGELOG.md +++ b/packages/remix/CHANGELOG.md @@ -1,5 +1,11 @@ # @trigger.dev/remix +## 3.0.0-beta.25 + +### Patch Changes + +- @trigger.dev/sdk@3.0.0-beta.25 + ## 3.0.0-beta.24 ### Patch Changes diff --git a/packages/remix/package.json b/packages/remix/package.json index 8a3b2b9c1..17880f904 100644 --- a/packages/remix/package.json +++ b/packages/remix/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/remix", - "version": "3.0.0-beta.24", + "version": "3.0.0-beta.25", "description": "Trigger.dev Remix integration", "license": "MIT", "main": "./dist/index.js", @@ -39,7 +39,7 @@ "build:tsup": "tsup" }, "peerDependencies": { - "@trigger.dev/sdk": "workspace:^3.0.0-beta.24", + "@trigger.dev/sdk": "workspace:^3.0.0-beta.25", "@remix-run/server-runtime": ">1.19.0" }, "dependencies": { diff --git a/packages/sveltekit/CHANGELOG.md b/packages/sveltekit/CHANGELOG.md index 4b22d2185..54aa0d04c 100644 --- a/packages/sveltekit/CHANGELOG.md +++ b/packages/sveltekit/CHANGELOG.md @@ -1,5 +1,11 @@ # @trigger.dev/sveltekit +## 3.0.0-beta.25 + +### Patch Changes + +- @trigger.dev/sdk@3.0.0-beta.25 + ## 3.0.0-beta.24 ### Patch Changes diff --git a/packages/sveltekit/package.json b/packages/sveltekit/package.json index 666e2ceee..2bfd6c606 100644 --- a/packages/sveltekit/package.json +++ b/packages/sveltekit/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/sveltekit", - "version": "3.0.0-beta.24", + "version": "3.0.0-beta.25", "description": "Trigger.dev svelteKit integration", "license": "MIT", "main": "./dist/index.js", @@ -39,7 +39,7 @@ "build:tsup": "tsup" }, "peerDependencies": { - "@trigger.dev/sdk": "workspace:^3.0.0-beta.24" + "@trigger.dev/sdk": "workspace:^3.0.0-beta.25" }, "dependencies": { "debug": "^4.3.4" diff --git a/packages/testing/CHANGELOG.md b/packages/testing/CHANGELOG.md index afd608922..03c6c0d3b 100644 --- a/packages/testing/CHANGELOG.md +++ b/packages/testing/CHANGELOG.md @@ -1,5 +1,14 @@ # @trigger.dev/testing +## 3.0.0-beta.25 + +### Patch Changes + +- Updated dependencies [e337b2165] +- Updated dependencies [9e5382951] + - @trigger.dev/core@3.0.0-beta.25 + - @trigger.dev/sdk@3.0.0-beta.25 + ## 3.0.0-beta.24 ### Patch Changes diff --git a/packages/testing/package.json b/packages/testing/package.json index ca8062b28..719bd4106 100644 --- a/packages/testing/package.json +++ b/packages/testing/package.json @@ -1,7 +1,7 @@ { "name": "@trigger.dev/testing", "description": "A collection of useful tools to write tests for Trigger.dev.", - "version": "3.0.0-beta.24", + "version": "3.0.0-beta.25", "license": "MIT", "main": "./dist/index.js", "types": "./dist/index.d.ts", diff --git a/packages/trigger-sdk/CHANGELOG.md b/packages/trigger-sdk/CHANGELOG.md index cbb50597b..b0115e910 100644 --- a/packages/trigger-sdk/CHANGELOG.md +++ b/packages/trigger-sdk/CHANGELOG.md @@ -1,5 +1,14 @@ # @trigger.dev/sdk +## 3.0.0-beta.25 + +### Patch Changes + +- Updated dependencies [e337b2165] +- Updated dependencies [9e5382951] + - @trigger.dev/core@3.0.0-beta.25 + - @trigger.dev/core-backend@3.0.0-beta.25 + ## 3.0.0-beta.24 ### Patch Changes diff --git a/packages/trigger-sdk/package.json b/packages/trigger-sdk/package.json index 5ef9c08eb..362304a15 100644 --- a/packages/trigger-sdk/package.json +++ b/packages/trigger-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/sdk", - "version": "3.0.0-beta.24", + "version": "3.0.0-beta.25", "description": "trigger.dev Node.JS SDK", "license": "MIT", "main": "./dist/index.js", @@ -48,8 +48,8 @@ "@opentelemetry/api": "^1.8.0", "@opentelemetry/api-logs": "^0.48.0", "@opentelemetry/semantic-conventions": "^1.22.0", - "@trigger.dev/core": "workspace:3.0.0-beta.24", - "@trigger.dev/core-backend": "workspace:3.0.0-beta.24", + "@trigger.dev/core": "workspace:3.0.0-beta.25", + "@trigger.dev/core-backend": "workspace:3.0.0-beta.25", "chalk": "^5.2.0", "cronstrue": "^2.21.0", "debug": "^4.3.4", diff --git a/packages/yalt/CHANGELOG.md b/packages/yalt/CHANGELOG.md index d71abaced..b8e04cc30 100644 --- a/packages/yalt/CHANGELOG.md +++ b/packages/yalt/CHANGELOG.md @@ -1,5 +1,7 @@ # @trigger.dev/yalt +## 3.0.0-beta.25 + ## 3.0.0-beta.24 ## 3.0.0-beta.23 diff --git a/packages/yalt/package.json b/packages/yalt/package.json index 6c6efe5a5..c4d06fdd4 100644 --- a/packages/yalt/package.json +++ b/packages/yalt/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/yalt", - "version": "3.0.0-beta.24", + "version": "3.0.0-beta.25", "description": "yalt.dev client library", "license": "MIT", "main": "./dist/index.js", From bf4e505c70769fa312b5ad0e3cce9a9410b0a00b Mon Sep 17 00:00:00 2001 From: Eric Allam Date: Thu, 2 May 2024 16:00:43 +0100 Subject: [PATCH 16/17] Release 3.0.0-beta.25 --- pnpm-lock.yaml | 70 +++++++++++++++++++++++++------------------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 054fe4e13..b2aae1180 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -845,10 +845,10 @@ importers: integrations/airtable: dependencies: '@trigger.dev/integration-kit': - specifier: workspace:^3.0.0-beta.24 + specifier: workspace:^3.0.0-beta.25 version: link:../../packages/integration-kit '@trigger.dev/sdk': - specifier: workspace:^3.0.0-beta.24 + specifier: workspace:^3.0.0-beta.25 version: link:../../packages/trigger-sdk airtable: specifier: ^0.12.1 @@ -888,10 +888,10 @@ importers: specifier: ^12.0.10 version: 12.0.10 '@trigger.dev/integration-kit': - specifier: workspace:^3.0.0-beta.24 + specifier: workspace:^3.0.0-beta.25 version: link:../../packages/integration-kit '@trigger.dev/sdk': - specifier: workspace:^3.0.0-beta.24 + specifier: workspace:^3.0.0-beta.25 version: link:../../packages/trigger-sdk octokit: specifier: ^3.1.2 @@ -931,10 +931,10 @@ importers: specifier: ^8.0.0 version: 8.0.0 '@trigger.dev/integration-kit': - specifier: workspace:^3.0.0-beta.24 + specifier: workspace:^3.0.0-beta.25 version: link:../../packages/integration-kit '@trigger.dev/sdk': - specifier: workspace:^3.0.0-beta.24 + specifier: workspace:^3.0.0-beta.25 version: link:../../packages/trigger-sdk zod: specifier: 3.22.3 @@ -962,10 +962,10 @@ importers: integrations/openai: dependencies: '@trigger.dev/integration-kit': - specifier: workspace:^3.0.0-beta.24 + specifier: workspace:^3.0.0-beta.25 version: link:../../packages/integration-kit '@trigger.dev/sdk': - specifier: workspace:^3.0.0-beta.24 + specifier: workspace:^3.0.0-beta.25 version: link:../../packages/trigger-sdk openai: specifier: ^4.16.1 @@ -1005,10 +1005,10 @@ importers: specifier: ^2.7.0 version: 2.7.0 '@trigger.dev/integration-kit': - specifier: workspace:^3.0.0-beta.24 + specifier: workspace:^3.0.0-beta.25 version: link:../../packages/integration-kit '@trigger.dev/sdk': - specifier: workspace:^3.0.0-beta.24 + specifier: workspace:^3.0.0-beta.25 version: link:../../packages/trigger-sdk devDependencies: '@trigger.dev/tsconfig': @@ -1033,10 +1033,10 @@ importers: integrations/replicate: dependencies: '@trigger.dev/integration-kit': - specifier: workspace:^3.0.0-beta.24 + specifier: workspace:^3.0.0-beta.25 version: link:../../packages/integration-kit '@trigger.dev/sdk': - specifier: workspace:^3.0.0-beta.24 + specifier: workspace:^3.0.0-beta.25 version: link:../../packages/trigger-sdk replicate: specifier: ^0.18.1 @@ -1067,10 +1067,10 @@ importers: integrations/resend: dependencies: '@trigger.dev/integration-kit': - specifier: workspace:^3.0.0-beta.24 + specifier: workspace:^3.0.0-beta.25 version: link:../../packages/integration-kit '@trigger.dev/sdk': - specifier: workspace:^3.0.0-beta.24 + specifier: workspace:^3.0.0-beta.25 version: link:../../packages/trigger-sdk resend: specifier: ^2.1.0 @@ -1101,10 +1101,10 @@ importers: specifier: ^7.7.0 version: 7.7.0 '@trigger.dev/integration-kit': - specifier: workspace:^3.0.0-beta.24 + specifier: workspace:^3.0.0-beta.25 version: link:../../packages/integration-kit '@trigger.dev/sdk': - specifier: workspace:^3.0.0-beta.24 + specifier: workspace:^3.0.0-beta.25 version: link:../../packages/trigger-sdk devDependencies: '@trigger.dev/tsconfig': @@ -1132,10 +1132,10 @@ importers: specifier: ^8.0.2 version: 8.0.2 '@trigger.dev/integration-kit': - specifier: workspace:^3.0.0-beta.24 + specifier: workspace:^3.0.0-beta.25 version: link:../../packages/integration-kit '@trigger.dev/sdk': - specifier: workspace:^3.0.0-beta.24 + specifier: workspace:^3.0.0-beta.25 version: link:../../packages/trigger-sdk zod: specifier: 3.22.3 @@ -1166,7 +1166,7 @@ importers: specifier: ^6.8.1 version: 6.8.1 '@trigger.dev/sdk': - specifier: workspace:^3.0.0-beta.24 + specifier: workspace:^3.0.0-beta.25 version: link:../../packages/trigger-sdk zod: specifier: 3.22.3 @@ -1194,10 +1194,10 @@ importers: integrations/stripe: dependencies: '@trigger.dev/integration-kit': - specifier: workspace:^3.0.0-beta.24 + specifier: workspace:^3.0.0-beta.25 version: link:../../packages/integration-kit '@trigger.dev/sdk': - specifier: workspace:^3.0.0-beta.24 + specifier: workspace:^3.0.0-beta.25 version: link:../../packages/trigger-sdk stripe: specifier: ^12.14.0 @@ -1231,10 +1231,10 @@ importers: specifier: ^2.26.0 version: 2.31.0 '@trigger.dev/integration-kit': - specifier: workspace:^3.0.0-beta.24 + specifier: workspace:^3.0.0-beta.25 version: link:../../packages/integration-kit '@trigger.dev/sdk': - specifier: workspace:^3.0.0-beta.24 + specifier: workspace:^3.0.0-beta.25 version: link:../../packages/trigger-sdk supabase-management-js: specifier: ^1.0.0 @@ -1265,10 +1265,10 @@ importers: integrations/typeform: dependencies: '@trigger.dev/integration-kit': - specifier: workspace:^3.0.0-beta.24 + specifier: workspace:^3.0.0-beta.25 version: link:../../packages/integration-kit '@trigger.dev/sdk': - specifier: workspace:^3.0.0-beta.24 + specifier: workspace:^3.0.0-beta.25 version: link:../../packages/trigger-sdk '@typeform/api-client': specifier: ^1.8.0 @@ -1296,7 +1296,7 @@ importers: packages/astro: dependencies: '@trigger.dev/sdk': - specifier: workspace:^3.0.0-beta.24 + specifier: workspace:^3.0.0-beta.25 version: link:../trigger-sdk debug: specifier: ^4.3.4 @@ -1514,7 +1514,7 @@ importers: specifier: ^1.22.0 version: 1.22.0 '@trigger.dev/core': - specifier: workspace:3.0.0-beta.24 + specifier: workspace:3.0.0-beta.25 version: link:../core '@types/degit': specifier: ^2.8.3 @@ -1956,7 +1956,7 @@ importers: version: 4.18.2 devDependencies: '@trigger.dev/sdk': - specifier: workspace:^3.0.0-beta.24 + specifier: workspace:^3.0.0-beta.25 version: link:../trigger-sdk '@trigger.dev/tsconfig': specifier: workspace:* @@ -2051,7 +2051,7 @@ importers: version: 4.3.4(supports-color@8.1.1) devDependencies: '@trigger.dev/sdk': - specifier: workspace:^3.0.0-beta.24 + specifier: workspace:^3.0.0-beta.25 version: link:../trigger-sdk '@trigger.dev/tsconfig': specifier: workspace:* @@ -2084,7 +2084,7 @@ importers: packages/nextjs: dependencies: '@trigger.dev/sdk': - specifier: workspace:^3.0.0-beta.24 + specifier: workspace:^3.0.0-beta.25 version: link:../trigger-sdk debug: specifier: ^4.3.4 @@ -2170,7 +2170,7 @@ importers: specifier: 5.0.0-beta.2 version: 5.0.0-beta.2(react@18.2.0) '@trigger.dev/core': - specifier: workspace:^3.0.0-beta.24 + specifier: workspace:^3.0.0-beta.25 version: link:../core debug: specifier: ^4.3.4 @@ -2213,7 +2213,7 @@ importers: packages/remix: dependencies: '@trigger.dev/sdk': - specifier: workspace:^3.0.0-beta.24 + specifier: workspace:^3.0.0-beta.25 version: link:../trigger-sdk debug: specifier: ^4.3.4 @@ -2250,7 +2250,7 @@ importers: packages/sveltekit: dependencies: '@trigger.dev/sdk': - specifier: workspace:^3.0.0-beta.24 + specifier: workspace:^3.0.0-beta.25 version: link:../trigger-sdk debug: specifier: ^4.3.4 @@ -2324,10 +2324,10 @@ importers: specifier: ^1.22.0 version: 1.22.0 '@trigger.dev/core': - specifier: workspace:3.0.0-beta.24 + specifier: workspace:3.0.0-beta.25 version: link:../core '@trigger.dev/core-backend': - specifier: workspace:3.0.0-beta.24 + specifier: workspace:3.0.0-beta.25 version: link:../core-backend chalk: specifier: ^5.2.0 From ae9980704765e49e60f28a8d4b174bb49a160923 Mon Sep 17 00:00:00 2001 From: Eric Allam Date: Thu, 2 May 2024 16:39:01 +0100 Subject: [PATCH 17/17] Allow admin tooltips while impersonating --- apps/webapp/app/components/admin/debugTooltip.tsx | 4 +++- apps/webapp/app/hooks/useOrganizations.ts | 8 ++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/apps/webapp/app/components/admin/debugTooltip.tsx b/apps/webapp/app/components/admin/debugTooltip.tsx index f1189b914..a0b075cc1 100644 --- a/apps/webapp/app/components/admin/debugTooltip.tsx +++ b/apps/webapp/app/components/admin/debugTooltip.tsx @@ -5,12 +5,14 @@ import { TooltipProvider, TooltipTrigger, } from "~/components/primitives/Tooltip"; +import { useIsImpersonating } from "~/hooks/useOrganizations"; import { useHasAdminAccess } from "~/hooks/useUser"; export function AdminDebugTooltip({ children }: { children: React.ReactNode }) { const hasAdminAccess = useHasAdminAccess(); + const isImpersonating = useIsImpersonating(); - if (!hasAdminAccess) { + if (!hasAdminAccess && !isImpersonating) { return null; } diff --git a/apps/webapp/app/hooks/useOrganizations.ts b/apps/webapp/app/hooks/useOrganizations.ts index 4560efc0d..877605b95 100644 --- a/apps/webapp/app/hooks/useOrganizations.ts +++ b/apps/webapp/app/hooks/useOrganizations.ts @@ -53,3 +53,11 @@ export function useIsNewOrganizationPage(matches?: UIMatch[]): boolean { export const useOrganizationChanged = (action: (org: MatchedOrganization | undefined) => void) => { useChanged(useOptionalOrganization, action); }; + +export function useIsImpersonating(matches?: UIMatch[]) { + const data = useTypedMatchesData({ + id: "routes/_app.orgs.$organizationSlug", + matches, + }); + return data?.isImpersonating === true; +}