@multiplayer-app/session-recorder-common 0.0.1 → 0.0.3
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/README.md +4 -2
- package/dist/esm/SessionRecorderHttpInstrumentationHooksNode.d.ts +4 -2
- package/dist/esm/SessionRecorderHttpInstrumentationHooksNode.d.ts.map +1 -1
- package/dist/esm/SessionRecorderHttpInstrumentationHooksNode.js +78 -75
- package/dist/esm/SessionRecorderHttpInstrumentationHooksNode.js.map +1 -1
- package/dist/esm/sdk/capture-exception.d.ts.map +1 -1
- package/dist/esm/sdk/id-generator.d.ts.map +1 -1
- package/dist/esm/sdk/is-gzip.d.ts.map +1 -1
- package/dist/esm/sdk/mask.d.ts.map +1 -1
- package/dist/esm/sdk/save-continuous-deb-session.d.ts.map +1 -1
- package/dist/esm/sdk/schemify.d.ts.map +1 -1
- package/dist/esm/sdk/set-attribute.d.ts.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/esnext/SessionRecorderHttpInstrumentationHooksNode.d.ts +4 -2
- package/dist/esnext/SessionRecorderHttpInstrumentationHooksNode.d.ts.map +1 -1
- package/dist/esnext/SessionRecorderHttpInstrumentationHooksNode.js +40 -37
- package/dist/esnext/SessionRecorderHttpInstrumentationHooksNode.js.map +1 -1
- package/dist/esnext/sdk/capture-exception.d.ts.map +1 -1
- package/dist/esnext/sdk/id-generator.d.ts.map +1 -1
- package/dist/esnext/sdk/is-gzip.d.ts.map +1 -1
- package/dist/esnext/sdk/mask.d.ts.map +1 -1
- package/dist/esnext/sdk/save-continuous-deb-session.d.ts.map +1 -1
- package/dist/esnext/sdk/schemify.d.ts.map +1 -1
- package/dist/esnext/sdk/set-attribute.d.ts.map +1 -1
- package/dist/esnext/tsconfig.esnext.tsbuildinfo +1 -1
- package/dist/src/SessionRecorderHttpInstrumentationHooksNode.d.ts +4 -2
- package/dist/src/SessionRecorderHttpInstrumentationHooksNode.d.ts.map +1 -1
- package/dist/src/SessionRecorderHttpInstrumentationHooksNode.js +39 -36
- package/dist/src/SessionRecorderHttpInstrumentationHooksNode.js.map +1 -1
- package/dist/src/sdk/capture-exception.d.ts.map +1 -1
- package/dist/src/sdk/id-generator.d.ts.map +1 -1
- package/dist/src/sdk/is-gzip.d.ts.map +1 -1
- package/dist/src/sdk/mask.d.ts.map +1 -1
- package/dist/src/sdk/save-continuous-deb-session.d.ts.map +1 -1
- package/dist/src/sdk/schemify.d.ts.map +1 -1
- package/dist/src/sdk/set-attribute.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/SessionRecorderHttpInstrumentationHooksNode.ts +50 -42
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as zlib from 'zlib';
|
|
2
|
-
import { ATTR_MULTIPLAYER_HTTP_REQUEST_BODY, ATTR_MULTIPLAYER_HTTP_REQUEST_HEADERS, ATTR_MULTIPLAYER_HTTP_RESPONSE_BODY, ATTR_MULTIPLAYER_HTTP_RESPONSE_HEADERS, MULTIPLAYER_MAX_HTTP_REQUEST_RESPONSE_SIZE, ATTR_MULTIPLAYER_HTTP_RESPONSE_BODY_ENCODING, MULTIPLAYER_TRACE_DEBUG_PREFIX, } from './constants.node';
|
|
2
|
+
import { ATTR_MULTIPLAYER_HTTP_REQUEST_BODY, ATTR_MULTIPLAYER_HTTP_REQUEST_HEADERS, ATTR_MULTIPLAYER_HTTP_RESPONSE_BODY, ATTR_MULTIPLAYER_HTTP_RESPONSE_HEADERS, MULTIPLAYER_MAX_HTTP_REQUEST_RESPONSE_SIZE, ATTR_MULTIPLAYER_HTTP_RESPONSE_BODY_ENCODING, MULTIPLAYER_TRACE_DEBUG_PREFIX, MULTIPLAYER_TRACE_DOC_PREFIX } from './constants.node';
|
|
3
3
|
import { mask, schemify, isGzip, } from './sdk';
|
|
4
4
|
import { sensitiveFields, sensitiveHeaders } from './sdk/mask';
|
|
5
5
|
const setDefaultOptions = (options) => {
|
|
@@ -9,8 +9,11 @@ const setDefaultOptions = (options) => {
|
|
|
9
9
|
options.captureBody = 'captureBody' in options
|
|
10
10
|
? options.captureBody
|
|
11
11
|
: true;
|
|
12
|
-
options.
|
|
13
|
-
? options.
|
|
12
|
+
options.isMaskBodyEnabled = 'isMaskBodyEnabled' in options
|
|
13
|
+
? options.isMaskBodyEnabled
|
|
14
|
+
: true;
|
|
15
|
+
options.isMaskHeadersEnabled = 'isMaskHeadersEnabled' in options
|
|
16
|
+
? options.isMaskHeadersEnabled
|
|
14
17
|
: true;
|
|
15
18
|
options.schemifyDocSpanPayload = 'schemifyDocSpanPayload' in options
|
|
16
19
|
? options.schemifyDocSpanPayload
|
|
@@ -62,7 +65,7 @@ export const SessionRecorderHttpInstrumentationHooksNode = {
|
|
|
62
65
|
// eslint-disable-next-line
|
|
63
66
|
// @ts-ignore
|
|
64
67
|
_response.end = async function (...restArgs) {
|
|
65
|
-
var _a
|
|
68
|
+
var _a;
|
|
66
69
|
if (_options.captureBody && restArgs[0]) {
|
|
67
70
|
chunks.push(Buffer.from(restArgs[0]));
|
|
68
71
|
}
|
|
@@ -96,10 +99,11 @@ export const SessionRecorderHttpInstrumentationHooksNode = {
|
|
|
96
99
|
}
|
|
97
100
|
if (!skipResponseBodyModification) {
|
|
98
101
|
if (traceId.startsWith(MULTIPLAYER_TRACE_DEBUG_PREFIX)
|
|
99
|
-
&& _options.
|
|
102
|
+
&& _options.isMaskBodyEnabled) {
|
|
100
103
|
responseBody = _options.maskBody(responseBody, span);
|
|
101
104
|
}
|
|
102
|
-
else if (
|
|
105
|
+
else if (traceId.startsWith(MULTIPLAYER_TRACE_DOC_PREFIX)
|
|
106
|
+
&& _options.schemifyDocSpanPayload) {
|
|
103
107
|
responseBody = schemify(responseBody);
|
|
104
108
|
}
|
|
105
109
|
else if (typeof responseBody !== 'string') {
|
|
@@ -111,22 +115,21 @@ export const SessionRecorderHttpInstrumentationHooksNode = {
|
|
|
111
115
|
}
|
|
112
116
|
}
|
|
113
117
|
if (_options.captureHeaders) {
|
|
114
|
-
const headers =
|
|
118
|
+
const headers = (options.isMaskHeadersEnabled
|
|
119
|
+
? _options.maskHeaders(_response.getHeaders(), span)
|
|
120
|
+
: _response.getHeaders()) || {};
|
|
115
121
|
let _headers = {};
|
|
116
|
-
if (
|
|
117
|
-
|
|
118
|
-
|
|
122
|
+
if (_options.headersToInclude) {
|
|
123
|
+
for (const headerName of _options.headersToInclude) {
|
|
124
|
+
_headers[headerName] = headers[headerName];
|
|
125
|
+
}
|
|
119
126
|
}
|
|
120
127
|
else {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
if ((_c = _options.headersToExclude) === null || _c === void 0 ? void 0 : _c.length) {
|
|
127
|
-
for (const headerName of _options.headersToExclude) {
|
|
128
|
-
delete _headers[headerName];
|
|
129
|
-
}
|
|
128
|
+
_headers = JSON.parse(JSON.stringify(headers));
|
|
129
|
+
}
|
|
130
|
+
if ((_a = _options.headersToExclude) === null || _a === void 0 ? void 0 : _a.length) {
|
|
131
|
+
for (const headerName of _options.headersToExclude) {
|
|
132
|
+
delete _headers[headerName];
|
|
130
133
|
}
|
|
131
134
|
}
|
|
132
135
|
const stringifiedHeaders = JSON.stringify(_headers);
|
|
@@ -145,7 +148,7 @@ export const SessionRecorderHttpInstrumentationHooksNode = {
|
|
|
145
148
|
}
|
|
146
149
|
},
|
|
147
150
|
requestHook: (options = {}) => (span, request) => {
|
|
148
|
-
var _a, _b
|
|
151
|
+
var _a, _b;
|
|
149
152
|
try {
|
|
150
153
|
const _options = setDefaultOptions(options);
|
|
151
154
|
if (!_options.captureBody && !_options.captureHeaders) {
|
|
@@ -154,27 +157,26 @@ export const SessionRecorderHttpInstrumentationHooksNode = {
|
|
|
154
157
|
const traceId = span.spanContext().traceId;
|
|
155
158
|
const _request = request;
|
|
156
159
|
if (_options.captureHeaders) {
|
|
160
|
+
const headers = (_options.isMaskHeadersEnabled
|
|
161
|
+
? _options.maskHeaders(_request.headers, span)
|
|
162
|
+
: _request.headers) || {};
|
|
157
163
|
let _headers = {};
|
|
158
|
-
if (
|
|
159
|
-
|
|
160
|
-
|
|
164
|
+
if (_options.headersToInclude) {
|
|
165
|
+
for (const headerName of _options.headersToInclude) {
|
|
166
|
+
_headers[headerName] = headers[headerName];
|
|
167
|
+
}
|
|
161
168
|
}
|
|
162
169
|
else {
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
if ((_c = _options.headersToExclude) === null || _c === void 0 ? void 0 : _c.length) {
|
|
169
|
-
for (const headerName of _options.headersToExclude) {
|
|
170
|
-
delete _headers[headerName];
|
|
171
|
-
}
|
|
170
|
+
_headers = JSON.parse(JSON.stringify(headers));
|
|
171
|
+
}
|
|
172
|
+
if ((_a = _options.headersToExclude) === null || _a === void 0 ? void 0 : _a.length) {
|
|
173
|
+
for (const headerName of _options.headersToExclude) {
|
|
174
|
+
delete _headers[headerName];
|
|
172
175
|
}
|
|
173
176
|
}
|
|
174
|
-
|
|
175
|
-
span.setAttribute(ATTR_MULTIPLAYER_HTTP_REQUEST_HEADERS, JSON.stringify(headers));
|
|
177
|
+
span.setAttribute(ATTR_MULTIPLAYER_HTTP_REQUEST_HEADERS, JSON.stringify(_headers));
|
|
176
178
|
}
|
|
177
|
-
const contentType = (
|
|
179
|
+
const contentType = (_b = _request === null || _request === void 0 ? void 0 : _request.headers) === null || _b === void 0 ? void 0 : _b['content-type'];
|
|
178
180
|
if (_options.captureBody
|
|
179
181
|
&& (contentType === null || contentType === void 0 ? void 0 : contentType.includes('application/json'))) {
|
|
180
182
|
let body = '';
|
|
@@ -192,10 +194,11 @@ export const SessionRecorderHttpInstrumentationHooksNode = {
|
|
|
192
194
|
if (!requestBody)
|
|
193
195
|
return;
|
|
194
196
|
if (traceId.startsWith(MULTIPLAYER_TRACE_DEBUG_PREFIX)
|
|
195
|
-
&& _options.
|
|
197
|
+
&& _options.isMaskBodyEnabled) {
|
|
196
198
|
requestBody = _options.maskBody(requestBody, span);
|
|
197
199
|
}
|
|
198
|
-
else if (
|
|
200
|
+
else if (traceId.startsWith(MULTIPLAYER_TRACE_DOC_PREFIX)
|
|
201
|
+
&& _options.schemifyDocSpanPayload) {
|
|
199
202
|
requestBody = schemify(requestBody);
|
|
200
203
|
}
|
|
201
204
|
else if (typeof requestBody !== 'string') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionRecorderHttpInstrumentationHooksNode.js","sourceRoot":"","sources":["../../src/SessionRecorderHttpInstrumentationHooksNode.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n IncomingMessage,\n ServerResponse,\n ClientRequest,\n} from 'http'\nimport * as zlib from 'zlib'\nimport type { Span } from '@opentelemetry/api'\nimport {\n ATTR_MULTIPLAYER_HTTP_REQUEST_BODY,\n ATTR_MULTIPLAYER_HTTP_REQUEST_HEADERS,\n ATTR_MULTIPLAYER_HTTP_RESPONSE_BODY,\n ATTR_MULTIPLAYER_HTTP_RESPONSE_HEADERS,\n MULTIPLAYER_MAX_HTTP_REQUEST_RESPONSE_SIZE,\n ATTR_MULTIPLAYER_HTTP_RESPONSE_BODY_ENCODING,\n MULTIPLAYER_TRACE_DEBUG_PREFIX,\n} from './constants.node'\nimport {\n mask,\n schemify,\n isGzip,\n} from './sdk'\nimport {\n sensitiveFields,\n sensitiveHeaders\n} from './sdk/mask'\n\ninterface HttpResponseHookOptions {\n maxPayloadSizeBytes?: number\n schemifyDocSpanPayload?: boolean\n uncompressPayload?: boolean\n\n captureHeaders?: boolean\n captureBody?: boolean\n\n isMaskingEnabled?: boolean\n\n maskBody?: (arg: any, span: Span) => any\n maskHeaders?: (arg: any, span: Span) => any\n\n maskBodyFieldsList?: string[]\n maskHeadersList?: string[]\n\n headersToInclude?: string[]\n headersToExclude?: string[]\n}\n\ninterface HttpRequestHookOptions {\n maxPayloadSizeBytes?: number\n schemifyDocSpanPayload?: boolean\n\n captureHeaders?: boolean\n captureBody?: boolean\n\n isMaskingEnabled?: boolean\n\n maskBody?: (arg: any, span: Span) => any\n maskHeaders?: (arg: any, span: Span) => any\n\n maskBodyFieldsList?: string[]\n maskHeadersList?: string[]\n\n headersToInclude?: string[]\n headersToExclude?: string[]\n}\n\nconst setDefaultOptions = (\n options: HttpResponseHookOptions | HttpResponseHookOptions\n): Omit<HttpResponseHookOptions & HttpResponseHookOptions, 'maskBody' | 'maskHeaders'>\n & {\n maskBody: (arg: any, span: Span) => any\n maskHeaders: (arg: any, span: Span) => any\n captureHeaders: boolean,\n captureBody: boolean,\n isMaskingEnabled: boolean,\n schemifyDocSpanPayload: boolean,\n uncompressPayload: boolean,\n maxPayloadSizeBytes: number\n } => {\n options.captureHeaders = 'captureHeaders' in options\n ? options.captureHeaders\n : true\n options.captureBody = 'captureBody' in options\n ? options.captureBody\n : true\n options.isMaskingEnabled = 'isMaskingEnabled' in options\n ? options.isMaskingEnabled\n : true\n options.schemifyDocSpanPayload = 'schemifyDocSpanPayload' in options\n ? options.schemifyDocSpanPayload\n : false\n options.uncompressPayload = 'uncompressPayload' in options\n ? options.uncompressPayload\n : true\n options.maskBody = options.maskBody || mask([\n ...(\n Array.isArray(options.maskBodyFieldsList)\n ? options.maskBodyFieldsList\n : sensitiveFields\n ),\n ...(\n Array.isArray(options.maskHeadersList)\n ? options.maskHeadersList\n : sensitiveHeaders\n ),\n ])\n options.maskHeaders = options.maskHeaders || mask([\n ...(\n Array.isArray(options.maskBodyFieldsList)\n ? options.maskBodyFieldsList\n : sensitiveFields\n ),\n ...(\n Array.isArray(options.maskHeadersList)\n ? options.maskHeadersList\n : sensitiveHeaders\n ),\n ])\n options.maxPayloadSizeBytes = options.maxPayloadSizeBytes || MULTIPLAYER_MAX_HTTP_REQUEST_RESPONSE_SIZE\n\n return options as Omit<HttpResponseHookOptions & HttpResponseHookOptions, 'maskBody' | 'maskHeaders'>\n & {\n maskBody: (arg: any, span: Span) => any\n maskHeaders: (arg: any, span: Span) => any\n captureHeaders: boolean,\n captureBody: boolean,\n isMaskingEnabled: boolean,\n schemifyDocSpanPayload: boolean,\n uncompressPayload: boolean,\n maxPayloadSizeBytes: number\n }\n}\n\nexport const SessionRecorderHttpInstrumentationHooksNode = {\n responseHook: (options: HttpResponseHookOptions = {}) =>\n (span: Span, response: IncomingMessage | ServerResponse) => {\n try {\n const _options = setDefaultOptions(options)\n\n if (!_options.captureBody && !_options.captureHeaders) {\n return\n }\n\n const _response = response as ServerResponse\n const traceId = span.spanContext().traceId\n\n if (_response.setHeader) {\n _response.setHeader('X-Trace-Id', traceId)\n }\n\n const [oldWrite, oldEnd] = [_response.write, _response.end]\n\n const chunks: Buffer[] = [];\n\n if (_options.captureBody) {\n (_response.write as unknown) = function (...restArgs: any[]) {\n chunks.push(Buffer.from(restArgs[0]))\n // eslint-disable-next-line\n // @ts-ignore\n oldWrite.apply(_response, restArgs)\n }\n }\n\n // eslint-disable-next-line\n // @ts-ignore\n _response.end = async function (...restArgs) {\n if (_options.captureBody && restArgs[0]) {\n chunks.push(Buffer.from(restArgs[0]))\n }\n\n const responseBuffer = Buffer.concat(chunks)\n\n if (\n _options.captureBody\n && responseBuffer.byteLength > 0\n && responseBuffer.byteLength < _options.maxPayloadSizeBytes\n ) {\n let responseBody: string\n let skipResponseBodyModification = false\n\n if (isGzip(responseBuffer)) {\n if (_options.uncompressPayload) {\n const dezippedBuffer = await new Promise((resolve) => zlib\n .gunzip(responseBuffer, function (err, dezipped) {\n if (err) {\n return resolve(Buffer.from(''))\n } else {\n return resolve(dezipped)\n }\n })) as Buffer\n responseBody = dezippedBuffer.toString('utf-8')\n } else {\n span.setAttribute(\n ATTR_MULTIPLAYER_HTTP_RESPONSE_BODY_ENCODING,\n 'gzip',\n )\n\n skipResponseBodyModification = true\n responseBody = responseBuffer.toString('hex')\n }\n } else {\n responseBody = responseBuffer.toString('utf-8')\n }\n\n if (!skipResponseBodyModification) {\n if (\n traceId.startsWith(MULTIPLAYER_TRACE_DEBUG_PREFIX)\n && _options.isMaskingEnabled\n ) {\n responseBody = _options.maskBody(responseBody, span)\n } else if (_options.schemifyDocSpanPayload) {\n responseBody = schemify(responseBody)\n } else if (typeof responseBody !== 'string') {\n responseBody = JSON.stringify(responseBody)\n }\n }\n\n if (responseBody.length) {\n span.setAttribute(\n ATTR_MULTIPLAYER_HTTP_RESPONSE_BODY,\n responseBody,\n )\n }\n }\n\n if (_options.captureHeaders) {\n const headers = _options.maskHeaders(_response.getHeaders(), span)\n\n let _headers: any = {}\n\n if (\n !_options.headersToInclude?.length\n && !_options.headersToExclude?.length\n ) {\n _headers = JSON.parse(JSON.stringify(headers))\n } else {\n if (_options.headersToInclude) {\n for (const headerName of _options.headersToInclude) {\n _headers[headerName] = headers[headerName]\n }\n }\n\n if (_options.headersToExclude?.length) {\n for (const headerName of _options.headersToExclude) {\n delete _headers[headerName]\n }\n }\n }\n\n const stringifiedHeaders = JSON.stringify(_headers)\n\n if (stringifiedHeaders?.length) {\n span.setAttribute(\n ATTR_MULTIPLAYER_HTTP_RESPONSE_HEADERS,\n stringifiedHeaders,\n )\n }\n }\n\n // eslint-disable-next-line\n // @ts-ignore\n return oldEnd.apply(_response, restArgs)\n }\n } catch (error) {\n // eslint-disable-next-line\n console.error('An error occured in multiplayer otlp http responseHook', error)\n }\n },\n requestHook: (options: HttpRequestHookOptions = {}) =>\n (span: Span, request: ClientRequest | IncomingMessage) => {\n try {\n const _options = setDefaultOptions(options)\n\n if (!_options.captureBody && !_options.captureHeaders) {\n return\n }\n\n const traceId = span.spanContext().traceId\n const _request = request as IncomingMessage\n\n if (_options.captureHeaders) {\n let _headers: any = {}\n\n if (\n !_options.headersToInclude?.length\n && !_options.headersToExclude?.length\n ) {\n _headers = JSON.parse(JSON.stringify(_request.headers))\n } else {\n if (_options.headersToInclude) {\n for (const headerName of _options.headersToInclude) {\n _headers[headerName] = _request.headers\n }\n }\n\n if (_options.headersToExclude?.length) {\n for (const headerName of _options.headersToExclude) {\n delete _headers[headerName]\n }\n }\n }\n\n const headers = _options.maskHeaders(_headers, span)\n\n span.setAttribute(\n ATTR_MULTIPLAYER_HTTP_REQUEST_HEADERS,\n JSON.stringify(headers),\n )\n }\n\n const contentType = _request?.headers?.['content-type']\n if (\n _options.captureBody\n && contentType?.includes('application/json')\n ) {\n let body = ''\n _request.on('data', (chunk) => {\n body += chunk\n })\n _request.on('end', () => {\n try {\n const requestBodySizeBytes = Buffer.byteLength(body, 'utf8')\n\n if (\n requestBodySizeBytes === 0\n || requestBodySizeBytes > _options.maxPayloadSizeBytes\n ) {\n return\n }\n\n let requestBody = body\n if (!requestBody) return\n\n if (\n traceId.startsWith(MULTIPLAYER_TRACE_DEBUG_PREFIX)\n && _options.isMaskingEnabled\n ) {\n requestBody = _options.maskBody(requestBody, span)\n } else if (_options.schemifyDocSpanPayload) {\n requestBody = schemify(requestBody)\n } else if (typeof requestBody !== 'string') {\n requestBody = JSON.stringify(requestBody)\n }\n\n if (requestBody?.length) {\n span.setAttribute(\n ATTR_MULTIPLAYER_HTTP_REQUEST_BODY,\n requestBody,\n )\n }\n } catch (err) {\n // eslint-disable-next-line\n console.error('[MULTIPLAYER-HTTP-REQ-HOOK] An error occured in multiplayer otlp http requestHook', err)\n }\n })\n }\n\n } catch (error) {\n // eslint-disable-next-line\n console.error('An error occured in multiplayer otlp http requestHook', error)\n }\n },\n}\n"]}
|
|
1
|
+
{"version":3,"file":"SessionRecorderHttpInstrumentationHooksNode.js","sourceRoot":"","sources":["../../src/SessionRecorderHttpInstrumentationHooksNode.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n IncomingMessage,\n ServerResponse,\n ClientRequest,\n} from 'http'\nimport * as zlib from 'zlib'\nimport type { Span } from '@opentelemetry/api'\nimport {\n ATTR_MULTIPLAYER_HTTP_REQUEST_BODY,\n ATTR_MULTIPLAYER_HTTP_REQUEST_HEADERS,\n ATTR_MULTIPLAYER_HTTP_RESPONSE_BODY,\n ATTR_MULTIPLAYER_HTTP_RESPONSE_HEADERS,\n MULTIPLAYER_MAX_HTTP_REQUEST_RESPONSE_SIZE,\n ATTR_MULTIPLAYER_HTTP_RESPONSE_BODY_ENCODING,\n MULTIPLAYER_TRACE_DEBUG_PREFIX,\n MULTIPLAYER_TRACE_DOC_PREFIX\n} from './constants.node'\nimport {\n mask,\n schemify,\n isGzip,\n} from './sdk'\nimport {\n sensitiveFields,\n sensitiveHeaders\n} from './sdk/mask'\n\ninterface HttpResponseHookOptions {\n maxPayloadSizeBytes?: number\n schemifyDocSpanPayload?: boolean\n uncompressPayload?: boolean\n\n captureHeaders?: boolean\n captureBody?: boolean\n\n isMaskBodyEnabled?: boolean\n isMaskHeadersEnabled?: boolean\n\n maskBody?: (arg: any, span: Span) => any\n maskHeaders?: (arg: any, span: Span) => any\n\n maskBodyFieldsList?: string[]\n maskHeadersList?: string[]\n\n headersToInclude?: string[]\n headersToExclude?: string[]\n}\n\ninterface HttpRequestHookOptions {\n maxPayloadSizeBytes?: number\n schemifyDocSpanPayload?: boolean\n\n captureHeaders?: boolean\n captureBody?: boolean\n\n isMaskBodyEnabled?: boolean\n isMaskHeadersEnabled?: boolean\n\n maskBody?: (arg: any, span: Span) => any\n maskHeaders?: (arg: any, span: Span) => any\n\n maskBodyFieldsList?: string[]\n maskHeadersList?: string[]\n\n headersToInclude?: string[]\n headersToExclude?: string[]\n}\n\nconst setDefaultOptions = (\n options: HttpResponseHookOptions | HttpResponseHookOptions\n): Omit<HttpResponseHookOptions & HttpResponseHookOptions, 'maskBody' | 'maskHeaders'>\n & {\n maskBody: (arg: any, span: Span) => any\n maskHeaders: (arg: any, span: Span) => any\n captureHeaders: boolean,\n captureBody: boolean,\n isMaskBodyEnabled: boolean\n isMaskHeadersEnabled: boolean\n schemifyDocSpanPayload: boolean,\n uncompressPayload: boolean,\n maxPayloadSizeBytes: number\n } => {\n options.captureHeaders = 'captureHeaders' in options\n ? options.captureHeaders\n : true\n options.captureBody = 'captureBody' in options\n ? options.captureBody\n : true\n options.isMaskBodyEnabled = 'isMaskBodyEnabled' in options\n ? options.isMaskBodyEnabled\n : true\n options.isMaskHeadersEnabled = 'isMaskHeadersEnabled' in options\n ? options.isMaskHeadersEnabled\n : true\n options.schemifyDocSpanPayload = 'schemifyDocSpanPayload' in options\n ? options.schemifyDocSpanPayload\n : false\n options.uncompressPayload = 'uncompressPayload' in options\n ? options.uncompressPayload\n : true\n options.maskBody = options.maskBody || mask([\n ...(\n Array.isArray(options.maskBodyFieldsList)\n ? options.maskBodyFieldsList\n : sensitiveFields\n ),\n ...(\n Array.isArray(options.maskHeadersList)\n ? options.maskHeadersList\n : sensitiveHeaders\n ),\n ])\n options.maskHeaders = options.maskHeaders || mask([\n ...(\n Array.isArray(options.maskBodyFieldsList)\n ? options.maskBodyFieldsList\n : sensitiveFields\n ),\n ...(\n Array.isArray(options.maskHeadersList)\n ? options.maskHeadersList\n : sensitiveHeaders\n ),\n ])\n options.maxPayloadSizeBytes = options.maxPayloadSizeBytes || MULTIPLAYER_MAX_HTTP_REQUEST_RESPONSE_SIZE\n\n return options as Omit<HttpResponseHookOptions & HttpResponseHookOptions, 'maskBody' | 'maskHeaders'>\n & {\n maskBody: (arg: any, span: Span) => any\n maskHeaders: (arg: any, span: Span) => any\n captureHeaders: boolean,\n captureBody: boolean,\n isMaskBodyEnabled: boolean,\n isMaskHeadersEnabled: boolean,\n schemifyDocSpanPayload: boolean,\n uncompressPayload: boolean,\n maxPayloadSizeBytes: number\n }\n}\n\nexport const SessionRecorderHttpInstrumentationHooksNode = {\n responseHook: (options: HttpResponseHookOptions = {}) =>\n (span: Span, response: IncomingMessage | ServerResponse) => {\n try {\n const _options = setDefaultOptions(options)\n\n if (!_options.captureBody && !_options.captureHeaders) {\n return\n }\n\n const _response = response as ServerResponse\n const traceId = span.spanContext().traceId\n\n if (_response.setHeader) {\n _response.setHeader('X-Trace-Id', traceId)\n }\n\n const [oldWrite, oldEnd] = [_response.write, _response.end]\n\n const chunks: Buffer[] = [];\n\n if (_options.captureBody) {\n (_response.write as unknown) = function (...restArgs: any[]) {\n chunks.push(Buffer.from(restArgs[0]))\n // eslint-disable-next-line\n // @ts-ignore\n oldWrite.apply(_response, restArgs)\n }\n }\n\n // eslint-disable-next-line\n // @ts-ignore\n _response.end = async function (...restArgs) {\n if (_options.captureBody && restArgs[0]) {\n chunks.push(Buffer.from(restArgs[0]))\n }\n\n const responseBuffer = Buffer.concat(chunks)\n\n if (\n _options.captureBody\n && responseBuffer.byteLength > 0\n && responseBuffer.byteLength < _options.maxPayloadSizeBytes\n ) {\n let responseBody: string\n let skipResponseBodyModification = false\n\n if (isGzip(responseBuffer)) {\n if (_options.uncompressPayload) {\n const dezippedBuffer = await new Promise((resolve) => zlib\n .gunzip(responseBuffer, function (err, dezipped) {\n if (err) {\n return resolve(Buffer.from(''))\n } else {\n return resolve(dezipped)\n }\n })) as Buffer\n responseBody = dezippedBuffer.toString('utf-8')\n } else {\n span.setAttribute(\n ATTR_MULTIPLAYER_HTTP_RESPONSE_BODY_ENCODING,\n 'gzip',\n )\n\n skipResponseBodyModification = true\n responseBody = responseBuffer.toString('hex')\n }\n } else {\n responseBody = responseBuffer.toString('utf-8')\n }\n\n if (!skipResponseBodyModification) {\n if (\n traceId.startsWith(MULTIPLAYER_TRACE_DEBUG_PREFIX)\n && _options.isMaskBodyEnabled\n ) {\n responseBody = _options.maskBody(responseBody, span)\n } else if (\n traceId.startsWith(MULTIPLAYER_TRACE_DOC_PREFIX)\n && _options.schemifyDocSpanPayload\n ) {\n responseBody = schemify(responseBody)\n } else if (typeof responseBody !== 'string') {\n responseBody = JSON.stringify(responseBody)\n }\n }\n\n if (responseBody.length) {\n span.setAttribute(\n ATTR_MULTIPLAYER_HTTP_RESPONSE_BODY,\n responseBody,\n )\n }\n }\n\n if (_options.captureHeaders) {\n const headers = (options.isMaskHeadersEnabled\n ? _options.maskHeaders(_response.getHeaders(), span)\n : _response.getHeaders()) || {}\n\n let _headers: any = {}\n\n\n if (_options.headersToInclude) {\n for (const headerName of _options.headersToInclude) {\n _headers[headerName] = headers[headerName]\n }\n } else {\n _headers = JSON.parse(JSON.stringify(headers))\n }\n\n if (_options.headersToExclude?.length) {\n for (const headerName of _options.headersToExclude) {\n delete _headers[headerName]\n }\n }\n\n const stringifiedHeaders = JSON.stringify(_headers)\n\n if (stringifiedHeaders?.length) {\n span.setAttribute(\n ATTR_MULTIPLAYER_HTTP_RESPONSE_HEADERS,\n stringifiedHeaders,\n )\n }\n }\n\n // eslint-disable-next-line\n // @ts-ignore\n return oldEnd.apply(_response, restArgs)\n }\n } catch (error) {\n // eslint-disable-next-line\n console.error('An error occured in multiplayer otlp http responseHook', error)\n }\n },\n requestHook: (options: HttpRequestHookOptions = {}) =>\n (span: Span, request: ClientRequest | IncomingMessage) => {\n try {\n const _options = setDefaultOptions(options)\n\n if (!_options.captureBody && !_options.captureHeaders) {\n return\n }\n\n const traceId = span.spanContext().traceId\n const _request = request as IncomingMessage\n\n if (_options.captureHeaders) {\n const headers = (_options.isMaskHeadersEnabled\n ? _options.maskHeaders(_request.headers, span)\n : _request.headers) || {}\n let _headers: any = {}\n\n if (_options.headersToInclude) {\n for (const headerName of _options.headersToInclude) {\n _headers[headerName] = headers[headerName]\n }\n } else {\n _headers = JSON.parse(JSON.stringify(headers))\n }\n\n if (_options.headersToExclude?.length) {\n for (const headerName of _options.headersToExclude) {\n delete _headers[headerName]\n }\n }\n\n span.setAttribute(\n ATTR_MULTIPLAYER_HTTP_REQUEST_HEADERS,\n JSON.stringify(_headers),\n )\n }\n\n const contentType = _request?.headers?.['content-type']\n if (\n _options.captureBody\n && contentType?.includes('application/json')\n ) {\n let body = ''\n _request.on('data', (chunk) => {\n body += chunk\n })\n _request.on('end', () => {\n try {\n const requestBodySizeBytes = Buffer.byteLength(body, 'utf8')\n\n if (\n requestBodySizeBytes === 0\n || requestBodySizeBytes > _options.maxPayloadSizeBytes\n ) {\n return\n }\n\n let requestBody = body\n if (!requestBody) return\n\n if (\n traceId.startsWith(MULTIPLAYER_TRACE_DEBUG_PREFIX)\n && _options.isMaskBodyEnabled\n ) {\n requestBody = _options.maskBody(requestBody, span)\n } else if (\n traceId.startsWith(MULTIPLAYER_TRACE_DOC_PREFIX)\n && _options.schemifyDocSpanPayload\n ) {\n requestBody = schemify(requestBody)\n } else if (typeof requestBody !== 'string') {\n requestBody = JSON.stringify(requestBody)\n }\n\n if (requestBody?.length) {\n span.setAttribute(\n ATTR_MULTIPLAYER_HTTP_REQUEST_BODY,\n requestBody,\n )\n }\n } catch (err) {\n // eslint-disable-next-line\n console.error('[MULTIPLAYER-HTTP-REQ-HOOK] An error occured in multiplayer otlp http requestHook', err)\n }\n })\n }\n\n } catch (error) {\n // eslint-disable-next-line\n console.error('An error occured in multiplayer otlp http requestHook', error)\n }\n },\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capture-exception.d.ts","sourceRoot":"","sources":["../../../src/sdk/capture-exception.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"capture-exception.d.ts","sourceRoot":"","sources":["../../../src/sdk/capture-exception.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,OAAO,KAAK,SAW5C,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"id-generator.d.ts","sourceRoot":"","sources":["../../../src/sdk/id-generator.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"id-generator.d.ts","sourceRoot":"","sources":["../../../src/sdk/id-generator.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,GAAI,OAAO,MAAM,iBAc3C,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is-gzip.d.ts","sourceRoot":"","sources":["../../../src/sdk/is-gzip.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"is-gzip.d.ts","sourceRoot":"","sources":["../../../src/sdk/is-gzip.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM,GAAI,KAAK,MAAM,GAAG,UAAU,YAM9C,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mask.d.ts","sourceRoot":"","sources":["../../../src/sdk/mask.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AAI9C,eAAO,MAAM,eAAe,EAAE,MAAM,EAoEnC,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,MAAM,EAKpC,CAAA;
|
|
1
|
+
{"version":3,"file":"mask.d.ts","sourceRoot":"","sources":["../../../src/sdk/mask.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AAI9C,eAAO,MAAM,eAAe,EAAE,MAAM,EAoEnC,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,MAAM,EAKpC,CAAA;yBA+De,aAAY,MAAM,EAAO,MAAM,OAAO,GAAG,EAAE,MAAM,IAAI,KAAG,GAAG;AAA3E,wBAkBC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"save-continuous-deb-session.d.ts","sourceRoot":"","sources":["../../../src/sdk/save-continuous-deb-session.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"save-continuous-deb-session.d.ts","sourceRoot":"","sources":["../../../src/sdk/save-continuous-deb-session.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAC9B,SAAS,MAAM,SAgBlB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemify.d.ts","sourceRoot":"","sources":["../../../src/sdk/schemify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"schemify.d.ts","sourceRoot":"","sources":["../../../src/sdk/schemify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,gBAAgB,CAAA;yBAuB7C,SAAS,MAAM,GAAG,MAAM,GAAG,SAAS,EACpC,mBAAgB,EAChB,UAAS,aAAa,CAAC,OAAgC,KACtD,GAAG;AAJN,wBAmCC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set-attribute.d.ts","sourceRoot":"","sources":["../../../src/sdk/set-attribute.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EAEf,MAAM,oBAAoB,CAAA;AAc3B;;;;;GAKG;AACH,eAAO,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"set-attribute.d.ts","sourceRoot":"","sources":["../../../src/sdk/set-attribute.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EAEf,MAAM,oBAAoB,CAAA;AAc3B;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,KAAK,MAAM,EAAE,OAAO,cAAc,SAK9D,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAC7B,MAAM,GAAG,EACT,UAAS;IAAE,IAAI,EAAE,OAAO,CAAA;CAAmB,SAU5C,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAChC,MAAM,GAAG,EACT,UAAS;IAAE,IAAI,EAAE,OAAO,CAAA;CAAmB,SAU5C,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAC9B,MAAM,GAAG,EACT,UAAS;IAAE,IAAI,EAAE,OAAO,CAAA;CAAmB,SAU5C,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,GACjC,MAAM,GAAG,EACT,UAAS;IAAE,IAAI,EAAE,OAAO,CAAA;CAAmB,SAU5C,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GACzB,MAAM,GAAG,EACT,UAAS;IAAE,IAAI,EAAE,OAAO,CAAA;CAAmB,SAU5C,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAC/B,MAAM,GAAG,EACT,UAAS;IAAE,IAAI,EAAE,OAAO,CAAA;CAAmB,SAU5C,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAChC,MAAM,GAAG,EACT,UAAS;IAAE,IAAI,EAAE,OAAO,CAAA;CAAmB,SAU5C,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAChC,MAAM,GAAG,EACT,UAAS;IAAE,IAAI,EAAE,OAAO,CAAA;CAAmB,SAU5C,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,GACjC,MAAM,GAAG,EACT,UAAS;IAAE,IAAI,EAAE,OAAO,CAAA;CAAmB,SAU5C,CAAA"}
|