Files
triggerdotdev--trigger.dev/packages/build/package.json
T
Eric Allam 12d2125148 fix(sdk,core,build): SDK hardening pass (#3670)
## Summary

Five hardening fixes across `@trigger.dev/sdk`, `@trigger.dev/core`, and
`@trigger.dev/build`.

- `tasks.triggerAndSubscribe` now forwards caller `requestOptions`
(custom API keys, per-request overrides) to the underlying
`apiClient.triggerTask` call instead of silently dropping them.
- `SSEStreamSubscription` no longer retries permanent client errors
forever. The default `nonRetryableStatuses` widens from `[404, 410]` to
`[400, 404, 409, 410, 422]`, so a malformed session-stream request fails
fast instead of busy-looping under bounded backoff.
- Session writer falls back to manually wiring the caller's
`AbortSignal` on Node 18, where `AbortSignal.any` is unavailable.
Caller-driven cancellation now propagates on every supported runtime.
- `TriggerChatTransport` throws immediately when a `chat.handover`
response is missing `X-Trigger-Chat-Access-Token`, instead of silently
downgrading every subsequent turn back to the handover path. `dispose()`
aborts every active `session.out` subscription before tearing the
coordinator down, so unmount/navigation no longer leaves SSE readers in
flight.
- Removed the experimental `@trigger.dev/build/extensions/secureExec`
build extension. It will return alongside the sandbox feature it was
built to support.

## Test plan

- [ ] `pnpm run build --filter @trigger.dev/sdk --filter
@trigger.dev/core --filter @trigger.dev/build`
- [ ] `pnpm --filter @trigger.dev/sdk test --run` (183 tests, including
chat / chat-server / sessions / handover)
- [ ] `pnpm --filter @trigger.dev/core test --run`
- [ ] Manually trigger a `chat.handover` whose response strips
`X-Trigger-Chat-Access-Token`, and confirm the transport throws
synchronously rather than degrading.
- [ ] Unmount a chat UI mid-stream and confirm the active `session.out`
SSE connection closes immediately.
2026-05-19 16:10:32 +01:00

216 lines
6.5 KiB
JSON

{
"name": "@trigger.dev/build",
"version": "4.4.6",
"description": "trigger.dev build extensions",
"license": "MIT",
"publishConfig": {
"access": "public"
},
"repository": {
"type": "git",
"url": "https://github.com/triggerdotdev/trigger.dev",
"directory": "packages/build"
},
"type": "module",
"files": [
"dist"
],
"tshy": {
"selfLink": false,
"main": true,
"module": true,
"project": "./tsconfig.src.json",
"exports": {
"./package.json": "./package.json",
".": "./src/index.ts",
"./internal": "./src/internal.ts",
"./extensions": "./src/extensions/index.ts",
"./extensions/core": "./src/extensions/core.ts",
"./extensions/prisma": "./src/extensions/prisma.ts",
"./extensions/audioWaveform": "./src/extensions/audioWaveform.ts",
"./extensions/typescript": "./src/extensions/typescript.ts",
"./extensions/puppeteer": "./src/extensions/puppeteer.ts",
"./extensions/playwright": "./src/extensions/playwright.ts",
"./extensions/lightpanda": "./src/extensions/lightpanda.ts"
},
"sourceDialects": [
"@triggerdotdev/source"
]
},
"typesVersions": {
"*": {
"internal": [
"dist/commonjs/internal.d.ts"
],
"extensions": [
"dist/commonjs/extensions/index.d.ts"
],
"extensions/core": [
"dist/commonjs/extensions/core.d.ts"
],
"extensions/prisma": [
"dist/commonjs/extensions/prisma.d.ts"
],
"extensions/audioWaveform": [
"dist/commonjs/extensions/audioWaveform.d.ts"
],
"extensions/typescript": [
"dist/commonjs/extensions/typescript.d.ts"
],
"extensions/puppeteer": [
"dist/commonjs/extensions/puppeteer.d.ts"
],
"extensions/playwright": [
"dist/commonjs/extensions/playwright.d.ts"
],
"extensions/lightpanda": [
"dist/commonjs/extensions/lightpanda.d.ts"
]
}
},
"scripts": {
"clean": "rimraf dist .tshy .tshy-build .turbo",
"build": "tshy && pnpm run update-version",
"dev": "tshy --watch",
"typecheck": "tsc --noEmit -p tsconfig.src.json",
"update-version": "tsx ../../scripts/updateVersion.ts",
"check-exports": "attw --pack ."
},
"dependencies": {
"@prisma/config": "^6.10.0",
"@trigger.dev/core": "workspace:4.4.6",
"mlly": "^1.7.1",
"pkg-types": "^1.1.3",
"resolve": "^1.22.8",
"tinyglobby": "^0.2.2",
"tsconfck": "3.1.3"
},
"devDependencies": {
"@arethetypeswrong/cli": "^0.15.4",
"@types/resolve": "^1.20.6",
"esbuild": "^0.23.0",
"rimraf": "6.0.1",
"tshy": "^3.0.2",
"tsx": "4.17.0"
},
"engines": {
"node": ">=18.20.0"
},
"exports": {
"./package.json": "./package.json",
".": {
"import": {
"@triggerdotdev/source": "./src/index.ts",
"types": "./dist/esm/index.d.ts",
"default": "./dist/esm/index.js"
},
"require": {
"types": "./dist/commonjs/index.d.ts",
"default": "./dist/commonjs/index.js"
}
},
"./internal": {
"import": {
"@triggerdotdev/source": "./src/internal.ts",
"types": "./dist/esm/internal.d.ts",
"default": "./dist/esm/internal.js"
},
"require": {
"types": "./dist/commonjs/internal.d.ts",
"default": "./dist/commonjs/internal.js"
}
},
"./extensions": {
"import": {
"@triggerdotdev/source": "./src/extensions/index.ts",
"types": "./dist/esm/extensions/index.d.ts",
"default": "./dist/esm/extensions/index.js"
},
"require": {
"types": "./dist/commonjs/extensions/index.d.ts",
"default": "./dist/commonjs/extensions/index.js"
}
},
"./extensions/core": {
"import": {
"@triggerdotdev/source": "./src/extensions/core.ts",
"types": "./dist/esm/extensions/core.d.ts",
"default": "./dist/esm/extensions/core.js"
},
"require": {
"types": "./dist/commonjs/extensions/core.d.ts",
"default": "./dist/commonjs/extensions/core.js"
}
},
"./extensions/prisma": {
"import": {
"@triggerdotdev/source": "./src/extensions/prisma.ts",
"types": "./dist/esm/extensions/prisma.d.ts",
"default": "./dist/esm/extensions/prisma.js"
},
"require": {
"types": "./dist/commonjs/extensions/prisma.d.ts",
"default": "./dist/commonjs/extensions/prisma.js"
}
},
"./extensions/audioWaveform": {
"import": {
"@triggerdotdev/source": "./src/extensions/audioWaveform.ts",
"types": "./dist/esm/extensions/audioWaveform.d.ts",
"default": "./dist/esm/extensions/audioWaveform.js"
},
"require": {
"types": "./dist/commonjs/extensions/audioWaveform.d.ts",
"default": "./dist/commonjs/extensions/audioWaveform.js"
}
},
"./extensions/typescript": {
"import": {
"@triggerdotdev/source": "./src/extensions/typescript.ts",
"types": "./dist/esm/extensions/typescript.d.ts",
"default": "./dist/esm/extensions/typescript.js"
},
"require": {
"types": "./dist/commonjs/extensions/typescript.d.ts",
"default": "./dist/commonjs/extensions/typescript.js"
}
},
"./extensions/puppeteer": {
"import": {
"@triggerdotdev/source": "./src/extensions/puppeteer.ts",
"types": "./dist/esm/extensions/puppeteer.d.ts",
"default": "./dist/esm/extensions/puppeteer.js"
},
"require": {
"types": "./dist/commonjs/extensions/puppeteer.d.ts",
"default": "./dist/commonjs/extensions/puppeteer.js"
}
},
"./extensions/playwright": {
"import": {
"@triggerdotdev/source": "./src/extensions/playwright.ts",
"types": "./dist/esm/extensions/playwright.d.ts",
"default": "./dist/esm/extensions/playwright.js"
},
"require": {
"types": "./dist/commonjs/extensions/playwright.d.ts",
"default": "./dist/commonjs/extensions/playwright.js"
}
},
"./extensions/lightpanda": {
"import": {
"@triggerdotdev/source": "./src/extensions/lightpanda.ts",
"types": "./dist/esm/extensions/lightpanda.d.ts",
"default": "./dist/esm/extensions/lightpanda.js"
},
"require": {
"types": "./dist/commonjs/extensions/lightpanda.d.ts",
"default": "./dist/commonjs/extensions/lightpanda.js"
}
}
},
"main": "./dist/commonjs/index.js",
"types": "./dist/commonjs/index.d.ts",
"module": "./dist/esm/index.js"
}