From cf13fbdf32726292cefd7d4d40e8743331685c03 Mon Sep 17 00:00:00 2001 From: Eric Allam Date: Mon, 16 Sep 2024 15:30:32 +0100 Subject: [PATCH] Updating docs for the move from beta -> latest (with new build system) (#1299) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add triggerAndWait().unwrap() to more easily get at the output or throw the subtask error * Add taskId and runId to SubtaskUnwrapError * WIP docs update beta -> latest * trigger.dev init now adds @trigger.dev/build to devDependencies * How it works doc * Restructure some docs and update the cli commands * Config file docs, plus aptGet and ffmpeg extensions * Update to latest from beta docs * Add runtime to templates * Add --runtime option to the init CLI command * A bunch more doc updates after feedback * Document triggerAndWait with unwrap and result types * beta -> latest in the webapp * CLI update check no longer references beta * Add major release * Leave changeset beta, back to normal package release * Fixed default dirs option in init command * exclude windows-yarn variation of cli e2e tests because it’s buggy * Remove cache to try and fix yarn e2e test workflow errors --- .changeset/cuddly-penguins-cross.md | 8 + .changeset/itchy-jars-pay.md | 5 + .changeset/ninety-countries-swim.md | 5 + .changeset/old-feet-brush.md | 5 + .changeset/pre.json | 2 +- .changeset/stale-actors-camp.md | 5 + .changeset/thick-trains-work.md | 5 + .github/workflows/e2e.yml | 5 +- apps/webapp/app/components/SetupCommands.tsx | 2 +- .../route.tsx | 2 +- docs/cli-init-commands.mdx | 18 +- docs/cli-list-profiles-commands.mdx | 12 +- docs/cli-login-commands.mdx | 11 +- docs/cli-logout-commands.mdx | 12 +- docs/cli-update-commands.mdx | 12 +- docs/cli-whoami-commands.mdx | 12 +- docs/config/config-file.mdx | 631 ++++++++++++++++++ docs/config/extensions/custom.mdx | 0 docs/config/extensions/esbuild-plugins.mdx | 0 docs/config/extensions/overview.mdx | 5 + docs/config/extensions/prisma.mdx | 5 + docs/deploy-environment-variables.mdx | 146 ++-- docs/github-actions.mdx | 27 +- docs/guides/bun.mdx | 113 ++++ docs/guides/frameworks/nextjs.mdx | 50 +- docs/guides/frameworks/nodejs.mdx | 22 +- .../supabase-edge-functions-basic.mdx | 10 +- ...abase-edge-functions-database-webhooks.mdx | 10 +- docs/guides/new-build-system-preview.mdx | 2 +- docs/guides/use-cases/upgrading-from-v2.mdx | 2 +- docs/how-it-works.mdx | 452 +++++++++++++ docs/images/opentelemetry-trace.png | Bin 0 -> 510047 bytes docs/management/overview.mdx | 8 +- docs/mint.json | 90 ++- docs/open-source-self-hosting.mdx | 34 +- docs/snippets/cli-commands-deploy.mdx | 76 ++- docs/snippets/cli-commands-develop.mdx | 44 +- docs/snippets/step-cli-dev.mdx | 6 +- docs/snippets/step-cli-init.mdx | 6 +- docs/snippets/trigger-tasks-nextjs.mdx | 14 +- docs/snippets/worker-failed-to-start.mdx | 51 -- .../overview.mdx} | 4 +- .../scheduled.mdx} | 0 docs/trigger-config.mdx | 274 -------- docs/trigger-folder.mdx | 25 - docs/triggering.mdx | 142 ++-- docs/troubleshooting.mdx | 51 +- docs/upgrading-beta.mdx | 431 ++++++++++++ docs/upgrading-packages.mdx | 10 +- packages/build/src/extensions/core.ts | 2 + packages/build/src/extensions/core/aptGet.ts | 27 + packages/build/src/extensions/core/ffmpeg.ts | 40 ++ packages/cli-v3/package.json | 3 +- packages/cli-v3/src/commands/init.ts | 25 +- packages/cli-v3/src/commands/update.ts | 24 +- .../cli-v3/src/utilities/initialBanner.ts | 5 +- .../templates/trigger.config.mjs.template | 1 + .../templates/trigger.config.ts.template | 1 + packages/trigger-sdk/src/v3/shared.ts | 101 ++- packages/trigger-sdk/src/v3/tasks.ts | 3 + pnpm-lock.yaml | 185 +---- references/v3-catalog/package.json | 4 +- references/v3-catalog/src/trigger/binaries.ts | 172 +---- references/v3-catalog/src/trigger/simple.ts | 34 +- references/v3-catalog/trigger.config.ts | 61 +- 65 files changed, 2434 insertions(+), 1116 deletions(-) create mode 100644 .changeset/cuddly-penguins-cross.md create mode 100644 .changeset/itchy-jars-pay.md create mode 100644 .changeset/ninety-countries-swim.md create mode 100644 .changeset/old-feet-brush.md create mode 100644 .changeset/stale-actors-camp.md create mode 100644 .changeset/thick-trains-work.md create mode 100644 docs/config/config-file.mdx create mode 100644 docs/config/extensions/custom.mdx create mode 100644 docs/config/extensions/esbuild-plugins.mdx create mode 100644 docs/config/extensions/overview.mdx create mode 100644 docs/config/extensions/prisma.mdx create mode 100644 docs/guides/bun.mdx create mode 100644 docs/how-it-works.mdx create mode 100644 docs/images/opentelemetry-trace.png delete mode 100644 docs/snippets/worker-failed-to-start.mdx rename docs/{tasks-overview.mdx => tasks/overview.mdx} (98%) rename docs/{tasks-scheduled.mdx => tasks/scheduled.mdx} (100%) delete mode 100644 docs/trigger-config.mdx delete mode 100644 docs/trigger-folder.mdx create mode 100644 docs/upgrading-beta.mdx create mode 100644 packages/build/src/extensions/core/aptGet.ts create mode 100644 packages/build/src/extensions/core/ffmpeg.ts diff --git a/.changeset/cuddly-penguins-cross.md b/.changeset/cuddly-penguins-cross.md new file mode 100644 index 000000000..c4db00256 --- /dev/null +++ b/.changeset/cuddly-penguins-cross.md @@ -0,0 +1,8 @@ +--- +"@trigger.dev/sdk": major +"trigger.dev": major +"@trigger.dev/build": major +"@trigger.dev/core": major +--- + +Release 3.0.0 diff --git a/.changeset/itchy-jars-pay.md b/.changeset/itchy-jars-pay.md new file mode 100644 index 000000000..ed54cc897 --- /dev/null +++ b/.changeset/itchy-jars-pay.md @@ -0,0 +1,5 @@ +--- +"@trigger.dev/build": patch +--- + +Add ffmpeg build extension diff --git a/.changeset/ninety-countries-swim.md b/.changeset/ninety-countries-swim.md new file mode 100644 index 000000000..417a6a6e0 --- /dev/null +++ b/.changeset/ninety-countries-swim.md @@ -0,0 +1,5 @@ +--- +"trigger.dev": patch +--- + +Add --runtime option to the init CLI command diff --git a/.changeset/old-feet-brush.md b/.changeset/old-feet-brush.md new file mode 100644 index 000000000..caaaa6a5e --- /dev/null +++ b/.changeset/old-feet-brush.md @@ -0,0 +1,5 @@ +--- +"trigger.dev": patch +--- + +trigger.dev init now adds @trigger.dev/build to devDependencies diff --git a/.changeset/pre.json b/.changeset/pre.json index 92f3c36af..a9c272441 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -1,5 +1,5 @@ { - "mode": "pre", + "mode": "exit", "tag": "beta", "initialVersions": { "coordinator": "0.0.1", diff --git a/.changeset/stale-actors-camp.md b/.changeset/stale-actors-camp.md new file mode 100644 index 000000000..ac5462046 --- /dev/null +++ b/.changeset/stale-actors-camp.md @@ -0,0 +1,5 @@ +--- +"@trigger.dev/sdk": patch +--- + +Add triggerAndWait().unwrap() to more easily get at the output or throw the subtask error diff --git a/.changeset/thick-trains-work.md b/.changeset/thick-trains-work.md new file mode 100644 index 000000000..5d70a2278 --- /dev/null +++ b/.changeset/thick-trains-work.md @@ -0,0 +1,5 @@ +--- +"@trigger.dev/build": patch +--- + +Add aptGet build extension to easily add system packages to install diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 1a6a2352a..535f94f9b 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -16,9 +16,7 @@ jobs: fail-fast: false matrix: os: [buildjet-8vcpu-ubuntu-2204, windows-latest] - package-manager: ["npm", "pnpm", "yarn"] - env: - YARN_ENABLE_IMMUTABLE_INSTALLS: false + package-manager: ["npm", "pnpm"] steps: - name: ⬇️ Checkout repo uses: actions/checkout@v3 @@ -34,7 +32,6 @@ jobs: uses: buildjet/setup-node@v3 with: node-version: 20.11.1 - cache: "pnpm" - name: πŸ“₯ Download deps run: pnpm install --frozen-lockfile --filter trigger.dev... diff --git a/apps/webapp/app/components/SetupCommands.tsx b/apps/webapp/app/components/SetupCommands.tsx index 510e58d77..4071444ee 100644 --- a/apps/webapp/app/components/SetupCommands.tsx +++ b/apps/webapp/app/components/SetupCommands.tsx @@ -132,7 +132,7 @@ export function TriggerDevStep({ extra }: { extra?: string }) { } // Trigger.dev version 3 setup commands -const v3PackageTag = "beta"; +const v3PackageTag = "latest"; function getApiUrlArg() { const appOrigin = useAppOrigin(); diff --git a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.v3.$projectParam.runs.$runParam/route.tsx b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.v3.$projectParam.runs.$runParam/route.tsx index 11524ce98..349bad884 100644 --- a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.v3.$projectParam.runs.$runParam/route.tsx +++ b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.v3.$projectParam.runs.$runParam/route.tsx @@ -1147,7 +1147,7 @@ function ConnectedDevWarning() { Runs usually start within 1 second in{" "} . Check you're running the - CLI: npx trigger.dev@beta dev + CLI: npx trigger.dev@latest dev diff --git a/docs/cli-init-commands.mdx b/docs/cli-init-commands.mdx index f83b07139..5329404ae 100644 --- a/docs/cli-init-commands.mdx +++ b/docs/cli-init-commands.mdx @@ -9,27 +9,32 @@ Run the command like this: ```bash npm -npx trigger.dev@beta init +npx trigger.dev@latest init ``` ```bash pnpm -pnpm dlx trigger.dev@beta init +pnpm dlx trigger.dev@latest init ``` ```bash yarn -yarn dlx trigger.dev@beta init +yarn dlx trigger.dev@latest init ``` ## Options + + By default, the init command assumes you are using TypeScript. Use this flag to initialize a + project that uses JavaScript. + + The project ref to use when initializing the project. - The version of the `@trigger.dev/sdk` package to install. Defaults to `3.0.0-beta.56`. + The version of the `@trigger.dev/sdk` package to install. Defaults to `latest`. @@ -53,7 +58,8 @@ yarn dlx trigger.dev@beta init - The CLI log level to use. Options are `debug`, `info`, `log`, `warn`, `error`, and `none`. This does not affect the log level of your trigger.dev tasks. Defaults to "log". + The CLI log level to use. Options are `debug`, `info`, `log`, `warn`, `error`, and `none`. This + does not affect the log level of your trigger.dev tasks. Defaults to "log". @@ -64,4 +70,4 @@ yarn dlx trigger.dev@beta init Shows the help information for the command. - \ No newline at end of file + diff --git a/docs/cli-list-profiles-commands.mdx b/docs/cli-list-profiles-commands.mdx index 416347dd7..4687811ae 100644 --- a/docs/cli-list-profiles-commands.mdx +++ b/docs/cli-list-profiles-commands.mdx @@ -9,15 +9,15 @@ Run the command like this: ```bash npm -npx trigger.dev@beta list-profiles +npx trigger.dev@latest list-profiles ``` ```bash pnpm -pnpm dlx trigger.dev@beta list-profiles +pnpm dlx trigger.dev@latest list-profiles ``` ```bash yarn -yarn dlx trigger.dev@beta list-profiles +yarn dlx trigger.dev@latest list-profiles ``` @@ -25,16 +25,16 @@ yarn dlx trigger.dev@beta list-profiles ## Options - The CLI log level to use. Options are `debug`, `info`, `log`, `warn`, `error`, and `none`. This does not affect the log level of your trigger.dev tasks. Defaults to `log`. + The CLI log level to use. Options are `debug`, `info`, `log`, `warn`, `error`, and `none`. This + does not affect the log level of your trigger.dev tasks. Defaults to `log`. Opt-out of sending telemetry data. - ## Standard options Shows the help information for the command. - \ No newline at end of file + diff --git a/docs/cli-login-commands.mdx b/docs/cli-login-commands.mdx index 085055744..d20f9338d 100644 --- a/docs/cli-login-commands.mdx +++ b/docs/cli-login-commands.mdx @@ -9,15 +9,15 @@ Run the command like this: ```bash npm -npx trigger.dev@beta login +npx trigger.dev@latest login ``` ```bash pnpm -pnpm dlx trigger.dev@beta login +pnpm dlx trigger.dev@latest login ``` ```bash yarn -yarn dlx trigger.dev@beta login +yarn dlx trigger.dev@latest login ``` @@ -33,7 +33,8 @@ yarn dlx trigger.dev@beta login - Sets the CLI log level. Available options are `debug`, `info`, `log`, `warn`, `error`, and `none`. This setting doesn't affect the log level of your trigger.dev tasks. The default is `log`. + Sets the CLI log level. Available options are `debug`, `info`, `log`, `warn`, `error`, and `none`. + This setting doesn't affect the log level of your trigger.dev tasks. The default is `log`. @@ -48,4 +49,4 @@ yarn dlx trigger.dev@beta login Shows the help information for the command. - \ No newline at end of file + diff --git a/docs/cli-logout-commands.mdx b/docs/cli-logout-commands.mdx index 5031ce33f..5b28eb260 100644 --- a/docs/cli-logout-commands.mdx +++ b/docs/cli-logout-commands.mdx @@ -9,15 +9,15 @@ Run the command like this: ```bash npm -npx trigger.dev@beta logout +npx trigger.dev@latest logout ``` ```bash pnpm -pnpm dlx trigger.dev@beta logout +pnpm dlx trigger.dev@latest logout ``` ```bash yarn -yarn dlx trigger.dev@beta logout +yarn dlx trigger.dev@latest logout ``` @@ -33,16 +33,16 @@ yarn dlx trigger.dev@beta logout - The CLI log level to use. Options are `debug`, `info`, `log`, `warn`, `error`, and `none`. This does not affect the log level of your trigger.dev tasks. Defaults to `log`. + The CLI log level to use. Options are `debug`, `info`, `log`, `warn`, `error`, and `none`. This + does not affect the log level of your trigger.dev tasks. Defaults to `log`. Opt-out of sending telemetry data. - ## Standard options Shows the help information for the command. - \ No newline at end of file + diff --git a/docs/cli-update-commands.mdx b/docs/cli-update-commands.mdx index e4b63145f..7a07b9d9b 100644 --- a/docs/cli-update-commands.mdx +++ b/docs/cli-update-commands.mdx @@ -9,15 +9,15 @@ Run the command like this: ```bash npm -npx trigger.dev@beta update +npx trigger.dev@latest update ``` ```bash pnpm -pnpm dlx trigger.dev@beta update +pnpm dlx trigger.dev@latest update ``` ```bash yarn -yarn dlx trigger.dev@beta update +yarn dlx trigger.dev@latest update ``` @@ -25,16 +25,16 @@ yarn dlx trigger.dev@beta update ## Options - The CLI log level to use. Options are `debug`, `info`, `log`, `warn`, `error`, and `none`. This does not affect the log level of your trigger.dev tasks. Defaults to `log`. + The CLI log level to use. Options are `debug`, `info`, `log`, `warn`, `error`, and `none`. This + does not affect the log level of your trigger.dev tasks. Defaults to `log`. Opt-out of sending telemetry data. - ## Standard options Shows the help information for the command. - \ No newline at end of file + diff --git a/docs/cli-whoami-commands.mdx b/docs/cli-whoami-commands.mdx index 284b32ecd..1e51d3f73 100644 --- a/docs/cli-whoami-commands.mdx +++ b/docs/cli-whoami-commands.mdx @@ -9,15 +9,15 @@ Run the command like this: ```bash npm -npx trigger.dev@beta whoami +npx trigger.dev@latest whoami ``` ```bash pnpm -pnpm dlx trigger.dev@beta whoami +pnpm dlx trigger.dev@latest whoami ``` ```bash yarn -yarn dlx trigger.dev@beta whoami +yarn dlx trigger.dev@latest whoami ``` @@ -33,16 +33,16 @@ yarn dlx trigger.dev@beta whoami - The CLI log level to use. Options are `debug`, `info`, `log`, `warn`, `error`, and `none`. This does not affect the log level of your trigger.dev tasks. Defaults to `log`. + The CLI log level to use. Options are `debug`, `info`, `log`, `warn`, `error`, and `none`. This + does not affect the log level of your trigger.dev tasks. Defaults to `log`. Opt-out of sending telemetry data. - ## Standard options Shows the help information for the command. - \ No newline at end of file + diff --git a/docs/config/config-file.mdx b/docs/config/config-file.mdx new file mode 100644 index 000000000..7c898e494 --- /dev/null +++ b/docs/config/config-file.mdx @@ -0,0 +1,631 @@ +--- +title: "The trigger.config.ts file" +sidebarTitle: "Configuration" +description: "This file is used to configure your project and how it's built." +--- + +import BundlePackages from "/snippets/bundle-packages.mdx"; + +The `trigger.config.ts` file is used to configure your Trigger.dev project. It is a TypeScript file at the root of your project that exports a default configuration object. Here's an example: + +```ts trigger.config.ts +import { defineConfig } from "@trigger.dev/sdk/v3"; + +export default defineConfig({ + //Your project ref (you can see it on the Project settings page in the dashboard) + project: "proj_gtcwttqhhtlasxgfuhxs", + //The paths for your trigger folders + dirs: ["./trigger"], + retries: { + //If you want to retry a task in dev mode (when using the CLI) + enabledInDev: false, + //the default retry settings. Used if you don't specify on a task. + default: { + maxAttempts: 3, + minTimeoutInMs: 1000, + maxTimeoutInMs: 10000, + factor: 2, + randomize: true, + }, + }, +}); +``` + +The config file handles a lot of things, like: + +- Specifying where your trigger tasks are located using the `dirs` option. +- Setting the default retry settings. +- Configuring OpenTelemetry instrumentations. +- Customizing the build process. +- Adding global task lifecycle functions. + + + The config file is bundled with your project, so code imported in the config file is also bundled, + which can have an effect on build times and cold start duration. One important qualification is + anything defined in the `build` config is automatically stripped out of the config file, and + imports used inside build config with be tree-shaken out. + + +## Lifecycle functions + +You can add lifecycle functions to get notified when any task starts, succeeds, or fails using `onStart`, `onSuccess` and `onFailure`: + +```ts trigger.config.ts +import { defineConfig } from "@trigger.dev/sdk/v3"; + +export default defineConfig({ + //..other stuff + onSuccess: async (payload, output, { ctx }) => { + console.log("Task succeeded", ctx.task.id); + }, + onFailure: async (payload, error, { ctx }) => { + console.log("Task failed", ctx.task.id); + }, + onStart: async (payload, { ctx }) => { + console.log("Task started", ctx.task.id); + }, + init: async (payload, { ctx }) => { + console.log("I run before any task is run"); + }, +}); +``` + +Read more about task lifecycle functions in the [tasks overview](/tasks-overview). + +## Instrumentations + +We use OpenTelemetry (OTEL) for our run logs. This means you get a lot of information about your tasks with no effort. But you probably want to add more information to your logs. For example, here's all the Prisma calls automatically logged: + +![The run log](/images/auto-instrumentation.png) + +Here we add Prisma and OpenAI instrumentations to your `trigger.config.ts` file. + +```ts trigger.config.ts +import { defineConfig } from "@trigger.dev/sdk/v3"; +import { PrismaInstrumentation } from "@prisma/instrumentation"; +import { OpenAIInstrumentation } from "@traceloop/instrumentation-openai"; + +export default defineConfig({ + //..other stuff + instrumentations: [new PrismaInstrumentation(), new OpenAIInstrumentation()], +}); +``` + +There is a [huge library of instrumentations](https://opentelemetry.io/ecosystem/registry/?language=js) you can easily add to your project like this. + +Some ones we recommend: + +| Package | Description | +| --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ | +| `@opentelemetry/instrumentation-undici` | Logs all fetch calls (inc. Undici fetch) | +| `@opentelemetry/instrumentation-fs` | Logs all file system calls | +| `@opentelemetry/instrumentation-http` | Logs all HTTP calls | +| `@prisma/instrumentation` | Logs all Prisma calls, you need to [enable tracing](https://github.com/prisma/prisma/tree/main/packages/instrumentation) | +| `@traceloop/instrumentation-openai` | Logs all OpenAI calls | + +## Runtime + +We currently only officially support the `node` runtime, but you can try our experimental `bun` runtime by setting the `runtime` option in your config file: + +```ts trigger.config.ts +import { defineConfig } from "@trigger.dev/sdk/v3"; + +export default defineConfig({ + //..other stuff + runtime: "bun", +}); +``` + +See our [Bun guide](/guides/bun) for more information. + +## Default machine + +You can specify the default machine for all tasks in your project: + +```ts trigger.config.ts +import { defineConfig } from "@trigger.dev/sdk/v3"; + +export default defineConfig({ + //..other stuff + defaultMachine: "large-1x", +}); +``` + +See our [machines documentation](/machines) for more information. + +## Log level + +You can set the log level for your project: + +```ts trigger.config.ts +import { defineConfig } from "@trigger.dev/sdk/v3"; + +export default defineConfig({ + //..other stuff + logLevel: "debug", +}); +``` + +The `logLevel` only determines which logs are sent to the Trigger.dev instance when using the `logger` API. All `console` based logs are always sent. + +## Build configuration + +You can customize the build process using the `build` option: + +```ts trigger.config.ts +import { defineConfig } from "@trigger.dev/sdk/v3"; + +export default defineConfig({ + //..other stuff + build: { + // Don't bundle these packages + external: ["header-generator"], + }, +}); +``` + + + The `trigger.config.ts` file is included in the bundle, but with the `build` configuration + stripped out. These means any imports only used inside the `build` configuration are also removed + from the final bundle. + + +### External + +All code is bundled by default, but you can exclude some packages from the bundle using the `external` option: + +```ts trigger.config.ts +import { defineConfig } from "@trigger.dev/sdk/v3"; + +export default defineConfig({ + //..other stuff + build: { + external: ["header-generator"], + }, +}); +``` + +When a package is excluded from the bundle, it will be added to a dynamically generated package.json file in the build directory. The version of the package will be the same as the version found in your `node_modules` directory. + +Each entry in the external should be a package name, not necessarily the import path. For example, if you want to exclude the `ai` package, but you are importing `ai/rsc`, you should just include `ai` in the `external` array: + +```ts trigger.config.ts +import { defineConfig } from "@trigger.dev/sdk/v3"; + +export default defineConfig({ + //..other stuff + build: { + external: ["ai"], + }, +}); +``` + + + Any packages that install or build a native binary should be added to external, as native binaries + cannot be bundled. For example, `re2`, `sharp`, and `sqlite3` should be added to external. + + +### JSX + +You can customize the `jsx` options that are passed to `esbuild` using the `jsx` option: + +```ts trigger.config.ts +import { defineConfig } from "@trigger.dev/sdk/v3"; + +export default defineConfig({ + //..other stuff + build: { + jsx: { + // Use the Fragment component instead of React.Fragment + fragment: "Fragment", + // Use the h function instead of React.createElement + factory: "h", + // Turn off automatic runtime + automatic: false, + }, + }, +}); +``` + +By default we enabled [esbuild's automatic JSX runtime](https://esbuild.github.io/content-types/#auto-import-for-jsx) which means you don't need to import `React` in your JSX files. You can disable this by setting `automatic` to `false`. + +See the [esbuild JSX documentation](https://esbuild.github.io/content-types/#jsx) for more information. + +### Conditions + +You can add custom [import conditions](https://esbuild.github.io/api/#conditions) to your build using the `conditions` option: + +```ts trigger.config.ts +import { defineConfig } from "@trigger.dev/sdk/v3"; + +export default defineConfig({ + //..other stuff + build: { + conditions: ["react-server"], + }, +}); +``` + +These conditions effect how imports are resolved during the build process. For example, the `react-server` condition will resolve `ai/rsc` to the server version of the `ai/rsc` export. + +Custom conditions will also be passed to the `node` runtime when running your tasks. + +### Extensions + +Build extension allow you to hook into the build system and customize the build process or the resulting bundle and container image (in the case of deploying). You can use pre-built extensions by installing the `@trigger.dev/build` package into your `devDependencies`, or you can create your own. + +#### additionalFiles + +Import the `additionalFiles` build extension and use it in your `trigger.config.ts` file: + +```ts +import { defineConfig } from "@trigger.dev/sdk/v3"; +import { additionalFiles } from "@trigger.dev/build/extensions/core"; + +export default defineConfig({ + //..other stuff + build: { + extensions: [ + additionalFiles({ files: ["wrangler/wrangler.toml", "./assets/**", "./fonts/**"] }), + ], + }, +}); +``` + +This will copy the files specified in the `files` array to the build directory. The `files` array can contain globs. The output paths will match the path of the file, relative to the root of the project. + +The root of the project is the directory that contains the trigger.config.ts file + +#### `additionalPackages` + +Import the `additionalPackages` build extension and use it in your `trigger.config.ts` file: + +```ts +import { defineConfig } from "@trigger.dev/sdk/v3"; +import { additionalPackages } from "@trigger.dev/build/extensions/core"; + +export default defineConfig({ + //..other stuff + build: { + extensions: [additionalPackages({ packages: ["wrangler"] })], + }, +}); +``` + +This allows you to include additional packages in the build that are not automatically included via imports. This is useful if you want to install a package that includes a CLI tool that you want to invoke in your tasks via `exec`. We will try to automatically resolve the version of the package but you can specify the version by using the `@` symbol: + +```ts +import { defineConfig } from "@trigger.dev/sdk/v3"; + +export default defineConfig({ + //..other stuff + build: { + extensions: [additionalPackages({ packages: ["wrangler@1.19.0"] })], + }, +}); +``` + +#### `emitDecoratorMetadata` + +If you need support for the `emitDecoratorMetadata` typescript compiler option, import the `emitDecoratorMetadata` build extension and use it in your `trigger.config.ts` file: + +```ts +import { defineConfig } from "@trigger.dev/sdk/v3"; +import { emitDecoratorMetadata } from "@trigger.dev/build/extensions/typescript"; + +export default defineConfig({ + project: "", + build: { + extensions: [emitDecoratorMetadata()], + }, +}); +``` + +This is usually required if you are using certain ORMs, like TypeORM, that require this option to be enabled. It's not enabled by default because there is a performance cost to enabling it. + + + emitDecoratorMetadata works by hooking into the esbuild bundle process and using the TypeScript + compiler API to compile files where we detect the use of decorators. This means you must have + `emitDecoratorMetadata` enabled in your `tsconfig.json` file, as well as `typescript` installed in + your `devDependencies`. + + +#### Prisma + +If you are using Prisma, you should use the prisma build extension. + +- Automatically handles copying prisma files to the build directory. +- Generates the prisma client during the deploy process +- Optionally will migrate the database during the deploy process +- Support for TypedSQL and multiple schema files. + +You can use it for a simple Prisma setup like this: + +```ts +import { defineConfig } from "@trigger.dev/sdk/v3"; +import { prismaExtension } from "@trigger.dev/build/extensions/prisma"; + +export default defineConfig({ + build: { + extensions: [ + prismaExtension({ + version: "5.19.0", // optional, we'll automatically detect the version if not provided + schema: "prisma/schema.prisma", + }), + ], + }, +}); +``` + + + This does not have any effect when running the `dev` command, only when running the `deploy` + command. + + +If you want to also run migrations during the build process, you can pass in the `migrate` option: + +```ts +import { defineConfig } from "@trigger.dev/sdk/v3"; +import { prismaExtension } from "@trigger.dev/build/extensions/prisma"; + +export default defineConfig({ + project: "", + build: { + extensions: [ + prismaExtension({ + schema: "prisma/schema.prisma", + migrate: true, + directUrlEnvVarName: "DATABASE_URL_UNPOOLED", // optional - the name of the environment variable that contains the direct database URL if you are using a direct database URL + }), + ], + }, +}); +``` + +If you have multiple `generator` statements defined in your schema file, you can pass in the `clientGenerator` option to specify the `prisma-client-js` generator, which will prevent other generators from being generated: + + + +```prisma schema.prisma +datasource db { + provider = "postgresql" + url = env("DATABASE_URL") + directUrl = env("DATABASE_URL_UNPOOLED") +} + +// We only want to generate the prisma-client-js generator +generator client { + provider = "prisma-client-js" +} + +generator kysely { + provider = "prisma-kysely" + output = "../../src/kysely" + enumFileName = "enums.ts" + fileName = "types.ts" +} +``` + +```ts trigger.config.ts +import { defineConfig } from "@trigger.dev/sdk/v3"; +import { prismaExtension } from "@trigger.dev/build/extensions/prisma"; + +export default defineConfig({ + project: "", + build: { + extensions: [ + prismaExtension({ + schema: "prisma/schema.prisma", + clientGenerator: "client", + }), + ], + }, +}); +``` + + + +If you are using [TypedSQL](https://www.prisma.io/typedsql), you'll need to enable it via the `typedSql` option: + +```ts +import { defineConfig } from "@trigger.dev/sdk/v3"; + +export default defineConfig({ + project: "", + build: { + extensions: [ + prismaExtension({ + schema: "prisma/schema.prisma", + typedSql: true, + }), + ], + }, +}); +``` + + + The `prismaExtension` will inject the `DATABASE_URL` environment variable into the build process + when running the `deploy` command. This means the CLI needs to have `process.env.DATABASE_URL` set + at the time of calling the `deploy` command. You can do this via a `.env` file and passing the + `--env-file .env` option to the deploy command or via shell environment variables. This goes for direct database URLs as well. + +These environment variables are only used during the build process and are not embedded in the final image. + + + +#### syncEnvVars + +The `syncEnvVars` build extension replaces the deprecated `resolveEnvVars` export. Check out our [syncEnvVars documentation](/deploy-environment-variables#sync-env-vars-from-another-service) for more information. + +#### audioWaveform + +Previously, we installed [Audio Waveform](https://github.com/bbc/audiowaveform) in the build image. That's been moved to a build extension: + +```ts +import { defineConfig } from "@trigger.dev/sdk/v3"; +import { audioWaveform } from "@trigger.dev/build/extensions/audioWaveform"; + +export default defineConfig({ + //..other stuff + build: { + extensions: [audioWaveform()], // uses verson 1.1.0 of audiowaveform by default + }, +}); +``` + +#### ffmpeg + +You can add the `ffmpeg` build extension to your build process: + +```ts +import { defineConfig } from "@trigger.dev/sdk/v3"; +import { ffmpeg } from "@trigger.dev/build/extensions/core"; + +export default defineConfig({ + //..other stuff + build: { + extensions: [ffmpeg()], + }, +}); +``` + +By default, this will install the version of `ffmpeg` that is available in the Debian package manager. If you need a specific version, you can pass in the version as an argument: + +```ts +import { defineConfig } from "@trigger.dev/sdk/v3"; +import { ffmpeg } from "@trigger.dev/build/extensions/core"; + +export default defineConfig({ + //..other stuff + build: { + extensions: [ffmpeg({ version: "6.0-4" })], + }, +}); +``` + +This extension will also add the `FFMPEG_PATH` and `FFPROBE_PATH` to your environment variables, making it easy to use popular ffmpeg libraries like `fluent-ffmpeg`. + +#### esbuild plugins + +You can easily add existing or custom esbuild plugins to your build process using the `esbuildPlugin` extension: + +```ts +import { defineConfig } from "@trigger.dev/sdk/v3"; +import { esbuildPlugin } from "@trigger.dev/build/extensions"; +import { sentryEsbuildPlugin } from "@sentry/esbuild-plugin"; + +export default defineConfig({ + project: "", + build: { + extensions: [ + esbuildPlugin( + sentryEsbuildPlugin({ + org: process.env.SENTRY_ORG, + project: process.env.SENTRY_PROJECT, + authToken: process.env.SENTRY_AUTH_TOKEN, + }), + // optional - only runs during the deploy command, and adds the plugin to the end of the list of plugins + { placement: "last", target: "deploy" } + ), + ], + }, +}); +``` + +#### aptGet + +You can install system packages into the deployed image using using the `aptGet` extension: + +```ts +import { defineConfig } from "@trigger.dev/sdk/v3"; +import { aptGet } from "@trigger.dev/build/extensions/core"; + +export default defineConfig({ + //..other stuff + build: { + extensions: [aptGet({ packages: ["ffmpeg"] })], + }, +}); +``` + +If you want to install a specific version of a package, you can specify the version like this: + +```ts +import { defineConfig } from "@trigger.dev/sdk/v3"; + +export default defineConfig({ + //..other stuff + build: { + extensions: [aptGet({ packages: ["ffmpeg=6.0-4"] })], + }, +}); +``` + +#### Custom extensions + +You can create your own extensions to further customize the build process. Extensions are an object with a `name` and zero or more lifecycle hooks (`onBuildStart` and `onBuildComplete`) that allow you to modify the `BuildContext` object that is passed to the build process through adding layers. For example, this is how the `aptGet` extension is implemented: + +```ts +import { BuildExtension } from "@trigger.dev/core/v3/build"; + +export type AptGetOptions = { + packages: string[]; +}; + +export function aptGet(options: AptGetOptions): BuildExtension { + return { + name: "aptGet", + onBuildComplete(context) { + if (context.target === "dev") { + return; + } + + context.logger.debug("Adding apt-get layer", { + pkgs: options.packages, + }); + + context.addLayer({ + id: "apt-get", + image: { + pkgs: options.packages, + }, + }); + }, + }; +} +``` + +Instead of creating this function and worrying about types, you can define an extension inline in your `trigger.config.ts` file: + +```ts trigger.config.ts +import { defineConfig } from "@trigger.dev/sdk/v3"; + +export default defineConfig({ + //..other stuff + build: { + extensions: [ + { + name: "aptGet", + onBuildComplete(context) { + if (context.target === "dev") { + return; + } + + context.logger.debug("Adding apt-get layer", { + pkgs: ["ffmpeg"], + }); + + context.addLayer({ + id: "apt-get", + image: { + pkgs: ["ffmpeg"], + }, + }); + }, + }, + ], + }, +}); +``` + +We'll be expanding the documentation on how to create custom extensions in the future, but for now you are encouraged to look at the existing extensions in the `@trigger.dev/build` package for inspiration, which you can see in our repo [here](https://github.com/triggerdotdev/trigger.dev/tree/main/packages/build/src/extensions) diff --git a/docs/config/extensions/custom.mdx b/docs/config/extensions/custom.mdx new file mode 100644 index 000000000..e69de29bb diff --git a/docs/config/extensions/esbuild-plugins.mdx b/docs/config/extensions/esbuild-plugins.mdx new file mode 100644 index 000000000..e69de29bb diff --git a/docs/config/extensions/overview.mdx b/docs/config/extensions/overview.mdx new file mode 100644 index 000000000..4d5e406a5 --- /dev/null +++ b/docs/config/extensions/overview.mdx @@ -0,0 +1,5 @@ +--- +title: "Overview" +sidebarTitle: "Overview" +description: "This file is used to configure your project and how it's bundled." +--- diff --git a/docs/config/extensions/prisma.mdx b/docs/config/extensions/prisma.mdx new file mode 100644 index 000000000..79f7cf952 --- /dev/null +++ b/docs/config/extensions/prisma.mdx @@ -0,0 +1,5 @@ +--- +title: "Prisma" +sidebarTitle: "Prisma" +description: "This file is used to configure your project and how it's bundled." +--- diff --git a/docs/deploy-environment-variables.mdx b/docs/deploy-environment-variables.mdx index 9b18d5058..d9d510bd8 100644 --- a/docs/deploy-environment-variables.mdx +++ b/docs/deploy-environment-variables.mdx @@ -74,8 +74,8 @@ You can use our SDK to get and manipulate environment variables. You can also ea We have a complete set of SDK functions (and REST API) you can use to directly manipulate environment variables. -| Function | Description | -| ----------------------------------------------------- | ----------------------------------------------------------- | +| Function | Description | +| -------------------------------------------------- | ----------------------------------------------------------- | | [envvars.list()](/management/envvars/list) | List all environment variables | | [envvars.upload()](/management/envvars/import) | Upload multiple env vars. You can override existing values. | | [envvars.create()](/management/envvars/create) | Create a new environment variable | @@ -85,93 +85,91 @@ We have a complete set of SDK functions (and REST API) you can use to directly m ### Sync env vars from another service -You could use the SDK functions above but it's much easier to use our `resolveEnvVars` function in your `trigger.config` file. +You could use the SDK functions above but it's much easier to use our `syncEnvVars` build extension in your `trigger.config` file. + + + To use the `syncEnvVars` build extension, you should first install the `@trigger.dev/build` + package into your devDependencies. + In this example we're using env vars from [Infisical](https://infisical.com). -```ts /trigger.config.ts -import type { TriggerConfig, ResolveEnvironmentVariablesFunction } from "@trigger.dev/sdk/v3"; +```ts trigger.config.ts +import { defineConfig } from "@trigger.dev/sdk/v3"; +import { syncEnvVars } from "@trigger.dev/build/extensions/core"; +import { InfisicalClient } from "@infisical/sdk"; -//This runs when you run the deploy command or the dev command -export const resolveEnvVars: ResolveEnvironmentVariablesFunction = async ({ - //the project ref (starting with "proj_") - projectRef, - //any existing env vars from a .env file or Trigger.dev - env, - //"dev", "staging", or "prod" - environment, -}) => { - //the existing environment variables from Trigger.dev (or your local .env file) - if (env.INFISICAL_CLIENT_ID === undefined || env.INFISICAL_CLIENT_SECRET === undefined) { - //returning undefined won't modify the existing env vars - return; - } +export default defineConfig({ + build: { + extensions: [ + syncEnvVars(async (ctx) => { + const client = new InfisicalClient({ + clientId: process.env.INFISICAL_CLIENT_ID, + clientSecret: process.env.INFISICAL_CLIENT_SECRET, + }); - const client = new InfisicalClient({ - clientId: env.INFISICAL_CLIENT_ID, - clientSecret: env.INFISICAL_CLIENT_SECRET, - }); + const secrets = await client.listSecrets({ + environment: ctx.environment, + projectId: process.env.INFISICAL_PROJECT_ID!, + }); - const secrets = await client.listSecrets({ - environment, - projectId: env.INFISICAL_PROJECT_ID!, - }); - - return { - variables: secrets.map((secret) => ({ - name: secret.secretKey, - value: secret.secretValue, - })), - // this defaults to true - // override: true, - }; -}; - -//the rest of your config file -export const config: TriggerConfig = { - project: "proj_1234567890", - //etc -}; + return secrets.map((secret) => ({ + name: secret.secretKey, + value: secret.secretValue, + })); + }), + ], + }, +}); ``` -#### Local development - -When you [develop locally](/cli-dev) `resolveEnvVars()` will inject the env vars from [Infisical](https://infisical.com) into your local `process.env`. - #### Deploy When you run the [CLI deploy command](/cli-deploy) directly or using [GitHub Actions](/github-actions) it will sync the environment variables from [Infisical](https://infisical.com) to Trigger.dev. This means they'll appear on the Environment Variables page so you can confirm that it's worked. This means that you need to redeploy your Trigger.dev tasks if you change the environment variables in [Infisical](https://infisical.com). -### The variables return type + + The `process.env.INFISICAL_CLIENT_ID`, `process.env.INFISICAL_CLIENT_SECRET` and + `process.env.INFISICAL_PROJECT_ID` will need to be supplied to the `deploy` CLI command. You can + do this via the `--env-file .env` flag or by setting them as environment variables in your + terminal. + -You can return `variables` as an object with string keys and values, or an array of names + values. +#### Dev + +`syncEnvVars` does not have any effect when running the `dev` command locally. If you want to inject environment variables from another service into your local environment you can do so via a `.env` file or just supplying them as environment variables in your terminal. Most services will have a CLI tool that allows you to run a command with environment variables set: + +```sh +infisical run -- npx trigger.dev@latest dev +``` + +Any environment variables set in the CLI command will be available to your local Trigger.dev tasks. + +### The syncEnvVars callback return type + +You can return env vars as an object with string keys and values, or an array of names + values. ```ts return { - variables: { - MY_ENV_VAR: "my value", - MY_OTHER_ENV_VAR: "my other value", - }, + MY_ENV_VAR: "my value", + MY_OTHER_ENV_VAR: "my other value", }; ``` or ```ts -return { - variables: [ - { - name: "MY_ENV_VAR", - value: "my value", - }, - { - name: "MY_OTHER_ENV_VAR", - value: "my other value", - }, - ], -}; +return [ + { + name: "MY_ENV_VAR", + value: "my value", + }, + { + name: "MY_OTHER_ENV_VAR", + value: "my other value", + }, +]; ``` This should mean that for most secret services you won't need to convert the data into a different format. @@ -184,11 +182,11 @@ Securely pass a Google credential JSON file to your Trigger.dev task using envir - In your terminal, run the following command and copy the resulting base64 string: +In your terminal, run the following command and copy the resulting base64 string: - ``` - base64 path/to/your/service-account-file.json - ``` +``` +base64 path/to/your/service-account-file.json +``` @@ -207,13 +205,15 @@ GOOGLE_CREDENTIALS_BASE64="" Add the following code to your Trigger.dev task: ```ts -import { google } from 'googleapis'; +import { google } from "googleapis"; -const credentials = JSON.parse(Buffer.from(process.env.GOOGLE_CREDENTIALS_BASE64, 'base64').toString('utf8')); +const credentials = JSON.parse( + Buffer.from(process.env.GOOGLE_CREDENTIALS_BASE64, "base64").toString("utf8") +); const auth = new google.auth.GoogleAuth({ credentials, - scopes: ['https://www.googleapis.com/auth/cloud-platform'], + scopes: ["https://www.googleapis.com/auth/cloud-platform"], }); const client = await auth.getClient(); @@ -227,4 +227,4 @@ You can now use the `client` object to make authenticated requests to Google API - \ No newline at end of file + diff --git a/docs/github-actions.mdx b/docs/github-actions.mdx index 1a9206ea3..385459d34 100644 --- a/docs/github-actions.mdx +++ b/docs/github-actions.mdx @@ -41,7 +41,7 @@ jobs: env: TRIGGER_ACCESS_TOKEN: ${{ secrets.TRIGGER_ACCESS_TOKEN }} run: | - npx trigger.dev@beta deploy + npx trigger.dev@latest deploy ``` ```yaml .github/workflows/release-trigger-staging.yml @@ -70,7 +70,7 @@ jobs: env: TRIGGER_ACCESS_TOKEN: ${{ secrets.TRIGGER_ACCESS_TOKEN }} run: | - npx trigger.dev@beta deploy --env staging + npx trigger.dev@latest deploy --env staging ``` @@ -81,29 +81,36 @@ If you already have a GitHub action file, you can just add the final step "πŸš€ -Go to your profile page and click on the ["Personal Access Tokens"](https://cloud.trigger.dev/account/tokens) tab. + + Go to your profile page and click on the ["Personal Access + Tokens"](https://cloud.trigger.dev/account/tokens) tab. + -Click on 'Settings' -> 'Secrets and variables' -> 'Actions' -> 'New repository secret' + + Click on 'Settings' -> 'Secrets and variables' -> 'Actions' -> 'New repository secret' + -Add the name `TRIGGER_ACCESS_TOKEN` and the value of your access token. ![Add TRIGGER_ACCESS_TOKEN in GitHub](/images/github-access-token.png) + + Add the name `TRIGGER_ACCESS_TOKEN` and the value of your access token. ![Add TRIGGER_ACCESS_TOKEN + in GitHub](/images/github-access-token.png) + - - ## Version pinning -The CLI and `@trigger.dev/*` package versions need to be in sync, otherwise there will be errors and unpredictable behavior. Hence, the `deploy` command will automatically fail during CI on any version mismatches. +The CLI and `@trigger.dev/*` package versions need to be in sync with the `trigger.dev` CLI, otherwise there will be errors and unpredictable behavior. Hence, the `deploy` command will automatically fail during CI on any version mismatches. Tip: add the deploy command to your `package.json` file to keep versions managed in the same place. For example: ```json { "scripts": { - "deploy:trigger-prod": "npx trigger.dev@3.0.0-beta.34 deploy", - "deploy:trigger": "npx trigger.dev@3.0.0-beta.34 deploy --env staging" + "deploy:trigger-prod": "npx trigger.dev@3.0.0 deploy", + "deploy:trigger": "npx trigger.dev@3.0.0 deploy --env staging" } } ``` + Your workflow file will follow the version specified in the `package.json` script, like so: ```yaml .github/workflows/release-trigger.yml diff --git a/docs/guides/bun.mdx b/docs/guides/bun.mdx new file mode 100644 index 000000000..8efea3f4d --- /dev/null +++ b/docs/guides/bun.mdx @@ -0,0 +1,113 @@ +--- +title: "Bun guide" +sidebarTitle: "Bun" +description: "This guide will show you how to setup Trigger.dev with Bun" +icon: "js" +--- + +import Prerequisites from "/snippets/framework-prerequisites.mdx"; +import CliRunTestStep from "/snippets/step-run-test.mdx"; +import CliViewRunStep from "/snippets/step-view-run.mdx"; + +We now have experimental support for Bun. This guide will show you have to setup Trigger.dev in your existing Bun project, test an example task, and view the run. + + + The trigger.dev CLI does not yet support Bun. So you will need to run the CLI using Node.js. But + Bun will still be used to execute your tasks, even in the `dev` environment. + + + + +## Initial setup + + + + +The easiest way to get started is to use the CLI. It will add Trigger.dev to your existing project, create a `/trigger` folder and give you an example task. + +Run this command in the root of your project to get started: + + + +```bash npm +npx trigger.dev@latest init --runtime bun +``` + +```bash pnpm +pnpm dlx trigger.dev@latest init --runtime bun +``` + +```bash yarn +yarn dlx trigger.dev@latest init --runtime bun +``` + + + +It will do a few things: + +1. Log you into the CLI if you're not already logged in. +2. Create a `trigger.config.ts` file in the root of your project. +3. Ask where you'd like to create the `/trigger` directory. +4. Create the `/src/trigger` directory with an example task, `/src/trigger/example.[ts/js]`. + +Install the "Hello World" example task when prompted. We'll use this task to test the setup. + + + + + + Open the `/src/trigger/example.ts` file and replace the contents with the following: + + ```ts example.ts + import { Database } from "bun:sqlite"; + import { task } from "@trigger.dev/sdk/v3"; + + export const bunTask = task({ + id: "bun-task", + run: async (payload: { query: string }) => { + const db = new Database(":memory:"); + const query = db.query("select 'Hello world' as message;"); + console.log(query.get()); // => { message: "Hello world" } + + return { + message: "Query executed", + }; + }, + }); + + ``` + + + + + +The CLI `dev` command runs a server for your tasks. It watches for changes in your `/trigger` directory and communicates with the Trigger.dev platform to register your tasks, perform runs, and send data back and forth. + +It can also update your `@trigger.dev/*` packages to prevent version mismatches and failed deploys. You will always be prompted first. + + + +```bash npm +npx trigger.dev@latest dev +``` + +```bash pnpm +pnpm dlx trigger.dev@latest dev +``` + +```bash yarn +yarn dlx trigger.dev@latest dev +``` + + + + + + + + + + +## Known issues + +- Certain OpenTelemetry instrumentation will not work with Bun, because Bun does not support Node's `register` hook. This means that some libraries that rely on this hook will not work with Bun. diff --git a/docs/guides/frameworks/nextjs.mdx b/docs/guides/frameworks/nextjs.mdx index 7dea49af0..50c96fbce 100644 --- a/docs/guides/frameworks/nextjs.mdx +++ b/docs/guides/frameworks/nextjs.mdx @@ -5,16 +5,16 @@ description: "This guide will show you how to setup Trigger.dev in your existing icon: "N" --- -import Prerequisites from '/snippets/framework-prerequisites.mdx'; -import CliInitStep from '/snippets/step-cli-init.mdx'; -import CliDevStep from '/snippets/step-cli-dev.mdx'; -import CliRunTestStep from '/snippets/step-run-test.mdx'; -import CliViewRunStep from '/snippets/step-view-run.mdx'; -import UsefulNextSteps from '/snippets/useful-next-steps.mdx'; -import TriggerTaskNextjs from '/snippets/trigger-tasks-nextjs.mdx'; -import NextjsTroubleshootingMissingApiKey from '/snippets/nextjs-missing-api-key.mdx'; -import NextjsTroubleshootingButtonSyntax from '/snippets/nextjs-button-syntax.mdx'; -import WorkerFailedToStartWhenRunningDevCommand from '/snippets/worker-failed-to-start.mdx'; +import Prerequisites from "/snippets/framework-prerequisites.mdx"; +import CliInitStep from "/snippets/step-cli-init.mdx"; +import CliDevStep from "/snippets/step-cli-dev.mdx"; +import CliRunTestStep from "/snippets/step-run-test.mdx"; +import CliViewRunStep from "/snippets/step-view-run.mdx"; +import UsefulNextSteps from "/snippets/useful-next-steps.mdx"; +import TriggerTaskNextjs from "/snippets/trigger-tasks-nextjs.mdx"; +import NextjsTroubleshootingMissingApiKey from "/snippets/nextjs-missing-api-key.mdx"; +import NextjsTroubleshootingButtonSyntax from "/snippets/nextjs-button-syntax.mdx"; +import WorkerFailedToStartWhenRunningDevCommand from "/snippets/worker-failed-to-start.mdx"; This guide can be followed for both App and Pages router as well as Server Actions. @@ -91,11 +91,11 @@ Here are the steps to trigger your task in the Next.js App and Pages router and - + Create an `actions.ts` file in the `app/api` directory and add this code which imports your `helloWorldTask()` task. Make sure to include `"use server";` at the top of the file. - + ```ts app/api/actions.ts "use server"; @@ -120,7 +120,7 @@ Here are the steps to trigger your task in the Next.js App and Pages router and ``` - + For the purposes of this guide, we'll create a button with an `onClick` event that triggers your task. We'll add this to the `page.tsx` file so we can trigger the task by clicking the button. Make sure to import your task and include `"use client";` at the top of your file. @@ -166,31 +166,31 @@ Here are the steps to trigger your task in the Next.js App and Pages router and - Open your app in a browser, making sure the port number is the same as the one you're running your Next.js app on. For example, if you're running your Next.js app on port 3000, visit: + Open your app in a browser, making sure the port number is the same as the one you're running your Next.js app on. For example, if you're running your Next.js app on port 3000, visit: ```bash http://localhost:3000 ``` - + Run the dev server from Step 2. of the [Initial Setup](/guides/frameworks/nextjs#initial-setup) section above if it's not already running: - + ```bash npm - npx trigger.dev@beta dev + npx trigger.dev@latest dev ``` ```bash pnpm - pnpm dlx trigger.dev@beta dev + pnpm dlx trigger.dev@latest dev ``` ```bash yarn - yarn dlx trigger.dev@beta dev + yarn dlx trigger.dev@latest dev ``` - - Then click the button we created in your app to trigger the task. You should see the CLI log the task run with a link to view the logs. + + Then click the button we created in your app to trigger the task. You should see the CLI log the task run with a link to view the logs. ![Trigger.dev CLI showing a successful run](/images/trigger-cli-run-success.png) @@ -225,7 +225,7 @@ Here are the steps to trigger your task in the Next.js App and Pages router and "James" ); - res.status(200).json(handle); + res.status(200).json(handle); } ``` @@ -261,15 +261,15 @@ For this guide, we'll manually deploy your task by running the [CLI deploy comma ```bash npm -npx trigger.dev@beta deploy +npx trigger.dev@latest deploy ``` ```bash pnpm -pnpm dlx trigger.dev@beta deploy +pnpm dlx trigger.dev@latest deploy ``` ```bash yarn -yarn dlx trigger.dev@beta deploy +yarn dlx trigger.dev@latest deploy ``` diff --git a/docs/guides/frameworks/nodejs.mdx b/docs/guides/frameworks/nodejs.mdx index 504c80127..0924368d0 100644 --- a/docs/guides/frameworks/nodejs.mdx +++ b/docs/guides/frameworks/nodejs.mdx @@ -2,25 +2,25 @@ title: "Node.js setup guide" sidebarTitle: "Node.js" description: "This guide will show you how to setup Trigger.dev in your existing Node.js project, test an example task, and view the run." -icon: "JS" +icon: "node-js" --- -import Prerequisites from '/snippets/framework-prerequisites.mdx'; -import CliInitStep from '/snippets/step-cli-init.mdx'; -import CliDevStep from '/snippets/step-cli-dev.mdx'; -import CliRunTestStep from '/snippets/step-run-test.mdx'; -import CliViewRunStep from '/snippets/step-view-run.mdx'; -import UsefulNextSteps from '/snippets/useful-next-steps.mdx'; +import Prerequisites from "/snippets/framework-prerequisites.mdx"; +import CliInitStep from "/snippets/step-cli-init.mdx"; +import CliDevStep from "/snippets/step-cli-dev.mdx"; +import CliRunTestStep from "/snippets/step-run-test.mdx"; +import CliViewRunStep from "/snippets/step-view-run.mdx"; +import UsefulNextSteps from "/snippets/useful-next-steps.mdx"; ## Initial setup - - - - + + + + diff --git a/docs/guides/frameworks/supabase-edge-functions-basic.mdx b/docs/guides/frameworks/supabase-edge-functions-basic.mdx index b3b264d54..86e6489be 100644 --- a/docs/guides/frameworks/supabase-edge-functions-basic.mdx +++ b/docs/guides/frameworks/supabase-edge-functions-basic.mdx @@ -62,8 +62,8 @@ Replace the placeholder code in your `edge-function-trigger/index.ts` file with ```ts functions/edge-function-trigger/index.ts // Setup type definitions for built-in Supabase Runtime APIs import "jsr:@supabase/functions-js/edge-runtime.d.ts"; -// Import the Trigger.dev SDK - replace "" with the version of the SDK you are using, e.g. "3.0.0-beta.55". You can find this in your package.json file. -import { tasks } from "npm:@trigger.dev/sdk@/v3"; +// Import the Trigger.dev SDK - replace "" with the version of the SDK you are using, e.g. "3.0.0". You can find this in your package.json file. +import { tasks } from "npm:@trigger.dev/sdk@3.0.0/v3"; // Import your task type from your /trigger folder import type { helloWorldTask } from "../../../src/trigger/example.ts"; // πŸ‘† **type-only** import @@ -139,15 +139,15 @@ Next, deploy your `hello-world` task to [Trigger.dev cloud](https://cloud.trigge ```bash npm -npx trigger.dev@beta deploy +npx trigger.dev@latest deploy ``` ```bash pnpm -pnpm dlx trigger.dev@beta deploy +pnpm dlx trigger.dev@latest deploy ``` ```bash yarn -yarn dlx trigger.dev@beta deploy +yarn dlx trigger.dev@latest deploy ``` diff --git a/docs/guides/frameworks/supabase-edge-functions-database-webhooks.mdx b/docs/guides/frameworks/supabase-edge-functions-database-webhooks.mdx index 4780966c3..9ca50a50e 100644 --- a/docs/guides/frameworks/supabase-edge-functions-database-webhooks.mdx +++ b/docs/guides/frameworks/supabase-edge-functions-database-webhooks.mdx @@ -73,8 +73,8 @@ Replace the `database-webhook` placeholder code with the following code: ```ts functions/database-webhook/index.ts import "jsr:@supabase/functions-js/edge-runtime.d.ts"; -// Import the Trigger.dev SDK - replace "" with the version of the SDK you are using, e.g. "3.0.0-beta.55". You can find this in your package.json file. -import { tasks } from "npm:@trigger.dev/sdk@/v3"; +// Import the Trigger.dev SDK - replace "" with the version of the SDK you are using, e.g. "3.0.0". You can find this in your package.json file. +import { tasks } from "npm:@trigger.dev/sdk@3.0.0/v3"; // Import your task type from your /trigger folder import type { helloWorldTask } from "../../../src/trigger/example.ts"; // πŸ‘† **type-only** import @@ -190,15 +190,15 @@ To do this, run the following command in the terminal: ```bash npm -npx trigger.dev@beta deploy +npx trigger.dev@latest deploy ``` ```bash pnpm -pnpm dlx trigger.dev@beta deploy +pnpm dlx trigger.dev@latest deploy ``` ```bash yarn -yarn dlx trigger.dev@beta deploy +yarn dlx trigger.dev@latest deploy ``` diff --git a/docs/guides/new-build-system-preview.mdx b/docs/guides/new-build-system-preview.mdx index e78586384..984092cd2 100644 --- a/docs/guides/new-build-system-preview.mdx +++ b/docs/guides/new-build-system-preview.mdx @@ -25,7 +25,7 @@ You will also need to update your usage of the `trigger.dev` CLI to use the prev ```sh # old way -npx trigger.dev@beta dev +npx trigger.dev@latest dev # using the preview release npx trigger.dev@0.0.0-prerelease-20240911144933 dev diff --git a/docs/guides/use-cases/upgrading-from-v2.mdx b/docs/guides/use-cases/upgrading-from-v2.mdx index e0f4fccc1..f10a44f5f 100644 --- a/docs/guides/use-cases/upgrading-from-v2.mdx +++ b/docs/guides/use-cases/upgrading-from-v2.mdx @@ -170,7 +170,7 @@ async function yourBackendFunction() { 1. Make sure to upgrade all of your trigger.dev packages to v3 first. ```bash -npx @trigger.dev/cli@beta update --to beta +npx @trigger.dev/cli@latest update --to 3.0.0 ``` 2. Follow the [v3 quick start](/quick-start) to get started with v3. Our new CLI will take care of the rest. diff --git a/docs/how-it-works.mdx b/docs/how-it-works.mdx new file mode 100644 index 000000000..4f9369377 --- /dev/null +++ b/docs/how-it-works.mdx @@ -0,0 +1,452 @@ +--- +title: "How it works" +sidebarTitle: "How it works" +description: "Understand how Trigger.dev works and how it can help you." +--- + +## Introduction + +Trigger.dev v3 allows you to integrate long-running async tasks into your application and run them in the background. This allows you to offload tasks that take a long time to complete, such as sending multi-day email campaigns, processing videos, or running long chains of AI tasks. + +For example, the below task processes a video with `ffmpeg` and sends the results to an s3 bucket, then updates a database with the results and sends an email to the user. + +```ts /trigger/video.ts +import { logger, task } from "@trigger.dev/sdk/v3"; +import { updateVideoUrl } from "../db.js"; +import ffmpeg from "fluent-ffmpeg"; +import { Readable } from "node:stream"; +import type { ReadableStream } from "node:stream/web"; +import * as fs from "node:fs/promises"; +import * as path from "node:path"; +import { S3Client, PutObjectCommand } from "@aws-sdk/client-s3"; +import { sendEmail } from "../email.js"; +import { getVideo } from "../db.js"; + +// Initialize S3 client +const s3Client = new S3Client({ + region: process.env.AWS_REGION, +}); + +export const convertVideo = task({ + id: "convert-video", + retry: { + maxAttempts: 5, + minTimeoutInMs: 1000, + maxTimeoutInMs: 10000, + factor: 2, + }, + run: async ({ videoId }: { videoId: string }) => { + const { url, userId } = await getVideo(videoId); + + const outputPath = path.join("/tmp", `output_${videoId}.mp4`); + + const response = await fetch(url); + + await new Promise((resolve, reject) => { + ffmpeg(Readable.fromWeb(response.body as ReadableStream)) + .videoFilters("scale=iw/2:ih/2") + .output(outputPath) + .on("end", resolve) + .on("error", reject) + .run(); + }); + + const processedContent = await fs.readFile(outputPath); + + // Upload to S3 + const s3Key = `processed-videos/output_${videoId}.mp4`; + + const uploadParams = { + Bucket: process.env.S3_BUCKET, + Key: s3Key, + Body: processedContent, + }; + + await s3Client.send(new PutObjectCommand(uploadParams)); + const s3Url = `https://${process.env.S3_BUCKET}.s3.amazonaws.com/${s3Key}`; + + logger.info("Video converted", { videoId, s3Url }); + + // Update database + await updateVideoUrl(videoId, s3Url); + + await sendEmail( + userId, + "Video Processing Complete", + `Your video has been processed and is available at: ${s3Url}` + ); + + return { success: true, s3Url }; + }, +}); +``` + +Now in your application, you can trigger this task by calling: + +```ts +import { NextResponse } from "next/server"; +import { tasks } from "@trigger.dev/sdk/v3"; +import type { convertVideo } from "./trigger/video"; +// πŸ‘† **type-only** import + +export async function POST(request: Request) { + const body = await request.json(); + + // Trigger the task, this will return before the task is completed + const handle = await tasks.trigger("convert-video", body); + + return NextResponse.json(handle); +} +``` + +This will schedule the task to run in the background and return a handle that you can use to check the status of the task. This allows your backend application to respond quickly to the user and offload the long-running task to Trigger.dev. + +## The CLI + +Trigger.dev comes with a CLI that allows you to initialize Trigger.dev into your project, deploy your tasks, and run your tasks locally. You can run it via `npx` like so: + +```sh +npx trigger.dev@latest login # Log in to your Trigger.dev account +npx trigger.dev@latest init # Initialize Trigger.dev in your project +npx trigger.dev@latest dev # Run your tasks locally +npx trigger.dev@latest deploy # Deploy your tasks to the Trigger.dev instance +``` + +All these commands work with the Trigger.dev cloud and/or your self-hosted instance. It supports multiple profiles so you can easily switch between different accounts or instances. + +```sh +npx trigger.dev@latest login --profile -a https://trigger.example.com # Log in to a specific profile into a self-hosted instance +npx trigger.dev@latest dev --profile # Initialize Trigger.dev in your project +npx trigger.dev@latest deploy --profile # Deploy your tasks to the Trigger.dev instance +``` + +## Trigger.dev architecture + +Trigger.dev implements a serverless architecture (without timeouts!) that allows you to run your tasks in a scalable and reliable way. When you run `npx trigger.dev@latest deploy`, we build and deploy your task code to your Trigger.dev instance. Then, when you trigger a task from your application, it's run in a secure, isolated environment with the resources you need to complete the task. A simplified diagram for a task execution looks like this: + +```mermaid +sequenceDiagram + participant App + participant Trigger.dev + participant Task Worker + + App->>Trigger.dev: Trigger task + Trigger.dev-->>App: Task handle + Trigger.dev->>Task Worker: Run task + Task Worker-->>Trigger.dev: Task completed +``` + +In reality there are many more components involved, such as the task queue, the task scheduler, and the task worker pool, logging (etc.), but this diagram gives you a high-level overview of how Trigger.dev works. + +## The Checkpoint-Resume System + +Trigger.dev implements a powerful Checkpoint-Resume System that enables efficient execution of long-running background tasks in a serverless-like environment. This system allows tasks to pause, checkpoint their state, and resume seamlessly, optimizing resource usage and enabling complex workflows. + +Here's how the Checkpoint-Resume System works: + +1. **Task Execution**: When a task is triggered, it runs in an isolated environment with all necessary resources. + +2. **Subtask Handling**: If a task needs to trigger a subtask, it can do so and wait for its completion using `triggerAndWait` + +3. **State Checkpointing**: While waiting for a subtask or during a programmed pause (e.g., `wait.for({ seconds: 30 })`), the system uses CRIU (Checkpoint/Restore In Userspace) to create a checkpoint of the task's entire state, including memory, CPU registers, and open file descriptors. + +4. **Resource Release**: After checkpointing, the parent task's resources are released, freeing up the execution environment. + +5. **Efficient Storage**: The checkpoint is efficiently compressed and stored on disk, ready to be restored when needed. + +6. **Event-Driven Resumption**: When a subtask completes or a wait period ends, Trigger.dev's event system triggers the restoration process. + +7. **State Restoration**: The checkpoint is loaded back into a new execution environment, restoring the task to its exact state before suspension. + +8. **Seamless Continuation**: The task resumes execution from where it left off, with any subtask results or updated state seamlessly integrated. + +This approach allows Trigger.dev to manage resources efficiently, handle complex task dependencies, and provide a virtually limitless execution time for your tasks, all while maintaining the simplicity and scalability of a serverless architecture. + +Example of a parent and child task using the Checkpoint-Resume System: + +```ts +import { task, wait } from "@trigger.dev/sdk/v3"; + +const parentTask = task({ + id: "parent-task", + run: async () => { + console.log("Starting parent task"); + + // This will cause the parent task to be checkpointed and suspended + const result = await childTask.triggerAndWait({ data: "some data" }); + + console.log("Child task result:", result); + + // This will also cause the task to be checkpointed and suspended + await wait.for({ seconds: 30 }); + + console.log("Resumed after 30 seconds"); + + return "Parent task completed"; + }, +}); + +const childTask = task({ + id: "child-task", + run: async (payload: { data: string }) => { + console.log("Starting child task with data:", payload.data); + + // Simulate some work + await sleep(5); + + return "Child task result"; + }, +}); +``` + +The diagram below illustrates the flow of the parent and child tasks using the Checkpoint-Resume System: + +```mermaid +sequenceDiagram + participant App + participant Trigger.dev + participant Parent Task + participant Child Task + participant CR System + participant Storage + + App->>Trigger.dev: Trigger parent task + Trigger.dev->>Parent Task: Start execution + Parent Task->>Child Task: Trigger child task + Parent Task->>CR System: Request snapshot + CR System->>Storage: Store snapshot + CR System-->>Parent Task: Confirm snapshot stored + Parent Task->>Trigger.dev: Release resources + + Child Task->>Trigger.dev: Complete execution + Trigger.dev->>CR System: Request parent task restoration + CR System->>Storage: Retrieve snapshot + CR System->>Parent Task: Restore state + Parent Task->>Trigger.dev: Resume execution + Parent Task->>Trigger.dev: Complete execution +``` + + + This is why, in the Trigger.dev Cloud, we don't charge for the time waiting for subtasks or the + time spent in a paused state. + + +## Durable execution + +Trigger.dev's Checkpoint-Resume System, combined with idempotency keys, enables durable execution of complex workflows. This approach allows for efficient retries and caching of results, ensuring that work is not unnecessarily repeated in case of failures. + +### How it works + +1. **Task breakdown**: Complex workflows are broken down into smaller, independent subtasks. +2. **Idempotency keys**: Each subtask is assigned a unique idempotency key. +3. **Result caching**: The output of each subtask is cached based on its idempotency key. +4. **Intelligent retries**: If a failure occurs, only the failed subtask and subsequent tasks are retried. + +### Example: Video processing workflow + +Let's rewrite the `convert-video` task above to be more durable: + + + +```ts /trigger/video.ts +import { idempotencyKeys, logger, task } from "@trigger.dev/sdk/v3"; +import { processVideo, sendUserEmail, uploadToS3 } from "./tasks.js"; +import { updateVideoUrl } from "../db.js"; + +export const convertVideo = task({ + id: "convert-video", + retry: { + maxAttempts: 5, + minTimeoutInMs: 1000, + maxTimeoutInMs: 10000, + factor: 2, + }, + run: async ({ videoId }: { videoId: string }) => { + // Automatically scope the idempotency key to this run, across retries + const idempotencyKey = await idempotencyKeys.create(videoId); + + // Process video + const { processedContent } = await processVideo + .triggerAndWait({ videoId }, { idempotencyKey }) + .unwrap(); // Calling unwrap will return the output of the subtask, or throw an error if the subtask failed + + // Upload to S3 + const { s3Url } = await uploadToS3 + .triggerAndWait({ processedContent, videoId }, { idempotencyKey }) + .unwrap(); + + // Update database + await updateVideoUrl(videoId, s3Url); + + // Send email, we don't need to wait for this to finish + await sendUserEmail.trigger({ videoId, s3Url }, { idempotencyKey }); + + return { success: true, s3Url }; + }, +}); +``` + +```ts /trigger/tasks.ts +import { task, logger } from "@trigger.dev/sdk/v3"; +import ffmpeg from "fluent-ffmpeg"; +import { Readable } from "node:stream"; +import type { ReadableStream } from "node:stream/web"; +import * as fs from "node:fs/promises"; +import * as path from "node:path"; +import { S3Client, PutObjectCommand } from "@aws-sdk/client-s3"; +import { sendEmail } from "../email.js"; +import { getVideo } from "../db.js"; + +// Initialize S3 client +const s3Client = new S3Client({ + region: process.env.AWS_REGION, +}); + +export const processVideo = task({ + id: "process-video", + run: async ({ videoId }: { videoId: string }) => { + const { url } = await getVideo(videoId); + + const outputPath = path.join("/tmp", `output_${videoId}.mp4`); + const response = await fetch(url); + + await logger.trace("ffmpeg", async (span) => { + await new Promise((resolve, reject) => { + ffmpeg(Readable.fromWeb(response.body as ReadableStream)) + .videoFilters("scale=iw/2:ih/2") + .output(outputPath) + .on("end", resolve) + .on("error", reject) + .run(); + }); + }); + + const processedContent = await fs.readFile(outputPath); + + await fs.unlink(outputPath); + + return { processedContent: processedContent.toString("base64") }; + }, +}); + +export const uploadToS3 = task({ + id: "upload-to-s3", + run: async (payload: { processedContent: string; videoId: string }) => { + const { processedContent, videoId } = payload; + + const s3Key = `processed-videos/output_${videoId}.mp4`; + + const uploadParams = { + Bucket: process.env.S3_BUCKET, + Key: s3Key, + Body: Buffer.from(processedContent, "base64"), + }; + + await s3Client.send(new PutObjectCommand(uploadParams)); + const s3Url = `https://${process.env.S3_BUCKET}.s3.amazonaws.com/${s3Key}`; + + return { s3Url }; + }, +}); + +export const sendUserEmail = task({ + id: "send-user-email", + run: async ({ videoId, s3Url }: { videoId: string; s3Url: string }) => { + const { userId } = await getVideo(videoId); + + return await sendEmail( + userId, + "Video Processing Complete", + `Your video has been processed and is available at: ${s3Url}` + ); + }, +}); +``` + + + +### How retries work + +Let's say the email sending fails in our video processing workflow. Here's how the retry process works: + +1. The main task throws an error and is scheduled for retry. +2. When retried, it starts from the beginning, but leverages cached results for completed subtasks. + +Here's a sequence diagram illustrating this process: + +```mermaid +sequenceDiagram + participant Main as Main Task + participant Process as Process Video + participant Upload as Upload to S3 + participant DB as Update Database + participant Email as Send Email + + Main->>Process: triggerAndWait (1st attempt) + Process-->>Main: Return result + Main->>Upload: triggerAndWait (1st attempt) + Upload-->>Main: Return result + Main->>DB: Update + Main->>Email: triggerAndWait (1st attempt) + Email--xMain: Fail + Main-->>Main: Schedule retry + + Main->>Process: triggerAndWait (2nd attempt) + Process-->>Main: Return cached result + Main->>Upload: triggerAndWait (2nd attempt) + Upload-->>Main: Return cached result + Main->>DB: Update (idempotent) + Main->>Email: triggerAndWait (2nd attempt) + Email-->>Main: Success +``` + +## The build system + +When you run `npx trigger.dev@latest deploy` or `npx trigger.dev@latest dev`, we build your task code using our build system, which is powered by [esbuild](https://esbuild.github.io/). When deploying, the code is packaged up into a Docker image and deployed to your Trigger.dev instance. When running in dev mode, the code is built and run locally on your machine. Some features of our build system include: + +- **Bundled by default**: Code + dependencies are bundled and tree-shaked by default. +- **Build extensions**: Use and write custom build extensions to transform your code or the resulting docker image. +- **ESM ouput**: We output to ESM, which allows tree-shaking and better performance. + +You can review the build output by running deploy with the `--dry-run` flag, which will output the Containerfile and the build output. + +Learn more about working with our build system in the [configuration docs](/config/config-file). + +## Dev mode + +When you run `npx trigger.dev@latest dev`, we run your task code locally on your machine. All scheduling is still done in the Trigger.dev server instance, but the task code is run locally. This allows you to develop and test your tasks locally before deploying them to the cloud, and is especially useful for debugging and testing. + +- The same build system is used in dev mode, so you can be sure that your code will run the same locally as it does in the cloud. +- Changes are automatically detected and a new version is spun up when you save your code. +- Add debuggers and breakpoints to your code and debug it locally. +- Each task is run in a separate process, so you can run multiple tasks in parallel. +- Auto-cancels tasks when you stop the dev server. + + + Trigger.dev currently does not support "offline" dev mode, where you can run tasks without an + internet connection. [Please let us know](feedback.trigger.dev) if this is a feature you + want/need. + + +## Staging and production environments + +Trigger.dev supports deploying to multiple "deployed" environments, such as staging and production. This allows you to test your tasks in a staging environment before deploying them to production. You can deploy to a new environment by running `npx trigger.dev@latest deploy --env `, where `` is the name of the environment you want to deploy to. Each environment has its own API Key, which you can use to trigger tasks in that environment. + +## OpenTelemetry + +The Trigger.dev logging and task dashboard is powered by OpenTelemetry traces and logs, which allows you to trace your tasks and auto-instrument your code. We also auto-correlate logs from subtasks and parent tasks, making it easy view the entire trace of a task execution. A single run of the video processing task above looks like this in the dashboard: + +![OpenTelemetry trace](/images/opentelemetry-trace.png) + +Because we use standard OpenTelemetry, you can instrument your code and OpenTelemetry compatible libraries to get detailed traces and logs of your tasks. The above trace instruments both Prisma and the AWS SDK: + +```ts trigger.config.ts +import { defineConfig } from "@trigger.dev/sdk/v3"; +import { PrismaInstrumentation } from "@prisma/instrumentation"; +import { AwsInstrumentation } from "@opentelemetry/instrumentation-aws-sdk"; + +export default defineConfig({ + project: "", + instrumentations: [new PrismaInstrumentation(), new AwsInstrumentation()], +}); +``` diff --git a/docs/images/opentelemetry-trace.png b/docs/images/opentelemetry-trace.png new file mode 100644 index 0000000000000000000000000000000000000000..7939e05dc5c5da1ab2c653d9a6cb2d61976d4711 GIT binary patch literal 510047 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ⅆsiz1fnLX3B++MkOR_6*a*&t!Vfz$K7y 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�c%=p`Ma)J?7KA)Brd}2E2aFaO|c>VYGfWaN)_<^Bkxbf@#^71ZmGiNN% z0O&H8xK5>~P>b}1$LQwxuuF8&>TG8B!rRqs@veL1j;sE4M=&uYACH#2m_{(P32u*p zCRPU;4zw8k3!8Ip{^&;jDZRFpi6@QD`vjEKCDX7=!Vme_zFd*pQwpEniKOcZ;0 zvtFK1pp~Ee&Sorky=kK5wfeN^O8-PD_hv^&e2un)Ma>}J*KUWv`>#w&U8Uo@_Fh`! zY-7{5%y)%4=)ar3fk#w(Tg_3a9QoNIzDa|!l#|)=)fZ{nym`pnd|3K^;Fplqk(`}R z+{+LtMogdSG2v3@ zDvDksjqC`#?2C1qpOZK)!hPrv5t~mB48_C{f4*gO`G~L+HrwUp88>F)Gy=533^B~(L+1X53;znz8x6sFlC>WwzaK3)G@x( z?Uh5e5237QMLKxF%+Y<85(6nmTa+$9*2ctJ*aR6jgf{;XPR;#s1oF%zjS%maUB?$e z%l zOB%HsyxRdo5{p*lL(bvcq;~eNWu5*7a(z6#H1x@>id0~JA6^WwS62RQf%&H(?&@(ucCL?- zT8$^?H~aBsX0VhsO#hY+dWITLGBF|?b!;K9dz=#{SBGzY5hT54p^!@1>EZG)T0fuk z2;vEqQb?))ZKx^>f8IQFs=K`SMT?L9S3dgIXDKv^2(K*!EBa*rR~qtd3DYygu|p{D z3J?FnY|P6WXDl!v5g|F+qcJO(TF=hCr?!YG>;a;|4^w-2QS=7u)s>11JbXR<@EaPv zxT=$pzZ0lzLy4{8i+10ddwRahC!*&AZ;kGF`d-RDB)~@KJ*oNXq3Zi{lxIim&T{n* zHJW?fM*CeFI051IAl%XHFZ0F^KQI_=Ax+FNL(lJi^pK3R+nbTtB2>D!yl~Wrn_NjE zrhP1Yn60cVuIszD6BALTFRW>fFuZ!65~_8}Cq+^P<`O&uXYT!WAWUrVY~=y_NUBPd zjd{S}5ndR#Qi){3$>eO6s#>)xC%tp0#g*BUM15`cmk7PCiEK6X%W4oQGF^x}St`d~F0j^U|7h`P@Oh`33ih&ZGMJ!~hd%7Jid#mm=<^79WzVZZvXEVCG5BKoLs^@q)Jp75X>r) zh>T$K13;}Uqjp(GTUpFCg;FvLc8^MaFId={#!V#M_L~4~+}6#kiTy*_^o#dtDM){N zMyMx@s4T8eh(AO645s&0CXaZ+*gZMPw_*smJQ|EFe`c&1bmpr5?=P^wdC-yKfw9NyBKpDFyZ+CPZ$C8jfoAT8Lbkq5$5P7Cp-Xz&viyn9 z!yS5U9~?kBnfVK0sga%OMqz7~)Z_p}cooJb*pn5Iu5<|93pUj1l>Ke^iWF@xHK~<_ zIhn>|N$VUBTP!W+p%dKG^$sm$Du~L;-F%5G)<>tlZL86ZXP>8oc>TQmXUlwUUEx4s z9tb6|Kqu!uuzwEqW5xbrUBuCl4NkIkgwWK99_yteou-!9VqYF-m}>{EygeF&`-kkl zHs%oD-aPN!uLVDTHtl0eqtSKZ{Nnzk7?{26@#pPgPs3}{^^a*6lQl}Jym37^MTtV- zQo0hYWUXLTzv{1}LZUF6pI@c})vJ)Z*3h70k;IsNWdx65-_vtH_C*aG@`U+oc8lBnvwFLhaaIN8MU)!H=h;MoU-S6n}NGNDvl z`tP3fbCw&V`qxWY3=e=EydHcBj5^GZzV($J%G3o{O8>Obsz=tGOK;<+bm)b$M3EI>LobT)>Xj1E5Id|H+*BXbUg zaao^v&JLNbST8O-&UhB)$K$8rLycK63H8b{mCF2_;D1~~zG0kSxT*(zH*DyVs#%U{ z)XJ|{l*I^f+O!FEMYg2R;~7JVn|>be%nh?C$0)cVmx4qT&C&$n7SD@l0S3fI`uj#{ zDTZ>-1i9SK6}wXkLYZ8tJykrTxuysk4EkJcUrFxVk?(hPVy3F{XFKllCeGe)VorvG z;r3K4haIY9@q<-M<8Yy@EapqYXH+m9V0y3B%pFxmR)?xKH&rx08Ya7CQb8)yxaVa{o{r)ncEyRp*i=5hWcq*-xA}3+_A65v646 z@(C47H8~$oh3mI5zgp@~LV2WX%?urNN(}bEj*tsADb;KSHF>bT(MVZ5qhJzMKM;sS zw@72L9JVM!Ix<)h+TY6@gyGwrbnscLi_WA5m-?7htAVAOeHs%Z5?lS1f|wUJXM>;S zjR*PEn8)!z{%1{8fz_0Lms+&>z$b-?X9H7svoa#1=ecOx;N5YMtkkn5fNP+3~C0$s=s}m*v@s2KJZNRwOe@qPkIJ@2Zo)nhf_mb*OH$^5Wf4cl0q7(650KVP+ z*NpQ+gmK;psLeg2HAC7dYlX(lOmdH}#;KZ~i^3L@=s@Svu0S6(UJnK7F>8JpPoP|D z7ab3^y2sYr=!=GIj|F1vbeE)o5TGK<&`geScCl1`TpG$5deJtwKB$U&aBpJ7Pxn$5 z4YZ^+`}#t1z$M>K!{Cj%kfZlg7$%FYr}>q|_boY7djLYkb$8G1d`YBnir)b>2*^F! z+R-EeP8puoLlhU!4WP#9-Pw{scVh3PE04Loe=3x`(Cc*<_R%{xcf2kuAyopN$KYW> zrFf1(#>k37ZeXu|l5*>+5Ntz{8sTtA4BTs2P4rmSsc@Js?$;FijxH@6d&rL2;}{zxaV~AYqLpVRO!f1TQU&xPqpzPq zLy>CLsX1Tg*K7prN)ndy_%VaTEnPdC`hE#q3Mx&Uti=yzzWe0y7)orG-R`BG226Z| z+BUZFu(Iv>m5N6qHV1F1h5F_0hXv$E%^3=MDNze*Iq5_$6!l_Yb3a0PmL`rpP+a~3 zk645X4f^5@EZW}{*45IH9=eTur%wL-5iv(sUI1UL$h-2M2DiO`DDmWm|0f7WirirA zcOOOM^TS;%$zzgu%fAdhKP&>#a9q~!Et9TYy@m8>!#L?%X%8;LhU#ae2;-0tZ@f%q zTGI2_ofjpQu$?ARJldLzNoW^V8#Z?|dM#4zYo6w1@~5Q(NSf+QOsR6lnte#QU;N;+ zH_rS=LUQ|^yIux76w;jK%iB4+dV9#E)K772Xvm~oel5K4#oYP^_1}Wk=4)D9>0Xpz z{j-ogl=s7zm|J{aXU$E3bd$AL4Z<*jJJho~l2I8x^yoTzxL%epiY$FCQWU>UkIR>m zzn5N}+HyOOxTm1@%JnJ-dNi?NIQZC2ZF-4W6h6!$4RpoBopg>~@OF*wjVYk}+GtLh zQKlSp1`qZjRFuqD_{vFLy&gq}8rG6W&ZkgyowFTIw>r+)u5j*L06PqLsV^fqcN+>z;M6)uK_|8H zlSI#u9`h!pD#Hz5Mi3nUOI+~?S{cPVX}D7o!py&eH_7)^hV)wuptZ4>-X0E#)KnNk zsyeXn8y~Kkq$`V<9esoO{CU*m z3+T8DiI9vfK-zOuHm$N~VTX1fR79sUSWHSiyP==~=qM99A*Tm)lZrD^Nq0$Y^@;Ib z2GPLZ+rIL_B_kooEV#4~HVD2$Q*|g{cNCV1l7@Nb;}tf(RsU;+xA0oO|JeGmWHN=h z>Ax1bc0@n1Se6+zR}~8KIK5&09H40#u(nxBuU_FoZg?{OUJ zl4kkgH*i}qn_ma2l}8L8yQA$4y=yu=*Xj%TNy^ix64%Y@`fXPh$PBo4V*bOm6O6&~ z9Hj(xaf81z(4AG)K}%*qonE*6mZY+{lDL_)WbMgIg=dB;q8Aw@5mne#YLX6mqbFz* zm21&l6rO*&wNc4e`=&M$KV!pWWtdWwFPX@XR20el#Ix%T`mLjXW99(OZ%Z~5*LAw& zA9(C{f0)&W1R)R+l;C%moaPKC0#miMJJ!{E50Fzqcd5)>CkoXgc-a`Tq!ACnB7>bIuHL1M$r zECJe5Y**DX)9-4ke$I2*)YVSvXOrk|V?ygBfOiBAwE(l<%JQE*BEDY&awS7DCwi#m zK$E$$BuEitXm2`DnZk&iHT8Fb3Lc7SG`}QON#c2>X64xBXWKC6O?*;3RnJrouqp=k zsedp84*eB(^q}g+H0p9JGKUdK@mLIB0Y;I3dZHS)!qyVgV1OMm-95)7QTXy}4nZf} zd9*SmCqq6qdTQ31{NwEdMokbp)1Pc4;yD$Np?1MUv!<8@E|~1)juxNL8ceB8PsnB+ z1j#;d$IT)`N5Gr~4ZUAW>*ss=Ihg9mPcmM_(FB|5X*2Rc40mC@J&_sulh4C4R#@8a zufx0GM2V}=SDB|TFNi&gMruRJUZ9{oHuXeBGYAnuC;$>YppHc3ABTHd_P z>|}-i@r$0jimx{V*ca?hnT#44FamoYFu?3fRt#oaiYcmuiH7pruqL0xRp>%9$QMR7juF*QycL6h`56%YhXy^VW*Yb0?%5mt5V1uH1Z{ z&0??=j-!_axbnxf>LCUMr)1DOiRwU3`mI`J4RH&MZfnOXjvmoX z_*d@LpRK(kRHTXclZU54kEg&&>l5gQZMy5hXRX(j#Vd=&CW)m-+-%Uah%=A%;I6X@ zb13Y0WCWIfLDUvM@}_Bg=qhNuj^0bOuo_f{cz6=G2^>w8K86yUQic-~?AUw7HqW0$_fDDf!_Jj>`YPU(*0w)2KnG{W`d>hxQffP}@HTHf zN;oYy7-nb8>IA4y&yjC-VUPX+R9V|VF5OpxSx)>|fkg|WsCGN+Nin#cu zQ)d@pTS^@QlhIJ)f8+6%&hJ96aWBFge&Bt@&S=uhpG$qo*!wNl3wF>jZH^Ths4hD1 zuMKi820j;^5Mr_eJxV(4$m$2R^DA}vl2=6W8+=j}+Yi&dUE5FGfBIUqsmdF;$TqER zFw=M?D?vXt%;>vxKRe4-D#b}Y$UJI_7Sn}nB~4*DQfJ3XkQcx8Mlz|kK1GEyHA8NmSAvJcc+?%~uq7#eZd>)<;qW10! z1L}y>Slj0bEL-9hGXT;&&1nG|H|y^PIcOgJy^P}bLPCD$D|zDxU&TrN&zOK9ezoP~ zUVF6eXn4^cAm=M)>UbhBm-Elx4w7PI)GT9#3;aNg?H#&ni@IS}EA0_i=S+&rn0?dm~uQMuIo!omIHgyiC`-zkQ>x~o`d6~Uu z-Y_HUR!K#XvB*$aD(u6N8@2@;aKSj2j!ZbQekAaivG{xy1LE~&xGH|5y%FqwG*ga` zm?)pyA1~}XwMWDceEU$r92*8&X!flt2!OdTVzhTI`XY5|IPnf6*EmL6VxHv+7AtE& z-(%h#bzIL*5Qncjl|L2@UJ@azbQ5~i?X1%*Xp;@mtH$h@e@PjX%?Df)f4?l>&^5|6 zaq^%-IP@t>+HUiuviSRklPLDyq2}={4#o{P33RVG0_iT-(1$|ii?O`ED6h!>xEOk+ z5*so!d&2~D>IgunR&Hw?e#S<&^m3Cw$H2v~NKx#;fwB_BbR@)H%UsdkeAanN;sa!{ zrVD_9*Xm`CF(e0PWN{!HfzWy!Fh$amF3>{%BSB8k<9EG%j-fZz4HkcL!|((`9g2&{ z-SH>n%Bit{55l}!b{M?S5P z*K|BNKnvessmsYQ>1KKCj9hb(Li=w^l%gt~Tq5C-x_pbGf;cHDP-FuTnkXK?hbYtb zf8HGgV5R^AV~bV9IgWUs4j_5S~w?)?=KKY zw4fAze_USUnIVcm$KE^AxRi|cVkY03YLqSu%Xq0x;Cyb(Q5ia0&^K z9v7jKZmrGx>8yPcB++s%j>Qnjbdnwt&GuXpq37+XpC{;2$VLx*4Rp2oJ@ujQ| z*z;TY6e9ep1B1u^#iHW@Y;SXopcgM=+loNz7H}yRQ}yy-z19_GS3%n}Nk_!`VxP%P zA}2nz6RRjvC_|dXgU(JK+SVmokutDGt#}UOvg>XC?@J`|s--j_eC~w`OF$^0I95U6 z<8W?YU>ezK+;YK6VqA+FCzzPKi=6#Gm~$dQ zv>ff?^H;b14h*D#h4e$=zQ5kIAjy*-=J7T96zZDI0sqa}Q?eLH)$EEL0bEH+H2e zJymi#{jO}y^U86;*O=@V&M5cWGaIw3j*JLJP?Z6HH1Mv21c{ggAu6)%@Rg)neoV~2 z`767IGy=#OGSt&t5Ve|SCDN}6<{uc z_Q>ZWx6^0r2J)&Qm#GGH`+*(9x@d}p^}|xu_l2M;{t^_2CCJ?q`Nf(Ab`qBM>^pTEAXkAdpmSiTur)J=G*&r|I>; zkwp+?ZJB3yJbuUiowk(Mrl;whU-J0w=Zl>}1?NyGv=2U`xb9Ul^^WQ4W?0J>1?P}D z?jILFCKRq%z7TQP@Umf*>2Un}#+-1W1=#U(>>eOKu-#&NxxQnu%4373K7r~X z9A%9&5nxa>ZxWj{%!K$woTOm)#KWMeK*?G46nY6xD#SjZHX}YE!IUQ1Cv)kZJ^FbxQ4eHG7w{m*tQ4%bt3e=lz-~ZQPy{8Q zDvaU@xdrgREygWSwI20o1Ln8tl_@ZwRM2dJtM~hW9ARC)k6E78jzGM3xF#3 zAou}cP5B-qZf0ULAZ^hA?*`*Pi~|#{%MSOTqLM9@$GW|SJ;oZ4fbxC*-?(EK!N}m2f8aW|E0mA-oa9q3@0up|^k%lL1N6`HYsHyU z+9_2b;uSZSp3EeBMO!4F10 zouUk$;WAg`j-D;1PB1%nLI&JZ%FH0w4A~d28_~4AGpHLy+A&1{e?0bU9whJ!SPA`k zQ}5~nl_1u~VG_azrwsR7NGbEbd14uLTV{D#zjr4xS^MUvK-&c4c*7%Q{q4HT5gpOY z&;W6!u)|93M|!%DPjXLnR`8jC2t)*ApWoM%8u(df=V4b<{z<`&kEc%Pzcg>#JRi#P z%Z9^&8jW($hV$&1ESgUrwd-at)xW`|e`@JSE+ z*9QiT19F?JGD>O;51#xho`aaIm$`SSf*tyr$hdJOG+!}bu25yiaas?4QP+Q3O&4l` zK8(18LDdY1QdBz|<|5!y05BIwQ6|&Q9UWQj7~+!fv2(Pz-f*CmiMrgOzAHP~_02x- zx4qdyd`^b>Pa2BfIu{IT*w^3m2MsulfVH&hz&5|yzi7xQ%#o&Fq^~z9X{o){B$zKq zFU$`8m;eXQ&uvSQT5;o3GXpJjXL54MZD;d-Bqjtiw|NQ`;1Ru3I+)$Rj{q|hSo1z$(E<&uLI8wfqQo><`=r=dI^yrUSTjML%6BUKAV;YNG1t zJSx4Pr7Q>4l9!L0tK3MjP`%MvzLjolo?gwX@=nhvO(N)U2uJ)BvqxuZR4E_BAFdpl z)FFv67vRc)zj|0j6QpHt`6@x*bvrV9;LTqF?+KNJ{uy+$>nqr3VTkJ5EsgbPDxP1= z2eAe*km)4Yz9V-`NCCxRp>SEYE{)$O) zo*F}}OiST!Abn>L&&zM2Bi)_o__&#pE!I`^?3VVtirrb0*P9hQa-b^E5GjmA^T_!e zkBL|d$zkx24+B~)IgA>?LTY$FrZ29)ZB*YK9DoQ4SaO#dx4(T~=+{F_hWhzF6@d2`=<2fC=w)TjKJb|9Hn?*~ zQ(7jLEri29d2}amFWBQJ{|55B7a&DNNCKrMD^bIJZ#kN}+{m3;v9U4chE>;aV^N3M z?O3GGrSf71%&`$Hl>WX+ta^BKG`Li_H=Ho%y4fzNxf`h+ae;DS74p@}u%YcGw{=y( zSS{r*DWpFKW}Lk*f0=P6CYD$(Wf2WB%`G21ef#cMrw^8)&EL>?U!@Qo=}$Ax&^WV7 zg?#=yUy)KR+_YLV+jLe7UIk2HIwl{eaGJ>6fq@@c-o+qElY;594hjIz}|lET=3EJX|1=xkxjAN ztUzI(k6F+84v~kSC(|D= z%wAmxYN()AUpQx;RU1VOo^X=I;I7a66pyFbnq{GW&itK;fdNmGe@xTQ^c?<^Ed(l##E!p^O}xLXhyvFW(w(Mkxkb#CPk)n zHk8R6f6B6xys8#pd^@^Ixqb;C)+rf7t{pu_XL&Ry=CI4K)hhbrZwnvc|I2ZMh)r}1 zb4}O--71lP`&^I>W$72{m$op5d9D^Y&q2M|^SZ9Dj!MzJvEy4?KD#CztaPlD{U7>) zRm1(`4w|wkdL~#{Gg(eap~jP=0sPM=RYYpw8jzCe*T~J6Y8*{5YZU*6pS z_eE?*oH~@c=UL2;^zA6;*V5MREe4&El5h2(_pexN(W~N@0D<1!iP@NPg%b8j3DRi( zs^mg?20O>#Asr;j7|H|3dfc{qU_yh^S3cu7bjbuxwCx;*oPt$Uy?|)!W>U z!u;F~7(ARqY(%%$|2a2S=}63?Vjkt# zH2hASb8#?ev@u7J1drU*?fT&tLD?YZ=}GkpT<4zNx3-Q1hN%W6dMJ5~j;tv8|7D~Z zzuk3khK(%UP>YwWBL3&!ebdgt;Upb^JWe)?y+k+cJ^(Od0`%`@?b*nEy?TkuKCoFP zTrcABgAQK>AXg34aJ%q>o-&`NSSN5)T)q{ZQyIr#m>XxvPVc6g|{>1xUEEv+-N|hqOQX z=R5#;sBFc?KL%^+)oR#L7veRYmvy0wguC_~>y<^B zcwUWXNcUgE3ueR^3mL!nzm&!g&q^q+c-=VMCy56c*&mE$paBqzIJ8qPOqsEx-kq@v znH0$VoKydR|AB)w&U1F}i%SZ`*Hp>W`t>hTS)f~V@F_l`C11nLg9plei@r-Hm*R-C z=T{T1&xsCxmntlgHMmEOc`2$oahuF^{Jl*bEo@RRkZ|ex6b8d8|VXELp-<*HRoO zw9H9TfH?*8;a;Q>WyD>!06Z&_6MtXKY*dzy9rS8inub3nV1epf>~6pabWTc>{6aD< zyCj3`jf>QZUP0b&1vigbGbF!KIHAt>^i9758@bFJ=O)pC&8uq|FwwClFaL;nsaFCY zROJ!+P$>7NS6^!^Ii;jLhFT(Q{jBl@bfw=$%uUn$~&cIlszdYlyy8{aS~)uJ)C5KI{3ezOMcQ7HRCkc0FD>n<4PPd ztoy!gr#(r~xlsgYl6@&BvUR&h8;feJ%a(6S59DlrDc$Zr1SxC(aJU!du)kbdS=_=6 zw#-3}94C|%Vv|?|DlP}n0X6y5mpDUuo1li7?mh5a>x8`!vx<+h{CHaq;r%{jiL$Df zFKn|N_1I5#V#Y>grl0$^Sc5ZkD$#-4v*afKFf9z+sJbL9=3d%zxco9V|AlT~VNntM z`jH35ip0t(M%1&^gI<_BkK`F-iWG*pni}oL9OqAzDZjI3`FgWxwujGv0B%cB(tJ?I?$F2{ zI8PGm{(SjEIhYtimWt8&B9Y4suu`QAJGq1I7VS^sBpSx9>k%(!dA(<86%c}j)d%K2 z(Q7P^qrz3KpWph?H{tS^ehId4ak&aN}Lkwe@u78w?L% z>y!r5ZgjOi73pdHhU}#xQPn_3agY}GMVE$jaHw(o&`=ED!lD|$Cb1xb7gQ#+icx9@ z#lxI#v(@`F@e#m4 zq)BH#*;2w;0^bOT%YVGAwY9|1em^ryMEA5$@62Y7ZNzFMQ?Z4?9Ma5tF9uVts?zx+m1xG?$Pz z=-twQZUMmKx_|4cpkM{^#aZ~!o0~(fBn5SYor59ndRc39SKu^14Z)y#ekivGM(j4j zVUtKEHhR%ai5dz~NF(12*{{?{U~NvaN0A@LbNawS3Tq<7Ea`BX!iD_sS@hkAA#Zn} zUL0I_!a~A(!@Srr&nd_JPjef`HA`l5Hs12=A96Iiy}$;U`+vug*i-)$UV$NSW{$vFFqIy+=GX0kC#8=( zhmC9HZr;=*3Q_{WUhSGoKl!9Ix7KA1I9A;3_$Sjn_wDd7c+qF%gkU=@lK6f*YEqr% zj?5{MXQl(Lfm3D90++ODe@3IFw@<0TJJbvh`&*ff%@mpbB>qYhZ^9g|8?xxW*z756a-NRk=r?Ra4b9z9I|h9awo01~ouQ{DpUNe;|CcbE z;eZk3r}#?xqMV;M3{T9VO5RHjeJ%i9TtZFY_t3M!cc-FmA*IBvF$d&&0orC7mz6UY z+t&J;2VWbC9HS#)0iDI4G1-OWq6?{4;Z2#;AHYFqCEcXMZ?04EeCQrC=~@${v^uGBhtML*_>A4^?2jy`X7^IjfSk zoSel5bvZk~yM-*(I#f~oJ!!T>W!4(R;k=N!>5zvuj+)uPzwTfaOxjAN#ARpX5X&e& zYB#O_?9%NCCDtX3PpgXJTT+9&;N0WIJBfahA2t26il z2{9%HA*>gZT5X-qrzeSatetxQYU!Fz1tqfnr~E20cl1AED6*(v%;R6KsOJE}Z#RMK z-W)Hkh47V^^kpU2O}3ZODcx<3g(K2-+LKp5OqW0Ljoi);PX6=`Hl~F`>yhH$ zdG5 z3>p6(@(Q^$z__(mIMj%q$D2$KydUB1Y^#*9;J9`pGl}DYNKJ(2hG9`u#v16pMh#2$=w?|`paMz_%y#zZQ>sMa$hnLUpeIBQzrr@rE6M`K@%1(*4wMG%OT1Cl1Tsj zoiA(@3nEwDeq?EW%L|zC6>Uk$iz<_cpx$=5x&z3(pqv}rat}_C{L#UcvnHuV2kfvK za3_?v3o8csBIOWh^H9RM3QH3JYUEFc5}=jddg6M2|4{#+Hk*Wc`d1AX>$}kz?+{5j zJZupJ{BkM!yj4R1RGHF;?u^)UzN8b@;YfAD5ZW`*k{g6KDpv_*)T(Hd<8 z^}~Oyb6HA;{Hc7?J>dDto?MoHb$BuA$-#p8uPzG-*K}d{Z;JUF;Fy^wPH8572G@We#IRalLCYCpn9+ zq9o!8Tz<5Q^T4d$WB|~bv)A>9UbB2whAgr1Ua;m1dTX`OiTx@P&Em7xHzb~?q{N0* zZ65>9J^qDr!gwVv%24uuH>-E0jg|X?aM00}f!EzuEzUhZXsy;;Hg)r+%7c4xgaHe0 zmIodFd(*t#2foYE$>%@M>5#x=w#eeZ{iSJmAfbw4vUCH)!SM6q;+XR*PL$?5IAwv7 zdZhL5>@olI4Vwf}ys^)D?~ASR06Z5m72if);>DTX$!)uO>|+Unuoy+y`|Fz$ORICh2Dpns)q8C-U zuMzxRBdJXQ&JKHk;~0Fk#7Z(p*;>cCB7Ib3ymYmdEGkP@<*INwkL&9`xC~Zjx+E{0 z1Lv)^E>Sj~FjsH@#Q%Y)ZzD<{>CbNKDOAZmD-%_-{tu0TL4#~K2gzvQ`0;_+3gaya z@mA*y?_DHZW9WTC!m_O;N|0{USmYnt==mnj2aPBL1btMMoFsl@I4pyh5CUM;rLg}7 z7ikEhf?u;qtocQ-2$TB`AhYG}Rqs*E1|97IY0mdBmpOymVfo+71n+1sO0qrD1C3Pvl{?$0q=;9C1Is7=&#{zUQ{av&)h{561`{f{m>+J8NXoAU@Z3X4`}5w{ z+6_EM6!sstWyAC}DXD5MSFc?zweATh4<`y@Vx{3{J3DpEzE4#8LcDT=o`m?>|C3#0 z{!1h2jv_wSMiTI0BsQPMb7u6|b~jiR$HX=dOy4LflIg5q!#P`R3y9I6f3z41F>sJ))C$3w~?Nk9eYSD=?Z#*Ma~#<&vyY5 zOr;X@#CGI4d?bvA_~Wgw_A6KXJ>p7k^pCa3Hrp33T-bpJcEhR1uqia-Q5aW2DFr3- z=L@I%S(Xt)k>+01ilzI?a|!`{aZ%QS{J0lS4=WDg0aLZ=7U{|#LXpRl%WmM~gS|hD zZ$^a;kzd@X`TP>HdmvH>hE3_w(Xbu;|9|tyz4|a!nF}he_h6h4jdEM3EAmSldCY~Ayk)Xow&*g@+wy>Ho(ZlGPiw=HI^$BX5I}Vpg12gIb#pJcWmAYluv5 z+XcXy^*IL1iqu^|p7<@nq*M*k-Mc^Xy*_ZsxwOZ(>hdH`KtiBdxj67oW%8#hDV`My z0f~HH@l@mrkcx8<{=SivXDf*7P9+ZHf)4qf&6jrKTyo7-$Pcz6E8_F0`cLfdXL-kR zc~gvi9rk(TIkUpAH4g9lKY&|kF$xxHq4@%&z#JyUi%DvK9eDu8Enm!vJ-@j}1!Lz= z#H(;Ul~L8SP(H$U0~I`W0;6xLXd0U~iCLCqoL#6gei3 z@7TLWjXKpz>3!!t1MslFC5&DB=2%sm^MqkN_o5HIZ!M_KnclDB{#?4E*5OB)VkiVt~!kctQ3=MTq z@H5&zQUjCio;m!APcNv;HIM3cH+e>0XO!u$$32GA>)|>oYr=RGBt?DYBtf zB$>grz$q!|b_8t!!PVhBZm>F+4(v#qQf9ic{nY_96>wWV5Ic53Tp38oJk`Tjgz@Se z-=FvZy435&9GK`-qdCRAlczD4x4v3^UFt#<&mO>>kyC&0q5IpNVf*#6UvQIeb)Zw- z%rSlK(?tBjU-n=@*6rIh-p{d-0d`_*KT=>3p@U8A%%CG(B^XFwRiS}|H6t5Ou{m9P zuVi3)5o6|)dWjup(P+d6S**x))J!N(0N<6N9%IDjJ{?ml;R{@$s?4zY3(!{I>ERCg z+vr~}{I51T(%O7_nzT{n=oEt{1>cnW?;;2@s+%}*Xvp*N=02q6@DYF$D?FTE6OJs@ z!lRdYaib06RyL^04=zK^N{eL^vo6nXuLWzBqDtKE&a8g~7r%cvE0~3`#=5=9Svl_( z;$%rC_hyi1@uRt~B_DqIAEcFUkPsaEWYo>~&YOQ+9?%I*RPc$fnFimC zyDoaJ`7JN@#q0TAd-EmU-)cCBvJ+540H8xlV%OE3FX5)&lR9+x@Xo?U$7uJ`Uo;fi zi1wH9fBXKk&?z}}{!2qmTE{}f=V)8B*kCNnrNEL3beGbgJkXFfPEZTQ_*N;yX;;VWIE zwv_m{cZOE;N?WccGWKwH9j8YwANAt+@UYg%>JWdX5G<)JZ~dx<*H*ck)a&c{!Ooiw zv4~Z>)4x8{Y*rYt+!@eqch187Mi0LuW$kQ)#6>Bxhn3$We}8>PcRj3VXwC2GcHqp; z!l!im?K|AyTgFp)tckJ{sx_d}JQ|#nHMtjY8$ALaGFLN+or)o-MVD1R7GsouP!Cuc zthNJ=7GB zf3w^R=`DI~-w!;erTHpPQ#0+@11QfcC2#1uO8<10qScAc0wGke%^jgTgPO5axSfiK zIKR<-G1R{R-m26dpGIngqU6|#&-w3LEz~UTYzo~OM`sDuo2_e0V7O0x+sOVA-|QoY z3I~#dj9E;UN3IlmbHQ1DqCLO4E%Vc3256K( zQe7$+M6d{#{d$}48kuRnbd$v&jLj)0qi43WUGzdRmZ{E50d;`t!OvG&#;t6FS}5>(M4k6n?L_Wa5=RGAk!o$?4><6*$) zZdWLRbVSX26!A2GKI0E4ir-+`6^2f0dd$&k9x*_ zd)pHBPC10HrfDXG z&u~M16+zPAr3)k_r53TX~8goO5IzE!`wN3ZK?+w+}7aqWQHy z_R>L(a@=>e{rwHkZ5UFMcy4xm)v51z?{?Zq$@b{LW2bx93=_VqDUiP=N?xT24V$F& z*3e@DfxlC|D-SSCZZ$z4z7Qp>aZA$SF7$a;3Q^1l-PQAQ|&haRYyFa0Io-NfuQXPhn-`_WLX0sR+$xtfT={rpBk*&%NK_ohiJ zt0dAT>%1`0>Vsb%FVq}}YwawNzgAqYP#rO?5npO-J)xcWPv71d>h4%leKk@wnv{Dd(U75sc9eW2K}B7{Dr@9hj~y zw=2y_oi5Mpcjc0;NfXguIBB0Hh;#s+xS;Bkw&dVKu_LnAM%PnL!_bnHRpmBK>C`)!jYDps~FL06)^fn%(q=YQN)&{Tr5=s#L(#p<+rd^+=!Z<|TbdJ}w@#Q~8{hdwH z6Z4BrLOj+`o3jrZgj1DGQj2Hl{jF|ANT4c@aha|g^JFkX_KpX>D?ARss@i90WgRsf zzV{M`VrJ!6P<`W1R7GY2Gfezo1TZ%Lf-IkrCc=02O@r=Qsq`@!eeukUD1_LIPJGw# z7Pn|goSUt0K|b0Ea5N`%;ya8xj4CXiP&E2wLLXZ*B;ylapJJZ(g|%}GW>GOoRlGfpgSNz_*)?f{_fo;Z4RxeX@dCX zg}R!glR`|80SlC|Fd9FViIA3N`Akug0lDy(?&D5R#TQV(`Q-}=JLU@Im=y?NMOmO} zC<3IY68QG(dJD9cPJJX>_dAOwsaYJwo=Q_rI?)|nk+Zu)yLI!8cyveocwDX-rFdr; z6s)5gs|e#`{hK)AMeh)e(ZuUzxpo2`jrkYmXi5;c==~cK6r@?r4 ze$79fC3Cjlh=T!77Fss@cn>iq1~TqtN2*^ikr`CoD(E3{vf%yC#*3TbP9laHcf{ZQuh<6#3=&>;7|XeZ*6QJ zhp&;sr_Jvv)tQbT0anPRM=U$Tc`h}iRpVzXsPUsj^E2v3D~_v&PiuEBLiwI0GS5uP zs8i`ZjjCRczvOKD@GB6{rG=GfHf*1M!8QvZ~?Lt5)YUO*Q5z=lXA1X#NCBsC#?gCr7Qbwu0~1i47fiH&h^;h z3*C!Xf|xU19VbvrakDDa*vB2FKhVb6n=iw-ZC$>jLZDUa<3W?NUoMPU2mdXDIQafI z83d62YV@vL+P`!xCe;B}0*_RYD5HYw*Iy&GMHsr6P9ONYJ-WRd&O>LVVy~6R)fQ3u zdYiF->&(s6uifNk(r0BCy`xh^Dw4d;_M7o1cST&OQ)91Q6Su+M)5Kd1AzRxVLO(pu zz08Ig8LnH#I^HW$O2y4pOE;oxi~cf+m25ghTUO%`2qX^TW_DLQjG|aAp43rHw}pIk zBxy@EP^(Tf*gn`fI{d!7w0DmzIT)keW26SNvQ@%)LMK!}2+!8B|oT^Pt?lS9l*E z2Dtn&aD2tuAy{3qB89q=iZc(Hw*t28g^R|c=}EcP1x+8EnyfzNvzr3~@n_24xgP>Q z64jwdAJGpitqD=LVlL8sr6S!iOzyEcURjf-BftW+zs*W{pf*#^6Q`jhqaX(xaB zW-i16B1dJA(0;ev$rM~F1M{`1iL$6oVMHhkMw1f@+%{YJk!&Yj*@aBl@L%JEu=+3Z zwAAqT=5Q{O!fzp9r4{(Uixdi*uLjYs%^ zqMi@T%qgk^o9Y5nFu`)((%o+VQ;Elt9N%T3o+U9;f~lNwvo4e~4=jr*C^tzLz~e?6 ztq8%Lpd0`9IGE5C9o@^4RYehv0z&QDfc~!%&7n;?LbO+Mk(hjf}{0&rE*jiP;Bd2FwA{vs=k|`-wod_u)~4 z)s5-zrx8HeUiGh+Pc$7PN0ZQeJGX^#K@<(j2O5-y=ilIs>0jUt(E8CfgWcXRcfhq( zpDfQrTVWl95y{!PfoOKZStR`8334fi$O&599S=*k&Pw3XehcPzd0&|uGkzyNK7<<2 zoLR9iavPxKe>K4ovI^Rd=)qaFOT~(@3n)EJJQWLyQ9)2=c%~5@zU3;1pH`)yK*}|% z?kNrI77zUB(=+HAVXKr7Ne3|cm=aNN6@AT!@qg1K5S_LAf7c`!dck72|^NvTW$uG@%>tyl}`GSOKD_Abe7 zIBNS3V7z9b=L^BQLHiyK=DV{+^!1^A|1_(9&F`LM#ayrCcpAz^`a08c$lMF&)Soux zlCqpu-2J4O=TfcDnv|1L=4TtMUh?7Bv&U&ogh{8s=nyk;e(N5NH_3W9FGffN34pyR z;_bidD1LB(0f?63dIRcz@}_k;Ur-jDaA!@$jHKCA-wye@2%g67EJBny`9|pSq$?>y zFXrtMP+bJnZ0Ql!vxIBdTjGN=BBsr=8H{CN+oz-PP($SI4*1@IR^?s`83^s&s+Zu;8!qMYE^@BgNA;#IUb1N}(${6Q!&n-1RNj_0l%rxgY34|Cn= zck4Ggg-pJ9R?LOP+e}aIGLv^mt^m?PF)tbQzd=r@Q8HoU)aEZ32$l`mf}(d(w#N%E zc;N_lR{8NqY+es_lvg3#c~UEsaU)s2uwj7w_Ss+&B_$|9vv%_{0{DM`y#HN|V>IFy zeGl!I9mz_$=t)gjXhe1-U7PMZh*9B@Ow|mXZ|DrvL|`m?I4)L8he4-{2#WMb9bzPu;-R$({ock}gkxp= z&4P!aM@|x(0h7kwE=wADc&V(i#wfB1Ovc^j`HgQ6``!^ZqWfOC03vOhCL=Th9O12{ znDN^AHPUFZi;lrt96j(QPSO%`FS{wpjdJ`sbj)`|&JOKHDM6OTKT)m! z?ITg(CzU{_V8V~@V8!0f*if=od4&7A7!n9mP~7!>5#r2iaKS*g7+Aq7YgXFppgWt! z1@Qu3x)nt50wjIbWa~XL*T0--4*vGVKcWSsdB6?X`rW`KEr)1G2-_EM)-f5}=u`gI<%I05U?H3wOaU*2H&FEyy5Y2{4<=KqjtK!US$Bai4^iR z;FEag0z;`^Y5=<57z~F*aozn9x~Y#wV`gXG)MVF1NGd?OrkMHA16UdJ(a%m@X+=XV z7aVZF0rTAn=!@;V4}iZ!p{w=-$x8>tMfW>=(~Fzsw_m&dHxSd4flv*xH%Nhu?%rw0 z?<6Wv9jXZ0*AXZnwte2x^wd6S*Dt8Ar@UbGM64kG-h9HnnvX#~)*StEfK>jIA2DGQc$?PcRoS$vO3OfEK+vJ3Kr29Xn2ZJYOJcd%wfg znAwCS*}=>EOb&v@UU>U9kIHi;=(`vOJnPR0HY()b51Sfa0-*jbdh!J`lizbSExN2=S?17`by@rX`yisxVrXRdB4lCpJV_W$2!%NXs?(CycGe&}Z&VnB@y(;WB{@8h=9cL=3of~$(e z3y}-%lj3Rv`8Ve7ft`5+!e|ZPI|`2wJ)dB;4&RxbpND}xlmsMrAbzAMrv8gn^7$L; zw=Rq*$v1c=I)5mL74#E_y#%+fY>j+2OA}N3j--v%8)GqEDHD`v$STpOqw-&vTKf zKcb4lG}7!{x4Hb8sZVV;fc6K0n9@K)aG+9hUjV=Z4`8?^bOZ|H1W_cA?CB;~1ZA2C z;D;o1wjp^iS=)Sp71K)Ee!_3=+;nU&;Gdq_`d=NW=9`5bz#0Jk#b!?6_r$^R5e2j^OB8rLj$Za1m z-G#%+-h?sADxdZJ2kXG7Zu=H7I3_!7J2rN6-z*p-`3`RW{@C`Tc4JM@PrGR#LLlss z0@NCO2$qlU_$o=f6f--UmEyTzXXnz9rUV!m!xh$$RirL0ZUo1ZFXu~pl4(Evz(M2Z60VCSQnkcCyD?k7|FBge29!6-e?+5Bf;kM;+D{<^?cSJuIpFU z+fRF{ojNr?^1XdWBc9g*_zv5GNL4Y*IKvK7J};E~^1T)ymH@6O@9 zzH5|Ras?G?f=%ZbYOoqkK4^YNq^1@4NJV~^`}J-Z*=^ru{@$=z%n154nr#Y(yZ)5r zgfW%h&@^7}QO?z$_VFeK2&Z=ppnAx34P4^Rr4`VC?rGnQ%rvxWEdN}J z`AhLx4K;aq+7vrdf6`j4t3EAFsHuCeM-XTW-*5qAHDD1pRLAoxY~Q}8vRe|i%jx%t zvZefN{2Bpnt{No-d3E#$_imfws^WBQGqQ*YQkEEU^4*)TR)s#kUT?9T^C`+osyGX| zs|%lSg;Xz?81HHW3wjQF571?P{Yy7YT3C_Y+b~js67OS5c<734JbysPepqNsVO|p` z9;P-TD6WpTk9^O)z@m?%NVkDx?jUR>nqHQWOAl4&j}L?9&aMddWyWWE%-}N0h`P7&0d>Z_)c7*fOcb6l5ogaB^6%6jbw(b1UzbLeOlw81O zB6^3Ht`T;JmlBWv+<%PVFl)-1{8N_xZ#JF`$}lr|#SE6JgMK&a7+C4Ip(}}_SJ*qh zXS+RLa$L*wQ(t9TKeJsQD=3^e{8tn*6KW0`(YcA?O(H(vwk)5W(kJV&6yc)$18*h^=PuJ)bq zRpM9Vrfi#U7!2cRjRxN{;DHOw4V#BQsd}rS;pW*@*PR(0I5%b0ExqZ%Dn2Q>CH-Im zVSgJ^;1qqTjSkqsx%1;ayHqBDJJ(1^MTBmA?nS*GifTM8KWqcdiA$u0B6I*%*utNq zf&Xj7N=rxZfreT`YxTQf`qK+8CL#SvVKCqbwif2th9L10d zG#`%pQq_?6MD!KJ0Pl>FL+)zqEmhHy?(D!fOyNOPO_Lu>{ z(w8qV5H>TWpWMt$6WN+mmq71*9!xuE$6-BC6wyhK1*6Ju;-q$lh^1WOy&WLI_(vwN zp}Nx@wp+GROI@~@Gfi@OZQVI>2mSag5cLA9@|Wf2lby{p3-n#WRianMh-5I-Le?x zC_i5Kw8z7^;5FcSzx+HeBlu$5pzS7R?ET)5I<@x$q6(|f$jQ6yYul$h>)zI~2q~<; zJISjnt7DV0R-9h|5MMuMl4_{POYMG<$%s|fh#%U77{!cbAp`>Mp3uuinZ*vK{sEZq zm1TrkxAZ3|H#g#mYpj>BfC*k7Z#?nhT6@EGG;6YZG#BR894};L+$1fwJa{UQ$=lCK zre;s^dW`wv)4Q+A^%(`Y5>K96P zr}jIip8Ix^8rGca%Z`3`c6k@Qs%gD6-c}(4=H(!F!)wAe-)5D2rwdAQ<6|}B1v*O# zz1;7gcVcBp=y83UafROD+EA}RxN?}7nc&xGhuuzr30j#q<;B@(_jP1y2B zq2zZ=%8lp9xz+dz)R)pBdjaytDLRr`y5k_>!I!gj_{-OG0!54jx-OQaIR`x4J)iLaq>(U~!j-HqAuW5neP4cm&J&v2g9g%Zbc%H64?|T#B0y@`6r4!huv>otXNN`0pmO|sYu_Or6L8@L8mUx}8EK)O z3cI<-X&hK})orisc-DozL8@Qt%ZL_VB@}x9UAGYLB-6s^>NQbK%OU2CJi=w(nDs zNBWH1yk(?=Kdm7aa~oZtRc>(ng_t%x?nSsus1)M+s=qvVZS8aBy6hgcCwiVdkz=!* z)fukKHKsYE#S{L*t?!=8{l{iRRL#QG<0!?oQOzf;bpHy->>1vC6oIGi|M zcJD1B9$|Oouzmo9%_Ij$##F!`%mqFYH4zK9$@5IIHme!6`2- zBelz`vX>iggvXpb=$aR0O)K44)A4Eg__sgq$I>mz(D6<=o~I2s8u=XU(Ec&%rK74F zKJbkA2IJPwzOCwKTVqwZ`8kCtgo~c}sbf;+#&^EXBp3|q(wA1$(=H?avg%SIALRI{=n5=I*?_Aq@dRY4 zF_tf6fcM!)IO5%|3>ilT6oL^2zFgN^vxB*wHAzCnlFl-Jnb4p@`#&Doo7@a8SRSW0 z7pnIUz06Nqa*I^z_f%WuvIk$x`&Z8!p45%+Z}15hU)XG&fCt@QSXc5j^2#*I#HvGU zOF{1yA9uUIDrc}&4+@8L9&lxw~#>?AEQV5IVR2gdPe20UiYU&W*9k-zxa=5{c@lu05l| zvtlLtPA=^CvH8$JP1bx*j(Gh#)Xd~tT5FHr)$WOCr}}E(TR!DS4;fUzxOs)9Q3KIb z-g1FZ0$jj@RT&yHK}T=N28|qCNIhH$EId~~1}795cIMF6`6xghv;<+SuiX$UsXA)= zTuf2iK3a&1w6cxb`ZKc17z7jP@!cY;p}gs^k+5i;d24G1m@HFxz`?uPE*=bUS$^f%4?**zB+j5k z@a)8bGENoRqr1Zk2rn`w$?Svk>VH)+z6&t&JjD!K*ym3cMi`B8U7m=Um0%N$o-(7> z3>sh!R!h6Hu)wSfm(AVC$V7x;o@P*qgI47gd)DnlDpGzfeM9hLlM=+X z!TM5Eu;1>8pO@BZ#iz$trZTtBmEfmiW^1-i)ormhXieoFfCeH86vRYL&^nhOFBL`e zb}J+Xtux-9u8j^lvr+nLxiB}OCzuIidK$@>8ZSsH*tyC@YMYK~=@=cY6hJa=Ym|qG2ll=LYbXdjHG8C@{Yq+xCdI8&gZbW zbgtOUCGy9IVa{-ziij&8#3ww_&eB;JA?e{>#)6`Ogckjp_SS_KYxc6oZB@+X@t4m% z^7pY@I^W+d+<=$BxYjX{&uV-t{PT2fpmFfFNW=YSN+cs?Kj{Ykt1$QU)z~_CC9gD<&4+6u@W8Ti#5{9oXL>HIUYV zO<_MPwled$W3^9?2;*^0#aZ4gGUeD+)HROy#k&r zb1OmKa&K2!W$Ex$Mosz~FF!>5Rp4BFT;Vob;DwN-<_|l_BY`JTqu)w3>>0vb!hIL+ z*aV?$Z-;NRTuYc5JfO1Nzflm>5pn6_MuWkq#mipvY@7fiBoS)hy_>_dAqjA6(J!;| zn7~_m!yrLwAW$LgIw#i_5PRP~FFp4SzEYIZaml)zp9WdAGuN#;beRS$nO+)vZ-3(< zL<#X=3(^E_Mo`C_9!3p3b%l|Oy8}J!22Pm4W>zeeNAk_AUioNXWHXbcc_EA)Yu_>R z6Ovw%xEJ-$<8nWtb~}Axe#1;mEXvQ7pP$)z9inOP3|5ut3DE_K?hae z4s4dT7tA?_Et+WzK4xoEWr}Py-T~5+AJ21;2H*UlEZEHZ9walKPXl|@yzzZ=rh#l# z7zppuP7W1BfQZ2Z#q|QF&qX?j(oQHEY-jFbrNvxKaqC^Ms!qxkK?k-0cW1sVnEO7s zn_V>{vA3sX+d}p$Fyy9hKx=U|Y@ZWgsM{8Lv>+O})X?Yu+I^iYr4-VupoTdD+sC-j zGnj(aJ6mTI|JB1v4w9pJ za#d?!^x?P1K^^hjc4zuA7PdFJmHosWg~NQI3kJQDQB>rkExglVM1O-7{HEzcn_oNj zH7ar_E95!fApl^{*kf@W8UVgKS?A}seQno>Y0u+KeFnR^LGrtF4r1d6fzk+~OGRNc z`oxs{9!9IhXvos|sb;s@hy0A2p(zLFQYFo}f`OO1plnZLf1<3Sp{JiBv+P9bo4oiA zi(77%zzqsXMdqGDNNi>#Je>~-++FW$-`>v}dUdbBYp{6;hT^>x8aSV>$W}|1H2U`K zb6I%y*QJo9FVj_{_b)xM8GdDyJIaQTr6EOd|Cy+*3UwLD3JR+Ed@gcI=AEbzQd3tv z)kklZdmOG2a%mrA`oZ}RZWm)3?<~Ukm%N+VNAg?? zvx8h@ckl;`=^$^FtnJQMWT!jiVyCrP^QMlk4na8#p`q7yZ*G;yo#KHRxkayx5|kEQ z!Z)0AM1mGF>3X~PR0LU|Q{c`xH$S!T`vbX2K%npXy`y0shJl+`cQbK#||LQV6% zE5m;6i3#4C5--&;r(@1`81Kask1lGQp z@vu2a`K~|rn`zx*8kj5lpEh)BamGjc9kPbi8y~VnjbMw-}2yWB-huz7ab9OI#pKZXGE;&1&_ohP?Zu$Er1%*mn zookCha7r*llOOH1@C#)>HnSBJtdp|h3!J*RLjItnq^iNQ$Xmk7idkXc0lqs761ySP zq%j>QzXRa`5+CLa8DXxAw?=p@B!B zLUAV%iWZqf(^J@OAMcmU!nhncPrqZNcHo81ip6es#1!#D`XJOL$!>Cwe?af`<$Tz< zuqL>v6SArMjgbjjX`;r=y%~;4{Ng`jepxJb>=~QD)GPn#XLUX;8%x8tnyi=C+1%n*q-uE>AQ_I;JDZQ!4){zhsDxd)RFj3M!$ow=*b3;ANgqnMD!RGz}n%E?DWZ+J#ry6}Y=KWw|-UZw7X48=u+=vD_#Q1Be!Fo}(f-3>Oj z)cWq$5Y=F1pWLU*qj~Br4(2!1PN<;``O6+FS}>PKgnhGRB1bbw>@_qC(b=eVn920s z@Y+xl9Dn|;GJ>`COdxb99Z7@SJu3QriPuNd=7v}t#jEW%q#|d1@Shy?2j(a{ulbRS zvU%8JBaKob7;2cMgGeY>bZTf@3Pw8d)(SiBmA!**L#I?XuD|`mk}#q*heJq2RcS}l zLN85L)y3B1%0}est?oBFkx(f8gj!OWqkeCr0T~$Obb?!*i=}yUX!L;9n1jO(xc6gS|#5=;o-fLQ`My4ixNl8Kg352)( zCflL9H@LTz`^oVkIf-+;WXq9YG%sK?)+n)=crTTG?+Y~yxL}1``SNk`dark#S_w6X zvGi#`hepv6?qzpsq0!3vDGtUWV|fvd>js)WTKtD+%S4T7Sq3P;KQTAKK-N40s=egVcD$10&`5PKZ4H5FqUlH^jSjRo&zI@rDVrZiWyv4DIxF!Fw4B0l!>mi z+=*msu`?6L@{)um+H8g{_A%+=0=67qXEyfE`f=9IlFo`nWmMiM(1%E<&}YFL61gHz z<8$?aECsC9l1(8^@+rziCmOb&(f)`+#`aOJL?;CvCFg{B2D zuj0~I0JA(@t7X-m1$&|)E)_Sef?dy$8FxB(7dDnu)V;1e=XNQsXcaYTXo7ZREMo-6 z3AnEhO~D(gBKXvdBR}&SSa|Fk&#p$dE>ruOHxcIhHzePs9SYJ**C9f}dX-6EQ#~Dr z)Ljb1GV{1Fy@{=x@!glqQrtI!SeLs`pZ89h@_GJ9k;E;3EGW>j5av02fE0!82z3YL zf|PQlN|1HOhV}$1Ai~D{Za@;JNRzgUsz2W#Em*WsR3<^ft%Lg7=yv7~E|XAZScZ-T zR9f`d28z3ec$%*cdA!19OoWJetjH5z#aWBdPNKdB&zkzkImFH0AJfxQvA6SZgCfk& zC086FiUG$o%X*GueK2`!Odj>)6w{jaGNQWbl!?=Zd(B;+TdaB+pTD zvnjLUDn8jTA)k#U`Yljgpp<03KS@TInbf!r&XboBm9Plw7RJ2`=W&HGapGc=d8pvG z;ia$Mn{hay$J~nYdz2)fUXh%ixNpmvqRzqx(Ba3eUCzfYPE6W%#}(0FYD$lC0(%20 zan1dd2#X`+kUi^q zgrw*rd8Hvk0X)B)C8M28Mxfr;P;K9;^1w{`POdJ!TTh`C3mfBsUR7)EAC3>o)%xk8#5p<2FU+Hn9#zrYBtk6yAD~<=C%ooy+5Ih#Lw9c#5qb+HKZsyXJ;+_^nR9WOC_voN! z4$I*fZ3o7J-QG6FE%RuGekpWJ_p|+aN}VCsS3flR*&6JH4;wswy)<0tZlb_cWDzic z8`A+M*lCF!l?rDotAOX#e{V(}r8m`c1KUAT5Ca+RNo`+cNBk$0jM*G2P{P~m<>SXT zRQSt!o9j8@P+P{;JnkXA8?6Po#W^h`bclXzG(Mp_S$*VShYx_0qCB98svQY$m?QCm z_6;w}D?bRPi;%3$l#BLI!7@f?!rg`RF+r!In0E?C;=_tZZ zNs*jHS1Ay3OIJM)N*4Ot`vwcESfG#9SrzizK0tDb#LKagu3mvrh%pOT(k%qX)V}Y>N`ejMn>xN}@h=~PE%7ED5-^-RA#U?T5OBlu;}+Gy_X5V4y(-5hS4hltyKOpFNOFB08LboYz+<@qKZQsvBfl1EYx z;{_&BU0hhhj?qdU^Z4XD|CEfEN-jqp3}-}L1>10g)@AW<;sqw}2cQtC_F|+nh8jD7oq}EVv_8gx(Y+i8V9N@OdFZ2!sLC#5Q%(Hy0^1~*fEp4;2mvv%Q zz+!Sb!+^e~y_z_~yCf=%ljmYa?LPalZm%$bkC0LUcclV4nF{PNgXEqUu$z)*CtP7C z%w!)WS3%(z6~VhAPG3=&(&@fMN7<7$Bvohx5_RRlJv(61?x1dyvze6Jn5+7XzRY`A zKD57aTdhAW=J8{Y4Te(A0LojrYX4(78L-1X&cwK>g4&h74*E7di1ga!NcIi*FY_Sa zBDcIhI8E@@hhEvlr5JF8;XXNcnca))8SfKVPL0e>*iBh{e|<4enB+dw=p%{)N00M^ zPFAqvAJhcLr7WP8Ru=|%U@EKJ z2zPxD@ivMlUGAEErBDQVL=eLv9HavL?DFvOhPa50D&)T^W52B|z#7_bTd81K@jPN$ z3U3NHDg4PR$_R(Q${L{1zyWVeXQNLe6AnRBUFC6Z#C^sPDXpPn8oREtpP18O})1p4L{4vb-P_aj9) zZf{lZCwa#ncaYvbAH~j2RAi`};A1>lIO81}9OqU)j;ai-_L>cg6)kPqkpf} z{B|#ZHZ;wTG&AYDJjqIO!Ebm;i|u17vx+eHg<0=8(q!bx;HO-&BBrf7kB~WQkwVAr zI*z2t5^DTvEUhgY)4D+o`a~l?NS}^Cw$OEFRxAfLuj5vPWF!w&Dj*^MwmA~`liwXO zcb5c~y9)s3F|nKH2eW)C>V!VQf^Tg#w$r_NeVQNdvs^JVBpW2BQ|WX9(rqxhk-_oJ zA=jO;>|;DTA_8C;S+Ojj(EU0HR`Jc`dr9E;i!k8D;@6Wq-)i0}iomDaHcNeSMB&e? zX0V@dAMPu*+B_kwtBCE`j2%R8R}5YgdgXDc3vZv}7OubZHr*GsO4x_&1whjXf(g@x zaz%_#eWbHGG{d5Nxh#b8t*~qE2mgYT7sP-knHth!&sV_iMVOQMpa28i6K9cP-6;D6 zcgaOjoZLH!L@;{dqG!Jt<0>>Q#(g`nM^hM+?u|KRv|Gwg49y~sWx-TcO-*oiG1Eb? zVl3L41uq6Vu)p1p2?PG{aAW@wqPE<)lQd7Vv@*mBn;E0>eruVz?<4NeYU*H`Psmx_ zOZCfzxu+J<{?prN8+CE%|~e>`_FOfB=49DeP{~ngL~N*)L290UId6 z(i9Lb|IWEk*c}HR+a{~HP=jn`BS6n48nbM-+6WxDa zYD6CNZdXIHY?Rt63e5!Rog8;EBg73E073>JHvD#c81TVbdo5G4Qrf^_%d7xR2;faW zG+tovuBxk5Yi#E?Rc8R_mbUNg*)4gVgt;hj{Or>tGQm$>EW!i19y_GGQ&x=fE!t-y z0lG7O%pDXT9toYly7U4T1ma244KP`D0b_h z%hW#R=Q~2?SM^DS@DbpEd$Ys$RhYAZm@3EeqZ3em-2t+9W+ID%7z?n)!P5Qykm9t_ zcMXV0tM}G>4hb1vjAd#fcTe7ly8`1TyXBsSLfPOucNS1syHee*MAkOnGp~)Tn#&Xa zd@;jRH3GH050R_h}0r*WP^~dlaL^w>08G zh1Tr00<>?fPY;&ybi2D%&IGs8#ELm3kJihW#};u4@aanKGfE7BBp)s9*n5T>e7BAgRPx=Dg&%MP?Ok%tH z%r@%25TG0BeHhHCpGn{TdiT1sfY|G{lWoj=P!R2l8v!+CcFMRu6Al6VHTP{Rdr-*y zZAF2HHEb{;Qy*dO9Y?fa2{zA;?_npDI;x1&yo5q)rVxqGWx+RdwA%))U+*<7M=-!^ z@5x(j0{HN)b#?~t$qQU^BQZrLHYN`xaYK=RpCP|OMvcGolRrS7A0Wk9s2+fk1@ZP~x^@g@ z+^3Ec5;*FEGRyLeXbxnSWkz%t&F~|u&=G$k+B)W$`E6ZTNbUkD6+GsH5mooqp&R{_ z{o>z8tuq)qy19LB)j*U66O+X9C!$!d*2k)fAHl-XrBYbLeIw-S#35qsenPRW@2i{2 z{T3WzYSVFeWR>xwQ2J6Vy4@bFsyYw>h#mSHok6gDu;KW9nMtjnmH*o|OUpohC1nR@ z=L3<+E3Bj}@P!x9!v&IA+^W=SBY61q4yZ!S3Sy0oK5(3e;lN0Ceg{SwUHvpf0k-9# zS!sK@X?ChT;T_5%X?E^SL_uVMD%7`5Ob5PE|Je$e`H?(4cN*XNYKZWGc+?oJFN#}% ziCMBQaTe-*5GVZshBqyvn9V)SG4p1Pjk8!`#OOLd-5aT>?b(+i`1ntD)gs6YkrTjN z^8cEE+_c5~q&E2(Fw34=>v?LGD+!!Lh z9eGM*X3Rdd<-JEo(wrl^bZS=0yy=rhA5I)C_p)db4>R(bEQ7qriPZ^b+zlS^5od`E zTbY~xk3F3SCbo?E(**6;%!-i*vcIImYx0ixw_sBHAdjVxqD<;22lvw0qFitMoTK@3 zsg+xX9k=deis?fUcw_WF#n$!@yvIyHF=C!s#Y215$3fI+W04grb+_vr?7zVr4;85| zNFeE&I#il}>>%me0Zak*G2s0A|EP7j-IJdIVIELz%vqA<9(D83qhC!FoE3ZB#6M1t zjoS9{J^96{Sq-lwQsWLbcE04064md5hJPoxSSHAr`1VjOII7(kP1wsWir^=%cJxlI z>bGaGi_JXJMqAezrE{lVdYDLybaKO(m*%yE?7xKhYUOLqhIx@YmS@@6pOs?L+|7~* zg))>CD~P=SRDj<$_MV2uv;kJTICRhsbx(FYKBNNFn#9wQGJMpDG$0Oa`X+k#xhKU{Y#|ho+77$39n_|Ui90gU4e-e@Z+<^+p zf(;9fM=oF3poMF(9ut{Y725DG@|I^3$Efea*V4ktpEc|Z2TWyaaumJ!2$S1xjv+hp z2W!)WiJ^^+{k<5wQ1<--zp9 z=5V=GkOTj}(+?~t0z9pI@>tIqdemvhc5p43-T#(UjrdV=4{U;y2le z$*Pd34w|!}$m|pHNV2jxZP z9%zUgK+hi2JxKV}_YPJ44u2_&=;wgbhGa-OBfFraD;wXSDQsW)7S6Rq(c6W zxXN40)C66Tr{zlt*7*u0dE|uosJ*L(URlLmM@)}8cHOOb8O*aLT|o_Z2E{BR=a{0N zwgZlZ0nYwBR>&7Orl+`2<)VTk>s7D-B&qIMZGhZy7F>2%&0|Vo;X#BTgophuLaOl`w;Qr6;8V_wQ{AL;bzSg_&yfk%n~jb?r1O?_fK?y#9X3YY#Ucg8xu2^|+($ zYKjM{%i~Dgice;%8nKoR;CQaR#dM#7uE z(*!E-`_|A7wB%hap^M80HL1B^EmJ8xh8)8A->m62yE#!WEiHEityNjcs~LJc12#uq zPe^G!rm1-S^=A-+e&hsbo&=7qFHA^qw68iJ%{aJ7U|~e4uD*SnBs56*p7d_b&OgKQ zRNMvO+5f1HDWY!WzBmRp{C#-Uw~bb0QJjNuXdz%#LjQ-cFAs!jfBz>TOCv(bcI|hv z9fXkP77<2nB-saJ3X@_)_R22VnSTN)=H^?80R{RVM;(!aPAYTej|R5{8(JB(D&1x)~>YEUn!L!!(ob3#Wp%<$&XVg z5*oicYO01;SuHEG;dC!=@q%+$3N)A7zfQK&3N93QyXt@FWp)W`EcH<&0s^^o=ksmS=!0q~^RmyEM=`Vpfem=VpB)$IH#9XMM z|Ng1av6+e6e^3XyC4T4JXu1EP7iQRffj--uY01TI0DSG;HkYvpXGD9UD1-XptiJw> z9H~fM#KbDl2F_Y_%%0~4dn^a|?h~_ai%FpKViq_R1hqK4Nh9mp$sIMNLYG-$4`FHP z*4cfp}E}S+d(8IuN z3v1FdMwB+T@(6Tji`PX-t<=R8mME@W%^})LjC}1B#y9V8BILWn&(BtYREC>~(`~-H zW-E05yoJ>px8R12!g6}C!>%T`v$0EKc|^DM9>-iiNv-9)@Vtz3&I-=TO@L4il`$Rg zhDvy~RGUCLw0#pEupi$)z@uPpQ7)GZfqcy2yVY@en_<8kB~}S_&HEJ?x(wW%!1`Pt z>HUE$9Ews=1P#ex>X|KgG!|U9?^F z#|Mm~vCrl3r-iri_@PE8pDW_2CF<%alfM?ly?)-LhI7gEa`jG#%n8ZrV0fytoKi(j zE!uGOI>H7V(w{~zL(TEb2Wn%WH79~F)9;TBMCgu|EaDtp2&;wC?8@^=JQ-fppn0bRKOGUx=6eK1t=fZHh&tz7Js)Ye`A?oQXxkbIo#frb}pp{sMsZr6+oaap{iudv$4>!nnAT;G@hSGAi9!PR2cds`Uc^7VM zuN3W+o2YC=_QH)Zw_R8@ffeHQ&4dlAauzG9iUwV$f>DJ?9_*;2aQA!>v4t|fLcA4P z%A@t=kOmpd|W7)D573Ma)yYE+lP*gs5u$$CP3&T8IiV=cdCcrBC?D*W?LE z>v4PXuB>xsk*_>a{2h0~=?S2)-(1B{7{I4Xkkv6ieO&~pGVrhg*4jo$mF8~NLC%2> zwd`q>AVWq;%yVp7I_dLZn3d>q(NubA5fu^Az~9@0je*XY=xoTKnfX?%1PxR|6f%qs z3mg z6N??->s$nA@4|U{0+I}x4jUiyTt2Yl^80~;2cy&9T%d;USYpZ~-bdJ+yxCZgy_%YM90>mT=kJ0yrj49^L;yQ?|BL1_e@ZJSaaMY!1=_ z#@o{DaGGt6(;OFxo$-DPH$m80jZ1oN7Z~UyVy{%(t9Nme(5dnu#nXetP#kL}f)&!{ z<}HteTZSedYS6E|+|M}KYyi9Ws~t8o+nKf|^w)zq*76s%D2r(r6r=|llp(=y)Ha2A zTtxSw??Z71dRyBODeVJbOTw14j@d%j4z#E`0kO5Wyp&|D&f(m|RODhLJHQ4B7bn36 z0qT>UgBf7E!FRB1#m>Lfx0b-&EJzmA=rUBeAxX*FjP$y~O>4cB zpy$TX3-Us)bh!-GsK|GbeBiapTk^;zW^KH*GO}ER*84PSQY)hP|JKh>#^VE^EQD-o&(Y55R$)G4=_ zYr7q1p7S!=OnR(mOJY~|jQ!EQsQTlbRbjJHGy#v3`atGqSz3Bjb=WmUG)h|hQT9X4 zHn#rR_=2H3%tAS`-bq~jpP^zOdla#2T(~_N_Y1M9!daj5g~ZZq|E*z9i(V~m6QT9H zcY^4V1tE-@s5O@FG(3)^Z-y#bs^(u3FRF#QVRe?Y36F=CQuU~pV(3>8ICQF^b`7&7 zRr)SckgtLsHu9Aa{3iwMZhX8-NMZceJ4|8>D1D7YaAa^>(zfc6DYXH1%4}L1&|FP= zOEZn4RfJ67Vr1v$3_rK&SpwR?`3es%oYMxxBs5#`4{6qSjS*=p;JH-IEX{80k#+31 zu|7yk;{f+dYf@Qk62o`ATl)cSk*$BZcUp$?fifM}pOMEgY-@Q5lDOY;S>mU9>?;=DT ze4nD~@m>_fBLSUmgJa_m!B8O-p&{w^>c3I~(*A(P0$7+&`o)|x&L$1TDQvX5H=2yq z`M0KsoO=1u_68}=I%Z8u9cOPL6`^9HBftW#yjmex843r}(D#+4m+NmSQ^oGF_G$3& zlwp!Vh*_~~JB2xJK|~&9Joe0=v)Q9=bhX&mwMKz$I+(AK(+C>0@DAurh~WN@c5 zQl-EDSgo^Ao&}#}M+0&bNhB*%2}>k8-q4K5=JO(ZiQsrt`3zw_V_f~7mrB(#Lvmfb zAdjnIOYdnn2g`&dXi0u@;@B3gH(f&%r@^)-3O~-*-KUJJhL6qcE~Em~BMX5GM+=a& zG^Q?J?w2Cn>UNMw>2Ahm#&St-wEIirrx(PI9d)b_KRtNApV;a~AwLw4N+?nBppKZ2ROP z9ScX5f{Im9n%*mU#?4n)5)INA6llPb^L<;WgTUET3B5EEz&TiJ*4((+`N#=<%cC78 zKBLS#X0aAM2b3Ro9#87RdF>#D@fUMyeL#wR&QGt$nhdbn0E{Z@W@|a;k60fYbbp6+ zn4zw$V^#WA-Kwy|ro4Q{f~@5vLl2G=lNv0D-qK=T##)HV3FGc!K~#`>xM) zapuF!f{T_^FkRK=&d!wp;d2txT4+`)?7cz*xfJ1+r6d0C9ioiZI`BfYkmM zP@j$A{m{6rZYCN(&$&>Cgr!zy$ zt30<1mD)w08IK z2z*b9*q92f6w$%!v^XaMP$VFW*;~hK5kZ$A1wpfo{rRo=KghkGah3Psz}rBfX)+L; zDWx`b15FE&n(b8<%>sZx#}V8MTX&4uC2YlO*FfjalxO3wikR-Z-F-p*8wR|jO;b`a zHvzbmzaMndKjmh$KII#8g0# zvM{){*KUhZk;u97TW>MGV63%Z`GI(eS-D?_8xAF^d{3j~0HWr`8NBggvK-AEP@`L5 zBP989i~_B7iVb%-MitS7WAWm$eLcC>XAcKKMq5dv7SeK4xsdANsy=IS+JBb`&BRL5 z`i~mGMu!x-`yc~p&LYVAuyCcNIt?nFDo-&r$u*ek|$Lv zMg)ygFxawVxIyCKPI_;08KsYhUaNMf%1w^^;T-q&A3r{T-DbBz?j>TdWr8I&q(;J_ zN#X-$S(28(PCmq4kvd`H(v@^dj0mMjxXc*T%p(}T2xkRw`5Fhdi^1a6QJ`OY>0sl} z_v6Qc^Wim}8c6-!#@eY#C7KG>XU7tu9g-d<1{Ln>nkCJ}3q7Bo2MFt2%j%wWqpLj0 z>z)*Jij~!?4f~0Fdq({iQ=2nu7We8<9M_3wsAaJIVbhG+5OCb9FC%d+BEL3SR zCTAhLIVm(sE^pLR=1|op=&~N!1L(P;CIz)DCfuDb;Q6yGA81x=);P`Gi$~iAz4nNp zQ34h{ucqDKN;{))=(tgYyzz0c%l(HI)`lBBwLvQEoUL%6eYSTl*#iv&Ce<^M*>Xon zde-KiYS(Y}o$x|3E?a4BUeX0nc$3=*RuSg{xNYu09*KAt8`<>qbVznZ;jgmVu^~wW z6?V^|ufDv~C|So&R`o8iPdCJ2BQccUn*Y#we6FnH+pc1F2b~0Xt6zo8J0(N|S`4tmFN#>Yap$)g*lQ-WRv-Mdd8SI@5|jBj0+8I#@dOSe=DVbM&g9&p|63 zs9&ZIVmUl`-6NC{jQ>;94aNuilK<4J8Vmo5SO#_&IxRQ3~OpmK6 zySmX)Ge9n`Y^514sB4e4Kgf)aL|$MmR9U2*_Oasm@%0NLvu+BaH1*yCVaFU2FyKBk z1S38|s6fH71MWxQ%F;FXEONa1@OTPyqM#;U-I?}eGT(FcVRXR}2s&pR_^(hoDG2gm z@iH7PsuMXO$5ts?+J#A?dVB0@-_-r4Ku-;Zl6dcxoV{?e`fyTlvxTl)?RLRl2{ds| zP7bh>YCkCo^)aQ-5u`S%&K*!aOt6kT&Z6uD4Nlt585?NwfZo92VcTz&H(AWygf{S+F~JRFv^C9?!0!Y=kwk z?6{dI#0}e5&y!O>+IXw+Na5l?(;w)dyHd}6DI@@2SuX=?JF=I1u9S~O@85GH5UfT1 zSt7&rmvsS52=c1%T{FvsCQqL*0r2M9DdQ;pGD^=~xGH4d00)qB=FzWgng`pQ0AROWG#mMmWS>N$PjHJB&_rM{Y66y2 z#S8WYS7k$o+35j1z5KLrK>wi8XE2Hg+)4E#)QF4^7?5SrQheG)YiwddI&yhsWNpbV za(%@LwJB%gXEa9d->dOWJl(bz?kXq1<90*-nb4Yqo^v};BzzD3|(MHK;ez@S9hn%O(+`HYCQ4p-Jn%IdQXQ1);A z_eQY|`PzHm;bnbtgtIQ#yOy4y6u;jsCIDxMRU`o^rKkitg}A0V;qpQ$FHNLz-#Jy# zd@uU$OgsH9iFu!GuKkhS`&-Y}Ed|unT=<7SGv2<%?t0{Qa>tIc@!7@h@toQ>^w!qi z$d7s>E_FWu!iJ6bPF~VS&)V|5zRY89#_vT{0}@Vj)&rz4*!P%fdL7o`Ly~cr8j?_6 z%EAG1Q}%MOsUo(&L6|!9QHzWN5o{^1#}Cc{vE!29E!I zJdFW85={^{VnyBMnj1;yv4mp;?JuV}gT(UD&$EvTv8)kAdpHZhxH39gv>MBUae3_Q z+$|aQdy_EEP;dVi(+-jEVZH$N3S@GArBPdMy2BB;P?!$ZVbteBbBzTd_2irKeh?~K zJ*5f8tIvhPz6S?lsJmQVh~iB5p}Sc}>nerm;C=k9Y>xg&_x zjBER9B3ZvaKuf#sN1;pWKYx6VYG1vWG$8fz^3{D|e!*bpS0Ve%w@l*N6 zedkX{6_;(*@H9TY-*qT#i85`KpUF7cpHg{ra7Fjb{whb;k-B^B^$nR9pN9gHy5Vs* ztGX*sS9NUSS}0=ax!%(59Z!0FbR+L6@6a827e4N67?@Et@x#pqI~KlLADpeMu{SQ- zzwT<{!ZpENlL*p{&S(u&4#wezq2gDK^O?b8N}ekkrh%^)fxrrVz3YHd36lOi@Gqg! zkl6*6N3fdCcy~cN2V*rxV6=Mg5jL$M81XDZ+C4N=SiS3l*D?e$IG;$xtvo_J`GkFJ zXf~^<-gIAD0+aigftaiN<@>{La}M&v9^*2737}~aYph*ak05<~{CGKc??q2Uu9=Zp zczSqFU#1gkTxm{`B%WrwgMfnJs+h@l{!i&*Clc{!*3pL5fv-6cp%77#jbX*vHH%6N zg;7^HX&Hm>&7}7Cs+ajU3Lg(!ux6>dc7(|dx?DB<@`|1)0z%8io1=KSZ783j9<5iu z9c6L1qCc4w{OXX8de)vF=aUkVs{Ujx^!yU@%@w=Z?x{J}O4;{<7|Td*8<8N$Zt$Q0 z<0%)z|N5Pq{w6xbCyw~5E3q+f=e!c0XV1Kpb8cszY`ETHZm#mKUDs{qL?Tm{7aob; zX)n2`T-`AF7{A_mOASZ#wrm9jZh+<;OXhfkKxK()d7VEPd8>h&EvF88&-{5tt?HH0_4lWZq=I2bZ-uVJjUfwVao(HH=I6o(vPpVm1<74 z8Uf^D04G5`dUfcWp~8DiC%GtTvz0#-i5?A$NV*-IJvCv%iFvhi9Fu?dz~oHXMbw!OE1~<%KWf(pdL74|7bt5M-}l2y!@1EZq>O_M z1ikz$v#m68l-@BLGA!z*)^;XB5aXL2i%of}bjFSMgg5m`nmV$hCskSw$YJ{=X+ZWr zbP zB1eUMM&8|<=FZF5+F53(-N*kyCNgTr4^KPKHyv1#wn8Zvp=A8ytOo$})s=3$l!Y6| z;$KC3>7m^A=@3K|q|{3aZ$7#aT@4WZQ1R^9iV`lcQ}&zkOK~rZDy+DNG8u4M3+2uC z>sx5f%fP67fux`^>&DgnoU}Qf3-)KBk#~wGAFi_;cWhZ{YKjzUq?H*SVW0a!c1-(g zYz5Pzx;8uQ{(vo|$w}%mtnsQHth)0ySM(TX{QfxQWvlSIHEOXr9*?qbl3-qY59TN* z9hI?(Qr8W0WlWp433fgIL>7wSQI0yU4I=Hn_NpyQwo~Rmr3-;>m4|@&+Wy&tv>&R2Aj7#DFu?-v;wHCZf4gBwx9_t^D_((7DKGh&Tf!SYKa2ZJTeW>et)p{M2)mM#A z*%?b^;|XPqBl+}}UT@eCqV5m8JzwxUTmkF;K~mPFe{(RoxAT-W`a|C*we4B&pUEbWnN zVUXylx`%Hb)dctPNru;ds`=eUlL;*FUo7&@XIZBiJ&8gM0qi2bK5#)10gb%C7gy(& zo&Hs~@_JZ-Yp9U7xl7#EBcW04eVM=fQx@EL0r(9ZY}^sJ?gyBv0e^17f}AxrDysT~ zw1@L@LBHaIj7+~?h1D%shd+xQo05RfFA90S+Cv#0d6-%N-jjo^cbrqdj^*P!x#v)^ z_j)E#U~So@q1JJmob%^IZ$cxjaqa4APQzoTxCxJ?K8-cJT5p^o%yqxH7`q50?XHhP zm)52(=Y2URf$8klee`Jka~$7Pv#`xPqxNLVczOD+u`!9-?#_%Y0tBr)GRn#8Rcbi zqgM{)Jtd{nN#Up3Q-Zz9$1 zc_eLbuE+&@zIW$8t<{SYcrcHLgC2gax42nf>9b=-tZY^L1}I(=kEhpMsP|OAhk+*9 z8Hpb~9V=`{5x5i0$C~PLPuN&LZ{a7Ds~rs-5+bcV)QL{d18dpBwvyRbwHeRZzic3xX~CNhxKycV_k zY|iQfYJbDyGtF1#R;&;iK30#d+EB0Gdw;I7vyv_t7cdB29P^xQ%QrL-k7((5lM$yL z$rqWl@pk{3ceTNKy|d$h3yPwU5iS)n@nT@MH*`M2n|AJkp0`Lv!%lq-C3eQc*{F`@dFt%BsOy)ypC35!V zXAgeRUVb&nf1T(aAsSbE^x#s`&1WDnqI)5;Z+D{k9dGDvb41uy#sbJ|-q72r;@zYa z3X((Y4=<-#pjJ9pEu`l?kSGIvx!M~%DACypH((dk9Rg`#9;vnI@7e1c1m6onPpCjm$=nzYE1}C$j1!Gcv>Z(~##=CYS`;LL7=T+w%Oy_*4>lJOcPHxoE0Q%7*|bQ!mc40 zuO7R!FJNLp8sFz?{KChbaB1YIQ zF2?M~6U82#+kSO)l>n*-5sWWmW}HF2Mw5GR$%{Z{xW4CN*yWUB?j(TMm^P!ma5e0P z7TM4E_*Posl>Sfun`o{6ZV98bl(W$GmSV)}r$Y+%3=_|# zP#k6%F2KJIf+SsMieiFyX-3SvNMb(FmsJ+URj?X(os zMJYCCHBFhW1KS&iuKpfTZO@yQ_38P;SfJn(gPr{}!!0@Hmh|CMM$qPK+3v+FXs9i%y2nw=LVv-q_3#TQ+>hTHF|V_-l@AO zB1j}EuM;AGy;pT3>gNoIlK)p`Qbm8`u%7F;Zjk^f-A=YvLR0Efg9OOtmVd?PHJsF3 zMK#OrgWH|RNw8hor+NMmoWG%q%CE%-6qB%ycY$H-ri={AGVn+G31?hI&+KlA8D4;8 z9fz&S`zRErV$;Cl9oxfAgtPlXnjMLGX1Vw?r=kb?-8!!_T|@Js75k4+cxQ?al3o#C zaAhk|cBQ+Dk7YlS)#!9_((xyuxen$F(Eq=*;DTkw+COS;UaNE{0eNDVDU^9*y(*px zCdM~*@_BcF9D#6Z|030SGjcc+A34&WNo{XDKtgo9_)-}0rA>ua+e!RS?7|P8kBaKb zrw3OLs`SpdL3B2S)p5RVLF5rMvCW(zj=auFB9xgLKevIK!MI{D2R{7(xw8;w+q z;dQMNr%;OR1sDz%>UJKIAcduCTmg;x#Q&?-L}3D7@*!$6=;oFT`}9} zA=HGDkLq{XwI1vSj%uB_%jTI{Daqt}myi}PAYDbW9x8%g)!#U@{b8R7dL*j4;os~@ zEJ3=1l|Z%~**KPg1nU`xOGo04QF8`{}ZNH4j^Gh;_6nLPA=b0h%;ja`NeT?6=!qH{QKo$#mxD9OeJ-Pcdi!?bKPY$U)s z<~1S4QPf^Ik(m2Y>$zalzF~q45VjFQM@zxyw>_!4$@obr`Wn+oz0IFoRUc*V=*$;@ z3=7r3j@bI{`Jd%r z|1mI9ta#6rKc>zfAd?IW=0L(S2be6+8o*$G+P5KG)%ph?WA|n#Z&$d7963nBrA>?u z45EP4TzD4kHNRK?tr9owpjZdaZQ5UJxOrYzs(LG}EEzALC6IPbi#%M%MYwlTgA76z zKr$%jT&eWm^YTVy&UYok^RFRy0ql7R~>Rz z(9MyWJ7lMD+A6hS^M)s~<7{&l8 z{|^<=W-NM@B<;V*3>CE%o>4L-X?`-O{_~T~*!Ij!<837(4rCA` zx8n`cX~Xa1cB2O`c`3stL|-1D9<91h8Wa7=IJFn=<61d?SW8heIJi~IT+jK zz>cCAb@88G1K<2cVu8^8BKak#y^yMA*PnqtlCG)`=OM9*a%8hW{M$3JdiLEJ+BBwV z1MSZk;Pv~BBuHWrNA@=K{U`b0JFV{Dxd&1vAfhm{AbYB*xTWhEg5l0a3*mGIIhlE8 zf@Xeenje(>9!OO0w0FJ0%ED2l>}?aacKA+P#N#77@Ly=rX{@nM5L9*? z5K$_2eVN8h#rbLAicOL|>D8bzaU$j17r(r}6pG z0kPH-ADzt_L12x>iD$9c+E^dwI16tC+{UR-tADK9xP z2T%!5_&~$Fq*$sipyu|%wbL;%u@cWEXit80;8}7)k3hE#=%&g!VYD+)P{NFuBAPwTaEAU-{mCp|FCfMvi$J2fIqN0}V6G!7& z9gC8uyc3xX`mp1RXyCjuhhJE`ON)=d7mK!&K}#g={}i_Z7F~T0&5K?@ZolE})+U9% z@|lN=Ve9LrCLjiP86j|QR(QZ>Lb!gDo&Ih9?d9d$wZyI)z8^=D-3}g?pnZubMzSsg zzaCwR)Sn4Q6$%e5}@6Pxb2- zAKZO?O=_5v@x?X7mD0kS1=W)1k!YYg4eV=LB>~>d*)rh-+|5||NzMg=!^l~`B2gU( zk}MkOxG$>2e(9N5V z5pfn;7m`FjiuKY~2vQw8`ClZ9AWLSjXB)j=@PfTd6U|=p2=zz+6dLpKx%Ikd{=y9e zuI3`WYr0EC$IUl}-~J_q3APVD^#pG)aR#PTcbCwt(T_?Ju`5)aJaW#%dj@?`$S>oz zO~kJ45@?i29tnt`o3NuC-i5o+u2$(MSB1A}VX2A1UXPMAmKJ(~k|rI^mvv+f?rGSg z8cnRZ%T48uT@3zG__cELp%_9-T~Lt*&Mw3|0? zKCs`T8QOdRWe(^0nSj%?Ry?sO;%bcEyOnrpplz+`vjD0GZX5Q0*Dsm@wj)E91~Q+6 z-34*QO%l4h9Q~mT3w^P?_6|}J3eZMLAnSSMRb!&ygkB*; zvha$>8AsKVI+oe#G}#C|pH_wl`Z9~PL~%LH(pa}v3-Yi`0KmX@hBlkcsh+8ZU&blT ztGgr5gA~7SD9N`p9NSGeo8#ck`tr(a%z&`EkF5-9yH*6RGI0Tj#WW5DYH8vqjVk)N zisPN#^2SvYpRFV47x1Fq&=Nni7SC*Z6*~n)6MtzN8Gy>oFdp|&sBgH}RVyG6sqm=! zjGEe!jsLj`qNpDEn&-3zoaRwHCFi#?<+?C*hER?=)oc6Y? zesukmx3tVS)Zd+Q=2czgnFj7}P2z*S8XHA!-UInhH zr9}*{wUrq3sGzncH!t$f)Zj&BHkx>Q`=bn0+s5zxO8kHQw?3O_B7CegW}XQGX1EPF zQLWx%suW|WCS>#le-(^qu369P=X(`>>cqS?&glg93W6xb7hlHHKuAGbN*N_Uj4UeS zV?)lB^9c*KW3L!Kk;+47fJUW3FIdTj{AFOSOW;X*BYm#R0yPjKH}+IYnx-r}IT0s4 zgrBCz-FgNgRRT)r1bPC z``y2GtaViu-V|mF5H`XtIVXXb%b68Y`XivcPbxx?-h#J&d{qg_800IYovu2$3Eq@) zDZ+||4%l9C#x?lNGw1Np3A^DdGj4#34S!nTyzg3V-QigLbX(qzz-j9Xv-h11b=P|) zuZ68Qp~_Pydhcxs5pwg?@_t?tO{W|yG=TSy-P$K(;Af&kp)Q}A(qyOgoW~EBrrDacRjTiJ9-SyIj~_8+vrKX_YY(3+S)ESkFQ+J($34LeOtsUK`aqC*O|? zuzTVevB(e*xq!^em^*251tn28YgA>G$suhRBIo*8@^r)gyk3Kjxod`*cLk*P?}H6& zD#HRvZDYOFthh^gAI26x3Ka%jSD$~=-(_K1^gX1H+XP!)Y4{{Zz8_Bp)K2Cs?I;$qq+C}x*JR6^-6A#((C1##+@`o?V0SkpxfDE1Mpv_Pn0Fg#ESfzQ) za(~y&!kbw4?9xG@c-n-AZpN6j^ykqlmJ^Vdo?*wEPp@m|ZqmM)BbgX$*I{^6lF5FN$2Pt z`YWocZW{>;}l^?`c_Ie`y9(L@|IhpO8w=J2kp3jxTOq?xldfBQEaZzgzLb; z&L^-iUDHiX@j^Acl5^u0)~D4Z-8vIrsXMxZLTk)XGa2wU-($LX3e}N1-4$J|>K4Ln zBM463gA#7Sb&W1T`OT89LrehFc^iBZm%S$`fJ=fWUC*A1ln zA0b)HuMRufFxL2ZC=`do#_`j}HGt1SqttyMj&~zqE9X|5F9V6H&Jj!ZOqulwHcf~~ z6G0z9Urt>(1iyFprdhS$ft=f(ID_ajM@ut;TcEZ=SxLKpUp$j?gF`&6{!RB|VTcdG zu=lg_7sfO^`;%s>6afXjjaNZ@W!GMBbnW0~b?<`myxr9H)B(Yn~05J4~rQpN%DL0C-AC6=bufC)9eHL)k-r zdli+AxkzwEQTmz!Hs$1#hZL$3std&7M7V*Q&`!b*M>AuCp#N}~$JhxjjYsAj`t4U= zRb16{dALm5`!Om=X(ZVX5<#dNio5W$GqP6avm)vz+2&f}RG_W)EM z07too-^_r3Nl3D{2r)MShE&hGlpw9qBqo(w;E=S01i4o^bQf>0UD(`Ov1(`tlMOhfGEus} z|1RobTi1^Elev$z{JCvFFZ3aQ-%^VM08}=IhX${sHRh)?Mo(5Hu-=}ZDQsw5JNd@< zrwh5x3A95|$c!6q#yUJ{r$w?MqD8#Dr&Aj#y|v{Lu(}1m^wgJoY0+txcufI^Sq$SN z*%Nb>m60ev9-AG|%8R3a^1%j|h&3_6gNoQ|Usrq>o@-26e(kHzKln)9+0ZZZ-Gc9P z%0A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

#Ce(VIQzjn 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 qA^ET_Make sure you use the `beta` tag when installing, as v3 is still in Developer Preview. - ```bash npm -npm i @trigger.dev/sdk@beta +npm i @trigger.dev/sdk@latest ``` ```bash pnpm -pnpm add @trigger.dev/sdk@beta +pnpm add @trigger.dev/sdk@latest ``` ```bash yarn -yarn add @trigger.dev/sdk@beta +yarn add @trigger.dev/sdk@latest ``` diff --git a/docs/mint.json b/docs/mint.json index 24083ce9f..254c934c7 100644 --- a/docs/mint.json +++ b/docs/mint.json @@ -1,7 +1,10 @@ { "$schema": "https://mintlify.com/schema.json", "name": "Trigger.dev", - "openapi": ["/openapi.yml", "/v3-openapi.yaml"], + "openapi": [ + "/openapi.yml", + "/v3-openapi.yaml" + ], "api": { "playground": { "mode": "simple" @@ -71,9 +74,20 @@ { "source": "/reattempting-replaying", "destination": "/replaying" + }, + { + "source": "/tasks-overview", + "destination": "/tasks/overview" + }, + { + "source": "/tasks-scheduled", + "destination": "/tasks/scheduled" + }, + { + "source": "/trigger-folder", + "destination": "/config/config-file" } ], - "anchors": [ { "name": "Guides", @@ -89,23 +103,35 @@ "navigation": [ { "group": "Getting Started", - "pages": ["introduction", "quick-start", "limits", "changelog", "roadmap"] + "pages": [ + "introduction", + "quick-start", + "how-it-works", + "upgrading-beta", + "limits" + ] }, { "group": "Fundamentals", "pages": [ - "trigger-folder", - "tasks-overview", + { + "group": "Tasks", + "pages": [ + "tasks/overview", + "tasks/scheduled" + ] + }, "triggering", "apikeys", - "tasks-regular", - "tasks-scheduled", - "trigger-config" + "config/config-file" ] }, { "group": "Development", - "pages": ["cli-dev", "run-tests"] + "pages": [ + "cli-dev", + "run-tests" + ] }, { "group": "Deployment", @@ -115,7 +141,9 @@ "github-actions", { "group": "Deployment integrations", - "pages": ["vercel-integration"] + "pages": [ + "vercel-integration" + ] } ] }, @@ -127,7 +155,13 @@ "errors-retrying", { "group": "Wait", - "pages": ["wait", "wait-for", "wait-until", "wait-for-event", "wait-for-request"] + "pages": [ + "wait", + "wait-for", + "wait-until", + "wait-for-event", + "wait-for-request" + ] }, "queue-concurrency", "versioning", @@ -145,7 +179,10 @@ "management/overview", { "group": "Tasks API", - "pages": ["management/tasks/trigger", "management/tasks/batch-trigger"] + "pages": [ + "management/tasks/trigger", + "management/tasks/batch-trigger" + ] }, { "group": "Runs API", @@ -183,7 +220,9 @@ }, { "group": "Projects API", - "pages": ["management/projects/runs"] + "pages": [ + "management/projects/runs" + ] } ] }, @@ -208,7 +247,13 @@ }, { "group": "Open source", - "pages": ["open-source-self-hosting", "open-source-contributing", "github-repo"] + "pages": [ + "open-source-self-hosting", + "open-source-contributing", + "github-repo", + "changelog", + "roadmap" + ] }, { "group": "Troubleshooting", @@ -223,12 +268,17 @@ }, { "group": "Help", - "pages": ["community", "help-slack", "help-email"] + "pages": [ + "community", + "help-slack", + "help-email" + ] }, { "group": "Frameworks", "pages": [ "guides/frameworks/nodejs", + "guides/bun", "guides/frameworks/nextjs", "guides/frameworks/remix", { @@ -244,11 +294,15 @@ }, { "group": "Dashboard", - "pages": ["guides/dashboard/creating-a-project"] + "pages": [ + "guides/dashboard/creating-a-project" + ] }, { "group": "Migrations", - "pages": ["guides/use-cases/upgrading-from-v2"] + "pages": [ + "guides/use-cases/upgrading-from-v2" + ] }, { "group": "Examples", @@ -265,4 +319,4 @@ "github": "https://github.com/triggerdotdev", "linkedin": "https://www.linkedin.com/company/triggerdotdev" } -} +} \ No newline at end of file diff --git a/docs/open-source-self-hosting.mdx b/docs/open-source-self-hosting.mdx index 342224478..2c005ac88 100644 --- a/docs/open-source-self-hosting.mdx +++ b/docs/open-source-self-hosting.mdx @@ -24,11 +24,20 @@ As self-hosted deployments tend to have unique requirements and configurations, Should the burden ever get too much, we'd be happy to see you on [Trigger.dev cloud](https://trigger.dev/pricing) where we deal with these concerns for you. -- The Docker [checkpoint command](https://docs.docker.com/reference/cli/docker/checkpoint/) is an experimental feature which may not work as expected. It won't be enabled by default. Instead, the containers will stay up and their processes frozen. They won't consume CPU but they _will_ consume RAM. -- The Docker provider does not currently enforce any resource limits. This means your tasks can consume up to the total machine CPU and RAM. Having no limits may be preferable when self-hosting, but can impact the performance of other services. -- The worker components (not the tasks!) have direct access to the Docker socket. This means they can run any Docker command. To restrict access, you may want to consider using [Docker Socket Proxy](https://github.com/Tecnativa/docker-socket-proxy). -- The task containers are running with host networking. This means there is no network isolation between them and the host machine. They will be able to access any networked service on the host. -- There is currently no support for adding multiple worker machines. This would require a more elaborate provider, or possibly a switch to Docker Swarm. This is not currently planned, but you are welcome to [contribute](https://github.com/triggerdotdev/trigger.dev/blob/main/CONTRIBUTING.md). + - The Docker [checkpoint command](https://docs.docker.com/reference/cli/docker/checkpoint/) is an + experimental feature which may not work as expected. It won't be enabled by default. Instead, the + containers will stay up and their processes frozen. They won't consume CPU but they _will_ consume + RAM. - The Docker provider does not currently enforce any resource limits. This means your tasks + can consume up to the total machine CPU and RAM. Having no limits may be preferable when + self-hosting, but can impact the performance of other services. - The worker components (not the + tasks!) have direct access to the Docker socket. This means they can run any Docker command. To + restrict access, you may want to consider using [Docker Socket + Proxy](https://github.com/Tecnativa/docker-socket-proxy). - The task containers are running with + host networking. This means there is no network isolation between them and the host machine. They + will be able to access any networked service on the host. - There is currently no support for + adding multiple worker machines. This would require a more elaborate provider, or possibly a + switch to Docker Swarm. This is not currently planned, but you are welcome to + [contribute](https://github.com/triggerdotdev/trigger.dev/blob/main/CONTRIBUTING.md). ## Requirements @@ -70,6 +79,7 @@ sudo apt-get install -y \ ### Trigger.dev setup 1. Clone the [Trigger.dev docker repository](https://github.com/triggerdotdev/docker) and checkout the v3 branch + ```bash git clone https://github.com/triggerdotdev/docker cd docker @@ -77,6 +87,7 @@ git checkout v3 ``` 2. Run the start script and follow the prompts + ```bash ./start.sh # hint: you can append -d to run in detached mode ``` @@ -163,7 +174,7 @@ docker login -u 5. You can now deploy v3 projects using the CLI with these flags: ```bash -npx trigger.dev@beta deploy --self-hosted --push +npx trigger.dev@latest deploy --self-hosted --push ``` ## Part 2: Split services @@ -201,9 +212,12 @@ scp -3 root@:docker/.env root@:docker/.env ## Checkpoint support -This requires an _experimental Docker feature_. Successfully checkpointing a task today, does not mean you will be able to restore it tomorrow. Your data may be lost. You've been warned! + + This requires an _experimental Docker feature_. Successfully checkpointing a task today, does not + mean you will be able to restore it tomorrow. Your data may be lost. You've been warned! + -Checkpointing allows you to save the state of a running container to disk and restore it later. This can be useful for +Checkpointing allows you to save the state of a running container to disk and restore it later. This can be useful for long-running tasks that need to be paused and resumed without losing state. Think fan-out and fan-in, or long waits in email campaigns. The checkpoints will be pushed to the same registry as the deployed images. Please see the [Registry setup](#registry-setup) section for more information. @@ -283,5 +297,5 @@ TRIGGER_TELEMETRY_DISABLED=1 To avoid being redirected to the Cloud login page when using the CLI, you can specify the URL of your self-hosted instance with the `-a` flag. For example: ``` -npx trigger.dev@beta login -a http://example.com -``` \ No newline at end of file +npx trigger.dev@latest login -a http://example.com +``` diff --git a/docs/snippets/cli-commands-deploy.mdx b/docs/snippets/cli-commands-deploy.mdx index 241f22fb9..90c625369 100644 --- a/docs/snippets/cli-commands-deploy.mdx +++ b/docs/snippets/cli-commands-deploy.mdx @@ -3,29 +3,30 @@ Run the command like this: ```bash npm -npx trigger.dev@beta deploy +npx trigger.dev@latest deploy ``` ```bash pnpm -pnpm dlx trigger.dev@beta deploy +pnpm dlx trigger.dev@latest deploy ``` ```bash yarn -yarn dlx trigger.dev@beta deploy +yarn dlx trigger.dev@latest deploy ``` -This will fail in CI if any version mismatches are detected. Ensure everything runs locally first using the [dev](/cli-dev) command and don't bypass the version checks! + + This will fail in CI if any version mismatches are detected. Ensure everything runs locally first + using the [dev](/cli-dev) command and don't bypass the version checks! + It performs a few steps to deploy: 1. Optionally updates packages when running locally. -2. Typechecks the code. -3. Compiles and bundles the code. -4. Checks that [environment variables](/deploy-environment-variables) are set. -5. Deploys the code to the cloud. -6. Registers the tasks as a new version in the environment (prod by default). +2. Compiles and bundles the code. +3. Deploys the code to the Trigger.dev instance. +4. Registers the tasks as a new version in the environment (prod by default). You can also setup [GitHub Actions](/github-actions) to deploy your tasks automatically. @@ -35,28 +36,33 @@ You can also setup [GitHub Actions](/github-actions) to deploy your tasks automa Defaults to `prod` but you can specify `staging`. - - Skips the pre-build typecheck step. + + The name of the config file, found where the command is run from. Defaults to `trigger.config.ts`. + + + + Load environment variables from a file. This will only hydrate the `process.env` of the CLI + process, not the tasks. + + + + Create a deployable build but don't deploy it. Prints out the build path so you can inspect it. Skip checking for `@trigger.dev` package updates. - - The platform to build the deployment image for. Defaults to `linux/amd64`. + + The project ref. Required if there is no config file. The log level to use (debug, info, log, warn, error, none). Defaults to `log`. - - The name of the config file, found where the command is run from. Defaults to `trigger.config.ts`. - - - - The project ref. Required if there is no config file. + + Turn off syncing environment variables with the Trigger.dev instance. ## Self-hosting @@ -68,17 +74,37 @@ These options are typically used when [self-hosting](/open-source-self-hosting) - Builds and loads the image using your local docker. Use the `--registry` option to specify the registry to push the image to when using `--self-hosted`, or just use `--push` to push to the default registry. + Builds and loads the image using your local docker. Use the `--registry` option to specify the + registry to push the image to when using `--self-hosted`, or just use `--push` to push to the + default registry. + + + + Loads the image into your local docker after building it. - **This option is coming soon.** The registry to push the image to when using --self-hosted. + Specify the registry to push the image to when using `--self-hosted`. - When using the --self-hosted flag, push the image to the default registry. (defaults to false when not using --registry) + When using the --self-hosted flag, push the image to the registry. - - **This option is coming soon.** Specify the tag to use when pushing the image to the registry. - \ No newline at end of file + + The namespace to use when pushing the image to the registry. For example, if pushing to Docker + Hub, the namespace is your Docker Hub username. + + +### Push to Docker Hub + +An example of deploying to Docker Hub when using a self-hosted setup: + +```bash +npx trigger.dev@latest deploy \ + --self-hosted \ + --load-image \ + --push \ + --registry docker.io \ + --namespace mydockerhubusername +``` diff --git a/docs/snippets/cli-commands-develop.mdx b/docs/snippets/cli-commands-develop.mdx index a29fddf54..720526eff 100644 --- a/docs/snippets/cli-commands-develop.mdx +++ b/docs/snippets/cli-commands-develop.mdx @@ -3,22 +3,22 @@ This runs a server on your machine that can execute Trigger.dev tasks: ```bash npm -npx trigger.dev@beta dev +npx trigger.dev@latest dev ``` ```bash pnpm -pnpm dlx trigger.dev@beta dev +pnpm dlx trigger.dev@latest dev ``` ```bash yarn -yarn dlx trigger.dev@beta dev +yarn dlx trigger.dev@latest dev ``` It will first perform an update check to prevent version mismatches, failed deploys, and other errors. You will always be prompted first. -You will see in the terminal that the server is running and listening for requests. When you run a task, you will see it in the terminal along with a link to view it in the dashboard. +You will see in the terminal that the server is running and listening for tasks. When you run a task, you will see it in the terminal along with a link to view it in the dashboard. It is worth noting that each task runs in a separate Node process. This means that if you have a long-running task, it will not block other tasks from running. @@ -32,28 +32,9 @@ It is worth noting that each task runs in a separate Node process. This means th The project ref. Required if there is no config file. - - You can use this flag to run the server in debug mode. This will allow you to attach a debugger to the server and debug your tasks. - - - -```bash npm -npx trigger.dev@beta dev --debugger -``` - -```bash pnpm -pnpm dlx trigger.dev@beta dev --debugger -``` - -```bash yarn -yarn dlx trigger.dev@beta dev --debugger -``` - - - - - - Enable OpenTelemetry debugging. + + Pass a custom path to an env file. We automatically detect `.env`, `.env.local`, + `.env.development`, and `.env.development.local` files. @@ -69,11 +50,8 @@ yarn dlx trigger.dev@beta dev --debugger - The CLI log level to use. Options are `debug`, `info`, `log`, `warn`, `error`, and `none`. This does not affect the log level of your trigger.dev tasks. Defaults to `log`. - - - - Opt-out of sending telemetry data. + The CLI log level to use. Options are `debug`, `info`, `log`, `warn`, `error`, and `none`. This + does not affect the log level of your trigger.dev tasks. Defaults to `log`. ## Standard options @@ -95,10 +73,10 @@ Then add something like this in your package.json scripts: ```json "scripts": { "dev": "concurrently --raw --kill-others npm:dev:*", - "dev:trigger": "npx trigger.dev@beta dev", + "dev:trigger": "npx trigger.dev@latest dev", // Add your framework-specific dev script here, for example: // "dev:next": "next dev", // "dev:remix": "remix dev", //... } -``` \ No newline at end of file +``` diff --git a/docs/snippets/step-cli-dev.mdx b/docs/snippets/step-cli-dev.mdx index ec62aedc6..28305706d 100644 --- a/docs/snippets/step-cli-dev.mdx +++ b/docs/snippets/step-cli-dev.mdx @@ -7,15 +7,15 @@ It can also update your `@trigger.dev/*` packages to prevent version mismatches ```bash npm -npx trigger.dev@beta dev +npx trigger.dev@latest dev ``` ```bash pnpm -pnpm dlx trigger.dev@beta dev +pnpm dlx trigger.dev@latest dev ``` ```bash yarn -yarn dlx trigger.dev@beta dev +yarn dlx trigger.dev@latest dev ``` diff --git a/docs/snippets/step-cli-init.mdx b/docs/snippets/step-cli-init.mdx index d75f2ade9..265f3d9c8 100644 --- a/docs/snippets/step-cli-init.mdx +++ b/docs/snippets/step-cli-init.mdx @@ -7,15 +7,15 @@ Run this command in the root of your project to get started: ```bash npm -npx trigger.dev@beta init +npx trigger.dev@latest init ``` ```bash pnpm -pnpm dlx trigger.dev@beta init +pnpm dlx trigger.dev@latest init ``` ```bash yarn -yarn dlx trigger.dev@beta init +yarn dlx trigger.dev@latest init ``` diff --git a/docs/snippets/trigger-tasks-nextjs.mdx b/docs/snippets/trigger-tasks-nextjs.mdx index 54fbdce84..b670b94b8 100644 --- a/docs/snippets/trigger-tasks-nextjs.mdx +++ b/docs/snippets/trigger-tasks-nextjs.mdx @@ -15,25 +15,25 @@ Run your Next.js app: ``` - + Run the dev server from Step 2. of the [Initial Setup](/guides/frameworks/nextjs#initial-setup) section above if it's not already running: - + ```bash npm - npx trigger.dev@beta dev + npx trigger.dev@latest dev ``` ```bash pnpm - pnpm dlx trigger.dev@beta dev + pnpm dlx trigger.dev@latest dev ``` ```bash yarn - yarn dlx trigger.dev@beta dev + yarn dlx trigger.dev@latest dev ``` - + Now visit the URL in your browser to trigger the task. Ensure the port number is the same as the one you're running your Next.js app on. For example, if you're running your Next.js app on port 3000, visit: ```bash @@ -44,4 +44,4 @@ Run your Next.js app: ![Trigger.dev CLI showing a successful run](/images/trigger-cli-run-success.png) - Visit the [Trigger.dev dashboard](https://cloud.trigger.dev) to see your run. \ No newline at end of file + Visit the [Trigger.dev dashboard](https://cloud.trigger.dev) to see your run. diff --git a/docs/snippets/worker-failed-to-start.mdx b/docs/snippets/worker-failed-to-start.mdx deleted file mode 100644 index 04843eb50..000000000 --- a/docs/snippets/worker-failed-to-start.mdx +++ /dev/null @@ -1,51 +0,0 @@ -### Worker failed to start when running Dev command - -An issue may occur when trying to run the development command for Trigger.dev when using certain packages like `@t3-oss/env-nextjs` or ORMs like Drizzle ORM. The error message typically indicates that there's a problem with importing ES modules in a CommonJS context. - -```bash Error message -X Error: Worker failed to start Error [ERR_REQUIRE_ESM]: require() of ES Module [...] not supported. -Instead change the require of index.js in [...] to a dynamic import() which is available in all CommonJS modules. -``` - -This issue is related to how Trigger.dev bundles code and interacts with certain ES module dependencies. - -To resolve this issue, follow these steps: - -1. In your `trigger.config.ts` file, add the problematic dependencies to the `dependenciesToBundle` array: - -```bash trigger.config.ts -export const config: TriggerConfig = { - // ... other config options - dependenciesToBundle: [ - /@t3-oss/, - "drizzle-orm", - /@neondatabase/, - // Add other problematic dependencies here - ], -}; -``` - -2. If you're using environment variables with `@t3-oss/env-nextjs`, implement a `resolveEnvVars` function in your config file: - -```bash trigger.config.ts -import { env } from "@/env"; -import type { ResolveEnvironmentVariablesFunction } from "@trigger.dev/sdk/v3"; - -export const resolveEnvVars: ResolveEnvironmentVariablesFunction = () => { - return { - variables: Object.keys(env).map((key) => ({ - name: key, - value: env[key as keyof typeof env]?.toString(), - })), - }; -}; -``` - -3. For users of packages that require WebSocket (like `@neondatabase/serverless`), you may need to set up a WebSocket polyfill if you're using Node.js versions earlier than 22. Add this to your code: - -```bash -import { neonConfig, Pool } from '@neondatabase/serverless'; -import ws from 'ws'; - -neonConfig.webSocketConstructor = ws; -``` \ No newline at end of file diff --git a/docs/tasks-overview.mdx b/docs/tasks/overview.mdx similarity index 98% rename from docs/tasks-overview.mdx rename to docs/tasks/overview.mdx index a1becca7c..37edc2323 100644 --- a/docs/tasks-overview.mdx +++ b/docs/tasks/overview.mdx @@ -1,10 +1,10 @@ --- title: "Tasks: Overview" -sidebarTitle: "Tasks" +sidebarTitle: "Overview" description: "Tasks are functions that can run for a long time and provide strong resilience to failure." --- -There are different types of tasks including [regular tasks](/tasks-regular) and [scheduled tasks](/tasks-scheduled). +There are different types of tasks including regular tasks and [scheduled tasks](/tasks/scheduled). ## Hello world task and how to trigger it diff --git a/docs/tasks-scheduled.mdx b/docs/tasks/scheduled.mdx similarity index 100% rename from docs/tasks-scheduled.mdx rename to docs/tasks/scheduled.mdx diff --git a/docs/trigger-config.mdx b/docs/trigger-config.mdx deleted file mode 100644 index 15e8cd40a..000000000 --- a/docs/trigger-config.mdx +++ /dev/null @@ -1,274 +0,0 @@ ---- -title: "The trigger.config.ts file" -sidebarTitle: "trigger.config file" -description: "This file is used to configure your project and how it's bundled." ---- - -import BundlePackages from '/snippets/bundle-packages.mdx'; - -Let's take a look at a basic `trigger.config.ts` file. This is generated for you when you follow [the quick start guide](/quick-start). This file is used to configure your project and how it's bundled. - -```ts trigger.config.ts -import type { TriggerConfig } from "@trigger.dev/sdk/v3"; - -export const config: TriggerConfig = { - //Your project ref (you can see it on the Project settings page in the dashboard) - project: "proj_gtcwttqhhtlasxgfuhxs", - retries: { - //If you want to retry a task in dev mode (when using the CLI) - enabledInDev: false, - //the default retry settings. Used if you don't specify on a task. - default: { - maxAttempts: 3, - minTimeoutInMs: 1000, - maxTimeoutInMs: 10000, - factor: 2, - randomize: true, - }, - }, - //The paths for your trigger folders - triggerDirectories: ["./trigger"], -}; -``` - -Most of the time you don't need to change anything in this file, or if you do then we will tell you when you the run the CLI command. - -## Global initialization - -You can run code before any task is run by adding a `init` function to your `trigger.config.ts` file. - -```ts trigger.config.ts -import type { TriggerConfig } from "@trigger.dev/sdk/v3"; - -export const config: TriggerConfig = { - //..other stuff - init: async (payload, { ctx }) => { - console.log("I run before any task is run"); - }, -}; -``` - -You'll have access to the run payload and the context object. Currently you cannot return anything from this function. - -## Lifecycle functions - -You can add lifecycle functions to get notified when any task starts, succeeds, or fails using `onStart`, `onSuccess` and `onFailure`: - -```ts trigger.config.ts -import type { TriggerConfig } from "@trigger.dev/sdk/v3"; - -export const config: TriggerConfig = { - //..other stuff - onSuccess: async (payload, output, { ctx }) => { - console.log("Task succeeded", ctx.task.id); - }, - onFailure: async (payload, error, { ctx }) => { - console.log("Task failed", ctx.task.id); - }, - onStart: async (payload, { ctx }) => { - console.log("Task started", ctx.task.id); - }, -}; -``` - -Read more about task lifecycle functions in the [tasks overview](/tasks-overview). - -## Instrumentations - -We use OpenTelemetry (OTEL) for our run logs. This means you get a lot of information about your tasks with no effort. But you probably want to add more information to your logs. For example, here's all the Prisma calls automatically logged: - -![The run log](/images/auto-instrumentation.png) - -Here we add Prisma and OpenAI instrumentations to your `trigger.config.ts` file. - -```ts trigger.config.ts -import type { TriggerConfig } from "@trigger.dev/sdk/v3"; -import { PrismaInstrumentation } from "@prisma/instrumentation"; -import { OpenAIInstrumentation } from "@traceloop/instrumentation-openai"; - -export const config: TriggerConfig = { - //..other stuff - instrumentations: [new PrismaInstrumentation(), new OpenAIInstrumentation()], -}; -``` - -There is a [huge library of instrumentations](https://opentelemetry.io/ecosystem/registry/?language=js) you can easily add to your project like this. - -Some ones we recommend: - -| Package | Description | -| --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ | -| `@opentelemetry/instrumentation-undici` | Logs all fetch calls (inc. Undici fetch) | -| `@opentelemetry/instrumentation-fs` | Logs all file system calls | -| `@opentelemetry/instrumentation-http` | Logs all HTTP calls | -| `@prisma/instrumentation` | Logs all Prisma calls, you need to [enable tracing](https://github.com/prisma/prisma/tree/main/packages/instrumentation) | -| `@traceloop/instrumentation-openai` | Logs all OpenAI calls | - -## Syncing environment variables - -You can sync environment variables from another service using the `resolveEnvVars` function. [Read the docs](/deploy-environment-variables#sync-env-vars-from-another-service) for more information. - -## ESM-only packages - -We'll let you know when running the CLI dev command if this is a problem. Some packages are ESM-only so they don't work directly from CJS when using Node.js. In that case you need to add them to the `dependenciesToBundle` array in your `trigger.config.ts` file. - - - -## Prisma (and other generators) - - - -```bash -✘ [ERROR] Error: @prisma/client did not initialize yet. Please run "prisma generate" and try to import it again. - -In case this error is unexpected for you, please report it in -https://pris.ly/prisma-prisma-bug-report -at new PrismaClient (/app/node_modules/.prisma/client/default.js:43:11) -at Object. (/lib/prisma.ts:7:33) -at Module.\_compile (node:internal/modules/cjs/loader:1356:14) -at Object.Module.\_extensions..js (node:internal/modules/cjs/loader:1414:10) -at Module.load (node:internal/modules/cjs/loader:1197:32) -at Function.Module.\_load (node:internal/modules/cjs/loader:1013:12) -at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:128:12) -at node:internal/main/run_main_module:28:49 -``` - - - -Prisma works by generating a client from your `prisma.schema` file. This means you need to do a couple of things to get it to work with Trigger: - - - - - - - - ```json default path - { - "scripts": { - "postinstall": "prisma generate" - } - } - ``` - - ```json custom path - { - "scripts": { - "postinstall": "prisma generate --schema=./custom/path/to/schema.prisma" - } - } - ``` - - - - Anything you put in `postinstall` will be run as part of the install step. This is how Next.js recommends you set up Prisma anyway. - - - - - - ```ts trigger.config.ts - import type { TriggerConfig } from "@trigger.dev/sdk/v3"; - - export const config: TriggerConfig = { - //..other stuff - - // using the default path - additionalFiles: ["./prisma/schema.prisma"], - // or a custom path, for example in a monorepo - additionalFiles: ["../../custom/path/to/schema.prisma"], - - additionalPackages: ["prisma@5.11.0"], - }; - ``` - - This tells Trigger to bundle the Prisma client and the schema file. - - - - - -## TypeORM support - -We support using TypeORM with Trigger. You can use decorators in your entities and then use them in your tasks. Here's an example: - -```ts orm/index.ts -import "reflect-metadata"; -import { DataSource } from "typeorm"; -import { Entity, Column, PrimaryColumn } from "typeorm"; - -@Entity() -export class Photo { - @PrimaryColumn() - id!: number; - - @Column() - name!: string; - - @Column() - description!: string; - - @Column() - filename!: string; - - @Column() - views!: number; - - @Column() - isPublished!: boolean; -} - -export const AppDataSource = new DataSource({ - type: "postgres", - host: "localhost", - port: 5432, - username: "postgres", - password: "postgres", - database: "my-database", - entities: [Photo], - synchronize: true, - logging: false, -}); -``` - -And then in your trigger.config.ts file you can initialize the datasource using the `onStart` lifecycle function option: - -```ts trigger.config.ts -import type { TriggerConfig } from "@trigger.dev/sdk/v3"; -import { AppDataSource } from "@/trigger/orm"; - -export const config: TriggerConfig = { - // ... other options here - onStart: async (payload, { ctx }) => { - await AppDataSource.initialize(); - }, -}; -``` - -Now you are ready to use this in your tasks: - -```ts -import { task } from "@trigger.dev/sdk/v3"; -import { AppDataSource, Photo } from "./orm"; - -export const taskThatUsesDecorators = task({ - id: "task-that-uses-decorators", - run: async (payload: { message: string }) => { - console.log("Creating a photo..."); - - const photo = new Photo(); - photo.id = 2; - photo.name = "Me and Bears"; - photo.description = "I am near polar bears"; - photo.filename = "photo-with-bears.jpg"; - photo.views = 1; - photo.isPublished = true; - - await AppDataSource.manager.save(photo); - }, -}); -``` - -## Troubleshooting - -If you have an issue with bundling checkout our [troubleshooting guide](/troubleshooting). diff --git a/docs/trigger-folder.mdx b/docs/trigger-folder.mdx deleted file mode 100644 index 1f6fd4bd6..000000000 --- a/docs/trigger-folder.mdx +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: "/trigger folders" -description: "Your tasks live inside /trigger folders. Code in these is bundled and deployed together." ---- - -## What gets bundled? - -We automatically bundle everything for your tasks. This includes: - -- Your tasks (they can be in any file inside a /trigger folder, they just need to be exported with a name). -- Imported npm packages. -- Other imports from your code. - -Mostly this means you shouldn't need to think about what gets bundled. Just write your tasks and we'll take care of the rest. If you need to alter the bundling you use the [trigger.config file](/trigger-config). - -## Multiple `/trigger` folders - -You can have multiple `/trigger` folders in your repository. - -- Each `/trigger` folder can have many tasks exported from it. -- Each file inside a `/trigger` folder can export many tasks. - -### (Optional) configuration - -It is possible to manually set one or more folders as `/trigger` folders in your [trigger.config file](/trigger-config). diff --git a/docs/triggering.mdx b/docs/triggering.mdx index 0765a5107..d69bfd5df 100644 --- a/docs/triggering.mdx +++ b/docs/triggering.mdx @@ -5,20 +5,20 @@ description: "Tasks need to be triggered in order to run." Trigger tasks **from your backend**: -| Function | This works | What it does | -| -------------------------------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `tasks.trigger()` | Anywhere | Triggers a task and gets a handle you can use to fetch and manage the run. [Read more](#tasks-trigger) | -| `tasks.batchTrigger()` | Anywhere | Triggers a task multiple times and gets a handle you can use to fetch and manage the runs. [Read more](#tasks-batchtrigger) | -| `tasks.triggerAndPoll()` | Anywhere | Triggers a task and then polls the run until it’s complete. [Read more](#tasks-triggerandpoll) | +| Function | This works | What it does | +| ------------------------ | ---------- | --------------------------------------------------------------------------------------------------------------------------- | +| `tasks.trigger()` | Anywhere | Triggers a task and gets a handle you can use to fetch and manage the run. [Read more](#tasks-trigger) | +| `tasks.batchTrigger()` | Anywhere | Triggers a task multiple times and gets a handle you can use to fetch and manage the runs. [Read more](#tasks-batchtrigger) | +| `tasks.triggerAndPoll()` | Anywhere | Triggers a task and then polls the run until it’s complete. [Read more](#tasks-triggerandpoll) | Trigger tasks **from inside a run**: -| Function | This works | What it does | -| -------------------------------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `yourTask.trigger()` | Anywhere | Triggers a task and gets a handle you can use to monitor and manage the run. It does not wait for the result. [Read more](#task-trigger) | -| `yourTask.batchTrigger()` | Anywhere | Triggers a task multiple times and gets a handle you can use to monitor and manage the runs. It does not wait for the results. [Read more](#task-batchtrigger) | -| `yourTask.triggerAndWait()` | Inside task | Triggers a task and then waits until it's complete. You get the result data to continue with. [Read more](#task-triggerandwait) | -| `yourTask.batchTriggerAndWait()` | Inside task | Triggers a task multiple times in parallel and then waits until they're all complete. You get the resulting data to continue with. [Read more](#task-batchtriggerandwait) | +| Function | This works | What it does | +| -------------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `yourTask.trigger()` | Anywhere | Triggers a task and gets a handle you can use to monitor and manage the run. It does not wait for the result. [Read more](#task-trigger) | +| `yourTask.batchTrigger()` | Anywhere | Triggers a task multiple times and gets a handle you can use to monitor and manage the runs. It does not wait for the results. [Read more](#task-batchtrigger) | +| `yourTask.triggerAndWait()` | Inside task | Triggers a task and then waits until it's complete. You get the result data to continue with. [Read more](#task-triggerandwait) | +| `yourTask.batchTriggerAndWait()` | Inside task | Triggers a task multiple times in parallel and then waits until they're all complete. You get the resulting data to continue with. [Read more](#task-batchtriggerandwait) | Additionally, [scheduled tasks](/tasks-scheduled) get **automatically** triggered on their schedule and webhooks when receiving a webhook. @@ -46,7 +46,9 @@ You can use Next.js Server Actions but [you need to be careful with bundling](/g Triggers a single run of a task with the payload you pass in, and any options you specify, without needing to import the task. - By using `tasks.trigger()`, you can pass in the task type as a generic argument, giving you full type checking. Make sure you use a `type` import so that your task code is not imported into your application. + By using `tasks.trigger()`, you can pass in the task type as a generic argument, giving you full + type checking. Make sure you use a `type` import so that your task code is not imported into your + application. @@ -103,7 +105,9 @@ export async function action({ request, params }: ActionFunctionArgs) { Triggers multiples runs of a task with the payloads you pass in, and any options you specify, without needing to import the task. - By using `tasks.batchTrigger()`, you can pass in the task type as a generic argument, giving you full type checking. Make sure you use a `type` import so that your task code is not imported into your application. + By using `tasks.batchTrigger()`, you can pass in the task type as a generic argument, giving you + full type checking. Make sure you use a `type` import so that your task code is not imported into + your application. @@ -159,7 +163,9 @@ export async function action({ request, params }: ActionFunctionArgs) { Triggers a single run of a task with the payload you pass in, and any options you specify, and then polls the run until it's complete. - By using `tasks.triggerAndPoll()`, you can pass in the task type as a generic argument, giving you full type checking. Make sure you use a `type` import so that your task code is not imported into your application. + By using `tasks.triggerAndPoll()`, you can pass in the task type as a generic argument, giving you + full type checking. Make sure you use a `type` import so that your task code is not imported into + your application. @@ -313,7 +319,7 @@ export const loopTask = task({ export const parentTask = task({ id: "parent-task", run: async (payload: string) => { - const result = await batchChildTask.triggerAndWait("some-data"); + const result = await childTask.triggerAndWait("some-data"); console.log("Result", result); //...do stuff with the result @@ -321,6 +327,58 @@ export const parentTask = task({ }); ``` +The `result` object is a "Result" type that needs to be checked to see if the child task run was successful: + +```ts /trigger/parent.ts +export const parentTask = task({ + id: "parent-task", + run: async (payload: string) => { + const result = await childTask.triggerAndWait("some-data"); + + if (result.ok) { + console.log("Result", result.output); // result.output is the typed return value of the child task + } else { + console.error("Error", result.error); // result.error is the error that caused the run to fail + } + }, +}); +``` + +If instead you just want to get the output of the child task, and throw an error if the child task failed, you can use the `unwrap` method: + +```ts /trigger/parent.ts +export const parentTask = task({ + id: "parent-task", + run: async (payload: string) => { + const output = await childTask.triggerAndWait("some-data").unwrap(); + console.log("Output", output); + }, +}); +``` + +You can also catch the error if the child task fails and get more information about the error: + +```ts /trigger/parent.ts +import { task, SubtaskUnwrapError } from "@trigger.dev/sdk/v3"; +export const parentTask = task({ + id: "parent-task", + run: async (payload: string) => { + try { + const output = await childTask.triggerAndWait("some-data").unwrap(); + console.log("Output", output); + } catch (error) { + if (error instanceof SubtaskUnwrapError) { + console.error("Error in fetch-post-task", { + runId: error.runId, + taskId: error.taskId, + cause: error.cause, + }); + } + } + }, +}); +``` + This method should only be used inside a task. If you use it outside a task, it will throw an error. @@ -379,45 +437,45 @@ export const loopTask = task({ When using `batchTriggerAndWait`, you have full control over how to handle failures within the batch. The method returns an array of run results, allowing you to inspect each run's outcome individually and implement custom error handling. - Here's how you can manage run failures: +Here's how you can manage run failures: - 1. **Inspect individual run results**: Each run in the returned array has an `ok` property indicating success or failure. +1. **Inspect individual run results**: Each run in the returned array has an `ok` property indicating success or failure. - 2. **Access error information**: For failed runs, you can examine the `error` property to get details about the failure. +2. **Access error information**: For failed runs, you can examine the `error` property to get details about the failure. - 3. **Choose your failure strategy**: You have two main options: - - **Fail the entire batch**: Throw an error if any run fails, causing the parent task to reattempt. - - **Continue despite failures**: Process the results without throwing an error, allowing the parent task to continue. +3. **Choose your failure strategy**: You have two main options: - 4. **Implement custom logic**: You can create sophisticated handling based on the number of failures, types of errors, or other criteria. + - **Fail the entire batch**: Throw an error if any run fails, causing the parent task to reattempt. + - **Continue despite failures**: Process the results without throwing an error, allowing the parent task to continue. - Here's an example of how you might handle run failures: +4. **Implement custom logic**: You can create sophisticated handling based on the number of failures, types of errors, or other criteria. + +Here's an example of how you might handle run failures: ```ts /trigger/batchTriggerAndWait.ts - const result = await batchChildTask.batchTriggerAndWait([ - { payload: "item1" }, - { payload: "item2" }, - { payload: "item3" }, - ]); +const result = await batchChildTask.batchTriggerAndWait([ + { payload: "item1" }, + { payload: "item2" }, + { payload: "item3" }, +]); - // Result will contain the finished runs. - // They're only finished if they have succeeded or failed. - // "Failed" means all attempts failed +// Result will contain the finished runs. +// They're only finished if they have succeeded or failed. +// "Failed" means all attempts failed - for (const run of result.runs) { +for (const run of result.runs) { + // Check if the run succeeded + if (run.ok) { + logger.info("Batch task run succeeded", { output: run.output }); + } else { + logger.error("Batch task run error", { error: run.error }); - // Check if the run succeeded - if (run.ok) { - logger.info("Batch task run succeeded", { output: run.output }); - } else { - logger.error("Batch task run error", { error: run.error }); - - //You can choose if you want to throw an error and fail the entire run - throw new Error(`Fail the entire run because ${run.id} failed`); - } + //You can choose if you want to throw an error and fail the entire run + throw new Error(`Fail the entire run because ${run.id} failed`); } +} ``` @@ -472,7 +530,7 @@ await myTask.trigger({ some: "data" }, { delay: "2024-12-01T00:00:00" }); // Delay using a Date object await myTask.trigger({ some: "data" }, { delay: new Date(Date.now() + 1000 * 60 * 60) }); // Delay using a timezone -await myTask.trigger({ some: "data" }, { delay: new Date('2024-07-23T11:50:00+02:00') }); +await myTask.trigger({ some: "data" }, { delay: new Date("2024-07-23T11:50:00+02:00") }); ``` Runs that are delayed and have not been enqueued yet will display in the dashboard with a "Delayed" status: diff --git a/docs/troubleshooting.mdx b/docs/troubleshooting.mdx index bceaa8953..4802a68b4 100644 --- a/docs/troubleshooting.mdx +++ b/docs/troubleshooting.mdx @@ -3,10 +3,9 @@ title: "Common problems" description: "Some common problems you might experience and their solutions" --- -import NextjsTroubleshootingMissingApiKey from '/snippets/nextjs-missing-api-key.mdx'; -import NextjsTroubleshootingButtonSyntax from '/snippets/nextjs-button-syntax.mdx'; -import RateLimitHitUseBatchTrigger from '/snippets/rate-limit-hit-use-batchtrigger.mdx'; -import WorkerFailedToStartWhenRunningDevCommand from '/snippets/worker-failed-to-start.mdx'; +import NextjsTroubleshootingMissingApiKey from "/snippets/nextjs-missing-api-key.mdx"; +import NextjsTroubleshootingButtonSyntax from "/snippets/nextjs-button-syntax.mdx"; +import RateLimitHitUseBatchTrigger from "/snippets/rate-limit-hit-use-batchtrigger.mdx"; ## Development @@ -30,37 +29,20 @@ Then change the permissions of the npm folder (if 1 doesn't work): sudo chown -R $(whoami) ~/.npm ``` - ## Deployment Running the [trigger.dev deploy] command builds and deploys your code. Sometimes there can be issues building your code. You can run the deploy command with `--log-level debug` at the end. This will spit out a lot of information about the deploy. If you can't figure out the problem from the information below please join [our Discord](https://trigger.dev/discord) and create a help forum post. Do NOT share the extended debug logs publicly as they might reveal private information about your project. +You can also review the build by supplying the `--dry-run` flag. This will build your project but not deploy it. You can then inspect the build output on your machine. + Here are some common problems and their solutions: -### `Typecheck failed, aborting deployment` - -We typecheck your code before deploying. If the typecheck fails, the deployment is aborted. You should see logs with details about the typecheck failure. - -You can skip typechecking, by adding the `--skip-typecheck` flag when calling deploy. - -### `Error: Cannot find module 'X'` - -This errors occurs if we can't figure out how to automatically import some code. You can fix this by adding it to the `dependenciesToBundle` array in the [trigger.config file](/trigger-config). - - - ### `Failed to build project image: Error building image` There should be a link below the error message to the full build logs on your machine. Take a look at these to see what went wrong. Join [our Discord](https://trigger.dev/discord) and you share it privately with us if you can't figure out what's going wrong. Do NOT share these publicly as the verbose logs might reveal private information about your project. -### `Deployment timed out` - -The last stage of deployment is to run it on our servers – we register the new versions of your tasks with the dashboard during this step. We allow 3 mins for this to succeed or fail. If it fails then you'll see this error. - -The first thing to do is to try again. If that fails then join [our Discord](https://trigger.dev/discord) and create a Help forum post with a link to your deployment. - ### `Deployment encountered an error` Usually there will be some useful guidance below this message. If you can't figure out what's going wrong then join [our Discord](https://trigger.dev/discord) and create a Help forum post with a link to your deployment. @@ -68,6 +50,7 @@ Usually there will be some useful guidance below this message. If you can't figu ## Project setup issues ### `The requested module 'node:events' does not provide an export named 'addAbortListener'` + If you see this error it means you're not a supported version of Node: ``` @@ -81,10 +64,11 @@ Node.js v19.9.0 You need to be on at least these minor versions: | Version | Minimum | -| ----- | ------- | -| 18 | 18.16+ | -| 20 | 20.11+ | -| 21 | 21.0+ | +| ------- | ------- | +| 18 | 18.20+ | +| 20 | 20.5+ | +| 21 | 21.0+ | +| 22 | 22.0+ | ## Runtime issues @@ -94,7 +78,7 @@ Your code is deployed separately from the rest of your app(s) so you need to mak ### `Error: @prisma/client did not initialize yet.` -Prisma uses code generation to create the client from your schema file. This means you need to add a bit of config so we can generate this file before your tasks run: [read the guide](/trigger-config#prisma-and-other-generators). +Prisma uses code generation to create the client from your schema file. This means you need to add a bit of config so we can generate this file before your tasks run: [read the guide](/config/config-file#prisma). ### When triggering subtasks the parent task finishes too soon @@ -102,7 +86,7 @@ Make sure that you always use `await` when you call `trigger`, `triggerAndWait`, ### Rate limit exceeded - + View the [rate limits](/limits) page for more information. @@ -147,11 +131,10 @@ Or change the tsconfig jsx setting: { "compilerOptions": { //... - "jsx": "react-jsx" - }, + "jsx": "react-jsx" + } } ``` - - - + + diff --git a/docs/upgrading-beta.mdx b/docs/upgrading-beta.mdx new file mode 100644 index 000000000..65af28bd0 --- /dev/null +++ b/docs/upgrading-beta.mdx @@ -0,0 +1,431 @@ +--- +title: "Upgrade to new build system" +sidebarTitle: "Beta upgrade" +description: "How to update to 3.0.0 from the beta" +--- + +The Trigger.dev packages are now at version `3.0.x` in the `latest` tag. This is our first official release of v3 under the latest tag, and we recommend anyone still using packages in the `beta` tag to upgrade to the latest version. This guide will help you upgrade your project to the latest version of Trigger.dev. + +The major changes in this release are a new build system, which is more flexible and powerful than the previous build system. We've also made some changes to the `trigger.dev` CLI to improve the developer experience. + +The main features of the new build sytem are: + +- **Bundling by default**: All dependencies are bundled by default, so you no longer need to specify which dependencies to bundle. This solves a whole bunch of issues related to monorepos. +- **Build extensions**: A new way to extend the build process with custom logic. This is a more flexible and powerful way to extend the build process compared to the old system. (including custom esbuild plugin support) +- **Improved configuration**: We've migrated to using [c12](https://github.com/unjs/c12) to power our configuration system. +- **Improved error handling**: We now do a much better job of reporting of any errors that happen during the indexing process by loading your trigger task files dynamically. +- **Improved cold start times**: Previously, we would load all your trigger task files at once, which could lead to long cold start times. Now we load your trigger task files dynamically, which should improve cold start times. + +## Update packages + +To use the new build system, you have to update to use our latest packages. Update the `@trigger.dev/sdk` package in your package.json: + +```json +"@trigger.dev/sdk": "^3.0.0", +``` + +You will also need to update your usage of the `trigger.dev` CLI to use the latest release. If you run the CLI via `npx` you can update to the latest release like so: + +```sh +# old way +npx trigger.dev@3.0.0-beta.56 dev + +# using the latest release +npx trigger.dev@latest dev +``` + +If you've added the `trigger.dev` CLI to your `devDependencies`, then you should update the version to point to the latest release: + +```json +"trigger.dev": "^3.0.0", +``` + +Once you do that make sure you re-install your dependencies using `npm i` or the equivalent with your preferred package manager. + +If you deploy using GitHub actions, make sure you update the version there too. + +## Update your `trigger.config.ts` + +The new build system does not effect your trigger task files at all, so those can remain unchanged. However, you may need to make changes to your `trigger.config.ts` file. + +### `defineConfig` + +You should now import the `defineConfig` function from `@trigger.dev/sdk/v3` and export the config as the default export: + +```ts +import { defineConfig } from "@trigger.dev/sdk/v3"; + +export default defineConfig({ + project: "", +}); +``` + +### Deprecated: `dependenciesToBundle` + +The new build system will bundle all dependencies by default, so `dependenciesToBundle` no longer makes any sense and can be removed. + +#### Externals + +Now that all dependencies are bundled, there are some situations where bundling a dependency doesn't work, and needs to be made external (e.g. when a dependency includes a native module). You can now specify these dependencies as build externals in the `defineConfig` function: + +```ts +import { defineConfig } from "@trigger.dev/sdk/v3"; + +export default defineConfig({ + project: "", + build: { + external: ["native-module"], + }, +}); +``` + +`external` is an array of strings, where each string is the name of a dependency that should be made external. Glob expressions are also supported and use the [minimatch](https://github.com/isaacs/minimatch) matcher. + +### additionalFiles + +The `additionalFiles` option has been moved to our new build extension system. + +To use build extensions, you'll need to add the `@trigger.dev/build` package to your `devDependencies`: + +```sh +npm add @trigger.dev/build@latest -D +``` + +Now you can import the `additionalFiles` build extension and use it in your `trigger.config.ts` file: + +```ts +import { defineConfig } from "@trigger.dev/sdk/v3"; +import { additionalFiles } from "@trigger.dev/build/extensions/core"; + +export default defineConfig({ + project: "", + build: { + extensions: [ + additionalFiles({ files: ["wrangler/wrangler.toml", "./assets/**", "./fonts/**"] }), + ], + }, +}); +``` + +### additionalPackages + +The `additionalPackages` option has been moved to our new build extension system. + +To use build extensions, you'll need to add the `@trigger.dev/build` package to your `devDependencies`: + +```sh +npm add @trigger.dev/build@latest -D +``` + +Now you can import the `additionalPackages` build extension and use it in your `trigger.config.ts` file: + +```ts +import { defineConfig } from "@trigger.dev/sdk/v3"; +import { additionalPackages } from "@trigger.dev/build/extensions/core"; + +export default defineConfig({ + project: "", + build: { + extensions: [additionalPackages({ packages: ["wrangler"] })], + }, +}); +``` + +### resolveEnvVars + +The `resolveEnvVars` export has been moved to our new build extension system. + +To use build extensions, you'll need to add the `@trigger.dev/build` package to your `devDependencies`: + +```sh +npm add @trigger.dev/build@latest -D +``` + +Now you can import the `syncEnvVars` build extension and use it in your `trigger.config.ts` file: + +```ts +import { defineConfig } from "@trigger.dev/sdk/v3"; +import { syncEnvVars } from "@trigger.dev/build/extensions/core"; + +export default defineConfig({ + project: "", + build: { + extensions: [ + syncEnvVars(async (params) => { + return { + MY_ENV_VAR: "my-value", + }; + }), + ], + }, +}); +``` + +The `syncEnvVars` callback function works very similarly to the deprecated `resolveEnvVars` handler, but now instead of returning an object with a `variables` key that contains the environment variables, you return an object with the environment variables directly (see the example above). + +One other difference is now `params.env` only contains the environment variables that are set in the Trigger.dev environment variables, and not the environment variables from the process. If you want to access the environment variables from the process, you can use `process.env`. + +See the [syncEnvVars](/deploy-environment-variables#sync-env-vars-from-another-service) documentation for more information. + +### emitDecoratorMetadata + +If you make use of decorators in your code, and have enabled the `emitDecoratorMetadata` tsconfig compiler option, you'll need to enable this in the new build sytem using the `emitDecoratorMetadata` build extension: + +```ts +import { defineConfig } from "@trigger.dev/sdk/v3"; +import { emitDecoratorMetadata } from "@trigger.dev/build/extensions/typescript"; + +export default defineConfig({ + project: "", + build: { + extensions: [emitDecoratorMetadata()], + }, +}); +``` + +### Prisma + +We've created a build extension to support using Prisma in your Trigger.dev tasks. To use this extension, you'll need to add the `@trigger.dev/build` package to your `devDependencies`: + +```sh +npm add @trigger.dev/build@latest -D +``` + +Then you can import the `prismaExtension` build extension and use it in your `trigger.config.ts` file, passing in the path to your Prisma schema file: + +```ts +import { defineConfig } from "@trigger.dev/sdk/v3"; +import { prismaExtension } from "@trigger.dev/build/extensions/prisma"; + +export default defineConfig({ + project: "", + build: { + extensions: [ + prismaExtension({ + schema: "prisma/schema.prisma", + }), + ], + }, +}); +``` + +This will make sure that your prisma client is generated during the build process when deploying to Trigger.dev. + + + This does not have any effect when running the `dev` command, so you'll need to make sure you + generate your client locally first. + + +If you want to also run migrations during the build process, you can pass in the `migrate` option: + +```ts +import { defineConfig } from "@trigger.dev/sdk/v3"; +import { prismaExtension } from "@trigger.dev/build/extensions/prisma"; + +export default defineConfig({ + project: "", + build: { + extensions: [ + prismaExtension({ + schema: "prisma/schema.prisma", + migrate: true, + directUrlEnvVarName: "DATABASE_URL_UNPOOLED", // optional - the name of the environment variable that contains the direct database URL if you are using a direct database URL + }), + ], + }, +}); +``` + +If you have multiple `generator` statements defined in your schema file, you can pass in the `clientGenerator` option to specify the `prisma-client-js` generator, which will prevent other generators from being generated: + + + +```prisma schema.prisma +datasource db { + provider = "postgresql" + url = env("DATABASE_URL") + directUrl = env("DATABASE_URL_UNPOOLED") +} + +// We only want to generate the prisma-client-js generator +generator client { + provider = "prisma-client-js" +} + +generator kysely { + provider = "prisma-kysely" + output = "../../src/kysely" + enumFileName = "enums.ts" + fileName = "types.ts" +} +``` + +```ts trigger.config.ts +import { defineConfig } from "@trigger.dev/sdk/v3"; +import { prismaExtension } from "@trigger.dev/build/extensions/prisma"; + +export default defineConfig({ + project: "", + build: { + extensions: [ + prismaExtension({ + schema: "prisma/schema.prisma", + clientGenerator: "client", + }), + ], + }, +}); +``` + + + +### audioWaveform + +Previously, we installed [Audio Waveform](https://github.com/bbc/audiowaveform) in the build image. That's been moved to a build extension: + +```ts +import { defineConfig } from "@trigger.dev/sdk/v3"; +import { audioWaveform } from "@trigger.dev/build/extensions/audioWaveform"; + +export default defineConfig({ + project: "", + build: { + extensions: [audioWaveform()], // uses verson 1.1.0 of audiowaveform by default + }, +}); +``` + +### esbuild plugins + +You can now add esbuild plugins to customize the build process using the `esbuildPlugin` build extension. The example below shows how to automatically upload sourcemaps to Sentry using their esbuild plugin: + +```ts +import { defineConfig } from "@trigger.dev/sdk/v3"; +import { esbuildPlugin } from "@trigger.dev/build/extensions"; +import { sentryEsbuildPlugin } from "@sentry/esbuild-plugin"; + +export default defineConfig({ + project: "", + build: { + extensions: [ + esbuildPlugin( + sentryEsbuildPlugin({ + org: process.env.SENTRY_ORG, + project: process.env.SENTRY_PROJECT, + authToken: process.env.SENTRY_AUTH_TOKEN, + }), + // optional - only runs during the deploy command, and adds the plugin to the end of the list of plugins + { placement: "last", target: "deploy" } + ), + ], + }, +}); +``` + +## Changes to the `trigger.dev` CLI + +### No more typechecking during deploy + +We no longer run typechecking during the deploy command. This was causing issues with some projects, and we found that it wasn't necessary to run typechecking during the deploy command. If you want to run typechecking before deploying to Trigger.dev, you can run the `tsc` command before running the `deploy` command. + +```sh +tsc && npx trigger.dev@latest deploy +``` + +Or if you are using GitHub actions, you can add an additional step to run the `tsc` command before deploying to Trigger.dev. + +```yaml +- name: Install dependencies + run: npm install + +- name: Typecheck + run: npx tsc + +- name: πŸš€ Deploy Trigger.dev + env: + TRIGGER_ACCESS_TOKEN: ${{ secrets.TRIGGER_ACCESS_TOKEN }} + run: | + npx trigger.dev@latest deploy +``` + +### deploy `--dry-run` + +You can now inspect the build output of your project without actually deploying it to Trigger.dev by using the `--dry-run` flag: + +```sh +npx trigger.dev@latest deploy --dry-run +``` + +This will save the build output and print the path to the build output directory. If you face any issues with deploying, please include the build output in your issue report. + +### `--env-file` + +You can now pass the path to your local `.env` file using the `--env-file` flag during `dev` and `deploy` commands: + +```sh +npx trigger.dev@latest dev --env-file ../../.env +npx trigger.dev@latest deploy --env-file ../../.env +``` + +The `.env` file works slightly differently in `dev` vs `deploy`: + +- In `dev`, the `.env` file is loaded into the CLI's `process.env` and also into the environment variables of the Trigger.dev environment. +- In `deploy`, the `.env` file is loaded into the CLI's `process.env` but not into the environment variables of the Trigger.dev environment. If you want to sync the environment variables from the `.env` file to the Trigger.dev environment variables, you can use the `syncEnvVars` build extension. + +### dev debugging in VS Code + +Debugging your tasks code in `dev` is now supported via VS Code, without having to pass in any additional flags. Create a launch configuration in `.vscode/launch.json`: + +```json launch.json +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Trigger.dev: Dev", + "type": "node", + "request": "launch", + "cwd": "${workspaceFolder}", + "runtimeExecutable": "npx", + "runtimeArgs": ["trigger.dev@latest", "dev"], + "skipFiles": ["/**"], + "sourceMaps": true + } + ] +} +``` + +Then you can start debugging your tasks code by selecting the `Trigger.dev: Dev` configuration in the debug panel, and set breakpoints in your tasks code. + +### TRIGGER_ACCESS_TOKEN in dev + +You can now authenticate the `dev` command using the `TRIGGER_ACCESS_TOKEN` environment variable. Previously this was only supported in the `deploy` command. + +```sh +TRIGGER_ACCESS_TOKEN= npx trigger.dev@latest dev +``` + +### Better deploy support for self-hosters + +You can now specify a custom registry and namespace when deploying via a self-hosted instance of Trigger.dev: + +```sh +npx trigger.dev@latest deploy \ + --self-hosted \ + --load-image \ + --push \ + --registry docker.io \ + --namespace mydockerhubusername +``` + +All you have to do is create a repository in dockerhub that matches the project ref of your Trigger.dev project (e.g. `proj_rrkpdguyagvsoktglnod`) + + + Docker Hub will automatically create a repository the first time you push, which is public by + default. If you want to keep these images private, make sure you create the repository before you + first run the `deploy` command + + +## Known issues + +- Path aliases are not yet support in your `trigger.config.ts` file. To workaround this issue you'll need to rewrite path aliases to their relative paths. (See [this](https://github.com/unjs/jiti/issues/166) and [this](https://knip.dev/reference/known-issues#path-aliases-in-config-files)) for more info. +- `*.test.ts` and `.spec.ts` files inside the trigger dirs will be bundled and could cause issues. You'll need to move these files outside of the trigger dirs to avoid this issue. diff --git a/docs/upgrading-packages.mdx b/docs/upgrading-packages.mdx index 91e70f65e..197c19f22 100644 --- a/docs/upgrading-packages.mdx +++ b/docs/upgrading-packages.mdx @@ -9,7 +9,7 @@ description: "When we release fixes and new features we recommend you upgrade yo Run this command in your project: ```sh -npx trigger.dev@beta update +npx trigger.dev@latest update ``` This will update all of the Trigger.dev packages in your project to the latest version. @@ -19,11 +19,11 @@ This will update all of the Trigger.dev packages in your project to the latest v When you run the CLI locally use the latest version for the `dev` and `deploy` commands: ```sh -npx trigger.dev@beta dev +npx trigger.dev@latest dev ``` ```sh -npx trigger.dev@beta deploy +npx trigger.dev@latest deploy ``` These commands will also give you the option to upgrade if you are behind on versions. @@ -44,7 +44,7 @@ You can deploy using [GitHub Actions](/github-actions). We recommend that you lo In the steps you'll see a `run` command. It will run the trigger.dev deploy CLI command. Make - sure to update this version to the latest version (e.g. `npx trigger.dev@3.0.0-beta.48 deploy`). + sure to update this version to the latest version (e.g. `npx trigger.dev@3.0.0 deploy`). @@ -57,7 +57,7 @@ For example: ```json { "devDependencies": { - "trigger.dev": "3.0.0-beta.48" + "trigger.dev": "3.0.0" } } ``` diff --git a/packages/build/src/extensions/core.ts b/packages/build/src/extensions/core.ts index 0abd6c10f..2adddbaa0 100644 --- a/packages/build/src/extensions/core.ts +++ b/packages/build/src/extensions/core.ts @@ -1,3 +1,5 @@ export * from "./core/additionalFiles.js"; export * from "./core/additionalPackages.js"; export * from "./core/syncEnvVars.js"; +export * from "./core/aptGet.js"; +export * from "./core/ffmpeg.js"; diff --git a/packages/build/src/extensions/core/aptGet.ts b/packages/build/src/extensions/core/aptGet.ts new file mode 100644 index 000000000..c6d0b51e6 --- /dev/null +++ b/packages/build/src/extensions/core/aptGet.ts @@ -0,0 +1,27 @@ +import { BuildExtension } from "@trigger.dev/core/v3/build"; + +export type AptGetOptions = { + packages: string[]; +}; + +export function aptGet(options: AptGetOptions): BuildExtension { + return { + name: "aptGet", + onBuildComplete(context) { + if (context.target === "dev") { + return; + } + + context.logger.debug("Adding apt-get layer", { + pkgs: options.packages, + }); + + context.addLayer({ + id: "apt-get", + image: { + pkgs: options.packages, + }, + }); + }, + }; +} diff --git a/packages/build/src/extensions/core/ffmpeg.ts b/packages/build/src/extensions/core/ffmpeg.ts new file mode 100644 index 000000000..84a91d706 --- /dev/null +++ b/packages/build/src/extensions/core/ffmpeg.ts @@ -0,0 +1,40 @@ +import { BuildExtension } from "@trigger.dev/core/v3/build"; + +export type FfmpegOptions = { + version?: string; +}; + +/** + * Add ffmpeg to the build, and automatically set the FFMPEG_PATH and FFPROBE_PATH environment variables. + * @param options.version The version of ffmpeg to install. If not provided, the latest version will be installed. + * + * @returns The build extension. + */ +export function ffmpeg(options: FfmpegOptions = {}): BuildExtension { + return { + name: "ffmpeg", + onBuildComplete(context) { + if (context.target === "dev") { + return; + } + + context.logger.debug("Adding ffmpeg", { + options, + }); + + context.addLayer({ + id: "ffmpeg", + image: { + pkgs: options.version ? [`ffmpeg=${options.version}`] : ["ffmpeg"], + }, + deploy: { + env: { + FFMPEG_PATH: "/usr/bin/ffmpeg", + FFPROBE_PATH: "/usr/bin/ffprobe", + }, + override: true, + }, + }); + }, + }; +} diff --git a/packages/cli-v3/package.json b/packages/cli-v3/package.json index 4d648b28c..91ca0ceda 100644 --- a/packages/cli-v3/package.json +++ b/packages/cli-v3/package.json @@ -29,7 +29,8 @@ "dist" ], "bin": { - "triggerdev": "./dist/esm/index.js" + "triggerdev": "./dist/esm/index.js", + "trigger": "./dist/esm/index.js" }, "tshy": { "selfLink": false, diff --git a/packages/cli-v3/src/commands/init.ts b/packages/cli-v3/src/commands/init.ts index 370e8ae58..df60445cf 100644 --- a/packages/cli-v3/src/commands/init.ts +++ b/packages/cli-v3/src/commands/init.ts @@ -7,7 +7,7 @@ import { Command, Option as CommandOption } from "commander"; import { applyEdits, findNodeAtLocation, getNodeValue, modify, parseTree } from "jsonc-parser"; import { writeFile } from "node:fs/promises"; import { join, relative, resolve } from "node:path"; -import { addDependency, detectPackageManager } from "nypm"; +import { addDependency, addDevDependency, detectPackageManager } from "nypm"; import { resolveTSConfig } from "pkg-types"; import { z } from "zod"; import { CliApiClient } from "../apiClient.js"; @@ -37,8 +37,9 @@ import { login } from "./login.js"; const InitCommandOptions = CommonCommandOptions.extend({ projectRef: z.string().optional(), overrideConfig: z.boolean().default(false), - tag: z.string().default("beta"), + tag: z.string().default("latest"), skipPackageInstall: z.boolean().default(false), + runtime: z.string().default("node"), pkgArgs: z.string().optional(), gitRef: z.string().default("main"), javascript: z.boolean().default(false), @@ -60,7 +61,12 @@ export function configureInitCommand(program: Command) { .option( "-t, --tag ", "The version of the @trigger.dev/sdk package to install", - "beta" + "latest" + ) + .option( + "-r, --runtime ", + "Which runtime to use for the project. Currently only supports node and bun", + "node" ) .option("--skip-package-install", "Skip installing the @trigger.dev/sdk package") .option("--override-config", "Override the existing config file if it exists") @@ -434,6 +440,15 @@ async function installPackages(dir: string, options: InitCommandOptions) { installSpinner.stop(`@trigger.dev/sdk@${options.tag} installed`); + installSpinner.start(`Adding @trigger.dev/build@${options.tag} to devDependencies`); + + await addDevDependency(`@trigger.dev/build@${options.tag}`, { + cwd: projectDir, + silent: true, + }); + + installSpinner.stop(`@trigger.dev/build@${options.tag} installed`); + span.end(); } catch (e) { if (options.logLevel === "debug") { @@ -481,15 +496,17 @@ async function writeConfigFile( "cli.projectDir": projectDir, "cli.templatePath": templateUrl, "cli.outputPath": outputPath, + "cli.runtime": options.runtime, }); const result = await createFileFromTemplate({ templateUrl, replacements: { projectRef: project.externalRef, + runtime: options.runtime, triggerDirectoriesOption: triggerDir.isCustomValue ? `\n dirs: ["${triggerDir.location}"],` - : `\n dirs: ["/src/trigger"],`, + : `\n dirs: ["./src/trigger"],`, }, outputPath, override: options.overrideConfig, diff --git a/packages/cli-v3/src/commands/update.ts b/packages/cli-v3/src/commands/update.ts index aa608c4ba..f22fe9fd3 100644 --- a/packages/cli-v3/src/commands/update.ts +++ b/packages/cli-v3/src/commands/update.ts @@ -77,7 +77,7 @@ export async function updateTriggerPackages( prettyWarning( "You're not running the latest CLI version, please consider updating ASAP", `Current: ${cliVersion}\nLatest: ${newCliVersion}`, - "Run latest: npx trigger.dev@beta" + "Run latest: npx trigger.dev@latest" ); hasOutput = true; @@ -108,25 +108,9 @@ export async function updateTriggerPackages( mismatches.push(dep); } - const extractRelease = (version: string) => { - const release = Number(version.split("3.0.0-beta.")[1]); - return release || undefined; - }; - - let isDowngrade = false; - const targetRelease = extractRelease(targetVersion); - - if (targetRelease) { - isDowngrade = mismatches.some((dep) => { - const depRelease = extractRelease(dep.version); - - if (!depRelease) { - return false; - } - - return depRelease > targetRelease; - }); - } + const isDowngrade = mismatches.some((dep) => { + return dep.version > targetVersion; + }); return { mismatches, diff --git a/packages/cli-v3/src/utilities/initialBanner.ts b/packages/cli-v3/src/utilities/initialBanner.ts index 45b4ef39b..034f48329 100644 --- a/packages/cli-v3/src/utilities/initialBanner.ts +++ b/packages/cli-v3/src/utilities/initialBanner.ts @@ -72,10 +72,7 @@ export function printDevBanner(printTopBorder = true) { async function doUpdateCheck(): Promise { try { // default cache for update check is 1 day - const meta = await getLatestVersion( - `trigger.dev@${VERSION.startsWith("3.0.0-beta") ? "beta" : "latest"}`, - { force: true } - ); + const meta = await getLatestVersion("trigger.dev@latest", { force: true }); if (!meta.version) { return; diff --git a/packages/cli-v3/templates/trigger.config.mjs.template b/packages/cli-v3/templates/trigger.config.mjs.template index 6a440ed3c..7b5c122dd 100644 --- a/packages/cli-v3/templates/trigger.config.mjs.template +++ b/packages/cli-v3/templates/trigger.config.mjs.template @@ -2,6 +2,7 @@ import { defineConfig } from "@trigger.dev/sdk/v3"; export default defineConfig({ project: "${projectRef}", + runtime: "${runtime}", logLevel: "log", retries: { enabledInDev: true, diff --git a/packages/cli-v3/templates/trigger.config.ts.template b/packages/cli-v3/templates/trigger.config.ts.template index 6a440ed3c..7b5c122dd 100644 --- a/packages/cli-v3/templates/trigger.config.ts.template +++ b/packages/cli-v3/templates/trigger.config.ts.template @@ -2,6 +2,7 @@ import { defineConfig } from "@trigger.dev/sdk/v3"; export default defineConfig({ project: "${projectRef}", + runtime: "${runtime}", logLevel: "log", retries: { enabledInDev: true, diff --git a/packages/trigger-sdk/src/v3/shared.ts b/packages/trigger-sdk/src/v3/shared.ts index 62ca7e128..029436648 100644 --- a/packages/trigger-sdk/src/v3/shared.ts +++ b/packages/trigger-sdk/src/v3/shared.ts @@ -263,6 +263,47 @@ export type TaskRunResult = error: unknown; }; +export class SubtaskUnwrapError extends Error { + public readonly taskId: string; + public readonly runId: string; + public readonly cause?: unknown; + + constructor(taskId: string, runId: string, subtaskError: unknown) { + if (subtaskError instanceof Error) { + super(`Error in ${taskId}: ${subtaskError.message}`, { cause: subtaskError }); + this.name = "SubtaskUnwrapError"; + } else { + super(`Error in ${taskId}`, { cause: subtaskError }); + this.name = "SubtaskUnwrapError"; + } + + this.taskId = taskId; + this.runId = runId; + } +} + +export class TaskRunPromise extends Promise> { + constructor( + executor: ( + resolve: (value: TaskRunResult | PromiseLike>) => void, + reject: (reason?: any) => void + ) => void, + private readonly taskId: string + ) { + super(executor); + } + + unwrap(): Promise { + return this.then((result) => { + if (result.ok) { + return result.output; + } else { + throw new SubtaskUnwrapError(this.taskId, result.id, result.error); + } + }); + } +} + export type BatchResult = { id: string; runs: TaskRunResult[]; @@ -311,7 +352,7 @@ export interface Task * } * ``` */ - triggerAndWait: (payload: TInput, options?: TaskRunOptions) => Promise>; + triggerAndWait: (payload: TInput, options?: TaskRunOptions) => TaskRunPromise; /** * Batch trigger multiple task runs with the given payloads, and wait for the results. Returns the results of the task runs. @@ -512,20 +553,28 @@ export function createTask< customQueue ); }, - triggerAndWait: async (payload, options) => { + triggerAndWait: (payload, options) => { const taskMetadata = taskCatalog.getTaskManifest(params.id); - return await triggerAndWait_internal( - taskMetadata && taskMetadata.exportName - ? `${taskMetadata.exportName}.triggerAndWait()` - : `triggerAndWait()`, - params.id, - payload, - { - queue: customQueue, - ...options, - } - ); + return new TaskRunPromise((resolve, reject) => { + triggerAndWait_internal( + taskMetadata && taskMetadata.exportName + ? `${taskMetadata.exportName}.triggerAndWait()` + : `triggerAndWait()`, + params.id, + payload, + { + queue: customQueue, + ...options, + } + ) + .then((result) => { + resolve(result); + }) + .catch((error) => { + reject(error); + }); + }, params.id); }, batchTriggerAndWait: async (items) => { const taskMetadata = taskCatalog.getTaskManifest(params.id); @@ -614,19 +663,27 @@ export async function trigger( * } * ``` */ -export async function triggerAndWait( +export function triggerAndWait( id: TaskIdentifier, payload: TaskPayload, options?: TaskRunOptions, requestOptions?: ApiRequestOptions -): Promise>> { - return await triggerAndWait_internal, TaskOutput>( - "tasks.triggerAndWait()", - id, - payload, - options, - requestOptions - ); +): TaskRunPromise> { + return new TaskRunPromise>((resolve, reject) => { + triggerAndWait_internal, TaskOutput>( + "tasks.triggerAndWait()", + id, + payload, + options, + requestOptions + ) + .then((result) => { + resolve(result); + }) + .catch((error) => { + reject(error); + }); + }, id); } /** diff --git a/packages/trigger-sdk/src/v3/tasks.ts b/packages/trigger-sdk/src/v3/tasks.ts index 0e84d586c..53cddf8d9 100644 --- a/packages/trigger-sdk/src/v3/tasks.ts +++ b/packages/trigger-sdk/src/v3/tasks.ts @@ -6,8 +6,11 @@ import { trigger, triggerAndPoll, triggerAndWait, + SubtaskUnwrapError, } from "./shared.js"; +export { SubtaskUnwrapError }; + import type { TaskOptions, Task, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 54305948e..950ed17cf 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1362,12 +1362,6 @@ importers: references/v3-catalog: dependencies: - '@ffmpeg-installer/ffmpeg': - specifier: ^1.1.0 - version: 1.1.0 - '@ffprobe-installer/ffprobe': - specifier: ^2.1.2 - version: 2.1.2 '@infisical/sdk': specifier: ^2.1.9 version: 2.3.5 @@ -1413,6 +1407,9 @@ importers: execa: specifier: ^8.0.1 version: 8.0.1 + fluent-ffmpeg: + specifier: ^2.1.3 + version: 2.1.3 header-generator: specifier: ^2.1.55 version: 2.1.55 @@ -1504,6 +1501,9 @@ importers: '@types/email-reply-parser': specifier: ^1.4.2 version: 1.4.2 + '@types/fluent-ffmpeg': + specifier: ^2.1.26 + version: 2.1.26 '@types/node': specifier: 20.4.2 version: 20.4.2 @@ -5993,161 +5993,6 @@ packages: resolution: {integrity: sha512-JUFJad5lv7jxj926GPgymrWQxxjPYuJNiNjNMzqT+HiuP6Vl3dk5xzG+8sTX96np0ZAluvaMzPsjhHZ5rNuNQQ==} engines: {node: '>=14'} - /@ffmpeg-installer/darwin-arm64@4.1.5: - resolution: {integrity: sha512-hYqTiP63mXz7wSQfuqfFwfLOfwwFChUedeCVKkBtl/cliaTM7/ePI9bVzfZ2c+dWu3TqCwLDRWNSJ5pqZl8otA==} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - - /@ffmpeg-installer/darwin-x64@4.1.0: - resolution: {integrity: sha512-Z4EyG3cIFjdhlY8wI9aLUXuH8nVt7E9SlMVZtWvSPnm2sm37/yC2CwjUzyCQbJbySnef1tQwGG2Sx+uWhd9IAw==} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - - /@ffmpeg-installer/ffmpeg@1.1.0: - resolution: {integrity: sha512-Uq4rmwkdGxIa9A6Bd/VqqYbT7zqh1GrT5/rFwCwKM70b42W5gIjWeVETq6SdcL0zXqDtY081Ws/iJWhr1+xvQg==} - optionalDependencies: - '@ffmpeg-installer/darwin-arm64': 4.1.5 - '@ffmpeg-installer/darwin-x64': 4.1.0 - '@ffmpeg-installer/linux-arm': 4.1.3 - '@ffmpeg-installer/linux-arm64': 4.1.4 - '@ffmpeg-installer/linux-ia32': 4.1.0 - '@ffmpeg-installer/linux-x64': 4.1.0 - '@ffmpeg-installer/win32-ia32': 4.1.0 - '@ffmpeg-installer/win32-x64': 4.1.0 - dev: false - - /@ffmpeg-installer/linux-arm64@4.1.4: - resolution: {integrity: sha512-dljEqAOD0oIM6O6DxBW9US/FkvqvQwgJ2lGHOwHDDwu/pX8+V0YsDL1xqHbj1DMX/+nP9rxw7G7gcUvGspSoKg==} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@ffmpeg-installer/linux-arm@4.1.3: - resolution: {integrity: sha512-NDf5V6l8AfzZ8WzUGZ5mV8O/xMzRag2ETR6+TlGIsMHp81agx51cqpPItXPib/nAZYmo55Bl2L6/WOMI3A5YRg==} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@ffmpeg-installer/linux-ia32@4.1.0: - resolution: {integrity: sha512-0LWyFQnPf+Ij9GQGD034hS6A90URNu9HCtQ5cTqo5MxOEc7Rd8gLXrJvn++UmxhU0J5RyRE9KRYstdCVUjkNOQ==} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@ffmpeg-installer/linux-x64@4.1.0: - resolution: {integrity: sha512-Y5BWhGLU/WpQjOArNIgXD3z5mxxdV8c41C+U15nsE5yF8tVcdCGet5zPs5Zy3Ta6bU7haGpIzryutqCGQA/W8A==} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@ffmpeg-installer/win32-ia32@4.1.0: - resolution: {integrity: sha512-FV2D7RlaZv/lrtdhaQ4oETwoFUsUjlUiasiZLDxhEUPdNDWcH1OU9K1xTvqz+OXLdsmYelUDuBS/zkMOTtlUAw==} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: false - optional: true - - /@ffmpeg-installer/win32-x64@4.1.0: - resolution: {integrity: sha512-Drt5u2vzDnIONf4ZEkKtFlbvwj6rI3kxw1Ck9fpudmtgaZIHD4ucsWB2lCZBXRxJgXR+2IMSti+4rtM4C4rXgg==} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: false - optional: true - - /@ffprobe-installer/darwin-arm64@5.0.1: - resolution: {integrity: sha512-vwNCNjokH8hfkbl6m95zICHwkSzhEvDC3GVBcUp5HX8+4wsX10SP3B+bGur7XUzTIZ4cQpgJmEIAx6TUwRepMg==} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - - /@ffprobe-installer/darwin-x64@5.1.0: - resolution: {integrity: sha512-J+YGscZMpQclFg31O4cfVRGmDpkVsQ2fZujoUdMAAYcP0NtqpC49Hs3SWJpBdsGB4VeqOt5TTm1vSZQzs1NkhA==} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - - /@ffprobe-installer/ffprobe@2.1.2: - resolution: {integrity: sha512-ZNvwk4f2magF42Zji2Ese16SMj9BS7Fui4kRjg6gTYTxY3gWZNpg85n4MIfQyI9nimHg4x/gT6FVkp/bBDuBwg==} - engines: {node: '>=14.21.2'} - optionalDependencies: - '@ffprobe-installer/darwin-arm64': 5.0.1 - '@ffprobe-installer/darwin-x64': 5.1.0 - '@ffprobe-installer/linux-arm': 5.2.0 - '@ffprobe-installer/linux-arm64': 5.2.0 - '@ffprobe-installer/linux-ia32': 5.2.0 - '@ffprobe-installer/linux-x64': 5.2.0 - '@ffprobe-installer/win32-ia32': 5.1.0 - '@ffprobe-installer/win32-x64': 5.1.0 - dev: false - - /@ffprobe-installer/linux-arm64@5.2.0: - resolution: {integrity: sha512-X1VvWtlLs6ScP73biVLuHD5ohKJKsMTa0vafCESOen4mOoNeLAYbxOVxDWAdFz9cpZgRiloFj5QD6nDj8E28yQ==} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@ffprobe-installer/linux-arm@5.2.0: - resolution: {integrity: sha512-PF5HqEhCY7WTWHtLDYbA/+rLS+rhslWvyBlAG1Fk8VzVlnRdl93o6hy7DE2kJgxWQbFaR3ZktPQGEzfkrmQHvQ==} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@ffprobe-installer/linux-ia32@5.2.0: - resolution: {integrity: sha512-TFVK5sasXyXhbIG7LtPRDmtkrkOsInwKcL43iEvEw+D9vCS2rc//mn9/0Q+BR0UoJEiMK4+ApYr/3LLVUBPOCQ==} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@ffprobe-installer/linux-x64@5.2.0: - resolution: {integrity: sha512-D3UeqTLYPNs7pBWPLUYGehPdRVqU8eACox4OZy3pZUZatxye2YKlvBwEfaLdL1v2Z4FOAlLUhms0kY8m8kqSRA==} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@ffprobe-installer/win32-ia32@5.1.0: - resolution: {integrity: sha512-5O3vOoNRxmut0/Nu9vSazTdSHasrr+zPT2B3Hm7kjmO3QVFcIfVImS6ReQnZeSy8JPJOqXts5kX5x/3KOX54XQ==} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: false - optional: true - - /@ffprobe-installer/win32-x64@5.1.0: - resolution: {integrity: sha512-jMGYeAgkrdn4e2vvYt/qakgHRE3CPju4bn5TmdPfoAm1BlX1mY9cyMd8gf5vSzI8gH8Zq5WQAyAkmekX/8TSTg==} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: false - optional: true - /@floating-ui/core@0.7.3: resolution: {integrity: sha512-buc8BXHmG9l82+OQXOFU3Kr2XQx9ys01U/Q9HMIrZ300iLc8HLMgh7dcCqgYzAzf4BkoQvDcXf5Y+CuEZ5JBYg==} dev: false @@ -14550,6 +14395,12 @@ packages: '@types/serve-static': 1.15.0 dev: true + /@types/fluent-ffmpeg@2.1.26: + resolution: {integrity: sha512-0JVF3wdQG+pN0ImwWD0bNgJiKF2OHg/7CDBHw5UIbRTvlnkgGHK6V5doE54ltvhud4o31/dEiHm23CAlxFiUQg==} + dependencies: + '@types/node': 18.19.20 + dev: true + /@types/gradient-string@1.1.2: resolution: {integrity: sha512-zIet2KvHr2dkOCPI5ggQQ+WJVyfBSFaqK9sNelhgDjlE2K3Fu2muuPJwu5aKM3xoWuc3WXudVEMUwI1QWhykEQ==} dependencies: @@ -16129,6 +15980,10 @@ packages: hasBin: true dev: true + /async@0.2.10: + resolution: {integrity: sha512-eAkdoKxU6/LkKDBzLpT+t6Ff5EtfSF4wx1WfJiPEEV7WNLnDaRXk0oVysiEPm262roaachGexwUv94WhSgN5TQ==} + dev: false + /async@3.2.6: resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} dev: true @@ -19707,6 +19562,14 @@ packages: /flatted@3.2.7: resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} + /fluent-ffmpeg@2.1.3: + resolution: {integrity: sha512-Be3narBNt2s6bsaqP6Jzq91heDgOEaDCJAXcE3qcma/EJBSy5FB4cvO31XBInuAuKBx8Kptf8dkhjK0IOru39Q==} + engines: {node: '>=18'} + dependencies: + async: 0.2.10 + which: 1.3.1 + dev: false + /follow-redirects@1.15.2: resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} engines: {node: '>=4.0'} diff --git a/references/v3-catalog/package.json b/references/v3-catalog/package.json index 1525750df..26f987282 100644 --- a/references/v3-catalog/package.json +++ b/references/v3-catalog/package.json @@ -16,8 +16,7 @@ "generate:prisma": "prisma generate --sql" }, "dependencies": { - "@ffmpeg-installer/ffmpeg": "^1.1.0", - "@ffprobe-installer/ffprobe": "^2.1.2", + "fluent-ffmpeg": "^2.1.3", "@infisical/sdk": "^2.1.9", "@opentelemetry/api": "1.4.1", "@prisma/client": "5.19.0", @@ -68,6 +67,7 @@ "@types/email-reply-parser": "^1.4.2", "@types/node": "20.4.2", "@types/react": "^18.3.1", + "@types/fluent-ffmpeg": "^2.1.26", "esbuild": "^0.19.11", "prisma": "5.19.0", "prisma-kysely": "^1.8.0", diff --git a/references/v3-catalog/src/trigger/binaries.ts b/references/v3-catalog/src/trigger/binaries.ts index 2a5796cdd..d7a6da8b5 100644 --- a/references/v3-catalog/src/trigger/binaries.ts +++ b/references/v3-catalog/src/trigger/binaries.ts @@ -1,159 +1,33 @@ -import { logger, task } from "@trigger.dev/sdk/v3"; -import { chmod, writeFile } from "node:fs/promises"; +import { task } from "@trigger.dev/sdk/v3"; +import ffmpeg from "fluent-ffmpeg"; +import * as path from "node:path"; import { Readable } from "node:stream"; -import { ReadableStream } from "stream/web"; -import { basename } from "node:path"; -import YTDlpWrap from "yt-dlp-wrap"; -import ffmpeg from "@ffmpeg-installer/ffmpeg"; +import type { ReadableStream } from "node:stream/web"; -export const ytDlp = task({ - id: "yt-dlp", - run: async () => { - const releaseArtifact = "yt-dlp_linux"; - const filePath = `./${releaseArtifact}`; - const fileURL = `https://github.com/yt-dlp/yt-dlp/releases/latest/download/${releaseArtifact}`; - - await YTDlpWrap.downloadFile(fileURL, filePath); - await chmod(filePath, "777"); - - logger.log("downloaded", { filePath, fileURL }); - - const ytDlpWrap = new YTDlpWrap(filePath); - const version = await ytDlpWrap.getVersion(); - - logger.log("version", { version }); +export const convertVideo = task({ + id: "convert-video", + retry: { + maxAttempts: 5, + minTimeoutInMs: 1000, + maxTimeoutInMs: 10000, + factor: 2, }, -}); + run: async ({ url }: { url: string }) => { + const outputPath = path.join("/tmp", `output_${Date.now()}.mp4`); -async function getFfprobe() { - const ffprobe = await import("@ffprobe-installer/ffprobe"); + const response = await fetch(url); - logger.log("ffprobeInstaller", ffprobe); - - return ffprobe; -} - -async function ffprobeVersion() { - const ffprobe = await getFfprobe(); - const childProcess = await execute(ffprobe.path, ["-version"]); - - logger.log("ffprobe -version", { - output: childProcess.stdout.split("\n")[0], - }); -} - -async function ffmpegVersion() { - logger.log("ffmpegInstaller", ffmpeg); - - const childProcess = await execute(ffmpeg.path, ["-version"]); - - logger.log("ffmpeg -version", { - output: childProcess.stdout.split("\n")[0], - }); -} - -export const ffprobeInstaller = task({ - id: "ffprobe-installer", - run: async () => { - await ffprobeVersion(); - }, -}); - -export const ffmpegInstaller = task({ - id: "ffmpeg-installer", - run: async () => { - await ffmpegVersion(); - }, -}); - -const videoUrl = - "https://upload.wikimedia.org/wikipedia/commons/0/07/Fractal-zoom-1-03-Mandelbrot_Buzzsaw.ogv"; -const videoPath = "./video.ogv"; - -async function downloadVideo() { - logger.log("downloading video", { url: videoUrl }); - - const response = await fetch(videoUrl); - - if (!response.body) { - throw new Error("No readable stream"); - } - - const readStream = Readable.fromWeb(response.body as ReadableStream); - await writeFile(videoPath, readStream); - - logger.log("finished downloading", { outputPath: videoPath }); -} - -async function execute(file: string, args?: readonly string[]) { - const { execa } = await import("execa"); - - logger.log(`execute: ${basename(file)}`, { args }); - const childProcess = await execa(file, args); - - if (childProcess.exitCode !== 0) { - logger.error("Non-zero exit code", { - stderr: childProcess.stderr, - stdout: childProcess.stdout, + await new Promise((resolve, reject) => { + ffmpeg(Readable.fromWeb(response.body as ReadableStream)) + .videoFilters("scale=iw/2:ih/2") + .output(outputPath) + .on("end", resolve) + .on("error", reject) + .run(); }); - throw new Error("Non-zero exit code"); - } - return childProcess; -} + console.log(`Video converted to ${outputPath}`); -async function probeVideo() { - const ffprobe = await getFfprobe(); - const args = ["-hide_banner", "-print_format", "json", "-show_format", videoPath]; - - logger.log("probing video", { videoPath }); - const childProcess = await execute(ffprobe.path, args); - - logger.log("video info", { - output: JSON.parse(childProcess.stdout), - }); -} - -export const ffprobeInfo = task({ - id: "ffprobe-info", - run: async () => { - await ffprobeVersion(); - await downloadVideo(); - await probeVideo(); - }, -}); - -async function convertVideo() { - const outputPath = "./video.webm"; - logger.log("converting video", { input: videoPath, output: outputPath }); - - const childProcess = await execute(ffmpeg.path, [ - "-hide_banner", - "-y", // overwrite output, don't prompt - "-i", - videoPath, - // seek to 25s - "-ss", - "25", - // stop after 5s - "-t", - "5", - outputPath, - ]); - - logger.log("video converted", { - input: videoPath, - output: outputPath, - stderr: childProcess.stderr, - stdout: childProcess.stdout, - }); -} - -export const ffmpegConvert = task({ - id: "ffmpeg-convert", - run: async () => { - await ffmpegVersion(); - await downloadVideo(); - await convertVideo(); + return { success: true, outputPath }; }, }); diff --git a/references/v3-catalog/src/trigger/simple.ts b/references/v3-catalog/src/trigger/simple.ts index 1d6aa2071..4db91ac0f 100644 --- a/references/v3-catalog/src/trigger/simple.ts +++ b/references/v3-catalog/src/trigger/simple.ts @@ -1,5 +1,5 @@ import "server-only"; -import { logger, task, tasks, wait } from "@trigger.dev/sdk/v3"; +import { logger, SubtaskUnwrapError, task, tasks, wait } from "@trigger.dev/sdk/v3"; import { traceAsync } from "@/telemetry.js"; import { HeaderGenerator } from "header-generator"; @@ -31,14 +31,22 @@ export const fetchPostTask = task({ export const anyPayloadTask = task({ id: "any-payload-task", run: async (payload: any) => { - const result = await tasks.triggerAndWait("fetch-post-task", { - url: "https://jsonplaceholder.typicode.com/posts/1", - }); + try { + const { url, method } = await tasks + .triggerAndWait("fetch-post-task", { + url: "https://jsonplaceholder.typicode.comasdqdasd/posts/1", + }) + .unwrap(); - if (result.ok) { - logger.info("Result from fetch-post-task 211111sss", { output: result.output }); - } else { - logger.error("Error from fetch-post-task", { error: result.error }); + console.log("Result from fetch-post-task 211111sss", { output: { url, method } }); + } catch (error) { + if (error instanceof SubtaskUnwrapError) { + console.error("Error in fetch-post-task", { + runId: error.runId, + taskId: error.taskId, + cause: error.cause, + }); + } } return { @@ -126,10 +134,12 @@ export const parentTask = task({ await wait.for({ seconds: 5 }); - const childTaskResponse = await childTask.triggerAndWait({ - message: payload.message, - forceError: false, - }); + const childTaskResponse = await childTask + .triggerAndWait({ + message: payload.message, + forceError: false, + }) + .unwrap(); logger.info("Child task response", { childTaskResponse }); diff --git a/references/v3-catalog/trigger.config.ts b/references/v3-catalog/trigger.config.ts index 2f2c66d92..356060918 100644 --- a/references/v3-catalog/trigger.config.ts +++ b/references/v3-catalog/trigger.config.ts @@ -1,41 +1,15 @@ import { InfisicalClient } from "@infisical/sdk"; +import { sentryEsbuildPlugin } from "@sentry/esbuild-plugin"; import { OpenAIInstrumentation } from "@traceloop/instrumentation-openai"; import { esbuildPlugin } from "@trigger.dev/build"; import { audioWaveform } from "@trigger.dev/build/extensions/audioWaveform"; +import { ffmpeg, syncEnvVars } from "@trigger.dev/build/extensions/core"; import { prismaExtension } from "@trigger.dev/build/extensions/prisma"; import { emitDecoratorMetadata } from "@trigger.dev/build/extensions/typescript"; -import { defineConfig, ResolveEnvironmentVariablesFunction } from "@trigger.dev/sdk/v3"; -import { sentryEsbuildPlugin } from "@sentry/esbuild-plugin"; +import { defineConfig } from "@trigger.dev/sdk/v3"; export { handleError } from "./src/handleError.js"; -export const resolveEnvVars: ResolveEnvironmentVariablesFunction = async (ctx) => { - if ( - process.env.INFISICAL_CLIENT_ID === undefined || - process.env.INFISICAL_CLIENT_SECRET === undefined || - process.env.INFISICAL_PROJECT_ID === undefined - ) { - return; - } - - const client = new InfisicalClient({ - clientId: process.env.INFISICAL_CLIENT_ID, - clientSecret: process.env.INFISICAL_CLIENT_SECRET, - }); - - const secrets = await client.listSecrets({ - environment: ctx.environment, - projectId: process.env.INFISICAL_PROJECT_ID, - }); - - return { - variables: secrets.map((secret) => ({ - name: secret.secretKey, - value: secret.secretValue, - })), - }; -}; - export default defineConfig({ runtime: "node", project: "yubjwjsfkxnylobaqvqz", @@ -43,7 +17,7 @@ export default defineConfig({ instrumentations: [new OpenAIInstrumentation()], additionalFiles: ["wrangler/wrangler.toml"], retries: { - enabledInDev: true, + enabledInDev: false, default: { maxAttempts: 10, minTimeoutInMs: 5_000, @@ -63,6 +37,7 @@ export default defineConfig({ build: { conditions: ["react-server"], extensions: [ + ffmpeg(), emitDecoratorMetadata(), audioWaveform(), prismaExtension({ @@ -80,7 +55,31 @@ export default defineConfig({ }), { placement: "last", target: "deploy" } ), + syncEnvVars(async (ctx) => { + if ( + !process.env.INFISICAL_CLIENT_ID || + !process.env.INFISICAL_CLIENT_SECRET || + !process.env.INFISICAL_PROJECT_ID + ) { + return; + } + + const client = new InfisicalClient({ + clientId: process.env.INFISICAL_CLIENT_ID, + clientSecret: process.env.INFISICAL_CLIENT_SECRET, + }); + + const secrets = await client.listSecrets({ + environment: ctx.environment, + projectId: process.env.INFISICAL_PROJECT_ID, + }); + + return secrets.map((secret) => ({ + name: secret.secretKey, + value: secret.secretValue, + })); + }), ], - external: ["@ffmpeg-installer/ffmpeg", "re2"], + external: ["re2"], }, });