inngest 4.2.5 → 4.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/api/api.cjs +1 -1
- package/api/api.js +1 -1
- package/components/Inngest.cjs +1 -1
- package/components/Inngest.d.cts +7 -1
- package/components/Inngest.d.cts.map +1 -1
- package/components/Inngest.d.ts +7 -1
- package/components/Inngest.d.ts.map +1 -1
- package/components/Inngest.js +1 -1
- package/components/InngestCommHandler.cjs +60 -28
- package/components/InngestCommHandler.cjs.map +1 -1
- package/components/InngestCommHandler.d.cts.map +1 -1
- package/components/InngestCommHandler.d.ts.map +1 -1
- package/components/InngestCommHandler.js +60 -28
- package/components/InngestCommHandler.js.map +1 -1
- package/components/InngestStepTools.cjs +3 -7
- package/components/InngestStepTools.cjs.map +1 -1
- package/components/InngestStepTools.d.cts +10 -7
- package/components/InngestStepTools.d.cts.map +1 -1
- package/components/InngestStepTools.d.ts +10 -7
- package/components/InngestStepTools.d.ts.map +1 -1
- package/components/InngestStepTools.js +3 -7
- package/components/InngestStepTools.js.map +1 -1
- package/components/connect/strategies/core/connection.cjs +91 -11
- package/components/connect/strategies/core/connection.cjs.map +1 -1
- package/components/connect/strategies/core/connection.js +91 -11
- package/components/connect/strategies/core/connection.js.map +1 -1
- package/components/connect/strategies/core/heartbeat.cjs +2 -1
- package/components/connect/strategies/core/heartbeat.cjs.map +1 -1
- package/components/connect/strategies/core/heartbeat.js +2 -1
- package/components/connect/strategies/core/heartbeat.js.map +1 -1
- package/components/connect/strategies/core/requestProcessor.cjs +27 -4
- package/components/connect/strategies/core/requestProcessor.cjs.map +1 -1
- package/components/connect/strategies/core/requestProcessor.js +27 -4
- package/components/connect/strategies/core/requestProcessor.js.map +1 -1
- package/components/connect/strategies/core/types.cjs +21 -0
- package/components/connect/strategies/core/types.cjs.map +1 -0
- package/components/connect/strategies/core/types.js +20 -0
- package/components/connect/strategies/core/types.js.map +1 -0
- package/components/connect/types.cjs.map +1 -1
- package/components/connect/types.d.cts +18 -0
- package/components/connect/types.d.cts.map +1 -1
- package/components/connect/types.d.ts +18 -0
- package/components/connect/types.d.ts.map +1 -1
- package/components/connect/types.js.map +1 -1
- package/components/execution/engine.cjs +1 -1
- package/components/execution/engine.js +1 -1
- package/components/execution/otel/middleware.d.cts +12 -6
- package/components/execution/otel/middleware.d.cts.map +1 -1
- package/components/execution/otel/middleware.d.ts +12 -6
- package/components/execution/otel/middleware.d.ts.map +1 -1
- package/components/middleware/manager.cjs +1 -1
- package/components/middleware/manager.cjs.map +1 -1
- package/components/middleware/manager.js +2 -2
- package/components/middleware/manager.js.map +1 -1
- package/components/middleware/utils.cjs +4 -3
- package/components/middleware/utils.cjs.map +1 -1
- package/components/middleware/utils.js +4 -3
- package/components/middleware/utils.js.map +1 -1
- package/components/realtime/types.d.cts +4 -4
- package/components/realtime/types.d.cts.map +1 -1
- package/components/realtime/types.d.ts +4 -4
- package/components/realtime/types.d.ts.map +1 -1
- package/helpers/consts.cjs +1 -0
- package/helpers/consts.cjs.map +1 -1
- package/helpers/consts.d.cts +1 -0
- package/helpers/consts.d.cts.map +1 -1
- package/helpers/consts.d.ts +1 -0
- package/helpers/consts.d.ts.map +1 -1
- package/helpers/consts.js +1 -0
- package/helpers/consts.js.map +1 -1
- package/helpers/env.cjs +2 -1
- package/helpers/env.cjs.map +1 -1
- package/helpers/env.js +2 -1
- package/helpers/env.js.map +1 -1
- package/helpers/net.cjs +3 -2
- package/helpers/net.cjs.map +1 -1
- package/helpers/net.js +3 -2
- package/helpers/net.js.map +1 -1
- package/helpers/strings.cjs +15 -5
- package/helpers/strings.cjs.map +1 -1
- package/helpers/strings.d.cts.map +1 -1
- package/helpers/strings.d.ts.map +1 -1
- package/helpers/strings.js +15 -6
- package/helpers/strings.js.map +1 -1
- package/helpers/temporal.cjs +2 -0
- package/helpers/temporal.d.ts +3 -0
- package/helpers/temporal.d.ts.map +1 -1
- package/helpers/temporal.js +1 -1
- package/package.json +1 -1
- package/react.d.cts.map +1 -1
- package/types.cjs.map +1 -1
- package/types.d.cts +5 -4
- package/types.d.cts.map +1 -1
- package/types.d.ts +5 -4
- package/types.d.ts.map +1 -1
- package/types.js.map +1 -1
- package/version.cjs +1 -1
- package/version.cjs.map +1 -1
- package/version.d.cts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/version.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.cjs","names":["stepTypeFromOpCode","stepInputFromOpts","opName: string | undefined","isTimeStrInput","timeStr","optsFromStepInput","actualHandler: (() => Promise<unknown>) | undefined","result: Middleware.TransformFunctionInputArgs[\"steps\"]","result: Middleware.TransformFunctionInputArgs","chain: () => Promise<unknown>","result: Middleware.TransformStepInputArgs","UnreachableError"],"sources":["../../../src/components/middleware/manager.ts"],"sourcesContent":["import { timeStr } from \"../../helpers/strings.ts\";\nimport type { Logger } from \"../../middleware/logger.ts\";\nimport type { Context, StepOpCode } from \"../../types.ts\";\nimport type { MemoizedOp } from \"../execution/InngestExecution.ts\";\nimport type { InngestFunction } from \"../InngestFunction.ts\";\nimport type { Middleware } from \"./middleware.ts\";\nimport {\n isTimeStrInput,\n optsFromStepInput,\n stepInputFromOpts,\n stepTypeFromOpCode,\n UnreachableError,\n} from \"./utils.ts\";\n\nexport interface StepInfoOptions {\n hashedId: string;\n userlandId: string;\n displayName?: string;\n memoized: boolean;\n stepType: Middleware.StepType;\n input?: unknown[];\n}\n\nexport interface ApplyToStepInput {\n op: StepOpCode;\n opts?: Record<string, unknown>;\n hashedId: string;\n userlandId: string;\n displayName?: string;\n memoized: boolean;\n}\n\nexport interface PreparedStep {\n entryPoint: () => Promise<unknown>;\n\n /**\n * Only used for sleep steps. The sleep's wake-up time must be in the op name,\n * and that may be changed by the `transformStepInput` hook. The user-facing\n * name is actually the op's `displayName` field (yes, that's confusing).\n */\n opName?: string;\n\n /**\n * For step kinds where middleware input maps to the outgoing op's opts\n * (e.g. invoke, waitForEvent). Derived by reversing `stepInputFromOpts`.\n */\n opOpts?: Record<string, unknown>;\n\n setActualHandler: (handler: () => Promise<unknown>) => void;\n stepInfo: Middleware.StepInfo;\n}\n\n/**\n * Manages middleware. Hides middleware complexity from elsewhere in the\n * codebase. Not for for public use.\n */\nexport class MiddlewareManager {\n private readonly fnArg: Context.Any;\n private readonly getStepState: () => Record<string, MemoizedOp>;\n\n /**\n * Whether any middleware defines `transformStepInput`. Used for perf\n * optimization.\n */\n private readonly hasTransformStepInput: boolean;\n\n /**\n * Whether memoization has ended. Used for idempotency, since memoization must\n * only call once per request.\n */\n private memoizationEnded = false;\n\n private readonly fn: InngestFunction.Any;\n private readonly middleware: Middleware.BaseMiddleware[];\n private readonly internalLogger: Logger;\n\n /**\n * Infinite recursion guard for `wrapStep`. Prevents a middleware from\n * wrapping steps it creates inside its own `wrapStep` via `ctx.step.run`.\n */\n private readonly activeWrapStep = new Set<Middleware.BaseMiddleware>();\n\n constructor(\n fnArg: Context.Any,\n getStepState: () => Record<string, MemoizedOp>,\n middleware: Middleware.BaseMiddleware[] = [],\n fn: InngestFunction.Any,\n logger: Logger,\n ) {\n this.fnArg = fnArg;\n this.getStepState = getStepState;\n this.middleware = middleware;\n this.fn = fn;\n this.internalLogger = logger;\n\n this.hasTransformStepInput = middleware.some((mw) =>\n Boolean(mw?.transformStepInput),\n );\n }\n\n hasMiddleware(): boolean {\n return this.middleware.length > 0;\n }\n\n /**\n * Derives step-kind, extracts input, runs `transformStepInput` middleware,\n * and creates a deferred handler entry point. Does NOT build the wrapStep\n * chain — the caller should do that after any post-processing (e.g. ID\n * collision resolution) so middleware sees final values.\n */\n async applyToStep(input: ApplyToStepInput): Promise<PreparedStep> {\n const stepType = stepTypeFromOpCode(\n input.op,\n input.opts,\n this.internalLogger,\n );\n const stepInput = stepInputFromOpts(stepType, input.opts);\n\n const stepInfo = this.buildStepInfo({\n hashedId: input.hashedId,\n userlandId: input.userlandId,\n displayName: input.displayName,\n memoized: input.memoized,\n stepType,\n input: stepInput,\n });\n\n // Only run transformStepInput if at least one middleware defines it. This\n // avoids some allocations that are unnecessary when no middleware will read\n // or mutate them.\n if (this.hasTransformStepInput) {\n const originalInput = stepInfo.input;\n const transformed = await this.transformStepInput(stepInfo);\n stepInfo.options = transformed.stepOptions;\n\n // Preserve undefined if input wasn't changed from the initial empty array\n if (originalInput === undefined && transformed.input.length === 0) {\n stepInfo.input = undefined;\n } else {\n stepInfo.input = transformed.input;\n }\n }\n\n // For sleep steps, if middleware transformed the input, re-derive the op\n // name (which encodes the wake-up time). If there's no input, the matchOp\n // already set the name directly.\n let opName: string | undefined;\n if (stepType === \"sleep\" && stepInfo.input !== undefined) {\n if (!isTimeStrInput(stepInfo.input[0])) {\n throw new Error(\"Sleep time must be a string, number, or Date\");\n }\n opName = timeStr(stepInfo.input[0]);\n }\n\n // Reverse the input→opts mapping for step kinds where the whole opts\n // object was wrapped as input (e.g. invoke, waitForEvent).\n const opOpts = optsFromStepInput(stepType, stepInfo.input);\n\n // Deferred handler pattern — actual handler set later based on memoization\n let actualHandler: (() => Promise<unknown>) | undefined;\n const entryPoint = async () => {\n if (!actualHandler) {\n throw new Error(\"Handler not initialized\");\n }\n return actualHandler();\n };\n const setActualHandler = (handler: () => Promise<unknown>) => {\n actualHandler = handler;\n };\n\n return {\n entryPoint,\n opName,\n opOpts,\n setActualHandler,\n stepInfo,\n };\n }\n\n private buildStepInfo(opts: StepInfoOptions): Middleware.StepInfo {\n return {\n hashedId: opts.hashedId,\n input: opts.input,\n memoized: opts.memoized,\n options: {\n id: opts.userlandId,\n ...(opts.displayName !== undefined && { name: opts.displayName }),\n },\n stepType: opts.stepType,\n };\n }\n\n private buildSteps(): Middleware.TransformFunctionInputArgs[\"steps\"] {\n const result: Middleware.TransformFunctionInputArgs[\"steps\"] = {};\n const stepState = this.getStepState();\n\n for (const [id, op] of Object.entries(stepState)) {\n if (op.error !== undefined) {\n result[id] = {\n type: \"error\" as const,\n error: op.error,\n };\n } else if (op.input !== undefined) {\n result[id] = {\n type: \"input\" as const,\n input: op.input,\n };\n } else {\n result[id] = {\n type: \"data\" as const,\n data: op.data,\n };\n }\n }\n\n return result;\n }\n\n /**\n * Apply transformFunctionInput middleware in forward order.\n * Each middleware builds on the previous result.\n */\n async transformFunctionInput(): Promise<Middleware.TransformFunctionInputArgs> {\n let result: Middleware.TransformFunctionInputArgs = {\n ctx: this.fnArg,\n fn: this.fn,\n steps: this.buildSteps(),\n };\n\n for (const mw of this.middleware) {\n if (mw?.transformFunctionInput) {\n result = await mw.transformFunctionInput(result);\n }\n }\n\n return result;\n }\n\n /**\n * Wrap a run handler with wrapFunctionHandler middlewares (reverse order for\n * onion layering, same pattern as wrapStepHandler).\n */\n wrapRunHandler(handler: () => Promise<unknown>): () => Promise<unknown> {\n let chain: () => Promise<unknown> = handler;\n for (let i = this.middleware.length - 1; i >= 0; i--) {\n const mw = this.middleware[i];\n if (mw?.wrapFunctionHandler) {\n const next = chain;\n chain = () =>\n mw.wrapFunctionHandler!({\n ctx: this.fnArg,\n fn: this.fn,\n next,\n });\n }\n }\n return chain;\n }\n\n /**\n * Apply transformStepInput middleware in forward order.\n * Each middleware builds on the previous result.\n */\n private async transformStepInput(\n stepInfo: Middleware.StepInfo,\n ): Promise<Middleware.TransformStepInputArgs> {\n let result: Middleware.TransformStepInputArgs = {\n fn: this.fn,\n stepInfo: {\n hashedId: stepInfo.hashedId,\n memoized: stepInfo.memoized,\n stepType: stepInfo.stepType,\n },\n stepOptions: { ...stepInfo.options },\n input: [...(stepInfo.input ?? [])],\n };\n\n for (const mw of this.middleware) {\n if (mw?.transformStepInput) {\n result = await mw.transformStepInput(result);\n }\n }\n\n return result;\n }\n\n /**\n * Wrap a step handler with wrapStep middlewares (reverse order for\n * onion layering). Returns the wrapped handler.\n */\n buildWrapStepChain(\n handler: () => Promise<unknown>,\n stepInfo: Middleware.StepInfo,\n ): () => Promise<unknown> {\n let chain: () => Promise<unknown> = handler;\n for (let i = this.middleware.length - 1; i >= 0; i--) {\n const mw = this.middleware[i];\n if (mw?.wrapStep) {\n const next = chain;\n chain = () => {\n if (!mw.wrapStep) {\n throw new UnreachableError(\"wrapStep is undefined\");\n }\n\n // Infinite recursion guard: skip if this middleware is already\n // executing\n if (this.activeWrapStep.has(mw)) {\n return next();\n }\n\n this.activeWrapStep.add(mw);\n\n // Remove from active while inside next() so only the middleware\n // that directly calls ctx.step.run() is guarded.\n const guardedNext = () => {\n this.activeWrapStep.delete(mw);\n return next().finally(() => {\n this.activeWrapStep.add(mw);\n });\n };\n\n return mw.wrapStep!({\n ctx: this.fnArg,\n fn: this.fn,\n next: guardedNext,\n stepInfo,\n }).finally(() => {\n this.activeWrapStep.delete(mw);\n });\n };\n }\n }\n return chain;\n }\n\n async onStepStart(stepInfo: Middleware.StepInfo): Promise<void> {\n for (const mw of this.middleware) {\n if (mw?.onStepStart) {\n try {\n await mw.onStepStart({\n ctx: this.fnArg,\n fn: this.fn,\n stepInfo,\n });\n } catch (err) {\n this.internalLogger.error(\n {\n err,\n hook: \"onStepStart\",\n mw: mw.id,\n },\n \"middleware error\",\n );\n }\n }\n }\n }\n\n async onStepComplete(\n stepInfo: Middleware.StepInfo,\n output: unknown,\n ): Promise<void> {\n for (const mw of this.middleware) {\n if (mw?.onStepComplete) {\n try {\n await mw.onStepComplete({\n ctx: this.fnArg,\n fn: this.fn,\n output,\n stepInfo,\n });\n } catch (err) {\n this.internalLogger.error(\n {\n err,\n hook: \"onStepComplete\",\n mw: mw.id,\n },\n \"middleware error\",\n );\n }\n }\n }\n }\n\n /**\n * Build a wrapStepHandler chain around the actual step handler.\n * Called once per `step.run` attempt (not for memoized steps).\n * Simpler than buildWrapStepChain — no recursion guard needed.\n */\n buildWrapStepHandlerChain(\n handler: () => Promise<unknown>,\n stepInfo: Middleware.StepInfo,\n ): () => Promise<unknown> {\n let chain: () => Promise<unknown> = handler;\n for (let i = this.middleware.length - 1; i >= 0; i--) {\n const mw = this.middleware[i];\n if (mw?.wrapStepHandler) {\n const next = chain;\n chain = () =>\n mw.wrapStepHandler!({\n ctx: this.fnArg,\n fn: this.fn,\n next,\n stepInfo,\n });\n }\n }\n return chain;\n }\n\n async onStepError(\n stepInfo: Middleware.StepInfo,\n error: Error,\n isFinalAttempt: boolean,\n ): Promise<void> {\n for (const mw of this.middleware) {\n if (mw?.onStepError) {\n try {\n await mw.onStepError({\n ctx: this.fnArg,\n error,\n fn: this.fn,\n isFinalAttempt,\n stepInfo,\n });\n } catch (err) {\n this.internalLogger.error(\n {\n err,\n hook: \"onStepError\",\n mw: mw.id,\n },\n \"middleware error\",\n );\n }\n }\n }\n }\n\n /**\n * Idempotent: safe to call from every code path that might end memoization.\n */\n async onMemoizationEnd(): Promise<void> {\n if (this.memoizationEnded) {\n return;\n }\n this.memoizationEnded = true;\n\n for (const mw of this.middleware) {\n if (mw?.onMemoizationEnd) {\n try {\n await mw.onMemoizationEnd({\n ctx: this.fnArg,\n fn: this.fn,\n });\n } catch (err) {\n this.internalLogger.error(\n {\n err,\n hook: \"onMemoizationEnd\",\n mw: mw.id,\n },\n \"middleware error\",\n );\n }\n }\n }\n }\n\n async onRunStart(): Promise<void> {\n for (const mw of this.middleware) {\n if (mw?.onRunStart) {\n try {\n await mw.onRunStart({\n ctx: this.fnArg,\n fn: this.fn,\n });\n } catch (err) {\n this.internalLogger.error(\n {\n err,\n hook: \"onRunStart\",\n mw: mw.id,\n },\n \"middleware error\",\n );\n }\n }\n }\n }\n\n async onRunComplete(output: unknown): Promise<void> {\n for (const mw of this.middleware) {\n if (mw?.onRunComplete) {\n try {\n await mw.onRunComplete({\n ctx: this.fnArg,\n fn: this.fn,\n output,\n });\n } catch (err) {\n this.internalLogger.error(\n {\n err,\n hook: \"onRunComplete\",\n mw: mw.id,\n },\n \"middleware error\",\n );\n }\n }\n }\n }\n\n async onRunError(error: Error, isFinalAttempt: boolean): Promise<void> {\n for (const mw of this.middleware) {\n if (mw?.onRunError) {\n try {\n await mw.onRunError({\n ctx: this.fnArg,\n error,\n fn: this.fn,\n isFinalAttempt,\n });\n } catch (err) {\n this.internalLogger.error(\n {\n err,\n hook: \"onRunError\",\n mw: mw.id,\n },\n \"middleware error\",\n );\n }\n }\n }\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"manager.cjs","names":["stepTypeFromOpCode","stepInputFromOpts","opName: string | undefined","isSleepInput","timeStr","optsFromStepInput","actualHandler: (() => Promise<unknown>) | undefined","result: Middleware.TransformFunctionInputArgs[\"steps\"]","result: Middleware.TransformFunctionInputArgs","chain: () => Promise<unknown>","result: Middleware.TransformStepInputArgs","UnreachableError"],"sources":["../../../src/components/middleware/manager.ts"],"sourcesContent":["import { timeStr } from \"../../helpers/strings.ts\";\nimport type { Logger } from \"../../middleware/logger.ts\";\nimport type { Context, StepOpCode } from \"../../types.ts\";\nimport type { MemoizedOp } from \"../execution/InngestExecution.ts\";\nimport type { InngestFunction } from \"../InngestFunction.ts\";\nimport type { Middleware } from \"./middleware.ts\";\nimport {\n isSleepInput,\n optsFromStepInput,\n stepInputFromOpts,\n stepTypeFromOpCode,\n UnreachableError,\n} from \"./utils.ts\";\n\nexport interface StepInfoOptions {\n hashedId: string;\n userlandId: string;\n displayName?: string;\n memoized: boolean;\n stepType: Middleware.StepType;\n input?: unknown[];\n}\n\nexport interface ApplyToStepInput {\n op: StepOpCode;\n opts?: Record<string, unknown>;\n hashedId: string;\n userlandId: string;\n displayName?: string;\n memoized: boolean;\n}\n\nexport interface PreparedStep {\n entryPoint: () => Promise<unknown>;\n\n /**\n * Only used for sleep steps. The sleep's wake-up time must be in the op name,\n * and that may be changed by the `transformStepInput` hook. The user-facing\n * name is actually the op's `displayName` field (yes, that's confusing).\n */\n opName?: string;\n\n /**\n * For step kinds where middleware input maps to the outgoing op's opts\n * (e.g. invoke, waitForEvent). Derived by reversing `stepInputFromOpts`.\n */\n opOpts?: Record<string, unknown>;\n\n setActualHandler: (handler: () => Promise<unknown>) => void;\n stepInfo: Middleware.StepInfo;\n}\n\n/**\n * Manages middleware. Hides middleware complexity from elsewhere in the\n * codebase. Not for for public use.\n */\nexport class MiddlewareManager {\n private readonly fnArg: Context.Any;\n private readonly getStepState: () => Record<string, MemoizedOp>;\n\n /**\n * Whether any middleware defines `transformStepInput`. Used for perf\n * optimization.\n */\n private readonly hasTransformStepInput: boolean;\n\n /**\n * Whether memoization has ended. Used for idempotency, since memoization must\n * only call once per request.\n */\n private memoizationEnded = false;\n\n private readonly fn: InngestFunction.Any;\n private readonly middleware: Middleware.BaseMiddleware[];\n private readonly internalLogger: Logger;\n\n /**\n * Infinite recursion guard for `wrapStep`. Prevents a middleware from\n * wrapping steps it creates inside its own `wrapStep` via `ctx.step.run`.\n */\n private readonly activeWrapStep = new Set<Middleware.BaseMiddleware>();\n\n constructor(\n fnArg: Context.Any,\n getStepState: () => Record<string, MemoizedOp>,\n middleware: Middleware.BaseMiddleware[] = [],\n fn: InngestFunction.Any,\n logger: Logger,\n ) {\n this.fnArg = fnArg;\n this.getStepState = getStepState;\n this.middleware = middleware;\n this.fn = fn;\n this.internalLogger = logger;\n\n this.hasTransformStepInput = middleware.some((mw) =>\n Boolean(mw?.transformStepInput),\n );\n }\n\n hasMiddleware(): boolean {\n return this.middleware.length > 0;\n }\n\n /**\n * Derives step-kind, extracts input, runs `transformStepInput` middleware,\n * and creates a deferred handler entry point. Does NOT build the wrapStep\n * chain — the caller should do that after any post-processing (e.g. ID\n * collision resolution) so middleware sees final values.\n */\n async applyToStep(input: ApplyToStepInput): Promise<PreparedStep> {\n const stepType = stepTypeFromOpCode(\n input.op,\n input.opts,\n this.internalLogger,\n );\n const stepInput = stepInputFromOpts(stepType, input.opts);\n\n const stepInfo = this.buildStepInfo({\n hashedId: input.hashedId,\n userlandId: input.userlandId,\n displayName: input.displayName,\n memoized: input.memoized,\n stepType,\n input: stepInput,\n });\n\n // Only run transformStepInput if at least one middleware defines it. This\n // avoids some allocations that are unnecessary when no middleware will read\n // or mutate them.\n if (this.hasTransformStepInput) {\n const originalInput = stepInfo.input;\n const transformed = await this.transformStepInput(stepInfo);\n stepInfo.options = transformed.stepOptions;\n\n // Preserve undefined if input wasn't changed from the initial empty array\n if (originalInput === undefined && transformed.input.length === 0) {\n stepInfo.input = undefined;\n } else {\n stepInfo.input = transformed.input;\n }\n }\n\n // For sleep steps, if middleware transformed the input, re-derive the op\n // name (which encodes the wake-up time). If there's no input, the matchOp\n // already set the name directly.\n let opName: string | undefined;\n if (stepType === \"sleep\" && stepInfo.input !== undefined) {\n if (!isSleepInput(stepInfo.input[0])) {\n throw new Error(\n \"Sleep time must be a string, number, Date, or Temporal.Duration\",\n );\n }\n opName = timeStr(stepInfo.input[0]);\n }\n\n // Reverse the input→opts mapping for step kinds where the whole opts\n // object was wrapped as input (e.g. invoke, waitForEvent).\n const opOpts = optsFromStepInput(stepType, stepInfo.input);\n\n // Deferred handler pattern — actual handler set later based on memoization\n let actualHandler: (() => Promise<unknown>) | undefined;\n const entryPoint = async () => {\n if (!actualHandler) {\n throw new Error(\"Handler not initialized\");\n }\n return actualHandler();\n };\n const setActualHandler = (handler: () => Promise<unknown>) => {\n actualHandler = handler;\n };\n\n return {\n entryPoint,\n opName,\n opOpts,\n setActualHandler,\n stepInfo,\n };\n }\n\n private buildStepInfo(opts: StepInfoOptions): Middleware.StepInfo {\n return {\n hashedId: opts.hashedId,\n input: opts.input,\n memoized: opts.memoized,\n options: {\n id: opts.userlandId,\n ...(opts.displayName !== undefined && { name: opts.displayName }),\n },\n stepType: opts.stepType,\n };\n }\n\n private buildSteps(): Middleware.TransformFunctionInputArgs[\"steps\"] {\n const result: Middleware.TransformFunctionInputArgs[\"steps\"] = {};\n const stepState = this.getStepState();\n\n for (const [id, op] of Object.entries(stepState)) {\n if (op.error !== undefined) {\n result[id] = {\n type: \"error\" as const,\n error: op.error,\n };\n } else if (op.input !== undefined) {\n result[id] = {\n type: \"input\" as const,\n input: op.input,\n };\n } else {\n result[id] = {\n type: \"data\" as const,\n data: op.data,\n };\n }\n }\n\n return result;\n }\n\n /**\n * Apply transformFunctionInput middleware in forward order.\n * Each middleware builds on the previous result.\n */\n async transformFunctionInput(): Promise<Middleware.TransformFunctionInputArgs> {\n let result: Middleware.TransformFunctionInputArgs = {\n ctx: this.fnArg,\n fn: this.fn,\n steps: this.buildSteps(),\n };\n\n for (const mw of this.middleware) {\n if (mw?.transformFunctionInput) {\n result = await mw.transformFunctionInput(result);\n }\n }\n\n return result;\n }\n\n /**\n * Wrap a run handler with wrapFunctionHandler middlewares (reverse order for\n * onion layering, same pattern as wrapStepHandler).\n */\n wrapRunHandler(handler: () => Promise<unknown>): () => Promise<unknown> {\n let chain: () => Promise<unknown> = handler;\n for (let i = this.middleware.length - 1; i >= 0; i--) {\n const mw = this.middleware[i];\n if (mw?.wrapFunctionHandler) {\n const next = chain;\n chain = () =>\n mw.wrapFunctionHandler!({\n ctx: this.fnArg,\n fn: this.fn,\n next,\n });\n }\n }\n return chain;\n }\n\n /**\n * Apply transformStepInput middleware in forward order.\n * Each middleware builds on the previous result.\n */\n private async transformStepInput(\n stepInfo: Middleware.StepInfo,\n ): Promise<Middleware.TransformStepInputArgs> {\n let result: Middleware.TransformStepInputArgs = {\n fn: this.fn,\n stepInfo: {\n hashedId: stepInfo.hashedId,\n memoized: stepInfo.memoized,\n stepType: stepInfo.stepType,\n },\n stepOptions: { ...stepInfo.options },\n input: [...(stepInfo.input ?? [])],\n };\n\n for (const mw of this.middleware) {\n if (mw?.transformStepInput) {\n result = await mw.transformStepInput(result);\n }\n }\n\n return result;\n }\n\n /**\n * Wrap a step handler with wrapStep middlewares (reverse order for\n * onion layering). Returns the wrapped handler.\n */\n buildWrapStepChain(\n handler: () => Promise<unknown>,\n stepInfo: Middleware.StepInfo,\n ): () => Promise<unknown> {\n let chain: () => Promise<unknown> = handler;\n for (let i = this.middleware.length - 1; i >= 0; i--) {\n const mw = this.middleware[i];\n if (mw?.wrapStep) {\n const next = chain;\n chain = () => {\n if (!mw.wrapStep) {\n throw new UnreachableError(\"wrapStep is undefined\");\n }\n\n // Infinite recursion guard: skip if this middleware is already\n // executing\n if (this.activeWrapStep.has(mw)) {\n return next();\n }\n\n this.activeWrapStep.add(mw);\n\n // Remove from active while inside next() so only the middleware\n // that directly calls ctx.step.run() is guarded.\n const guardedNext = () => {\n this.activeWrapStep.delete(mw);\n return next().finally(() => {\n this.activeWrapStep.add(mw);\n });\n };\n\n return mw.wrapStep!({\n ctx: this.fnArg,\n fn: this.fn,\n next: guardedNext,\n stepInfo,\n }).finally(() => {\n this.activeWrapStep.delete(mw);\n });\n };\n }\n }\n return chain;\n }\n\n async onStepStart(stepInfo: Middleware.StepInfo): Promise<void> {\n for (const mw of this.middleware) {\n if (mw?.onStepStart) {\n try {\n await mw.onStepStart({\n ctx: this.fnArg,\n fn: this.fn,\n stepInfo,\n });\n } catch (err) {\n this.internalLogger.error(\n {\n err,\n hook: \"onStepStart\",\n mw: mw.id,\n },\n \"middleware error\",\n );\n }\n }\n }\n }\n\n async onStepComplete(\n stepInfo: Middleware.StepInfo,\n output: unknown,\n ): Promise<void> {\n for (const mw of this.middleware) {\n if (mw?.onStepComplete) {\n try {\n await mw.onStepComplete({\n ctx: this.fnArg,\n fn: this.fn,\n output,\n stepInfo,\n });\n } catch (err) {\n this.internalLogger.error(\n {\n err,\n hook: \"onStepComplete\",\n mw: mw.id,\n },\n \"middleware error\",\n );\n }\n }\n }\n }\n\n /**\n * Build a wrapStepHandler chain around the actual step handler.\n * Called once per `step.run` attempt (not for memoized steps).\n * Simpler than buildWrapStepChain — no recursion guard needed.\n */\n buildWrapStepHandlerChain(\n handler: () => Promise<unknown>,\n stepInfo: Middleware.StepInfo,\n ): () => Promise<unknown> {\n let chain: () => Promise<unknown> = handler;\n for (let i = this.middleware.length - 1; i >= 0; i--) {\n const mw = this.middleware[i];\n if (mw?.wrapStepHandler) {\n const next = chain;\n chain = () =>\n mw.wrapStepHandler!({\n ctx: this.fnArg,\n fn: this.fn,\n next,\n stepInfo,\n });\n }\n }\n return chain;\n }\n\n async onStepError(\n stepInfo: Middleware.StepInfo,\n error: Error,\n isFinalAttempt: boolean,\n ): Promise<void> {\n for (const mw of this.middleware) {\n if (mw?.onStepError) {\n try {\n await mw.onStepError({\n ctx: this.fnArg,\n error,\n fn: this.fn,\n isFinalAttempt,\n stepInfo,\n });\n } catch (err) {\n this.internalLogger.error(\n {\n err,\n hook: \"onStepError\",\n mw: mw.id,\n },\n \"middleware error\",\n );\n }\n }\n }\n }\n\n /**\n * Idempotent: safe to call from every code path that might end memoization.\n */\n async onMemoizationEnd(): Promise<void> {\n if (this.memoizationEnded) {\n return;\n }\n this.memoizationEnded = true;\n\n for (const mw of this.middleware) {\n if (mw?.onMemoizationEnd) {\n try {\n await mw.onMemoizationEnd({\n ctx: this.fnArg,\n fn: this.fn,\n });\n } catch (err) {\n this.internalLogger.error(\n {\n err,\n hook: \"onMemoizationEnd\",\n mw: mw.id,\n },\n \"middleware error\",\n );\n }\n }\n }\n }\n\n async onRunStart(): Promise<void> {\n for (const mw of this.middleware) {\n if (mw?.onRunStart) {\n try {\n await mw.onRunStart({\n ctx: this.fnArg,\n fn: this.fn,\n });\n } catch (err) {\n this.internalLogger.error(\n {\n err,\n hook: \"onRunStart\",\n mw: mw.id,\n },\n \"middleware error\",\n );\n }\n }\n }\n }\n\n async onRunComplete(output: unknown): Promise<void> {\n for (const mw of this.middleware) {\n if (mw?.onRunComplete) {\n try {\n await mw.onRunComplete({\n ctx: this.fnArg,\n fn: this.fn,\n output,\n });\n } catch (err) {\n this.internalLogger.error(\n {\n err,\n hook: \"onRunComplete\",\n mw: mw.id,\n },\n \"middleware error\",\n );\n }\n }\n }\n }\n\n async onRunError(error: Error, isFinalAttempt: boolean): Promise<void> {\n for (const mw of this.middleware) {\n if (mw?.onRunError) {\n try {\n await mw.onRunError({\n ctx: this.fnArg,\n error,\n fn: this.fn,\n isFinalAttempt,\n });\n } catch (err) {\n this.internalLogger.error(\n {\n err,\n hook: \"onRunError\",\n mw: mw.id,\n },\n \"middleware error\",\n );\n }\n }\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { timeStr } from "../../helpers/strings.js";
|
|
2
|
-
import { UnreachableError,
|
|
2
|
+
import { UnreachableError, isSleepInput, optsFromStepInput, stepInputFromOpts, stepTypeFromOpCode } from "./utils.js";
|
|
3
3
|
|
|
4
4
|
//#region src/components/middleware/manager.ts
|
|
5
5
|
/**
|
|
@@ -64,7 +64,7 @@ var MiddlewareManager = class {
|
|
|
64
64
|
}
|
|
65
65
|
let opName;
|
|
66
66
|
if (stepType === "sleep" && stepInfo.input !== void 0) {
|
|
67
|
-
if (!
|
|
67
|
+
if (!isSleepInput(stepInfo.input[0])) throw new Error("Sleep time must be a string, number, Date, or Temporal.Duration");
|
|
68
68
|
opName = timeStr(stepInfo.input[0]);
|
|
69
69
|
}
|
|
70
70
|
const opOpts = optsFromStepInput(stepType, stepInfo.input);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","names":["opName: string | undefined","actualHandler: (() => Promise<unknown>) | undefined","result: Middleware.TransformFunctionInputArgs[\"steps\"]","result: Middleware.TransformFunctionInputArgs","chain: () => Promise<unknown>","result: Middleware.TransformStepInputArgs"],"sources":["../../../src/components/middleware/manager.ts"],"sourcesContent":["import { timeStr } from \"../../helpers/strings.ts\";\nimport type { Logger } from \"../../middleware/logger.ts\";\nimport type { Context, StepOpCode } from \"../../types.ts\";\nimport type { MemoizedOp } from \"../execution/InngestExecution.ts\";\nimport type { InngestFunction } from \"../InngestFunction.ts\";\nimport type { Middleware } from \"./middleware.ts\";\nimport {\n isTimeStrInput,\n optsFromStepInput,\n stepInputFromOpts,\n stepTypeFromOpCode,\n UnreachableError,\n} from \"./utils.ts\";\n\nexport interface StepInfoOptions {\n hashedId: string;\n userlandId: string;\n displayName?: string;\n memoized: boolean;\n stepType: Middleware.StepType;\n input?: unknown[];\n}\n\nexport interface ApplyToStepInput {\n op: StepOpCode;\n opts?: Record<string, unknown>;\n hashedId: string;\n userlandId: string;\n displayName?: string;\n memoized: boolean;\n}\n\nexport interface PreparedStep {\n entryPoint: () => Promise<unknown>;\n\n /**\n * Only used for sleep steps. The sleep's wake-up time must be in the op name,\n * and that may be changed by the `transformStepInput` hook. The user-facing\n * name is actually the op's `displayName` field (yes, that's confusing).\n */\n opName?: string;\n\n /**\n * For step kinds where middleware input maps to the outgoing op's opts\n * (e.g. invoke, waitForEvent). Derived by reversing `stepInputFromOpts`.\n */\n opOpts?: Record<string, unknown>;\n\n setActualHandler: (handler: () => Promise<unknown>) => void;\n stepInfo: Middleware.StepInfo;\n}\n\n/**\n * Manages middleware. Hides middleware complexity from elsewhere in the\n * codebase. Not for for public use.\n */\nexport class MiddlewareManager {\n private readonly fnArg: Context.Any;\n private readonly getStepState: () => Record<string, MemoizedOp>;\n\n /**\n * Whether any middleware defines `transformStepInput`. Used for perf\n * optimization.\n */\n private readonly hasTransformStepInput: boolean;\n\n /**\n * Whether memoization has ended. Used for idempotency, since memoization must\n * only call once per request.\n */\n private memoizationEnded = false;\n\n private readonly fn: InngestFunction.Any;\n private readonly middleware: Middleware.BaseMiddleware[];\n private readonly internalLogger: Logger;\n\n /**\n * Infinite recursion guard for `wrapStep`. Prevents a middleware from\n * wrapping steps it creates inside its own `wrapStep` via `ctx.step.run`.\n */\n private readonly activeWrapStep = new Set<Middleware.BaseMiddleware>();\n\n constructor(\n fnArg: Context.Any,\n getStepState: () => Record<string, MemoizedOp>,\n middleware: Middleware.BaseMiddleware[] = [],\n fn: InngestFunction.Any,\n logger: Logger,\n ) {\n this.fnArg = fnArg;\n this.getStepState = getStepState;\n this.middleware = middleware;\n this.fn = fn;\n this.internalLogger = logger;\n\n this.hasTransformStepInput = middleware.some((mw) =>\n Boolean(mw?.transformStepInput),\n );\n }\n\n hasMiddleware(): boolean {\n return this.middleware.length > 0;\n }\n\n /**\n * Derives step-kind, extracts input, runs `transformStepInput` middleware,\n * and creates a deferred handler entry point. Does NOT build the wrapStep\n * chain — the caller should do that after any post-processing (e.g. ID\n * collision resolution) so middleware sees final values.\n */\n async applyToStep(input: ApplyToStepInput): Promise<PreparedStep> {\n const stepType = stepTypeFromOpCode(\n input.op,\n input.opts,\n this.internalLogger,\n );\n const stepInput = stepInputFromOpts(stepType, input.opts);\n\n const stepInfo = this.buildStepInfo({\n hashedId: input.hashedId,\n userlandId: input.userlandId,\n displayName: input.displayName,\n memoized: input.memoized,\n stepType,\n input: stepInput,\n });\n\n // Only run transformStepInput if at least one middleware defines it. This\n // avoids some allocations that are unnecessary when no middleware will read\n // or mutate them.\n if (this.hasTransformStepInput) {\n const originalInput = stepInfo.input;\n const transformed = await this.transformStepInput(stepInfo);\n stepInfo.options = transformed.stepOptions;\n\n // Preserve undefined if input wasn't changed from the initial empty array\n if (originalInput === undefined && transformed.input.length === 0) {\n stepInfo.input = undefined;\n } else {\n stepInfo.input = transformed.input;\n }\n }\n\n // For sleep steps, if middleware transformed the input, re-derive the op\n // name (which encodes the wake-up time). If there's no input, the matchOp\n // already set the name directly.\n let opName: string | undefined;\n if (stepType === \"sleep\" && stepInfo.input !== undefined) {\n if (!isTimeStrInput(stepInfo.input[0])) {\n throw new Error(\"Sleep time must be a string, number, or Date\");\n }\n opName = timeStr(stepInfo.input[0]);\n }\n\n // Reverse the input→opts mapping for step kinds where the whole opts\n // object was wrapped as input (e.g. invoke, waitForEvent).\n const opOpts = optsFromStepInput(stepType, stepInfo.input);\n\n // Deferred handler pattern — actual handler set later based on memoization\n let actualHandler: (() => Promise<unknown>) | undefined;\n const entryPoint = async () => {\n if (!actualHandler) {\n throw new Error(\"Handler not initialized\");\n }\n return actualHandler();\n };\n const setActualHandler = (handler: () => Promise<unknown>) => {\n actualHandler = handler;\n };\n\n return {\n entryPoint,\n opName,\n opOpts,\n setActualHandler,\n stepInfo,\n };\n }\n\n private buildStepInfo(opts: StepInfoOptions): Middleware.StepInfo {\n return {\n hashedId: opts.hashedId,\n input: opts.input,\n memoized: opts.memoized,\n options: {\n id: opts.userlandId,\n ...(opts.displayName !== undefined && { name: opts.displayName }),\n },\n stepType: opts.stepType,\n };\n }\n\n private buildSteps(): Middleware.TransformFunctionInputArgs[\"steps\"] {\n const result: Middleware.TransformFunctionInputArgs[\"steps\"] = {};\n const stepState = this.getStepState();\n\n for (const [id, op] of Object.entries(stepState)) {\n if (op.error !== undefined) {\n result[id] = {\n type: \"error\" as const,\n error: op.error,\n };\n } else if (op.input !== undefined) {\n result[id] = {\n type: \"input\" as const,\n input: op.input,\n };\n } else {\n result[id] = {\n type: \"data\" as const,\n data: op.data,\n };\n }\n }\n\n return result;\n }\n\n /**\n * Apply transformFunctionInput middleware in forward order.\n * Each middleware builds on the previous result.\n */\n async transformFunctionInput(): Promise<Middleware.TransformFunctionInputArgs> {\n let result: Middleware.TransformFunctionInputArgs = {\n ctx: this.fnArg,\n fn: this.fn,\n steps: this.buildSteps(),\n };\n\n for (const mw of this.middleware) {\n if (mw?.transformFunctionInput) {\n result = await mw.transformFunctionInput(result);\n }\n }\n\n return result;\n }\n\n /**\n * Wrap a run handler with wrapFunctionHandler middlewares (reverse order for\n * onion layering, same pattern as wrapStepHandler).\n */\n wrapRunHandler(handler: () => Promise<unknown>): () => Promise<unknown> {\n let chain: () => Promise<unknown> = handler;\n for (let i = this.middleware.length - 1; i >= 0; i--) {\n const mw = this.middleware[i];\n if (mw?.wrapFunctionHandler) {\n const next = chain;\n chain = () =>\n mw.wrapFunctionHandler!({\n ctx: this.fnArg,\n fn: this.fn,\n next,\n });\n }\n }\n return chain;\n }\n\n /**\n * Apply transformStepInput middleware in forward order.\n * Each middleware builds on the previous result.\n */\n private async transformStepInput(\n stepInfo: Middleware.StepInfo,\n ): Promise<Middleware.TransformStepInputArgs> {\n let result: Middleware.TransformStepInputArgs = {\n fn: this.fn,\n stepInfo: {\n hashedId: stepInfo.hashedId,\n memoized: stepInfo.memoized,\n stepType: stepInfo.stepType,\n },\n stepOptions: { ...stepInfo.options },\n input: [...(stepInfo.input ?? [])],\n };\n\n for (const mw of this.middleware) {\n if (mw?.transformStepInput) {\n result = await mw.transformStepInput(result);\n }\n }\n\n return result;\n }\n\n /**\n * Wrap a step handler with wrapStep middlewares (reverse order for\n * onion layering). Returns the wrapped handler.\n */\n buildWrapStepChain(\n handler: () => Promise<unknown>,\n stepInfo: Middleware.StepInfo,\n ): () => Promise<unknown> {\n let chain: () => Promise<unknown> = handler;\n for (let i = this.middleware.length - 1; i >= 0; i--) {\n const mw = this.middleware[i];\n if (mw?.wrapStep) {\n const next = chain;\n chain = () => {\n if (!mw.wrapStep) {\n throw new UnreachableError(\"wrapStep is undefined\");\n }\n\n // Infinite recursion guard: skip if this middleware is already\n // executing\n if (this.activeWrapStep.has(mw)) {\n return next();\n }\n\n this.activeWrapStep.add(mw);\n\n // Remove from active while inside next() so only the middleware\n // that directly calls ctx.step.run() is guarded.\n const guardedNext = () => {\n this.activeWrapStep.delete(mw);\n return next().finally(() => {\n this.activeWrapStep.add(mw);\n });\n };\n\n return mw.wrapStep!({\n ctx: this.fnArg,\n fn: this.fn,\n next: guardedNext,\n stepInfo,\n }).finally(() => {\n this.activeWrapStep.delete(mw);\n });\n };\n }\n }\n return chain;\n }\n\n async onStepStart(stepInfo: Middleware.StepInfo): Promise<void> {\n for (const mw of this.middleware) {\n if (mw?.onStepStart) {\n try {\n await mw.onStepStart({\n ctx: this.fnArg,\n fn: this.fn,\n stepInfo,\n });\n } catch (err) {\n this.internalLogger.error(\n {\n err,\n hook: \"onStepStart\",\n mw: mw.id,\n },\n \"middleware error\",\n );\n }\n }\n }\n }\n\n async onStepComplete(\n stepInfo: Middleware.StepInfo,\n output: unknown,\n ): Promise<void> {\n for (const mw of this.middleware) {\n if (mw?.onStepComplete) {\n try {\n await mw.onStepComplete({\n ctx: this.fnArg,\n fn: this.fn,\n output,\n stepInfo,\n });\n } catch (err) {\n this.internalLogger.error(\n {\n err,\n hook: \"onStepComplete\",\n mw: mw.id,\n },\n \"middleware error\",\n );\n }\n }\n }\n }\n\n /**\n * Build a wrapStepHandler chain around the actual step handler.\n * Called once per `step.run` attempt (not for memoized steps).\n * Simpler than buildWrapStepChain — no recursion guard needed.\n */\n buildWrapStepHandlerChain(\n handler: () => Promise<unknown>,\n stepInfo: Middleware.StepInfo,\n ): () => Promise<unknown> {\n let chain: () => Promise<unknown> = handler;\n for (let i = this.middleware.length - 1; i >= 0; i--) {\n const mw = this.middleware[i];\n if (mw?.wrapStepHandler) {\n const next = chain;\n chain = () =>\n mw.wrapStepHandler!({\n ctx: this.fnArg,\n fn: this.fn,\n next,\n stepInfo,\n });\n }\n }\n return chain;\n }\n\n async onStepError(\n stepInfo: Middleware.StepInfo,\n error: Error,\n isFinalAttempt: boolean,\n ): Promise<void> {\n for (const mw of this.middleware) {\n if (mw?.onStepError) {\n try {\n await mw.onStepError({\n ctx: this.fnArg,\n error,\n fn: this.fn,\n isFinalAttempt,\n stepInfo,\n });\n } catch (err) {\n this.internalLogger.error(\n {\n err,\n hook: \"onStepError\",\n mw: mw.id,\n },\n \"middleware error\",\n );\n }\n }\n }\n }\n\n /**\n * Idempotent: safe to call from every code path that might end memoization.\n */\n async onMemoizationEnd(): Promise<void> {\n if (this.memoizationEnded) {\n return;\n }\n this.memoizationEnded = true;\n\n for (const mw of this.middleware) {\n if (mw?.onMemoizationEnd) {\n try {\n await mw.onMemoizationEnd({\n ctx: this.fnArg,\n fn: this.fn,\n });\n } catch (err) {\n this.internalLogger.error(\n {\n err,\n hook: \"onMemoizationEnd\",\n mw: mw.id,\n },\n \"middleware error\",\n );\n }\n }\n }\n }\n\n async onRunStart(): Promise<void> {\n for (const mw of this.middleware) {\n if (mw?.onRunStart) {\n try {\n await mw.onRunStart({\n ctx: this.fnArg,\n fn: this.fn,\n });\n } catch (err) {\n this.internalLogger.error(\n {\n err,\n hook: \"onRunStart\",\n mw: mw.id,\n },\n \"middleware error\",\n );\n }\n }\n }\n }\n\n async onRunComplete(output: unknown): Promise<void> {\n for (const mw of this.middleware) {\n if (mw?.onRunComplete) {\n try {\n await mw.onRunComplete({\n ctx: this.fnArg,\n fn: this.fn,\n output,\n });\n } catch (err) {\n this.internalLogger.error(\n {\n err,\n hook: \"onRunComplete\",\n mw: mw.id,\n },\n \"middleware error\",\n );\n }\n }\n }\n }\n\n async onRunError(error: Error, isFinalAttempt: boolean): Promise<void> {\n for (const mw of this.middleware) {\n if (mw?.onRunError) {\n try {\n await mw.onRunError({\n ctx: this.fnArg,\n error,\n fn: this.fn,\n isFinalAttempt,\n });\n } catch (err) {\n this.internalLogger.error(\n {\n err,\n hook: \"onRunError\",\n mw: mw.id,\n },\n \"middleware error\",\n );\n }\n }\n }\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"manager.js","names":["opName: string | undefined","actualHandler: (() => Promise<unknown>) | undefined","result: Middleware.TransformFunctionInputArgs[\"steps\"]","result: Middleware.TransformFunctionInputArgs","chain: () => Promise<unknown>","result: Middleware.TransformStepInputArgs"],"sources":["../../../src/components/middleware/manager.ts"],"sourcesContent":["import { timeStr } from \"../../helpers/strings.ts\";\nimport type { Logger } from \"../../middleware/logger.ts\";\nimport type { Context, StepOpCode } from \"../../types.ts\";\nimport type { MemoizedOp } from \"../execution/InngestExecution.ts\";\nimport type { InngestFunction } from \"../InngestFunction.ts\";\nimport type { Middleware } from \"./middleware.ts\";\nimport {\n isSleepInput,\n optsFromStepInput,\n stepInputFromOpts,\n stepTypeFromOpCode,\n UnreachableError,\n} from \"./utils.ts\";\n\nexport interface StepInfoOptions {\n hashedId: string;\n userlandId: string;\n displayName?: string;\n memoized: boolean;\n stepType: Middleware.StepType;\n input?: unknown[];\n}\n\nexport interface ApplyToStepInput {\n op: StepOpCode;\n opts?: Record<string, unknown>;\n hashedId: string;\n userlandId: string;\n displayName?: string;\n memoized: boolean;\n}\n\nexport interface PreparedStep {\n entryPoint: () => Promise<unknown>;\n\n /**\n * Only used for sleep steps. The sleep's wake-up time must be in the op name,\n * and that may be changed by the `transformStepInput` hook. The user-facing\n * name is actually the op's `displayName` field (yes, that's confusing).\n */\n opName?: string;\n\n /**\n * For step kinds where middleware input maps to the outgoing op's opts\n * (e.g. invoke, waitForEvent). Derived by reversing `stepInputFromOpts`.\n */\n opOpts?: Record<string, unknown>;\n\n setActualHandler: (handler: () => Promise<unknown>) => void;\n stepInfo: Middleware.StepInfo;\n}\n\n/**\n * Manages middleware. Hides middleware complexity from elsewhere in the\n * codebase. Not for for public use.\n */\nexport class MiddlewareManager {\n private readonly fnArg: Context.Any;\n private readonly getStepState: () => Record<string, MemoizedOp>;\n\n /**\n * Whether any middleware defines `transformStepInput`. Used for perf\n * optimization.\n */\n private readonly hasTransformStepInput: boolean;\n\n /**\n * Whether memoization has ended. Used for idempotency, since memoization must\n * only call once per request.\n */\n private memoizationEnded = false;\n\n private readonly fn: InngestFunction.Any;\n private readonly middleware: Middleware.BaseMiddleware[];\n private readonly internalLogger: Logger;\n\n /**\n * Infinite recursion guard for `wrapStep`. Prevents a middleware from\n * wrapping steps it creates inside its own `wrapStep` via `ctx.step.run`.\n */\n private readonly activeWrapStep = new Set<Middleware.BaseMiddleware>();\n\n constructor(\n fnArg: Context.Any,\n getStepState: () => Record<string, MemoizedOp>,\n middleware: Middleware.BaseMiddleware[] = [],\n fn: InngestFunction.Any,\n logger: Logger,\n ) {\n this.fnArg = fnArg;\n this.getStepState = getStepState;\n this.middleware = middleware;\n this.fn = fn;\n this.internalLogger = logger;\n\n this.hasTransformStepInput = middleware.some((mw) =>\n Boolean(mw?.transformStepInput),\n );\n }\n\n hasMiddleware(): boolean {\n return this.middleware.length > 0;\n }\n\n /**\n * Derives step-kind, extracts input, runs `transformStepInput` middleware,\n * and creates a deferred handler entry point. Does NOT build the wrapStep\n * chain — the caller should do that after any post-processing (e.g. ID\n * collision resolution) so middleware sees final values.\n */\n async applyToStep(input: ApplyToStepInput): Promise<PreparedStep> {\n const stepType = stepTypeFromOpCode(\n input.op,\n input.opts,\n this.internalLogger,\n );\n const stepInput = stepInputFromOpts(stepType, input.opts);\n\n const stepInfo = this.buildStepInfo({\n hashedId: input.hashedId,\n userlandId: input.userlandId,\n displayName: input.displayName,\n memoized: input.memoized,\n stepType,\n input: stepInput,\n });\n\n // Only run transformStepInput if at least one middleware defines it. This\n // avoids some allocations that are unnecessary when no middleware will read\n // or mutate them.\n if (this.hasTransformStepInput) {\n const originalInput = stepInfo.input;\n const transformed = await this.transformStepInput(stepInfo);\n stepInfo.options = transformed.stepOptions;\n\n // Preserve undefined if input wasn't changed from the initial empty array\n if (originalInput === undefined && transformed.input.length === 0) {\n stepInfo.input = undefined;\n } else {\n stepInfo.input = transformed.input;\n }\n }\n\n // For sleep steps, if middleware transformed the input, re-derive the op\n // name (which encodes the wake-up time). If there's no input, the matchOp\n // already set the name directly.\n let opName: string | undefined;\n if (stepType === \"sleep\" && stepInfo.input !== undefined) {\n if (!isSleepInput(stepInfo.input[0])) {\n throw new Error(\n \"Sleep time must be a string, number, Date, or Temporal.Duration\",\n );\n }\n opName = timeStr(stepInfo.input[0]);\n }\n\n // Reverse the input→opts mapping for step kinds where the whole opts\n // object was wrapped as input (e.g. invoke, waitForEvent).\n const opOpts = optsFromStepInput(stepType, stepInfo.input);\n\n // Deferred handler pattern — actual handler set later based on memoization\n let actualHandler: (() => Promise<unknown>) | undefined;\n const entryPoint = async () => {\n if (!actualHandler) {\n throw new Error(\"Handler not initialized\");\n }\n return actualHandler();\n };\n const setActualHandler = (handler: () => Promise<unknown>) => {\n actualHandler = handler;\n };\n\n return {\n entryPoint,\n opName,\n opOpts,\n setActualHandler,\n stepInfo,\n };\n }\n\n private buildStepInfo(opts: StepInfoOptions): Middleware.StepInfo {\n return {\n hashedId: opts.hashedId,\n input: opts.input,\n memoized: opts.memoized,\n options: {\n id: opts.userlandId,\n ...(opts.displayName !== undefined && { name: opts.displayName }),\n },\n stepType: opts.stepType,\n };\n }\n\n private buildSteps(): Middleware.TransformFunctionInputArgs[\"steps\"] {\n const result: Middleware.TransformFunctionInputArgs[\"steps\"] = {};\n const stepState = this.getStepState();\n\n for (const [id, op] of Object.entries(stepState)) {\n if (op.error !== undefined) {\n result[id] = {\n type: \"error\" as const,\n error: op.error,\n };\n } else if (op.input !== undefined) {\n result[id] = {\n type: \"input\" as const,\n input: op.input,\n };\n } else {\n result[id] = {\n type: \"data\" as const,\n data: op.data,\n };\n }\n }\n\n return result;\n }\n\n /**\n * Apply transformFunctionInput middleware in forward order.\n * Each middleware builds on the previous result.\n */\n async transformFunctionInput(): Promise<Middleware.TransformFunctionInputArgs> {\n let result: Middleware.TransformFunctionInputArgs = {\n ctx: this.fnArg,\n fn: this.fn,\n steps: this.buildSteps(),\n };\n\n for (const mw of this.middleware) {\n if (mw?.transformFunctionInput) {\n result = await mw.transformFunctionInput(result);\n }\n }\n\n return result;\n }\n\n /**\n * Wrap a run handler with wrapFunctionHandler middlewares (reverse order for\n * onion layering, same pattern as wrapStepHandler).\n */\n wrapRunHandler(handler: () => Promise<unknown>): () => Promise<unknown> {\n let chain: () => Promise<unknown> = handler;\n for (let i = this.middleware.length - 1; i >= 0; i--) {\n const mw = this.middleware[i];\n if (mw?.wrapFunctionHandler) {\n const next = chain;\n chain = () =>\n mw.wrapFunctionHandler!({\n ctx: this.fnArg,\n fn: this.fn,\n next,\n });\n }\n }\n return chain;\n }\n\n /**\n * Apply transformStepInput middleware in forward order.\n * Each middleware builds on the previous result.\n */\n private async transformStepInput(\n stepInfo: Middleware.StepInfo,\n ): Promise<Middleware.TransformStepInputArgs> {\n let result: Middleware.TransformStepInputArgs = {\n fn: this.fn,\n stepInfo: {\n hashedId: stepInfo.hashedId,\n memoized: stepInfo.memoized,\n stepType: stepInfo.stepType,\n },\n stepOptions: { ...stepInfo.options },\n input: [...(stepInfo.input ?? [])],\n };\n\n for (const mw of this.middleware) {\n if (mw?.transformStepInput) {\n result = await mw.transformStepInput(result);\n }\n }\n\n return result;\n }\n\n /**\n * Wrap a step handler with wrapStep middlewares (reverse order for\n * onion layering). Returns the wrapped handler.\n */\n buildWrapStepChain(\n handler: () => Promise<unknown>,\n stepInfo: Middleware.StepInfo,\n ): () => Promise<unknown> {\n let chain: () => Promise<unknown> = handler;\n for (let i = this.middleware.length - 1; i >= 0; i--) {\n const mw = this.middleware[i];\n if (mw?.wrapStep) {\n const next = chain;\n chain = () => {\n if (!mw.wrapStep) {\n throw new UnreachableError(\"wrapStep is undefined\");\n }\n\n // Infinite recursion guard: skip if this middleware is already\n // executing\n if (this.activeWrapStep.has(mw)) {\n return next();\n }\n\n this.activeWrapStep.add(mw);\n\n // Remove from active while inside next() so only the middleware\n // that directly calls ctx.step.run() is guarded.\n const guardedNext = () => {\n this.activeWrapStep.delete(mw);\n return next().finally(() => {\n this.activeWrapStep.add(mw);\n });\n };\n\n return mw.wrapStep!({\n ctx: this.fnArg,\n fn: this.fn,\n next: guardedNext,\n stepInfo,\n }).finally(() => {\n this.activeWrapStep.delete(mw);\n });\n };\n }\n }\n return chain;\n }\n\n async onStepStart(stepInfo: Middleware.StepInfo): Promise<void> {\n for (const mw of this.middleware) {\n if (mw?.onStepStart) {\n try {\n await mw.onStepStart({\n ctx: this.fnArg,\n fn: this.fn,\n stepInfo,\n });\n } catch (err) {\n this.internalLogger.error(\n {\n err,\n hook: \"onStepStart\",\n mw: mw.id,\n },\n \"middleware error\",\n );\n }\n }\n }\n }\n\n async onStepComplete(\n stepInfo: Middleware.StepInfo,\n output: unknown,\n ): Promise<void> {\n for (const mw of this.middleware) {\n if (mw?.onStepComplete) {\n try {\n await mw.onStepComplete({\n ctx: this.fnArg,\n fn: this.fn,\n output,\n stepInfo,\n });\n } catch (err) {\n this.internalLogger.error(\n {\n err,\n hook: \"onStepComplete\",\n mw: mw.id,\n },\n \"middleware error\",\n );\n }\n }\n }\n }\n\n /**\n * Build a wrapStepHandler chain around the actual step handler.\n * Called once per `step.run` attempt (not for memoized steps).\n * Simpler than buildWrapStepChain — no recursion guard needed.\n */\n buildWrapStepHandlerChain(\n handler: () => Promise<unknown>,\n stepInfo: Middleware.StepInfo,\n ): () => Promise<unknown> {\n let chain: () => Promise<unknown> = handler;\n for (let i = this.middleware.length - 1; i >= 0; i--) {\n const mw = this.middleware[i];\n if (mw?.wrapStepHandler) {\n const next = chain;\n chain = () =>\n mw.wrapStepHandler!({\n ctx: this.fnArg,\n fn: this.fn,\n next,\n stepInfo,\n });\n }\n }\n return chain;\n }\n\n async onStepError(\n stepInfo: Middleware.StepInfo,\n error: Error,\n isFinalAttempt: boolean,\n ): Promise<void> {\n for (const mw of this.middleware) {\n if (mw?.onStepError) {\n try {\n await mw.onStepError({\n ctx: this.fnArg,\n error,\n fn: this.fn,\n isFinalAttempt,\n stepInfo,\n });\n } catch (err) {\n this.internalLogger.error(\n {\n err,\n hook: \"onStepError\",\n mw: mw.id,\n },\n \"middleware error\",\n );\n }\n }\n }\n }\n\n /**\n * Idempotent: safe to call from every code path that might end memoization.\n */\n async onMemoizationEnd(): Promise<void> {\n if (this.memoizationEnded) {\n return;\n }\n this.memoizationEnded = true;\n\n for (const mw of this.middleware) {\n if (mw?.onMemoizationEnd) {\n try {\n await mw.onMemoizationEnd({\n ctx: this.fnArg,\n fn: this.fn,\n });\n } catch (err) {\n this.internalLogger.error(\n {\n err,\n hook: \"onMemoizationEnd\",\n mw: mw.id,\n },\n \"middleware error\",\n );\n }\n }\n }\n }\n\n async onRunStart(): Promise<void> {\n for (const mw of this.middleware) {\n if (mw?.onRunStart) {\n try {\n await mw.onRunStart({\n ctx: this.fnArg,\n fn: this.fn,\n });\n } catch (err) {\n this.internalLogger.error(\n {\n err,\n hook: \"onRunStart\",\n mw: mw.id,\n },\n \"middleware error\",\n );\n }\n }\n }\n }\n\n async onRunComplete(output: unknown): Promise<void> {\n for (const mw of this.middleware) {\n if (mw?.onRunComplete) {\n try {\n await mw.onRunComplete({\n ctx: this.fnArg,\n fn: this.fn,\n output,\n });\n } catch (err) {\n this.internalLogger.error(\n {\n err,\n hook: \"onRunComplete\",\n mw: mw.id,\n },\n \"middleware error\",\n );\n }\n }\n }\n }\n\n async onRunError(error: Error, isFinalAttempt: boolean): Promise<void> {\n for (const mw of this.middleware) {\n if (mw?.onRunError) {\n try {\n await mw.onRunError({\n ctx: this.fnArg,\n error,\n fn: this.fn,\n isFinalAttempt,\n });\n } catch (err) {\n this.internalLogger.error(\n {\n err,\n hook: \"onRunError\",\n mw: mw.id,\n },\n \"middleware error\",\n );\n }\n }\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
const require_types = require('../../types.cjs');
|
|
2
2
|
const require_types$1 = require('../../helpers/types.cjs');
|
|
3
|
+
const require_temporal = require('../../helpers/temporal.cjs');
|
|
3
4
|
|
|
4
5
|
//#region src/components/middleware/utils.ts
|
|
5
|
-
function
|
|
6
|
-
return typeof value === "string" || typeof value === "number" || value instanceof Date;
|
|
6
|
+
function isSleepInput(value) {
|
|
7
|
+
return typeof value === "string" || typeof value === "number" || value instanceof Date || require_temporal.isTemporalDuration(value);
|
|
7
8
|
}
|
|
8
9
|
/**
|
|
9
10
|
* Build an onion-style middleware chain for `wrapSendEvent`.
|
|
@@ -109,7 +110,7 @@ var UnreachableError = class extends Error {
|
|
|
109
110
|
exports.UnreachableError = UnreachableError;
|
|
110
111
|
exports.buildWrapRequestChain = buildWrapRequestChain;
|
|
111
112
|
exports.buildWrapSendEventChain = buildWrapSendEventChain;
|
|
112
|
-
exports.
|
|
113
|
+
exports.isSleepInput = isSleepInput;
|
|
113
114
|
exports.optsFromStepInput = optsFromStepInput;
|
|
114
115
|
exports.stepInputFromOpts = stepInputFromOpts;
|
|
115
116
|
exports.stepTypeFromOpCode = stepTypeFromOpCode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.cjs","names":["chain: () => Promise<SendEventBaseOutput>","chain: () => Promise<Middleware.Response>","StepOpCode","isRecord"],"sources":["../../../src/components/middleware/utils.ts"],"sourcesContent":["import { isRecord } from \"../../helpers/types\";\nimport type { Logger } from \"../../middleware/logger\";\nimport { type SendEventBaseOutput, StepOpCode } from \"../../types\";\nimport type { InngestFunction } from \"../InngestFunction\";\nimport type { Middleware } from \"./middleware\";\nimport type { ExtractLiteralStrings } from \"./types\";\n\nexport function
|
|
1
|
+
{"version":3,"file":"utils.cjs","names":["isTemporalDuration","chain: () => Promise<SendEventBaseOutput>","chain: () => Promise<Middleware.Response>","StepOpCode","isRecord"],"sources":["../../../src/components/middleware/utils.ts"],"sourcesContent":["import { type DurationLike, isTemporalDuration } from \"../../helpers/temporal\";\nimport { isRecord } from \"../../helpers/types\";\nimport type { Logger } from \"../../middleware/logger\";\nimport { type SendEventBaseOutput, StepOpCode } from \"../../types\";\nimport type { InngestFunction } from \"../InngestFunction\";\nimport type { Middleware } from \"./middleware\";\nimport type { ExtractLiteralStrings } from \"./types\";\n\nexport function isSleepInput(\n value: unknown,\n): value is string | number | Date | DurationLike {\n return (\n typeof value === \"string\" ||\n typeof value === \"number\" ||\n value instanceof Date ||\n isTemporalDuration(value)\n );\n}\n\n/**\n * Build an onion-style middleware chain for `wrapSendEvent`.\n *\n * Same pattern as `buildWrapRequestChain` but wraps the outgoing HTTP call\n * in `client.send()` instead of the incoming execution request.\n */\nexport function buildWrapSendEventChain(\n middleware: Middleware.BaseMiddleware[],\n handler: () => Promise<SendEventBaseOutput>,\n payloads: Middleware.WrapSendEventArgs[\"events\"],\n fn: InngestFunction.Any | null,\n): () => Promise<SendEventBaseOutput> {\n let chain: () => Promise<SendEventBaseOutput> = handler;\n for (let i = middleware.length - 1; i >= 0; i--) {\n const mw = middleware[i];\n if (mw?.wrapSendEvent) {\n const next = chain;\n chain = () => mw.wrapSendEvent!({ next, events: payloads, fn });\n }\n }\n return chain;\n}\n\n/**\n * Build an onion-style middleware chain for `wrapRequest`.\n *\n * Iterates in reverse order (so first middleware is outermost)\n * and returns a zero-arg function that kicks off the chain.\n */\nexport function buildWrapRequestChain({\n fn,\n handler,\n middleware,\n requestArgs,\n requestInfo,\n runId,\n}: {\n fn: InngestFunction.Any | null;\n handler: () => Promise<Middleware.Response>;\n middleware: Middleware.BaseMiddleware[];\n requestArgs: readonly unknown[];\n requestInfo: Middleware.Request;\n runId: string;\n}): () => Promise<Middleware.Response> {\n let chain: () => Promise<Middleware.Response> = handler;\n for (let i = middleware.length - 1; i >= 0; i--) {\n const mw = middleware[i];\n if (mw?.wrapRequest) {\n const next = chain;\n chain = () =>\n mw.wrapRequest!({ next, requestArgs, requestInfo, runId, fn });\n }\n }\n return chain;\n}\n\n// Replace the \"and can be any string\" union member with \"unknown\". This\n// improves static type safety within `stepTypeFromOpCode`, since it ensures we\n// aren't returning any unknown StepType besides \"unknown\". We should never\n// actually return \"unknown\" at runtime, but we need a default\ntype StepTypeFromOpCodeReturn =\n | ExtractLiteralStrings<Middleware.StepType>\n | \"unknown\";\n\n/**\n * Convert an opcode (from the op) to a step type.\n */\nexport function stepTypeFromOpCode(\n op: StepOpCode,\n opts: Record<string, unknown> | undefined,\n logger: Logger,\n): StepTypeFromOpCodeReturn {\n if (op === StepOpCode.AiGateway) {\n if (opts?.type === \"step.ai.infer\") {\n return \"ai.infer\";\n }\n if (opts?.type === \"step.ai.wrap\") {\n return \"ai.wrap\";\n }\n } else if (op === StepOpCode.Gateway) {\n return \"fetch\";\n } else if (op === StepOpCode.InvokeFunction) {\n return \"invoke\";\n } else if (op === StepOpCode.StepPlanned) {\n if (opts?.type === undefined) {\n return \"run\";\n }\n if (opts?.type === \"step.sendEvent\") {\n return \"sendEvent\";\n }\n if (opts?.type === \"step.realtime.publish\") {\n return \"realtime.publish\";\n }\n if (opts?.type === \"group.experiment\") {\n return \"group.experiment\";\n }\n } else if (op === StepOpCode.Sleep) {\n return \"sleep\";\n } else if (op === StepOpCode.WaitForEvent) {\n return \"waitForEvent\";\n }\n\n logger.warn({ op, type: opts?.type }, \"Unknown step type\");\n return \"unknown\";\n}\n\n/**\n * Convert the opts object (from the op) to a step input array.\n *\n * Paired with `optsFromStepInput` which reverses this for step kinds that\n * wrap the entire opts as `[opts]`.\n */\nexport function stepInputFromOpts(\n stepType: Middleware.StepType,\n opts?: Record<string, unknown>,\n): unknown[] | undefined {\n if (stepType === \"invoke\" || stepType === \"waitForEvent\") {\n return [opts];\n }\n if (Array.isArray(opts?.input)) {\n return opts.input;\n }\n return undefined;\n}\n\n/**\n * Reverse of `stepInputFromOpts`: given middleware-transformed input, derive\n * the opts to use in the outgoing op.\n *\n * Returns undefined when the step kind doesn't derive opts from input.\n */\nexport function optsFromStepInput(\n stepType: Middleware.StepType,\n input: unknown[] | undefined,\n): Record<string, unknown> | undefined {\n if (input === undefined) {\n return undefined;\n }\n\n // Step types where stepInputFromOpts wraps the entire opts as [opts]\n if (stepType === \"invoke\" || stepType === \"waitForEvent\") {\n const opts = input[0];\n if (isRecord(opts)) {\n return opts;\n }\n }\n\n return undefined;\n}\n\n/**\n * An error that is thrown when a code path is unreachable. Should never be\n * thrown at runtime.\n */\nexport class UnreachableError extends Error {\n constructor(...args: Parameters<typeof Error>) {\n super(...args);\n this.name = this.constructor.name;\n }\n}\n"],"mappings":";;;;;AAQA,SAAgB,aACd,OACgD;AAChD,QACE,OAAO,UAAU,YACjB,OAAO,UAAU,YACjB,iBAAiB,QACjBA,oCAAmB,MAAM;;;;;;;;AAU7B,SAAgB,wBACd,YACA,SACA,UACA,IACoC;CACpC,IAAIC,QAA4C;AAChD,MAAK,IAAI,IAAI,WAAW,SAAS,GAAG,KAAK,GAAG,KAAK;EAC/C,MAAM,KAAK,WAAW;AACtB,MAAI,IAAI,eAAe;GACrB,MAAM,OAAO;AACb,iBAAc,GAAG,cAAe;IAAE;IAAM,QAAQ;IAAU;IAAI,CAAC;;;AAGnE,QAAO;;;;;;;;AAST,SAAgB,sBAAsB,EACpC,IACA,SACA,YACA,aACA,aACA,SAQqC;CACrC,IAAIC,QAA4C;AAChD,MAAK,IAAI,IAAI,WAAW,SAAS,GAAG,KAAK,GAAG,KAAK;EAC/C,MAAM,KAAK,WAAW;AACtB,MAAI,IAAI,aAAa;GACnB,MAAM,OAAO;AACb,iBACE,GAAG,YAAa;IAAE;IAAM;IAAa;IAAa;IAAO;IAAI,CAAC;;;AAGpE,QAAO;;;;;AAcT,SAAgB,mBACd,IACA,MACA,QAC0B;AAC1B,KAAI,OAAOC,yBAAW,WAAW;AAC/B,MAAI,MAAM,SAAS,gBACjB,QAAO;AAET,MAAI,MAAM,SAAS,eACjB,QAAO;YAEA,OAAOA,yBAAW,QAC3B,QAAO;UACE,OAAOA,yBAAW,eAC3B,QAAO;UACE,OAAOA,yBAAW,aAAa;AACxC,MAAI,MAAM,SAAS,OACjB,QAAO;AAET,MAAI,MAAM,SAAS,iBACjB,QAAO;AAET,MAAI,MAAM,SAAS,wBACjB,QAAO;AAET,MAAI,MAAM,SAAS,mBACjB,QAAO;YAEA,OAAOA,yBAAW,MAC3B,QAAO;UACE,OAAOA,yBAAW,aAC3B,QAAO;AAGT,QAAO,KAAK;EAAE;EAAI,MAAM,MAAM;EAAM,EAAE,oBAAoB;AAC1D,QAAO;;;;;;;;AAST,SAAgB,kBACd,UACA,MACuB;AACvB,KAAI,aAAa,YAAY,aAAa,eACxC,QAAO,CAAC,KAAK;AAEf,KAAI,MAAM,QAAQ,MAAM,MAAM,CAC5B,QAAO,KAAK;;;;;;;;AAWhB,SAAgB,kBACd,UACA,OACqC;AACrC,KAAI,UAAU,OACZ;AAIF,KAAI,aAAa,YAAY,aAAa,gBAAgB;EACxD,MAAM,OAAO,MAAM;AACnB,MAAIC,yBAAS,KAAK,CAChB,QAAO;;;;;;;AAWb,IAAa,mBAAb,cAAsC,MAAM;CAC1C,YAAY,GAAG,MAAgC;AAC7C,QAAM,GAAG,KAAK;AACd,OAAK,OAAO,KAAK,YAAY"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { StepOpCode } from "../../types.js";
|
|
2
2
|
import { isRecord } from "../../helpers/types.js";
|
|
3
|
+
import { isTemporalDuration } from "../../helpers/temporal.js";
|
|
3
4
|
|
|
4
5
|
//#region src/components/middleware/utils.ts
|
|
5
|
-
function
|
|
6
|
-
return typeof value === "string" || typeof value === "number" || value instanceof Date;
|
|
6
|
+
function isSleepInput(value) {
|
|
7
|
+
return typeof value === "string" || typeof value === "number" || value instanceof Date || isTemporalDuration(value);
|
|
7
8
|
}
|
|
8
9
|
/**
|
|
9
10
|
* Build an onion-style middleware chain for `wrapSendEvent`.
|
|
@@ -106,5 +107,5 @@ var UnreachableError = class extends Error {
|
|
|
106
107
|
};
|
|
107
108
|
|
|
108
109
|
//#endregion
|
|
109
|
-
export { UnreachableError, buildWrapRequestChain, buildWrapSendEventChain,
|
|
110
|
+
export { UnreachableError, buildWrapRequestChain, buildWrapSendEventChain, isSleepInput, optsFromStepInput, stepInputFromOpts, stepTypeFromOpCode };
|
|
110
111
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":["chain: () => Promise<SendEventBaseOutput>","chain: () => Promise<Middleware.Response>"],"sources":["../../../src/components/middleware/utils.ts"],"sourcesContent":["import { isRecord } from \"../../helpers/types\";\nimport type { Logger } from \"../../middleware/logger\";\nimport { type SendEventBaseOutput, StepOpCode } from \"../../types\";\nimport type { InngestFunction } from \"../InngestFunction\";\nimport type { Middleware } from \"./middleware\";\nimport type { ExtractLiteralStrings } from \"./types\";\n\nexport function
|
|
1
|
+
{"version":3,"file":"utils.js","names":["chain: () => Promise<SendEventBaseOutput>","chain: () => Promise<Middleware.Response>"],"sources":["../../../src/components/middleware/utils.ts"],"sourcesContent":["import { type DurationLike, isTemporalDuration } from \"../../helpers/temporal\";\nimport { isRecord } from \"../../helpers/types\";\nimport type { Logger } from \"../../middleware/logger\";\nimport { type SendEventBaseOutput, StepOpCode } from \"../../types\";\nimport type { InngestFunction } from \"../InngestFunction\";\nimport type { Middleware } from \"./middleware\";\nimport type { ExtractLiteralStrings } from \"./types\";\n\nexport function isSleepInput(\n value: unknown,\n): value is string | number | Date | DurationLike {\n return (\n typeof value === \"string\" ||\n typeof value === \"number\" ||\n value instanceof Date ||\n isTemporalDuration(value)\n );\n}\n\n/**\n * Build an onion-style middleware chain for `wrapSendEvent`.\n *\n * Same pattern as `buildWrapRequestChain` but wraps the outgoing HTTP call\n * in `client.send()` instead of the incoming execution request.\n */\nexport function buildWrapSendEventChain(\n middleware: Middleware.BaseMiddleware[],\n handler: () => Promise<SendEventBaseOutput>,\n payloads: Middleware.WrapSendEventArgs[\"events\"],\n fn: InngestFunction.Any | null,\n): () => Promise<SendEventBaseOutput> {\n let chain: () => Promise<SendEventBaseOutput> = handler;\n for (let i = middleware.length - 1; i >= 0; i--) {\n const mw = middleware[i];\n if (mw?.wrapSendEvent) {\n const next = chain;\n chain = () => mw.wrapSendEvent!({ next, events: payloads, fn });\n }\n }\n return chain;\n}\n\n/**\n * Build an onion-style middleware chain for `wrapRequest`.\n *\n * Iterates in reverse order (so first middleware is outermost)\n * and returns a zero-arg function that kicks off the chain.\n */\nexport function buildWrapRequestChain({\n fn,\n handler,\n middleware,\n requestArgs,\n requestInfo,\n runId,\n}: {\n fn: InngestFunction.Any | null;\n handler: () => Promise<Middleware.Response>;\n middleware: Middleware.BaseMiddleware[];\n requestArgs: readonly unknown[];\n requestInfo: Middleware.Request;\n runId: string;\n}): () => Promise<Middleware.Response> {\n let chain: () => Promise<Middleware.Response> = handler;\n for (let i = middleware.length - 1; i >= 0; i--) {\n const mw = middleware[i];\n if (mw?.wrapRequest) {\n const next = chain;\n chain = () =>\n mw.wrapRequest!({ next, requestArgs, requestInfo, runId, fn });\n }\n }\n return chain;\n}\n\n// Replace the \"and can be any string\" union member with \"unknown\". This\n// improves static type safety within `stepTypeFromOpCode`, since it ensures we\n// aren't returning any unknown StepType besides \"unknown\". We should never\n// actually return \"unknown\" at runtime, but we need a default\ntype StepTypeFromOpCodeReturn =\n | ExtractLiteralStrings<Middleware.StepType>\n | \"unknown\";\n\n/**\n * Convert an opcode (from the op) to a step type.\n */\nexport function stepTypeFromOpCode(\n op: StepOpCode,\n opts: Record<string, unknown> | undefined,\n logger: Logger,\n): StepTypeFromOpCodeReturn {\n if (op === StepOpCode.AiGateway) {\n if (opts?.type === \"step.ai.infer\") {\n return \"ai.infer\";\n }\n if (opts?.type === \"step.ai.wrap\") {\n return \"ai.wrap\";\n }\n } else if (op === StepOpCode.Gateway) {\n return \"fetch\";\n } else if (op === StepOpCode.InvokeFunction) {\n return \"invoke\";\n } else if (op === StepOpCode.StepPlanned) {\n if (opts?.type === undefined) {\n return \"run\";\n }\n if (opts?.type === \"step.sendEvent\") {\n return \"sendEvent\";\n }\n if (opts?.type === \"step.realtime.publish\") {\n return \"realtime.publish\";\n }\n if (opts?.type === \"group.experiment\") {\n return \"group.experiment\";\n }\n } else if (op === StepOpCode.Sleep) {\n return \"sleep\";\n } else if (op === StepOpCode.WaitForEvent) {\n return \"waitForEvent\";\n }\n\n logger.warn({ op, type: opts?.type }, \"Unknown step type\");\n return \"unknown\";\n}\n\n/**\n * Convert the opts object (from the op) to a step input array.\n *\n * Paired with `optsFromStepInput` which reverses this for step kinds that\n * wrap the entire opts as `[opts]`.\n */\nexport function stepInputFromOpts(\n stepType: Middleware.StepType,\n opts?: Record<string, unknown>,\n): unknown[] | undefined {\n if (stepType === \"invoke\" || stepType === \"waitForEvent\") {\n return [opts];\n }\n if (Array.isArray(opts?.input)) {\n return opts.input;\n }\n return undefined;\n}\n\n/**\n * Reverse of `stepInputFromOpts`: given middleware-transformed input, derive\n * the opts to use in the outgoing op.\n *\n * Returns undefined when the step kind doesn't derive opts from input.\n */\nexport function optsFromStepInput(\n stepType: Middleware.StepType,\n input: unknown[] | undefined,\n): Record<string, unknown> | undefined {\n if (input === undefined) {\n return undefined;\n }\n\n // Step types where stepInputFromOpts wraps the entire opts as [opts]\n if (stepType === \"invoke\" || stepType === \"waitForEvent\") {\n const opts = input[0];\n if (isRecord(opts)) {\n return opts;\n }\n }\n\n return undefined;\n}\n\n/**\n * An error that is thrown when a code path is unreachable. Should never be\n * thrown at runtime.\n */\nexport class UnreachableError extends Error {\n constructor(...args: Parameters<typeof Error>) {\n super(...args);\n this.name = this.constructor.name;\n }\n}\n"],"mappings":";;;;;AAQA,SAAgB,aACd,OACgD;AAChD,QACE,OAAO,UAAU,YACjB,OAAO,UAAU,YACjB,iBAAiB,QACjB,mBAAmB,MAAM;;;;;;;;AAU7B,SAAgB,wBACd,YACA,SACA,UACA,IACoC;CACpC,IAAIA,QAA4C;AAChD,MAAK,IAAI,IAAI,WAAW,SAAS,GAAG,KAAK,GAAG,KAAK;EAC/C,MAAM,KAAK,WAAW;AACtB,MAAI,IAAI,eAAe;GACrB,MAAM,OAAO;AACb,iBAAc,GAAG,cAAe;IAAE;IAAM,QAAQ;IAAU;IAAI,CAAC;;;AAGnE,QAAO;;;;;;;;AAST,SAAgB,sBAAsB,EACpC,IACA,SACA,YACA,aACA,aACA,SAQqC;CACrC,IAAIC,QAA4C;AAChD,MAAK,IAAI,IAAI,WAAW,SAAS,GAAG,KAAK,GAAG,KAAK;EAC/C,MAAM,KAAK,WAAW;AACtB,MAAI,IAAI,aAAa;GACnB,MAAM,OAAO;AACb,iBACE,GAAG,YAAa;IAAE;IAAM;IAAa;IAAa;IAAO;IAAI,CAAC;;;AAGpE,QAAO;;;;;AAcT,SAAgB,mBACd,IACA,MACA,QAC0B;AAC1B,KAAI,OAAO,WAAW,WAAW;AAC/B,MAAI,MAAM,SAAS,gBACjB,QAAO;AAET,MAAI,MAAM,SAAS,eACjB,QAAO;YAEA,OAAO,WAAW,QAC3B,QAAO;UACE,OAAO,WAAW,eAC3B,QAAO;UACE,OAAO,WAAW,aAAa;AACxC,MAAI,MAAM,SAAS,OACjB,QAAO;AAET,MAAI,MAAM,SAAS,iBACjB,QAAO;AAET,MAAI,MAAM,SAAS,wBACjB,QAAO;AAET,MAAI,MAAM,SAAS,mBACjB,QAAO;YAEA,OAAO,WAAW,MAC3B,QAAO;UACE,OAAO,WAAW,aAC3B,QAAO;AAGT,QAAO,KAAK;EAAE;EAAI,MAAM,MAAM;EAAM,EAAE,oBAAoB;AAC1D,QAAO;;;;;;;;AAST,SAAgB,kBACd,UACA,MACuB;AACvB,KAAI,aAAa,YAAY,aAAa,eACxC,QAAO,CAAC,KAAK;AAEf,KAAI,MAAM,QAAQ,MAAM,MAAM,CAC5B,QAAO,KAAK;;;;;;;;AAWhB,SAAgB,kBACd,UACA,OACqC;AACrC,KAAI,UAAU,OACZ;AAIF,KAAI,aAAa,YAAY,aAAa,gBAAgB;EACxD,MAAM,OAAO,MAAM;AACnB,MAAI,SAAS,KAAK,CAChB,QAAO;;;;;;;AAWb,IAAa,mBAAb,cAAsC,MAAM;CAC1C,YAAY,GAAG,MAAgC;AAC7C,QAAM,GAAG,KAAK;AACd,OAAK,OAAO,KAAK,YAAY"}
|
|
@@ -64,7 +64,7 @@ declare namespace Realtime {
|
|
|
64
64
|
stream_id: z.ZodOptional<z.ZodString>;
|
|
65
65
|
kind: z.ZodEnum<["step", "run", "data", "ping", "pong", "closing", "event", "sub", "unsub", "datastream-start", "datastream-end", "chunk"]>;
|
|
66
66
|
}, "strip", z.ZodTypeAny, {
|
|
67
|
-
kind: "data" | "event" | "run" | "step" | "
|
|
67
|
+
kind: "data" | "event" | "run" | "step" | "sub" | "ping" | "pong" | "closing" | "unsub" | "datastream-start" | "datastream-end" | "chunk";
|
|
68
68
|
channel?: string | undefined;
|
|
69
69
|
data?: any;
|
|
70
70
|
topic?: string | undefined;
|
|
@@ -74,7 +74,7 @@ declare namespace Realtime {
|
|
|
74
74
|
env_id?: string | undefined;
|
|
75
75
|
stream_id?: string | undefined;
|
|
76
76
|
}, {
|
|
77
|
-
kind: "data" | "event" | "run" | "step" | "
|
|
77
|
+
kind: "data" | "event" | "run" | "step" | "sub" | "ping" | "pong" | "closing" | "unsub" | "datastream-start" | "datastream-end" | "chunk";
|
|
78
78
|
channel?: string | undefined;
|
|
79
79
|
data?: any;
|
|
80
80
|
topic?: string | undefined;
|
|
@@ -85,7 +85,7 @@ declare namespace Realtime {
|
|
|
85
85
|
stream_id?: string | undefined;
|
|
86
86
|
}>, {
|
|
87
87
|
data: any;
|
|
88
|
-
kind: "data" | "event" | "run" | "step" | "
|
|
88
|
+
kind: "data" | "event" | "run" | "step" | "sub" | "ping" | "pong" | "closing" | "unsub" | "datastream-start" | "datastream-end" | "chunk";
|
|
89
89
|
channel?: string | undefined;
|
|
90
90
|
topic?: string | undefined;
|
|
91
91
|
run_id?: string | undefined;
|
|
@@ -94,7 +94,7 @@ declare namespace Realtime {
|
|
|
94
94
|
env_id?: string | undefined;
|
|
95
95
|
stream_id?: string | undefined;
|
|
96
96
|
}, {
|
|
97
|
-
kind: "data" | "event" | "run" | "step" | "
|
|
97
|
+
kind: "data" | "event" | "run" | "step" | "sub" | "ping" | "pong" | "closing" | "unsub" | "datastream-start" | "datastream-end" | "chunk";
|
|
98
98
|
channel?: string | undefined;
|
|
99
99
|
data?: any;
|
|
100
100
|
topic?: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.cts","names":[],"sources":["../../../src/components/realtime/types.ts"],"sourcesContent":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.cts","names":[],"sources":["../../../src/components/realtime/types.ts"],"sourcesContent":[],"mappings":"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"}
|
|
@@ -64,7 +64,7 @@ declare namespace Realtime {
|
|
|
64
64
|
stream_id: z.ZodOptional<z.ZodString>;
|
|
65
65
|
kind: z.ZodEnum<["step", "run", "data", "ping", "pong", "closing", "event", "sub", "unsub", "datastream-start", "datastream-end", "chunk"]>;
|
|
66
66
|
}, "strip", z.ZodTypeAny, {
|
|
67
|
-
kind: "data" | "event" | "run" | "step" | "
|
|
67
|
+
kind: "data" | "event" | "run" | "step" | "sub" | "ping" | "pong" | "closing" | "unsub" | "datastream-start" | "datastream-end" | "chunk";
|
|
68
68
|
channel?: string | undefined;
|
|
69
69
|
data?: any;
|
|
70
70
|
topic?: string | undefined;
|
|
@@ -74,7 +74,7 @@ declare namespace Realtime {
|
|
|
74
74
|
env_id?: string | undefined;
|
|
75
75
|
stream_id?: string | undefined;
|
|
76
76
|
}, {
|
|
77
|
-
kind: "data" | "event" | "run" | "step" | "
|
|
77
|
+
kind: "data" | "event" | "run" | "step" | "sub" | "ping" | "pong" | "closing" | "unsub" | "datastream-start" | "datastream-end" | "chunk";
|
|
78
78
|
channel?: string | undefined;
|
|
79
79
|
data?: any;
|
|
80
80
|
topic?: string | undefined;
|
|
@@ -85,7 +85,7 @@ declare namespace Realtime {
|
|
|
85
85
|
stream_id?: string | undefined;
|
|
86
86
|
}>, {
|
|
87
87
|
data: any;
|
|
88
|
-
kind: "data" | "event" | "run" | "step" | "
|
|
88
|
+
kind: "data" | "event" | "run" | "step" | "sub" | "ping" | "pong" | "closing" | "unsub" | "datastream-start" | "datastream-end" | "chunk";
|
|
89
89
|
channel?: string | undefined;
|
|
90
90
|
topic?: string | undefined;
|
|
91
91
|
run_id?: string | undefined;
|
|
@@ -94,7 +94,7 @@ declare namespace Realtime {
|
|
|
94
94
|
env_id?: string | undefined;
|
|
95
95
|
stream_id?: string | undefined;
|
|
96
96
|
}, {
|
|
97
|
-
kind: "data" | "event" | "run" | "step" | "
|
|
97
|
+
kind: "data" | "event" | "run" | "step" | "sub" | "ping" | "pong" | "closing" | "unsub" | "datastream-start" | "datastream-end" | "chunk";
|
|
98
98
|
channel?: string | undefined;
|
|
99
99
|
data?: any;
|
|
100
100
|
topic?: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","names":[],"sources":["../../../src/components/realtime/types.ts"],"sourcesContent":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","names":[],"sources":["../../../src/components/realtime/types.ts"],"sourcesContent":[],"mappings":"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"}
|
package/helpers/consts.cjs
CHANGED
|
@@ -173,6 +173,7 @@ let headerKeys = /* @__PURE__ */ function(headerKeys$1) {
|
|
|
173
173
|
headerKeys$1["InngestRunId"] = "x-run-id";
|
|
174
174
|
headerKeys$1["InngestStepId"] = "x-inngest-step-id";
|
|
175
175
|
headerKeys$1["InngestForceStepPlan"] = "x-inngest-force-step-plan";
|
|
176
|
+
headerKeys$1["SdkHandled"] = "x-inngest-sdk-handled";
|
|
176
177
|
return headerKeys$1;
|
|
177
178
|
}({});
|
|
178
179
|
/**
|
package/helpers/consts.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consts.cjs","names":["logPrefix: string"],"sources":["../../src/helpers/consts.ts"],"sourcesContent":["/**\n * Keys for accessing query parameters included in requests from Inngest to run\n * functions.\n *\n * Used internally to create handlers using `InngestCommHandler`, but can be\n * imported to be used if creating a custom handler outside of the package.\n *\n * @public\n */\nexport enum queryKeys {\n DeployId = \"deployId\",\n FnId = \"fnId\",\n Probe = \"probe\",\n StepId = \"stepId\",\n}\n\nexport enum probe {\n Trust = \"trust\",\n}\n\nexport enum envKeys {\n InngestSigningKey = \"INNGEST_SIGNING_KEY\",\n InngestSigningKeyFallback = \"INNGEST_SIGNING_KEY_FALLBACK\",\n InngestEventKey = \"INNGEST_EVENT_KEY\",\n\n /**\n * @deprecated Removed in v3. Use {@link InngestBaseUrl} instead.\n */\n InngestDevServerUrl = \"INNGEST_DEVSERVER_URL\",\n InngestEnvironment = \"INNGEST_ENV\",\n InngestBaseUrl = \"INNGEST_BASE_URL\",\n InngestEventApiBaseUrl = \"INNGEST_EVENT_API_BASE_URL\",\n InngestApiBaseUrl = \"INNGEST_API_BASE_URL\",\n InngestServeHost = \"INNGEST_SERVE_HOST\", // Deprecated, use INNGEST_SERVE_ORIGIN\n InngestServePath = \"INNGEST_SERVE_PATH\",\n InngestServeOrigin = \"INNGEST_SERVE_ORIGIN\",\n InngestStreaming = \"INNGEST_STREAMING\",\n InngestDevMode = \"INNGEST_DEV\",\n InngestAllowInBandSync = \"INNGEST_ALLOW_IN_BAND_SYNC\",\n InngestConnectMaxWorkerConcurrency = \"INNGEST_CONNECT_MAX_WORKER_CONCURRENCY\",\n InngestConnectIsolateExecution = \"INNGEST_CONNECT_ISOLATE_EXECUTION\",\n InngestConnectGatewayUrl = \"INNGEST_CONNECT_GATEWAY_URL\",\n\n /**\n * @deprecated It's unknown what this env var was used for, but we do not\n * provide explicit support for it. Prefer using `INNGEST_ENV` instead.\n */\n BranchName = \"BRANCH_NAME\",\n\n /**\n * The git branch of the commit the deployment was triggered by. Example:\n * `improve-about-page`.\n *\n * {@link https://vercel.com/docs/concepts/projects/environment-variables/system-environment-variables#system-environment-variables}\n */\n VercelBranch = \"VERCEL_GIT_COMMIT_REF\",\n\n /**\n * Expected to be `\"1\"` if defined.\n */\n IsVercel = \"VERCEL\",\n\n /**\n * The branch name of the current deployment. May only be accessible at build\n * time, but included here just in case.\n *\n * {@link https://developers.cloudflare.com/pages/platform/build-configuration/#environment-variables}\n */\n CloudflarePagesBranch = \"CF_PAGES_BRANCH\",\n\n /**\n * Expected to be `\"1\"` if defined.\n */\n IsCloudflarePages = \"CF_PAGES\",\n\n /**\n * The branch name of the deployment from Git to Netlify, if available.\n *\n * {@link https://docs.netlify.com/configure-builds/environment-variables/#git-metadata}\n */\n NetlifyBranch = \"BRANCH\",\n\n /**\n * Expected to be `\"true\"` if defined.\n */\n IsNetlify = \"NETLIFY\",\n\n /**\n * The Git branch for a service or deploy.\n *\n * {@link https://render.com/docs/environment-variables#all-services}\n */\n RenderBranch = \"RENDER_GIT_BRANCH\",\n\n /**\n * Expected to be `\"true\"` if defined.\n */\n IsRender = \"RENDER\",\n\n /**\n * The branch that triggered the deployment. Example: `main`\n *\n * {@link https://docs.railway.app/develop/variables#railway-provided-variables}\n */\n RailwayBranch = \"RAILWAY_GIT_BRANCH\",\n\n /**\n * The railway environment for the deployment. Example: `production`\n *\n * {@link https://docs.railway.app/develop/variables#railway-provided-variables}\n */\n RailwayEnvironment = \"RAILWAY_ENVIRONMENT\",\n\n VercelEnvKey = \"VERCEL_ENV\",\n\n /**\n * Standard Node.js environment indicator (e.g. `\"production\"`, `\"development\"`,\n * `\"test\"`). Read by some framework adapters to choose the request scheme,\n * and by prod-mode inference.\n */\n NodeEnv = \"NODE_ENV\",\n\n /**\n * Netlify's deploy context (e.g. `\"production\"`, `\"deploy-preview\"`). Used\n * for prod-mode inference.\n *\n * {@link https://docs.netlify.com/configure-builds/environment-variables/#build-metadata}\n */\n Context = \"CONTEXT\",\n\n /**\n * Generic environment name used by some platforms to indicate prod vs\n * non-prod (e.g. `\"production\"`).\n */\n Environment = \"ENVIRONMENT\",\n\n /**\n * Set by Deno Deploy. Its presence indicates a Deno Deploy environment,\n * which we treat as prod.\n *\n * {@link https://docs.deno.com/deploy/manual/environment-variables/}\n */\n DenoDeployment = \"DENO_DEPLOYMENT_ID\",\n\n OpenAiApiKey = \"OPENAI_API_KEY\",\n GeminiApiKey = \"GEMINI_API_KEY\",\n AnthropicApiKey = \"ANTHROPIC_API_KEY\",\n\n /**\n * Framework-prefixed variants of Inngest env vars. CRA's `REACT_APP_` and\n * Next's `NEXT_PUBLIC_` prefixes expose env vars to bundled client code, so\n * we accept the prefixed forms in addition to the canonical names.\n */\n ReactAppInngestBaseUrl = \"REACT_APP_INNGEST_BASE_URL\",\n ReactAppInngestDevMode = \"REACT_APP_INNGEST_DEV\",\n NextPublicInngestBaseUrl = \"NEXT_PUBLIC_INNGEST_BASE_URL\",\n NextPublicInngestDevMode = \"NEXT_PUBLIC_INNGEST_DEV\",\n}\n\n/**\n * Keys for accessing headers included in requests from Inngest to run\n * functions.\n *\n * Used internally to create handlers using `InngestCommHandler`, but can be\n * imported to be used if creating a custom handler outside of the package.\n *\n * @public\n */\nexport enum headerKeys {\n ContentType = \"content-type\",\n Host = \"host\",\n ForwardedFor = \"x-forwarded-for\",\n RealIp = \"x-real-ip\",\n Location = \"location\",\n ContentLength = \"content-length\",\n Signature = \"x-inngest-signature\",\n SdkVersion = \"x-inngest-sdk\",\n Environment = \"x-inngest-env\",\n Platform = \"x-inngest-platform\",\n Framework = \"x-inngest-framework\",\n NoRetry = \"x-inngest-no-retry\",\n RequestVersion = \"x-inngest-req-version\",\n RetryAfter = \"retry-after\",\n InngestServerKind = \"x-inngest-server-kind\",\n InngestExpectedServerKind = \"x-inngest-expected-server-kind\",\n InngestSyncKind = \"x-inngest-sync-kind\",\n EventIdSeed = \"x-inngest-event-id-seed\",\n TraceParent = \"traceparent\",\n TraceState = \"tracestate\",\n InngestRunId = \"x-run-id\",\n InngestStepId = \"x-inngest-step-id\",\n InngestForceStepPlan = \"x-inngest-force-step-plan\",\n}\n\n/**\n * Headers that are forwarded from the original request when an Inngest function\n * is invoked.\n */\nexport const forwardedHeaders = [headerKeys.TraceParent, headerKeys.TraceState];\n\nexport const defaultInngestApiBaseUrl = \"https://api.inngest.com/\";\nexport const defaultInngestEventBaseUrl = \"https://inn.gs/\";\nexport const defaultDevServerHost = \"http://localhost:8288/\";\n\n/**\n * Events that Inngest may send internally that can be used to trigger\n * functions.\n *\n * @public\n */\nexport enum internalEvents {\n /**\n * A function has failed after exhausting all available retries. This event\n * will contain the original event and the error that caused the failure.\n */\n FunctionFailed = \"inngest/function.failed\",\n FunctionInvoked = \"inngest/function.invoked\",\n FunctionFinished = \"inngest/function.finished\",\n FunctionCancelled = \"inngest/function.cancelled\",\n ScheduledTimer = \"inngest/scheduled.timer\",\n HttpRequest = \"inngest/http.request\",\n}\n\nexport const logPrefix: string = \"[Inngest]\";\n\nexport const debugPrefix = \"inngest\";\n\nexport const dummyEventKey = \"NO_EVENT_KEY_SET\";\n\nexport enum serverKind {\n Dev = \"dev\",\n Cloud = \"cloud\",\n}\n\nexport enum syncKind {\n InBand = \"in_band\",\n OutOfBand = \"out_of_band\",\n}\n\n/**\n * The execution models the SDK is aware of.\n *\n * This is used in a number of places to ensure all execution versions are\n * accounted for for a given operation.\n */\nexport enum ExecutionVersion {\n /**\n * Uses a more flexible approach to execution and is more lenient about\n * determinism, allowing non-step async actions and non-determinism.\n *\n * Nowhere near as stubborn about determinism and so can silently migrate\n * between versions after bug fixes.\n */\n V1 = 1,\n\n /**\n * Identical to V1, but allows the Executor to optimize parallel calls, hugely\n * reducing traffic going to/from the SDK.\n */\n V2 = 2,\n}\n\n/**\n * Default maximum number of retries for function/step executions.\n */\nexport const defaultMaxRetries = 3;\n"],"mappings":";;;;;;;;;;;AASA,IAAY,kDAAL;AACL;AACA;AACA;AACA;;;AAGF,IAAY,0CAAL;AACL;;;AAGF,IAAY,8CAAL;AACL;AACA;AACA;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AAMA;;;;;;;AAQA;;;;AAKA;;;;;;;AAQA;;;;AAKA;;;;;;AAOA;;;;AAKA;;;;;;AAOA;;;;AAKA;;;;;;AAOA;;;;;;AAOA;AAEA;;;;;;AAOA;;;;;;;AAQA;;;;;AAMA;;;;;;;AAQA;AAEA;AACA;AACA;;;;;;AAOA;AACA;AACA;AACA;;;;;;;;;;;;AAYF,IAAY,oDAAL;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAOF,MAAa,mBAAmB,CAAC,WAAW,aAAa,WAAW,WAAW;AAE/E,MAAa,2BAA2B;AACxC,MAAa,6BAA6B;AAC1C,MAAa,uBAAuB;;;;;;;AAQpC,IAAY,4DAAL;;;;;AAKL;AACA;AACA;AACA;AACA;AACA;;;AAGF,MAAaA,YAAoB;AAEjC,MAAa,cAAc;AAE3B,MAAa,gBAAgB;AAO7B,IAAY,gDAAL;AACL;AACA;;;;;;;;;AASF,IAAY,gEAAL;;;;;;;;AAQL;;;;;AAMA;;;;;;AAMF,MAAa,oBAAoB"}
|
|
1
|
+
{"version":3,"file":"consts.cjs","names":["logPrefix: string"],"sources":["../../src/helpers/consts.ts"],"sourcesContent":["/**\n * Keys for accessing query parameters included in requests from Inngest to run\n * functions.\n *\n * Used internally to create handlers using `InngestCommHandler`, but can be\n * imported to be used if creating a custom handler outside of the package.\n *\n * @public\n */\nexport enum queryKeys {\n DeployId = \"deployId\",\n FnId = \"fnId\",\n Probe = \"probe\",\n StepId = \"stepId\",\n}\n\nexport enum probe {\n Trust = \"trust\",\n}\n\nexport enum envKeys {\n InngestSigningKey = \"INNGEST_SIGNING_KEY\",\n InngestSigningKeyFallback = \"INNGEST_SIGNING_KEY_FALLBACK\",\n InngestEventKey = \"INNGEST_EVENT_KEY\",\n\n /**\n * @deprecated Removed in v3. Use {@link InngestBaseUrl} instead.\n */\n InngestDevServerUrl = \"INNGEST_DEVSERVER_URL\",\n InngestEnvironment = \"INNGEST_ENV\",\n InngestBaseUrl = \"INNGEST_BASE_URL\",\n InngestEventApiBaseUrl = \"INNGEST_EVENT_API_BASE_URL\",\n InngestApiBaseUrl = \"INNGEST_API_BASE_URL\",\n InngestServeHost = \"INNGEST_SERVE_HOST\", // Deprecated, use INNGEST_SERVE_ORIGIN\n InngestServePath = \"INNGEST_SERVE_PATH\",\n InngestServeOrigin = \"INNGEST_SERVE_ORIGIN\",\n InngestStreaming = \"INNGEST_STREAMING\",\n InngestDevMode = \"INNGEST_DEV\",\n InngestAllowInBandSync = \"INNGEST_ALLOW_IN_BAND_SYNC\",\n InngestConnectMaxWorkerConcurrency = \"INNGEST_CONNECT_MAX_WORKER_CONCURRENCY\",\n InngestConnectIsolateExecution = \"INNGEST_CONNECT_ISOLATE_EXECUTION\",\n InngestConnectGatewayUrl = \"INNGEST_CONNECT_GATEWAY_URL\",\n\n /**\n * @deprecated It's unknown what this env var was used for, but we do not\n * provide explicit support for it. Prefer using `INNGEST_ENV` instead.\n */\n BranchName = \"BRANCH_NAME\",\n\n /**\n * The git branch of the commit the deployment was triggered by. Example:\n * `improve-about-page`.\n *\n * {@link https://vercel.com/docs/concepts/projects/environment-variables/system-environment-variables#system-environment-variables}\n */\n VercelBranch = \"VERCEL_GIT_COMMIT_REF\",\n\n /**\n * Expected to be `\"1\"` if defined.\n */\n IsVercel = \"VERCEL\",\n\n /**\n * The branch name of the current deployment. May only be accessible at build\n * time, but included here just in case.\n *\n * {@link https://developers.cloudflare.com/pages/platform/build-configuration/#environment-variables}\n */\n CloudflarePagesBranch = \"CF_PAGES_BRANCH\",\n\n /**\n * Expected to be `\"1\"` if defined.\n */\n IsCloudflarePages = \"CF_PAGES\",\n\n /**\n * The branch name of the deployment from Git to Netlify, if available.\n *\n * {@link https://docs.netlify.com/configure-builds/environment-variables/#git-metadata}\n */\n NetlifyBranch = \"BRANCH\",\n\n /**\n * Expected to be `\"true\"` if defined.\n */\n IsNetlify = \"NETLIFY\",\n\n /**\n * The Git branch for a service or deploy.\n *\n * {@link https://render.com/docs/environment-variables#all-services}\n */\n RenderBranch = \"RENDER_GIT_BRANCH\",\n\n /**\n * Expected to be `\"true\"` if defined.\n */\n IsRender = \"RENDER\",\n\n /**\n * The branch that triggered the deployment. Example: `main`\n *\n * {@link https://docs.railway.app/develop/variables#railway-provided-variables}\n */\n RailwayBranch = \"RAILWAY_GIT_BRANCH\",\n\n /**\n * The railway environment for the deployment. Example: `production`\n *\n * {@link https://docs.railway.app/develop/variables#railway-provided-variables}\n */\n RailwayEnvironment = \"RAILWAY_ENVIRONMENT\",\n\n VercelEnvKey = \"VERCEL_ENV\",\n\n /**\n * Standard Node.js environment indicator (e.g. `\"production\"`, `\"development\"`,\n * `\"test\"`). Read by some framework adapters to choose the request scheme,\n * and by prod-mode inference.\n */\n NodeEnv = \"NODE_ENV\",\n\n /**\n * Netlify's deploy context (e.g. `\"production\"`, `\"deploy-preview\"`). Used\n * for prod-mode inference.\n *\n * {@link https://docs.netlify.com/configure-builds/environment-variables/#build-metadata}\n */\n Context = \"CONTEXT\",\n\n /**\n * Generic environment name used by some platforms to indicate prod vs\n * non-prod (e.g. `\"production\"`).\n */\n Environment = \"ENVIRONMENT\",\n\n /**\n * Set by Deno Deploy. Its presence indicates a Deno Deploy environment,\n * which we treat as prod.\n *\n * {@link https://docs.deno.com/deploy/manual/environment-variables/}\n */\n DenoDeployment = \"DENO_DEPLOYMENT_ID\",\n\n OpenAiApiKey = \"OPENAI_API_KEY\",\n GeminiApiKey = \"GEMINI_API_KEY\",\n AnthropicApiKey = \"ANTHROPIC_API_KEY\",\n\n /**\n * Framework-prefixed variants of Inngest env vars. CRA's `REACT_APP_` and\n * Next's `NEXT_PUBLIC_` prefixes expose env vars to bundled client code, so\n * we accept the prefixed forms in addition to the canonical names.\n */\n ReactAppInngestBaseUrl = \"REACT_APP_INNGEST_BASE_URL\",\n ReactAppInngestDevMode = \"REACT_APP_INNGEST_DEV\",\n NextPublicInngestBaseUrl = \"NEXT_PUBLIC_INNGEST_BASE_URL\",\n NextPublicInngestDevMode = \"NEXT_PUBLIC_INNGEST_DEV\",\n}\n\n/**\n * Keys for accessing headers included in requests from Inngest to run\n * functions.\n *\n * Used internally to create handlers using `InngestCommHandler`, but can be\n * imported to be used if creating a custom handler outside of the package.\n *\n * @public\n */\nexport enum headerKeys {\n ContentType = \"content-type\",\n Host = \"host\",\n ForwardedFor = \"x-forwarded-for\",\n RealIp = \"x-real-ip\",\n Location = \"location\",\n ContentLength = \"content-length\",\n Signature = \"x-inngest-signature\",\n SdkVersion = \"x-inngest-sdk\",\n Environment = \"x-inngest-env\",\n Platform = \"x-inngest-platform\",\n Framework = \"x-inngest-framework\",\n NoRetry = \"x-inngest-no-retry\",\n RequestVersion = \"x-inngest-req-version\",\n RetryAfter = \"retry-after\",\n InngestServerKind = \"x-inngest-server-kind\",\n InngestExpectedServerKind = \"x-inngest-expected-server-kind\",\n InngestSyncKind = \"x-inngest-sync-kind\",\n EventIdSeed = \"x-inngest-event-id-seed\",\n TraceParent = \"traceparent\",\n TraceState = \"tracestate\",\n InngestRunId = \"x-run-id\",\n InngestStepId = \"x-inngest-step-id\",\n InngestForceStepPlan = \"x-inngest-force-step-plan\",\n SdkHandled = \"x-inngest-sdk-handled\",\n}\n\n/**\n * Headers that are forwarded from the original request when an Inngest function\n * is invoked.\n */\nexport const forwardedHeaders = [headerKeys.TraceParent, headerKeys.TraceState];\n\nexport const defaultInngestApiBaseUrl = \"https://api.inngest.com/\";\nexport const defaultInngestEventBaseUrl = \"https://inn.gs/\";\nexport const defaultDevServerHost = \"http://localhost:8288/\";\n\n/**\n * Events that Inngest may send internally that can be used to trigger\n * functions.\n *\n * @public\n */\nexport enum internalEvents {\n /**\n * A function has failed after exhausting all available retries. This event\n * will contain the original event and the error that caused the failure.\n */\n FunctionFailed = \"inngest/function.failed\",\n FunctionInvoked = \"inngest/function.invoked\",\n FunctionFinished = \"inngest/function.finished\",\n FunctionCancelled = \"inngest/function.cancelled\",\n ScheduledTimer = \"inngest/scheduled.timer\",\n HttpRequest = \"inngest/http.request\",\n}\n\nexport const logPrefix: string = \"[Inngest]\";\n\nexport const debugPrefix = \"inngest\";\n\nexport const dummyEventKey = \"NO_EVENT_KEY_SET\";\n\nexport enum serverKind {\n Dev = \"dev\",\n Cloud = \"cloud\",\n}\n\nexport enum syncKind {\n InBand = \"in_band\",\n OutOfBand = \"out_of_band\",\n}\n\n/**\n * The execution models the SDK is aware of.\n *\n * This is used in a number of places to ensure all execution versions are\n * accounted for for a given operation.\n */\nexport enum ExecutionVersion {\n /**\n * Uses a more flexible approach to execution and is more lenient about\n * determinism, allowing non-step async actions and non-determinism.\n *\n * Nowhere near as stubborn about determinism and so can silently migrate\n * between versions after bug fixes.\n */\n V1 = 1,\n\n /**\n * Identical to V1, but allows the Executor to optimize parallel calls, hugely\n * reducing traffic going to/from the SDK.\n */\n V2 = 2,\n}\n\n/**\n * Default maximum number of retries for function/step executions.\n */\nexport const defaultMaxRetries = 3;\n"],"mappings":";;;;;;;;;;;AASA,IAAY,kDAAL;AACL;AACA;AACA;AACA;;;AAGF,IAAY,0CAAL;AACL;;;AAGF,IAAY,8CAAL;AACL;AACA;AACA;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AAMA;;;;;;;AAQA;;;;AAKA;;;;;;;AAQA;;;;AAKA;;;;;;AAOA;;;;AAKA;;;;;;AAOA;;;;AAKA;;;;;;AAOA;;;;;;AAOA;AAEA;;;;;;AAOA;;;;;;;AAQA;;;;;AAMA;;;;;;;AAQA;AAEA;AACA;AACA;;;;;;AAOA;AACA;AACA;AACA;;;;;;;;;;;;AAYF,IAAY,oDAAL;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAOF,MAAa,mBAAmB,CAAC,WAAW,aAAa,WAAW,WAAW;AAE/E,MAAa,2BAA2B;AACxC,MAAa,6BAA6B;AAC1C,MAAa,uBAAuB;;;;;;;AAQpC,IAAY,4DAAL;;;;;AAKL;AACA;AACA;AACA;AACA;AACA;;;AAGF,MAAaA,YAAoB;AAEjC,MAAa,cAAc;AAE3B,MAAa,gBAAgB;AAO7B,IAAY,gDAAL;AACL;AACA;;;;;;;;;AASF,IAAY,gEAAL;;;;;;;;AAQL;;;;;AAMA;;;;;;AAMF,MAAa,oBAAoB"}
|
package/helpers/consts.d.cts
CHANGED
|
@@ -47,6 +47,7 @@ declare enum headerKeys {
|
|
|
47
47
|
InngestRunId = "x-run-id",
|
|
48
48
|
InngestStepId = "x-inngest-step-id",
|
|
49
49
|
InngestForceStepPlan = "x-inngest-force-step-plan",
|
|
50
|
+
SdkHandled = "x-inngest-sdk-handled",
|
|
50
51
|
}
|
|
51
52
|
/**
|
|
52
53
|
* Events that Inngest may send internally that can be used to trigger
|
package/helpers/consts.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consts.d.cts","names":[],"sources":["../../src/helpers/consts.ts"],"sourcesContent":[],"mappings":";;AASA;AA+JA;
|
|
1
|
+
{"version":3,"file":"consts.d.cts","names":[],"sources":["../../src/helpers/consts.ts"],"sourcesContent":[],"mappings":";;AASA;AA+JA;AA2CA;AAmCA;;;;;aA7OY,SAAA;;;;;;;;;;;;;;;aA+JA,UAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA2CA,cAAA;;;;;;;;;;;;;;;;;;aAmCA,gBAAA"}
|
package/helpers/consts.d.ts
CHANGED
|
@@ -47,6 +47,7 @@ declare enum headerKeys {
|
|
|
47
47
|
InngestRunId = "x-run-id",
|
|
48
48
|
InngestStepId = "x-inngest-step-id",
|
|
49
49
|
InngestForceStepPlan = "x-inngest-force-step-plan",
|
|
50
|
+
SdkHandled = "x-inngest-sdk-handled",
|
|
50
51
|
}
|
|
51
52
|
/**
|
|
52
53
|
* Events that Inngest may send internally that can be used to trigger
|
package/helpers/consts.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consts.d.ts","names":[],"sources":["../../src/helpers/consts.ts"],"sourcesContent":[],"mappings":";;AASA;AA+JA;
|
|
1
|
+
{"version":3,"file":"consts.d.ts","names":[],"sources":["../../src/helpers/consts.ts"],"sourcesContent":[],"mappings":";;AASA;AA+JA;AA2CA;AAmCA;;;;;aA7OY,SAAA;;;;;;;;;;;;;;;aA+JA,UAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA2CA,cAAA;;;;;;;;;;;;;;;;;;aAmCA,gBAAA"}
|
package/helpers/consts.js
CHANGED
|
@@ -172,6 +172,7 @@ let headerKeys = /* @__PURE__ */ function(headerKeys$1) {
|
|
|
172
172
|
headerKeys$1["InngestRunId"] = "x-run-id";
|
|
173
173
|
headerKeys$1["InngestStepId"] = "x-inngest-step-id";
|
|
174
174
|
headerKeys$1["InngestForceStepPlan"] = "x-inngest-force-step-plan";
|
|
175
|
+
headerKeys$1["SdkHandled"] = "x-inngest-sdk-handled";
|
|
175
176
|
return headerKeys$1;
|
|
176
177
|
}({});
|
|
177
178
|
/**
|