@xyne/workflow-sdk 3.2.38 → 3.2.39

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 (111) hide show
  1. package/dist/connectors/builtin/builtin-connector.d.ts +1 -0
  2. package/dist/connectors/builtin/builtin-connector.d.ts.map +1 -1
  3. package/dist/connectors/builtin/builtin-connector.js +1 -0
  4. package/dist/connectors/builtin/builtin-connector.js.map +1 -1
  5. package/dist/connectors/core/base-connector.d.ts +5 -0
  6. package/dist/connectors/core/base-connector.d.ts.map +1 -1
  7. package/dist/connectors/core/base-connector.js +5 -0
  8. package/dist/connectors/core/base-connector.js.map +1 -1
  9. package/dist/connectors/core/connector-registry.d.ts.map +1 -1
  10. package/dist/connectors/core/connector-registry.js +7 -11
  11. package/dist/connectors/core/connector-registry.js.map +1 -1
  12. package/dist/router/workflow-router.d.ts.map +1 -1
  13. package/dist/router/workflow-router.js +22 -5
  14. package/dist/router/workflow-router.js.map +1 -1
  15. package/dist/runtime/workflow-runtime.d.ts +8 -5
  16. package/dist/runtime/workflow-runtime.d.ts.map +1 -1
  17. package/dist/runtime/workflow-runtime.js +20 -5
  18. package/dist/runtime/workflow-runtime.js.map +1 -1
  19. package/dist/steps/base-step.d.ts +1 -0
  20. package/dist/steps/base-step.d.ts.map +1 -1
  21. package/dist/steps/base-step.js +1 -0
  22. package/dist/steps/base-step.js.map +1 -1
  23. package/dist/steps/step-descriptor.d.ts +2 -0
  24. package/dist/steps/step-descriptor.d.ts.map +1 -1
  25. package/dist/steps/step-descriptor.js +1 -0
  26. package/dist/steps/step-descriptor.js.map +1 -1
  27. package/dist/triggers/base-trigger.d.ts +1 -0
  28. package/dist/triggers/base-trigger.d.ts.map +1 -1
  29. package/dist/triggers/base-trigger.js +1 -0
  30. package/dist/triggers/base-trigger.js.map +1 -1
  31. package/dist/triggers/trigger-descriptor.d.ts +2 -0
  32. package/dist/triggers/trigger-descriptor.d.ts.map +1 -1
  33. package/dist/triggers/trigger-descriptor.js +1 -0
  34. package/dist/triggers/trigger-descriptor.js.map +1 -1
  35. package/dist/triggers/webhook-trigger.d.ts +22 -3
  36. package/dist/triggers/webhook-trigger.d.ts.map +1 -1
  37. package/dist/triggers/webhook-trigger.js +23 -2
  38. package/dist/triggers/webhook-trigger.js.map +1 -1
  39. package/package.json +1 -1
  40. package/dist/runtime/execution-event-bus.d.ts +0 -38
  41. package/dist/runtime/execution-event-bus.d.ts.map +0 -1
  42. package/dist/runtime/execution-event-bus.js +0 -87
  43. package/dist/runtime/execution-event-bus.js.map +0 -1
  44. package/dist/steps/builtin/code.step.d.ts +0 -99
  45. package/dist/steps/builtin/code.step.d.ts.map +0 -1
  46. package/dist/steps/builtin/code.step.js +0 -152
  47. package/dist/steps/builtin/code.step.js.map +0 -1
  48. package/dist/steps/builtin/conditional.step.d.ts +0 -182
  49. package/dist/steps/builtin/conditional.step.d.ts.map +0 -1
  50. package/dist/steps/builtin/conditional.step.js +0 -82
  51. package/dist/steps/builtin/conditional.step.js.map +0 -1
  52. package/dist/steps/builtin/dedup.step.d.ts +0 -65
  53. package/dist/steps/builtin/dedup.step.d.ts.map +0 -1
  54. package/dist/steps/builtin/dedup.step.js +0 -61
  55. package/dist/steps/builtin/dedup.step.js.map +0 -1
  56. package/dist/steps/builtin/http-request.step.d.ts +0 -1020
  57. package/dist/steps/builtin/http-request.step.d.ts.map +0 -1
  58. package/dist/steps/builtin/http-request.step.js +0 -491
  59. package/dist/steps/builtin/http-request.step.js.map +0 -1
  60. package/dist/steps/builtin/loop.step.d.ts +0 -100
  61. package/dist/steps/builtin/loop.step.d.ts.map +0 -1
  62. package/dist/steps/builtin/loop.step.js +0 -73
  63. package/dist/steps/builtin/loop.step.js.map +0 -1
  64. package/dist/steps/builtin/map.step.d.ts +0 -148
  65. package/dist/steps/builtin/map.step.d.ts.map +0 -1
  66. package/dist/steps/builtin/map.step.js +0 -111
  67. package/dist/steps/builtin/map.step.js.map +0 -1
  68. package/dist/steps/builtin/parallel.step.d.ts +0 -246
  69. package/dist/steps/builtin/parallel.step.d.ts.map +0 -1
  70. package/dist/steps/builtin/parallel.step.js +0 -175
  71. package/dist/steps/builtin/parallel.step.js.map +0 -1
  72. package/dist/steps/builtin/ssrf-guard.d.ts +0 -9
  73. package/dist/steps/builtin/ssrf-guard.d.ts.map +0 -1
  74. package/dist/steps/builtin/ssrf-guard.js +0 -115
  75. package/dist/steps/builtin/ssrf-guard.js.map +0 -1
  76. package/dist/steps/builtin/switch.step.d.ts +0 -235
  77. package/dist/steps/builtin/switch.step.d.ts.map +0 -1
  78. package/dist/steps/builtin/switch.step.js +0 -101
  79. package/dist/steps/builtin/switch.step.js.map +0 -1
  80. package/dist/steps/builtin/wait.step.d.ts +0 -1072
  81. package/dist/steps/builtin/wait.step.d.ts.map +0 -1
  82. package/dist/steps/builtin/wait.step.js +0 -254
  83. package/dist/steps/builtin/wait.step.js.map +0 -1
  84. package/dist/steps/step-registry.d.ts +0 -62
  85. package/dist/steps/step-registry.d.ts.map +0 -1
  86. package/dist/steps/step-registry.js +0 -103
  87. package/dist/steps/step-registry.js.map +0 -1
  88. package/dist/triggers/builtin/default-cron-trigger.d.ts +0 -44
  89. package/dist/triggers/builtin/default-cron-trigger.d.ts.map +0 -1
  90. package/dist/triggers/builtin/default-cron-trigger.js +0 -31
  91. package/dist/triggers/builtin/default-cron-trigger.js.map +0 -1
  92. package/dist/triggers/builtin/default-event-trigger.d.ts +0 -32
  93. package/dist/triggers/builtin/default-event-trigger.d.ts.map +0 -1
  94. package/dist/triggers/builtin/default-event-trigger.js +0 -21
  95. package/dist/triggers/builtin/default-event-trigger.js.map +0 -1
  96. package/dist/triggers/builtin/default-manual-trigger.d.ts +0 -45
  97. package/dist/triggers/builtin/default-manual-trigger.d.ts.map +0 -1
  98. package/dist/triggers/builtin/default-manual-trigger.js +0 -51
  99. package/dist/triggers/builtin/default-manual-trigger.js.map +0 -1
  100. package/dist/triggers/builtin/default-webhook-trigger.d.ts +0 -72
  101. package/dist/triggers/builtin/default-webhook-trigger.d.ts.map +0 -1
  102. package/dist/triggers/builtin/default-webhook-trigger.js +0 -91
  103. package/dist/triggers/builtin/default-webhook-trigger.js.map +0 -1
  104. package/dist/triggers/builtin/default-webhook-v2-trigger.d.ts +0 -29
  105. package/dist/triggers/builtin/default-webhook-v2-trigger.d.ts.map +0 -1
  106. package/dist/triggers/builtin/default-webhook-v2-trigger.js +0 -38
  107. package/dist/triggers/builtin/default-webhook-v2-trigger.js.map +0 -1
  108. package/dist/triggers/trigger-registry.d.ts +0 -48
  109. package/dist/triggers/trigger-registry.d.ts.map +0 -1
  110. package/dist/triggers/trigger-registry.js +0 -83
  111. package/dist/triggers/trigger-registry.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"http-request.step.d.ts","sourceRoot":"","sources":["../../../src/steps/builtin/http-request.step.ts"],"names":[],"mappings":"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"}
