@inversifyjs/http-instrumentation-core 5.7.0 → 5.9.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.
- package/.npmignore +26 -0
- package/lib/actions/emitHttpInstrumentationEvent.d.ts +4 -0
- package/lib/actions/emitHttpInstrumentationEvent.d.ts.map +1 -0
- package/lib/actions/emitHttpInstrumentationEvent.js +20 -0
- package/lib/actions/emitHttpInstrumentationEvent.js.map +1 -0
- package/lib/actions/httpInstrumentationState.d.ts +5 -0
- package/lib/actions/httpInstrumentationState.d.ts.map +1 -0
- package/lib/actions/httpInstrumentationState.js +50 -0
- package/lib/actions/httpInstrumentationState.js.map +1 -0
- package/lib/actions/markHttpInstrumentedHandler.d.ts +3 -0
- package/lib/actions/markHttpInstrumentedHandler.d.ts.map +1 -0
- package/lib/actions/markHttpInstrumentedHandler.js +14 -0
- package/lib/actions/markHttpInstrumentedHandler.js.map +1 -0
- package/lib/actions/runInstrumentedHttpStage.d.ts +11 -0
- package/lib/actions/runInstrumentedHttpStage.d.ts.map +1 -0
- package/lib/actions/runInstrumentedHttpStage.js +28 -0
- package/lib/actions/runInstrumentedHttpStage.js.map +1 -0
- package/lib/calculations/buildHttpInstrumentationContext.d.ts +5 -0
- package/lib/calculations/buildHttpInstrumentationContext.d.ts.map +1 -0
- package/lib/calculations/buildHttpInstrumentationContext.js +10 -0
- package/lib/calculations/buildHttpInstrumentationContext.js.map +1 -0
- package/lib/calculations/redactHttpHeaders.d.ts +2 -0
- package/lib/calculations/redactHttpHeaders.d.ts.map +1 -0
- package/lib/calculations/redactHttpHeaders.js +28 -0
- package/lib/calculations/redactHttpHeaders.js.map +1 -0
- package/lib/calculations/startHttpStage.d.ts +4 -0
- package/lib/calculations/startHttpStage.d.ts.map +1 -0
- package/lib/calculations/startHttpStage.js +10 -0
- package/lib/calculations/startHttpStage.js.map +1 -0
- package/lib/index.d.ts +14 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +9 -0
- package/lib/index.js.map +1 -0
- package/lib/models/EventSink.d.ts +4 -0
- package/lib/models/EventSink.d.ts.map +1 -0
- package/lib/models/EventSink.js +2 -0
- package/lib/models/EventSink.js.map +1 -0
- package/lib/models/HttpInstrumentationContext.d.ts +7 -0
- package/lib/models/HttpInstrumentationContext.d.ts.map +1 -0
- package/lib/models/HttpInstrumentationContext.js +2 -0
- package/lib/models/HttpInstrumentationContext.js.map +1 -0
- package/lib/models/HttpInstrumentationEvent.d.ts +91 -0
- package/lib/models/HttpInstrumentationEvent.d.ts.map +1 -0
- package/lib/models/HttpInstrumentationEvent.js +2 -0
- package/lib/models/HttpInstrumentationEvent.js.map +1 -0
- package/lib/models/HttpInstrumentationScope.d.ts +6 -0
- package/lib/models/HttpInstrumentationScope.d.ts.map +1 -0
- package/lib/models/HttpInstrumentationScope.js +2 -0
- package/lib/models/HttpInstrumentationScope.js.map +1 -0
- package/lib/models/HttpStageClock.d.ts +5 -0
- package/lib/models/HttpStageClock.d.ts.map +1 -0
- package/lib/models/HttpStageClock.js +2 -0
- package/lib/models/HttpStageClock.js.map +1 -0
- package/lib/models/httpInstrumentationStateSymbol.d.ts +6 -0
- package/lib/models/httpInstrumentationStateSymbol.d.ts.map +1 -0
- package/lib/models/httpInstrumentationStateSymbol.js +2 -0
- package/lib/models/httpInstrumentationStateSymbol.js.map +1 -0
- package/lib/models/httpInstrumentedHandlerSymbol.d.ts +2 -0
- package/lib/models/httpInstrumentedHandlerSymbol.d.ts.map +1 -0
- package/lib/models/httpInstrumentedHandlerSymbol.js +2 -0
- package/lib/models/httpInstrumentedHandlerSymbol.js.map +1 -0
- package/package.json +1 -1
- package/.lintstagedrc.json +0 -4
- package/CHANGELOG.md +0 -7
- package/eslint.config.mjs +0 -23
- package/prettier.config.mjs +0 -3
- package/src/actions/emitHttpInstrumentationEvent.spec.ts +0 -130
- package/src/actions/emitHttpInstrumentationEvent.ts +0 -28
- package/src/actions/httpInstrumentationState.spec.ts +0 -49
- package/src/actions/httpInstrumentationState.ts +0 -93
- package/src/actions/markHttpInstrumentedHandler.ts +0 -16
- package/src/actions/runInstrumentedHttpStage.ts +0 -76
- package/src/calculations/buildHttpInstrumentationContext.spec.ts +0 -37
- package/src/calculations/buildHttpInstrumentationContext.ts +0 -17
- package/src/calculations/redactHttpHeaders.spec.ts +0 -36
- package/src/calculations/redactHttpHeaders.ts +0 -38
- package/src/calculations/startHttpStage.ts +0 -12
- package/src/index.ts +0 -26
- package/src/models/EventSink.ts +0 -3
- package/src/models/HttpInstrumentationContext.ts +0 -7
- package/src/models/HttpInstrumentationEvent.ts +0 -187
- package/src/models/HttpInstrumentationScope.ts +0 -5
- package/src/models/HttpStageClock.ts +0 -4
- package/src/models/httpInstrumentationStateSymbol.ts +0 -8
- package/src/models/httpInstrumentedHandlerSymbol.ts +0 -3
- package/stryker.config.mjs +0 -3
- package/tsconfig.esm.json +0 -11
- package/tsconfig.json +0 -4
- package/vitest.config.mjs +0 -3
- package/vitest.config.stryker.mjs +0 -3
package/.npmignore
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/.turbo
|
|
2
|
+
/coverage
|
|
3
|
+
/reports
|
|
4
|
+
|
|
5
|
+
**/*.ts
|
|
6
|
+
!lib/**/*.d.ts
|
|
7
|
+
**/*.spec.d.ts
|
|
8
|
+
**/*.spec.js
|
|
9
|
+
**/*.spec.js.map
|
|
10
|
+
**/*.spec.d.ts.map
|
|
11
|
+
**/*.spec-d.js
|
|
12
|
+
**/*.spec-d.d.ts
|
|
13
|
+
**/*.spec-d.js.map
|
|
14
|
+
**/*.spec-d.d.ts.map
|
|
15
|
+
|
|
16
|
+
AGENTS.md
|
|
17
|
+
CHANGELOG.md
|
|
18
|
+
.lintstagedrc.json
|
|
19
|
+
eslint.config.mjs
|
|
20
|
+
vitest.config.mjs
|
|
21
|
+
vitest.config.stryker.mjs
|
|
22
|
+
prettier.config.mjs
|
|
23
|
+
stryker.config.mjs
|
|
24
|
+
tsconfig.esm.json
|
|
25
|
+
tsconfig.esm.tsbuildinfo
|
|
26
|
+
tsconfig.json
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type EventSink } from '../models/EventSink.js';
|
|
2
|
+
import { type HttpInstrumentationEvent } from '../models/HttpInstrumentationEvent.js';
|
|
3
|
+
export declare function emitHttpInstrumentationEvent(sinks: readonly EventSink<HttpInstrumentationEvent>[], event: HttpInstrumentationEvent, reportSinkError: (error: unknown) => void): void;
|
|
4
|
+
//# sourceMappingURL=emitHttpInstrumentationEvent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emitHttpInstrumentationEvent.d.ts","sourceRoot":"","sources":["../../src/actions/emitHttpInstrumentationEvent.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAEtF,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,SAAS,SAAS,CAAC,wBAAwB,CAAC,EAAE,EACrD,KAAK,EAAE,wBAAwB,EAC/B,eAAe,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GACxC,IAAI,CAkBN"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { isPromise } from '@inversifyjs/common';
|
|
2
|
+
export function emitHttpInstrumentationEvent(sinks, event, reportSinkError) {
|
|
3
|
+
const publishedEvent = Object.freeze(event);
|
|
4
|
+
for (const sink of sinks) {
|
|
5
|
+
try {
|
|
6
|
+
// EventSink.emit is typed as void, and an async implementation still type-checks.
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/no-confusing-void-expression
|
|
8
|
+
const result = sink.emit(publishedEvent);
|
|
9
|
+
if (isPromise(result)) {
|
|
10
|
+
void result.then(undefined, (error) => {
|
|
11
|
+
reportSinkError(error);
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
catch (error) {
|
|
16
|
+
reportSinkError(error);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=emitHttpInstrumentationEvent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emitHttpInstrumentationEvent.js","sourceRoot":"","sources":["../../src/actions/emitHttpInstrumentationEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAKhD,MAAM,UAAU,4BAA4B,CAC1C,KAAqD,EACrD,KAA+B,EAC/B,eAAyC;IAEzC,MAAM,cAAc,GAA6B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEtE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,kFAAkF;YAClF,2EAA2E;YAC3E,MAAM,MAAM,GAAY,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAElD,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtB,KAAK,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,KAAc,EAAQ,EAAE;oBACnD,eAAe,CAAC,KAAK,CAAC,CAAC;gBACzB,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,eAAe,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type HttpInstrumentationScope } from '../models/HttpInstrumentationScope.js';
|
|
2
|
+
export declare function initializeHttpInstrumentationRequest(request: object, requestId: string): void;
|
|
3
|
+
export declare function openHttpInstrumentationScope(request: object, executionId: string): HttpInstrumentationScope;
|
|
4
|
+
export declare function closeHttpInstrumentationScope(request: object, executionId: string): void;
|
|
5
|
+
//# sourceMappingURL=httpInstrumentationState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"httpInstrumentationState.d.ts","sourceRoot":"","sources":["../../src/actions/httpInstrumentationState.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAUtF,wBAAgB,oCAAoC,CAClD,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,IAAI,CAWN;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAClB,wBAAwB,CAY1B;AAED,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAClB,IAAI,CAeN"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { randomUUID } from 'node:crypto';
|
|
2
|
+
import { httpInstrumentationStateSymbol, } from '../models/httpInstrumentationStateSymbol.js';
|
|
3
|
+
export function initializeHttpInstrumentationRequest(request, requestId) {
|
|
4
|
+
const carrier = request;
|
|
5
|
+
if (carrier[httpInstrumentationStateSymbol] !== undefined) {
|
|
6
|
+
return;
|
|
7
|
+
}
|
|
8
|
+
carrier[httpInstrumentationStateSymbol] = {
|
|
9
|
+
executionStack: [],
|
|
10
|
+
requestId,
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export function openHttpInstrumentationScope(request, executionId) {
|
|
14
|
+
const state = getOrCreateHttpInstrumentationState(request);
|
|
15
|
+
const parentExecutionId = state.executionStack.at(-1);
|
|
16
|
+
state.executionStack.push(executionId);
|
|
17
|
+
return {
|
|
18
|
+
executionId,
|
|
19
|
+
parentExecutionId,
|
|
20
|
+
requestId: state.requestId,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export function closeHttpInstrumentationScope(request, executionId) {
|
|
24
|
+
const state = readHttpInstrumentationState(request);
|
|
25
|
+
if (state === undefined) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const executionIndex = state.executionStack.lastIndexOf(executionId);
|
|
29
|
+
if (executionIndex === -1) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
state.executionStack.splice(executionIndex, 1);
|
|
33
|
+
}
|
|
34
|
+
function getOrCreateHttpInstrumentationState(request) {
|
|
35
|
+
const carrier = request;
|
|
36
|
+
const state = carrier[httpInstrumentationStateSymbol];
|
|
37
|
+
if (state !== undefined) {
|
|
38
|
+
return state;
|
|
39
|
+
}
|
|
40
|
+
const createdState = {
|
|
41
|
+
executionStack: [],
|
|
42
|
+
requestId: randomUUID(),
|
|
43
|
+
};
|
|
44
|
+
carrier[httpInstrumentationStateSymbol] = createdState;
|
|
45
|
+
return createdState;
|
|
46
|
+
}
|
|
47
|
+
function readHttpInstrumentationState(request) {
|
|
48
|
+
return request[httpInstrumentationStateSymbol];
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=httpInstrumentationState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"httpInstrumentationState.js","sourceRoot":"","sources":["../../src/actions/httpInstrumentationState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,EAEL,8BAA8B,GAC/B,MAAM,6CAA6C,CAAC;AAMrD,MAAM,UAAU,oCAAoC,CAClD,OAAe,EACf,SAAiB;IAEjB,MAAM,OAAO,GAAoC,OAAO,CAAC;IAEzD,IAAI,OAAO,CAAC,8BAA8B,CAAC,KAAK,SAAS,EAAE,CAAC;QAC1D,OAAO;IACT,CAAC;IAED,OAAO,CAAC,8BAA8B,CAAC,GAAG;QACxC,cAAc,EAAE,EAAE;QAClB,SAAS;KACV,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,OAAe,EACf,WAAmB;IAEnB,MAAM,KAAK,GACT,mCAAmC,CAAC,OAAO,CAAC,CAAC;IAC/C,MAAM,iBAAiB,GAAuB,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAE1E,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAEvC,OAAO;QACL,WAAW;QACX,iBAAiB;QACjB,SAAS,EAAE,KAAK,CAAC,SAAS;KAC3B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,OAAe,EACf,WAAmB;IAEnB,MAAM,KAAK,GACT,4BAA4B,CAAC,OAAO,CAAC,CAAC;IAExC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO;IACT,CAAC;IAED,MAAM,cAAc,GAAW,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAE7E,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE,CAAC;QAC1B,OAAO;IACT,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,mCAAmC,CAC1C,OAAe;IAEf,MAAM,OAAO,GAAoC,OAAO,CAAC;IACzD,MAAM,KAAK,GACT,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAE1C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,YAAY,GAA6B;QAC7C,cAAc,EAAE,EAAE;QAClB,SAAS,EAAE,UAAU,EAAE;KACxB,CAAC;IAEF,OAAO,CAAC,8BAA8B,CAAC,GAAG,YAAY,CAAC;IAEvD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,4BAA4B,CACnC,OAAe;IAEf,OAAQ,OAA2C,CACjD,8BAA8B,CAC/B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markHttpInstrumentedHandler.d.ts","sourceRoot":"","sources":["../../src/actions/markHttpInstrumentedHandler.ts"],"names":[],"mappings":"AAEA,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAOjE;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAIlE"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { httpInstrumentedHandlerSymbol } from '../models/httpInstrumentedHandlerSymbol.js';
|
|
2
|
+
export function markHttpInstrumentedHandler(handler) {
|
|
3
|
+
Object.defineProperty(handler, httpInstrumentedHandlerSymbol, {
|
|
4
|
+
configurable: false,
|
|
5
|
+
enumerable: false,
|
|
6
|
+
value: true,
|
|
7
|
+
writable: false,
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
export function isHttpInstrumentedHandler(handler) {
|
|
11
|
+
const record = handler;
|
|
12
|
+
return record[httpInstrumentedHandlerSymbol] === true;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=markHttpInstrumentedHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markHttpInstrumentedHandler.js","sourceRoot":"","sources":["../../src/actions/markHttpInstrumentedHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,4CAA4C,CAAC;AAE3F,MAAM,UAAU,2BAA2B,CAAC,OAAe;IACzD,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,6BAA6B,EAAE;QAC5D,YAAY,EAAE,KAAK;QACnB,UAAU,EAAE,KAAK;QACjB,KAAK,EAAE,IAAI;QACX,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,OAAe;IACvD,MAAM,MAAM,GAA4B,OAAkC,CAAC;IAE3E,OAAO,MAAM,CAAC,6BAA6B,CAAC,KAAK,IAAI,CAAC;AACxD,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type HttpInstrumentationContext } from '../models/HttpInstrumentationContext.js';
|
|
2
|
+
import { type HttpInstrumentationEvent } from '../models/HttpInstrumentationEvent.js';
|
|
3
|
+
import { type HttpInstrumentationScope } from '../models/HttpInstrumentationScope.js';
|
|
4
|
+
import { type HttpStageClock } from '../models/HttpStageClock.js';
|
|
5
|
+
export type HttpStageOutcome<TResult> = {
|
|
6
|
+
readonly error: unknown;
|
|
7
|
+
} | {
|
|
8
|
+
readonly result: TResult;
|
|
9
|
+
};
|
|
10
|
+
export declare function runInstrumentedHttpStage<TResult>(instrumentation: HttpInstrumentationContext, request: object, createStartedEvent: (scope: HttpInstrumentationScope, stage: HttpStageClock) => HttpInstrumentationEvent, operation: () => Promise<TResult>, createExecutedEvent: (scope: HttpInstrumentationScope, stage: HttpStageClock, outcome: HttpStageOutcome<TResult>) => HttpInstrumentationEvent, recover: (error: unknown) => Promise<TResult>): Promise<TResult>;
|
|
11
|
+
//# sourceMappingURL=runInstrumentedHttpStage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runInstrumentedHttpStage.d.ts","sourceRoot":"","sources":["../../src/actions/runInstrumentedHttpStage.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AAC1F,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACtF,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACtF,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAOlE,MAAM,MAAM,gBAAgB,CAAC,OAAO,IAChC;IACE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB,GACD;IACE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEN,wBAAsB,wBAAwB,CAAC,OAAO,EACpD,eAAe,EAAE,0BAA0B,EAC3C,OAAO,EAAE,MAAM,EACf,kBAAkB,EAAE,CAClB,KAAK,EAAE,wBAAwB,EAC/B,KAAK,EAAE,cAAc,KAClB,wBAAwB,EAC7B,SAAS,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,EACjC,mBAAmB,EAAE,CACnB,KAAK,EAAE,wBAAwB,EAC/B,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,KAC/B,wBAAwB,EAC7B,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,GAC5C,OAAO,CAAC,OAAO,CAAC,CAwClB"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { randomUUID } from 'node:crypto';
|
|
2
|
+
import { startHttpStage } from '../calculations/startHttpStage.js';
|
|
3
|
+
import { emitHttpInstrumentationEvent } from './emitHttpInstrumentationEvent.js';
|
|
4
|
+
import { closeHttpInstrumentationScope, openHttpInstrumentationScope, } from './httpInstrumentationState.js';
|
|
5
|
+
export async function runInstrumentedHttpStage(instrumentation, request, createStartedEvent, operation, createExecutedEvent, recover) {
|
|
6
|
+
const scope = openHttpInstrumentationScope(request, randomUUID());
|
|
7
|
+
const stage = startHttpStage();
|
|
8
|
+
try {
|
|
9
|
+
emitHttpInstrumentationEvent(instrumentation.sinks, createStartedEvent(scope, stage), instrumentation.reportSinkError);
|
|
10
|
+
try {
|
|
11
|
+
const result = await operation();
|
|
12
|
+
emitHttpInstrumentationEvent(instrumentation.sinks, createExecutedEvent(scope, stage, {
|
|
13
|
+
result,
|
|
14
|
+
}), instrumentation.reportSinkError);
|
|
15
|
+
return result;
|
|
16
|
+
}
|
|
17
|
+
catch (error) {
|
|
18
|
+
emitHttpInstrumentationEvent(instrumentation.sinks, createExecutedEvent(scope, stage, {
|
|
19
|
+
error,
|
|
20
|
+
}), instrumentation.reportSinkError);
|
|
21
|
+
return await recover(error);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
finally {
|
|
25
|
+
closeHttpInstrumentationScope(request, scope.executionId);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=runInstrumentedHttpStage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runInstrumentedHttpStage.js","sourceRoot":"","sources":["../../src/actions/runInstrumentedHttpStage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAKnE,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,GAC7B,MAAM,+BAA+B,CAAC;AAUvC,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,eAA2C,EAC3C,OAAe,EACf,kBAG6B,EAC7B,SAAiC,EACjC,mBAI6B,EAC7B,OAA6C;IAE7C,MAAM,KAAK,GAA6B,4BAA4B,CAClE,OAAO,EACP,UAAU,EAAE,CACb,CAAC;IACF,MAAM,KAAK,GAAmB,cAAc,EAAE,CAAC;IAE/C,IAAI,CAAC;QACH,4BAA4B,CAC1B,eAAe,CAAC,KAAK,EACrB,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,EAChC,eAAe,CAAC,eAAe,CAChC,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,MAAM,GAAY,MAAM,SAAS,EAAE,CAAC;YAE1C,4BAA4B,CAC1B,eAAe,CAAC,KAAK,EACrB,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE;gBAChC,MAAM;aACP,CAAC,EACF,eAAe,CAAC,eAAe,CAChC,CAAC;YAEF,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,4BAA4B,CAC1B,eAAe,CAAC,KAAK,EACrB,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE;gBAChC,KAAK;aACN,CAAC,EACF,eAAe,CAAC,eAAe,CAChC,CAAC;YAEF,OAAO,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;YAAS,CAAC;QACT,6BAA6B,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type EventSink } from '../models/EventSink.js';
|
|
2
|
+
import { type HttpInstrumentationContext } from '../models/HttpInstrumentationContext.js';
|
|
3
|
+
import { type HttpInstrumentationEvent } from '../models/HttpInstrumentationEvent.js';
|
|
4
|
+
export declare function buildHttpInstrumentationContext(sinks: readonly EventSink<HttpInstrumentationEvent>[] | undefined, reportSinkError: (error: unknown) => void): HttpInstrumentationContext | undefined;
|
|
5
|
+
//# sourceMappingURL=buildHttpInstrumentationContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildHttpInstrumentationContext.d.ts","sourceRoot":"","sources":["../../src/calculations/buildHttpInstrumentationContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AAC1F,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAEtF,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,SAAS,SAAS,CAAC,wBAAwB,CAAC,EAAE,GAAG,SAAS,EACjE,eAAe,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GACxC,0BAA0B,GAAG,SAAS,CASxC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildHttpInstrumentationContext.js","sourceRoot":"","sources":["../../src/calculations/buildHttpInstrumentationContext.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,+BAA+B,CAC7C,KAAiE,EACjE,eAAyC;IAEzC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,eAAe;QACf,KAAK;KACN,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redactHttpHeaders.d.ts","sourceRoot":"","sources":["../../src/calculations/redactHttpHeaders.ts"],"names":[],"mappings":"AAWA,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,QAAQ,CACf,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC,CAChE,GACA,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC,CAsB5C"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
const REDACTED_HEADER_VALUE = '[redacted]';
|
|
2
|
+
const REDACTED_HTTP_HEADER_NAMES = new Set([
|
|
3
|
+
'authorization',
|
|
4
|
+
'cookie',
|
|
5
|
+
'proxy-authorization',
|
|
6
|
+
'set-cookie',
|
|
7
|
+
'x-api-key',
|
|
8
|
+
'x-auth-token',
|
|
9
|
+
]);
|
|
10
|
+
export function redactHttpHeaders(headers) {
|
|
11
|
+
const redactedHeaders = {};
|
|
12
|
+
for (const key in headers) {
|
|
13
|
+
if (!Object.hasOwn(headers, key)) {
|
|
14
|
+
continue;
|
|
15
|
+
}
|
|
16
|
+
const value = headers[key];
|
|
17
|
+
if (value === undefined) {
|
|
18
|
+
continue;
|
|
19
|
+
}
|
|
20
|
+
redactedHeaders[key] = REDACTED_HTTP_HEADER_NAMES.has(key.toLowerCase())
|
|
21
|
+
? REDACTED_HEADER_VALUE
|
|
22
|
+
: typeof value === 'number'
|
|
23
|
+
? value.toString()
|
|
24
|
+
: value;
|
|
25
|
+
}
|
|
26
|
+
return Object.freeze(redactedHeaders);
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=redactHttpHeaders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redactHttpHeaders.js","sourceRoot":"","sources":["../../src/calculations/redactHttpHeaders.ts"],"names":[],"mappings":"AAAA,MAAM,qBAAqB,GAAW,YAAY,CAAC;AAEnD,MAAM,0BAA0B,GAAwB,IAAI,GAAG,CAAC;IAC9D,eAAe;IACf,QAAQ;IACR,qBAAqB;IACrB,YAAY;IACZ,WAAW;IACX,cAAc;CACf,CAAC,CAAC;AAEH,MAAM,UAAU,iBAAiB,CAC/B,OAEC;IAED,MAAM,eAAe,GAA+C,EAAE,CAAC;IAEvE,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC;YACjC,SAAS;QACX,CAAC;QAED,MAAM,KAAK,GAAoD,OAAO,CAAC,GAAG,CAAC,CAAC;QAE5E,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,SAAS;QACX,CAAC;QAED,eAAe,CAAC,GAAG,CAAC,GAAG,0BAA0B,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YACtE,CAAC,CAAC,qBAAqB;YACvB,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ;gBACzB,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE;gBAClB,CAAC,CAAC,KAAK,CAAC;IACd,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AACxC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"startHttpStage.d.ts","sourceRoot":"","sources":["../../src/calculations/startHttpStage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAElE,wBAAgB,cAAc,IAAI,cAAc,CAK/C;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAEnE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"startHttpStage.js","sourceRoot":"","sources":["../../src/calculations/startHttpStage.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,cAAc;IAC5B,OAAO;QACL,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,SAAS,EAAE,WAAW,CAAC,GAAG,EAAE;KAC7B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAqB;IACzD,OAAO,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC;AAC7C,CAAC"}
|
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export { emitHttpInstrumentationEvent } from './actions/emitHttpInstrumentationEvent.js';
|
|
2
|
+
export { closeHttpInstrumentationScope, initializeHttpInstrumentationRequest, openHttpInstrumentationScope, } from './actions/httpInstrumentationState.js';
|
|
3
|
+
export { isHttpInstrumentedHandler, markHttpInstrumentedHandler, } from './actions/markHttpInstrumentedHandler.js';
|
|
4
|
+
export { type HttpStageOutcome, runInstrumentedHttpStage, } from './actions/runInstrumentedHttpStage.js';
|
|
5
|
+
export { buildHttpInstrumentationContext } from './calculations/buildHttpInstrumentationContext.js';
|
|
6
|
+
export { redactHttpHeaders } from './calculations/redactHttpHeaders.js';
|
|
7
|
+
export { readHttpStageDuration, startHttpStage, } from './calculations/startHttpStage.js';
|
|
8
|
+
export { type EventSink } from './models/EventSink.js';
|
|
9
|
+
export { type HttpInstrumentationContext } from './models/HttpInstrumentationContext.js';
|
|
10
|
+
export { type BaseEvent, type HttpControllerExecutedEvent, type HttpControllerStartedEvent, type HttpErrorEvent, type HttpGuardExecutedEvent, type HttpGuardStartedEvent, type HttpInstrumentationEvent, type HttpInterceptorExecutedEvent, type HttpInterceptorStartedEvent, type HttpMiddlewareExecutedEvent, type HttpMiddlewareStartedEvent, type HttpNativeMiddlewareExecutedEvent, type HttpNativeMiddlewareStartedEvent, type HttpPipeExecutedEvent, type HttpPipeStartedEvent, type HttpRequestStartedEvent, type HttpResponseSentEvent, } from './models/HttpInstrumentationEvent.js';
|
|
11
|
+
export { type HttpInstrumentationScope } from './models/HttpInstrumentationScope.js';
|
|
12
|
+
export { httpInstrumentedHandlerSymbol } from './models/httpInstrumentedHandlerSymbol.js';
|
|
13
|
+
export { type HttpStageClock } from './models/HttpStageClock.js';
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,2CAA2C,CAAC;AACzF,OAAO,EACL,6BAA6B,EAC7B,oCAAoC,EACpC,4BAA4B,GAC7B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,yBAAyB,EACzB,2BAA2B,GAC5B,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACL,KAAK,gBAAgB,EACrB,wBAAwB,GACzB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,+BAA+B,EAAE,MAAM,mDAAmD,CAAC;AACpG,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EACL,qBAAqB,EACrB,cAAc,GACf,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AACzF,OAAO,EACL,KAAK,SAAS,EACd,KAAK,2BAA2B,EAChC,KAAK,0BAA0B,EAC/B,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,EAC7B,KAAK,4BAA4B,EACjC,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,EAChC,KAAK,0BAA0B,EAC/B,KAAK,iCAAiC,EACtC,KAAK,gCAAgC,EACrC,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,GAC3B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AACrF,OAAO,EAAE,6BAA6B,EAAE,MAAM,2CAA2C,CAAC;AAC1F,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,4BAA4B,CAAC"}
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { emitHttpInstrumentationEvent } from './actions/emitHttpInstrumentationEvent.js';
|
|
2
|
+
export { closeHttpInstrumentationScope, initializeHttpInstrumentationRequest, openHttpInstrumentationScope, } from './actions/httpInstrumentationState.js';
|
|
3
|
+
export { isHttpInstrumentedHandler, markHttpInstrumentedHandler, } from './actions/markHttpInstrumentedHandler.js';
|
|
4
|
+
export { runInstrumentedHttpStage, } from './actions/runInstrumentedHttpStage.js';
|
|
5
|
+
export { buildHttpInstrumentationContext } from './calculations/buildHttpInstrumentationContext.js';
|
|
6
|
+
export { redactHttpHeaders } from './calculations/redactHttpHeaders.js';
|
|
7
|
+
export { readHttpStageDuration, startHttpStage, } from './calculations/startHttpStage.js';
|
|
8
|
+
export { httpInstrumentedHandlerSymbol } from './models/httpInstrumentedHandlerSymbol.js';
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,2CAA2C,CAAC;AACzF,OAAO,EACL,6BAA6B,EAC7B,oCAAoC,EACpC,4BAA4B,GAC7B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,yBAAyB,EACzB,2BAA2B,GAC5B,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAEL,wBAAwB,GACzB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,+BAA+B,EAAE,MAAM,mDAAmD,CAAC;AACpG,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EACL,qBAAqB,EACrB,cAAc,GACf,MAAM,kCAAkC,CAAC;AAuB1C,OAAO,EAAE,6BAA6B,EAAE,MAAM,2CAA2C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventSink.d.ts","sourceRoot":"","sources":["../../src/models/EventSink.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS,CAAC,MAAM;IAC/B,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventSink.js","sourceRoot":"","sources":["../../src/models/EventSink.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type EventSink } from './EventSink.js';
|
|
2
|
+
import { type HttpInstrumentationEvent } from './HttpInstrumentationEvent.js';
|
|
3
|
+
export interface HttpInstrumentationContext {
|
|
4
|
+
readonly reportSinkError: (error: unknown) => void;
|
|
5
|
+
readonly sinks: readonly EventSink<HttpInstrumentationEvent>[];
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=HttpInstrumentationContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HttpInstrumentationContext.d.ts","sourceRoot":"","sources":["../../src/models/HttpInstrumentationContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAE9E,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnD,QAAQ,CAAC,KAAK,EAAE,SAAS,SAAS,CAAC,wBAAwB,CAAC,EAAE,CAAC;CAChE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HttpInstrumentationContext.js","sourceRoot":"","sources":["../../src/models/HttpInstrumentationContext.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { type MiddlewarePhase } from '@inversifyjs/framework-core';
|
|
2
|
+
export interface BaseEvent<TType extends string> {
|
|
3
|
+
readonly executionId: string;
|
|
4
|
+
readonly parentExecutionId?: string;
|
|
5
|
+
readonly requestId: string;
|
|
6
|
+
readonly timestamp: number;
|
|
7
|
+
readonly type: TType;
|
|
8
|
+
}
|
|
9
|
+
export interface HttpControllerExecutedEvent extends BaseEvent<'http.controller.executed'> {
|
|
10
|
+
readonly controller: string;
|
|
11
|
+
readonly duration: number;
|
|
12
|
+
readonly error?: unknown;
|
|
13
|
+
readonly method: string;
|
|
14
|
+
readonly startedAt: number;
|
|
15
|
+
}
|
|
16
|
+
export interface HttpControllerStartedEvent extends BaseEvent<'http.controller.started'> {
|
|
17
|
+
readonly controller: string;
|
|
18
|
+
readonly method: string;
|
|
19
|
+
}
|
|
20
|
+
export interface HttpErrorEvent extends BaseEvent<'http.error'> {
|
|
21
|
+
readonly duration: number;
|
|
22
|
+
readonly error: unknown;
|
|
23
|
+
readonly filter?: string;
|
|
24
|
+
readonly startedAt: number;
|
|
25
|
+
}
|
|
26
|
+
export interface HttpGuardExecutedEvent extends BaseEvent<'http.guard.executed'> {
|
|
27
|
+
readonly allowed?: boolean;
|
|
28
|
+
readonly duration: number;
|
|
29
|
+
readonly error?: unknown;
|
|
30
|
+
readonly guard: string;
|
|
31
|
+
readonly startedAt: number;
|
|
32
|
+
}
|
|
33
|
+
export interface HttpGuardStartedEvent extends BaseEvent<'http.guard.started'> {
|
|
34
|
+
readonly guard: string;
|
|
35
|
+
}
|
|
36
|
+
export interface HttpInterceptorExecutedEvent extends BaseEvent<'http.interceptor.executed'> {
|
|
37
|
+
readonly duration: number;
|
|
38
|
+
readonly error?: unknown;
|
|
39
|
+
readonly interceptor: string;
|
|
40
|
+
readonly startedAt: number;
|
|
41
|
+
}
|
|
42
|
+
export interface HttpInterceptorStartedEvent extends BaseEvent<'http.interceptor.started'> {
|
|
43
|
+
readonly interceptor: string;
|
|
44
|
+
}
|
|
45
|
+
export interface HttpMiddlewareExecutedEvent extends BaseEvent<'http.middleware.executed'> {
|
|
46
|
+
readonly duration: number;
|
|
47
|
+
readonly error?: unknown;
|
|
48
|
+
readonly middleware: string;
|
|
49
|
+
readonly phase: MiddlewarePhase;
|
|
50
|
+
readonly startedAt: number;
|
|
51
|
+
}
|
|
52
|
+
export interface HttpMiddlewareStartedEvent extends BaseEvent<'http.middleware.started'> {
|
|
53
|
+
readonly middleware: string;
|
|
54
|
+
readonly phase: MiddlewarePhase;
|
|
55
|
+
}
|
|
56
|
+
export interface HttpNativeMiddlewareExecutedEvent extends BaseEvent<'http.nativeMiddleware.executed'> {
|
|
57
|
+
readonly duration: number;
|
|
58
|
+
readonly error?: unknown;
|
|
59
|
+
readonly name: string;
|
|
60
|
+
readonly startedAt: number;
|
|
61
|
+
}
|
|
62
|
+
export interface HttpNativeMiddlewareStartedEvent extends BaseEvent<'http.nativeMiddleware.started'> {
|
|
63
|
+
readonly name: string;
|
|
64
|
+
}
|
|
65
|
+
export interface HttpPipeExecutedEvent extends BaseEvent<'http.pipe.executed'> {
|
|
66
|
+
readonly duration: number;
|
|
67
|
+
readonly error?: unknown;
|
|
68
|
+
readonly method: string;
|
|
69
|
+
readonly parameterIndex: number;
|
|
70
|
+
readonly pipe: string;
|
|
71
|
+
readonly startedAt: number;
|
|
72
|
+
}
|
|
73
|
+
export interface HttpPipeStartedEvent extends BaseEvent<'http.pipe.started'> {
|
|
74
|
+
readonly method: string;
|
|
75
|
+
readonly parameterIndex: number;
|
|
76
|
+
readonly pipe: string;
|
|
77
|
+
}
|
|
78
|
+
export interface HttpRequestStartedEvent extends BaseEvent<'http.request.started'> {
|
|
79
|
+
readonly headers: Readonly<Record<string, string | readonly string[]>>;
|
|
80
|
+
readonly method: string;
|
|
81
|
+
readonly url: string;
|
|
82
|
+
}
|
|
83
|
+
export interface HttpResponseSentEvent extends BaseEvent<'http.response.sent'> {
|
|
84
|
+
readonly aborted: boolean;
|
|
85
|
+
readonly duration: number;
|
|
86
|
+
readonly headers: Readonly<Record<string, string | readonly string[]>>;
|
|
87
|
+
readonly startedAt: number;
|
|
88
|
+
readonly statusCode: number;
|
|
89
|
+
}
|
|
90
|
+
export type HttpInstrumentationEvent = HttpControllerExecutedEvent | HttpControllerStartedEvent | HttpErrorEvent | HttpGuardExecutedEvent | HttpGuardStartedEvent | HttpInterceptorExecutedEvent | HttpInterceptorStartedEvent | HttpMiddlewareExecutedEvent | HttpMiddlewareStartedEvent | HttpNativeMiddlewareExecutedEvent | HttpNativeMiddlewareStartedEvent | HttpPipeExecutedEvent | HttpPipeStartedEvent | HttpRequestStartedEvent | HttpResponseSentEvent;
|
|
91
|
+
//# sourceMappingURL=HttpInstrumentationEvent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HttpInstrumentationEvent.d.ts","sourceRoot":"","sources":["../../src/models/HttpInstrumentationEvent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HttpInstrumentationEvent.js","sourceRoot":"","sources":["../../src/models/HttpInstrumentationEvent.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HttpInstrumentationScope.d.ts","sourceRoot":"","sources":["../../src/models/HttpInstrumentationScope.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HttpInstrumentationScope.js","sourceRoot":"","sources":["../../src/models/HttpInstrumentationScope.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HttpStageClock.d.ts","sourceRoot":"","sources":["../../src/models/HttpStageClock.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HttpStageClock.js","sourceRoot":"","sources":["../../src/models/HttpStageClock.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"httpInstrumentationStateSymbol.d.ts","sourceRoot":"","sources":["../../src/models/httpInstrumentationStateSymbol.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,8BAA8B,EAAE,OAAO,MAEnD,CAAC;AAEF,MAAM,WAAW,wBAAwB;IACvC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"httpInstrumentationStateSymbol.js","sourceRoot":"","sources":["../../src/models/httpInstrumentationStateSymbol.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,8BAA8B,GAAkB,MAAM,CAAC,GAAG,CACrE,iEAAiE,CAClE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"httpInstrumentedHandlerSymbol.d.ts","sourceRoot":"","sources":["../../src/models/httpInstrumentedHandlerSymbol.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,6BAA6B,EAAE,OAAO,MAElD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"httpInstrumentedHandlerSymbol.js","sourceRoot":"","sources":["../../src/models/httpInstrumentedHandlerSymbol.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,6BAA6B,GAAkB,MAAM,CAAC,GAAG,CACpE,gEAAgE,CACjE,CAAC"}
|
package/package.json
CHANGED
package/.lintstagedrc.json
DELETED
package/CHANGELOG.md
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
# @inversifyjs/http-instrumentation-core
|
|
2
|
-
|
|
3
|
-
## 5.7.0
|
|
4
|
-
|
|
5
|
-
### Minor Changes
|
|
6
|
-
|
|
7
|
-
Add optional HTTP instrumentation sinks. Event types and the sink live in `@inversifyjs/http-instrumentation-core`. Adapters emit pipeline events only when at least one sink is configured. The Express 5 adapter also records native middleware, and the Express 5, Fastify, Hono, and uWebSockets adapters record request and response headers and status.
|