#1083 2f24a09 Thanks @jpwilliams! - Fix "inngest/connect" not being exported in JSR package
#1083 2f24a09 Thanks @jpwilliams! - Export some internal packages under "inngest/internals" for @inngest/test use
#920 0da1995 Thanks @jpwilliams! - Added isInngest, isInngestFunction, and isInngestMiddleware, runtime helpers to check if a given object is the expected type.
import { isInngest, isInngestFunction, isInngestMiddleware } from "inngest";
const objIsInngest = isInngest(someObj);
const objIsInngestFunction = isInngestFunction(someObj);
const objIsInngestMiddleware = isInngestMiddleware(someObj);
#920 0da1995 Thanks @jpwilliams! - Add support for Standard Schema when specifying event types.
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().
#920 0da1995 Thanks @jpwilliams! - Dropped support for Node 14, 16, and 18, as they are out of LTS
#920 0da1995 Thanks @jpwilliams! - inngest no longer requires an earlier version of zod@3.22.0 as a peer dependency
#920 0da1995 Thanks @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 0da1995 Thanks @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:
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 0da1995 Thanks @jpwilliams! - Middleware now runs like onion layers. For example { middleware: [foo, bar] } now runs:
foo.transformInputbar.transformInputfoo.beforeMemoizationbar.beforeMemoizationbar.afterMemoizationfoo.afterMemoizationfoo.beforeExecutionbar.beforeExecutionbar.afterExecutionfoo.afterExecutionbar.transformOutputfoo.transformOutputfoo finishedbar finishedfoo beforeResponsebar beforeResponseThis should enable middleware to behave correctly when it has to wrap other middleware.
#920 0da1995 Thanks @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
719b9dc Thanks @djfarrelly! - Move server-side only middleware to separate import8ba5486 Thanks @jpwilliams! - SDK appropriately sets "inngest.traceref" for userland otel spans#1068 b43bc02 Thanks @jpwilliams! - Add @inngest/realtime/browser entrypoint to bypass some import issues
Updated dependencies [8ba5486]:
#1045 ec2320a Thanks @jpwilliams! - Add type to step.sendEvent() to differentiate it from other step.run()-based steps
#1050 ac9748f Thanks @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!
#1058 b683116 Thanks @jpwilliams! - Fix errors being thrown on reader close
Updated dependencies [ec2320a, ac9748f]:
abb0e8e Thanks @charlypoly! - Revert "obscure "node:async_hooks" import from bundlers"#1001 fbbb498 Thanks @jpwilliams! - Add streaming support for "inngest/express"
#1013 2ac3a71 Thanks @jacobheric! - Fix errors serialized in the cause field not being deserialized correctly
a1e8adb Thanks @jpwilliams! - Add support for function singletons#989 5e3ec3b Thanks @jpwilliams! - When executing, use the serve() call's client instead of the function's
#997 4120413 Thanks @djfarrelly! - Add connect types for convenience and discoverability
#985 4616919 Thanks @jpwilliams! - Add ability for signal waits to supersede others
await step.waitForSignal("step-id", {
signal: "my-signal",
timeout: "5m",
onConflict: "replace",
});
step.waitForSignal() by @jpwilliams in https://github.com/inngest/inngest-js/pull/979Full Changelog: https://github.com/inngest/inngest-js/compare/@inngest/middleware-encryption@1.0.1...inngest@3.37.0
22ca420 Thanks @jpwilliams! - Use consistent casing for libSodium export35cf326 Thanks @jpwilliams! - Added experimental otel for capturing userland spans#960 fc966ca Thanks @jpwilliams! - Fix requiring signing key for dev in @inngest/realtime
#965 e55d93e Thanks @jpwilliams! - Fix throw of TypeError: Failed to execute 'cancel' on 'ReadableStream': Cannot cancel a locked stream when unmounting or cancelling a stream utilizing the callback feature
#964 e674884 Thanks @jpwilliams! - Fix fanout writers throwing during some closures
#959 50d627e Thanks @jpwilliams! - Fix being unable to access environment variables in some bundled environments
#960 fc966ca Thanks @jpwilliams! - Fix debug log incorrectly displaying topics we're subscribing to