Skip to content

Commit b68012f

Browse files
authored
v3: Various fixes for Next.js projects and projects that use v2 and v3 together (#1051)
* Fixes an issue that was treating v2 trigger directories as v3 * Make msw a normal dependency (for now) to fix Module Not Found error in Next.js. * Extract out all the zod* stuff from core so the SDK does not import it * Add a changeset * Fixing typecheck errors in the webapp * Export the Task and TaskOptions types * Extract additional exports from core/v3 that aren’t used in the SDK * Move to our global system from AsyncLocalStorage for the current task context storage * Update the esbuild core bundling plugin for the new core v3 exports * Fix v3 CLI telemetry * Add support for tasks located in subdirectories inside trigger dirs * Remove the env var check during deploy (too many false negatives)
1 parent fb83d58 commit b68012f

File tree

76 files changed

+1016
-801
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

76 files changed

+1016
-801
lines changed

.changeset/eleven-paws-join.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"trigger.dev": patch
3+
---
4+
5+
Remove the env var check during deploy (too many false negatives)

.changeset/funny-swans-destroy.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
---
2+
"@trigger.dev/sdk": patch
3+
---
4+
5+
Make msw a normal dependency (for now) to fix Module Not Found error in Next.js.
6+
7+
It turns out that webpack will "hoist" dynamically imported modules and attempt to resolve them at build time, even though it's an optional peer dep:
8+
9+
https://x.com/maverickdotdev/status/1782465214308319404

.changeset/nasty-jars-pump.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"trigger.dev": patch
3+
---
4+
5+
Fixes an issue that was treating v2 trigger directories as v3

.changeset/slow-buses-own.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
"@trigger.dev/sdk": patch
3+
"trigger.dev": patch
4+
"@trigger.dev/core": patch
5+
"@trigger.dev/cli": patch
6+
---
7+
8+
Move to our global system from AsyncLocalStorage for the current task context storage

.changeset/tricky-ladybugs-unite.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
"@trigger.dev/sdk": patch
3+
"@trigger.dev/core-apps": patch
4+
"trigger.dev": patch
5+
"@trigger.dev/core": patch
6+
---
7+
8+
Extracting out all the non-SDK related features from the main @trigger.dev/core/v3 export

.changeset/two-pumas-wait.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
"trigger.dev": patch
3+
"@trigger.dev/cli": patch
4+
---
5+
6+
Add support for tasks located in subdirectories inside trigger dirs

apps/coordinator/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@
2121
"execa": "^8.0.1",
2222
"nanoid": "^5.0.6",
2323
"prom-client": "^15.1.0",
24-
"socket.io": "^4.7.4",
25-
"socket.io-client": "^4.7.4"
24+
"socket.io": "4.7.4",
25+
"socket.io-client": "4.7.4"
2626
},
2727
"devDependencies": {
2828
"@types/node": "^18",

apps/coordinator/src/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ import {
88
PlatformToCoordinatorMessages,
99
ProdWorkerSocketData,
1010
ProdWorkerToCoordinatorMessages,
11-
ZodNamespace,
12-
ZodSocketConnection,
1311
} from "@trigger.dev/core/v3";
12+
import { ZodNamespace } from "@trigger.dev/core/v3/zodNamespace";
13+
import { ZodSocketConnection } from "@trigger.dev/core/v3/zodSocket";
1414
import { HttpReply, getTextBody, SimpleLogger } from "@trigger.dev/core-apps";
1515

1616
import { collectDefaultMetrics, register, Gauge } from "prom-client";

apps/webapp/app/routes/api.v1.tasks.$taskId.batch.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import type { ActionFunctionArgs } from "@remix-run/server-runtime";
22
import { json } from "@remix-run/server-runtime";
3-
import { parseBatchTriggerTaskRequestBody } from "@trigger.dev/core/v3";
3+
import { BatchTriggerTaskRequestBody } from "@trigger.dev/core/v3";
44
import { z } from "zod";
55
import { MAX_BATCH_TRIGGER_ITEMS } from "~/consts";
66
import { authenticateApiRequest } from "~/services/apiAuth.server";
@@ -46,7 +46,7 @@ export async function action({ request, params }: ActionFunctionArgs) {
4646
// Now parse the request body
4747
const anyBody = await request.json();
4848

49-
const body = parseBatchTriggerTaskRequestBody(anyBody);
49+
const body = BatchTriggerTaskRequestBody.safeParse(anyBody);
5050

5151
if (!body.success) {
5252
return json({ error: "Invalid request body" }, { status: 400 });

apps/webapp/app/routes/api.v1.tasks.$taskId.trigger.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import type { ActionFunctionArgs } from "@remix-run/server-runtime";
22
import { json } from "@remix-run/server-runtime";
3-
import { parseTriggerTaskRequestBody } from "@trigger.dev/core/v3";
3+
import { TriggerTaskRequestBody } from "@trigger.dev/core/v3";
44
import { z } from "zod";
55
import { authenticateApiRequest } from "~/services/apiAuth.server";
66
import { logger } from "~/services/logger.server";
@@ -52,7 +52,7 @@ export async function action({ request, params }: ActionFunctionArgs) {
5252
// Now parse the request body
5353
const anyBody = await request.json();
5454

55-
const body = parseTriggerTaskRequestBody(anyBody);
55+
const body = TriggerTaskRequestBody.safeParse(anyBody);
5656

5757
if (!body.success) {
5858
return json({ error: "Invalid request body" }, { status: 400 });

apps/webapp/app/v3/authenticatedSocketConnection.server.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
1-
import {
2-
ZodMessageHandler,
3-
ZodMessageSender,
4-
clientWebsocketMessages,
5-
serverWebsocketMessages,
6-
} from "@trigger.dev/core/v3";
1+
import { clientWebsocketMessages, serverWebsocketMessages } from "@trigger.dev/core/v3";
2+
import { ZodMessageHandler, ZodMessageSender } from "@trigger.dev/core/v3/zodMessageHandler";
73
import { Evt } from "evt";
84
import { randomUUID } from "node:crypto";
95
import type { CloseEvent, ErrorEvent, MessageEvent, WebSocket } from "ws";

apps/webapp/app/v3/handleSocketIo.server.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ import {
55
PlatformToProviderMessages,
66
ProviderToPlatformMessages,
77
SharedQueueToClientMessages,
8-
ZodNamespace,
98
} from "@trigger.dev/core/v3";
9+
import { ZodNamespace } from "@trigger.dev/core/v3/zodNamespace";
1010
import { Server } from "socket.io";
1111
import { env } from "~/env.server";
1212
import { singleton } from "~/utils/singleton";
@@ -71,6 +71,7 @@ function initializeSocketIOServerInstance() {
7171

7272
function createCoordinatorNamespace(io: Server) {
7373
const coordinator = new ZodNamespace({
74+
// @ts-ignore - for some reason the built ZodNamespace Server type is not compatible with the Server type here, but only when doing typechecking
7475
io,
7576
name: "coordinator",
7677
authToken: env.COORDINATOR_SECRET,
@@ -147,6 +148,7 @@ function createCoordinatorNamespace(io: Server) {
147148

148149
function createProviderNamespace(io: Server) {
149150
const provider = new ZodNamespace({
151+
// @ts-ignore - for some reason the built ZodNamespace Server type is not compatible with the Server type here, but only when doing typechecking
150152
io,
151153
name: "provider",
152154
authToken: env.PROVIDER_SECRET,
@@ -181,14 +183,17 @@ function createProviderNamespace(io: Server) {
181183

182184
function createSharedQueueConsumerNamespace(io: Server) {
183185
const sharedQueue = new ZodNamespace({
186+
// @ts-ignore - for some reason the built ZodNamespace Server type is not compatible with the Server type here, but only when doing typechecking
184187
io,
185188
name: "shared-queue",
186189
authToken: env.PROVIDER_SECRET,
187190
clientMessages: ClientToSharedQueueMessages,
188191
serverMessages: SharedQueueToClientMessages,
189192
onConnection: async (socket, handler, sender, logger) => {
190193
const sharedSocketConnection = new SharedSocketConnection({
194+
// @ts-ignore - for some reason the built ZodNamespace Server type is not compatible with the Server type here, but only when doing typechecking
191195
namespace: sharedQueue.namespace,
196+
// @ts-ignore - for some reason the built ZodNamespace Server type is not compatible with the Server type here, but only when doing typechecking
192197
socket,
193198
logger,
194199
poolSize: env.SHARED_QUEUE_CONSUMER_POOL_SIZE,

apps/webapp/app/v3/marqs/devQueueConsumer.server.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ import {
33
TaskRunExecution,
44
TaskRunExecutionPayload,
55
TaskRunExecutionResult,
6-
ZodMessageSender,
76
serverWebsocketMessages,
87
} from "@trigger.dev/core/v3";
8+
import { ZodMessageSender } from "@trigger.dev/core/v3/zodMessageHandler";
99
import { BackgroundWorker, BackgroundWorkerTask } from "@trigger.dev/database";
1010
import { z } from "zod";
1111
import { prisma } from "~/db.server";

apps/webapp/app/v3/marqs/sharedQueueConsumer.server.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ import {
88
TaskRunExecutionResult,
99
TaskRunFailedExecutionResult,
1010
TaskRunSuccessfulExecutionResult,
11-
ZodMessageSender,
1211
serverWebsocketMessages,
1312
} from "@trigger.dev/core/v3";
13+
import { ZodMessageSender } from "@trigger.dev/core/v3/zodMessageHandler";
1414
import {
1515
BackgroundWorker,
1616
BackgroundWorkerTask,
@@ -26,7 +26,6 @@ import { EnvironmentVariablesRepository } from "../environmentVariables/environm
2626
import { generateFriendlyId } from "../friendlyIdentifiers";
2727
import { socketIo } from "../handleSocketIo.server";
2828
import { findCurrentWorkerDeployment } from "../models/workerDeployment.server";
29-
import { CancelAttemptService } from "../services/cancelAttempt.server";
3029
import { RestoreCheckpointService } from "../services/restoreCheckpoint.server";
3130
import { tracer } from "../tracer.server";
3231

apps/webapp/app/v3/services/createCheckpoint.server.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import { CoordinatorToPlatformMessages, InferSocketMessageSchema } from "@trigger.dev/core/v3";
1+
import { CoordinatorToPlatformMessages } from "@trigger.dev/core/v3";
2+
import type { InferSocketMessageSchema } from "@trigger.dev/core/v3/zodSocket";
23
import type {
34
CheckpointRestoreEvent,
45
TaskRunAttemptStatus,

apps/webapp/app/v3/services/resumeAttempt.server.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import {
22
CoordinatorToPlatformMessages,
3-
InferSocketMessageSchema,
43
TaskRunExecution,
54
TaskRunExecutionResult,
65
} from "@trigger.dev/core/v3";
6+
import type { InferSocketMessageSchema } from "@trigger.dev/core/v3/zodSocket";
77
import { $transaction, PrismaClientOrTransaction } from "~/db.server";
88
import { logger } from "~/services/logger.server";
99
import { marqs } from "~/v3/marqs/index.server";

apps/webapp/app/v3/sharedSocketConnection.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1+
import { clientWebsocketMessages, serverWebsocketMessages } from "@trigger.dev/core/v3";
12
import {
2-
MessageCatalogToSocketIoEvents,
3-
StructuredLogger,
43
ZodMessageHandler,
54
ZodMessageSender,
6-
clientWebsocketMessages,
7-
serverWebsocketMessages,
8-
} from "@trigger.dev/core/v3";
5+
MessageCatalogToSocketIoEvents,
6+
} from "@trigger.dev/core/v3/zodMessageHandler";
7+
import type { StructuredLogger } from "@trigger.dev/core/v3/utils/structuredLogger";
98
import { Evt } from "evt";
109
import { randomUUID } from "node:crypto";
1110
import { logger } from "~/services/logger.server";

apps/webapp/app/v3/utils/zodPubSub.server.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Logger } from "@trigger.dev/core-backend";
2-
import { ZodMessageCatalogSchema, ZodMessageHandler, ZodMessageSender } from "@trigger.dev/core/v3";
2+
import { ZodMessageCatalogSchema, ZodMessageHandler } from "@trigger.dev/core/v3/zodMessageHandler";
33
import { Evt } from "evt";
44
import Redis, { RedisOptions } from "ioredis";
55
import { z } from "zod";

apps/webapp/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@
150150
"simple-oauth2": "^5.0.0",
151151
"simplur": "^3.0.1",
152152
"slug": "^6.0.0",
153-
"socket.io": "^4.7.4",
153+
"socket.io": "4.7.4",
154154
"socket.io-adapter": "^2.5.4",
155155
"sonner": "^1.0.3",
156156
"sqs-consumer": "^7.4.0",

config-packages/tsconfig/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@
66
"publishConfig": {
77
"access": "public"
88
}
9-
}
9+
}

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,8 @@
6868
"pnpm": {
6969
"patchedDependencies": {
7070
"@changesets/assemble-release-plan@5.2.4": "patches/@changesets__assemble-release-plan@5.2.4.patch",
71-
"tsup@8.0.1": "patches/tsup@8.0.1.patch"
71+
"tsup@8.0.1": "patches/tsup@8.0.1.patch",
72+
"engine.io-parser@5.2.2": "patches/engine.io-parser@5.2.2.patch"
7273
}
7374
}
7475
}

packages/cli-v3/src/cli/common.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import { flattenAttributes, recordSpanException } from "@trigger.dev/core/v3";
1+
import { flattenAttributes } from "@trigger.dev/core/v3";
2+
import { recordSpanException } from "@trigger.dev/core/v3/workers";
23
import { Command } from "commander";
34
import { z } from "zod";
45
import { getTracer, provider } from "../telemetry/tracing";

0 commit comments

Comments
 (0)