raffel 1.1.65 → 1.1.66-next.4d366cf
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/adapters/grpc.d.ts +8 -0
- package/dist/adapters/grpc.d.ts.map +1 -1
- package/dist/adapters/grpc.js +106 -42
- package/dist/adapters/grpc.js.map +1 -1
- package/dist/adapters/http.d.ts +6 -0
- package/dist/adapters/http.d.ts.map +1 -1
- package/dist/adapters/http.js +108 -93
- package/dist/adapters/http.js.map +1 -1
- package/dist/core/router.d.ts.map +1 -1
- package/dist/core/router.js +13 -6
- package/dist/core/router.js.map +1 -1
- package/dist/docs/generators/http-generator.js +17 -13
- package/dist/docs/generators/http-generator.js.map +1 -1
- package/dist/http/app.d.ts.map +1 -1
- package/dist/http/app.js +9 -0
- package/dist/http/app.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/mcp/docs/patterns-advanced-data.js +2 -2
- package/dist/middleware/compose.d.ts +5 -0
- package/dist/middleware/compose.d.ts.map +1 -1
- package/dist/middleware/compose.js +37 -0
- package/dist/middleware/compose.js.map +1 -1
- package/dist/middleware/correlation-profile.d.ts +52 -0
- package/dist/middleware/correlation-profile.d.ts.map +1 -0
- package/dist/middleware/correlation-profile.js +162 -0
- package/dist/middleware/correlation-profile.js.map +1 -0
- package/dist/middleware/index.d.ts +2 -0
- package/dist/middleware/index.d.ts.map +1 -1
- package/dist/middleware/index.js +1 -0
- package/dist/middleware/index.js.map +1 -1
- package/dist/middleware/interceptors/logging.d.ts.map +1 -1
- package/dist/middleware/interceptors/logging.js +31 -2
- package/dist/middleware/interceptors/logging.js.map +1 -1
- package/dist/middleware/types.d.ts +14 -0
- package/dist/middleware/types.d.ts.map +1 -1
- package/dist/protocols/mcp/auth.d.ts.map +1 -1
- package/dist/protocols/mcp/auth.js +6 -1
- package/dist/protocols/mcp/auth.js.map +1 -1
- package/dist/server/builder/execution-bootstrap.d.ts.map +1 -1
- package/dist/server/builder/execution-bootstrap.js +1 -0
- package/dist/server/builder/execution-bootstrap.js.map +1 -1
- package/dist/server/builder/execution-entrypoint.d.ts.map +1 -1
- package/dist/server/builder/execution-entrypoint.js +5 -0
- package/dist/server/builder/execution-entrypoint.js.map +1 -1
- package/dist/server/http-lifecycle/index.d.ts.map +1 -1
- package/dist/server/http-lifecycle/index.js +28 -0
- package/dist/server/http-lifecycle/index.js.map +1 -1
- package/dist/server/rest-middleware.js +2 -2
- package/dist/server/rest-middleware.js.map +1 -1
- package/dist/server/telemetry-bootstrap.d.ts +3 -0
- package/dist/server/telemetry-bootstrap.d.ts.map +1 -1
- package/dist/server/telemetry-bootstrap.js +16 -3
- package/dist/server/telemetry-bootstrap.js.map +1 -1
- package/dist/server/types/lifecycle-types.d.ts +5 -0
- package/dist/server/types/lifecycle-types.d.ts.map +1 -1
- package/dist/tracing/baggage.d.ts +39 -0
- package/dist/tracing/baggage.d.ts.map +1 -0
- package/dist/tracing/baggage.js +103 -0
- package/dist/tracing/baggage.js.map +1 -0
- package/dist/tracing/decimal-id.d.ts +30 -0
- package/dist/tracing/decimal-id.d.ts.map +1 -0
- package/dist/tracing/decimal-id.js +44 -0
- package/dist/tracing/decimal-id.js.map +1 -0
- package/dist/tracing/grpc.d.ts +70 -0
- package/dist/tracing/grpc.d.ts.map +1 -0
- package/dist/tracing/grpc.js +111 -0
- package/dist/tracing/grpc.js.map +1 -0
- package/dist/tracing/http.d.ts +7 -1
- package/dist/tracing/http.d.ts.map +1 -1
- package/dist/tracing/http.js +36 -19
- package/dist/tracing/http.js.map +1 -1
- package/dist/tracing/index.d.ts +11 -2
- package/dist/tracing/index.d.ts.map +1 -1
- package/dist/tracing/index.js +9 -1
- package/dist/tracing/index.js.map +1 -1
- package/dist/tracing/interceptor.d.ts +20 -1
- package/dist/tracing/interceptor.d.ts.map +1 -1
- package/dist/tracing/interceptor.js +195 -39
- package/dist/tracing/interceptor.js.map +1 -1
- package/dist/tracing/opentelemetry-span.d.ts +11 -0
- package/dist/tracing/opentelemetry-span.d.ts.map +1 -0
- package/dist/tracing/opentelemetry-span.js +101 -0
- package/dist/tracing/opentelemetry-span.js.map +1 -0
- package/dist/tracing/opentelemetry.d.ts +22 -0
- package/dist/tracing/opentelemetry.d.ts.map +1 -0
- package/dist/tracing/opentelemetry.js +111 -0
- package/dist/tracing/opentelemetry.js.map +1 -0
- package/dist/tracing/safe-attributes.d.ts +8 -0
- package/dist/tracing/safe-attributes.d.ts.map +1 -0
- package/dist/tracing/safe-attributes.js +53 -0
- package/dist/tracing/safe-attributes.js.map +1 -0
- package/dist/tracing/trace-context.d.ts +6 -0
- package/dist/tracing/trace-context.d.ts.map +1 -0
- package/dist/tracing/trace-context.js +26 -0
- package/dist/tracing/trace-context.js.map +1 -0
- package/dist/tracing/traced-fetch.d.ts +63 -0
- package/dist/tracing/traced-fetch.d.ts.map +1 -0
- package/dist/tracing/traced-fetch.js +219 -0
- package/dist/tracing/traced-fetch.js.map +1 -0
- package/dist/tracing/tracer.d.ts.map +1 -1
- package/dist/tracing/tracer.js +36 -35
- package/dist/tracing/tracer.js.map +1 -1
- package/dist/tracing/types.d.ts +30 -0
- package/dist/tracing/types.d.ts.map +1 -1
- package/dist/tracing/types.js.map +1 -1
- package/dist/types/context.d.ts +48 -3
- package/dist/types/context.d.ts.map +1 -1
- package/dist/types/context.js +10 -2
- package/dist/types/context.js.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/ui/core/router.d.ts.map +1 -1
- package/dist/ui/middleware/types.d.ts +14 -0
- package/dist/ui/middleware/types.d.ts.map +1 -1
- package/dist/ui/server/http-lifecycle/index.d.ts.map +1 -1
- package/dist/ui/types/context.d.ts +48 -3
- package/dist/ui/types/context.d.ts.map +1 -1
- package/dist/ui/types/index.d.ts +1 -1
- package/dist/ui/types/index.d.ts.map +1 -1
- package/dist/ui/utils/header-metadata.d.ts.map +1 -1
- package/dist/utils/header-metadata.d.ts.map +1 -1
- package/dist/utils/header-metadata.js +1 -0
- package/dist/utils/header-metadata.js.map +1 -1
- package/package.json +4 -1
package/dist/adapters/grpc.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ import * as grpc from '@grpc/grpc-js';
|
|
|
7
7
|
import * as protoLoader from '@grpc/proto-loader';
|
|
8
8
|
import type { Router } from '../core/router.js';
|
|
9
9
|
import type { ContextSeed } from '../types/index.js';
|
|
10
|
+
import type { Tracer } from '../tracing/types.js';
|
|
10
11
|
import { type TlsOptions } from '../utils/tls.js';
|
|
11
12
|
export interface GrpcTlsOptions extends TlsOptions {
|
|
12
13
|
requireClientCert?: boolean;
|
|
@@ -44,6 +45,13 @@ export interface GrpcAdapterOptions {
|
|
|
44
45
|
maxReceiveMessageLength?: number;
|
|
45
46
|
maxSendMessageLength?: number;
|
|
46
47
|
contextFactory?: (call: GrpcServerCallBase, method: GrpcMethodInfo) => ContextSeed | Promise<ContextSeed>;
|
|
48
|
+
/**
|
|
49
|
+
* Distributed tracer. When set, every call gets a `kind: 'server'` span —
|
|
50
|
+
* extracting `traceparent`/`tracestate`/`baggage` from call metadata so a
|
|
51
|
+
* trace started by an HTTP or gRPC caller continues across this hop, the
|
|
52
|
+
* same way `tracedFetch`/`createTracingInterceptor` do for HTTP.
|
|
53
|
+
*/
|
|
54
|
+
tracer?: Tracer;
|
|
47
55
|
}
|
|
48
56
|
export interface GrpcAdapter {
|
|
49
57
|
start(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grpc.d.ts","sourceRoot":"","sources":["../../src/adapters/grpc.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,IAAI,MAAM,eAAe,CAAA;AACrC,OAAO,KAAK,WAAW,MAAM,oBAAoB,CAAA;AAEjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,EAAqB,WAAW,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"grpc.d.ts","sourceRoot":"","sources":["../../src/adapters/grpc.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,IAAI,MAAM,eAAe,CAAA;AACrC,OAAO,KAAK,WAAW,MAAM,oBAAoB,CAAA;AAEjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,EAAqB,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAKvE,OAAO,KAAK,EAAE,MAAM,EAAqB,MAAM,qBAAqB,CAAA;AAUpE,OAAO,EAAqB,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAGpE,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,OAAO,CAAA;IACtB,cAAc,EAAE,OAAO,CAAA;CACxB;AAED;;;GAGG;AACH,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAA;IACvB,SAAS,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAA;IAC7B,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,IAAI,CAAA;CAChE;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,aAAa,CAAC,EAAE,WAAW,CAAC,OAAO,CAAA;IACnC;;;;OAIG;IACH,GAAG,CAAC,EAAE,OAAO,GAAG,cAAc,CAAA;IAC9B,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,cAAc,CAAC,EAAE,CACf,IAAI,EAAE,kBAAkB,EACxB,MAAM,EAAE,cAAc,KACnB,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IACvC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;IACnC,QAAQ,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;CACxD;AAgHD,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,kBAAkB,GAC1B,WAAW,CAicb"}
|
package/dist/adapters/grpc.js
CHANGED
|
@@ -10,6 +10,7 @@ import { mergeContextSeeds } from '../types/index.js';
|
|
|
10
10
|
import { createAbortableContextAsync } from '../utils/context-utils.js';
|
|
11
11
|
import { createStream } from '../stream/raffel-stream.js';
|
|
12
12
|
import { createLogger } from '../utils/logger.js';
|
|
13
|
+
import { extractGrpcBaggage, extractGrpcParentContext, finishGrpcServerSpan, startGrpcServerSpan, } from '../tracing/grpc.js';
|
|
13
14
|
const logger = createLogger('grpc-adapter');
|
|
14
15
|
import { resolveTlsOptions } from '../utils/tls.js';
|
|
15
16
|
import { isAsyncIterable } from '../utils/type-guards.js';
|
|
@@ -156,7 +157,39 @@ export function createGrpcAdapter(router, options) {
|
|
|
156
157
|
abort('gRPC call cancelled');
|
|
157
158
|
}
|
|
158
159
|
});
|
|
159
|
-
|
|
160
|
+
// Continue the trace/baggage carried in call metadata — the gRPC-side
|
|
161
|
+
// equivalent of what `createTracingInterceptor` does for HTTP/RPC and
|
|
162
|
+
// `tracedFetch` does on the outbound side. `injectGrpcMetadata` (in
|
|
163
|
+
// `tracing/grpc.ts`) is the matching helper for outbound calls made by
|
|
164
|
+
// this handler.
|
|
165
|
+
let span;
|
|
166
|
+
const baggage = options.tracer ? extractGrpcBaggage(call.metadata) : {};
|
|
167
|
+
if (options.tracer) {
|
|
168
|
+
const parentContext = extractGrpcParentContext(options.tracer, call.metadata);
|
|
169
|
+
span = startGrpcServerSpan(options.tracer, {
|
|
170
|
+
service: method.serviceName,
|
|
171
|
+
method: method.methodName,
|
|
172
|
+
requestStream: method.requestStream,
|
|
173
|
+
responseStream: method.responseStream,
|
|
174
|
+
}, parentContext);
|
|
175
|
+
ctx.tracing = {
|
|
176
|
+
...ctx.tracing,
|
|
177
|
+
traceId: span.context.traceId,
|
|
178
|
+
spanId: span.context.spanId,
|
|
179
|
+
parentSpanId: parentContext?.spanId,
|
|
180
|
+
baggage,
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
return { ctx, metadata, span, baggage };
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Run `fn` with `span`/`baggage` as the tracer's active span/baggage
|
|
187
|
+
* (scoped via `runInSpanContext`, not a manual enterWith+restore pair —
|
|
188
|
+
* see that method's docs) when a tracer is configured; otherwise just
|
|
189
|
+
* calls `fn()` directly.
|
|
190
|
+
*/
|
|
191
|
+
function withGrpcSpanContext(span, baggage, fn) {
|
|
192
|
+
return options.tracer ? Promise.resolve(options.tracer.runInSpanContext(span, baggage, fn)) : fn();
|
|
160
193
|
}
|
|
161
194
|
function createEnvelope(requestId, procedure, type, payload, metadata, ctx) {
|
|
162
195
|
return {
|
|
@@ -169,30 +202,41 @@ export function createGrpcAdapter(router, options) {
|
|
|
169
202
|
};
|
|
170
203
|
}
|
|
171
204
|
async function handleUnary(call, callback, method) {
|
|
172
|
-
const { ctx, metadata } = await buildContext(call, method);
|
|
205
|
+
const { ctx, metadata, span, baggage } = await buildContext(call, method);
|
|
173
206
|
ctx.input = {
|
|
174
207
|
...ctx.input,
|
|
175
208
|
body: call.request,
|
|
176
209
|
};
|
|
177
210
|
const envelope = createEnvelope(ctx.requestId, method.fullName, 'request', call.request, metadata, ctx);
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
211
|
+
await withGrpcSpanContext(span, baggage, async () => {
|
|
212
|
+
try {
|
|
213
|
+
const result = await router.handle(envelope);
|
|
214
|
+
if (!result || typeof result !== 'object' || !('type' in result)) {
|
|
215
|
+
if (span)
|
|
216
|
+
finishGrpcServerSpan(span, grpc.status.INTERNAL);
|
|
217
|
+
callback(toServiceError('INTERNAL_ERROR', 'Invalid router response'));
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
const responseEnvelope = result;
|
|
221
|
+
if (responseEnvelope.type === 'error') {
|
|
222
|
+
const errorPayload = responseEnvelope.payload;
|
|
223
|
+
if (span)
|
|
224
|
+
finishGrpcServerSpan(span, mapErrorCodeToStatus(errorPayload.code));
|
|
225
|
+
callback(toServiceError(errorPayload.code, errorPayload.message));
|
|
226
|
+
return;
|
|
227
|
+
}
|
|
228
|
+
if (span)
|
|
229
|
+
finishGrpcServerSpan(span, grpc.status.OK);
|
|
230
|
+
callback(null, responseEnvelope.payload);
|
|
183
231
|
}
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
232
|
+
catch (err) {
|
|
233
|
+
const error = err;
|
|
234
|
+
span?.recordError(error);
|
|
235
|
+
if (span)
|
|
236
|
+
finishGrpcServerSpan(span, grpc.status.INTERNAL);
|
|
237
|
+
callback(toServiceError('INTERNAL_ERROR', error.message ?? 'Internal error'));
|
|
189
238
|
}
|
|
190
|
-
|
|
191
|
-
}
|
|
192
|
-
catch (err) {
|
|
193
|
-
const error = err;
|
|
194
|
-
callback(toServiceError('INTERNAL_ERROR', error.message ?? 'Internal error'));
|
|
195
|
-
}
|
|
239
|
+
});
|
|
196
240
|
}
|
|
197
241
|
/**
|
|
198
242
|
* Pump router stream chunks out to a gRPC writable/duplex call. Shared
|
|
@@ -202,10 +246,12 @@ export function createGrpcAdapter(router, options) {
|
|
|
202
246
|
* calls. Returns when the stream is exhausted, errored, cancelled, or
|
|
203
247
|
* its context is aborted.
|
|
204
248
|
*/
|
|
205
|
-
async function pumpRouterStreamToGrpc(call, ctx, envelope) {
|
|
249
|
+
async function pumpRouterStreamToGrpc(call, ctx, envelope, span) {
|
|
206
250
|
try {
|
|
207
251
|
const result = await router.handle(envelope);
|
|
208
252
|
if (!isAsyncIterable(result)) {
|
|
253
|
+
if (span)
|
|
254
|
+
finishGrpcServerSpan(span, grpc.status.INTERNAL);
|
|
209
255
|
call.emit('error', toServiceError('INTERNAL_ERROR', 'Handler did not return a stream'));
|
|
210
256
|
return;
|
|
211
257
|
}
|
|
@@ -218,10 +264,14 @@ export function createGrpcAdapter(router, options) {
|
|
|
218
264
|
}
|
|
219
265
|
else if (response.type === 'stream:end') {
|
|
220
266
|
call.end();
|
|
267
|
+
if (span)
|
|
268
|
+
finishGrpcServerSpan(span, grpc.status.OK);
|
|
221
269
|
break;
|
|
222
270
|
}
|
|
223
271
|
else if (response.type === 'stream:error' || response.type === 'error') {
|
|
224
272
|
const errorPayload = response.payload;
|
|
273
|
+
if (span)
|
|
274
|
+
finishGrpcServerSpan(span, mapErrorCodeToStatus(errorPayload.code));
|
|
225
275
|
call.emit('error', toServiceError(errorPayload.code, errorPayload.message));
|
|
226
276
|
call.end();
|
|
227
277
|
break;
|
|
@@ -230,17 +280,20 @@ export function createGrpcAdapter(router, options) {
|
|
|
230
280
|
}
|
|
231
281
|
catch (err) {
|
|
232
282
|
const error = err;
|
|
283
|
+
span?.recordError(error);
|
|
284
|
+
if (span)
|
|
285
|
+
finishGrpcServerSpan(span, grpc.status.INTERNAL);
|
|
233
286
|
call.emit('error', toServiceError('INTERNAL_ERROR', error.message ?? 'Internal error'));
|
|
234
287
|
}
|
|
235
288
|
}
|
|
236
289
|
async function handleServerStream(call, method) {
|
|
237
|
-
const { ctx, metadata } = await buildContext(call, method);
|
|
290
|
+
const { ctx, metadata, span, baggage } = await buildContext(call, method);
|
|
238
291
|
ctx.input = {
|
|
239
292
|
...ctx.input,
|
|
240
293
|
body: call.request,
|
|
241
294
|
};
|
|
242
295
|
const envelope = createEnvelope(ctx.requestId, method.fullName, 'stream:start', call.request, metadata, ctx);
|
|
243
|
-
await pumpRouterStreamToGrpc(call, ctx, envelope);
|
|
296
|
+
await withGrpcSpanContext(span, baggage, () => pumpRouterStreamToGrpc(call, ctx, envelope, span));
|
|
244
297
|
}
|
|
245
298
|
/**
|
|
246
299
|
* Wire a gRPC inbound stream call into a Raffel input stream and the
|
|
@@ -249,7 +302,7 @@ export function createGrpcAdapter(router, options) {
|
|
|
249
302
|
* and produce a 'stream:start' envelope.
|
|
250
303
|
*/
|
|
251
304
|
async function buildInputStreamEnvelope(call, method, mode) {
|
|
252
|
-
const { ctx, metadata } = await buildContext(call, method);
|
|
305
|
+
const { ctx, metadata, span, baggage } = await buildContext(call, method);
|
|
253
306
|
ctx.stream = { kind: 'stream', mode, id: ctx.requestId };
|
|
254
307
|
const inputStream = createStream();
|
|
255
308
|
call.on('data', (chunk) => {
|
|
@@ -262,32 +315,43 @@ export function createGrpcAdapter(router, options) {
|
|
|
262
315
|
call.on('end', () => { inputStream.end(); });
|
|
263
316
|
call.on('error', (err) => { inputStream.error(err); });
|
|
264
317
|
const envelope = createEnvelope(ctx.requestId, method.fullName, 'stream:start', inputStream, metadata, ctx);
|
|
265
|
-
return { ctx, metadata, envelope, inputStream };
|
|
318
|
+
return { ctx, metadata, envelope, inputStream, span, baggage };
|
|
266
319
|
}
|
|
267
320
|
async function handleClientStream(call, callback, method) {
|
|
268
|
-
const { envelope } = await buildInputStreamEnvelope(call, method, 'client');
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
321
|
+
const { envelope, span, baggage } = await buildInputStreamEnvelope(call, method, 'client');
|
|
322
|
+
await withGrpcSpanContext(span, baggage, async () => {
|
|
323
|
+
try {
|
|
324
|
+
const result = await router.handle(envelope);
|
|
325
|
+
if (!result || typeof result !== 'object' || !('type' in result)) {
|
|
326
|
+
if (span)
|
|
327
|
+
finishGrpcServerSpan(span, grpc.status.INTERNAL);
|
|
328
|
+
callback(toServiceError('INTERNAL_ERROR', 'Invalid router response'));
|
|
329
|
+
return;
|
|
330
|
+
}
|
|
331
|
+
const responseEnvelope = result;
|
|
332
|
+
if (responseEnvelope.type === 'error') {
|
|
333
|
+
const errorPayload = responseEnvelope.payload;
|
|
334
|
+
if (span)
|
|
335
|
+
finishGrpcServerSpan(span, mapErrorCodeToStatus(errorPayload.code));
|
|
336
|
+
callback(toServiceError(errorPayload.code, errorPayload.message));
|
|
337
|
+
return;
|
|
338
|
+
}
|
|
339
|
+
if (span)
|
|
340
|
+
finishGrpcServerSpan(span, grpc.status.OK);
|
|
341
|
+
callback(null, responseEnvelope.payload);
|
|
274
342
|
}
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
343
|
+
catch (err) {
|
|
344
|
+
const error = err;
|
|
345
|
+
span?.recordError(error);
|
|
346
|
+
if (span)
|
|
347
|
+
finishGrpcServerSpan(span, grpc.status.INTERNAL);
|
|
348
|
+
callback(toServiceError('INTERNAL_ERROR', error.message ?? 'Internal error'));
|
|
280
349
|
}
|
|
281
|
-
|
|
282
|
-
}
|
|
283
|
-
catch (err) {
|
|
284
|
-
const error = err;
|
|
285
|
-
callback(toServiceError('INTERNAL_ERROR', error.message ?? 'Internal error'));
|
|
286
|
-
}
|
|
350
|
+
});
|
|
287
351
|
}
|
|
288
352
|
async function handleBidiStream(call, method) {
|
|
289
|
-
const { ctx, envelope } = await buildInputStreamEnvelope(call, method, 'bidi');
|
|
290
|
-
await pumpRouterStreamToGrpc(call, ctx, envelope);
|
|
353
|
+
const { ctx, envelope, span, baggage } = await buildInputStreamEnvelope(call, method, 'bidi');
|
|
354
|
+
await withGrpcSpanContext(span, baggage, () => pumpRouterStreamToGrpc(call, ctx, envelope, span));
|
|
291
355
|
}
|
|
292
356
|
function createImplementation(serviceName, serviceDef) {
|
|
293
357
|
const implementation = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grpc.js","sourceRoot":"","sources":["../../src/adapters/grpc.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"grpc.js","sourceRoot":"","sources":["../../src/adapters/grpc.ts"],"names":[],"mappings":"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"}
|
package/dist/adapters/http.d.ts
CHANGED
|
@@ -48,6 +48,12 @@ export interface HttpAdapterOptions {
|
|
|
48
48
|
middleware?: HttpMiddleware[];
|
|
49
49
|
/** Optional tracer used to create one server span per HTTP request. */
|
|
50
50
|
tracer?: Tracer;
|
|
51
|
+
/**
|
|
52
|
+
* Create Raffel's HTTP server span. Set to false when platform
|
|
53
|
+
* auto-instrumentation already owns the active server span.
|
|
54
|
+
* Default: true.
|
|
55
|
+
*/
|
|
56
|
+
createServerSpan?: boolean;
|
|
51
57
|
/**
|
|
52
58
|
* When false, start() creates the http.Server but does not call listen().
|
|
53
59
|
* Useful when an external TCP server manages connection dispatch (single-port mode).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/adapters/http.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAoC,KAAK,MAAM,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,WAAW,CAAA;AAEpH,OAAO,EAAqB,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,EAAqB,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,KAAK,EAAE,MAAM,EAAqB,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/adapters/http.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAoC,KAAK,MAAM,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,WAAW,CAAA;AAEpH,OAAO,EAAqB,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,EAAqB,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,KAAK,EAAE,MAAM,EAAqB,MAAM,qBAAqB,CAAA;AAkBpE,OAAO,EAEL,KAAK,KAAK,EACX,MAAM,4BAA4B,CAAA;AACnC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAc/D;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,CAC3B,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,KAChB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;AAE/B;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAA;IAEZ,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB,mDAAmD;IACnD,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IAE7E,yBAAyB;IACzB,IAAI,CAAC,EAAE;QACL,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAA;QACpC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;QAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;QAClB,WAAW,CAAC,EAAE,OAAO,CAAA;KACtB,GAAG,OAAO,CAAA;IAEX,gDAAgD;IAChD,MAAM,CAAC,EAAE,KAAK,EAAE,CAAA;IAEhB;;;OAGG;IACH,UAAU,CAAC,EAAE,cAAc,EAAE,CAAA;IAE7B,uEAAuE;IACvE,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAE1B;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IAEvB;;;;OAIG;IACH,GAAG,CAAC,EAAE,OAAO,GAAG,UAAU,CAAA;IAE1B;;;;OAIG;IACH,cAAc,CAAC,EAAE,kBAAkB,CAAA;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,uBAAuB;IACvB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAEtB,sBAAsB;IACtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAErB,qEAAqE;IACrE,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CAC/B;AAuDD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,kBAAkB,GAC1B,WAAW,CA0ab"}
|
package/dist/adapters/http.js
CHANGED
|
@@ -13,7 +13,8 @@ import { createLogger } from '../utils/logger.js';
|
|
|
13
13
|
import { extractMetadataFromHeaders } from '../utils/header-metadata.js';
|
|
14
14
|
import { applyRateLimitHeaders } from '../http/rate-limit-headers.js';
|
|
15
15
|
import { isAsyncIterable } from '../utils/type-guards.js';
|
|
16
|
-
import { applyHttpRouteToSpan, bindContextToSpan, extractHttpParentContext, finishHttpServerSpan, getHttpTelemetryRoute, setHttpTelemetryRoute, setTraceResponseHeaders, startHttpServerSpan, } from '../tracing/index.js';
|
|
16
|
+
import { applyHttpRouteToSpan, bindContextToSpan, extractHttpBaggageHeader, extractHttpParentContext, finishHttpServerSpan, getHttpTelemetryRoute, setHttpTelemetryRoute, setTraceResponseHeaders, startHttpServerSpan, } from '../tracing/index.js';
|
|
17
|
+
import { parseBaggageHeader } from '../tracing/baggage.js';
|
|
17
18
|
import { resolveCodecs, } from '../utils/content-codecs.js';
|
|
18
19
|
import { getStatusForCode } from '../errors/codes.js';
|
|
19
20
|
import { createHttpRequestContext, dispatchHttpEnvelope, resolveHttpRequestBody, resolveHttpResponseCodec, searchParamsToQuery, sendErrorResponse, } from '../server/http-lifecycle/index.js';
|
|
@@ -117,113 +118,127 @@ export function createHttpAdapter(router, options) {
|
|
|
117
118
|
});
|
|
118
119
|
let span;
|
|
119
120
|
let parentContext;
|
|
120
|
-
let
|
|
121
|
+
let baggage = {};
|
|
121
122
|
let spanCompleted = false;
|
|
122
123
|
if (options.tracer) {
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
124
|
+
baggage = parseBaggageHeader(extractHttpBaggageHeader(req.headers));
|
|
125
|
+
if (options.createServerSpan !== false) {
|
|
126
|
+
parentContext = extractHttpParentContext(options.tracer, req.headers);
|
|
127
|
+
span = startHttpServerSpan(options.tracer, {
|
|
128
|
+
method,
|
|
129
|
+
url,
|
|
130
|
+
protocolVersion: req.httpVersion,
|
|
131
|
+
route: getHttpTelemetryRoute(req)?.route,
|
|
132
|
+
procedure,
|
|
133
|
+
remoteAddress: req.socket?.remoteAddress,
|
|
134
|
+
remotePort: req.socket?.remotePort,
|
|
135
|
+
}, parentContext);
|
|
136
|
+
setTraceResponseHeaders(res, span);
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
span = options.tracer.getActiveSpan();
|
|
140
|
+
spanCompleted = true;
|
|
141
|
+
}
|
|
136
142
|
}
|
|
137
143
|
const completeSpan = () => {
|
|
138
144
|
if (!span || spanCompleted)
|
|
139
145
|
return;
|
|
140
146
|
applyHttpRouteToSpan(span, method, getHttpTelemetryRoute(req));
|
|
141
147
|
finishHttpServerSpan(span, res.statusCode);
|
|
142
|
-
options.tracer?.setActiveSpan(previousSpan);
|
|
143
148
|
spanCompleted = true;
|
|
144
149
|
};
|
|
145
|
-
//
|
|
146
|
-
|
|
147
|
-
//
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
logger.debug({ method: req.method, path: url.pathname, procedure }, 'Request received');
|
|
165
|
-
let ctx = null;
|
|
166
|
-
try {
|
|
167
|
-
// For methods that carry a request body, parse it first so the raw
|
|
168
|
-
// bytes can be captured into the context for HMAC verification
|
|
169
|
-
// (Stripe, Svix, GitHub webhooks, etc.). See issue #114.
|
|
170
|
-
let parsedBody = null;
|
|
171
|
-
const carriesBody = req.method === 'POST' && (isEvent || (!isStream));
|
|
172
|
-
if (carriesBody) {
|
|
173
|
-
// Validate response codec before reading the body so we still emit
|
|
174
|
-
// 406/415 cleanly when negotiation fails.
|
|
175
|
-
const responseCodecCheck = resolveHttpResponseCodec(req, res, codecs);
|
|
176
|
-
if (!responseCodecCheck)
|
|
177
|
-
return;
|
|
178
|
-
parsedBody = await resolveHttpRequestBody({ req, res, codecs, maxBodySize });
|
|
179
|
-
if (!parsedBody)
|
|
180
|
-
return;
|
|
181
|
-
}
|
|
182
|
-
ctx = (await createHttpRequestContext({
|
|
183
|
-
req,
|
|
184
|
-
res,
|
|
185
|
-
method,
|
|
186
|
-
url,
|
|
187
|
-
input: {
|
|
188
|
-
query: searchParamsToQuery(url.searchParams),
|
|
189
|
-
body: parsedBody?.payload,
|
|
190
|
-
},
|
|
191
|
-
rawBody: parsedBody?.raw,
|
|
192
|
-
trustedProxies,
|
|
193
|
-
contextFactory: options.contextFactory,
|
|
194
|
-
})).ctx;
|
|
195
|
-
if (span) {
|
|
196
|
-
bindContextToSpan(ctx, span, parentContext);
|
|
197
|
-
}
|
|
198
|
-
// Handle based on type
|
|
199
|
-
if (isStream && method === 'GET') {
|
|
200
|
-
// Stream via SSE
|
|
201
|
-
await handleStream(req, res, procedure, url.searchParams, ctx);
|
|
150
|
+
// The rest of this handler runs with `span`/`baggage` as the tracer's
|
|
151
|
+
// active span/baggage — scoped via `runInSpanContext` (not a manual
|
|
152
|
+
// enterWith+restore pair) so it correctly unwinds to whatever was
|
|
153
|
+
// active before, no matter how many awaits happen below. When there's
|
|
154
|
+
// no tracer, `span`/`baggage` are `undefined`/`{}` and this is a no-op
|
|
155
|
+
// pass-through.
|
|
156
|
+
return (options.tracer?.runInSpanContext(span, baggage, () => handleTracedRequest()) ??
|
|
157
|
+
handleTracedRequest());
|
|
158
|
+
async function handleTracedRequest() {
|
|
159
|
+
// Set CORS headers
|
|
160
|
+
setCorsHeaders(res, req, cors);
|
|
161
|
+
// Handle preflight
|
|
162
|
+
if (req.method === 'OPTIONS') {
|
|
163
|
+
res.writeHead(204);
|
|
164
|
+
res.end();
|
|
165
|
+
completeSpan();
|
|
166
|
+
return;
|
|
202
167
|
}
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
168
|
+
// Run HTTP middleware (e.g., OpenAPI UI, static files)
|
|
169
|
+
if (options.middleware) {
|
|
170
|
+
for (const middleware of options.middleware) {
|
|
171
|
+
const handled = await middleware(req, res);
|
|
172
|
+
if (handled) {
|
|
173
|
+
completeSpan();
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
206
177
|
}
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
178
|
+
logger.debug({ method: req.method, path: url.pathname, procedure }, 'Request received');
|
|
179
|
+
let ctx = null;
|
|
180
|
+
try {
|
|
181
|
+
// For methods that carry a request body, parse it first so the raw
|
|
182
|
+
// bytes can be captured into the context for HMAC verification
|
|
183
|
+
// (Stripe, Svix, GitHub webhooks, etc.). See issue #114.
|
|
184
|
+
let parsedBody = null;
|
|
185
|
+
const carriesBody = req.method === 'POST' && (isEvent || (!isStream));
|
|
186
|
+
if (carriesBody) {
|
|
187
|
+
// Validate response codec before reading the body so we still emit
|
|
188
|
+
// 406/415 cleanly when negotiation fails.
|
|
189
|
+
const responseCodecCheck = resolveHttpResponseCodec(req, res, codecs);
|
|
190
|
+
if (!responseCodecCheck)
|
|
191
|
+
return;
|
|
192
|
+
parsedBody = await resolveHttpRequestBody({ req, res, codecs, maxBodySize });
|
|
193
|
+
if (!parsedBody)
|
|
194
|
+
return;
|
|
195
|
+
}
|
|
196
|
+
ctx = (await createHttpRequestContext({
|
|
197
|
+
req,
|
|
198
|
+
res,
|
|
199
|
+
method,
|
|
200
|
+
url,
|
|
201
|
+
input: {
|
|
202
|
+
query: searchParamsToQuery(url.searchParams),
|
|
203
|
+
body: parsedBody?.payload,
|
|
204
|
+
},
|
|
205
|
+
rawBody: parsedBody?.raw,
|
|
206
|
+
trustedProxies,
|
|
207
|
+
contextFactory: options.contextFactory,
|
|
208
|
+
})).ctx;
|
|
209
|
+
if (span) {
|
|
210
|
+
bindContextToSpan(ctx, span, parentContext, baggage);
|
|
211
|
+
}
|
|
212
|
+
// Handle based on type
|
|
213
|
+
if (isStream && method === 'GET') {
|
|
214
|
+
// Stream via SSE
|
|
215
|
+
await handleStream(req, res, procedure, url.searchParams, ctx);
|
|
216
|
+
}
|
|
217
|
+
else if (isEvent && method === 'POST') {
|
|
218
|
+
// Fire-and-forget event
|
|
219
|
+
await handleEvent(req, res, procedure, ctx, parsedBody.payload);
|
|
220
|
+
}
|
|
221
|
+
else if (method === 'POST') {
|
|
222
|
+
// Regular procedure call
|
|
223
|
+
await handleProcedure(req, res, procedure, ctx, parsedBody.payload);
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
226
|
+
sendErrorResponse(res, 405, 'METHOD_NOT_ALLOWED', `Method ${method} not allowed`);
|
|
227
|
+
}
|
|
210
228
|
}
|
|
211
|
-
|
|
212
|
-
|
|
229
|
+
catch (err) {
|
|
230
|
+
const error = err;
|
|
231
|
+
span?.recordError(error);
|
|
232
|
+
logger.error({ err: error, procedure }, 'Request handler error');
|
|
233
|
+
if (ctx) {
|
|
234
|
+
applyRateLimitHeaders(res, ctx);
|
|
235
|
+
}
|
|
236
|
+
sendErrorResponse(res, 500, 'INTERNAL_ERROR', error.message);
|
|
213
237
|
}
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
span?.recordError(error);
|
|
218
|
-
logger.error({ err: error, procedure }, 'Request handler error');
|
|
219
|
-
if (ctx) {
|
|
220
|
-
applyRateLimitHeaders(res, ctx);
|
|
238
|
+
finally {
|
|
239
|
+
completeSpan();
|
|
240
|
+
logger.debug({ procedure, duration: Date.now() - startTime }, 'Request completed');
|
|
221
241
|
}
|
|
222
|
-
sendErrorResponse(res, 500, 'INTERNAL_ERROR', error.message);
|
|
223
|
-
}
|
|
224
|
-
finally {
|
|
225
|
-
completeSpan();
|
|
226
|
-
logger.debug({ procedure, duration: Date.now() - startTime }, 'Request completed');
|
|
227
242
|
}
|
|
228
243
|
}
|
|
229
244
|
async function handleProcedure(req, res, procedure, ctx, payload) {
|