@antseed/node 0.2.105 → 0.2.107
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/dist/billing/index.d.ts +2 -0
- package/dist/billing/index.d.ts.map +1 -0
- package/dist/billing/index.js +2 -0
- package/dist/billing/index.js.map +1 -0
- package/dist/billing/unit.d.ts +3 -0
- package/dist/billing/unit.d.ts.map +1 -0
- package/dist/billing/unit.js +3 -0
- package/dist/billing/unit.js.map +1 -0
- package/dist/buyer-request-handler.d.ts +1 -54
- package/dist/buyer-request-handler.d.ts.map +1 -1
- package/dist/buyer-request-handler.js +2 -379
- package/dist/buyer-request-handler.js.map +1 -1
- package/dist/discovery/announcer.d.ts +7 -1
- package/dist/discovery/announcer.d.ts.map +1 -1
- package/dist/discovery/announcer.js +84 -33
- package/dist/discovery/announcer.js.map +1 -1
- package/dist/discovery/http-metadata-resolver.d.ts +4 -0
- package/dist/discovery/http-metadata-resolver.d.ts.map +1 -1
- package/dist/discovery/http-metadata-resolver.js +42 -2
- package/dist/discovery/http-metadata-resolver.js.map +1 -1
- package/dist/discovery/index.d.ts +1 -1
- package/dist/discovery/index.d.ts.map +1 -1
- package/dist/discovery/index.js +1 -1
- package/dist/discovery/index.js.map +1 -1
- package/dist/discovery/metadata-codec.d.ts +4 -4
- package/dist/discovery/metadata-codec.d.ts.map +1 -1
- package/dist/discovery/metadata-codec.js +339 -23
- package/dist/discovery/metadata-codec.js.map +1 -1
- package/dist/discovery/metadata-validator.d.ts +7 -3
- package/dist/discovery/metadata-validator.d.ts.map +1 -1
- package/dist/discovery/metadata-validator.js +139 -8
- package/dist/discovery/metadata-validator.js.map +1 -1
- package/dist/discovery/peer-lookup.d.ts +1 -0
- package/dist/discovery/peer-lookup.d.ts.map +1 -1
- package/dist/discovery/peer-lookup.js +23 -5
- package/dist/discovery/peer-lookup.js.map +1 -1
- package/dist/discovery/peer-metadata.d.ts +2 -90
- package/dist/discovery/peer-metadata.d.ts.map +1 -1
- package/dist/discovery/peer-metadata.js +3 -11
- package/dist/discovery/peer-metadata.js.map +1 -1
- package/dist/discovery/seller-address-resolver.d.ts +1 -49
- package/dist/discovery/seller-address-resolver.d.ts.map +1 -1
- package/dist/discovery/seller-address-resolver.js +2 -114
- package/dist/discovery/seller-address-resolver.js.map +1 -1
- package/dist/errors.d.ts +43 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +73 -0
- package/dist/errors.js.map +1 -0
- package/dist/health/model-health-checker.d.ts +6 -5
- package/dist/health/model-health-checker.d.ts.map +1 -1
- package/dist/health/model-health-checker.js +22 -10
- package/dist/health/model-health-checker.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/interfaces/seller-provider.d.ts +6 -0
- package/dist/interfaces/seller-provider.d.ts.map +1 -1
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +28 -0
- package/dist/node.js.map +1 -1
- package/dist/p2p/connection-auth.d.ts +3 -8
- package/dist/p2p/connection-auth.d.ts.map +1 -1
- package/dist/p2p/connection-auth.js +4 -6
- package/dist/p2p/connection-auth.js.map +1 -1
- package/dist/p2p/connection-manager.d.ts +3 -1
- package/dist/p2p/connection-manager.d.ts.map +1 -1
- package/dist/p2p/connection-manager.js.map +1 -1
- package/dist/p2p/identity.d.ts +1 -21
- package/dist/p2p/identity.d.ts.map +1 -1
- package/dist/p2p/identity.js +3 -62
- package/dist/p2p/identity.js.map +1 -1
- package/dist/p2p/message-protocol.d.ts +1 -49
- package/dist/p2p/message-protocol.d.ts.map +1 -1
- package/dist/p2p/message-protocol.js +2 -125
- package/dist/p2p/message-protocol.js.map +1 -1
- package/dist/p2p/payment-codec.d.ts +1 -21
- package/dist/p2p/payment-codec.d.ts.map +1 -1
- package/dist/p2p/payment-codec.js +2 -220
- package/dist/p2p/payment-codec.js.map +1 -1
- package/dist/p2p/payment-mux.d.ts +1 -51
- package/dist/p2p/payment-mux.d.ts.map +1 -1
- package/dist/p2p/payment-mux.js +2 -159
- package/dist/p2p/payment-mux.js.map +1 -1
- package/dist/payments/buyer-free-usage-manager.d.ts +1 -43
- package/dist/payments/buyer-free-usage-manager.d.ts.map +1 -1
- package/dist/payments/buyer-free-usage-manager.js +2 -298
- package/dist/payments/buyer-free-usage-manager.js.map +1 -1
- package/dist/payments/buyer-payment-manager.d.ts +1 -277
- package/dist/payments/buyer-payment-manager.d.ts.map +1 -1
- package/dist/payments/buyer-payment-manager.js +2 -1039
- package/dist/payments/buyer-payment-manager.js.map +1 -1
- package/dist/payments/buyer-payment-negotiator.d.ts +1 -130
- package/dist/payments/buyer-payment-negotiator.d.ts.map +1 -1
- package/dist/payments/buyer-payment-negotiator.js +2 -950
- package/dist/payments/buyer-payment-negotiator.js.map +1 -1
- package/dist/payments/chain-config.d.ts.map +1 -1
- package/dist/payments/chain-config.js +13 -2
- package/dist/payments/chain-config.js.map +1 -1
- package/dist/payments/channel-session-state.d.ts +1 -13
- package/dist/payments/channel-session-state.d.ts.map +1 -1
- package/dist/payments/channel-session-state.js +2 -25
- package/dist/payments/channel-session-state.js.map +1 -1
- package/dist/payments/channel-store.d.ts +2 -51
- package/dist/payments/channel-store.d.ts.map +1 -1
- package/dist/payments/channel-store.js +3 -14
- package/dist/payments/channel-store.js.map +1 -1
- package/dist/payments/channel-usage-accounting.d.ts +1 -17
- package/dist/payments/channel-usage-accounting.d.ts.map +1 -1
- package/dist/payments/channel-usage-accounting.js +2 -65
- package/dist/payments/channel-usage-accounting.js.map +1 -1
- package/dist/payments/evm/base-evm-client.d.ts +1 -26
- package/dist/payments/evm/base-evm-client.d.ts.map +1 -1
- package/dist/payments/evm/base-evm-client.js +2 -115
- package/dist/payments/evm/base-evm-client.js.map +1 -1
- package/dist/payments/evm/channels-client.d.ts +1 -85
- package/dist/payments/evm/channels-client.d.ts.map +1 -1
- package/dist/payments/evm/channels-client.js +2 -193
- package/dist/payments/evm/channels-client.js.map +1 -1
- package/dist/payments/evm/deposits-client.d.ts +1 -29
- package/dist/payments/evm/deposits-client.d.ts.map +1 -1
- package/dist/payments/evm/deposits-client.js +2 -67
- package/dist/payments/evm/deposits-client.js.map +1 -1
- package/dist/payments/evm/signatures.d.ts +1 -203
- package/dist/payments/evm/signatures.d.ts.map +1 -1
- package/dist/payments/evm/signatures.js +2 -236
- package/dist/payments/evm/signatures.js.map +1 -1
- package/dist/payments/evm/subpool-client.d.ts +32 -0
- package/dist/payments/evm/subpool-client.d.ts.map +1 -0
- package/dist/payments/evm/subpool-client.js +158 -0
- package/dist/payments/evm/subpool-client.js.map +1 -0
- package/dist/payments/index.d.ts +1 -1
- package/dist/payments/index.d.ts.map +1 -1
- package/dist/payments/index.js +1 -1
- package/dist/payments/index.js.map +1 -1
- package/dist/payments/pricing.d.ts +1 -26
- package/dist/payments/pricing.d.ts.map +1 -1
- package/dist/payments/pricing.js +2 -36
- package/dist/payments/pricing.js.map +1 -1
- package/dist/payments/seller-payment-manager.d.ts +7 -0
- package/dist/payments/seller-payment-manager.d.ts.map +1 -1
- package/dist/payments/seller-payment-manager.js +27 -2
- package/dist/payments/seller-payment-manager.js.map +1 -1
- package/dist/payments/usdc-utils.d.ts +1 -8
- package/dist/payments/usdc-utils.d.ts.map +1 -1
- package/dist/payments/usdc-utils.js +2 -16
- package/dist/payments/usdc-utils.js.map +1 -1
- package/dist/proxy/proxy-mux.d.ts +1 -69
- package/dist/proxy/proxy-mux.d.ts.map +1 -1
- package/dist/proxy/proxy-mux.js +2 -346
- package/dist/proxy/proxy-mux.js.map +1 -1
- package/dist/proxy/request-codec.d.ts +1 -41
- package/dist/proxy/request-codec.d.ts.map +1 -1
- package/dist/proxy/request-codec.js +2 -280
- package/dist/proxy/request-codec.js.map +1 -1
- package/dist/seller-request-handler.d.ts +10 -3
- package/dist/seller-request-handler.d.ts.map +1 -1
- package/dist/seller-request-handler.js +112 -17
- package/dist/seller-request-handler.js.map +1 -1
- package/dist/types/billing.d.ts +2 -0
- package/dist/types/billing.d.ts.map +1 -0
- package/dist/types/billing.js +2 -0
- package/dist/types/billing.js.map +1 -0
- package/dist/types/capability.d.ts +1 -25
- package/dist/types/capability.d.ts.map +1 -1
- package/dist/types/capability.js +2 -1
- package/dist/types/capability.js.map +1 -1
- package/dist/types/connection.d.ts +1 -26
- package/dist/types/connection.d.ts.map +1 -1
- package/dist/types/connection.js +2 -10
- package/dist/types/connection.js.map +1 -1
- package/dist/types/http.d.ts +1 -39
- package/dist/types/http.d.ts.map +1 -1
- package/dist/types/http.js +2 -16
- package/dist/types/http.js.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/peer.d.ts +9 -31
- package/dist/types/peer.d.ts.map +1 -1
- package/dist/types/peer.js +2 -14
- package/dist/types/peer.js.map +1 -1
- package/dist/types/protocol.d.ts +1 -306
- package/dist/types/protocol.d.ts.map +1 -1
- package/dist/types/protocol.js +2 -81
- package/dist/types/protocol.js.map +1 -1
- package/dist/types/service-api.d.ts +1 -5
- package/dist/types/service-api.d.ts.map +1 -1
- package/dist/types/service-api.js +2 -12
- package/dist/types/service-api.js.map +1 -1
- package/dist/utils/debug.d.ts +1 -5
- package/dist/utils/debug.d.ts.map +1 -1
- package/dist/utils/debug.js +2 -52
- package/dist/utils/debug.js.map +1 -1
- package/dist/utils/hex.d.ts +1 -2
- package/dist/utils/hex.d.ts.map +1 -1
- package/dist/utils/hex.js +2 -14
- package/dist/utils/hex.js.map +1 -1
- package/dist/utils/json-codec.d.ts +1 -9
- package/dist/utils/json-codec.d.ts.map +1 -1
- package/dist/utils/json-codec.js +2 -51
- package/dist/utils/json-codec.js.map +1 -1
- package/dist/utils/response-usage.d.ts +1 -9
- package/dist/utils/response-usage.d.ts.map +1 -1
- package/dist/utils/response-usage.js +2 -39
- package/dist/utils/response-usage.js.map +1 -1
- package/dist/verification/codec.d.ts +1 -3
- package/dist/verification/codec.d.ts.map +1 -1
- package/dist/verification/codec.js +2 -37
- package/dist/verification/codec.js.map +1 -1
- package/dist/verification/response-auth.d.ts +1 -30
- package/dist/verification/response-auth.d.ts.map +1 -1
- package/dist/verification/response-auth.js +2 -110
- package/dist/verification/response-auth.js.map +1 -1
- package/dist/verification/verification-mux.d.ts +1 -19
- package/dist/verification/verification-mux.d.ts.map +1 -1
- package/dist/verification/verification-mux.js +2 -99
- package/dist/verification/verification-mux.js.map +1 -1
- package/package.json +4 -2
package/dist/proxy/proxy-mux.js
CHANGED
|
@@ -1,347 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import { encodeHttpRequest, decodeHttpRequest, encodeHttpResponse, decodeHttpResponse, encodeHttpResponseChunk, decodeHttpResponseChunk, encodeHttpRequestChunk, decodeHttpRequestChunk, } from "./request-codec.js";
|
|
4
|
-
import { ANTSEED_STREAMING_RESPONSE_HEADER, ANTSEED_UPLOAD_CHUNK_HEADER, ANTSEED_UPLOAD_THRESHOLD_BYTES, ANTSEED_UPLOAD_CHUNK_SIZE, } from "../types/http.js";
|
|
5
|
-
import { debugLog } from "../utils/debug.js";
|
|
6
|
-
// Codex-style /v1/responses requests can include large repository context.
|
|
7
|
-
// Raising the per-request cap to 64 MiB accommodates those requests while the
|
|
8
|
-
// separate 256 MiB aggregate pending-upload budget continues to bound seller
|
|
9
|
-
// memory exposure across concurrent uploads.
|
|
10
|
-
export const DEFAULT_MAX_UPLOAD_BODY_BYTES = 64 * 1024 * 1024; // 64 MiB
|
|
11
|
-
const DEFAULT_MAX_TOTAL_PENDING_BYTES = 256 * 1024 * 1024; // 256 MiB
|
|
12
|
-
const DEFAULT_UPLOAD_TIMEOUT_MS = 120_000; // 2 min
|
|
13
|
-
/**
|
|
14
|
-
* Request/response multiplexer over DataChannel.
|
|
15
|
-
* Handles both buyer-side and seller-side proxy communication.
|
|
16
|
-
*/
|
|
17
|
-
export class ProxyMux {
|
|
18
|
-
_connection;
|
|
19
|
-
_messageIdCounter = 0;
|
|
20
|
-
// Buyer side: pending requests awaiting responses
|
|
21
|
-
_responseHandlers = new Map();
|
|
22
|
-
_chunkHandlers = new Map();
|
|
23
|
-
// Seller side: handler for incoming proxy requests
|
|
24
|
-
_requestHandler = null;
|
|
25
|
-
// Seller side: in-progress chunked uploads with size tracking and timeouts
|
|
26
|
-
_pendingUploads = new Map();
|
|
27
|
-
_totalPendingUploadBytes = 0;
|
|
28
|
-
_maxUploadBodyBytes;
|
|
29
|
-
_maxTotalPendingUploadBytes;
|
|
30
|
-
_uploadTimeoutMs;
|
|
31
|
-
constructor(connection, uploadLimits) {
|
|
32
|
-
this._connection = connection;
|
|
33
|
-
this._maxUploadBodyBytes = uploadLimits?.maxUploadBodyBytes ?? DEFAULT_MAX_UPLOAD_BODY_BYTES;
|
|
34
|
-
this._maxTotalPendingUploadBytes = uploadLimits?.maxTotalPendingUploadBytes ?? DEFAULT_MAX_TOTAL_PENDING_BYTES;
|
|
35
|
-
this._uploadTimeoutMs = uploadLimits?.uploadTimeoutMs ?? DEFAULT_UPLOAD_TIMEOUT_MS;
|
|
36
|
-
}
|
|
37
|
-
/** Buyer side: send a proxy request and register response/chunk handlers. */
|
|
38
|
-
sendProxyRequest(request, onResponse, onChunk) {
|
|
39
|
-
const useChunkedUpload = request.body.length > ANTSEED_UPLOAD_THRESHOLD_BYTES;
|
|
40
|
-
debugLog(`[ProxyMux] send request reqId=${request.requestId.slice(0, 8)} bytes=${request.body.length} chunked=${useChunkedUpload ? "true" : "false"}`);
|
|
41
|
-
this._responseHandlers.set(request.requestId, onResponse);
|
|
42
|
-
this._chunkHandlers.set(request.requestId, onChunk);
|
|
43
|
-
if (useChunkedUpload) {
|
|
44
|
-
this._sendChunkedRequest(request);
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
const payload = encodeHttpRequest(request);
|
|
48
|
-
this._connection.send(encodeFrame({
|
|
49
|
-
type: MessageType.HttpRequest,
|
|
50
|
-
messageId: this._nextMessageId(),
|
|
51
|
-
payload,
|
|
52
|
-
}));
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
/** Buyer side: split a large request body into HttpRequest + HttpRequestChunk* + HttpRequestEnd. */
|
|
56
|
-
_sendChunkedRequest(request) {
|
|
57
|
-
// Header frame: metadata only, empty body, upload marker
|
|
58
|
-
const headerRequest = {
|
|
59
|
-
...request,
|
|
60
|
-
headers: { ...request.headers, [ANTSEED_UPLOAD_CHUNK_HEADER]: 'chunked' },
|
|
61
|
-
body: new Uint8Array(0),
|
|
62
|
-
};
|
|
63
|
-
this._connection.send(encodeFrame({
|
|
64
|
-
type: MessageType.HttpRequest,
|
|
65
|
-
messageId: this._nextMessageId(),
|
|
66
|
-
payload: encodeHttpRequest(headerRequest),
|
|
67
|
-
}));
|
|
68
|
-
// Stream body in ANTSEED_UPLOAD_CHUNK_SIZE slices
|
|
69
|
-
const body = request.body;
|
|
70
|
-
let offset = 0;
|
|
71
|
-
while (offset < body.length) {
|
|
72
|
-
const end = Math.min(offset + ANTSEED_UPLOAD_CHUNK_SIZE, body.length);
|
|
73
|
-
const isLast = end >= body.length;
|
|
74
|
-
const payload = encodeHttpRequestChunk({
|
|
75
|
-
requestId: request.requestId,
|
|
76
|
-
data: body.slice(offset, end),
|
|
77
|
-
done: isLast,
|
|
78
|
-
});
|
|
79
|
-
this._connection.send(encodeFrame({
|
|
80
|
-
type: isLast ? MessageType.HttpRequestEnd : MessageType.HttpRequestChunk,
|
|
81
|
-
messageId: this._nextMessageId(),
|
|
82
|
-
payload,
|
|
83
|
-
}));
|
|
84
|
-
offset = end;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
/** Buyer side: cancel handlers for an in-flight request. */
|
|
88
|
-
cancelProxyRequest(requestId) {
|
|
89
|
-
debugLog(`[ProxyMux] cancel request reqId=${requestId.slice(0, 8)}`);
|
|
90
|
-
this._responseHandlers.delete(requestId);
|
|
91
|
-
this._chunkHandlers.delete(requestId);
|
|
92
|
-
}
|
|
93
|
-
/** Seller side: register a handler for incoming proxy requests. */
|
|
94
|
-
onProxyRequest(handler) {
|
|
95
|
-
this._requestHandler = handler;
|
|
96
|
-
}
|
|
97
|
-
/** Seller side: send a complete proxy response. */
|
|
98
|
-
sendProxyResponse(response) {
|
|
99
|
-
const payload = encodeHttpResponse(response);
|
|
100
|
-
const frame = encodeFrame({
|
|
101
|
-
type: MessageType.HttpResponse,
|
|
102
|
-
messageId: this._nextMessageId(),
|
|
103
|
-
payload,
|
|
104
|
-
});
|
|
105
|
-
this._safeSendFrame(frame, 'response', response.requestId);
|
|
106
|
-
}
|
|
107
|
-
/** Seller side: send a proxy response chunk. */
|
|
108
|
-
sendProxyChunk(chunk) {
|
|
109
|
-
const type = chunk.done
|
|
110
|
-
? MessageType.HttpResponseEnd
|
|
111
|
-
: MessageType.HttpResponseChunk;
|
|
112
|
-
const payload = encodeHttpResponseChunk(chunk);
|
|
113
|
-
const frame = encodeFrame({
|
|
114
|
-
type,
|
|
115
|
-
messageId: this._nextMessageId(),
|
|
116
|
-
payload,
|
|
117
|
-
});
|
|
118
|
-
this._safeSendFrame(frame, chunk.done ? 'response-end' : 'response-chunk', chunk.requestId);
|
|
119
|
-
}
|
|
120
|
-
/** Route an incoming frame to the correct handler based on message type. */
|
|
121
|
-
async handleFrame(frame) {
|
|
122
|
-
try {
|
|
123
|
-
debugLog(`[ProxyMux] handleFrame type=${frame.type} (0x${frame.type.toString(16)}) payloadLen=${frame.payload?.length ?? 0}`);
|
|
124
|
-
switch (frame.type) {
|
|
125
|
-
case MessageType.HttpRequest: {
|
|
126
|
-
// Seller side: incoming request from buyer
|
|
127
|
-
const request = decodeHttpRequest(frame.payload);
|
|
128
|
-
debugLog(`[ProxyMux] recv request reqId=${request.requestId.slice(0, 8)} chunked=${request.headers[ANTSEED_UPLOAD_CHUNK_HEADER] === 'chunked' ? "true" : "false"} bodyBytes=${request.body?.length ?? 0} bodyType=${typeof request.body}`);
|
|
129
|
-
if (request.headers[ANTSEED_UPLOAD_CHUNK_HEADER] === 'chunked') {
|
|
130
|
-
// Body will arrive via HttpRequestChunk/HttpRequestEnd — start buffering.
|
|
131
|
-
// If a duplicate header frame arrives for the same requestId, evict the
|
|
132
|
-
// existing entry first to prevent timer leaks and accounting drift.
|
|
133
|
-
const existing = this._pendingUploads.get(request.requestId);
|
|
134
|
-
if (existing) {
|
|
135
|
-
clearTimeout(existing.timer);
|
|
136
|
-
this._totalPendingUploadBytes -= existing.byteCount;
|
|
137
|
-
for (const c of existing.chunks)
|
|
138
|
-
c.fill(0);
|
|
139
|
-
}
|
|
140
|
-
const timer = setTimeout(() => this._abortUpload(request.requestId, 408, 'Upload timed out'), this._uploadTimeoutMs);
|
|
141
|
-
this._pendingUploads.set(request.requestId, {
|
|
142
|
-
headerReq: request,
|
|
143
|
-
chunks: [],
|
|
144
|
-
byteCount: 0,
|
|
145
|
-
timer,
|
|
146
|
-
});
|
|
147
|
-
}
|
|
148
|
-
else if (this._requestHandler) {
|
|
149
|
-
await this._requestHandler(request);
|
|
150
|
-
}
|
|
151
|
-
break;
|
|
152
|
-
}
|
|
153
|
-
case MessageType.HttpRequestChunk: {
|
|
154
|
-
// Seller side: non-final body chunk of a chunked upload
|
|
155
|
-
const chunk = decodeHttpRequestChunk(frame.payload);
|
|
156
|
-
const entry = this._pendingUploads.get(chunk.requestId);
|
|
157
|
-
if (!entry || chunk.data.length === 0)
|
|
158
|
-
break;
|
|
159
|
-
debugLog(`[ProxyMux] recv request chunk reqId=${chunk.requestId.slice(0, 8)} bytes=${chunk.data.length} pending=${entry.byteCount + chunk.data.length}`);
|
|
160
|
-
// Per-request size guard
|
|
161
|
-
if (entry.byteCount + chunk.data.length > this._maxUploadBodyBytes) {
|
|
162
|
-
this._abortUpload(chunk.requestId, 413, 'Upload body exceeds per-request limit');
|
|
163
|
-
break;
|
|
164
|
-
}
|
|
165
|
-
// Global budget guard
|
|
166
|
-
if (this._totalPendingUploadBytes + chunk.data.length > this._maxTotalPendingUploadBytes) {
|
|
167
|
-
this._abortUpload(chunk.requestId, 413, 'Server upload capacity exceeded');
|
|
168
|
-
break;
|
|
169
|
-
}
|
|
170
|
-
entry.chunks.push(chunk.data);
|
|
171
|
-
entry.byteCount += chunk.data.length;
|
|
172
|
-
this._totalPendingUploadBytes += chunk.data.length;
|
|
173
|
-
break;
|
|
174
|
-
}
|
|
175
|
-
case MessageType.HttpRequestEnd: {
|
|
176
|
-
// Seller side: final body chunk — reassemble, zero intermediates, dispatch
|
|
177
|
-
const chunk = decodeHttpRequestChunk(frame.payload);
|
|
178
|
-
const entry = this._pendingUploads.get(chunk.requestId);
|
|
179
|
-
if (!entry)
|
|
180
|
-
break;
|
|
181
|
-
debugLog(`[ProxyMux] recv request end reqId=${chunk.requestId.slice(0, 8)} finalBytes=${chunk.data.length} pendingBefore=${entry.byteCount}`);
|
|
182
|
-
// Check final chunk against limits
|
|
183
|
-
const finalLen = chunk.data.length;
|
|
184
|
-
if (finalLen > 0) {
|
|
185
|
-
if (entry.byteCount + finalLen > this._maxUploadBodyBytes) {
|
|
186
|
-
this._abortUpload(chunk.requestId, 413, 'Upload body exceeds per-request limit');
|
|
187
|
-
break;
|
|
188
|
-
}
|
|
189
|
-
if (this._totalPendingUploadBytes + finalLen > this._maxTotalPendingUploadBytes) {
|
|
190
|
-
this._abortUpload(chunk.requestId, 413, 'Server upload capacity exceeded');
|
|
191
|
-
break;
|
|
192
|
-
}
|
|
193
|
-
entry.chunks.push(chunk.data);
|
|
194
|
-
entry.byteCount += finalLen;
|
|
195
|
-
this._totalPendingUploadBytes += finalLen;
|
|
196
|
-
}
|
|
197
|
-
// Clean up tracking state
|
|
198
|
-
clearTimeout(entry.timer);
|
|
199
|
-
this._pendingUploads.delete(chunk.requestId);
|
|
200
|
-
this._totalPendingUploadBytes -= entry.byteCount;
|
|
201
|
-
if (this._requestHandler) {
|
|
202
|
-
const body = _concatChunks(entry.chunks);
|
|
203
|
-
// Zero intermediates — reduces the window for sensitive data in RAM
|
|
204
|
-
for (const c of entry.chunks)
|
|
205
|
-
c.fill(0);
|
|
206
|
-
entry.chunks.length = 0;
|
|
207
|
-
const { [ANTSEED_UPLOAD_CHUNK_HEADER]: _marker, ...cleanHeaders } = entry.headerReq.headers;
|
|
208
|
-
await this._requestHandler({ ...entry.headerReq, headers: cleanHeaders, body });
|
|
209
|
-
}
|
|
210
|
-
break;
|
|
211
|
-
}
|
|
212
|
-
case MessageType.HttpResponse: {
|
|
213
|
-
// Buyer side: response from seller (start frame for streams).
|
|
214
|
-
const response = decodeHttpResponse(frame.payload);
|
|
215
|
-
debugLog(`[ProxyMux] recv response reqId=${response.requestId.slice(0, 8)} status=${response.statusCode} bytes=${response.body?.length ?? 0} streamingStart=${response.headers[ANTSEED_STREAMING_RESPONSE_HEADER] === '1' ? "true" : "false"}`);
|
|
216
|
-
const handler = this._responseHandlers.get(response.requestId);
|
|
217
|
-
if (handler) {
|
|
218
|
-
const streamingStart = response.headers[ANTSEED_STREAMING_RESPONSE_HEADER] === '1';
|
|
219
|
-
if (!streamingStart) {
|
|
220
|
-
this._responseHandlers.delete(response.requestId);
|
|
221
|
-
this._chunkHandlers.delete(response.requestId);
|
|
222
|
-
}
|
|
223
|
-
handler(response, { streamingStart });
|
|
224
|
-
}
|
|
225
|
-
break;
|
|
226
|
-
}
|
|
227
|
-
case MessageType.HttpResponseChunk: {
|
|
228
|
-
// Buyer side: streaming chunk from seller
|
|
229
|
-
const chunk = decodeHttpResponseChunk(frame.payload);
|
|
230
|
-
debugLog(`[ProxyMux] recv response chunk reqId=${chunk.requestId.slice(0, 8)} bytes=${chunk.data.length} done=${chunk.done ? "true" : "false"}`);
|
|
231
|
-
const chunkHandler = this._chunkHandlers.get(chunk.requestId);
|
|
232
|
-
if (chunkHandler) {
|
|
233
|
-
chunkHandler(chunk);
|
|
234
|
-
}
|
|
235
|
-
break;
|
|
236
|
-
}
|
|
237
|
-
case MessageType.HttpResponseEnd: {
|
|
238
|
-
// Buyer side: final chunk (done=true) from seller
|
|
239
|
-
const endChunk = decodeHttpResponseChunk(frame.payload);
|
|
240
|
-
debugLog(`[ProxyMux] recv response end reqId=${endChunk.requestId.slice(0, 8)} bytes=${endChunk.data.length}`);
|
|
241
|
-
const endHandler = this._chunkHandlers.get(endChunk.requestId);
|
|
242
|
-
if (endHandler) {
|
|
243
|
-
endHandler(endChunk);
|
|
244
|
-
this._responseHandlers.delete(endChunk.requestId);
|
|
245
|
-
this._chunkHandlers.delete(endChunk.requestId);
|
|
246
|
-
}
|
|
247
|
-
break;
|
|
248
|
-
}
|
|
249
|
-
case MessageType.HttpResponseError: {
|
|
250
|
-
// Buyer side: error response from seller
|
|
251
|
-
const errorResponse = decodeHttpResponse(frame.payload);
|
|
252
|
-
const errorHandler = this._responseHandlers.get(errorResponse.requestId);
|
|
253
|
-
if (errorHandler) {
|
|
254
|
-
this._responseHandlers.delete(errorResponse.requestId);
|
|
255
|
-
this._chunkHandlers.delete(errorResponse.requestId);
|
|
256
|
-
errorHandler(errorResponse, { streamingStart: false });
|
|
257
|
-
}
|
|
258
|
-
break;
|
|
259
|
-
}
|
|
260
|
-
default:
|
|
261
|
-
// Unknown message type — ignore
|
|
262
|
-
break;
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
catch (err) {
|
|
266
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
267
|
-
throw new Error(`Failed to handle proxy frame type ${frame.type}: ${message}`);
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
/** Number of in-flight requests (buyer side). */
|
|
271
|
-
activeRequestCount() {
|
|
272
|
-
return this._responseHandlers.size;
|
|
273
|
-
}
|
|
274
|
-
/** Number of in-progress chunked uploads buffered on the seller side. */
|
|
275
|
-
pendingUploadCount() {
|
|
276
|
-
return this._pendingUploads.size;
|
|
277
|
-
}
|
|
278
|
-
/** Total bytes currently buffered across all in-progress uploads. */
|
|
279
|
-
pendingUploadBytes() {
|
|
280
|
-
return this._totalPendingUploadBytes;
|
|
281
|
-
}
|
|
282
|
-
/**
|
|
283
|
-
* Seller side: abort and discard all buffered chunked-upload state.
|
|
284
|
-
* Call on connection close or session end to prevent memory leaks.
|
|
285
|
-
* Zeros all buffered chunk data before discarding.
|
|
286
|
-
*/
|
|
287
|
-
abortPendingUploads() {
|
|
288
|
-
for (const entry of this._pendingUploads.values()) {
|
|
289
|
-
clearTimeout(entry.timer);
|
|
290
|
-
for (const c of entry.chunks)
|
|
291
|
-
c.fill(0);
|
|
292
|
-
}
|
|
293
|
-
this._pendingUploads.clear();
|
|
294
|
-
this._totalPendingUploadBytes = 0;
|
|
295
|
-
}
|
|
296
|
-
/**
|
|
297
|
-
* Abort a single in-progress upload, zero its buffers, and send an error
|
|
298
|
-
* response to the buyer.
|
|
299
|
-
*/
|
|
300
|
-
_abortUpload(requestId, statusCode, reason) {
|
|
301
|
-
const entry = this._pendingUploads.get(requestId);
|
|
302
|
-
if (!entry)
|
|
303
|
-
return;
|
|
304
|
-
clearTimeout(entry.timer);
|
|
305
|
-
this._totalPendingUploadBytes -= entry.byteCount;
|
|
306
|
-
for (const c of entry.chunks)
|
|
307
|
-
c.fill(0);
|
|
308
|
-
this._pendingUploads.delete(requestId);
|
|
309
|
-
this.sendProxyResponse({
|
|
310
|
-
requestId,
|
|
311
|
-
statusCode,
|
|
312
|
-
headers: {
|
|
313
|
-
'content-type': 'text/plain',
|
|
314
|
-
...(statusCode === 413 ? { 'x-antseed-max-upload-body-bytes': String(this._maxUploadBodyBytes) } : {}),
|
|
315
|
-
},
|
|
316
|
-
body: new TextEncoder().encode(reason),
|
|
317
|
-
});
|
|
318
|
-
}
|
|
319
|
-
_safeSendFrame(frame, kind, requestId) {
|
|
320
|
-
try {
|
|
321
|
-
this._connection.send(frame);
|
|
322
|
-
}
|
|
323
|
-
catch (err) {
|
|
324
|
-
debugLog(`[ProxyMux] drop ${kind} reqId=${requestId.slice(0, 8)} because connection closed: ${err instanceof Error ? err.message : err}`);
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
_nextMessageId() {
|
|
328
|
-
const id = this._messageIdCounter;
|
|
329
|
-
this._messageIdCounter = (this._messageIdCounter + 1) & 0xFFFFFFFF;
|
|
330
|
-
return id;
|
|
331
|
-
}
|
|
332
|
-
}
|
|
333
|
-
function _concatChunks(chunks) {
|
|
334
|
-
if (chunks.length === 0)
|
|
335
|
-
return new Uint8Array(0);
|
|
336
|
-
if (chunks.length === 1)
|
|
337
|
-
return chunks[0].slice();
|
|
338
|
-
const total = chunks.reduce((n, c) => n + c.length, 0);
|
|
339
|
-
const out = new Uint8Array(total);
|
|
340
|
-
let offset = 0;
|
|
341
|
-
for (const c of chunks) {
|
|
342
|
-
out.set(c, offset);
|
|
343
|
-
offset += c.length;
|
|
344
|
-
}
|
|
345
|
-
return out;
|
|
346
|
-
}
|
|
1
|
+
// Moved to @antseed/buyer-core; re-exported for compatibility.
|
|
2
|
+
export * from '@antseed/buyer-core/proxy-mux';
|
|
347
3
|
//# sourceMappingURL=proxy-mux.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy-mux.js","sourceRoot":"","sources":["../../src/proxy/proxy-mux.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"proxy-mux.js","sourceRoot":"","sources":["../../src/proxy/proxy-mux.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,cAAc,+BAA+B,CAAC"}
|
|
@@ -1,42 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
/**
|
|
3
|
-
* Encode an HTTP request into binary format:
|
|
4
|
-
* [requestIdLen:2][requestId:N][methodLen:1][method:N][pathLen:2][path:N]
|
|
5
|
-
* [headerCount:2][for each header: keyLen:2, key:N, valLen:2, val:N]
|
|
6
|
-
* [bodyLen:4][body:N]
|
|
7
|
-
*/
|
|
8
|
-
export declare function encodeHttpRequest(req: SerializedHttpRequest): Uint8Array;
|
|
9
|
-
/**
|
|
10
|
-
* Decode binary data into a SerializedHttpRequest.
|
|
11
|
-
*/
|
|
12
|
-
export declare function decodeHttpRequest(data: Uint8Array): SerializedHttpRequest;
|
|
13
|
-
/**
|
|
14
|
-
* Encode an HTTP response into binary format:
|
|
15
|
-
* [requestIdLen:2][requestId:N][statusCode:2]
|
|
16
|
-
* [headerCount:2][for each header: keyLen:2, key:N, valLen:2, val:N]
|
|
17
|
-
* [bodyLen:4][body:N]
|
|
18
|
-
*/
|
|
19
|
-
export declare function encodeHttpResponse(resp: SerializedHttpResponse): Uint8Array;
|
|
20
|
-
/**
|
|
21
|
-
* Decode binary data into a SerializedHttpResponse.
|
|
22
|
-
*/
|
|
23
|
-
export declare function decodeHttpResponse(data: Uint8Array): SerializedHttpResponse;
|
|
24
|
-
/**
|
|
25
|
-
* Encode an HTTP response chunk into binary format:
|
|
26
|
-
* [requestIdLen:2][requestId:N][done:1][dataLen:4][data:N]
|
|
27
|
-
*/
|
|
28
|
-
export declare function encodeHttpResponseChunk(chunk: SerializedHttpResponseChunk): Uint8Array;
|
|
29
|
-
/**
|
|
30
|
-
* Decode binary data into a SerializedHttpResponseChunk.
|
|
31
|
-
*/
|
|
32
|
-
export declare function decodeHttpResponseChunk(data: Uint8Array): SerializedHttpResponseChunk;
|
|
33
|
-
/**
|
|
34
|
-
* Encode an HTTP request chunk into binary format:
|
|
35
|
-
* [requestIdLen:2][requestId:N][done:1][dataLen:4][data:N]
|
|
36
|
-
*/
|
|
37
|
-
export declare function encodeHttpRequestChunk(chunk: SerializedHttpRequestChunk): Uint8Array;
|
|
38
|
-
/**
|
|
39
|
-
* Decode binary data into a SerializedHttpRequestChunk.
|
|
40
|
-
*/
|
|
41
|
-
export declare function decodeHttpRequestChunk(data: Uint8Array): SerializedHttpRequestChunk;
|
|
1
|
+
export * from '@antseed/protocol/request-codec';
|
|
42
2
|
//# sourceMappingURL=request-codec.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-codec.d.ts","sourceRoot":"","sources":["../../src/proxy/request-codec.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"request-codec.d.ts","sourceRoot":"","sources":["../../src/proxy/request-codec.ts"],"names":[],"mappings":"AACA,cAAc,iCAAiC,CAAC"}
|