@ironflow/node 0.20.0 → 0.20.2

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.
Files changed (146) hide show
  1. package/LICENSE +181 -0
  2. package/package.json +8 -8
  3. package/dist/agent/agent.d.ts +0 -60
  4. package/dist/agent/agent.d.ts.map +0 -1
  5. package/dist/agent/agent.js +0 -133
  6. package/dist/agent/agent.js.map +0 -1
  7. package/dist/agent/approve.d.ts +0 -23
  8. package/dist/agent/approve.d.ts.map +0 -1
  9. package/dist/agent/approve.js +0 -42
  10. package/dist/agent/approve.js.map +0 -1
  11. package/dist/agent/dispatch.d.ts +0 -63
  12. package/dist/agent/dispatch.d.ts.map +0 -1
  13. package/dist/agent/dispatch.js +0 -130
  14. package/dist/agent/dispatch.js.map +0 -1
  15. package/dist/agent/errors.d.ts +0 -90
  16. package/dist/agent/errors.d.ts.map +0 -1
  17. package/dist/agent/errors.js +0 -136
  18. package/dist/agent/errors.js.map +0 -1
  19. package/dist/agent/index.d.ts +0 -30
  20. package/dist/agent/index.d.ts.map +0 -1
  21. package/dist/agent/index.js +0 -27
  22. package/dist/agent/index.js.map +0 -1
  23. package/dist/agent/internal-registry.d.ts +0 -27
  24. package/dist/agent/internal-registry.d.ts.map +0 -1
  25. package/dist/agent/internal-registry.js +0 -36
  26. package/dist/agent/internal-registry.js.map +0 -1
  27. package/dist/agent/internal.d.ts +0 -24
  28. package/dist/agent/internal.d.ts.map +0 -1
  29. package/dist/agent/internal.js +0 -29
  30. package/dist/agent/internal.js.map +0 -1
  31. package/dist/agent/llm.d.ts +0 -39
  32. package/dist/agent/llm.d.ts.map +0 -1
  33. package/dist/agent/llm.js +0 -59
  34. package/dist/agent/llm.js.map +0 -1
  35. package/dist/agent/mcp.d.ts +0 -51
  36. package/dist/agent/mcp.d.ts.map +0 -1
  37. package/dist/agent/mcp.js +0 -155
  38. package/dist/agent/mcp.js.map +0 -1
  39. package/dist/agent/memory.d.ts +0 -74
  40. package/dist/agent/memory.d.ts.map +0 -1
  41. package/dist/agent/memory.js +0 -130
  42. package/dist/agent/memory.js.map +0 -1
  43. package/dist/agent/spawn.d.ts +0 -20
  44. package/dist/agent/spawn.d.ts.map +0 -1
  45. package/dist/agent/spawn.js +0 -29
  46. package/dist/agent/spawn.js.map +0 -1
  47. package/dist/agent/tool.d.ts +0 -39
  48. package/dist/agent/tool.d.ts.map +0 -1
  49. package/dist/agent/tool.js +0 -103
  50. package/dist/agent/tool.js.map +0 -1
  51. package/dist/agent/types.d.ts +0 -363
  52. package/dist/agent/types.d.ts.map +0 -1
  53. package/dist/agent/types.js +0 -9
  54. package/dist/agent/types.js.map +0 -1
  55. package/dist/client.d.ts +0 -942
  56. package/dist/client.d.ts.map +0 -1
  57. package/dist/client.js +0 -1557
  58. package/dist/client.js.map +0 -1
  59. package/dist/command-dedup.d.ts +0 -61
  60. package/dist/command-dedup.d.ts.map +0 -1
  61. package/dist/command-dedup.js +0 -129
  62. package/dist/command-dedup.js.map +0 -1
  63. package/dist/config-client.d.ts +0 -58
  64. package/dist/config-client.d.ts.map +0 -1
  65. package/dist/config-client.js +0 -171
  66. package/dist/config-client.js.map +0 -1
  67. package/dist/function.d.ts +0 -53
  68. package/dist/function.d.ts.map +0 -1
  69. package/dist/function.js +0 -72
  70. package/dist/function.js.map +0 -1
  71. package/dist/index.d.ts +0 -71
  72. package/dist/index.d.ts.map +0 -1
  73. package/dist/index.js +0 -70
  74. package/dist/index.js.map +0 -1
  75. package/dist/internal/assert-defined.d.ts +0 -10
  76. package/dist/internal/assert-defined.d.ts.map +0 -1
  77. package/dist/internal/assert-defined.js +0 -15
  78. package/dist/internal/assert-defined.js.map +0 -1
  79. package/dist/internal/context.d.ts +0 -142
  80. package/dist/internal/context.d.ts.map +0 -1
  81. package/dist/internal/context.js +0 -306
  82. package/dist/internal/context.js.map +0 -1
  83. package/dist/internal/errors.d.ts +0 -66
  84. package/dist/internal/errors.d.ts.map +0 -1
  85. package/dist/internal/errors.js +0 -29
  86. package/dist/internal/errors.js.map +0 -1
  87. package/dist/internal/run-context.d.ts +0 -10
  88. package/dist/internal/run-context.d.ts.map +0 -1
  89. package/dist/internal/run-context.js +0 -23
  90. package/dist/internal/run-context.js.map +0 -1
  91. package/dist/kv.d.ts +0 -86
  92. package/dist/kv.d.ts.map +0 -1
  93. package/dist/kv.js +0 -261
  94. package/dist/kv.js.map +0 -1
  95. package/dist/projection-runner.d.ts +0 -83
  96. package/dist/projection-runner.d.ts.map +0 -1
  97. package/dist/projection-runner.js +0 -498
  98. package/dist/projection-runner.js.map +0 -1
  99. package/dist/projection.d.ts +0 -36
  100. package/dist/projection.d.ts.map +0 -1
  101. package/dist/projection.js +0 -55
  102. package/dist/projection.js.map +0 -1
  103. package/dist/secrets.d.ts +0 -6
  104. package/dist/secrets.d.ts.map +0 -1
  105. package/dist/secrets.js +0 -19
  106. package/dist/secrets.js.map +0 -1
  107. package/dist/serve.d.ts +0 -71
  108. package/dist/serve.d.ts.map +0 -1
  109. package/dist/serve.js +0 -460
  110. package/dist/serve.js.map +0 -1
  111. package/dist/step.d.ts +0 -18
  112. package/dist/step.d.ts.map +0 -1
  113. package/dist/step.js +0 -581
  114. package/dist/step.js.map +0 -1
  115. package/dist/subscribe.d.ts +0 -164
  116. package/dist/subscribe.d.ts.map +0 -1
  117. package/dist/subscribe.js +0 -487
  118. package/dist/subscribe.js.map +0 -1
  119. package/dist/test/index.d.ts +0 -22
  120. package/dist/test/index.d.ts.map +0 -1
  121. package/dist/test/index.js +0 -112
  122. package/dist/test/index.js.map +0 -1
  123. package/dist/test/test-step.d.ts +0 -21
  124. package/dist/test/test-step.d.ts.map +0 -1
  125. package/dist/test/test-step.js +0 -83
  126. package/dist/test/test-step.js.map +0 -1
  127. package/dist/types.d.ts +0 -108
  128. package/dist/types.d.ts.map +0 -1
  129. package/dist/types.js +0 -5
  130. package/dist/types.js.map +0 -1
  131. package/dist/version.d.ts +0 -2
  132. package/dist/version.d.ts.map +0 -1
  133. package/dist/version.js +0 -4
  134. package/dist/version.js.map +0 -1
  135. package/dist/webhook.d.ts +0 -22
  136. package/dist/webhook.d.ts.map +0 -1
  137. package/dist/webhook.js +0 -23
  138. package/dist/webhook.js.map +0 -1
  139. package/dist/worker-streaming.d.ts +0 -17
  140. package/dist/worker-streaming.d.ts.map +0 -1
  141. package/dist/worker-streaming.js +0 -510
  142. package/dist/worker-streaming.js.map +0 -1
  143. package/dist/worker.d.ts +0 -28
  144. package/dist/worker.d.ts.map +0 -1
  145. package/dist/worker.js +0 -559
  146. package/dist/worker.js.map +0 -1
