move core-apps to core/v3/apps, remove core-apps, start converting cli-v3

This commit is contained in:
Eric Allam
2024-08-06 13:19:25 +01:00
committed by Eric Allam
parent 4febab49cd
commit 7caba3a02f
38 changed files with 140 additions and 766 deletions
+5 -1
View File
@@ -1,5 +1,9 @@
{
"deno.enablePaths": ["references/deno-reference", "runtime_tests/tests/deno"],
"debug.toolBarLocation": "commandCenter",
"typescript.tsdk": "node_modules/typescript/lib"
"typescript.tsdk": "node_modules/typescript/lib",
"search.exclude": {
"**/node_modules/**": true,
"packages/cli-v3/e2e": true
}
}
-1
View File
@@ -17,7 +17,6 @@
"license": "MIT",
"dependencies": {
"@trigger.dev/core": "workspace:*",
"@trigger.dev/core-apps": "workspace:*",
"execa": "^8.0.1",
"nanoid": "^5.0.6",
"prom-client": "^15.1.0",
+3 -3
View File
@@ -1,6 +1,6 @@
import { ExponentialBackoff } from "@trigger.dev/core-apps/backoff";
import { isExecaChildProcess, testDockerCheckpoint } from "@trigger.dev/core-apps/checkpoints";
import { SimpleLogger } from "@trigger.dev/core-apps/logger";
import { ExponentialBackoff } from "@trigger.dev/core/v3/apps";
import { testDockerCheckpoint, isExecaChildProcess } from "@trigger.dev/core/v3/apps";
import { SimpleLogger } from "@trigger.dev/core/v3/apps";
import { $ } from "execa";
import { nanoid } from "nanoid";
import fs from "node:fs/promises";
+2 -2
View File
@@ -10,8 +10,8 @@ import {
} from "@trigger.dev/core/v3";
import { ZodNamespace } from "@trigger.dev/core/v3/zodNamespace";
import { ZodSocketConnection } from "@trigger.dev/core/v3/zodSocket";
import { HttpReply, getTextBody } from "@trigger.dev/core-apps/http";
import { SimpleLogger } from "@trigger.dev/core-apps/logger";
import { HttpReply, getTextBody } from "@trigger.dev/core/v3/apps";
import { SimpleLogger } from "@trigger.dev/core/v3/apps";
import { ChaosMonkey } from "./chaosMonkey";
import { Checkpointer } from "./checkpointer";
+1 -3
View File
@@ -11,9 +11,7 @@
"skipLibCheck": true,
"paths": {
"@trigger.dev/core/v3": ["../../packages/core/src/v3"],
"@trigger.dev/core/v3/*": ["../../packages/core/src/v3/*"],
"@trigger.dev/core-apps": ["../../packages/core-apps/src"],
"@trigger.dev/core-apps/*": ["../../packages/core-apps/src/*"]
"@trigger.dev/core/v3/*": ["../../packages/core/src/v3/*"]
}
}
}
-1
View File
@@ -17,7 +17,6 @@
"license": "MIT",
"dependencies": {
"@trigger.dev/core": "workspace:*",
"@trigger.dev/core-apps": "workspace:*",
"execa": "^8.0.1"
},
"devDependencies": {
+3 -3
View File
@@ -5,9 +5,9 @@ import {
TaskOperationsCreateOptions,
TaskOperationsIndexOptions,
TaskOperationsRestoreOptions,
} from "@trigger.dev/core-apps/provider";
import { SimpleLogger } from "@trigger.dev/core-apps/logger";
import { isExecaChildProcess, testDockerCheckpoint } from "@trigger.dev/core-apps/checkpoints";
} from "@trigger.dev/core/v3/apps";
import { SimpleLogger } from "@trigger.dev/core/v3/apps";
import { isExecaChildProcess, testDockerCheckpoint } from "@trigger.dev/core/v3/apps";
import { setTimeout } from "node:timers/promises";
import { PostStartCauses, PreStopCauses } from "@trigger.dev/core/v3";
+1 -3
View File
@@ -9,9 +9,7 @@
"skipLibCheck": true,
"paths": {
"@trigger.dev/core/v3": ["../../packages/core/src/v3"],
"@trigger.dev/core/v3/*": ["../../packages/core/src/v3/*"],
"@trigger.dev/core-apps": ["../../packages/core-apps/src"],
"@trigger.dev/core-apps/*": ["../../packages/core-apps/src/*"]
"@trigger.dev/core/v3/*": ["../../packages/core/src/v3/*"]
}
}
}
-1
View File
@@ -18,7 +18,6 @@
"dependencies": {
"@kubernetes/client-node": "^0.20.0",
"@trigger.dev/core": "workspace:*",
"@trigger.dev/core-apps": "workspace:*",
"p-queue": "^8.0.1"
},
"devDependencies": {
+2 -2
View File
@@ -6,8 +6,8 @@ import {
TaskOperationsIndexOptions,
TaskOperationsPrePullDeploymentOptions,
TaskOperationsRestoreOptions,
} from "@trigger.dev/core-apps/provider";
import { SimpleLogger } from "@trigger.dev/core-apps/logger";
} from "@trigger.dev/core/v3/apps";
import { SimpleLogger } from "@trigger.dev/core/v3/apps";
import {
MachinePreset,
PostStartCauses,
+1 -1
View File
@@ -1,5 +1,5 @@
import * as k8s from "@kubernetes/client-node";
import { SimpleLogger } from "@trigger.dev/core-apps/logger";
import { SimpleLogger } from "@trigger.dev/core/v3/apps";
type PodCleanerOptions = {
runtimeEnv: "local" | "kubernetes";
+2 -2
View File
@@ -1,6 +1,6 @@
import * as k8s from "@kubernetes/client-node";
import { SimpleLogger } from "@trigger.dev/core-apps/logger";
import { EXIT_CODE_ALREADY_HANDLED, EXIT_CODE_CHILD_NONZERO } from "@trigger.dev/core-apps/process";
import { SimpleLogger } from "@trigger.dev/core/v3/apps";
import { EXIT_CODE_ALREADY_HANDLED, EXIT_CODE_CHILD_NONZERO } from "@trigger.dev/core/v3/apps";
import { setTimeout } from "timers/promises";
import PQueue from "p-queue";
import type { Prettify } from "@trigger.dev/core/v3";
@@ -1,5 +1,5 @@
import * as k8s from "@kubernetes/client-node";
import { SimpleLogger } from "@trigger.dev/core-apps/logger";
import { SimpleLogger } from "@trigger.dev/core/v3/apps";
type UptimeHeartbeatOptions = {
runtimeEnv: "local" | "kubernetes";
+1 -3
View File
@@ -9,9 +9,7 @@
"skipLibCheck": true,
"paths": {
"@trigger.dev/core/v3": ["../../packages/core/src/v3"],
"@trigger.dev/core/v3/*": ["../../packages/core/src/v3/*"],
"@trigger.dev/core-apps": ["../../packages/core-apps/src"],
"@trigger.dev/core-apps/*": ["../../packages/core-apps/src/*"]
"@trigger.dev/core/v3/*": ["../../packages/core/src/v3/*"]
}
}
}
+22 -22
View File
@@ -2,8 +2,7 @@
"name": "trigger.dev",
"version": "3.0.0-beta.52",
"description": "A Command-Line Interface for Trigger.dev (v3) projects",
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
"type": "module",
"license": "MIT",
"repository": {
"type": "git",
@@ -29,17 +28,26 @@
"files": [
"dist"
],
"type": "module",
"exports": "./dist/index.js",
"bin": {
"triggerdev": "./dist/index.js"
},
"tshy": {
"selfLink": false,
"main": false,
"module": false,
"dialects": [
"esm"
],
"project": "./tsconfig.build.json",
"exports": {
"./package.json": "./package.json",
".": "./src/index.ts"
}
},
"devDependencies": {
"@trigger.dev/core-apps": "workspace:*",
"@trigger.dev/tsconfig": "workspace:*",
"@types/gradient-string": "^1.1.2",
"@types/mock-fs": "^4.13.1",
"@types/node": "18",
"@types/node": "20.14.14",
"@types/object-hash": "^3.0.6",
"@types/react": "^18.2.48",
"@types/semver": "^7.3.13",
@@ -50,24 +58,16 @@
"open": "^10.0.3",
"p-retry": "^6.1.0",
"rimraf": "^5.0.7",
"tsup": "^8.0.1",
"type-fest": "^3.6.0",
"typescript": "^5.3.3",
"typescript": "^5.5.4",
"vitest": "^1.6.0",
"xdg-app-paths": "^8.3.0"
"xdg-app-paths": "^8.3.0",
"tshy": "^3.0.2"
},
"scripts": {
"typecheck": "tsc -p tsconfig.check.json",
"build": "npm run clean && run-p build:**",
"build:main": "tsup",
"build:workers": "tsup --config tsup.workers.config.ts",
"build:prod-containerfile": "cpy --flat src/Containerfile.prod dist/",
"dev": "npm run clean && run-p dev:**",
"dev:main": "tsup --watch",
"dev:workers": "tsup --config tsup.workers.config.ts --watch",
"dev:test": "nodemon -w src/Containerfile.prod -x npm run build:prod-containerfile",
"clean": "rimraf dist",
"start": "node dist/index.js",
"typecheck": "tsc",
"build": "tshy",
"dev": "tshy --watch",
"test": "vitest",
"test:e2e": "vitest --run -c e2e/vite.config.js"
},
@@ -129,6 +129,6 @@
"zod-validation-error": "^1.5.0"
},
"engines": {
"node": ">=18.0.0"
"node": ">=18.20.0"
}
}
+3 -3
View File
@@ -2,11 +2,11 @@ import { flattenAttributes } from "@trigger.dev/core/v3";
import { recordSpanException } from "@trigger.dev/core/v3/workers";
import { Command } from "commander";
import { z } from "zod";
import { getTracer, provider } from "../telemetry/tracing";
import { getTracer, provider } from "../telemetry/tracing.js";
import { fromZodError } from "zod-validation-error";
import { logger } from "../utilities/logger";
import { logger } from "../utilities/logger.js";
import { outro } from "@clack/prompts";
import { chalkError } from "../utilities/cliOutput";
import { chalkError } from "../utilities/cliOutput.js";
export const CommonCommandOptions = z.object({
apiUrl: z.string().optional(),
+2 -2
View File
@@ -19,7 +19,7 @@ import { setTimeout } from "node:timers/promises";
import invariant from "tiny-invariant";
import { z } from "zod";
import * as packageJson from "../../package.json";
import { CliApiClient } from "../apiClient";
import { CliApiClient } from "../apiClient.js";
import {
CommonCommandOptions,
SkipCommandError,
@@ -30,7 +30,7 @@ import {
wrapCommandAction,
} from "../cli/common.js";
import { ReadConfigResult, readConfig } from "../utilities/configFiles.js";
import { createTempDir, writeJSONFile } from "../utilities/fileSystem";
import { createTempDir, writeJSONFile } from "../utilities/fileSystem.js";
import { printStandloneInitialBanner } from "../utilities/initialBanner.js";
import {
detectPackageNameFromImportPath,
+6 -6
View File
@@ -21,14 +21,14 @@ import React, { Suspense, useEffect } from "react";
import { ClientOptions, WebSocket as wsWebSocket } from "ws";
import { z } from "zod";
import * as packageJson from "../../package.json";
import { CliApiClient } from "../apiClient";
import { CliApiClient } from "../apiClient.js";
import { CommonCommandOptions, commonOptions, wrapCommandAction } from "../cli/common.js";
import {
bundleDependenciesPlugin,
bundleTriggerDevCore,
mockServerOnlyPlugin,
workerSetupImportConfigPlugin,
} from "../utilities/build";
} from "../utilities/build.js";
import {
chalkError,
chalkGrey,
@@ -37,15 +37,15 @@ import {
chalkTask,
chalkWorker,
cliLink,
} from "../utilities/cliOutput";
import { readConfig } from "../utilities/configFiles";
import { readJSONFile } from "../utilities/fileSystem";
} from "../utilities/cliOutput.js";
import { readConfig } from "../utilities/configFiles.js";
import { readJSONFile } from "../utilities/fileSystem.js";
import { printDevBanner, printStandloneInitialBanner } from "../utilities/initialBanner.js";
import {
detectPackageNameFromImportPath,
parsePackageName,
stripWorkspaceFromVersion,
} from "../utilities/installPackages";
} from "../utilities/installPackages.js";
import { logger } from "../utilities/logger.js";
import { isLoggedIn } from "../utilities/session.js";
import { createTaskFileImports, gatherTaskFiles } from "../utilities/taskFiles";
@@ -29,7 +29,7 @@ import {
UncaughtExceptionError,
UnexpectedExitError,
getFriendlyErrorMessage,
} from "../common/errors";
} from "../common/errors.js";
type BackgroundWorkerParams = {
env: Record<string, string>;
@@ -12,16 +12,20 @@ import {
WaitReason,
} from "@trigger.dev/core/v3";
import { InferSocketMessageSchema, ZodSocketConnection } from "@trigger.dev/core/v3/zodSocket";
import { HttpReply, getRandomPortNumber } from "@trigger.dev/core-apps/http";
import { SimpleLogger } from "@trigger.dev/core-apps/logger";
import { EXIT_CODE_ALREADY_HANDLED, EXIT_CODE_CHILD_NONZERO } from "@trigger.dev/core-apps/process";
import { ExponentialBackoff } from "@trigger.dev/core-apps/backoff";
import {
HttpReply,
getRandomPortNumber,
SimpleLogger,
EXIT_CODE_ALREADY_HANDLED,
EXIT_CODE_CHILD_NONZERO,
ExponentialBackoff,
} from "@trigger.dev/core/v3/apps";
import {
OnWaitForBatchMessage,
OnWaitForTaskMessage,
ProdBackgroundWorker,
} from "./backgroundWorker";
import { TaskMetadataParseError, UncaughtExceptionError } from "../common/errors";
} from "./backgroundWorker.js";
import { TaskMetadataParseError, UncaughtExceptionError } from "../common/errors.js";
import { checkpointSafeTimeout, unboundedTimeout } from "@trigger.dev/core/v3/utils/timers";
import { randomUUID } from "node:crypto";
import { readFile } from "node:fs/promises";
@@ -1346,6 +1350,7 @@ class ProdWorker {
} catch (error) {
logger.error("HTTP server error", { error });
reply.empty(500);
return;
}
});
+8
View File
@@ -0,0 +1,8 @@
{
"extends": "../../.configs/tsconfig.base.json",
"compilerOptions": {
"isolatedDeclarations": false,
"composite": true,
"sourceMap": true
}
}
-10
View File
@@ -1,10 +0,0 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"noEmit": true,
"paths": {
"@trigger.dev/core-apps": ["../core-apps/src"],
"@trigger.dev/core-apps/*": ["../core-apps/src/*"]
}
}
}
+5 -30
View File
@@ -1,34 +1,9 @@
// See: https://www.totaltypescript.com/tsconfig-cheat-sheet
{
"include": ["./src/**/*.ts", "./src/**/*.tsx", "./e2e/**/*.ts", "./types.d.ts"],
"extends": "../../.configs/tsconfig.base.json",
"compilerOptions": {
"esModuleInterop": true,
"skipLibCheck": true,
"target": "es2022",
"allowJs": true,
"resolveJsonModule": true,
"moduleDetection": "force",
"isolatedModules": true,
"strict": true,
"noUncheckedIndexedAccess": true,
/* Building for a monorepo */
"declaration": true,
"composite": false,
"sourceMap": true,
"declarationMap": true,
/* We're building with tsup */
"moduleResolution": "Bundler",
"module": "ESNext",
"noEmit": true,
"lib": ["es2022", "DOM"],
"types": ["node", "vitest/globals"],
"jsx": "react",
"paths": {
"@trigger.dev/core/v3": ["../core/src/v3"],
"@trigger.dev/core/v3/*": ["../core/src/v3/*"],
"@trigger.dev/core-apps": ["../core-apps/src"],
"@trigger.dev/core-apps/*": ["../core-apps/src/*"]
}
"isolatedDeclarations": false,
"composite": true,
"sourceMap": true
},
"exclude": ["node_modules", "./e2e/fixtures"]
"include": ["./src/**/*.ts", "./src/**/*.tsx"]
}
-30
View File
@@ -1,30 +0,0 @@
import { cp } from "fs/promises";
import { join } from "path";
import { defineConfig } from "tsup";
const isDev = process.env.npm_lifecycle_event === "dev:main"; // This must match the npm script name
export default defineConfig({
clean: false,
tsconfig: "tsconfig.json",
dts: true,
splitting: false,
entry: ["src/index.ts"],
format: ["esm"],
minify: false,
metafile: false,
sourcemap: true,
target: "esnext",
outDir: "dist",
async onSuccess() {
if (isDev) {
console.debug("Running onSuccess() in dev");
// exec: node dist/index.js
}
await cp(join("src", "templates"), "dist/templates", { recursive: true });
},
banner: {
js: "import { createRequire as createRequireFromMetaUrl } from 'node:module';const require = createRequireFromMetaUrl(import.meta.url);",
},
});
-22
View File
@@ -1,22 +0,0 @@
import { defineConfig } from "tsup";
export default defineConfig({
clean: false,
dts: false,
tsconfig: "tsconfig.json",
splitting: false,
entry: [
"src/workers/dev/worker-setup.ts",
"src/workers/dev/worker-facade.ts",
"src/workers/prod/worker-setup.ts",
"src/workers/prod/worker-facade.ts",
"src/workers/prod/entry-point.ts",
],
format: ["esm"],
minify: false,
metafile: false,
sourcemap: false,
target: "esnext",
outDir: "dist/workers",
noExternal: ["@trigger.dev/core-apps"],
});
-175
View File
@@ -1,175 +0,0 @@
# @trigger.dev/core-apps
## 3.0.0-beta.55
## 3.0.0-beta.54
## 3.0.0-beta.53
### Patch Changes
- 5cf90da72: Fix issues that could result in unreezable state run crashes. Details:
- Never checkpoint between attempts
- Some messages and socket data now include attempt numbers
- Remove attempt completion replays
- Additional prod entry point logging
- Fail runs that receive deprecated (pre-lazy attempt) execute messages
## 3.0.0-beta.52
### Patch Changes
- 9882d66f8: Pre-pull deployment images for faster startups
## 3.0.0-beta.51
## 3.0.0-beta.50
## 3.0.0-beta.49
## 3.0.0-beta.48
## 3.0.0-beta.47
## 3.0.0-beta.46
### Patch Changes
- 14c2bdf89: Tasks should now be much more robust and resilient to reconnects during crucial operations and other failure scenarios.
Task runs now have to signal checkpointable state prior to ALL checkpoints. This ensures flushing always happens.
All important socket.io RPCs will now be retried with backoff. Actions relying on checkpoints will be replayed if we haven't been checkpointed and restored as expected, e.g. after reconnect.
Other changes:
- Fix retry check in shared queue
- Fix env var sync spinner
- Heartbeat between retries
- Fix retry prep
- Fix prod worker no tasks detection
- Fail runs above `MAX_TASK_RUN_ATTEMPTS`
- Additional debug logs in all places
- Prevent crashes due to failed socket schema parsing
- Remove core-apps barrel
- Upgrade socket.io-client to fix an ACK memleak
- Additional index failure logs
- Prevent message loss during reconnect
- Prevent burst of heartbeats on reconnect
- Prevent crash on failed cleanup
- Handle at-least-once lazy execute message delivery
- Handle uncaught entry point exceptions
## 3.0.0-beta.45
### Patch Changes
- 5ae3da6b4: - Fix artifact detection logs
- Fix OOM detection and error messages
- Add test link to cli deployment completion
## 3.0.0-beta.44
## 3.0.0-beta.43
## 3.0.0-beta.42
## 3.0.0-beta.41
## 3.0.0-beta.40
## 3.0.0-beta.39
## 3.0.0-beta.38
## 3.0.0-beta.37
### Patch Changes
- 68d32429b: Capture and display stderr on index failures
- 68d32429b: - Fix uncaught provider exception
- Remove unused provider messages
- 35dbaedf6: - Fix init command SDK pinning
- Show --api-url / -a flag where needed
- CLI now also respects `TRIGGER_TELEMETRY_DISABLED`
- Dedicated docker checkpoint test function
## 3.0.0-beta.36
## 3.0.0-beta.35
## 3.0.0-beta.34
## 3.0.0-beta.33
## 3.0.0-beta.32
## 3.0.0-beta.31
## 3.0.0-beta.30
## 3.0.0-beta.29
## 3.0.0-beta.28
## 3.0.0-beta.27
## 3.0.0-beta.26
## 3.0.0-beta.25
## 3.0.0-beta.24
## 3.0.0-beta.23
## 3.0.0-beta.22
## 3.0.0-beta.21
## 3.0.0-beta.20
## 3.0.0-beta.19
## 3.0.0-beta.18
### Patch Changes
- b68012f81: Extracting out all the non-SDK related features from the main @trigger.dev/core/v3 export
## 3.0.0-beta.17
## 3.0.0-beta.16
## 3.0.0-beta.15
## 3.0.0-beta.14
## 3.0.0-beta.13
## 3.0.0-beta.12
## 3.0.0-beta.11
## 3.0.0-beta.7
## 3.0.0-beta.6
### Patch Changes
- 7ea8532cc: Display errors for runs and deployments
## 3.0.0-beta.5
## 3.0.0-beta.4
## 3.0.0-beta.3
## 3.0.0-beta.2
## 3.0.0-beta.1
### Patch Changes
- b66d5525e: add machine config and secure zod connection
## 3.0.0-beta.0
-39
View File
@@ -1,39 +0,0 @@
{
"name": "@trigger.dev/core-apps",
"description": "Backend core code used across apps",
"version": "3.0.0-beta.55",
"private": true,
"license": "MIT",
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
"module": "./dist/index.mjs",
"files": [
"dist"
],
"exports": {
".": {
"import": {
"types": "./dist/index.d.mts",
"default": "./dist/index.mjs"
},
"require": "./dist/index.js",
"types": "./dist/index.d.ts"
},
"./package.json": "./package.json"
},
"scripts": {
"typecheck": "tsc --noEmit"
},
"devDependencies": {
"@trigger.dev/core": "workspace:*",
"@trigger.dev/tsconfig": "workspace:*",
"@types/node": "18",
"typescript": "^5.3.0"
},
"engines": {
"node": ">=18.0.0"
},
"dependencies": {
"execa": "^8.0.1"
}
}
-18
View File
@@ -1,18 +0,0 @@
{
"extends": "@trigger.dev/tsconfig/node18.json",
"include": ["src/globals.d.ts", "./src/**/*.ts", "tsup.config.ts", "./test/**/*.ts"],
"compilerOptions": {
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"declaration": false,
"declarationMap": false,
"lib": ["DOM", "DOM.Iterable"],
"paths": {
"@trigger.dev/core/v3": ["../core/src/v3"],
"@trigger.dev/core/v3/*": ["../core/src/v3/*"],
"@trigger.dev/tsup/*": ["../../config-packages/tsup/src/*"],
"@trigger.dev/tsup": ["../../config-packages/tsup/src/index"]
}
},
"exclude": ["node_modules"]
}
+15 -3
View File
@@ -28,6 +28,7 @@
"./types": "./src/types.ts",
"./versions": "./src/versions.ts",
"./v3": "./src/v3/index.ts",
"./v3/apps": "./src/v3/apps/index.ts",
"./v3/errors": "./src/v3/errors.ts",
"./v3/logger-api": "./src/v3/logger-api.ts",
"./v3/otel": "./src/v3/otel/index.ts",
@@ -80,7 +81,8 @@
"superjson": "^2.2.1",
"zod": "3.22.3",
"zod-error": "1.5.0",
"zod-validation-error": "^1.5.0"
"zod-validation-error": "^1.5.0",
"execa": "^8.0.1"
},
"devDependencies": {
"@types/humanize-duration": "^3.27.1",
@@ -89,7 +91,6 @@
"vitest": "^1.6.0",
"rimraf": "^3.0.2",
"socket.io": "4.7.4",
"ts-jest": "^29.1.1",
"tshy": "^3.0.2",
"typescript": "^5.5.4"
},
@@ -230,6 +231,17 @@
"default": "./dist/commonjs/v3/index.js"
}
},
"./v3/apps": {
"import": {
"triggerdotdev-source": "./src/v3/apps/index.ts",
"types": "./dist/esm/v3/apps/index.d.ts",
"default": "./dist/esm/v3/apps/index.js"
},
"require": {
"types": "./dist/commonjs/v3/apps/index.d.ts",
"default": "./dist/commonjs/v3/apps/index.js"
}
},
"./v3/errors": {
"import": {
"triggerdotdev-source": "./src/v3/errors.ts",
@@ -452,4 +464,4 @@
}
},
"type": "module"
}
}
@@ -1,9 +1,5 @@
import { randomUUID } from "crypto";
import { $, type ExecaChildProcess } from "execa";
export function isExecaChildProcess(maybeExeca: unknown): maybeExeca is Awaited<ExecaChildProcess> {
return typeof maybeExeca === "object" && maybeExeca !== null && "escapedCommand" in maybeExeca;
}
import { randomUUID } from "node:crypto";
import { isExecaChildProcess } from "./isExecaChildProcess.js";
export type CheckpointTestResult =
| {
@@ -16,6 +12,8 @@ export type CheckpointTestResult =
};
export async function testDockerCheckpoint(): Promise<CheckpointTestResult> {
const { $ } = await import("execa");
try {
// Create a dummy container
const container =
@@ -1,4 +1,4 @@
import { IncomingMessage, RequestListener } from "http";
import { IncomingMessage, RequestListener } from "node:http";
export const getTextBody = (req: IncomingMessage) =>
new Promise<string>((resolve) => {
+7
View File
@@ -0,0 +1,7 @@
export * from "./backoff.js";
export * from "./logger.js";
export * from "./process.js";
export * from "./checkpoints.js";
export * from "./http.js";
export * from "./provider.js";
export * from "./isExecaChildProcess.js";
@@ -0,0 +1,6 @@
// @ts-ignore
import type { ExecaChildProcess } from "execa";
export function isExecaChildProcess(maybeExeca: unknown): maybeExeca is Awaited<ExecaChildProcess> {
return typeof maybeExeca === "object" && maybeExeca !== null && "escapedCommand" in maybeExeca;
}
@@ -1,20 +1,20 @@
import { createServer } from "node:http";
import {
ClientToSharedQueueMessages,
clientWebsocketMessages,
EnvironmentType,
MachinePreset,
PlatformToProviderMessages,
ProviderToPlatformMessages,
SharedQueueToClientMessages,
} from "@trigger.dev/core/v3";
import { ZodMessageSender } from "@trigger.dev/core/v3/zodMessageHandler";
import { ZodSocketConnection } from "@trigger.dev/core/v3/zodSocket";
import { getRandomPortNumber, HttpReply, getTextBody } from "./http";
import { SimpleLogger } from "./logger";
import { isExecaChildProcess } from "./checkpoints";
import { getRandomPortNumber, HttpReply, getTextBody } from "./http.js";
import { SimpleLogger } from "./logger.js";
import { isExecaChildProcess } from "./isExecaChildProcess.js";
import { setTimeout } from "node:timers/promises";
import { EXIT_CODE_ALREADY_HANDLED } from "./process";
import { EXIT_CODE_ALREADY_HANDLED } from "./process.js";
import { EnvironmentType } from "../schemas/schemas.js";
import { MachinePreset } from "../schemas/common.js";
import {
ProviderToPlatformMessages,
PlatformToProviderMessages,
ClientToSharedQueueMessages,
SharedQueueToClientMessages,
clientWebsocketMessages,
} from "../schemas/messages.js";
import { ZodMessageSender } from "../zodMessageHandler.js";
import { ZodSocketConnection } from "../zodSocket.js";
const HTTP_SERVER_PORT = Number(process.env.HTTP_SERVER_PORT || getRandomPortNumber());
const MACHINE_NAME = process.env.MACHINE_NAME || "local";
@@ -358,6 +358,7 @@ export class ProviderShell implements Provider {
} catch (error) {
logger.error("HTTP server error", { error });
reply.empty(500);
return;
}
});
+11 -350
View File
@@ -80,9 +80,6 @@ importers:
'@trigger.dev/core':
specifier: workspace:*
version: link:../../packages/core
'@trigger.dev/core-apps':
specifier: workspace:*
version: link:../../packages/core-apps
execa:
specifier: ^8.0.1
version: 8.0.1
@@ -117,9 +114,6 @@ importers:
'@trigger.dev/core':
specifier: workspace:*
version: link:../../packages/core
'@trigger.dev/core-apps':
specifier: workspace:*
version: link:../../packages/core-apps
execa:
specifier: ^8.0.1
version: 8.0.1
@@ -148,9 +142,6 @@ importers:
'@trigger.dev/core':
specifier: workspace:*
version: link:../../packages/core
'@trigger.dev/core-apps':
specifier: workspace:*
version: link:../../packages/core-apps
p-queue:
specifier: ^8.0.1
version: 8.0.1
@@ -1024,12 +1015,6 @@ importers:
specifier: ^1.5.0
version: 1.5.0(zod@3.22.3)
devDependencies:
'@trigger.dev/core-apps':
specifier: workspace:*
version: link:../core-apps
'@trigger.dev/tsconfig':
specifier: workspace:*
version: link:../../config-packages/tsconfig
'@types/gradient-string':
specifier: ^1.1.2
version: 1.1.2
@@ -1037,8 +1022,8 @@ importers:
specifier: ^4.13.1
version: 4.13.1
'@types/node':
specifier: '18'
version: 18.17.1
specifier: 20.14.14
version: 20.14.14
'@types/object-hash':
specifier: ^3.0.6
version: 3.0.6
@@ -1069,15 +1054,15 @@ importers:
rimraf:
specifier: ^5.0.7
version: 5.0.7
tsup:
specifier: ^8.0.1
version: 8.0.1(patch_hash=a5ztaafw5l4qfghy2hjjuynb34)(postcss@8.4.38)(typescript@5.4.5)
tshy:
specifier: ^3.0.2
version: 3.0.2
type-fest:
specifier: ^3.6.0
version: 3.13.0
vitest:
specifier: ^1.6.0
version: 1.6.0(@types/node@18.17.1)
version: 1.6.0(@types/node@20.14.14)
xdg-app-paths:
specifier: ^8.3.0
version: 8.3.0
@@ -1120,6 +1105,9 @@ importers:
'@opentelemetry/semantic-conventions':
specifier: 1.25.1
version: 1.25.1
execa:
specifier: ^8.0.1
version: 8.0.1
humanize-duration:
specifier: ^3.27.3
version: 3.27.3
@@ -1154,9 +1142,6 @@ importers:
socket.io:
specifier: 4.7.4
version: 4.7.4
ts-jest:
specifier: ^29.1.1
version: 29.1.1(@babel/core@7.22.17)(jest@29.6.2)(typescript@5.5.4)
tshy:
specifier: ^3.0.2
version: 3.0.2
@@ -1167,25 +1152,6 @@ importers:
specifier: ^1.6.0
version: 1.6.0(@types/node@20.14.14)
packages/core-apps:
dependencies:
execa:
specifier: ^8.0.1
version: 8.0.1
devDependencies:
'@trigger.dev/core':
specifier: workspace:*
version: link:../core
'@trigger.dev/tsconfig':
specifier: workspace:*
version: link:../../config-packages/tsconfig
'@types/node':
specifier: '18'
version: 18.17.1
typescript:
specifier: ^5.3.0
version: 5.3.3
packages/database:
dependencies:
'@prisma/client':
@@ -1236,30 +1202,6 @@ importers:
specifier: ^4.9.4
version: 4.9.5
packages/hono:
devDependencies:
'@trigger.dev/sdk':
specifier: workspace:*
version: link:../trigger-sdk
'@trigger.dev/tsconfig':
specifier: workspace:*
version: link:../../config-packages/tsconfig
'@trigger.dev/tsup':
specifier: workspace:*
version: link:../../config-packages/tsup
hono:
specifier: 3.10.3
version: 3.10.3
rimraf:
specifier: ^3.0.2
version: 3.0.2
tsup:
specifier: ^8.0.1
version: 8.0.1(patch_hash=a5ztaafw5l4qfghy2hjjuynb34)(postcss@8.4.38)(typescript@5.3.2)
typescript:
specifier: ^5.3.0
version: 5.3.2
packages/otlp-importer:
dependencies:
long:
@@ -18555,11 +18497,6 @@ packages:
resolution: {integrity: sha512-Rgx+gy0tb2tH4hNzxYi/VK5pL/msaAtaQBIy8XsPHLujdSgo5OPWO6vOdjjB7ufM1l/CI2RLmlQ+L2QZOuHBjw==}
dev: false
/hono@3.10.3:
resolution: {integrity: sha512-44YzAp+rydwGWqW+VRivuOWpGWug8zCSy1Gd6gBLAlclIVlPjZAYXfSNqlhSIvd6ZyseM4aP9SDDNmwXceIy+A==}
engines: {node: '>=16.0.0'}
dev: true
/hosted-git-info@2.8.9:
resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
@@ -19574,35 +19511,6 @@ packages:
- ts-node
dev: true
/jest-cli@29.6.2(@types/node@20.14.14):
resolution: {integrity: sha512-TT6O247v6dCEX2UGHGyflMpxhnrL0DNqP2fRTKYm3nJJpCTfXX3GCMQPGFjXDoj0i5/Blp3jriKXFgdfmbYB6Q==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
hasBin: true
peerDependencies:
node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
peerDependenciesMeta:
node-notifier:
optional: true
dependencies:
'@jest/core': 29.6.2
'@jest/test-result': 29.6.2
'@jest/types': 29.6.1
chalk: 4.1.2
exit: 0.1.2
graceful-fs: 4.2.10
import-local: 3.1.0
jest-config: 29.6.2(@types/node@20.14.14)
jest-util: 29.6.2
jest-validate: 29.6.2
prompts: 2.4.2
yargs: 17.7.2
transitivePeerDependencies:
- '@types/node'
- babel-plugin-macros
- supports-color
- ts-node
dev: true
/jest-config@29.6.2(@types/node@18.17.1):
resolution: {integrity: sha512-VxwFOC8gkiJbuodG9CPtMRjBUNZEHxwfQXmIudSTzFWxaci3Qub1ddTRbFNQlD/zUeaifLndh/eDccFX4wCMQw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -19683,46 +19591,6 @@ packages:
- supports-color
dev: true
/jest-config@29.6.2(@types/node@20.14.14):
resolution: {integrity: sha512-VxwFOC8gkiJbuodG9CPtMRjBUNZEHxwfQXmIudSTzFWxaci3Qub1ddTRbFNQlD/zUeaifLndh/eDccFX4wCMQw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
peerDependencies:
'@types/node': '*'
ts-node: '>=9.0.0'
peerDependenciesMeta:
'@types/node':
optional: true
ts-node:
optional: true
dependencies:
'@babel/core': 7.22.17
'@jest/test-sequencer': 29.6.2
'@jest/types': 29.6.1
'@types/node': 20.14.14
babel-jest: 29.6.2(@babel/core@7.22.17)
chalk: 4.1.2
ci-info: 3.8.0
deepmerge: 4.3.1
glob: 7.2.3
graceful-fs: 4.2.10
jest-circus: 29.6.2
jest-environment-node: 29.6.2
jest-get-type: 29.4.3
jest-regex-util: 29.4.3
jest-resolve: 29.6.2
jest-runner: 29.6.2
jest-util: 29.6.2
jest-validate: 29.6.2
micromatch: 4.0.5
parse-json: 5.2.0
pretty-format: 29.7.0
slash: 3.0.0
strip-json-comments: 3.1.1
transitivePeerDependencies:
- babel-plugin-macros
- supports-color
dev: true
/jest-diff@29.6.2:
resolution: {integrity: sha512-t+ST7CB9GX5F2xKwhwCf0TAR17uNDiaPTZnVymP9lw0lssa9vG+AFyDZoeIHStU3WowFFwT+ky+er0WVl2yGhA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -20035,27 +19903,6 @@ packages:
- ts-node
dev: true
/jest@29.6.2(@types/node@20.14.14):
resolution: {integrity: sha512-8eQg2mqFbaP7CwfsTpCxQ+sHzw1WuNWL5UUvjnWP4hx2riGz9fPSzYOaU5q8/GqWn1TfgZIVTqYJygbGbWAANg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
hasBin: true
peerDependencies:
node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
peerDependenciesMeta:
node-notifier:
optional: true
dependencies:
'@jest/core': 29.6.2
'@jest/types': 29.6.1
import-local: 3.1.0
jest-cli: 29.6.2(@types/node@20.14.14)
transitivePeerDependencies:
- '@types/node'
- babel-plugin-macros
- supports-color
- ts-node
dev: true
/jiti@1.21.0:
resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==}
hasBin: true
@@ -26307,40 +26154,6 @@ packages:
yargs-parser: 21.1.1
dev: true
/ts-jest@29.1.1(@babel/core@7.22.17)(jest@29.6.2)(typescript@5.5.4):
resolution: {integrity: sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
hasBin: true
peerDependencies:
'@babel/core': '>=7.0.0-beta.0 <8'
'@jest/types': ^29.0.0
babel-jest: ^29.0.0
esbuild: '*'
jest: ^29.0.0
typescript: '>=4.3 <6'
peerDependenciesMeta:
'@babel/core':
optional: true
'@jest/types':
optional: true
babel-jest:
optional: true
esbuild:
optional: true
dependencies:
'@babel/core': 7.22.17
bs-logger: 0.2.6
fast-json-stable-stringify: 2.1.0
jest: 29.6.2(@types/node@20.14.14)
jest-util: 29.6.2
json5: 2.2.3
lodash.memoize: 4.1.2
make-error: 1.3.6
semver: 7.5.4
typescript: 5.5.4
yargs-parser: 21.1.1
dev: true
/ts-node@10.9.1(@swc/core@1.3.26)(@types/node@18.11.18)(typescript@5.2.2):
resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}
hasBin: true
@@ -26578,47 +26391,7 @@ packages:
transitivePeerDependencies:
- supports-color
- ts-node
patched: true
/tsup@8.0.1(patch_hash=a5ztaafw5l4qfghy2hjjuynb34)(postcss@8.4.38)(typescript@5.4.5):
resolution: {integrity: sha512-hvW7gUSG96j53ZTSlT4j/KL0q1Q2l6TqGBFc6/mu/L46IoNWqLLUzLRLP1R8Q7xrJTmkDxxDoojV5uCVs1sVOg==}
engines: {node: '>=18'}
hasBin: true
peerDependencies:
'@microsoft/api-extractor': ^7.36.0
'@swc/core': ^1
postcss: ^8.4.12
typescript: '>=4.5.0'
peerDependenciesMeta:
'@microsoft/api-extractor':
optional: true
'@swc/core':
optional: true
postcss:
optional: true
typescript:
optional: true
dependencies:
bundle-require: 4.0.1(esbuild@0.19.11)
cac: 6.7.14
chokidar: 3.5.3
debug: 4.3.4
esbuild: 0.19.11
execa: 5.1.1
globby: 11.1.0
joycon: 3.1.1
postcss: 8.4.38
postcss-load-config: 4.0.1(postcss@8.4.38)(ts-node@10.9.2)
resolve-from: 5.0.0
rollup: 4.13.2
source-map: 0.8.0-beta.0
sucrase: 3.32.0
tree-kill: 1.2.2
typescript: 5.4.5
transitivePeerDependencies:
- supports-color
- ts-node
dev: true
dev: false
patched: true
/tsutils@3.21.0(typescript@5.2.2):
@@ -26980,6 +26753,7 @@ packages:
resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==}
engines: {node: '>=14.17'}
hasBin: true
dev: false
/typescript@5.5.4:
resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==}
@@ -27528,27 +27302,6 @@ packages:
- terser
dev: true
/vite-node@1.6.0(@types/node@18.17.1):
resolution: {integrity: sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
dependencies:
cac: 6.7.14
debug: 4.3.4
pathe: 1.1.1
picocolors: 1.0.0
vite: 5.2.7(@types/node@18.17.1)
transitivePeerDependencies:
- '@types/node'
- less
- lightningcss
- sass
- stylus
- sugarss
- supports-color
- terser
dev: true
/vite-node@1.6.0(@types/node@20.14.14):
resolution: {integrity: sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==}
engines: {node: ^18.0.0 || >=20.0.0}
@@ -27757,42 +27510,6 @@ packages:
fsevents: 2.3.3
dev: true
/vite@5.2.7(@types/node@18.17.1):
resolution: {integrity: sha512-k14PWOKLI6pMaSzAuGtT+Cf0YmIx12z9YGon39onaJNy8DLBfBJrzg9FQEmkAM5lpHBZs9wksWAsyF/HkpEwJA==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
peerDependencies:
'@types/node': ^18.0.0 || >=20.0.0
less: '*'
lightningcss: ^1.21.0
sass: '*'
stylus: '*'
sugarss: '*'
terser: ^5.4.0
peerDependenciesMeta:
'@types/node':
optional: true
less:
optional: true
lightningcss:
optional: true
sass:
optional: true
stylus:
optional: true
sugarss:
optional: true
terser:
optional: true
dependencies:
'@types/node': 18.17.1
esbuild: 0.20.2
postcss: 8.4.38
rollup: 4.13.2
optionalDependencies:
fsevents: 2.3.3
dev: true
/vite@5.2.7(@types/node@20.14.14):
resolution: {integrity: sha512-k14PWOKLI6pMaSzAuGtT+Cf0YmIx12z9YGon39onaJNy8DLBfBJrzg9FQEmkAM5lpHBZs9wksWAsyF/HkpEwJA==}
engines: {node: ^18.0.0 || >=20.0.0}
@@ -27941,62 +27658,6 @@ packages:
- terser
dev: true
/vitest@1.6.0(@types/node@18.17.1):
resolution: {integrity: sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
peerDependencies:
'@edge-runtime/vm': '*'
'@types/node': ^18.0.0 || >=20.0.0
'@vitest/browser': 1.6.0
'@vitest/ui': 1.6.0
happy-dom: '*'
jsdom: '*'
peerDependenciesMeta:
'@edge-runtime/vm':
optional: true
'@types/node':
optional: true
'@vitest/browser':
optional: true
'@vitest/ui':
optional: true
happy-dom:
optional: true
jsdom:
optional: true
dependencies:
'@types/node': 18.17.1
'@vitest/expect': 1.6.0
'@vitest/runner': 1.6.0
'@vitest/snapshot': 1.6.0
'@vitest/spy': 1.6.0
'@vitest/utils': 1.6.0
acorn-walk: 8.3.2
chai: 4.4.1
debug: 4.3.4
execa: 8.0.1
local-pkg: 0.5.0
magic-string: 0.30.8
pathe: 1.1.1
picocolors: 1.0.0
std-env: 3.7.0
strip-literal: 2.1.0
tinybench: 2.6.0
tinypool: 0.8.3
vite: 5.2.7(@types/node@18.17.1)
vite-node: 1.6.0(@types/node@18.17.1)
why-is-node-running: 2.2.2
transitivePeerDependencies:
- less
- lightningcss
- sass
- stylus
- sugarss
- supports-color
- terser
dev: true
/vitest@1.6.0(@types/node@20.14.14):
resolution: {integrity: sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==}
engines: {node: ^18.0.0 || >=20.0.0}