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.
Files changed (128) hide show
  1. package/dist/adapters/grpc.d.ts +8 -0
  2. package/dist/adapters/grpc.d.ts.map +1 -1
  3. package/dist/adapters/grpc.js +106 -42
  4. package/dist/adapters/grpc.js.map +1 -1
  5. package/dist/adapters/http.d.ts +6 -0
  6. package/dist/adapters/http.d.ts.map +1 -1
  7. package/dist/adapters/http.js +108 -93
  8. package/dist/adapters/http.js.map +1 -1
  9. package/dist/core/router.d.ts.map +1 -1
  10. package/dist/core/router.js +13 -6
  11. package/dist/core/router.js.map +1 -1
  12. package/dist/docs/generators/http-generator.js +17 -13
  13. package/dist/docs/generators/http-generator.js.map +1 -1
  14. package/dist/http/app.d.ts.map +1 -1
  15. package/dist/http/app.js +9 -0
  16. package/dist/http/app.js.map +1 -1
  17. package/dist/index.d.ts +4 -4
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +2 -2
  20. package/dist/index.js.map +1 -1
  21. package/dist/mcp/docs/patterns-advanced-data.js +2 -2
  22. package/dist/middleware/compose.d.ts +5 -0
  23. package/dist/middleware/compose.d.ts.map +1 -1
  24. package/dist/middleware/compose.js +37 -0
  25. package/dist/middleware/compose.js.map +1 -1
  26. package/dist/middleware/correlation-profile.d.ts +52 -0
  27. package/dist/middleware/correlation-profile.d.ts.map +1 -0
  28. package/dist/middleware/correlation-profile.js +162 -0
  29. package/dist/middleware/correlation-profile.js.map +1 -0
  30. package/dist/middleware/index.d.ts +2 -0
  31. package/dist/middleware/index.d.ts.map +1 -1
  32. package/dist/middleware/index.js +1 -0
  33. package/dist/middleware/index.js.map +1 -1
  34. package/dist/middleware/interceptors/logging.d.ts.map +1 -1
  35. package/dist/middleware/interceptors/logging.js +31 -2
  36. package/dist/middleware/interceptors/logging.js.map +1 -1
  37. package/dist/middleware/types.d.ts +14 -0
  38. package/dist/middleware/types.d.ts.map +1 -1
  39. package/dist/protocols/mcp/auth.d.ts.map +1 -1
  40. package/dist/protocols/mcp/auth.js +6 -1
  41. package/dist/protocols/mcp/auth.js.map +1 -1
  42. package/dist/server/builder/execution-bootstrap.d.ts.map +1 -1
  43. package/dist/server/builder/execution-bootstrap.js +1 -0
  44. package/dist/server/builder/execution-bootstrap.js.map +1 -1
  45. package/dist/server/builder/execution-entrypoint.d.ts.map +1 -1
  46. package/dist/server/builder/execution-entrypoint.js +5 -0
  47. package/dist/server/builder/execution-entrypoint.js.map +1 -1
  48. package/dist/server/http-lifecycle/index.d.ts.map +1 -1
  49. package/dist/server/http-lifecycle/index.js +28 -0
  50. package/dist/server/http-lifecycle/index.js.map +1 -1
  51. package/dist/server/rest-middleware.js +2 -2
  52. package/dist/server/rest-middleware.js.map +1 -1
  53. package/dist/server/telemetry-bootstrap.d.ts +3 -0
  54. package/dist/server/telemetry-bootstrap.d.ts.map +1 -1
  55. package/dist/server/telemetry-bootstrap.js +16 -3
  56. package/dist/server/telemetry-bootstrap.js.map +1 -1
  57. package/dist/server/types/lifecycle-types.d.ts +5 -0
  58. package/dist/server/types/lifecycle-types.d.ts.map +1 -1
  59. package/dist/tracing/baggage.d.ts +39 -0
  60. package/dist/tracing/baggage.d.ts.map +1 -0
  61. package/dist/tracing/baggage.js +103 -0
  62. package/dist/tracing/baggage.js.map +1 -0
  63. package/dist/tracing/decimal-id.d.ts +30 -0
  64. package/dist/tracing/decimal-id.d.ts.map +1 -0
  65. package/dist/tracing/decimal-id.js +44 -0
  66. package/dist/tracing/decimal-id.js.map +1 -0
  67. package/dist/tracing/grpc.d.ts +70 -0
  68. package/dist/tracing/grpc.d.ts.map +1 -0
  69. package/dist/tracing/grpc.js +111 -0
  70. package/dist/tracing/grpc.js.map +1 -0
  71. package/dist/tracing/http.d.ts +7 -1
  72. package/dist/tracing/http.d.ts.map +1 -1
  73. package/dist/tracing/http.js +36 -19
  74. package/dist/tracing/http.js.map +1 -1
  75. package/dist/tracing/index.d.ts +11 -2
  76. package/dist/tracing/index.d.ts.map +1 -1
  77. package/dist/tracing/index.js +9 -1
  78. package/dist/tracing/index.js.map +1 -1
  79. package/dist/tracing/interceptor.d.ts +20 -1
  80. package/dist/tracing/interceptor.d.ts.map +1 -1
  81. package/dist/tracing/interceptor.js +195 -39
  82. package/dist/tracing/interceptor.js.map +1 -1
  83. package/dist/tracing/opentelemetry-span.d.ts +11 -0
  84. package/dist/tracing/opentelemetry-span.d.ts.map +1 -0
  85. package/dist/tracing/opentelemetry-span.js +101 -0
  86. package/dist/tracing/opentelemetry-span.js.map +1 -0
  87. package/dist/tracing/opentelemetry.d.ts +22 -0
  88. package/dist/tracing/opentelemetry.d.ts.map +1 -0
  89. package/dist/tracing/opentelemetry.js +111 -0
  90. package/dist/tracing/opentelemetry.js.map +1 -0
  91. package/dist/tracing/safe-attributes.d.ts +8 -0
  92. package/dist/tracing/safe-attributes.d.ts.map +1 -0
  93. package/dist/tracing/safe-attributes.js +53 -0
  94. package/dist/tracing/safe-attributes.js.map +1 -0
  95. package/dist/tracing/trace-context.d.ts +6 -0
  96. package/dist/tracing/trace-context.d.ts.map +1 -0
  97. package/dist/tracing/trace-context.js +26 -0
  98. package/dist/tracing/trace-context.js.map +1 -0
  99. package/dist/tracing/traced-fetch.d.ts +63 -0
  100. package/dist/tracing/traced-fetch.d.ts.map +1 -0
  101. package/dist/tracing/traced-fetch.js +219 -0
  102. package/dist/tracing/traced-fetch.js.map +1 -0
  103. package/dist/tracing/tracer.d.ts.map +1 -1
  104. package/dist/tracing/tracer.js +36 -35
  105. package/dist/tracing/tracer.js.map +1 -1
  106. package/dist/tracing/types.d.ts +30 -0
  107. package/dist/tracing/types.d.ts.map +1 -1
  108. package/dist/tracing/types.js.map +1 -1
  109. package/dist/types/context.d.ts +48 -3
  110. package/dist/types/context.d.ts.map +1 -1
  111. package/dist/types/context.js +10 -2
  112. package/dist/types/context.js.map +1 -1
  113. package/dist/types/index.d.ts +1 -1
  114. package/dist/types/index.d.ts.map +1 -1
  115. package/dist/types/index.js.map +1 -1
  116. package/dist/ui/core/router.d.ts.map +1 -1
  117. package/dist/ui/middleware/types.d.ts +14 -0
  118. package/dist/ui/middleware/types.d.ts.map +1 -1
  119. package/dist/ui/server/http-lifecycle/index.d.ts.map +1 -1
  120. package/dist/ui/types/context.d.ts +48 -3
  121. package/dist/ui/types/context.d.ts.map +1 -1
  122. package/dist/ui/types/index.d.ts +1 -1
  123. package/dist/ui/types/index.d.ts.map +1 -1
  124. package/dist/ui/utils/header-metadata.d.ts.map +1 -1
  125. package/dist/utils/header-metadata.d.ts.map +1 -1
  126. package/dist/utils/header-metadata.js +1 -0
  127. package/dist/utils/header-metadata.js.map +1 -1
  128. package/package.json +4 -1
