Compare commits

...

22 Commits

Author SHA1 Message Date
Eric Allam 4a1a5b2e4a fix pnpm lock file 2024-04-24 15:07:22 +01:00
github-actions[bot] 503882762c chore: Update version for release (beta) (#1059)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-04-24 15:06:25 +01:00
Eric Allam e3db257397 Fix error stack traces 2024-04-24 14:18:53 +01:00
Eric Allam de1cc868e3 Fix dev CLI output when not printing update messages 2024-04-24 14:06:49 +01:00
Eric Allam ff7fa9e19a Clear out errored tasks when re-attempting a job run (instead of using the cached error) 2024-04-24 13:00:02 +01:00
Eric Allam ba4f04db37 Fix pnpm lock file 2024-04-24 12:49:06 +01:00
github-actions[bot] d7911892ee chore: Update version for release (beta) (#1058)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-04-24 12:48:00 +01:00
Eric Allam f888f85a09 Make the update trigger packages not print anything in dev 2024-04-24 12:16:49 +01:00
Eric Allam e9a63a4868 Lock SDK and CLI deps on exact core version 2024-04-24 12:12:24 +01:00
Eric Allam 93ecbc5e05 Fix pnpm lock file 2024-04-24 11:52:12 +01:00
Eric Allam 60a8a5777b Merge pull request #1057 from triggerdotdev/changeset-release/main
chore: Update version for release (beta)
2024-04-24 11:50:13 +01:00
github-actions[bot] ed1cd16753 chore: Update version for release (beta) 2024-04-24 10:43:28 +00:00
Eric Allam 6bb4dd7b6f Fixed messaging when trying to login with an existing invalid access token 2024-04-24 11:41:38 +01:00
nicktrn 0b5a0be807 update CI deploy error 2024-04-24 11:23:20 +01:00
nicktrn 74d1e61e42 v3: fix for fresh CLI logins after CLI token revoke (#1056)
* prettier login command output

* fix for trying to login again after revoking cli token

* changeset

* improve errors when logging in with revoked or invalid token

* fix builds.. again
2024-04-24 10:44:34 +01:00
Eric Allam 12c83a56af Skip e2e github workflows for now because playwright is broken 2024-04-24 10:33:11 +01:00
nicktrn 75a54540a4 use full image refs for init containers 2024-04-24 10:13:28 +01:00
Eric Allam b68012f81c v3: Various fixes for Next.js projects and projects that use v2 and v3 together (#1051)
* Fixes an issue that was treating v2 trigger directories as v3

* Make msw a normal dependency (for now) to fix Module Not Found error in Next.js.

* Extract out all the zod* stuff from core so the SDK does not import it

* Add a changeset

* Fixing typecheck errors in the webapp

* Export the Task and TaskOptions types

* Extract additional exports from core/v3 that aren’t used in the SDK

* Move to our global system from AsyncLocalStorage for the current task context storage

* Update the esbuild core bundling plugin for the new core v3 exports

* Fix v3 CLI telemetry

* Add support for tasks located in subdirectories inside trigger dirs

* Remove the env var check during deploy (too many false negatives)
2024-04-24 10:09:36 +01:00
nicktrn fb83d58703 fix builds 2024-04-24 08:48:32 +01:00
nicktrn 52b2a8289c fix private package installs (#1055) 2024-04-24 07:58:14 +01:00
nicktrn 1e93ec4216 Revert "change action runner location" (resolved)
This reverts commit cb27b7278a.
2024-04-24 07:45:08 +01:00
nicktrn cb27b7278a change action runner location ⬆️⬆️⬇️⬇️⬅️➡️⬅️➡️🅱️🅰️ 2024-04-23 18:13:04 +01:00
155 changed files with 1992 additions and 959 deletions
+5
View File
@@ -0,0 +1,5 @@
---
"@trigger.dev/core": patch
---
Fix error stack traces
+5
View File
@@ -0,0 +1,5 @@
---
"trigger.dev": patch
---
Remove the env var check during deploy (too many false negatives)
+9
View File
@@ -0,0 +1,9 @@
---
"@trigger.dev/sdk": patch
---
Make msw a normal dependency (for now) to fix Module Not Found error in Next.js.
It turns out that webpack will "hoist" dynamically imported modules and attempt to resolve them at build time, even though it's an optional peer dep:
https://x.com/maverickdotdev/status/1782465214308319404
+5
View File
@@ -0,0 +1,5 @@
---
"trigger.dev": patch
---
Fixes an issue that was treating v2 trigger directories as v3
+5
View File
@@ -0,0 +1,5 @@
---
"trigger.dev": patch
---
Fix dev CLI output when not printing update messages
+12 -1
View File
@@ -49,11 +49,14 @@
"breezy-gorillas-mate",
"chilled-hornets-move",
"clean-pianos-listen",
"clever-apes-collect",
"cool-glasses-bake",
"cuddly-feet-approve",
"dry-walls-check",
"eight-pumas-float",
"eleven-paws-join",
"few-students-share",
"funny-swans-destroy",
"green-bags-wink",
"khaki-apricots-design",
"khaki-poems-lay",
@@ -65,19 +68,25 @@
"loud-actors-remember",
"many-ligers-pump",
"mighty-camels-joke",
"nasty-jars-pump",
"new-rivers-tell",
"ninety-pets-travel",
"odd-poets-own",
"polite-ducks-switch",
"polite-rockets-matter",
"poor-flowers-cross",
"rare-roses-float",
"real-planets-stare",
"rich-kangaroos-unite",
"rotten-beers-refuse",
"rotten-dryers-exercise",
"selfish-ducks-sort",
"shaggy-spoons-taste",
"sharp-emus-compare",
"sharp-zebras-serve",
"shiny-coats-cry",
"silly-suits-switch",
"slow-buses-own",
"smart-needles-move",
"smart-olives-eat",
"spicy-lamps-smoke",
@@ -93,6 +102,8 @@
"tidy-dryers-sleep",
"tiny-doors-type",
"tiny-elephants-scream",
"tricky-bulldogs-heal"
"tricky-bulldogs-heal",
"tricky-ladybugs-unite",
"two-pumas-wait"
]
}
+5
View File
@@ -0,0 +1,5 @@
---
"trigger.dev": patch
---
Fix a bug where revoking the CLI token would prevent you from ever logging in again with the CLI.
+5
View File
@@ -0,0 +1,5 @@
---
"trigger.dev": patch
---
Add git to prod worker image which fixes private package installs
+6
View File
@@ -0,0 +1,6 @@
---
"@trigger.dev/sdk": patch
"trigger.dev": patch
---
Lock SDK and CLI deps on exact core version
+8
View File
@@ -0,0 +1,8 @@
---
"@trigger.dev/sdk": patch
"trigger.dev": patch
"@trigger.dev/core": patch
"@trigger.dev/cli": patch
---
Move to our global system from AsyncLocalStorage for the current task context storage
+8
View File
@@ -0,0 +1,8 @@
---
"@trigger.dev/sdk": patch
"@trigger.dev/core-apps": patch
"trigger.dev": patch
"@trigger.dev/core": patch
---
Extracting out all the non-SDK related features from the main @trigger.dev/core/v3 export
+6
View File
@@ -0,0 +1,6 @@
---
"trigger.dev": patch
"@trigger.dev/cli": patch
---
Add support for tasks located in subdirectories inside trigger dirs
+3 -3
View File
@@ -27,6 +27,6 @@ jobs:
uses: ./.github/workflows/unit-tests.yml
secrets: inherit
e2e:
uses: ./.github/workflows/e2e.yml
secrets: inherit
# e2e:
# uses: ./.github/workflows/e2e.yml
# secrets: inherit
+4 -4
View File
@@ -49,11 +49,11 @@ jobs:
uses: ./.github/workflows/unit-tests.yml
secrets: inherit
e2e:
uses: ./.github/workflows/e2e.yml
secrets: inherit
# e2e:
# uses: ./.github/workflows/e2e.yml
# secrets: inherit
publish:
needs: [typecheck, units, e2e]
needs: [typecheck, units]
uses: ./.github/workflows/publish-docker.yml
secrets: inherit
+2 -2
View File
@@ -21,8 +21,8 @@
"execa": "^8.0.1",
"nanoid": "^5.0.6",
"prom-client": "^15.1.0",
"socket.io": "^4.7.4",
"socket.io-client": "^4.7.4"
"socket.io": "4.7.4",
"socket.io-client": "4.7.4"
},
"devDependencies": {
"@types/node": "^18",
+2 -2
View File
@@ -8,9 +8,9 @@ import {
PlatformToCoordinatorMessages,
ProdWorkerSocketData,
ProdWorkerToCoordinatorMessages,
ZodNamespace,
ZodSocketConnection,
} from "@trigger.dev/core/v3";
import { ZodNamespace } from "@trigger.dev/core/v3/zodNamespace";
import { ZodSocketConnection } from "@trigger.dev/core/v3/zodSocket";
import { HttpReply, getTextBody, SimpleLogger } from "@trigger.dev/core-apps";
import { collectDefaultMetrics, register, Gauge } from "prom-client";
+1 -1
View File
@@ -211,7 +211,7 @@ class KubernetesTaskOperations implements TaskOperations {
},
{
name: "populate-taskinfo",
image: "busybox",
image: "docker.io/library/busybox",
command: ["/bin/sh", "-c"],
args: ["printenv COORDINATOR_HOST | tee /etc/taskinfo/coordinator-host"],
env: [
+2 -2
View File
@@ -408,7 +408,7 @@ export class TaskMonitor {
const createNonZeroExitPod = async (name: string, labels?: Record<string, string>) => {
const container = {
name,
image: "busybox",
image: "docker.io/library/busybox",
command: ["sh"],
args: ["-c", "exit 1"],
} satisfies k8s.V1Container;
@@ -419,7 +419,7 @@ export class TaskMonitor {
const createOoDiskPod = async (name: string, labels?: Record<string, string>) => {
const container = {
name,
image: "busybox",
image: "docker.io/library/busybox",
command: ["sh"],
args: [
"-c",
@@ -1,6 +1,6 @@
import type { ActionFunctionArgs } from "@remix-run/server-runtime";
import { json } from "@remix-run/server-runtime";
import { parseBatchTriggerTaskRequestBody } from "@trigger.dev/core/v3";
import { BatchTriggerTaskRequestBody } from "@trigger.dev/core/v3";
import { z } from "zod";
import { MAX_BATCH_TRIGGER_ITEMS } from "~/consts";
import { authenticateApiRequest } from "~/services/apiAuth.server";
@@ -46,7 +46,7 @@ export async function action({ request, params }: ActionFunctionArgs) {
// Now parse the request body
const anyBody = await request.json();
const body = parseBatchTriggerTaskRequestBody(anyBody);
const body = BatchTriggerTaskRequestBody.safeParse(anyBody);
if (!body.success) {
return json({ error: "Invalid request body" }, { status: 400 });
@@ -1,6 +1,6 @@
import type { ActionFunctionArgs } from "@remix-run/server-runtime";
import { json } from "@remix-run/server-runtime";
import { parseTriggerTaskRequestBody } from "@trigger.dev/core/v3";
import { TriggerTaskRequestBody } from "@trigger.dev/core/v3";
import { z } from "zod";
import { authenticateApiRequest } from "~/services/apiAuth.server";
import { logger } from "~/services/logger.server";
@@ -52,7 +52,7 @@ export async function action({ request, params }: ActionFunctionArgs) {
// Now parse the request body
const anyBody = await request.json();
const body = parseTriggerTaskRequestBody(anyBody);
const body = TriggerTaskRequestBody.safeParse(anyBody);
if (!body.success) {
return json({ error: "Invalid request body" }, { status: 400 });
@@ -134,20 +134,27 @@ export async function authenticatePersonalAccessToken(
const hashedToken = hashToken(token);
const personalAccessToken = await prisma.personalAccessToken.update({
const personalAccessToken = await prisma.personalAccessToken.findFirst({
where: {
hashedToken,
revokedAt: null,
},
});
if (!personalAccessToken) {
// The token may have been revoked or is entirely invalid
return;
}
await prisma.personalAccessToken.update({
where: {
id: personalAccessToken.id,
},
data: {
lastAccessedAt: new Date(),
},
});
if (!personalAccessToken) {
return;
}
const decryptedToken = decryptPersonalAccessToken(personalAccessToken);
if (decryptedToken !== token) {
@@ -210,6 +217,18 @@ export async function createPersonalAccessTokenFromAuthorizationCode(
},
});
if (existingCliPersonalAccessToken.revokedAt) {
// re-activate revoked CLI PAT so we can use it again
await prisma.personalAccessToken.update({
where: {
id: existingCliPersonalAccessToken.id,
},
data: {
revokedAt: null,
},
});
}
//we don't return the decrypted token
return {
id: existingCliPersonalAccessToken.id,
@@ -45,6 +45,14 @@ export class ContinueRunService {
},
});
// Delete any tasks that are errored
await tx.task.deleteMany({
where: {
runId: runId,
status: "ERRORED",
},
});
await ResumeRunService.enqueue(run, tx);
},
{ timeout: 10000 }
@@ -1,9 +1,5 @@
import {
ZodMessageHandler,
ZodMessageSender,
clientWebsocketMessages,
serverWebsocketMessages,
} from "@trigger.dev/core/v3";
import { clientWebsocketMessages, serverWebsocketMessages } from "@trigger.dev/core/v3";
import { ZodMessageHandler, ZodMessageSender } from "@trigger.dev/core/v3/zodMessageHandler";
import { Evt } from "evt";
import { randomUUID } from "node:crypto";
import type { CloseEvent, ErrorEvent, MessageEvent, WebSocket } from "ws";
+6 -1
View File
@@ -5,8 +5,8 @@ import {
PlatformToProviderMessages,
ProviderToPlatformMessages,
SharedQueueToClientMessages,
ZodNamespace,
} from "@trigger.dev/core/v3";
import { ZodNamespace } from "@trigger.dev/core/v3/zodNamespace";
import { Server } from "socket.io";
import { env } from "~/env.server";
import { singleton } from "~/utils/singleton";
@@ -71,6 +71,7 @@ function initializeSocketIOServerInstance() {
function createCoordinatorNamespace(io: Server) {
const coordinator = new ZodNamespace({
// @ts-ignore - for some reason the built ZodNamespace Server type is not compatible with the Server type here, but only when doing typechecking
io,
name: "coordinator",
authToken: env.COORDINATOR_SECRET,
@@ -147,6 +148,7 @@ function createCoordinatorNamespace(io: Server) {
function createProviderNamespace(io: Server) {
const provider = new ZodNamespace({
// @ts-ignore - for some reason the built ZodNamespace Server type is not compatible with the Server type here, but only when doing typechecking
io,
name: "provider",
authToken: env.PROVIDER_SECRET,
@@ -181,6 +183,7 @@ function createProviderNamespace(io: Server) {
function createSharedQueueConsumerNamespace(io: Server) {
const sharedQueue = new ZodNamespace({
// @ts-ignore - for some reason the built ZodNamespace Server type is not compatible with the Server type here, but only when doing typechecking
io,
name: "shared-queue",
authToken: env.PROVIDER_SECRET,
@@ -188,7 +191,9 @@ function createSharedQueueConsumerNamespace(io: Server) {
serverMessages: SharedQueueToClientMessages,
onConnection: async (socket, handler, sender, logger) => {
const sharedSocketConnection = new SharedSocketConnection({
// @ts-ignore - for some reason the built ZodNamespace Server type is not compatible with the Server type here, but only when doing typechecking
namespace: sharedQueue.namespace,
// @ts-ignore - for some reason the built ZodNamespace Server type is not compatible with the Server type here, but only when doing typechecking
socket,
logger,
poolSize: env.SHARED_QUEUE_CONSUMER_POOL_SIZE,
@@ -3,9 +3,9 @@ import {
TaskRunExecution,
TaskRunExecutionPayload,
TaskRunExecutionResult,
ZodMessageSender,
serverWebsocketMessages,
} from "@trigger.dev/core/v3";
import { ZodMessageSender } from "@trigger.dev/core/v3/zodMessageHandler";
import { BackgroundWorker, BackgroundWorkerTask } from "@trigger.dev/database";
import { z } from "zod";
import { prisma } from "~/db.server";
@@ -8,9 +8,9 @@ import {
TaskRunExecutionResult,
TaskRunFailedExecutionResult,
TaskRunSuccessfulExecutionResult,
ZodMessageSender,
serverWebsocketMessages,
} from "@trigger.dev/core/v3";
import { ZodMessageSender } from "@trigger.dev/core/v3/zodMessageHandler";
import {
BackgroundWorker,
BackgroundWorkerTask,
@@ -26,7 +26,6 @@ import { EnvironmentVariablesRepository } from "../environmentVariables/environm
import { generateFriendlyId } from "../friendlyIdentifiers";
import { socketIo } from "../handleSocketIo.server";
import { findCurrentWorkerDeployment } from "../models/workerDeployment.server";
import { CancelAttemptService } from "../services/cancelAttempt.server";
import { RestoreCheckpointService } from "../services/restoreCheckpoint.server";
import { tracer } from "../tracer.server";
@@ -1,4 +1,5 @@
import { CoordinatorToPlatformMessages, InferSocketMessageSchema } from "@trigger.dev/core/v3";
import { CoordinatorToPlatformMessages } from "@trigger.dev/core/v3";
import type { InferSocketMessageSchema } from "@trigger.dev/core/v3/zodSocket";
import type {
CheckpointRestoreEvent,
TaskRunAttemptStatus,
@@ -1,9 +1,9 @@
import {
CoordinatorToPlatformMessages,
InferSocketMessageSchema,
TaskRunExecution,
TaskRunExecutionResult,
} from "@trigger.dev/core/v3";
import type { InferSocketMessageSchema } from "@trigger.dev/core/v3/zodSocket";
import { $transaction, PrismaClientOrTransaction } from "~/db.server";
import { logger } from "~/services/logger.server";
import { marqs } from "~/v3/marqs/index.server";
+4 -5
View File
@@ -1,11 +1,10 @@
import { clientWebsocketMessages, serverWebsocketMessages } from "@trigger.dev/core/v3";
import {
MessageCatalogToSocketIoEvents,
StructuredLogger,
ZodMessageHandler,
ZodMessageSender,
clientWebsocketMessages,
serverWebsocketMessages,
} from "@trigger.dev/core/v3";
MessageCatalogToSocketIoEvents,
} from "@trigger.dev/core/v3/zodMessageHandler";
import type { StructuredLogger } from "@trigger.dev/core/v3/utils/structuredLogger";
import { Evt } from "evt";
import { randomUUID } from "node:crypto";
import { logger } from "~/services/logger.server";
+1 -1
View File
@@ -1,5 +1,5 @@
import { Logger } from "@trigger.dev/core-backend";
import { ZodMessageCatalogSchema, ZodMessageHandler, ZodMessageSender } from "@trigger.dev/core/v3";
import { ZodMessageCatalogSchema, ZodMessageHandler } from "@trigger.dev/core/v3/zodMessageHandler";
import { Evt } from "evt";
import Redis, { RedisOptions } from "ioredis";
import { z } from "zod";
+1 -1
View File
@@ -150,7 +150,7 @@
"simple-oauth2": "^5.0.0",
"simplur": "^3.0.1",
"slug": "^6.0.0",
"socket.io": "^4.7.4",
"socket.io": "4.7.4",
"socket.io-adapter": "^2.5.4",
"sonner": "^1.0.3",
"sqs-consumer": "^7.4.0",
+1 -1
View File
@@ -6,4 +6,4 @@
"publishConfig": {
"access": "public"
}
}
}
+25
View File
@@ -1,5 +1,30 @@
# @trigger.dev/airtable
## 3.0.0-beta.20
### Patch Changes
- @trigger.dev/integration-kit@3.0.0-beta.20
- @trigger.dev/sdk@3.0.0-beta.20
## 3.0.0-beta.19
### Patch Changes
- Updated dependencies [e9a63a486]
- @trigger.dev/sdk@3.0.0-beta.19
- @trigger.dev/integration-kit@3.0.0-beta.19
## 3.0.0-beta.18
### Patch Changes
- Updated dependencies [b68012f81]
- Updated dependencies [b68012f81]
- Updated dependencies [b68012f81]
- @trigger.dev/sdk@3.0.0-beta.18
- @trigger.dev/integration-kit@3.0.0-beta.18
## 3.0.0-beta.17
### Patch Changes
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/airtable",
"version": "3.0.0-beta.17",
"version": "3.0.0-beta.20",
"description": "Trigger.dev integration for airtable",
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
@@ -25,8 +25,8 @@
"typecheck": "tsc --noEmit"
},
"dependencies": {
"@trigger.dev/integration-kit": "workspace:^3.0.0-beta.17",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.17",
"@trigger.dev/integration-kit": "workspace:^3.0.0-beta.20",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.20",
"airtable": "^0.12.1",
"zod": "3.22.3"
},
+25
View File
@@ -1,5 +1,30 @@
# @trigger.dev/github
## 3.0.0-beta.20
### Patch Changes
- @trigger.dev/integration-kit@3.0.0-beta.20
- @trigger.dev/sdk@3.0.0-beta.20
## 3.0.0-beta.19
### Patch Changes
- Updated dependencies [e9a63a486]
- @trigger.dev/sdk@3.0.0-beta.19
- @trigger.dev/integration-kit@3.0.0-beta.19
## 3.0.0-beta.18
### Patch Changes
- Updated dependencies [b68012f81]
- Updated dependencies [b68012f81]
- Updated dependencies [b68012f81]
- @trigger.dev/sdk@3.0.0-beta.18
- @trigger.dev/integration-kit@3.0.0-beta.18
## 3.0.0-beta.17
### Patch Changes
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/github",
"version": "3.0.0-beta.17",
"version": "3.0.0-beta.20",
"description": "The official GitHub integration for Trigger.dev",
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
@@ -30,8 +30,8 @@
"@octokit/request-error": "^5.0.1",
"@octokit/webhooks": "^12.0.10",
"octokit": "^3.1.2",
"@trigger.dev/integration-kit": "workspace:^3.0.0-beta.17",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.17",
"@trigger.dev/integration-kit": "workspace:^3.0.0-beta.20",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.20",
"zod": "3.22.3"
},
"engines": {
+25
View File
@@ -1,5 +1,30 @@
# @trigger.dev/linear
## 3.0.0-beta.20
### Patch Changes
- @trigger.dev/integration-kit@3.0.0-beta.20
- @trigger.dev/sdk@3.0.0-beta.20
## 3.0.0-beta.19
### Patch Changes
- Updated dependencies [e9a63a486]
- @trigger.dev/sdk@3.0.0-beta.19
- @trigger.dev/integration-kit@3.0.0-beta.19
## 3.0.0-beta.18
### Patch Changes
- Updated dependencies [b68012f81]
- Updated dependencies [b68012f81]
- Updated dependencies [b68012f81]
- @trigger.dev/sdk@3.0.0-beta.18
- @trigger.dev/integration-kit@3.0.0-beta.18
## 3.0.0-beta.17
### Patch Changes
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/linear",
"version": "3.0.0-beta.17",
"version": "3.0.0-beta.20",
"description": "Trigger.dev integration for @linear/sdk",
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
@@ -26,8 +26,8 @@
},
"dependencies": {
"@linear/sdk": "^8.0.0",
"@trigger.dev/integration-kit": "workspace:^3.0.0-beta.17",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.17",
"@trigger.dev/integration-kit": "workspace:^3.0.0-beta.20",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.20",
"zod": "3.22.3"
},
"engines": {
+25
View File
@@ -1,5 +1,30 @@
# @trigger.dev/slack
## 3.0.0-beta.20
### Patch Changes
- @trigger.dev/integration-kit@3.0.0-beta.20
- @trigger.dev/sdk@3.0.0-beta.20
## 3.0.0-beta.19
### Patch Changes
- Updated dependencies [e9a63a486]
- @trigger.dev/sdk@3.0.0-beta.19
- @trigger.dev/integration-kit@3.0.0-beta.19
## 3.0.0-beta.18
### Patch Changes
- Updated dependencies [b68012f81]
- Updated dependencies [b68012f81]
- Updated dependencies [b68012f81]
- @trigger.dev/sdk@3.0.0-beta.18
- @trigger.dev/integration-kit@3.0.0-beta.18
## 3.0.0-beta.17
### Patch Changes
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/openai",
"version": "3.0.0-beta.17",
"version": "3.0.0-beta.20",
"description": "The official OpenAI integration for Trigger.dev",
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
@@ -42,8 +42,8 @@
},
"dependencies": {
"openai": "^4.16.1",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.17",
"@trigger.dev/integration-kit": "workspace:^3.0.0-beta.17"
"@trigger.dev/sdk": "workspace:^3.0.0-beta.20",
"@trigger.dev/integration-kit": "workspace:^3.0.0-beta.20"
},
"engines": {
"node": ">=18.0.0"
+25
View File
@@ -1,5 +1,30 @@
# @trigger.dev/plain
## 3.0.0-beta.20
### Patch Changes
- @trigger.dev/integration-kit@3.0.0-beta.20
- @trigger.dev/sdk@3.0.0-beta.20
## 3.0.0-beta.19
### Patch Changes
- Updated dependencies [e9a63a486]
- @trigger.dev/sdk@3.0.0-beta.19
- @trigger.dev/integration-kit@3.0.0-beta.19
## 3.0.0-beta.18
### Patch Changes
- Updated dependencies [b68012f81]
- Updated dependencies [b68012f81]
- Updated dependencies [b68012f81]
- @trigger.dev/sdk@3.0.0-beta.18
- @trigger.dev/integration-kit@3.0.0-beta.18
## 3.0.0-beta.17
### Patch Changes
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/plain",
"version": "3.0.0-beta.17",
"version": "3.0.0-beta.20",
"description": "The official Plain.com integration for Trigger.dev",
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
@@ -24,8 +24,8 @@
"build:tsup": "tsup"
},
"dependencies": {
"@trigger.dev/integration-kit": "workspace:^3.0.0-beta.17",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.17",
"@trigger.dev/integration-kit": "workspace:^3.0.0-beta.20",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.20",
"@team-plain/typescript-sdk": "^2.7.0"
},
"engines": {
+25
View File
@@ -1,5 +1,30 @@
# @trigger.dev/replicate
## 3.0.0-beta.20
### Patch Changes
- @trigger.dev/integration-kit@3.0.0-beta.20
- @trigger.dev/sdk@3.0.0-beta.20
## 3.0.0-beta.19
### Patch Changes
- Updated dependencies [e9a63a486]
- @trigger.dev/sdk@3.0.0-beta.19
- @trigger.dev/integration-kit@3.0.0-beta.19
## 3.0.0-beta.18
### Patch Changes
- Updated dependencies [b68012f81]
- Updated dependencies [b68012f81]
- Updated dependencies [b68012f81]
- @trigger.dev/sdk@3.0.0-beta.18
- @trigger.dev/integration-kit@3.0.0-beta.18
## 3.0.0-beta.17
### Patch Changes
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/replicate",
"version": "3.0.0-beta.17",
"version": "3.0.0-beta.20",
"description": "Trigger.dev integration for replicate",
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
@@ -25,8 +25,8 @@
"typecheck": "tsc --noEmit"
},
"dependencies": {
"@trigger.dev/integration-kit": "workspace:^3.0.0-beta.17",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.17",
"@trigger.dev/integration-kit": "workspace:^3.0.0-beta.20",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.20",
"replicate": "^0.18.1",
"zod": "3.22.3"
},
+25
View File
@@ -1,5 +1,30 @@
# @trigger.dev/resend
## 3.0.0-beta.20
### Patch Changes
- @trigger.dev/integration-kit@3.0.0-beta.20
- @trigger.dev/sdk@3.0.0-beta.20
## 3.0.0-beta.19
### Patch Changes
- Updated dependencies [e9a63a486]
- @trigger.dev/sdk@3.0.0-beta.19
- @trigger.dev/integration-kit@3.0.0-beta.19
## 3.0.0-beta.18
### Patch Changes
- Updated dependencies [b68012f81]
- Updated dependencies [b68012f81]
- Updated dependencies [b68012f81]
- @trigger.dev/sdk@3.0.0-beta.18
- @trigger.dev/integration-kit@3.0.0-beta.18
## 3.0.0-beta.17
### Patch Changes
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/resend",
"version": "3.0.0-beta.17",
"version": "3.0.0-beta.20",
"description": "The official Resend.com integration for Trigger.dev",
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
@@ -24,8 +24,8 @@
"build:tsup": "tsup"
},
"dependencies": {
"@trigger.dev/integration-kit": "workspace:^3.0.0-beta.17",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.17",
"@trigger.dev/integration-kit": "workspace:^3.0.0-beta.20",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.20",
"resend": "^2.1.0"
},
"engines": {
+25
View File
@@ -1,5 +1,30 @@
# @trigger.dev/sendgrid
## 3.0.0-beta.20
### Patch Changes
- @trigger.dev/integration-kit@3.0.0-beta.20
- @trigger.dev/sdk@3.0.0-beta.20
## 3.0.0-beta.19
### Patch Changes
- Updated dependencies [e9a63a486]
- @trigger.dev/sdk@3.0.0-beta.19
- @trigger.dev/integration-kit@3.0.0-beta.19
## 3.0.0-beta.18
### Patch Changes
- Updated dependencies [b68012f81]
- Updated dependencies [b68012f81]
- Updated dependencies [b68012f81]
- @trigger.dev/sdk@3.0.0-beta.18
- @trigger.dev/integration-kit@3.0.0-beta.18
## 3.0.0-beta.17
### Patch Changes
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/sendgrid",
"version": "3.0.0-beta.17",
"version": "3.0.0-beta.20",
"description": "Trigger.dev integration for @sendgrid/mail",
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
@@ -26,8 +26,8 @@
},
"dependencies": {
"@sendgrid/mail": "^7.7.0",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.17",
"@trigger.dev/integration-kit": "workspace:^3.0.0-beta.17"
"@trigger.dev/sdk": "workspace:^3.0.0-beta.20",
"@trigger.dev/integration-kit": "workspace:^3.0.0-beta.20"
},
"engines": {
"node": ">=16.8.0"
+25
View File
@@ -1,5 +1,30 @@
# @trigger.dev/shopify
## 3.0.0-beta.20
### Patch Changes
- @trigger.dev/integration-kit@3.0.0-beta.20
- @trigger.dev/sdk@3.0.0-beta.20
## 3.0.0-beta.19
### Patch Changes
- Updated dependencies [e9a63a486]
- @trigger.dev/sdk@3.0.0-beta.19
- @trigger.dev/integration-kit@3.0.0-beta.19
## 3.0.0-beta.18
### Patch Changes
- Updated dependencies [b68012f81]
- Updated dependencies [b68012f81]
- Updated dependencies [b68012f81]
- @trigger.dev/sdk@3.0.0-beta.18
- @trigger.dev/integration-kit@3.0.0-beta.18
## 3.0.0-beta.17
### Patch Changes
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/shopify",
"version": "3.0.0-beta.17",
"version": "3.0.0-beta.20",
"description": "Trigger.dev integration for @shopify/shopify-api",
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
@@ -26,8 +26,8 @@
},
"dependencies": {
"@shopify/shopify-api": "^8.0.2",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.17",
"@trigger.dev/integration-kit": "workspace:^3.0.0-beta.17",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.20",
"@trigger.dev/integration-kit": "workspace:^3.0.0-beta.20",
"zod": "3.22.3"
},
"engines": {
+22
View File
@@ -1,5 +1,27 @@
# @trigger.dev/slack
## 3.0.0-beta.20
### Patch Changes
- @trigger.dev/sdk@3.0.0-beta.20
## 3.0.0-beta.19
### Patch Changes
- Updated dependencies [e9a63a486]
- @trigger.dev/sdk@3.0.0-beta.19
## 3.0.0-beta.18
### Patch Changes
- Updated dependencies [b68012f81]
- Updated dependencies [b68012f81]
- Updated dependencies [b68012f81]
- @trigger.dev/sdk@3.0.0-beta.18
## 3.0.0-beta.17
### Patch Changes
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/slack",
"version": "3.0.0-beta.17",
"version": "3.0.0-beta.20",
"description": "The official Slack integration for Trigger.dev",
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
@@ -25,7 +25,7 @@
},
"dependencies": {
"@slack/web-api": "^6.8.1",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.17",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.20",
"zod": "3.22.3"
},
"engines": {
+25
View File
@@ -1,5 +1,30 @@
# @trigger.dev/stripe
## 3.0.0-beta.20
### Patch Changes
- @trigger.dev/integration-kit@3.0.0-beta.20
- @trigger.dev/sdk@3.0.0-beta.20
## 3.0.0-beta.19
### Patch Changes
- Updated dependencies [e9a63a486]
- @trigger.dev/sdk@3.0.0-beta.19
- @trigger.dev/integration-kit@3.0.0-beta.19
## 3.0.0-beta.18
### Patch Changes
- Updated dependencies [b68012f81]
- Updated dependencies [b68012f81]
- Updated dependencies [b68012f81]
- @trigger.dev/sdk@3.0.0-beta.18
- @trigger.dev/integration-kit@3.0.0-beta.18
## 3.0.0-beta.17
### Patch Changes
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/stripe",
"version": "3.0.0-beta.17",
"version": "3.0.0-beta.20",
"description": "Trigger.dev integration for stripe",
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
@@ -25,8 +25,8 @@
"typecheck": "tsc --noEmit"
},
"dependencies": {
"@trigger.dev/integration-kit": "workspace:^3.0.0-beta.17",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.17",
"@trigger.dev/integration-kit": "workspace:^3.0.0-beta.20",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.20",
"stripe": "^12.14.0",
"zod": "3.22.3"
},
+25
View File
@@ -1,5 +1,30 @@
# @trigger.dev/supabase
## 3.0.0-beta.20
### Patch Changes
- @trigger.dev/integration-kit@3.0.0-beta.20
- @trigger.dev/sdk@3.0.0-beta.20
## 3.0.0-beta.19
### Patch Changes
- Updated dependencies [e9a63a486]
- @trigger.dev/sdk@3.0.0-beta.19
- @trigger.dev/integration-kit@3.0.0-beta.19
## 3.0.0-beta.18
### Patch Changes
- Updated dependencies [b68012f81]
- Updated dependencies [b68012f81]
- Updated dependencies [b68012f81]
- @trigger.dev/sdk@3.0.0-beta.18
- @trigger.dev/integration-kit@3.0.0-beta.18
## 3.0.0-beta.17
### Patch Changes
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/supabase",
"version": "3.0.0-beta.17",
"version": "3.0.0-beta.20",
"description": "Trigger.dev integration for @supabase/supabase-js",
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
@@ -26,8 +26,8 @@
},
"dependencies": {
"@supabase/supabase-js": "^2.26.0",
"@trigger.dev/integration-kit": "workspace:^3.0.0-beta.17",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.17",
"@trigger.dev/integration-kit": "workspace:^3.0.0-beta.20",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.20",
"supabase-management-js": "^1.0.0",
"zod": "3.22.3"
},
+25
View File
@@ -1,5 +1,30 @@
# @trigger.dev/typeform
## 3.0.0-beta.20
### Patch Changes
- @trigger.dev/integration-kit@3.0.0-beta.20
- @trigger.dev/sdk@3.0.0-beta.20
## 3.0.0-beta.19
### Patch Changes
- Updated dependencies [e9a63a486]
- @trigger.dev/sdk@3.0.0-beta.19
- @trigger.dev/integration-kit@3.0.0-beta.19
## 3.0.0-beta.18
### Patch Changes
- Updated dependencies [b68012f81]
- Updated dependencies [b68012f81]
- Updated dependencies [b68012f81]
- @trigger.dev/sdk@3.0.0-beta.18
- @trigger.dev/integration-kit@3.0.0-beta.18
## 3.0.0-beta.17
### Patch Changes
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/typeform",
"version": "3.0.0-beta.17",
"version": "3.0.0-beta.20",
"description": "The official Typeform integration for Trigger.dev",
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
@@ -24,8 +24,8 @@
"typecheck": "tsc --noEmit"
},
"dependencies": {
"@trigger.dev/integration-kit": "workspace:^3.0.0-beta.17",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.17",
"@trigger.dev/integration-kit": "workspace:^3.0.0-beta.20",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.20",
"@typeform/api-client": "^1.8.0",
"zod": "3.22.3"
},
+2 -1
View File
@@ -68,7 +68,8 @@
"pnpm": {
"patchedDependencies": {
"@changesets/assemble-release-plan@5.2.4": "patches/@changesets__assemble-release-plan@5.2.4.patch",
"tsup@8.0.1": "patches/tsup@8.0.1.patch"
"tsup@8.0.1": "patches/tsup@8.0.1.patch",
"engine.io-parser@5.2.2": "patches/engine.io-parser@5.2.2.patch"
}
}
}
+22
View File
@@ -1,5 +1,27 @@
# @trigger.dev/astro
## 3.0.0-beta.20
### Patch Changes
- @trigger.dev/sdk@3.0.0-beta.20
## 3.0.0-beta.19
### Patch Changes
- Updated dependencies [e9a63a486]
- @trigger.dev/sdk@3.0.0-beta.19
## 3.0.0-beta.18
### Patch Changes
- Updated dependencies [b68012f81]
- Updated dependencies [b68012f81]
- Updated dependencies [b68012f81]
- @trigger.dev/sdk@3.0.0-beta.18
## 3.0.0-beta.17
### Patch Changes
+2 -2
View File
@@ -1,7 +1,7 @@
{
"name": "@trigger.dev/astro",
"description": "An Astro-native integration for Trigger.dev background jobs platform",
"version": "3.0.0-beta.17",
"version": "3.0.0-beta.20",
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
"files": [
@@ -20,7 +20,7 @@
"build:tsup": "tsup"
},
"peerDependencies": {
"@trigger.dev/sdk": "workspace:^3.0.0-beta.17"
"@trigger.dev/sdk": "workspace:^3.0.0-beta.20"
},
"devDependencies": {
"astro": "^3.0.12",
+30
View File
@@ -1,5 +1,35 @@
# trigger.dev
## 3.0.0-beta.20
### Patch Changes
- de1cc868e: Fix dev CLI output when not printing update messages
- Updated dependencies [e3db25739]
- @trigger.dev/core@3.0.0-beta.20
## 3.0.0-beta.19
### Patch Changes
- e9a63a486: Lock SDK and CLI deps on exact core version
- @trigger.dev/core@3.0.0-beta.19
## 3.0.0-beta.18
### Patch Changes
- b68012f81: Remove the env var check during deploy (too many false negatives)
- b68012f81: Fixes an issue that was treating v2 trigger directories as v3
- 74d1e61e4: Fix a bug where revoking the CLI token would prevent you from ever logging in again with the CLI.
- 52b2a8289: Add git to prod worker image which fixes private package installs
- b68012f81: Move to our global system from AsyncLocalStorage for the current task context storage
- b68012f81: Extracting out all the non-SDK related features from the main @trigger.dev/core/v3 export
- b68012f81: Add support for tasks located in subdirectories inside trigger dirs
- Updated dependencies [b68012f81]
- Updated dependencies [b68012f81]
- @trigger.dev/core@3.0.0-beta.18
## 3.0.0-beta.17
### Patch Changes
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "trigger.dev",
"version": "3.0.0-beta.17",
"version": "3.0.0-beta.20",
"description": "A Command-Line Interface for Trigger.dev (v3) projects",
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
@@ -85,7 +85,7 @@
"@opentelemetry/sdk-trace-base": "^1.22.0",
"@opentelemetry/sdk-trace-node": "^1.22.0",
"@opentelemetry/semantic-conventions": "^1.22.0",
"@trigger.dev/core": "workspace:^3.0.0-beta.17",
"@trigger.dev/core": "workspace:3.0.0-beta.20",
"@types/degit": "^2.8.3",
"chalk": "^5.2.0",
"chokidar": "^3.5.3",
+1
View File
@@ -5,6 +5,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
busybox \
ca-certificates \
dumb-init \
git \
openssl \
&& rm -rf /var/lib/apt/lists/*
+2 -1
View File
@@ -1,4 +1,5 @@
import { flattenAttributes, recordSpanException } from "@trigger.dev/core/v3";
import { flattenAttributes } from "@trigger.dev/core/v3";
import { recordSpanException } from "@trigger.dev/core/v3/workers";
import { Command } from "commander";
import { z } from "zod";
import { getTracer, provider } from "../telemetry/tracing";
+8 -129
View File
@@ -6,8 +6,8 @@ import {
TaskMetadataFailedToParseData,
detectDependencyVersion,
flattenAttributes,
recordSpanException,
} from "@trigger.dev/core/v3";
import { recordSpanException } from "@trigger.dev/core/v3/workers";
import chalk from "chalk";
import { Command, Option as CommandOption } from "commander";
import { Metafile, build } from "esbuild";
@@ -63,7 +63,6 @@ import { docs, getInTouch } from "../utilities/links";
const DeployCommandOptions = CommonCommandOptions.extend({
skipTypecheck: z.boolean().default(false),
skipDeploy: z.boolean().default(false),
ignoreEnvVarCheck: z.boolean().default(false),
env: z.enum(["prod", "staging"]),
loadImage: z.boolean().default(false),
buildPlatform: z.enum(["linux/amd64", "linux/arm64"]).default("linux/amd64"),
@@ -93,10 +92,6 @@ export function configureDeployCommand(program: Command) {
)
.option("--skip-typecheck", "Whether to skip the pre-build typecheck")
.option("--skip-update-check", "Skip checking for @trigger.dev package updates")
.option(
"--ignore-env-var-check",
"Detected missing environment variables won't block deployment"
)
.option("-c, --config <config file>", "The name of the config file, found at [path]")
.option(
"-p, --project-ref <project ref>",
@@ -127,6 +122,12 @@ export function configureDeployCommand(program: Command) {
"(Coming soon) Specify the tag to use when pushing the image to the registry"
).hideHelp()
)
.addOption(
new CommandOption(
"--ignore-env-var-check",
"(deprecated) Detected missing environment variables won't block deployment"
).hideHelp()
)
.addOption(new CommandOption("-D, --skip-deploy", "Skip deploying the image").hideHelp())
.addOption(
new CommandOption("--load-image", "Load the built image into your local docker").hideHelp()
@@ -239,16 +240,6 @@ async function _deployCommand(dir: string, options: DeployCommandOptions) {
logger.debug("Compilation result", { compilation });
if (compilation.envVars.length > 0) {
await checkEnvVars(
compilation.envVars ?? [],
resolvedConfig.config,
options,
environmentClient,
authorization.dashboardUrl
);
}
// Step 2: Initialize a deployment on the server (response will have everything we need to build an image)
const deploymentResponse = await environmentClient.initializeDeployment({
contentHash: compilation.contentHash,
@@ -680,73 +671,6 @@ async function failDeploy(
// TODO: Let platform know so it can fail the deploy with an appropriate error
}
async function checkEnvVars(
envVars: string[],
config: ResolvedConfig,
options: DeployCommandOptions,
environmentClient: CliApiClient,
apiUrl: string
) {
return await tracer.startActiveSpan("detectEnvVars", async (span) => {
try {
span.setAttribute("envVars.check", envVars);
const environmentVariablesSpinner = spinner();
environmentVariablesSpinner.start("Checking environment variables");
const environmentVariables = await environmentClient.getEnvironmentVariables(config.project);
if (!environmentVariables.success) {
environmentVariablesSpinner.stop(`Failed to fetch environment variables, skipping check`);
} else {
// Check to see if all the environment variables in the compilation exist
const missingEnvironmentVariables = envVars.filter(
(envVar) => environmentVariables.data.variables[envVar] === undefined
);
if (missingEnvironmentVariables.length > 0) {
environmentVariablesSpinner.stop(
`Found missing env vars in ${options.env}: ${arrayToSentence(
missingEnvironmentVariables
)}. ${
options.ignoreEnvVarCheck
? "Continuing deployment because of --ignore-env-var-check. "
: "Aborting deployment. "
}${chalk.bgBlueBright(
terminalLink(
"Manage env vars",
`${apiUrl}/projects/v3/${config.project}/environment-variables`
)
)}`
);
span.setAttributes({
"envVars.missing": missingEnvironmentVariables,
});
if (!options.ignoreEnvVarCheck) {
throw new SkipLoggingError("Found missing environment variables");
} else {
span.end();
return;
}
}
environmentVariablesSpinner.stop(`Environment variable check passed`);
}
span.end();
} catch (e) {
recordSpanException(span, e);
span.end();
throw e;
}
});
}
// Poll every 1 second for the deployment to finish
async function waitForDeploymentToFinish(
deploymentId: string,
@@ -1396,25 +1320,13 @@ async function compileProject(
const contentHash = contentHasher.digest("hex");
const workerSetupEnvVars = await findAllEnvironmentVariableReferencesInFile(workerSetupPath);
const workerFacadeEnvVars = findAllEnvironmentVariableReferences(workerContents);
const envVars = findAllEnvironmentVariableReferences(workerOutputFile.text);
// Remove workerFacadeEnvVars and workerSetupEnvVars from envVars
const finalEnvVars = envVars.filter(
(envVar) => !workerFacadeEnvVars.includes(envVar) && !workerSetupEnvVars.includes(envVar)
);
span.setAttributes({
contentHash: contentHash,
envVars: finalEnvVars,
});
span.end();
return { path: tempDir, contentHash, envVars: finalEnvVars };
return { path: tempDir, contentHash };
} catch (e) {
recordSpanException(span, e);
@@ -1808,36 +1720,3 @@ async function ensureLoggedIntoDockerRegistry(
return tmpDir;
}
async function findAllEnvironmentVariableReferencesInFile(filePath: string) {
const fileContents = await readFile(filePath, "utf-8");
return findAllEnvironmentVariableReferences(fileContents);
}
const IGNORED_ENV_VARS = ["NODE_ENV", "SHELL", "HOME", "PWD", "LOGNAME", "USER", "PATH", "DEBUG"];
function findAllEnvironmentVariableReferences(code: string): string[] {
const regex = /\bprocess\.env\.([a-zA-Z_][a-zA-Z0-9_]*)\b/g;
const matches = code.matchAll(regex);
const matchesArray = Array.from(matches, (match) => match[1]).filter(Boolean) as string[];
const filteredMatches = matchesArray.filter((match) => !IGNORED_ENV_VARS.includes(match));
// Make sure and remove duplicates
return Array.from(new Set(filteredMatches));
}
function arrayToSentence(items: string[]): string {
if (items.length === 1 && typeof items[0] === "string") {
return items[0];
}
if (items.length === 2) {
return `${items[0]} and ${items[1]}`;
}
return `${items.slice(0, -1).join(", ")}, and ${items[items.length - 1]}`;
}
+19 -12
View File
@@ -2,12 +2,11 @@ import {
CreateBackgroundWorkerRequestBody,
ResolvedConfig,
TaskResource,
ZodMessageHandler,
ZodMessageSender,
clientWebsocketMessages,
detectDependencyVersion,
serverWebsocketMessages,
} from "@trigger.dev/core/v3";
import { ZodMessageHandler, ZodMessageSender } from "@trigger.dev/core/v3/zodMessageHandler";
import { watch } from "chokidar";
import { Command } from "commander";
import { BuildContext, Metafile, context } from "esbuild";
@@ -136,12 +135,13 @@ async function startDev(
await printStandloneInitialBanner(true);
let displayedUpdateMessage = false;
if (!options.skipUpdateCheck) {
console.log(); // spacing
await updateTriggerPackages(dir, { ...options }, false, true);
displayedUpdateMessage = await updateTriggerPackages(dir, { ...options }, true, true);
}
printDevBanner(!options.skipUpdateCheck);
printDevBanner(displayedUpdateMessage);
logger.debug("Starting dev session", { dir, options, authorization });
@@ -425,10 +425,6 @@ function useDev({
const metaOutputKey = join("out", `stdin.js`).replace(/\\/g, "/");
logger.debug("Metafile", {
metafileOutputs: JSON.stringify(result.metafile?.outputs),
});
const metaOutput = result.metafile!.outputs[metaOutputKey];
if (!metaOutput) {
@@ -509,8 +505,15 @@ function useDev({
const taskResources: Array<TaskResource> = [];
if (!backgroundWorker.tasks) {
throw new Error(`Background Worker started without tasks`);
if (!backgroundWorker.tasks || backgroundWorker.tasks.length === 0) {
logger.log(
`${chalkError(
"X Error:"
)} Worker failed to build: no tasks found. Searched in ${config.triggerDirectories.join(
", "
)}`
);
return;
}
for (const task of backgroundWorker.tasks) {
@@ -536,6 +539,10 @@ function useDev({
return;
}
logger.debug("Creating background worker with tasks", {
tasks: taskResources,
});
const backgroundWorkerBody: CreateBackgroundWorkerRequestBody = {
localOnly: true,
metadata: {
@@ -638,7 +645,7 @@ function useDev({
const throttledRebuild = pDebounce(runBuild, 250, { before: true });
const taskFileWatcher = watch(
config.triggerDirectories.map((triggerDir) => `${triggerDir}/*.ts`),
config.triggerDirectories.map((triggerDir) => `${triggerDir}/**/*.ts`),
{
ignoreInitial: true,
}
+2 -5
View File
@@ -1,10 +1,7 @@
import { intro, isCancel, log, outro, select, text } from "@clack/prompts";
import { context, trace } from "@opentelemetry/api";
import {
GetProjectResponseBody,
flattenAttributes,
recordSpanException,
} from "@trigger.dev/core/v3";
import { GetProjectResponseBody, flattenAttributes } from "@trigger.dev/core/v3";
import { recordSpanException } from "@trigger.dev/core/v3/workers";
import chalk from "chalk";
import { Command } from "commander";
import { execa } from "execa";
+16 -4
View File
@@ -1,5 +1,5 @@
import { intro, log, outro, select } from "@clack/prompts";
import { recordSpanException } from "@trigger.dev/core/v3";
import { recordSpanException } from "@trigger.dev/core/v3/workers";
import { Command } from "commander";
import open from "open";
import pRetry, { AbortError } from "p-retry";
@@ -13,7 +13,7 @@ import {
tracer,
wrapCommandAction,
} from "../cli/common.js";
import { chalkLink } from "../utilities/cliOutput.js";
import { chalkLink, prettyError } from "../utilities/cliOutput.js";
import { readAuthConfigProfile, writeAuthConfigProfile } from "../utilities/configFiles.js";
import { getVersion } from "../utilities/getVersion.js";
import { printInitialBanner } from "../utilities/initialBanner.js";
@@ -109,11 +109,23 @@ export async function login(options?: LoginOptions): Promise<LoginResult> {
skipTelemetry: !span.isRecording(),
logLevel: logger.loggerLevel,
},
opts.embedded
true
);
if (!whoAmIResult.success) {
throw new Error(whoAmIResult.error);
prettyError("Unable to validate existing personal access token", whoAmIResult.error);
if (!opts.embedded) {
outro(
`Login failed using stored token. To fix, first logout using \`trigger.dev logout${
options?.profile ? ` --profile ${options.profile}` : ""
}\` and then try again.`
);
throw new SkipLoggingError(whoAmIResult.error);
} else {
throw new Error(whoAmIResult.error);
}
} else {
if (!opts.embedded) {
const continueOption = await select({
+20 -13
View File
@@ -50,7 +50,9 @@ export async function updateTriggerPackages(
options: UpdateCommandOptions,
embedded?: boolean,
requireUpdate?: boolean
) {
): Promise<boolean> {
let hasOutput = false;
if (!embedded) {
intro("Updating packages");
}
@@ -61,7 +63,7 @@ export async function updateTriggerPackages(
if (!packageJson) {
log.error("Failed to load package.json. Try to re-run with `-l debug` to see what's going on.");
return;
return false;
}
const cliVersion = getVersion();
@@ -73,6 +75,8 @@ export async function updateTriggerPackages(
`Current: ${cliVersion}\nLatest: ${newCliVersion}`,
"Run latest: npx trigger.dev@beta"
);
hasOutput = true;
}
const triggerDependencies = getTriggerDependencies(packageJson);
@@ -96,8 +100,9 @@ export async function updateTriggerPackages(
if (versionMismatches.length === 0) {
if (!embedded) {
outro(`Nothing to do${newCliVersion ? " ..but you should really update your CLI!" : ""}`);
return hasOutput;
}
return;
return hasOutput;
}
prettyWarning(
@@ -111,15 +116,15 @@ export async function updateTriggerPackages(
console.log(
`ERROR: Version mismatch detected while running in CI. This won't end well. Aborting.
Please run the dev command locally and check that your CLI version matches the one printed below. Additionally, all \`@trigger.dev/*\` packages also need to match this version.
If your local CLI version doesn't match the one below, you may want to add the \`trigger.dev\` package to your dependencies. You will also have to update your workflow deploy command to \`npx trigger.dev deploy\` to ensure your pinned CLI version is used.
CLI version: ${cliVersion}
Current package versions that don't match the CLI:
${versionMismatches.map((dep) => `- ${dep.name}@${dep.version}`).join("\n")}\n`
Please run the dev command locally and check that your CLI version matches the one printed below. Additionally, all \`@trigger.dev/*\` packages also need to match this version.
If your local CLI version doesn't match the one below, you may want to pin the CLI version in this CI step. To do that, just replace \`trigger.dev@beta\` with \`trigger.dev@<FULL_VERSION>\`, for example: \`npx trigger.dev@3.0.0-beta.17 deploy\`
CLI version: ${cliVersion}
Current package versions that don't match the CLI:
${versionMismatches.map((dep) => `- ${dep.name}@${dep.version}`).join("\n")}\n`
);
process.exit(1);
}
@@ -149,7 +154,7 @@ ${versionMismatches.map((dep) => `- ${dep.name}@${dep.version}`).join("\n")}\n`
outro("You've been warned!");
}
return;
return hasOutput;
}
const installSpinner = spinner();
@@ -213,6 +218,8 @@ ${versionMismatches.map((dep) => `- ${dep.name}@${dep.version}`).join("\n")}\n`
`Packages updated${newCliVersion ? " ..but you should really update your CLI too!" : ""}`
);
}
return hasOutput;
}
type Dependency = {
+15 -6
View File
@@ -1,4 +1,4 @@
import { intro, note } from "@clack/prompts";
import { intro, note, outro } from "@clack/prompts";
import { chalkLink } from "../utilities/cliOutput.js";
import { logger } from "../utilities/logger.js";
import { isLoggedIn } from "../utilities/session.js";
@@ -66,11 +66,20 @@ export async function whoAmI(
if (authentication.error === "fetch failed") {
loadingSpinner.stop("Fetch failed. Platform down?");
} else {
loadingSpinner.stop(
`You must login first. Use \`trigger.dev login --profile ${
options?.profile ?? "default"
}\` to login.`
);
if (embedded) {
loadingSpinner.stop(
`Failed to check account details. You may want to run \`trigger.dev logout --profile ${
options?.profile ?? "default"
}\` and try again.`
);
} else {
loadingSpinner.stop(
`You must login first. Use \`trigger.dev login --profile ${
options?.profile ?? "default"
}\` to login.`
);
outro("Whoami failed");
}
}
return {
+9 -4
View File
@@ -5,6 +5,10 @@ import { NodeTracerProvider, SimpleSpanProcessor } from "@opentelemetry/sdk-trac
import { FetchInstrumentation } from "@opentelemetry/instrumentation-fetch";
import { DiagConsoleLogger, DiagLogLevel, diag, trace } from "@opentelemetry/api";
import * as packageJson from "../../package.json";
import {
SEMRESATTRS_SERVICE_NAME,
SEMRESATTRS_SERVICE_VERSION,
} from "@opentelemetry/semantic-conventions";
function initializeTracing(): NodeTracerProvider | undefined {
if (process.argv.includes("--skip-telemetry") || process.env.TRIGGER_DEV_SKIP_TELEMETRY) {
@@ -19,7 +23,8 @@ function initializeTracing(): NodeTracerProvider | undefined {
detectors: [processDetectorSync],
}).merge(
new Resource({
service: "trigger.dev cli v3",
[SEMRESATTRS_SERVICE_NAME]: "trigger.dev cli v3",
[SEMRESATTRS_SERVICE_VERSION]: packageJson.version,
})
);
@@ -38,9 +43,9 @@ function initializeTracing(): NodeTracerProvider | undefined {
const spanExporter = new OTLPTraceExporter({
url: "https://otel.baselime.io/v1",
timeoutMillis: 500,
timeoutMillis: 5000,
headers: {
"x-api-key": "e9f963244f8b092850d42e34a5339b2d5e68070b".split("").reverse().join(""), // this is a joke
"x-api-key": "b6e0fbbaf8dc2524773d2152ae2e9eb5c7fbaa52",
},
});
@@ -59,5 +64,5 @@ function initializeTracing(): NodeTracerProvider | undefined {
export const provider = initializeTracing();
export function getTracer() {
return trace.getTracer("trigger.dev cli", packageJson.version);
return trace.getTracer("trigger.dev cli v3", packageJson.version);
}
+7 -10
View File
@@ -11,7 +11,7 @@ export function bundleTriggerDevCore(buildIdentifier: string, tsconfigPath?: str
name: "trigger-bundle-core",
setup(build) {
build.onResolve({ filter: /.*/ }, (args) => {
if (args.path !== "@trigger.dev/core/v3") {
if (!args.path.startsWith("@trigger.dev/core/v3")) {
return undefined;
}
@@ -22,18 +22,15 @@ export function bundleTriggerDevCore(buildIdentifier: string, tsconfigPath?: str
triggerSdkPath,
});
const resolvedPath = require.resolve("@trigger.dev/core/v3", {
const resolvedPath = require.resolve(args.path, {
paths: [triggerSdkPath],
});
logger.debug(
`[${buildIdentifier}][trigger-bundle-core] Externalizing @trigger.dev/core/v3`,
{
...args,
triggerSdkPath,
resolvedPath,
}
);
logger.debug(`[${buildIdentifier}][trigger-bundle-core] Externalizing ${args.path}`, {
...args,
triggerSdkPath,
resolvedPath,
});
return {
path: resolvedPath,
@@ -65,6 +65,29 @@ export function prettyPrintDate(date: Date = new Date()) {
return formattedDate;
}
export function prettyError(header: string, body?: string, footer?: string) {
const prefix = "Error: ";
const indent = Array(prefix.length).fill(" ").join("");
const spacing = "\n\n";
const prettyPrefix = chalkError(prefix);
const withIndents = (text?: string) =>
text
?.split("\n")
.map((line) => `${indent}${line}`)
.join("\n");
const prettyBody = withIndents(body);
const prettyFooter = withIndents(footer);
log.error(
`${prettyPrefix}${header}${prettyBody ? `${spacing}${prettyBody}` : ""}${
prettyFooter ? `${spacing}${prettyFooter}` : ""
}`
);
}
export function prettyWarning(header: string, body?: string, footer?: string) {
const prefix = "Warning: ";
const indent = Array(prefix.length).fill(" ").join("");
+15 -1
View File
@@ -99,6 +99,18 @@ async function getConfigPath(dir: string, fileName?: string): Promise<string | u
return await findUp(fileName ? [fileName] : CONFIG_FILES, { cwd: dir });
}
async function findFilePath(dir: string, fileName: string): Promise<string | undefined> {
const result = await findUp([fileName], { cwd: dir });
logger.debug("Searched for the file", {
dir,
fileName,
result,
});
return result;
}
export type ReadConfigOptions = {
projectRef?: string;
configFile?: string;
@@ -187,6 +199,8 @@ export async function resolveConfig(path: string, config: Config): Promise<Resol
config.triggerDirectories = resolveTriggerDirectories(config.triggerDirectories);
logger.debug("Resolved trigger directories", { triggerDirectories: config.triggerDirectories });
if (!config.triggerUrl) {
config.triggerUrl = CLOUD_API_URL;
}
@@ -196,7 +210,7 @@ export async function resolveConfig(path: string, config: Config): Promise<Resol
}
if (!config.tsconfigPath) {
config.tsconfigPath = await getConfigPath(path, "tsconfig.json");
config.tsconfigPath = await findFilePath(path, "tsconfig.json");
}
return config as ResolvedConfig;
@@ -40,15 +40,17 @@ After installation, run Trigger.dev with \`npx trigger.dev\`.`
export async function printStandloneInitialBanner(performUpdateCheck = true) {
const cliVersion = getVersion();
logger.log(`\n${logo()} ${chalkGrey(`(${cliVersion})`)}\n`);
if (performUpdateCheck) {
const maybeNewVersion = await updateCheck();
// Log a slightly more noticeable message if this is a major bump
if (maybeNewVersion !== undefined) {
logger.log(`Update available ${chalk.green(maybeNewVersion)}`);
logger.log(`\n${logo()} ${chalkGrey(`(${cliVersion} -> ${chalk.green(maybeNewVersion)})`)}`);
} else {
logger.log(`\n${logo()} ${chalkGrey(`(${cliVersion})`)}`);
}
} else {
logger.log(`\n${logo()} ${chalkGrey(`(${cliVersion})`)}`);
}
logger.log(`${chalkGrey("-".repeat(54))}`);
+17 -17
View File
@@ -1,4 +1,4 @@
import { recordSpanException } from "@trigger.dev/core/v3";
import { recordSpanException } from "@trigger.dev/core/v3/workers";
import { CliApiClient } from "../apiClient.js";
import { readAuthConfigProfile } from "./configFiles.js";
import { getTracer } from "../telemetry/tracing.js";
@@ -7,24 +7,24 @@ const tracer = getTracer();
export type LoginResult =
| {
ok: true;
profile: string,
userId: string;
email: string;
dashboardUrl: string;
auth: {
apiUrl: string;
accessToken: string;
};
}
ok: true;
profile: string;
userId: string;
email: string;
dashboardUrl: string;
auth: {
apiUrl: string;
accessToken: string;
};
}
| {
ok: false;
error: string;
auth?: {
apiUrl: string;
accessToken: string;
ok: false;
error: string;
auth?: {
apiUrl: string;
accessToken: string;
};
};
};
export async function isLoggedIn(profile: string = "default"): Promise<LoginResult> {
return await tracer.startActiveSpan("isLoggedIn", async (span) => {
+29 -5
View File
@@ -21,9 +21,27 @@ export async function gatherTaskFiles(config: ResolvedConfig): Promise<Array<Tas
const taskFiles: Array<TaskFile> = [];
for (const triggerDir of config.triggerDirectories) {
const files = await fs.promises.readdir(triggerDir, { withFileTypes: true });
for (const file of files) {
if (!file.isFile()) continue;
const files = await gatherTaskFilesFromDir(triggerDir, triggerDir, config);
taskFiles.push(...files);
}
return taskFiles;
}
async function gatherTaskFilesFromDir(
dirPath: string,
triggerDir: string,
config: ResolvedConfig
): Promise<TaskFile[]> {
const taskFiles: TaskFile[] = [];
const files = await fs.promises.readdir(dirPath, { withFileTypes: true });
for (const file of files) {
if (!file.isFile()) {
// Recurse into subdirectories
const fullPath = join(dirPath, file.name);
taskFiles.push(...(await gatherTaskFilesFromDir(fullPath, triggerDir, config)));
} else {
if (
!file.name.endsWith(".js") &&
!file.name.endsWith(".ts") &&
@@ -33,7 +51,7 @@ export async function gatherTaskFiles(config: ResolvedConfig): Promise<Array<Tas
continue;
}
const fullPath = join(triggerDir, file.name);
const fullPath = join(dirPath, file.name);
const filePath = relative(config.projectDir, fullPath);
//remove the file extension and replace any invalid characters with underscores
@@ -64,10 +82,16 @@ async function getTriggerDirectories(dirPath: string): Promise<string[]> {
const triggerDirectories: string[] = [];
for (const entry of entries) {
if (!entry.isDirectory() || IGNORED_DIRS.includes(entry.name)) continue;
if (!entry.isDirectory() || IGNORED_DIRS.includes(entry.name) || entry.name.startsWith("."))
continue;
const fullPath = join(dirPath, entry.name);
// Ignore the directory if it's <any>/app/api/trigger
if (fullPath.endsWith("app/api/trigger")) {
continue;
}
if (entry.name === "trigger") {
triggerDirectories.push(fullPath);
}
@@ -11,13 +11,12 @@ import {
TaskRunExecution,
TaskRunExecutionPayload,
TaskRunExecutionResult,
ZodMessageHandler,
ZodMessageSender,
childToWorkerMessages,
correctErrorStackTrace,
formatDurationMilliseconds,
workerToChildMessages,
} from "@trigger.dev/core/v3";
import { ZodMessageHandler, ZodMessageSender } from "@trigger.dev/core/v3/zodMessageHandler";
import dotenv from "dotenv";
import { Evt } from "evt";
import { ChildProcess, fork } from "node:child_process";
@@ -1,17 +1,20 @@
import {
Config,
DurableClock,
LogLevel,
ProjectConfig,
TaskExecutor,
ZodSchemaParsedError,
clock,
getEnvVar,
logLevels,
taskCatalog,
type HandleErrorFunction,
type TracingSDK,
} from "@trigger.dev/core/v3";
import {
TaskExecutor,
DurableClock,
getEnvVar,
logLevels,
OtelTaskLogger,
ConsoleInterceptor,
type TracingSDK,
} from "@trigger.dev/core/v3/workers";
__WORKER_SETUP__;
declare const __WORKER_SETUP__: unknown;
@@ -28,19 +31,20 @@ const otelTracer = tracingSDK.getTracer("trigger-dev-worker", packageJson.versio
const otelLogger = tracingSDK.getLogger("trigger-dev-worker", packageJson.version);
import {
ConsoleInterceptor,
DevRuntimeManager,
OtelTaskLogger,
TaskRunErrorCodes,
TaskRunExecution,
TriggerTracer,
ZodMessageHandler,
ZodMessageSender,
childToWorkerMessages,
logger,
runtime,
workerToChildMessages,
} from "@trigger.dev/core/v3";
import { DevRuntimeManager } from "@trigger.dev/core/v3/dev";
import {
ZodMessageHandler,
ZodMessageSender,
ZodSchemaParsedError,
} from "@trigger.dev/core/v3/zodMessageHandler";
import * as packageJson from "../../../package.json";
declare const sender: ZodMessageSender<typeof childToWorkerMessages>;
@@ -94,10 +98,12 @@ declare const __TASKS__: Record<string, string>;
"id" in task &&
typeof task.id === "string"
) {
taskCatalog.registerTaskFileMetadata(task.id, {
exportName,
filePath: (taskFile as any).filePath,
});
if (taskCatalog.taskExists(task.id)) {
taskCatalog.registerTaskFileMetadata(task.id, {
exportName,
filePath: (taskFile as any).filePath,
});
}
}
}
}
@@ -3,13 +3,15 @@ import { Resource } from "@opentelemetry/resources";
import {
ProjectConfig,
SemanticInternalAttributes,
StandardTaskCatalog,
TracingDiagnosticLogLevel,
TracingSDK,
ZodMessageSender,
childToWorkerMessages,
taskCatalog,
} from "@trigger.dev/core/v3";
import {
TracingDiagnosticLogLevel,
TracingSDK,
StandardTaskCatalog,
} from "@trigger.dev/core/v3/workers";
import { ZodMessageSender } from "@trigger.dev/core/v3/zodMessageHandler";
__SETUP_IMPORTED_PROJECT_CONFIG__;
declare const __SETUP_IMPORTED_PROJECT_CONFIG__: unknown;
@@ -2,7 +2,6 @@ import {
BackgroundWorkerProperties,
Config,
CreateBackgroundWorkerResponse,
InferSocketMessageSchema,
ProdChildToWorkerMessages,
ProdTaskRunExecution,
ProdTaskRunExecutionPayload,
@@ -14,9 +13,10 @@ import {
TaskRunExecution,
TaskRunExecutionPayload,
TaskRunExecutionResult,
ZodIpcConnection,
correctErrorStackTrace,
} from "@trigger.dev/core/v3";
import { ZodIpcConnection } from "@trigger.dev/core/v3/zodIpc";
import type { InferSocketMessageSchema } from "@trigger.dev/core/v3/zodSocket";
import { Evt } from "evt";
import { ChildProcess, fork } from "node:child_process";
import { TaskMetadataParseError, UncaughtExceptionError } from "../common/errors";
@@ -6,8 +6,8 @@ import {
ProdWorkerToCoordinatorMessages,
TaskResource,
WaitReason,
ZodSocketConnection,
} from "@trigger.dev/core/v3";
import { ZodSocketConnection } from "@trigger.dev/core/v3/zodSocket";
import { HttpReply, SimpleLogger, getRandomPortNumber } from "@trigger.dev/core-apps";
import { readFile } from "node:fs/promises";
import { createServer } from "node:http";
@@ -1,20 +1,24 @@
import {
Config,
DurableClock,
HandleErrorFunction,
LogLevel,
ProdChildToWorkerMessages,
ProdWorkerToChildMessages,
ProjectConfig,
TaskExecutor,
ZodIpcConnection,
ZodSchemaParsedError,
clock,
taskCatalog,
} from "@trigger.dev/core/v3";
import {
TaskExecutor,
DurableClock,
getEnvVar,
logLevels,
taskCatalog,
OtelTaskLogger,
ConsoleInterceptor,
type TracingSDK,
} from "@trigger.dev/core/v3";
} from "@trigger.dev/core/v3/workers";
import { ZodIpcConnection } from "@trigger.dev/core/v3/zodIpc";
import { ZodSchemaParsedError } from "@trigger.dev/core/v3/zodMessageHandler";
import "source-map-support/register.js";
__WORKER_SETUP__;
@@ -32,22 +36,20 @@ const otelTracer = tracingSDK.getTracer("trigger-prod-worker", packageJson.versi
const otelLogger = tracingSDK.getLogger("trigger-prod-worker", packageJson.version);
import {
ConsoleInterceptor,
OtelTaskLogger,
ProdRuntimeManager,
TaskRunErrorCodes,
TaskRunExecution,
TriggerTracer,
logger,
runtime,
} from "@trigger.dev/core/v3";
import { ProdRuntimeManager } from "@trigger.dev/core/v3/prod";
import * as packageJson from "../../../package.json";
const durableClock = new DurableClock();
clock.setGlobalClock(durableClock);
const tracer = new TriggerTracer({ tracer: otelTracer, logger: otelLogger });
const consoleInterceptor = new ConsoleInterceptor(otelLogger, false);
const consoleInterceptor = new ConsoleInterceptor(otelLogger, true);
const triggerLogLevel = getEnvVar("TRIGGER_LOG_LEVEL");
@@ -85,10 +87,12 @@ declare const __TASKS__: Record<string, string>;
"id" in task &&
typeof task.id === "string"
) {
taskCatalog.registerTaskFileMetadata(task.id, {
exportName,
filePath: (taskFile as any).filePath,
});
if (taskCatalog.taskExists(task.id)) {
taskCatalog.registerTaskFileMetadata(task.id, {
exportName,
filePath: (taskFile as any).filePath,
});
}
}
}
}
@@ -1,12 +1,10 @@
import { Resource } from "@opentelemetry/resources";
import { ProjectConfig, SemanticInternalAttributes, taskCatalog } from "@trigger.dev/core/v3";
import {
ProjectConfig,
SemanticInternalAttributes,
StandardTaskCatalog,
TracingDiagnosticLogLevel,
TracingSDK,
taskCatalog,
} from "@trigger.dev/core/v3";
StandardTaskCatalog,
} from "@trigger.dev/core/v3/workers";
__SETUP_IMPORTED_PROJECT_CONFIG__;
declare const __SETUP_IMPORTED_PROJECT_CONFIG__: unknown;
+26
View File
@@ -1,5 +1,31 @@
# create-trigger
## 3.0.0-beta.20
### Patch Changes
- Updated dependencies [e3db25739]
- @trigger.dev/core@3.0.0-beta.20
- @trigger.dev/yalt@3.0.0-beta.20
## 3.0.0-beta.19
### Patch Changes
- @trigger.dev/core@3.0.0-beta.19
- @trigger.dev/yalt@3.0.0-beta.19
## 3.0.0-beta.18
### Patch Changes
- b68012f81: Move to our global system from AsyncLocalStorage for the current task context storage
- b68012f81: Add support for tasks located in subdirectories inside trigger dirs
- Updated dependencies [b68012f81]
- Updated dependencies [b68012f81]
- @trigger.dev/core@3.0.0-beta.18
- @trigger.dev/yalt@3.0.0-beta.18
## 3.0.0-beta.17
### Patch Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/cli",
"version": "3.0.0-beta.17",
"version": "3.0.0-beta.20",
"description": "The Trigger.dev CLI",
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
+4 -2
View File
@@ -21,7 +21,7 @@ import { logger } from "../utils/logger";
import { resolvePath } from "../utils/parseNameAndPath";
import { readPackageJson } from "../utils/readPackageJson";
import { renderTitle } from "../utils/renderTitle";
import { TriggerApi, WhoamiResponse } from "../utils/triggerApi";
import { TriggerApi } from "../utils/triggerApi";
import { getJsRuntime } from "../utils/jsRuntime";
export type InitCommandOptions = {
@@ -165,7 +165,9 @@ async function printNextSteps(
framework: Framework
) {
logger.success(`✔ Successfully initialized Trigger.dev!`);
logger.warn(`⚠️ Warning: We don't currently support long-running servers! For more details, check out https://github.com/triggerdotdev/trigger.dev/issues/244.`);
logger.warn(
`⚠️ Warning: We don't currently support long-running servers! For more details, check out https://github.com/triggerdotdev/trigger.dev/issues/244.`
);
logger.info("Next steps:");
logger.info(` 1. Run your ${framework.name} project locally with '${packageManager} run dev'`);
logger.info(
+10
View File
@@ -1,5 +1,15 @@
# @trigger.dev/core-apps
## 3.0.0-beta.20
## 3.0.0-beta.19
## 3.0.0-beta.18
### Patch Changes
- b68012f81: Extracting out all the non-SDK related features from the main @trigger.dev/core/v3 export
## 3.0.0-beta.17
## 3.0.0-beta.16
+3 -2
View File
@@ -1,7 +1,7 @@
{
"name": "@trigger.dev/core-apps",
"description": "Backend core code used across apps",
"version": "3.0.0-beta.17",
"version": "3.0.0-beta.20",
"private": true,
"license": "MIT",
"main": "./dist/index.js",
@@ -28,7 +28,8 @@
"@trigger.dev/core": "workspace:*",
"@trigger.dev/tsconfig": "workspace:*",
"@types/node": "18",
"typescript": "^5.3.0"
"typescript": "^5.3.0",
"socket.io-client": "^4.7.4"
},
"engines": {
"node": ">=18.0.0"
+2 -2
View File
@@ -7,9 +7,9 @@ import {
PlatformToProviderMessages,
ProviderToPlatformMessages,
SharedQueueToClientMessages,
ZodMessageSender,
ZodSocketConnection,
} from "@trigger.dev/core/v3";
import { ZodMessageSender } from "@trigger.dev/core/v3/zodMessageHandler";
import { ZodSocketConnection } from "@trigger.dev/core/v3/zodSocket";
import { getRandomPortNumber, HttpReply, getTextBody } from "./http";
import { SimpleLogger } from "./logger";
+6
View File
@@ -1,5 +1,11 @@
# @trigger.dev/core-backend
## 3.0.0-beta.20
## 3.0.0-beta.19
## 3.0.0-beta.18
## 3.0.0-beta.17
## 3.0.0-beta.16
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/core-backend",
"version": "3.0.0-beta.17",
"version": "3.0.0-beta.20",
"description": "Core code used across `@trigger.dev/sdk` and Trigger.dev server",
"license": "MIT",
"main": "./dist/index.js",
+15
View File
@@ -1,5 +1,20 @@
# internal-platform
## 3.0.0-beta.20
### Patch Changes
- e3db25739: Fix error stack traces
## 3.0.0-beta.19
## 3.0.0-beta.18
### Patch Changes
- b68012f81: Move to our global system from AsyncLocalStorage for the current task context storage
- b68012f81: Extracting out all the non-SDK related features from the main @trigger.dev/core/v3 export
## 3.0.0-beta.17
## 3.0.0-beta.16
+70 -6
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/core",
"version": "3.0.0-beta.17",
"version": "3.0.0-beta.20",
"description": "Core code used across the Trigger.dev SDK and platform",
"license": "MIT",
"main": "./dist/index.js",
@@ -37,6 +37,70 @@
"require": "./dist/v3/otel/index.js",
"types": "./dist/v3/otel/index.d.ts"
},
"./v3/zodMessageHandler": {
"import": {
"types": "./dist/v3/zodMessageHandler.d.mts",
"default": "./dist/v3/zodMessageHandler.mjs"
},
"require": "./dist/v3/zodMessageHandler.js",
"types": "./dist/v3/zodMessageHandler.d.ts"
},
"./v3/zodNamespace": {
"import": {
"types": "./dist/v3/zodNamespace.d.mts",
"default": "./dist/v3/zodNamespace.mjs"
},
"require": "./dist/v3/zodNamespace.js",
"types": "./dist/v3/zodNamespace.d.ts"
},
"./v3/zodSocket": {
"import": {
"types": "./dist/v3/zodSocket.d.mts",
"default": "./dist/v3/zodSocket.mjs"
},
"require": "./dist/v3/zodSocket.js",
"types": "./dist/v3/zodSocket.d.ts"
},
"./v3/zodIpc": {
"import": {
"types": "./dist/v3/zodIpc.d.mts",
"default": "./dist/v3/zodIpc.mjs"
},
"require": "./dist/v3/zodIpc.js",
"types": "./dist/v3/zodIpc.d.ts"
},
"./v3/utils/structuredLogger": {
"import": {
"types": "./dist/v3/utils/structuredLogger.d.mts",
"default": "./dist/v3/utils/structuredLogger.mjs"
},
"require": "./dist/v3/utils/structuredLogger.js",
"types": "./dist/v3/utils/structuredLogger.d.ts"
},
"./v3/dev": {
"import": {
"types": "./dist/v3/dev/index.d.mts",
"default": "./dist/v3/dev/index.mjs"
},
"require": "./dist/v3/dev/index.js",
"types": "./dist/v3/dev/index.d.ts"
},
"./v3/prod": {
"import": {
"types": "./dist/v3/prod/index.d.mts",
"default": "./dist/v3/prod/index.mjs"
},
"require": "./dist/v3/prod/index.js",
"types": "./dist/v3/prod/index.d.ts"
},
"./v3/workers": {
"import": {
"types": "./dist/v3/workers/index.d.mts",
"default": "./dist/v3/workers/index.mjs"
},
"require": "./dist/v3/workers/index.js",
"types": "./dist/v3/workers/index.d.ts"
},
"./package.json": "./package.json"
},
"typesVersions": {
@@ -71,25 +135,25 @@
"@opentelemetry/sdk-trace-node": "^1.22.0",
"@opentelemetry/semantic-conventions": "^1.22.0",
"humanize-duration": "^3.27.3",
"socket.io": "^4.7.4",
"socket.io-client": "^4.7.4",
"superjson": "^2.2.1",
"ulidx": "^2.2.1",
"zod": "3.22.3",
"zod-error": "1.5.0",
"zod-validation-error": "^1.5.0"
"zod-validation-error": "^1.5.0",
"socket.io-client": "4.7.4"
},
"devDependencies": {
"@trigger.dev/tsconfig": "workspace:*",
"@trigger.dev/tsup": "workspace:*",
"@types/humanize-duration": "^3.27.1",
"@types/jest": "^29.5.3",
"@types/node": "^18",
"@types/node": "20.12.7",
"jest": "^29.6.2",
"rimraf": "^3.0.2",
"ts-jest": "^29.1.1",
"tsup": "^8.0.1",
"typescript": "^5.3.0"
"typescript": "^5.3.0",
"socket.io": "4.7.4"
},
"engines": {
"node": ">=18.0.0"
+2 -2
View File
@@ -17,7 +17,7 @@ import {
TriggerTaskResponse,
UpdateScheduleOptions,
} from "../schemas";
import { taskContextManager } from "../tasks/taskContextManager";
import { taskContext } from "../task-context-api";
import { getEnvVar } from "../utils/getEnv";
import { SafeAsyncLocalStorage } from "../utils/safeAsyncLocalStorage";
import { APIError } from "../apiErrors";
@@ -229,7 +229,7 @@ export class ApiClient {
};
// Only inject the context if we are inside a task
if (taskContextManager.isInsideTask) {
if (taskContext.isInsideTask) {
propagation.inject(context.active(), headers);
if (spanParentAsLink) {
+1
View File
@@ -0,0 +1 @@
export { DevRuntimeManager } from "../runtime/devRuntimeManager";
+13 -18
View File
@@ -69,32 +69,27 @@ export function correctErrorStackTrace(
.join("\n");
}
const LINES_TO_IGNORE = [
/ConsoleInterceptor/,
/TriggerTracer/,
/TaskExecutor/,
/EXECUTE_TASK_RUN/,
/@trigger.dev\/core/,
/safeJsonProcess/,
/__entryPoint.ts/,
];
function correctStackTraceLine(line: string, projectDir?: string) {
const regex = /at (.*?) \(?file:\/\/(\/.*?\.ts):(\d+):(\d+)\)?/;
const match = regex.exec(line);
if (!match) {
return;
}
const [_, identifier, path, lineNum, colNum] = match;
if (!path) {
return;
}
// Check to see if the file name is __entryPoint.ts, if it is we can remove it
if (nodePath.basename(path) === "__entryPoint.ts") {
if (LINES_TO_IGNORE.some((regex) => regex.test(line))) {
return;
}
// Check to see if the path is inside the project directory
if (projectDir && !path.includes(projectDir)) {
if (projectDir && !line.includes(projectDir)) {
return;
}
return line;
return line.trim();
}
export function groupTaskMetadataIssuesByTask(tasks: any, issues: z.ZodIssue[]) {
+22 -46
View File
@@ -1,76 +1,52 @@
import { BatchTriggerTaskRequestBody, TriggerTaskRequestBody } from "./schemas";
export * from "./schemas";
export * from "./apiClient";
export * from "./zodMessageHandler";
export * from "./zodNamespace";
export * from "./zodSocket";
export * from "./zodIpc";
export * from "./errors";
export * from "./apiErrors";
export * from "./runtime-api";
export * from "./logger-api";
export * from "./clock-api";
export * from "./errors";
export * from "./limits";
export * from "./logger-api";
export * from "./runtime-api";
export * from "./task-context-api";
export * from "./schemas";
export { SemanticInternalAttributes } from "./semanticInternalAttributes";
export * from "./task-catalog-api";
export * from "./types";
export * from "./limits";
export { SemanticInternalAttributes } from "./semanticInternalAttributes";
export { iconStringForSeverity } from "./icons";
export {
formatDuration,
formatDurationInDays,
formatDurationMilliseconds,
formatDurationNanoseconds,
formatDurationInDays,
nanosecondsToMilliseconds,
millisecondsToNanoseconds,
nanosecondsToMilliseconds,
} from "./utils/durations";
export { getEnvVar } from "./utils/getEnv";
export function parseTriggerTaskRequestBody(body: unknown) {
return TriggerTaskRequestBody.safeParse(body);
}
export function parseBatchTriggerTaskRequestBody(body: unknown) {
return BatchTriggerTaskRequestBody.safeParse(body);
}
export { taskContextManager, TaskContextSpanProcessor } from "./tasks/taskContextManager";
export type { RuntimeManager } from "./runtime/manager";
export { DevRuntimeManager } from "./runtime/devRuntimeManager";
export { ProdRuntimeManager } from "./runtime/prodRuntimeManager";
export { PreciseWallClock as DurableClock } from "./clock/preciseWallClock";
export { TriggerTracer } from "./tracer";
export type { TaskLogger, LogLevel } from "./logger/taskLogger";
export { OtelTaskLogger, logLevels } from "./logger/taskLogger";
export { ConsoleInterceptor } from "./consoleInterceptor";
export type { LogLevel } from "./logger/taskLogger";
export { eventFilterMatches } from "../eventFilterMatches";
export {
flattenAttributes,
unflattenAttributes,
primitiveValueOrflattenedAttributes,
unflattenAttributes,
} from "./utils/flattenAttributes";
export { omit } from "./utils/omit";
export {
defaultRetryOptions,
defaultFetchRetryOptions,
calculateNextRetryDelay,
calculateResetAt,
defaultFetchRetryOptions,
defaultRetryOptions,
} from "./utils/retries";
export { accessoryAttributes } from "./utils/styleAttributes";
export { eventFilterMatches } from "../eventFilterMatches";
export { omit } from "./utils/omit";
export { TracingSDK, type TracingDiagnosticLogLevel, recordSpanException } from "./otel";
export { TaskExecutor, type TaskExecutorOptions } from "./workers/taskExecutor";
export { detectDependencyVersion } from "./utils/detectDependencyVersion";
export {
parsePacket,
stringifyIO,
prettyPrintPacket,
createPacketAttributes,
createPacketAttributesAsJson,
conditionallyExportPacket,
conditionallyImportPacket,
createPacketAttributes,
createPacketAttributesAsJson,
packetRequiresOffloading,
parsePacket,
prettyPrintPacket,
stringifyIO,
type IOPacket,
} from "./utils/ioSerialization";
export { StandardTaskCatalog } from "./task-catalog/standardTaskCatalog";
+1 -1
View File
@@ -38,7 +38,7 @@ import {
OTEL_SPAN_EVENT_COUNT_LIMIT,
} from "../limits";
import { SemanticInternalAttributes } from "../semanticInternalAttributes";
import { TaskContextLogProcessor, TaskContextSpanProcessor } from "../tasks/taskContextManager";
import { TaskContextLogProcessor, TaskContextSpanProcessor } from "../taskContext/otelProcessors";
import { getEnvVar } from "../utils/getEnv";
class AsyncResourceDetector implements DetectorSync {

Some files were not shown because too many files have changed in this diff Show More