inngest
Version:
Official SDK for Inngest.com. Inngest is the reliability layer for modern applications. Inngest combines durable execution, events, and queues into a zero-infra platform with built-in observability.
887 lines (526 loc) • 130 kB
Markdown
# inngest
## 4.1.0
### Minor Changes
- [#1342](https://github.com/inngest/inngest-js/pull/1342) [`627c0720`](https://github.com/inngest/inngest-js/commit/627c072088a19a6fa4834d219b192066cffa2f60) Thanks [@jacobheric](https://github.com/jacobheric)! - Adds first class, internal realtime support with improved DX for publishing and subscribing to typed channels and topics. See: https://www.inngest.com/docs/features/realtime
## 4.0.5
### Patch Changes
- [#1400](https://github.com/inngest/inngest-js/pull/1400) [`a545f98e`](https://github.com/inngest/inngest-js/commit/a545f98e42204646627188e1744826ce58693de2) Thanks [@amh4r](https://github.com/amh4r)! - Fix triggers applying to onFailure handler
## 4.0.4
### Patch Changes
- [#1397](https://github.com/inngest/inngest-js/pull/1397) [`103a7212`](https://github.com/inngest/inngest-js/commit/103a721217ff38c7e149304b49ded17ed372347c) Thanks [@amh4r](https://github.com/amh4r)! - Fix eventType can't be combined with if expression
## 4.0.3
### Patch Changes
- [#1395](https://github.com/inngest/inngest-js/pull/1395) [`c4861ff8`](https://github.com/inngest/inngest-js/commit/c4861ff866c3236ef0d4a1bb3aa7add7eeb71dd3) Thanks [@amh4r](https://github.com/amh4r)! - Error when function config is v3-style
- [#1389](https://github.com/inngest/inngest-js/pull/1389) [`905d4b24`](https://github.com/inngest/inngest-js/commit/905d4b245c0512a4ac5d825ef1b2898f9cc3587d) Thanks [@amh4r](https://github.com/amh4r)! - Ensure we track retries when creating a new run
- [#1396](https://github.com/inngest/inngest-js/pull/1396) [`9baa304f`](https://github.com/inngest/inngest-js/commit/9baa304f9cb3b776fabd9732d9f08207c9686d41) Thanks [@amh4r](https://github.com/amh4r)! - Fix onRunError hook's isFinalAttempt not true on final attempt
## 4.0.2
### Patch Changes
- [#1387](https://github.com/inngest/inngest-js/pull/1387) [`983f527b`](https://github.com/inngest/inngest-js/commit/983f527bdc202845752d060d9429868ff80d8bb6) Thanks [@amh4r](https://github.com/amh4r)! - Fix checkpointing maxRuntime causing function run hang
- [#1387](https://github.com/inngest/inngest-js/pull/1387) [`983f527b`](https://github.com/inngest/inngest-js/commit/983f527bdc202845752d060d9429868ff80d8bb6) Thanks [@amh4r](https://github.com/amh4r)! - Fallback to async flow on checkpoint error
## 4.0.1
### Patch Changes
- [#1384](https://github.com/inngest/inngest-js/pull/1384) [`02759eb6`](https://github.com/inngest/inngest-js/commit/02759eb62da03407c116ed39ad2debc94a7d210b) Thanks [@Linell](https://github.com/Linell)! - fix: wrap AssertNoTransform to prevent union distribution
## 4.0.0
### Major Changes
- [#1346](https://github.com/inngest/inngest-js/pull/1346) [`e8024132`](https://github.com/inngest/inngest-js/commit/e80241321f1735dfe512dacacbfc5791c9f5da53) Thanks [@amh4r](https://github.com/amh4r)! - See list of changes in the migration guide: https://www.inngest.com/docs/reference/typescript/v4/migrations/v3-to-v4
## 3.52.7
### Patch Changes
- [#1359](https://github.com/inngest/inngest-js/pull/1359) [`b4d9833f`](https://github.com/inngest/inngest-js/commit/b4d9833fe632f542aad10c6faf5da3fd6a6fc9b7) Thanks [@Linell](https://github.com/Linell)! - fix: use deterministic IDs for correct checkpointed parenting
- [#1370](https://github.com/inngest/inngest-js/pull/1370) [`037336dc`](https://github.com/inngest/inngest-js/commit/037336dce8731aa9fcf5d56ff3e2d8a48e5aee6f) Thanks [@amh4r](https://github.com/amh4r)! - Fix mishandling drain message (Connect only)
## 3.52.6
### Patch Changes
- [#1350](https://github.com/inngest/inngest-js/pull/1350) [`470fdb98`](https://github.com/inngest/inngest-js/commit/470fdb9845514b6597e0bd7c6db469d3808f6dcf) Thanks [@amh4r](https://github.com/amh4r)! - Fix false NESTING_STEPS error
- [#1356](https://github.com/inngest/inngest-js/pull/1356) [`2e961c21`](https://github.com/inngest/inngest-js/commit/2e961c2169a451d60c3a14e8b9cc19e19ad0dec6) Thanks [@amh4r](https://github.com/amh4r)! - Fix checkpointing maxRuntime causing function run hang
## 3.52.5
### Patch Changes
- [#1340](https://github.com/inngest/inngest-js/pull/1340) [`335703d7`](https://github.com/inngest/inngest-js/commit/335703d7372d092a865def4b2cfb4730e50d5fa9) Thanks [@Linell](https://github.com/Linell)! - fix: fallback to async flow on checkpoint error
## 3.52.4
### Patch Changes
- [#1338](https://github.com/inngest/inngest-js/pull/1338) [`4f45adb7`](https://github.com/inngest/inngest-js/commit/4f45adb71fc7dfbc1ed7f941ddc4dd5e42f3523b) Thanks [@jakobevangelista](https://github.com/jakobevangelista)! - Fix signing key propagation from serve() options to InngestApi for outgoing API calls
## 3.52.3
### Patch Changes
- [#1329](https://github.com/inngest/inngest-js/pull/1329) [`d079c0be`](https://github.com/inngest/inngest-js/commit/d079c0be84ab43995d84ee8681dda6462d281b58) Thanks [@Linell](https://github.com/Linell)! - fix: flush checkpoint buffer
## 3.52.2
### Patch Changes
- [#1318](https://github.com/inngest/inngest-js/pull/1318) [`d81d29bc`](https://github.com/inngest/inngest-js/commit/d81d29bcc7c4584889e20972e258bc2c4fad90e2) Thanks [@amh4r](https://github.com/amh4r)! - Fix undefined step in transformOutput middleware
## 3.52.1
### Patch Changes
- [#1258](https://github.com/inngest/inngest-js/pull/1258) [`e17a148f`](https://github.com/inngest/inngest-js/commit/e17a148f90a7d68d93ebc7c924d3b6a910ceafd7) Thanks [@amh4r](https://github.com/amh4r)! - Connect: add worker thread support
- [#1313](https://github.com/inngest/inngest-js/pull/1313) [`bbdab785`](https://github.com/inngest/inngest-js/commit/bbdab785ecab84e3284d524511d4fc925f3b199c) Thanks [@tonyhb](https://github.com/tonyhb)! - Add step names and IDs to step not found error
- [#1306](https://github.com/inngest/inngest-js/pull/1306) [`b74bd1b9`](https://github.com/inngest/inngest-js/commit/b74bd1b939c0e6444fbb4d7ac798f3cb37f01f8d) Thanks [@amh4r](https://github.com/amh4r)! - Add a log before the 405 response
## 3.52.0
### Minor Changes
- [#1288](https://github.com/inngest/inngest-js/pull/1288) [`daf858f0`](https://github.com/inngest/inngest-js/commit/daf858f0c51d92941958ad02b499d6a6a7643a76) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Add the ability to create Durable Endpoint Proxies, used to redirect to Inngest run results using a user's own domain.
```ts
import { Inngest, step } from "inngest";
import { endpointAdapter } from "inngest/edge";
const inngest = new Inngest({
id: "bun-sync-example",
endpointAdapter: endpointAdapter.withOptions({
asyncRedirectUrl: "/poll",
}),
});
const server = Bun.serve({
port: 3000,
routes: {
"/": inngest.endpoint(async (_req) => {
const foo = await step.run("example/step", async () => {
return "Hello from step!";
});
return new Response(`Step result: ${foo}`);
}),
// Proxy endpoint - fetches results from Inngest and decrypts if needed
"/poll": inngest.endpointProxy(),
},
});
console.log(`Listening on ${server.hostname}:${server.port}`);
```
- [#1284](https://github.com/inngest/inngest-js/pull/1284) [`5717c64b`](https://github.com/inngest/inngest-js/commit/5717c64babe40857e961638ff742c7aa23495328) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Add a Durable Endpoints Next.js Adapter
```ts
// app/api/my-endpoint/route.ts
import { Inngest, step } from "inngest";
import { endpointAdapter } from "inngest/next";
const inngest = new Inngest({
id: "my-app",
endpointAdapter,
});
export const GET = inngest.endpoint(async (req) => {
const foo = await step.run("my-step", () => ({ foo: "bar" }));
return new Response(`Result: ${JSON.stringify(foo)}`);
});
```
### Patch Changes
- [#1297](https://github.com/inngest/inngest-js/pull/1297) [`32b59507`](https://github.com/inngest/inngest-js/commit/32b595073e73ac3e7c414366c2d6b29fddeccce6) Thanks [@ptts](https://github.com/ptts)! - Fix `extendProvider()` failing to extend existing OTel providers by unwrapping the `ProxyTracerProvider` returned by `trace.getTracerProvider()`. Previously, the proxy wrapper hid the underlying provider's `addSpanProcessor` method, causing `"auto"` mode to fall through to `createProvider()` and register duplicate instrumentations.
- [#1292](https://github.com/inngest/inngest-js/pull/1292) [`9c8f5d94`](https://github.com/inngest/inngest-js/commit/9c8f5d94bdd634f25391fafb592ad7bb7e16c710) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Fix Durable Endpoints not capturing and obeying step plan forcing, resulting in strange behaviour during parallel flows
- [#1285](https://github.com/inngest/inngest-js/pull/1285) [`9a7b0528`](https://github.com/inngest/inngest-js/commit/9a7b052814b954cc5c2751646e8eecc1e4f36b64) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Handle checkpointing failures more gracefully across async checkpointing and Durable Endpoints
## 3.51.0
### Minor Changes
- [#1269](https://github.com/inngest/inngest-js/pull/1269) [`8e377c27`](https://github.com/inngest/inngest-js/commit/8e377c27ddb8611c179ccc1008bc7be566de1744) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Add `isInngestRequest()` export for lightly checking if a `Request` looks like it comes from Inngest
### Patch Changes
- [#1269](https://github.com/inngest/inngest-js/pull/1269) [`8e377c27`](https://github.com/inngest/inngest-js/commit/8e377c27ddb8611c179ccc1008bc7be566de1744) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Stabilise execution version when switching from sync to async
- [#1269](https://github.com/inngest/inngest-js/pull/1269) [`8e377c27`](https://github.com/inngest/inngest-js/commit/8e377c27ddb8611c179ccc1008bc7be566de1744) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Use endpoint adapters for experimental Durable Endpoints instead of wrappers
- [#1250](https://github.com/inngest/inngest-js/pull/1250) [`ad078067`](https://github.com/inngest/inngest-js/commit/ad078067f1fb4d17a1dcb43403fc4e3ac853e3fa) Thanks [@Linell](https://github.com/Linell)! - NonRetriableError && RetryAfterError instanceof checks help resolve issues of errors not working as expected in monorepos.
- [#1168](https://github.com/inngest/inngest-js/pull/1168) [`4371be38`](https://github.com/inngest/inngest-js/commit/4371be389801d6bc9a243cee380e4f5a1ad8b82c) Thanks [@Linell](https://github.com/Linell)! - Add Anthropic Open Telemetry instrumentation so that calls to the Anthropic API are automatically captured.
- [#1269](https://github.com/inngest/inngest-js/pull/1269) [`8e377c27`](https://github.com/inngest/inngest-js/commit/8e377c27ddb8611c179ccc1008bc7be566de1744) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Rename `http/run.started` event created from Durable Endpoints to `inngest/http.request`
- [#1266](https://github.com/inngest/inngest-js/pull/1266) [`b6361ee1`](https://github.com/inngest/inngest-js/commit/b6361ee19a0b9df077c7ef44fa46bf1e47192cb5) Thanks [@djfarrelly](https://github.com/djfarrelly)! - Fix issue where middleware transformOutput is not called.
## 3.50.0
### Minor Changes
- [#1226](https://github.com/inngest/inngest-js/pull/1226) [`dab4607c`](https://github.com/inngest/inngest-js/commit/dab4607c846e861847cace81e4c58cb4d69fa55b) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Adds the ability to configure the number of `bufferedSteps` and `maxInterval` when checkpointing.
```ts
import { inngest } from "./client";
export const helloWorld = inngest.createFunction(
{
id: "hello-world",
checkpointing: { bufferedSteps: Infinity, maxInterval: "5s" },
},
{ event: "demo/event.sent" },
async ({ event, step }) => {
const a = await step.run("a", () => "a");
const b = await step.run("b", () => "b");
const c = await step.run("c", () => "c");
return {
message: `Hello ${event.name}! ${a} ${b} ${c}`,
};
},
);
```
If `checkpointing: true` is used, `bufferedSteps` defaults to `1` and no `maxInterval` is set.
- [#1093](https://github.com/inngest/inngest-js/pull/1093) [`ad044e05`](https://github.com/inngest/inngest-js/commit/ad044e05cf0aac7e593e753f73782d6b24bab0cc) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Add realtime client methods to `inngest`:
- `inngest.realtime.publish()`
- `inngest.realtime.getSubscriptionToken()`
- `step.realtime.publish()`
### Patch Changes
- [#1267](https://github.com/inngest/inngest-js/pull/1267) [`093c4f96`](https://github.com/inngest/inngest-js/commit/093c4f96d0b43a9f9b0f869531855c13aa1b51f6) Thanks [@amh4r](https://github.com/amh4r)! - Fix not properly handling transfer chunked requests
- [#1233](https://github.com/inngest/inngest-js/pull/1233) [`df7d3023`](https://github.com/inngest/inngest-js/commit/df7d3023ede2029a6da32f89c27f3a94a5cfa6cd) Thanks [@Linell](https://github.com/Linell)! - Lazily load [ulid](https://www.npmjs.com/package/ulid) to avoid issues in edge environments.
- [#1257](https://github.com/inngest/inngest-js/pull/1257) [`0eb6b473`](https://github.com/inngest/inngest-js/commit/0eb6b473fd0f37e7cdefe7ee0ccf11a58e49b676) Thanks [@Linell](https://github.com/Linell)! - Use native Web Crypto API for HMAC-SHA256 signing with hash.js fallback
This change improves performance by using the native Web Crypto API when available for request signature verification. Falls back to hash.js for environments without crypto support.
- [#1226](https://github.com/inngest/inngest-js/pull/1226) [`dab4607c`](https://github.com/inngest/inngest-js/commit/dab4607c846e861847cace81e4c58cb4d69fa55b) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Correctly access parallel step IDs from resumed sync requests
- [#1226](https://github.com/inngest/inngest-js/pull/1226) [`dab4607c`](https://github.com/inngest/inngest-js/commit/dab4607c846e861847cace81e4c58cb4d69fa55b) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Default to v2 execution version when checkpointing
## 3.49.3
### Patch Changes
- [#1248](https://github.com/inngest/inngest-js/pull/1248) [`351ec02d`](https://github.com/inngest/inngest-js/commit/351ec02d6bd3faa5c0b8466cddb0f946974051d6) Thanks [@amh4r](https://github.com/amh4r)! - Fix steps sometimes resolving out of order
## 3.49.2
### Patch Changes
- [#1244](https://github.com/inngest/inngest-js/pull/1244) [`f5c565e8`](https://github.com/inngest/inngest-js/commit/f5c565e84cbe6eb5d91715a0cdfe33a3fc14d63e) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Ensure execution version doesn't slide when going to/from checkpointing
- [#1245](https://github.com/inngest/inngest-js/pull/1245) [`6694bccc`](https://github.com/inngest/inngest-js/commit/6694bccc394071d412c0a99bfeb07566d163f74f) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Fix async data fetching not happening with `optimizedParallelism: true`
## 3.49.1
### Patch Changes
- [#1234](https://github.com/inngest/inngest-js/pull/1234) [`c85e2f29`](https://github.com/inngest/inngest-js/commit/c85e2f297a782e78fe4b681793464e5b60045c23) Thanks [@amh4r](https://github.com/amh4r)! - Fix not treating Next Request.body as a ReadableStream
## 3.49.0
### Minor Changes
- [#1176](https://github.com/inngest/inngest-js/pull/1176) [`e828e226`](https://github.com/inngest/inngest-js/commit/e828e226e3575fea988a8272bba8cfcdd66ba28a) Thanks [@Linell](https://github.com/Linell)! - feat(metadata): Add step.update.metadata
### Patch Changes
- [#1215](https://github.com/inngest/inngest-js/pull/1215) [`29307e2e`](https://github.com/inngest/inngest-js/commit/29307e2e341a550eefc2118b1e35470ca8478c81) Thanks [@rhino1998](https://github.com/rhino1998)! - Fix step.fetch response status code
- [#1222](https://github.com/inngest/inngest-js/pull/1222) [`ecf46a58`](https://github.com/inngest/inngest-js/commit/ecf46a58f6e67558bf6dc19ac4524f995cdf0754) Thanks [@amh4r](https://github.com/amh4r)! - Remove "authentication_succeeded: false" when responding to unsigned requests
- [#1214](https://github.com/inngest/inngest-js/pull/1214) [`326fe06b`](https://github.com/inngest/inngest-js/commit/326fe06b5231f2528be46922084e1673bb63ae3d) Thanks [@djfarrelly](https://github.com/djfarrelly)! - Fix Connect heartbeater stops too soon during shutdown
## 3.48.1
### Patch Changes
- [#1205](https://github.com/inngest/inngest-js/pull/1205) [`8ca992e9`](https://github.com/inngest/inngest-js/commit/8ca992e913d1d41c5704dfd7b0d262848b9fb84f) Thanks [@Linell](https://github.com/Linell)! - Include client headers, such as `x-inngest-env` in trace exports.
## 3.48.0
### Minor Changes
- [#1189](https://github.com/inngest/inngest-js/pull/1189) [`28ffbc89`](https://github.com/inngest/inngest-js/commit/28ffbc8962602bbc1a14a10cee724fd5f8747930) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Bring checkpointing out of experimental
## 3.47.0
### Minor Changes
- [#1188](https://github.com/inngest/inngest-js/pull/1188) [`90b14e92`](https://github.com/inngest/inngest-js/commit/90b14e926a1fe79917789512b162ed49e66d4666) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Add `experimentalCheckpointing: { maxRuntime?: number | string | Temporal.DurationLike }` to set max runtime duration before re-entry during checkpointing
### Patch Changes
- [#1190](https://github.com/inngest/inngest-js/pull/1190) [`cb286c5e`](https://github.com/inngest/inngest-js/commit/cb286c5e3a4747d5fc6abb0b09cac56b76b3a12a) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Recover from checkpointing failures by falling back to async mode
- [#1179](https://github.com/inngest/inngest-js/pull/1179) [`9c88fd19`](https://github.com/inngest/inngest-js/commit/9c88fd191e461bc5aaec50f4f3a709d258c6c61a) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Fix sync execution looking for step in the wrong place
## 3.46.0
### Minor Changes
- [#1173](https://github.com/inngest/inngest-js/pull/1173) [`75820c72`](https://github.com/inngest/inngest-js/commit/75820c724408dbf34d6e0c929f8617e83e62981f) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Add async checkpointing to functions and clients. Only allows checkpointing after every step (`maxSteps: 1`) currently.
Can be enabled on the client:
```ts
import { Inngest } from "inngest";
const inngest = new Inngest({
id: "...",
experimentalCheckpointing: true,
});
```
...or on each function...
```ts
inngest.createFunction(
{
id: "...",
experimentalCheckpointing: true,
},
{
event: "demo/event.sent",
},
async ({ event, step }) => {
// ...
},
);
```
### Patch Changes
- [#1156](https://github.com/inngest/inngest-js/pull/1156) [`ef6fd33d`](https://github.com/inngest/inngest-js/commit/ef6fd33da9b21443302d726a69a62a4704809d10) Thanks [@Linell](https://github.com/Linell)! - Updated OpenTelemetry dependencies to support broader version ranges and adapted code for OTEL 2.x API compatibilty
## 3.45.1
### Patch Changes
- [#1155](https://github.com/inngest/inngest-js/pull/1155) [`9fa34d12`](https://github.com/inngest/inngest-js/commit/9fa34d1250e25256ddb69606d7932419f131e998) Thanks [@mar-inngest](https://github.com/mar-inngest)! - Connect - Adding support for worker concurrency limits
- [#1160](https://github.com/inngest/inngest-js/pull/1160) [`ab446473`](https://github.com/inngest/inngest-js/commit/ab4464730ffea7d85de7db603fbda9fb3ac645fe) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Widen `zod` dependency range to support v3/v4 across libraries
- [#1165](https://github.com/inngest/inngest-js/pull/1165) [`b5139f04`](https://github.com/inngest/inngest-js/commit/b5139f041cfef8a78d75bf9d0254d892e40060fe) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Remove `setImmediate` use (Node only)
## 3.45.0
### Minor Changes
- [#1154](https://github.com/inngest/inngest-js/pull/1154) [`ead9837b`](https://github.com/inngest/inngest-js/commit/ead9837bb88f0722806a721ec2e3666adb757bb6) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Add experimental APIs for supporting synchronous execution
## 3.44.5
### Patch Changes
- [#1149](https://github.com/inngest/inngest-js/pull/1149) [`9d5d7131`](https://github.com/inngest/inngest-js/commit/9d5d7131c530c000e4b476edf3c44baf62a2bacb) Thanks [@Linell](https://github.com/Linell)! - Refactor `otelMiddleware` to `extendedTracesMiddleware` so that its purpose is more easily understood
- [#1150](https://github.com/inngest/inngest-js/pull/1150) [`68e67d80`](https://github.com/inngest/inngest-js/commit/68e67d8009b210c1aa75c02f50395a3fca952d2f) Thanks [@faizanu94](https://github.com/faizanu94)! - Fix custom loggers dumbly waiting 1s to flush; they now correctly call `flush()` if available
## 3.44.4
### Patch Changes
- [#1148](https://github.com/inngest/inngest-js/pull/1148) [`9cf36f4d`](https://github.com/inngest/inngest-js/commit/9cf36f4db4d5892cbb3f4eb765fd8367515a5c2c) Thanks [@BrunoScheufler](https://github.com/BrunoScheufler)! - Include retry count in the error message if gracefully flushing connect worker progress fails after all attempts
- [#1139](https://github.com/inngest/inngest-js/pull/1139) [`6366f557`](https://github.com/inngest/inngest-js/commit/6366f557785967d0be246036d762ec1b0beb0518) Thanks [@rhino1998](https://github.com/rhino1998)! - Add userland ID & index to Ops
## 3.44.3
### Patch Changes
- [#1133](https://github.com/inngest/inngest-js/pull/1133) [`e7494a67`](https://github.com/inngest/inngest-js/commit/e7494a672af1cebadc55f0a04a8ff5b3a968258b) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Export the full runtime enum for `ConnectionState` from `"inngest/connect"`
- [#1129](https://github.com/inngest/inngest-js/pull/1129) [`7a7c2f5f`](https://github.com/inngest/inngest-js/commit/7a7c2f5fd527bc0a26eee2e266755e5e2b6d8cf6) Thanks [@de-tester](https://github.com/de-tester)! - Expose types that are used for step result signature
## 3.44.2
### Patch Changes
- [#1120](https://github.com/inngest/inngest-js/pull/1120) [`c2b249aa`](https://github.com/inngest/inngest-js/commit/c2b249aa5947e30984e57b3baa578e33c7f527b2) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Build targets no specific platform, solving some issues with edge runtimes where the library would internally attempt to `require()` some `node:*` dependencies
## 3.44.1
### Patch Changes
- [#1114](https://github.com/inngest/inngest-js/pull/1114) [`c191c93a`](https://github.com/inngest/inngest-js/commit/c191c93a58f86a7354155e38b1e5316f167337f3) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Fix `.fromSchema()`-defined schemas not being compatible with `@inngest/middleware-validation`
- [#1116](https://github.com/inngest/inngest-js/pull/1116) [`aa4be8f1`](https://github.com/inngest/inngest-js/commit/aa4be8f1784672d88de7bdb377215e6441115bb9) Thanks [@jacobheric](https://github.com/jacobheric)! - Amended a comment for batch event timeouts
## 3.44.0
### Minor Changes
- [#1102](https://github.com/inngest/inngest-js/pull/1102) [`6507c0cd`](https://github.com/inngest/inngest-js/commit/6507c0cdc792ef905b06481f69b4e7fe8ad75fe7) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Add `InngestFunctionReference.Like` for comparing referenced functions across versions
- [#1102](https://github.com/inngest/inngest-js/pull/1102) [`6507c0cd`](https://github.com/inngest/inngest-js/commit/6507c0cdc792ef905b06481f69b4e7fe8ad75fe7) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Add Standard Schema to `referenceFunction()`
### Patch Changes
- [#1075](https://github.com/inngest/inngest-js/pull/1075) [`1cf1e525`](https://github.com/inngest/inngest-js/commit/1cf1e525a90186af0bbb6024198259d0e9006adc) Thanks [@Linell](https://github.com/Linell)! - Add support for the `StepFailed` opcode, which is used to signify that a function has failed in a permanent way and should not be retried.
## 3.43.1
### Patch Changes
- [#1097](https://github.com/inngest/inngest-js/pull/1097) [`568cb0d2`](https://github.com/inngest/inngest-js/commit/568cb0d2358b52dc41ac1f2652190183f642f7e9) Thanks [@tedjames](https://github.com/tedjames)! - exporting serializeError for use in agentkit
## 3.43.0
### Minor Changes
- [#1091](https://github.com/inngest/inngest-js/pull/1091) [`47493291`](https://github.com/inngest/inngest-js/commit/47493291cd1609717421c1c4a63200243f9f101d) Thanks [@amh4r](https://github.com/amh4r)! - Add streaming support to inngest/node
## 3.42.3
### Patch Changes
- [#1087](https://github.com/inngest/inngest-js/pull/1087) [`6557014`](https://github.com/inngest/inngest-js/commit/655701448c80a86b4039ca570bacaf9ba1f16399) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Fix bad release command
## 3.42.2
### Patch Changes
- [#1085](https://github.com/inngest/inngest-js/pull/1085) [`d081d36`](https://github.com/inngest/inngest-js/commit/d081d36169aa476f3058f3d626ce4efdd4fcf6aa) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Fix legacy exports when using older module resolution
## 3.42.1
### Patch Changes
- [#1083](https://github.com/inngest/inngest-js/pull/1083) [`2f24a09`](https://github.com/inngest/inngest-js/commit/2f24a09ec17e99422688b175bc80d43e06f42c36) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Fix `"inngest/connect"` not being exported in JSR package
- [#1083](https://github.com/inngest/inngest-js/pull/1083) [`2f24a09`](https://github.com/inngest/inngest-js/commit/2f24a09ec17e99422688b175bc80d43e06f42c36) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Export some internal packages under `"inngest/internals"` for `@inngest/test` use
## 3.42.0
### Minor Changes
- [#920](https://github.com/inngest/inngest-js/pull/920) [`0da1995`](https://github.com/inngest/inngest-js/commit/0da1995f9a194b6dd9708a6d8b451efba17c60fc) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Added `isInngest`, `isInngestFunction`, and `isInngestMiddleware`, runtime helpers to check if a given object is the expected type.
```ts
import { isInngest, isInngestFunction, isInngestMiddleware } from "inngest";
const objIsInngest = isInngest(someObj);
const objIsInngestFunction = isInngestFunction(someObj);
const objIsInngestMiddleware = isInngestMiddleware(someObj);
```
- [#920](https://github.com/inngest/inngest-js/pull/920) [`0da1995`](https://github.com/inngest/inngest-js/commit/0da1995f9a194b6dd9708a6d8b451efba17c60fc) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Add support for [Standard Schema](https://github.com/standard-schema/standard-schema) when specifying event types.
```ts
import { EventSchemas } from "inngest";
import { z } from "zod";
const schemas = new EventSchemas().fromSchema({
"demo/event.sent": z.object({
username: z.string(),
}),
});
```
This entrypoint can be used for both Zod v3 and v4 schemas, as well as a multitude of others.
`.fromZod()` is still available, which provides some more nuanced use cases but will is deprecated in favor of `.fromSchema()`.
### Patch Changes
- [#920](https://github.com/inngest/inngest-js/pull/920) [`0da1995`](https://github.com/inngest/inngest-js/commit/0da1995f9a194b6dd9708a6d8b451efba17c60fc) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Dropped support for Node 14, 16, and 18, as they are out of LTS
- [#920](https://github.com/inngest/inngest-js/pull/920) [`0da1995`](https://github.com/inngest/inngest-js/commit/0da1995f9a194b6dd9708a6d8b451efba17c60fc) Thanks [@jpwilliams](https://github.com/jpwilliams)! - `inngest` no longer requires an earlier version of `zod@3.22.0` as a peer dependency
- [#920](https://github.com/inngest/inngest-js/pull/920) [`0da1995`](https://github.com/inngest/inngest-js/commit/0da1995f9a194b6dd9708a6d8b451efba17c60fc) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Now builds separate EJS and CSM packages, which should alleviate some issues attempting to get the current single build to satisfy all conditions.
Most notably, pure ESM consumers should now have a significantly easier time using the library.
- [#920](https://github.com/inngest/inngest-js/pull/920) [`0da1995`](https://github.com/inngest/inngest-js/commit/0da1995f9a194b6dd9708a6d8b451efba17c60fc) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Use `Symbol.toStringTag` for `*.Like` types, making them much more reliable across versions.
This means you can check for the type of value against Inngset values much more easily:
```ts
type IsInngest<T> = T extends Inngest.Like ? true : false;
type IsInngestFunction = T extends InngestFunction.Like ? true : false;
type IsInngestMiddleware = T extends InngestMiddleware.Like ? true : false;
```
In addition, logged objects that are these types now show the type instead of just `[object Object]`, e.g. `[object Inngest.App]`.
- [#920](https://github.com/inngest/inngest-js/pull/920) [`0da1995`](https://github.com/inngest/inngest-js/commit/0da1995f9a194b6dd9708a6d8b451efba17c60fc) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Middleware now runs like onion layers. For example `{ middleware: [foo, bar] }` now runs:
- `foo.transformInput`
- `bar.transformInput`
- `foo.beforeMemoization`
- `bar.beforeMemoization`
- `bar.afterMemoization`
- `foo.afterMemoization`
- `foo.beforeExecution`
- `bar.beforeExecution`
- `bar.afterExecution`
- `foo.afterExecution`
- `bar.transformOutput`
- `foo.transformOutput`
- `foo finished`
- `bar finished`
- `foo beforeResponse`
- `bar beforeResponse`
This should enable middleware to behave correctly when it has to wrap other middleware.
- [#920](https://github.com/inngest/inngest-js/pull/920) [`0da1995`](https://github.com/inngest/inngest-js/commit/0da1995f9a194b6dd9708a6d8b451efba17c60fc) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Drop support for TypeScript 4.7, 4.8, 4.9, 5.0, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6 and 5.7
## 3.41.0
### Minor Changes
- [#1078](https://github.com/inngest/inngest-js/pull/1078) [`3e5bf652`](https://github.com/inngest/inngest-js/commit/3e5bf652a7a769cc27202fd241da5bc6b9bcc331) Thanks [@tonyhb](https://github.com/tonyhb)! - Allow passing `publish` options to `step.ai.infer()`, automatically publishing to realtime channel/topics
## 3.40.3
### Patch Changes
- [#1040](https://github.com/inngest/inngest-js/pull/1040) [`8ba5486`](https://github.com/inngest/inngest-js/commit/8ba548647ab17b91b750eea997c016dedee9f1c2) Thanks [@jpwilliams](https://github.com/jpwilliams)! - SDK appropriately sets `"inngest.traceref"` for userland otel spans
## 3.40.2
### Patch Changes
- [#1045](https://github.com/inngest/inngest-js/pull/1045) [`ec2320a`](https://github.com/inngest/inngest-js/commit/ec2320a2dbbfacf22d2399c0eb28f3280507b49f) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Add `type` to `step.sendEvent()` to differentiate it from other `step.run()`-based steps
- [#1050](https://github.com/inngest/inngest-js/pull/1050) [`ac9748f`](https://github.com/inngest/inngest-js/commit/ac9748f506f34f3f9329c73d55d39aeecd76499b) Thanks [@lkasinathan](https://github.com/lkasinathan)! - Introduces support for the `if` expression on the batchEvents configuration. This can be used to determine which events are eligible for batching. For more details, check out the [batching documentation](https://innge.st/batching)!
## 3.40.1
### Patch Changes
- [#1028](https://github.com/inngest/inngest-js/pull/1028) [`abb0e8e`](https://github.com/inngest/inngest-js/commit/abb0e8ec97a9fbe33db9b93d7eb8355be2c72464) Thanks [@charlypoly](https://github.com/charlypoly)! - Revert "obscure "node:async_hooks" import from bundlers"
## 3.40.0
### Minor Changes
- [#1011](https://github.com/inngest/inngest-js/pull/1011) [`126a984`](https://github.com/inngest/inngest-js/commit/126a984524968854763eb4ed428dc6ca6127236c) Thanks [@KiKoS0](https://github.com/KiKoS0)! - Add support for cancel mode in function singletons
### Patch Changes
- [#1020](https://github.com/inngest/inngest-js/pull/1020) [`bff90cc`](https://github.com/inngest/inngest-js/commit/bff90cc580cb68b3d9959adadfe6cd73cf1da252) Thanks [@thomasballinger](https://github.com/thomasballinger)! - The optional import of Node.js module "node:async_hooks" is more likely to by dynamic, even after bundling this library. This change makes this feature-detecting dynamic import work correctly when bundled for the Convex JS runtime.
- Updated dependencies [[`bf8ab80`](https://github.com/inngest/inngest-js/commit/bf8ab80fd4601fae6a71188821df1e40e89d541b), [`6f478be`](https://github.com/inngest/inngest-js/commit/6f478bee07bb96eea6e0153f04d4f9060b6b570d)]:
- @inngest/ai@0.1.5
## 3.39.2
### Patch Changes
- [#1001](https://github.com/inngest/inngest-js/pull/1001) [`fbbb498`](https://github.com/inngest/inngest-js/commit/fbbb49854e9599850231c76ad0cc108a6de31696) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Add streaming support for `"inngest/express"`
- [#1013](https://github.com/inngest/inngest-js/pull/1013) [`2ac3a71`](https://github.com/inngest/inngest-js/commit/2ac3a718e7eea2662f646627141eecdffece6318) Thanks [@jacobheric](https://github.com/jacobheric)! - Fix errors serialized in the `cause` field not being deserialized correctly
## 3.39.1
### Patch Changes
- [#999](https://github.com/inngest/inngest-js/pull/999) [`c5d3b6e`](https://github.com/inngest/inngest-js/commit/c5d3b6ecceee0cde61dc3f920e548ce52895c03a) Thanks [@amh4r](https://github.com/amh4r)! - Allow arbitrary field/method access to underlying logger
## 3.39.0
### Minor Changes
- [#994](https://github.com/inngest/inngest-js/pull/994) [`a1e8adb`](https://github.com/inngest/inngest-js/commit/a1e8adba73eff9df9bf9b067a0115c9089d8e1c6) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Add support for function singletons
## 3.38.1
### Patch Changes
- [#989](https://github.com/inngest/inngest-js/pull/989) [`5e3ec3b`](https://github.com/inngest/inngest-js/commit/5e3ec3b59730b83ecccae2569812cd3ced5794d9) Thanks [@jpwilliams](https://github.com/jpwilliams)! - When executing, use the `serve()` call's client instead of the function's
- [#997](https://github.com/inngest/inngest-js/pull/997) [`4120413`](https://github.com/inngest/inngest-js/commit/41204139dab6ce3767cc3692eb3eeee52db8a6bb) Thanks [@djfarrelly](https://github.com/djfarrelly)! - Add connect types for convenience and discoverability
## 3.38.0
### Minor Changes
- [#985](https://github.com/inngest/inngest-js/pull/985) [`4616919`](https://github.com/inngest/inngest-js/commit/46169199801719727da8d5e44f9505a06e21055c) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Add ability for signal waits to supersede others
```ts
await step.waitForSignal("step-id", {
signal: "my-signal",
timeout: "5m",
onConflict: "replace",
});
```
## 3.37.0
### Minor Changes
- [#979](https://github.com/inngest/inngest-js/pull/979) [`3e6a3e5`](https://github.com/inngest/inngest-js/commit/3e6a3e52c69af47ccc4baf014d5a67f21cd80235) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Add `step.waitForSignal()`, `step.sendSignal()`, and `inngest.sendSignal()` as experimental new tooling
## 3.36.0
### Minor Changes
- [#909](https://github.com/inngest/inngest-js/pull/909) [`35cf326`](https://github.com/inngest/inngest-js/commit/35cf326fe3877f2688a73322a481df0e2b2fc064) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Added experimental otel for capturing userland spans
## 3.35.1
### Patch Changes
- [#950](https://github.com/inngest/inngest-js/pull/950) [`0099c56`](https://github.com/inngest/inngest-js/commit/0099c562c54d44d476800af74c7cae775aaa1cdc) Thanks [@BrunoScheufler](https://github.com/BrunoScheufler)! - Connect: Reliability improvements
## 3.35.0
### Minor Changes
- [#912](https://github.com/inngest/inngest-js/pull/912) [`a641cc2`](https://github.com/inngest/inngest-js/commit/a641cc219846a2c6ef66ad62fb371725555e7caa) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Adds a `fetch` export from `"inngest"` to allow any library that accepts a Fetch API-compatible function to automatically turn any call into a durable step if used within the context of an Inngest Function.
By default, if called outside of the context of an Inngest Function (or within an existing step), it will fall back to using the global `fetch`, or a fallback of the user's choice.
```ts
// Basic use
import { fetch } from "inngest";
const api = new MyProductApi({ fetch });
```
```ts
// With a fallback
import { fetch } from "inngest";
const api = new MyProductApi({
fetch: fetch.config({
fallback: myCustomFetchFallback,
}),
});
```
```ts
// Remove the default fallback and error if called outside an Inngest Function
import { fetch } from "inngest";
const api = new MyProductApi({
fetch: fetch.config({
fallback: undefined,
}),
});
```
It's also available within a function as `step.fetch`.
```ts
inngest.createFunction(
{
id: "my-fn",
},
{
event: "my-event",
},
async ({ step }) => {
const api = new MyProductApi({ fetch: step.fetch });
},
);
```
## 3.34.5
### Patch Changes
- [#944](https://github.com/inngest/inngest-js/pull/944) [`54b860a`](https://github.com/inngest/inngest-js/commit/54b860a88dc84511390e73993d77511b9b323635) Thanks [@amh4r](https://github.com/amh4r)! - Use x-inngest-event-id-seed header instead of event idempotency ID
- [#937](https://github.com/inngest/inngest-js/pull/937) [`c6e9131`](https://github.com/inngest/inngest-js/commit/c6e9131900fcea3184661dd9573e0e2669224fd4) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Normalize headers in `"inngest/lambda"` - mocked requests with non-lowercase headers are now handled
- [#945](https://github.com/inngest/inngest-js/pull/945) [`4506581`](https://github.com/inngest/inngest-js/commit/4506581520fe55270b78a23ade2f61b7b7107ce8) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Bump `resolveAfterPending()` microtask shim count to `100`, reducing parallel index warnings
## 3.34.4
### Patch Changes
- [#942](https://github.com/inngest/inngest-js/pull/942) [`3903aa7`](https://github.com/inngest/inngest-js/commit/3903aa7e1db4c2335f8e1bf1d0a570577440e1d4) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Add `inngest/function.cancelled` event to known internal schemas
## 3.34.3
### Patch Changes
- [#938](https://github.com/inngest/inngest-js/pull/938) [`efd658c`](https://github.com/inngest/inngest-js/commit/efd658cd0293b58aeea14db32c73bcf49483b35e) Thanks [@anafilipadealmeida](https://github.com/anafilipadealmeida)! - Update description for `batchSize`; pricing plans decide on max limits
## 3.34.2
### Patch Changes
- [#934](https://github.com/inngest/inngest-js/pull/934) [`abae7fc`](https://github.com/inngest/inngest-js/commit/abae7fce16f4b3171705d23bed9bfdda3b70bdec) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Require `runId` when publishing realtime messages
## 3.34.1
### Patch Changes
- [#925](https://github.com/inngest/inngest-js/pull/925) [`11fd15b`](https://github.com/inngest/inngest-js/commit/11fd15be198d20a73bf95e93d863d8150ec4fdb6) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Export `fastifyPlugin` as a named export to resolve CJS<->ESM interop issues
## 3.34.0
### Minor Changes
- [#919](https://github.com/inngest/inngest-js/pull/919) [`ebeaaff`](https://github.com/inngest/inngest-js/commit/ebeaaffa2fde4f6cec0f0554cc9f5f033da07f40) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Add `dependencyInjectionMiddleware()`, allowing you to easily add data to function input
```ts
import { dependencyInjectionMiddleware } from "inngest";
const prisma = new Prisma();
const inngest = new Inngest({
id: "my-app",
middleware: [dependencyInjectionMiddleware({ prisma })],
});
```
### Patch Changes
- [#922](https://github.com/inngest/inngest-js/pull/922) [`3374187`](https://github.com/inngest/inngest-js/commit/3374187eca44bbbc83daaaea511d7bbe84112a9d) Thanks [@jpwilliams](https://github.com/jpwilliams)! - `Error.cause` can now be any `unknown` value, though we still attempt to recursively expand causes until we hit an `unknown` value
## 3.33.0
### Minor Changes
- [#918](https://github.com/inngest/inngest-js/pull/918) [`a305a15`](https://github.com/inngest/inngest-js/commit/a305a154eb73c54a0d90a437130ab32f7e388c90) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Add support for [Temporal](https://tc39.es/proposal-temporal/) APIs.
```ts
inngest.createFunction(
{
id: "my-fn",
},
{
event: "test/hello.world",
},
async ({ event, step }) => {
// sleep with a `Temporal.Duration`
await step.sleep("😴", Temporal.Duration.from({ seconds: 10 }));
await step.sleep("😴", Temporal.Duration.from({ minutes: 5 }));
await step.sleep("😴", Temporal.Duration.from({ hours: 1 }));
// sleepUntil using a `Temporal.Instant` or `Temporal.ZonedDateTime`
await step.sleepUntil(
"😴",
Temporal.Instant.from("2025-03-19T12:00:00Z"),
);
await step.sleepUntil(
"😴",
Temporal.ZonedDateTime.from("2025-03-19T12:00[Europe/London]"),
);
// sleepUntil also works with relative time
const now = Temporal.Instant.from(event.user.createdAtISO);
await step.sleepUntil(
"😴",
now.add(Temporal.Duration.from({ minutes: 30 })),
);
},
);
```
### Patch Changes
- [#745](https://github.com/inngest/inngest-js/pull/745) [`ff01cd2`](https://github.com/inngest/inngest-js/commit/ff01cd29a4b93f268c3eefb81d44100c2a4c1919) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Fix rare body reuse when parsing failure returns from `inngest.send()` and `step.sendEvent()`
- [#916](https://github.com/inngest/inngest-js/pull/916) [`ab835ee`](https://github.com/inngest/inngest-js/commit/ab835eeb891be45302c8bbe07d781d6a3de9f2a0) Thanks [@BrunoScheufler](https://github.com/BrunoScheufler)! - - Connect: Allow supplying Inngest env as environment variable
- [#913](https://github.com/inngest/inngest-js/pull/913) [`b090e27`](https://github.com/inngest/inngest-js/commit/b090e278d471f425c8a216836c8109bd5086fd56) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Export the `version` of the package
- [#921](https://github.com/inngest/inngest-js/pull/921) [`374727f`](https://github.com/inngest/inngest-js/commit/374727f316bb9e71eee64328d0cb1afe95574126) Thanks [@BrunoScheufler](https://github.com/BrunoScheufler)! - connect: Include RunID in acks / sdk response
## 3.32.9
### Patch Changes
- [#914](https://github.com/inngest/inngest-js/pull/914) [`9a5dd61`](https://github.com/inngest/inngest-js/commit/9a5dd61abb03936bf2df6196ee48e626508b70bf) Thanks [@tonyhb](https://github.com/tonyhb)! - Allow customization of the dev server URL in realtime
## 3.32.8
### Patch Changes
- [#910](https://github.com/inngest/inngest-js/pull/910) [`d184913`](https://github.com/inngest/inngest-js/commit/d184913eaa09f2be39354be6f66abdddefd6c3a8) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Fix `shouldOptimizeParallelism()` error when attempting to serve functions using multiple versions of `inngest`
## 3.32.7
### Patch Changes
- [#889](https://github.com/inngest/inngest-js/pull/889) [`5d5bd10`](https://github.com/inngest/inngest-js/commit/5d5bd10169bd7c303dcf8adb93f25990b6cebcaa) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Automatically set all AI models exports in step tooling based on `@inngest/ai` version
## 3.32.6
### Patch Changes
- [#892](https://github.com/inngest/inngest-js/pull/892) [`cb165d1`](https://github.com/inngest/inngest-js/commit/cb165d1f88211e81f61ed6e16cdf7ce23e7f770c) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Add APIs in preparation for realtime calls
- [#892](https://github.com/inngest/inngest-js/pull/892) [`cb165d1`](https://github.com/inngest/inngest-js/commit/cb165d1f88211e81f61ed6e16cdf7ce23e7f770c) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Add `executingStep` as an ALS property, allowing async contexts to ascertain whether we are in or out of a step
## 3.32.5
### Patch Changes
- [#885](https://github.com/inngest/inngest-js/pull/885) [`90f7c77`](https://github.com/inngest/inngest-js/commit/90f7c7788fee1f880d8daa9a8477fa9a46b00d3a) Thanks [@charlypoly](https://github.com/charlypoly)! - chore: bump `@inngest/ai`
## 3.32.4
### Patch Changes
- [#879](https://github.com/inngest/inngest-js/pull/879) [`94ce222`](https://github.com/inngest/inngest-js/commit/94ce2222c28e57b2b4d3bcad2d15e441faeb5c23) Thanks [@charlypoly](https://github.com/charlypoly)! - chore(inngest): bump `@inngest/ai`
## 3.32.3
### Patch Changes
- [#877](https://github.com/inngest/inngest-js/pull/877) [`b9a6e89`](https://github.com/inngest/inngest-js/commit/b9a6e89e38990144271dc5c867d0c72944d032cd) Thanks [@jpwilliams](https://github.com/jpwilliams)! - `getAsyncCtx()` now correctly finds context when called within:
- `step.run()` calls
- Middleware hooks
## 3.32.2
### Patch Changes
- [#875](https://github.com/inngest/inngest-js/pull/875) [`80837fd`](https://github.com/inngest/inngest-js/commit/80837fdbe3b461834a0ac5f1613e85f068ff9e00) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Connect now sets the connection state to `CLOSING` while handling and flushing any pending messages instead of immediately going to `CLOSED`
- Updated dependencies [[`6e8b258`](https://github.com/inngest/inngest-js/commit/6e8b258abe7eb48b8a46c6f15fdbc45f1441cbd3)]:
- @inngest/ai@0.1.0
## 3.32.1
### Patch Changes
- [#872](https://github.com/inngest/inngest-js/pull/872) [`5c87495`](https://github.com/inngest/inngest-js/commit/5c87495592eb804b150318c6c38712da63f64e5b) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Upgrade to `@inngest/ai@0.0.5` for better cross-package compatibility
## 3.32.0
### Minor Changes
- [#862](https://github.com/inngest/inngest-js/pull/862) [`4330563`](https://github.com/inngest/inngest-js/commit/43305631575d0bdfcd3209441463d3384655005d) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Allow opting in to optimized parallelism
### Patch Changes
- [#862](https://github.com/inngest/inngest-js/pull/862) [`4330563`](https://github.com/inngest/inngest-js/commit/43305631575d0bdfcd3209441463d3384655005d) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Optimize step data that's been promisified using `@inngest/test` or middleware
- Updated dependencies [[`58684e1`](https://github.com/inngest/inngest-js/commit/58684e19cd35271e5b5b8460443e363165155fe1), [`62e6a85`](https://github.com/inngest/inngest-js/commit/62e6a85d37e12e5772fcec1a26adaf77dbe4d837), [`f446052`](https://github.com/inngest/inngest-js/commit/f4460528585f7f67c066fd7b8b7bdd87562014a0)]:
- @inngest/ai@0.0.5
## 3.31.13
### Patch Changes
- [#865](https://github.com/inngest/inngest-js/pull/865) [`b2ff76d`](https://github.com/inngest/inngest-js/commit/b2ff76d21dded71b97b3ef698bc2495136544aa6) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Ensure support for `typescript@~5.8.0`
No notable changes have been made, though minor TypeScript versions often affect transpiled outputs.
## 3.31.12
### Patch Changes
- [#864](https://github.com/inngest/inngest-js/pull/864) [`e47965e`](https://github.com/inngest/inngest-js/commit/e47965eb1c5f4f577f96f95dd5fb2a3afb3a19d0) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Fix event sending failing in some edge environments due to not finding `global.crypto` or `globalThis.crypto` when creating idempotency IDs
- [#856](https://github.com/inngest/inngest-js/pull/856) [`cd63ce3`](https://github.com/inngest/inngest-js/commit/cd63ce32f327b47a980dd64db220b7e53b69df6b) Thanks [@BrunoScheufler](https://github.com/BrunoScheufler)! - - Connect: Prefer functions passed through `apps` but fall back to functions registered on the client
- [#858](https://github.com/inngest/inngest-js/pull/858) [`ce0c5a8`](https://github.com/inngest/inngest-js/commit/ce0c5a81781ef287a3fb2a2c5500c6a058d657ae) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Optimize function memoization
## 3.31.11
### Patch Changes
- [#851](https://github.com/inngest/inngest-js/pull/851) [`7f96793`](https://github.com/inngest/inngest-js/commit/7f967936dfdb1a332f3370135279ebf7782fb1fc) Thanks [@BrunoScheufler](https://github.com/BrunoScheufler)! - Connect: Allow multi-app connections
## 3.31.10
### Patch Changes
- [#852](https://github.com/inngest/inngest-js/pull/852) [`518a5b8`](https://github.com/inngest/inngest-js/commit/518a5b8602a358a78957e0e970d9ba85ef9f4d35) Thanks [@charlypoly](https://github.com/charlypoly)! - chore: bump `@inngest/ai` to `0.0.4`
## 3.31.9
### Patch Changes
- [#848](https://github.com/inngest/inngest-js/pull/848) [`dd1bef8`](https://github.com/inngest/inngest-js/commit/dd1bef893f6e1e90a03643d0c2773af2be8dc5dc) Thanks [@amh4r](https://github.com/amh4r)! - Fix serve ID not considered for in-band syncs
## 3.31.8
### Patch Changes
- [#845](https://github.com/inngest/inngest-js/pull/845) [`a2aadb1`](https://github.com/inngest/inngest-js/commit/a2aadb1baed2b295d9542206db9f5bd887645755) Thanks [@BrunoScheufler](https://github.com/BrunoScheufler)! - - Connect: Forward tracing and parse user tracing headers
## 3.31.7
### Patch Changes
- [#842](https://github.com/inngest/inngest-js/pull/842) [`4237efd`](https://github.com/inngest/inngest-js/commit/4237efd04aebbca55c027f5fed249a77decf3b1c) Thanks [@jpwilliams](https://github.com/jpwilliams)! - Allow for use of `exactOptionalPropertyTypes: true` when serving
## 3.31.6
### Patch Changes
- [#840](https://github.com/inngest/inngest-js/pull/840) [`b24fd30`](https://github.com/inngest/inngest-js/commit/b24fd304b339d7d216018ebe203c8b53895f5f38) Thanks [@BrunoScheufler](https://github.com/BrunoScheufler)! - Sync: Provide app version in register request