@inversifyjs/http-uwebsockets 5.6.2 → 5.7.0

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.
@@ -1,24 +1,5 @@
1
1
  import { type Readable } from 'node:stream';
2
2
  import { type Logger } from '@inversifyjs/logger';
3
3
  import { type HttpResponse } from 'uWebSockets.js';
4
- /**
5
- * Pipes a Node.js Readable stream over a uWebSockets.js HTTP response with proper
6
- * backpressure handling and error management.
7
- *
8
- * This function handles:
9
- * - Backpressure: Pauses the stream when the socket buffer is full
10
- * - Abort handling: Cleans up resources when the client disconnects
11
- * - Error handling: Catches stream errors and sends appropriate error responses
12
- *
13
- * @param response - The uWebSockets.js HTTP response object
14
- * @param readableStream - The Node.js Readable stream to pipe (must not be in object mode)
15
- * @param logger - Optional logger for error logging
16
- *
17
- * @example
18
- * ```typescript
19
- * const fileStream = fs.createReadStream('./video.mp4');
20
- * pipeStreamOverResponse(response, fileStream, undefined);
21
- * ```
22
- */
23
4
  export declare function pipeStreamOverResponse(response: HttpResponse, readableStream: Readable, logger: Logger | undefined): void;
24
5
  //# sourceMappingURL=pipeStreamOverResponse.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pipeStreamOverResponse.d.ts","sourceRoot":"","sources":["../../src/actions/pipeStreamOverResponse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAMnD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,YAAY,EACtB,cAAc,EAAE,QAAQ,EACxB,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB,IAAI,CAmGN"}
1
+ {"version":3,"file":"pipeStreamOverResponse.d.ts","sourceRoot":"","sources":["../../src/actions/pipeStreamOverResponse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AA+BnD,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,YAAY,EACtB,cAAc,EAAE,QAAQ,EACxB,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB,IAAI,CAoHN"}
@@ -1,5 +1,6 @@
1
1
  import { toArrayBuffer } from '../calculations/toArrayBuffer.js';
2
2
  import { abortedSymbol } from '../data/abortedSymbol.js';
3
+ import { completeUwsHttpResponseStream, recordUwsHttpStatus, } from '../instrumentation/actions/uwsHttpRequestObservation.js';
3
4
  /**
4
5
  * Pipes a Node.js Readable stream over a uWebSockets.js HTTP response with proper
5
6
  * backpressure handling and error management.
@@ -19,10 +20,19 @@ import { abortedSymbol } from '../data/abortedSymbol.js';
19
20
  * pipeStreamOverResponse(response, fileStream, undefined);
20
21
  * ```
21
22
  */
23
+ const HTTP_INTERNAL_SERVER_ERROR_STATUS_CODE = 500;
22
24
  export function pipeStreamOverResponse(response, readableStream, logger) {
23
25
  let isStreamClosed = false;
26
+ let isStreamFinished = false;
24
27
  let storedBuffer;
25
28
  let storedOffset;
29
+ const finishStream = (aborted) => {
30
+ if (isStreamFinished) {
31
+ return;
32
+ }
33
+ isStreamFinished = true;
34
+ completeUwsHttpResponseStream(response, aborted);
35
+ };
26
36
  /**
27
37
  * Clean up function called when the stream is aborted or finished
28
38
  */
@@ -36,7 +46,9 @@ export function pipeStreamOverResponse(response, readableStream, logger) {
36
46
  };
37
47
  // Handle response abortion (client disconnected)
38
48
  response.onAborted(() => {
49
+ response[abortedSymbol] = true;
39
50
  cleanup();
51
+ finishStream(true);
40
52
  });
41
53
  // Handle stream data chunks
42
54
  readableStream.on('data', (chunk) => {
@@ -79,11 +91,13 @@ export function pipeStreamOverResponse(response, readableStream, logger) {
79
91
  logger?.error(error.stack ?? error.message);
80
92
  cleanup();
81
93
  if (response[abortedSymbol] !== true) {
94
+ recordUwsHttpStatus(response, HTTP_INTERNAL_SERVER_ERROR_STATUS_CODE);
82
95
  response.cork(() => {
83
96
  response.writeStatus('500 Internal Server Error');
84
97
  response.end('Stream error occurred');
85
98
  });
86
99
  }
100
+ finishStream(false);
87
101
  });
88
102
  readableStream.on('end', () => {
89
103
  cleanup();
@@ -92,6 +106,7 @@ export function pipeStreamOverResponse(response, readableStream, logger) {
92
106
  response.end();
93
107
  });
94
108
  }
109
+ finishStream(false);
95
110
  });
96
111
  }
