veryfront 0.1.627 → 0.1.628
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/esm/deno.js +1 -1
- package/esm/src/agent/runtime/chat-stream-handler.d.ts +2 -0
- package/esm/src/agent/runtime/chat-stream-handler.d.ts.map +1 -1
- package/esm/src/agent/runtime/chat-stream-handler.js +34 -15
- package/esm/src/agent/runtime/index.d.ts.map +1 -1
- package/esm/src/agent/runtime/index.js +21 -17
- package/esm/src/platform/compat/http/node-types.d.ts +4 -0
- package/esm/src/platform/compat/http/node-types.d.ts.map +1 -1
- package/esm/src/platform/compat/http/request-adapter.d.ts +12 -0
- package/esm/src/platform/compat/http/request-adapter.d.ts.map +1 -1
- package/esm/src/platform/compat/http/request-adapter.js +49 -4
- package/esm/src/utils/version-constant.d.ts +1 -1
- package/esm/src/utils/version-constant.js +1 -1
- package/package.json +1 -1
package/esm/deno.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-stream-handler.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/chat-stream-handler.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAqB,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAiBtF,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC1C,WAAW,EAAE,mBAAmB,EAAE,CAAC;IACnC,KAAK,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;CAChF;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE;QAChB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,KAAK,IAAI,CAAC;CACZ;AA+KD,wBAAgB,iBAAiB,IAAI,eAAe,CAQnD;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,mBAAmB,EAC3B,KAAK,EAAE,eAAe,EACtB,UAAU,EAAE,+BAA+B,EAC3C,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,SAAS,CAAC,EAAE,mBAAmB,EAC/B,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"chat-stream-handler.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/chat-stream-handler.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAqB,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAiBtF,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC1C,WAAW,EAAE,mBAAmB,EAAE,CAAC;IACnC,KAAK,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;CAChF;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE;QAChB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,KAAK,IAAI,CAAC;CACZ;AA+KD,wBAAgB,iBAAiB,IAAI,eAAe,CAQnD;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,mBAAmB,EAC3B,KAAK,EAAE,eAAe,EACtB,UAAU,EAAE,+BAA+B,EAC3C,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,SAAS,CAAC,EAAE,mBAAmB,EAC/B,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,IAAI,CAAC,CA2cf"}
|
|
@@ -219,6 +219,26 @@ export function processStream(result, state, controller, encoder, textPartId, ca
|
|
|
219
219
|
});
|
|
220
220
|
activeReasoningId = null;
|
|
221
221
|
};
|
|
222
|
+
const announceToolInputStart = (toolCall) => {
|
|
223
|
+
if (toolCall.inputAnnounced === true) {
|
|
224
|
+
return;
|
|
225
|
+
}
|
|
226
|
+
const dynamic = toolCall.dynamic ?? isDynamicTool(toolCall.name);
|
|
227
|
+
sendSSE(controller, encoder, {
|
|
228
|
+
type: "tool-input-start",
|
|
229
|
+
toolCallId: toolCall.id,
|
|
230
|
+
toolName: toolCall.name,
|
|
231
|
+
...(dynamic ? { dynamic: true } : {}),
|
|
232
|
+
});
|
|
233
|
+
for (const delta of toolCall.inputDeltas ?? []) {
|
|
234
|
+
sendSSE(controller, encoder, {
|
|
235
|
+
type: "tool-input-delta",
|
|
236
|
+
toolCallId: toolCall.id,
|
|
237
|
+
inputTextDelta: delta,
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
toolCall.inputAnnounced = true;
|
|
241
|
+
};
|
|
222
242
|
const ensureToolLifecycle = (part) => {
|
|
223
243
|
const dynamic = part.dynamic ?? isDynamicTool(part.toolName);
|
|
224
244
|
const existing = state.toolCalls.get(part.toolCallId);
|
|
@@ -233,6 +253,7 @@ export function processStream(result, state, controller, encoder, textPartId, ca
|
|
|
233
253
|
? { providerExecuted: part.providerExecuted }
|
|
234
254
|
: {}),
|
|
235
255
|
...(dynamic ? { dynamic: true } : {}),
|
|
256
|
+
inputAnnounced: true,
|
|
236
257
|
});
|
|
237
258
|
sendSSE(controller, encoder, {
|
|
238
259
|
type: "tool-input-start",
|
|
@@ -267,6 +288,7 @@ export function processStream(result, state, controller, encoder, textPartId, ca
|
|
|
267
288
|
if (dynamic) {
|
|
268
289
|
existing.dynamic = true;
|
|
269
290
|
}
|
|
291
|
+
announceToolInputStart(existing);
|
|
270
292
|
sendSSE(controller, encoder, {
|
|
271
293
|
type: "tool-input-available",
|
|
272
294
|
toolCallId: part.toolCallId,
|
|
@@ -353,13 +375,8 @@ export function processStream(result, state, controller, encoder, textPartId, ca
|
|
|
353
375
|
inputAvailable: false,
|
|
354
376
|
providerExecuted: typedPart.providerExecuted,
|
|
355
377
|
dynamic: typedPart.dynamic,
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
sendSSE(controller, encoder, {
|
|
359
|
-
type: "tool-input-start",
|
|
360
|
-
toolCallId: toolId,
|
|
361
|
-
toolName: typedPart.toolName,
|
|
362
|
-
...(dynamic ? { dynamic: true } : {}),
|
|
378
|
+
inputDeltas: [],
|
|
379
|
+
inputAnnounced: false,
|
|
363
380
|
});
|
|
364
381
|
break;
|
|
365
382
|
}
|
|
@@ -370,11 +387,8 @@ export function processStream(result, state, controller, encoder, textPartId, ca
|
|
|
370
387
|
if (!tc)
|
|
371
388
|
break;
|
|
372
389
|
tc.arguments = mergeToolInputDelta(tc.arguments, typedPart.delta);
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
toolCallId: toolId,
|
|
376
|
-
inputTextDelta: typedPart.delta,
|
|
377
|
-
});
|
|
390
|
+
tc.inputDeltas ??= [];
|
|
391
|
+
tc.inputDeltas.push(typedPart.delta);
|
|
378
392
|
break;
|
|
379
393
|
}
|
|
380
394
|
case "tool-call": {
|
|
@@ -383,18 +397,23 @@ export function processStream(result, state, controller, encoder, textPartId, ca
|
|
|
383
397
|
// tool-call fires when the full tool call is available
|
|
384
398
|
const toolId = typedPart.toolCallId;
|
|
385
399
|
const inputStr = normalizeToolInputString(typedPart.input);
|
|
386
|
-
const
|
|
400
|
+
const previous = state.toolCalls.get(toolId);
|
|
401
|
+
const previousArguments = previous?.arguments ?? "";
|
|
387
402
|
const resolvedArguments = mergeToolCallInput(previousArguments, inputStr);
|
|
388
|
-
|
|
403
|
+
const toolCall = {
|
|
389
404
|
id: toolId,
|
|
390
405
|
name: typedPart.toolName,
|
|
391
406
|
arguments: resolvedArguments,
|
|
407
|
+
inputDeltas: previous?.inputDeltas ?? [],
|
|
408
|
+
inputAnnounced: previous?.inputAnnounced ?? false,
|
|
392
409
|
inputAvailable: true,
|
|
393
410
|
providerExecuted: typedPart.providerExecuted,
|
|
394
411
|
dynamic: typedPart.dynamic,
|
|
395
|
-
}
|
|
412
|
+
};
|
|
413
|
+
state.toolCalls.set(toolId, toolCall);
|
|
396
414
|
const dynamic = isDynamicTool(typedPart.toolName);
|
|
397
415
|
const inputObj = parseToolInputObject(typedPart.input);
|
|
416
|
+
announceToolInputStart(toolCall);
|
|
398
417
|
sendSSE(controller, encoder, {
|
|
399
418
|
type: "tool-input-available",
|
|
400
419
|
toolCallId: toolId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -821,14 +821,16 @@ export class AgentRuntime {
|
|
|
821
821
|
partialArgumentsLength: materialized.partialArgumentsLength,
|
|
822
822
|
partialArgumentsPreview: materialized.partialArgumentsPreview,
|
|
823
823
|
});
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
`
|
|
830
|
-
|
|
831
|
-
|
|
824
|
+
if (tc.inputAnnounced === true) {
|
|
825
|
+
const dynamicIncomplete = isDynamicTool(tc.name);
|
|
826
|
+
sendSSE(controller, encoder, {
|
|
827
|
+
type: "tool-input-error",
|
|
828
|
+
toolCallId: tc.id,
|
|
829
|
+
errorText: `Stream terminated before tool-call event fired for "${tc.name}". ` +
|
|
830
|
+
`Received ${materialized.partialArgumentsLength} chars of partial tool-input deltas.`,
|
|
831
|
+
...(dynamicIncomplete ? { dynamic: true } : {}),
|
|
832
|
+
});
|
|
833
|
+
}
|
|
832
834
|
}
|
|
833
835
|
else if (materialized.kind === "parse-error") {
|
|
834
836
|
logger.warn("Failed to parse streamed tool arguments", {
|
|
@@ -897,7 +899,7 @@ export class AgentRuntime {
|
|
|
897
899
|
status: "pending",
|
|
898
900
|
};
|
|
899
901
|
await this.recordToolError(incompleteToolCall, `Stream terminated before tool-call event fired for "${tc.name}". ` +
|
|
900
|
-
`Received ${tc.arguments.length} chars of partial tool-input deltas.`, controller, encoder, currentMessages, toolCalls, currentRunToolState);
|
|
902
|
+
`Received ${tc.arguments.length} chars of partial tool-input deltas.`, controller, encoder, currentMessages, toolCalls, currentRunToolState, { emitSse: tc.inputAnnounced === true });
|
|
901
903
|
continue;
|
|
902
904
|
}
|
|
903
905
|
const capturedInput = captureStreamedToolCallInput(tc);
|
|
@@ -1019,17 +1021,19 @@ export class AgentRuntime {
|
|
|
1019
1021
|
/**
|
|
1020
1022
|
* Record a tool error and send SSE event.
|
|
1021
1023
|
*/
|
|
1022
|
-
async recordToolError(toolCall, errorStr, controller, encoder, currentMessages, toolCalls, currentRunToolState) {
|
|
1024
|
+
async recordToolError(toolCall, errorStr, controller, encoder, currentMessages, toolCalls, currentRunToolState, options = {}) {
|
|
1023
1025
|
toolCall.status = "error";
|
|
1024
1026
|
toolCall.error = errorStr;
|
|
1025
1027
|
toolCalls.push(toolCall);
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1028
|
+
if (options.emitSse !== false) {
|
|
1029
|
+
const dynamic = isDynamicTool(toolCall.name);
|
|
1030
|
+
sendSSE(controller, encoder, {
|
|
1031
|
+
type: "tool-output-error",
|
|
1032
|
+
toolCallId: toolCall.id,
|
|
1033
|
+
errorText: errorStr,
|
|
1034
|
+
...(dynamic ? { dynamic: true } : {}),
|
|
1035
|
+
});
|
|
1036
|
+
}
|
|
1033
1037
|
const errorMessage = createToolErrorMessage(toolCall.id, toolCall.name, errorStr);
|
|
1034
1038
|
currentMessages.push(errorMessage);
|
|
1035
1039
|
await this.memory.add(errorMessage);
|
|
@@ -5,6 +5,10 @@ export interface NodeIncomingMessage {
|
|
|
5
5
|
on(event: "data", handler: (chunk: Uint8Array) => void): void;
|
|
6
6
|
on(event: "end", handler: () => void): void;
|
|
7
7
|
on(event: "error", handler: (error: Error) => void): void;
|
|
8
|
+
/** Pause flowing mode — used to apply backpressure to the request body. */
|
|
9
|
+
pause?(): void;
|
|
10
|
+
/** Resume flowing mode once the body stream consumer asks for more. */
|
|
11
|
+
resume?(): void;
|
|
8
12
|
}
|
|
9
13
|
export interface NodeServerResponse {
|
|
10
14
|
statusCode: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-types.d.ts","sourceRoot":"","sources":["../../../../../src/src/platform/compat/http/node-types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAClC,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,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI,CAAC;IAC9D,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IAC5C,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"node-types.d.ts","sourceRoot":"","sources":["../../../../../src/src/platform/compat/http/node-types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAClC,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,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI,CAAC;IAC9D,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IAC5C,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC;IAC1D,2EAA2E;IAC3E,KAAK,CAAC,IAAI,IAAI,CAAC;IACf,uEAAuE;IACvE,MAAM,CAAC,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;IACxD,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC;IACjF,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC;IACxC,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC;IACvC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC;CAC3D;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IACnE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IAChE,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;CACpC;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,CACV,eAAe,EAAE,CAAC,GAAG,EAAE,mBAAmB,EAAE,GAAG,EAAE,kBAAkB,KAAK,IAAI,GAC3E,UAAU,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,OAAO,GAAG,CAAC;CACjB"}
|
|
@@ -1,3 +1,15 @@
|
|
|
1
1
|
import type { NodeIncomingMessage } from "./node-types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Convert a Node `http.IncomingMessage` into a WHATWG `Request`.
|
|
4
|
+
*
|
|
5
|
+
* A Node request is a readable stream of body bytes. When a streaming body is
|
|
6
|
+
* supplied to the `Request` constructor (e.g. under Node's built-in fetch /
|
|
7
|
+
* undici), the spec requires `duplex: "half"` — without it the constructor
|
|
8
|
+
* throws `TypeError: RequestInit: duplex option is required when sending a
|
|
9
|
+
* body.`, which previously surfaced as a generic 500 for every POST/PUT/etc.
|
|
10
|
+
*
|
|
11
|
+
* Bodyless methods (`GET`/`HEAD`/`OPTIONS`) must not attach a body at all;
|
|
12
|
+
* `OPTIONS` in particular is used for CORS preflights and carries no body.
|
|
13
|
+
*/
|
|
2
14
|
export declare function convertNodeRequestToWebRequest(req: NodeIncomingMessage, url: string): Request;
|
|
3
15
|
//# sourceMappingURL=request-adapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-adapter.d.ts","sourceRoot":"","sources":["../../../../../src/src/platform/compat/http/request-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"request-adapter.d.ts","sourceRoot":"","sources":["../../../../../src/src/platform/compat/http/request-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAK3D;;;;;;;;;;;GAWG;AACH,wBAAgB,8BAA8B,CAC5C,GAAG,EAAE,mBAAmB,EACxB,GAAG,EAAE,MAAM,GACV,OAAO,CAiBT"}
|
|
@@ -1,9 +1,54 @@
|
|
|
1
|
+
/** HTTP methods that never carry a request body. */
|
|
2
|
+
const BODYLESS_METHODS = new Set(["GET", "HEAD", "OPTIONS"]);
|
|
3
|
+
/**
|
|
4
|
+
* Convert a Node `http.IncomingMessage` into a WHATWG `Request`.
|
|
5
|
+
*
|
|
6
|
+
* A Node request is a readable stream of body bytes. When a streaming body is
|
|
7
|
+
* supplied to the `Request` constructor (e.g. under Node's built-in fetch /
|
|
8
|
+
* undici), the spec requires `duplex: "half"` — without it the constructor
|
|
9
|
+
* throws `TypeError: RequestInit: duplex option is required when sending a
|
|
10
|
+
* body.`, which previously surfaced as a generic 500 for every POST/PUT/etc.
|
|
11
|
+
*
|
|
12
|
+
* Bodyless methods (`GET`/`HEAD`/`OPTIONS`) must not attach a body at all;
|
|
13
|
+
* `OPTIONS` in particular is used for CORS preflights and carries no body.
|
|
14
|
+
*/
|
|
1
15
|
export function convertNodeRequestToWebRequest(req, url) {
|
|
2
|
-
const method = req.method;
|
|
3
|
-
const
|
|
4
|
-
|
|
16
|
+
const method = req.method ?? "GET";
|
|
17
|
+
const hasBody = !BODYLESS_METHODS.has(method.toUpperCase());
|
|
18
|
+
// `duplex` is part of the WHATWG fetch spec but not yet in the lib.dom
|
|
19
|
+
// `RequestInit` type, hence the intersection.
|
|
20
|
+
const init = {
|
|
5
21
|
method,
|
|
6
22
|
headers: req.headers,
|
|
7
|
-
|
|
23
|
+
};
|
|
24
|
+
if (hasBody) {
|
|
25
|
+
init.body = nodeRequestToReadableStream(req);
|
|
26
|
+
init.duplex = "half";
|
|
27
|
+
}
|
|
28
|
+
return new Request(url, init);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Adapt a Node readable request into a web `ReadableStream` using only the
|
|
32
|
+
* event interface declared on {@link NodeIncomingMessage}, so this stays free
|
|
33
|
+
* of a hard `node:stream` dependency (consistent with the rest of the compat
|
|
34
|
+
* layer, which avoids static Node imports for non-Node runtimes).
|
|
35
|
+
*/
|
|
36
|
+
function nodeRequestToReadableStream(req) {
|
|
37
|
+
return new ReadableStream({
|
|
38
|
+
start(controller) {
|
|
39
|
+
req.on("data", (chunk) => {
|
|
40
|
+
controller.enqueue(chunk);
|
|
41
|
+
// Apply backpressure: once the stream's internal queue is full, pause
|
|
42
|
+
// the Node request so it stops buffering the whole body in memory.
|
|
43
|
+
if ((controller.desiredSize ?? 1) <= 0)
|
|
44
|
+
req.pause?.();
|
|
45
|
+
});
|
|
46
|
+
req.on("end", () => controller.close());
|
|
47
|
+
req.on("error", (error) => controller.error(error));
|
|
48
|
+
},
|
|
49
|
+
pull() {
|
|
50
|
+
// The consumer asked for more — resume flowing mode.
|
|
51
|
+
req.resume?.();
|
|
52
|
+
},
|
|
8
53
|
});
|
|
9
54
|
}
|