Skip to content

Commit 7791ae8

Browse files
committed
v1.2.0
1 parent c99034c commit 7791ae8

File tree

9 files changed

+37
-50
lines changed

9 files changed

+37
-50
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
<div align="center">
44
<a href="https://github.com/multiplayer-app/multiplayer-session-recorder-javascript">
5-
<img src="https://img.shields.io/github/stars/multiplayer-app/multiplayer-session-recorder-javascript.svg?style=social&label=Star&maxAge=2592000" alt="GitHub stars">
5+
<img src="https://img.shields.io/github/stars/multiplayer-app/multiplayer-session-recorder-javascript?style=social&label=Star&maxAge=2592000" alt="GitHub stars">
66
</a>
77
<a href="https://github.com/multiplayer-app/multiplayer-session-recorder-javascript/blob/main/LICENSE">
88
<img src="https://img.shields.io/github/license/multiplayer-app/multiplayer-session-recorder-javascript" alt="License">

package-lock.json

Lines changed: 7 additions & 33 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@multiplayer-app/session-recorder",
3-
"version": "1.1.0",
3+
"version": "1.2.0",
44
"description": "Multiplayer Fullstack Session Recorder",
55
"scripts": {
66
"lint": "eslint **/src/**/*.ts",

packages/session-recorder-browser/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@multiplayer-app/session-recorder-browser",
3-
"version": "1.1.0",
3+
"version": "1.2.0",
44
"description": "Multiplayer Fullstack Session Recorder for Browser",
55
"author": {
66
"name": "Multiplayer Software, Inc.",
@@ -31,7 +31,7 @@
3131
"prepublishOnly": "npm run build"
3232
},
3333
"devDependencies": {
34-
"@multiplayer-app/session-recorder-common": "1.1.0",
34+
"@multiplayer-app/session-recorder-common": "1.2.0",
3535
"browserify": "17.0.1",
3636
"clean-webpack-plugin": "4.0.0",
3737
"css-loader": "6.0.0",

packages/session-recorder-browser/src/otel/helpers.ts

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -245,11 +245,23 @@ export async function extractResponseBody(response: Response): Promise<string |
245245
return null
246246
}
247247

248-
if (response.body instanceof ReadableStream) {
249-
const responseClone = response.clone()
250-
return await responseClone.text()
251-
} else {
252-
return JSON.stringify(response.body)
248+
try {
249+
if (response.body instanceof ReadableStream) {
250+
// Check if response body is already consumed
251+
if (response.bodyUsed) {
252+
return null
253+
}
254+
255+
const responseClone = response.clone()
256+
return responseClone.text()
257+
} else {
258+
return JSON.stringify(response.body)
259+
}
260+
} catch (error) {
261+
// If cloning fails (body already consumed), return null
262+
// eslint-disable-next-line no-console
263+
console.warn('[DEBUGGER_LIB] Failed to extract response body:', error)
264+
return null
253265
}
254266
}
255267

packages/session-recorder-common/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@multiplayer-app/session-recorder-common",
3-
"version": "1.1.0",
3+
"version": "1.2.0",
44
"description": "Multiplayer Fullstack Session Recorder - opentelemetry",
55
"author": {
66
"name": "Multiplayer Software, Inc.",

packages/session-recorder-common/src/exporters/SessionRecorderBrowserTraceExporter.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export interface SessionRecorderBrowserTraceExporterConfig {
1010
/** URL for the OTLP endpoint. Defaults to Multiplayer's default traces endpoint. */
1111
url?: string
1212
/** API key for authentication. Required. */
13-
apiKey: string
13+
apiKey?: string
1414
/** Additional headers to include in requests */
1515
headers?: Record<string, string>
1616
/** Request timeout in milliseconds */
@@ -39,7 +39,7 @@ export class SessionRecorderBrowserTraceExporter implements SpanExporter {
3939
private readonly postMessageTargetOrigin: string
4040
private readonly config: SessionRecorderBrowserTraceExporterConfig
4141

42-
constructor(config: SessionRecorderBrowserTraceExporterConfig) {
42+
constructor(config: SessionRecorderBrowserTraceExporterConfig = {}) {
4343
const {
4444
url = MULTIPLAYER_OTEL_DEFAULT_TRACES_EXPORTER_HTTP_URL,
4545
apiKey,
@@ -155,8 +155,7 @@ export class SessionRecorderBrowserTraceExporter implements SpanExporter {
155155
url: this.config.url,
156156
headers: {
157157
'Content-Type': 'application/json',
158-
'User-Agent': '@multiplayer-app/session-recorder-common/1.0.0',
159-
'Authorization': this.config.apiKey,
158+
...(this.config.apiKey ? { 'Authorization': this.config.apiKey } : {}),
160159
...(this.config.headers || {}),
161160
},
162161
timeoutMillis: this.config.timeoutMillis,

packages/session-recorder-common/src/exporters/SessionRecorderHttpTraceExporter.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,9 @@ export class SessionRecorderHttpTraceExporter extends OTLPTraceExporter {
3838
headers: {
3939
'Content-Type': 'application/json',
4040
'User-Agent': '@multiplayer-app/session-recorder-common/1.0.0',
41-
'Authorization': apiKey,
41+
...apiKey
42+
? { 'Authorization': apiKey }
43+
: {},
4244
},
4345
timeoutMillis,
4446
keepAlive,

packages/session-recorder-node/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@multiplayer-app/session-recorder-node",
3-
"version": "1.1.0",
3+
"version": "1.2.0",
44
"description": "Multiplayer Fullstack Session Recorder for Node.js",
55
"author": {
66
"name": "Multiplayer Software, Inc.",
@@ -29,7 +29,7 @@
2929
"prepublishOnly": "npm run build"
3030
},
3131
"dependencies": {
32-
"@multiplayer-app/session-recorder-common": "1.1.0",
32+
"@multiplayer-app/session-recorder-common": "1.2.0",
3333
"@opentelemetry/api": "^1.9.0",
3434
"@opentelemetry/core": "^2.0.1",
3535
"@opentelemetry/otlp-exporter-base": "^0.203.0",

0 commit comments

Comments
 (0)