diff --git a/.changeset/config.json b/.changeset/config.json index 5ec3facf38..115f54fefe 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -12,7 +12,13 @@ "access": "public", "baseBranch": "main", "updateInternalDependencies": "patch", - "ignore": ["webapp", "supervisor", "coordinator", "docker-provider", "kubernetes-provider"], + "ignore": [ + "webapp", + "coordinator", + "docker-provider", + "kubernetes-provider", + "supervisor" + ], "___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH": { "onlyUpdatePeerDependentsWhenOutOfRange": true } diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml index 9905fc9efc..e638ac7874 100644 --- a/.github/workflows/unit-tests.yml +++ b/.github/workflows/unit-tests.yml @@ -38,7 +38,7 @@ jobs: run: pnpm run generate - name: 🧪 Run Webapp Unit Tests - run: pnpm run test --filter webapp + run: pnpm run test:webapp env: DATABASE_URL: postgresql://postgres:postgres@localhost:5432/postgres DIRECT_URL: postgresql://postgres:postgres@localhost:5432/postgres @@ -47,7 +47,7 @@ jobs: ENCRYPTION_KEY: "secret" - name: 🧪 Run Package Unit Tests - run: pnpm run test --filter "@trigger.dev/*" + run: pnpm run test:packages - name: 🧪 Run Internal Unit Tests - run: pnpm run test --filter "@internal/*" + run: pnpm run test:internal diff --git a/apps/webapp/app/components/navigation/SideMenu.tsx b/apps/webapp/app/components/navigation/SideMenu.tsx index 76501775a0..0412b9a3ae 100644 --- a/apps/webapp/app/components/navigation/SideMenu.tsx +++ b/apps/webapp/app/components/navigation/SideMenu.tsx @@ -175,6 +175,12 @@ export function SideMenu({ to={v3EnvironmentPath(organization, project, environment)} data-action="tasks" /> + - - - - - + {children} ) : tooltip ? ( -
+
{children}
diff --git a/apps/webapp/app/components/runs/v3/TaskPath.tsx b/apps/webapp/app/components/runs/v3/TaskPath.tsx index 54fbad9ee0..d8ae016855 100644 --- a/apps/webapp/app/components/runs/v3/TaskPath.tsx +++ b/apps/webapp/app/components/runs/v3/TaskPath.tsx @@ -19,16 +19,16 @@ export function TaskPath({ filePath, functionName, className }: TaskPathProps) { ); } -type TaskFunctionNameProps = { - functionName: string; +type TaskFileNameProps = { + fileName: string; variant?: InlineCodeVariant; className?: string; }; -export function TaskFunctionName({ variant, functionName, className }: TaskFunctionNameProps) { +export function TaskFileName({ variant, fileName, className }: TaskFileNameProps) { return ( - {`${functionName}()`} + {`${fileName}`} ); } diff --git a/apps/webapp/app/components/runs/v3/TaskRunStatus.tsx b/apps/webapp/app/components/runs/v3/TaskRunStatus.tsx index 325d20d9e9..fd2143ecb8 100644 --- a/apps/webapp/app/components/runs/v3/TaskRunStatus.tsx +++ b/apps/webapp/app/components/runs/v3/TaskRunStatus.tsx @@ -15,12 +15,14 @@ import { type TaskRunStatus } from "@trigger.dev/database"; import assertNever from "assert-never"; import { HourglassIcon } from "lucide-react"; import { TimedOutIcon } from "~/assets/icons/TimedOutIcon"; +import { Callout } from "~/components/primitives/Callout"; import { Spinner } from "~/components/primitives/Spinner"; import { cn } from "~/utils/cn"; export const allTaskRunStatuses = [ "DELAYED", "WAITING_FOR_DEPLOY", + "PENDING_VERSION", "PENDING", "EXECUTING", "RETRYING_AFTER_FAILURE", @@ -37,7 +39,7 @@ export const allTaskRunStatuses = [ ] as const satisfies Readonly>; export const filterableTaskRunStatuses = [ - "WAITING_FOR_DEPLOY", + "PENDING_VERSION", "DELAYED", "PENDING", "WAITING_TO_RESUME", @@ -56,7 +58,8 @@ export const filterableTaskRunStatuses = [ const taskRunStatusDescriptions: Record = { DELAYED: "Task has been delayed and is waiting to be executed.", PENDING: "Task is waiting to be executed.", - WAITING_FOR_DEPLOY: "Task needs to be deployed first to start executing.", + PENDING_VERSION: "Run cannot execute until a version includes the task and queue.", + WAITING_FOR_DEPLOY: "Run cannot execute until a version includes the task and queue.", EXECUTING: "Task is currently being executed.", RETRYING_AFTER_FAILURE: "Task is being reattempted after a failure.", WAITING_TO_RESUME: `You have used a "wait" function. When the wait is complete, the task will resume execution.`, @@ -73,6 +76,7 @@ const taskRunStatusDescriptions: Record = { export const QUEUED_STATUSES = [ "PENDING", + "PENDING_VERSION", "WAITING_FOR_DEPLOY", "DELAYED", ] satisfies TaskRunStatus[]; @@ -104,6 +108,43 @@ export function TaskRunStatusCombo({ ); } +const statusReasonsToDescription: Record = { + NO_DEPLOYMENT: "No deployment or deployment image reference found for deployed run", + NO_WORKER: "No worker found for run", + TASK_NEVER_REGISTERED: "Task never registered", + QUEUE_NOT_FOUND: "Queue not found", + TASK_NOT_IN_LATEST: "Task not in latest version", + BACKGROUND_WORKER_MISMATCH: "Background worker mismatch", +}; + +export function TaskRunStatusReason({ + status, + statusReason, +}: { + status: TaskRunStatus; + statusReason?: string; +}) { + if (status !== "PENDING_VERSION") { + return null; + } + + if (!statusReason) { + return null; + } + + const description = statusReasonsToDescription[statusReason]; + + if (!description) { + return null; + } + + return ( + + {description} + + ); +} + export function TaskRunStatusLabel({ status }: { status: TaskRunStatus }) { return {runStatusTitle(status)}; } @@ -120,6 +161,7 @@ export function TaskRunStatusIcon({ return ; case "PENDING": return ; + case "PENDING_VERSION": case "WAITING_FOR_DEPLOY": return ; case "EXECUTING": @@ -158,6 +200,7 @@ export function runStatusClassNameColor(status: TaskRunStatus): string { case "PENDING": case "DELAYED": return "text-charcoal-500"; + case "PENDING_VERSION": case "WAITING_FOR_DEPLOY": return "text-amber-500"; case "EXECUTING": @@ -194,8 +237,9 @@ export function runStatusTitle(status: TaskRunStatus): string { return "Delayed"; case "PENDING": return "Queued"; + case "PENDING_VERSION": case "WAITING_FOR_DEPLOY": - return "Waiting for deploy"; + return "Pending version"; case "EXECUTING": return "Executing"; case "WAITING_TO_RESUME": diff --git a/apps/webapp/app/components/runs/v3/TaskRunsTable.tsx b/apps/webapp/app/components/runs/v3/TaskRunsTable.tsx index ea62f28478..1e594e119c 100644 --- a/apps/webapp/app/components/runs/v3/TaskRunsTable.tsx +++ b/apps/webapp/app/components/runs/v3/TaskRunsTable.tsx @@ -330,7 +330,9 @@ export function TaskRunsTable({
- {run.startedAt ? ( + {run.isPending ? ( + "–" + ) : run.startedAt ? ( formatDuration(new Date(run.createdAt), new Date(run.startedAt), { style: "short", }) diff --git a/apps/webapp/app/database-types.ts b/apps/webapp/app/database-types.ts index 6214843f64..1fcd822c07 100644 --- a/apps/webapp/app/database-types.ts +++ b/apps/webapp/app/database-types.ts @@ -29,6 +29,7 @@ export const TaskRunAttemptStatus = { export const TaskRunStatus = { PENDING: "PENDING", + PENDING_VERSION: "PENDING_VERSION", WAITING_FOR_DEPLOY: "WAITING_FOR_DEPLOY", EXECUTING: "EXECUTING", WAITING_TO_RESUME: "WAITING_TO_RESUME", diff --git a/apps/webapp/app/hooks/useFilterTasks.ts b/apps/webapp/app/hooks/useFilterTasks.ts index 6bb64a9d8b..7b95cf8128 100644 --- a/apps/webapp/app/hooks/useFilterTasks.ts +++ b/apps/webapp/app/hooks/useFilterTasks.ts @@ -4,7 +4,6 @@ type Task = { id: string; friendlyId: string; taskIdentifier: string; - exportName: string; filePath: string; triggerSource: string; }; @@ -17,10 +16,6 @@ export function useFilterTasks({ tasks }: { tasks: T[] }) { return true; } - if (task.exportName.toLowerCase().includes(text.toLowerCase())) { - return true; - } - if (task.filePath.toLowerCase().includes(text.toLowerCase())) { return true; } diff --git a/apps/webapp/app/models/runtimeEnvironment.server.ts b/apps/webapp/app/models/runtimeEnvironment.server.ts index 12e7359056..d9f616f6cf 100644 --- a/apps/webapp/app/models/runtimeEnvironment.server.ts +++ b/apps/webapp/app/models/runtimeEnvironment.server.ts @@ -1,4 +1,4 @@ -import { AuthenticatedEnvironment } from "@internal/testcontainers"; +import type { AuthenticatedEnvironment } from "@internal/run-engine"; import type { Prisma, PrismaClientOrTransaction, RuntimeEnvironment } from "@trigger.dev/database"; import { prisma } from "~/db.server"; import { getUsername } from "~/utils/username"; diff --git a/apps/webapp/app/models/taskQueue.server.ts b/apps/webapp/app/models/taskQueue.server.ts index a9c52caf9f..ed3435556b 100644 --- a/apps/webapp/app/models/taskQueue.server.ts +++ b/apps/webapp/app/models/taskQueue.server.ts @@ -1,4 +1,4 @@ -import { QueueOptions } from "@trigger.dev/core/v3/schemas"; +import { QueueManifest } from "@trigger.dev/core/v3/schemas"; import { TaskQueue } from "@trigger.dev/database"; import { prisma } from "~/db.server"; @@ -35,7 +35,7 @@ export async function findQueueInEnvironment( return; } - const queueConfig = QueueOptions.safeParse(task.queueConfig); + const queueConfig = QueueManifest.safeParse(task.queueConfig); if (queueConfig.success) { const taskQueueName = queueConfig.data.name diff --git a/apps/webapp/app/models/taskRun.server.ts b/apps/webapp/app/models/taskRun.server.ts index c0166515e4..cfd13a424b 100644 --- a/apps/webapp/app/models/taskRun.server.ts +++ b/apps/webapp/app/models/taskRun.server.ts @@ -125,6 +125,7 @@ export function batchTaskRunItemStatusForRunStatus( case TaskRunStatus.TIMED_OUT: return BatchTaskRunItemStatus.FAILED; case TaskRunStatus.PENDING: + case TaskRunStatus.PENDING_VERSION: case TaskRunStatus.WAITING_FOR_DEPLOY: case TaskRunStatus.WAITING_TO_RESUME: case TaskRunStatus.RETRYING_AFTER_FAILURE: diff --git a/apps/webapp/app/presenters/v3/ApiRetrieveRunPresenter.server.ts b/apps/webapp/app/presenters/v3/ApiRetrieveRunPresenter.server.ts index 35baef75c6..ac6c226e89 100644 --- a/apps/webapp/app/presenters/v3/ApiRetrieveRunPresenter.server.ts +++ b/apps/webapp/app/presenters/v3/ApiRetrieveRunPresenter.server.ts @@ -204,6 +204,9 @@ export class ApiRetrieveRunPresenter extends BasePresenter { case "DELAYED": { return "DELAYED"; } + case "PENDING_VERSION": { + return "PENDING_VERSION"; + } case "WAITING_FOR_DEPLOY": { return "WAITING_FOR_DEPLOY"; } @@ -257,7 +260,11 @@ export class ApiRetrieveRunPresenter extends BasePresenter { } static apiBooleanHelpersFromRunStatus(status: RunStatus) { - const isQueued = status === "QUEUED" || status === "WAITING_FOR_DEPLOY" || status === "DELAYED"; + const isQueued = + status === "QUEUED" || + status === "WAITING_FOR_DEPLOY" || + status === "DELAYED" || + status === "PENDING_VERSION"; const isExecuting = status === "EXECUTING" || status === "REATTEMPTING" || status === "FROZEN"; const isCompleted = status === "COMPLETED" || diff --git a/apps/webapp/app/presenters/v3/ApiRunListPresenter.server.ts b/apps/webapp/app/presenters/v3/ApiRunListPresenter.server.ts index 78f95e324d..15966e3726 100644 --- a/apps/webapp/app/presenters/v3/ApiRunListPresenter.server.ts +++ b/apps/webapp/app/presenters/v3/ApiRunListPresenter.server.ts @@ -280,6 +280,9 @@ export class ApiRunListPresenter extends BasePresenter { switch (status) { case "DELAYED": return "DELAYED"; + case "PENDING_VERSION": { + return "PENDING_VERSION"; + } case "WAITING_FOR_DEPLOY": { return "WAITING_FOR_DEPLOY"; } diff --git a/apps/webapp/app/presenters/v3/DeploymentPresenter.server.ts b/apps/webapp/app/presenters/v3/DeploymentPresenter.server.ts index 71bdb8077c..7c29aecbe4 100644 --- a/apps/webapp/app/presenters/v3/DeploymentPresenter.server.ts +++ b/apps/webapp/app/presenters/v3/DeploymentPresenter.server.ts @@ -108,11 +108,10 @@ export class DeploymentPresenter { tasks: { select: { slug: true, - exportName: true, filePath: true, }, orderBy: { - exportName: "asc", + slug: "asc", }, }, sdkVersion: true, diff --git a/apps/webapp/app/presenters/v3/QueueListPresenter.server.ts b/apps/webapp/app/presenters/v3/QueueListPresenter.server.ts index 3020d718e0..287a82f4a2 100644 --- a/apps/webapp/app/presenters/v3/QueueListPresenter.server.ts +++ b/apps/webapp/app/presenters/v3/QueueListPresenter.server.ts @@ -56,16 +56,19 @@ export class QueueListPresenter extends BasePresenter { const queues = await this._replica.taskQueue.findMany({ where: { runtimeEnvironmentId: environment.id, + version: "V2", }, select: { friendlyId: true, name: true, + orderableName: true, concurrencyLimit: true, type: true, paused: true, + releaseConcurrencyOnWaitpoint: true, }, orderBy: { - name: "asc", + orderableName: "asc", }, skip: (page - 1) * this.perPage, take: this.perPage, @@ -92,6 +95,7 @@ export class QueueListPresenter extends BasePresenter { queued: results[0][queue.name] ?? 0, concurrencyLimit: queue.concurrencyLimit ?? null, paused: queue.paused, + releaseConcurrencyOnWaitpoint: queue.releaseConcurrencyOnWaitpoint, }) ); } diff --git a/apps/webapp/app/presenters/v3/QueueRetrievePresenter.server.ts b/apps/webapp/app/presenters/v3/QueueRetrievePresenter.server.ts index 6f297bc8ba..12e8e86291 100644 --- a/apps/webapp/app/presenters/v3/QueueRetrievePresenter.server.ts +++ b/apps/webapp/app/presenters/v3/QueueRetrievePresenter.server.ts @@ -76,6 +76,7 @@ export class QueueRetrievePresenter extends BasePresenter { queued: results[0]?.[queue.name] ?? 0, concurrencyLimit: queue.concurrencyLimit ?? null, paused: queue.paused, + releaseConcurrencyOnWaitpoint: queue.releaseConcurrencyOnWaitpoint, }), }; } @@ -105,6 +106,7 @@ export function toQueueItem(data: { queued: number; concurrencyLimit: number | null; paused: boolean; + releaseConcurrencyOnWaitpoint: boolean; }): QueueItem { return { id: data.friendlyId, @@ -115,5 +117,6 @@ export function toQueueItem(data: { queued: data.queued, concurrencyLimit: data.concurrencyLimit, paused: data.paused, + releaseConcurrencyOnWaitpoint: data.releaseConcurrencyOnWaitpoint, }; } diff --git a/apps/webapp/app/presenters/v3/RunListPresenter.server.ts b/apps/webapp/app/presenters/v3/RunListPresenter.server.ts index 601be11bcc..cb72b0160f 100644 --- a/apps/webapp/app/presenters/v3/RunListPresenter.server.ts +++ b/apps/webapp/app/presenters/v3/RunListPresenter.server.ts @@ -2,7 +2,7 @@ import { Prisma, type TaskRunStatus } from "@trigger.dev/database"; import parse from "parse-duration"; import { sqlDatabaseSchema } from "~/db.server"; import { displayableEnvironment } from "~/models/runtimeEnvironment.server"; -import { isCancellableRunStatus, isFinalRunStatus } from "~/v3/taskStatus"; +import { isCancellableRunStatus, isFinalRunStatus, isPendingRunStatus } from "~/v3/taskStatus"; import { BasePresenter } from "./basePresenter.server"; import { getAllTaskIdentifiers } from "~/models/task.server"; import { type Direction } from "~/components/ListPagination"; @@ -367,6 +367,7 @@ WHERE spanId: run.spanId, isReplayable: true, isCancellable: isCancellableRunStatus(run.status), + isPending: isPendingRunStatus(run.status), environment: displayableEnvironment(environment, userId), idempotencyKey: run.idempotencyKey ? run.idempotencyKey : undefined, ttl: run.ttl ? run.ttl : undefined, diff --git a/apps/webapp/app/presenters/v3/SpanPresenter.server.ts b/apps/webapp/app/presenters/v3/SpanPresenter.server.ts index 82df22ae6a..e7c58c5c21 100644 --- a/apps/webapp/app/presenters/v3/SpanPresenter.server.ts +++ b/apps/webapp/app/presenters/v3/SpanPresenter.server.ts @@ -1,20 +1,17 @@ import { isWaitpointOutputTimeout, MachinePresetName, - parsePacket, prettyPrintPacket, - SemanticInternalAttributes, TaskRunError, } from "@trigger.dev/core/v3"; +import { getMaxDuration } from "@trigger.dev/core/v3/isomorphic"; import { RUNNING_STATUSES } from "~/components/runs/v3/TaskRunStatus"; +import { logger } from "~/services/logger.server"; import { eventRepository } from "~/v3/eventRepository.server"; import { machinePresetFromName } from "~/v3/machinePresets.server"; -import { FINAL_ATTEMPT_STATUSES, isFailedRunStatus, isFinalRunStatus } from "~/v3/taskStatus"; -import { BasePresenter } from "./basePresenter.server"; -import { getMaxDuration } from "@trigger.dev/core/v3/isomorphic"; -import { logger } from "~/services/logger.server"; import { getTaskEventStoreTableForRun, TaskEventStoreTable } from "~/v3/taskEventStore.server"; -import { Pi } from "lucide-react"; +import { isFailedRunStatus, isFinalRunStatus } from "~/v3/taskStatus"; +import { BasePresenter } from "./basePresenter.server"; type Result = Awaited>; export type Span = NonNullable["span"]>; @@ -22,15 +19,11 @@ export type SpanRun = NonNullable["run"]>; export class SpanPresenter extends BasePresenter { public async call({ - userId, projectSlug, - organizationSlug, spanId, runFriendlyId, }: { - userId: string; projectSlug: string; - organizationSlug: string; spanId: string; runFriendlyId: string; }) { @@ -156,6 +149,7 @@ export class SpanPresenter extends BasePresenter { outputType: true, //status + duration status: true, + statusReason: true, startedAt: true, executedAt: true, createdAt: true, @@ -197,7 +191,6 @@ export class SpanPresenter extends BasePresenter { lockedBy: { select: { filePath: true, - exportName: true, }, }, //relationships @@ -275,7 +268,6 @@ export class SpanPresenter extends BasePresenter { task: { id: run.taskIdentifier, filePath: run.lockedBy?.filePath, - exportName: run.lockedBy?.exportName, }, run: { id: run.friendlyId, @@ -319,6 +311,7 @@ export class SpanPresenter extends BasePresenter { id: run.id, friendlyId: run.friendlyId, status: run.status, + statusReason: run.statusReason ?? undefined, createdAt: run.createdAt, startedAt: run.startedAt, executedAt: run.executedAt, diff --git a/apps/webapp/app/presenters/v3/TaskListPresenter.server.ts b/apps/webapp/app/presenters/v3/TaskListPresenter.server.ts index 8cba39eda3..5d869d0790 100644 --- a/apps/webapp/app/presenters/v3/TaskListPresenter.server.ts +++ b/apps/webapp/app/presenters/v3/TaskListPresenter.server.ts @@ -15,9 +15,8 @@ import { BasePresenter } from "./basePresenter.server"; import { TaskRunStatus } from "~/database-types"; import { CURRENT_DEPLOYMENT_LABEL } from "@trigger.dev/core/v3/isomorphic"; -export type Task = { +export type TaskListItem = { slug: string; - exportName: string; filePath: string; createdAt: Date; triggerSource: TaskTriggerSource; @@ -60,7 +59,6 @@ export class TaskListPresenter extends BasePresenter { { id: string; slug: string; - exportName: string; filePath: string; createdAt: Date; triggerSource: TaskTriggerSource; @@ -81,7 +79,7 @@ export class TaskListPresenter extends BasePresenter { OR id IN (SELECT id FROM non_dev_workers) ORDER BY "runtimeEnvironmentId", "createdAt" DESC ) - SELECT tasks.id, slug, "filePath", "exportName", "triggerSource", tasks."runtimeEnvironmentId", tasks."createdAt" + SELECT tasks.id, slug, "filePath", "triggerSource", tasks."runtimeEnvironmentId", tasks."createdAt" FROM workers JOIN ${sqlDatabaseSchema}."BackgroundWorkerTask" tasks ON tasks."workerId" = workers.id ORDER BY slug ASC;`; diff --git a/apps/webapp/app/presenters/v3/TaskPresenter.server.ts b/apps/webapp/app/presenters/v3/TaskPresenter.server.ts index 73ebbb9f74..671e92a445 100644 --- a/apps/webapp/app/presenters/v3/TaskPresenter.server.ts +++ b/apps/webapp/app/presenters/v3/TaskPresenter.server.ts @@ -24,7 +24,6 @@ export class TaskPresenter { id: true, slug: true, filePath: true, - exportName: true, friendlyId: true, createdAt: true, worker: { diff --git a/apps/webapp/app/presenters/v3/TestPresenter.server.ts b/apps/webapp/app/presenters/v3/TestPresenter.server.ts index a49d6b4269..23c181a8cb 100644 --- a/apps/webapp/app/presenters/v3/TestPresenter.server.ts +++ b/apps/webapp/app/presenters/v3/TestPresenter.server.ts @@ -24,7 +24,6 @@ export class TestPresenter extends BasePresenter { id: task.id, taskIdentifier: task.slug, filePath: task.filePath, - exportName: task.exportName, friendlyId: task.friendlyId, triggerSource: task.triggerSource, }; @@ -40,7 +39,6 @@ export class TestPresenter extends BasePresenter { version: string; slug: string; filePath: string; - exportName: string; friendlyId: string; triggerSource: TaskTriggerSource; }[] @@ -53,10 +51,10 @@ export class TestPresenter extends BasePresenter { WHERE "runtimeEnvironmentId" = ${envId} ), latest_workers AS (SELECT * FROM workers WHERE rn = 1) - SELECT bwt.id, version, slug, "filePath", "exportName", bwt."friendlyId", bwt."triggerSource" + SELECT bwt.id, version, slug, "filePath", bwt."friendlyId", bwt."triggerSource" FROM latest_workers JOIN ${sqlDatabaseSchema}."BackgroundWorkerTask" bwt ON bwt."workerId" = latest_workers.id - ORDER BY bwt."exportName" ASC;`; + ORDER BY slug ASC;`; } else { const currentDeployment = await findCurrentWorkerDeployment(envId); return currentDeployment?.worker?.tasks ?? []; diff --git a/apps/webapp/app/presenters/v3/TestTaskPresenter.server.ts b/apps/webapp/app/presenters/v3/TestTaskPresenter.server.ts index c384781768..f58a613a75 100644 --- a/apps/webapp/app/presenters/v3/TestTaskPresenter.server.ts +++ b/apps/webapp/app/presenters/v3/TestTaskPresenter.server.ts @@ -21,7 +21,6 @@ type Task = { id: string; taskIdentifier: string; filePath: string; - exportName: string; friendlyId: string; }; @@ -151,7 +150,6 @@ export class TestTaskPresenter { id: task.id, taskIdentifier: task.slug, filePath: task.filePath, - exportName: task.exportName, friendlyId: task.friendlyId, }; diff --git a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam._index/route.tsx b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam._index/route.tsx index 430d04e4d9..fbfcee5274 100644 --- a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam._index/route.tsx +++ b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam._index/route.tsx @@ -59,7 +59,7 @@ import { } from "~/components/primitives/Table"; import { SimpleTooltip } from "~/components/primitives/Tooltip"; import TooltipPortal from "~/components/primitives/TooltipPortal"; -import { TaskFunctionName } from "~/components/runs/v3/TaskPath"; +import { TaskFileName } from "~/components/runs/v3/TaskPath"; import { TaskRunStatusCombo } from "~/components/runs/v3/TaskRunStatus"; import { taskTriggerSourceDescription, @@ -71,8 +71,8 @@ import { useOrganization } from "~/hooks/useOrganizations"; import { useProject } from "~/hooks/useProject"; import { useTextFilter } from "~/hooks/useTextFilter"; import { - type Task, type TaskActivity, + type TaskListItem, TaskListPresenter, } from "~/presenters/v3/TaskListPresenter.server"; import { @@ -154,19 +154,13 @@ export default function Page() { const environment = useEnvironment(); const { tasks, activity, runningStats, durations, usefulLinksPreference } = useTypedLoaderData(); - const { filterText, setFilterText, filteredItems } = useTextFilter({ + const { filterText, setFilterText, filteredItems } = useTextFilter({ items: tasks, filter: (task, text) => { if (task.slug.toLowerCase().includes(text.toLowerCase())) { return true; } - if ( - task.exportName.toLowerCase().includes(text.toLowerCase().replace("(", "").replace(")", "")) - ) { - return true; - } - if (task.filePath.toLowerCase().includes(text.toLowerCase())) { return true; } @@ -213,7 +207,7 @@ export default function Page() { {tasks.map((task) => ( - {task.exportName} + {task.filePath} ))} @@ -258,7 +252,7 @@ export default function Page() { Task ID - Task + File Running Queued Activity (7d) @@ -289,8 +283,8 @@ export default function Page() {
- @@ -507,7 +501,7 @@ function TaskActivityGraph({ activity }: { activity: TaskActivity }) { isAnimationActive={false} /> - +
- {t.slug} diff --git a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.queues/route.tsx b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.queues/route.tsx index b6638f878d..faddc505ad 100644 --- a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.queues/route.tsx +++ b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.queues/route.tsx @@ -295,6 +295,32 @@ export default function Page() { Name Queued Running + + + When a task executing on this queue is paused and waiting for a + waitpoint to complete, the queue will release the concurrency being used + by the run so other runs can be started. + + + Read docs + +
+ } + > + Release on waitpoint + Concurrency limit Pause/resume @@ -354,6 +380,12 @@ export default function Page() { > {queue.running}
+ + {queue.releaseConcurrencyOnWaitpoint ? "Yes" : "No"} + ({ id: task.slug, - exportName: task.exportName, + exportName: task.exportName ?? "@deprecated", filePath: task.filePath, source: task.triggerSource, retryConfig: task.retryConfig, diff --git a/apps/webapp/app/routes/resources.orgs.$organizationSlug.projects.$projectParam.env.$envParam.runs.$runParam.spans.$spanParam/route.tsx b/apps/webapp/app/routes/resources.orgs.$organizationSlug.projects.$projectParam.env.$envParam.runs.$runParam.spans.$spanParam/route.tsx index 229aeb862e..046596e819 100644 --- a/apps/webapp/app/routes/resources.orgs.$organizationSlug.projects.$projectParam.env.$envParam.runs.$runParam.spans.$spanParam/route.tsx +++ b/apps/webapp/app/routes/resources.orgs.$organizationSlug.projects.$projectParam.env.$envParam.runs.$runParam.spans.$spanParam/route.tsx @@ -47,7 +47,7 @@ import { RunTag } from "~/components/runs/v3/RunTag"; import { SpanEvents } from "~/components/runs/v3/SpanEvents"; import { SpanTitle } from "~/components/runs/v3/SpanTitle"; import { TaskRunAttemptStatusCombo } from "~/components/runs/v3/TaskRunAttemptStatus"; -import { TaskRunStatusCombo } from "~/components/runs/v3/TaskRunStatus"; +import { TaskRunStatusCombo, TaskRunStatusReason } from "~/components/runs/v3/TaskRunStatus"; import { useOrganization } from "~/hooks/useOrganizations"; import { useProject } from "~/hooks/useProject"; import { useSearchParams } from "~/hooks/useSearchParam"; @@ -75,7 +75,6 @@ import { import { useEnvironment } from "~/hooks/useEnvironment"; export const loader = async ({ request, params }: LoaderFunctionArgs) => { - const userId = await requireUserId(request); const { projectParam, organizationSlug, envParam, runParam, spanParam } = v3SpanParamsSchema.parse(params); @@ -83,8 +82,6 @@ export const loader = async ({ request, params }: LoaderFunctionArgs) => { try { const result = await presenter.call({ - userId, - organizationSlug, projectSlug: projectParam, spanId: spanParam, runFriendlyId: runParam, @@ -715,8 +712,9 @@ function RunBody({
) : (
-
+
+
diff --git a/apps/webapp/app/routes/resources.runs.$runParam.ts b/apps/webapp/app/routes/resources.runs.$runParam.ts index 733557675e..7866ee9327 100644 --- a/apps/webapp/app/routes/resources.runs.$runParam.ts +++ b/apps/webapp/app/routes/resources.runs.$runParam.ts @@ -76,7 +76,6 @@ export const loader = async ({ request, params }: LoaderFunctionArgs) => { lockedBy: { select: { filePath: true, - exportName: true, }, }, }, @@ -150,7 +149,7 @@ export const loader = async ({ request, params }: LoaderFunctionArgs) => { task: { id: run.taskIdentifier, filePath: run.lockedBy?.filePath, - exportName: run.lockedBy?.exportName, + exportName: "@deprecated", }, run: { id: run.friendlyId, diff --git a/apps/webapp/app/v3/marqs/sharedQueueConsumer.server.ts b/apps/webapp/app/v3/marqs/sharedQueueConsumer.server.ts index a3adcefddb..c13e5062a0 100644 --- a/apps/webapp/app/v3/marqs/sharedQueueConsumer.server.ts +++ b/apps/webapp/app/v3/marqs/sharedQueueConsumer.server.ts @@ -1688,7 +1688,7 @@ class SharedQueueTasks { task: { id: backgroundWorkerTask.slug, filePath: backgroundWorkerTask.filePath, - exportName: backgroundWorkerTask.exportName, + exportName: backgroundWorkerTask.exportName ?? backgroundWorkerTask.slug, }, attempt: { id: attempt.friendlyId, diff --git a/apps/webapp/app/v3/otlpExporter.server.ts b/apps/webapp/app/v3/otlpExporter.server.ts index cfee68e88f..616bac9199 100644 --- a/apps/webapp/app/v3/otlpExporter.server.ts +++ b/apps/webapp/app/v3/otlpExporter.server.ts @@ -382,7 +382,7 @@ function extractResourceProperties(attributes: KeyValue[]) { attemptNumber: extractNumberAttribute(attributes, SemanticInternalAttributes.ATTEMPT_NUMBER), taskSlug: extractStringAttribute(attributes, SemanticInternalAttributes.TASK_SLUG, "unknown"), taskPath: extractStringAttribute(attributes, SemanticInternalAttributes.TASK_PATH), - taskExportName: extractStringAttribute(attributes, SemanticInternalAttributes.TASK_EXPORT_NAME), + taskExportName: "@deprecated", workerId: extractStringAttribute(attributes, SemanticInternalAttributes.WORKER_ID), workerVersion: extractStringAttribute(attributes, SemanticInternalAttributes.WORKER_VERSION), queueId: extractStringAttribute(attributes, SemanticInternalAttributes.QUEUE_ID), diff --git a/apps/webapp/app/v3/services/alerts/deliverAlert.server.ts b/apps/webapp/app/v3/services/alerts/deliverAlert.server.ts index 5eff1a6c54..4297f6a72b 100644 --- a/apps/webapp/app/v3/services/alerts/deliverAlert.server.ts +++ b/apps/webapp/app/v3/services/alerts/deliverAlert.server.ts @@ -573,7 +573,7 @@ export class DeliverAlertService extends BaseService { alert.workerDeployment.worker?.tasks.map((task) => ({ id: task.slug, filePath: task.filePath, - exportName: task.exportName, + exportName: task.exportName ?? "@deprecated", triggerSource: task.triggerSource, })) ?? [], environment: { diff --git a/apps/webapp/app/v3/services/createBackgroundWorker.server.ts b/apps/webapp/app/v3/services/createBackgroundWorker.server.ts index d66f1102de..9daa4ed0a5 100644 --- a/apps/webapp/app/v3/services/createBackgroundWorker.server.ts +++ b/apps/webapp/app/v3/services/createBackgroundWorker.server.ts @@ -1,28 +1,31 @@ import { + BackgroundWorkerMetadata, BackgroundWorkerSourceFileMetadata, CreateBackgroundWorkerRequestBody, + QueueManifest, TaskResource, } from "@trigger.dev/core/v3"; -import type { BackgroundWorker } from "@trigger.dev/database"; +import { BackgroundWorkerId } from "@trigger.dev/core/v3/isomorphic"; +import type { BackgroundWorker, TaskQueue, TaskQueueType } from "@trigger.dev/database"; +import cronstrue from "cronstrue"; import { Prisma, PrismaClientOrTransaction } from "~/db.server"; +import { sanitizeQueueName } from "~/models/taskQueue.server"; import { AuthenticatedEnvironment } from "~/services/apiAuth.server"; import { logger } from "~/services/logger.server"; -import { marqs } from "~/v3/marqs/index.server"; import { generateFriendlyId } from "../friendlyIdentifiers"; -import { calculateNextBuildVersion } from "../utils/calculateNextBuildVersion"; -import { BaseService } from "./baseService.server"; -import { projectPubSub } from "./projectPubSub.server"; -import { RegisterNextTaskScheduleInstanceService } from "./registerNextTaskScheduleInstance.server"; -import cronstrue from "cronstrue"; -import { CheckScheduleService } from "./checkSchedule.server"; -import { clampMaxDuration } from "../utils/maxDuration"; import { removeQueueConcurrencyLimits, updateEnvConcurrencyLimits, updateQueueConcurrencyLimits, } from "../runQueue.server"; -import { BackgroundWorkerId } from "@trigger.dev/core/v3/isomorphic"; -import { sanitizeQueueName } from "~/models/taskQueue.server"; +import { calculateNextBuildVersion } from "../utils/calculateNextBuildVersion"; +import { clampMaxDuration } from "../utils/maxDuration"; +import { BaseService, ServiceValidationError } from "./baseService.server"; +import { CheckScheduleService } from "./checkSchedule.server"; +import { projectPubSub } from "./projectPubSub.server"; +import { RegisterNextTaskScheduleInstanceService } from "./registerNextTaskScheduleInstance.server"; +import { tryCatch } from "@trigger.dev/core/v3"; +import { engine } from "../runEngine.server"; export class CreateBackgroundWorkerService extends BaseService { public async call( @@ -95,58 +98,97 @@ export class CreateBackgroundWorkerService extends BaseService { }); } - const tasksToBackgroundFiles = await createBackgroundFiles( - body.metadata.sourceFiles, - backgroundWorker, - environment, - this._prisma + const [filesError, tasksToBackgroundFiles] = await tryCatch( + createBackgroundFiles( + body.metadata.sourceFiles, + backgroundWorker, + environment, + this._prisma + ) ); - await createBackgroundTasks( - body.metadata.tasks, - backgroundWorker, - environment, - this._prisma, - tasksToBackgroundFiles + + if (filesError) { + logger.error("Error creating background worker files", { + error: filesError, + backgroundWorker, + environment, + }); + + throw new ServiceValidationError("Error creating background worker files"); + } + + const [resourcesError] = await tryCatch( + createWorkerResources( + body.metadata, + backgroundWorker, + environment, + this._prisma, + tasksToBackgroundFiles + ) ); - await syncDeclarativeSchedules( - body.metadata.tasks, - backgroundWorker, - environment, - this._prisma + + if (resourcesError) { + logger.error("Error creating worker resources", { + error: resourcesError, + backgroundWorker, + environment, + }); + throw new ServiceValidationError("Error creating worker resources"); + } + + const [schedulesError] = await tryCatch( + syncDeclarativeSchedules(body.metadata.tasks, backgroundWorker, environment, this._prisma) ); - try { - //send a notification that a new worker has been created - await projectPubSub.publish( - `project:${project.id}:env:${environment.id}`, - "WORKER_CREATED", - { - environmentId: environment.id, - environmentType: environment.type, - createdAt: backgroundWorker.createdAt, - taskCount: body.metadata.tasks.length, - type: "local", - } - ); + if (schedulesError) { + logger.error("Error syncing declarative schedules", { + error: schedulesError, + backgroundWorker, + environment, + }); + throw new ServiceValidationError("Error syncing declarative schedules"); + } + + const [updateConcurrencyLimitsError] = await tryCatch( + updateEnvConcurrencyLimits(environment) + ); + + if (updateConcurrencyLimitsError) { + logger.error("Error updating environment concurrency limits", { + error: updateConcurrencyLimitsError, + backgroundWorker, + environment, + }); + } + + const [publishError] = await tryCatch( + projectPubSub.publish(`project:${project.id}:env:${environment.id}`, "WORKER_CREATED", { + environmentId: environment.id, + environmentType: environment.type, + createdAt: backgroundWorker.createdAt, + taskCount: body.metadata.tasks.length, + type: "local", + }) + ); - await updateEnvConcurrencyLimits(environment); - } catch (err) { - logger.error( - "Error publishing WORKER_CREATED event or updating global concurrency limits", - { - error: - err instanceof Error - ? { - name: err.name, - message: err.message, - stack: err.stack, - } - : err, - project, - environment, - backgroundWorker, - } + if (publishError) { + logger.error("Error publishing WORKER_CREATED event", { + error: publishError, + backgroundWorker, + environment, + }); + } + + if (backgroundWorker.engine === "V2") { + const [schedulePendingVersionsError] = await tryCatch( + engine.scheduleEnqueueRunsForBackgroundWorker(backgroundWorker.id) ); + + if (schedulePendingVersionsError) { + logger.error("Error scheduling pending versions", { + error: schedulePendingVersionsError, + }); + } } return backgroundWorker; @@ -154,135 +196,234 @@ export class CreateBackgroundWorkerService extends BaseService { } } -export async function createBackgroundTasks( - tasks: TaskResource[], +export async function createWorkerResources( + metadata: BackgroundWorkerMetadata, worker: BackgroundWorker, environment: AuthenticatedEnvironment, prisma: PrismaClientOrTransaction, tasksToBackgroundFiles?: Map ) { - for (const task of tasks) { - try { - await prisma.backgroundWorkerTask.create({ - data: { - friendlyId: generateFriendlyId("task"), - projectId: worker.projectId, - runtimeEnvironmentId: worker.runtimeEnvironmentId, - workerId: worker.id, - slug: task.id, - description: task.description, - filePath: task.filePath, - exportName: task.exportName, - retryConfig: task.retry, - queueConfig: task.queue, - machineConfig: task.machine, - triggerSource: task.triggerSource === "schedule" ? "SCHEDULED" : "STANDARD", - fileId: tasksToBackgroundFiles?.get(task.id) ?? null, - maxDurationInSeconds: task.maxDuration ? clampMaxDuration(task.maxDuration) : null, - }, - }); + // Create the queues + const queues = await createWorkerQueues(metadata, worker, environment, prisma); - let queueName = sanitizeQueueName(task.queue?.name ?? `task/${task.id}`); + // Create the tasks + await createWorkerTasks(metadata, queues, worker, environment, prisma, tasksToBackgroundFiles); +} - // Check that the queuename is not an empty string - if (!queueName) { - queueName = sanitizeQueueName(`task/${task.id}`); - } +async function createWorkerTasks( + metadata: BackgroundWorkerMetadata, + queues: Array, + worker: BackgroundWorker, + environment: AuthenticatedEnvironment, + prisma: PrismaClientOrTransaction, + tasksToBackgroundFiles?: Map +) { + // Create tasks in chunks of 20 + const CHUNK_SIZE = 20; + for (let i = 0; i < metadata.tasks.length; i += CHUNK_SIZE) { + const chunk = metadata.tasks.slice(i, i + CHUNK_SIZE); + await Promise.all( + chunk.map((task) => + createWorkerTask(task, queues, worker, environment, prisma, tasksToBackgroundFiles) + ) + ); + } +} - const concurrencyLimit = - typeof task.queue?.concurrencyLimit === "number" - ? Math.max( - Math.min( - task.queue.concurrencyLimit, - environment.maximumConcurrencyLimit, - environment.organization.maximumConcurrencyLimit - ), - 0 - ) - : task.queue?.concurrencyLimit; - - let taskQueue = await prisma.taskQueue.findFirst({ - where: { - runtimeEnvironmentId: worker.runtimeEnvironmentId, - name: queueName, +async function createWorkerTask( + task: TaskResource, + queues: Array, + worker: BackgroundWorker, + environment: AuthenticatedEnvironment, + prisma: PrismaClientOrTransaction, + tasksToBackgroundFiles?: Map +) { + try { + let queue = queues.find((queue) => queue.name === task.queue?.name); + + if (!queue) { + // Create a TaskQueue + queue = await createWorkerQueue( + { + name: `task/${task.id}`, }, - }); - - if (!taskQueue) { - taskQueue = await prisma.taskQueue.create({ - data: { - friendlyId: generateFriendlyId("queue"), - name: queueName, - concurrencyLimit, - runtimeEnvironmentId: worker.runtimeEnvironmentId, - projectId: worker.projectId, - type: task.queue?.name ? "NAMED" : "VIRTUAL", - }, - }); - } + task.id, + "VIRTUAL", + worker, + environment, + prisma + ); + } - if (typeof concurrencyLimit === "number") { - logger.debug("CreateBackgroundWorkerService: updating concurrency limit", { - workerId: worker.id, - taskQueue, - orgId: environment.organizationId, - projectId: environment.projectId, - environmentId: environment.id, - concurrencyLimit, - taskidentifier: task.id, + await prisma.backgroundWorkerTask.create({ + data: { + friendlyId: generateFriendlyId("task"), + projectId: worker.projectId, + runtimeEnvironmentId: worker.runtimeEnvironmentId, + workerId: worker.id, + slug: task.id, + description: task.description, + filePath: task.filePath, + exportName: task.exportName, + retryConfig: task.retry, + queueConfig: task.queue, + machineConfig: task.machine, + triggerSource: task.triggerSource === "schedule" ? "SCHEDULED" : "STANDARD", + fileId: tasksToBackgroundFiles?.get(task.id) ?? null, + maxDurationInSeconds: task.maxDuration ? clampMaxDuration(task.maxDuration) : null, + queueId: queue.id, + }, + }); + } catch (error) { + if (error instanceof Prisma.PrismaClientKnownRequestError) { + // The error code for unique constraint violation in Prisma is P2002 + if (error.code === "P2002") { + logger.warn("Task already exists", { + task, + worker, }); - await updateQueueConcurrencyLimits(environment, taskQueue.name, concurrencyLimit); } else { - logger.debug("CreateBackgroundWorkerService: removing concurrency limit", { - workerId: worker.id, - taskQueue, - orgId: environment.organizationId, - projectId: environment.projectId, - environmentId: environment.id, - concurrencyLimit, - taskidentifier: task.id, - }); - await removeQueueConcurrencyLimits(environment, taskQueue.name); - } - } catch (error) { - if (error instanceof Prisma.PrismaClientKnownRequestError) { - // The error code for unique constraint violation in Prisma is P2002 - if (error.code === "P2002") { - logger.warn("Task already exists", { - task, - worker, - }); - } else { - logger.error("Prisma Error creating background worker task", { - error: { - code: error.code, - message: error.message, - }, - task, - worker, - }); - } - } else if (error instanceof Error) { - logger.error("Error creating background worker task", { + logger.error("Prisma Error creating background worker task", { error: { - name: error.name, + code: error.code, message: error.message, - stack: error.stack, }, task, worker, }); - } else { - logger.error("Unknown error creating background worker task", { - error, - task, - worker, - }); } + } else if (error instanceof Error) { + logger.error("Error creating background worker task", { + error: { + name: error.name, + message: error.message, + stack: error.stack, + }, + task, + worker, + }); + } else { + logger.error("Unknown error creating background worker task", { + error, + task, + worker, + }); } } } +async function createWorkerQueues( + metadata: BackgroundWorkerMetadata, + worker: BackgroundWorker, + environment: AuthenticatedEnvironment, + prisma: PrismaClientOrTransaction +) { + if (!metadata.queues) { + return []; + } + + const CHUNK_SIZE = 20; + const allQueues: Awaited>[] = []; + + // Process queues in chunks + for (let i = 0; i < metadata.queues.length; i += CHUNK_SIZE) { + const chunk = metadata.queues.slice(i, i + CHUNK_SIZE); + const queueChunk = await Promise.all( + chunk.map(async (queue) => { + return createWorkerQueue(queue, queue.name, "NAMED", worker, environment, prisma); + }) + ); + allQueues.push(...queueChunk.filter(Boolean)); + } + + return allQueues; +} + +async function createWorkerQueue( + queue: QueueManifest, + orderableName: string, + queueType: TaskQueueType, + worker: BackgroundWorker, + environment: AuthenticatedEnvironment, + prisma: PrismaClientOrTransaction +) { + let queueName = sanitizeQueueName(queue.name); + + const concurrencyLimit = + typeof queue.concurrencyLimit === "number" + ? Math.max( + Math.min( + queue.concurrencyLimit, + environment.maximumConcurrencyLimit, + environment.organization.maximumConcurrencyLimit + ), + 0 + ) + : queue.concurrencyLimit; + + let taskQueue = await prisma.taskQueue.findFirst({ + where: { + runtimeEnvironmentId: worker.runtimeEnvironmentId, + name: queueName, + }, + }); + + if (!taskQueue) { + taskQueue = await prisma.taskQueue.create({ + data: { + friendlyId: generateFriendlyId("queue"), + version: "V2", + name: queueName, + orderableName, + concurrencyLimit, + runtimeEnvironmentId: worker.runtimeEnvironmentId, + projectId: worker.projectId, + type: queueType, + workers: { + connect: { + id: worker.id, + }, + }, + }, + }); + } else { + await prisma.taskQueue.update({ + where: { + id: taskQueue.id, + }, + data: { + workers: { connect: { id: worker.id } }, + version: "V2", + orderableName, + }, + }); + } + + if (typeof concurrencyLimit === "number") { + logger.debug("createWorkerQueue: updating concurrency limit", { + workerId: worker.id, + taskQueue, + orgId: environment.organizationId, + projectId: environment.projectId, + environmentId: environment.id, + concurrencyLimit, + }); + await updateQueueConcurrencyLimits(environment, taskQueue.name, concurrencyLimit); + } else { + logger.debug("createWorkerQueue: removing concurrency limit", { + workerId: worker.id, + taskQueue, + orgId: environment.organizationId, + projectId: environment.projectId, + environmentId: environment.id, + concurrencyLimit, + }); + await removeQueueConcurrencyLimits(environment, taskQueue.name); + } + + return taskQueue; +} + //CreateDeclarativeScheduleError with a message export class CreateDeclarativeScheduleError extends Error { constructor(message: string) { diff --git a/apps/webapp/app/v3/services/createDeployedBackgroundWorker.server.ts b/apps/webapp/app/v3/services/createDeployedBackgroundWorker.server.ts index d3ff4e6c72..4ec6b7f56e 100644 --- a/apps/webapp/app/v3/services/createDeployedBackgroundWorker.server.ts +++ b/apps/webapp/app/v3/services/createDeployedBackgroundWorker.server.ts @@ -6,7 +6,7 @@ import { socketIo } from "../handleSocketIo.server"; import { updateEnvConcurrencyLimits } from "../runQueue.server"; import { PerformDeploymentAlertsService } from "./alerts/performDeploymentAlerts.server"; import { BaseService } from "./baseService.server"; -import { createBackgroundTasks, syncDeclarativeSchedules } from "./createBackgroundWorker.server"; +import { createWorkerResources, syncDeclarativeSchedules } from "./createBackgroundWorker.server"; import { ExecuteTasksWaitingForDeployService } from "./executeTasksWaitingForDeploy"; import { projectPubSub } from "./projectPubSub.server"; import { TimeoutDeploymentService } from "./timeoutDeployment.server"; @@ -64,12 +64,7 @@ export class CreateDeployedBackgroundWorkerService extends BaseService { } try { - await createBackgroundTasks( - body.metadata.tasks, - backgroundWorker, - environment, - this._prisma - ); + await createWorkerResources(body.metadata, backgroundWorker, environment, this._prisma); await syncDeclarativeSchedules( body.metadata.tasks, backgroundWorker, diff --git a/apps/webapp/app/v3/services/createDeploymentBackgroundWorker.server.ts b/apps/webapp/app/v3/services/createDeploymentBackgroundWorker.server.ts index e502e1cdaa..e85a59804f 100644 --- a/apps/webapp/app/v3/services/createDeploymentBackgroundWorker.server.ts +++ b/apps/webapp/app/v3/services/createDeploymentBackgroundWorker.server.ts @@ -1,15 +1,14 @@ -import { CreateBackgroundWorkerRequestBody } from "@trigger.dev/core/v3"; -import type { BackgroundWorker } from "@trigger.dev/database"; +import { CreateBackgroundWorkerRequestBody, logger, tryCatch } from "@trigger.dev/core/v3"; +import { BackgroundWorkerId } from "@trigger.dev/core/v3/isomorphic"; +import type { BackgroundWorker, WorkerDeployment } from "@trigger.dev/database"; import { AuthenticatedEnvironment } from "~/services/apiAuth.server"; -import { generateFriendlyId } from "../friendlyIdentifiers"; -import { BaseService } from "./baseService.server"; +import { BaseService, ServiceValidationError } from "./baseService.server"; import { createBackgroundFiles, - createBackgroundTasks, + createWorkerResources, syncDeclarativeSchedules, } from "./createBackgroundWorker.server"; import { TimeoutDeploymentService } from "./timeoutDeployment.server"; -import { BackgroundWorkerId } from "@trigger.dev/core/v3/isomorphic"; export class CreateDeploymentBackgroundWorkerService extends BaseService { public async call( @@ -61,45 +60,65 @@ export class CreateDeploymentBackgroundWorkerService extends BaseService { }); } - try { - const tasksToBackgroundFiles = await createBackgroundFiles( + const [filesError, tasksToBackgroundFiles] = await tryCatch( + createBackgroundFiles( body.metadata.sourceFiles, backgroundWorker, environment, this._prisma - ); - await createBackgroundTasks( - body.metadata.tasks, + ) + ); + + if (filesError) { + logger.error("Error creating background worker files", { + error: filesError, + }); + + const serviceError = new ServiceValidationError("Error creating background worker files"); + + await this.#failBackgroundWorkerDeployment(deployment, serviceError); + + throw serviceError; + } + + const [resourcesError] = await tryCatch( + createWorkerResources( + body.metadata, backgroundWorker, environment, this._prisma, tasksToBackgroundFiles + ) + ); + + if (resourcesError) { + logger.error("Error creating background worker resources", { + error: resourcesError, + }); + + const serviceError = new ServiceValidationError( + "Error creating background worker resources" ); - await syncDeclarativeSchedules( - body.metadata.tasks, - backgroundWorker, - environment, - this._prisma - ); - } catch (error) { - const name = error instanceof Error ? error.name : "UnknownError"; - const message = error instanceof Error ? error.message : JSON.stringify(error); - await this._prisma.workerDeployment.update({ - where: { - id: deployment.id, - }, - data: { - status: "FAILED", - failedAt: new Date(), - errorData: { - name, - message, - }, - }, + await this.#failBackgroundWorkerDeployment(deployment, serviceError); + + throw serviceError; + } + + const [schedulesError] = await tryCatch( + syncDeclarativeSchedules(body.metadata.tasks, backgroundWorker, environment, this._prisma) + ); + + if (schedulesError) { + logger.error("Error syncing declarative schedules", { + error: schedulesError, }); - throw error; + const serviceError = new ServiceValidationError("Error syncing declarative schedules"); + + await this.#failBackgroundWorkerDeployment(deployment, serviceError); + + throw serviceError; } // Link the deployment with the background worker @@ -119,4 +138,24 @@ export class CreateDeploymentBackgroundWorkerService extends BaseService { return backgroundWorker; }); } + + async #failBackgroundWorkerDeployment(deployment: WorkerDeployment, error: Error) { + await this._prisma.workerDeployment.update({ + where: { + id: deployment.id, + }, + data: { + status: "FAILED", + failedAt: new Date(), + errorData: { + name: error.name, + message: error.message, + }, + }, + }); + + await TimeoutDeploymentService.dequeue(deployment.id, this._prisma); + + throw error; + } } diff --git a/apps/webapp/app/v3/services/createTaskRunAttempt.server.ts b/apps/webapp/app/v3/services/createTaskRunAttempt.server.ts index e259378268..f8cad4fbf7 100644 --- a/apps/webapp/app/v3/services/createTaskRunAttempt.server.ts +++ b/apps/webapp/app/v3/services/createTaskRunAttempt.server.ts @@ -192,7 +192,7 @@ export class CreateTaskRunAttemptService extends BaseService { task: { id: lockedBy.slug, filePath: lockedBy.filePath, - exportName: lockedBy.exportName, + exportName: lockedBy.exportName ?? "@deprecated", }, attempt: { id: taskRunAttempt.friendlyId, diff --git a/apps/webapp/app/v3/services/pauseEnvironment.server.ts b/apps/webapp/app/v3/services/pauseEnvironment.server.ts index a3e029e565..de0216989d 100644 --- a/apps/webapp/app/v3/services/pauseEnvironment.server.ts +++ b/apps/webapp/app/v3/services/pauseEnvironment.server.ts @@ -1,9 +1,9 @@ -import { type AuthenticatedEnvironment } from "@internal/testcontainers"; import { type PrismaClientOrTransaction } from "@trigger.dev/database"; import { prisma } from "~/db.server"; import { logger } from "~/services/logger.server"; import { updateEnvConcurrencyLimits } from "../runQueue.server"; import { WithRunEngine } from "./baseService.server"; +import { AuthenticatedEnvironment } from "~/services/apiAuth.server"; export type PauseStatus = "paused" | "resumed"; diff --git a/apps/webapp/app/v3/services/pauseQueue.server.ts b/apps/webapp/app/v3/services/pauseQueue.server.ts index f4e18eab4b..529756bed8 100644 --- a/apps/webapp/app/v3/services/pauseQueue.server.ts +++ b/apps/webapp/app/v3/services/pauseQueue.server.ts @@ -89,6 +89,7 @@ export class PauseQueueService extends BaseService { queued: results[0]?.[updatedQueue.name] ?? 0, concurrencyLimit: updatedQueue.concurrencyLimit ?? null, paused: updatedQueue.paused, + releaseConcurrencyOnWaitpoint: updatedQueue.releaseConcurrencyOnWaitpoint, }), }; } catch (error) { diff --git a/apps/webapp/app/v3/services/triggerTaskV1.server.ts b/apps/webapp/app/v3/services/triggerTaskV1.server.ts index c8d85465d4..16038f9ddf 100644 --- a/apps/webapp/app/v3/services/triggerTaskV1.server.ts +++ b/apps/webapp/app/v3/services/triggerTaskV1.server.ts @@ -1,7 +1,6 @@ import { IOPacket, packetRequiresOffloading, - QueueOptions, SemanticInternalAttributes, taskRunErrorToString, taskRunErrorEnhancer, @@ -43,6 +42,13 @@ import { } from "./triggerTask.server"; import { getTaskEventStore } from "../taskEventStore.server"; import { enqueueRun } from "./enqueueRun.server"; +import { z } from "zod"; + +// This is here for backwords compatibility for v3 users +const QueueOptions = z.object({ + name: z.string(), + concurrencyLimit: z.number().int().optional(), +}); /** @deprecated Use TriggerTaskService in `triggerTask.server.ts` instead. */ export class TriggerTaskServiceV1 extends BaseService { diff --git a/apps/webapp/app/v3/services/triggerTaskV2.server.ts b/apps/webapp/app/v3/services/triggerTaskV2.server.ts index 4a3c5efe57..d7bc8b9f6a 100644 --- a/apps/webapp/app/v3/services/triggerTaskV2.server.ts +++ b/apps/webapp/app/v3/services/triggerTaskV2.server.ts @@ -2,7 +2,6 @@ import { RunEngine, RunDuplicateIdempotencyKeyError } from "@internal/run-engine import { IOPacket, packetRequiresOffloading, - QueueOptions, SemanticInternalAttributes, TaskRunError, taskRunErrorEnhancer, @@ -343,8 +342,7 @@ export class TriggerTaskServiceV2 extends WithRunEngine { sdkVersion: lockedToBackgroundWorker?.sdkVersion, cliVersion: lockedToBackgroundWorker?.cliVersion, concurrencyKey: body.options?.concurrencyKey, - queueName, - queue: body.options?.queue, + queue: queueName, masterQueue: masterQueue, isTest: body.options?.test ?? false, delayUntil, @@ -492,6 +490,9 @@ export class TriggerTaskServiceV2 extends WithRunEngine { workerId: worker.id, slug: taskId, }, + include: { + queue: true, + }, }); if (!task) { @@ -503,10 +504,8 @@ export class TriggerTaskServiceV2 extends WithRunEngine { return defaultQueueName; } - const queueConfig = QueueOptions.optional().nullable().safeParse(task.queueConfig); - - if (!queueConfig.success) { - console.log("Failed to get queue name: Invalid queue config", { + if (!task.queue) { + console.log("Failed to get queue name: No queue found", { taskId, environmentId: environment.id, queueConfig: task.queueConfig, @@ -515,7 +514,7 @@ export class TriggerTaskServiceV2 extends WithRunEngine { return defaultQueueName; } - return queueConfig.data?.name ?? defaultQueueName; + return task.queue.name ?? defaultQueueName; } async #handlePayloadPacket( diff --git a/apps/webapp/app/v3/taskRunHeartbeatFailed.server.ts b/apps/webapp/app/v3/taskRunHeartbeatFailed.server.ts index fa564c06b8..8c1c4a7e39 100644 --- a/apps/webapp/app/v3/taskRunHeartbeatFailed.server.ts +++ b/apps/webapp/app/v3/taskRunHeartbeatFailed.server.ts @@ -98,6 +98,7 @@ export class TaskRunHeartbeatFailedService extends BaseService { break; } case "DELAYED": + case "PENDING_VERSION": case "WAITING_FOR_DEPLOY": { logger.debug( `[TaskRunHeartbeatFailedService] ${taskRun.status} Removing task run from queue`, diff --git a/apps/webapp/app/v3/taskStatus.ts b/apps/webapp/app/v3/taskStatus.ts index a360bde091..6b276bfc00 100644 --- a/apps/webapp/app/v3/taskStatus.ts +++ b/apps/webapp/app/v3/taskStatus.ts @@ -16,6 +16,7 @@ export type FINAL_RUN_STATUSES = (typeof FINAL_RUN_STATUSES)[number]; export const NON_FINAL_RUN_STATUSES = [ "DELAYED", "PENDING", + "PENDING_VERSION", "WAITING_FOR_DEPLOY", "EXECUTING", "WAITING_TO_RESUME", @@ -25,6 +26,14 @@ export const NON_FINAL_RUN_STATUSES = [ export type NON_FINAL_RUN_STATUSES = (typeof NON_FINAL_RUN_STATUSES)[number]; +export const PENDING_STATUSES = [ + "PENDING", + "PENDING_VERSION", + "WAITING_FOR_DEPLOY", +] satisfies TaskRunStatus[]; + +export type PENDING_STATUSES = (typeof PENDING_STATUSES)[number]; + export const FINAL_ATTEMPT_STATUSES = [ "FAILED", "CANCELED", @@ -91,6 +100,10 @@ export function isCancellableAttemptStatus(status: TaskRunAttemptStatus): boolea return CANCELLABLE_ATTEMPT_STATUSES.includes(status); } +export function isPendingRunStatus(status: TaskRunStatus): boolean { + return PENDING_STATUSES.includes(status); +} + export function isCrashableRunStatus(status: TaskRunStatus): boolean { return CRASHABLE_RUN_STATUSES.includes(status); } diff --git a/docs/v3-openapi.yaml b/docs/v3-openapi.yaml index 1cc92a1740..b94280419b 100644 --- a/docs/v3-openapi.yaml +++ b/docs/v3-openapi.yaml @@ -1677,7 +1677,7 @@ components: type: string description: The status of the run enum: - - WAITING_FOR_DEPLOY + - PENDING_VERSION - QUEUED - EXECUTING - REATTEMPTING @@ -1752,7 +1752,7 @@ components: type: string description: The status of the run enum: - - WAITING_FOR_DEPLOY + - PENDING_VERSION - QUEUED - EXECUTING - REATTEMPTING @@ -1947,8 +1947,8 @@ components: type: string description: The status of the run enum: + - PENDING_VERSION - DELAYED - - WAITING_FOR_DEPLOY - QUEUED - EXECUTING - REATTEMPTING diff --git a/internal-packages/database/prisma/migrations/20250319222954_add_task_queue_indexing_columns_for_v2/migration.sql b/internal-packages/database/prisma/migrations/20250319222954_add_task_queue_indexing_columns_for_v2/migration.sql new file mode 100644 index 0000000000..c512d6774d --- /dev/null +++ b/internal-packages/database/prisma/migrations/20250319222954_add_task_queue_indexing_columns_for_v2/migration.sql @@ -0,0 +1,10 @@ +-- CreateEnum +CREATE TYPE "TaskQueueVersion" AS ENUM ('V1', 'V2'); + +-- AlterTable +ALTER TABLE + "TaskQueue" +ADD + COLUMN "orderableName" TEXT, +ADD + COLUMN "version" "TaskQueueVersion" NOT NULL DEFAULT 'V1'; \ No newline at end of file diff --git a/internal-packages/database/prisma/migrations/20250320085824_add_queue_to_background_worker_task/migration.sql b/internal-packages/database/prisma/migrations/20250320085824_add_queue_to_background_worker_task/migration.sql new file mode 100644 index 0000000000..d6b8171a2c --- /dev/null +++ b/internal-packages/database/prisma/migrations/20250320085824_add_queue_to_background_worker_task/migration.sql @@ -0,0 +1,15 @@ +-- AlterTable +ALTER TABLE + "BackgroundWorkerTask" +ADD + COLUMN "queueId" TEXT, +ALTER COLUMN + "exportName" DROP NOT NULL; + +-- AddForeignKey +ALTER TABLE + "BackgroundWorkerTask" +ADD + CONSTRAINT "BackgroundWorkerTask_queueId_fkey" FOREIGN KEY ("queueId") REFERENCES "TaskQueue"("id") ON DELETE +SET + NULL ON UPDATE CASCADE; \ No newline at end of file diff --git a/internal-packages/database/prisma/migrations/20250320111737_add_pending_version_task_run_status/migration.sql b/internal-packages/database/prisma/migrations/20250320111737_add_pending_version_task_run_status/migration.sql new file mode 100644 index 0000000000..82db748774 --- /dev/null +++ b/internal-packages/database/prisma/migrations/20250320111737_add_pending_version_task_run_status/migration.sql @@ -0,0 +1,4 @@ +-- AlterEnum +ALTER TYPE "TaskRunStatus" +ADD + VALUE 'PENDING_VERSION'; \ No newline at end of file diff --git a/internal-packages/database/prisma/migrations/20250320130354_add_many_to_many_relationship_task_queue_background_worker/migration.sql b/internal-packages/database/prisma/migrations/20250320130354_add_many_to_many_relationship_task_queue_background_worker/migration.sql new file mode 100644 index 0000000000..19360f89b7 --- /dev/null +++ b/internal-packages/database/prisma/migrations/20250320130354_add_many_to_many_relationship_task_queue_background_worker/migration.sql @@ -0,0 +1,20 @@ +-- CreateTable +CREATE TABLE "_BackgroundWorkerToTaskQueue" ("A" TEXT NOT NULL, "B" TEXT NOT NULL); + +-- CreateIndex +CREATE UNIQUE INDEX "_BackgroundWorkerToTaskQueue_AB_unique" ON "_BackgroundWorkerToTaskQueue"("A", "B"); + +-- CreateIndex +CREATE INDEX "_BackgroundWorkerToTaskQueue_B_index" ON "_BackgroundWorkerToTaskQueue"("B"); + +-- AddForeignKey +ALTER TABLE + "_BackgroundWorkerToTaskQueue" +ADD + CONSTRAINT "_BackgroundWorkerToTaskQueue_A_fkey" FOREIGN KEY ("A") REFERENCES "BackgroundWorker"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE + "_BackgroundWorkerToTaskQueue" +ADD + CONSTRAINT "_BackgroundWorkerToTaskQueue_B_fkey" FOREIGN KEY ("B") REFERENCES "TaskQueue"("id") ON DELETE CASCADE ON UPDATE CASCADE; \ No newline at end of file diff --git a/internal-packages/database/prisma/migrations/20250320223742_add_status_reason_to_task_run/migration.sql b/internal-packages/database/prisma/migrations/20250320223742_add_status_reason_to_task_run/migration.sql new file mode 100644 index 0000000000..451e297e62 --- /dev/null +++ b/internal-packages/database/prisma/migrations/20250320223742_add_status_reason_to_task_run/migration.sql @@ -0,0 +1,5 @@ +-- AlterTable +ALTER TABLE + "TaskRun" +ADD + COLUMN "statusReason" TEXT; \ No newline at end of file diff --git a/internal-packages/database/prisma/schema.prisma b/internal-packages/database/prisma/schema.prisma index 8b92c6448b..7073b1a823 100644 --- a/internal-packages/database/prisma/schema.prisma +++ b/internal-packages/database/prisma/schema.prisma @@ -1614,6 +1614,7 @@ model BackgroundWorker { attempts TaskRunAttempt[] lockedRuns TaskRun[] files BackgroundWorkerFile[] + queues TaskQueue[] deployment WorkerDeployment? @@ -1656,7 +1657,7 @@ model BackgroundWorkerTask { friendlyId String @unique filePath String - exportName String + exportName String? worker BackgroundWorker @relation(fields: [workerId], references: [id], onDelete: Cascade, onUpdate: Cascade) workerId String @@ -1680,6 +1681,9 @@ model BackgroundWorkerTask { retryConfig Json? machineConfig Json? + queueId String? + queue TaskQueue? @relation(fields: [queueId], references: [id], onDelete: SetNull, onUpdate: Cascade) + maxDurationInSeconds Int? triggerSource TaskTriggerSource @default(STANDARD) @@ -1703,7 +1707,8 @@ model TaskRun { engine RunEngineVersion @default(V1) - status TaskRunStatus @default(PENDING) + status TaskRunStatus @default(PENDING) + statusReason String? idempotencyKey String? idempotencyKeyExpiresAt DateTime? @@ -1899,7 +1904,10 @@ enum TaskRunStatus { /// Task is waiting to be executed by a worker PENDING - /// Task hasn't been deployed yet but is waiting to be executed + /// The run is pending a version update because it cannot execute without additional information (task, queue, etc.). Replaces WAITING_FOR_DEPLOY + PENDING_VERSION + + /// Task hasn't been deployed yet but is waiting to be executed. Deprecated in favor of PENDING_VERSION WAITING_FOR_DEPLOY /// Task is currently being executed by a worker @@ -2533,6 +2541,9 @@ model TaskQueue { name String type TaskQueueType @default(VIRTUAL) + version TaskQueueVersion @default(V1) + orderableName String? + project Project @relation(fields: [projectId], references: [id], onDelete: Cascade, onUpdate: Cascade) projectId String @@ -2551,6 +2562,8 @@ model TaskQueue { updatedAt DateTime @updatedAt attempts TaskRunAttempt[] + tasks BackgroundWorkerTask[] + workers BackgroundWorker[] @@unique([runtimeEnvironmentId, name]) } @@ -2560,6 +2573,11 @@ enum TaskQueueType { NAMED } +enum TaskQueueVersion { + V1 + V2 +} + model BatchTaskRun { id String @id @default(cuid()) friendlyId String @unique diff --git a/internal-packages/redis/src/index.ts b/internal-packages/redis/src/index.ts index a659e4c58f..fd0d4d25d6 100644 --- a/internal-packages/redis/src/index.ts +++ b/internal-packages/redis/src/index.ts @@ -8,7 +8,7 @@ const defaultOptions: Partial = { const delay = Math.min(times * 50, 1000); return delay; }, - maxRetriesPerRequest: process.env.VITEST ? 1 : 20, + maxRetriesPerRequest: process.env.GITHUB_ACTIONS ? 50 : process.env.VITEST ? 1 : 20, }; const logger = new Logger("Redis", "debug"); diff --git a/internal-packages/run-engine/src/engine/db/worker.ts b/internal-packages/run-engine/src/engine/db/worker.ts index 2c3264615c..34abf2cd32 100644 --- a/internal-packages/run-engine/src/engine/db/worker.ts +++ b/internal-packages/run-engine/src/engine/db/worker.ts @@ -3,6 +3,7 @@ import { BackgroundWorkerTask, Prisma, PrismaClientOrTransaction, + TaskQueue, WorkerDeployment, } from "@trigger.dev/database"; import { CURRENT_DEPLOYMENT_LABEL } from "@trigger.dev/core/v3/isomorphic"; @@ -30,7 +31,8 @@ type RunWithBackgroundWorkerTasksResult = | "NO_WORKER" | "TASK_NOT_IN_LATEST" | "TASK_NEVER_REGISTERED" - | "BACKGROUND_WORKER_MISMATCH"; + | "BACKGROUND_WORKER_MISMATCH" + | "QUEUE_NOT_FOUND"; message: string; run: RunWithMininimalEnvironment; } @@ -49,6 +51,7 @@ type RunWithBackgroundWorkerTasksResult = run: RunWithMininimalEnvironment; worker: BackgroundWorker; task: BackgroundWorkerTask; + queue: TaskQueue; deployment: WorkerDeployment | null; }; @@ -158,11 +161,23 @@ export async function getRunWithBackgroundWorkerTasks( } } + const queue = workerWithTasks.queues.find((queue) => queue.name === run.queue); + + if (!queue) { + return { + success: false as const, + code: "QUEUE_NOT_FOUND", + message: `Queue not found for run: ${run.id}`, + run, + }; + } + return { success: true as const, run, worker: workerWithTasks.worker, task: backgroundTask, + queue, deployment: workerWithTasks.deployment, }; } @@ -170,6 +185,7 @@ export async function getRunWithBackgroundWorkerTasks( type WorkerDeploymentWithWorkerTasks = { worker: BackgroundWorker; tasks: BackgroundWorkerTask[]; + queues: TaskQueue[]; deployment: WorkerDeployment | null; }; @@ -184,6 +200,7 @@ export async function getWorkerDeploymentFromWorker( include: { deployment: true, tasks: true, + queues: true, }, }); @@ -191,7 +208,7 @@ export async function getWorkerDeploymentFromWorker( return null; } - return { worker, tasks: worker.tasks, deployment: worker.deployment }; + return { worker, tasks: worker.tasks, queues: worker.queues, deployment: worker.deployment }; } export async function getMostRecentWorker( @@ -204,6 +221,7 @@ export async function getMostRecentWorker( }, include: { tasks: true, + queues: true, }, orderBy: { id: "desc", @@ -214,7 +232,7 @@ export async function getMostRecentWorker( return null; } - return { worker, tasks: worker.tasks, deployment: null }; + return { worker, tasks: worker.tasks, queues: worker.queues, deployment: null }; } export async function getWorkerById( @@ -228,6 +246,7 @@ export async function getWorkerById( include: { deployment: true, tasks: true, + queues: true, }, orderBy: { id: "desc", @@ -238,7 +257,7 @@ export async function getWorkerById( return null; } - return { worker, tasks: worker.tasks, deployment: worker.deployment }; + return { worker, tasks: worker.tasks, queues: worker.queues, deployment: worker.deployment }; } export async function getWorkerFromCurrentlyPromotedDeployment( @@ -258,6 +277,7 @@ export async function getWorkerFromCurrentlyPromotedDeployment( worker: { include: { tasks: true, + queues: true, }, }, }, @@ -272,6 +292,7 @@ export async function getWorkerFromCurrentlyPromotedDeployment( return { worker: promotion.deployment.worker, tasks: promotion.deployment.worker.tasks, + queues: promotion.deployment.worker.queues, deployment: promotion.deployment, }; } diff --git a/internal-packages/run-engine/src/engine/index.ts b/internal-packages/run-engine/src/engine/index.ts index acc939cea5..80fa8f4607 100644 --- a/internal-packages/run-engine/src/engine/index.ts +++ b/internal-packages/run-engine/src/engine/index.ts @@ -48,20 +48,21 @@ import { ReleaseConcurrencySystem } from "./systems/releaseConcurrencySystem.js" import { RunAttemptSystem } from "./systems/runAttemptSystem.js"; import { SystemResources } from "./systems/systems.js"; import { TtlSystem } from "./systems/ttlSystem.js"; -import { WaitingForWorkerSystem } from "./systems/waitingForWorkerSystem.js"; +import { PendingVersionSystem } from "./systems/pendingVersionSystem.js"; import { WaitpointSystem } from "./systems/waitpointSystem.js"; import { EngineWorker, HeartbeatTimeouts, RunEngineOptions, TriggerParams } from "./types.js"; import { workerCatalog } from "./workerCatalog.js"; export class RunEngine { private runLockRedis: Redis; - private prisma: PrismaClient; private runLock: RunLocker; - runQueue: RunQueue; private worker: EngineWorker; private logger = new Logger("RunEngine", "debug"); private tracer: Tracer; private heartbeatTimeouts: HeartbeatTimeouts; + + prisma: PrismaClient; + runQueue: RunQueue; eventBus: EventBus = new EventEmitter(); executionSnapshotSystem: ExecutionSnapshotSystem; runAttemptSystem: RunAttemptSystem; @@ -72,7 +73,7 @@ export class RunEngine { checkpointSystem: CheckpointSystem; delayedRunSystem: DelayedRunSystem; ttlSystem: TtlSystem; - waitingForWorkerSystem: WaitingForWorkerSystem; + pendingVersionSystem: PendingVersionSystem; releaseConcurrencySystem: ReleaseConcurrencySystem; constructor(private readonly options: RunEngineOptions) { @@ -147,10 +148,10 @@ export class RunEngine { reason: payload.reason, }); }, - queueRunsWaitingForWorker: async ({ payload }) => { - await this.waitingForWorkerSystem.enqueueRunsWaitingForWorker({ - backgroundWorkerId: payload.backgroundWorkerId, - }); + queueRunsPendingVersion: async ({ payload }) => { + await this.pendingVersionSystem.enqueueRunsForBackgroundWorker( + payload.backgroundWorkerId + ); }, tryCompleteBatch: async ({ payload }) => { await this.batchSystem.performCompleteBatch({ batchId: payload.batchId }); @@ -265,7 +266,7 @@ export class RunEngine { enqueueSystem: this.enqueueSystem, }); - this.waitingForWorkerSystem = new WaitingForWorkerSystem({ + this.pendingVersionSystem = new PendingVersionSystem({ resources, enqueueSystem: this.enqueueSystem, }); @@ -326,7 +327,6 @@ export class RunEngine { cliVersion, concurrencyKey, masterQueue, - queueName, queue, isTest, delayUntil, @@ -405,7 +405,7 @@ export class RunEngine { sdkVersion, cliVersion, concurrencyKey, - queue: queueName, + queue, masterQueue, secondaryMasterQueue, isTest, @@ -510,66 +510,6 @@ export class RunEngine { //Make sure lock extension succeeded signal.throwIfAborted(); - if (queue) { - const concurrencyLimit = - typeof queue.concurrencyLimit === "number" - ? Math.max(Math.min(queue.concurrencyLimit, environment.maximumConcurrencyLimit), 0) - : queue.concurrencyLimit; - - let taskQueue = await prisma.taskQueue.findFirst({ - where: { - runtimeEnvironmentId: environment.id, - name: queueName, - }, - }); - - if (!taskQueue) { - // handle conflicts with existing queues - taskQueue = await prisma.taskQueue.create({ - data: { - ...QueueId.generate(), - name: queueName, - concurrencyLimit, - runtimeEnvironmentId: environment.id, - projectId: environment.project.id, - type: "NAMED", - }, - }); - } - - if (typeof concurrencyLimit === "number") { - this.logger.debug("TriggerTaskService: updating concurrency limit", { - runId: taskRun.id, - friendlyId: taskRun.friendlyId, - taskQueue, - orgId: environment.organization.id, - projectId: environment.project.id, - concurrencyLimit, - queueOptions: queue, - }); - - await this.runQueue.updateQueueConcurrencyLimits( - environment, - taskQueue.name, - concurrencyLimit - ); - } else if (concurrencyLimit === null) { - this.logger.debug("TriggerTaskService: removing concurrency limit", { - runId: taskRun.id, - friendlyId: taskRun.friendlyId, - taskQueue, - orgId: environment.organization.id, - projectId: environment.project.id, - queueOptions: queue, - }); - - await this.runQueue.removeQueueConcurrencyLimits(environment, taskQueue.name); - } - } - - //Make sure lock extension succeeded - signal.throwIfAborted(); - if (taskRun.delayUntil) { // Schedule the run to be enqueued at the delayUntil time await this.delayedRunSystem.scheduleDelayedRunEnqueuing({ @@ -784,14 +724,8 @@ export class RunEngine { }); } - async queueRunsWaitingForWorker({ - backgroundWorkerId, - }: { - backgroundWorkerId: string; - }): Promise { - return this.waitingForWorkerSystem.enqueueRunsWaitingForWorker({ - backgroundWorkerId, - }); + async scheduleEnqueueRunsForBackgroundWorker(backgroundWorkerId: string): Promise { + return this.pendingVersionSystem.scheduleResolvePendingVersionRuns(backgroundWorkerId); } /** diff --git a/internal-packages/run-engine/src/engine/systems/dequeueSystem.ts b/internal-packages/run-engine/src/engine/systems/dequeueSystem.ts index 33bdb56563..1d08154d65 100644 --- a/internal-packages/run-engine/src/engine/systems/dequeueSystem.ts +++ b/internal-packages/run-engine/src/engine/systems/dequeueSystem.ts @@ -186,6 +186,7 @@ export class DequeueSystem { } case "NO_WORKER": case "TASK_NEVER_REGISTERED": + case "QUEUE_NOT_FOUND": case "TASK_NOT_IN_LATEST": { this.$.logger.warn(`RunEngine.dequeueFromMasterQueue(): ${result.code}`, { runId, @@ -194,10 +195,11 @@ export class DequeueSystem { }); //not deployed yet, so we'll wait for the deploy - await this.#waitingForDeploy({ + await this.#pendingVersion({ orgId, runId, reason: result.message, + statusReason: result.code, tx: prisma, }); return null; @@ -232,10 +234,11 @@ export class DequeueSystem { result, }); //not deployed yet, so we'll wait for the deploy - await this.#waitingForDeploy({ + await this.#pendingVersion({ orgId, runId, reason: "No deployment or deployment image reference found for deployed run", + statusReason: "NO_DEPLOYMENT", tx: prisma, }); @@ -340,43 +343,6 @@ export class DequeueSystem { maxAttempts = parsedConfig.data.maxAttempts; } - - const queue = await prisma.taskQueue.findUnique({ - where: { - runtimeEnvironmentId_name: { - runtimeEnvironmentId: result.run.runtimeEnvironmentId, - name: sanitizeQueueName(result.run.queue), - }, - }, - }); - - if (!queue) { - this.$.logger.debug( - "RunEngine.dequeueFromMasterQueue(): queue not found, so nacking message", - { - queueMessage: message, - taskRunQueue: result.run.queue, - runtimeEnvironmentId: result.run.runtimeEnvironmentId, - } - ); - - //will auto-retry - const gotRequeued = await this.$.runQueue.nackMessage({ orgId, messageId: runId }); - if (!gotRequeued) { - await this.runAttemptSystem.systemFailure({ - runId, - error: { - type: "INTERNAL_ERROR", - code: "TASK_DEQUEUED_QUEUE_NOT_FOUND", - message: `Tried to dequeue the run but the queue doesn't exist: ${result.run.queue}`, - }, - tx: prisma, - }); - } - - return null; - } - //update the run const lockedTaskRun = await prisma.taskRun.update({ where: { @@ -386,7 +352,7 @@ export class DequeueSystem { lockedAt: new Date(), lockedById: result.task.id, lockedToVersionId: result.worker.id, - lockedQueueId: queue.id, + lockedQueueId: result.queue.id, startedAt: result.run.startedAt ?? new Date(), baseCostInCents: this.options.machines.baseCostInCents, machinePreset: machinePreset.name, @@ -547,16 +513,18 @@ export class DequeueSystem { ); } - async #waitingForDeploy({ + async #pendingVersion({ orgId, runId, workerId, runnerId, reason, + statusReason, tx, }: { orgId: string; runId: string; + statusReason: string; workerId?: string; runnerId?: string; reason?: string; @@ -566,14 +534,15 @@ export class DequeueSystem { return startSpan( this.$.tracer, - "#waitingForDeploy", + "#pendingVersion", async (span) => { return this.$.runLock.lock([runId], 5_000, async (signal) => { //mark run as waiting for deploy const run = await prisma.taskRun.update({ where: { id: runId }, data: { - status: "WAITING_FOR_DEPLOY", + status: "PENDING_VERSION", + statusReason, }, select: { id: true, @@ -590,6 +559,11 @@ export class DequeueSystem { }, }); + this.$.logger.debug("RunEngine.dequeueFromMasterQueue(): Pending version", { + runId, + run, + }); + await this.executionSnapshotSystem.createExecutionSnapshot(prisma, { run, snapshot: { diff --git a/internal-packages/run-engine/src/engine/systems/waitingForWorkerSystem.ts b/internal-packages/run-engine/src/engine/systems/pendingVersionSystem.ts similarity index 54% rename from internal-packages/run-engine/src/engine/systems/waitingForWorkerSystem.ts rename to internal-packages/run-engine/src/engine/systems/pendingVersionSystem.ts index 517e1c303d..991d8b9aa0 100644 --- a/internal-packages/run-engine/src/engine/systems/waitingForWorkerSystem.ts +++ b/internal-packages/run-engine/src/engine/systems/pendingVersionSystem.ts @@ -1,25 +1,25 @@ import { EnqueueSystem } from "./enqueueSystem.js"; import { SystemResources } from "./systems.js"; -export type WaitingForWorkerSystemOptions = { +export type PendingVersionSystemOptions = { resources: SystemResources; enqueueSystem: EnqueueSystem; - queueRunsWaitingForWorkerBatchSize?: number; + queueRunsPendingVersionBatchSize?: number; }; -export class WaitingForWorkerSystem { +export class PendingVersionSystem { private readonly $: SystemResources; private readonly enqueueSystem: EnqueueSystem; - constructor(private readonly options: WaitingForWorkerSystemOptions) { + constructor(private readonly options: PendingVersionSystemOptions) { this.$ = options.resources; this.enqueueSystem = options.enqueueSystem; } - async enqueueRunsWaitingForWorker({ backgroundWorkerId }: { backgroundWorkerId: string }) { + async enqueueRunsForBackgroundWorker(backgroundWorkerId: string) { //It could be a lot of runs, so we will process them in a batch //if there are still more to process we will enqueue this function again - const maxCount = this.options.queueRunsWaitingForWorkerBatchSize ?? 200; + const maxCount = this.options.queueRunsPendingVersionBatchSize ?? 200; const backgroundWorker = await this.$.prisma.backgroundWorker.findFirst({ where: { @@ -33,24 +33,34 @@ export class WaitingForWorkerSystem { }, }, tasks: true, + queues: true, }, }); if (!backgroundWorker) { - this.$.logger.error("#queueRunsWaitingForWorker: background worker not found", { + this.$.logger.error("#enqueueRunsForBackgroundWorker: background worker not found", { id: backgroundWorkerId, }); return; } - const runsWaitingForDeploy = await this.$.prisma.taskRun.findMany({ + this.$.logger.debug("Finding PENDING_VERSION runs for background worker", { + workerId: backgroundWorker.id, + taskIdentifiers: backgroundWorker.tasks.map((task) => task.slug), + queues: backgroundWorker.queues.map((queue) => queue.name), + }); + + const pendingRuns = await this.$.prisma.taskRun.findMany({ where: { runtimeEnvironmentId: backgroundWorker.runtimeEnvironmentId, projectId: backgroundWorker.projectId, - status: "WAITING_FOR_DEPLOY", + status: "PENDING_VERSION", taskIdentifier: { in: backgroundWorker.tasks.map((task) => task.slug), }, + queue: { + in: backgroundWorker.queues.map((queue) => queue.name), + }, }, orderBy: { createdAt: "asc", @@ -59,9 +69,22 @@ export class WaitingForWorkerSystem { }); //none to process - if (!runsWaitingForDeploy.length) return; + if (!pendingRuns.length) return; + + this.$.logger.debug("Enqueueing PENDING_VERSION runs for background worker", { + workerId: backgroundWorker.id, + taskIdentifiers: pendingRuns.map((run) => run.taskIdentifier), + queues: pendingRuns.map((run) => run.queue), + runs: pendingRuns.map((run) => ({ + id: run.id, + taskIdentifier: run.taskIdentifier, + queue: run.queue, + createdAt: run.createdAt, + priorityMs: run.priorityMs, + })), + }); - for (const run of runsWaitingForDeploy) { + for (const run of pendingRuns) { await this.$.prisma.$transaction(async (tx) => { const updatedRun = await tx.taskRun.update({ where: { @@ -83,19 +106,15 @@ export class WaitingForWorkerSystem { } //enqueue more if needed - if (runsWaitingForDeploy.length > maxCount) { - await this.scheduleEnqueueRunsWaitingForWorker({ backgroundWorkerId }); + if (pendingRuns.length > maxCount) { + await this.scheduleResolvePendingVersionRuns(backgroundWorkerId); } } - async scheduleEnqueueRunsWaitingForWorker({ - backgroundWorkerId, - }: { - backgroundWorkerId: string; - }): Promise { + async scheduleResolvePendingVersionRuns(backgroundWorkerId: string): Promise { //we want this to happen in the background await this.$.worker.enqueue({ - job: "queueRunsWaitingForWorker", + job: "queueRunsPendingVersion", payload: { backgroundWorkerId }, }); } diff --git a/internal-packages/run-engine/src/engine/systems/runAttemptSystem.ts b/internal-packages/run-engine/src/engine/systems/runAttemptSystem.ts index 0ba498d773..6d5c9028f6 100644 --- a/internal-packages/run-engine/src/engine/systems/runAttemptSystem.ts +++ b/internal-packages/run-engine/src/engine/systems/runAttemptSystem.ts @@ -270,7 +270,7 @@ export class RunAttemptSystem { task: { id: run.lockedBy!.slug, filePath: run.lockedBy!.filePath, - exportName: run.lockedBy!.exportName, + exportName: run.lockedBy!.exportName ?? undefined, }, attempt: { number: nextAttemptNumber, diff --git a/internal-packages/run-engine/src/engine/tests/attemptFailures.test.ts b/internal-packages/run-engine/src/engine/tests/attemptFailures.test.ts index 6ff3f4d7e8..bd7b465fe8 100644 --- a/internal-packages/run-engine/src/engine/tests/attemptFailures.test.ts +++ b/internal-packages/run-engine/src/engine/tests/attemptFailures.test.ts @@ -1,13 +1,9 @@ -import { - assertNonNullable, - containerTest, - setupAuthenticatedEnvironment, - setupBackgroundWorker, -} from "@internal/testcontainers"; +import { assertNonNullable, containerTest } from "@internal/testcontainers"; import { trace } from "@internal/tracing"; import { setTimeout } from "node:timers/promises"; import { expect } from "vitest"; import { RunEngine } from "../index.js"; +import { setupAuthenticatedEnvironment, setupBackgroundWorker } from "./setup.js"; describe("RunEngine attempt failures", () => { containerTest("Retry user error and succeed", async ({ prisma, redisOptions }) => { @@ -48,7 +44,7 @@ describe("RunEngine attempt failures", () => { //create background worker const backgroundWorker = await setupBackgroundWorker( - prisma, + engine, authenticatedEnvironment, taskIdentifier ); @@ -67,7 +63,7 @@ describe("RunEngine attempt failures", () => { traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: "task/test-task", + queue: "task/test-task", isTest: false, tags: [], }, @@ -200,7 +196,7 @@ describe("RunEngine attempt failures", () => { const taskIdentifier = "test-task"; //create background worker - await setupBackgroundWorker(prisma, authenticatedEnvironment, taskIdentifier, undefined, { + await setupBackgroundWorker(engine, authenticatedEnvironment, taskIdentifier, undefined, { maxAttempts: 1, }); @@ -218,7 +214,7 @@ describe("RunEngine attempt failures", () => { traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: "task/test-task", + queue: "task/test-task", isTest: false, tags: [], }, @@ -311,7 +307,7 @@ describe("RunEngine attempt failures", () => { const taskIdentifier = "test-task"; //create background worker - await setupBackgroundWorker(prisma, authenticatedEnvironment, taskIdentifier, undefined, { + await setupBackgroundWorker(engine, authenticatedEnvironment, taskIdentifier, undefined, { maxAttempts: 1, }); @@ -329,7 +325,7 @@ describe("RunEngine attempt failures", () => { traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: "task/test-task", + queue: "task/test-task", isTest: false, tags: [], }, @@ -420,7 +416,7 @@ describe("RunEngine attempt failures", () => { const taskIdentifier = "test-task"; //create background worker - await setupBackgroundWorker(prisma, authenticatedEnvironment, taskIdentifier); + await setupBackgroundWorker(engine, authenticatedEnvironment, taskIdentifier); //trigger the run const run = await engine.trigger( @@ -436,7 +432,7 @@ describe("RunEngine attempt failures", () => { traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: "task/test-task", + queue: "task/test-task", isTest: false, tags: [], }, @@ -533,7 +529,7 @@ describe("RunEngine attempt failures", () => { const taskIdentifier = "test-task"; //create background worker - await setupBackgroundWorker(prisma, authenticatedEnvironment, taskIdentifier, undefined, { + await setupBackgroundWorker(engine, authenticatedEnvironment, taskIdentifier, undefined, { outOfMemory: { machine: "small-2x", }, @@ -553,7 +549,7 @@ describe("RunEngine attempt failures", () => { traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: "task/test-task", + queue: "task/test-task", isTest: false, tags: [], }, @@ -690,7 +686,7 @@ describe("RunEngine attempt failures", () => { const taskIdentifier = "test-task"; //create background worker - await setupBackgroundWorker(prisma, authenticatedEnvironment, taskIdentifier, undefined, { + await setupBackgroundWorker(engine, authenticatedEnvironment, taskIdentifier, undefined, { maxTimeoutInMs: 10, maxAttempts: 10, outOfMemory: { @@ -712,7 +708,7 @@ describe("RunEngine attempt failures", () => { traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: "task/test-task", + queue: "task/test-task", isTest: false, tags: [], }, diff --git a/internal-packages/run-engine/src/engine/tests/batchTrigger.test.ts b/internal-packages/run-engine/src/engine/tests/batchTrigger.test.ts index 56f7a945b3..e3c9f2585e 100644 --- a/internal-packages/run-engine/src/engine/tests/batchTrigger.test.ts +++ b/internal-packages/run-engine/src/engine/tests/batchTrigger.test.ts @@ -1,13 +1,10 @@ -import { - containerTest, - setupAuthenticatedEnvironment, - setupBackgroundWorker, -} from "@internal/testcontainers"; +import { containerTest } from "@internal/testcontainers"; import { trace } from "@internal/tracing"; import { generateFriendlyId } from "@trigger.dev/core/v3/isomorphic"; import { expect } from "vitest"; import { RunEngine } from "../index.js"; import { setTimeout } from "node:timers/promises"; +import { setupAuthenticatedEnvironment, setupBackgroundWorker } from "./setup.js"; vi.setConfig({ testTimeout: 60_000 }); @@ -50,7 +47,7 @@ describe("RunEngine batchTrigger", () => { //create background worker const backgroundWorker = await setupBackgroundWorker( - prisma, + engine, authenticatedEnvironment, taskIdentifier ); @@ -76,7 +73,7 @@ describe("RunEngine batchTrigger", () => { traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: "task/test-task", + queue: "task/test-task", isTest: false, tags: [], batch: { id: batch.id, index: 0 }, @@ -97,7 +94,7 @@ describe("RunEngine batchTrigger", () => { traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: "task/test-task", + queue: "task/test-task", isTest: false, tags: [], batch: { id: batch.id, index: 1 }, diff --git a/internal-packages/run-engine/src/engine/tests/batchTriggerAndWait.test.ts b/internal-packages/run-engine/src/engine/tests/batchTriggerAndWait.test.ts index d5b6d4d324..4af44861c8 100644 --- a/internal-packages/run-engine/src/engine/tests/batchTriggerAndWait.test.ts +++ b/internal-packages/run-engine/src/engine/tests/batchTriggerAndWait.test.ts @@ -1,14 +1,10 @@ -import { - assertNonNullable, - containerTest, - setupAuthenticatedEnvironment, - setupBackgroundWorker, -} from "@internal/testcontainers"; +import { assertNonNullable, containerTest } from "@internal/testcontainers"; import { trace } from "@internal/tracing"; import { expect, describe } from "vitest"; import { RunEngine } from "../index.js"; import { setTimeout } from "node:timers/promises"; import { generateFriendlyId } from "@trigger.dev/core/v3/isomorphic"; +import { setupAuthenticatedEnvironment, setupBackgroundWorker } from "./setup.js"; vi.setConfig({ testTimeout: 60_000 }); @@ -51,7 +47,7 @@ describe("RunEngine batchTriggerAndWait", () => { const childTask = "child-task"; //create background worker - await setupBackgroundWorker(prisma, authenticatedEnvironment, [parentTask, childTask]); + await setupBackgroundWorker(engine, authenticatedEnvironment, [parentTask, childTask]); //create a batch const batch = await prisma.batchTaskRun.create({ @@ -75,7 +71,7 @@ describe("RunEngine batchTriggerAndWait", () => { traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: `task/${parentTask}`, + queue: `task/${parentTask}`, isTest: false, tags: [], }, @@ -123,7 +119,7 @@ describe("RunEngine batchTriggerAndWait", () => { traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: `task/${childTask}`, + queue: `task/${childTask}`, isTest: false, tags: [], resumeParentOnCompletion: true, @@ -150,7 +146,7 @@ describe("RunEngine batchTriggerAndWait", () => { traceId: "t123456", spanId: "s123456", masterQueue: "main", - queueName: `task/${childTask}`, + queue: `task/${childTask}`, isTest: false, tags: [], resumeParentOnCompletion: true, diff --git a/internal-packages/run-engine/src/engine/tests/cancelling.test.ts b/internal-packages/run-engine/src/engine/tests/cancelling.test.ts index c5288cfdc2..d4792d0b0c 100644 --- a/internal-packages/run-engine/src/engine/tests/cancelling.test.ts +++ b/internal-packages/run-engine/src/engine/tests/cancelling.test.ts @@ -1,14 +1,10 @@ -import { - containerTest, - setupAuthenticatedEnvironment, - setupBackgroundWorker, - assertNonNullable, -} from "@internal/testcontainers"; +import { containerTest, assertNonNullable } from "@internal/testcontainers"; import { trace } from "@internal/tracing"; import { expect } from "vitest"; import { RunEngine } from "../index.js"; import { setTimeout } from "timers/promises"; import { EventBusEventArgs } from "../eventBus.js"; +import { setupAuthenticatedEnvironment, setupBackgroundWorker } from "./setup.js"; vi.setConfig({ testTimeout: 60_000 }); @@ -53,7 +49,7 @@ describe("RunEngine cancelling", () => { const childTask = "child-task"; //create background worker - await setupBackgroundWorker(prisma, authenticatedEnvironment, [parentTask, childTask]); + await setupBackgroundWorker(engine, authenticatedEnvironment, [parentTask, childTask]); //trigger the run const parentRun = await engine.trigger( @@ -69,7 +65,7 @@ describe("RunEngine cancelling", () => { traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: `task/${parentTask}`, + queue: `task/${parentTask}`, isTest: false, tags: [], }, @@ -104,7 +100,7 @@ describe("RunEngine cancelling", () => { traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: `task/${childTask}`, + queue: `task/${childTask}`, isTest: false, tags: [], resumeParentOnCompletion: true, @@ -266,7 +262,7 @@ describe("RunEngine cancelling", () => { const parentTask = "parent-task"; //create background worker - await setupBackgroundWorker(prisma, authenticatedEnvironment, [parentTask]); + await setupBackgroundWorker(engine, authenticatedEnvironment, [parentTask]); //trigger the run const parentRun = await engine.trigger( @@ -282,7 +278,7 @@ describe("RunEngine cancelling", () => { traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: `task/${parentTask}`, + queue: `task/${parentTask}`, isTest: false, tags: [], }, diff --git a/internal-packages/run-engine/src/engine/tests/checkpoints.test.ts b/internal-packages/run-engine/src/engine/tests/checkpoints.test.ts index 50e6dea856..cb1a56d29a 100644 --- a/internal-packages/run-engine/src/engine/tests/checkpoints.test.ts +++ b/internal-packages/run-engine/src/engine/tests/checkpoints.test.ts @@ -1,15 +1,11 @@ //todo checkpoint tests -import { - containerTest, - setupAuthenticatedEnvironment, - setupBackgroundWorker, - assertNonNullable, -} from "@internal/testcontainers"; +import { containerTest, assertNonNullable } from "@internal/testcontainers"; import { trace } from "@internal/tracing"; import { expect } from "vitest"; import { RunEngine } from "../index.js"; import { setTimeout } from "node:timers/promises"; import { EventBusEventArgs } from "../eventBus.js"; +import { setupAuthenticatedEnvironment, setupBackgroundWorker } from "./setup.js"; vi.setConfig({ testTimeout: 60_000 }); @@ -52,7 +48,7 @@ describe("RunEngine checkpoints", () => { // Create background worker const backgroundWorker = await setupBackgroundWorker( - prisma, + engine, authenticatedEnvironment, taskIdentifier ); @@ -71,7 +67,7 @@ describe("RunEngine checkpoints", () => { traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: "task/test-task", + queue: "task/test-task", isTest: false, tags: [], }, @@ -225,7 +221,7 @@ describe("RunEngine checkpoints", () => { // Create background worker const backgroundWorker = await setupBackgroundWorker( - prisma, + engine, authenticatedEnvironment, taskIdentifier ); @@ -244,7 +240,7 @@ describe("RunEngine checkpoints", () => { traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: "task/test-task", + queue: "task/test-task", isTest: false, tags: [], }, @@ -311,7 +307,7 @@ describe("RunEngine checkpoints", () => { try { const taskIdentifier = "test-task"; const backgroundWorker = await setupBackgroundWorker( - prisma, + engine, authenticatedEnvironment, taskIdentifier ); @@ -330,7 +326,7 @@ describe("RunEngine checkpoints", () => { traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: "task/test-task", + queue: "task/test-task", isTest: false, tags: [], }, @@ -512,7 +508,7 @@ describe("RunEngine checkpoints", () => { // Create background worker const backgroundWorker = await setupBackgroundWorker( - prisma, + engine, authenticatedEnvironment, taskIdentifier ); @@ -531,7 +527,7 @@ describe("RunEngine checkpoints", () => { traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: "task/test-task", + queue: "task/test-task", isTest: false, tags: [], }, @@ -658,7 +654,7 @@ describe("RunEngine checkpoints", () => { // Create background worker const backgroundWorker = await setupBackgroundWorker( - prisma, + engine, authenticatedEnvironment, taskIdentifier ); @@ -677,7 +673,7 @@ describe("RunEngine checkpoints", () => { traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: "task/test-task", + queue: "task/test-task", isTest: false, tags: [], }, @@ -797,10 +793,18 @@ describe("RunEngine checkpoints", () => { try { const taskIdentifier = "test-task"; - const queueName = "task/test-task-limited"; // Create background worker - await setupBackgroundWorker(prisma, authenticatedEnvironment, taskIdentifier); + await setupBackgroundWorker( + engine, + authenticatedEnvironment, + taskIdentifier, + undefined, + undefined, + { + concurrencyLimit: 1, + } + ); // Create first run with queue concurrency limit of 1 const firstRun = await engine.trigger( @@ -816,10 +820,9 @@ describe("RunEngine checkpoints", () => { traceId: "t12345-first", spanId: "s12345-first", masterQueue: "main", - queueName, + queue: "task/test-task", isTest: false, tags: [], - queue: { concurrencyLimit: 1 }, }, prisma ); @@ -871,10 +874,9 @@ describe("RunEngine checkpoints", () => { traceId: "t12345-second", spanId: "s12345-second", masterQueue: "main", - queueName, + queue: "task/test-task", isTest: false, tags: [], - queue: { concurrencyLimit: 1 }, }, prisma ); diff --git a/internal-packages/run-engine/src/engine/tests/delays.test.ts b/internal-packages/run-engine/src/engine/tests/delays.test.ts index 655b01941d..b46c6d34dd 100644 --- a/internal-packages/run-engine/src/engine/tests/delays.test.ts +++ b/internal-packages/run-engine/src/engine/tests/delays.test.ts @@ -1,14 +1,9 @@ -import { - containerTest, - setupAuthenticatedEnvironment, - setupBackgroundWorker, - assertNonNullable, -} from "@internal/testcontainers"; +import { containerTest, assertNonNullable } from "@internal/testcontainers"; import { trace } from "@internal/tracing"; import { expect } from "vitest"; import { RunEngine } from "../index.js"; import { setTimeout } from "timers/promises"; -import { TaskRunErrorCodes } from "@trigger.dev/core/v3"; +import { setupAuthenticatedEnvironment, setupBackgroundWorker } from "./setup.js"; vi.setConfig({ testTimeout: 60_000 }); @@ -51,7 +46,7 @@ describe("RunEngine delays", () => { //create background worker const backgroundWorker = await setupBackgroundWorker( - prisma, + engine, authenticatedEnvironment, taskIdentifier ); @@ -70,7 +65,7 @@ describe("RunEngine delays", () => { traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: "task/test-task", + queue: "task/test-task", isTest: false, tags: [], delayUntil: new Date(Date.now() + 500), @@ -133,7 +128,7 @@ describe("RunEngine delays", () => { //create background worker const backgroundWorker = await setupBackgroundWorker( - prisma, + engine, authenticatedEnvironment, taskIdentifier ); @@ -152,7 +147,7 @@ describe("RunEngine delays", () => { traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: "task/test-task", + queue: "task/test-task", isTest: false, tags: [], delayUntil: new Date(Date.now() + 400), @@ -230,7 +225,7 @@ describe("RunEngine delays", () => { //create background worker const backgroundWorker = await setupBackgroundWorker( - prisma, + engine, authenticatedEnvironment, taskIdentifier ); @@ -249,7 +244,7 @@ describe("RunEngine delays", () => { traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: "task/test-task", + queue: "task/test-task", isTest: false, tags: [], delayUntil: new Date(Date.now() + 1000), diff --git a/internal-packages/run-engine/src/engine/tests/dequeuing.test.ts b/internal-packages/run-engine/src/engine/tests/dequeuing.test.ts index ae2de9d2f1..ec5a25a754 100644 --- a/internal-packages/run-engine/src/engine/tests/dequeuing.test.ts +++ b/internal-packages/run-engine/src/engine/tests/dequeuing.test.ts @@ -1,15 +1,11 @@ -import { - containerTest, - setupAuthenticatedEnvironment, - setupBackgroundWorker, -} from "@internal/testcontainers"; +import { containerTest } from "@internal/testcontainers"; import { trace } from "@internal/tracing"; import { generateFriendlyId } from "@trigger.dev/core/v3/isomorphic"; +import { PrismaClientOrTransaction } from "@trigger.dev/database"; import { expect } from "vitest"; -import { RunEngine } from "../index.js"; -import { setTimeout } from "node:timers/promises"; import { MinimalAuthenticatedEnvironment } from "../../shared/index.js"; -import { PrismaClientOrTransaction } from "@trigger.dev/database"; +import { RunEngine } from "../index.js"; +import { setupAuthenticatedEnvironment, setupBackgroundWorker } from "./setup.js"; vi.setConfig({ testTimeout: 60_000 }); @@ -50,7 +46,7 @@ describe("RunEngine dequeuing", () => { const taskIdentifier = "test-task"; //create background worker - await setupBackgroundWorker(prisma, authenticatedEnvironment, taskIdentifier); + await setupBackgroundWorker(engine, authenticatedEnvironment, taskIdentifier); //trigger the runs const runs = await triggerRuns({ @@ -115,7 +111,7 @@ describe("RunEngine dequeuing", () => { const taskIdentifier = "test-task"; //create background worker - await setupBackgroundWorker(prisma, authenticatedEnvironment, taskIdentifier, { + await setupBackgroundWorker(engine, authenticatedEnvironment, taskIdentifier, { preset: "small-1x", }); @@ -197,7 +193,7 @@ async function triggerRuns({ traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: `task/${taskIdentifier}`, + queue: `task/${taskIdentifier}`, isTest: false, tags: [], }, diff --git a/internal-packages/run-engine/src/engine/tests/heartbeats.test.ts b/internal-packages/run-engine/src/engine/tests/heartbeats.test.ts index 89df4e0726..ba6010da2c 100644 --- a/internal-packages/run-engine/src/engine/tests/heartbeats.test.ts +++ b/internal-packages/run-engine/src/engine/tests/heartbeats.test.ts @@ -1,12 +1,8 @@ -import { - containerTest, - setupAuthenticatedEnvironment, - setupBackgroundWorker, - assertNonNullable, -} from "@internal/testcontainers"; +import { containerTest, assertNonNullable } from "@internal/testcontainers"; import { trace } from "@internal/tracing"; import { RunEngine } from "../index.js"; import { setTimeout } from "timers/promises"; +import { setupAuthenticatedEnvironment, setupBackgroundWorker } from "./setup.js"; vi.setConfig({ testTimeout: 60_000 }); @@ -57,7 +53,7 @@ describe("RunEngine heartbeats", () => { //create background worker const backgroundWorker = await setupBackgroundWorker( - prisma, + engine, authenticatedEnvironment, taskIdentifier ); @@ -76,7 +72,7 @@ describe("RunEngine heartbeats", () => { traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: "task/test-task", + queue: "task/test-task", isTest: false, tags: [], }, @@ -174,7 +170,7 @@ describe("RunEngine heartbeats", () => { //create background worker const backgroundWorker = await setupBackgroundWorker( - prisma, + engine, authenticatedEnvironment, taskIdentifier ); @@ -193,7 +189,7 @@ describe("RunEngine heartbeats", () => { traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: "task/test-task", + queue: "task/test-task", isTest: false, tags: [], }, @@ -294,7 +290,7 @@ describe("RunEngine heartbeats", () => { //create background worker const backgroundWorker = await setupBackgroundWorker( - prisma, + engine, authenticatedEnvironment, taskIdentifier ); @@ -313,7 +309,7 @@ describe("RunEngine heartbeats", () => { traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: "task/test-task", + queue: "task/test-task", isTest: false, tags: [], }, @@ -423,7 +419,7 @@ describe("RunEngine heartbeats", () => { //create background worker const backgroundWorker = await setupBackgroundWorker( - prisma, + engine, authenticatedEnvironment, taskIdentifier ); @@ -442,7 +438,7 @@ describe("RunEngine heartbeats", () => { traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: "task/test-task", + queue: "task/test-task", isTest: false, tags: [], }, @@ -525,7 +521,7 @@ describe("RunEngine heartbeats", () => { //create background worker const backgroundWorker = await setupBackgroundWorker( - prisma, + engine, authenticatedEnvironment, taskIdentifier ); @@ -544,7 +540,7 @@ describe("RunEngine heartbeats", () => { traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: "task/test-task", + queue: "task/test-task", isTest: false, tags: [], }, diff --git a/internal-packages/run-engine/src/engine/tests/notDeployed.test.ts b/internal-packages/run-engine/src/engine/tests/notDeployed.test.ts deleted file mode 100644 index f27f23e95d..0000000000 --- a/internal-packages/run-engine/src/engine/tests/notDeployed.test.ts +++ /dev/null @@ -1,154 +0,0 @@ -import { - containerTest, - setupAuthenticatedEnvironment, - setupBackgroundWorker, - assertNonNullable, -} from "@internal/testcontainers"; -import { trace } from "@internal/tracing"; -import { RunEngine } from "../index.js"; -import { setTimeout } from "timers/promises"; - -vi.setConfig({ testTimeout: 60_000 }); - -describe("RunEngine not deployed", () => { - containerTest("Not yet deployed", async ({ prisma, redisOptions }) => { - //create environment - const authenticatedEnvironment = await setupAuthenticatedEnvironment(prisma, "PRODUCTION"); - - const engine = new RunEngine({ - prisma, - worker: { - redis: redisOptions, - workers: 1, - tasksPerWorker: 10, - pollIntervalMs: 100, - }, - queue: { - redis: redisOptions, - }, - runLock: { - redis: redisOptions, - }, - machines: { - defaultMachine: "small-1x", - machines: { - "small-1x": { - name: "small-1x" as const, - cpu: 0.5, - memory: 0.5, - centsPerMs: 0.0001, - }, - }, - baseCostInCents: 0.0001, - }, - //set this so we have to requeue the runs in two batches - queueRunsWaitingForWorkerBatchSize: 1, - tracer: trace.getTracer("test", "0.0.0"), - }); - - try { - const taskIdentifier = "test-task"; - - //trigger the run - const run = await engine.trigger( - { - number: 1, - friendlyId: "run_1234", - environment: authenticatedEnvironment, - taskIdentifier, - payload: "{}", - payloadType: "application/json", - context: {}, - traceContext: {}, - traceId: "t12345", - spanId: "s12345", - masterQueue: "main", - queueName: "task/test-task", - isTest: false, - tags: [], - }, - prisma - ); - - //trigger another run - const run2 = await engine.trigger( - { - number: 2, - friendlyId: "run_1235", - environment: authenticatedEnvironment, - taskIdentifier, - payload: "{}", - payloadType: "application/json", - context: {}, - traceContext: {}, - traceId: "t12346", - spanId: "s12346", - masterQueue: "main", - queueName: "task/test-task", - isTest: false, - tags: [], - }, - prisma - ); - - //should be queued - const executionDataR1 = await engine.getRunExecutionData({ runId: run.id }); - const executionDataR2 = await engine.getRunExecutionData({ runId: run2.id }); - assertNonNullable(executionDataR1); - assertNonNullable(executionDataR2); - expect(executionDataR1.snapshot.executionStatus).toBe("QUEUED"); - expect(executionDataR2.snapshot.executionStatus).toBe("QUEUED"); - - //dequeuing should fail - const dequeued = await engine.dequeueFromMasterQueue({ - consumerId: "test_12345", - masterQueue: run.masterQueue, - maxRunCount: 10, - }); - expect(dequeued.length).toBe(0); - - //queue should be empty - const queueLength = await engine.runQueue.lengthOfQueue(authenticatedEnvironment, run.queue); - expect(queueLength).toBe(0); - - //check the execution data now - const executionData2R1 = await engine.getRunExecutionData({ runId: run.id }); - const executionData2R2 = await engine.getRunExecutionData({ runId: run2.id }); - assertNonNullable(executionData2R1); - assertNonNullable(executionData2R2); - expect(executionData2R1.snapshot.executionStatus).toBe("RUN_CREATED"); - expect(executionData2R2.snapshot.executionStatus).toBe("RUN_CREATED"); - expect(executionData2R1.run.status).toBe("WAITING_FOR_DEPLOY"); - expect(executionData2R2.run.status).toBe("WAITING_FOR_DEPLOY"); - - //create background worker - const backgroundWorker = await setupBackgroundWorker( - prisma, - authenticatedEnvironment, - taskIdentifier - ); - - //now we deploy the background worker - await engine.queueRunsWaitingForWorker({ backgroundWorkerId: backgroundWorker.worker.id }); - - //it's async so we wait - await setTimeout(500); - - //should now be queued - const executionData3R1 = await engine.getRunExecutionData({ runId: run.id }); - const executionData3R2 = await engine.getRunExecutionData({ runId: run2.id }); - assertNonNullable(executionData3R1); - assertNonNullable(executionData3R2); - expect(executionData3R1.snapshot.executionStatus).toBe("QUEUED"); - expect(executionData3R2.snapshot.executionStatus).toBe("QUEUED"); - expect(executionData3R1.run.status).toBe("PENDING"); - expect(executionData3R2.run.status).toBe("PENDING"); - - //queue should be empty - const queueLength2 = await engine.runQueue.lengthOfQueue(authenticatedEnvironment, run.queue); - expect(queueLength2).toBe(2); - } finally { - engine.quit(); - } - }); -}); diff --git a/internal-packages/run-engine/src/engine/tests/pendingVersion.test.ts b/internal-packages/run-engine/src/engine/tests/pendingVersion.test.ts new file mode 100644 index 0000000000..c2c1ae3382 --- /dev/null +++ b/internal-packages/run-engine/src/engine/tests/pendingVersion.test.ts @@ -0,0 +1,319 @@ +import { containerTest, assertNonNullable } from "@internal/testcontainers"; +import { trace } from "@internal/tracing"; +import { RunEngine } from "../index.js"; +import { setTimeout } from "timers/promises"; +import { setupAuthenticatedEnvironment, setupBackgroundWorker } from "./setup.js"; + +vi.setConfig({ testTimeout: 60_000 }); + +describe("RunEngine pending version", () => { + containerTest( + "When a run is triggered but the background task hasn't been created yet", + async ({ prisma, redisOptions }) => { + //create environment + const authenticatedEnvironment = await setupAuthenticatedEnvironment(prisma, "PRODUCTION"); + + const engine = new RunEngine({ + prisma, + worker: { + redis: redisOptions, + workers: 1, + tasksPerWorker: 10, + pollIntervalMs: 100, + }, + queue: { + redis: redisOptions, + }, + runLock: { + redis: redisOptions, + }, + machines: { + defaultMachine: "small-1x", + machines: { + "small-1x": { + name: "small-1x" as const, + cpu: 0.5, + memory: 0.5, + centsPerMs: 0.0001, + }, + }, + baseCostInCents: 0.0001, + }, + //set this so we have to requeue the runs in two batches + queueRunsWaitingForWorkerBatchSize: 1, + tracer: trace.getTracer("test", "0.0.0"), + }); + + try { + const taskIdentifier = "test-task"; + + //trigger the run + const run = await engine.trigger( + { + number: 1, + friendlyId: "run_1234", + environment: authenticatedEnvironment, + taskIdentifier, + payload: "{}", + payloadType: "application/json", + context: {}, + traceContext: {}, + traceId: "t12345", + spanId: "s12345", + masterQueue: "main", + queue: "task/test-task", + isTest: false, + tags: [], + }, + prisma + ); + + //trigger another run + const run2 = await engine.trigger( + { + number: 2, + friendlyId: "run_1235", + environment: authenticatedEnvironment, + taskIdentifier, + payload: "{}", + payloadType: "application/json", + context: {}, + traceContext: {}, + traceId: "t12346", + spanId: "s12346", + masterQueue: "main", + queue: "task/test-task", + isTest: false, + tags: [], + }, + prisma + ); + + //should be queued + const executionDataR1 = await engine.getRunExecutionData({ runId: run.id }); + const executionDataR2 = await engine.getRunExecutionData({ runId: run2.id }); + assertNonNullable(executionDataR1); + assertNonNullable(executionDataR2); + expect(executionDataR1.snapshot.executionStatus).toBe("QUEUED"); + expect(executionDataR2.snapshot.executionStatus).toBe("QUEUED"); + + await setupBackgroundWorker(engine, authenticatedEnvironment, ["test-task-other"]); + + //dequeuing should fail + const dequeued = await engine.dequeueFromMasterQueue({ + consumerId: "test_12345", + masterQueue: run.masterQueue, + maxRunCount: 10, + }); + expect(dequeued.length).toBe(0); + + //queue should be empty + const queueLength = await engine.runQueue.lengthOfQueue( + authenticatedEnvironment, + run.queue + ); + expect(queueLength).toBe(0); + + //check the execution data now + const executionData2R1 = await engine.getRunExecutionData({ runId: run.id }); + const executionData2R2 = await engine.getRunExecutionData({ runId: run2.id }); + assertNonNullable(executionData2R1); + assertNonNullable(executionData2R2); + expect(executionData2R1.snapshot.executionStatus).toBe("RUN_CREATED"); + expect(executionData2R2.snapshot.executionStatus).toBe("RUN_CREATED"); + expect(executionData2R1.run.status).toBe("PENDING_VERSION"); + expect(executionData2R2.run.status).toBe("PENDING_VERSION"); + + //create background worker + const backgroundWorker = await setupBackgroundWorker( + engine, + authenticatedEnvironment, + taskIdentifier + ); + + //it's async so we wait + await setTimeout(500); + + //should now be queued + const executionData3R1 = await engine.getRunExecutionData({ runId: run.id }); + const executionData3R2 = await engine.getRunExecutionData({ runId: run2.id }); + assertNonNullable(executionData3R1); + assertNonNullable(executionData3R2); + expect(executionData3R1.snapshot.executionStatus).toBe("QUEUED"); + expect(executionData3R2.snapshot.executionStatus).toBe("QUEUED"); + expect(executionData3R1.run.status).toBe("PENDING"); + expect(executionData3R2.run.status).toBe("PENDING"); + + //queue should be empty + const queueLength2 = await engine.runQueue.lengthOfQueue( + authenticatedEnvironment, + run.queue + ); + expect(queueLength2).toBe(2); + } finally { + engine.quit(); + } + } + ); + + containerTest( + "When a run is triggered but the queue hasn't been created yet", + async ({ prisma, redisOptions }) => { + //create environment + const authenticatedEnvironment = await setupAuthenticatedEnvironment(prisma, "PRODUCTION"); + + const engine = new RunEngine({ + prisma, + worker: { + redis: redisOptions, + workers: 1, + tasksPerWorker: 10, + pollIntervalMs: 100, + }, + queue: { + redis: redisOptions, + }, + runLock: { + redis: redisOptions, + }, + machines: { + defaultMachine: "small-1x", + machines: { + "small-1x": { + name: "small-1x" as const, + cpu: 0.5, + memory: 0.5, + centsPerMs: 0.0001, + }, + }, + baseCostInCents: 0.0001, + }, + //set this so we have to requeue the runs in two batches + queueRunsWaitingForWorkerBatchSize: 1, + tracer: trace.getTracer("test", "0.0.0"), + }); + + try { + const taskIdentifier = "test-task"; + + await setupBackgroundWorker(engine, authenticatedEnvironment, taskIdentifier); + + //trigger the run + const run = await engine.trigger( + { + number: 1, + friendlyId: "run_1234", + environment: authenticatedEnvironment, + taskIdentifier, + payload: "{}", + payloadType: "application/json", + context: {}, + traceContext: {}, + traceId: "t12345", + spanId: "s12345", + masterQueue: "main", + queue: "custom-queue", + isTest: false, + tags: [], + }, + prisma + ); + + //trigger another run + const run2 = await engine.trigger( + { + number: 2, + friendlyId: "run_1235", + environment: authenticatedEnvironment, + taskIdentifier, + payload: "{}", + payloadType: "application/json", + context: {}, + traceContext: {}, + traceId: "t12346", + spanId: "s12346", + masterQueue: "main", + queue: "custom-queue-2", + isTest: false, + tags: [], + }, + prisma + ); + + //should be queued + const executionDataR1 = await engine.getRunExecutionData({ runId: run.id }); + const executionDataR2 = await engine.getRunExecutionData({ runId: run2.id }); + assertNonNullable(executionDataR1); + assertNonNullable(executionDataR2); + expect(executionDataR1.snapshot.executionStatus).toBe("QUEUED"); + expect(executionDataR2.snapshot.executionStatus).toBe("QUEUED"); + + //dequeuing should fail + const dequeued = await engine.dequeueFromMasterQueue({ + consumerId: "test_12345", + masterQueue: run.masterQueue, + maxRunCount: 10, + }); + expect(dequeued.length).toBe(0); + + //queue should be empty + const queueLength = await engine.runQueue.lengthOfQueue( + authenticatedEnvironment, + run.queue + ); + expect(queueLength).toBe(0); + + //check the execution data now + const executionData2R1 = await engine.getRunExecutionData({ runId: run.id }); + const executionData2R2 = await engine.getRunExecutionData({ runId: run2.id }); + assertNonNullable(executionData2R1); + assertNonNullable(executionData2R2); + expect(executionData2R1.snapshot.executionStatus).toBe("RUN_CREATED"); + expect(executionData2R2.snapshot.executionStatus).toBe("RUN_CREATED"); + expect(executionData2R1.run.status).toBe("PENDING_VERSION"); + expect(executionData2R2.run.status).toBe("PENDING_VERSION"); + + //create background worker + const backgroundWorker = await setupBackgroundWorker( + engine, + authenticatedEnvironment, + taskIdentifier, + undefined, + undefined, + { + customQueues: ["custom-queue", "custom-queue-2"], + } + ); + + //it's async so we wait + await setTimeout(500); + + //should now be queued + const executionData3R1 = await engine.getRunExecutionData({ runId: run.id }); + const executionData3R2 = await engine.getRunExecutionData({ runId: run2.id }); + assertNonNullable(executionData3R1); + assertNonNullable(executionData3R2); + expect(executionData3R1.snapshot.executionStatus).toBe("QUEUED"); + expect(executionData3R2.snapshot.executionStatus).toBe("QUEUED"); + expect(executionData3R1.run.status).toBe("PENDING"); + expect(executionData3R2.run.status).toBe("PENDING"); + + // custom-queue should have 1 run + const queueLength2 = await engine.runQueue.lengthOfQueue( + authenticatedEnvironment, + "custom-queue" + ); + expect(queueLength2).toBe(1); + + // custom-queue-2 should have 1 run + const queueLength3 = await engine.runQueue.lengthOfQueue( + authenticatedEnvironment, + "custom-queue-2" + ); + expect(queueLength3).toBe(1); + } finally { + engine.quit(); + } + } + ); +}); diff --git a/internal-packages/run-engine/src/engine/tests/priority.test.ts b/internal-packages/run-engine/src/engine/tests/priority.test.ts index 2b62544f3a..779238d0cf 100644 --- a/internal-packages/run-engine/src/engine/tests/priority.test.ts +++ b/internal-packages/run-engine/src/engine/tests/priority.test.ts @@ -1,14 +1,11 @@ -import { - containerTest, - setupAuthenticatedEnvironment, - setupBackgroundWorker, -} from "@internal/testcontainers"; +import { containerTest } from "@internal/testcontainers"; import { trace } from "@internal/tracing"; import { generateFriendlyId } from "@trigger.dev/core/v3/isomorphic"; import { RunEngine } from "../index.js"; import { PrismaClientOrTransaction } from "@trigger.dev/database"; import { MinimalAuthenticatedEnvironment } from "../../shared/index.js"; import { setTimeout } from "timers/promises"; +import { setupAuthenticatedEnvironment, setupBackgroundWorker } from "./setup.js"; vi.setConfig({ testTimeout: 60_000 }); @@ -51,7 +48,7 @@ describe("RunEngine priority", () => { //create background worker const backgroundWorker = await setupBackgroundWorker( - prisma, + engine, authenticatedEnvironment, taskIdentifier ); @@ -129,7 +126,7 @@ async function triggerRuns({ traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: `task/${taskIdentifier}`, + queue: `task/${taskIdentifier}`, isTest: false, tags: [], priorityMs: priorities[i], diff --git a/internal-packages/run-engine/src/engine/tests/releaseConcurrency.test.ts b/internal-packages/run-engine/src/engine/tests/releaseConcurrency.test.ts index 27d8e07172..43560d60f8 100644 --- a/internal-packages/run-engine/src/engine/tests/releaseConcurrency.test.ts +++ b/internal-packages/run-engine/src/engine/tests/releaseConcurrency.test.ts @@ -1,12 +1,8 @@ -import { - assertNonNullable, - containerTest, - setupAuthenticatedEnvironment, - setupBackgroundWorker, -} from "@internal/testcontainers"; +import { assertNonNullable, containerTest } from "@internal/testcontainers"; import { trace } from "@internal/tracing"; import { RunEngine } from "../index.js"; import { setTimeout } from "node:timers/promises"; +import { setupAuthenticatedEnvironment, setupBackgroundWorker } from "./setup.js"; vi.setConfig({ testTimeout: 60_000 }); @@ -52,7 +48,7 @@ describe("RunEngine Releasing Concurrency", () => { }); const taskIdentifier = "test-task"; - await setupBackgroundWorker(prisma, authenticatedEnvironment, taskIdentifier); + await setupBackgroundWorker(engine, authenticatedEnvironment, taskIdentifier); const run = await engine.trigger( { @@ -67,7 +63,7 @@ describe("RunEngine Releasing Concurrency", () => { traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: `task/${taskIdentifier}`, + queue: `task/${taskIdentifier}`, isTest: false, tags: [], }, @@ -244,7 +240,7 @@ describe("RunEngine Releasing Concurrency", () => { const taskIdentifier = "test-task"; await setupBackgroundWorker( - prisma, + engine, authenticatedEnvironment, taskIdentifier, undefined, @@ -267,7 +263,7 @@ describe("RunEngine Releasing Concurrency", () => { traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: `task/${taskIdentifier}`, + queue: `task/${taskIdentifier}`, isTest: false, tags: [], }, @@ -431,7 +427,7 @@ describe("RunEngine Releasing Concurrency", () => { const taskIdentifier = "test-task"; await setupBackgroundWorker( - prisma, + engine, authenticatedEnvironment, taskIdentifier, undefined, @@ -455,7 +451,7 @@ describe("RunEngine Releasing Concurrency", () => { traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: `task/${taskIdentifier}`, + queue: `task/${taskIdentifier}`, isTest: false, tags: [], }, @@ -618,7 +614,7 @@ describe("RunEngine Releasing Concurrency", () => { }); const taskIdentifier = "test-task"; - await setupBackgroundWorker(prisma, authenticatedEnvironment, taskIdentifier); + await setupBackgroundWorker(engine, authenticatedEnvironment, taskIdentifier); const run = await engine.trigger( { @@ -633,7 +629,7 @@ describe("RunEngine Releasing Concurrency", () => { traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: `task/${taskIdentifier}`, + queue: `task/${taskIdentifier}`, isTest: false, tags: [], }, @@ -780,7 +776,7 @@ describe("RunEngine Releasing Concurrency", () => { }); const taskIdentifier = "test-task"; - await setupBackgroundWorker(prisma, authenticatedEnvironment, taskIdentifier); + await setupBackgroundWorker(engine, authenticatedEnvironment, taskIdentifier); const run = await engine.trigger( { @@ -795,7 +791,7 @@ describe("RunEngine Releasing Concurrency", () => { traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: `task/${taskIdentifier}`, + queue: `task/${taskIdentifier}`, isTest: false, tags: [], }, @@ -962,7 +958,7 @@ describe("RunEngine Releasing Concurrency", () => { }); const taskIdentifier = "test-task"; - await setupBackgroundWorker(prisma, authenticatedEnvironment, taskIdentifier); + await setupBackgroundWorker(engine, authenticatedEnvironment, taskIdentifier); const run = await engine.trigger( { @@ -977,7 +973,7 @@ describe("RunEngine Releasing Concurrency", () => { traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: `task/${taskIdentifier}`, + queue: `task/${taskIdentifier}`, isTest: false, tags: [], }, diff --git a/internal-packages/testcontainers/src/setup.ts b/internal-packages/run-engine/src/engine/tests/setup.ts similarity index 51% rename from internal-packages/testcontainers/src/setup.ts rename to internal-packages/run-engine/src/engine/tests/setup.ts index b77663f062..be8b331dbe 100644 --- a/internal-packages/testcontainers/src/setup.ts +++ b/internal-packages/run-engine/src/engine/tests/setup.ts @@ -11,6 +11,7 @@ import { RunEngineVersion, RuntimeEnvironmentType, } from "@trigger.dev/database"; +import { RunEngine } from "../index.js"; export type AuthenticatedEnvironment = Prisma.RuntimeEnvironmentGetPayload<{ include: { project: true; organization: true; orgMember: true }; @@ -65,23 +66,36 @@ export async function setupAuthenticatedEnvironment( } export async function setupBackgroundWorker( - prisma: PrismaClient, + engine: RunEngine, environment: AuthenticatedEnvironment, taskIdentifier: string | string[], machineConfig?: MachineConfig, retryOptions?: RetryOptions, queueOptions?: { + customQueues?: string[]; releaseConcurrencyOnWaitpoint?: boolean; concurrencyLimit?: number | null; } ) { - const worker = await prisma.backgroundWorker.create({ + const latestWorkers = await engine.prisma.backgroundWorker.findMany({ + where: { + runtimeEnvironmentId: environment.id, + }, + orderBy: { + createdAt: "desc", + }, + take: 1, + }); + + const nextVersion = calculateNextBuildVersion(latestWorkers[0]?.version); + + const worker = await engine.prisma.backgroundWorker.create({ data: { friendlyId: generateFriendlyId("worker"), contentHash: "hash", projectId: environment.project.id, runtimeEnvironmentId: environment.id, - version: "20241015.1", + version: nextVersion, metadata: {}, }, }); @@ -98,7 +112,7 @@ export async function setupBackgroundWorker( maxTimeoutInMs: 100, randomize: false, }; - const task = await prisma.backgroundWorkerTask.create({ + const task = await engine.prisma.backgroundWorkerTask.create({ data: { friendlyId: generateFriendlyId("task"), slug: identifier, @@ -115,8 +129,14 @@ export async function setupBackgroundWorker( tasks.push(task); const queueName = sanitizeQueueName(`task/${identifier}`); - const taskQueue = await prisma.taskQueue.create({ - data: { + const taskQueue = await engine.prisma.taskQueue.upsert({ + where: { + runtimeEnvironmentId_name: { + name: queueName, + runtimeEnvironmentId: worker.runtimeEnvironmentId, + }, + }, + create: { friendlyId: generateFriendlyId("queue"), name: queueName, concurrencyLimit: @@ -126,21 +146,89 @@ export async function setupBackgroundWorker( runtimeEnvironmentId: worker.runtimeEnvironmentId, projectId: worker.projectId, type: "VIRTUAL", + workers: { + connect: { + id: worker.id, + }, + }, releaseConcurrencyOnWaitpoint: typeof queueOptions?.releaseConcurrencyOnWaitpoint === "boolean" ? queueOptions.releaseConcurrencyOnWaitpoint : undefined, }, + update: { + concurrencyLimit: + typeof queueOptions?.concurrencyLimit === "undefined" + ? 10 + : queueOptions.concurrencyLimit, + workers: { + connect: { + id: worker.id, + }, + }, + }, + }); + + if (typeof taskQueue.concurrencyLimit === "number") { + await engine.runQueue.updateQueueConcurrencyLimits( + environment, + queueName, + taskQueue.concurrencyLimit + ); + } else { + await engine.runQueue.removeQueueConcurrencyLimits(environment, queueName); + } + } + + for (const queueName of queueOptions?.customQueues ?? []) { + const taskQueue = await engine.prisma.taskQueue.upsert({ + where: { + runtimeEnvironmentId_name: { + name: queueName, + runtimeEnvironmentId: worker.runtimeEnvironmentId, + }, + }, + create: { + friendlyId: generateFriendlyId("queue"), + name: queueName, + concurrencyLimit: + typeof queueOptions?.concurrencyLimit === "undefined" + ? 10 + : queueOptions.concurrencyLimit, + runtimeEnvironmentId: worker.runtimeEnvironmentId, + projectId: worker.projectId, + type: "VIRTUAL", + workers: { + connect: { + id: worker.id, + }, + }, + releaseConcurrencyOnWaitpoint: + typeof queueOptions?.releaseConcurrencyOnWaitpoint === "boolean" + ? queueOptions.releaseConcurrencyOnWaitpoint + : undefined, + }, + update: { + concurrencyLimit: + typeof queueOptions?.concurrencyLimit === "undefined" + ? 10 + : queueOptions.concurrencyLimit, + workers: { + connect: { + id: worker.id, + }, + }, + }, }); } if (environment.type !== "DEVELOPMENT") { - const deployment = await prisma.workerDeployment.create({ + const deployment = await engine.prisma.workerDeployment.create({ data: { friendlyId: generateFriendlyId("deployment"), contentHash: worker.contentHash, version: worker.version, - shortCode: "short_code", + shortCode: `short_code_${worker.version}`, imageReference: `trigger/${environment.project.externalRef}:${worker.version}.${environment.slug}`, status: "DEPLOYED", projectId: environment.project.id, @@ -149,14 +237,26 @@ export async function setupBackgroundWorker( }, }); - const promotion = await prisma.workerDeploymentPromotion.create({ - data: { + const promotion = await engine.prisma.workerDeploymentPromotion.upsert({ + where: { + environmentId_label: { + environmentId: deployment.environmentId, + label: CURRENT_DEPLOYMENT_LABEL, + }, + }, + create: { + deploymentId: deployment.id, + environmentId: deployment.environmentId, label: CURRENT_DEPLOYMENT_LABEL, + }, + update: { deploymentId: deployment.id, - environmentId: environment.id, }, }); + //now we deploy the background worker + await engine.scheduleEnqueueRunsForBackgroundWorker(worker.id); + return { worker, tasks, @@ -170,3 +270,24 @@ export async function setupBackgroundWorker( tasks, }; } + +function calculateNextBuildVersion(latestVersion?: string | null): string { + const today = new Date(); + const year = today.getFullYear(); + const month = today.getMonth() + 1; + const day = today.getDate(); + const todayFormatted = `${year}${month < 10 ? "0" : ""}${month}${day < 10 ? "0" : ""}${day}`; + + if (!latestVersion) { + return `${todayFormatted}.1`; + } + + const [date, buildNumber] = latestVersion.split("."); + + if (date === todayFormatted) { + const nextBuildNumber = parseInt(buildNumber, 10) + 1; + return `${date}.${nextBuildNumber}`; + } + + return `${todayFormatted}.1`; +} diff --git a/internal-packages/run-engine/src/engine/tests/trigger.test.ts b/internal-packages/run-engine/src/engine/tests/trigger.test.ts index ba795c3348..2736b27b0a 100644 --- a/internal-packages/run-engine/src/engine/tests/trigger.test.ts +++ b/internal-packages/run-engine/src/engine/tests/trigger.test.ts @@ -1,13 +1,9 @@ -import { - assertNonNullable, - containerTest, - setupAuthenticatedEnvironment, - setupBackgroundWorker, -} from "@internal/testcontainers"; +import { assertNonNullable, containerTest } from "@internal/testcontainers"; import { trace } from "@internal/tracing"; import { expect } from "vitest"; import { EventBusEventArgs } from "../eventBus.js"; import { RunEngine } from "../index.js"; +import { setupAuthenticatedEnvironment, setupBackgroundWorker } from "./setup.js"; vi.setConfig({ testTimeout: 60_000 }); @@ -50,7 +46,7 @@ describe("RunEngine trigger()", () => { //create background worker const backgroundWorker = await setupBackgroundWorker( - prisma, + engine, authenticatedEnvironment, taskIdentifier ); @@ -69,7 +65,7 @@ describe("RunEngine trigger()", () => { traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: "task/test-task", + queue: "task/test-task", isTest: false, tags: [], }, @@ -244,7 +240,7 @@ describe("RunEngine trigger()", () => { //create background worker const backgroundWorker = await setupBackgroundWorker( - prisma, + engine, authenticatedEnvironment, taskIdentifier ); @@ -263,7 +259,7 @@ describe("RunEngine trigger()", () => { traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: "task/test-task", + queue: "task/test-task", isTest: false, tags: [], }, diff --git a/internal-packages/run-engine/src/engine/tests/triggerAndWait.test.ts b/internal-packages/run-engine/src/engine/tests/triggerAndWait.test.ts index 7b24a6c27c..911b141622 100644 --- a/internal-packages/run-engine/src/engine/tests/triggerAndWait.test.ts +++ b/internal-packages/run-engine/src/engine/tests/triggerAndWait.test.ts @@ -1,13 +1,9 @@ -import { - assertNonNullable, - containerTest, - setupAuthenticatedEnvironment, - setupBackgroundWorker, -} from "@internal/testcontainers"; +import { assertNonNullable, containerTest } from "@internal/testcontainers"; import { trace } from "@internal/tracing"; import { expect } from "vitest"; import { RunEngine } from "../index.js"; import { setTimeout } from "node:timers/promises"; +import { setupAuthenticatedEnvironment, setupBackgroundWorker } from "./setup.js"; vi.setConfig({ testTimeout: 60_000 }); @@ -50,7 +46,7 @@ describe("RunEngine triggerAndWait", () => { const childTask = "child-task"; //create background worker - await setupBackgroundWorker(prisma, authenticatedEnvironment, [parentTask, childTask]); + await setupBackgroundWorker(engine, authenticatedEnvironment, [parentTask, childTask]); //trigger the run const parentRun = await engine.trigger( @@ -66,7 +62,7 @@ describe("RunEngine triggerAndWait", () => { traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: `task/${parentTask}`, + queue: `task/${parentTask}`, isTest: false, tags: [], }, @@ -101,7 +97,7 @@ describe("RunEngine triggerAndWait", () => { traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: `task/${childTask}`, + queue: `task/${childTask}`, isTest: false, tags: [], resumeParentOnCompletion: true, @@ -238,7 +234,7 @@ describe("RunEngine triggerAndWait", () => { const childTask = "child-task"; //create background worker - await setupBackgroundWorker(prisma, authenticatedEnvironment, [parentTask, childTask]); + await setupBackgroundWorker(engine, authenticatedEnvironment, [parentTask, childTask]); //trigger the run const parentRun1 = await engine.trigger( @@ -254,7 +250,7 @@ describe("RunEngine triggerAndWait", () => { traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: `task/${parentTask}`, + queue: `task/${parentTask}`, isTest: false, tags: [], }, @@ -286,7 +282,7 @@ describe("RunEngine triggerAndWait", () => { traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: `task/${childTask}`, + queue: `task/${childTask}`, isTest: false, tags: [], resumeParentOnCompletion: true, @@ -343,7 +339,7 @@ describe("RunEngine triggerAndWait", () => { traceId: "t12346", spanId: "s12346", masterQueue: "main", - queueName: `task/${parentTask}`, + queue: `task/${parentTask}`, isTest: false, tags: [], }, diff --git a/internal-packages/run-engine/src/engine/tests/ttl.test.ts b/internal-packages/run-engine/src/engine/tests/ttl.test.ts index e46b93f449..2643f5cae7 100644 --- a/internal-packages/run-engine/src/engine/tests/ttl.test.ts +++ b/internal-packages/run-engine/src/engine/tests/ttl.test.ts @@ -1,14 +1,10 @@ -import { - containerTest, - setupAuthenticatedEnvironment, - setupBackgroundWorker, - assertNonNullable, -} from "@internal/testcontainers"; +import { containerTest, assertNonNullable } from "@internal/testcontainers"; import { trace } from "@internal/tracing"; import { expect } from "vitest"; import { RunEngine } from "../index.js"; import { setTimeout } from "timers/promises"; import { EventBusEventArgs } from "../eventBus.js"; +import { setupAuthenticatedEnvironment, setupBackgroundWorker } from "./setup.js"; vi.setConfig({ testTimeout: 60_000 }); @@ -51,7 +47,7 @@ describe("RunEngine ttl", () => { //create background worker const backgroundWorker = await setupBackgroundWorker( - prisma, + engine, authenticatedEnvironment, taskIdentifier ); @@ -70,7 +66,7 @@ describe("RunEngine ttl", () => { traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: "task/test-task", + queue: "task/test-task", isTest: false, tags: [], ttl: "1s", diff --git a/internal-packages/run-engine/src/engine/tests/waitpoints.test.ts b/internal-packages/run-engine/src/engine/tests/waitpoints.test.ts index 519212aedf..9fa70af020 100644 --- a/internal-packages/run-engine/src/engine/tests/waitpoints.test.ts +++ b/internal-packages/run-engine/src/engine/tests/waitpoints.test.ts @@ -1,15 +1,11 @@ -import { - assertNonNullable, - containerTest, - setupAuthenticatedEnvironment, - setupBackgroundWorker, -} from "@internal/testcontainers"; +import { assertNonNullable, containerTest } from "@internal/testcontainers"; import { trace } from "@internal/tracing"; import { expect } from "vitest"; import { RunEngine } from "../index.js"; import { setTimeout } from "node:timers/promises"; import { EventBusEventArgs } from "../eventBus.js"; import { isWaitpointOutputTimeout } from "@trigger.dev/core/v3"; +import { setupAuthenticatedEnvironment, setupBackgroundWorker } from "./setup.js"; vi.setConfig({ testTimeout: 60_000 }); @@ -51,7 +47,7 @@ describe("RunEngine Waitpoints", () => { const taskIdentifier = "test-task"; //create background worker - await setupBackgroundWorker(prisma, authenticatedEnvironment, taskIdentifier); + await setupBackgroundWorker(engine, authenticatedEnvironment, taskIdentifier); //trigger the run const run = await engine.trigger( @@ -67,7 +63,7 @@ describe("RunEngine Waitpoints", () => { traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: "task/test-task", + queue: "task/test-task", isTest: false, tags: [], }, @@ -166,7 +162,7 @@ describe("RunEngine Waitpoints", () => { const taskIdentifier = "test-task"; //create background worker - await setupBackgroundWorker(prisma, authenticatedEnvironment, taskIdentifier); + await setupBackgroundWorker(engine, authenticatedEnvironment, taskIdentifier); //trigger the run const run = await engine.trigger( @@ -182,7 +178,7 @@ describe("RunEngine Waitpoints", () => { traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: "task/test-task", + queue: "task/test-task", isTest: false, tags: [], }, @@ -308,7 +304,7 @@ describe("RunEngine Waitpoints", () => { const taskIdentifier = "test-task"; //create background worker - await setupBackgroundWorker(prisma, authenticatedEnvironment, taskIdentifier); + await setupBackgroundWorker(engine, authenticatedEnvironment, taskIdentifier); //trigger the run const run = await engine.trigger( @@ -324,7 +320,7 @@ describe("RunEngine Waitpoints", () => { traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: "task/test-task", + queue: "task/test-task", isTest: false, tags: [], }, @@ -446,7 +442,7 @@ describe("RunEngine Waitpoints", () => { const taskIdentifier = "test-task"; //create background worker - await setupBackgroundWorker(prisma, authenticatedEnvironment, taskIdentifier); + await setupBackgroundWorker(engine, authenticatedEnvironment, taskIdentifier); //trigger the run const run = await engine.trigger( @@ -462,7 +458,7 @@ describe("RunEngine Waitpoints", () => { traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: "task/test-task", + queue: "task/test-task", isTest: false, tags: [], }, @@ -563,7 +559,7 @@ describe("RunEngine Waitpoints", () => { const taskIdentifier = "test-task"; //create background worker - await setupBackgroundWorker(prisma, authenticatedEnvironment, taskIdentifier); + await setupBackgroundWorker(engine, authenticatedEnvironment, taskIdentifier); //trigger the run const run = await engine.trigger( @@ -579,7 +575,7 @@ describe("RunEngine Waitpoints", () => { traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: "task/test-task", + queue: "task/test-task", isTest: false, tags: [], }, @@ -712,7 +708,7 @@ describe("RunEngine Waitpoints", () => { const taskIdentifier = "test-task"; //create background worker - await setupBackgroundWorker(prisma, authenticatedEnvironment, taskIdentifier); + await setupBackgroundWorker(engine, authenticatedEnvironment, taskIdentifier); //trigger the run const run = await engine.trigger( @@ -728,7 +724,7 @@ describe("RunEngine Waitpoints", () => { traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: "task/test-task", + queue: "task/test-task", isTest: false, tags: [], }, @@ -860,7 +856,7 @@ describe("RunEngine Waitpoints", () => { const taskIdentifier = "test-task"; //create background worker - await setupBackgroundWorker(prisma, authenticatedEnvironment, taskIdentifier); + await setupBackgroundWorker(engine, authenticatedEnvironment, taskIdentifier); //trigger the run const run = await engine.trigger( @@ -876,7 +872,7 @@ describe("RunEngine Waitpoints", () => { traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: "task/test-task", + queue: "task/test-task", isTest: false, tags: [], }, @@ -1011,7 +1007,7 @@ describe("RunEngine Waitpoints", () => { const taskIdentifier = "test-task"; //create background worker - await setupBackgroundWorker(prisma, authenticatedEnvironment, taskIdentifier); + await setupBackgroundWorker(engine, authenticatedEnvironment, taskIdentifier); //trigger the run const run = await engine.trigger( @@ -1027,7 +1023,7 @@ describe("RunEngine Waitpoints", () => { traceId: "t12345", spanId: "s12345", masterQueue: "main", - queueName: "task/test-task", + queue: "task/test-task", isTest: false, tags: [], }, @@ -1170,10 +1166,18 @@ describe("RunEngine Waitpoints", () => { try { const taskIdentifier = "test-task"; - const queueName = "task/test-task-limited"; // Create background worker - await setupBackgroundWorker(prisma, authenticatedEnvironment, taskIdentifier); + await setupBackgroundWorker( + engine, + authenticatedEnvironment, + taskIdentifier, + undefined, + undefined, + { + concurrencyLimit: 1, + } + ); // Create first run with queue concurrency limit of 1 const firstRun = await engine.trigger( @@ -1189,10 +1193,9 @@ describe("RunEngine Waitpoints", () => { traceId: "t12345-first", spanId: "s12345-first", masterQueue: "main", - queueName, + queue: "task/test-task", isTest: false, tags: [], - queue: { concurrencyLimit: 1 }, }, prisma ); @@ -1244,10 +1247,9 @@ describe("RunEngine Waitpoints", () => { traceId: "t12345-second", spanId: "s12345-second", masterQueue: "main", - queueName, + queue: "task/test-task", isTest: false, tags: [], - queue: { concurrencyLimit: 1 }, }, prisma ); diff --git a/internal-packages/run-engine/src/engine/types.ts b/internal-packages/run-engine/src/engine/types.ts index bfb57988a5..c4ad4942c3 100644 --- a/internal-packages/run-engine/src/engine/types.ts +++ b/internal-packages/run-engine/src/engine/types.ts @@ -80,8 +80,7 @@ export type TriggerParams = { cliVersion?: string; concurrencyKey?: string; masterQueue?: string; - queueName: string; - queue?: QueueOptions; + queue: string; isTest: boolean; delayUntil?: Date; queuedAt?: Date; diff --git a/internal-packages/run-engine/src/engine/workerCatalog.ts b/internal-packages/run-engine/src/engine/workerCatalog.ts index e4d945d654..92eddce19e 100644 --- a/internal-packages/run-engine/src/engine/workerCatalog.ts +++ b/internal-packages/run-engine/src/engine/workerCatalog.ts @@ -29,7 +29,7 @@ export const workerCatalog = { }), visibilityTimeoutMs: 5000, }, - queueRunsWaitingForWorker: { + queueRunsPendingVersion: { schema: z.object({ backgroundWorkerId: z.string(), }), diff --git a/internal-packages/run-engine/src/index.ts b/internal-packages/run-engine/src/index.ts index 8d77c66a04..ff08ab0a51 100644 --- a/internal-packages/run-engine/src/index.ts +++ b/internal-packages/run-engine/src/index.ts @@ -1,3 +1,4 @@ export { RunEngine } from "./engine/index.js"; export { RunDuplicateIdempotencyKeyError } from "./engine/errors.js"; export type { EventBusEventArgs } from "./engine/eventBus.js"; +export type { AuthenticatedEnvironment } from "./shared/index.js"; diff --git a/internal-packages/run-engine/src/run-queue/tests/fairQueueSelectionStrategy.test.ts b/internal-packages/run-engine/src/run-queue/tests/fairQueueSelectionStrategy.test.ts index 3230ba73a0..4f8f9178fe 100644 --- a/internal-packages/run-engine/src/run-queue/tests/fairQueueSelectionStrategy.test.ts +++ b/internal-packages/run-engine/src/run-queue/tests/fairQueueSelectionStrategy.test.ts @@ -211,8 +211,8 @@ describe("FairDequeuingStrategy", () => { console.log("Second distribution took", distribute2Duration, "ms"); - // Make sure the second call is more than 6 times faster than the first - expect(distribute2Duration).toBeLessThan(distribute1Duration / 6); + // Make sure the second call is more than 2 times faster than the first + expect(distribute2Duration).toBeLessThan(distribute1Duration / 2); const startDistribute3 = performance.now(); diff --git a/internal-packages/run-engine/tsconfig.src.json b/internal-packages/run-engine/tsconfig.src.json index 5617aa970c..6043e02ad2 100644 --- a/internal-packages/run-engine/tsconfig.src.json +++ b/internal-packages/run-engine/tsconfig.src.json @@ -14,6 +14,7 @@ "isolatedModules": true, "preserveWatchOutput": true, "skipLibCheck": true, - "strict": true + "strict": true, + "customConditions": ["@triggerdotdev/source"] } } diff --git a/internal-packages/run-engine/tsconfig.test.json b/internal-packages/run-engine/tsconfig.test.json index d8c7d1c638..b68d234bd7 100644 --- a/internal-packages/run-engine/tsconfig.test.json +++ b/internal-packages/run-engine/tsconfig.test.json @@ -1,5 +1,5 @@ { - "include": ["src/**/*.test.ts", "src/run-queue/tests/dequeueMessageFromMasterQueue.ts"], + "include": ["src/**/*.test.ts"], "references": [{ "path": "./tsconfig.src.json" }], "compilerOptions": { "composite": true, diff --git a/internal-packages/testcontainers/src/index.ts b/internal-packages/testcontainers/src/index.ts index b21ba9b04e..3d99beb709 100644 --- a/internal-packages/testcontainers/src/index.ts +++ b/internal-packages/testcontainers/src/index.ts @@ -1,14 +1,13 @@ import { StartedPostgreSqlContainer } from "@testcontainers/postgresql"; import { StartedRedisContainer } from "@testcontainers/redis"; import { PrismaClient } from "@trigger.dev/database"; -import { Redis, RedisOptions } from "ioredis"; +import { RedisOptions } from "ioredis"; import { Network, type StartedNetwork } from "testcontainers"; import { test } from "vitest"; import { createElectricContainer, createPostgresContainer, createRedisContainer } from "./utils"; -export { StartedRedisContainer }; -export * from "./setup"; export { assertNonNullable } from "./utils"; +export { StartedRedisContainer }; type NetworkContext = { network: StartedNetwork }; @@ -37,8 +36,12 @@ const network = async ({}, use: Use) => { try { await use(network); } finally { + try { + await network.stop(); + } catch (error) { + console.warn("Network stop error (ignored):", error); + } // Make sure to stop the network after use - await network.stop(); } }; diff --git a/package.json b/package.json index 13698ce2e1..45f5d91bb6 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,10 @@ "dev:docker": "docker-compose -p triggerdotdev-dev-docker -f docker/dev-compose.yml up -d", "dev:docker:build": "docker-compose -p triggerdotdev-dev-docker -f docker/dev-compose.yml up -d --build", "dev:docker:stop": "docker-compose -p triggerdotdev-dev-docker -f docker/dev-compose.yml stop", - "test": "turbo run test", + "test": "turbo run test --concurrency=1 -- --run", + "test:webapp": "turbo run test --filter webapp -- --run", + "test:packages": "turbo run test --concurrency=1 --filter \"@trigger.dev/*\" -- --run", + "test:internal": "turbo run test --concurrency=1 --filter \"@internal/*\" -- --run", "test:dev": "turbo run test:dev", "start": "turbo run start", "check-exports": "turbo run check-exports", diff --git a/packages/cli-v3/e2e/README.md b/packages/cli-v3/e2e/README.md index 7c9e3765b7..b761b7e1b9 100644 --- a/packages/cli-v3/e2e/README.md +++ b/packages/cli-v3/e2e/README.md @@ -216,3 +216,22 @@ This will test your fixture project, and generate outputs in the `packages/cli-v ``` > You might expect a specific error for a specific test, so use those configuration option at your discretion. + +## Updating the SDK in the fixtures + +The `@trigger.dev/sdk` package is installed in the fixtures as a real dependency (not from the monorepo). + +To update it, you'll need to update the version in the `package.json` file, and then run the following commands: + +> NOTE: Some fixtures don't support all the package managers, like the monorepo-react-email only supports yarn and pnpm. + +```sh +cd packages/cli-v3/e2e/fixtures/ +rm -rf **/node_modules +corepack use pnpm@8.15.5 +rm -rf **/node_modules +npm install +rm -rf **/node_modules +corepack use yarn@4.2.2 +rm -rf **/node_modules +``` diff --git a/packages/cli-v3/e2e/fixtures.ts b/packages/cli-v3/e2e/fixtures.ts index ce694b7553..44409230f0 100644 --- a/packages/cli-v3/e2e/fixtures.ts +++ b/packages/cli-v3/e2e/fixtures.ts @@ -10,7 +10,7 @@ export interface TestCaseRun { task: { id: string; filePath: string; - exportName: string; + exportName?: string; }; payload: string; payloadType?: string; @@ -59,7 +59,6 @@ export const fixturesConfig: TestCase[] = [ { id: "helloWorld", filePath: "src/trigger/helloWorld.ts", - exportName: "helloWorld", }, ], }, @@ -93,13 +92,12 @@ export const fixturesConfig: TestCase[] = [ { id: "ai", filePath: "src/trigger/ai.ts", - exportName: "aiTask", }, ], }, runs: [ { - task: { id: "ai", filePath: "src/trigger/ai.ts", exportName: "aiTask" }, + task: { id: "ai", filePath: "src/trigger/ai.ts" }, payload: '{"prompt":"be funny"}', result: { ok: true, durationMs: 1 }, }, @@ -126,17 +124,12 @@ export const fixturesConfig: TestCase[] = [ { id: "decoratorsTask", filePath: "src/trigger/decorators.ts", - exportName: "decoratorsTask", }, ], }, runs: [ { - task: { - id: "decoratorsTask", - filePath: "src/trigger/decorators.ts", - exportName: "decoratorsTask", - }, + task: { id: "decoratorsTask", filePath: "src/trigger/decorators.ts" }, payload: "{}", result: { ok: true, durationMs: 1 }, }, @@ -162,13 +155,12 @@ export const fixturesConfig: TestCase[] = [ { id: "react-email", filePath: "src/reactEmail.tsx", - exportName: "reactEmail", }, ], }, runs: [ { - task: { id: "react-email", filePath: "src/reactEmail.tsx", exportName: "reactEmail" }, + task: { id: "react-email", filePath: "src/reactEmail.tsx" }, payload: "{}", result: { ok: true, @@ -200,13 +192,12 @@ export const fixturesConfig: TestCase[] = [ { id: "helloWorld", filePath: "src/trigger/helloWorld.ts", - exportName: "helloWorld", }, ], }, runs: [ { - task: { id: "helloWorld", filePath: "src/trigger/helloWorld.ts", exportName: "helloWorld" }, + task: { id: "helloWorld", filePath: "src/trigger/helloWorld.ts" }, payload: "{}", result: { ok: true, durationMs: 1 }, }, diff --git a/packages/cli-v3/e2e/fixtures/emit-decorator-metadata/package-lock.json b/packages/cli-v3/e2e/fixtures/emit-decorator-metadata/package-lock.json index 305e9ce4a8..f35a67c560 100644 --- a/packages/cli-v3/e2e/fixtures/emit-decorator-metadata/package-lock.json +++ b/packages/cli-v3/e2e/fixtures/emit-decorator-metadata/package-lock.json @@ -9,11 +9,11 @@ "packages/*" ], "dependencies": { - "@trigger.dev/sdk": "0.0.0-prerelease-20250116195421", + "@trigger.dev/sdk": "0.0.0-prerelease-20250321122618", "reflect-metadata": "0.2.2" }, "devDependencies": { - "@trigger.dev/build": "0.0.0-prerelease-20250116195421", + "@trigger.dev/build": "0.0.0-prerelease-20250321122618", "@types/node": "22.5.4", "typescript": "5.5.4" }, @@ -22,6 +22,11 @@ "yarn": "4.2.2" } }, + "node_modules/@bugsnag/cuid": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@bugsnag/cuid/-/cuid-3.2.1.tgz", + "integrity": "sha512-zpvN8xQ5rdRWakMd/BcVkdn2F8HKlDSbM3l7duueK590WmI1T0ObTLc1V/1e55r14WNjPd5AJTYX4yPEAFVi+Q==" + }, "node_modules/@electric-sql/client": { "version": "1.0.0-beta.1", "resolved": "https://registry.npmjs.org/@electric-sql/client/-/client-1.0.0-beta.1.tgz", @@ -39,9 +44,9 @@ } }, "node_modules/@grpc/grpc-js": { - "version": "1.12.5", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.12.5.tgz", - "integrity": "sha512-d3iiHxdpg5+ZcJ6jnDSOT8Z0O0VMVGy34jAnYLUX8yd36b1qn8f1TwOA/Lc7TsOh03IkPJ38eGI5qD2EjNkoEA==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.13.0.tgz", + "integrity": "sha512-pMuxInZjUnUkgMT2QLZclRqwk2ykJbIU05aZgPgJYXEpN9+2I7z7aNwcjWZSycRPl232FfhPszyBFJyOxTHNog==", "dependencies": { "@grpc/proto-loader": "^0.7.13", "@js-sdsl/ordered-map": "^4.4.2" @@ -112,11 +117,11 @@ } }, "node_modules/@opentelemetry/core": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", - "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.30.1.tgz", + "integrity": "sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==", "dependencies": { - "@opentelemetry/semantic-conventions": "1.25.1" + "@opentelemetry/semantic-conventions": "1.28.0" }, "engines": { "node": ">=14" @@ -125,6 +130,14 @@ "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, + "node_modules/@opentelemetry/core/node_modules/@opentelemetry/semantic-conventions": { + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz", + "integrity": "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==", + "engines": { + "node": ">=14" + } + }, "node_modules/@opentelemetry/exporter-logs-otlp-http": { "version": "0.52.1", "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-logs-otlp-http/-/exporter-logs-otlp-http-0.52.1.tgz", @@ -143,6 +156,20 @@ "@opentelemetry/api": "^1.0.0" } }, + "node_modules/@opentelemetry/exporter-logs-otlp-http/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/exporter-trace-otlp-grpc": { "version": "0.52.1", "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-grpc/-/exporter-trace-otlp-grpc-0.52.1.tgz", @@ -162,6 +189,20 @@ "@opentelemetry/api": "^1.0.0" } }, + "node_modules/@opentelemetry/exporter-trace-otlp-grpc/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/exporter-trace-otlp-http": { "version": "0.52.1", "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.52.1.tgz", @@ -180,6 +221,20 @@ "@opentelemetry/api": "^1.0.0" } }, + "node_modules/@opentelemetry/exporter-trace-otlp-http/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/exporter-trace-otlp-proto": { "version": "0.52.1", "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-proto/-/exporter-trace-otlp-proto-0.52.1.tgz", @@ -198,6 +253,20 @@ "@opentelemetry/api": "^1.0.0" } }, + "node_modules/@opentelemetry/exporter-trace-otlp-proto/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/exporter-zipkin": { "version": "1.25.1", "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-zipkin/-/exporter-zipkin-1.25.1.tgz", @@ -215,6 +284,20 @@ "@opentelemetry/api": "^1.0.0" } }, + "node_modules/@opentelemetry/exporter-zipkin/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/instrumentation": { "version": "0.52.1", "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.52.1.tgz", @@ -249,6 +332,20 @@ "@opentelemetry/api": "^1.0.0" } }, + "node_modules/@opentelemetry/otlp-exporter-base/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/otlp-grpc-exporter-base": { "version": "0.52.1", "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-grpc-exporter-base/-/otlp-grpc-exporter-base-0.52.1.tgz", @@ -266,6 +363,20 @@ "@opentelemetry/api": "^1.0.0" } }, + "node_modules/@opentelemetry/otlp-grpc-exporter-base/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/otlp-transformer": { "version": "0.52.1", "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-transformer/-/otlp-transformer-0.52.1.tgz", @@ -286,6 +397,20 @@ "@opentelemetry/api": ">=1.3.0 <1.10.0" } }, + "node_modules/@opentelemetry/otlp-transformer/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/propagator-b3": { "version": "1.25.1", "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-b3/-/propagator-b3-1.25.1.tgz", @@ -300,6 +425,20 @@ "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, + "node_modules/@opentelemetry/propagator-b3/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/propagator-jaeger": { "version": "1.25.1", "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.25.1.tgz", @@ -314,6 +453,20 @@ "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, + "node_modules/@opentelemetry/propagator-jaeger/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/resources": { "version": "1.25.1", "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.25.1.tgz", @@ -329,6 +482,20 @@ "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, + "node_modules/@opentelemetry/resources/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/sdk-logs": { "version": "0.52.1", "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-logs/-/sdk-logs-0.52.1.tgz", @@ -345,6 +512,20 @@ "@opentelemetry/api": ">=1.4.0 <1.10.0" } }, + "node_modules/@opentelemetry/sdk-logs/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/sdk-metrics": { "version": "1.25.1", "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics/-/sdk-metrics-1.25.1.tgz", @@ -361,6 +542,20 @@ "@opentelemetry/api": ">=1.3.0 <1.10.0" } }, + "node_modules/@opentelemetry/sdk-metrics/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/sdk-node": { "version": "0.52.1", "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-node/-/sdk-node-0.52.1.tgz", @@ -387,6 +582,20 @@ "@opentelemetry/api": ">=1.3.0 <1.10.0" } }, + "node_modules/@opentelemetry/sdk-node/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/sdk-trace-base": { "version": "1.25.1", "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.25.1.tgz", @@ -403,6 +612,20 @@ "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, + "node_modules/@opentelemetry/sdk-trace-base/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/sdk-trace-node": { "version": "1.25.1", "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.25.1.tgz", @@ -422,6 +645,20 @@ "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, + "node_modules/@opentelemetry/sdk-trace-node/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/semantic-conventions": { "version": "1.25.1", "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.25.1.tgz", @@ -485,9 +722,9 @@ "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.30.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.30.1.tgz", - "integrity": "sha512-r7FQIXD7gB0WJ5mokTUgUWPl0eYIH0wnxqeSAhuIwvnnpjdVB8cRRClyKLQr7lgzjctkbp5KmswWszlwYln03Q==", + "version": "4.36.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.36.0.tgz", + "integrity": "sha512-JQ1Jk5G4bGrD4pWJQzWsD8I1n1mgPXq33+/vP4sk8j/z/C2siRuxZtaUA7yMTf71TCZTZl/4e1bfzwUmFb3+rw==", "cpu": [ "arm64" ], @@ -502,12 +739,12 @@ "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==" }, "node_modules/@trigger.dev/build": { - "version": "0.0.0-prerelease-20250116195421", - "resolved": "https://registry.npmjs.org/@trigger.dev/build/-/build-0.0.0-prerelease-20250116195421.tgz", - "integrity": "sha512-G9Xjzgxc9lhutVCwE7VwGE0RXpGNhATZYB6svbic6cQX9BhKKybRvIsiTjw39Rx4Y1XU0KHkE8IuGE0eIBDZLg==", + "version": "0.0.0-prerelease-20250321122618", + "resolved": "https://registry.npmjs.org/@trigger.dev/build/-/build-0.0.0-prerelease-20250321122618.tgz", + "integrity": "sha512-WkA/9gzsB8cAiSYHH/yo4mrkior0U7xzE2GfvkkxAlNqCJrCaMS2sVsel6MI87RiESJjallqemzBxGs9xgZPYg==", "dev": true, "dependencies": { - "@trigger.dev/core": "0.0.0-prerelease-20250116195421", + "@trigger.dev/core": "0.0.0-prerelease-20250321122618", "pkg-types": "^1.1.3", "tinyglobby": "^0.2.2", "tsconfck": "3.1.3" @@ -517,15 +754,17 @@ } }, "node_modules/@trigger.dev/core": { - "version": "0.0.0-prerelease-20250116195421", - "resolved": "https://registry.npmjs.org/@trigger.dev/core/-/core-0.0.0-prerelease-20250116195421.tgz", - "integrity": "sha512-bxZ5vq3txcUxQln8BZSb2No7gHPG/qTSeo5uq6W2+OQKoVN+c5pmVTYQQa6Fwfd2AXhpkU9ovdM3V1IoEddOtA==", + "version": "0.0.0-prerelease-20250321122618", + "resolved": "https://registry.npmjs.org/@trigger.dev/core/-/core-0.0.0-prerelease-20250321122618.tgz", + "integrity": "sha512-0hSMKqvM39V1A8YjZxYivw109ZrGk22Pfa8ydQ29nCubdeTMe6for+AYzj89BIOnEGeEZ24Hzg2uVc5Av9BUHg==", "dependencies": { + "@bugsnag/cuid": "^3.1.1", "@electric-sql/client": "1.0.0-beta.1", "@google-cloud/precise-date": "^4.0.0", "@jsonhero/path": "^1.0.21", "@opentelemetry/api": "1.9.0", "@opentelemetry/api-logs": "0.52.1", + "@opentelemetry/core": "^1.30.1", "@opentelemetry/exporter-logs-otlp-http": "0.52.1", "@opentelemetry/exporter-trace-otlp-http": "0.52.1", "@opentelemetry/instrumentation": "0.52.1", @@ -536,13 +775,16 @@ "@opentelemetry/sdk-trace-node": "1.25.1", "@opentelemetry/semantic-conventions": "1.25.1", "dequal": "^2.0.3", + "eventsource": "^3.0.5", "eventsource-parser": "^3.0.0", "execa": "^8.0.1", "humanize-duration": "^3.27.3", "jose": "^5.4.0", "nanoid": "^3.3.4", + "socket.io": "4.7.4", "socket.io-client": "4.7.5", "superjson": "^2.2.1", + "tinyexec": "^0.3.2", "zod": "3.23.8", "zod-error": "1.5.0", "zod-validation-error": "^1.5.0" @@ -560,14 +802,14 @@ } }, "node_modules/@trigger.dev/sdk": { - "version": "0.0.0-prerelease-20250116195421", - "resolved": "https://registry.npmjs.org/@trigger.dev/sdk/-/sdk-0.0.0-prerelease-20250116195421.tgz", - "integrity": "sha512-/Kw+q/mDulGgiSHR9L3nldGOWH72AQAys9zuoBO72JjVfipKI1R8jjqQHhZjWqolMYqgg9XaJr9lQM8sV5lWwQ==", + "version": "0.0.0-prerelease-20250321122618", + "resolved": "https://registry.npmjs.org/@trigger.dev/sdk/-/sdk-0.0.0-prerelease-20250321122618.tgz", + "integrity": "sha512-/DOWqGdTxkeUY3WIJ/lPS8vC9VwitQiB+ONHCR5L1xBovHVaCyj3zMn/dWPsM+Wtz2wVZAPZ45pmHqvJEX3qLw==", "dependencies": { "@opentelemetry/api": "1.9.0", "@opentelemetry/api-logs": "0.52.1", "@opentelemetry/semantic-conventions": "1.25.1", - "@trigger.dev/core": "0.0.0-prerelease-20250116195421", + "@trigger.dev/core": "0.0.0-prerelease-20250321122618", "chalk": "^5.2.0", "cronstrue": "^2.21.0", "debug": "^4.3.4", @@ -575,6 +817,7 @@ "slug": "^6.0.0", "terminal-link": "^3.0.0", "ulid": "^2.3.0", + "uncrypto": "^0.1.3", "uuid": "^9.0.0", "ws": "^8.11.0" }, @@ -585,6 +828,19 @@ "zod": "^3.0.0" } }, + "node_modules/@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==" + }, + "node_modules/@types/cors": { + "version": "2.8.17", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz", + "integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/node": { "version": "22.5.4", "resolved": "https://registry.npmjs.org/@types/node/-/node-22.5.4.tgz", @@ -598,10 +854,22 @@ "resolved": "https://registry.npmjs.org/@types/shimmer/-/shimmer-1.2.0.tgz", "integrity": "sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==" }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/acorn": { - "version": "8.12.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", - "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "version": "8.14.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", + "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", "bin": { "acorn": "bin/acorn" }, @@ -639,6 +907,14 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "engines": { + "node": "^4.5.0 || >= 5.9" + } + }, "node_modules/chalk": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", @@ -651,9 +927,9 @@ } }, "node_modules/cjs-module-lexer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.1.tgz", - "integrity": "sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==" + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz", + "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==" }, "node_modules/cliui": { "version": "8.0.1", @@ -690,6 +966,14 @@ "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==", "dev": true }, + "node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/copy-anything": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-3.0.5.tgz", @@ -704,6 +988,18 @@ "url": "https://github.com/sponsors/mesqueeb" } }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/cronstrue": { "version": "2.50.0", "resolved": "https://registry.npmjs.org/cronstrue/-/cronstrue-2.50.0.tgz", @@ -754,6 +1050,26 @@ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, + "node_modules/engine.io": { + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.5.5.tgz", + "integrity": "sha512-C5Pn8Wk+1vKBoHghJODM63yk8MvrO9EWZUfkAt5HAqIgPE4/8FF0PEGHXtEd40l223+cE5ABWuPzm38PHFXfMA==", + "dependencies": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.17.1" + }, + "engines": { + "node": ">=10.2.0" + } + }, "node_modules/engine.io-client": { "version": "6.5.4", "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.4.tgz", @@ -810,6 +1126,42 @@ "node": ">=10.0.0" } }, + "node_modules/engine.io/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/engine.io/node_modules/ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/escalade": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", @@ -818,6 +1170,17 @@ "node": ">=6" } }, + "node_modules/eventsource": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-3.0.5.tgz", + "integrity": "sha512-LT/5J605bx5SNyE+ITBDiM3FxffBiq9un7Vx0EwMDM3vg8sWKx/tO2zC+LMqZ+smAM0F2hblaDZUVZF0te2pSw==", + "dependencies": { + "eventsource-parser": "^3.0.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/eventsource-parser": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.0.0.tgz", @@ -932,11 +1295,11 @@ "integrity": "sha512-inh5wue5XdfObhu/IGEMiA1nUXigSGcaKNemcbLRKa7jXYGDZXr3LoT9pTIzq2hPEbld7w/qv9h+ikWGz8fL1g==" }, "node_modules/import-in-the-middle": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-1.12.0.tgz", - "integrity": "sha512-yAgSE7GmtRcu4ZUSFX/4v69UGXwugFFSdIQJ14LHPOPPQrWv8Y7O9PHsw8Ovk7bKCLe4sjXMbZFqGFcLHpZ89w==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-1.13.1.tgz", + "integrity": "sha512-k2V9wNm9B+ysuelDTHjI9d5KPc4l8zAZTGqj+pcynvWkypZd857ryzN8jNC7Pg2YZXNMJcHRPpaDyCBbNyVRpA==", "dependencies": { - "acorn": "^8.8.2", + "acorn": "^8.14.0", "acorn-import-attributes": "^1.9.5", "cjs-module-lexer": "^1.2.2", "module-details-from-path": "^1.0.3" @@ -992,9 +1355,9 @@ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "node_modules/jose": { - "version": "5.9.6", - "resolved": "https://registry.npmjs.org/jose/-/jose-5.9.6.tgz", - "integrity": "sha512-AMlnetc9+CV9asI19zHmrgS/WYsWUwCn2R7RzlbJWD7F9eWYUTGyBmU9o6PxngtLGOiDGPRu+Uc4fhKzbpteZQ==", + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/jose/-/jose-5.10.0.tgz", + "integrity": "sha512-s+3Al/p9g32Iq+oqXxkW//7jk2Vig6FF1CFqzVXoTUXt2qz89YWbL+OwS17NFYEvxC35n0FKeGO2LGYSxeM2Gg==", "funding": { "url": "https://github.com/sponsors/panva" } @@ -1010,15 +1373,34 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" }, "node_modules/long": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.4.tgz", - "integrity": "sha512-qtzLbJE8hq7VabR3mISmVGtoXP8KGc2Z/AT8OuqlYD7JTR3oqrgwdjnk07wpj1twXxYmgDXgoKVWUG/fReSzHg==" + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/long/-/long-5.3.1.tgz", + "integrity": "sha512-ka87Jz3gcx/I7Hal94xaN2tZEOPoUOEVftkQqZx2EeQRN7LGdfLlI3FvZ+7WDplm+vK2Urx9ULrvSowtdCieng==" }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/mimic-fn": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", @@ -1058,9 +1440,9 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, "node_modules/nanoid": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", - "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", "funding": [ { "type": "github", @@ -1074,6 +1456,14 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/npm-run-path": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", @@ -1099,6 +1489,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/onetime": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", @@ -1192,9 +1590,9 @@ } }, "node_modules/require-in-the-middle": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-7.4.0.tgz", - "integrity": "sha512-X34iHADNbNDfr6OTStIAHWSAvvKQRYgLO6duASaVf7J2VA3lvmNYboAHOuLC2huav1IwgZJtyEcJCKVzFxOSMQ==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-7.5.2.tgz", + "integrity": "sha512-gAZ+kLqBdHarXB64XpAe2VCjB7rIRv+mU8tfRWziHRJ5umKsIHN2tLLv6EtMw7WCdP19S0ERVMldNvxYCHnhSQ==", "dependencies": { "debug": "^4.3.5", "module-details-from-path": "^1.0.3", @@ -1232,9 +1630,9 @@ } }, "node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", "bin": { "semver": "bin/semver.js" }, @@ -1282,6 +1680,68 @@ "resolved": "https://registry.npmjs.org/slug/-/slug-6.1.0.tgz", "integrity": "sha512-x6vLHCMasg4DR2LPiyFGI0gJJhywY6DTiGhCrOMzb3SOk/0JVLIaL4UhyFSHu04SD3uAavrKY/K3zZ3i6iRcgA==" }, + "node_modules/socket.io": { + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.4.tgz", + "integrity": "sha512-DcotgfP1Zg9iP/dH9zvAQcWrE0TtbMVwXmlV4T4mqsvY+gw+LqUGPfx2AoVyRk0FLME+GQhufDMyacFmw7ksqw==", + "dependencies": { + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "cors": "~2.8.5", + "debug": "~4.3.2", + "engine.io": "~6.5.2", + "socket.io-adapter": "~2.5.2", + "socket.io-parser": "~4.2.4" + }, + "engines": { + "node": ">=10.2.0" + } + }, + "node_modules/socket.io-adapter": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.5.tgz", + "integrity": "sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==", + "dependencies": { + "debug": "~4.3.4", + "ws": "~8.17.1" + } + }, + "node_modules/socket.io-adapter/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socket.io-adapter/node_modules/ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/socket.io-client": { "version": "4.7.5", "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.5.tgz", @@ -1340,6 +1800,22 @@ } } }, + "node_modules/socket.io/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -1460,6 +1936,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/tinyexec": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==" + }, "node_modules/tinyglobby": { "version": "0.2.6", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.6.tgz", @@ -1525,6 +2006,11 @@ "ulid": "bin/cli.js" } }, + "node_modules/uncrypto": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/uncrypto/-/uncrypto-0.1.3.tgz", + "integrity": "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==" + }, "node_modules/undici-types": { "version": "6.19.8", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", @@ -1542,6 +2028,14 @@ "uuid": "dist/bin/uuid" } }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -1634,9 +2128,9 @@ } }, "node_modules/zod": { - "version": "3.24.1", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.1.tgz", - "integrity": "sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==", + "version": "3.24.2", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.2.tgz", + "integrity": "sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==", "funding": { "url": "https://github.com/sponsors/colinhacks" } diff --git a/packages/cli-v3/e2e/fixtures/emit-decorator-metadata/package.json b/packages/cli-v3/e2e/fixtures/emit-decorator-metadata/package.json index bb65b12bec..a7eab28fe9 100644 --- a/packages/cli-v3/e2e/fixtures/emit-decorator-metadata/package.json +++ b/packages/cli-v3/e2e/fixtures/emit-decorator-metadata/package.json @@ -10,11 +10,11 @@ "packages/*" ], "dependencies": { - "@trigger.dev/sdk": "0.0.0-prerelease-20250116195421", + "@trigger.dev/sdk": "0.0.0-prerelease-20250321122618", "reflect-metadata": "0.2.2" }, "devDependencies": { - "@trigger.dev/build": "0.0.0-prerelease-20250116195421", + "@trigger.dev/build": "0.0.0-prerelease-20250321122618", "@types/node": "22.5.4", "typescript": "5.5.4" } diff --git a/packages/cli-v3/e2e/fixtures/emit-decorator-metadata/pnpm-lock.yaml b/packages/cli-v3/e2e/fixtures/emit-decorator-metadata/pnpm-lock.yaml index 0b5db5cfdd..b2e22b2be9 100644 --- a/packages/cli-v3/e2e/fixtures/emit-decorator-metadata/pnpm-lock.yaml +++ b/packages/cli-v3/e2e/fixtures/emit-decorator-metadata/pnpm-lock.yaml @@ -9,15 +9,15 @@ importers: .: dependencies: '@trigger.dev/sdk': - specifier: 0.0.0-prerelease-20250116195421 - version: 0.0.0-prerelease-20250116195421(zod@3.22.3) + specifier: 0.0.0-prerelease-20250321122618 + version: 0.0.0-prerelease-20250321122618(zod@3.23.8) reflect-metadata: specifier: 0.2.2 version: 0.2.2 devDependencies: '@trigger.dev/build': - specifier: 0.0.0-prerelease-20250116195421 - version: 0.0.0-prerelease-20250116195421(typescript@5.5.4) + specifier: 0.0.0-prerelease-20250321122618 + version: 0.0.0-prerelease-20250321122618(typescript@5.5.4) '@types/node': specifier: 22.5.4 version: 22.5.4 @@ -27,6 +27,9 @@ importers: packages: + /@bugsnag/cuid@3.2.1: + resolution: {integrity: sha512-zpvN8xQ5rdRWakMd/BcVkdn2F8HKlDSbM3l7duueK590WmI1T0ObTLc1V/1e55r14WNjPd5AJTYX4yPEAFVi+Q==} + /@electric-sql/client@1.0.0-beta.1: resolution: {integrity: sha512-Ei9jN3pDoGzc+a/bGqnB5ajb52IvSv7/n2btuyzUlcOHIR2kM9fqtYTJXPwZYKLkGZlHWlpHgWyRtrinkP2nHg==} optionalDependencies: @@ -86,6 +89,15 @@ packages: '@opentelemetry/api': 1.9.0 '@opentelemetry/semantic-conventions': 1.25.1 + /@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0): + resolution: {integrity: sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/semantic-conventions': 1.28.0 + /@opentelemetry/exporter-logs-otlp-http@0.52.1(@opentelemetry/api@1.9.0): resolution: {integrity: sha512-qKgywId2DbdowPZpOBXQKp0B8DfhfIArmSic15z13Nk/JAOccBUQdPwDjDnjsM5f0ckZFMVR2t/tijTUAqDZoA==} engines: {node: '>=14'} @@ -306,6 +318,10 @@ packages: resolution: {integrity: sha512-ZDjMJJQRlyk8A1KZFCc+bCbsyrn1wTwdNt56F7twdfUfnHUZUq77/WfONCj8p72NZOyP7pNTdUWSTYC3GTbuuQ==} engines: {node: '>=14'} + /@opentelemetry/semantic-conventions@1.28.0: + resolution: {integrity: sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==} + engines: {node: '>=14'} + /@protobufjs/aspromise@1.1.2: resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} @@ -349,11 +365,11 @@ packages: /@socket.io/component-emitter@3.1.2: resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} - /@trigger.dev/build@0.0.0-prerelease-20250116195421(typescript@5.5.4): - resolution: {integrity: sha512-G9Xjzgxc9lhutVCwE7VwGE0RXpGNhATZYB6svbic6cQX9BhKKybRvIsiTjw39Rx4Y1XU0KHkE8IuGE0eIBDZLg==} + /@trigger.dev/build@0.0.0-prerelease-20250321122618(typescript@5.5.4): + resolution: {integrity: sha512-WkA/9gzsB8cAiSYHH/yo4mrkior0U7xzE2GfvkkxAlNqCJrCaMS2sVsel6MI87RiESJjallqemzBxGs9xgZPYg==} engines: {node: '>=18.20.0'} dependencies: - '@trigger.dev/core': 0.0.0-prerelease-20250116195421 + '@trigger.dev/core': 0.0.0-prerelease-20250321122618 pkg-types: 1.2.0 tinyglobby: 0.2.6 tsconfck: 3.1.3(typescript@5.5.4) @@ -364,15 +380,17 @@ packages: - utf-8-validate dev: true - /@trigger.dev/core@0.0.0-prerelease-20250116195421: - resolution: {integrity: sha512-bxZ5vq3txcUxQln8BZSb2No7gHPG/qTSeo5uq6W2+OQKoVN+c5pmVTYQQa6Fwfd2AXhpkU9ovdM3V1IoEddOtA==} + /@trigger.dev/core@0.0.0-prerelease-20250321122618: + resolution: {integrity: sha512-0hSMKqvM39V1A8YjZxYivw109ZrGk22Pfa8ydQ29nCubdeTMe6for+AYzj89BIOnEGeEZ24Hzg2uVc5Av9BUHg==} engines: {node: '>=18.20.0'} dependencies: + '@bugsnag/cuid': 3.2.1 '@electric-sql/client': 1.0.0-beta.1 '@google-cloud/precise-date': 4.0.0 '@jsonhero/path': 1.0.21 '@opentelemetry/api': 1.9.0 '@opentelemetry/api-logs': 0.52.1 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/exporter-logs-otlp-http': 0.52.1(@opentelemetry/api@1.9.0) '@opentelemetry/exporter-trace-otlp-http': 0.52.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) @@ -383,13 +401,16 @@ packages: '@opentelemetry/sdk-trace-node': 1.25.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.25.1 dequal: 2.0.3 + eventsource: 3.0.5 eventsource-parser: 3.0.0 execa: 8.0.1 humanize-duration: 3.32.1 jose: 5.9.6 nanoid: 3.3.8 + socket.io: 4.7.4 socket.io-client: 4.7.5 superjson: 2.2.1 + tinyexec: 0.3.2 zod: 3.23.8 zod-error: 1.5.0 zod-validation-error: 1.5.0(zod@3.23.8) @@ -398,8 +419,8 @@ packages: - supports-color - utf-8-validate - /@trigger.dev/sdk@0.0.0-prerelease-20250116195421(zod@3.22.3): - resolution: {integrity: sha512-/Kw+q/mDulGgiSHR9L3nldGOWH72AQAys9zuoBO72JjVfipKI1R8jjqQHhZjWqolMYqgg9XaJr9lQM8sV5lWwQ==} + /@trigger.dev/sdk@0.0.0-prerelease-20250321122618(zod@3.23.8): + resolution: {integrity: sha512-/DOWqGdTxkeUY3WIJ/lPS8vC9VwitQiB+ONHCR5L1xBovHVaCyj3zMn/dWPsM+Wtz2wVZAPZ45pmHqvJEX3qLw==} engines: {node: '>=18.20.0'} peerDependencies: zod: ^3.0.0 @@ -407,7 +428,7 @@ packages: '@opentelemetry/api': 1.9.0 '@opentelemetry/api-logs': 0.52.1 '@opentelemetry/semantic-conventions': 1.25.1 - '@trigger.dev/core': 0.0.0-prerelease-20250116195421 + '@trigger.dev/core': 0.0.0-prerelease-20250321122618 chalk: 5.3.0 cronstrue: 2.50.0 debug: 4.3.6 @@ -415,15 +436,24 @@ packages: slug: 6.1.0 terminal-link: 3.0.0 ulid: 2.3.0 + uncrypto: 0.1.3 uuid: 9.0.1 ws: 8.18.0 - zod: 3.22.3 + zod: 3.23.8 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate dev: false + /@types/cookie@0.4.1: + resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==} + + /@types/cors@2.8.17: + resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} + dependencies: + '@types/node': 22.5.4 + /@types/node@22.5.4: resolution: {integrity: sha512-FDuKUJQm/ju9fT/SeX/6+gBzoPzlVCzfzmGkwKvRHQVxi4BntVbyIwf6a4Xn62mrvndLiml6z/UBXIdEVjQLXg==} dependencies: @@ -432,6 +462,13 @@ packages: /@types/shimmer@1.2.0: resolution: {integrity: sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==} + /accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + /acorn-import-attributes@1.9.5(acorn@8.12.1): resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} peerDependencies: @@ -461,6 +498,10 @@ packages: dependencies: color-convert: 2.0.1 + /base64id@2.0.0: + resolution: {integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==} + engines: {node: ^4.5.0 || >= 5.9} + /chalk@5.3.0: resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} @@ -490,12 +531,23 @@ packages: resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==} dev: true + /cookie@0.4.2: + resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==} + engines: {node: '>= 0.6'} + /copy-anything@3.0.5: resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} engines: {node: '>=12.13'} dependencies: is-what: 4.1.16 + /cors@2.8.5: + resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} + engines: {node: '>= 0.10'} + dependencies: + object-assign: 4.1.1 + vary: 1.1.2 + /cronstrue@2.50.0: resolution: {integrity: sha512-ULYhWIonJzlScCCQrPUG5uMXzXxSixty4djud9SS37DoNxDdkeRocxzHuAo4ImRBUK+mAuU5X9TSwEDccnnuPg==} hasBin: true @@ -544,6 +596,25 @@ packages: resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==} engines: {node: '>=10.0.0'} + /engine.io@6.5.5: + resolution: {integrity: sha512-C5Pn8Wk+1vKBoHghJODM63yk8MvrO9EWZUfkAt5HAqIgPE4/8FF0PEGHXtEd40l223+cE5ABWuPzm38PHFXfMA==} + engines: {node: '>=10.2.0'} + dependencies: + '@types/cookie': 0.4.1 + '@types/cors': 2.8.17 + '@types/node': 22.5.4 + accepts: 1.3.8 + base64id: 2.0.0 + cookie: 0.4.2 + cors: 2.8.5 + debug: 4.3.6 + engine.io-parser: 5.2.3 + ws: 8.17.1 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + /escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -552,6 +623,12 @@ packages: resolution: {integrity: sha512-T1C0XCUimhxVQzW4zFipdx0SficT651NnkR0ZSH3yQwh+mFMdLfgjABVi4YtMTtaL4s168593DaoaRLMqryavA==} engines: {node: '>=18.0.0'} + /eventsource@3.0.5: + resolution: {integrity: sha512-LT/5J605bx5SNyE+ITBDiM3FxffBiq9un7Vx0EwMDM3vg8sWKx/tO2zC+LMqZ+smAM0F2hblaDZUVZF0te2pSw==} + engines: {node: '>=18.0.0'} + dependencies: + eventsource-parser: 3.0.0 + /evt@2.5.7: resolution: {integrity: sha512-dr7Wd16ry5F8WNU1xXLKpFpO3HsoAGg8zC48e08vDdzMzGWCP9/QFGt1PQptEEDh8SwYP3EL8M+d/Gb0kgUp6g==} dependencies: @@ -658,6 +735,16 @@ packages: /merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + /mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + /mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + /mimic-fn@4.0.0: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} engines: {node: '>=12'} @@ -686,12 +773,20 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + /negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + /npm-run-path@5.3.0: resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: path-key: 4.0.0 + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + /onetime@6.0.0: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} engines: {node: '>=12'} @@ -802,6 +897,16 @@ packages: resolution: {integrity: sha512-x6vLHCMasg4DR2LPiyFGI0gJJhywY6DTiGhCrOMzb3SOk/0JVLIaL4UhyFSHu04SD3uAavrKY/K3zZ3i6iRcgA==} dev: false + /socket.io-adapter@2.5.5: + resolution: {integrity: sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==} + dependencies: + debug: 4.3.6 + ws: 8.17.1 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + /socket.io-client@4.7.5: resolution: {integrity: sha512-sJ/tqHOCe7Z50JCBCXrsY3I2k03iOiUe+tj1OmKeD2lXPiGH/RUCdTZFoqVyN7l1MnpIzPrGtLcijffmeouNlQ==} engines: {node: '>=10.0.0'} @@ -824,6 +929,22 @@ packages: transitivePeerDependencies: - supports-color + /socket.io@4.7.4: + resolution: {integrity: sha512-DcotgfP1Zg9iP/dH9zvAQcWrE0TtbMVwXmlV4T4mqsvY+gw+LqUGPfx2AoVyRk0FLME+GQhufDMyacFmw7ksqw==} + engines: {node: '>=10.2.0'} + dependencies: + accepts: 1.3.8 + base64id: 2.0.0 + cors: 2.8.5 + debug: 4.3.6 + engine.io: 6.5.5 + socket.io-adapter: 2.5.5 + socket.io-parser: 4.2.4 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + /string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -875,6 +996,9 @@ packages: supports-hyperlinks: 2.3.0 dev: false + /tinyexec@0.3.2: + resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} + /tinyglobby@0.2.6: resolution: {integrity: sha512-NbBoFBpqfcgd1tCiO8Lkfdk+xrA7mlLR9zgvZcZWQQwU63XAfUePyd6wZBaU93Hqw347lHnwFzttAkemHzzz4g==} engines: {node: '>=12.0.0'} @@ -920,6 +1044,10 @@ packages: hasBin: true dev: false + /uncrypto@0.1.3: + resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} + dev: false + /undici-types@6.19.8: resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} @@ -928,6 +1056,10 @@ packages: hasBin: true dev: false + /vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + /which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -1005,9 +1137,5 @@ packages: dependencies: zod: 3.23.8 - /zod@3.22.3: - resolution: {integrity: sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug==} - dev: false - /zod@3.23.8: resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} diff --git a/packages/cli-v3/e2e/fixtures/emit-decorator-metadata/yarn.lock b/packages/cli-v3/e2e/fixtures/emit-decorator-metadata/yarn.lock index ec2a948054..7784e4b6b5 100644 --- a/packages/cli-v3/e2e/fixtures/emit-decorator-metadata/yarn.lock +++ b/packages/cli-v3/e2e/fixtures/emit-decorator-metadata/yarn.lock @@ -5,6 +5,13 @@ __metadata: version: 8 cacheKey: 10c0 +"@bugsnag/cuid@npm:^3.1.1": + version: 3.2.1 + resolution: "@bugsnag/cuid@npm:3.2.1" + checksum: 10c0/f2da80e922a3ed14bcede1e8257ce02974fdce91f2b6ecfc25846f70c250f2909b2a19f898e309cf564c882b39ac685df99e8fe498db45071d3019db5ea03e6a + languageName: node + linkType: hard + "@electric-sql/client@npm:1.0.0-beta.1": version: 1.0.0-beta.1 resolution: "@electric-sql/client@npm:1.0.0-beta.1" @@ -25,12 +32,12 @@ __metadata: linkType: hard "@grpc/grpc-js@npm:^1.7.1": - version: 1.12.5 - resolution: "@grpc/grpc-js@npm:1.12.5" + version: 1.13.0 + resolution: "@grpc/grpc-js@npm:1.13.0" dependencies: "@grpc/proto-loader": "npm:^0.7.13" "@js-sdsl/ordered-map": "npm:^4.4.2" - checksum: 10c0/1e539d98951e6ff6611e3cedc8eec343625fdab76c7683aa7fca605b3de17d8aabaf2f78d7e95400e68dc8e249cda498781e9a3481bb6b713fc167da3fe59a8e + checksum: 10c0/c760d5eb5ee07c4cfd5dcd83ee62d5232d5776b5d1ce5d436edc53402ec16ef053d3a283f48ce832f4635009dbd411ac7586495a7d053fc5f202e95811cf4129 languageName: node linkType: hard @@ -98,6 +105,17 @@ __metadata: languageName: node linkType: hard +"@opentelemetry/core@npm:^1.30.1": + version: 1.30.1 + resolution: "@opentelemetry/core@npm:1.30.1" + dependencies: + "@opentelemetry/semantic-conventions": "npm:1.28.0" + peerDependencies: + "@opentelemetry/api": ">=1.0.0 <1.10.0" + checksum: 10c0/4c25ba50a6137c2ba9ca563fb269378f3c9ca6fd1b3f15dbb6eff78eebf5656f281997cbb7be8e51c01649fd6ad091083fcd8a42dd9b5dfac907dc06d7cfa092 + languageName: node + linkType: hard + "@opentelemetry/exporter-logs-otlp-http@npm:0.52.1": version: 0.52.1 resolution: "@opentelemetry/exporter-logs-otlp-http@npm:0.52.1" @@ -351,6 +369,13 @@ __metadata: languageName: node linkType: hard +"@opentelemetry/semantic-conventions@npm:1.28.0": + version: 1.28.0 + resolution: "@opentelemetry/semantic-conventions@npm:1.28.0" + checksum: 10c0/deb8a0f744198071e70fea27143cf7c9f7ecb7e4d7b619488c917834ea09b31543c1c2bcea4ec5f3cf68797f0ef3549609c14e859013d9376400ac1499c2b9cb + languageName: node + linkType: hard + "@protobufjs/aspromise@npm:^1.1.1, @protobufjs/aspromise@npm:^1.1.2": version: 1.1.2 resolution: "@protobufjs/aspromise@npm:1.1.2" @@ -425,8 +450,8 @@ __metadata: linkType: hard "@rollup/rollup-darwin-arm64@npm:^4.18.1": - version: 4.30.1 - resolution: "@rollup/rollup-darwin-arm64@npm:4.30.1" + version: 4.36.0 + resolution: "@rollup/rollup-darwin-arm64@npm:4.36.0" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard @@ -438,27 +463,29 @@ __metadata: languageName: node linkType: hard -"@trigger.dev/build@npm:0.0.0-prerelease-20250116195421": - version: 0.0.0-prerelease-20250116195421 - resolution: "@trigger.dev/build@npm:0.0.0-prerelease-20250116195421" +"@trigger.dev/build@npm:0.0.0-prerelease-20250321122618": + version: 0.0.0-prerelease-20250321122618 + resolution: "@trigger.dev/build@npm:0.0.0-prerelease-20250321122618" dependencies: - "@trigger.dev/core": "npm:0.0.0-prerelease-20250116195421" + "@trigger.dev/core": "npm:0.0.0-prerelease-20250321122618" pkg-types: "npm:^1.1.3" tinyglobby: "npm:^0.2.2" tsconfck: "npm:3.1.3" - checksum: 10c0/45b30dcb674428cd944d0becbf0fc2cae9d88054c8abd39ff246bd8af1fcaca3a4dd373d2df59db36b335856270da1bd3641ab868982486ae318a01c544b0e8c + checksum: 10c0/f71f355a14e588b0b4da76ecb0fbff4c2d60a42e6d449399e5dedc29d65fe3110d14281b365c1ade71564dd251d88ab669be7e7ea3cc0db390d6b2ff8f4122c4 languageName: node linkType: hard -"@trigger.dev/core@npm:0.0.0-prerelease-20250116195421": - version: 0.0.0-prerelease-20250116195421 - resolution: "@trigger.dev/core@npm:0.0.0-prerelease-20250116195421" +"@trigger.dev/core@npm:0.0.0-prerelease-20250321122618": + version: 0.0.0-prerelease-20250321122618 + resolution: "@trigger.dev/core@npm:0.0.0-prerelease-20250321122618" dependencies: + "@bugsnag/cuid": "npm:^3.1.1" "@electric-sql/client": "npm:1.0.0-beta.1" "@google-cloud/precise-date": "npm:^4.0.0" "@jsonhero/path": "npm:^1.0.21" "@opentelemetry/api": "npm:1.9.0" "@opentelemetry/api-logs": "npm:0.52.1" + "@opentelemetry/core": "npm:^1.30.1" "@opentelemetry/exporter-logs-otlp-http": "npm:0.52.1" "@opentelemetry/exporter-trace-otlp-http": "npm:0.52.1" "@opentelemetry/instrumentation": "npm:0.52.1" @@ -469,28 +496,31 @@ __metadata: "@opentelemetry/sdk-trace-node": "npm:1.25.1" "@opentelemetry/semantic-conventions": "npm:1.25.1" dequal: "npm:^2.0.3" + eventsource: "npm:^3.0.5" eventsource-parser: "npm:^3.0.0" execa: "npm:^8.0.1" humanize-duration: "npm:^3.27.3" jose: "npm:^5.4.0" nanoid: "npm:^3.3.4" + socket.io: "npm:4.7.4" socket.io-client: "npm:4.7.5" superjson: "npm:^2.2.1" + tinyexec: "npm:^0.3.2" zod: "npm:3.23.8" zod-error: "npm:1.5.0" zod-validation-error: "npm:^1.5.0" - checksum: 10c0/90b53701ba59608e4b0319c5d08147ee04440e14ecb163dabcbea725f46555d4aa8b91fee51a31e616cd88d5f6dcfc15cb7a59491894c36d5cfe818454fff620 + checksum: 10c0/0bcab7e5ea31c2ee49699b83b26da9994f0ce803b3208ac12e2157ebd21c1e872021922241ba835a98880cd051d2cc245c472ec1901196bfc2a41a53663326ec languageName: node linkType: hard -"@trigger.dev/sdk@npm:0.0.0-prerelease-20250116195421": - version: 0.0.0-prerelease-20250116195421 - resolution: "@trigger.dev/sdk@npm:0.0.0-prerelease-20250116195421" +"@trigger.dev/sdk@npm:0.0.0-prerelease-20250321122618": + version: 0.0.0-prerelease-20250321122618 + resolution: "@trigger.dev/sdk@npm:0.0.0-prerelease-20250321122618" dependencies: "@opentelemetry/api": "npm:1.9.0" "@opentelemetry/api-logs": "npm:0.52.1" "@opentelemetry/semantic-conventions": "npm:1.25.1" - "@trigger.dev/core": "npm:0.0.0-prerelease-20250116195421" + "@trigger.dev/core": "npm:0.0.0-prerelease-20250321122618" chalk: "npm:^5.2.0" cronstrue: "npm:^2.21.0" debug: "npm:^4.3.4" @@ -498,15 +528,32 @@ __metadata: slug: "npm:^6.0.0" terminal-link: "npm:^3.0.0" ulid: "npm:^2.3.0" + uncrypto: "npm:^0.1.3" uuid: "npm:^9.0.0" ws: "npm:^8.11.0" peerDependencies: zod: ^3.0.0 - checksum: 10c0/6c54e6588a02097a49f11784fefaa1e00b12af4875f6f599de80d54031b9ef919ff017924d6870427cd5d8da178d177df0b0a6c32c0930a03882e3c6c9def1dc + checksum: 10c0/2ae41e2fe41a781346a91144b946355521bbcce5bd4cbf4a48f4aeb0b9a7b338a9e749ed014c36732fb128510a01573230a70571c3ccb91f5500776b52ca17a5 + languageName: node + linkType: hard + +"@types/cookie@npm:^0.4.1": + version: 0.4.1 + resolution: "@types/cookie@npm:0.4.1" + checksum: 10c0/f96afe12bd51be1ec61410b0641243d93fa3a494702407c787a4c872b5c8bcd39b224471452055e44a9ce42af1a636e87d161994226eaf4c2be9c30f60418409 + languageName: node + linkType: hard + +"@types/cors@npm:^2.8.12": + version: 2.8.17 + resolution: "@types/cors@npm:2.8.17" + dependencies: + "@types/node": "npm:*" + checksum: 10c0/457364c28c89f3d9ed34800e1de5c6eaaf344d1bb39af122f013322a50bc606eb2aa6f63de4e41a7a08ba7ef454473926c94a830636723da45bf786df032696d languageName: node linkType: hard -"@types/node@npm:22.5.4, @types/node@npm:>=13.7.0": +"@types/node@npm:*, @types/node@npm:22.5.4, @types/node@npm:>=10.0.0, @types/node@npm:>=13.7.0": version: 22.5.4 resolution: "@types/node@npm:22.5.4" dependencies: @@ -522,6 +569,16 @@ __metadata: languageName: node linkType: hard +"accepts@npm:~1.3.4": + version: 1.3.8 + resolution: "accepts@npm:1.3.8" + dependencies: + mime-types: "npm:~2.1.34" + negotiator: "npm:0.6.3" + checksum: 10c0/3a35c5f5586cfb9a21163ca47a5f77ac34fa8ceb5d17d2fa2c0d81f41cbd7f8c6fa52c77e2c039acc0f4d09e71abdc51144246900f6bef5e3c4b333f77d89362 + languageName: node + linkType: hard + "acorn-import-attributes@npm:^1.9.5": version: 1.9.5 resolution: "acorn-import-attributes@npm:1.9.5" @@ -531,12 +588,12 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.11.3, acorn@npm:^8.8.2": - version: 8.12.1 - resolution: "acorn@npm:8.12.1" +"acorn@npm:^8.11.3, acorn@npm:^8.14.0": + version: 8.14.1 + resolution: "acorn@npm:8.14.1" bin: acorn: bin/acorn - checksum: 10c0/51fb26cd678f914e13287e886da2d7021f8c2bc0ccc95e03d3e0447ee278dd3b40b9c57dc222acd5881adcf26f3edc40901a4953403232129e3876793cd17386 + checksum: 10c0/dbd36c1ed1d2fa3550140000371fcf721578095b18777b85a79df231ca093b08edc6858d75d6e48c73e431c174dcf9214edbd7e6fa5911b93bd8abfa54e47123 languageName: node linkType: hard @@ -565,6 +622,13 @@ __metadata: languageName: node linkType: hard +"base64id@npm:2.0.0, base64id@npm:~2.0.0": + version: 2.0.0 + resolution: "base64id@npm:2.0.0" + checksum: 10c0/6919efd237ed44b9988cbfc33eca6f173a10e810ce50292b271a1a421aac7748ef232a64d1e6032b08f19aae48dce6ee8f66c5ae2c9e5066c82b884861d4d453 + languageName: node + linkType: hard + "chalk@npm:^5.2.0": version: 5.3.0 resolution: "chalk@npm:5.3.0" @@ -573,9 +637,9 @@ __metadata: linkType: hard "cjs-module-lexer@npm:^1.2.2": - version: 1.4.1 - resolution: "cjs-module-lexer@npm:1.4.1" - checksum: 10c0/5a7d8279629c9ba8ccf38078c2fed75b7737973ced22b9b5a54180efa57fb2fe2bb7bec6aec55e3b8f3f5044f5d7b240347ad9bd285e7c3d0ee5b0a1d0504dfc + version: 1.4.3 + resolution: "cjs-module-lexer@npm:1.4.3" + checksum: 10c0/076b3af85adc4d65dbdab1b5b240fe5b45d44fcf0ef9d429044dd94d19be5589376805c44fb2d4b3e684e5fe6a9b7cf3e426476a6507c45283c5fc6ff95240be languageName: node linkType: hard @@ -613,6 +677,13 @@ __metadata: languageName: node linkType: hard +"cookie@npm:~0.4.1": + version: 0.4.2 + resolution: "cookie@npm:0.4.2" + checksum: 10c0/beab41fbd7c20175e3a2799ba948c1dcc71ef69f23fe14eeeff59fc09f50c517b0f77098db87dbb4c55da802f9d86ee86cdc1cd3efd87760341551838d53fca2 + languageName: node + linkType: hard + "copy-anything@npm:^3.0.2": version: 3.0.5 resolution: "copy-anything@npm:3.0.5" @@ -622,6 +693,16 @@ __metadata: languageName: node linkType: hard +"cors@npm:~2.8.5": + version: 2.8.5 + resolution: "cors@npm:2.8.5" + dependencies: + object-assign: "npm:^4" + vary: "npm:^1" + checksum: 10c0/373702b7999409922da80de4a61938aabba6929aea5b6fd9096fefb9e8342f626c0ebd7507b0e8b0b311380744cc985f27edebc0a26e0ddb784b54e1085de761 + languageName: node + linkType: hard + "cronstrue@npm:^2.21.0": version: 2.50.0 resolution: "cronstrue@npm:2.50.0" @@ -654,7 +735,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:~4.3.1, debug@npm:~4.3.2": +"debug@npm:~4.3.1, debug@npm:~4.3.2, debug@npm:~4.3.4": version: 4.3.7 resolution: "debug@npm:4.3.7" dependencies: @@ -677,8 +758,8 @@ __metadata: version: 0.0.0-use.local resolution: "emit-decorator-metadata@workspace:." dependencies: - "@trigger.dev/build": "npm:0.0.0-prerelease-20250116195421" - "@trigger.dev/sdk": "npm:0.0.0-prerelease-20250116195421" + "@trigger.dev/build": "npm:0.0.0-prerelease-20250321122618" + "@trigger.dev/sdk": "npm:0.0.0-prerelease-20250321122618" "@types/node": "npm:22.5.4" reflect-metadata: "npm:0.2.2" typescript: "npm:5.5.4" @@ -712,6 +793,24 @@ __metadata: languageName: node linkType: hard +"engine.io@npm:~6.5.2": + version: 6.5.5 + resolution: "engine.io@npm:6.5.5" + dependencies: + "@types/cookie": "npm:^0.4.1" + "@types/cors": "npm:^2.8.12" + "@types/node": "npm:>=10.0.0" + accepts: "npm:~1.3.4" + base64id: "npm:2.0.0" + cookie: "npm:~0.4.1" + cors: "npm:~2.8.5" + debug: "npm:~4.3.1" + engine.io-parser: "npm:~5.2.1" + ws: "npm:~8.17.1" + checksum: 10c0/b0994134917c5d3649fd7aea283492eaf092131e572a8d379c7c9081548b42cff756730b4641edd0d1598148dd3be253c4d634cea2ba5c59622d175d9e567469 + languageName: node + linkType: hard + "escalade@npm:^3.1.1": version: 3.2.0 resolution: "escalade@npm:3.2.0" @@ -726,6 +825,15 @@ __metadata: languageName: node linkType: hard +"eventsource@npm:^3.0.5": + version: 3.0.5 + resolution: "eventsource@npm:3.0.5" + dependencies: + eventsource-parser: "npm:^3.0.0" + checksum: 10c0/0283045a70b7ab7501fc290e60ee5ebd6e24648e0f0a6d6a1c1bbb7a421971e8140b85d6239d08c360e0a0b196205ca86b4ff7f9efe3c06877ba628136856489 + languageName: node + linkType: hard + "evt@npm:^2.4.13": version: 2.5.7 resolution: "evt@npm:2.5.7" @@ -818,14 +926,14 @@ __metadata: linkType: hard "import-in-the-middle@npm:^1.8.1": - version: 1.12.0 - resolution: "import-in-the-middle@npm:1.12.0" + version: 1.13.1 + resolution: "import-in-the-middle@npm:1.13.1" dependencies: - acorn: "npm:^8.8.2" + acorn: "npm:^8.14.0" acorn-import-attributes: "npm:^1.9.5" cjs-module-lexer: "npm:^1.2.2" module-details-from-path: "npm:^1.0.3" - checksum: 10c0/e0f92bd27b9ef15099494ef0e8ba0b6fa6f0e643a3ff1d41b52530b6e4ff2a502099fff345f3ffb7c75f78cb189903b8d2d92fab5f8123badbc9e790cc19bbe7 + checksum: 10c0/4ef05a924c37ff718dd08654927c90d470d92fd9425d646b0d423aaddc89655848debd14761bcb6efa4f57870d63ff38109bab31ca8a1d9d5df2e7d84d2649cf languageName: node linkType: hard @@ -867,9 +975,9 @@ __metadata: linkType: hard "jose@npm:^5.4.0": - version: 5.9.6 - resolution: "jose@npm:5.9.6" - checksum: 10c0/d6bcd8c7d655b5cda8e182952a76f0c093347f5476d74795405bb91563f7ab676f61540310dd4b1531c60d685335ceb600571a409551d2cbd2ab3e9f9fbf1e4d + version: 5.10.0 + resolution: "jose@npm:5.10.0" + checksum: 10c0/e20d9fc58d7e402f2e5f04e824b8897d5579aae60e64cb88ebdea1395311c24537bf4892f7de413fab1acf11e922797fb1b42269bc8fc65089a3749265ccb7b0 languageName: node linkType: hard @@ -888,9 +996,9 @@ __metadata: linkType: hard "long@npm:^5.0.0": - version: 5.2.4 - resolution: "long@npm:5.2.4" - checksum: 10c0/0cf819ce2a7bbe48663e79233917552c7667b11e68d4d9ea4ebb99173042509d9af461e5211c22939b913332c264d9a1135937ea533cbd05bc4f8cf46f6d2e07 + version: 5.3.1 + resolution: "long@npm:5.3.1" + checksum: 10c0/8726994c6359bb7162fb94563e14c3f9c0f0eeafd90ec654738f4f144a5705756d36a873c442f172ee2a4b51e08d14ab99765b49aa1fb994c5ba7fe12057bca2 languageName: node linkType: hard @@ -901,6 +1009,22 @@ __metadata: languageName: node linkType: hard +"mime-db@npm:1.52.0": + version: 1.52.0 + resolution: "mime-db@npm:1.52.0" + checksum: 10c0/0557a01deebf45ac5f5777fe7740b2a5c309c6d62d40ceab4e23da9f821899ce7a900b7ac8157d4548ddbb7beffe9abc621250e6d182b0397ec7f10c7b91a5aa + languageName: node + linkType: hard + +"mime-types@npm:~2.1.34": + version: 2.1.35 + resolution: "mime-types@npm:2.1.35" + dependencies: + mime-db: "npm:1.52.0" + checksum: 10c0/82fb07ec56d8ff1fc999a84f2f217aa46cb6ed1033fefaabd5785b9a974ed225c90dc72fff460259e66b95b73648596dbcc50d51ed69cdf464af2d237d3149b2 + languageName: node + linkType: hard + "mimic-fn@npm:^4.0.0": version: 4.0.0 resolution: "mimic-fn@npm:4.0.0" @@ -942,11 +1066,18 @@ __metadata: linkType: hard "nanoid@npm:^3.3.4": - version: 3.3.8 - resolution: "nanoid@npm:3.3.8" + version: 3.3.11 + resolution: "nanoid@npm:3.3.11" bin: nanoid: bin/nanoid.cjs - checksum: 10c0/4b1bb29f6cfebf3be3bc4ad1f1296fb0a10a3043a79f34fbffe75d1621b4318319211cd420549459018ea3592f0d2f159247a6f874911d6d26eaaadda2478120 + checksum: 10c0/40e7f70b3d15f725ca072dfc4f74e81fcf1fbb02e491cf58ac0c79093adc9b0a73b152bcde57df4b79cd097e13023d7504acb38404a4da7bc1cd8e887b82fe0b + languageName: node + linkType: hard + +"negotiator@npm:0.6.3": + version: 0.6.3 + resolution: "negotiator@npm:0.6.3" + checksum: 10c0/3ec9fd413e7bf071c937ae60d572bc67155262068ed522cf4b3be5edbe6ddf67d095ec03a3a14ebf8fc8e95f8e1d61be4869db0dbb0de696f6b837358bd43fc2 languageName: node linkType: hard @@ -959,6 +1090,13 @@ __metadata: languageName: node linkType: hard +"object-assign@npm:^4": + version: 4.1.1 + resolution: "object-assign@npm:4.1.1" + checksum: 10c0/1f4df9945120325d041ccf7b86f31e8bcc14e73d29171e37a7903050e96b81323784ec59f93f102ec635bcf6fa8034ba3ea0a8c7e69fa202b87ae3b6cec5a414 + languageName: node + linkType: hard + "onetime@npm:^6.0.0": version: 6.0.0 resolution: "onetime@npm:6.0.0" @@ -1049,13 +1187,13 @@ __metadata: linkType: hard "require-in-the-middle@npm:^7.1.1": - version: 7.4.0 - resolution: "require-in-the-middle@npm:7.4.0" + version: 7.5.2 + resolution: "require-in-the-middle@npm:7.5.2" dependencies: debug: "npm:^4.3.5" module-details-from-path: "npm:^1.0.3" resolve: "npm:^1.22.8" - checksum: 10c0/67c2242ea5b059c2a10c01d4f409233c67278051b47b9bf83198ab7e3ea591ffe3fa1d97912180d7d3d9a5e44490c00c55882b702849d61ac4db87d2c3823cb0 + checksum: 10c0/43a2dac5520e39d13c413650895715e102d6802e6cc6ff322017bd948f12a9657fe28435f7cbbcba437b167f02e192ac7af29fa35cabd5d0c375d071c0605e01 languageName: node linkType: hard @@ -1095,11 +1233,11 @@ __metadata: linkType: hard "semver@npm:^7.5.2": - version: 7.6.3 - resolution: "semver@npm:7.6.3" + version: 7.7.1 + resolution: "semver@npm:7.7.1" bin: semver: bin/semver.js - checksum: 10c0/88f33e148b210c153873cb08cfe1e281d518aaa9a666d4d148add6560db5cd3c582f3a08ccb91f38d5f379ead256da9931234ed122057f40bb5766e65e58adaf + checksum: 10c0/fd603a6fb9c399c6054015433051bdbe7b99a940a8fb44b85c2b524c4004b023d7928d47cb22154f8d054ea7ee8597f586605e05b52047f048278e4ac56ae958 languageName: node linkType: hard @@ -1140,6 +1278,16 @@ __metadata: languageName: node linkType: hard +"socket.io-adapter@npm:~2.5.2": + version: 2.5.5 + resolution: "socket.io-adapter@npm:2.5.5" + dependencies: + debug: "npm:~4.3.4" + ws: "npm:~8.17.1" + checksum: 10c0/04a5a2a9c4399d1b6597c2afc4492ab1e73430cc124ab02b09e948eabf341180b3866e2b61b5084cb899beb68a4db7c328c29bda5efb9207671b5cb0bc6de44e + languageName: node + linkType: hard + "socket.io-client@npm:4.7.5": version: 4.7.5 resolution: "socket.io-client@npm:4.7.5" @@ -1162,6 +1310,21 @@ __metadata: languageName: node linkType: hard +"socket.io@npm:4.7.4": + version: 4.7.4 + resolution: "socket.io@npm:4.7.4" + dependencies: + accepts: "npm:~1.3.4" + base64id: "npm:~2.0.0" + cors: "npm:~2.8.5" + debug: "npm:~4.3.2" + engine.io: "npm:~6.5.2" + socket.io-adapter: "npm:~2.5.2" + socket.io-parser: "npm:~4.2.4" + checksum: 10c0/c37b7745d475695d5d5d20a30af940ebf1fefa9defdd1f3601978682a4e1d12eab10da0a6efb19d72038bb819a7972331a679649161689db600883b83818fb16 + languageName: node + linkType: hard + "string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": version: 4.2.3 resolution: "string-width@npm:4.2.3" @@ -1234,6 +1397,13 @@ __metadata: languageName: node linkType: hard +"tinyexec@npm:^0.3.2": + version: 0.3.2 + resolution: "tinyexec@npm:0.3.2" + checksum: 10c0/3efbf791a911be0bf0821eab37a3445c2ba07acc1522b1fa84ae1e55f10425076f1290f680286345ed919549ad67527d07281f1c19d584df3b74326909eb1f90 + languageName: node + linkType: hard + "tinyglobby@npm:^0.2.2": version: 0.2.6 resolution: "tinyglobby@npm:0.2.6" @@ -1308,6 +1478,13 @@ __metadata: languageName: node linkType: hard +"uncrypto@npm:^0.1.3": + version: 0.1.3 + resolution: "uncrypto@npm:0.1.3" + checksum: 10c0/74a29afefd76d5b77bedc983559ceb33f5bbc8dada84ff33755d1e3355da55a4e03a10e7ce717918c436b4dfafde1782e799ebaf2aadd775612b49f7b5b2998e + languageName: node + linkType: hard + "undici-types@npm:~6.19.2": version: 6.19.8 resolution: "undici-types@npm:6.19.8" @@ -1324,6 +1501,13 @@ __metadata: languageName: node linkType: hard +"vary@npm:^1": + version: 1.1.2 + resolution: "vary@npm:1.1.2" + checksum: 10c0/f15d588d79f3675135ba783c91a4083dcd290a2a5be9fcb6514220a1634e23df116847b1cc51f66bfb0644cf9353b2abb7815ae499bab06e46dd33c1a6bf1f4f + languageName: node + linkType: hard + "which@npm:^2.0.1": version: 2.0.2 resolution: "which@npm:2.0.2" @@ -1438,8 +1622,8 @@ __metadata: linkType: hard "zod@npm:^3.20.2": - version: 3.24.1 - resolution: "zod@npm:3.24.1" - checksum: 10c0/0223d21dbaa15d8928fe0da3b54696391d8e3e1e2d0283a1a070b5980a1dbba945ce631c2d1eccc088fdbad0f2dfa40155590bf83732d3ac4fcca2cc9237591b + version: 3.24.2 + resolution: "zod@npm:3.24.2" + checksum: 10c0/c638c7220150847f13ad90635b3e7d0321b36cce36f3fc6050ed960689594c949c326dfe2c6fa87c14b126ee5d370ccdebd6efb304f41ef5557a4aaca2824565 languageName: node linkType: hard diff --git a/packages/cli-v3/e2e/fixtures/esm-only-external/package-lock.json b/packages/cli-v3/e2e/fixtures/esm-only-external/package-lock.json index 4b12639fad..8c4a916e70 100644 --- a/packages/cli-v3/e2e/fixtures/esm-only-external/package-lock.json +++ b/packages/cli-v3/e2e/fixtures/esm-only-external/package-lock.json @@ -9,7 +9,7 @@ "packages/*" ], "dependencies": { - "@trigger.dev/sdk": "0.0.0-prerelease-20250116195421", + "@trigger.dev/sdk": "0.0.0-prerelease-20250321122618", "mupdf": "^0.3.0" }, "devDependencies": { @@ -20,6 +20,11 @@ "yarn": "4.2.2" } }, + "node_modules/@bugsnag/cuid": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@bugsnag/cuid/-/cuid-3.2.1.tgz", + "integrity": "sha512-zpvN8xQ5rdRWakMd/BcVkdn2F8HKlDSbM3l7duueK590WmI1T0ObTLc1V/1e55r14WNjPd5AJTYX4yPEAFVi+Q==" + }, "node_modules/@electric-sql/client": { "version": "1.0.0-beta.1", "resolved": "https://registry.npmjs.org/@electric-sql/client/-/client-1.0.0-beta.1.tgz", @@ -37,9 +42,9 @@ } }, "node_modules/@grpc/grpc-js": { - "version": "1.12.5", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.12.5.tgz", - "integrity": "sha512-d3iiHxdpg5+ZcJ6jnDSOT8Z0O0VMVGy34jAnYLUX8yd36b1qn8f1TwOA/Lc7TsOh03IkPJ38eGI5qD2EjNkoEA==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.13.0.tgz", + "integrity": "sha512-pMuxInZjUnUkgMT2QLZclRqwk2ykJbIU05aZgPgJYXEpN9+2I7z7aNwcjWZSycRPl232FfhPszyBFJyOxTHNog==", "dependencies": { "@grpc/proto-loader": "^0.7.13", "@js-sdsl/ordered-map": "^4.4.2" @@ -110,11 +115,11 @@ } }, "node_modules/@opentelemetry/core": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", - "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.30.1.tgz", + "integrity": "sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==", "dependencies": { - "@opentelemetry/semantic-conventions": "1.25.1" + "@opentelemetry/semantic-conventions": "1.28.0" }, "engines": { "node": ">=14" @@ -123,6 +128,14 @@ "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, + "node_modules/@opentelemetry/core/node_modules/@opentelemetry/semantic-conventions": { + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz", + "integrity": "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==", + "engines": { + "node": ">=14" + } + }, "node_modules/@opentelemetry/exporter-logs-otlp-http": { "version": "0.52.1", "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-logs-otlp-http/-/exporter-logs-otlp-http-0.52.1.tgz", @@ -141,6 +154,20 @@ "@opentelemetry/api": "^1.0.0" } }, + "node_modules/@opentelemetry/exporter-logs-otlp-http/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/exporter-trace-otlp-grpc": { "version": "0.52.1", "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-grpc/-/exporter-trace-otlp-grpc-0.52.1.tgz", @@ -160,6 +187,20 @@ "@opentelemetry/api": "^1.0.0" } }, + "node_modules/@opentelemetry/exporter-trace-otlp-grpc/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/exporter-trace-otlp-http": { "version": "0.52.1", "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.52.1.tgz", @@ -178,6 +219,20 @@ "@opentelemetry/api": "^1.0.0" } }, + "node_modules/@opentelemetry/exporter-trace-otlp-http/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/exporter-trace-otlp-proto": { "version": "0.52.1", "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-proto/-/exporter-trace-otlp-proto-0.52.1.tgz", @@ -196,6 +251,20 @@ "@opentelemetry/api": "^1.0.0" } }, + "node_modules/@opentelemetry/exporter-trace-otlp-proto/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/exporter-zipkin": { "version": "1.25.1", "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-zipkin/-/exporter-zipkin-1.25.1.tgz", @@ -213,6 +282,20 @@ "@opentelemetry/api": "^1.0.0" } }, + "node_modules/@opentelemetry/exporter-zipkin/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/instrumentation": { "version": "0.52.1", "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.52.1.tgz", @@ -247,6 +330,20 @@ "@opentelemetry/api": "^1.0.0" } }, + "node_modules/@opentelemetry/otlp-exporter-base/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/otlp-grpc-exporter-base": { "version": "0.52.1", "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-grpc-exporter-base/-/otlp-grpc-exporter-base-0.52.1.tgz", @@ -264,6 +361,20 @@ "@opentelemetry/api": "^1.0.0" } }, + "node_modules/@opentelemetry/otlp-grpc-exporter-base/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/otlp-transformer": { "version": "0.52.1", "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-transformer/-/otlp-transformer-0.52.1.tgz", @@ -284,6 +395,20 @@ "@opentelemetry/api": ">=1.3.0 <1.10.0" } }, + "node_modules/@opentelemetry/otlp-transformer/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/propagator-b3": { "version": "1.25.1", "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-b3/-/propagator-b3-1.25.1.tgz", @@ -298,6 +423,20 @@ "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, + "node_modules/@opentelemetry/propagator-b3/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/propagator-jaeger": { "version": "1.25.1", "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.25.1.tgz", @@ -312,6 +451,20 @@ "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, + "node_modules/@opentelemetry/propagator-jaeger/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/resources": { "version": "1.25.1", "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.25.1.tgz", @@ -327,6 +480,20 @@ "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, + "node_modules/@opentelemetry/resources/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/sdk-logs": { "version": "0.52.1", "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-logs/-/sdk-logs-0.52.1.tgz", @@ -343,6 +510,20 @@ "@opentelemetry/api": ">=1.4.0 <1.10.0" } }, + "node_modules/@opentelemetry/sdk-logs/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/sdk-metrics": { "version": "1.25.1", "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics/-/sdk-metrics-1.25.1.tgz", @@ -359,6 +540,20 @@ "@opentelemetry/api": ">=1.3.0 <1.10.0" } }, + "node_modules/@opentelemetry/sdk-metrics/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/sdk-node": { "version": "0.52.1", "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-node/-/sdk-node-0.52.1.tgz", @@ -385,6 +580,20 @@ "@opentelemetry/api": ">=1.3.0 <1.10.0" } }, + "node_modules/@opentelemetry/sdk-node/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/sdk-trace-base": { "version": "1.25.1", "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.25.1.tgz", @@ -401,6 +610,20 @@ "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, + "node_modules/@opentelemetry/sdk-trace-base/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/sdk-trace-node": { "version": "1.25.1", "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.25.1.tgz", @@ -420,6 +643,20 @@ "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, + "node_modules/@opentelemetry/sdk-trace-node/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/semantic-conventions": { "version": "1.25.1", "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.25.1.tgz", @@ -483,9 +720,9 @@ "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.30.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.30.1.tgz", - "integrity": "sha512-r7FQIXD7gB0WJ5mokTUgUWPl0eYIH0wnxqeSAhuIwvnnpjdVB8cRRClyKLQr7lgzjctkbp5KmswWszlwYln03Q==", + "version": "4.36.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.36.0.tgz", + "integrity": "sha512-JQ1Jk5G4bGrD4pWJQzWsD8I1n1mgPXq33+/vP4sk8j/z/C2siRuxZtaUA7yMTf71TCZTZl/4e1bfzwUmFb3+rw==", "cpu": [ "arm64" ], @@ -500,15 +737,17 @@ "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==" }, "node_modules/@trigger.dev/core": { - "version": "0.0.0-prerelease-20250116195421", - "resolved": "https://registry.npmjs.org/@trigger.dev/core/-/core-0.0.0-prerelease-20250116195421.tgz", - "integrity": "sha512-bxZ5vq3txcUxQln8BZSb2No7gHPG/qTSeo5uq6W2+OQKoVN+c5pmVTYQQa6Fwfd2AXhpkU9ovdM3V1IoEddOtA==", + "version": "0.0.0-prerelease-20250321122618", + "resolved": "https://registry.npmjs.org/@trigger.dev/core/-/core-0.0.0-prerelease-20250321122618.tgz", + "integrity": "sha512-0hSMKqvM39V1A8YjZxYivw109ZrGk22Pfa8ydQ29nCubdeTMe6for+AYzj89BIOnEGeEZ24Hzg2uVc5Av9BUHg==", "dependencies": { + "@bugsnag/cuid": "^3.1.1", "@electric-sql/client": "1.0.0-beta.1", "@google-cloud/precise-date": "^4.0.0", "@jsonhero/path": "^1.0.21", "@opentelemetry/api": "1.9.0", "@opentelemetry/api-logs": "0.52.1", + "@opentelemetry/core": "^1.30.1", "@opentelemetry/exporter-logs-otlp-http": "0.52.1", "@opentelemetry/exporter-trace-otlp-http": "0.52.1", "@opentelemetry/instrumentation": "0.52.1", @@ -519,13 +758,16 @@ "@opentelemetry/sdk-trace-node": "1.25.1", "@opentelemetry/semantic-conventions": "1.25.1", "dequal": "^2.0.3", + "eventsource": "^3.0.5", "eventsource-parser": "^3.0.0", "execa": "^8.0.1", "humanize-duration": "^3.27.3", "jose": "^5.4.0", "nanoid": "^3.3.4", + "socket.io": "4.7.4", "socket.io-client": "4.7.5", "superjson": "^2.2.1", + "tinyexec": "^0.3.2", "zod": "3.23.8", "zod-error": "1.5.0", "zod-validation-error": "^1.5.0" @@ -543,14 +785,14 @@ } }, "node_modules/@trigger.dev/sdk": { - "version": "0.0.0-prerelease-20250116195421", - "resolved": "https://registry.npmjs.org/@trigger.dev/sdk/-/sdk-0.0.0-prerelease-20250116195421.tgz", - "integrity": "sha512-/Kw+q/mDulGgiSHR9L3nldGOWH72AQAys9zuoBO72JjVfipKI1R8jjqQHhZjWqolMYqgg9XaJr9lQM8sV5lWwQ==", + "version": "0.0.0-prerelease-20250321122618", + "resolved": "https://registry.npmjs.org/@trigger.dev/sdk/-/sdk-0.0.0-prerelease-20250321122618.tgz", + "integrity": "sha512-/DOWqGdTxkeUY3WIJ/lPS8vC9VwitQiB+ONHCR5L1xBovHVaCyj3zMn/dWPsM+Wtz2wVZAPZ45pmHqvJEX3qLw==", "dependencies": { "@opentelemetry/api": "1.9.0", "@opentelemetry/api-logs": "0.52.1", "@opentelemetry/semantic-conventions": "1.25.1", - "@trigger.dev/core": "0.0.0-prerelease-20250116195421", + "@trigger.dev/core": "0.0.0-prerelease-20250321122618", "chalk": "^5.2.0", "cronstrue": "^2.21.0", "debug": "^4.3.4", @@ -558,6 +800,7 @@ "slug": "^6.0.0", "terminal-link": "^3.0.0", "ulid": "^2.3.0", + "uncrypto": "^0.1.3", "uuid": "^9.0.0", "ws": "^8.11.0" }, @@ -568,10 +811,23 @@ "zod": "^3.0.0" } }, + "node_modules/@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==" + }, + "node_modules/@types/cors": { + "version": "2.8.17", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz", + "integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/node": { - "version": "22.10.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.7.tgz", - "integrity": "sha512-V09KvXxFiutGp6B7XkpaDXlNadZxrzajcY50EuoLIpQ6WWYCSvf19lVIazzfIzQvhUN2HjX12spLojTnhuKlGg==", + "version": "22.13.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.11.tgz", + "integrity": "sha512-iEUCUJoU0i3VnrCmgoWCXttklWcvoCIx4jzcP22fioIVSdTmjgoEvmAO/QPw6TcS9k5FrNgn4w7q5lGOd1CT5g==", "dependencies": { "undici-types": "~6.20.0" } @@ -581,10 +837,22 @@ "resolved": "https://registry.npmjs.org/@types/shimmer/-/shimmer-1.2.0.tgz", "integrity": "sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==" }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/acorn": { - "version": "8.14.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", - "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "version": "8.14.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", + "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", "bin": { "acorn": "bin/acorn" }, @@ -636,6 +904,14 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "engines": { + "node": "^4.5.0 || >= 5.9" + } + }, "node_modules/chalk": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", @@ -648,9 +924,9 @@ } }, "node_modules/cjs-module-lexer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.1.tgz", - "integrity": "sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==" + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz", + "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==" }, "node_modules/cliui": { "version": "8.0.1", @@ -681,6 +957,14 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, + "node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/copy-anything": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-3.0.5.tgz", @@ -695,6 +979,18 @@ "url": "https://github.com/sponsors/mesqueeb" } }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/cronstrue": { "version": "2.50.0", "resolved": "https://registry.npmjs.org/cronstrue/-/cronstrue-2.50.0.tgz", @@ -745,6 +1041,26 @@ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, + "node_modules/engine.io": { + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.5.5.tgz", + "integrity": "sha512-C5Pn8Wk+1vKBoHghJODM63yk8MvrO9EWZUfkAt5HAqIgPE4/8FF0PEGHXtEd40l223+cE5ABWuPzm38PHFXfMA==", + "dependencies": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.17.1" + }, + "engines": { + "node": ">=10.2.0" + } + }, "node_modules/engine.io-client": { "version": "6.5.4", "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.4.tgz", @@ -801,6 +1117,42 @@ "node": ">=10.0.0" } }, + "node_modules/engine.io/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/engine.io/node_modules/ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/escalade": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", @@ -809,6 +1161,17 @@ "node": ">=6" } }, + "node_modules/eventsource": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-3.0.5.tgz", + "integrity": "sha512-LT/5J605bx5SNyE+ITBDiM3FxffBiq9un7Vx0EwMDM3vg8sWKx/tO2zC+LMqZ+smAM0F2hblaDZUVZF0te2pSw==", + "dependencies": { + "eventsource-parser": "^3.0.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/eventsource-parser": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.0.0.tgz", @@ -909,11 +1272,11 @@ "integrity": "sha512-inh5wue5XdfObhu/IGEMiA1nUXigSGcaKNemcbLRKa7jXYGDZXr3LoT9pTIzq2hPEbld7w/qv9h+ikWGz8fL1g==" }, "node_modules/import-in-the-middle": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-1.12.0.tgz", - "integrity": "sha512-yAgSE7GmtRcu4ZUSFX/4v69UGXwugFFSdIQJ14LHPOPPQrWv8Y7O9PHsw8Ovk7bKCLe4sjXMbZFqGFcLHpZ89w==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-1.13.1.tgz", + "integrity": "sha512-k2V9wNm9B+ysuelDTHjI9d5KPc4l8zAZTGqj+pcynvWkypZd857ryzN8jNC7Pg2YZXNMJcHRPpaDyCBbNyVRpA==", "dependencies": { - "acorn": "^8.8.2", + "acorn": "^8.14.0", "acorn-import-attributes": "^1.9.5", "cjs-module-lexer": "^1.2.2", "module-details-from-path": "^1.0.3" @@ -969,9 +1332,9 @@ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "node_modules/jose": { - "version": "5.9.6", - "resolved": "https://registry.npmjs.org/jose/-/jose-5.9.6.tgz", - "integrity": "sha512-AMlnetc9+CV9asI19zHmrgS/WYsWUwCn2R7RzlbJWD7F9eWYUTGyBmU9o6PxngtLGOiDGPRu+Uc4fhKzbpteZQ==", + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/jose/-/jose-5.10.0.tgz", + "integrity": "sha512-s+3Al/p9g32Iq+oqXxkW//7jk2Vig6FF1CFqzVXoTUXt2qz89YWbL+OwS17NFYEvxC35n0FKeGO2LGYSxeM2Gg==", "funding": { "url": "https://github.com/sponsors/panva" } @@ -987,15 +1350,34 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" }, "node_modules/long": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.4.tgz", - "integrity": "sha512-qtzLbJE8hq7VabR3mISmVGtoXP8KGc2Z/AT8OuqlYD7JTR3oqrgwdjnk07wpj1twXxYmgDXgoKVWUG/fReSzHg==" + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/long/-/long-5.3.1.tgz", + "integrity": "sha512-ka87Jz3gcx/I7Hal94xaN2tZEOPoUOEVftkQqZx2EeQRN7LGdfLlI3FvZ+7WDplm+vK2Urx9ULrvSowtdCieng==" }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/mimic-fn": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", @@ -1028,9 +1410,9 @@ "integrity": "sha512-SnTNxFV0+5z+01yWPByxvyTDGkBalyTeVTr2FxLJlWFf/isKiI6GIYrEiv+aggU3tHXu6a9l1yyCvdA5nhPOQA==" }, "node_modules/nanoid": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", - "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", "funding": [ { "type": "github", @@ -1044,6 +1426,14 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/npm-run-path": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", @@ -1069,6 +1459,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/onetime": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", @@ -1128,9 +1526,9 @@ } }, "node_modules/require-in-the-middle": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-7.4.0.tgz", - "integrity": "sha512-X34iHADNbNDfr6OTStIAHWSAvvKQRYgLO6duASaVf7J2VA3lvmNYboAHOuLC2huav1IwgZJtyEcJCKVzFxOSMQ==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-7.5.2.tgz", + "integrity": "sha512-gAZ+kLqBdHarXB64XpAe2VCjB7rIRv+mU8tfRWziHRJ5umKsIHN2tLLv6EtMw7WCdP19S0ERVMldNvxYCHnhSQ==", "dependencies": { "debug": "^4.3.5", "module-details-from-path": "^1.0.3", @@ -1168,9 +1566,9 @@ } }, "node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", "bin": { "semver": "bin/semver.js" }, @@ -1218,6 +1616,68 @@ "resolved": "https://registry.npmjs.org/slug/-/slug-6.1.0.tgz", "integrity": "sha512-x6vLHCMasg4DR2LPiyFGI0gJJhywY6DTiGhCrOMzb3SOk/0JVLIaL4UhyFSHu04SD3uAavrKY/K3zZ3i6iRcgA==" }, + "node_modules/socket.io": { + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.4.tgz", + "integrity": "sha512-DcotgfP1Zg9iP/dH9zvAQcWrE0TtbMVwXmlV4T4mqsvY+gw+LqUGPfx2AoVyRk0FLME+GQhufDMyacFmw7ksqw==", + "dependencies": { + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "cors": "~2.8.5", + "debug": "~4.3.2", + "engine.io": "~6.5.2", + "socket.io-adapter": "~2.5.2", + "socket.io-parser": "~4.2.4" + }, + "engines": { + "node": ">=10.2.0" + } + }, + "node_modules/socket.io-adapter": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.5.tgz", + "integrity": "sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==", + "dependencies": { + "debug": "~4.3.4", + "ws": "~8.17.1" + } + }, + "node_modules/socket.io-adapter/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socket.io-adapter/node_modules/ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/socket.io-client": { "version": "4.7.5", "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.5.tgz", @@ -1276,6 +1736,22 @@ } } }, + "node_modules/socket.io/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -1371,6 +1847,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/tinyexec": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==" + }, "node_modules/tsafe": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/tsafe/-/tsafe-1.7.2.tgz", @@ -1408,6 +1889,11 @@ "ulid": "bin/cli.js" } }, + "node_modules/uncrypto": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/uncrypto/-/uncrypto-0.1.3.tgz", + "integrity": "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==" + }, "node_modules/undici-types": { "version": "6.20.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", @@ -1425,6 +1911,14 @@ "uuid": "dist/bin/uuid" } }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -1517,9 +2011,9 @@ } }, "node_modules/zod": { - "version": "3.24.1", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.1.tgz", - "integrity": "sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==", + "version": "3.24.2", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.2.tgz", + "integrity": "sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==", "funding": { "url": "https://github.com/sponsors/colinhacks" } diff --git a/packages/cli-v3/e2e/fixtures/esm-only-external/package.json b/packages/cli-v3/e2e/fixtures/esm-only-external/package.json index 33dea5acdd..c32bb7dbc2 100644 --- a/packages/cli-v3/e2e/fixtures/esm-only-external/package.json +++ b/packages/cli-v3/e2e/fixtures/esm-only-external/package.json @@ -2,7 +2,7 @@ "name": "esm-only-external", "private": true, "type": "module", - "packageManager": "pnpm@8.15.5+sha256.4b4efa12490e5055d59b9b9fc9438b7d581a6b7af3b5675eb5c5f447cee1a589", + "packageManager": "yarn@4.2.2+sha256.1aa43a5304405be7a7cb9cb5de7b97de9c4e8ddd3273e4dad00d6ae3eb39f0ef", "engines": { "pnpm": "8.15.5", "yarn": "4.2.2" @@ -11,7 +11,7 @@ "packages/*" ], "dependencies": { - "@trigger.dev/sdk": "0.0.0-prerelease-20250116195421", + "@trigger.dev/sdk": "0.0.0-prerelease-20250321122618", "mupdf": "^0.3.0" }, "devDependencies": { diff --git a/packages/cli-v3/e2e/fixtures/esm-only-external/pnpm-lock.yaml b/packages/cli-v3/e2e/fixtures/esm-only-external/pnpm-lock.yaml index 574bc381f6..47e883fde1 100644 --- a/packages/cli-v3/e2e/fixtures/esm-only-external/pnpm-lock.yaml +++ b/packages/cli-v3/e2e/fixtures/esm-only-external/pnpm-lock.yaml @@ -9,8 +9,8 @@ importers: .: dependencies: '@trigger.dev/sdk': - specifier: 0.0.0-prerelease-20250116195421 - version: 0.0.0-prerelease-20250116195421(zod@3.22.3) + specifier: 0.0.0-prerelease-20250321122618 + version: 0.0.0-prerelease-20250321122618(zod@3.23.8) mupdf: specifier: ^0.3.0 version: 0.3.0 @@ -21,6 +21,10 @@ importers: packages: + /@bugsnag/cuid@3.2.1: + resolution: {integrity: sha512-zpvN8xQ5rdRWakMd/BcVkdn2F8HKlDSbM3l7duueK590WmI1T0ObTLc1V/1e55r14WNjPd5AJTYX4yPEAFVi+Q==} + dev: false + /@electric-sql/client@1.0.0-beta.1: resolution: {integrity: sha512-Ei9jN3pDoGzc+a/bGqnB5ajb52IvSv7/n2btuyzUlcOHIR2kM9fqtYTJXPwZYKLkGZlHWlpHgWyRtrinkP2nHg==} optionalDependencies: @@ -90,6 +94,16 @@ packages: '@opentelemetry/semantic-conventions': 1.25.1 dev: false + /@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0): + resolution: {integrity: sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/semantic-conventions': 1.28.0 + dev: false + /@opentelemetry/exporter-logs-otlp-http@0.52.1(@opentelemetry/api@1.9.0): resolution: {integrity: sha512-qKgywId2DbdowPZpOBXQKp0B8DfhfIArmSic15z13Nk/JAOccBUQdPwDjDnjsM5f0ckZFMVR2t/tijTUAqDZoA==} engines: {node: '>=14'} @@ -328,6 +342,11 @@ packages: engines: {node: '>=14'} dev: false + /@opentelemetry/semantic-conventions@1.28.0: + resolution: {integrity: sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==} + engines: {node: '>=14'} + dev: false + /@protobufjs/aspromise@1.1.2: resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} dev: false @@ -383,15 +402,17 @@ packages: resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} dev: false - /@trigger.dev/core@0.0.0-prerelease-20250116195421: - resolution: {integrity: sha512-bxZ5vq3txcUxQln8BZSb2No7gHPG/qTSeo5uq6W2+OQKoVN+c5pmVTYQQa6Fwfd2AXhpkU9ovdM3V1IoEddOtA==} + /@trigger.dev/core@0.0.0-prerelease-20250321122618: + resolution: {integrity: sha512-0hSMKqvM39V1A8YjZxYivw109ZrGk22Pfa8ydQ29nCubdeTMe6for+AYzj89BIOnEGeEZ24Hzg2uVc5Av9BUHg==} engines: {node: '>=18.20.0'} dependencies: + '@bugsnag/cuid': 3.2.1 '@electric-sql/client': 1.0.0-beta.1 '@google-cloud/precise-date': 4.0.0 '@jsonhero/path': 1.0.21 '@opentelemetry/api': 1.9.0 '@opentelemetry/api-logs': 0.52.1 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/exporter-logs-otlp-http': 0.52.1(@opentelemetry/api@1.9.0) '@opentelemetry/exporter-trace-otlp-http': 0.52.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) @@ -402,13 +423,16 @@ packages: '@opentelemetry/sdk-trace-node': 1.25.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.25.1 dequal: 2.0.3 + eventsource: 3.0.5 eventsource-parser: 3.0.0 execa: 8.0.1 humanize-duration: 3.32.1 jose: 5.9.6 nanoid: 3.3.8 + socket.io: 4.7.4 socket.io-client: 4.7.5 superjson: 2.2.1 + tinyexec: 0.3.2 zod: 3.23.8 zod-error: 1.5.0 zod-validation-error: 1.5.0(zod@3.23.8) @@ -418,8 +442,8 @@ packages: - utf-8-validate dev: false - /@trigger.dev/sdk@0.0.0-prerelease-20250116195421(zod@3.22.3): - resolution: {integrity: sha512-/Kw+q/mDulGgiSHR9L3nldGOWH72AQAys9zuoBO72JjVfipKI1R8jjqQHhZjWqolMYqgg9XaJr9lQM8sV5lWwQ==} + /@trigger.dev/sdk@0.0.0-prerelease-20250321122618(zod@3.23.8): + resolution: {integrity: sha512-/DOWqGdTxkeUY3WIJ/lPS8vC9VwitQiB+ONHCR5L1xBovHVaCyj3zMn/dWPsM+Wtz2wVZAPZ45pmHqvJEX3qLw==} engines: {node: '>=18.20.0'} peerDependencies: zod: ^3.0.0 @@ -427,7 +451,7 @@ packages: '@opentelemetry/api': 1.9.0 '@opentelemetry/api-logs': 0.52.1 '@opentelemetry/semantic-conventions': 1.25.1 - '@trigger.dev/core': 0.0.0-prerelease-20250116195421 + '@trigger.dev/core': 0.0.0-prerelease-20250321122618 chalk: 5.3.0 cronstrue: 2.50.0 debug: 4.3.7 @@ -435,15 +459,26 @@ packages: slug: 6.1.0 terminal-link: 3.0.0 ulid: 2.3.0 + uncrypto: 0.1.3 uuid: 9.0.1 ws: 8.18.0 - zod: 3.22.3 + zod: 3.23.8 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate dev: false + /@types/cookie@0.4.1: + resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==} + dev: false + + /@types/cors@2.8.17: + resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} + dependencies: + '@types/node': 22.5.5 + dev: false + /@types/node@22.5.5: resolution: {integrity: sha512-Xjs4y5UPO/CLdzpgR6GirZJx36yScjh73+2NlLlkFRSoQN8B0DpfXPdZGnvVmLRLOsqDpOfTNv7D9trgGhmOIA==} dependencies: @@ -454,6 +489,14 @@ packages: resolution: {integrity: sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==} dev: false + /accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + dev: false + /acorn-import-attributes@1.9.5(acorn@8.12.1): resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} peerDependencies: @@ -487,6 +530,11 @@ packages: color-convert: 2.0.1 dev: false + /base64id@2.0.0: + resolution: {integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==} + engines: {node: ^4.5.0 || >= 5.9} + dev: false + /chalk@5.3.0: resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} @@ -516,6 +564,11 @@ packages: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} dev: false + /cookie@0.4.2: + resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==} + engines: {node: '>= 0.6'} + dev: false + /copy-anything@3.0.5: resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} engines: {node: '>=12.13'} @@ -523,6 +576,14 @@ packages: is-what: 4.1.16 dev: false + /cors@2.8.5: + resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} + engines: {node: '>= 0.10'} + dependencies: + object-assign: 4.1.1 + vary: 1.1.2 + dev: false + /cronstrue@2.50.0: resolution: {integrity: sha512-ULYhWIonJzlScCCQrPUG5uMXzXxSixty4djud9SS37DoNxDdkeRocxzHuAo4ImRBUK+mAuU5X9TSwEDccnnuPg==} hasBin: true @@ -577,6 +638,26 @@ packages: engines: {node: '>=10.0.0'} dev: false + /engine.io@6.5.5: + resolution: {integrity: sha512-C5Pn8Wk+1vKBoHghJODM63yk8MvrO9EWZUfkAt5HAqIgPE4/8FF0PEGHXtEd40l223+cE5ABWuPzm38PHFXfMA==} + engines: {node: '>=10.2.0'} + dependencies: + '@types/cookie': 0.4.1 + '@types/cors': 2.8.17 + '@types/node': 22.5.5 + accepts: 1.3.8 + base64id: 2.0.0 + cookie: 0.4.2 + cors: 2.8.5 + debug: 4.3.7 + engine.io-parser: 5.2.3 + ws: 8.17.1 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: false + /escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -587,6 +668,13 @@ packages: engines: {node: '>=18.0.0'} dev: false + /eventsource@3.0.5: + resolution: {integrity: sha512-LT/5J605bx5SNyE+ITBDiM3FxffBiq9un7Vx0EwMDM3vg8sWKx/tO2zC+LMqZ+smAM0F2hblaDZUVZF0te2pSw==} + engines: {node: '>=18.0.0'} + dependencies: + eventsource-parser: 3.0.0 + dev: false + /evt@2.5.7: resolution: {integrity: sha512-dr7Wd16ry5F8WNU1xXLKpFpO3HsoAGg8zC48e08vDdzMzGWCP9/QFGt1PQptEEDh8SwYP3EL8M+d/Gb0kgUp6g==} dependencies: @@ -700,6 +788,18 @@ packages: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} dev: false + /mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + dev: false + + /mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + dev: false + /mimic-fn@4.0.0: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} engines: {node: '>=12'} @@ -727,6 +827,11 @@ packages: hasBin: true dev: false + /negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + dev: false + /npm-run-path@5.3.0: resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -734,6 +839,11 @@ packages: path-key: 4.0.0 dev: false + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + dev: false + /onetime@6.0.0: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} engines: {node: '>=12'} @@ -836,6 +946,17 @@ packages: resolution: {integrity: sha512-x6vLHCMasg4DR2LPiyFGI0gJJhywY6DTiGhCrOMzb3SOk/0JVLIaL4UhyFSHu04SD3uAavrKY/K3zZ3i6iRcgA==} dev: false + /socket.io-adapter@2.5.5: + resolution: {integrity: sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==} + dependencies: + debug: 4.3.7 + ws: 8.17.1 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: false + /socket.io-client@4.7.5: resolution: {integrity: sha512-sJ/tqHOCe7Z50JCBCXrsY3I2k03iOiUe+tj1OmKeD2lXPiGH/RUCdTZFoqVyN7l1MnpIzPrGtLcijffmeouNlQ==} engines: {node: '>=10.0.0'} @@ -860,6 +981,23 @@ packages: - supports-color dev: false + /socket.io@4.7.4: + resolution: {integrity: sha512-DcotgfP1Zg9iP/dH9zvAQcWrE0TtbMVwXmlV4T4mqsvY+gw+LqUGPfx2AoVyRk0FLME+GQhufDMyacFmw7ksqw==} + engines: {node: '>=10.2.0'} + dependencies: + accepts: 1.3.8 + base64id: 2.0.0 + cors: 2.8.5 + debug: 4.3.7 + engine.io: 6.5.5 + socket.io-adapter: 2.5.5 + socket.io-parser: 4.2.4 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: false + /string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -916,6 +1054,10 @@ packages: supports-hyperlinks: 2.3.0 dev: false + /tinyexec@0.3.2: + resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} + dev: false + /tsafe@1.7.2: resolution: {integrity: sha512-dAPfQLhCfCRre5qs+Z5Q2a7s2CV7RxffZUmvj7puGaePYjECzWREJFd3w4XSFe/T5tbxgowfItA/JSSZ6Ma3dA==} dev: false @@ -936,6 +1078,10 @@ packages: hasBin: true dev: false + /uncrypto@0.1.3: + resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} + dev: false + /undici-types@6.19.8: resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} dev: false @@ -945,6 +1091,11 @@ packages: hasBin: true dev: false + /vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + dev: false + /which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -1031,10 +1182,6 @@ packages: zod: 3.23.8 dev: false - /zod@3.22.3: - resolution: {integrity: sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug==} - dev: false - /zod@3.23.8: resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} dev: false diff --git a/packages/cli-v3/e2e/fixtures/esm-only-external/yarn.lock b/packages/cli-v3/e2e/fixtures/esm-only-external/yarn.lock index a8c7ad1a76..00a4c8b69b 100644 --- a/packages/cli-v3/e2e/fixtures/esm-only-external/yarn.lock +++ b/packages/cli-v3/e2e/fixtures/esm-only-external/yarn.lock @@ -5,6 +5,13 @@ __metadata: version: 8 cacheKey: 10c0 +"@bugsnag/cuid@npm:^3.1.1": + version: 3.2.1 + resolution: "@bugsnag/cuid@npm:3.2.1" + checksum: 10c0/f2da80e922a3ed14bcede1e8257ce02974fdce91f2b6ecfc25846f70c250f2909b2a19f898e309cf564c882b39ac685df99e8fe498db45071d3019db5ea03e6a + languageName: node + linkType: hard + "@electric-sql/client@npm:1.0.0-beta.1": version: 1.0.0-beta.1 resolution: "@electric-sql/client@npm:1.0.0-beta.1" @@ -25,12 +32,12 @@ __metadata: linkType: hard "@grpc/grpc-js@npm:^1.7.1": - version: 1.12.5 - resolution: "@grpc/grpc-js@npm:1.12.5" + version: 1.13.0 + resolution: "@grpc/grpc-js@npm:1.13.0" dependencies: "@grpc/proto-loader": "npm:^0.7.13" "@js-sdsl/ordered-map": "npm:^4.4.2" - checksum: 10c0/1e539d98951e6ff6611e3cedc8eec343625fdab76c7683aa7fca605b3de17d8aabaf2f78d7e95400e68dc8e249cda498781e9a3481bb6b713fc167da3fe59a8e + checksum: 10c0/c760d5eb5ee07c4cfd5dcd83ee62d5232d5776b5d1ce5d436edc53402ec16ef053d3a283f48ce832f4635009dbd411ac7586495a7d053fc5f202e95811cf4129 languageName: node linkType: hard @@ -98,6 +105,17 @@ __metadata: languageName: node linkType: hard +"@opentelemetry/core@npm:^1.30.1": + version: 1.30.1 + resolution: "@opentelemetry/core@npm:1.30.1" + dependencies: + "@opentelemetry/semantic-conventions": "npm:1.28.0" + peerDependencies: + "@opentelemetry/api": ">=1.0.0 <1.10.0" + checksum: 10c0/4c25ba50a6137c2ba9ca563fb269378f3c9ca6fd1b3f15dbb6eff78eebf5656f281997cbb7be8e51c01649fd6ad091083fcd8a42dd9b5dfac907dc06d7cfa092 + languageName: node + linkType: hard + "@opentelemetry/exporter-logs-otlp-http@npm:0.52.1": version: 0.52.1 resolution: "@opentelemetry/exporter-logs-otlp-http@npm:0.52.1" @@ -351,6 +369,13 @@ __metadata: languageName: node linkType: hard +"@opentelemetry/semantic-conventions@npm:1.28.0": + version: 1.28.0 + resolution: "@opentelemetry/semantic-conventions@npm:1.28.0" + checksum: 10c0/deb8a0f744198071e70fea27143cf7c9f7ecb7e4d7b619488c917834ea09b31543c1c2bcea4ec5f3cf68797f0ef3549609c14e859013d9376400ac1499c2b9cb + languageName: node + linkType: hard + "@protobufjs/aspromise@npm:^1.1.1, @protobufjs/aspromise@npm:^1.1.2": version: 1.1.2 resolution: "@protobufjs/aspromise@npm:1.1.2" @@ -425,8 +450,8 @@ __metadata: linkType: hard "@rollup/rollup-darwin-arm64@npm:^4.18.1": - version: 4.30.1 - resolution: "@rollup/rollup-darwin-arm64@npm:4.30.1" + version: 4.36.0 + resolution: "@rollup/rollup-darwin-arm64@npm:4.36.0" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard @@ -438,15 +463,17 @@ __metadata: languageName: node linkType: hard -"@trigger.dev/core@npm:0.0.0-prerelease-20250116195421": - version: 0.0.0-prerelease-20250116195421 - resolution: "@trigger.dev/core@npm:0.0.0-prerelease-20250116195421" +"@trigger.dev/core@npm:0.0.0-prerelease-20250321122618": + version: 0.0.0-prerelease-20250321122618 + resolution: "@trigger.dev/core@npm:0.0.0-prerelease-20250321122618" dependencies: + "@bugsnag/cuid": "npm:^3.1.1" "@electric-sql/client": "npm:1.0.0-beta.1" "@google-cloud/precise-date": "npm:^4.0.0" "@jsonhero/path": "npm:^1.0.21" "@opentelemetry/api": "npm:1.9.0" "@opentelemetry/api-logs": "npm:0.52.1" + "@opentelemetry/core": "npm:^1.30.1" "@opentelemetry/exporter-logs-otlp-http": "npm:0.52.1" "@opentelemetry/exporter-trace-otlp-http": "npm:0.52.1" "@opentelemetry/instrumentation": "npm:0.52.1" @@ -457,28 +484,31 @@ __metadata: "@opentelemetry/sdk-trace-node": "npm:1.25.1" "@opentelemetry/semantic-conventions": "npm:1.25.1" dequal: "npm:^2.0.3" + eventsource: "npm:^3.0.5" eventsource-parser: "npm:^3.0.0" execa: "npm:^8.0.1" humanize-duration: "npm:^3.27.3" jose: "npm:^5.4.0" nanoid: "npm:^3.3.4" + socket.io: "npm:4.7.4" socket.io-client: "npm:4.7.5" superjson: "npm:^2.2.1" + tinyexec: "npm:^0.3.2" zod: "npm:3.23.8" zod-error: "npm:1.5.0" zod-validation-error: "npm:^1.5.0" - checksum: 10c0/90b53701ba59608e4b0319c5d08147ee04440e14ecb163dabcbea725f46555d4aa8b91fee51a31e616cd88d5f6dcfc15cb7a59491894c36d5cfe818454fff620 + checksum: 10c0/0bcab7e5ea31c2ee49699b83b26da9994f0ce803b3208ac12e2157ebd21c1e872021922241ba835a98880cd051d2cc245c472ec1901196bfc2a41a53663326ec languageName: node linkType: hard -"@trigger.dev/sdk@npm:0.0.0-prerelease-20250116195421": - version: 0.0.0-prerelease-20250116195421 - resolution: "@trigger.dev/sdk@npm:0.0.0-prerelease-20250116195421" +"@trigger.dev/sdk@npm:0.0.0-prerelease-20250321122618": + version: 0.0.0-prerelease-20250321122618 + resolution: "@trigger.dev/sdk@npm:0.0.0-prerelease-20250321122618" dependencies: "@opentelemetry/api": "npm:1.9.0" "@opentelemetry/api-logs": "npm:0.52.1" "@opentelemetry/semantic-conventions": "npm:1.25.1" - "@trigger.dev/core": "npm:0.0.0-prerelease-20250116195421" + "@trigger.dev/core": "npm:0.0.0-prerelease-20250321122618" chalk: "npm:^5.2.0" cronstrue: "npm:^2.21.0" debug: "npm:^4.3.4" @@ -486,20 +516,37 @@ __metadata: slug: "npm:^6.0.0" terminal-link: "npm:^3.0.0" ulid: "npm:^2.3.0" + uncrypto: "npm:^0.1.3" uuid: "npm:^9.0.0" ws: "npm:^8.11.0" peerDependencies: zod: ^3.0.0 - checksum: 10c0/6c54e6588a02097a49f11784fefaa1e00b12af4875f6f599de80d54031b9ef919ff017924d6870427cd5d8da178d177df0b0a6c32c0930a03882e3c6c9def1dc + checksum: 10c0/2ae41e2fe41a781346a91144b946355521bbcce5bd4cbf4a48f4aeb0b9a7b338a9e749ed014c36732fb128510a01573230a70571c3ccb91f5500776b52ca17a5 + languageName: node + linkType: hard + +"@types/cookie@npm:^0.4.1": + version: 0.4.1 + resolution: "@types/cookie@npm:0.4.1" + checksum: 10c0/f96afe12bd51be1ec61410b0641243d93fa3a494702407c787a4c872b5c8bcd39b224471452055e44a9ce42af1a636e87d161994226eaf4c2be9c30f60418409 + languageName: node + linkType: hard + +"@types/cors@npm:^2.8.12": + version: 2.8.17 + resolution: "@types/cors@npm:2.8.17" + dependencies: + "@types/node": "npm:*" + checksum: 10c0/457364c28c89f3d9ed34800e1de5c6eaaf344d1bb39af122f013322a50bc606eb2aa6f63de4e41a7a08ba7ef454473926c94a830636723da45bf786df032696d languageName: node linkType: hard -"@types/node@npm:>=13.7.0": - version: 22.10.7 - resolution: "@types/node@npm:22.10.7" +"@types/node@npm:*, @types/node@npm:>=10.0.0, @types/node@npm:>=13.7.0": + version: 22.13.11 + resolution: "@types/node@npm:22.13.11" dependencies: undici-types: "npm:~6.20.0" - checksum: 10c0/c941b4689dfc4044b64a5f601306cbcb0c7210be853ba378a5dd44137898c45accedd796ee002ad9407024cac7ecaf5049304951cb1d80ce3d7cebbbae56f20e + checksum: 10c0/f6ee33d36372242535c38640fe7550a6640d8a775ec19b55bfc11775b521cba072d892ca92a912332ce01b317293d645c1bf767f3f882ec719f2404a3d2a5b96 languageName: node linkType: hard @@ -510,6 +557,16 @@ __metadata: languageName: node linkType: hard +"accepts@npm:~1.3.4": + version: 1.3.8 + resolution: "accepts@npm:1.3.8" + dependencies: + mime-types: "npm:~2.1.34" + negotiator: "npm:0.6.3" + checksum: 10c0/3a35c5f5586cfb9a21163ca47a5f77ac34fa8ceb5d17d2fa2c0d81f41cbd7f8c6fa52c77e2c039acc0f4d09e71abdc51144246900f6bef5e3c4b333f77d89362 + languageName: node + linkType: hard + "acorn-import-attributes@npm:^1.9.5": version: 1.9.5 resolution: "acorn-import-attributes@npm:1.9.5" @@ -519,12 +576,12 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.8.2": - version: 8.14.0 - resolution: "acorn@npm:8.14.0" +"acorn@npm:^8.14.0": + version: 8.14.1 + resolution: "acorn@npm:8.14.1" bin: acorn: bin/acorn - checksum: 10c0/6d4ee461a7734b2f48836ee0fbb752903606e576cc100eb49340295129ca0b452f3ba91ddd4424a1d4406a98adfb2ebb6bd0ff4c49d7a0930c10e462719bbfd7 + checksum: 10c0/dbd36c1ed1d2fa3550140000371fcf721578095b18777b85a79df231ca093b08edc6858d75d6e48c73e431c174dcf9214edbd7e6fa5911b93bd8abfa54e47123 languageName: node linkType: hard @@ -553,6 +610,13 @@ __metadata: languageName: node linkType: hard +"base64id@npm:2.0.0, base64id@npm:~2.0.0": + version: 2.0.0 + resolution: "base64id@npm:2.0.0" + checksum: 10c0/6919efd237ed44b9988cbfc33eca6f173a10e810ce50292b271a1a421aac7748ef232a64d1e6032b08f19aae48dce6ee8f66c5ae2c9e5066c82b884861d4d453 + languageName: node + linkType: hard + "chalk@npm:^5.2.0": version: 5.3.0 resolution: "chalk@npm:5.3.0" @@ -561,9 +625,9 @@ __metadata: linkType: hard "cjs-module-lexer@npm:^1.2.2": - version: 1.4.1 - resolution: "cjs-module-lexer@npm:1.4.1" - checksum: 10c0/5a7d8279629c9ba8ccf38078c2fed75b7737973ced22b9b5a54180efa57fb2fe2bb7bec6aec55e3b8f3f5044f5d7b240347ad9bd285e7c3d0ee5b0a1d0504dfc + version: 1.4.3 + resolution: "cjs-module-lexer@npm:1.4.3" + checksum: 10c0/076b3af85adc4d65dbdab1b5b240fe5b45d44fcf0ef9d429044dd94d19be5589376805c44fb2d4b3e684e5fe6a9b7cf3e426476a6507c45283c5fc6ff95240be languageName: node linkType: hard @@ -594,6 +658,13 @@ __metadata: languageName: node linkType: hard +"cookie@npm:~0.4.1": + version: 0.4.2 + resolution: "cookie@npm:0.4.2" + checksum: 10c0/beab41fbd7c20175e3a2799ba948c1dcc71ef69f23fe14eeeff59fc09f50c517b0f77098db87dbb4c55da802f9d86ee86cdc1cd3efd87760341551838d53fca2 + languageName: node + linkType: hard + "copy-anything@npm:^3.0.2": version: 3.0.5 resolution: "copy-anything@npm:3.0.5" @@ -603,6 +674,16 @@ __metadata: languageName: node linkType: hard +"cors@npm:~2.8.5": + version: 2.8.5 + resolution: "cors@npm:2.8.5" + dependencies: + object-assign: "npm:^4" + vary: "npm:^1" + checksum: 10c0/373702b7999409922da80de4a61938aabba6929aea5b6fd9096fefb9e8342f626c0ebd7507b0e8b0b311380744cc985f27edebc0a26e0ddb784b54e1085de761 + languageName: node + linkType: hard + "cronstrue@npm:^2.21.0": version: 2.50.0 resolution: "cronstrue@npm:2.50.0" @@ -635,7 +716,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:~4.3.1, debug@npm:~4.3.2": +"debug@npm:~4.3.1, debug@npm:~4.3.2, debug@npm:~4.3.4": version: 4.3.7 resolution: "debug@npm:4.3.7" dependencies: @@ -681,6 +762,24 @@ __metadata: languageName: node linkType: hard +"engine.io@npm:~6.5.2": + version: 6.5.5 + resolution: "engine.io@npm:6.5.5" + dependencies: + "@types/cookie": "npm:^0.4.1" + "@types/cors": "npm:^2.8.12" + "@types/node": "npm:>=10.0.0" + accepts: "npm:~1.3.4" + base64id: "npm:2.0.0" + cookie: "npm:~0.4.1" + cors: "npm:~2.8.5" + debug: "npm:~4.3.1" + engine.io-parser: "npm:~5.2.1" + ws: "npm:~8.17.1" + checksum: 10c0/b0994134917c5d3649fd7aea283492eaf092131e572a8d379c7c9081548b42cff756730b4641edd0d1598148dd3be253c4d634cea2ba5c59622d175d9e567469 + languageName: node + linkType: hard + "escalade@npm:^3.1.1": version: 3.2.0 resolution: "escalade@npm:3.2.0" @@ -692,7 +791,7 @@ __metadata: version: 0.0.0-use.local resolution: "esm-only-external@workspace:." dependencies: - "@trigger.dev/sdk": "npm:0.0.0-prerelease-20250116195421" + "@trigger.dev/sdk": "npm:0.0.0-prerelease-20250321122618" mupdf: "npm:^0.3.0" typescript: "npm:5.5.4" languageName: unknown @@ -705,6 +804,15 @@ __metadata: languageName: node linkType: hard +"eventsource@npm:^3.0.5": + version: 3.0.5 + resolution: "eventsource@npm:3.0.5" + dependencies: + eventsource-parser: "npm:^3.0.0" + checksum: 10c0/0283045a70b7ab7501fc290e60ee5ebd6e24648e0f0a6d6a1c1bbb7a421971e8140b85d6239d08c360e0a0b196205ca86b4ff7f9efe3c06877ba628136856489 + languageName: node + linkType: hard + "evt@npm:^2.4.13": version: 2.5.7 resolution: "evt@npm:2.5.7" @@ -785,14 +893,14 @@ __metadata: linkType: hard "import-in-the-middle@npm:^1.8.1": - version: 1.12.0 - resolution: "import-in-the-middle@npm:1.12.0" + version: 1.13.1 + resolution: "import-in-the-middle@npm:1.13.1" dependencies: - acorn: "npm:^8.8.2" + acorn: "npm:^8.14.0" acorn-import-attributes: "npm:^1.9.5" cjs-module-lexer: "npm:^1.2.2" module-details-from-path: "npm:^1.0.3" - checksum: 10c0/e0f92bd27b9ef15099494ef0e8ba0b6fa6f0e643a3ff1d41b52530b6e4ff2a502099fff345f3ffb7c75f78cb189903b8d2d92fab5f8123badbc9e790cc19bbe7 + checksum: 10c0/4ef05a924c37ff718dd08654927c90d470d92fd9425d646b0d423aaddc89655848debd14761bcb6efa4f57870d63ff38109bab31ca8a1d9d5df2e7d84d2649cf languageName: node linkType: hard @@ -834,9 +942,9 @@ __metadata: linkType: hard "jose@npm:^5.4.0": - version: 5.9.6 - resolution: "jose@npm:5.9.6" - checksum: 10c0/d6bcd8c7d655b5cda8e182952a76f0c093347f5476d74795405bb91563f7ab676f61540310dd4b1531c60d685335ceb600571a409551d2cbd2ab3e9f9fbf1e4d + version: 5.10.0 + resolution: "jose@npm:5.10.0" + checksum: 10c0/e20d9fc58d7e402f2e5f04e824b8897d5579aae60e64cb88ebdea1395311c24537bf4892f7de413fab1acf11e922797fb1b42269bc8fc65089a3749265ccb7b0 languageName: node linkType: hard @@ -855,9 +963,9 @@ __metadata: linkType: hard "long@npm:^5.0.0": - version: 5.2.4 - resolution: "long@npm:5.2.4" - checksum: 10c0/0cf819ce2a7bbe48663e79233917552c7667b11e68d4d9ea4ebb99173042509d9af461e5211c22939b913332c264d9a1135937ea533cbd05bc4f8cf46f6d2e07 + version: 5.3.1 + resolution: "long@npm:5.3.1" + checksum: 10c0/8726994c6359bb7162fb94563e14c3f9c0f0eeafd90ec654738f4f144a5705756d36a873c442f172ee2a4b51e08d14ab99765b49aa1fb994c5ba7fe12057bca2 languageName: node linkType: hard @@ -868,6 +976,22 @@ __metadata: languageName: node linkType: hard +"mime-db@npm:1.52.0": + version: 1.52.0 + resolution: "mime-db@npm:1.52.0" + checksum: 10c0/0557a01deebf45ac5f5777fe7740b2a5c309c6d62d40ceab4e23da9f821899ce7a900b7ac8157d4548ddbb7beffe9abc621250e6d182b0397ec7f10c7b91a5aa + languageName: node + linkType: hard + +"mime-types@npm:~2.1.34": + version: 2.1.35 + resolution: "mime-types@npm:2.1.35" + dependencies: + mime-db: "npm:1.52.0" + checksum: 10c0/82fb07ec56d8ff1fc999a84f2f217aa46cb6ed1033fefaabd5785b9a974ed225c90dc72fff460259e66b95b73648596dbcc50d51ed69cdf464af2d237d3149b2 + languageName: node + linkType: hard + "mimic-fn@npm:^4.0.0": version: 4.0.0 resolution: "mimic-fn@npm:4.0.0" @@ -904,11 +1028,18 @@ __metadata: linkType: hard "nanoid@npm:^3.3.4": - version: 3.3.8 - resolution: "nanoid@npm:3.3.8" + version: 3.3.11 + resolution: "nanoid@npm:3.3.11" bin: nanoid: bin/nanoid.cjs - checksum: 10c0/4b1bb29f6cfebf3be3bc4ad1f1296fb0a10a3043a79f34fbffe75d1621b4318319211cd420549459018ea3592f0d2f159247a6f874911d6d26eaaadda2478120 + checksum: 10c0/40e7f70b3d15f725ca072dfc4f74e81fcf1fbb02e491cf58ac0c79093adc9b0a73b152bcde57df4b79cd097e13023d7504acb38404a4da7bc1cd8e887b82fe0b + languageName: node + linkType: hard + +"negotiator@npm:0.6.3": + version: 0.6.3 + resolution: "negotiator@npm:0.6.3" + checksum: 10c0/3ec9fd413e7bf071c937ae60d572bc67155262068ed522cf4b3be5edbe6ddf67d095ec03a3a14ebf8fc8e95f8e1d61be4869db0dbb0de696f6b837358bd43fc2 languageName: node linkType: hard @@ -921,6 +1052,13 @@ __metadata: languageName: node linkType: hard +"object-assign@npm:^4": + version: 4.1.1 + resolution: "object-assign@npm:4.1.1" + checksum: 10c0/1f4df9945120325d041ccf7b86f31e8bcc14e73d29171e37a7903050e96b81323784ec59f93f102ec635bcf6fa8034ba3ea0a8c7e69fa202b87ae3b6cec5a414 + languageName: node + linkType: hard + "onetime@npm:^6.0.0": version: 6.0.0 resolution: "onetime@npm:6.0.0" @@ -979,13 +1117,13 @@ __metadata: linkType: hard "require-in-the-middle@npm:^7.1.1": - version: 7.4.0 - resolution: "require-in-the-middle@npm:7.4.0" + version: 7.5.2 + resolution: "require-in-the-middle@npm:7.5.2" dependencies: debug: "npm:^4.3.5" module-details-from-path: "npm:^1.0.3" resolve: "npm:^1.22.8" - checksum: 10c0/67c2242ea5b059c2a10c01d4f409233c67278051b47b9bf83198ab7e3ea591ffe3fa1d97912180d7d3d9a5e44490c00c55882b702849d61ac4db87d2c3823cb0 + checksum: 10c0/43a2dac5520e39d13c413650895715e102d6802e6cc6ff322017bd948f12a9657fe28435f7cbbcba437b167f02e192ac7af29fa35cabd5d0c375d071c0605e01 languageName: node linkType: hard @@ -1025,11 +1163,11 @@ __metadata: linkType: hard "semver@npm:^7.5.2": - version: 7.6.3 - resolution: "semver@npm:7.6.3" + version: 7.7.1 + resolution: "semver@npm:7.7.1" bin: semver: bin/semver.js - checksum: 10c0/88f33e148b210c153873cb08cfe1e281d518aaa9a666d4d148add6560db5cd3c582f3a08ccb91f38d5f379ead256da9931234ed122057f40bb5766e65e58adaf + checksum: 10c0/fd603a6fb9c399c6054015433051bdbe7b99a940a8fb44b85c2b524c4004b023d7928d47cb22154f8d054ea7ee8597f586605e05b52047f048278e4ac56ae958 languageName: node linkType: hard @@ -1070,6 +1208,16 @@ __metadata: languageName: node linkType: hard +"socket.io-adapter@npm:~2.5.2": + version: 2.5.5 + resolution: "socket.io-adapter@npm:2.5.5" + dependencies: + debug: "npm:~4.3.4" + ws: "npm:~8.17.1" + checksum: 10c0/04a5a2a9c4399d1b6597c2afc4492ab1e73430cc124ab02b09e948eabf341180b3866e2b61b5084cb899beb68a4db7c328c29bda5efb9207671b5cb0bc6de44e + languageName: node + linkType: hard + "socket.io-client@npm:4.7.5": version: 4.7.5 resolution: "socket.io-client@npm:4.7.5" @@ -1092,6 +1240,21 @@ __metadata: languageName: node linkType: hard +"socket.io@npm:4.7.4": + version: 4.7.4 + resolution: "socket.io@npm:4.7.4" + dependencies: + accepts: "npm:~1.3.4" + base64id: "npm:~2.0.0" + cors: "npm:~2.8.5" + debug: "npm:~4.3.2" + engine.io: "npm:~6.5.2" + socket.io-adapter: "npm:~2.5.2" + socket.io-parser: "npm:~4.2.4" + checksum: 10c0/c37b7745d475695d5d5d20a30af940ebf1fefa9defdd1f3601978682a4e1d12eab10da0a6efb19d72038bb819a7972331a679649161689db600883b83818fb16 + languageName: node + linkType: hard + "string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": version: 4.2.3 resolution: "string-width@npm:4.2.3" @@ -1164,6 +1327,13 @@ __metadata: languageName: node linkType: hard +"tinyexec@npm:^0.3.2": + version: 0.3.2 + resolution: "tinyexec@npm:0.3.2" + checksum: 10c0/3efbf791a911be0bf0821eab37a3445c2ba07acc1522b1fa84ae1e55f10425076f1290f680286345ed919549ad67527d07281f1c19d584df3b74326909eb1f90 + languageName: node + linkType: hard + "tsafe@npm:^1.6.6": version: 1.7.2 resolution: "tsafe@npm:1.7.2" @@ -1207,6 +1377,13 @@ __metadata: languageName: node linkType: hard +"uncrypto@npm:^0.1.3": + version: 0.1.3 + resolution: "uncrypto@npm:0.1.3" + checksum: 10c0/74a29afefd76d5b77bedc983559ceb33f5bbc8dada84ff33755d1e3355da55a4e03a10e7ce717918c436b4dfafde1782e799ebaf2aadd775612b49f7b5b2998e + languageName: node + linkType: hard + "undici-types@npm:~6.20.0": version: 6.20.0 resolution: "undici-types@npm:6.20.0" @@ -1223,6 +1400,13 @@ __metadata: languageName: node linkType: hard +"vary@npm:^1": + version: 1.1.2 + resolution: "vary@npm:1.1.2" + checksum: 10c0/f15d588d79f3675135ba783c91a4083dcd290a2a5be9fcb6514220a1634e23df116847b1cc51f66bfb0644cf9353b2abb7815ae499bab06e46dd33c1a6bf1f4f + languageName: node + linkType: hard + "which@npm:^2.0.1": version: 2.0.2 resolution: "which@npm:2.0.2" @@ -1337,8 +1521,8 @@ __metadata: linkType: hard "zod@npm:^3.20.2": - version: 3.24.1 - resolution: "zod@npm:3.24.1" - checksum: 10c0/0223d21dbaa15d8928fe0da3b54696391d8e3e1e2d0283a1a070b5980a1dbba945ce631c2d1eccc088fdbad0f2dfa40155590bf83732d3ac4fcca2cc9237591b + version: 3.24.2 + resolution: "zod@npm:3.24.2" + checksum: 10c0/c638c7220150847f13ad90635b3e7d0321b36cce36f3fc6050ed960689594c949c326dfe2c6fa87c14b126ee5d370ccdebd6efb304f41ef5557a4aaca2824565 languageName: node linkType: hard diff --git a/packages/cli-v3/e2e/fixtures/hello-world/package-lock.json b/packages/cli-v3/e2e/fixtures/hello-world/package-lock.json index f1cfec9f80..e37387e810 100644 --- a/packages/cli-v3/e2e/fixtures/hello-world/package-lock.json +++ b/packages/cli-v3/e2e/fixtures/hello-world/package-lock.json @@ -9,7 +9,7 @@ "packages/*" ], "dependencies": { - "@trigger.dev/sdk": "0.0.0-prerelease-20250116195421" + "@trigger.dev/sdk": "0.0.0-prerelease-20250321122618" }, "devDependencies": { "typescript": "5.5.4" @@ -19,6 +19,11 @@ "yarn": "4.2.2" } }, + "node_modules/@bugsnag/cuid": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@bugsnag/cuid/-/cuid-3.2.1.tgz", + "integrity": "sha512-zpvN8xQ5rdRWakMd/BcVkdn2F8HKlDSbM3l7duueK590WmI1T0ObTLc1V/1e55r14WNjPd5AJTYX4yPEAFVi+Q==" + }, "node_modules/@electric-sql/client": { "version": "1.0.0-beta.1", "resolved": "https://registry.npmjs.org/@electric-sql/client/-/client-1.0.0-beta.1.tgz", @@ -36,9 +41,9 @@ } }, "node_modules/@grpc/grpc-js": { - "version": "1.12.5", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.12.5.tgz", - "integrity": "sha512-d3iiHxdpg5+ZcJ6jnDSOT8Z0O0VMVGy34jAnYLUX8yd36b1qn8f1TwOA/Lc7TsOh03IkPJ38eGI5qD2EjNkoEA==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.13.0.tgz", + "integrity": "sha512-pMuxInZjUnUkgMT2QLZclRqwk2ykJbIU05aZgPgJYXEpN9+2I7z7aNwcjWZSycRPl232FfhPszyBFJyOxTHNog==", "dependencies": { "@grpc/proto-loader": "^0.7.13", "@js-sdsl/ordered-map": "^4.4.2" @@ -109,11 +114,11 @@ } }, "node_modules/@opentelemetry/core": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", - "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.30.1.tgz", + "integrity": "sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==", "dependencies": { - "@opentelemetry/semantic-conventions": "1.25.1" + "@opentelemetry/semantic-conventions": "1.28.0" }, "engines": { "node": ">=14" @@ -122,6 +127,14 @@ "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, + "node_modules/@opentelemetry/core/node_modules/@opentelemetry/semantic-conventions": { + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz", + "integrity": "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==", + "engines": { + "node": ">=14" + } + }, "node_modules/@opentelemetry/exporter-logs-otlp-http": { "version": "0.52.1", "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-logs-otlp-http/-/exporter-logs-otlp-http-0.52.1.tgz", @@ -140,6 +153,20 @@ "@opentelemetry/api": "^1.0.0" } }, + "node_modules/@opentelemetry/exporter-logs-otlp-http/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/exporter-trace-otlp-grpc": { "version": "0.52.1", "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-grpc/-/exporter-trace-otlp-grpc-0.52.1.tgz", @@ -159,6 +186,20 @@ "@opentelemetry/api": "^1.0.0" } }, + "node_modules/@opentelemetry/exporter-trace-otlp-grpc/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/exporter-trace-otlp-http": { "version": "0.52.1", "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.52.1.tgz", @@ -177,6 +218,20 @@ "@opentelemetry/api": "^1.0.0" } }, + "node_modules/@opentelemetry/exporter-trace-otlp-http/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/exporter-trace-otlp-proto": { "version": "0.52.1", "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-proto/-/exporter-trace-otlp-proto-0.52.1.tgz", @@ -195,6 +250,20 @@ "@opentelemetry/api": "^1.0.0" } }, + "node_modules/@opentelemetry/exporter-trace-otlp-proto/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/exporter-zipkin": { "version": "1.25.1", "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-zipkin/-/exporter-zipkin-1.25.1.tgz", @@ -212,6 +281,20 @@ "@opentelemetry/api": "^1.0.0" } }, + "node_modules/@opentelemetry/exporter-zipkin/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/instrumentation": { "version": "0.52.1", "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.52.1.tgz", @@ -246,6 +329,20 @@ "@opentelemetry/api": "^1.0.0" } }, + "node_modules/@opentelemetry/otlp-exporter-base/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/otlp-grpc-exporter-base": { "version": "0.52.1", "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-grpc-exporter-base/-/otlp-grpc-exporter-base-0.52.1.tgz", @@ -263,6 +360,20 @@ "@opentelemetry/api": "^1.0.0" } }, + "node_modules/@opentelemetry/otlp-grpc-exporter-base/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/otlp-transformer": { "version": "0.52.1", "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-transformer/-/otlp-transformer-0.52.1.tgz", @@ -283,6 +394,20 @@ "@opentelemetry/api": ">=1.3.0 <1.10.0" } }, + "node_modules/@opentelemetry/otlp-transformer/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/propagator-b3": { "version": "1.25.1", "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-b3/-/propagator-b3-1.25.1.tgz", @@ -297,6 +422,20 @@ "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, + "node_modules/@opentelemetry/propagator-b3/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/propagator-jaeger": { "version": "1.25.1", "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.25.1.tgz", @@ -311,6 +450,20 @@ "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, + "node_modules/@opentelemetry/propagator-jaeger/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/resources": { "version": "1.25.1", "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.25.1.tgz", @@ -326,6 +479,20 @@ "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, + "node_modules/@opentelemetry/resources/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/sdk-logs": { "version": "0.52.1", "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-logs/-/sdk-logs-0.52.1.tgz", @@ -342,6 +509,20 @@ "@opentelemetry/api": ">=1.4.0 <1.10.0" } }, + "node_modules/@opentelemetry/sdk-logs/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/sdk-metrics": { "version": "1.25.1", "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics/-/sdk-metrics-1.25.1.tgz", @@ -358,6 +539,20 @@ "@opentelemetry/api": ">=1.3.0 <1.10.0" } }, + "node_modules/@opentelemetry/sdk-metrics/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/sdk-node": { "version": "0.52.1", "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-node/-/sdk-node-0.52.1.tgz", @@ -384,6 +579,20 @@ "@opentelemetry/api": ">=1.3.0 <1.10.0" } }, + "node_modules/@opentelemetry/sdk-node/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/sdk-trace-base": { "version": "1.25.1", "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.25.1.tgz", @@ -400,6 +609,20 @@ "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, + "node_modules/@opentelemetry/sdk-trace-base/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/sdk-trace-node": { "version": "1.25.1", "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.25.1.tgz", @@ -419,6 +642,20 @@ "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, + "node_modules/@opentelemetry/sdk-trace-node/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/semantic-conventions": { "version": "1.25.1", "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.25.1.tgz", @@ -482,9 +719,9 @@ "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.30.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.30.1.tgz", - "integrity": "sha512-r7FQIXD7gB0WJ5mokTUgUWPl0eYIH0wnxqeSAhuIwvnnpjdVB8cRRClyKLQr7lgzjctkbp5KmswWszlwYln03Q==", + "version": "4.36.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.36.0.tgz", + "integrity": "sha512-JQ1Jk5G4bGrD4pWJQzWsD8I1n1mgPXq33+/vP4sk8j/z/C2siRuxZtaUA7yMTf71TCZTZl/4e1bfzwUmFb3+rw==", "cpu": [ "arm64" ], @@ -499,15 +736,17 @@ "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==" }, "node_modules/@trigger.dev/core": { - "version": "0.0.0-prerelease-20250116195421", - "resolved": "https://registry.npmjs.org/@trigger.dev/core/-/core-0.0.0-prerelease-20250116195421.tgz", - "integrity": "sha512-bxZ5vq3txcUxQln8BZSb2No7gHPG/qTSeo5uq6W2+OQKoVN+c5pmVTYQQa6Fwfd2AXhpkU9ovdM3V1IoEddOtA==", + "version": "0.0.0-prerelease-20250321122618", + "resolved": "https://registry.npmjs.org/@trigger.dev/core/-/core-0.0.0-prerelease-20250321122618.tgz", + "integrity": "sha512-0hSMKqvM39V1A8YjZxYivw109ZrGk22Pfa8ydQ29nCubdeTMe6for+AYzj89BIOnEGeEZ24Hzg2uVc5Av9BUHg==", "dependencies": { + "@bugsnag/cuid": "^3.1.1", "@electric-sql/client": "1.0.0-beta.1", "@google-cloud/precise-date": "^4.0.0", "@jsonhero/path": "^1.0.21", "@opentelemetry/api": "1.9.0", "@opentelemetry/api-logs": "0.52.1", + "@opentelemetry/core": "^1.30.1", "@opentelemetry/exporter-logs-otlp-http": "0.52.1", "@opentelemetry/exporter-trace-otlp-http": "0.52.1", "@opentelemetry/instrumentation": "0.52.1", @@ -518,13 +757,16 @@ "@opentelemetry/sdk-trace-node": "1.25.1", "@opentelemetry/semantic-conventions": "1.25.1", "dequal": "^2.0.3", + "eventsource": "^3.0.5", "eventsource-parser": "^3.0.0", "execa": "^8.0.1", "humanize-duration": "^3.27.3", "jose": "^5.4.0", "nanoid": "^3.3.4", + "socket.io": "4.7.4", "socket.io-client": "4.7.5", "superjson": "^2.2.1", + "tinyexec": "^0.3.2", "zod": "3.23.8", "zod-error": "1.5.0", "zod-validation-error": "^1.5.0" @@ -542,14 +784,14 @@ } }, "node_modules/@trigger.dev/sdk": { - "version": "0.0.0-prerelease-20250116195421", - "resolved": "https://registry.npmjs.org/@trigger.dev/sdk/-/sdk-0.0.0-prerelease-20250116195421.tgz", - "integrity": "sha512-/Kw+q/mDulGgiSHR9L3nldGOWH72AQAys9zuoBO72JjVfipKI1R8jjqQHhZjWqolMYqgg9XaJr9lQM8sV5lWwQ==", + "version": "0.0.0-prerelease-20250321122618", + "resolved": "https://registry.npmjs.org/@trigger.dev/sdk/-/sdk-0.0.0-prerelease-20250321122618.tgz", + "integrity": "sha512-/DOWqGdTxkeUY3WIJ/lPS8vC9VwitQiB+ONHCR5L1xBovHVaCyj3zMn/dWPsM+Wtz2wVZAPZ45pmHqvJEX3qLw==", "dependencies": { "@opentelemetry/api": "1.9.0", "@opentelemetry/api-logs": "0.52.1", "@opentelemetry/semantic-conventions": "1.25.1", - "@trigger.dev/core": "0.0.0-prerelease-20250116195421", + "@trigger.dev/core": "0.0.0-prerelease-20250321122618", "chalk": "^5.2.0", "cronstrue": "^2.21.0", "debug": "^4.3.4", @@ -557,6 +799,7 @@ "slug": "^6.0.0", "terminal-link": "^3.0.0", "ulid": "^2.3.0", + "uncrypto": "^0.1.3", "uuid": "^9.0.0", "ws": "^8.11.0" }, @@ -567,10 +810,23 @@ "zod": "^3.0.0" } }, + "node_modules/@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==" + }, + "node_modules/@types/cors": { + "version": "2.8.17", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz", + "integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/node": { - "version": "22.10.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.7.tgz", - "integrity": "sha512-V09KvXxFiutGp6B7XkpaDXlNadZxrzajcY50EuoLIpQ6WWYCSvf19lVIazzfIzQvhUN2HjX12spLojTnhuKlGg==", + "version": "22.13.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.11.tgz", + "integrity": "sha512-iEUCUJoU0i3VnrCmgoWCXttklWcvoCIx4jzcP22fioIVSdTmjgoEvmAO/QPw6TcS9k5FrNgn4w7q5lGOd1CT5g==", "dependencies": { "undici-types": "~6.20.0" } @@ -580,10 +836,22 @@ "resolved": "https://registry.npmjs.org/@types/shimmer/-/shimmer-1.2.0.tgz", "integrity": "sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==" }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/acorn": { - "version": "8.14.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", - "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "version": "8.14.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", + "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", "bin": { "acorn": "bin/acorn" }, @@ -621,6 +889,14 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "engines": { + "node": "^4.5.0 || >= 5.9" + } + }, "node_modules/chalk": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", @@ -633,9 +909,9 @@ } }, "node_modules/cjs-module-lexer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.1.tgz", - "integrity": "sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==" + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz", + "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==" }, "node_modules/cliui": { "version": "8.0.1", @@ -666,6 +942,14 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, + "node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/copy-anything": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-3.0.5.tgz", @@ -680,6 +964,18 @@ "url": "https://github.com/sponsors/mesqueeb" } }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/cronstrue": { "version": "2.50.0", "resolved": "https://registry.npmjs.org/cronstrue/-/cronstrue-2.50.0.tgz", @@ -730,6 +1026,26 @@ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, + "node_modules/engine.io": { + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.5.5.tgz", + "integrity": "sha512-C5Pn8Wk+1vKBoHghJODM63yk8MvrO9EWZUfkAt5HAqIgPE4/8FF0PEGHXtEd40l223+cE5ABWuPzm38PHFXfMA==", + "dependencies": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.17.1" + }, + "engines": { + "node": ">=10.2.0" + } + }, "node_modules/engine.io-client": { "version": "6.5.4", "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.4.tgz", @@ -786,6 +1102,42 @@ "node": ">=10.0.0" } }, + "node_modules/engine.io/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/engine.io/node_modules/ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/escalade": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", @@ -794,6 +1146,17 @@ "node": ">=6" } }, + "node_modules/eventsource": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-3.0.5.tgz", + "integrity": "sha512-LT/5J605bx5SNyE+ITBDiM3FxffBiq9un7Vx0EwMDM3vg8sWKx/tO2zC+LMqZ+smAM0F2hblaDZUVZF0te2pSw==", + "dependencies": { + "eventsource-parser": "^3.0.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/eventsource-parser": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.0.0.tgz", @@ -894,11 +1257,11 @@ "integrity": "sha512-inh5wue5XdfObhu/IGEMiA1nUXigSGcaKNemcbLRKa7jXYGDZXr3LoT9pTIzq2hPEbld7w/qv9h+ikWGz8fL1g==" }, "node_modules/import-in-the-middle": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-1.12.0.tgz", - "integrity": "sha512-yAgSE7GmtRcu4ZUSFX/4v69UGXwugFFSdIQJ14LHPOPPQrWv8Y7O9PHsw8Ovk7bKCLe4sjXMbZFqGFcLHpZ89w==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-1.13.1.tgz", + "integrity": "sha512-k2V9wNm9B+ysuelDTHjI9d5KPc4l8zAZTGqj+pcynvWkypZd857ryzN8jNC7Pg2YZXNMJcHRPpaDyCBbNyVRpA==", "dependencies": { - "acorn": "^8.8.2", + "acorn": "^8.14.0", "acorn-import-attributes": "^1.9.5", "cjs-module-lexer": "^1.2.2", "module-details-from-path": "^1.0.3" @@ -954,9 +1317,9 @@ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "node_modules/jose": { - "version": "5.9.6", - "resolved": "https://registry.npmjs.org/jose/-/jose-5.9.6.tgz", - "integrity": "sha512-AMlnetc9+CV9asI19zHmrgS/WYsWUwCn2R7RzlbJWD7F9eWYUTGyBmU9o6PxngtLGOiDGPRu+Uc4fhKzbpteZQ==", + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/jose/-/jose-5.10.0.tgz", + "integrity": "sha512-s+3Al/p9g32Iq+oqXxkW//7jk2Vig6FF1CFqzVXoTUXt2qz89YWbL+OwS17NFYEvxC35n0FKeGO2LGYSxeM2Gg==", "funding": { "url": "https://github.com/sponsors/panva" } @@ -972,15 +1335,34 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" }, "node_modules/long": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.4.tgz", - "integrity": "sha512-qtzLbJE8hq7VabR3mISmVGtoXP8KGc2Z/AT8OuqlYD7JTR3oqrgwdjnk07wpj1twXxYmgDXgoKVWUG/fReSzHg==" + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/long/-/long-5.3.1.tgz", + "integrity": "sha512-ka87Jz3gcx/I7Hal94xaN2tZEOPoUOEVftkQqZx2EeQRN7LGdfLlI3FvZ+7WDplm+vK2Urx9ULrvSowtdCieng==" }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/mimic-fn": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", @@ -1008,9 +1390,9 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, "node_modules/nanoid": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", - "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", "funding": [ { "type": "github", @@ -1024,6 +1406,14 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/npm-run-path": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", @@ -1049,6 +1439,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/onetime": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", @@ -1108,9 +1506,9 @@ } }, "node_modules/require-in-the-middle": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-7.4.0.tgz", - "integrity": "sha512-X34iHADNbNDfr6OTStIAHWSAvvKQRYgLO6duASaVf7J2VA3lvmNYboAHOuLC2huav1IwgZJtyEcJCKVzFxOSMQ==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-7.5.2.tgz", + "integrity": "sha512-gAZ+kLqBdHarXB64XpAe2VCjB7rIRv+mU8tfRWziHRJ5umKsIHN2tLLv6EtMw7WCdP19S0ERVMldNvxYCHnhSQ==", "dependencies": { "debug": "^4.3.5", "module-details-from-path": "^1.0.3", @@ -1148,9 +1546,9 @@ } }, "node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", "bin": { "semver": "bin/semver.js" }, @@ -1198,6 +1596,68 @@ "resolved": "https://registry.npmjs.org/slug/-/slug-6.1.0.tgz", "integrity": "sha512-x6vLHCMasg4DR2LPiyFGI0gJJhywY6DTiGhCrOMzb3SOk/0JVLIaL4UhyFSHu04SD3uAavrKY/K3zZ3i6iRcgA==" }, + "node_modules/socket.io": { + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.4.tgz", + "integrity": "sha512-DcotgfP1Zg9iP/dH9zvAQcWrE0TtbMVwXmlV4T4mqsvY+gw+LqUGPfx2AoVyRk0FLME+GQhufDMyacFmw7ksqw==", + "dependencies": { + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "cors": "~2.8.5", + "debug": "~4.3.2", + "engine.io": "~6.5.2", + "socket.io-adapter": "~2.5.2", + "socket.io-parser": "~4.2.4" + }, + "engines": { + "node": ">=10.2.0" + } + }, + "node_modules/socket.io-adapter": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.5.tgz", + "integrity": "sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==", + "dependencies": { + "debug": "~4.3.4", + "ws": "~8.17.1" + } + }, + "node_modules/socket.io-adapter/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socket.io-adapter/node_modules/ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/socket.io-client": { "version": "4.7.5", "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.5.tgz", @@ -1256,6 +1716,22 @@ } } }, + "node_modules/socket.io/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -1376,6 +1852,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/tinyexec": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==" + }, "node_modules/tsafe": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/tsafe/-/tsafe-1.7.2.tgz", @@ -1402,6 +1883,11 @@ "ulid": "bin/cli.js" } }, + "node_modules/uncrypto": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/uncrypto/-/uncrypto-0.1.3.tgz", + "integrity": "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==" + }, "node_modules/undici-types": { "version": "6.20.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", @@ -1419,6 +1905,14 @@ "uuid": "dist/bin/uuid" } }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -1511,9 +2005,9 @@ } }, "node_modules/zod": { - "version": "3.24.1", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.1.tgz", - "integrity": "sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==", + "version": "3.24.2", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.2.tgz", + "integrity": "sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==", "funding": { "url": "https://github.com/sponsors/colinhacks" } diff --git a/packages/cli-v3/e2e/fixtures/hello-world/package.json b/packages/cli-v3/e2e/fixtures/hello-world/package.json index 209379c783..523532c528 100644 --- a/packages/cli-v3/e2e/fixtures/hello-world/package.json +++ b/packages/cli-v3/e2e/fixtures/hello-world/package.json @@ -1,7 +1,7 @@ { "name": "hello-world", "private": true, - "packageManager": "pnpm@8.15.5+sha256.4b4efa12490e5055d59b9b9fc9438b7d581a6b7af3b5675eb5c5f447cee1a589", + "packageManager": "yarn@4.2.2+sha256.1aa43a5304405be7a7cb9cb5de7b97de9c4e8ddd3273e4dad00d6ae3eb39f0ef", "engines": { "pnpm": "8.15.5", "yarn": "4.2.2" @@ -10,7 +10,7 @@ "packages/*" ], "dependencies": { - "@trigger.dev/sdk": "0.0.0-prerelease-20250116195421" + "@trigger.dev/sdk": "0.0.0-prerelease-20250321122618" }, "devDependencies": { "typescript": "5.5.4" diff --git a/packages/cli-v3/e2e/fixtures/hello-world/pnpm-lock.yaml b/packages/cli-v3/e2e/fixtures/hello-world/pnpm-lock.yaml index 320003b5f8..d4a24d76ad 100644 --- a/packages/cli-v3/e2e/fixtures/hello-world/pnpm-lock.yaml +++ b/packages/cli-v3/e2e/fixtures/hello-world/pnpm-lock.yaml @@ -9,8 +9,8 @@ importers: .: dependencies: '@trigger.dev/sdk': - specifier: 0.0.0-prerelease-20250116195421 - version: 0.0.0-prerelease-20250116195421(zod@3.22.3) + specifier: 0.0.0-prerelease-20250321122618 + version: 0.0.0-prerelease-20250321122618(zod@3.23.8) devDependencies: typescript: specifier: 5.5.4 @@ -18,6 +18,10 @@ importers: packages: + /@bugsnag/cuid@3.2.1: + resolution: {integrity: sha512-zpvN8xQ5rdRWakMd/BcVkdn2F8HKlDSbM3l7duueK590WmI1T0ObTLc1V/1e55r14WNjPd5AJTYX4yPEAFVi+Q==} + dev: false + /@electric-sql/client@1.0.0-beta.1: resolution: {integrity: sha512-Ei9jN3pDoGzc+a/bGqnB5ajb52IvSv7/n2btuyzUlcOHIR2kM9fqtYTJXPwZYKLkGZlHWlpHgWyRtrinkP2nHg==} optionalDependencies: @@ -87,6 +91,16 @@ packages: '@opentelemetry/semantic-conventions': 1.25.1 dev: false + /@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0): + resolution: {integrity: sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/semantic-conventions': 1.28.0 + dev: false + /@opentelemetry/exporter-logs-otlp-http@0.52.1(@opentelemetry/api@1.9.0): resolution: {integrity: sha512-qKgywId2DbdowPZpOBXQKp0B8DfhfIArmSic15z13Nk/JAOccBUQdPwDjDnjsM5f0ckZFMVR2t/tijTUAqDZoA==} engines: {node: '>=14'} @@ -325,6 +339,11 @@ packages: engines: {node: '>=14'} dev: false + /@opentelemetry/semantic-conventions@1.28.0: + resolution: {integrity: sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==} + engines: {node: '>=14'} + dev: false + /@protobufjs/aspromise@1.1.2: resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} dev: false @@ -380,15 +399,17 @@ packages: resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} dev: false - /@trigger.dev/core@0.0.0-prerelease-20250116195421: - resolution: {integrity: sha512-bxZ5vq3txcUxQln8BZSb2No7gHPG/qTSeo5uq6W2+OQKoVN+c5pmVTYQQa6Fwfd2AXhpkU9ovdM3V1IoEddOtA==} + /@trigger.dev/core@0.0.0-prerelease-20250321122618: + resolution: {integrity: sha512-0hSMKqvM39V1A8YjZxYivw109ZrGk22Pfa8ydQ29nCubdeTMe6for+AYzj89BIOnEGeEZ24Hzg2uVc5Av9BUHg==} engines: {node: '>=18.20.0'} dependencies: + '@bugsnag/cuid': 3.2.1 '@electric-sql/client': 1.0.0-beta.1 '@google-cloud/precise-date': 4.0.0 '@jsonhero/path': 1.0.21 '@opentelemetry/api': 1.9.0 '@opentelemetry/api-logs': 0.52.1 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/exporter-logs-otlp-http': 0.52.1(@opentelemetry/api@1.9.0) '@opentelemetry/exporter-trace-otlp-http': 0.52.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) @@ -399,13 +420,16 @@ packages: '@opentelemetry/sdk-trace-node': 1.25.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.25.1 dequal: 2.0.3 + eventsource: 3.0.5 eventsource-parser: 3.0.0 execa: 8.0.1 humanize-duration: 3.32.1 jose: 5.9.6 nanoid: 3.3.8 + socket.io: 4.7.4 socket.io-client: 4.7.5 superjson: 2.2.1 + tinyexec: 0.3.2 zod: 3.23.8 zod-error: 1.5.0 zod-validation-error: 1.5.0(zod@3.23.8) @@ -415,8 +439,8 @@ packages: - utf-8-validate dev: false - /@trigger.dev/sdk@0.0.0-prerelease-20250116195421(zod@3.22.3): - resolution: {integrity: sha512-/Kw+q/mDulGgiSHR9L3nldGOWH72AQAys9zuoBO72JjVfipKI1R8jjqQHhZjWqolMYqgg9XaJr9lQM8sV5lWwQ==} + /@trigger.dev/sdk@0.0.0-prerelease-20250321122618(zod@3.23.8): + resolution: {integrity: sha512-/DOWqGdTxkeUY3WIJ/lPS8vC9VwitQiB+ONHCR5L1xBovHVaCyj3zMn/dWPsM+Wtz2wVZAPZ45pmHqvJEX3qLw==} engines: {node: '>=18.20.0'} peerDependencies: zod: ^3.0.0 @@ -424,7 +448,7 @@ packages: '@opentelemetry/api': 1.9.0 '@opentelemetry/api-logs': 0.52.1 '@opentelemetry/semantic-conventions': 1.25.1 - '@trigger.dev/core': 0.0.0-prerelease-20250116195421 + '@trigger.dev/core': 0.0.0-prerelease-20250321122618 chalk: 5.3.0 cronstrue: 2.50.0 debug: 4.3.6 @@ -432,15 +456,26 @@ packages: slug: 6.1.0 terminal-link: 3.0.0 ulid: 2.3.0 + uncrypto: 0.1.3 uuid: 9.0.1 ws: 8.18.0 - zod: 3.22.3 + zod: 3.23.8 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate dev: false + /@types/cookie@0.4.1: + resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==} + dev: false + + /@types/cors@2.8.17: + resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} + dependencies: + '@types/node': 22.5.2 + dev: false + /@types/node@22.5.2: resolution: {integrity: sha512-acJsPTEqYqulZS/Yp/S3GgeE6GZ0qYODUR8aVr/DkhHQ8l9nd4j5x1/ZJy9/gHrRlFMqkO6i0I3E27Alu4jjPg==} dependencies: @@ -451,6 +486,14 @@ packages: resolution: {integrity: sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==} dev: false + /accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + dev: false + /acorn-import-attributes@1.9.5(acorn@8.12.1): resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} peerDependencies: @@ -484,6 +527,11 @@ packages: color-convert: 2.0.1 dev: false + /base64id@2.0.0: + resolution: {integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==} + engines: {node: ^4.5.0 || >= 5.9} + dev: false + /chalk@5.3.0: resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} @@ -513,6 +561,11 @@ packages: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} dev: false + /cookie@0.4.2: + resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==} + engines: {node: '>= 0.6'} + dev: false + /copy-anything@3.0.5: resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} engines: {node: '>=12.13'} @@ -520,6 +573,14 @@ packages: is-what: 4.1.16 dev: false + /cors@2.8.5: + resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} + engines: {node: '>= 0.10'} + dependencies: + object-assign: 4.1.1 + vary: 1.1.2 + dev: false + /cronstrue@2.50.0: resolution: {integrity: sha512-ULYhWIonJzlScCCQrPUG5uMXzXxSixty4djud9SS37DoNxDdkeRocxzHuAo4ImRBUK+mAuU5X9TSwEDccnnuPg==} hasBin: true @@ -574,6 +635,26 @@ packages: engines: {node: '>=10.0.0'} dev: false + /engine.io@6.5.5: + resolution: {integrity: sha512-C5Pn8Wk+1vKBoHghJODM63yk8MvrO9EWZUfkAt5HAqIgPE4/8FF0PEGHXtEd40l223+cE5ABWuPzm38PHFXfMA==} + engines: {node: '>=10.2.0'} + dependencies: + '@types/cookie': 0.4.1 + '@types/cors': 2.8.17 + '@types/node': 22.5.2 + accepts: 1.3.8 + base64id: 2.0.0 + cookie: 0.4.2 + cors: 2.8.5 + debug: 4.3.6 + engine.io-parser: 5.2.3 + ws: 8.17.1 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: false + /escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -584,6 +665,13 @@ packages: engines: {node: '>=18.0.0'} dev: false + /eventsource@3.0.5: + resolution: {integrity: sha512-LT/5J605bx5SNyE+ITBDiM3FxffBiq9un7Vx0EwMDM3vg8sWKx/tO2zC+LMqZ+smAM0F2hblaDZUVZF0te2pSw==} + engines: {node: '>=18.0.0'} + dependencies: + eventsource-parser: 3.0.0 + dev: false + /evt@2.5.7: resolution: {integrity: sha512-dr7Wd16ry5F8WNU1xXLKpFpO3HsoAGg8zC48e08vDdzMzGWCP9/QFGt1PQptEEDh8SwYP3EL8M+d/Gb0kgUp6g==} dependencies: @@ -697,6 +785,18 @@ packages: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} dev: false + /mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + dev: false + + /mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + dev: false + /mimic-fn@4.0.0: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} engines: {node: '>=12'} @@ -720,6 +820,11 @@ packages: hasBin: true dev: false + /negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + dev: false + /npm-run-path@5.3.0: resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -727,6 +832,11 @@ packages: path-key: 4.0.0 dev: false + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + dev: false + /onetime@6.0.0: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} engines: {node: '>=12'} @@ -829,6 +939,17 @@ packages: resolution: {integrity: sha512-x6vLHCMasg4DR2LPiyFGI0gJJhywY6DTiGhCrOMzb3SOk/0JVLIaL4UhyFSHu04SD3uAavrKY/K3zZ3i6iRcgA==} dev: false + /socket.io-adapter@2.5.5: + resolution: {integrity: sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==} + dependencies: + debug: 4.3.6 + ws: 8.17.1 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: false + /socket.io-client@4.7.5: resolution: {integrity: sha512-sJ/tqHOCe7Z50JCBCXrsY3I2k03iOiUe+tj1OmKeD2lXPiGH/RUCdTZFoqVyN7l1MnpIzPrGtLcijffmeouNlQ==} engines: {node: '>=10.0.0'} @@ -853,6 +974,23 @@ packages: - supports-color dev: false + /socket.io@4.7.4: + resolution: {integrity: sha512-DcotgfP1Zg9iP/dH9zvAQcWrE0TtbMVwXmlV4T4mqsvY+gw+LqUGPfx2AoVyRk0FLME+GQhufDMyacFmw7ksqw==} + engines: {node: '>=10.2.0'} + dependencies: + accepts: 1.3.8 + base64id: 2.0.0 + cors: 2.8.5 + debug: 4.3.6 + engine.io: 6.5.5 + socket.io-adapter: 2.5.5 + socket.io-parser: 4.2.4 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: false + /string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -909,6 +1047,10 @@ packages: supports-hyperlinks: 2.3.0 dev: false + /tinyexec@0.3.2: + resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} + dev: false + /tsafe@1.7.2: resolution: {integrity: sha512-dAPfQLhCfCRre5qs+Z5Q2a7s2CV7RxffZUmvj7puGaePYjECzWREJFd3w4XSFe/T5tbxgowfItA/JSSZ6Ma3dA==} dev: false @@ -929,6 +1071,10 @@ packages: hasBin: true dev: false + /uncrypto@0.1.3: + resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} + dev: false + /undici-types@6.19.8: resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} dev: false @@ -938,6 +1084,11 @@ packages: hasBin: true dev: false + /vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + dev: false + /which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -1024,10 +1175,6 @@ packages: zod: 3.23.8 dev: false - /zod@3.22.3: - resolution: {integrity: sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug==} - dev: false - /zod@3.23.8: resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} dev: false diff --git a/packages/cli-v3/e2e/fixtures/hello-world/yarn.lock b/packages/cli-v3/e2e/fixtures/hello-world/yarn.lock index e5e34ee13f..b7d3424087 100644 --- a/packages/cli-v3/e2e/fixtures/hello-world/yarn.lock +++ b/packages/cli-v3/e2e/fixtures/hello-world/yarn.lock @@ -5,6 +5,13 @@ __metadata: version: 8 cacheKey: 10c0 +"@bugsnag/cuid@npm:^3.1.1": + version: 3.2.1 + resolution: "@bugsnag/cuid@npm:3.2.1" + checksum: 10c0/f2da80e922a3ed14bcede1e8257ce02974fdce91f2b6ecfc25846f70c250f2909b2a19f898e309cf564c882b39ac685df99e8fe498db45071d3019db5ea03e6a + languageName: node + linkType: hard + "@electric-sql/client@npm:1.0.0-beta.1": version: 1.0.0-beta.1 resolution: "@electric-sql/client@npm:1.0.0-beta.1" @@ -25,12 +32,12 @@ __metadata: linkType: hard "@grpc/grpc-js@npm:^1.7.1": - version: 1.12.5 - resolution: "@grpc/grpc-js@npm:1.12.5" + version: 1.13.0 + resolution: "@grpc/grpc-js@npm:1.13.0" dependencies: "@grpc/proto-loader": "npm:^0.7.13" "@js-sdsl/ordered-map": "npm:^4.4.2" - checksum: 10c0/1e539d98951e6ff6611e3cedc8eec343625fdab76c7683aa7fca605b3de17d8aabaf2f78d7e95400e68dc8e249cda498781e9a3481bb6b713fc167da3fe59a8e + checksum: 10c0/c760d5eb5ee07c4cfd5dcd83ee62d5232d5776b5d1ce5d436edc53402ec16ef053d3a283f48ce832f4635009dbd411ac7586495a7d053fc5f202e95811cf4129 languageName: node linkType: hard @@ -98,6 +105,17 @@ __metadata: languageName: node linkType: hard +"@opentelemetry/core@npm:^1.30.1": + version: 1.30.1 + resolution: "@opentelemetry/core@npm:1.30.1" + dependencies: + "@opentelemetry/semantic-conventions": "npm:1.28.0" + peerDependencies: + "@opentelemetry/api": ">=1.0.0 <1.10.0" + checksum: 10c0/4c25ba50a6137c2ba9ca563fb269378f3c9ca6fd1b3f15dbb6eff78eebf5656f281997cbb7be8e51c01649fd6ad091083fcd8a42dd9b5dfac907dc06d7cfa092 + languageName: node + linkType: hard + "@opentelemetry/exporter-logs-otlp-http@npm:0.52.1": version: 0.52.1 resolution: "@opentelemetry/exporter-logs-otlp-http@npm:0.52.1" @@ -351,6 +369,13 @@ __metadata: languageName: node linkType: hard +"@opentelemetry/semantic-conventions@npm:1.28.0": + version: 1.28.0 + resolution: "@opentelemetry/semantic-conventions@npm:1.28.0" + checksum: 10c0/deb8a0f744198071e70fea27143cf7c9f7ecb7e4d7b619488c917834ea09b31543c1c2bcea4ec5f3cf68797f0ef3549609c14e859013d9376400ac1499c2b9cb + languageName: node + linkType: hard + "@protobufjs/aspromise@npm:^1.1.1, @protobufjs/aspromise@npm:^1.1.2": version: 1.1.2 resolution: "@protobufjs/aspromise@npm:1.1.2" @@ -425,8 +450,8 @@ __metadata: linkType: hard "@rollup/rollup-darwin-arm64@npm:^4.18.1": - version: 4.30.1 - resolution: "@rollup/rollup-darwin-arm64@npm:4.30.1" + version: 4.36.0 + resolution: "@rollup/rollup-darwin-arm64@npm:4.36.0" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard @@ -438,15 +463,17 @@ __metadata: languageName: node linkType: hard -"@trigger.dev/core@npm:0.0.0-prerelease-20250116195421": - version: 0.0.0-prerelease-20250116195421 - resolution: "@trigger.dev/core@npm:0.0.0-prerelease-20250116195421" +"@trigger.dev/core@npm:0.0.0-prerelease-20250321122618": + version: 0.0.0-prerelease-20250321122618 + resolution: "@trigger.dev/core@npm:0.0.0-prerelease-20250321122618" dependencies: + "@bugsnag/cuid": "npm:^3.1.1" "@electric-sql/client": "npm:1.0.0-beta.1" "@google-cloud/precise-date": "npm:^4.0.0" "@jsonhero/path": "npm:^1.0.21" "@opentelemetry/api": "npm:1.9.0" "@opentelemetry/api-logs": "npm:0.52.1" + "@opentelemetry/core": "npm:^1.30.1" "@opentelemetry/exporter-logs-otlp-http": "npm:0.52.1" "@opentelemetry/exporter-trace-otlp-http": "npm:0.52.1" "@opentelemetry/instrumentation": "npm:0.52.1" @@ -457,28 +484,31 @@ __metadata: "@opentelemetry/sdk-trace-node": "npm:1.25.1" "@opentelemetry/semantic-conventions": "npm:1.25.1" dequal: "npm:^2.0.3" + eventsource: "npm:^3.0.5" eventsource-parser: "npm:^3.0.0" execa: "npm:^8.0.1" humanize-duration: "npm:^3.27.3" jose: "npm:^5.4.0" nanoid: "npm:^3.3.4" + socket.io: "npm:4.7.4" socket.io-client: "npm:4.7.5" superjson: "npm:^2.2.1" + tinyexec: "npm:^0.3.2" zod: "npm:3.23.8" zod-error: "npm:1.5.0" zod-validation-error: "npm:^1.5.0" - checksum: 10c0/90b53701ba59608e4b0319c5d08147ee04440e14ecb163dabcbea725f46555d4aa8b91fee51a31e616cd88d5f6dcfc15cb7a59491894c36d5cfe818454fff620 + checksum: 10c0/0bcab7e5ea31c2ee49699b83b26da9994f0ce803b3208ac12e2157ebd21c1e872021922241ba835a98880cd051d2cc245c472ec1901196bfc2a41a53663326ec languageName: node linkType: hard -"@trigger.dev/sdk@npm:0.0.0-prerelease-20250116195421": - version: 0.0.0-prerelease-20250116195421 - resolution: "@trigger.dev/sdk@npm:0.0.0-prerelease-20250116195421" +"@trigger.dev/sdk@npm:0.0.0-prerelease-20250321122618": + version: 0.0.0-prerelease-20250321122618 + resolution: "@trigger.dev/sdk@npm:0.0.0-prerelease-20250321122618" dependencies: "@opentelemetry/api": "npm:1.9.0" "@opentelemetry/api-logs": "npm:0.52.1" "@opentelemetry/semantic-conventions": "npm:1.25.1" - "@trigger.dev/core": "npm:0.0.0-prerelease-20250116195421" + "@trigger.dev/core": "npm:0.0.0-prerelease-20250321122618" chalk: "npm:^5.2.0" cronstrue: "npm:^2.21.0" debug: "npm:^4.3.4" @@ -486,20 +516,37 @@ __metadata: slug: "npm:^6.0.0" terminal-link: "npm:^3.0.0" ulid: "npm:^2.3.0" + uncrypto: "npm:^0.1.3" uuid: "npm:^9.0.0" ws: "npm:^8.11.0" peerDependencies: zod: ^3.0.0 - checksum: 10c0/6c54e6588a02097a49f11784fefaa1e00b12af4875f6f599de80d54031b9ef919ff017924d6870427cd5d8da178d177df0b0a6c32c0930a03882e3c6c9def1dc + checksum: 10c0/2ae41e2fe41a781346a91144b946355521bbcce5bd4cbf4a48f4aeb0b9a7b338a9e749ed014c36732fb128510a01573230a70571c3ccb91f5500776b52ca17a5 + languageName: node + linkType: hard + +"@types/cookie@npm:^0.4.1": + version: 0.4.1 + resolution: "@types/cookie@npm:0.4.1" + checksum: 10c0/f96afe12bd51be1ec61410b0641243d93fa3a494702407c787a4c872b5c8bcd39b224471452055e44a9ce42af1a636e87d161994226eaf4c2be9c30f60418409 + languageName: node + linkType: hard + +"@types/cors@npm:^2.8.12": + version: 2.8.17 + resolution: "@types/cors@npm:2.8.17" + dependencies: + "@types/node": "npm:*" + checksum: 10c0/457364c28c89f3d9ed34800e1de5c6eaaf344d1bb39af122f013322a50bc606eb2aa6f63de4e41a7a08ba7ef454473926c94a830636723da45bf786df032696d languageName: node linkType: hard -"@types/node@npm:>=13.7.0": - version: 22.10.7 - resolution: "@types/node@npm:22.10.7" +"@types/node@npm:*, @types/node@npm:>=10.0.0, @types/node@npm:>=13.7.0": + version: 22.13.11 + resolution: "@types/node@npm:22.13.11" dependencies: undici-types: "npm:~6.20.0" - checksum: 10c0/c941b4689dfc4044b64a5f601306cbcb0c7210be853ba378a5dd44137898c45accedd796ee002ad9407024cac7ecaf5049304951cb1d80ce3d7cebbbae56f20e + checksum: 10c0/f6ee33d36372242535c38640fe7550a6640d8a775ec19b55bfc11775b521cba072d892ca92a912332ce01b317293d645c1bf767f3f882ec719f2404a3d2a5b96 languageName: node linkType: hard @@ -510,6 +557,16 @@ __metadata: languageName: node linkType: hard +"accepts@npm:~1.3.4": + version: 1.3.8 + resolution: "accepts@npm:1.3.8" + dependencies: + mime-types: "npm:~2.1.34" + negotiator: "npm:0.6.3" + checksum: 10c0/3a35c5f5586cfb9a21163ca47a5f77ac34fa8ceb5d17d2fa2c0d81f41cbd7f8c6fa52c77e2c039acc0f4d09e71abdc51144246900f6bef5e3c4b333f77d89362 + languageName: node + linkType: hard + "acorn-import-attributes@npm:^1.9.5": version: 1.9.5 resolution: "acorn-import-attributes@npm:1.9.5" @@ -519,12 +576,12 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.8.2": - version: 8.14.0 - resolution: "acorn@npm:8.14.0" +"acorn@npm:^8.14.0": + version: 8.14.1 + resolution: "acorn@npm:8.14.1" bin: acorn: bin/acorn - checksum: 10c0/6d4ee461a7734b2f48836ee0fbb752903606e576cc100eb49340295129ca0b452f3ba91ddd4424a1d4406a98adfb2ebb6bd0ff4c49d7a0930c10e462719bbfd7 + checksum: 10c0/dbd36c1ed1d2fa3550140000371fcf721578095b18777b85a79df231ca093b08edc6858d75d6e48c73e431c174dcf9214edbd7e6fa5911b93bd8abfa54e47123 languageName: node linkType: hard @@ -553,6 +610,13 @@ __metadata: languageName: node linkType: hard +"base64id@npm:2.0.0, base64id@npm:~2.0.0": + version: 2.0.0 + resolution: "base64id@npm:2.0.0" + checksum: 10c0/6919efd237ed44b9988cbfc33eca6f173a10e810ce50292b271a1a421aac7748ef232a64d1e6032b08f19aae48dce6ee8f66c5ae2c9e5066c82b884861d4d453 + languageName: node + linkType: hard + "chalk@npm:^5.2.0": version: 5.3.0 resolution: "chalk@npm:5.3.0" @@ -561,9 +625,9 @@ __metadata: linkType: hard "cjs-module-lexer@npm:^1.2.2": - version: 1.4.1 - resolution: "cjs-module-lexer@npm:1.4.1" - checksum: 10c0/5a7d8279629c9ba8ccf38078c2fed75b7737973ced22b9b5a54180efa57fb2fe2bb7bec6aec55e3b8f3f5044f5d7b240347ad9bd285e7c3d0ee5b0a1d0504dfc + version: 1.4.3 + resolution: "cjs-module-lexer@npm:1.4.3" + checksum: 10c0/076b3af85adc4d65dbdab1b5b240fe5b45d44fcf0ef9d429044dd94d19be5589376805c44fb2d4b3e684e5fe6a9b7cf3e426476a6507c45283c5fc6ff95240be languageName: node linkType: hard @@ -594,6 +658,13 @@ __metadata: languageName: node linkType: hard +"cookie@npm:~0.4.1": + version: 0.4.2 + resolution: "cookie@npm:0.4.2" + checksum: 10c0/beab41fbd7c20175e3a2799ba948c1dcc71ef69f23fe14eeeff59fc09f50c517b0f77098db87dbb4c55da802f9d86ee86cdc1cd3efd87760341551838d53fca2 + languageName: node + linkType: hard + "copy-anything@npm:^3.0.2": version: 3.0.5 resolution: "copy-anything@npm:3.0.5" @@ -603,6 +674,16 @@ __metadata: languageName: node linkType: hard +"cors@npm:~2.8.5": + version: 2.8.5 + resolution: "cors@npm:2.8.5" + dependencies: + object-assign: "npm:^4" + vary: "npm:^1" + checksum: 10c0/373702b7999409922da80de4a61938aabba6929aea5b6fd9096fefb9e8342f626c0ebd7507b0e8b0b311380744cc985f27edebc0a26e0ddb784b54e1085de761 + languageName: node + linkType: hard + "cronstrue@npm:^2.21.0": version: 2.50.0 resolution: "cronstrue@npm:2.50.0" @@ -635,7 +716,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:~4.3.1, debug@npm:~4.3.2": +"debug@npm:~4.3.1, debug@npm:~4.3.2, debug@npm:~4.3.4": version: 4.3.7 resolution: "debug@npm:4.3.7" dependencies: @@ -681,6 +762,24 @@ __metadata: languageName: node linkType: hard +"engine.io@npm:~6.5.2": + version: 6.5.5 + resolution: "engine.io@npm:6.5.5" + dependencies: + "@types/cookie": "npm:^0.4.1" + "@types/cors": "npm:^2.8.12" + "@types/node": "npm:>=10.0.0" + accepts: "npm:~1.3.4" + base64id: "npm:2.0.0" + cookie: "npm:~0.4.1" + cors: "npm:~2.8.5" + debug: "npm:~4.3.1" + engine.io-parser: "npm:~5.2.1" + ws: "npm:~8.17.1" + checksum: 10c0/b0994134917c5d3649fd7aea283492eaf092131e572a8d379c7c9081548b42cff756730b4641edd0d1598148dd3be253c4d634cea2ba5c59622d175d9e567469 + languageName: node + linkType: hard + "escalade@npm:^3.1.1": version: 3.2.0 resolution: "escalade@npm:3.2.0" @@ -695,6 +794,15 @@ __metadata: languageName: node linkType: hard +"eventsource@npm:^3.0.5": + version: 3.0.5 + resolution: "eventsource@npm:3.0.5" + dependencies: + eventsource-parser: "npm:^3.0.0" + checksum: 10c0/0283045a70b7ab7501fc290e60ee5ebd6e24648e0f0a6d6a1c1bbb7a421971e8140b85d6239d08c360e0a0b196205ca86b4ff7f9efe3c06877ba628136856489 + languageName: node + linkType: hard + "evt@npm:^2.4.13": version: 2.5.7 resolution: "evt@npm:2.5.7" @@ -764,7 +872,7 @@ __metadata: version: 0.0.0-use.local resolution: "hello-world@workspace:." dependencies: - "@trigger.dev/sdk": "npm:0.0.0-prerelease-20250116195421" + "@trigger.dev/sdk": "npm:0.0.0-prerelease-20250321122618" typescript: "npm:5.5.4" languageName: unknown linkType: soft @@ -784,14 +892,14 @@ __metadata: linkType: hard "import-in-the-middle@npm:^1.8.1": - version: 1.12.0 - resolution: "import-in-the-middle@npm:1.12.0" + version: 1.13.1 + resolution: "import-in-the-middle@npm:1.13.1" dependencies: - acorn: "npm:^8.8.2" + acorn: "npm:^8.14.0" acorn-import-attributes: "npm:^1.9.5" cjs-module-lexer: "npm:^1.2.2" module-details-from-path: "npm:^1.0.3" - checksum: 10c0/e0f92bd27b9ef15099494ef0e8ba0b6fa6f0e643a3ff1d41b52530b6e4ff2a502099fff345f3ffb7c75f78cb189903b8d2d92fab5f8123badbc9e790cc19bbe7 + checksum: 10c0/4ef05a924c37ff718dd08654927c90d470d92fd9425d646b0d423aaddc89655848debd14761bcb6efa4f57870d63ff38109bab31ca8a1d9d5df2e7d84d2649cf languageName: node linkType: hard @@ -833,9 +941,9 @@ __metadata: linkType: hard "jose@npm:^5.4.0": - version: 5.9.6 - resolution: "jose@npm:5.9.6" - checksum: 10c0/d6bcd8c7d655b5cda8e182952a76f0c093347f5476d74795405bb91563f7ab676f61540310dd4b1531c60d685335ceb600571a409551d2cbd2ab3e9f9fbf1e4d + version: 5.10.0 + resolution: "jose@npm:5.10.0" + checksum: 10c0/e20d9fc58d7e402f2e5f04e824b8897d5579aae60e64cb88ebdea1395311c24537bf4892f7de413fab1acf11e922797fb1b42269bc8fc65089a3749265ccb7b0 languageName: node linkType: hard @@ -854,9 +962,9 @@ __metadata: linkType: hard "long@npm:^5.0.0": - version: 5.2.4 - resolution: "long@npm:5.2.4" - checksum: 10c0/0cf819ce2a7bbe48663e79233917552c7667b11e68d4d9ea4ebb99173042509d9af461e5211c22939b913332c264d9a1135937ea533cbd05bc4f8cf46f6d2e07 + version: 5.3.1 + resolution: "long@npm:5.3.1" + checksum: 10c0/8726994c6359bb7162fb94563e14c3f9c0f0eeafd90ec654738f4f144a5705756d36a873c442f172ee2a4b51e08d14ab99765b49aa1fb994c5ba7fe12057bca2 languageName: node linkType: hard @@ -867,6 +975,22 @@ __metadata: languageName: node linkType: hard +"mime-db@npm:1.52.0": + version: 1.52.0 + resolution: "mime-db@npm:1.52.0" + checksum: 10c0/0557a01deebf45ac5f5777fe7740b2a5c309c6d62d40ceab4e23da9f821899ce7a900b7ac8157d4548ddbb7beffe9abc621250e6d182b0397ec7f10c7b91a5aa + languageName: node + linkType: hard + +"mime-types@npm:~2.1.34": + version: 2.1.35 + resolution: "mime-types@npm:2.1.35" + dependencies: + mime-db: "npm:1.52.0" + checksum: 10c0/82fb07ec56d8ff1fc999a84f2f217aa46cb6ed1033fefaabd5785b9a974ed225c90dc72fff460259e66b95b73648596dbcc50d51ed69cdf464af2d237d3149b2 + languageName: node + linkType: hard + "mimic-fn@npm:^4.0.0": version: 4.0.0 resolution: "mimic-fn@npm:4.0.0" @@ -896,11 +1020,18 @@ __metadata: linkType: hard "nanoid@npm:^3.3.4": - version: 3.3.8 - resolution: "nanoid@npm:3.3.8" + version: 3.3.11 + resolution: "nanoid@npm:3.3.11" bin: nanoid: bin/nanoid.cjs - checksum: 10c0/4b1bb29f6cfebf3be3bc4ad1f1296fb0a10a3043a79f34fbffe75d1621b4318319211cd420549459018ea3592f0d2f159247a6f874911d6d26eaaadda2478120 + checksum: 10c0/40e7f70b3d15f725ca072dfc4f74e81fcf1fbb02e491cf58ac0c79093adc9b0a73b152bcde57df4b79cd097e13023d7504acb38404a4da7bc1cd8e887b82fe0b + languageName: node + linkType: hard + +"negotiator@npm:0.6.3": + version: 0.6.3 + resolution: "negotiator@npm:0.6.3" + checksum: 10c0/3ec9fd413e7bf071c937ae60d572bc67155262068ed522cf4b3be5edbe6ddf67d095ec03a3a14ebf8fc8e95f8e1d61be4869db0dbb0de696f6b837358bd43fc2 languageName: node linkType: hard @@ -913,6 +1044,13 @@ __metadata: languageName: node linkType: hard +"object-assign@npm:^4": + version: 4.1.1 + resolution: "object-assign@npm:4.1.1" + checksum: 10c0/1f4df9945120325d041ccf7b86f31e8bcc14e73d29171e37a7903050e96b81323784ec59f93f102ec635bcf6fa8034ba3ea0a8c7e69fa202b87ae3b6cec5a414 + languageName: node + linkType: hard + "onetime@npm:^6.0.0": version: 6.0.0 resolution: "onetime@npm:6.0.0" @@ -971,13 +1109,13 @@ __metadata: linkType: hard "require-in-the-middle@npm:^7.1.1": - version: 7.4.0 - resolution: "require-in-the-middle@npm:7.4.0" + version: 7.5.2 + resolution: "require-in-the-middle@npm:7.5.2" dependencies: debug: "npm:^4.3.5" module-details-from-path: "npm:^1.0.3" resolve: "npm:^1.22.8" - checksum: 10c0/67c2242ea5b059c2a10c01d4f409233c67278051b47b9bf83198ab7e3ea591ffe3fa1d97912180d7d3d9a5e44490c00c55882b702849d61ac4db87d2c3823cb0 + checksum: 10c0/43a2dac5520e39d13c413650895715e102d6802e6cc6ff322017bd948f12a9657fe28435f7cbbcba437b167f02e192ac7af29fa35cabd5d0c375d071c0605e01 languageName: node linkType: hard @@ -1017,11 +1155,11 @@ __metadata: linkType: hard "semver@npm:^7.5.2": - version: 7.6.3 - resolution: "semver@npm:7.6.3" + version: 7.7.1 + resolution: "semver@npm:7.7.1" bin: semver: bin/semver.js - checksum: 10c0/88f33e148b210c153873cb08cfe1e281d518aaa9a666d4d148add6560db5cd3c582f3a08ccb91f38d5f379ead256da9931234ed122057f40bb5766e65e58adaf + checksum: 10c0/fd603a6fb9c399c6054015433051bdbe7b99a940a8fb44b85c2b524c4004b023d7928d47cb22154f8d054ea7ee8597f586605e05b52047f048278e4ac56ae958 languageName: node linkType: hard @@ -1062,6 +1200,16 @@ __metadata: languageName: node linkType: hard +"socket.io-adapter@npm:~2.5.2": + version: 2.5.5 + resolution: "socket.io-adapter@npm:2.5.5" + dependencies: + debug: "npm:~4.3.4" + ws: "npm:~8.17.1" + checksum: 10c0/04a5a2a9c4399d1b6597c2afc4492ab1e73430cc124ab02b09e948eabf341180b3866e2b61b5084cb899beb68a4db7c328c29bda5efb9207671b5cb0bc6de44e + languageName: node + linkType: hard + "socket.io-client@npm:4.7.5": version: 4.7.5 resolution: "socket.io-client@npm:4.7.5" @@ -1084,6 +1232,21 @@ __metadata: languageName: node linkType: hard +"socket.io@npm:4.7.4": + version: 4.7.4 + resolution: "socket.io@npm:4.7.4" + dependencies: + accepts: "npm:~1.3.4" + base64id: "npm:~2.0.0" + cors: "npm:~2.8.5" + debug: "npm:~4.3.2" + engine.io: "npm:~6.5.2" + socket.io-adapter: "npm:~2.5.2" + socket.io-parser: "npm:~4.2.4" + checksum: 10c0/c37b7745d475695d5d5d20a30af940ebf1fefa9defdd1f3601978682a4e1d12eab10da0a6efb19d72038bb819a7972331a679649161689db600883b83818fb16 + languageName: node + linkType: hard + "string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": version: 4.2.3 resolution: "string-width@npm:4.2.3" @@ -1156,6 +1319,13 @@ __metadata: languageName: node linkType: hard +"tinyexec@npm:^0.3.2": + version: 0.3.2 + resolution: "tinyexec@npm:0.3.2" + checksum: 10c0/3efbf791a911be0bf0821eab37a3445c2ba07acc1522b1fa84ae1e55f10425076f1290f680286345ed919549ad67527d07281f1c19d584df3b74326909eb1f90 + languageName: node + linkType: hard + "tsafe@npm:^1.6.6": version: 1.7.2 resolution: "tsafe@npm:1.7.2" @@ -1199,6 +1369,13 @@ __metadata: languageName: node linkType: hard +"uncrypto@npm:^0.1.3": + version: 0.1.3 + resolution: "uncrypto@npm:0.1.3" + checksum: 10c0/74a29afefd76d5b77bedc983559ceb33f5bbc8dada84ff33755d1e3355da55a4e03a10e7ce717918c436b4dfafde1782e799ebaf2aadd775612b49f7b5b2998e + languageName: node + linkType: hard + "undici-types@npm:~6.20.0": version: 6.20.0 resolution: "undici-types@npm:6.20.0" @@ -1215,6 +1392,13 @@ __metadata: languageName: node linkType: hard +"vary@npm:^1": + version: 1.1.2 + resolution: "vary@npm:1.1.2" + checksum: 10c0/f15d588d79f3675135ba783c91a4083dcd290a2a5be9fcb6514220a1634e23df116847b1cc51f66bfb0644cf9353b2abb7815ae499bab06e46dd33c1a6bf1f4f + languageName: node + linkType: hard + "which@npm:^2.0.1": version: 2.0.2 resolution: "which@npm:2.0.2" @@ -1329,8 +1513,8 @@ __metadata: linkType: hard "zod@npm:^3.20.2": - version: 3.24.1 - resolution: "zod@npm:3.24.1" - checksum: 10c0/0223d21dbaa15d8928fe0da3b54696391d8e3e1e2d0283a1a070b5980a1dbba945ce631c2d1eccc088fdbad0f2dfa40155590bf83732d3ac4fcca2cc9237591b + version: 3.24.2 + resolution: "zod@npm:3.24.2" + checksum: 10c0/c638c7220150847f13ad90635b3e7d0321b36cce36f3fc6050ed960689594c949c326dfe2c6fa87c14b126ee5d370ccdebd6efb304f41ef5557a4aaca2824565 languageName: node linkType: hard diff --git a/packages/cli-v3/e2e/fixtures/monorepo-react-email/packages/trigger/package.json b/packages/cli-v3/e2e/fixtures/monorepo-react-email/packages/trigger/package.json index d345c034cf..45826cdd2a 100644 --- a/packages/cli-v3/e2e/fixtures/monorepo-react-email/packages/trigger/package.json +++ b/packages/cli-v3/e2e/fixtures/monorepo-react-email/packages/trigger/package.json @@ -3,7 +3,7 @@ "private": true, "dependencies": { "@repo/email": "workspace:*", - "@trigger.dev/sdk": "0.0.0-prerelease-20250116195421" + "@trigger.dev/sdk": "0.0.0-prerelease-20250321122618" }, "devDependencies": { "typescript": "5.5.4" diff --git a/packages/cli-v3/e2e/fixtures/monorepo-react-email/pnpm-lock.yaml b/packages/cli-v3/e2e/fixtures/monorepo-react-email/pnpm-lock.yaml index 0dfa5f6dfa..84d369598b 100644 --- a/packages/cli-v3/e2e/fixtures/monorepo-react-email/pnpm-lock.yaml +++ b/packages/cli-v3/e2e/fixtures/monorepo-react-email/pnpm-lock.yaml @@ -32,8 +32,8 @@ importers: specifier: workspace:* version: link:../email '@trigger.dev/sdk': - specifier: 0.0.0-prerelease-20250116195421 - version: 0.0.0-prerelease-20250116195421(zod@3.22.3) + specifier: 0.0.0-prerelease-20250321122618 + version: 0.0.0-prerelease-20250321122618(zod@3.23.8) devDependencies: typescript: specifier: 5.5.4 @@ -223,6 +223,10 @@ packages: to-fast-properties: 2.0.0 dev: false + /@bugsnag/cuid@3.2.1: + resolution: {integrity: sha512-zpvN8xQ5rdRWakMd/BcVkdn2F8HKlDSbM3l7duueK590WmI1T0ObTLc1V/1e55r14WNjPd5AJTYX4yPEAFVi+Q==} + dev: false + /@electric-sql/client@1.0.0-beta.1: resolution: {integrity: sha512-Ei9jN3pDoGzc+a/bGqnB5ajb52IvSv7/n2btuyzUlcOHIR2kM9fqtYTJXPwZYKLkGZlHWlpHgWyRtrinkP2nHg==} optionalDependencies: @@ -630,6 +634,16 @@ packages: '@opentelemetry/semantic-conventions': 1.25.1 dev: false + /@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0): + resolution: {integrity: sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/semantic-conventions': 1.28.0 + dev: false + /@opentelemetry/exporter-logs-otlp-http@0.52.1(@opentelemetry/api@1.9.0): resolution: {integrity: sha512-qKgywId2DbdowPZpOBXQKp0B8DfhfIArmSic15z13Nk/JAOccBUQdPwDjDnjsM5f0ckZFMVR2t/tijTUAqDZoA==} engines: {node: '>=14'} @@ -868,6 +882,11 @@ packages: engines: {node: '>=14'} dev: false + /@opentelemetry/semantic-conventions@1.28.0: + resolution: {integrity: sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==} + engines: {node: '>=14'} + dev: false + /@pkgjs/parseargs@0.11.0: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} @@ -1164,15 +1183,17 @@ packages: tslib: 2.7.0 dev: false - /@trigger.dev/core@0.0.0-prerelease-20250116195421: - resolution: {integrity: sha512-bxZ5vq3txcUxQln8BZSb2No7gHPG/qTSeo5uq6W2+OQKoVN+c5pmVTYQQa6Fwfd2AXhpkU9ovdM3V1IoEddOtA==} + /@trigger.dev/core@0.0.0-prerelease-20250321122618: + resolution: {integrity: sha512-0hSMKqvM39V1A8YjZxYivw109ZrGk22Pfa8ydQ29nCubdeTMe6for+AYzj89BIOnEGeEZ24Hzg2uVc5Av9BUHg==} engines: {node: '>=18.20.0'} dependencies: + '@bugsnag/cuid': 3.2.1 '@electric-sql/client': 1.0.0-beta.1 '@google-cloud/precise-date': 4.0.0 '@jsonhero/path': 1.0.21 '@opentelemetry/api': 1.9.0 '@opentelemetry/api-logs': 0.52.1 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/exporter-logs-otlp-http': 0.52.1(@opentelemetry/api@1.9.0) '@opentelemetry/exporter-trace-otlp-http': 0.52.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) @@ -1183,13 +1204,16 @@ packages: '@opentelemetry/sdk-trace-node': 1.25.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.25.1 dequal: 2.0.3 + eventsource: 3.0.5 eventsource-parser: 3.0.0 execa: 8.0.1 humanize-duration: 3.32.1 jose: 5.9.6 nanoid: 3.3.7 + socket.io: 4.7.4 socket.io-client: 4.7.5 superjson: 2.2.1 + tinyexec: 0.3.2 zod: 3.23.8 zod-error: 1.5.0 zod-validation-error: 1.5.0(zod@3.23.8) @@ -1199,8 +1223,8 @@ packages: - utf-8-validate dev: false - /@trigger.dev/sdk@0.0.0-prerelease-20250116195421(zod@3.22.3): - resolution: {integrity: sha512-/Kw+q/mDulGgiSHR9L3nldGOWH72AQAys9zuoBO72JjVfipKI1R8jjqQHhZjWqolMYqgg9XaJr9lQM8sV5lWwQ==} + /@trigger.dev/sdk@0.0.0-prerelease-20250321122618(zod@3.23.8): + resolution: {integrity: sha512-/DOWqGdTxkeUY3WIJ/lPS8vC9VwitQiB+ONHCR5L1xBovHVaCyj3zMn/dWPsM+Wtz2wVZAPZ45pmHqvJEX3qLw==} engines: {node: '>=18.20.0'} peerDependencies: zod: ^3.0.0 @@ -1208,7 +1232,7 @@ packages: '@opentelemetry/api': 1.9.0 '@opentelemetry/api-logs': 0.52.1 '@opentelemetry/semantic-conventions': 1.25.1 - '@trigger.dev/core': 0.0.0-prerelease-20250116195421 + '@trigger.dev/core': 0.0.0-prerelease-20250321122618 chalk: 5.3.0 cronstrue: 2.50.0 debug: 4.3.7 @@ -1216,9 +1240,10 @@ packages: slug: 6.1.0 terminal-link: 3.0.0 ulid: 2.3.0 + uncrypto: 0.1.3 uuid: 9.0.1 ws: 8.18.0 - zod: 3.22.3 + zod: 3.23.8 transitivePeerDependencies: - bufferutil - supports-color @@ -1708,6 +1733,13 @@ packages: engines: {node: '>=18.0.0'} dev: false + /eventsource@3.0.5: + resolution: {integrity: sha512-LT/5J605bx5SNyE+ITBDiM3FxffBiq9un7Vx0EwMDM3vg8sWKx/tO2zC+LMqZ+smAM0F2hblaDZUVZF0te2pSw==} + engines: {node: '>=18.0.0'} + dependencies: + eventsource-parser: 3.0.0 + dev: false + /evt@2.5.7: resolution: {integrity: sha512-dr7Wd16ry5F8WNU1xXLKpFpO3HsoAGg8zC48e08vDdzMzGWCP9/QFGt1PQptEEDh8SwYP3EL8M+d/Gb0kgUp6g==} dependencies: @@ -2505,6 +2537,23 @@ packages: - supports-color dev: false + /socket.io@4.7.4: + resolution: {integrity: sha512-DcotgfP1Zg9iP/dH9zvAQcWrE0TtbMVwXmlV4T4mqsvY+gw+LqUGPfx2AoVyRk0FLME+GQhufDMyacFmw7ksqw==} + engines: {node: '>=10.2.0'} + dependencies: + accepts: 1.3.8 + base64id: 2.0.0 + cors: 2.8.5 + debug: 4.3.7 + engine.io: 6.5.5 + socket.io-adapter: 2.5.5 + socket.io-parser: 4.2.4 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: false + /socket.io@4.7.5: resolution: {integrity: sha512-DmeAkF6cwM9jSfmp6Dr/5/mfMwb5Z5qRrSXLpo3Fq5SqyU8CMF15jIN4ZhfSwu35ksM1qmHZDQ/DK5XTccSTvA==} engines: {node: '>=10.2.0'} @@ -2635,6 +2684,10 @@ packages: supports-hyperlinks: 2.3.0 dev: false + /tinyexec@0.3.2: + resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} + dev: false + /to-fast-properties@2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} @@ -2671,6 +2724,10 @@ packages: hasBin: true dev: false + /uncrypto@0.1.3: + resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} + dev: false + /undici-types@6.19.8: resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} dev: false @@ -2805,10 +2862,6 @@ packages: zod: 3.23.8 dev: false - /zod@3.22.3: - resolution: {integrity: sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug==} - dev: false - /zod@3.23.8: resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} dev: false diff --git a/packages/cli-v3/e2e/fixtures/monorepo-react-email/yarn.lock b/packages/cli-v3/e2e/fixtures/monorepo-react-email/yarn.lock index 09e86db62c..6f7fc7f333 100644 --- a/packages/cli-v3/e2e/fixtures/monorepo-react-email/yarn.lock +++ b/packages/cli-v3/e2e/fixtures/monorepo-react-email/yarn.lock @@ -214,6 +214,13 @@ __metadata: languageName: node linkType: hard +"@bugsnag/cuid@npm:^3.1.1": + version: 3.2.1 + resolution: "@bugsnag/cuid@npm:3.2.1" + checksum: 10c0/f2da80e922a3ed14bcede1e8257ce02974fdce91f2b6ecfc25846f70c250f2909b2a19f898e309cf564c882b39ac685df99e8fe498db45071d3019db5ea03e6a + languageName: node + linkType: hard + "@electric-sql/client@npm:1.0.0-beta.1": version: 1.0.0-beta.1 resolution: "@electric-sql/client@npm:1.0.0-beta.1" @@ -623,6 +630,17 @@ __metadata: languageName: node linkType: hard +"@opentelemetry/core@npm:^1.30.1": + version: 1.30.1 + resolution: "@opentelemetry/core@npm:1.30.1" + dependencies: + "@opentelemetry/semantic-conventions": "npm:1.28.0" + peerDependencies: + "@opentelemetry/api": ">=1.0.0 <1.10.0" + checksum: 10c0/4c25ba50a6137c2ba9ca563fb269378f3c9ca6fd1b3f15dbb6eff78eebf5656f281997cbb7be8e51c01649fd6ad091083fcd8a42dd9b5dfac907dc06d7cfa092 + languageName: node + linkType: hard + "@opentelemetry/exporter-logs-otlp-http@npm:0.52.1": version: 0.52.1 resolution: "@opentelemetry/exporter-logs-otlp-http@npm:0.52.1" @@ -876,6 +894,13 @@ __metadata: languageName: node linkType: hard +"@opentelemetry/semantic-conventions@npm:1.28.0": + version: 1.28.0 + resolution: "@opentelemetry/semantic-conventions@npm:1.28.0" + checksum: 10c0/deb8a0f744198071e70fea27143cf7c9f7ecb7e4d7b619488c917834ea09b31543c1c2bcea4ec5f3cf68797f0ef3549609c14e859013d9376400ac1499c2b9cb + languageName: node + linkType: hard + "@pkgjs/parseargs@npm:^0.11.0": version: 0.11.0 resolution: "@pkgjs/parseargs@npm:0.11.0" @@ -1192,7 +1217,7 @@ __metadata: resolution: "@repo/trigger@workspace:packages/trigger" dependencies: "@repo/email": "workspace:*" - "@trigger.dev/sdk": "npm:0.0.0-prerelease-20250116195421" + "@trigger.dev/sdk": "npm:0.0.0-prerelease-20250321122618" typescript: "npm:5.5.4" languageName: unknown linkType: soft @@ -1238,15 +1263,17 @@ __metadata: languageName: node linkType: hard -"@trigger.dev/core@npm:0.0.0-prerelease-20250116195421": - version: 0.0.0-prerelease-20250116195421 - resolution: "@trigger.dev/core@npm:0.0.0-prerelease-20250116195421" +"@trigger.dev/core@npm:0.0.0-prerelease-20250321122618": + version: 0.0.0-prerelease-20250321122618 + resolution: "@trigger.dev/core@npm:0.0.0-prerelease-20250321122618" dependencies: + "@bugsnag/cuid": "npm:^3.1.1" "@electric-sql/client": "npm:1.0.0-beta.1" "@google-cloud/precise-date": "npm:^4.0.0" "@jsonhero/path": "npm:^1.0.21" "@opentelemetry/api": "npm:1.9.0" "@opentelemetry/api-logs": "npm:0.52.1" + "@opentelemetry/core": "npm:^1.30.1" "@opentelemetry/exporter-logs-otlp-http": "npm:0.52.1" "@opentelemetry/exporter-trace-otlp-http": "npm:0.52.1" "@opentelemetry/instrumentation": "npm:0.52.1" @@ -1257,28 +1284,31 @@ __metadata: "@opentelemetry/sdk-trace-node": "npm:1.25.1" "@opentelemetry/semantic-conventions": "npm:1.25.1" dequal: "npm:^2.0.3" + eventsource: "npm:^3.0.5" eventsource-parser: "npm:^3.0.0" execa: "npm:^8.0.1" humanize-duration: "npm:^3.27.3" jose: "npm:^5.4.0" nanoid: "npm:^3.3.4" + socket.io: "npm:4.7.4" socket.io-client: "npm:4.7.5" superjson: "npm:^2.2.1" + tinyexec: "npm:^0.3.2" zod: "npm:3.23.8" zod-error: "npm:1.5.0" zod-validation-error: "npm:^1.5.0" - checksum: 10c0/90b53701ba59608e4b0319c5d08147ee04440e14ecb163dabcbea725f46555d4aa8b91fee51a31e616cd88d5f6dcfc15cb7a59491894c36d5cfe818454fff620 + checksum: 10c0/0bcab7e5ea31c2ee49699b83b26da9994f0ce803b3208ac12e2157ebd21c1e872021922241ba835a98880cd051d2cc245c472ec1901196bfc2a41a53663326ec languageName: node linkType: hard -"@trigger.dev/sdk@npm:0.0.0-prerelease-20250116195421": - version: 0.0.0-prerelease-20250116195421 - resolution: "@trigger.dev/sdk@npm:0.0.0-prerelease-20250116195421" +"@trigger.dev/sdk@npm:0.0.0-prerelease-20250321122618": + version: 0.0.0-prerelease-20250321122618 + resolution: "@trigger.dev/sdk@npm:0.0.0-prerelease-20250321122618" dependencies: "@opentelemetry/api": "npm:1.9.0" "@opentelemetry/api-logs": "npm:0.52.1" "@opentelemetry/semantic-conventions": "npm:1.25.1" - "@trigger.dev/core": "npm:0.0.0-prerelease-20250116195421" + "@trigger.dev/core": "npm:0.0.0-prerelease-20250321122618" chalk: "npm:^5.2.0" cronstrue: "npm:^2.21.0" debug: "npm:^4.3.4" @@ -1286,11 +1316,12 @@ __metadata: slug: "npm:^6.0.0" terminal-link: "npm:^3.0.0" ulid: "npm:^2.3.0" + uncrypto: "npm:^0.1.3" uuid: "npm:^9.0.0" ws: "npm:^8.11.0" peerDependencies: zod: ^3.0.0 - checksum: 10c0/6c54e6588a02097a49f11784fefaa1e00b12af4875f6f599de80d54031b9ef919ff017924d6870427cd5d8da178d177df0b0a6c32c0930a03882e3c6c9def1dc + checksum: 10c0/2ae41e2fe41a781346a91144b946355521bbcce5bd4cbf4a48f4aeb0b9a7b338a9e749ed014c36732fb128510a01573230a70571c3ccb91f5500776b52ca17a5 languageName: node linkType: hard @@ -2064,6 +2095,15 @@ __metadata: languageName: node linkType: hard +"eventsource@npm:^3.0.5": + version: 3.0.5 + resolution: "eventsource@npm:3.0.5" + dependencies: + eventsource-parser: "npm:^3.0.0" + checksum: 10c0/0283045a70b7ab7501fc290e60ee5ebd6e24648e0f0a6d6a1c1bbb7a421971e8140b85d6239d08c360e0a0b196205ca86b4ff7f9efe3c06877ba628136856489 + languageName: node + linkType: hard + "evt@npm:^2.4.13": version: 2.5.7 resolution: "evt@npm:2.5.7" @@ -3461,6 +3501,21 @@ __metadata: languageName: node linkType: hard +"socket.io@npm:4.7.4": + version: 4.7.4 + resolution: "socket.io@npm:4.7.4" + dependencies: + accepts: "npm:~1.3.4" + base64id: "npm:~2.0.0" + cors: "npm:~2.8.5" + debug: "npm:~4.3.2" + engine.io: "npm:~6.5.2" + socket.io-adapter: "npm:~2.5.2" + socket.io-parser: "npm:~4.2.4" + checksum: 10c0/c37b7745d475695d5d5d20a30af940ebf1fefa9defdd1f3601978682a4e1d12eab10da0a6efb19d72038bb819a7972331a679649161689db600883b83818fb16 + languageName: node + linkType: hard + "socket.io@npm:4.7.5": version: 4.7.5 resolution: "socket.io@npm:4.7.5" @@ -3667,6 +3722,13 @@ __metadata: languageName: node linkType: hard +"tinyexec@npm:^0.3.2": + version: 0.3.2 + resolution: "tinyexec@npm:0.3.2" + checksum: 10c0/3efbf791a911be0bf0821eab37a3445c2ba07acc1522b1fa84ae1e55f10425076f1290f680286345ed919549ad67527d07281f1c19d584df3b74326909eb1f90 + languageName: node + linkType: hard + "to-fast-properties@npm:^2.0.0": version: 2.0.0 resolution: "to-fast-properties@npm:2.0.0" @@ -3733,6 +3795,13 @@ __metadata: languageName: node linkType: hard +"uncrypto@npm:^0.1.3": + version: 0.1.3 + resolution: "uncrypto@npm:0.1.3" + checksum: 10c0/74a29afefd76d5b77bedc983559ceb33f5bbc8dada84ff33755d1e3355da55a4e03a10e7ce717918c436b4dfafde1782e799ebaf2aadd775612b49f7b5b2998e + languageName: node + linkType: hard + "undici-types@npm:~6.19.2": version: 6.19.8 resolution: "undici-types@npm:6.19.8" diff --git a/packages/cli-v3/e2e/fixtures/otel-telemetry-loader/package-lock.json b/packages/cli-v3/e2e/fixtures/otel-telemetry-loader/package-lock.json index a93d15044b..5656ab1b2b 100644 --- a/packages/cli-v3/e2e/fixtures/otel-telemetry-loader/package-lock.json +++ b/packages/cli-v3/e2e/fixtures/otel-telemetry-loader/package-lock.json @@ -9,7 +9,7 @@ "packages/*" ], "dependencies": { - "@trigger.dev/sdk": "0.0.0-prerelease-20250116195421", + "@trigger.dev/sdk": "0.0.0-prerelease-20250321122618", "openai": "4.47.0" }, "devDependencies": { @@ -21,6 +21,11 @@ "yarn": "4.2.2" } }, + "node_modules/@bugsnag/cuid": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@bugsnag/cuid/-/cuid-3.2.1.tgz", + "integrity": "sha512-zpvN8xQ5rdRWakMd/BcVkdn2F8HKlDSbM3l7duueK590WmI1T0ObTLc1V/1e55r14WNjPd5AJTYX4yPEAFVi+Q==" + }, "node_modules/@electric-sql/client": { "version": "1.0.0-beta.1", "resolved": "https://registry.npmjs.org/@electric-sql/client/-/client-1.0.0-beta.1.tgz", @@ -38,9 +43,9 @@ } }, "node_modules/@grpc/grpc-js": { - "version": "1.12.5", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.12.5.tgz", - "integrity": "sha512-d3iiHxdpg5+ZcJ6jnDSOT8Z0O0VMVGy34jAnYLUX8yd36b1qn8f1TwOA/Lc7TsOh03IkPJ38eGI5qD2EjNkoEA==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.13.0.tgz", + "integrity": "sha512-pMuxInZjUnUkgMT2QLZclRqwk2ykJbIU05aZgPgJYXEpN9+2I7z7aNwcjWZSycRPl232FfhPszyBFJyOxTHNog==", "dependencies": { "@grpc/proto-loader": "^0.7.13", "@js-sdsl/ordered-map": "^4.4.2" @@ -111,11 +116,11 @@ } }, "node_modules/@opentelemetry/core": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", - "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.30.1.tgz", + "integrity": "sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==", "dependencies": { - "@opentelemetry/semantic-conventions": "1.25.1" + "@opentelemetry/semantic-conventions": "1.28.0" }, "engines": { "node": ">=14" @@ -124,6 +129,14 @@ "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, + "node_modules/@opentelemetry/core/node_modules/@opentelemetry/semantic-conventions": { + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz", + "integrity": "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==", + "engines": { + "node": ">=14" + } + }, "node_modules/@opentelemetry/exporter-logs-otlp-http": { "version": "0.52.1", "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-logs-otlp-http/-/exporter-logs-otlp-http-0.52.1.tgz", @@ -142,6 +155,20 @@ "@opentelemetry/api": "^1.0.0" } }, + "node_modules/@opentelemetry/exporter-logs-otlp-http/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/exporter-trace-otlp-grpc": { "version": "0.52.1", "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-grpc/-/exporter-trace-otlp-grpc-0.52.1.tgz", @@ -161,6 +188,20 @@ "@opentelemetry/api": "^1.0.0" } }, + "node_modules/@opentelemetry/exporter-trace-otlp-grpc/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/exporter-trace-otlp-http": { "version": "0.52.1", "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.52.1.tgz", @@ -179,6 +220,20 @@ "@opentelemetry/api": "^1.0.0" } }, + "node_modules/@opentelemetry/exporter-trace-otlp-http/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/exporter-trace-otlp-proto": { "version": "0.52.1", "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-proto/-/exporter-trace-otlp-proto-0.52.1.tgz", @@ -197,6 +252,20 @@ "@opentelemetry/api": "^1.0.0" } }, + "node_modules/@opentelemetry/exporter-trace-otlp-proto/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/exporter-zipkin": { "version": "1.25.1", "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-zipkin/-/exporter-zipkin-1.25.1.tgz", @@ -214,6 +283,20 @@ "@opentelemetry/api": "^1.0.0" } }, + "node_modules/@opentelemetry/exporter-zipkin/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/instrumentation": { "version": "0.52.1", "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.52.1.tgz", @@ -248,6 +331,20 @@ "@opentelemetry/api": "^1.0.0" } }, + "node_modules/@opentelemetry/otlp-exporter-base/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/otlp-grpc-exporter-base": { "version": "0.52.1", "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-grpc-exporter-base/-/otlp-grpc-exporter-base-0.52.1.tgz", @@ -265,6 +362,20 @@ "@opentelemetry/api": "^1.0.0" } }, + "node_modules/@opentelemetry/otlp-grpc-exporter-base/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/otlp-transformer": { "version": "0.52.1", "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-transformer/-/otlp-transformer-0.52.1.tgz", @@ -285,6 +396,20 @@ "@opentelemetry/api": ">=1.3.0 <1.10.0" } }, + "node_modules/@opentelemetry/otlp-transformer/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/propagator-b3": { "version": "1.25.1", "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-b3/-/propagator-b3-1.25.1.tgz", @@ -299,6 +424,20 @@ "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, + "node_modules/@opentelemetry/propagator-b3/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/propagator-jaeger": { "version": "1.25.1", "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.25.1.tgz", @@ -313,6 +452,20 @@ "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, + "node_modules/@opentelemetry/propagator-jaeger/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/resources": { "version": "1.25.1", "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.25.1.tgz", @@ -328,6 +481,20 @@ "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, + "node_modules/@opentelemetry/resources/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/sdk-logs": { "version": "0.52.1", "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-logs/-/sdk-logs-0.52.1.tgz", @@ -344,6 +511,20 @@ "@opentelemetry/api": ">=1.4.0 <1.10.0" } }, + "node_modules/@opentelemetry/sdk-logs/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/sdk-metrics": { "version": "1.25.1", "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics/-/sdk-metrics-1.25.1.tgz", @@ -360,6 +541,20 @@ "@opentelemetry/api": ">=1.3.0 <1.10.0" } }, + "node_modules/@opentelemetry/sdk-metrics/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/sdk-node": { "version": "0.52.1", "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-node/-/sdk-node-0.52.1.tgz", @@ -386,6 +581,20 @@ "@opentelemetry/api": ">=1.3.0 <1.10.0" } }, + "node_modules/@opentelemetry/sdk-node/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/sdk-trace-base": { "version": "1.25.1", "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.25.1.tgz", @@ -402,6 +611,20 @@ "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, + "node_modules/@opentelemetry/sdk-trace-base/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/sdk-trace-node": { "version": "1.25.1", "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.25.1.tgz", @@ -421,6 +644,20 @@ "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, + "node_modules/@opentelemetry/sdk-trace-node/node_modules/@opentelemetry/core": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.25.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, "node_modules/@opentelemetry/semantic-conventions": { "version": "1.25.1", "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.25.1.tgz", @@ -484,9 +721,9 @@ "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.30.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.30.1.tgz", - "integrity": "sha512-r7FQIXD7gB0WJ5mokTUgUWPl0eYIH0wnxqeSAhuIwvnnpjdVB8cRRClyKLQr7lgzjctkbp5KmswWszlwYln03Q==", + "version": "4.36.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.36.0.tgz", + "integrity": "sha512-JQ1Jk5G4bGrD4pWJQzWsD8I1n1mgPXq33+/vP4sk8j/z/C2siRuxZtaUA7yMTf71TCZTZl/4e1bfzwUmFb3+rw==", "cpu": [ "arm64" ], @@ -530,15 +767,17 @@ } }, "node_modules/@trigger.dev/core": { - "version": "0.0.0-prerelease-20250116195421", - "resolved": "https://registry.npmjs.org/@trigger.dev/core/-/core-0.0.0-prerelease-20250116195421.tgz", - "integrity": "sha512-bxZ5vq3txcUxQln8BZSb2No7gHPG/qTSeo5uq6W2+OQKoVN+c5pmVTYQQa6Fwfd2AXhpkU9ovdM3V1IoEddOtA==", + "version": "0.0.0-prerelease-20250321122618", + "resolved": "https://registry.npmjs.org/@trigger.dev/core/-/core-0.0.0-prerelease-20250321122618.tgz", + "integrity": "sha512-0hSMKqvM39V1A8YjZxYivw109ZrGk22Pfa8ydQ29nCubdeTMe6for+AYzj89BIOnEGeEZ24Hzg2uVc5Av9BUHg==", "dependencies": { + "@bugsnag/cuid": "^3.1.1", "@electric-sql/client": "1.0.0-beta.1", "@google-cloud/precise-date": "^4.0.0", "@jsonhero/path": "^1.0.21", "@opentelemetry/api": "1.9.0", "@opentelemetry/api-logs": "0.52.1", + "@opentelemetry/core": "^1.30.1", "@opentelemetry/exporter-logs-otlp-http": "0.52.1", "@opentelemetry/exporter-trace-otlp-http": "0.52.1", "@opentelemetry/instrumentation": "0.52.1", @@ -549,13 +788,16 @@ "@opentelemetry/sdk-trace-node": "1.25.1", "@opentelemetry/semantic-conventions": "1.25.1", "dequal": "^2.0.3", + "eventsource": "^3.0.5", "eventsource-parser": "^3.0.0", "execa": "^8.0.1", "humanize-duration": "^3.27.3", "jose": "^5.4.0", "nanoid": "^3.3.4", + "socket.io": "4.7.4", "socket.io-client": "4.7.5", "superjson": "^2.2.1", + "tinyexec": "^0.3.2", "zod": "3.23.8", "zod-error": "1.5.0", "zod-validation-error": "^1.5.0" @@ -573,14 +815,14 @@ } }, "node_modules/@trigger.dev/sdk": { - "version": "0.0.0-prerelease-20250116195421", - "resolved": "https://registry.npmjs.org/@trigger.dev/sdk/-/sdk-0.0.0-prerelease-20250116195421.tgz", - "integrity": "sha512-/Kw+q/mDulGgiSHR9L3nldGOWH72AQAys9zuoBO72JjVfipKI1R8jjqQHhZjWqolMYqgg9XaJr9lQM8sV5lWwQ==", + "version": "0.0.0-prerelease-20250321122618", + "resolved": "https://registry.npmjs.org/@trigger.dev/sdk/-/sdk-0.0.0-prerelease-20250321122618.tgz", + "integrity": "sha512-/DOWqGdTxkeUY3WIJ/lPS8vC9VwitQiB+ONHCR5L1xBovHVaCyj3zMn/dWPsM+Wtz2wVZAPZ45pmHqvJEX3qLw==", "dependencies": { "@opentelemetry/api": "1.9.0", "@opentelemetry/api-logs": "0.52.1", "@opentelemetry/semantic-conventions": "1.25.1", - "@trigger.dev/core": "0.0.0-prerelease-20250116195421", + "@trigger.dev/core": "0.0.0-prerelease-20250321122618", "chalk": "^5.2.0", "cronstrue": "^2.21.0", "debug": "^4.3.4", @@ -588,6 +830,7 @@ "slug": "^6.0.0", "terminal-link": "^3.0.0", "ulid": "^2.3.0", + "uncrypto": "^0.1.3", "uuid": "^9.0.0", "ws": "^8.11.0" }, @@ -598,6 +841,19 @@ "zod": "^3.0.0" } }, + "node_modules/@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==" + }, + "node_modules/@types/cors": { + "version": "2.8.17", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz", + "integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/node": { "version": "22.5.2", "resolved": "https://registry.npmjs.org/@types/node/-/node-22.5.2.tgz", @@ -631,6 +887,18 @@ "node": ">=6.5" } }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/acorn": { "version": "8.12.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", @@ -708,6 +976,14 @@ } ] }, + "node_modules/base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "engines": { + "node": "^4.5.0 || >= 5.9" + } + }, "node_modules/chalk": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", @@ -764,6 +1040,14 @@ "node": ">= 0.8" } }, + "node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/copy-anything": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-3.0.5.tgz", @@ -778,6 +1062,18 @@ "url": "https://github.com/sponsors/mesqueeb" } }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/cronstrue": { "version": "2.50.0", "resolved": "https://registry.npmjs.org/cronstrue/-/cronstrue-2.50.0.tgz", @@ -836,6 +1132,26 @@ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, + "node_modules/engine.io": { + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.5.5.tgz", + "integrity": "sha512-C5Pn8Wk+1vKBoHghJODM63yk8MvrO9EWZUfkAt5HAqIgPE4/8FF0PEGHXtEd40l223+cE5ABWuPzm38PHFXfMA==", + "dependencies": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.17.1" + }, + "engines": { + "node": ">=10.2.0" + } + }, "node_modules/engine.io-client": { "version": "6.5.4", "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.4.tgz", @@ -876,6 +1192,26 @@ "node": ">=10.0.0" } }, + "node_modules/engine.io/node_modules/ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/escalade": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", @@ -892,6 +1228,17 @@ "node": ">=6" } }, + "node_modules/eventsource": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-3.0.5.tgz", + "integrity": "sha512-LT/5J605bx5SNyE+ITBDiM3FxffBiq9un7Vx0EwMDM3vg8sWKx/tO2zC+LMqZ+smAM0F2hblaDZUVZF0te2pSw==", + "dependencies": { + "eventsource-parser": "^3.0.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/eventsource-parser": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.0.0.tgz", @@ -1090,9 +1437,9 @@ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "node_modules/jose": { - "version": "5.9.6", - "resolved": "https://registry.npmjs.org/jose/-/jose-5.9.6.tgz", - "integrity": "sha512-AMlnetc9+CV9asI19zHmrgS/WYsWUwCn2R7RzlbJWD7F9eWYUTGyBmU9o6PxngtLGOiDGPRu+Uc4fhKzbpteZQ==", + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/jose/-/jose-5.10.0.tgz", + "integrity": "sha512-s+3Al/p9g32Iq+oqXxkW//7jk2Vig6FF1CFqzVXoTUXt2qz89YWbL+OwS17NFYEvxC35n0FKeGO2LGYSxeM2Gg==", "funding": { "url": "https://github.com/sponsors/panva" } @@ -1117,9 +1464,9 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" }, "node_modules/long": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.4.tgz", - "integrity": "sha512-qtzLbJE8hq7VabR3mISmVGtoXP8KGc2Z/AT8OuqlYD7JTR3oqrgwdjnk07wpj1twXxYmgDXgoKVWUG/fReSzHg==" + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/long/-/long-5.3.1.tgz", + "integrity": "sha512-ka87Jz3gcx/I7Hal94xaN2tZEOPoUOEVftkQqZx2EeQRN7LGdfLlI3FvZ+7WDplm+vK2Urx9ULrvSowtdCieng==" }, "node_modules/merge-stream": { "version": "2.0.0", @@ -1172,9 +1519,9 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, "node_modules/nanoid": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", - "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", "funding": [ { "type": "github", @@ -1188,6 +1535,14 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/node-domexception": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", @@ -1250,6 +1605,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/onetime": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", @@ -1435,6 +1798,52 @@ "resolved": "https://registry.npmjs.org/slug/-/slug-6.1.0.tgz", "integrity": "sha512-x6vLHCMasg4DR2LPiyFGI0gJJhywY6DTiGhCrOMzb3SOk/0JVLIaL4UhyFSHu04SD3uAavrKY/K3zZ3i6iRcgA==" }, + "node_modules/socket.io": { + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.4.tgz", + "integrity": "sha512-DcotgfP1Zg9iP/dH9zvAQcWrE0TtbMVwXmlV4T4mqsvY+gw+LqUGPfx2AoVyRk0FLME+GQhufDMyacFmw7ksqw==", + "dependencies": { + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "cors": "~2.8.5", + "debug": "~4.3.2", + "engine.io": "~6.5.2", + "socket.io-adapter": "~2.5.2", + "socket.io-parser": "~4.2.4" + }, + "engines": { + "node": ">=10.2.0" + } + }, + "node_modules/socket.io-adapter": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.5.tgz", + "integrity": "sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==", + "dependencies": { + "debug": "~4.3.4", + "ws": "~8.17.1" + } + }, + "node_modules/socket.io-adapter/node_modules/ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/socket.io-client": { "version": "4.7.5", "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.5.tgz", @@ -1581,6 +1990,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/tinyexec": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==" + }, "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", @@ -1618,6 +2032,11 @@ "ulid": "bin/cli.js" } }, + "node_modules/uncrypto": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/uncrypto/-/uncrypto-0.1.3.tgz", + "integrity": "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==" + }, "node_modules/undici-types": { "version": "6.19.8", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", @@ -1635,6 +2054,14 @@ "uuid": "dist/bin/uuid" } }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/web-streams-polyfill": { "version": "4.0.0-beta.3", "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz", @@ -1749,9 +2176,9 @@ } }, "node_modules/zod": { - "version": "3.24.1", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.1.tgz", - "integrity": "sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==", + "version": "3.24.2", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.2.tgz", + "integrity": "sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==", "funding": { "url": "https://github.com/sponsors/colinhacks" } diff --git a/packages/cli-v3/e2e/fixtures/otel-telemetry-loader/package.json b/packages/cli-v3/e2e/fixtures/otel-telemetry-loader/package.json index 0b7be41e24..5b3bd63ab9 100644 --- a/packages/cli-v3/e2e/fixtures/otel-telemetry-loader/package.json +++ b/packages/cli-v3/e2e/fixtures/otel-telemetry-loader/package.json @@ -1,7 +1,7 @@ { "name": "otel-telemetry-loader", "private": true, - "packageManager": "pnpm@8.15.5+sha256.4b4efa12490e5055d59b9b9fc9438b7d581a6b7af3b5675eb5c5f447cee1a589", + "packageManager": "yarn@4.2.2+sha256.1aa43a5304405be7a7cb9cb5de7b97de9c4e8ddd3273e4dad00d6ae3eb39f0ef", "engines": { "pnpm": "8.15.5", "yarn": "4.2.2" @@ -10,7 +10,7 @@ "packages/*" ], "dependencies": { - "@trigger.dev/sdk": "0.0.0-prerelease-20250116195421", + "@trigger.dev/sdk": "0.0.0-prerelease-20250321122618", "openai": "4.47.0" }, "devDependencies": { diff --git a/packages/cli-v3/e2e/fixtures/otel-telemetry-loader/pnpm-lock.yaml b/packages/cli-v3/e2e/fixtures/otel-telemetry-loader/pnpm-lock.yaml index cf5b8db6b1..7c53ae8906 100644 --- a/packages/cli-v3/e2e/fixtures/otel-telemetry-loader/pnpm-lock.yaml +++ b/packages/cli-v3/e2e/fixtures/otel-telemetry-loader/pnpm-lock.yaml @@ -9,8 +9,8 @@ importers: .: dependencies: '@trigger.dev/sdk': - specifier: 0.0.0-prerelease-20250116195421 - version: 0.0.0-prerelease-20250116195421(zod@3.22.3) + specifier: 0.0.0-prerelease-20250321122618 + version: 0.0.0-prerelease-20250321122618(zod@3.23.8) openai: specifier: 4.47.0 version: 4.47.0 @@ -24,6 +24,10 @@ importers: packages: + /@bugsnag/cuid@3.2.1: + resolution: {integrity: sha512-zpvN8xQ5rdRWakMd/BcVkdn2F8HKlDSbM3l7duueK590WmI1T0ObTLc1V/1e55r14WNjPd5AJTYX4yPEAFVi+Q==} + dev: false + /@electric-sql/client@1.0.0-beta.1: resolution: {integrity: sha512-Ei9jN3pDoGzc+a/bGqnB5ajb52IvSv7/n2btuyzUlcOHIR2kM9fqtYTJXPwZYKLkGZlHWlpHgWyRtrinkP2nHg==} optionalDependencies: @@ -90,6 +94,16 @@ packages: '@opentelemetry/api': 1.9.0 '@opentelemetry/semantic-conventions': 1.25.1 + /@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0): + resolution: {integrity: sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/semantic-conventions': 1.28.0 + dev: false + /@opentelemetry/exporter-logs-otlp-http@0.52.1(@opentelemetry/api@1.9.0): resolution: {integrity: sha512-qKgywId2DbdowPZpOBXQKp0B8DfhfIArmSic15z13Nk/JAOccBUQdPwDjDnjsM5f0ckZFMVR2t/tijTUAqDZoA==} engines: {node: '>=14'} @@ -326,6 +340,11 @@ packages: resolution: {integrity: sha512-ZDjMJJQRlyk8A1KZFCc+bCbsyrn1wTwdNt56F7twdfUfnHUZUq77/WfONCj8p72NZOyP7pNTdUWSTYC3GTbuuQ==} engines: {node: '>=14'} + /@opentelemetry/semantic-conventions@1.28.0: + resolution: {integrity: sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==} + engines: {node: '>=14'} + dev: false + /@protobufjs/aspromise@1.1.2: resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} dev: false @@ -403,15 +422,17 @@ packages: - supports-color dev: true - /@trigger.dev/core@0.0.0-prerelease-20250116195421: - resolution: {integrity: sha512-bxZ5vq3txcUxQln8BZSb2No7gHPG/qTSeo5uq6W2+OQKoVN+c5pmVTYQQa6Fwfd2AXhpkU9ovdM3V1IoEddOtA==} + /@trigger.dev/core@0.0.0-prerelease-20250321122618: + resolution: {integrity: sha512-0hSMKqvM39V1A8YjZxYivw109ZrGk22Pfa8ydQ29nCubdeTMe6for+AYzj89BIOnEGeEZ24Hzg2uVc5Av9BUHg==} engines: {node: '>=18.20.0'} dependencies: + '@bugsnag/cuid': 3.2.1 '@electric-sql/client': 1.0.0-beta.1 '@google-cloud/precise-date': 4.0.0 '@jsonhero/path': 1.0.21 '@opentelemetry/api': 1.9.0 '@opentelemetry/api-logs': 0.52.1 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/exporter-logs-otlp-http': 0.52.1(@opentelemetry/api@1.9.0) '@opentelemetry/exporter-trace-otlp-http': 0.52.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) @@ -422,13 +443,16 @@ packages: '@opentelemetry/sdk-trace-node': 1.25.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.25.1 dequal: 2.0.3 + eventsource: 3.0.5 eventsource-parser: 3.0.0 execa: 8.0.1 humanize-duration: 3.32.1 jose: 5.9.6 nanoid: 3.3.8 + socket.io: 4.7.4 socket.io-client: 4.7.5 superjson: 2.2.1 + tinyexec: 0.3.2 zod: 3.23.8 zod-error: 1.5.0 zod-validation-error: 1.5.0(zod@3.23.8) @@ -438,8 +462,8 @@ packages: - utf-8-validate dev: false - /@trigger.dev/sdk@0.0.0-prerelease-20250116195421(zod@3.22.3): - resolution: {integrity: sha512-/Kw+q/mDulGgiSHR9L3nldGOWH72AQAys9zuoBO72JjVfipKI1R8jjqQHhZjWqolMYqgg9XaJr9lQM8sV5lWwQ==} + /@trigger.dev/sdk@0.0.0-prerelease-20250321122618(zod@3.23.8): + resolution: {integrity: sha512-/DOWqGdTxkeUY3WIJ/lPS8vC9VwitQiB+ONHCR5L1xBovHVaCyj3zMn/dWPsM+Wtz2wVZAPZ45pmHqvJEX3qLw==} engines: {node: '>=18.20.0'} peerDependencies: zod: ^3.0.0 @@ -447,7 +471,7 @@ packages: '@opentelemetry/api': 1.9.0 '@opentelemetry/api-logs': 0.52.1 '@opentelemetry/semantic-conventions': 1.25.1 - '@trigger.dev/core': 0.0.0-prerelease-20250116195421 + '@trigger.dev/core': 0.0.0-prerelease-20250321122618 chalk: 5.3.0 cronstrue: 2.50.0 debug: 4.3.6 @@ -455,15 +479,26 @@ packages: slug: 6.1.0 terminal-link: 3.0.0 ulid: 2.3.0 + uncrypto: 0.1.3 uuid: 9.0.1 ws: 8.18.0 - zod: 3.22.3 + zod: 3.23.8 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate dev: false + /@types/cookie@0.4.1: + resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==} + dev: false + + /@types/cors@2.8.17: + resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} + dependencies: + '@types/node': 22.5.2 + dev: false + /@types/node-fetch@2.6.11: resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==} dependencies: @@ -493,6 +528,14 @@ packages: event-target-shim: 5.0.1 dev: false + /accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + dev: false + /acorn-import-attributes@1.9.5(acorn@8.12.1): resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} peerDependencies: @@ -539,6 +582,11 @@ packages: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} dev: true + /base64id@2.0.0: + resolution: {integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==} + engines: {node: ^4.5.0 || >= 5.9} + dev: false + /chalk@5.3.0: resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} @@ -574,6 +622,11 @@ packages: delayed-stream: 1.0.0 dev: false + /cookie@0.4.2: + resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==} + engines: {node: '>= 0.6'} + dev: false + /copy-anything@3.0.5: resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} engines: {node: '>=12.13'} @@ -581,6 +634,14 @@ packages: is-what: 4.1.16 dev: false + /cors@2.8.5: + resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} + engines: {node: '>= 0.10'} + dependencies: + object-assign: 4.1.1 + vary: 1.1.2 + dev: false + /cronstrue@2.50.0: resolution: {integrity: sha512-ULYhWIonJzlScCCQrPUG5uMXzXxSixty4djud9SS37DoNxDdkeRocxzHuAo4ImRBUK+mAuU5X9TSwEDccnnuPg==} hasBin: true @@ -639,6 +700,26 @@ packages: engines: {node: '>=10.0.0'} dev: false + /engine.io@6.5.5: + resolution: {integrity: sha512-C5Pn8Wk+1vKBoHghJODM63yk8MvrO9EWZUfkAt5HAqIgPE4/8FF0PEGHXtEd40l223+cE5ABWuPzm38PHFXfMA==} + engines: {node: '>=10.2.0'} + dependencies: + '@types/cookie': 0.4.1 + '@types/cors': 2.8.17 + '@types/node': 22.5.2 + accepts: 1.3.8 + base64id: 2.0.0 + cookie: 0.4.2 + cors: 2.8.5 + debug: 4.3.6 + engine.io-parser: 5.2.3 + ws: 8.17.1 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: false + /escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -654,6 +735,13 @@ packages: engines: {node: '>=18.0.0'} dev: false + /eventsource@3.0.5: + resolution: {integrity: sha512-LT/5J605bx5SNyE+ITBDiM3FxffBiq9un7Vx0EwMDM3vg8sWKx/tO2zC+LMqZ+smAM0F2hblaDZUVZF0te2pSw==} + engines: {node: '>=18.0.0'} + dependencies: + eventsource-parser: 3.0.0 + dev: false + /evt@2.5.7: resolution: {integrity: sha512-dr7Wd16ry5F8WNU1xXLKpFpO3HsoAGg8zC48e08vDdzMzGWCP9/QFGt1PQptEEDh8SwYP3EL8M+d/Gb0kgUp6g==} dependencies: @@ -829,6 +917,11 @@ packages: hasBin: true dev: false + /negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + dev: false + /node-domexception@1.0.0: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} @@ -853,6 +946,11 @@ packages: path-key: 4.0.0 dev: false + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + dev: false + /onetime@6.0.0: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} engines: {node: '>=12'} @@ -966,6 +1064,17 @@ packages: resolution: {integrity: sha512-x6vLHCMasg4DR2LPiyFGI0gJJhywY6DTiGhCrOMzb3SOk/0JVLIaL4UhyFSHu04SD3uAavrKY/K3zZ3i6iRcgA==} dev: false + /socket.io-adapter@2.5.5: + resolution: {integrity: sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==} + dependencies: + debug: 4.3.6 + ws: 8.17.1 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: false + /socket.io-client@4.7.5: resolution: {integrity: sha512-sJ/tqHOCe7Z50JCBCXrsY3I2k03iOiUe+tj1OmKeD2lXPiGH/RUCdTZFoqVyN7l1MnpIzPrGtLcijffmeouNlQ==} engines: {node: '>=10.0.0'} @@ -990,6 +1099,23 @@ packages: - supports-color dev: false + /socket.io@4.7.4: + resolution: {integrity: sha512-DcotgfP1Zg9iP/dH9zvAQcWrE0TtbMVwXmlV4T4mqsvY+gw+LqUGPfx2AoVyRk0FLME+GQhufDMyacFmw7ksqw==} + engines: {node: '>=10.2.0'} + dependencies: + accepts: 1.3.8 + base64id: 2.0.0 + cors: 2.8.5 + debug: 4.3.6 + engine.io: 6.5.5 + socket.io-adapter: 2.5.5 + socket.io-parser: 4.2.4 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: false + /string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -1045,6 +1171,10 @@ packages: supports-hyperlinks: 2.3.0 dev: false + /tinyexec@0.3.2: + resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} + dev: false + /tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} dev: false @@ -1073,6 +1203,10 @@ packages: hasBin: true dev: false + /uncrypto@0.1.3: + resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} + dev: false + /undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} dev: false @@ -1086,6 +1220,11 @@ packages: hasBin: true dev: false + /vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + dev: false + /web-streams-polyfill@3.3.3: resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} engines: {node: '>= 8'} @@ -1193,10 +1332,6 @@ packages: zod: 3.23.8 dev: false - /zod@3.22.3: - resolution: {integrity: sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug==} - dev: false - /zod@3.23.8: resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} dev: false diff --git a/packages/cli-v3/e2e/fixtures/otel-telemetry-loader/yarn.lock b/packages/cli-v3/e2e/fixtures/otel-telemetry-loader/yarn.lock index ec16aa5ebf..1df03dc371 100644 --- a/packages/cli-v3/e2e/fixtures/otel-telemetry-loader/yarn.lock +++ b/packages/cli-v3/e2e/fixtures/otel-telemetry-loader/yarn.lock @@ -5,6 +5,13 @@ __metadata: version: 8 cacheKey: 10c0 +"@bugsnag/cuid@npm:^3.1.1": + version: 3.2.1 + resolution: "@bugsnag/cuid@npm:3.2.1" + checksum: 10c0/f2da80e922a3ed14bcede1e8257ce02974fdce91f2b6ecfc25846f70c250f2909b2a19f898e309cf564c882b39ac685df99e8fe498db45071d3019db5ea03e6a + languageName: node + linkType: hard + "@electric-sql/client@npm:1.0.0-beta.1": version: 1.0.0-beta.1 resolution: "@electric-sql/client@npm:1.0.0-beta.1" @@ -25,12 +32,12 @@ __metadata: linkType: hard "@grpc/grpc-js@npm:^1.7.1": - version: 1.12.5 - resolution: "@grpc/grpc-js@npm:1.12.5" + version: 1.13.0 + resolution: "@grpc/grpc-js@npm:1.13.0" dependencies: "@grpc/proto-loader": "npm:^0.7.13" "@js-sdsl/ordered-map": "npm:^4.4.2" - checksum: 10c0/1e539d98951e6ff6611e3cedc8eec343625fdab76c7683aa7fca605b3de17d8aabaf2f78d7e95400e68dc8e249cda498781e9a3481bb6b713fc167da3fe59a8e + checksum: 10c0/c760d5eb5ee07c4cfd5dcd83ee62d5232d5776b5d1ce5d436edc53402ec16ef053d3a283f48ce832f4635009dbd411ac7586495a7d053fc5f202e95811cf4129 languageName: node linkType: hard @@ -87,7 +94,7 @@ __metadata: languageName: node linkType: hard -"@opentelemetry/core@npm:1.25.1, @opentelemetry/core@npm:^1.25.0": +"@opentelemetry/core@npm:1.25.1": version: 1.25.1 resolution: "@opentelemetry/core@npm:1.25.1" dependencies: @@ -98,6 +105,17 @@ __metadata: languageName: node linkType: hard +"@opentelemetry/core@npm:^1.25.0, @opentelemetry/core@npm:^1.30.1": + version: 1.30.1 + resolution: "@opentelemetry/core@npm:1.30.1" + dependencies: + "@opentelemetry/semantic-conventions": "npm:1.28.0" + peerDependencies: + "@opentelemetry/api": ">=1.0.0 <1.10.0" + checksum: 10c0/4c25ba50a6137c2ba9ca563fb269378f3c9ca6fd1b3f15dbb6eff78eebf5656f281997cbb7be8e51c01649fd6ad091083fcd8a42dd9b5dfac907dc06d7cfa092 + languageName: node + linkType: hard + "@opentelemetry/exporter-logs-otlp-http@npm:0.52.1": version: 0.52.1 resolution: "@opentelemetry/exporter-logs-otlp-http@npm:0.52.1" @@ -351,6 +369,13 @@ __metadata: languageName: node linkType: hard +"@opentelemetry/semantic-conventions@npm:1.28.0": + version: 1.28.0 + resolution: "@opentelemetry/semantic-conventions@npm:1.28.0" + checksum: 10c0/deb8a0f744198071e70fea27143cf7c9f7ecb7e4d7b619488c917834ea09b31543c1c2bcea4ec5f3cf68797f0ef3549609c14e859013d9376400ac1499c2b9cb + languageName: node + linkType: hard + "@protobufjs/aspromise@npm:^1.1.1, @protobufjs/aspromise@npm:^1.1.2": version: 1.1.2 resolution: "@protobufjs/aspromise@npm:1.1.2" @@ -425,8 +450,8 @@ __metadata: linkType: hard "@rollup/rollup-darwin-arm64@npm:^4.18.1": - version: 4.30.1 - resolution: "@rollup/rollup-darwin-arm64@npm:4.30.1" + version: 4.36.0 + resolution: "@rollup/rollup-darwin-arm64@npm:4.36.0" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard @@ -461,15 +486,17 @@ __metadata: languageName: node linkType: hard -"@trigger.dev/core@npm:0.0.0-prerelease-20250116195421": - version: 0.0.0-prerelease-20250116195421 - resolution: "@trigger.dev/core@npm:0.0.0-prerelease-20250116195421" +"@trigger.dev/core@npm:0.0.0-prerelease-20250321122618": + version: 0.0.0-prerelease-20250321122618 + resolution: "@trigger.dev/core@npm:0.0.0-prerelease-20250321122618" dependencies: + "@bugsnag/cuid": "npm:^3.1.1" "@electric-sql/client": "npm:1.0.0-beta.1" "@google-cloud/precise-date": "npm:^4.0.0" "@jsonhero/path": "npm:^1.0.21" "@opentelemetry/api": "npm:1.9.0" "@opentelemetry/api-logs": "npm:0.52.1" + "@opentelemetry/core": "npm:^1.30.1" "@opentelemetry/exporter-logs-otlp-http": "npm:0.52.1" "@opentelemetry/exporter-trace-otlp-http": "npm:0.52.1" "@opentelemetry/instrumentation": "npm:0.52.1" @@ -480,28 +507,31 @@ __metadata: "@opentelemetry/sdk-trace-node": "npm:1.25.1" "@opentelemetry/semantic-conventions": "npm:1.25.1" dequal: "npm:^2.0.3" + eventsource: "npm:^3.0.5" eventsource-parser: "npm:^3.0.0" execa: "npm:^8.0.1" humanize-duration: "npm:^3.27.3" jose: "npm:^5.4.0" nanoid: "npm:^3.3.4" + socket.io: "npm:4.7.4" socket.io-client: "npm:4.7.5" superjson: "npm:^2.2.1" + tinyexec: "npm:^0.3.2" zod: "npm:3.23.8" zod-error: "npm:1.5.0" zod-validation-error: "npm:^1.5.0" - checksum: 10c0/90b53701ba59608e4b0319c5d08147ee04440e14ecb163dabcbea725f46555d4aa8b91fee51a31e616cd88d5f6dcfc15cb7a59491894c36d5cfe818454fff620 + checksum: 10c0/0bcab7e5ea31c2ee49699b83b26da9994f0ce803b3208ac12e2157ebd21c1e872021922241ba835a98880cd051d2cc245c472ec1901196bfc2a41a53663326ec languageName: node linkType: hard -"@trigger.dev/sdk@npm:0.0.0-prerelease-20250116195421": - version: 0.0.0-prerelease-20250116195421 - resolution: "@trigger.dev/sdk@npm:0.0.0-prerelease-20250116195421" +"@trigger.dev/sdk@npm:0.0.0-prerelease-20250321122618": + version: 0.0.0-prerelease-20250321122618 + resolution: "@trigger.dev/sdk@npm:0.0.0-prerelease-20250321122618" dependencies: "@opentelemetry/api": "npm:1.9.0" "@opentelemetry/api-logs": "npm:0.52.1" "@opentelemetry/semantic-conventions": "npm:1.25.1" - "@trigger.dev/core": "npm:0.0.0-prerelease-20250116195421" + "@trigger.dev/core": "npm:0.0.0-prerelease-20250321122618" chalk: "npm:^5.2.0" cronstrue: "npm:^2.21.0" debug: "npm:^4.3.4" @@ -509,11 +539,28 @@ __metadata: slug: "npm:^6.0.0" terminal-link: "npm:^3.0.0" ulid: "npm:^2.3.0" + uncrypto: "npm:^0.1.3" uuid: "npm:^9.0.0" ws: "npm:^8.11.0" peerDependencies: zod: ^3.0.0 - checksum: 10c0/6c54e6588a02097a49f11784fefaa1e00b12af4875f6f599de80d54031b9ef919ff017924d6870427cd5d8da178d177df0b0a6c32c0930a03882e3c6c9def1dc + checksum: 10c0/2ae41e2fe41a781346a91144b946355521bbcce5bd4cbf4a48f4aeb0b9a7b338a9e749ed014c36732fb128510a01573230a70571c3ccb91f5500776b52ca17a5 + languageName: node + linkType: hard + +"@types/cookie@npm:^0.4.1": + version: 0.4.1 + resolution: "@types/cookie@npm:0.4.1" + checksum: 10c0/f96afe12bd51be1ec61410b0641243d93fa3a494702407c787a4c872b5c8bcd39b224471452055e44a9ce42af1a636e87d161994226eaf4c2be9c30f60418409 + languageName: node + linkType: hard + +"@types/cors@npm:^2.8.12": + version: 2.8.17 + resolution: "@types/cors@npm:2.8.17" + dependencies: + "@types/node": "npm:*" + checksum: 10c0/457364c28c89f3d9ed34800e1de5c6eaaf344d1bb39af122f013322a50bc606eb2aa6f63de4e41a7a08ba7ef454473926c94a830636723da45bf786df032696d languageName: node linkType: hard @@ -527,7 +574,7 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*, @types/node@npm:>=13.7.0": +"@types/node@npm:*, @types/node@npm:>=10.0.0, @types/node@npm:>=13.7.0": version: 22.5.2 resolution: "@types/node@npm:22.5.2" dependencies: @@ -561,6 +608,16 @@ __metadata: languageName: node linkType: hard +"accepts@npm:~1.3.4": + version: 1.3.8 + resolution: "accepts@npm:1.3.8" + dependencies: + mime-types: "npm:~2.1.34" + negotiator: "npm:0.6.3" + checksum: 10c0/3a35c5f5586cfb9a21163ca47a5f77ac34fa8ceb5d17d2fa2c0d81f41cbd7f8c6fa52c77e2c039acc0f4d09e71abdc51144246900f6bef5e3c4b333f77d89362 + languageName: node + linkType: hard + "acorn-import-attributes@npm:^1.9.5": version: 1.9.5 resolution: "acorn-import-attributes@npm:1.9.5" @@ -627,6 +684,13 @@ __metadata: languageName: node linkType: hard +"base64id@npm:2.0.0, base64id@npm:~2.0.0": + version: 2.0.0 + resolution: "base64id@npm:2.0.0" + checksum: 10c0/6919efd237ed44b9988cbfc33eca6f173a10e810ce50292b271a1a421aac7748ef232a64d1e6032b08f19aae48dce6ee8f66c5ae2c9e5066c82b884861d4d453 + languageName: node + linkType: hard + "chalk@npm:^5.2.0": version: 5.3.0 resolution: "chalk@npm:5.3.0" @@ -677,6 +741,13 @@ __metadata: languageName: node linkType: hard +"cookie@npm:~0.4.1": + version: 0.4.2 + resolution: "cookie@npm:0.4.2" + checksum: 10c0/beab41fbd7c20175e3a2799ba948c1dcc71ef69f23fe14eeeff59fc09f50c517b0f77098db87dbb4c55da802f9d86ee86cdc1cd3efd87760341551838d53fca2 + languageName: node + linkType: hard + "copy-anything@npm:^3.0.2": version: 3.0.5 resolution: "copy-anything@npm:3.0.5" @@ -686,6 +757,16 @@ __metadata: languageName: node linkType: hard +"cors@npm:~2.8.5": + version: 2.8.5 + resolution: "cors@npm:2.8.5" + dependencies: + object-assign: "npm:^4" + vary: "npm:^1" + checksum: 10c0/373702b7999409922da80de4a61938aabba6929aea5b6fd9096fefb9e8342f626c0ebd7507b0e8b0b311380744cc985f27edebc0a26e0ddb784b54e1085de761 + languageName: node + linkType: hard + "cronstrue@npm:^2.21.0": version: 2.50.0 resolution: "cronstrue@npm:2.50.0" @@ -706,7 +787,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:^4.3.4, debug@npm:^4.3.5, debug@npm:~4.3.1, debug@npm:~4.3.2": +"debug@npm:^4.3.4, debug@npm:^4.3.5, debug@npm:~4.3.1, debug@npm:~4.3.2, debug@npm:~4.3.4": version: 4.3.7 resolution: "debug@npm:4.3.7" dependencies: @@ -759,6 +840,24 @@ __metadata: languageName: node linkType: hard +"engine.io@npm:~6.5.2": + version: 6.5.5 + resolution: "engine.io@npm:6.5.5" + dependencies: + "@types/cookie": "npm:^0.4.1" + "@types/cors": "npm:^2.8.12" + "@types/node": "npm:>=10.0.0" + accepts: "npm:~1.3.4" + base64id: "npm:2.0.0" + cookie: "npm:~0.4.1" + cors: "npm:~2.8.5" + debug: "npm:~4.3.1" + engine.io-parser: "npm:~5.2.1" + ws: "npm:~8.17.1" + checksum: 10c0/b0994134917c5d3649fd7aea283492eaf092131e572a8d379c7c9081548b42cff756730b4641edd0d1598148dd3be253c4d634cea2ba5c59622d175d9e567469 + languageName: node + linkType: hard + "escalade@npm:^3.1.1": version: 3.2.0 resolution: "escalade@npm:3.2.0" @@ -780,6 +879,15 @@ __metadata: languageName: node linkType: hard +"eventsource@npm:^3.0.5": + version: 3.0.5 + resolution: "eventsource@npm:3.0.5" + dependencies: + eventsource-parser: "npm:^3.0.0" + checksum: 10c0/0283045a70b7ab7501fc290e60ee5ebd6e24648e0f0a6d6a1c1bbb7a421971e8140b85d6239d08c360e0a0b196205ca86b4ff7f9efe3c06877ba628136856489 + languageName: node + linkType: hard + "evt@npm:^2.4.13": version: 2.5.7 resolution: "evt@npm:2.5.7" @@ -946,9 +1054,9 @@ __metadata: linkType: hard "jose@npm:^5.4.0": - version: 5.9.6 - resolution: "jose@npm:5.9.6" - checksum: 10c0/d6bcd8c7d655b5cda8e182952a76f0c093347f5476d74795405bb91563f7ab676f61540310dd4b1531c60d685335ceb600571a409551d2cbd2ab3e9f9fbf1e4d + version: 5.10.0 + resolution: "jose@npm:5.10.0" + checksum: 10c0/e20d9fc58d7e402f2e5f04e824b8897d5579aae60e64cb88ebdea1395311c24537bf4892f7de413fab1acf11e922797fb1b42269bc8fc65089a3749265ccb7b0 languageName: node linkType: hard @@ -976,9 +1084,9 @@ __metadata: linkType: hard "long@npm:^5.0.0": - version: 5.2.4 - resolution: "long@npm:5.2.4" - checksum: 10c0/0cf819ce2a7bbe48663e79233917552c7667b11e68d4d9ea4ebb99173042509d9af461e5211c22939b913332c264d9a1135937ea533cbd05bc4f8cf46f6d2e07 + version: 5.3.1 + resolution: "long@npm:5.3.1" + checksum: 10c0/8726994c6359bb7162fb94563e14c3f9c0f0eeafd90ec654738f4f144a5705756d36a873c442f172ee2a4b51e08d14ab99765b49aa1fb994c5ba7fe12057bca2 languageName: node linkType: hard @@ -996,7 +1104,7 @@ __metadata: languageName: node linkType: hard -"mime-types@npm:^2.1.12": +"mime-types@npm:^2.1.12, mime-types@npm:~2.1.34": version: 2.1.35 resolution: "mime-types@npm:2.1.35" dependencies: @@ -1034,11 +1142,18 @@ __metadata: linkType: hard "nanoid@npm:^3.3.4": - version: 3.3.8 - resolution: "nanoid@npm:3.3.8" + version: 3.3.11 + resolution: "nanoid@npm:3.3.11" bin: nanoid: bin/nanoid.cjs - checksum: 10c0/4b1bb29f6cfebf3be3bc4ad1f1296fb0a10a3043a79f34fbffe75d1621b4318319211cd420549459018ea3592f0d2f159247a6f874911d6d26eaaadda2478120 + checksum: 10c0/40e7f70b3d15f725ca072dfc4f74e81fcf1fbb02e491cf58ac0c79093adc9b0a73b152bcde57df4b79cd097e13023d7504acb38404a4da7bc1cd8e887b82fe0b + languageName: node + linkType: hard + +"negotiator@npm:0.6.3": + version: 0.6.3 + resolution: "negotiator@npm:0.6.3" + checksum: 10c0/3ec9fd413e7bf071c937ae60d572bc67155262068ed522cf4b3be5edbe6ddf67d095ec03a3a14ebf8fc8e95f8e1d61be4869db0dbb0de696f6b837358bd43fc2 languageName: node linkType: hard @@ -1072,6 +1187,13 @@ __metadata: languageName: node linkType: hard +"object-assign@npm:^4": + version: 4.1.1 + resolution: "object-assign@npm:4.1.1" + checksum: 10c0/1f4df9945120325d041ccf7b86f31e8bcc14e73d29171e37a7903050e96b81323784ec59f93f102ec635bcf6fa8034ba3ea0a8c7e69fa202b87ae3b6cec5a414 + languageName: node + linkType: hard + "onetime@npm:^6.0.0": version: 6.0.0 resolution: "onetime@npm:6.0.0" @@ -1104,7 +1226,7 @@ __metadata: resolution: "otel-telemetry-loader@workspace:." dependencies: "@traceloop/instrumentation-openai": "npm:^0.10.0" - "@trigger.dev/sdk": "npm:0.0.0-prerelease-20250116195421" + "@trigger.dev/sdk": "npm:0.0.0-prerelease-20250321122618" openai: "npm:4.47.0" typescript: "npm:5.5.4" languageName: unknown @@ -1250,6 +1372,16 @@ __metadata: languageName: node linkType: hard +"socket.io-adapter@npm:~2.5.2": + version: 2.5.5 + resolution: "socket.io-adapter@npm:2.5.5" + dependencies: + debug: "npm:~4.3.4" + ws: "npm:~8.17.1" + checksum: 10c0/04a5a2a9c4399d1b6597c2afc4492ab1e73430cc124ab02b09e948eabf341180b3866e2b61b5084cb899beb68a4db7c328c29bda5efb9207671b5cb0bc6de44e + languageName: node + linkType: hard + "socket.io-client@npm:4.7.5": version: 4.7.5 resolution: "socket.io-client@npm:4.7.5" @@ -1272,6 +1404,21 @@ __metadata: languageName: node linkType: hard +"socket.io@npm:4.7.4": + version: 4.7.4 + resolution: "socket.io@npm:4.7.4" + dependencies: + accepts: "npm:~1.3.4" + base64id: "npm:~2.0.0" + cors: "npm:~2.8.5" + debug: "npm:~4.3.2" + engine.io: "npm:~6.5.2" + socket.io-adapter: "npm:~2.5.2" + socket.io-parser: "npm:~4.2.4" + checksum: 10c0/c37b7745d475695d5d5d20a30af940ebf1fefa9defdd1f3601978682a4e1d12eab10da0a6efb19d72038bb819a7972331a679649161689db600883b83818fb16 + languageName: node + linkType: hard + "string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": version: 4.2.3 resolution: "string-width@npm:4.2.3" @@ -1344,6 +1491,13 @@ __metadata: languageName: node linkType: hard +"tinyexec@npm:^0.3.2": + version: 0.3.2 + resolution: "tinyexec@npm:0.3.2" + checksum: 10c0/3efbf791a911be0bf0821eab37a3445c2ba07acc1522b1fa84ae1e55f10425076f1290f680286345ed919549ad67527d07281f1c19d584df3b74326909eb1f90 + languageName: node + linkType: hard + "tr46@npm:~0.0.3": version: 0.0.3 resolution: "tr46@npm:0.0.3" @@ -1401,6 +1555,13 @@ __metadata: languageName: node linkType: hard +"uncrypto@npm:^0.1.3": + version: 0.1.3 + resolution: "uncrypto@npm:0.1.3" + checksum: 10c0/74a29afefd76d5b77bedc983559ceb33f5bbc8dada84ff33755d1e3355da55a4e03a10e7ce717918c436b4dfafde1782e799ebaf2aadd775612b49f7b5b2998e + languageName: node + linkType: hard + "undici-types@npm:~5.26.4": version: 5.26.5 resolution: "undici-types@npm:5.26.5" @@ -1424,6 +1585,13 @@ __metadata: languageName: node linkType: hard +"vary@npm:^1": + version: 1.1.2 + resolution: "vary@npm:1.1.2" + checksum: 10c0/f15d588d79f3675135ba783c91a4083dcd290a2a5be9fcb6514220a1634e23df116847b1cc51f66bfb0644cf9353b2abb7815ae499bab06e46dd33c1a6bf1f4f + languageName: node + linkType: hard + "web-streams-polyfill@npm:4.0.0-beta.3": version: 4.0.0-beta.3 resolution: "web-streams-polyfill@npm:4.0.0-beta.3" @@ -1569,8 +1737,8 @@ __metadata: linkType: hard "zod@npm:^3.20.2": - version: 3.24.1 - resolution: "zod@npm:3.24.1" - checksum: 10c0/0223d21dbaa15d8928fe0da3b54696391d8e3e1e2d0283a1a070b5980a1dbba945ce631c2d1eccc088fdbad0f2dfa40155590bf83732d3ac4fcca2cc9237591b + version: 3.24.2 + resolution: "zod@npm:3.24.2" + checksum: 10c0/c638c7220150847f13ad90635b3e7d0321b36cce36f3fc6050ed960689594c949c326dfe2c6fa87c14b126ee5d370ccdebd6efb304f41ef5557a4aaca2824565 languageName: node linkType: hard diff --git a/packages/cli-v3/src/commands/workers/build.ts b/packages/cli-v3/src/commands/workers/build.ts index e28896de9b..1a85a11269 100644 --- a/packages/cli-v3/src/commands/workers/build.ts +++ b/packages/cli-v3/src/commands/workers/build.ts @@ -419,7 +419,7 @@ async function _workerBuildCommand(dir: string, options: WorkersBuildCommandOpti logger.table( deploymentWithWorker.worker.tasks.map((task) => ({ id: task.slug, - export: task.exportName, + export: task.exportName ?? "@deprecated", path: task.filePath, })) ); diff --git a/packages/cli-v3/src/dev/devSupervisor.ts b/packages/cli-v3/src/dev/devSupervisor.ts index 75865cc1f3..81d7c77f9f 100644 --- a/packages/cli-v3/src/dev/devSupervisor.ts +++ b/packages/cli-v3/src/dev/devSupervisor.ts @@ -113,6 +113,7 @@ class DevSupervisor implements WorkerRuntime { async initializeWorker(manifest: BuildManifest, stop: () => void): Promise { if (this.lastManifest && this.lastManifest.contentHash === manifest.contentHash) { + logger.debug("worker skipped", { lastManifestContentHash: this.lastManifest?.contentHash }); eventBus.emit("workerSkipped"); stop(); return; @@ -126,6 +127,8 @@ class DevSupervisor implements WorkerRuntime { stop, }); + logger.debug("initializing background worker", { manifest }); + await backgroundWorker.initialize(); if (!backgroundWorker.manifest) { @@ -153,6 +156,7 @@ class DevSupervisor implements WorkerRuntime { packageVersion: manifest.packageVersion, cliPackageVersion: manifest.cliPackageVersion, tasks: backgroundWorker.manifest.tasks, + queues: backgroundWorker.manifest.queues, contentHash: manifest.contentHash, sourceFiles, }, diff --git a/packages/cli-v3/src/entryPoints/dev-index-worker.ts b/packages/cli-v3/src/entryPoints/dev-index-worker.ts index 2ef18444eb..a29f2f8541 100644 --- a/packages/cli-v3/src/entryPoints/dev-index-worker.ts +++ b/packages/cli-v3/src/entryPoints/dev-index-worker.ts @@ -2,19 +2,19 @@ import { BuildManifest, type HandleErrorFunction, indexerToWorkerMessages, - taskCatalog, + resourceCatalog, type TaskManifest, TriggerConfig, } from "@trigger.dev/core/v3"; import { - StandardTaskCatalog, + StandardResourceCatalog, TracingDiagnosticLogLevel, TracingSDK, } from "@trigger.dev/core/v3/workers"; import { sendMessageInCatalog, ZodSchemaParsedError } from "@trigger.dev/core/v3/zodMessageHandler"; import { readFile } from "node:fs/promises"; import sourceMapSupport from "source-map-support"; -import { registerTasks } from "../indexing/registerTasks.js"; +import { registerResources } from "../indexing/registerResources.js"; import { env } from "std-env"; import { normalizeImportPath } from "../utilities/normalizeImportPath.js"; @@ -51,7 +51,7 @@ process.on("uncaughtException", function (error, origin) { } }); -taskCatalog.setGlobalTaskCatalog(new StandardTaskCatalog()); +resourceCatalog.setGlobalResourceCatalog(new StandardResourceCatalog()); async function importConfig( configPath: string @@ -86,7 +86,7 @@ async function bootstrap() { forceFlushTimeoutMillis: 30_000, }); - const importErrors = await registerTasks(buildManifest); + const importErrors = await registerResources(buildManifest); return { tracingSDK, @@ -98,7 +98,7 @@ async function bootstrap() { const { buildManifest, importErrors, config } = await bootstrap(); -let tasks = taskCatalog.listTaskManifests(); +let tasks = resourceCatalog.listTaskManifests(); // If the config has retry defaults, we need to apply them to all tasks that don't have any retry settings if (config.retries?.default) { @@ -134,6 +134,7 @@ await sendMessageInCatalog( { manifest: { tasks, + queues: resourceCatalog.listQueueManifests(), configPath: buildManifest.configPath, runtime: buildManifest.runtime, workerEntryPoint: buildManifest.runWorkerEntryPoint, diff --git a/packages/cli-v3/src/entryPoints/dev-run-worker.ts b/packages/cli-v3/src/entryPoints/dev-run-worker.ts index 30ff92ddc3..007c001a79 100644 --- a/packages/cli-v3/src/entryPoints/dev-run-worker.ts +++ b/packages/cli-v3/src/entryPoints/dev-run-worker.ts @@ -9,7 +9,7 @@ import { LogLevel, runMetadata, runtime, - taskCatalog, + resourceCatalog, TaskRunErrorCodes, TaskRunExecution, timeout, @@ -30,7 +30,7 @@ import { ManagedRuntimeManager, OtelTaskLogger, StandardMetadataManager, - StandardTaskCatalog, + StandardResourceCatalog, StandardWaitUntilManager, TaskExecutor, TracingDiagnosticLogLevel, @@ -96,7 +96,7 @@ standardRunTimelineMetricsManager.seedMetricsFromEnvironment(); const devUsageManager = new DevUsageManager(); usage.setGlobalUsageManager(devUsageManager); timeout.setGlobalManager(new UsageTimeoutManager(devUsageManager)); -taskCatalog.setGlobalTaskCatalog(new StandardTaskCatalog()); +resourceCatalog.setGlobalResourceCatalog(new StandardResourceCatalog()); const durableClock = new DurableClock(); clock.setGlobalClock(durableClock); @@ -139,6 +139,8 @@ async function loadWorkerManifest() { async function bootstrap() { const workerManifest = await loadWorkerManifest(); + resourceCatalog.registerWorkerManifest(workerManifest); + const { config, handleError } = await importConfig(workerManifest.configPath); const tracingSDK = new TracingSDK({ @@ -168,14 +170,6 @@ async function bootstrap() { logger.setGlobalTaskLogger(otelTaskLogger); - for (const task of workerManifest.tasks) { - taskCatalog.registerTaskFileMetadata(task.id, { - exportName: task.exportName, - filePath: task.filePath, - entryPoint: task.entryPoint, - }); - } - return { tracer, tracingSDK, @@ -262,7 +256,9 @@ const zodIpc = new ZodIpcConnection({ }, async () => { const beforeImport = performance.now(); + resourceCatalog.setCurrentFileContext(taskManifest.entryPoint, taskManifest.filePath); await import(normalizeImportPath(taskManifest.entryPoint)); + resourceCatalog.clearCurrentFileContext(); const durationMs = performance.now() - beforeImport; log( @@ -297,7 +293,7 @@ const zodIpc = new ZodIpcConnection({ process.title = `trigger-dev-worker: ${execution.task.id} ${execution.run.id}`; // Import the task module - const task = taskCatalog.getTask(execution.task.id); + const task = resourceCatalog.getTask(execution.task.id); if (!task) { logError(`Could not find task ${execution.task.id}`); diff --git a/packages/cli-v3/src/entryPoints/managed-index-controller.ts b/packages/cli-v3/src/entryPoints/managed-index-controller.ts index 3df63aa7b8..d7c2f048a9 100644 --- a/packages/cli-v3/src/entryPoints/managed-index-controller.ts +++ b/packages/cli-v3/src/entryPoints/managed-index-controller.ts @@ -95,6 +95,7 @@ async function indexDeployment({ packageVersion: buildManifest.packageVersion, cliPackageVersion: buildManifest.cliPackageVersion, tasks: workerManifest.tasks, + queues: workerManifest.queues, sourceFiles, }, engine: "V2", diff --git a/packages/cli-v3/src/entryPoints/managed-index-worker.ts b/packages/cli-v3/src/entryPoints/managed-index-worker.ts index 2ef18444eb..a29f2f8541 100644 --- a/packages/cli-v3/src/entryPoints/managed-index-worker.ts +++ b/packages/cli-v3/src/entryPoints/managed-index-worker.ts @@ -2,19 +2,19 @@ import { BuildManifest, type HandleErrorFunction, indexerToWorkerMessages, - taskCatalog, + resourceCatalog, type TaskManifest, TriggerConfig, } from "@trigger.dev/core/v3"; import { - StandardTaskCatalog, + StandardResourceCatalog, TracingDiagnosticLogLevel, TracingSDK, } from "@trigger.dev/core/v3/workers"; import { sendMessageInCatalog, ZodSchemaParsedError } from "@trigger.dev/core/v3/zodMessageHandler"; import { readFile } from "node:fs/promises"; import sourceMapSupport from "source-map-support"; -import { registerTasks } from "../indexing/registerTasks.js"; +import { registerResources } from "../indexing/registerResources.js"; import { env } from "std-env"; import { normalizeImportPath } from "../utilities/normalizeImportPath.js"; @@ -51,7 +51,7 @@ process.on("uncaughtException", function (error, origin) { } }); -taskCatalog.setGlobalTaskCatalog(new StandardTaskCatalog()); +resourceCatalog.setGlobalResourceCatalog(new StandardResourceCatalog()); async function importConfig( configPath: string @@ -86,7 +86,7 @@ async function bootstrap() { forceFlushTimeoutMillis: 30_000, }); - const importErrors = await registerTasks(buildManifest); + const importErrors = await registerResources(buildManifest); return { tracingSDK, @@ -98,7 +98,7 @@ async function bootstrap() { const { buildManifest, importErrors, config } = await bootstrap(); -let tasks = taskCatalog.listTaskManifests(); +let tasks = resourceCatalog.listTaskManifests(); // If the config has retry defaults, we need to apply them to all tasks that don't have any retry settings if (config.retries?.default) { @@ -134,6 +134,7 @@ await sendMessageInCatalog( { manifest: { tasks, + queues: resourceCatalog.listQueueManifests(), configPath: buildManifest.configPath, runtime: buildManifest.runtime, workerEntryPoint: buildManifest.runWorkerEntryPoint, diff --git a/packages/cli-v3/src/entryPoints/managed-run-worker.ts b/packages/cli-v3/src/entryPoints/managed-run-worker.ts index 8749801b4d..f261a9e677 100644 --- a/packages/cli-v3/src/entryPoints/managed-run-worker.ts +++ b/packages/cli-v3/src/entryPoints/managed-run-worker.ts @@ -6,7 +6,7 @@ import { logger, LogLevel, runtime, - taskCatalog, + resourceCatalog, TaskRunErrorCodes, TaskRunExecution, WorkerToExecutorMessageCatalog, @@ -29,7 +29,7 @@ import { logLevels, OtelTaskLogger, ProdUsageManager, - StandardTaskCatalog, + StandardResourceCatalog, TaskExecutor, TracingDiagnosticLogLevel, TracingSDK, @@ -107,7 +107,7 @@ const prodUsageManager = new ProdUsageManager(devUsageManager, { usage.setGlobalUsageManager(prodUsageManager); timeout.setGlobalManager(new UsageTimeoutManager(devUsageManager)); -taskCatalog.setGlobalTaskCatalog(new StandardTaskCatalog()); +resourceCatalog.setGlobalResourceCatalog(new StandardResourceCatalog()); const durableClock = new DurableClock(); clock.setGlobalClock(durableClock); const runMetadataManager = new StandardMetadataManager( @@ -148,6 +148,8 @@ async function loadWorkerManifest() { async function bootstrap() { const workerManifest = await loadWorkerManifest(); + resourceCatalog.registerWorkerManifest(workerManifest); + const { config, handleError } = await importConfig( normalizeImportPath(workerManifest.configPath) ); @@ -178,14 +180,6 @@ async function bootstrap() { logger.setGlobalTaskLogger(otelTaskLogger); - for (const task of workerManifest.tasks) { - taskCatalog.registerTaskFileMetadata(task.id, { - exportName: task.exportName, - filePath: task.filePath, - entryPoint: task.entryPoint, - }); - } - return { tracer, tracingSDK, @@ -272,7 +266,9 @@ const zodIpc = new ZodIpcConnection({ }, async () => { const beforeImport = performance.now(); + resourceCatalog.setCurrentFileContext(taskManifest.entryPoint, taskManifest.filePath); await import(normalizeImportPath(taskManifest.entryPoint)); + resourceCatalog.clearCurrentFileContext(); const durationMs = performance.now() - beforeImport; console.log( @@ -307,7 +303,7 @@ const zodIpc = new ZodIpcConnection({ process.title = `trigger-dev-worker: ${execution.task.id} ${execution.run.id}`; // Import the task module - const task = taskCatalog.getTask(execution.task.id); + const task = resourceCatalog.getTask(execution.task.id); if (!task) { console.error(`Could not find task ${execution.task.id}`); diff --git a/packages/cli-v3/src/indexing/registerResources.ts b/packages/cli-v3/src/indexing/registerResources.ts new file mode 100644 index 0000000000..6589dea322 --- /dev/null +++ b/packages/cli-v3/src/indexing/registerResources.ts @@ -0,0 +1,50 @@ +import { BuildManifest, ImportTaskFileErrors, resourceCatalog } from "@trigger.dev/core/v3"; +import { normalizeImportPath } from "../utilities/normalizeImportPath.js"; + +export async function registerResources( + buildManifest: BuildManifest +): Promise { + const importErrors: ImportTaskFileErrors = []; + + for (const file of buildManifest.files) { + // Set the context before importing + resourceCatalog.setCurrentFileContext(file.entry, file.out); + + const [error, _] = await tryImport(file.out); + + // Clear the context after import, regardless of success/failure + resourceCatalog.clearCurrentFileContext(); + + if (error) { + if (typeof error === "string") { + importErrors.push({ + file: file.entry, + message: error, + }); + } else { + importErrors.push({ + file: file.entry, + message: error.message, + stack: error.stack, + name: error.name, + }); + } + + continue; + } + } + + return importErrors; +} + +type Result = [Error | null, T | null]; + +async function tryImport(path: string): Promise> { + try { + const module = await import(normalizeImportPath(path)); + + return [null, module]; + } catch (error) { + return [error as Error, null]; + } +} diff --git a/packages/cli-v3/src/indexing/registerTasks.ts b/packages/cli-v3/src/indexing/registerTasks.ts deleted file mode 100644 index aaa283e0f7..0000000000 --- a/packages/cli-v3/src/indexing/registerTasks.ts +++ /dev/null @@ -1,80 +0,0 @@ -import { BuildManifest, ImportTaskFileErrors, taskCatalog } from "@trigger.dev/core/v3"; -import { normalizeImportPath } from "../utilities/normalizeImportPath.js"; - -export async function registerTasks(buildManifest: BuildManifest): Promise { - const importErrors: ImportTaskFileErrors = []; - - for (const file of buildManifest.files) { - const [error, module] = await tryImport(file.out); - - if (error) { - if (typeof error === "string") { - importErrors.push({ - file: file.entry, - message: error, - }); - } else { - importErrors.push({ - file: file.entry, - message: error.message, - stack: error.stack, - name: error.name, - }); - } - - continue; - } - - for (const exportName of getExportNames(module)) { - const task = module[exportName] ?? module.default?.[exportName]; - - if (!task) { - continue; - } - - if (task[Symbol.for("trigger.dev/task")]) { - if (taskCatalog.taskExists(task.id)) { - taskCatalog.registerTaskFileMetadata(task.id, { - exportName, - filePath: file.entry, - entryPoint: file.out, - }); - } - } - } - } - - return importErrors; -} - -type Result = [Error | null, T | null]; - -async function tryImport(path: string): Promise> { - try { - const module = await import(normalizeImportPath(path)); - - return [null, module]; - } catch (error) { - return [error as Error, null]; - } -} - -function getExportNames(module: any) { - const exports: string[] = []; - - if (!module) { - return exports; - } - - const exportKeys = Object.keys(module); - - if (exportKeys.length === 0) { - return exports; - } - - if (exportKeys.length === 1 && exportKeys[0] === "default") { - return Object.keys(module.default); - } - - return exportKeys; -} diff --git a/packages/core/src/v3/apiClient/runStream.ts b/packages/core/src/v3/apiClient/runStream.ts index 4fed06d15f..788299451e 100644 --- a/packages/core/src/v3/apiClient/runStream.ts +++ b/packages/core/src/v3/apiClient/runStream.ts @@ -424,6 +424,9 @@ function apiStatusFromRunStatus(status: string): RunStatus { case "DELAYED": { return "DELAYED"; } + case "PENDING_VERSION": { + return "PENDING_VERSION"; + } case "WAITING_FOR_DEPLOY": { return "WAITING_FOR_DEPLOY"; } diff --git a/packages/core/src/v3/index.ts b/packages/core/src/v3/index.ts index 15287d37c1..098362a7dc 100644 --- a/packages/core/src/v3/index.ts +++ b/packages/core/src/v3/index.ts @@ -17,13 +17,14 @@ export * from "./timeout-api.js"; export * from "./run-timeline-metrics-api.js"; export * from "./schemas/index.js"; export { SemanticInternalAttributes } from "./semanticInternalAttributes.js"; -export * from "./task-catalog-api.js"; +export * from "./resource-catalog-api.js"; export * from "./types/index.js"; export { links } from "./links.js"; export * from "./jwt.js"; export * from "./idempotencyKeys.js"; export * from "./streams/asyncIterableStream.js"; export * from "./utils/getEnv.js"; +export * from "./tryCatch.js"; export { formatDuration, formatDurationInDays, diff --git a/packages/core/src/v3/task-catalog-api.ts b/packages/core/src/v3/resource-catalog-api.ts similarity index 52% rename from packages/core/src/v3/task-catalog-api.ts rename to packages/core/src/v3/resource-catalog-api.ts index fbd7763bec..172e3bcda8 100644 --- a/packages/core/src/v3/task-catalog-api.ts +++ b/packages/core/src/v3/resource-catalog-api.ts @@ -1,5 +1,5 @@ // Split module-level variable definition into separate files to allow // tree-shaking on each api instance. -import { TaskCatalogAPI } from "./task-catalog/index.js"; +import { ResourceCatalogAPI } from "./resource-catalog/index.js"; /** Entrypoint for runtime API */ -export const taskCatalog = TaskCatalogAPI.getInstance(); +export const resourceCatalog = ResourceCatalogAPI.getInstance(); diff --git a/packages/core/src/v3/task-catalog/catalog.ts b/packages/core/src/v3/resource-catalog/catalog.ts similarity index 51% rename from packages/core/src/v3/task-catalog/catalog.ts rename to packages/core/src/v3/resource-catalog/catalog.ts index 2d9b8ac2aa..725899c0d1 100644 --- a/packages/core/src/v3/task-catalog/catalog.ts +++ b/packages/core/src/v3/resource-catalog/catalog.ts @@ -1,12 +1,16 @@ -import { TaskFileMetadata, TaskManifest } from "../schemas/index.js"; +import { QueueManifest, TaskManifest, WorkerManifest } from "../schemas/index.js"; import { TaskMetadataWithFunctions } from "../types/index.js"; -export interface TaskCatalog { +export interface ResourceCatalog { + setCurrentFileContext(filePath: string, entryPoint: string): void; + clearCurrentFileContext(): void; registerTaskMetadata(task: TaskMetadataWithFunctions): void; updateTaskMetadata(id: string, task: Partial): void; - registerTaskFileMetadata(id: string, metadata: TaskFileMetadata): void; listTaskManifests(): Array; getTaskManifest(id: string): TaskManifest | undefined; getTask(id: string): TaskMetadataWithFunctions | undefined; taskExists(id: string): boolean; + registerWorkerManifest(workerManifest: WorkerManifest): void; + registerQueueMetadata(queue: QueueManifest): void; + listQueueManifests(): Array; } diff --git a/packages/core/src/v3/resource-catalog/index.ts b/packages/core/src/v3/resource-catalog/index.ts new file mode 100644 index 0000000000..6773f1b621 --- /dev/null +++ b/packages/core/src/v3/resource-catalog/index.ts @@ -0,0 +1,79 @@ +const API_NAME = "resource-catalog"; + +import { QueueManifest, TaskManifest, WorkerManifest } from "../schemas/index.js"; +import { TaskMetadataWithFunctions } from "../types/index.js"; +import { getGlobal, registerGlobal, unregisterGlobal } from "../utils/globals.js"; +import { type ResourceCatalog } from "./catalog.js"; +import { NoopResourceCatalog } from "./noopResourceCatalog.js"; + +const NOOP_RESOURCE_CATALOG = new NoopResourceCatalog(); + +export class ResourceCatalogAPI { + private static _instance?: ResourceCatalogAPI; + + private constructor() {} + + public static getInstance(): ResourceCatalogAPI { + if (!this._instance) { + this._instance = new ResourceCatalogAPI(); + } + + return this._instance; + } + + public setGlobalResourceCatalog(resourceCatalog: ResourceCatalog): boolean { + return registerGlobal(API_NAME, resourceCatalog); + } + + public disable() { + unregisterGlobal(API_NAME); + } + + public registerQueueMetadata(queue: QueueManifest): void { + this.#getCatalog().registerQueueMetadata(queue); + } + + public registerTaskMetadata(task: TaskMetadataWithFunctions): void { + this.#getCatalog().registerTaskMetadata(task); + } + + public updateTaskMetadata(id: string, updates: Partial): void { + this.#getCatalog().updateTaskMetadata(id, updates); + } + + public setCurrentFileContext(filePath: string, entryPoint: string): void { + this.#getCatalog().setCurrentFileContext(filePath, entryPoint); + } + + public clearCurrentFileContext(): void { + this.#getCatalog().clearCurrentFileContext(); + } + + public registerWorkerManifest(workerManifest: WorkerManifest): void { + this.#getCatalog().registerWorkerManifest(workerManifest); + } + + public listTaskManifests(): Array { + return this.#getCatalog().listTaskManifests(); + } + + public getTaskManifest(id: string): TaskManifest | undefined { + return this.#getCatalog().getTaskManifest(id); + } + + public getTask(id: string): TaskMetadataWithFunctions | undefined { + return this.#getCatalog().getTask(id); + } + + public taskExists(id: string): boolean { + return this.#getCatalog().taskExists(id); + } + + public listQueueManifests(): Array { + return this.#getCatalog().listQueueManifests(); + } + + #getCatalog(): ResourceCatalog { + return getGlobal(API_NAME) ?? NOOP_RESOURCE_CATALOG; + } +} diff --git a/packages/core/src/v3/task-catalog/noopTaskCatalog.ts b/packages/core/src/v3/resource-catalog/noopResourceCatalog.ts similarity index 52% rename from packages/core/src/v3/task-catalog/noopTaskCatalog.ts rename to packages/core/src/v3/resource-catalog/noopResourceCatalog.ts index bd9a1616e7..b0e0f73056 100644 --- a/packages/core/src/v3/task-catalog/noopTaskCatalog.ts +++ b/packages/core/src/v3/resource-catalog/noopResourceCatalog.ts @@ -1,13 +1,17 @@ -import { TaskFileMetadata, TaskManifest } from "../schemas/index.js"; +import { QueueManifest, TaskManifest, WorkerManifest } from "../schemas/index.js"; import { TaskMetadataWithFunctions } from "../types/index.js"; -import { TaskCatalog } from "./catalog.js"; +import { ResourceCatalog } from "./catalog.js"; -export class NoopTaskCatalog implements TaskCatalog { +export class NoopResourceCatalog implements ResourceCatalog { registerTaskMetadata(task: TaskMetadataWithFunctions): void { // noop } - registerTaskFileMetadata(id: string, metadata: TaskFileMetadata): void { + setCurrentFileContext(filePath: string, entryPoint: string): void { + // noop + } + + clearCurrentFileContext(): void { // noop } @@ -34,4 +38,16 @@ export class NoopTaskCatalog implements TaskCatalog { disable() { // noop } + + registerWorkerManifest(workerManifest: WorkerManifest): void { + // noop + } + + registerQueueMetadata(queue: QueueManifest): void { + // noop + } + + listQueueManifests(): Array { + return []; + } } diff --git a/packages/core/src/v3/task-catalog/standardTaskCatalog.ts b/packages/core/src/v3/resource-catalog/standardResourceCatalog.ts similarity index 65% rename from packages/core/src/v3/task-catalog/standardTaskCatalog.ts rename to packages/core/src/v3/resource-catalog/standardResourceCatalog.ts index 681186a5e8..0e8eaca4d9 100644 --- a/packages/core/src/v3/task-catalog/standardTaskCatalog.ts +++ b/packages/core/src/v3/resource-catalog/standardResourceCatalog.ts @@ -1,19 +1,56 @@ -import { TaskFileMetadata, TaskMetadata, TaskManifest } from "../schemas/index.js"; +import { + TaskFileMetadata, + TaskMetadata, + TaskManifest, + WorkerManifest, + QueueManifest, +} from "../schemas/index.js"; import { TaskMetadataWithFunctions } from "../types/index.js"; -import { TaskCatalog } from "./catalog.js"; +import { ResourceCatalog } from "./catalog.js"; -export class StandardTaskCatalog implements TaskCatalog { +export class StandardResourceCatalog implements ResourceCatalog { private _taskMetadata: Map = new Map(); private _taskFunctions: Map = new Map(); private _taskFileMetadata: Map = new Map(); + private _currentFileContext?: Omit; + private _queueMetadata: Map = new Map(); + + setCurrentFileContext(filePath: string, entryPoint: string) { + this._currentFileContext = { filePath, entryPoint }; + } + + clearCurrentFileContext() { + this._currentFileContext = undefined; + } + + registerQueueMetadata(queue: QueueManifest): void { + this._queueMetadata.set(queue.name, queue); + } + + registerWorkerManifest(workerManifest: WorkerManifest): void { + for (const task of workerManifest.tasks) { + this._taskFileMetadata.set(task.id, { + filePath: task.filePath, + entryPoint: task.entryPoint, + }); + } + } registerTaskMetadata(task: TaskMetadataWithFunctions): void { + if (!this._currentFileContext) { + return; + } + const { fns, ...metadata } = task; if (!task.id) { return; } + this._taskFileMetadata.set(task.id, { + ...this._currentFileContext, + }); + this._taskMetadata.set(task.id, metadata); this._taskFunctions.set(task.id, fns); } @@ -40,10 +77,6 @@ export class StandardTaskCatalog implements TaskCatalog { } } - registerTaskFileMetadata(id: string, metadata: TaskFileMetadata): void { - this._taskFileMetadata.set(id, metadata); - } - // Return all the tasks, without the functions listTaskManifests(): Array { const result: Array = []; @@ -64,6 +97,10 @@ export class StandardTaskCatalog implements TaskCatalog { return result; } + listQueueManifests(): Array { + return Array.from(this._queueMetadata.values()); + } + getTaskManifest(id: string): TaskManifest | undefined { const metadata = this._taskMetadata.get(id); const fileMetadata = this._taskFileMetadata.get(id); diff --git a/packages/core/src/v3/schemas/api.ts b/packages/core/src/v3/schemas/api.ts index 48be14e602..49d9667874 100644 --- a/packages/core/src/v3/schemas/api.ts +++ b/packages/core/src/v3/schemas/api.ts @@ -1,15 +1,8 @@ -import { coerce, date, z } from "zod"; +import { z } from "zod"; import { DeserializedJsonSchema } from "../../schemas/json.js"; -import { - FlushedRunMetadata, - MachinePresetName, - RunMetadataChangeOperation, - SerializedError, - TaskRunError, -} from "./common.js"; +import { FlushedRunMetadata, MachinePresetName, SerializedError, TaskRunError } from "./common.js"; import { BackgroundWorkerMetadata } from "./resources.js"; -import { QueueOptions } from "./schemas.js"; -import { DequeuedMessage, MachineResources, WaitpointStatus } from "./runEngine.js"; +import { DequeuedMessage, MachineResources } from "./runEngine.js"; export const RunEngineVersion = z.union([z.literal("V1"), z.literal("V2")]); @@ -104,7 +97,13 @@ export const TriggerTaskRequestBody = z.object({ */ lockToVersion: z.string().optional(), - queue: QueueOptions.optional(), + queue: z + .object({ + name: z.string(), + // @deprecated, this is now specified on the queue + concurrencyLimit: z.number().int().optional(), + }) + .optional(), concurrencyKey: z.string().optional(), delay: z.string().or(z.coerce.date()).optional(), idempotencyKey: z.string().optional(), @@ -158,7 +157,11 @@ export const BatchTriggerTaskItem = z.object({ metadataType: z.string().optional(), parentAttempt: z.string().optional(), payloadType: z.string().optional(), - queue: QueueOptions.optional(), + queue: z + .object({ + name: z.string(), + }) + .optional(), tags: RunTags.optional(), test: z.boolean().optional(), ttl: z.string().or(z.number().nonnegative().int()).optional(), @@ -376,7 +379,7 @@ export const GetDeploymentResponseBody = z.object({ id: z.string(), slug: z.string(), filePath: z.string(), - exportName: z.string(), + exportName: z.string().optional(), }) ), }) @@ -606,6 +609,8 @@ export const TimezonesResult = z.object({ export type TimezonesResult = z.infer; export const RunStatus = z.enum([ + /// Task is waiting for a version update because it cannot execute without additional information (task, queue, etc.). Replaces WAITING_FOR_DEPLOY + "PENDING_VERSION", /// Task hasn't been deployed yet but is waiting to be executed "WAITING_FOR_DEPLOY", /// Task is waiting to be executed by a worker diff --git a/packages/core/src/v3/schemas/build.ts b/packages/core/src/v3/schemas/build.ts index 0b9431656d..0b122af2ed 100644 --- a/packages/core/src/v3/schemas/build.ts +++ b/packages/core/src/v3/schemas/build.ts @@ -1,6 +1,6 @@ import { z } from "zod"; import { ConfigManifest } from "./config.js"; -import { TaskFile, TaskManifest } from "./schemas.js"; +import { QueueManifest, TaskFile, TaskManifest } from "./schemas.js"; export const BuildExternal = z.object({ name: z.string(), @@ -81,6 +81,7 @@ export type IndexMessage = z.infer; export const WorkerManifest = z.object({ configPath: z.string(), tasks: TaskManifest.array(), + queues: QueueManifest.array().optional(), workerEntryPoint: z.string(), controllerEntryPoint: z.string().optional(), loaderEntryPoint: z.string().optional(), diff --git a/packages/core/src/v3/schemas/common.ts b/packages/core/src/v3/schemas/common.ts index fd2384dfa3..43030847dc 100644 --- a/packages/core/src/v3/schemas/common.ts +++ b/packages/core/src/v3/schemas/common.ts @@ -242,7 +242,7 @@ export type TaskRun = z.infer; export const TaskRunExecutionTask = z.object({ id: z.string(), filePath: z.string(), - exportName: z.string(), + exportName: z.string().optional(), }); export type TaskRunExecutionTask = z.infer; diff --git a/packages/core/src/v3/schemas/queues.ts b/packages/core/src/v3/schemas/queues.ts index 2b511eb44c..33ae3e1447 100644 --- a/packages/core/src/v3/schemas/queues.ts +++ b/packages/core/src/v3/schemas/queues.ts @@ -32,6 +32,8 @@ export const QueueItem = z.object({ concurrencyLimit: z.number().nullable(), /** Whether the queue is paused. If it's paused, no new runs will be started. */ paused: z.boolean(), + /** Whether the queue releases concurrency on waitpoints. */ + releaseConcurrencyOnWaitpoint: z.boolean(), }); export type QueueItem = z.infer; diff --git a/packages/core/src/v3/schemas/resources.ts b/packages/core/src/v3/schemas/resources.ts index b44efb80bb..bcca03d290 100644 --- a/packages/core/src/v3/schemas/resources.ts +++ b/packages/core/src/v3/schemas/resources.ts @@ -1,13 +1,13 @@ import { z } from "zod"; -import { QueueOptions, RetryOptions, ScheduleMetadata } from "./schemas.js"; +import { QueueManifest, RetryOptions, ScheduleMetadata } from "./schemas.js"; import { MachineConfig } from "./common.js"; export const TaskResource = z.object({ id: z.string(), description: z.string().optional(), filePath: z.string(), - exportName: z.string(), - queue: QueueOptions.optional(), + exportName: z.string().optional(), + queue: QueueManifest.extend({ name: z.string().optional() }).optional(), retry: RetryOptions.optional(), machine: MachineConfig.optional(), triggerSource: z.string().optional(), @@ -31,6 +31,7 @@ export const BackgroundWorkerMetadata = z.object({ contentHash: z.string(), cliPackageVersion: z.string().optional(), tasks: z.array(TaskResource), + queues: z.array(QueueManifest).optional(), sourceFiles: z.array(BackgroundWorkerSourceFileMetadata).optional(), }); diff --git a/packages/core/src/v3/schemas/runEngine.ts b/packages/core/src/v3/schemas/runEngine.ts index abd7f2b5f6..c45a651c1d 100644 --- a/packages/core/src/v3/schemas/runEngine.ts +++ b/packages/core/src/v3/schemas/runEngine.ts @@ -21,6 +21,7 @@ export type TaskRunExecutionStatus = export const TaskRunStatus = { DELAYED: "DELAYED", PENDING: "PENDING", + PENDING_VERSION: "PENDING_VERSION", WAITING_FOR_DEPLOY: "WAITING_FOR_DEPLOY", EXECUTING: "EXECUTING", WAITING_TO_RESUME: "WAITING_TO_RESUME", diff --git a/packages/core/src/v3/schemas/schemas.ts b/packages/core/src/v3/schemas/schemas.ts index 8602ae7fc4..f8ba143299 100644 --- a/packages/core/src/v3/schemas/schemas.ts +++ b/packages/core/src/v3/schemas/schemas.ts @@ -127,7 +127,7 @@ export const RetryOptions = z.object({ export type RetryOptions = z.infer; -export const QueueOptions = z.object({ +export const QueueManifest = z.object({ /** You can define a shared queue and then pass the name in to your task. * * @example @@ -159,14 +159,19 @@ export const QueueOptions = z.object({ }); * ``` */ - name: z.string().optional(), + name: z.string(), /** An optional property that specifies the maximum number of concurrent run executions. * * If this property is omitted, the task can potentially use up the full concurrency of an environment */ concurrencyLimit: z.number().int().min(0).max(1000).optional().nullable(), + /** An optional property that specifies whether to release concurrency on waitpoint. + * + * If this property is omitted, the task will not release concurrency on waitpoint. + */ + releaseConcurrencyOnWaitpoint: z.boolean().optional(), }); -export type QueueOptions = z.infer; +export type QueueManifest = z.infer; export const ScheduleMetadata = z.object({ cron: z.string(), @@ -176,7 +181,7 @@ export const ScheduleMetadata = z.object({ const taskMetadata = { id: z.string(), description: z.string().optional(), - queue: QueueOptions.optional(), + queue: QueueManifest.extend({ name: z.string().optional() }).optional(), retry: RetryOptions.optional(), machine: MachineConfig.optional(), triggerSource: z.string().optional(), @@ -197,7 +202,7 @@ export type TaskFile = z.infer; const taskFileMetadata = { filePath: z.string(), - exportName: z.string(), + exportName: z.string().optional(), entryPoint: z.string(), }; diff --git a/packages/core/src/v3/schemas/webhooks.ts b/packages/core/src/v3/schemas/webhooks.ts index a63eef8e89..e619ffe97c 100644 --- a/packages/core/src/v3/schemas/webhooks.ts +++ b/packages/core/src/v3/schemas/webhooks.ts @@ -11,7 +11,7 @@ const AlertWebhookRunFailedObject = z.object({ /** File path where the task is defined */ filePath: z.string(), /** Name of the exported task function */ - exportName: z.string(), + exportName: z.string().optional(), /** Version of the task */ version: z.string(), /** Version of the SDK used */ @@ -142,7 +142,7 @@ export const AlertWebhookDeploymentSuccessObject = z.object({ /** File path where the task is defined */ filePath: z.string(), /** Name of the exported task function */ - exportName: z.string(), + exportName: z.string().optional(), /** Source of the trigger */ triggerSource: z.string(), }) diff --git a/packages/core/src/v3/task-catalog/index.ts b/packages/core/src/v3/task-catalog/index.ts deleted file mode 100644 index 8e3d2c39ac..0000000000 --- a/packages/core/src/v3/task-catalog/index.ts +++ /dev/null @@ -1,63 +0,0 @@ -const API_NAME = "task-catalog"; - -import { TaskFileMetadata, TaskManifest } from "../schemas/index.js"; -import { TaskMetadataWithFunctions } from "../types/index.js"; -import { getGlobal, registerGlobal, unregisterGlobal } from "../utils/globals.js"; -import { type TaskCatalog } from "./catalog.js"; -import { NoopTaskCatalog } from "./noopTaskCatalog.js"; - -const NOOP_TASK_CATALOG = new NoopTaskCatalog(); - -export class TaskCatalogAPI { - private static _instance?: TaskCatalogAPI; - - private constructor() {} - - public static getInstance(): TaskCatalogAPI { - if (!this._instance) { - this._instance = new TaskCatalogAPI(); - } - - return this._instance; - } - - public setGlobalTaskCatalog(taskCatalog: TaskCatalog): boolean { - return registerGlobal(API_NAME, taskCatalog); - } - - public disable() { - unregisterGlobal(API_NAME); - } - - public registerTaskMetadata(task: TaskMetadataWithFunctions): void { - this.#getCatalog().registerTaskMetadata(task); - } - - public updateTaskMetadata(id: string, updates: Partial): void { - this.#getCatalog().updateTaskMetadata(id, updates); - } - - public registerTaskFileMetadata(id: string, metadata: TaskFileMetadata): void { - this.#getCatalog().registerTaskFileMetadata(id, metadata); - } - - public listTaskManifests(): Array { - return this.#getCatalog().listTaskManifests(); - } - - public getTaskManifest(id: string): TaskManifest | undefined { - return this.#getCatalog().getTaskManifest(id); - } - - public getTask(id: string): TaskMetadataWithFunctions | undefined { - return this.#getCatalog().getTask(id); - } - - public taskExists(id: string): boolean { - return this.#getCatalog().taskExists(id); - } - - #getCatalog(): TaskCatalog { - return getGlobal(API_NAME) ?? NOOP_TASK_CATALOG; - } -} diff --git a/packages/core/src/v3/tryCatch.ts b/packages/core/src/v3/tryCatch.ts new file mode 100644 index 0000000000..664c6251f2 --- /dev/null +++ b/packages/core/src/v3/tryCatch.ts @@ -0,0 +1,15 @@ +// Types for the result object with discriminated union +type Success = [null, T]; +type Failure = [E, null]; + +type Result = Success | Failure; + +// Main wrapper function +export async function tryCatch(promise: Promise): Promise> { + try { + const data = await promise; + return [null, data]; + } catch (error) { + return [error as E, null]; + } +} diff --git a/packages/core/src/v3/types/index.ts b/packages/core/src/v3/types/index.ts index c3be5f54d4..55cc4d3a12 100644 --- a/packages/core/src/v3/types/index.ts +++ b/packages/core/src/v3/types/index.ts @@ -6,6 +6,7 @@ export * from "./utils.js"; export * from "./tasks.js"; export * from "./idempotencyKeys.js"; export * from "./tools.js"; +export * from "./queues.js"; type ResolveEnvironmentVariablesOptions = { variables: Record | Array<{ name: string; value: string }>; diff --git a/packages/core/src/v3/types/queues.ts b/packages/core/src/v3/types/queues.ts new file mode 100644 index 0000000000..ceb3a45e5e --- /dev/null +++ b/packages/core/src/v3/types/queues.ts @@ -0,0 +1,43 @@ +export type QueueOptions = { + /** You can define a shared queue and then pass the name in to your task. + * + * @example + * + * ```ts + * const myQueue = queue({ + name: "my-queue", + concurrencyLimit: 1, + }); + + export const task1 = task({ + id: "task-1", + queue: { + name: "my-queue", + }, + run: async (payload: { message: string }) => { + // ... + }, + }); + + export const task2 = task({ + id: "task-2", + queue: { + name: "my-queue", + }, + run: async (payload: { message: string }) => { + // ... + }, + }); + * ``` + */ + name: string; + /** An optional property that specifies the maximum number of concurrent run executions. + * + * If this property is omitted, the task can potentially use up the full concurrency of an environment */ + concurrencyLimit?: number; + /** An optional property that specifies whether to release concurrency on waitpoint. + * + * If this property is omitted, the task will not release concurrency on waitpoint. + */ + releaseConcurrencyOnWaitpoint?: boolean; +}; diff --git a/packages/core/src/v3/types/tasks.ts b/packages/core/src/v3/types/tasks.ts index 7a4f279151..e8e54771c4 100644 --- a/packages/core/src/v3/types/tasks.ts +++ b/packages/core/src/v3/types/tasks.ts @@ -9,24 +9,16 @@ import { TaskMetadata, TaskRunContext, } from "../schemas/index.js"; -import { QueueOptions } from "../schemas/schemas.js"; import { IdempotencyKey } from "./idempotencyKeys.js"; import { AnySchemaParseFn, inferSchemaIn, inferSchemaOut, Schema } from "./schemas.js"; import { Prettify } from "./utils.js"; import { inferToolParameters, ToolTaskParameters } from "./tools.js"; +import { QueueOptions } from "./queues.js"; -type RequireOne = { - [X in Exclude]?: T[X]; -} & { - [P in K]-?: T[P]; -}; - -export type Queue = RequireOne; +export type Queue = QueueOptions; export type TaskSchema = Schema; export type { inferSchemaIn } from "./schemas.js"; -type TaskRunConcurrencyOptions = Queue; - export class SubtaskUnwrapError extends Error { public readonly taskId: string; public readonly runId: string; @@ -201,7 +193,10 @@ type CommonTaskOptions< }); * ``` */ - queue?: QueueOptions; + queue?: { + name?: string; + concurrencyLimit?: number; + }; /** Configure the spec of the [machine](https://trigger.dev/docs/machines) you want your task to run on. * * @example @@ -712,10 +707,9 @@ export type TriggerOptions = { maxAttempts?: number; /** - * You can override the queue for the task. If a queue doesn't exist for the given name, it will be created. - * Setting the `concurrencyLimit` here will modify the limit for this queue everywhere it's used. + * You can override the queue for the task. If a queue doesn't exist for the given name, the run will be in the PENDING_VERSION state until the queue is created.. */ - queue?: TaskRunConcurrencyOptions; + queue?: string; /** * The `concurrencyKey` creates a copy of the queue for every unique value of the key. diff --git a/packages/core/src/v3/utils/globals.ts b/packages/core/src/v3/utils/globals.ts index 7014169edf..f3ec155751 100644 --- a/packages/core/src/v3/utils/globals.ts +++ b/packages/core/src/v3/utils/globals.ts @@ -1,10 +1,9 @@ -import { DeserializedJson } from "../../schemas/json.js"; import { ApiClientConfiguration } from "../apiClientManager/types.js"; import { Clock } from "../clock/clock.js"; +import { ResourceCatalog } from "../resource-catalog/catalog.js"; import { RunMetadataManager } from "../runMetadata/types.js"; import type { RuntimeManager } from "../runtime/manager.js"; import { RunTimelineMetricsManager } from "../runTimelineMetrics/types.js"; -import { TaskCatalog } from "../task-catalog/catalog.js"; import { TaskContext } from "../taskContext/types.js"; import { TimeoutManager } from "../timeout/types.js"; import { UsageManager } from "../usage/types.js"; @@ -56,7 +55,7 @@ type TriggerDotDevGlobalAPI = { logger?: any; clock?: Clock; usage?: UsageManager; - ["task-catalog"]?: TaskCatalog; + ["resource-catalog"]?: ResourceCatalog; ["task-context"]?: TaskContext; ["api-client"]?: ApiClientConfiguration; ["run-metadata"]?: RunMetadataManager; diff --git a/packages/core/src/v3/workers/index.ts b/packages/core/src/v3/workers/index.ts index 7b51da7879..76cdb7110f 100644 --- a/packages/core/src/v3/workers/index.ts +++ b/packages/core/src/v3/workers/index.ts @@ -5,7 +5,7 @@ export { getEnvVar, getNumberEnvVar } from "../utils/getEnv.js"; export { OtelTaskLogger, logLevels } from "../logger/taskLogger.js"; export { ConsoleInterceptor } from "../consoleInterceptor.js"; export { TracingSDK, type TracingDiagnosticLogLevel, recordSpanException } from "../otel/index.js"; -export { StandardTaskCatalog } from "../task-catalog/standardTaskCatalog.js"; +export { StandardResourceCatalog } from "../resource-catalog/standardResourceCatalog.js"; export { TaskContextSpanProcessor, TaskContextLogProcessor, diff --git a/packages/react-hooks/src/hooks/useTaskTrigger.ts b/packages/react-hooks/src/hooks/useTaskTrigger.ts index 240660e045..e179c5489f 100644 --- a/packages/react-hooks/src/hooks/useTaskTrigger.ts +++ b/packages/react-hooks/src/hooks/useTaskTrigger.ts @@ -75,7 +75,7 @@ export function useTaskTrigger( const handle = await apiClient.triggerTask(id, { payload: payloadPacket.data, options: { - queue: options?.queue, + queue: options?.queue ? { name: options.queue } : undefined, concurrencyKey: options?.concurrencyKey, payloadType: payloadPacket.dataType, idempotencyKey: await makeIdempotencyKey(options?.idempotencyKey), diff --git a/packages/trigger-sdk/src/v3/schedules/index.ts b/packages/trigger-sdk/src/v3/schedules/index.ts index e23cf2bbf1..eb38c9922f 100644 --- a/packages/trigger-sdk/src/v3/schedules/index.ts +++ b/packages/trigger-sdk/src/v3/schedules/index.ts @@ -9,7 +9,7 @@ import { accessoryAttributes, apiClientManager, mergeRequestOptions, - taskCatalog, + resourceCatalog, } from "@trigger.dev/core/v3"; import { zodfetch } from "@trigger.dev/core/v3/zodfetch"; import { Task, TaskOptions, createTask } from "../shared.js"; @@ -59,7 +59,7 @@ export function task( params: TaskOptions ): Task { - const customQueue = params.queue - ? queue({ - name: params.queue?.name ?? `task/${params.id}`, - ...params.queue, - }) - : undefined; - const task: Task = { id: params.id, description: params.description, trigger: async (payload, options) => { - const taskMetadata = taskCatalog.getTaskManifest(params.id); - return await trigger_internal>( - taskMetadata && taskMetadata.exportName - ? `${taskMetadata.exportName}.trigger()` - : `trigger()`, + "trigger()", params.id, payload, undefined, { - queue: customQueue, + queue: params.queue?.name, ...options, } ); }, batchTrigger: async (items, options) => { - const taskMetadata = taskCatalog.getTaskManifest(params.id); - return await batchTrigger_internal>( - taskMetadata && taskMetadata.exportName - ? `${taskMetadata.exportName}.batchTrigger()` - : `batchTrigger()`, + "batchTrigger()", params.id, items, options, undefined, undefined, - customQueue + params.queue?.name ); }, triggerAndWait: (payload, options) => { - const taskMetadata = taskCatalog.getTaskManifest(params.id); - return new TaskRunPromise((resolve, reject) => { triggerAndWait_internal( - taskMetadata && taskMetadata.exportName - ? `${taskMetadata.exportName}.triggerAndWait()` - : `triggerAndWait()`, + "triggerAndWait()", params.id, payload, undefined, { - queue: customQueue, + queue: params.queue?.name, ...options, } ) @@ -185,23 +172,19 @@ export function createTask< }, params.id); }, batchTriggerAndWait: async (items, options) => { - const taskMetadata = taskCatalog.getTaskManifest(params.id); - return await batchTriggerAndWait_internal( - taskMetadata && taskMetadata.exportName - ? `${taskMetadata.exportName}.batchTriggerAndWait()` - : `batchTriggerAndWait()`, + "batchTriggerAndWait()", params.id, items, undefined, options, undefined, - customQueue + params.queue?.name ); }, }; - taskCatalog.registerTaskMetadata({ + resourceCatalog.registerTaskMetadata({ id: params.id, description: params.description, queue: params.queue, @@ -220,6 +203,15 @@ export function createTask< }, }); + const queue = params.queue; + + if (queue && typeof queue.name === "string") { + resourceCatalog.registerQueueMetadata({ + name: queue.name, + concurrencyLimit: queue.concurrencyLimit, + }); + } + // @ts-expect-error task[Symbol.for("trigger.dev/task")] = true; @@ -259,13 +251,6 @@ export function createSchemaTask< >( params: TaskWithSchemaOptions ): TaskWithSchema { - const customQueue = params.queue - ? queue({ - name: params.queue?.name ?? `task/${params.id}`, - ...params.queue, - }) - : undefined; - const parsePayload = params.schema ? getSchemaParseFn>(params.schema) : undefined; @@ -275,50 +260,38 @@ export function createSchemaTask< description: params.description, schema: params.schema, trigger: async (payload, options, requestOptions) => { - const taskMetadata = taskCatalog.getTaskManifest(params.id); - return await trigger_internal, TOutput>>( - taskMetadata && taskMetadata.exportName - ? `${taskMetadata.exportName}.trigger()` - : `trigger()`, + "trigger()", params.id, payload, parsePayload, { - queue: customQueue, + queue: params.queue?.name, ...options, }, requestOptions ); }, batchTrigger: async (items, options, requestOptions) => { - const taskMetadata = taskCatalog.getTaskManifest(params.id); - return await batchTrigger_internal, TOutput>>( - taskMetadata && taskMetadata.exportName - ? `${taskMetadata.exportName}.batchTrigger()` - : `batchTrigger()`, + "batchTrigger()", params.id, items, options, parsePayload, requestOptions, - customQueue + params.queue?.name ); }, triggerAndWait: (payload, options) => { - const taskMetadata = taskCatalog.getTaskManifest(params.id); - return new TaskRunPromise((resolve, reject) => { triggerAndWait_internal, TOutput>( - taskMetadata && taskMetadata.exportName - ? `${taskMetadata.exportName}.triggerAndWait()` - : `triggerAndWait()`, + "triggerAndWait()", params.id, payload, parsePayload, { - queue: customQueue, + queue: params.queue?.name, ...options, } ) @@ -331,23 +304,19 @@ export function createSchemaTask< }, params.id); }, batchTriggerAndWait: async (items, options) => { - const taskMetadata = taskCatalog.getTaskManifest(params.id); - return await batchTriggerAndWait_internal, TOutput>( - taskMetadata && taskMetadata.exportName - ? `${taskMetadata.exportName}.batchTriggerAndWait()` - : `batchTriggerAndWait()`, + "batchTriggerAndWait()", params.id, items, parsePayload, options, undefined, - customQueue + params.queue?.name ); }, }; - taskCatalog.registerTaskMetadata({ + resourceCatalog.registerTaskMetadata({ id: params.id, description: params.description, queue: params.queue, @@ -367,6 +336,15 @@ export function createSchemaTask< }, }); + const queue = params.queue; + + if (queue && typeof queue.name === "string") { + resourceCatalog.registerQueueMetadata({ + name: queue.name, + concurrencyLimit: queue.concurrencyLimit, + }); + } + // @ts-expect-error task[Symbol.for("trigger.dev/task")] = true; @@ -590,7 +568,7 @@ export async function batchTriggerById( { items: await Promise.all( items.map(async (item, index) => { - const taskMetadata = taskCatalog.getTask(item.id); + const taskMetadata = resourceCatalog.getTask(item.id); const parsedPayload = taskMetadata?.fns.parsePayload ? await taskMetadata?.fns.parsePayload(item.payload) @@ -606,7 +584,7 @@ export async function batchTriggerById( task: item.id, payload: payloadPacket.data, options: { - queue: item.options?.queue, + queue: item.options?.queue ? { name: item.options.queue } : undefined, concurrencyKey: item.options?.concurrencyKey, test: taskContext.ctx?.run.isTest, payloadType: payloadPacket.dataType, @@ -757,7 +735,7 @@ export async function batchTriggerByIdAndWait( { items: await Promise.all( items.map(async (item, index) => { - const taskMetadata = taskCatalog.getTask(item.id); + const taskMetadata = resourceCatalog.getTask(item.id); const parsedPayload = taskMetadata?.fns.parsePayload ? await taskMetadata?.fns.parsePayload(item.payload) @@ -774,7 +752,7 @@ export async function batchTriggerByIdAndWait( payload: payloadPacket.data, options: { lockToVersion: taskContext.worker?.version, - queue: item.options?.queue, + queue: item.options?.queue ? { name: item.options.queue } : undefined, concurrencyKey: item.options?.concurrencyKey, test: taskContext.ctx?.run.isTest, payloadType: payloadPacket.dataType, @@ -918,7 +896,7 @@ export async function batchTriggerTasks( { items: await Promise.all( items.map(async (item, index) => { - const taskMetadata = taskCatalog.getTask(item.task.id); + const taskMetadata = resourceCatalog.getTask(item.task.id); const parsedPayload = taskMetadata?.fns.parsePayload ? await taskMetadata?.fns.parsePayload(item.payload) @@ -934,7 +912,7 @@ export async function batchTriggerTasks( task: item.task.id, payload: payloadPacket.data, options: { - queue: item.options?.queue, + queue: item.options?.queue ? { name: item.options.queue } : undefined, concurrencyKey: item.options?.concurrencyKey, test: taskContext.ctx?.run.isTest, payloadType: payloadPacket.dataType, @@ -1087,7 +1065,7 @@ export async function batchTriggerAndWaitTasks { - const taskMetadata = taskCatalog.getTask(item.task.id); + const taskMetadata = resourceCatalog.getTask(item.task.id); const parsedPayload = taskMetadata?.fns.parsePayload ? await taskMetadata?.fns.parsePayload(item.payload) @@ -1104,7 +1082,7 @@ export async function batchTriggerAndWaitTasks( { payload: payloadPacket.data, options: { - queue: options?.queue, + queue: options?.queue ? { name: options.queue } : undefined, concurrencyKey: options?.concurrencyKey, test: taskContext.ctx?.run.isTest, payloadType: payloadPacket.dataType, @@ -1223,7 +1201,7 @@ async function batchTrigger_internal( options?: BatchTriggerOptions, parsePayload?: SchemaParseFn, requestOptions?: TriggerApiRequestOptions, - queue?: QueueOptions + queue?: string ): Promise> { const apiClient = apiClientManager.clientOrThrow(); @@ -1245,7 +1223,11 @@ async function batchTrigger_internal( task: taskIdentifier, payload: payloadPacket.data, options: { - queue: item.options?.queue ?? queue, + queue: item.options?.queue + ? { name: item.options.queue } + : queue + ? { name: queue } + : undefined, concurrencyKey: item.options?.concurrencyKey, test: taskContext.ctx?.run.isTest, payloadType: payloadPacket.dataType, @@ -1329,7 +1311,7 @@ async function triggerAndWait_internal, options?: BatchTriggerAndWaitOptions, requestOptions?: ApiRequestOptions, - queue?: QueueOptions + queue?: string ): Promise> { const ctx = taskContext.ctx; @@ -1416,7 +1398,11 @@ async function batchTriggerAndWait_internal { + logger.info("Hello, world from the non-exported task", { message: payload.message }); + }, +}); diff --git a/references/hello-world/src/trigger/pendingVersions.ts b/references/hello-world/src/trigger/pendingVersions.ts new file mode 100644 index 0000000000..8b527e730f --- /dev/null +++ b/references/hello-world/src/trigger/pendingVersions.ts @@ -0,0 +1,37 @@ +import { logger, queue, queues, task, tasks } from "@trigger.dev/sdk/v3"; + +export const pendingVersionsQueue = queue({ + name: "pending-version-queue", + concurrencyLimit: 1, +}); + +export const pendingVersionsTester = task({ + id: "pending-versions-tester", + run: async (payload: any, { ctx }) => { + logger.log("Pending versions tester", { payload }); + + await tasks.trigger("pending-versions-tester-2", { + payload: { + message: "Hello, world!", + }, + }); + + await tasks.trigger( + "pending-versions-tester-3", + { + message: "Hello, world!", + }, + { + queue: "pending-version-queue-2", + } + ); + }, +}); + +export const pendingVersionsTester3 = task({ + id: "pending-versions-tester-3", + queue: pendingVersionsQueue, + run: async (payload: any, { ctx }) => { + logger.log("Pending versions tester 3", { payload }); + }, +}); diff --git a/references/hello-world/src/trigger/priority.ts b/references/hello-world/src/trigger/priority.ts index 3944daa647..8fd9ac9b9a 100644 --- a/references/hello-world/src/trigger/priority.ts +++ b/references/hello-world/src/trigger/priority.ts @@ -3,7 +3,7 @@ import { logger, task } from "@trigger.dev/sdk/v3"; export const priorityParent = task({ id: "priority-parent", run: async (payload: any, { ctx }) => { - logger.log("Hello, world from the parent", { payload }); + logger.log("Hello, world from the parents", { payload }); const batch1 = await priorityChild.batchTriggerAndWait([ { diff --git a/references/hello-world/src/trigger/queues.ts b/references/hello-world/src/trigger/queues.ts index efca8fe0e5..23a72fa605 100644 --- a/references/hello-world/src/trigger/queues.ts +++ b/references/hello-world/src/trigger/queues.ts @@ -1,4 +1,4 @@ -import { logger, queues, task } from "@trigger.dev/sdk/v3"; +import { logger, queue, queues, task } from "@trigger.dev/sdk/v3"; export const queuesTester = task({ id: "queues-tester", @@ -40,12 +40,14 @@ export const queuesTester = task({ }, }); +const myCustomQueue = queue({ + name: "my-custom-queue", + concurrencyLimit: 1, +}); + export const otherQueueTask = task({ id: "other-queue-task", - queue: { - name: "my-custom-queue", - concurrencyLimit: 1, - }, + queue: myCustomQueue, run: async (payload: any, { ctx }) => { logger.log("Other queue task", { payload }); },