@@ -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;AAQvE,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;CACxC;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,CAuYb"}
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"}
@@ -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
- return { ctx, metadata };
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
- try {
179
- const result = await router.handle(envelope);
180
- if (!result || typeof result !== 'object' || !('type' in result)) {
181
- callback(toServiceError('INTERNAL_ERROR', 'Invalid router response'));
182
- return;
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
- const responseEnvelope = result;
185
- if (responseEnvelope.type === 'error') {
186
- const errorPayload = responseEnvelope.payload;
187
- callback(toServiceError(errorPayload.code, errorPayload.message));
188
- return;
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
- callback(null, responseEnvelope.payload);
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
- try {
270
- const result = await router.handle(envelope);
271
- if (!result || typeof result !== 'object' || !('type' in result)) {
272
- callback(toServiceError('INTERNAL_ERROR', 'Invalid router response'));
273
- return;
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
- const responseEnvelope = result;
276
- if (responseEnvelope.type === 'error') {
277
- const errorPayload = responseEnvelope.payload;
278
- callback(toServiceError(errorPayload.code, errorPayload.message));
279
- return;
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
- callback(null, responseEnvelope.payload);
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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"}
@@ -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;AAepE,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,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,CA4Zb"}
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"}
@@ -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 previousSpan;
121
+ let baggage = {};
121
122
  let spanCompleted = false;
122
123
  if (options.tracer) {
123
- parentContext = extractHttpParentContext(options.tracer, req.headers);
124
- span = startHttpServerSpan(options.tracer, {
125
- method,
126
- url,
127
- protocolVersion: req.httpVersion,
128
- route: getHttpTelemetryRoute(req)?.route,
129
- procedure,
130
- remoteAddress: req.socket?.remoteAddress,
131
- remotePort: req.socket?.remotePort,
132
- }, parentContext);
133
- previousSpan = options.tracer.getActiveSpan();
134
- options.tracer.setActiveSpan(span);
135
- setTraceResponseHeaders(res, span);
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
- // Set CORS headers
146
- setCorsHeaders(res, req, cors);
147
- // Handle preflight
148
- if (req.method === 'OPTIONS') {
149
- res.writeHead(204);
150
- res.end();
151
- completeSpan();
152
- return;
153
- }
154
- // Run HTTP middleware (e.g., OpenAPI UI, static files)
155
- if (options.middleware) {
156
- for (const middleware of options.middleware) {
157
- const handled = await middleware(req, res);
158
- if (handled) {
159
- completeSpan();
160
- return;
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
- else if (isEvent && method === 'POST') {
204
- // Fire-and-forget event
205
- await handleEvent(req, res, procedure, ctx, parsedBody.payload);
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
- else if (method === 'POST') {
208
- // Regular procedure call
209
- await handleProcedure(req, res, procedure, ctx, parsedBody.payload);
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
- else {
212
- sendErrorResponse(res, 405, 'METHOD_NOT_ALLOWED', `Method ${method} not allowed`);
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
- catch (err) {
216
- const error = err;
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) {