Merge branch 'main' into v3/worker-attempt-creation

This commit is contained in:
nicktrn
2024-05-07 15:03:33 +01:00
98 changed files with 1461 additions and 310 deletions
+6
View File
@@ -0,0 +1,6 @@
---
"trigger.dev": patch
"@trigger.dev/core": patch
---
Remove "log" Log Level, unify log and info messages under the "info" log level
+6
View File
@@ -0,0 +1,6 @@
---
"@trigger.dev/sdk": patch
"@trigger.dev/core": patch
---
Add runs.retrieve management API method to get info about a run by run ID
+5
View File
@@ -0,0 +1,5 @@
---
"trigger.dev": patch
---
Adding some additional telemetry during deploy to help debug issues
+5
View File
@@ -0,0 +1,5 @@
---
"@trigger.dev/core": patch
---
Add the "log" level back in as an alias to "info"
+6
View File
@@ -0,0 +1,6 @@
---
"@trigger.dev/sdk": patch
"@trigger.dev/core": patch
---
Add configure function to be able to configure the SDK manually
+6
View File
@@ -52,6 +52,7 @@
"clean-pianos-listen",
"clever-apes-collect",
"clever-carrots-travel",
"clever-donkeys-hunt",
"cool-glasses-bake",
"cuddly-feet-approve",
"dry-walls-check",
@@ -60,6 +61,7 @@
"eleven-paws-join",
"few-students-share",
"funny-swans-destroy",
"gorgeous-gorillas-compete",
"green-bags-wink",
"khaki-apricots-design",
"khaki-poems-lay",
@@ -69,7 +71,9 @@
"light-bulldogs-press",
"light-dragons-complain",
"little-crabs-cross",
"long-fireants-search",
"loud-actors-remember",
"lovely-drinks-flash",
"many-ligers-pump",
"mighty-camels-joke",
"mighty-flowers-train",
@@ -77,6 +81,7 @@
"new-rivers-tell",
"ninety-pets-travel",
"odd-poets-own",
"pink-pumas-rhyme",
"polite-ducks-switch",
"polite-rockets-matter",
"poor-flowers-cross",
@@ -107,6 +112,7 @@
"tame-guests-know",
"tender-moose-tell",
"tender-oranges-rhyme",
"thin-parents-heal",
"tidy-balloons-suffer",
"tidy-dryers-sleep",
"tiny-doors-type",
+5
View File
@@ -0,0 +1,5 @@
---
"trigger.dev": patch
---
Ensure @trigger.dev/sdk and @trigger.dev/core are always in the list of deployed dependencies
@@ -0,0 +1,114 @@
import { AttemptStatus, RetrieveRunResponse, RunStatus, logger } from "@trigger.dev/core/v3";
import { TaskRunAttemptStatus, TaskRunStatus } from "@trigger.dev/database";
import assertNever from "assert-never";
import { AuthenticatedEnvironment } from "~/services/apiAuth.server";
import { BasePresenter } from "./basePresenter.server";
export class ApiRetrieveRunPresenter extends BasePresenter {
public async call(
friendlyId: string,
env: AuthenticatedEnvironment,
showSecretDetails: boolean
): Promise<RetrieveRunResponse | undefined> {
return this.traceWithEnv("call", env, async (span) => {
const taskRun = await this._prisma.taskRun.findUnique({
where: {
friendlyId,
runtimeEnvironmentId: env.id,
},
include: {
attempts: {
orderBy: {
createdAt: "desc",
},
},
lockedToVersion: true,
},
});
if (!taskRun) {
logger.debug("Task run not found", { friendlyId, envId: env.id });
return undefined;
}
return {
id: taskRun.friendlyId,
status: ApiRetrieveRunPresenter.apiStatusFromRunStatus(taskRun.status),
taskIdentifier: taskRun.taskIdentifier,
idempotencyKey: taskRun.idempotencyKey ?? undefined,
version: taskRun.lockedToVersion ? taskRun.lockedToVersion.version : undefined,
createdAt: taskRun.createdAt ?? undefined,
updatedAt: taskRun.updatedAt ?? undefined,
attempts: !showSecretDetails
? []
: taskRun.attempts.map((a) => ({
id: a.friendlyId,
status: ApiRetrieveRunPresenter.apiStatusFromAttemptStatus(a.status),
createdAt: a.createdAt ?? undefined,
updatedAt: a.updatedAt ?? undefined,
startedAt: a.startedAt ?? undefined,
completedAt: a.completedAt ?? undefined,
})),
};
});
}
static apiStatusFromRunStatus(status: TaskRunStatus): RunStatus {
switch (status) {
case "WAITING_FOR_DEPLOY":
case "PENDING": {
return "PENDING";
}
case "RETRYING_AFTER_FAILURE":
case "EXECUTING": {
return "EXECUTING";
}
case "WAITING_TO_RESUME":
case "PAUSED": {
return "PAUSED";
}
case "CANCELED": {
return "CANCELED";
}
case "COMPLETED_SUCCESSFULLY": {
return "COMPLETED";
}
case "SYSTEM_FAILURE":
case "INTERRUPTED":
case "CRASHED":
case "COMPLETED_WITH_ERRORS": {
return "FAILED";
}
default: {
assertNever(status);
}
}
}
static apiStatusFromAttemptStatus(status: TaskRunAttemptStatus): AttemptStatus {
switch (status) {
case "PENDING": {
return "PENDING";
}
case "PAUSED": {
return "PAUSED";
}
case "EXECUTING": {
return "EXECUTING";
}
case "COMPLETED": {
return "COMPLETED";
}
case "FAILED": {
return "FAILED";
}
case "CANCELED": {
return "CANCELED";
}
default: {
assertNever(status);
}
}
}
}
@@ -0,0 +1,44 @@
import type { LoaderFunctionArgs } from "@remix-run/server-runtime";
import { json } from "@remix-run/server-runtime";
import { z } from "zod";
import { ApiRetrieveRunPresenter } from "~/presenters/v3/ApiRetrieveRunPresenter.server";
import { authenticateApiRequest } from "~/services/apiAuth.server";
import { apiCors } from "~/utils/apiCors";
const ParamsSchema = z.object({
runId: z.string(),
});
export async function loader({ request, params }: LoaderFunctionArgs) {
if (request.method.toUpperCase() === "OPTIONS") {
return apiCors(request, json({}));
}
const authenticationResult = await authenticateApiRequest(request, {
allowPublicKey: true,
});
if (!authenticationResult) {
return apiCors(request, json({ error: "Invalid or Missing API key" }, { status: 401 }));
}
const authenticatedEnv = authenticationResult.environment;
const parsed = ParamsSchema.safeParse(params);
if (!parsed.success) {
return apiCors(request, json({ error: "Invalid or missing runId" }, { status: 400 }));
}
const { runId } = parsed.data;
const showSecretDetails = authenticationResult.type === "PRIVATE";
const presenter = new ApiRetrieveRunPresenter();
const result = await presenter.call(runId, authenticatedEnv, showSecretDetails);
if (!result) {
return apiCors(request, json({ error: "Run not found" }, { status: 404 }));
}
return apiCors(request, json(result));
}
@@ -51,11 +51,15 @@ export class UpsertTaskScheduleService extends BaseService {
});
if (!task) {
throw new Error(`Task with identifier ${schedule.taskIdentifier} not found in project.`);
throw new ServiceValidationError(
`Task with identifier ${schedule.taskIdentifier} not found in project.`
);
}
if (task.triggerSource !== "SCHEDULED") {
throw new Error(`Task with identifier ${schedule.taskIdentifier} is not a scheduled task.`);
throw new ServiceValidationError(
`Task with identifier ${schedule.taskIdentifier} is not a scheduled task.`
);
}
const result = await $transaction(this._prisma, async (tx) => {
+71 -22
View File
@@ -1,8 +1,14 @@
{
"$schema": "https://mintlify.com/schema.json",
"name": "Trigger.dev",
"openapi": ["/openapi.yml", "/v3-openapi.json"],
"versions": ["v3 (Developer Preview)", "v2"],
"openapi": [
"/openapi.yml",
"/v3-openapi.json"
],
"versions": [
"v3 (Developer Preview)",
"v2"
],
"logo": {
"dark": "/logo/dark.png",
"light": "/logo/light.png",
@@ -90,7 +96,9 @@
{
"group": "",
"version": "v3 (Developer Preview)",
"pages": ["v3/introduction"]
"pages": [
"v3/introduction"
]
},
{
"group": "Getting Started",
@@ -113,7 +121,12 @@
"v3/apikeys",
{
"group": "Task types",
"pages": ["v3/tasks-regular", "v3/tasks-scheduled", "v3/tasks-zod", "v3/tasks-webhooks"]
"pages": [
"v3/tasks-regular",
"v3/tasks-scheduled",
"v3/tasks-zod",
"v3/tasks-webhooks"
]
},
"v3/trigger-config"
]
@@ -121,7 +134,10 @@
{
"group": "Development",
"version": "v3 (Developer Preview)",
"pages": ["v3/cli-dev", "v3/run-tests"]
"pages": [
"v3/cli-dev",
"v3/run-tests"
]
},
{
"group": "Deployment",
@@ -132,7 +148,9 @@
"v3/github-actions",
{
"group": "Deployment integrations",
"pages": ["v3/vercel-integration"]
"pages": [
"v3/vercel-integration"
]
}
]
},
@@ -208,7 +226,9 @@
},
{
"group": "Objects",
"pages": ["v3/reference-context"]
"pages": [
"v3/reference-context"
]
},
{
"group": "CLI",
@@ -226,9 +246,7 @@
{
"group": "Runs API",
"pages": [
"v3/management-start-run",
"v3/management-get-run",
"v3/management-get-runs",
"v3/management-retrieve-run",
"v3/management-replay-run",
"v3/management-cancel-run"
]
@@ -259,7 +277,11 @@
{
"group": "Open source",
"version": "v3 (Developer Preview)",
"pages": ["v3/github-repo", "v3/open-source-self-hosting", "v3/open-source-contributing"]
"pages": [
"v3/github-repo",
"v3/open-source-self-hosting",
"v3/open-source-contributing"
]
},
{
"group": "Help",
@@ -460,7 +482,10 @@
"pages": [
{
"group": "Airtable",
"pages": ["integrations/apis/airtable", "integrations/apis/airtable-tasks"]
"pages": [
"integrations/apis/airtable",
"integrations/apis/airtable-tasks"
]
},
{
"group": "GitHub",
@@ -486,16 +511,25 @@
},
{
"group": "Plain",
"pages": ["integrations/apis/plain", "integrations/apis/plain-tasks"]
"pages": [
"integrations/apis/plain",
"integrations/apis/plain-tasks"
]
},
"integrations/apis/replicate",
{
"group": "SendGrid",
"pages": ["integrations/apis/sendgrid", "integrations/apis/sendgrid-tasks"]
"pages": [
"integrations/apis/sendgrid",
"integrations/apis/sendgrid-tasks"
]
},
{
"group": "Resend",
"pages": ["integrations/apis/resend", "integrations/apis/resend-tasks"]
"pages": [
"integrations/apis/resend",
"integrations/apis/resend-tasks"
]
},
{
"group": "Shopify",
@@ -507,7 +541,10 @@
},
{
"group": "Slack",
"pages": ["integrations/apis/slack", "integrations/apis/slack-tasks"]
"pages": [
"integrations/apis/slack",
"integrations/apis/slack-tasks"
]
},
"integrations/apis/stripe",
{
@@ -532,7 +569,9 @@
"sdk/triggerclient/constructor",
{
"group": "Instance properties",
"pages": ["sdk/triggerclient/store"]
"pages": [
"sdk/triggerclient/store"
]
},
{
"group": "Instance methods",
@@ -595,7 +634,10 @@
"sdk/dynamictrigger/constructor",
{
"group": "Instance methods",
"pages": ["sdk/dynamictrigger/register", "sdk/dynamictrigger/unregister"]
"pages": [
"sdk/dynamictrigger/register",
"sdk/dynamictrigger/unregister"
]
}
]
},
@@ -606,7 +648,10 @@
"sdk/dynamicschedule/constructor",
{
"group": "Instance methods",
"pages": ["sdk/dynamicschedule/register", "sdk/dynamicschedule/unregister"]
"pages": [
"sdk/dynamicschedule/register",
"sdk/dynamicschedule/unregister"
]
}
]
},
@@ -618,7 +663,9 @@
},
{
"group": "HTTP Reference",
"pages": ["sdk/api-reference/events/create-an-event"]
"pages": [
"sdk/api-reference/events/create-an-event"
]
},
{
"group": "React SDK",
@@ -633,7 +680,9 @@
{
"group": "Overview",
"version": "v2",
"pages": ["examples/introduction"]
"pages": [
"examples/introduction"
]
}
],
"footerSocials": {
@@ -641,4 +690,4 @@
"github": "https://github.com/triggerdotdev",
"linkedin": "https://www.linkedin.com/company/triggerdotdev"
}
}
}
+191 -2
View File
@@ -493,7 +493,7 @@
"x-codeSamples": [
{
"lang": "typescript",
"source": "const handle = await runs.replay(existingRun.id);"
"source": "import { runs } from \"@trigger.dev/sdk/v3\";\n\nconst handle = await runs.replay(\"run_1234\");"
},
{
"lang": "sh",
@@ -601,7 +601,7 @@
"x-codeSamples": [
{
"lang": "typescript",
"source": "await runs.cancel(existingRun.id);"
"source": "import { runs } from \"@trigger.dev/sdk/v3\";\n\nawait runs.cancel(\"run_1234\");"
},
{
"lang": "sh",
@@ -609,6 +609,107 @@
}
]
}
},
"/api/v3/runs/{run_id}": {
"get": {
"description": "Retrieve a run",
"parameters": [
{
"in": "path",
"name": "run_id",
"required": true,
"schema": {
"type": "string"
},
"description": "The ID of an existing run. When you trigger a run you will get an id in the response."
}
],
"responses": {
"200": {
"description": "Successful request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RetrieveRunResponse"
}
}
}
},
"400": {
"description": "Invalid request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string",
"enum": [
"Invalid or missing run ID"
]
}
}
}
}
}
},
"401": {
"description": "Unauthorized request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string",
"enum": [
"Invalid or Missing API key"
]
}
}
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string",
"enum": [
"Run not found"
]
}
}
}
}
}
}
},
"tags": [
"run"
],
"security": [
{
"bearerAuth": []
}
],
"operationId": "retrieve_run_v1",
"x-codeSamples": [
{
"lang": "typescript",
"source": "import { runs } from \"@trigger.dev/sdk/v3\";\n\nawait runs.retrieve(\"run_1234\");"
},
{
"lang": "sh",
"source": "curl --request GET \\\n\t--url https://api.trigger.dev/api/v3/runs/{run_id} \\\n\t--header 'Authorization: Bearer <token>'"
}
]
}
}
},
"components": {
@@ -620,6 +721,94 @@
}
},
"schemas": {
"RetrieveRunResponse": {
"type": "object",
"required": [
"id",
"status",
"taskIdentifier",
"createdAt",
"updatedAt",
"attempts"
],
"properties": {
"id": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"PENDING",
"EXECUTING",
"PAUSED",
"COMPLETED",
"FAILED",
"CANCELED"
]
},
"taskIdentifier": {
"type": "string"
},
"idempotencyKey": {
"type": "string"
},
"version": {
"type": "string"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
},
"attempts": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"status",
"createdAt",
"updatedAt"
],
"properties": {
"id": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"PENDING",
"EXECUTING",
"PAUSED",
"COMPLETED",
"FAILED",
"CANCELED"
]
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
},
"startedAt": {
"type": "string",
"format": "date-time"
},
"completedAt": {
"type": "string",
"format": "date-time"
}
}
}
}
}
},
"CreateScheduleOptions": {
"type": "object",
"properties": {
+34
View File
@@ -10,3 +10,37 @@ When you [trigger a task](/v3/triggering) from your backend code, you need to se
Each environment has its own secret key. You can find the value on the API keys page in the Trigger.dev dashboard:
![How to find your secret key](/images/v3/api-keys.png)
### Automatically Configuring the SDK
To automatically configure the SDK with your secret key, you can set the `TRIGGER_SECRET_KEY` environment variable. The SDK will automatically use this value when calling API methods (like `trigger`).
```bash
export TRIGGER_SECRET_KEY=tr_dev_…
```
You can do the same if you are self-hosting and need to change the default URL by using `TRIGGER_API_URL`.
```bash
export TRIGGER_API_URL=https://trigger.example.com
```
The default URL is `https://api.trigger.dev`.
### Manually Configuring the SDK
If you prefer to manually configure the SDK, you can call the `configure` method:
```ts
import { configure } from "@trigger.dev/sdk/v3";
import { myTask } from "./trigger/myTasks";
configure({
secretKey: "tr_dev_1234", // WARNING: Never actually hardcode your secret key like this
baseURL: "https://mytrigger.example.com", // Optional
});
async function triggerTask() {
await myTask.trigger({ userId: "1234" }); // This will use the secret key and base URL you configured
}
```
+4
View File
@@ -0,0 +1,4 @@
---
title: "Retrieve run"
openapi: "v3-openapi GET /api/v3/runs/{run_id}"
---
+16
View File
@@ -1,5 +1,21 @@
# @trigger.dev/airtable
## 3.0.0-beta.28
### Patch Changes
- Updated dependencies [6d9dfbc75]
- @trigger.dev/sdk@3.0.0-beta.28
- @trigger.dev/integration-kit@3.0.0-beta.28
## 3.0.0-beta.27
### Patch Changes
- Updated dependencies [203e00208]
- @trigger.dev/sdk@3.0.0-beta.27
- @trigger.dev/integration-kit@3.0.0-beta.27
## 3.0.0-beta.26
### Patch Changes
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/airtable",
"version": "3.0.0-beta.26",
"version": "3.0.0-beta.28",
"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.26",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.26",
"@trigger.dev/integration-kit": "workspace:^3.0.0-beta.28",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.28",
"airtable": "^0.12.1",
"zod": "3.22.3"
},
+16
View File
@@ -1,5 +1,21 @@
# @trigger.dev/github
## 3.0.0-beta.28
### Patch Changes
- Updated dependencies [6d9dfbc75]
- @trigger.dev/sdk@3.0.0-beta.28
- @trigger.dev/integration-kit@3.0.0-beta.28
## 3.0.0-beta.27
### Patch Changes
- Updated dependencies [203e00208]
- @trigger.dev/sdk@3.0.0-beta.27
- @trigger.dev/integration-kit@3.0.0-beta.27
## 3.0.0-beta.26
### Patch Changes
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/github",
"version": "3.0.0-beta.26",
"version": "3.0.0-beta.28",
"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.26",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.26",
"@trigger.dev/integration-kit": "workspace:^3.0.0-beta.28",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.28",
"zod": "3.22.3"
},
"engines": {
+16
View File
@@ -1,5 +1,21 @@
# @trigger.dev/linear
## 3.0.0-beta.28
### Patch Changes
- Updated dependencies [6d9dfbc75]
- @trigger.dev/sdk@3.0.0-beta.28
- @trigger.dev/integration-kit@3.0.0-beta.28
## 3.0.0-beta.27
### Patch Changes
- Updated dependencies [203e00208]
- @trigger.dev/sdk@3.0.0-beta.27
- @trigger.dev/integration-kit@3.0.0-beta.27
## 3.0.0-beta.26
### Patch Changes
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/linear",
"version": "3.0.0-beta.26",
"version": "3.0.0-beta.28",
"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.26",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.26",
"@trigger.dev/integration-kit": "workspace:^3.0.0-beta.28",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.28",
"zod": "3.22.3"
},
"engines": {
+16
View File
@@ -1,5 +1,21 @@
# @trigger.dev/slack
## 3.0.0-beta.28
### Patch Changes
- Updated dependencies [6d9dfbc75]
- @trigger.dev/sdk@3.0.0-beta.28
- @trigger.dev/integration-kit@3.0.0-beta.28
## 3.0.0-beta.27
### Patch Changes
- Updated dependencies [203e00208]
- @trigger.dev/sdk@3.0.0-beta.27
- @trigger.dev/integration-kit@3.0.0-beta.27
## 3.0.0-beta.26
### Patch Changes
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/openai",
"version": "3.0.0-beta.26",
"version": "3.0.0-beta.28",
"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.26",
"@trigger.dev/integration-kit": "workspace:^3.0.0-beta.26"
"@trigger.dev/sdk": "workspace:^3.0.0-beta.28",
"@trigger.dev/integration-kit": "workspace:^3.0.0-beta.28"
},
"engines": {
"node": ">=18.0.0"
+16
View File
@@ -1,5 +1,21 @@
# @trigger.dev/plain
## 3.0.0-beta.28
### Patch Changes
- Updated dependencies [6d9dfbc75]
- @trigger.dev/sdk@3.0.0-beta.28
- @trigger.dev/integration-kit@3.0.0-beta.28
## 3.0.0-beta.27
### Patch Changes
- Updated dependencies [203e00208]
- @trigger.dev/sdk@3.0.0-beta.27
- @trigger.dev/integration-kit@3.0.0-beta.27
## 3.0.0-beta.26
### Patch Changes
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/plain",
"version": "3.0.0-beta.26",
"version": "3.0.0-beta.28",
"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.26",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.26",
"@trigger.dev/integration-kit": "workspace:^3.0.0-beta.28",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.28",
"@team-plain/typescript-sdk": "^2.7.0"
},
"engines": {
+16
View File
@@ -1,5 +1,21 @@
# @trigger.dev/replicate
## 3.0.0-beta.28
### Patch Changes
- Updated dependencies [6d9dfbc75]
- @trigger.dev/sdk@3.0.0-beta.28
- @trigger.dev/integration-kit@3.0.0-beta.28
## 3.0.0-beta.27
### Patch Changes
- Updated dependencies [203e00208]
- @trigger.dev/sdk@3.0.0-beta.27
- @trigger.dev/integration-kit@3.0.0-beta.27
## 3.0.0-beta.26
### Patch Changes
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/replicate",
"version": "3.0.0-beta.26",
"version": "3.0.0-beta.28",
"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.26",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.26",
"@trigger.dev/integration-kit": "workspace:^3.0.0-beta.28",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.28",
"replicate": "^0.18.1",
"zod": "3.22.3"
},
+16
View File
@@ -1,5 +1,21 @@
# @trigger.dev/resend
## 3.0.0-beta.28
### Patch Changes
- Updated dependencies [6d9dfbc75]
- @trigger.dev/sdk@3.0.0-beta.28
- @trigger.dev/integration-kit@3.0.0-beta.28
## 3.0.0-beta.27
### Patch Changes
- Updated dependencies [203e00208]
- @trigger.dev/sdk@3.0.0-beta.27
- @trigger.dev/integration-kit@3.0.0-beta.27
## 3.0.0-beta.26
### Patch Changes
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/resend",
"version": "3.0.0-beta.26",
"version": "3.0.0-beta.28",
"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.26",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.26",
"@trigger.dev/integration-kit": "workspace:^3.0.0-beta.28",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.28",
"resend": "^2.1.0"
},
"engines": {
+16
View File
@@ -1,5 +1,21 @@
# @trigger.dev/sendgrid
## 3.0.0-beta.28
### Patch Changes
- Updated dependencies [6d9dfbc75]
- @trigger.dev/sdk@3.0.0-beta.28
- @trigger.dev/integration-kit@3.0.0-beta.28
## 3.0.0-beta.27
### Patch Changes
- Updated dependencies [203e00208]
- @trigger.dev/sdk@3.0.0-beta.27
- @trigger.dev/integration-kit@3.0.0-beta.27
## 3.0.0-beta.26
### Patch Changes
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/sendgrid",
"version": "3.0.0-beta.26",
"version": "3.0.0-beta.28",
"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.26",
"@trigger.dev/integration-kit": "workspace:^3.0.0-beta.26"
"@trigger.dev/sdk": "workspace:^3.0.0-beta.28",
"@trigger.dev/integration-kit": "workspace:^3.0.0-beta.28"
},
"engines": {
"node": ">=16.8.0"
+16
View File
@@ -1,5 +1,21 @@
# @trigger.dev/shopify
## 3.0.0-beta.28
### Patch Changes
- Updated dependencies [6d9dfbc75]
- @trigger.dev/sdk@3.0.0-beta.28
- @trigger.dev/integration-kit@3.0.0-beta.28
## 3.0.0-beta.27
### Patch Changes
- Updated dependencies [203e00208]
- @trigger.dev/sdk@3.0.0-beta.27
- @trigger.dev/integration-kit@3.0.0-beta.27
## 3.0.0-beta.26
### Patch Changes
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/shopify",
"version": "3.0.0-beta.26",
"version": "3.0.0-beta.28",
"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.26",
"@trigger.dev/integration-kit": "workspace:^3.0.0-beta.26",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.28",
"@trigger.dev/integration-kit": "workspace:^3.0.0-beta.28",
"zod": "3.22.3"
},
"engines": {
+14
View File
@@ -1,5 +1,19 @@
# @trigger.dev/slack
## 3.0.0-beta.28
### Patch Changes
- Updated dependencies [6d9dfbc75]
- @trigger.dev/sdk@3.0.0-beta.28
## 3.0.0-beta.27
### Patch Changes
- Updated dependencies [203e00208]
- @trigger.dev/sdk@3.0.0-beta.27
## 3.0.0-beta.26
### Patch Changes
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/slack",
"version": "3.0.0-beta.26",
"version": "3.0.0-beta.28",
"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.26",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.28",
"zod": "3.22.3"
},
"engines": {
+16
View File
@@ -1,5 +1,21 @@
# @trigger.dev/stripe
## 3.0.0-beta.28
### Patch Changes
- Updated dependencies [6d9dfbc75]
- @trigger.dev/sdk@3.0.0-beta.28
- @trigger.dev/integration-kit@3.0.0-beta.28
## 3.0.0-beta.27
### Patch Changes
- Updated dependencies [203e00208]
- @trigger.dev/sdk@3.0.0-beta.27
- @trigger.dev/integration-kit@3.0.0-beta.27
## 3.0.0-beta.26
### Patch Changes
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/stripe",
"version": "3.0.0-beta.26",
"version": "3.0.0-beta.28",
"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.26",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.26",
"@trigger.dev/integration-kit": "workspace:^3.0.0-beta.28",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.28",
"stripe": "^12.14.0",
"zod": "3.22.3"
},
+16
View File
@@ -1,5 +1,21 @@
# @trigger.dev/supabase
## 3.0.0-beta.28
### Patch Changes
- Updated dependencies [6d9dfbc75]
- @trigger.dev/sdk@3.0.0-beta.28
- @trigger.dev/integration-kit@3.0.0-beta.28
## 3.0.0-beta.27
### Patch Changes
- Updated dependencies [203e00208]
- @trigger.dev/sdk@3.0.0-beta.27
- @trigger.dev/integration-kit@3.0.0-beta.27
## 3.0.0-beta.26
### Patch Changes
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/supabase",
"version": "3.0.0-beta.26",
"version": "3.0.0-beta.28",
"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.26",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.26",
"@trigger.dev/integration-kit": "workspace:^3.0.0-beta.28",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.28",
"supabase-management-js": "^1.0.0",
"zod": "3.22.3"
},
+16
View File
@@ -1,5 +1,21 @@
# @trigger.dev/typeform
## 3.0.0-beta.28
### Patch Changes
- Updated dependencies [6d9dfbc75]
- @trigger.dev/sdk@3.0.0-beta.28
- @trigger.dev/integration-kit@3.0.0-beta.28
## 3.0.0-beta.27
### Patch Changes
- Updated dependencies [203e00208]
- @trigger.dev/sdk@3.0.0-beta.27
- @trigger.dev/integration-kit@3.0.0-beta.27
## 3.0.0-beta.26
### Patch Changes
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/typeform",
"version": "3.0.0-beta.26",
"version": "3.0.0-beta.28",
"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.26",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.26",
"@trigger.dev/integration-kit": "workspace:^3.0.0-beta.28",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.28",
"@typeform/api-client": "^1.8.0",
"zod": "3.22.3"
},
+14
View File
@@ -1,5 +1,19 @@
# @trigger.dev/astro
## 3.0.0-beta.28
### Patch Changes
- Updated dependencies [6d9dfbc75]
- @trigger.dev/sdk@3.0.0-beta.28
## 3.0.0-beta.27
### Patch Changes
- Updated dependencies [203e00208]
- @trigger.dev/sdk@3.0.0-beta.27
## 3.0.0-beta.26
### 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.26",
"version": "3.0.0-beta.28",
"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.26"
"@trigger.dev/sdk": "workspace:^3.0.0-beta.28"
},
"devDependencies": {
"astro": "^3.0.12",
+19
View File
@@ -1,5 +1,24 @@
# trigger.dev
## 3.0.0-beta.28
### Patch Changes
- 2156e1526: Adding some additional telemetry during deploy to help debug issues
- 6406924b0: Ensure @trigger.dev/sdk and @trigger.dev/core are always in the list of deployed dependencies
- Updated dependencies [d490bc5cb]
- Updated dependencies [6d9dfbc75]
- @trigger.dev/core@3.0.0-beta.28
## 3.0.0-beta.27
### Patch Changes
- 1670c4c41: Remove "log" Log Level, unify log and info messages under the "info" log level
- Updated dependencies [1670c4c41]
- Updated dependencies [203e00208]
- @trigger.dev/core@3.0.0-beta.27
## 3.0.0-beta.26
### Patch Changes
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "trigger.dev",
"version": "3.0.0-beta.26",
"version": "3.0.0-beta.28",
"description": "A Command-Line Interface for Trigger.dev (v3) projects",
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
@@ -86,7 +86,7 @@
"@opentelemetry/sdk-trace-base": "^1.22.0",
"@opentelemetry/sdk-trace-node": "^1.22.0",
"@opentelemetry/semantic-conventions": "^1.22.0",
"@trigger.dev/core": "workspace:3.0.0-beta.26",
"@trigger.dev/core": "workspace:3.0.0-beta.28",
"@types/degit": "^2.8.3",
"chalk": "^5.2.0",
"chokidar": "^3.5.3",
+105 -59
View File
@@ -1289,7 +1289,7 @@ async function compileProject(
const javascriptProject = new JavascriptProject(config.projectDir);
const dependencies = await gatherRequiredDependencies(allImports, config, javascriptProject);
const dependencies = await resolveRequiredDependencies(allImports, config, javascriptProject);
logger.debug("gatherRequiredDependencies()", { dependencies });
@@ -1303,6 +1303,10 @@ async function compileProject(
},
};
span.setAttributes({
...flattenAttributes(packageJsonContents, "packageJson.contents"),
});
await writeJSONFile(join(tempDir, "package.json"), packageJsonContents);
const copyResult = await copyAdditionalFiles(config, tempDir);
@@ -1551,81 +1555,123 @@ async function typecheckProject(config: ResolvedConfig, options: DeployCommandOp
// Returns the dependencies that are required by the output that are found in output and the CLI package dependencies
// Returns the dependency names and the version to use (taken from the CLI deps package.json)
async function gatherRequiredDependencies(
async function resolveRequiredDependencies(
imports: Metafile["outputs"][string]["imports"],
config: ResolvedConfig,
project: JavascriptProject
) {
const dependencies: Record<string, string> = {};
const resolvablePackageNames = new Set<string>();
return await tracer.startActiveSpan("resolveRequiredDependencies", async (span) => {
const resolvablePackageNames = new Set<string>();
for (const file of imports) {
if ((file.kind !== "require-call" && file.kind !== "dynamic-import") || !file.external) {
continue;
}
const packageName = detectPackageNameFromImportPath(file.path);
if (!packageName) {
continue;
}
resolvablePackageNames.add(packageName);
}
const resolvedPackageVersions = await project.resolveAll(Array.from(resolvablePackageNames));
const missingPackages = Array.from(resolvablePackageNames).filter(
(packageName) => !resolvedPackageVersions[packageName]
);
for (const missingPackage of missingPackages) {
const internalDependencyVersion =
(packageJson.dependencies as Record<string, string>)[missingPackage] ??
detectDependencyVersion(missingPackage);
if (internalDependencyVersion) {
dependencies[missingPackage] = stripWorkspaceFromVersion(internalDependencyVersion);
}
}
for (const [packageName, version] of Object.entries(resolvedPackageVersions)) {
dependencies[packageName] = version;
}
if (config.additionalPackages) {
for (const packageName of config.additionalPackages) {
if (dependencies[packageName]) {
for (const file of imports) {
if ((file.kind !== "require-call" && file.kind !== "dynamic-import") || !file.external) {
continue;
}
const packageParts = parsePackageName(packageName);
const packageName = detectPackageNameFromImportPath(file.path);
if (packageParts.version) {
dependencies[packageParts.name] = packageParts.version;
if (!packageName) {
continue;
} else {
const externalDependencyVersion = await project.resolve(packageParts.name, {
allowDev: true,
});
}
if (externalDependencyVersion) {
dependencies[packageParts.name] = externalDependencyVersion;
resolvablePackageNames.add(packageName);
}
span.setAttribute("resolvablePackageNames", Array.from(resolvablePackageNames));
const resolvedPackageVersions = await project.resolveAll(Array.from(resolvablePackageNames));
const missingPackages = Array.from(resolvablePackageNames).filter(
(packageName) => !resolvedPackageVersions[packageName]
);
span.setAttributes({
...flattenAttributes(resolvedPackageVersions, "resolvedPackageVersions"),
});
span.setAttribute("missingPackages", missingPackages);
const dependencies: Record<string, string> = {};
for (const missingPackage of missingPackages) {
const internalDependencyVersion =
(packageJson.dependencies as Record<string, string>)[missingPackage] ??
detectDependencyVersion(missingPackage);
if (internalDependencyVersion) {
dependencies[missingPackage] = stripWorkspaceFromVersion(internalDependencyVersion);
}
}
for (const [packageName, version] of Object.entries(resolvedPackageVersions)) {
dependencies[packageName] = version;
}
if (config.additionalPackages) {
span.setAttribute("additionalPackages", config.additionalPackages);
for (const packageName of config.additionalPackages) {
if (dependencies[packageName]) {
continue;
}
const packageParts = parsePackageName(packageName);
if (packageParts.version) {
dependencies[packageParts.name] = packageParts.version;
continue;
} else {
logger.log(
`${chalkWarning("X Warning:")} Could not find version for package ${chalkPurple(
packageName
)}, add a version specifier to the package name (e.g. ${
packageParts.name
}@latest) or add it to your project's package.json`
);
const externalDependencyVersion = await project.resolve(packageParts.name, {
allowDev: true,
});
if (externalDependencyVersion) {
dependencies[packageParts.name] = externalDependencyVersion;
continue;
} else {
logger.log(
`${chalkWarning("X Warning:")} Could not find version for package ${chalkPurple(
packageName
)}, add a version specifier to the package name (e.g. ${
packageParts.name
}@latest) or add it to your project's package.json`
);
}
}
}
}
}
// Make sure we sort the dependencies by key to ensure consistent hashing
return Object.fromEntries(Object.entries(dependencies).sort(([a], [b]) => a.localeCompare(b)));
if (!dependencies["@trigger.dev/sdk"]) {
logger.debug("Adding missing @trigger.dev/sdk dependency", {
version: packageJson.version,
});
span.setAttribute("addingMissingSDK", packageJson.version);
dependencies["@trigger.dev/sdk"] = packageJson.version;
}
if (!dependencies["@trigger.dev/core"]) {
logger.debug("Adding missing @trigger.dev/core dependency", {
version: packageJson.version,
});
span.setAttribute("addingMissingCore", packageJson.version);
dependencies["@trigger.dev/core"] = packageJson.version;
}
// Make sure we sort the dependencies by key to ensure consistent hashing
const result = Object.fromEntries(
Object.entries(dependencies).sort(([a], [b]) => a.localeCompare(b))
);
span.setAttributes({
...flattenAttributes(result, "dependencies"),
});
span.end();
return result;
});
}
type AdditionalFilesReturn =
+1 -1
View File
@@ -149,7 +149,7 @@ export function bundleDependenciesPlugin(
}
}
logger.ignore(`[${buildIdentifier}] Externalizing ${args.path}`, {
logger.debug(`[${buildIdentifier}] Externalizing ${args.path}`, {
...args,
});
@@ -6,6 +6,9 @@ import { PackageManager, getUserPackageManager } from "./getUserPackageManager";
import { PackageJson } from "type-fest";
import { assertExhaustive } from "./assertExhaustive";
import { builtinModules } from "node:module";
import { tracer } from "../cli/common";
import { recordSpanException } from "@trigger.dev/core/v3/otel";
import { flattenAttributes } from "@trigger.dev/core/v3";
export type ResolveOptions = { allowDev: boolean };
@@ -47,60 +50,81 @@ export class JavascriptProject {
packageNames: string[],
options?: ResolveOptions
): Promise<Record<string, string>> {
const externalPackages = packageNames.filter((packageName) => !isBuiltInModule(packageName));
return tracer.startActiveSpan("JavascriptProject.resolveAll", async (span) => {
const externalPackages = packageNames.filter((packageName) => !isBuiltInModule(packageName));
const opts = { allowDev: false, ...options };
const opts = { allowDev: false, ...options };
const command = await this.#getCommand();
const command = await this.#getCommand();
try {
const versions = await command.resolveDependencyVersions(externalPackages, {
cwd: this.projectPath,
span.setAttributes({
externalPackages,
packageManager: command.name,
});
if (versions) {
logger.debug(`Resolved [${externalPackages.join(", ")}] version using ${command.name}`, {
versions,
try {
const versions = await command.resolveDependencyVersions(externalPackages, {
cwd: this.projectPath,
});
}
// Merge the resolved versions with the package.json dependencies
const missingPackages = externalPackages.filter((packageName) => !versions[packageName]);
const missingPackageVersions: Record<string, string> = {};
for (const packageName of missingPackages) {
const packageJsonVersion = this.packageJson.dependencies?.[packageName];
if (typeof packageJsonVersion === "string") {
logger.debug(`Resolved ${packageName} version using package.json`, {
packageJsonVersion,
if (versions) {
logger.debug(`Resolved [${externalPackages.join(", ")}] version using ${command.name}`, {
versions,
});
missingPackageVersions[packageName] = packageJsonVersion;
span.setAttributes({
...flattenAttributes(versions, "versions"),
});
}
if (opts.allowDev) {
const devPackageJsonVersion = this.packageJson.devDependencies?.[packageName];
// Merge the resolved versions with the package.json dependencies
const missingPackages = externalPackages.filter((packageName) => !versions[packageName]);
const missingPackageVersions: Record<string, string> = {};
if (typeof devPackageJsonVersion === "string") {
logger.debug(`Resolved ${packageName} version using devDependencies`, {
devPackageJsonVersion,
for (const packageName of missingPackages) {
const packageJsonVersion = this.packageJson.dependencies?.[packageName];
if (typeof packageJsonVersion === "string") {
logger.debug(`Resolved ${packageName} version using package.json`, {
packageJsonVersion,
});
missingPackageVersions[packageName] = devPackageJsonVersion;
missingPackageVersions[packageName] = packageJsonVersion;
}
if (opts.allowDev) {
const devPackageJsonVersion = this.packageJson.devDependencies?.[packageName];
if (typeof devPackageJsonVersion === "string") {
logger.debug(`Resolved ${packageName} version using devDependencies`, {
devPackageJsonVersion,
});
missingPackageVersions[packageName] = devPackageJsonVersion;
}
}
}
span.setAttributes({
...flattenAttributes(missingPackageVersions, "missingPackageVersions"),
missingPackages,
});
span.end();
return { ...versions, ...missingPackageVersions };
} catch (error) {
recordSpanException(span, error);
span.end();
logger.debug(`Failed to resolve dependency versions using ${command.name}`, {
packageNames,
error,
});
return {};
}
return { ...versions, ...missingPackageVersions };
} catch (error) {
logger.debug(`Failed to resolve dependency versions using ${command.name}`, {
packageNames,
error,
});
return {};
}
});
}
async resolve(packageName: string, options?: ResolveOptions): Promise<string | undefined> {
@@ -55,7 +55,9 @@ clock.setGlobalClock(durableClock);
const tracer = new TriggerTracer({ tracer: otelTracer, logger: otelLogger });
const consoleInterceptor = new ConsoleInterceptor(
otelLogger,
__PROJECT_CONFIG__.enableConsoleLogging ?? false
typeof __PROJECT_CONFIG__.enableConsoleLogging === "boolean"
? __PROJECT_CONFIG__.enableConsoleLogging
: true
);
const devRuntimeManager = new DevRuntimeManager();
@@ -73,7 +75,7 @@ const configLogLevel = triggerLogLevel
const otelTaskLogger = new OtelTaskLogger({
logger: otelLogger,
tracer: tracer,
level: logLevels.includes(configLogLevel as any) ? (configLogLevel as LogLevel) : "log",
level: logLevels.includes(configLogLevel as any) ? (configLogLevel as LogLevel) : "info",
});
logger.setGlobalTaskLogger(otelTaskLogger);
@@ -62,7 +62,7 @@ const configLogLevel = triggerLogLevel
const otelTaskLogger = new OtelTaskLogger({
logger: otelLogger,
tracer: tracer,
level: logLevels.includes(configLogLevel as any) ? (configLogLevel as LogLevel) : "log",
level: logLevels.includes(configLogLevel as any) ? (configLogLevel as LogLevel) : "info",
});
logger.setGlobalTaskLogger(otelTaskLogger);
+18
View File
@@ -1,5 +1,23 @@
# create-trigger
## 3.0.0-beta.28
### Patch Changes
- Updated dependencies [d490bc5cb]
- Updated dependencies [6d9dfbc75]
- @trigger.dev/core@3.0.0-beta.28
- @trigger.dev/yalt@3.0.0-beta.28
## 3.0.0-beta.27
### Patch Changes
- Updated dependencies [1670c4c41]
- Updated dependencies [203e00208]
- @trigger.dev/core@3.0.0-beta.27
- @trigger.dev/yalt@3.0.0-beta.27
## 3.0.0-beta.26
### Patch Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/cli",
"version": "3.0.0-beta.26",
"version": "3.0.0-beta.28",
"description": "The Trigger.dev CLI",
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
+4
View File
@@ -1,5 +1,9 @@
# @trigger.dev/core-apps
## 3.0.0-beta.28
## 3.0.0-beta.27
## 3.0.0-beta.26
## 3.0.0-beta.25
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@trigger.dev/core-apps",
"description": "Backend core code used across apps",
"version": "3.0.0-beta.26",
"version": "3.0.0-beta.28",
"private": true,
"license": "MIT",
"main": "./dist/index.js",
+4
View File
@@ -1,5 +1,9 @@
# @trigger.dev/core-backend
## 3.0.0-beta.28
## 3.0.0-beta.27
## 3.0.0-beta.26
## 3.0.0-beta.25
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/core-backend",
"version": "3.0.0-beta.26",
"version": "3.0.0-beta.28",
"description": "Core code used across `@trigger.dev/sdk` and Trigger.dev server",
"license": "MIT",
"main": "./dist/index.js",
+14
View File
@@ -1,5 +1,19 @@
# internal-platform
## 3.0.0-beta.28
### Patch Changes
- d490bc5cb: Add the "log" level back in as an alias to "info"
- 6d9dfbc75: Add configure function to be able to configure the SDK manually
## 3.0.0-beta.27
### Patch Changes
- 1670c4c41: Remove "log" Log Level, unify log and info messages under the "info" log level
- 203e00208: Add runs.retrieve management API method to get info about a run by run ID
## 3.0.0-beta.26
## 3.0.0-beta.25
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/core",
"version": "3.0.0-beta.26",
"version": "3.0.0-beta.28",
"description": "Core code used across the Trigger.dev SDK and platform",
"license": "MIT",
"main": "./dist/index.js",
+13 -41
View File
@@ -11,6 +11,7 @@ import {
ListScheduleOptions,
ListSchedulesResult,
ReplayRunResponse,
RetrieveRunResponse,
ScheduleObject,
TaskRunExecutionResult,
TriggerTaskRequestBody,
@@ -133,6 +134,18 @@ export class ApiClient {
);
}
retrieveRun(runId: string) {
return zodfetch(
RetrieveRunResponse,
`${this.baseUrl}/api/v3/runs/${runId}`,
{
method: "GET",
headers: this.#getHeaders(false),
},
zodFetchOptions
);
}
replayRun(runId: string) {
return zodfetch(
ReplayRunResponse,
@@ -240,44 +253,3 @@ export class ApiClient {
return headers;
}
}
type ApiClientContext = {
baseURL: string;
accessToken: string;
};
export class ApiClientManager {
private _storage: SafeAsyncLocalStorage<ApiClientContext> =
new SafeAsyncLocalStorage<ApiClientContext>();
get baseURL(): string | undefined {
const store = this.#getStore();
return store?.baseURL ?? getEnvVar("TRIGGER_API_URL") ?? "https://api.trigger.dev";
}
get accessToken(): string | undefined {
const store = this.#getStore();
return store?.accessToken ?? getEnvVar("TRIGGER_SECRET_KEY");
}
get client(): ApiClient | undefined {
if (!this.baseURL || !this.accessToken) {
return undefined;
}
return new ApiClient(this.baseURL, this.accessToken);
}
runWith<R extends (...args: any[]) => Promise<any>>(
context: ApiClientContext,
fn: R
): Promise<ReturnType<R>> {
return this._storage.runWith(context, fn);
}
#getStore(): ApiClientContext | undefined {
return this._storage.getStore();
}
}
export const apiClientManager = new ApiClientManager();
@@ -0,0 +1,7 @@
// Split module-level variable definition into separate files to allow
// tree-shaking on each api instance.
import { APIClientManagerAPI } from "./apiClientManager";
/** Entrypoint for logger API */
export const apiClientManager = APIClientManagerAPI.getInstance();
export type { ApiClientConfiguration } from "./apiClientManager/types";
@@ -0,0 +1,50 @@
import { ApiClient } from "../apiClient";
import { getGlobal, registerGlobal, unregisterGlobal } from "../utils/globals";
import { getEnvVar } from "../utils/getEnv";
import { ApiClientConfiguration } from "./types";
const API_NAME = "api-client";
export class APIClientManagerAPI {
private static _instance?: APIClientManagerAPI;
private constructor() {}
public static getInstance(): APIClientManagerAPI {
if (!this._instance) {
this._instance = new APIClientManagerAPI();
}
return this._instance;
}
public disable() {
unregisterGlobal(API_NAME);
}
public setGlobalAPIClientConfiguration(config: ApiClientConfiguration): boolean {
return registerGlobal(API_NAME, config);
}
get baseURL(): string | undefined {
const store = this.#getConfig();
return store?.baseURL ?? getEnvVar("TRIGGER_API_URL") ?? "https://api.trigger.dev";
}
get accessToken(): string | undefined {
const store = this.#getConfig();
return store?.secretKey ?? getEnvVar("TRIGGER_SECRET_KEY");
}
get client(): ApiClient | undefined {
if (!this.baseURL || !this.accessToken) {
return undefined;
}
return new ApiClient(this.baseURL, this.accessToken);
}
#getConfig(): ApiClientConfiguration | undefined {
return getGlobal(API_NAME);
}
}
@@ -0,0 +1,4 @@
export type ApiClientConfiguration = {
baseURL?: string;
secretKey?: string;
};
+1
View File
@@ -6,6 +6,7 @@ export * from "./limits";
export * from "./logger-api";
export * from "./runtime-api";
export * from "./task-context-api";
export * from "./apiClientManager-api";
export * from "./schemas";
export { SemanticInternalAttributes } from "./semanticInternalAttributes";
export * from "./task-catalog-api";
+7 -7
View File
@@ -7,9 +7,9 @@ import { flattenAttributes } from "../utils/flattenAttributes";
import { ClockTime } from "../clock/clock";
import { clock } from "../clock-api";
export type LogLevel = "none" | "log" | "error" | "warn" | "info" | "debug";
export type LogLevel = "none" | "error" | "warn" | "info" | "debug" | "log";
export const logLevels: Array<LogLevel> = ["none", "error", "warn", "log", "info", "debug"];
export const logLevels: Array<LogLevel> = ["none", "error", "warn", "info", "debug"];
export type TaskLoggerConfig = {
logger: Logger;
@@ -34,31 +34,31 @@ export class OtelTaskLogger implements TaskLogger {
}
debug(message: string, properties?: Record<string, unknown>) {
if (this._level < 5) return;
if (this._level < 4) return; // ["none", "error", "warn", "info", "debug"];
this.#emitLog(message, this.#getTimestampInHrTime(), "debug", SeverityNumber.DEBUG, properties);
}
log(message: string, properties?: Record<string, unknown>) {
if (this._level < 3) return;
if (this._level < 3) return; // ["none", "error", "warn", "info", "debug"];
this.#emitLog(message, this.#getTimestampInHrTime(), "log", SeverityNumber.INFO, properties);
}
info(message: string, properties?: Record<string, unknown>) {
if (this._level < 4) return;
if (this._level < 3) return; // ["none", "error", "warn", "info", "debug"];
this.#emitLog(message, this.#getTimestampInHrTime(), "info", SeverityNumber.INFO, properties);
}
warn(message: string, properties?: Record<string, unknown>) {
if (this._level < 2) return;
if (this._level < 2) return; // ["none", "error", "warn", "info", "debug"];
this.#emitLog(message, this.#getTimestampInHrTime(), "warn", SeverityNumber.WARN, properties);
}
error(message: string, properties?: Record<string, unknown>) {
if (this._level < 1) return;
if (this._level < 1) return; // ["none", "error", "warn", "info", "debug"];
this.#emitLog(message, this.#getTimestampInHrTime(), "error", SeverityNumber.ERROR, properties);
}
+46
View File
@@ -318,3 +318,49 @@ export const ListScheduleOptions = z.object({
});
export type ListScheduleOptions = z.infer<typeof ListScheduleOptions>;
export const RunStatus = z.enum([
"PENDING",
"EXECUTING",
"PAUSED",
"COMPLETED",
"FAILED",
"CANCELED",
]);
export type RunStatus = z.infer<typeof RunStatus>;
export const AttemptStatus = z.enum([
"PENDING",
"EXECUTING",
"PAUSED",
"COMPLETED",
"FAILED",
"CANCELED",
]);
export type AttemptStatus = z.infer<typeof AttemptStatus>;
export const RetrieveRunResponse = z.object({
id: z.string(),
status: RunStatus,
taskIdentifier: z.string(),
idempotencyKey: z.string().optional(),
version: z.string().optional(),
createdAt: z.coerce.date(),
updatedAt: z.coerce.date(),
attempts: z.array(
z
.object({
id: z.string(),
status: AttemptStatus,
createdAt: z.coerce.date(),
updatedAt: z.coerce.date(),
startedAt: z.coerce.date().optional(),
completedAt: z.coerce.date().optional(),
})
.optional()
),
});
export type RetrieveRunResponse = z.infer<typeof RetrieveRunResponse>;
+2 -2
View File
@@ -37,11 +37,11 @@ export interface ProjectConfig {
instrumentations?: InstrumentationOption[];
/**
* Set the log level for the logger. Defaults to "log", so you will see "log", "warn", and "error" messages, but not "info", or "debug" messages.
* Set the log level for the logger. Defaults to "info", so you will see "log", "info", "warn", and "error" messages, but not "debug" messages.
*
* We automatically set the logLevel to "debug" during test runs
*
* @default "log"
* @default "info"
*/
logLevel?: LogLevel;
+2
View File
@@ -1,3 +1,4 @@
import { ApiClientConfiguration } from "../apiClientManager/types";
import { Clock } from "../clock/clock";
import type { RuntimeManager } from "../runtime/manager";
import { TaskCatalog } from "../task-catalog/catalog";
@@ -50,4 +51,5 @@ type TriggerDotDevGlobalAPI = {
clock?: Clock;
["task-catalog"]?: TaskCatalog;
["task-context"]?: TaskContext;
["api-client"]?: ApiClientConfiguration;
};
@@ -1,9 +1,9 @@
import { Attributes, Span } from "@opentelemetry/api";
import { apiClientManager } from "../apiClient";
import { OFFLOAD_IO_PACKET_LENGTH_LIMIT, imposeAttributeLimits } from "../limits";
import { SemanticInternalAttributes } from "../semanticInternalAttributes";
import { TriggerTracer } from "../tracer";
import { flattenAttributes } from "./flattenAttributes";
import { apiClientManager } from "../apiClientManager-api";
export type IOPacket = {
data?: string | undefined;
+4
View File
@@ -1,5 +1,9 @@
# @trigger.dev/eslint-plugin
## 3.0.0-beta.28
## 3.0.0-beta.27
## 3.0.0-beta.26
## 3.0.0-beta.25
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/eslint-plugin",
"version": "3.0.0-beta.26",
"version": "3.0.0-beta.28",
"description": "ESLint plugin with trigger.dev best practices",
"keywords": [
"eslint",
+14
View File
@@ -1,5 +1,19 @@
# @trigger.dev/express
## 3.0.0-beta.28
### Patch Changes
- Updated dependencies [6d9dfbc75]
- @trigger.dev/sdk@3.0.0-beta.28
## 3.0.0-beta.27
### Patch Changes
- Updated dependencies [203e00208]
- @trigger.dev/sdk@3.0.0-beta.27
## 3.0.0-beta.26
### Patch Changes
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/express",
"version": "3.0.0-beta.26",
"version": "3.0.0-beta.28",
"description": "Official Express adapter for Trigger.dev",
"license": "MIT",
"main": "./dist/index.js",
@@ -23,7 +23,7 @@
"./package.json": "./package.json"
},
"devDependencies": {
"@trigger.dev/sdk": "workspace:^3.0.0-beta.26",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.28",
"@trigger.dev/tsconfig": "workspace:*",
"@types/debug": "^4.1.7",
"@types/express": "^4.17.13",
@@ -39,7 +39,7 @@
"build:tsup": "tsup"
},
"peerDependencies": {
"@trigger.dev/sdk": "workspace:^3.0.0-beta.26"
"@trigger.dev/sdk": "workspace:^3.0.0-beta.28"
},
"dependencies": {
"debug": "^4.3.4",
+14
View File
@@ -1,5 +1,19 @@
# @trigger.dev/hono
## 3.0.0-beta.28
### Patch Changes
- Updated dependencies [6d9dfbc75]
- @trigger.dev/sdk@3.0.0-beta.28
## 3.0.0-beta.27
### Patch Changes
- Updated dependencies [203e00208]
- @trigger.dev/sdk@3.0.0-beta.27
## 3.0.0-beta.26
### Patch Changes
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/hono",
"version": "3.0.0-beta.26",
"version": "3.0.0-beta.28",
"description": "A Trigger.dev adapter for Hono.dev",
"license": "MIT",
"main": "./dist/index.js",
@@ -32,7 +32,7 @@
},
"peerDependencies": {
"hono": "3.x",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.26"
"@trigger.dev/sdk": "workspace:^3.0.0-beta.28"
},
"devDependencies": {
"@trigger.dev/tsconfig": "workspace:*",
+16
View File
@@ -1,5 +1,21 @@
# @trigger.dev/integration-kit
## 3.0.0-beta.28
### Patch Changes
- Updated dependencies [d490bc5cb]
- Updated dependencies [6d9dfbc75]
- @trigger.dev/core@3.0.0-beta.28
## 3.0.0-beta.27
### Patch Changes
- Updated dependencies [1670c4c41]
- Updated dependencies [203e00208]
- @trigger.dev/core@3.0.0-beta.27
## 3.0.0-beta.26
### Patch Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/integration-kit",
"version": "3.0.0-beta.26",
"version": "3.0.0-beta.28",
"description": "Trigger.dev Integration Kit has helpers to make creating integrations easier",
"license": "MIT",
"main": "./dist/index.js",
+14
View File
@@ -1,5 +1,19 @@
# @trigger.dev/nestjs
## 3.0.0-beta.28
### Patch Changes
- Updated dependencies [6d9dfbc75]
- @trigger.dev/sdk@3.0.0-beta.28
## 3.0.0-beta.27
### Patch Changes
- Updated dependencies [203e00208]
- @trigger.dev/sdk@3.0.0-beta.27
## 3.0.0-beta.26
### Patch Changes
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/nestjs",
"version": "3.0.0-beta.26",
"version": "3.0.0-beta.28",
"description": "Official NestJS adapter for Trigger.dev",
"license": "MIT",
"main": "./dist/index.js",
@@ -23,7 +23,7 @@
"./package.json": "./package.json"
},
"devDependencies": {
"@trigger.dev/sdk": "workspace:^3.0.0-beta.26",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.28",
"@trigger.dev/tsconfig": "workspace:*",
"@types/debug": "^4.1.7",
"@types/express": "^4.17.13",
@@ -41,7 +41,7 @@
},
"peerDependencies": {
"@nestjs/common": ">=10.0.0",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.26"
"@trigger.dev/sdk": "workspace:^3.0.0-beta.28"
},
"dependencies": {
"@nestjs/common": "^10.2.4",
+14
View File
@@ -1,5 +1,19 @@
# @trigger.dev/nextjs
## 3.0.0-beta.28
### Patch Changes
- Updated dependencies [6d9dfbc75]
- @trigger.dev/sdk@3.0.0-beta.28
## 3.0.0-beta.27
### Patch Changes
- Updated dependencies [203e00208]
- @trigger.dev/sdk@3.0.0-beta.27
## 3.0.0-beta.26
### Patch Changes
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/nextjs",
"version": "3.0.0-beta.26",
"version": "3.0.0-beta.28",
"description": "Trigger.dev Next.js integration",
"license": "MIT",
"main": "./dist/index.js",
@@ -41,7 +41,7 @@
"build:tsup": "tsup"
},
"peerDependencies": {
"@trigger.dev/sdk": "workspace:^3.0.0-beta.26",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.28",
"next": ">=12.0.0"
},
"dependencies": {
+4
View File
@@ -1,5 +1,9 @@
# @trigger.dev/otlp-importer
## 3.0.0-beta.28
## 3.0.0-beta.27
## 3.0.0-beta.26
## 3.0.0-beta.25
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/otlp-importer",
"version": "3.0.0-beta.26",
"version": "3.0.0-beta.28",
"description": "OpenTelemetry OTLP Importer for Node.js written in TypeScript",
"license": "MIT",
"main": "./dist/index.js",
+16
View File
@@ -1,5 +1,21 @@
# @trigger.dev/react
## 3.0.0-beta.28
### Patch Changes
- Updated dependencies [d490bc5cb]
- Updated dependencies [6d9dfbc75]
- @trigger.dev/core@3.0.0-beta.28
## 3.0.0-beta.27
### Patch Changes
- Updated dependencies [1670c4c41]
- Updated dependencies [203e00208]
- @trigger.dev/core@3.0.0-beta.27
## 3.0.0-beta.26
### Patch Changes
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/react",
"version": "3.0.0-beta.26",
"version": "3.0.0-beta.28",
"description": "Trigger.dev React SDK",
"license": "MIT",
"types": "dist/index.d.ts",
@@ -27,7 +27,7 @@
},
"dependencies": {
"@tanstack/react-query": "5.0.0-beta.2",
"@trigger.dev/core": "workspace:^3.0.0-beta.26",
"@trigger.dev/core": "workspace:^3.0.0-beta.28",
"debug": "^4.3.4",
"zod": "3.22.3"
},
+14
View File
@@ -1,5 +1,19 @@
# @trigger.dev/remix
## 3.0.0-beta.28
### Patch Changes
- Updated dependencies [6d9dfbc75]
- @trigger.dev/sdk@3.0.0-beta.28
## 3.0.0-beta.27
### Patch Changes
- Updated dependencies [203e00208]
- @trigger.dev/sdk@3.0.0-beta.27
## 3.0.0-beta.26
### Patch Changes
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/remix",
"version": "3.0.0-beta.26",
"version": "3.0.0-beta.28",
"description": "Trigger.dev Remix integration",
"license": "MIT",
"main": "./dist/index.js",
@@ -39,7 +39,7 @@
"build:tsup": "tsup"
},
"peerDependencies": {
"@trigger.dev/sdk": "workspace:^3.0.0-beta.26",
"@trigger.dev/sdk": "workspace:^3.0.0-beta.28",
"@remix-run/server-runtime": ">1.19.0"
},
"dependencies": {
+14
View File
@@ -1,5 +1,19 @@
# @trigger.dev/sveltekit
## 3.0.0-beta.28
### Patch Changes
- Updated dependencies [6d9dfbc75]
- @trigger.dev/sdk@3.0.0-beta.28
## 3.0.0-beta.27
### Patch Changes
- Updated dependencies [203e00208]
- @trigger.dev/sdk@3.0.0-beta.27
## 3.0.0-beta.26
### Patch Changes
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/sveltekit",
"version": "3.0.0-beta.26",
"version": "3.0.0-beta.28",
"description": "Trigger.dev svelteKit integration",
"license": "MIT",
"main": "./dist/index.js",
@@ -39,7 +39,7 @@
"build:tsup": "tsup"
},
"peerDependencies": {
"@trigger.dev/sdk": "workspace:^3.0.0-beta.26"
"@trigger.dev/sdk": "workspace:^3.0.0-beta.28"
},
"dependencies": {
"debug": "^4.3.4"
+18
View File
@@ -1,5 +1,23 @@
# @trigger.dev/testing
## 3.0.0-beta.28
### Patch Changes
- Updated dependencies [d490bc5cb]
- Updated dependencies [6d9dfbc75]
- @trigger.dev/core@3.0.0-beta.28
- @trigger.dev/sdk@3.0.0-beta.28
## 3.0.0-beta.27
### Patch Changes
- Updated dependencies [1670c4c41]
- Updated dependencies [203e00208]
- @trigger.dev/core@3.0.0-beta.27
- @trigger.dev/sdk@3.0.0-beta.27
## 3.0.0-beta.26
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@trigger.dev/testing",
"description": "A collection of useful tools to write tests for Trigger.dev.",
"version": "3.0.0-beta.26",
"version": "3.0.0-beta.28",
"license": "MIT",
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
+20
View File
@@ -1,5 +1,25 @@
# @trigger.dev/sdk
## 3.0.0-beta.28
### Patch Changes
- 6d9dfbc75: Add configure function to be able to configure the SDK manually
- Updated dependencies [d490bc5cb]
- Updated dependencies [6d9dfbc75]
- @trigger.dev/core@3.0.0-beta.28
- @trigger.dev/core-backend@3.0.0-beta.28
## 3.0.0-beta.27
### Patch Changes
- 203e00208: Add runs.retrieve management API method to get info about a run by run ID
- Updated dependencies [1670c4c41]
- Updated dependencies [203e00208]
- @trigger.dev/core@3.0.0-beta.27
- @trigger.dev/core-backend@3.0.0-beta.27
## 3.0.0-beta.26
### Patch Changes
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/sdk",
"version": "3.0.0-beta.26",
"version": "3.0.0-beta.28",
"description": "trigger.dev Node.JS SDK",
"license": "MIT",
"main": "./dist/index.js",
@@ -48,8 +48,8 @@
"@opentelemetry/api": "^1.8.0",
"@opentelemetry/api-logs": "^0.48.0",
"@opentelemetry/semantic-conventions": "^1.22.0",
"@trigger.dev/core": "workspace:3.0.0-beta.26",
"@trigger.dev/core-backend": "workspace:3.0.0-beta.26",
"@trigger.dev/core": "workspace:3.0.0-beta.28",
"@trigger.dev/core-backend": "workspace:3.0.0-beta.28",
"chalk": "^5.2.0",
"cronstrue": "^2.21.0",
"debug": "^4.3.4",
+40 -14
View File
@@ -1,26 +1,52 @@
export * from "./tasks";
export * from "./config";
export * from "./wait";
export * from "./cache";
export * from "./config";
export { retry, type RetryOptions } from "./retry";
export { queue } from "./shared";
import type { Context } from "./shared";
export * from "./tasks";
export * from "./wait";
export type { Context };
import type { Context } from "./shared";
import type { ApiClientConfiguration } from "@trigger.dev/core/v3";
import { apiClientManager } from "@trigger.dev/core/v3";
export type { ApiClientConfiguration };
export {
APIError,
AuthenticationError,
BadRequestError,
ConflictError,
InternalServerError,
NotFoundError,
PermissionDeniedError,
RateLimitError,
UnprocessableEntityError,
logger,
type LogLevel,
APIError,
BadRequestError,
AuthenticationError,
PermissionDeniedError,
NotFoundError,
ConflictError,
UnprocessableEntityError,
RateLimitError,
InternalServerError,
} from "@trigger.dev/core/v3";
export { runs } from "./management";
export * as schedules from "./schedules";
/**
* Register the global API client configuration. Alternatively, you can set the `TRIGGER_SECRET_KEY` and `TRIGGER_API_URL` environment variables.
* @param options The API client configuration.
* @param options.baseURL The base URL of the Trigger API. (default: `https://api.trigger.dev`)
* @param options.secretKey The secret key to authenticate with the Trigger API. (default: `process.env.TRIGGER_SECRET_KEY`) This can be found in your Trigger.dev project "API Keys" settings.
*
* @example
*
* ```typescript
* import { configure } from "@trigger.dev/sdk/v3";
*
* configure({
* baseURL: "https://api.trigger.dev",
* secretKey: "tr_dev_1234567890"
* });
* ```
*/
export function configure(options: ApiClientConfiguration) {
apiClientManager.setGlobalAPIClientConfiguration(options);
}
+17 -1
View File
@@ -1,11 +1,27 @@
import { CanceledRunResponse, ReplayRunResponse, apiClientManager } from "@trigger.dev/core/v3";
import {
CanceledRunResponse,
ReplayRunResponse,
RetrieveRunResponse,
apiClientManager,
} from "@trigger.dev/core/v3";
import { apiClientMissingError } from "./shared";
export const runs = {
replay: replayRun,
cancel: cancelRun,
retrieve: retrieveRun,
};
async function retrieveRun(runId: string): Promise<RetrieveRunResponse> {
const apiClient = apiClientManager.client;
if (!apiClient) {
throw apiClientMissingError();
}
return await apiClient.retrieveRun(runId);
}
async function replayRun(runId: string): Promise<ReplayRunResponse> {
const apiClient = apiClientManager.client;
+4
View File
@@ -1,5 +1,9 @@
# @trigger.dev/yalt
## 3.0.0-beta.28
## 3.0.0-beta.27
## 3.0.0-beta.26
## 3.0.0-beta.25
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/yalt",
"version": "3.0.0-beta.26",
"version": "3.0.0-beta.28",
"description": "yalt.dev client library",
"license": "MIT",
"main": "./dist/index.js",
+75 -45
View File
@@ -845,10 +845,10 @@ importers:
integrations/airtable:
dependencies:
'@trigger.dev/integration-kit':
specifier: workspace:^3.0.0-beta.26
specifier: workspace:^3.0.0-beta.28
version: link:../../packages/integration-kit
'@trigger.dev/sdk':
specifier: workspace:^3.0.0-beta.26
specifier: workspace:^3.0.0-beta.28
version: link:../../packages/trigger-sdk
airtable:
specifier: ^0.12.1
@@ -888,10 +888,10 @@ importers:
specifier: ^12.0.10
version: 12.0.10
'@trigger.dev/integration-kit':
specifier: workspace:^3.0.0-beta.26
specifier: workspace:^3.0.0-beta.28
version: link:../../packages/integration-kit
'@trigger.dev/sdk':
specifier: workspace:^3.0.0-beta.26
specifier: workspace:^3.0.0-beta.28
version: link:../../packages/trigger-sdk
octokit:
specifier: ^3.1.2
@@ -931,10 +931,10 @@ importers:
specifier: ^8.0.0
version: 8.0.0
'@trigger.dev/integration-kit':
specifier: workspace:^3.0.0-beta.26
specifier: workspace:^3.0.0-beta.28
version: link:../../packages/integration-kit
'@trigger.dev/sdk':
specifier: workspace:^3.0.0-beta.26
specifier: workspace:^3.0.0-beta.28
version: link:../../packages/trigger-sdk
zod:
specifier: 3.22.3
@@ -962,10 +962,10 @@ importers:
integrations/openai:
dependencies:
'@trigger.dev/integration-kit':
specifier: workspace:^3.0.0-beta.26
specifier: workspace:^3.0.0-beta.28
version: link:../../packages/integration-kit
'@trigger.dev/sdk':
specifier: workspace:^3.0.0-beta.26
specifier: workspace:^3.0.0-beta.28
version: link:../../packages/trigger-sdk
openai:
specifier: ^4.16.1
@@ -1005,10 +1005,10 @@ importers:
specifier: ^2.7.0
version: 2.7.0
'@trigger.dev/integration-kit':
specifier: workspace:^3.0.0-beta.26
specifier: workspace:^3.0.0-beta.28
version: link:../../packages/integration-kit
'@trigger.dev/sdk':
specifier: workspace:^3.0.0-beta.26
specifier: workspace:^3.0.0-beta.28
version: link:../../packages/trigger-sdk
devDependencies:
'@trigger.dev/tsconfig':
@@ -1033,10 +1033,10 @@ importers:
integrations/replicate:
dependencies:
'@trigger.dev/integration-kit':
specifier: workspace:^3.0.0-beta.26
specifier: workspace:^3.0.0-beta.28
version: link:../../packages/integration-kit
'@trigger.dev/sdk':
specifier: workspace:^3.0.0-beta.26
specifier: workspace:^3.0.0-beta.28
version: link:../../packages/trigger-sdk
replicate:
specifier: ^0.18.1
@@ -1067,10 +1067,10 @@ importers:
integrations/resend:
dependencies:
'@trigger.dev/integration-kit':
specifier: workspace:^3.0.0-beta.26
specifier: workspace:^3.0.0-beta.28
version: link:../../packages/integration-kit
'@trigger.dev/sdk':
specifier: workspace:^3.0.0-beta.26
specifier: workspace:^3.0.0-beta.28
version: link:../../packages/trigger-sdk
resend:
specifier: ^2.1.0
@@ -1101,10 +1101,10 @@ importers:
specifier: ^7.7.0
version: 7.7.0
'@trigger.dev/integration-kit':
specifier: workspace:^3.0.0-beta.26
specifier: workspace:^3.0.0-beta.28
version: link:../../packages/integration-kit
'@trigger.dev/sdk':
specifier: workspace:^3.0.0-beta.26
specifier: workspace:^3.0.0-beta.28
version: link:../../packages/trigger-sdk
devDependencies:
'@trigger.dev/tsconfig':
@@ -1132,10 +1132,10 @@ importers:
specifier: ^8.0.2
version: 8.0.2
'@trigger.dev/integration-kit':
specifier: workspace:^3.0.0-beta.26
specifier: workspace:^3.0.0-beta.28
version: link:../../packages/integration-kit
'@trigger.dev/sdk':
specifier: workspace:^3.0.0-beta.26
specifier: workspace:^3.0.0-beta.28
version: link:../../packages/trigger-sdk
zod:
specifier: 3.22.3
@@ -1166,7 +1166,7 @@ importers:
specifier: ^6.8.1
version: 6.8.1
'@trigger.dev/sdk':
specifier: workspace:^3.0.0-beta.26
specifier: workspace:^3.0.0-beta.28
version: link:../../packages/trigger-sdk
zod:
specifier: 3.22.3
@@ -1194,10 +1194,10 @@ importers:
integrations/stripe:
dependencies:
'@trigger.dev/integration-kit':
specifier: workspace:^3.0.0-beta.26
specifier: workspace:^3.0.0-beta.28
version: link:../../packages/integration-kit
'@trigger.dev/sdk':
specifier: workspace:^3.0.0-beta.26
specifier: workspace:^3.0.0-beta.28
version: link:../../packages/trigger-sdk
stripe:
specifier: ^12.14.0
@@ -1231,10 +1231,10 @@ importers:
specifier: ^2.26.0
version: 2.31.0
'@trigger.dev/integration-kit':
specifier: workspace:^3.0.0-beta.26
specifier: workspace:^3.0.0-beta.28
version: link:../../packages/integration-kit
'@trigger.dev/sdk':
specifier: workspace:^3.0.0-beta.26
specifier: workspace:^3.0.0-beta.28
version: link:../../packages/trigger-sdk
supabase-management-js:
specifier: ^1.0.0
@@ -1265,10 +1265,10 @@ importers:
integrations/typeform:
dependencies:
'@trigger.dev/integration-kit':
specifier: workspace:^3.0.0-beta.26
specifier: workspace:^3.0.0-beta.28
version: link:../../packages/integration-kit
'@trigger.dev/sdk':
specifier: workspace:^3.0.0-beta.26
specifier: workspace:^3.0.0-beta.28
version: link:../../packages/trigger-sdk
'@typeform/api-client':
specifier: ^1.8.0
@@ -1296,7 +1296,7 @@ importers:
packages/astro:
dependencies:
'@trigger.dev/sdk':
specifier: workspace:^3.0.0-beta.26
specifier: workspace:^3.0.0-beta.28
version: link:../trigger-sdk
debug:
specifier: ^4.3.4
@@ -1514,7 +1514,7 @@ importers:
specifier: ^1.22.0
version: 1.22.0
'@trigger.dev/core':
specifier: workspace:3.0.0-beta.26
specifier: workspace:3.0.0-beta.28
version: link:../core
'@types/degit':
specifier: ^2.8.3
@@ -1956,7 +1956,7 @@ importers:
version: 4.18.2
devDependencies:
'@trigger.dev/sdk':
specifier: workspace:^3.0.0-beta.26
specifier: workspace:^3.0.0-beta.28
version: link:../trigger-sdk
'@trigger.dev/tsconfig':
specifier: workspace:*
@@ -2051,7 +2051,7 @@ importers:
version: 4.3.4(supports-color@8.1.1)
devDependencies:
'@trigger.dev/sdk':
specifier: workspace:^3.0.0-beta.26
specifier: workspace:^3.0.0-beta.28
version: link:../trigger-sdk
'@trigger.dev/tsconfig':
specifier: workspace:*
@@ -2084,7 +2084,7 @@ importers:
packages/nextjs:
dependencies:
'@trigger.dev/sdk':
specifier: workspace:^3.0.0-beta.26
specifier: workspace:^3.0.0-beta.28
version: link:../trigger-sdk
debug:
specifier: ^4.3.4
@@ -2170,7 +2170,7 @@ importers:
specifier: 5.0.0-beta.2
version: 5.0.0-beta.2(react@18.2.0)
'@trigger.dev/core':
specifier: workspace:^3.0.0-beta.26
specifier: workspace:^3.0.0-beta.28
version: link:../core
debug:
specifier: ^4.3.4
@@ -2213,7 +2213,7 @@ importers:
packages/remix:
dependencies:
'@trigger.dev/sdk':
specifier: workspace:^3.0.0-beta.26
specifier: workspace:^3.0.0-beta.28
version: link:../trigger-sdk
debug:
specifier: ^4.3.4
@@ -2250,7 +2250,7 @@ importers:
packages/sveltekit:
dependencies:
'@trigger.dev/sdk':
specifier: workspace:^3.0.0-beta.26
specifier: workspace:^3.0.0-beta.28
version: link:../trigger-sdk
debug:
specifier: ^4.3.4
@@ -2324,10 +2324,10 @@ importers:
specifier: ^1.22.0
version: 1.22.0
'@trigger.dev/core':
specifier: workspace:3.0.0-beta.26
specifier: workspace:3.0.0-beta.28
version: link:../core
'@trigger.dev/core-backend':
specifier: workspace:3.0.0-beta.26
specifier: workspace:3.0.0-beta.28
version: link:../core-backend
chalk:
specifier: ^5.2.0
@@ -12319,7 +12319,7 @@ packages:
eslint: 8.45.0
eslint-import-resolver-node: 0.3.7
eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.27.5)(eslint@8.45.0)
eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-typescript@3.5.5)(eslint@8.45.0)
eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.6)(eslint@8.45.0)
eslint-plugin-jest: 26.9.0(@typescript-eslint/eslint-plugin@5.59.6)(eslint@8.45.0)(typescript@4.9.5)
eslint-plugin-jest-dom: 4.0.3(eslint@8.45.0)
eslint-plugin-jsx-a11y: 6.7.1(eslint@8.45.0)
@@ -14867,6 +14867,7 @@ packages:
typescript: 4.9.5
transitivePeerDependencies:
- supports-color
dev: true
/@typescript-eslint/parser@5.59.6(eslint@8.45.0)(typescript@5.1.6):
resolution: {integrity: sha512-7pCa6al03Pv1yf/dUg/s1pXz/yGMUBAw5EeWqNTFiSueKvRNonze3hma3lhdsOrQcaOXhbk5gKu2Fludiho9VA==}
@@ -14886,7 +14887,6 @@ packages:
typescript: 5.1.6
transitivePeerDependencies:
- supports-color
dev: false
/@typescript-eslint/parser@5.59.6(eslint@8.45.0)(typescript@5.2.2):
resolution: {integrity: sha512-7pCa6al03Pv1yf/dUg/s1pXz/yGMUBAw5EeWqNTFiSueKvRNonze3hma3lhdsOrQcaOXhbk5gKu2Fludiho9VA==}
@@ -15052,6 +15052,7 @@ packages:
typescript: 4.9.5
transitivePeerDependencies:
- supports-color
dev: true
/@typescript-eslint/typescript-estree@5.59.6(typescript@5.0.4):
resolution: {integrity: sha512-vW6JP3lMAs/Tq4KjdI/RiHaaJSO7IUsbkz17it/Rl9Q+WkQ77EOuOnlbaU8kKfVIOJxMhnRiBG+olE7f3M16DA==}
@@ -15093,7 +15094,6 @@ packages:
typescript: 5.1.6
transitivePeerDependencies:
- supports-color
dev: false
/@typescript-eslint/typescript-estree@5.59.6(typescript@5.2.2):
resolution: {integrity: sha512-vW6JP3lMAs/Tq4KjdI/RiHaaJSO7IUsbkz17it/Rl9Q+WkQ77EOuOnlbaU8kKfVIOJxMhnRiBG+olE7f3M16DA==}
@@ -19452,7 +19452,7 @@ packages:
eslint: 8.45.0
eslint-import-resolver-node: 0.3.7
eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.27.5)(eslint@8.45.0)
eslint-plugin-import: 2.27.5(eslint@8.45.0)
eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-typescript@3.5.5)(eslint@8.45.0)
eslint-plugin-jsx-a11y: 6.7.1(eslint@8.45.0)
eslint-plugin-react: 7.32.2(eslint@8.45.0)
eslint-plugin-react-hooks: 5.0.0-canary-7118f5dd7-20230705(eslint@8.45.0)
@@ -19734,7 +19734,7 @@ packages:
eslint-import-resolver-webpack:
optional: true
dependencies:
'@typescript-eslint/parser': 5.59.6(eslint@8.45.0)(typescript@4.9.5)
'@typescript-eslint/parser': 5.59.6(eslint@8.45.0)(typescript@5.1.6)
debug: 3.2.7(supports-color@5.5.0)
eslint: 8.45.0
eslint-import-resolver-node: 0.3.7
@@ -19742,6 +19742,35 @@ packages:
transitivePeerDependencies:
- supports-color
/eslint-module-utils@2.7.4(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-node@0.3.7)(eslint@8.45.0):
resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==}
engines: {node: '>=4'}
peerDependencies:
'@typescript-eslint/parser': '*'
eslint: '*'
eslint-import-resolver-node: '*'
eslint-import-resolver-typescript: '*'
eslint-import-resolver-webpack: '*'
peerDependenciesMeta:
'@typescript-eslint/parser':
optional: true
eslint:
optional: true
eslint-import-resolver-node:
optional: true
eslint-import-resolver-typescript:
optional: true
eslint-import-resolver-webpack:
optional: true
dependencies:
'@typescript-eslint/parser': 5.59.6(eslint@8.45.0)(typescript@4.9.5)
debug: 3.2.7(supports-color@5.5.0)
eslint: 8.45.0
eslint-import-resolver-node: 0.3.7
transitivePeerDependencies:
- supports-color
dev: true
/eslint-plugin-es@3.0.1(eslint@8.31.0):
resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==}
engines: {node: '>=8.10.0'}
@@ -19851,7 +19880,7 @@ packages:
'@typescript-eslint/parser':
optional: true
dependencies:
'@typescript-eslint/parser': 5.59.6(eslint@8.45.0)(typescript@4.9.5)
'@typescript-eslint/parser': 5.59.6(eslint@8.45.0)(typescript@5.1.6)
array-includes: 3.1.6
array.prototype.flat: 1.3.1
array.prototype.flatmap: 1.3.1
@@ -19873,7 +19902,7 @@ packages:
- eslint-import-resolver-webpack
- supports-color
/eslint-plugin-import@2.27.5(eslint@8.45.0):
/eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.59.6)(eslint@8.45.0):
resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==}
engines: {node: '>=4'}
peerDependencies:
@@ -19883,6 +19912,7 @@ packages:
'@typescript-eslint/parser':
optional: true
dependencies:
'@typescript-eslint/parser': 5.59.6(eslint@8.45.0)(typescript@4.9.5)
array-includes: 3.1.6
array.prototype.flat: 1.3.1
array.prototype.flatmap: 1.3.1
@@ -19890,7 +19920,7 @@ packages:
doctrine: 2.1.0
eslint: 8.45.0
eslint-import-resolver-node: 0.3.7
eslint-module-utils: 2.7.4(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.45.0)
eslint-module-utils: 2.7.4(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-node@0.3.7)(eslint@8.45.0)
has: 1.0.3
is-core-module: 2.13.0
is-glob: 4.0.3
@@ -19903,7 +19933,7 @@ packages:
- eslint-import-resolver-typescript
- eslint-import-resolver-webpack
- supports-color
dev: false
dev: true
/eslint-plugin-jest-dom@4.0.3(eslint@8.31.0):
resolution: {integrity: sha512-9j+n8uj0+V0tmsoS7bYC7fLhQmIvjRqRYEcbDSi+TKPsTThLLXCyj5swMSSf/hTleeMktACnn+HFqXBr5gbcbA==}
@@ -32164,6 +32194,7 @@ packages:
dependencies:
tslib: 1.14.1
typescript: 4.9.5
dev: true
/tsutils@3.21.0(typescript@5.0.4):
resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
@@ -32183,7 +32214,6 @@ packages:
dependencies:
tslib: 1.14.1
typescript: 5.1.6
dev: false
/tsutils@3.21.0(typescript@5.2.2):
resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
+5 -1
View File
@@ -1,4 +1,4 @@
import { APIError, runs, schedules } from "@trigger.dev/sdk/v3";
import { APIError, configure, runs, schedules } from "@trigger.dev/sdk/v3";
import { simpleChildTask } from "./trigger/subtasks";
import dotenv from "dotenv";
import { firstScheduledTask } from "./trigger/scheduled";
@@ -8,6 +8,10 @@ dotenv.config();
export async function run() {
try {
const run = await simpleChildTask.trigger({ message: "Hello, World!" });
const retrievedRun = await runs.retrieve(run.id);
console.log("retrieved run", retrievedRun);
const canceled = await runs.cancel(run.id);
console.log("canceled run", canceled);
+1 -2
View File
@@ -20,8 +20,7 @@ export const config: TriggerConfig = {
additionalFiles: ["./wrangler/wrangler.toml", "./prisma/schema.prisma"],
dependenciesToBundle: [/@sindresorhus/, "escape-string-regexp"],
instrumentations: [new OpenAIInstrumentation()],
logLevel: "log",
enableConsoleLogging: true,
logLevel: "info",
onStart: async (payload, { ctx }) => {
if (ctx.organization.id === "clsylhs0v0002dyx75xx4pod1") {
console.log("Initializing the app data source");