package/dist/serve.d.ts DELETED
@@ -1,71 +0,0 @@
1
- /**
2
- * Universal HTTP Serve Handler
3
- *
4
- * Provides a universal handler that works with:
5
- * - Next.js App Router (export const POST = serve(...))
6
- * - Express (app.post("/api/ironflow", serve(...)))
7
- * - Hono (app.post("/api/ironflow", serve(...)))
8
- * - Generic Fetch API (native Request/Response)
9
- */
10
- import type { ServeConfig } from "./types.js";
11
- /**
12
- * Node.js IncomingMessage-like object
13
- * @internal
14
- */
15
- interface NodeRequest {
16
- method?: string;
17
- url?: string;
18
- headers: Record<string, string | string[] | undefined>;
19
- on?(event: string, callback: (data: unknown) => void): void;
20
- body?: string | Buffer | unknown;
21
- }
22
- /**
23
- * Node.js ServerResponse-like object
24
- * @internal
25
- */
26
- interface NodeResponse {
27
- statusCode?: number;
28
- setHeader?(name: string, value: string): void;
29
- end?(data: string): void;
30
- writeHead?(statusCode: number, headers: Record<string, string>): void;
31
- }
32
- /**
33
- * Universal handler function signature
34
- */
35
- type UniversalHandler = (request: Request | NodeRequest, responseOrContext?: NodeResponse | unknown) => Promise<Response | void>;
36
- /**
37
- * Create a universal HTTP handler for Ironflow functions
38
- *
39
- * @example
40
- * ```typescript
41
- * // Next.js App Router
42
- * import { serve } from "@ironflow/node/serve";
43
- * import { processOrder } from "./functions/process-order";
44
- *
45
- * export const POST = serve({
46
- * functions: [processOrder],
47
- * signingKey: process.env.IRONFLOW_SIGNING_KEY,
48
- * });
49
- * ```
50
- *
51
- * @example
52
- * ```typescript
53
- * // Express
54
- * import { serve } from "@ironflow/node/serve";
55
- *
56
- * app.post("/api/ironflow", serve({
57
- * functions: [processOrder],
58
- * signingKey: process.env.IRONFLOW_SIGNING_KEY,
59
- * }));
60
- * ```
61
- */
62
- export declare function serve(config: ServeConfig): UniversalHandler;
63
- /**
64
- * Create handler helper (alias for serve)
65
- */
66
- export declare const createHandler: typeof serve;
67
- /**
68
- * Default export
69
- */
70
- export default serve;
71
- //# sourceMappingURL=serve.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../src/serve.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAsBH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAQ9C;;;GAGG;AACH,UAAU,WAAW;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;IACvD,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAAC;IAC5D,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CAClC;AAED;;;GAGG;AACH,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;CACvE;AAED;;GAEG;AACH,KAAK,gBAAgB,GAAG,CACtB,OAAO,EAAE,OAAO,GAAG,WAAW,EAC9B,iBAAiB,CAAC,EAAE,YAAY,GAAG,OAAO,KACvC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,gBAAgB,CA0O3D;AAuPD;;GAEG;AACH,eAAO,MAAM,aAAa,cAAQ,CAAC;AAEnC;;GAEG;AACH,eAAe,KAAK,CAAC"}
package/dist/serve.js DELETED
@@ -1,460 +0,0 @@
1
- /**
2
- * Universal HTTP Serve Handler
3
- *
4
- * Provides a universal handler that works with:
5
- * - Next.js App Router (export const POST = serve(...))
6
- * - Express (app.post("/api/ironflow", serve(...)))
7
- * - Hono (app.post("/api/ironflow", serve(...)))
8
- * - Generic Fetch API (native Request/Response)
9
- */
10
- import { IronflowError, FunctionNotFoundError, isRetryable, PushRequestSchema, createLogger, createNoopLogger, HEADERS, DEFAULT_ENVIRONMENT, } from "@ironflow/core";
11
- import { createHmac, timingSafeEqual } from "node:crypto";
12
- import { ExecutionContext } from "./internal/context.js";
13
- import { createStepClient, executeCompensations } from "./step.js";
14
- import { isYieldSignal } from "./internal/errors.js";
15
- import { createSecretsClient } from "./secrets.js";
16
- import { withRunContext } from "./internal/run-context.js";
17
- import { DISPATCH_PATH, handleAgentToolDispatch } from "./agent/dispatch.js";
18
- /**
19
- * Create a universal HTTP handler for Ironflow functions
20
- *
21
- * @example
22
- * ```typescript
23
- * // Next.js App Router
24
- * import { serve } from "@ironflow/node/serve";
25
- * import { processOrder } from "./functions/process-order";
26
- *
27
- * export const POST = serve({
28
- * functions: [processOrder],
29
- * signingKey: process.env.IRONFLOW_SIGNING_KEY,
30
- * });
31
- * ```
32
- *
33
- * @example
34
- * ```typescript
35
- * // Express
36
- * import { serve } from "@ironflow/node/serve";
37
- *
38
- * app.post("/api/ironflow", serve({
39
- * functions: [processOrder],
40
- * signingKey: process.env.IRONFLOW_SIGNING_KEY,
41
- * }));
42
- * ```
43
- */
44
- export function serve(config) {
45
- // Resolve environment
46
- const environment = config.environment ?? process.env.IRONFLOW_ENV ?? DEFAULT_ENVIRONMENT;
47
- // Initialize logger
48
- let logger;
49
- if (config.logger === false) {
50
- logger = createNoopLogger();
51
- }
52
- else if (config.logger) {
53
- logger = config.logger;
54
- }
55
- else {
56
- logger = createLogger({ prefix: "[ironflow-serve]" });
57
- }
58
- // Build function map for fast lookup
59
- const functionMap = new Map();
60
- for (const fn of config.functions) {
61
- if (functionMap.has(fn.config.id)) {
62
- logger.warn(`Duplicate function ID "${fn.config.id}" — the later definition will overwrite the earlier one. ` +
63
- "Each function should have a unique ID.");
64
- }
65
- functionMap.set(fn.config.id, fn);
66
- }
67
- // Build webhook map for fast lookup
68
- const webhookMap = new Map();
69
- if (config.webhooks) {
70
- for (const wh of config.webhooks) {
71
- webhookMap.set(wh.config.id, wh);
72
- }
73
- }
74
- // Warn about projections in push mode
75
- if (config.projections?.length) {
76
- logger.warn("Projections in push mode are not supported. " +
77
- "Use createWorker() for projections.");
78
- }
79
- // Warn about missing signature verification
80
- if (!config.signingKey && !config.skipVerification) {
81
- logger.warn("No signingKey configured — webhook requests will not be authenticated. " +
82
- "Set signingKey in serve config for production use.");
83
- }
84
- // The universal handler
85
- const handler = async (requestOrReq, resOrContext) => {
86
- // Detect environment and normalize request
87
- const { request, sendResponse } = normalizeRequest(requestOrReq, resOrContext, environment);
88
- try {
89
- // Check if this is an agent-tool dispatch from `ironflow serve` →
90
- // `exposeMcp()` callback. Discriminated by URL suffix so it works
91
- // alongside the existing /webhooks routes and the bare push path.
92
- const reqPath = extractRequestPath(requestOrReq);
93
- if (reqPath.endsWith(DISPATCH_PATH)) {
94
- const result = await handleAgentToolDispatch(request);
95
- return sendResponse(result.status, result.body);
96
- }
97
- // Check if this is a webhook request
98
- let webhookProvider;
99
- if (requestOrReq instanceof Request) {
100
- const url = new URL(requestOrReq.url, "http://localhost");
101
- const webhookMatch = url.pathname.match(/\/webhooks\/([^/]+)/);
102
- if (webhookMatch) {
103
- webhookProvider = webhookMatch[1];
104
- }
105
- }
106
- else {
107
- // Node.js request
108
- const nodeReq = requestOrReq;
109
- const webhookMatch = (nodeReq.url || "").match(/\/webhooks\/([^/]+)/);
110
- if (webhookMatch) {
111
- webhookProvider = webhookMatch[1];
112
- }
113
- }
114
- if (webhookProvider && webhookMap.size > 0) {
115
- const wh = webhookMap.get(webhookProvider);
116
- if (!wh) {
117
- return sendResponse(404, {
118
- error: { message: `Webhook source not found: ${webhookProvider}`, code: "WEBHOOK_NOT_FOUND" },
119
- });
120
- }
121
- const body = await request.text();
122
- const headers = {};
123
- // Extract headers from the original request
124
- if (requestOrReq instanceof Request) {
125
- requestOrReq.headers.forEach((value, key) => {
126
- headers[key] = value;
127
- });
128
- }
129
- else {
130
- const nodeReq = requestOrReq;
131
- for (const [key, value] of Object.entries(nodeReq.headers)) {
132
- if (typeof value === "string")
133
- headers[key] = value;
134
- else if (Array.isArray(value))
135
- headers[key] = value[0] ?? "";
136
- }
137
- }
138
- try {
139
- await wh.config.verify({ body, headers });
140
- }
141
- catch (err) {
142
- return sendResponse(401, {
143
- error: {
144
- message: err instanceof Error ? err.message : "Verification failed",
145
- code: "VERIFY_FAILED",
146
- },
147
- });
148
- }
149
- try {
150
- const payload = JSON.parse(body);
151
- const event = await wh.config.transform(payload);
152
- // Emit event to Ironflow server if configured
153
- const emitUrl = config.serverUrl || process.env.IRONFLOW_URL;
154
- if (emitUrl) {
155
- const emitBody = {
156
- name: event.name,
157
- data: event.data,
158
- };
159
- if (event.idempotencyKey) {
160
- emitBody.idempotencyKey = event.idempotencyKey;
161
- }
162
- const emitResp = await fetch(`${emitUrl}/api/v1/events`, {
163
- method: "POST",
164
- headers: { "Content-Type": "application/json" },
165
- body: JSON.stringify(emitBody),
166
- });
167
- if (!emitResp.ok) {
168
- const errText = await emitResp.text();
169
- return sendResponse(502, {
170
- error: { message: `Failed to emit event: ${errText}`, code: "EMIT_FAILED" },
171
- });
172
- }
173
- }
174
- return sendResponse(200, { status: "accepted", event });
175
- }
176
- catch (err) {
177
- return sendResponse(400, {
178
- error: {
179
- message: err instanceof Error ? err.message : "Transform failed",
180
- code: "TRANSFORM_FAILED",
181
- },
182
- });
183
- }
184
- }
185
- // Read body
186
- const body = await request.text();
187
- // Verify signature (unless skipped for dev)
188
- if (config.signingKey && !config.skipVerification) {
189
- const signature = request.headers.get("x-ironflow-signature");
190
- if (!signature) {
191
- return sendResponse(401, {
192
- error: { message: "Missing signature", code: "SIGNATURE_MISSING" },
193
- });
194
- }
195
- if (!verifySignature(body, signature, config.signingKey)) {
196
- return sendResponse(401, {
197
- error: { message: "Invalid signature", code: "SIGNATURE_INVALID" },
198
- });
199
- }
200
- }
201
- // Parse and validate request
202
- let pushRequest;
203
- try {
204
- const parsed = JSON.parse(body);
205
- const result = PushRequestSchema.safeParse(parsed);
206
- if (!result.success) {
207
- const issues = result.error.issues
208
- .map((i) => `${i.path.join(".")}: ${i.message}`)
209
- .join(", ");
210
- return sendResponse(400, {
211
- error: {
212
- message: `Invalid request body: ${issues}`,
213
- code: "VALIDATION_ERROR",
214
- },
215
- });
216
- }
217
- pushRequest = result.data;
218
- }
219
- catch {
220
- return sendResponse(400, {
221
- error: { message: "Invalid JSON body", code: "INVALID_JSON" },
222
- });
223
- }
224
- // Find function
225
- const fn = functionMap.get(pushRequest.function_id);
226
- if (!fn) {
227
- return sendResponse(404, {
228
- error: {
229
- message: `Function not found: ${pushRequest.function_id}`,
230
- code: "FUNCTION_NOT_FOUND",
231
- },
232
- });
233
- }
234
- // Execute function
235
- const serverUrl = config.serverUrl || process.env.IRONFLOW_URL || process.env.IRONFLOW_SERVER_URL;
236
- const response = await executeHandler(fn, pushRequest, config.eventDefinitions, serverUrl);
237
- return sendResponse(200, response);
238
- }
239
- catch (error) {
240
- // Unexpected error
241
- logger.error("Unexpected error in serve handler", {
242
- error: error instanceof Error ? error.message : String(error),
243
- });
244
- return sendResponse(500, {
245
- error: {
246
- message: error instanceof Error ? error.message : "Internal server error",
247
- code: "INTERNAL_ERROR",
248
- },
249
- });
250
- }
251
- };
252
- return handler;
253
- }
254
- /**
255
- * Execute a function handler and build the response
256
- */
257
- async function executeHandler(fn, request, eventDefinitions, serverUrl) {
258
- // Create execution context (with optional upcasting)
259
- const ctx = new ExecutionContext(request, undefined, eventDefinitions, fn.config.stepTimeout, serverUrl);
260
- // Create step client
261
- const step = createStepClient(ctx);
262
- // Build function context
263
- const functionContext = {
264
- event: ctx.event,
265
- step,
266
- run: ctx.runInfo,
267
- logger: ctx.logger,
268
- secrets: createSecretsClient(request.secrets),
269
- };
270
- try {
271
- // Execute the function handler
272
- const result = await withRunContext(ctx.runId, () => fn.handler(functionContext));
273
- // Function completed successfully
274
- return {
275
- status: "completed",
276
- steps: ctx.getExecutedSteps(),
277
- result,
278
- };
279
- }
280
- catch (error) {
281
- // Check if this is a yield signal (sleep/waitForEvent)
282
- if (isYieldSignal(error)) {
283
- return {
284
- status: "yielded",
285
- steps: ctx.getExecutedSteps(),
286
- yield: error.yieldInfo,
287
- };
288
- }
289
- // Handle actual errors
290
- const errorMessage = error instanceof Error ? error.message : String(error);
291
- const errorStack = error instanceof Error ? error.stack : undefined;
292
- const errorCode = error instanceof IronflowError ? error.code : "ERROR";
293
- const retryable = isRetryable(error);
294
- // Run compensations only if error is not retryable (terminal failure)
295
- if (ctx.hasCompensations() && !retryable) {
296
- await executeCompensations(ctx);
297
- }
298
- // Get step ID if it's a step error
299
- let stepId;
300
- if (error instanceof FunctionNotFoundError) {
301
- stepId = undefined;
302
- }
303
- else if (error instanceof IronflowError && error.details?.["stepId"]) {
304
- stepId = error.details["stepId"];
305
- }
306
- ctx.logger.error(`Function failed: ${errorMessage}`, {
307
- code: errorCode,
308
- retryable,
309
- stepId,
310
- });
311
- return {
312
- status: "failed",
313
- steps: ctx.getExecutedSteps(),
314
- error: {
315
- message: errorMessage,
316
- code: errorCode,
317
- step_id: stepId,
318
- retryable,
319
- stack: errorStack,
320
- },
321
- };
322
- }
323
- }
324
- /**
325
- * Normalize different request types into a common interface
326
- */
327
- function normalizeRequest(request, responseOrContext, environment) {
328
- const responseHeaders = {
329
- "Content-Type": "application/json",
330
- };
331
- if (environment) {
332
- responseHeaders[HEADERS.ENVIRONMENT] = environment;
333
- }
334
- // Check if it's a native Fetch Request
335
- if (request instanceof Request) {
336
- return {
337
- request: {
338
- text: () => request.text(),
339
- headers: {
340
- get: (name) => request.headers.get(name),
341
- },
342
- },
343
- sendResponse: (status, body) => {
344
- return new Response(JSON.stringify(body), {
345
- status,
346
- headers: responseHeaders,
347
- });
348
- },
349
- };
350
- }
351
- // It's a Node.js-style request
352
- const nodeReq = request;
353
- const nodeRes = responseOrContext;
354
- return {
355
- request: {
356
- text: async () => {
357
- // If body is already parsed (e.g., by express.json())
358
- if (typeof nodeReq.body === "string") {
359
- return nodeReq.body;
360
- }
361
- if (Buffer.isBuffer(nodeReq.body)) {
362
- return nodeReq.body.toString("utf-8");
363
- }
364
- if (typeof nodeReq.body === "object" && nodeReq.body !== null) {
365
- return JSON.stringify(nodeReq.body);
366
- }
367
- // Read from stream
368
- return new Promise((resolve, reject) => {
369
- const chunks = [];
370
- nodeReq.on?.("data", (chunk) => {
371
- if (chunk instanceof Uint8Array || Buffer.isBuffer(chunk)) {
372
- chunks.push(chunk);
373
- }
374
- else if (typeof chunk === "string") {
375
- chunks.push(Buffer.from(chunk));
376
- }
377
- });
378
- nodeReq.on?.("end", () => resolve(Buffer.concat(chunks).toString("utf-8")));
379
- nodeReq.on?.("error", reject);
380
- });
381
- },
382
- headers: {
383
- get: (name) => {
384
- const value = nodeReq.headers[name.toLowerCase()];
385
- if (Array.isArray(value)) {
386
- return value[0] ?? null;
387
- }
388
- return value ?? null;
389
- },
390
- },
391
- },
392
- sendResponse: (status, body) => {
393
- if (nodeRes) {
394
- if (nodeRes.writeHead) {
395
- nodeRes.writeHead(status, responseHeaders);
396
- }
397
- else {
398
- nodeRes.statusCode = status;
399
- for (const [key, value] of Object.entries(responseHeaders)) {
400
- nodeRes.setHeader?.(key, value);
401
- }
402
- }
403
- nodeRes.end?.(JSON.stringify(body));
404
- return;
405
- }
406
- return new Response(JSON.stringify(body), {
407
- status,
408
- headers: responseHeaders,
409
- });
410
- },
411
- };
412
- }
413
- /**
414
- * Extract the request URL path for routing decisions. Both Fetch
415
- * Request and NodeRequest types are supported — we only need the
416
- * pathname suffix.
417
- */
418
- function extractRequestPath(req) {
419
- if (req instanceof Request) {
420
- try {
421
- return new URL(req.url, "http://localhost").pathname;
422
- }
423
- catch {
424
- return "";
425
- }
426
- }
427
- const nodeReq = req;
428
- return nodeReq.url ?? "";
429
- }
430
- /**
431
- * Verify HMAC-SHA256 signature using timing-safe comparison.
432
- *
433
- * The signature header is expected in the format "sha256=<hex digest>".
434
- */
435
- function verifySignature(body, signature, signingKey) {
436
- const prefix = "sha256=";
437
- if (!signature.startsWith(prefix)) {
438
- return false;
439
- }
440
- const receivedHex = signature.slice(prefix.length);
441
- const expectedHex = createHmac("sha256", signingKey)
442
- .update(body)
443
- .digest("hex");
444
- // Timing-safe comparison to prevent timing attacks
445
- const receivedBuf = Buffer.from(receivedHex, "hex");
446
- const expectedBuf = Buffer.from(expectedHex, "hex");
447
- if (receivedBuf.length !== expectedBuf.length) {
448
- return false;
449
- }
450
- return timingSafeEqual(receivedBuf, expectedBuf);
451
- }
452
- /**
453
- * Create handler helper (alias for serve)
454
- */
455
- export const createHandler = serve;
456
- /**
457
- * Default export
458
- */
459
- export default serve;
460
- //# sourceMappingURL=serve.js.map
package/dist/serve.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"serve.js","sourceRoot":"","sources":["../src/serve.ts"],"names":[],"mappings":"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"}
package/dist/step.d.ts DELETED
@@ -1,18 +0,0 @@
1
- /**
2
- * Step Execution Client
3
- *
4
- * Implements durable step primitives: run, sleep, sleepUntil, waitForEvent, parallel, map
5
- */
6
- import type { StepClient } from "@ironflow/core";
7
- import { ExecutionContext } from "./internal/context.js";
8
- /**
9
- * Create a step client for the given execution context
10
- */
11
- export declare function createStepClient(ctx: ExecutionContext): StepClient;
12
- /**
13
- * Execute registered compensations in reverse order.
14
- * Each compensation is executed as a durable step (memoized).
15
- * Compensation failures are recorded but don't stop remaining compensations.
16
- */
17
- export declare function executeCompensations(ctx: ExecutionContext): Promise<void>;
18
- //# sourceMappingURL=step.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"step.d.ts","sourceRoot":"","sources":["../src/step.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAKV,UAAU,EAKX,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,gBAAgB,EAAiB,MAAM,uBAAuB,CAAC;AAiCxE;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,gBAAgB,GAAG,UAAU,CAElE;AAugBD;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiE/E"}