97
112
  //# sourceMappingURL=pipeStreamOverResponse.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pipeStreamOverResponse.js","sourceRoot":"","sources":["../../src/actions/pipeStreamOverResponse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipeStreamOverResponse.js","sourceRoot":"","sources":["../../src/actions/pipeStreamOverResponse.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { type Readable } from 'node:stream';
2
- import { type HttpStatusCode, InversifyHttpAdapter, type MiddlewareHandler, type RouterParams } from '@inversifyjs/http-core';
2
+ import { HttpStatusCode, InversifyHttpAdapter, type MiddlewareHandler, type RouterParams } from '@inversifyjs/http-core';
3
3
  import { type Container } from 'inversify';
4
4
  import { type HttpRequest, type HttpResponse, type TemplatedApp } from 'uWebSockets.js';
5
5
  import { type UwebSocketsHttpAdapterOptions } from '../models/UwebSocketsHttpAdapterOptions.js';
@@ -1 +1 @@
1
- {"version":3,"file":"InversifyUwebSocketsHttpAdapter.d.ts","sourceRoot":"","sources":["../../src/adapter/InversifyUwebSocketsHttpAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InversifyUwebSocketsHttpAdapter.d.ts","sourceRoot":"","sources":["../../src/adapter/InversifyUwebSocketsHttpAdapter.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,11 @@
1
- import { buildNormalizedPath, handleMiddlewareList, InversifyHttpAdapter, RequestMethodParameterType, RequestMethodType, routeValueMetadataSymbol, } from '@inversifyjs/http-core';
1
+ import { buildNormalizedPath, handleMiddlewareList, HttpStatusCode, InversifyHttpAdapter, RequestMethodParameterType, RequestMethodType, routeValueMetadataSymbol, } from '@inversifyjs/http-core';
2
2
  import status from 'statuses';
3
3
  import { App, getParts, } from 'uWebSockets.js';
4
4
  import { pipeStreamOverResponse } from '../actions/pipeStreamOverResponse.js';
5
5
  import { getClassMethodRequestTransformerList } from '../calculations/getClassMethodRequestTransformerList.js';
6
6
  import { getClassRequestTransformerList } from '../calculations/getClassRequestTransformerList.js';
7
7
  import { abortedSymbol } from '../data/abortedSymbol.js';
8
+ import { bindUwsHttpResponseStream, finishUwsHttpRequestObservation, markUwsHttpResponseStreamPending, recordUwsHttpHeader, recordUwsHttpStatus, startUwsHttpRequestObservation, } from '../instrumentation/actions/uwsHttpRequestObservation.js';
8
9
  const ADAPTER_ID = Symbol.for('@inversifyjs/http-uwebsockets/InversifyUwebSocketsHttpAdapter');
9
10
  export class InversifyUwebSocketsHttpAdapter extends InversifyHttpAdapter {
10
11
  id = ADAPTER_ID;
@@ -12,6 +13,7 @@ export class InversifyUwebSocketsHttpAdapter extends InversifyHttpAdapter {
12
13
  #requestTransformerOptions;
13
14
  constructor(container, httpAdapterOptions, customApp) {
14
15
  super(container, {
16
+ instrumentation: [],
15
17
  logger: true,
16
18
  }, httpAdapterOptions, [RequestMethodParameterType.Body], customApp);
17
19
  this.#requestTransformerOptions = {
@@ -45,18 +47,12 @@ export class InversifyUwebSocketsHttpAdapter extends InversifyHttpAdapter {
45
47
  ...getClassMethodRequestTransformerList(routerParams.target, routeParams.methodKey),
46
48
  ];
47
49
  if (requestTransformerList.length === 0) {
48
- this.#getAppRouteHandler(routeParams.requestMethodType)(routePath, async (res, req) => {
49
- res.onAborted(() => {
50
- res[abortedSymbol] = true;
51
- });
50
+ this.#getAppRouteHandler(routeParams.requestMethodType)(routePath, async (res, req) => this.#runRequest(res, req, async () => {
52
51
  await handleMiddlewares(req, res);
53
- });
52
+ }));
54
53
  }
55
54
  else {
56
- this.#getAppRouteHandler(routeParams.requestMethodType)(routePath, async (res, req) => {
57
- res.onAborted(() => {
58
- res[abortedSymbol] = true;
59
- });
55
+ this.#getAppRouteHandler(routeParams.requestMethodType)(routePath, async (res, req) => this.#runRequest(res, req, async () => {
60
56
  let request = req;
61
57
  try {
62
58
  for (const requestTransformer of requestTransformerList) {
@@ -68,23 +64,21 @@ export class InversifyUwebSocketsHttpAdapter extends InversifyHttpAdapter {
68
64
  return;
69
65
  }
70
66
  await handleMiddlewares(request, res);
71
- });
67
+ }));
72
68
  }