@@ -1,491 +0,0 @@
1
- /**
2
- * HTTP_REQUEST step — make HTTP requests to external APIs.
3
- *
4
- * Action step that uses the global `fetch` API (Node 20+). Always
5
- * returns the response — never throws on HTTP error status codes.
6
- * The consumer can branch on `ok` or `status` via a CONDITIONAL step.
7
- *
8
- * ## Body modes (Postman-aligned)
9
- *
10
- * `body` is a discriminated union by `mode`. Each mode has its own shape:
11
- *
12
- * - `none` — no body
13
- * - `raw` — single text payload; pick the content-type via `contentType`
14
- * - `urlencoded` — `application/x-www-form-urlencoded` key/value pairs
15
- * - `formdata` — `multipart/form-data` with text fields and optional files
16
- *
17
- * Binary request bodies are out of scope for the current iteration. Multipart
18
- * file fields use the {@link Attachment} primitive and StorageAdapter.
19
- *
20
- * ## Auth
21
- *
22
- * The optional `credentialName` selects a stored credential from the vault.
23
- * Before this step runs, the executor resolves that selection and injects the
24
- * validated value through `ctx.credentials`. The step
25
- * receives the resolved value and applies it after user-provided headers, so
26
- * managed authentication cannot be accidentally overridden.
27
- *
28
- * ## Response shape
29
- *
30
- * The step's output IS the response:
31
- *
32
- * { status, statusText, ok, headers, body, bodyText, size, duration }
33
- *
34
- * `body` is the parsed value per `responseType`. `bodyText` is the raw text
35
- * (always present, empty for `discard`). `size` is bytes received.
36
- *
37
- * The author optionally declares `responseBodySchema` (a JSON Schema). When
38
- * present the step's `resolveOutputJsonSchema(config)` types the `body`
39
- * field for downstream variable pickers; the runtime behaviour is unchanged.
40
- */
41
- import { z } from 'zod';
42
- import { BaseActionStep } from '../base-step.js';
43
- import { BuiltinStepType } from '../../types/known-types.js';
44
- import { applyResolvedCredentialAuth, CredentialNameSchema, } from '../../common/credentials.js';
45
- import { AttachmentSchema, markAttachmentFields } from '../../common/attachment.js';
46
- import { variableRef } from '../../types/workflow-config.js';
47
- import { assertPublicHttpUrl } from './ssrf-guard.js';
48
- const RAW_CONTENT_TYPES = {
49
- json: 'application/json',
50
- xml: 'application/xml',
51
- html: 'text/html',
52
- text: 'text/plain',
53
- javascript: 'application/javascript',
54
- };
55
- export const HttpRawContentTypeSchema = z.enum([
56
- 'json',
57
- 'xml',
58
- 'html',
59
- 'text',
60
- 'javascript',
61
- 'custom',
62
- ]);
63
- const HttpBodyNoneSchema = z.object({ mode: z.literal('none') });
64
- const HttpBodyRawSchema = z.object({
65
- mode: z.literal('raw'),
66
- raw: z.string().describe('Raw body content'),
67
- contentType: HttpRawContentTypeSchema.default('json')
68
- .describe('Content-Type for the raw body'),
69
- customContentType: z.string().optional()
70
- .describe('Used when contentType is "custom" (e.g. application/vnd.api+json)'),
71
- });
72
- const HttpBodyUrlencodedFieldSchema = z.object({
73
- key: z.string().min(1),
74
- value: z.string(),
75
- enabled: z.boolean().default(true),
76
- });
77
- const HttpBodyUrlencodedSchema = z.object({
78
- mode: z.literal('urlencoded'),
79
- fields: z.array(HttpBodyUrlencodedFieldSchema).default([]),
80
- });
81
- const HttpBodyFormdataFieldSchema = z.object({
82
- key: z.string().min(1),
83
- value: z.string(),
84
- enabled: z.boolean().default(true),
85
- });
86
- const HttpBodyFormdataFileSchema = z.object({
87
- key: z.string().min(1),
88
- value: variableRef(z.union([AttachmentSchema, z.array(AttachmentSchema)])).optional(),
89
- enabled: z.boolean().default(true),
90
- });
91
- const HttpBodyFormdataSchema = z.object({
92
- mode: z.literal('formdata'),
93
- fields: z.array(HttpBodyFormdataFieldSchema).default([]),
94
- files: z.array(HttpBodyFormdataFileSchema).optional(),
95
- });
96
- export const HttpBodySchema = z.discriminatedUnion('mode', [
97
- HttpBodyNoneSchema,
98
- HttpBodyRawSchema,
99
- HttpBodyUrlencodedSchema,
100
- HttpBodyFormdataSchema,
101
- ]);
102
- // ─── Response config (discriminated by type) ───
103
- /**
104
- * Response handling. Discriminated so the optional `bodySchema` only lives on
105
- * the modes where it's meaningful (`json`, `auto`); a `text`/`base64`/`discard`
106
- * config can't accidentally carry an irrelevant schema.
107
- */
108
- const HttpResponseJsonSchema = z.object({
109
- type: z.literal('json'),
110
- bodySchema: z.record(z.unknown()).optional()
111
- .describe('JSON Schema describing the parsed body. Drives the variable picker for downstream steps.'),
112
- });
113
- const HttpResponseAutoSchema = z.object({
114
- type: z.literal('auto'),
115
- bodySchema: z.record(z.unknown()).optional()
116
- .describe('JSON Schema describing the body when the response is JSON. Drives the variable picker for downstream steps.'),
117
- });
118
- // `.strict()` so a `bodySchema` accidentally left on these variants is a
119
- // validation error instead of being silently stripped.
120
- const HttpResponseTextSchema = z.object({ type: z.literal('text') }).strict();
121
- const HttpResponseBase64Schema = z.object({ type: z.literal('base64') }).strict();
122
- const HttpResponseDiscardSchema = z.object({ type: z.literal('discard') }).strict();
123
- export const HttpResponseSchema = z.discriminatedUnion('type', [
124
- HttpResponseJsonSchema,
125
- HttpResponseAutoSchema,
126
- HttpResponseTextSchema,
127
- HttpResponseBase64Schema,
128
- HttpResponseDiscardSchema,
129
- ]);
130
- // ─── Config ───
131
- export const HttpMethodSchema = z.enum([
132
- 'GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS',
133
- ]);
134
- export const HttpRequestStepConfigSchema = z.object({
135
- url: z.string().min(1).describe('Full URL including protocol (e.g. https://api.example.com/data)'),
136
- method: HttpMethodSchema.default('GET').describe('HTTP method'),
137
- credentialName: variableRef(CredentialNameSchema.describe('Credential from the vault used to authenticate the request. The executor resolves it before this step runs.')).optional(),
138
- headers: z.record(z.string(), z.string()).optional().describe('Request headers as key-value pairs'),
139
- queryParams: z.record(z.string(), z.string()).optional().describe('Query parameters appended to URL'),
140
- body: HttpBodySchema.default({ mode: 'none' }).describe('Request body — ignored for GET/HEAD. Postman-style modes: none/raw/urlencoded/formdata/binary'),
141
- response: HttpResponseSchema.default({ type: 'auto' })
142
- .describe('How to parse the response body. `bodySchema` (on json/auto) types the variable picker for downstream steps.'),
143
- timeoutMs: z.number().int().positive().default(30_000).describe('Request timeout in milliseconds'),
144
- followRedirects: z.boolean().default(true).describe('Whether to follow HTTP redirects'),
145
- });
146
- const HttpRequestStepOutputSchema = z.object({
147
- status: z.number().int(),
148
- statusText: z.string(),
149
- ok: z.boolean(),
150
- headers: z.record(z.string(), z.string()),
151
- body: z.unknown(),
152
- bodyText: z.string(),
153
- size: z.number().int().nonnegative(),
154
- duration: z.number().nonnegative(),
155
- });
156
- // ─── Step ───
157
- export class HttpRequestStep extends BaseActionStep {
158
- type = BuiltinStepType.HTTP_REQUEST;
159
- name = 'HTTP Request';
160
- description = 'Make HTTP requests to external APIs';
161
- configSchema = HttpRequestStepConfigSchema;
162
- outputSchema = HttpRequestStepOutputSchema;
163
- category = 'integration';
164
- icon = 'globe';
165
- // The slot name is also the config field: the executor reads the selected
166
- // name from `config.credentialName` and injects the resolved, validated value
167
- // as `ctx.credentials.credentialName` before execute() is called.
168
- credentialSlots = [
169
- { name: 'credentialName', required: false },
170
- ];
171
- decorateConfigSchema(jsonSchema) {
172
- const rootProps = jsonSchema['properties'];
173
- if (rootProps?.['credentialName']) {
174
- rootProps['credentialName'] = {
175
- ...rootProps['credentialName'],
176
- format: 'credential-name',
177
- };
178
- }
179
- // The `bodySchema` field inside the discriminated `response` union should
180
- // render with the JSON Schema builder UI. The schema-form renderer walks
181
- // discriminator variants, so we tag the field within each variant that
182
- // carries it (json/auto).
183
- const props = jsonSchema['properties'];
184
- const response = props?.['response'];
185
- const variants = (response?.['anyOf'] ?? response?.['oneOf']);
186
- if (variants) {
187
- for (const variant of variants) {
188
- const vProps = variant['properties'];
189
- if (vProps?.['bodySchema']) {
190
- vProps['bodySchema'] = { ...vProps['bodySchema'], format: 'json-schema' };
191
- }
192
- }
193
- }
194
- const body = props?.['body'];
195
- const bodyVariants = (body?.['anyOf'] ?? body?.['oneOf']);
196
- const formdataVariant = bodyVariants?.find((variant) => {
197
- const vProps = variant['properties'];
198
- return vProps?.['mode']?.['const'] === 'formdata';
199
- });
200
- const formdataProps = formdataVariant?.['properties'];
201
- const filesItems = formdataProps?.['files']?.['items'];
202
- if (filesItems) {
203
- markAttachmentFields(filesItems, ['value']);
204
- }
205
- return jsonSchema;
206
- }
207
- /**
208
- * Per-instance output schema. When the author's `response` config provides
209
- * a `bodySchema` (json/auto), we plug it into `body`. For other response
210
- * types (`text`, `base64`, `discard`) we set the body's static type since
211
- * no user shape is involved.
212
- */
213
- resolveOutputJsonSchema(config) {
214
- const response = (config['response'] ?? { type: 'auto' });
215
- const bodySchema = this.outputBodySchemaFor(response);
216
- return {
217
- type: 'object',
218
- properties: {
219
- status: { type: 'integer' },
220
- statusText: { type: 'string' },
221
- ok: { type: 'boolean' },
222
- headers: {
223
- type: 'object',
224
- additionalProperties: { type: 'string' },
225
- },
226
- body: bodySchema,
227
- bodyText: { type: 'string' },
228
- size: { type: 'integer' },
229
- duration: { type: 'integer' },
230
- },
231
- };
232
- }
233
- outputBodySchemaFor(response) {
234
- switch (response.type) {
235
- case 'json':
236
- case 'auto':
237
- return response.bodySchema && Object.keys(response.bodySchema).length > 0
238
- ? response.bodySchema
239
- : { type: 'object' };
240
- case 'text':
241
- return { type: 'string' };
242
- case 'base64':
243
- return { type: 'string', contentEncoding: 'base64' };
244
- case 'discard':
245
- return { type: 'null' };
246
- }
247
- }
248
- redactInput(input) {
249
- const redacted = { ...input };
250
- // Never persist body — may contain sensitive data
251
- if ('body' in redacted) {
252
- redacted['body'] = '[REDACTED]';
253
- }
254
- // Redact auth tokens
255
- if (redacted['auth'] && typeof redacted['auth'] === 'object') {
256
- const auth = { ...redacted['auth'] };
257
- if ('token' in auth)
258
- auth['token'] = '[REDACTED]';
259
- if ('password' in auth)
260
- auth['password'] = '[REDACTED]';
261
- if ('key' in auth)
262
- auth['key'] = '[REDACTED]';
263
- if ('value' in auth)
264
- auth['value'] = '[REDACTED]';
265
- redacted['auth'] = auth;
266
- }
267
- return redacted;
268
- }
269
- async execute(config, ctx) {
270
- // Build URL with query params
271
- const url = this.buildUrl(config.url, config.queryParams);
272
- // Build headers: user headers FIRST, then managed credential auth LAST — so
273
- // a conflicting manually-entered header can't override the selected
274
- // credential's authentication.
275
- const headers = new Headers();
276
- if (config.headers) {
277
- for (const [k, v] of Object.entries(config.headers)) {
278
- headers.set(k, v);
279
- }
280
- }
281
- const credential = ctx.credentials['credentialName'];
282
- if (credential) {
283
- applyResolvedCredentialAuth(headers, credential);
284
- }
285
- // Build request. Redirects are followed manually (redirect: 'manual') so the
286
- // SSRF guard re-checks every hop — native 'follow' would chase a redirect
287
- // straight to a private / cloud-metadata address.
288
- const init = {
289
- method: config.method,
290
- headers,
291
- redirect: 'manual',
292
- };
293
- // Encode body for methods that support it.
294
- // GET/HEAD never carry a body even if the user configured one.
295
- if (config.body.mode !== 'none' && !['GET', 'HEAD'].includes(config.method)) {
296
- const encoded = await this.encodeBody(config.body, headers, ctx);
297
- if (encoded !== undefined) {
298
- init.body = encoded;
299
- }
300
- }
301
- // Timeout
302
- const controller = new AbortController();
303
- const timer = setTimeout(() => controller.abort(), config.timeoutMs);
304
- init.signal = controller.signal;
305
- const maxRedirects = config.followRedirects ? 5 : 0;
306
- const t0 = Date.now();
307
- let response;
308
- try {
309
- let currentUrl = url.toString();
310
- let hops = 0;
311
- for (;;) {
312
- // SSRF guard runs on the initial URL and on every redirect target.
313
- await assertPublicHttpUrl(currentUrl);
314
- response = await fetch(currentUrl, init);
315
- const location = response.headers.get('location');
316
- const isRedirectStatus = response.status >= 300 && response.status < 400;
317
- if (!isRedirectStatus || location === null || hops >= maxRedirects)
318
- break;
319
- hops += 1;
320
- currentUrl = new URL(location, currentUrl).toString();
321
- // A one-shot body (multipart/stream) can't be replayed on the next hop.
322
- if (init.body instanceof FormData || init.body instanceof ReadableStream) {
323
- init.body = null;
324
- }
325
- }
326
- }
327
- catch (err) {
328
- clearTimeout(timer);
329
- if (err instanceof DOMException && err.name === 'AbortError') {
330
- throw new Error(`HTTP_REQUEST to ${config.url} timed out after ${String(config.timeoutMs)}ms`);
331
- }
332
- throw new Error(`HTTP_REQUEST to ${config.url} failed: ${err instanceof Error ? err.message : String(err)}`);
333
- }
334
- clearTimeout(timer);
335
- const duration = Date.now() - t0;
336
- // Always capture raw bytes; we then expose size, bodyText, and the
337
- // parsed body view in one pass.
338
- const responseHeaders = {};
339
- response.headers.forEach((value, key) => {
340
- responseHeaders[key] = value;
341
- });
342
- if (config.response.type === 'discard') {
343
- return {
344
- status: response.status,
345
- statusText: response.statusText,
346
- ok: response.ok,
347
- headers: responseHeaders,
348
- body: null,
349
- bodyText: '',
350
- size: 0,
351
- duration,
352
- };
353
- }
354
- const rawBytes = new Uint8Array(await response.arrayBuffer());
355
- const size = rawBytes.byteLength;
356
- const bodyText = this.decodeText(rawBytes);
357
- const body = this.parseResponseBody(rawBytes, bodyText, responseHeaders, config.response.type);
358
- return {
359
- status: response.status,
360
- statusText: response.statusText,
361
- ok: response.ok,
362
- headers: responseHeaders,
363
- body,
364
- bodyText,
365
- size,
366
- duration,
367
- };
368
- }
369
- // ─── URL building ───
370
- buildUrl(baseUrl, queryParams) {
371
- const url = new URL(baseUrl);
372
- if (queryParams) {
373
- for (const [k, v] of Object.entries(queryParams)) {
374
- url.searchParams.append(k, v);
375
- }
376
- }
377
- return url;
378
- }
379
- // ─── Body encoding (Postman-style modes) ───
380
- /**
381
- * Encode the request body for the given mode. Mutates `headers` to set
382
- * the appropriate Content-Type unless the user already supplied one.
383
- *
384
- * Returns the `BodyInit` to attach (or `undefined` for empty bodies).
385
- */
386
- async encodeBody(body, headers, ctx) {
387
- switch (body.mode) {
388
- case 'none':
389
- return undefined;
390
- case 'raw': {
391
- if (!headers.has('content-type')) {
392
- const ct = body.contentType === 'custom'
393
- ? body.customContentType ?? 'application/octet-stream'
394
- : RAW_CONTENT_TYPES[body.contentType];
395
- headers.set('content-type', ct);
396
- }
397
- return body.raw;
398
- }
399
- case 'urlencoded': {
400
- if (!headers.has('content-type')) {
401
- headers.set('content-type', 'application/x-www-form-urlencoded');
402
- }
403
- const params = new URLSearchParams();
404
- for (const f of body.fields) {
405
- if (f.enabled === false)
406
- continue;
407
- params.append(f.key, f.value);
408
- }
409
- return params.toString();
410
- }
411
- case 'formdata': {
412
- // Let fetch set the multipart boundary in Content-Type automatically.
413
- if (headers.has('content-type')) {
414
- headers.delete('content-type');
415
- }
416
- const form = new FormData();
417
- for (const f of body.fields) {
418
- if (f.enabled === false)
419
- continue;
420
- form.append(f.key, f.value);
421
- }
422
- for (const f of body.files ?? []) {
423
- if (f.enabled === false)
424
- continue;
425
- if (f.value === undefined || f.value === null)
426
- continue;
427
- const attachments = (Array.isArray(f.value) ? f.value : [f.value])
428
- .filter((value) => typeof value === 'object' && value !== null);
429
- for (const attachment of attachments) {
430
- const bytes = await ctx.storage.read(attachment, ctx.runtime.attributes);
431
- form.append(f.key, new Blob([bytes], { type: attachment.mimeType }), attachment.name);
432
- }
433
- }
434
- return form;
435
- }
436
- }
437
- }
438
- // ─── Response parsing ───
439
- decodeText(bytes) {
440
- try {
441
- // strict: false → invalid utf-8 yields replacement chars instead of throwing.
442
- return new TextDecoder('utf-8', { fatal: false }).decode(bytes);
443
- }
444
- catch {
445
- return '';
446
- }
447
- }
448
- parseResponseBody(bytes, bodyText, headers, responseType) {
449
- switch (responseType) {
450
- case 'json':
451
- // Throws on malformed JSON — explicit opt-in to strict parsing.
452
- return JSON.parse(bodyText);
453
- case 'text':
454
- return bodyText;
455
- case 'base64':
456
- return bytesToBase64(bytes);
457
- case 'discard':
458
- return null;
459
- case 'auto':
460
- return this.autoParseBody(bodyText, headers);
461
- }
462
- }
463
- autoParseBody(bodyText, headers) {
464
- const ct = headers['content-type'] ?? '';
465
- if (ct.includes('application/json')) {
466
- try {
467
- return JSON.parse(bodyText);
468
- }
469
- catch {
470
- return bodyText;
471
- }
472
- }
473
- if (ct.startsWith('text/')) {
474
- return bodyText;
475
- }
476
- return null;
477
- }
478
- }
479
- // ─── Helpers ───
480
- /** Encode bytes as base64. Works in browsers and Node (no Buffer dependency). */
481
- function bytesToBase64(bytes) {
482
- let binary = '';
483
- const chunkSize = 0x8000;
484
- for (let i = 0; i < bytes.length; i += chunkSize) {
485
- const chunk = bytes.subarray(i, i + chunkSize);
486
- binary += String.fromCharCode(...chunk);
487
- }
488
- // btoa is global in Node 18+ and all browsers.
489
- return btoa(binary);
490
- }
491
- //# sourceMappingURL=http-request.step.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"http-request.step.js","sourceRoot":"","sources":["../../../src/steps/builtin/http-request.step.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,OAAO,EACL,2BAA2B,EAC3B,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAEpF,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,iBAAiB,GAAG;IACxB,IAAI,EAAE,kBAAkB;IACxB,GAAG,EAAE,iBAAiB;IACtB,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,YAAY;IAClB,UAAU,EAAE,wBAAwB;CAC5B,CAAC;AAEX,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,IAAI,CAAC;IAC7C,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,YAAY;IACZ,QAAQ;CACT,CAAC,CAAC;AAGH,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAEjE,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IACtB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAC5C,WAAW,EAAE,wBAAwB,CAAC,OAAO,CAAC,MAAM,CAAC;SAClD,QAAQ,CAAC,+BAA+B,CAAC;IAC5C,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SACrC,QAAQ,CAAC,mEAAmE,CAAC;CACjF,CAAC,CAAC;AAEH,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACtB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;CACnC,CAAC,CAAC;AAEH,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;IAC7B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAC3D,CAAC,CAAC;AAEH,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACtB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;CACnC,CAAC,CAAC;AAEH,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACtB,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACrF,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;CACnC,CAAC,CAAC;AAEH,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;IAC3B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACxD,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,QAAQ,EAAE;CACtD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IACzD,kBAAkB;IAClB,iBAAiB;IACjB,wBAAwB;IACxB,sBAAsB;CACvB,CAAC,CAAC;AAGH,kDAAkD;AAElD;;;;GAIG;AACH,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACvB,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;SACzC,QAAQ,CAAC,0FAA0F,CAAC;CACxG,CAAC,CAAC;AAEH,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACvB,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;SACzC,QAAQ,CAAC,6GAA6G,CAAC;CAC3H,CAAC,CAAC;AAEH,yEAAyE;AACzE,uDAAuD;AACvD,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AAC9E,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AAClF,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AAEpF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IAC7D,sBAAsB;IACtB,sBAAsB;IACtB,sBAAsB;IACtB,wBAAwB;IACxB,yBAAyB;CAC1B,CAAC,CAAC;AAIH,iBAAiB;AAEjB,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC;IACrC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS;CAC3D,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iEAAiE,CAAC;IAClG,MAAM,EAAE,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;IAC/D,cAAc,EAAE,WAAW,CACzB,oBAAoB,CAAC,QAAQ,CAC3B,6GAA6G,CAC9G,CACF,CAAC,QAAQ,EAAE;IACZ,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;IACnG,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IACrG,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,+FAA+F,CAAC;IACxJ,QAAQ,EAAE,kBAAkB,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;SACnD,QAAQ,CAAC,6GAA6G,CAAC;IAC1H,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IAClG,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,kCAAkC,CAAC;CACxF,CAAC,CAAC;AAgCH,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACxB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE;IACf,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE;IACjB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IACpC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE;CACnC,CAAC,CAAC;AAEH,eAAe;AAEf,MAAM,OAAO,eAAgB,SAAQ,cAGpC;IACmB,IAAI,GAAG,eAAe,CAAC,YAAY,CAAC;IACpC,IAAI,GAAG,cAAc,CAAC;IACtB,WAAW,GAAG,qCAAqC,CAAC;IACpD,YAAY,GAAG,2BAA2B,CAAC;IAC3C,YAAY,GAAG,2BAA2B,CAAC;IAC3C,QAAQ,GAAiB,aAAa,CAAC;IACvC,IAAI,GAAG,OAAO,CAAC;IAEjC,0EAA0E;IAC1E,8EAA8E;IAC9E,kEAAkE;IAChD,eAAe,GAAG;QAClC,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE;KACnC,CAAC;IAEF,oBAAoB,CAAC,UAAmC;QAC/D,MAAM,SAAS,GAAG,UAAU,CAAC,YAAY,CAAwD,CAAC;QAClG,IAAI,SAAS,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAClC,SAAS,CAAC,gBAAgB,CAAC,GAAG;gBAC5B,GAAG,SAAS,CAAC,gBAAgB,CAAC;gBAC9B,MAAM,EAAE,iBAAiB;aAC1B,CAAC;QACJ,CAAC;QACD,0EAA0E;QAC1E,yEAAyE;QACzE,uEAAuE;QACvE,0BAA0B;QAC1B,MAAM,KAAK,GAAG,UAAU,CAAC,YAAY,CAAwD,CAAC;QAC9F,MAAM,QAAQ,GAAG,KAAK,EAAE,CAAC,UAAU,CAAwC,CAAC;QAC5E,MAAM,QAAQ,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,QAAQ,EAAE,CAAC,OAAO,CAAC,CAA0C,CAAC;QACvG,IAAI,QAAQ,EAAE,CAAC;YACb,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAwD,CAAC;gBAC5F,IAAI,MAAM,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;oBAC3B,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;gBAC5E,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,EAAE,CAAC,MAAM,CAAwC,CAAC;QACpE,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,CAAC,CAA0C,CAAC;QACnG,MAAM,eAAe,GAAG,YAAY,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;YACrD,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAwD,CAAC;YAC5F,OAAO,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,UAAU,CAAC;QACpD,CAAC,CAAC,CAAC;QACH,MAAM,aAAa,GAAG,eAAe,EAAE,CAAC,YAAY,CAAwD,CAAC;QAC7G,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAwC,CAAC;QAC9F,IAAI,UAAU,EAAE,CAAC;YACf,oBAAoB,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;;;OAKG;IACM,uBAAuB,CAAC,MAA+B;QAC9D,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAqE,CAAC;QAC9H,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAEtD,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAC3B,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC9B,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBACvB,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,oBAAoB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;iBACzC;gBACD,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC5B,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBACzB,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;aAC9B;SACF,CAAC;IACJ,CAAC;IAEO,mBAAmB,CACzB,QAA0E;QAE1E,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;YACtB,KAAK,MAAM,CAAC;YACZ,KAAK,MAAM;gBACT,OAAO,QAAQ,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC;oBACvE,CAAC,CAAC,QAAQ,CAAC,UAAU;oBACrB,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YACzB,KAAK,MAAM;gBACT,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC5B,KAAK,QAAQ;gBACX,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC;YACvD,KAAK,SAAS;gBACZ,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;IAEQ,WAAW,CAAC,KAA8B;QACjD,MAAM,QAAQ,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;QAC9B,kDAAkD;QAClD,IAAI,MAAM,IAAI,QAAQ,EAAE,CAAC;YACvB,QAAQ,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC;QAClC,CAAC;QACD,qBAAqB;QACrB,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC7D,MAAM,IAAI,GAAG,EAAE,GAAI,QAAQ,CAAC,MAAM,CAA6B,EAAE,CAAC;YAClE,IAAI,OAAO,IAAI,IAAI;gBAAE,IAAI,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC;YAClD,IAAI,UAAU,IAAI,IAAI;gBAAE,IAAI,CAAC,UAAU,CAAC,GAAG,YAAY,CAAC;YACxD,IAAI,KAAK,IAAI,IAAI;gBAAE,IAAI,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC;YAC9C,IAAI,OAAO,IAAI,IAAI;gBAAE,IAAI,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC;YAClD,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;QAC1B,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEQ,KAAK,CAAC,OAAO,CACpB,MAA6B,EAC7B,GAAyB;QAEzB,8BAA8B;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QAE1D,4EAA4E;QAC5E,oEAAoE;QACpE,+BAA+B;QAC/B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAC9B,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;gBACpD,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QACD,MAAM,UAAU,GAAG,GAAG,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;QACrD,IAAI,UAAU,EAAE,CAAC;YACf,2BAA2B,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACnD,CAAC;QAED,6EAA6E;QAC7E,0EAA0E;QAC1E,kDAAkD;QAClD,MAAM,IAAI,GAAgB;YACxB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,OAAO;YACP,QAAQ,EAAE,QAAQ;SACnB,CAAC;QAEF,2CAA2C;QAC3C,+DAA+D;QAC/D,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;YACjE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;YACtB,CAAC;QACH,CAAC;QAED,UAAU;QACV,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACrE,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;QAEhC,MAAM,YAAY,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACtB,IAAI,QAAkB,CAAC;QACvB,IAAI,CAAC;YACH,IAAI,UAAU,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;YAChC,IAAI,IAAI,GAAG,CAAC,CAAC;YACb,SAAS,CAAC;gBACR,mEAAmE;gBACnE,MAAM,mBAAmB,CAAC,UAAU,CAAC,CAAC;gBACtC,QAAQ,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;gBACzC,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAClD,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC;gBACzE,IAAI,CAAC,gBAAgB,IAAI,QAAQ,KAAK,IAAI,IAAI,IAAI,IAAI,YAAY;oBAAE,MAAM;gBAC1E,IAAI,IAAI,CAAC,CAAC;gBACV,UAAU,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACtD,wEAAwE;gBACxE,IAAI,IAAI,CAAC,IAAI,YAAY,QAAQ,IAAI,IAAI,CAAC,IAAI,YAAY,cAAc,EAAE,CAAC;oBACzE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;gBACnB,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,IAAI,GAAG,YAAY,YAAY,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC7D,MAAM,IAAI,KAAK,CACb,mBAAmB,MAAM,CAAC,GAAG,oBAAoB,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAC9E,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,KAAK,CACb,mBAAmB,MAAM,CAAC,GAAG,YAAY,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAC5F,CAAC;QACJ,CAAC;QACD,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;QAEjC,mEAAmE;QACnE,gCAAgC;QAChC,MAAM,eAAe,GAA2B,EAAE,CAAC;QACnD,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YACtC,eAAe,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACvC,OAAO;gBACL,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,EAAE,EAAE,QAAQ,CAAC,EAAE;gBACf,OAAO,EAAE,eAAe;gBACxB,IAAI,EAAE,IAAI;gBACV,QAAQ,EAAE,EAAE;gBACZ,IAAI,EAAE,CAAC;gBACP,QAAQ;aACT,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;QAC9D,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CACjC,QAAQ,EACR,QAAQ,EACR,eAAe,EACf,MAAM,CAAC,QAAQ,CAAC,IAAI,CACrB,CAAC;QAEF,OAAO;YACL,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,OAAO,EAAE,eAAe;YACxB,IAAI;YACJ,QAAQ;YACR,IAAI;YACJ,QAAQ;SACT,CAAC;IACJ,CAAC;IAED,uBAAuB;IAEf,QAAQ,CACd,OAAe,EACf,WAAoC;QAEpC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7B,IAAI,WAAW,EAAE,CAAC;YAChB,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;gBACjD,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,8CAA8C;IAE9C;;;;;OAKG;IACK,KAAK,CAAC,UAAU,CACtB,IAAc,EACd,OAAgB,EAChB,GAAyB;QAEzB,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,MAAM;gBACT,OAAO,SAAS,CAAC;YAEnB,KAAK,KAAK,CAAC,CAAC,CAAC;gBACX,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;oBACjC,MAAM,EAAE,GACN,IAAI,CAAC,WAAW,KAAK,QAAQ;wBAC3B,CAAC,CAAC,IAAI,CAAC,iBAAiB,IAAI,0BAA0B;wBACtD,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC1C,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;gBAClC,CAAC;gBACD,OAAO,IAAI,CAAC,GAAG,CAAC;YAClB,CAAC;YAED,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;oBACjC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,mCAAmC,CAAC,CAAC;gBACnE,CAAC;gBACD,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;gBACrC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBAC5B,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK;wBAAE,SAAS;oBAClC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;gBAChC,CAAC;gBACD,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC3B,CAAC;YAED,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,sEAAsE;gBACtE,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;oBAChC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;gBACjC,CAAC;gBACD,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAC;gBAC5B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBAC5B,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK;wBAAE,SAAS;oBAClC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;gBAC9B,CAAC;gBACD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;oBACjC,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK;wBAAE,SAAS;oBAClC,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI;wBAAE,SAAS;oBACxD,MAAM,WAAW,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;yBAC/D,MAAM,CAAC,CAAC,KAAK,EAAuB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC;oBACvF,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;wBACrC,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,OAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;wBAC1E,IAAI,CAAC,MAAM,CACT,CAAC,CAAC,GAAG,EACL,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,EAChD,UAAU,CAAC,IAAI,CAChB,CAAC;oBACJ,CAAC;gBACH,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAED,2BAA2B;IAEnB,UAAU,CAAC,KAAiB;QAClC,IAAI,CAAC;YACH,8EAA8E;YAC9E,OAAO,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAClE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,iBAAiB,CACvB,KAAiB,EACjB,QAAgB,EAChB,OAA+B,EAC/B,YAA8B;QAE9B,QAAQ,YAAY,EAAE,CAAC;YACrB,KAAK,MAAM;gBACT,gEAAgE;gBAChE,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAY,CAAC;YACzC,KAAK,MAAM;gBACT,OAAO,QAAQ,CAAC;YAClB,KAAK,QAAQ;gBACX,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;YAC9B,KAAK,SAAS;gBACZ,OAAO,IAAI,CAAC;YACd,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAEO,aAAa,CACnB,QAAgB,EAChB,OAA+B;QAE/B,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QACzC,IAAI,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC;gBACH,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAY,CAAC;YACzC,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,QAAQ,CAAC;YAClB,CAAC;QACH,CAAC;QACD,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,kBAAkB;AAElB,iFAAiF;AACjF,SAAS,aAAa,CAAC,KAAiB;IACtC,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,MAAM,SAAS,GAAG,MAAM,CAAC;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;QACjD,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC;QAC/C,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,CAAC;IAC1C,CAAC;IACD,+CAA+C;IAC/C,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC"}
@@ -1,100 +0,0 @@
1
- /**
2
- * LOOP step — iterate over an array and walk a body branch per item.
3
- *
4
- * BaseControlFlowStep with a single `body` branch. For each item in the
5
- * source array, sets `ctx.workflow.steps[loopStepId].currentItem` and walks
6
- * the body branch.
7
- *
8
- * Output: `{ results: unknown[], count: number }`
9
- */
10
- import { z } from 'zod';
11
- import { BaseControlFlowStep } from '../base-step.js';
12
- import type { ControlFlowExecutionContext } from '../base-step.js';
13
- import { BuiltinStepType } from '../../types/known-types.js';
14
- import type { WorkflowStepConfig } from '../../types/workflow-config.js';
15
- export declare const LoopStepConfigSchema: z.ZodObject<{
16
- source: z.ZodString;
17
- body: z.ZodArray<z.ZodObject<{
18
- id: z.ZodString;
19
- type: z.ZodString;
20
- }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
21
- id: z.ZodString;
22
- type: z.ZodString;
23
- }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
24
- id: z.ZodString;
25
- type: z.ZodString;
26
- }, z.ZodTypeAny, "passthrough">>, "many">;
27
- maxIterations: z.ZodDefault<z.ZodNumber>;
28
- }, "strip", z.ZodTypeAny, {
29
- body: z.objectOutputType<{
30
- id: z.ZodString;
31
- type: z.ZodString;
32
- }, z.ZodTypeAny, "passthrough">[];
33
- source: string;
34
- maxIterations: number;
35
- }, {
36
- body: z.objectInputType<{
37
- id: z.ZodString;
38
- type: z.ZodString;
39
- }, z.ZodTypeAny, "passthrough">[];
40
- source: string;
41
- maxIterations?: number | undefined;
42
- }>;
43
- export type LoopStepConfig = z.infer<typeof LoopStepConfigSchema>;
44
- export interface LoopStepOutput extends Record<string, unknown> {
45
- results: unknown[];
46
- count: number;
47
- }
48
- export declare class LoopStep extends BaseControlFlowStep<typeof LoopStepConfigSchema, LoopStepOutput> {
49
- readonly type = BuiltinStepType.LOOP;
50
- readonly name = "Loop";
51
- readonly description = "Iterate over an array and execute steps for each item";
52
- readonly configSchema: z.ZodObject<{
53
- source: z.ZodString;
54
- body: z.ZodArray<z.ZodObject<{
55
- id: z.ZodString;
56
- type: z.ZodString;
57
- }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
58
- id: z.ZodString;
59
- type: z.ZodString;
60
- }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
61
- id: z.ZodString;
62
- type: z.ZodString;
63
- }, z.ZodTypeAny, "passthrough">>, "many">;
64
- maxIterations: z.ZodDefault<z.ZodNumber>;
65
- }, "strip", z.ZodTypeAny, {
66
- body: z.objectOutputType<{
67
- id: z.ZodString;
68
- type: z.ZodString;
69
- }, z.ZodTypeAny, "passthrough">[];
70
- source: string;
71
- maxIterations: number;
72
- }, {
73
- body: z.objectInputType<{
74
- id: z.ZodString;
75
- type: z.ZodString;
76
- }, z.ZodTypeAny, "passthrough">[];
77
- source: string;
78
- maxIterations?: number | undefined;
79
- }>;
80
- readonly outputSchema: z.ZodObject<{
81
- results: z.ZodArray<z.ZodUnknown, "many">;
82
- count: z.ZodNumber;
83
- }, "strip", z.ZodTypeAny, {
84
- results: unknown[];
85
- count: number;
86
- }, {
87
- results: unknown[];
88
- count: number;
89
- }>;
90
- readonly category: "control";
91
- readonly branchModel: "iterate";
92
- readonly icon = "repeat";
93
- readonly declaredOutputs: readonly [{
94
- readonly key: "body";
95
- readonly label: "For each item";
96
- }];
97
- getBranches(config: Record<string, unknown>): Record<string, WorkflowStepConfig[]>;
98
- execute(config: LoopStepConfig, ctx: ControlFlowExecutionContext): Promise<LoopStepOutput>;
99
- }
100
- //# sourceMappingURL=loop.step.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"loop.step.d.ts","sourceRoot":"","sources":["../../../src/steps/builtin/loop.step.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAc,MAAM,iBAAiB,CAAC;AAClE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAKzE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAI/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAIlE,MAAM,WAAW,cAAe,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC7D,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AASD,qBAAa,QAAS,SAAQ,mBAAmB,CAC/C,OAAO,oBAAoB,EAC3B,cAAc,CACf;IACC,SAAkB,IAAI,wBAAwB;IAC9C,SAAkB,IAAI,UAAU;IAChC,SAAkB,WAAW,2DAA2D;IACxF,SAAkB,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAwB;IACtD,SAAkB,YAAY;;;;;;;;;OAAwB;IACtD,SAAkB,QAAQ,EAAG,SAAS,CAAU;IAChD,SAAkB,WAAW,EAAG,SAAS,CAAU;IACnD,SAAkB,IAAI,YAAY;IAClC,SAAkB,eAAe;;;OAEtB;IAEF,WAAW,CAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,MAAM,CAAC,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAMxB,OAAO,CACpB,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,2BAA2B,GAC/B,OAAO,CAAC,cAAc,CAAC;CA4C3B"}