From 9a71ef64c6f4ba9abd3d26128b67f72ca319afd3 Mon Sep 17 00:00:00 2001 From: ANSHSINGH050404 <114014895+ANSHSINGH050404@users.noreply.github.com> Date: Mon, 20 Jul 2026 12:15:49 +0530 Subject: [PATCH] fix(sdk): resolve ReferenceError in envvars.update outside task context The non-task overload of envvars.update assigned $name from an undeclared `name` identifier instead of `nameOrRequestOptions`, so management-API calls threw ReferenceError in Node. Validate and use the real parameter. Closes #4264 --- .changeset/envvars-update-name-scope.md | 5 +++++ packages/trigger-sdk/src/v3/envvars.ts | 6 +++++- packages/trigger-sdk/src/v3/triggerClient.types.test.ts | 9 +++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 .changeset/envvars-update-name-scope.md diff --git a/.changeset/envvars-update-name-scope.md b/.changeset/envvars-update-name-scope.md new file mode 100644 index 00000000000..6b1fd88b6a6 --- /dev/null +++ b/.changeset/envvars-update-name-scope.md @@ -0,0 +1,5 @@ +--- +"@trigger.dev/sdk": patch +--- + +Fix `envvars.update()` throwing `ReferenceError: name is not defined` when called outside a task run (for example from a deploy script). diff --git a/packages/trigger-sdk/src/v3/envvars.ts b/packages/trigger-sdk/src/v3/envvars.ts index 153be22a3d3..23a2a4341fc 100644 --- a/packages/trigger-sdk/src/v3/envvars.ts +++ b/packages/trigger-sdk/src/v3/envvars.ts @@ -332,13 +332,17 @@ export function update( throw new Error("projectRef is required"); } + if (typeof nameOrRequestOptions !== "string") { + throw new Error("name is required"); + } + if (!params) { throw new Error("params is required"); } $projectRef = projectRefOrName; $slug = slugOrParams; - $name = name!; + $name = nameOrRequestOptions; $params = params; } diff --git a/packages/trigger-sdk/src/v3/triggerClient.types.test.ts b/packages/trigger-sdk/src/v3/triggerClient.types.test.ts index 1a04e46e1e7..8affb238838 100644 --- a/packages/trigger-sdk/src/v3/triggerClient.types.test.ts +++ b/packages/trigger-sdk/src/v3/triggerClient.types.test.ts @@ -40,6 +40,15 @@ describe("TriggerClient surface — type-level guarantees", () => { // Zero-arg form (uses task context — still typeable at the call site) expectTypeOf(client.envvars.list).toBeCallableWith(); }); + + it("preserves envvars.update overloads (out of task context form AND in-task form)", () => { + // Four-arg form (out-of-task: projectRef, slug, name, params) + expectTypeOf(client.envvars.update).toBeCallableWith("proj_1234", "dev", "MY_VAR", { + value: "secret", + }); + // Two-arg form (in-task: name, params) + expectTypeOf(client.envvars.update).toBeCallableWith("MY_VAR", { value: "secret" }); + }); }); describe("TriggerClient surface — curated subsets", () => {