73
69
  }
74
70
  if (this.#globalPreHandlerMiddlewareList.length > 0) {
75
71
  const handleMiddlewares = handleMiddlewareList(this.#globalPreHandlerMiddlewareList);
76
- this._app.any('/*', async (res, req) => {
77
- res.onAborted(() => {
78
- res[abortedSymbol] = true;
79
- });
72
+ this._app.any('/*', async (res, req) => this.#runRequest(res, req, async () => {
80
73
  await handleMiddlewares(req, res);
81
74
  if (res[abortedSymbol] !== true) {
75
+ recordUwsHttpStatus(res, HttpStatusCode.NOT_FOUND);
82
76
  res.cork(() => {
83
77
  res.writeStatus('404 Not Found');
84
78
  res.end();
85
79
  });
86
80
  }
87
- });
81
+ }));
88
82
  }
89
83
  }
90
84
  _applyGlobalPreHandlerMiddlewareList(handlerList) {
@@ -105,6 +99,7 @@ export class InversifyUwebSocketsHttpAdapter extends InversifyHttpAdapter {
105
99
  }
106
100
  }
107
101
  _replyStream(_request, response, stream) {
102
+ markUwsHttpResponseStreamPending(response);
108
103
  pipeStreamOverResponse(response, stream, this.httpAdapterOptions.logger === false ? undefined : this._logger);
109
104
  }
110
105
  _sendBodySeparator(_request, response) {
@@ -113,11 +108,13 @@ export class InversifyUwebSocketsHttpAdapter extends InversifyHttpAdapter {
113
108
  });
114
109
  }
115
110
  _setStatus(_request, response, statusCode) {
111
+ recordUwsHttpStatus(response, statusCode);
116
112
  response.cork(() => {
117
113
  response.writeStatus(`${statusCode.toString()} ${status(statusCode)}`);
118
114
  });
119
115
  }
120
116
  _setHeader(_request, response, key, value) {
117
+ recordUwsHttpHeader(response, key, value);
121
118
  response.cork(() => {
122
119
  response.writeHeader(key, value);
123
120
  });
@@ -169,6 +166,30 @@ export class InversifyUwebSocketsHttpAdapter extends InversifyHttpAdapter {
169
166
  const cookies = this.#parseCookies(request);
170
167
  return parameterName === undefined ? cookies : cookies[parameterName];
171
168
  }
169
+ async #runRequest(response, request, operation) {
170
+ const instrumentation = this._httpInstrumentation;
171
+ if (instrumentation === undefined) {
172
+ response.onAborted(() => {
173
+ response[abortedSymbol] = true;
174
+ });
175
+ await operation();
176
+ return;
177
+ }
178
+ const observation = startUwsHttpRequestObservation(request, response, instrumentation);
179
+ bindUwsHttpResponseStream(response, (aborted) => {
180
+ finishUwsHttpRequestObservation(request, response, observation, instrumentation, aborted);
181
+ });
182
+ response.onAborted(() => {
183
+ response[abortedSymbol] = true;
184
+ finishUwsHttpRequestObservation(request, response, observation, instrumentation, true);
185
+ });
186
+ try {
187
+ await operation();
188
+ }
189
+ finally {
190
+ finishUwsHttpRequestObservation(request, response, observation, instrumentation, response[abortedSymbol] === true);
191
+ }
192
+ }
172
193
  #getAppRouteHandler(requestMethodType) {
173
194
  switch (requestMethodType) {
174
195
  case RequestMethodType.All:
@@ -194,6 +215,7 @@ export class InversifyUwebSocketsHttpAdapter extends InversifyHttpAdapter {
194
215
  const chunks = [];
195
216
  let totalLength = 0;
196
217
  response.onAborted(() => {
218
+ response[abortedSymbol] = true;
197
219
  reject(new Error('Request aborted'));
198
220
  });
199
221
  response.onData((chunk, isLast) => {
@@ -259,7 +281,7 @@ export class InversifyUwebSocketsHttpAdapter extends InversifyHttpAdapter {
259
281
  }
260
282
  #parseQuery(request) {
261
283
  const queryEntries = new URLSearchParams(request.getQuery()).entries();
262
- const result = {};
284
+ const result = Object.create(null);
263
285
  for (const [key, value] of queryEntries) {
264
286
  if (result[key] !== undefined) {
265
287
  if (Array.isArray(result[key])) {
@@ -279,15 +301,23 @@ export class InversifyUwebSocketsHttpAdapter extends InversifyHttpAdapter {
279
301
  const urlSearchParams = new URLSearchParams(stringifiedBody);
280
302
  const parsedBody = {};
281
303
  urlSearchParams.forEach((value, key) => {
282
- if (parsedBody[key] === undefined) {
283
- parsedBody[key] = value;
304
+ const existingValue = Object.hasOwn(parsedBody, key)
305
+ ? parsedBody[key]
306
+ : undefined;
307
+ if (existingValue === undefined) {
308
+ Object.defineProperty(parsedBody, key, {
309
+ configurable: true,
310
+ enumerable: true,
311
+ value,
312
+ writable: true,
313
+ });
284
314
  }
285
315
  else {
286
- if (Array.isArray(parsedBody[key])) {
287
- parsedBody[key].push(value);
316
+ if (Array.isArray(existingValue)) {
317
+ existingValue.push(value);
288
318
  }
289
319
  else {
290
- parsedBody[key] = [parsedBody[key], value];
320
+ parsedBody[key] = [existingValue, value];
291
321
  }
292
322
  }
293
323
  });
@@ -1 +1 @@
1
- {"version":3,"file":"InversifyUwebSocketsHttpAdapter.js","sourceRoot":"","sources":["../../src/adapter/InversifyUwebSocketsHttpAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InversifyUwebSocketsHttpAdapter.js","sourceRoot":"","sources":["../../src/adapter/InversifyUwebSocketsHttpAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { type HttpInstrumentationContext, type HttpStageClock } from '@inversifyjs/http-instrumentation-core';
2
+ import { type HttpRequest, type HttpResponse } from 'uWebSockets.js';
3
+ interface UwsHttpResponseObservation {
4
+ completed: boolean;
5
+ readonly executionId: string;
6
+ finishStream: ((aborted: boolean) => void) | undefined;
7
+ readonly headers: Record<string, string | string[]>;
8
+ readonly requestId: string;
9
+ readonly stage: HttpStageClock;
10
+ statusCode: number;
11
+ streamPending: boolean;
12
+ }
13
+ export declare function startUwsHttpRequestObservation(request: HttpRequest, response: HttpResponse, instrumentation: HttpInstrumentationContext): UwsHttpResponseObservation;
14
+ export declare function finishUwsHttpRequestObservation(request: HttpRequest, response: HttpResponse, observation: UwsHttpResponseObservation, instrumentation: HttpInstrumentationContext, aborted: boolean): void;
15
+ export declare function bindUwsHttpResponseStream(response: HttpResponse, finishStream: (aborted: boolean) => void): void;
16
+ export declare function markUwsHttpResponseStreamPending(response: HttpResponse): void;
17
+ export declare function completeUwsHttpResponseStream(response: HttpResponse, aborted: boolean): void;
18
+ export declare function recordUwsHttpStatus(response: HttpResponse, statusCode: number): void;
19
+ export declare function recordUwsHttpHeader(response: HttpResponse, key: string, value: string): void;
20
+ export {};
21
+ //# sourceMappingURL=uwsHttpRequestObservation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uwsHttpRequestObservation.d.ts","sourceRoot":"","sources":["../../../src/instrumentation/actions/uwsHttpRequestObservation.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,0BAA0B,EAE/B,KAAK,cAAc,EAMpB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAQrE,UAAU,0BAA0B;IAClC,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACvD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IACpD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;CACxB;AAMD,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,YAAY,EACtB,eAAe,EAAE,0BAA0B,GAC1C,0BAA0B,CAwC5B;AAED,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,YAAY,EACtB,WAAW,EAAE,0BAA0B,EACvC,eAAe,EAAE,0BAA0B,EAC3C,OAAO,EAAE,OAAO,GACf,IAAI,CAwBN;AAED,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,YAAY,EACtB,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,GACvC,IAAI,CASN;AAED,wBAAgB,gCAAgC,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAS7E;AAED,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,OAAO,GACf,IAAI,CAUN;AAED,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,MAAM,GACjB,IAAI,CASN;AAED,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,YAAY,EACtB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GACZ,IAAI,CAkBN"}
@@ -0,0 +1,120 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import { closeHttpInstrumentationScope, emitHttpInstrumentationEvent, initializeHttpInstrumentationRequest, openHttpInstrumentationScope, readHttpStageDuration, redactHttpHeaders, startHttpStage, } from '@inversifyjs/http-instrumentation-core';
3
+ const uwsHttpResponseObservationSymbol = Symbol('@inversifyjs/http-uwebsockets/httpResponseObservation');
4
+ const DEFAULT_STATUS_CODE = 200;
5
+ export function startUwsHttpRequestObservation(request, response, instrumentation) {
6
+ const requestId = randomUUID();
7
+ const stage = startHttpStage();
8
+ initializeHttpInstrumentationRequest(request, requestId);
9
+ const scope = openHttpInstrumentationScope(request, randomUUID());
10
+ const requestHeaders = readUwsRequestHeaders(request);
11
+ const observation = {
12
+ completed: false,
13
+ executionId: scope.executionId,
14
+ finishStream: undefined,
15
+ headers: {},
16
+ requestId: scope.requestId,
17
+ stage,
18
+ statusCode: DEFAULT_STATUS_CODE,
19
+ streamPending: false,
20
+ };
21
+ emitHttpInstrumentationEvent(instrumentation.sinks, {
22
+ executionId: scope.executionId,
23
+ headers: redactHttpHeaders(requestHeaders),
24
+ method: request.getMethod().toUpperCase(),
25
+ requestId: scope.requestId,
26
+ timestamp: stage.startedAt,
27
+ type: 'http.request.started',
28
+ url: readUwsRequestUrl(request),
29
+ }, instrumentation.reportSinkError);
30
+ writeUwsHttpResponseObservation(response, observation);
31
+ return observation;
32
+ }
33
+ export function finishUwsHttpRequestObservation(request, response, observation, instrumentation, aborted) {
34
+ if (observation.completed || observation.streamPending) {
35
+ return;
36
+ }
37
+ observation.completed = true;
38
+ clearUwsHttpResponseObservation(response);
39
+ emitHttpInstrumentationEvent(instrumentation.sinks, {
40
+ aborted,
41
+ duration: readHttpStageDuration(observation.stage),
42
+ executionId: observation.executionId,
43
+ headers: redactHttpHeaders(observation.headers),
44
+ requestId: observation.requestId,
45
+ startedAt: observation.stage.startedAt,
46
+ statusCode: observation.statusCode,
47
+ timestamp: Date.now(),
48
+ type: 'http.response.sent',
49
+ }, instrumentation.reportSinkError);
50
+ closeHttpInstrumentationScope(request, observation.executionId);
51
+ }
52
+ export function bindUwsHttpResponseStream(response, finishStream) {
53
+ const observation = readUwsHttpResponseObservation(response);
54
+ if (observation === undefined) {
55
+ return;
56
+ }
57
+ observation.finishStream = finishStream;
58
+ }
59
+ export function markUwsHttpResponseStreamPending(response) {
60
+ const observation = readUwsHttpResponseObservation(response);
61
+ if (observation === undefined || observation.completed) {
62
+ return;
63
+ }
64
+ observation.streamPending = true;
65
+ }
66
+ export function completeUwsHttpResponseStream(response, aborted) {
67
+ const observation = readUwsHttpResponseObservation(response);
68
+ if (observation === undefined || observation.completed) {
69
+ return;
70
+ }
71
+ observation.streamPending = false;
72
+ observation.finishStream?.(aborted);
73
+ }
74
+ export function recordUwsHttpStatus(response, statusCode) {
75
+ const observation = readUwsHttpResponseObservation(response);
76
+ if (observation === undefined || observation.completed) {
77
+ return;
78
+ }
79
+ observation.statusCode = statusCode;
80
+ }
81
+ export function recordUwsHttpHeader(response, key, value) {
82
+ const observation = readUwsHttpResponseObservation(response);
83
+ if (observation === undefined || observation.completed) {
84
+ return;
85
+ }
86
+ const existing = observation.headers[key];
87
+ if (existing === undefined) {
88
+ observation.headers[key] = value;
89
+ return;
90
+ }
91
+ observation.headers[key] =
92
+ typeof existing === 'string' ? [existing, value] : [...existing, value];
93
+ }
94
+ function readUwsRequestHeaders(request) {
95
+ const headers = {};
96
+ request.forEach((key, value) => {
97
+ const existing = headers[key];
98
+ if (existing === undefined) {
99
+ headers[key] = value;
100
+ return;
101
+ }
102
+ headers[key] =
103
+ typeof existing === 'string' ? [existing, value] : [...existing, value];
104
+ });
105
+ return headers;
106
+ }
107
+ function readUwsRequestUrl(request) {
108
+ const query = request.getQuery();
109
+ return query === '' ? request.getUrl() : `${request.getUrl()}?${query}`;
110
+ }
111
+ function readUwsHttpResponseObservation(response) {
112
+ return response[uwsHttpResponseObservationSymbol];
113
+ }
114
+ function writeUwsHttpResponseObservation(response, observation) {
115
+ response[uwsHttpResponseObservationSymbol] = observation;
116
+ }
117
+ function clearUwsHttpResponseObservation(response) {
118
+ response[uwsHttpResponseObservationSymbol] = undefined;
119
+ }
120
+ //# sourceMappingURL=uwsHttpRequestObservation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uwsHttpRequestObservation.js","sourceRoot":"","sources":["../../../src/instrumentation/actions/uwsHttpRequestObservation.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -5,7 +5,8 @@
5
5
  },
6
6
  "description": "InversifyJs http express package",
7
7
  "dependencies": {
8
- "@inversifyjs/http-core": "5.6.2",
8
+ "@inversifyjs/http-core": "5.7.0",
9
+ "@inversifyjs/http-instrumentation-core": "5.7.0",
9
10
  "@inversifyjs/reflect-metadata-utils": "1.5.0",
10
11
  "uWebSockets.js": "github:uNetworking/uWebSockets.js#v20.70.0",
11
12
  "statuses": "^2.0.2"
@@ -19,7 +20,7 @@
19
20
  "@types/node": "24.19.1",
20
21
  "@types/statuses": "2.0.6",
21
22
  "@vitest/coverage-v8": "5.0.3",
22
- "eslint": "10.11.0",
23
+ "eslint": "10.12.0",
23
24
  "prettier": "3.9.9",
24
25
  "rimraf": "6.1.3",
25
26
  "typescript": "6.0.3",
@@ -55,7 +56,7 @@
55
56
  "type": "git",
56
57
  "url": "git+https://github.com/inversify/monorepo.git"
57
58
  },
58
- "version": "5.6.2",
59
+ "version": "5.7.0",
59
60
  "type": "module",
60
61
  "scripts": {
61
62
  "build": "tsc",