@phpsandbox/sdk 0.0.33 → 0.0.34
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/dist/browser/phpsandbox-sdk.esm.js +97 -3
- package/dist/browser/phpsandbox-sdk.esm.js.map +3 -3
- package/dist/browser/phpsandbox-sdk.esm.min.js +2 -2
- package/dist/browser/phpsandbox-sdk.esm.min.js.map +4 -4
- package/dist/browser/phpsandbox-sdk.iife.js +97 -3
- package/dist/browser/phpsandbox-sdk.iife.js.map +3 -3
- package/dist/browser/phpsandbox-sdk.iife.min.js +2 -2
- package/dist/browser/phpsandbox-sdk.iife.min.js.map +4 -4
- package/dist/index.d.ts +0 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/socket/index.d.ts +2 -2
- package/dist/socket/index.d.ts.map +1 -1
- package/dist/socket/index.js +11 -6
- package/dist/socket/index.js.map +1 -1
- package/dist/utils/websocket.d.ts +2 -0
- package/dist/utils/websocket.d.ts.map +1 -0
- package/dist/utils/websocket.js +87 -0
- package/dist/utils/websocket.js.map +1 -0
- package/package.json +1 -1
|
@@ -3147,6 +3147,89 @@ var PHPSandbox = (() => {
|
|
|
3147
3147
|
);
|
|
3148
3148
|
var reconnecting_websocket_mjs_default = ReconnectingWebSocket;
|
|
3149
3149
|
|
|
3150
|
+
// src/utils/websocket.ts
|
|
3151
|
+
var getReadyStateLabel = (state) => {
|
|
3152
|
+
if (typeof state !== "number") {
|
|
3153
|
+
return void 0;
|
|
3154
|
+
}
|
|
3155
|
+
return {
|
|
3156
|
+
0: "CONNECTING",
|
|
3157
|
+
1: "OPEN",
|
|
3158
|
+
2: "CLOSING",
|
|
3159
|
+
3: "CLOSED"
|
|
3160
|
+
}[state] ?? `STATE_${state}`;
|
|
3161
|
+
};
|
|
3162
|
+
var sanitizeWebSocketUrl = (value) => {
|
|
3163
|
+
try {
|
|
3164
|
+
const url = new URL(value);
|
|
3165
|
+
return `${url.origin}${url.pathname}`;
|
|
3166
|
+
} catch {
|
|
3167
|
+
return value;
|
|
3168
|
+
}
|
|
3169
|
+
};
|
|
3170
|
+
var extractNestedErrorMessage = (value) => {
|
|
3171
|
+
if (value instanceof Error) {
|
|
3172
|
+
return value.message ? `${value.name}: ${value.message}` : value.name;
|
|
3173
|
+
}
|
|
3174
|
+
if (typeof value === "string") {
|
|
3175
|
+
return value;
|
|
3176
|
+
}
|
|
3177
|
+
if (!value || typeof value !== "object") {
|
|
3178
|
+
return void 0;
|
|
3179
|
+
}
|
|
3180
|
+
const record = value;
|
|
3181
|
+
const message = typeof record.message === "string" && record.message ? record.message : typeof record.reason === "string" && record.reason ? record.reason : void 0;
|
|
3182
|
+
if (!message) {
|
|
3183
|
+
return void 0;
|
|
3184
|
+
}
|
|
3185
|
+
const name = typeof record.name === "string" && record.name ? record.name : void 0;
|
|
3186
|
+
return name ? `${name}: ${message}` : message;
|
|
3187
|
+
};
|
|
3188
|
+
var describeWebSocketEvent = (event) => {
|
|
3189
|
+
if (event instanceof Error) {
|
|
3190
|
+
return event.message ? `${event.name}: ${event.message}` : event.name;
|
|
3191
|
+
}
|
|
3192
|
+
if (typeof event === "string") {
|
|
3193
|
+
return event;
|
|
3194
|
+
}
|
|
3195
|
+
if (!event || typeof event !== "object") {
|
|
3196
|
+
return String(event);
|
|
3197
|
+
}
|
|
3198
|
+
const record = event;
|
|
3199
|
+
const parts = [];
|
|
3200
|
+
const topLevelMessage = extractNestedErrorMessage(record);
|
|
3201
|
+
if (topLevelMessage) {
|
|
3202
|
+
parts.push(topLevelMessage);
|
|
3203
|
+
}
|
|
3204
|
+
const nestedErrorMessage = extractNestedErrorMessage(record.error);
|
|
3205
|
+
if (nestedErrorMessage && nestedErrorMessage !== topLevelMessage) {
|
|
3206
|
+
parts.push(`error=${nestedErrorMessage}`);
|
|
3207
|
+
}
|
|
3208
|
+
if (typeof record.type === "string" && record.type) {
|
|
3209
|
+
parts.push(`type=${record.type}`);
|
|
3210
|
+
}
|
|
3211
|
+
if (typeof record.code === "number") {
|
|
3212
|
+
parts.push(`code=${record.code}`);
|
|
3213
|
+
}
|
|
3214
|
+
if (typeof record.reason === "string" && record.reason && record.reason !== topLevelMessage) {
|
|
3215
|
+
parts.push(`reason=${record.reason}`);
|
|
3216
|
+
}
|
|
3217
|
+
if (typeof record.wasClean === "boolean") {
|
|
3218
|
+
parts.push(`wasClean=${record.wasClean}`);
|
|
3219
|
+
}
|
|
3220
|
+
const target = record.target ?? record.currentTarget;
|
|
3221
|
+
if (target && typeof target === "object") {
|
|
3222
|
+
if (typeof target.url === "string" && target.url) {
|
|
3223
|
+
parts.push(`url=${sanitizeWebSocketUrl(target.url)}`);
|
|
3224
|
+
}
|
|
3225
|
+
const readyState = getReadyStateLabel(target.readyState);
|
|
3226
|
+
if (readyState) {
|
|
3227
|
+
parts.push(`readyState=${readyState}`);
|
|
3228
|
+
}
|
|
3229
|
+
}
|
|
3230
|
+
return parts.length > 0 ? parts.join(" | ") : "Unknown websocket event";
|
|
3231
|
+
};
|
|
3232
|
+
|
|
3150
3233
|
// node_modules/isomorphic-ws/browser.js
|
|
3151
3234
|
var ws = null;
|
|
3152
3235
|
if (typeof WebSocket !== "undefined") {
|
|
@@ -3184,6 +3267,13 @@ var PHPSandbox = (() => {
|
|
|
3184
3267
|
};
|
|
3185
3268
|
|
|
3186
3269
|
// src/socket/index.ts
|
|
3270
|
+
var ConnectionFailedError = class extends Error {
|
|
3271
|
+
constructor(message, originalError) {
|
|
3272
|
+
super(message);
|
|
3273
|
+
this.originalError = originalError;
|
|
3274
|
+
this.name = "ConnectionFailedError";
|
|
3275
|
+
}
|
|
3276
|
+
};
|
|
3187
3277
|
var InvalidMessageError = class extends Error {
|
|
3188
3278
|
constructor(message, data) {
|
|
3189
3279
|
super(message);
|
|
@@ -3550,7 +3640,8 @@ var PHPSandbox = (() => {
|
|
|
3550
3640
|
reject(new RateLimitError(_ev.reason || "Rate limit exceeded", _ev));
|
|
3551
3641
|
return;
|
|
3552
3642
|
}
|
|
3553
|
-
|
|
3643
|
+
const detail = describeWebSocketEvent(_ev);
|
|
3644
|
+
reject(this.terminalError || new ConnectionFailedError(`Connection lost to the notebook during request: ${detail}`, _ev));
|
|
3554
3645
|
};
|
|
3555
3646
|
this.rws.addEventListener("close", closeHandler);
|
|
3556
3647
|
this.rws.addEventListener("error", closeHandler);
|
|
@@ -3738,8 +3829,10 @@ var PHPSandbox = (() => {
|
|
|
3738
3829
|
});
|
|
3739
3830
|
this.rws.addEventListener("error", (event) => {
|
|
3740
3831
|
this.connectionStats.totalErrors++;
|
|
3832
|
+
const detail = describeWebSocketEvent(event);
|
|
3741
3833
|
this.log("error", "Connection error", {
|
|
3742
|
-
error:
|
|
3834
|
+
error: detail,
|
|
3835
|
+
rawError: event,
|
|
3743
3836
|
totalErrors: this.connectionStats.totalErrors
|
|
3744
3837
|
});
|
|
3745
3838
|
});
|
|
@@ -4012,7 +4105,8 @@ var PHPSandbox = (() => {
|
|
|
4012
4105
|
this.rws.removeEventListener("error", errorHandler);
|
|
4013
4106
|
clearTimeout(timeoutId);
|
|
4014
4107
|
this.connectPromise = null;
|
|
4015
|
-
|
|
4108
|
+
const detail = describeWebSocketEvent(error);
|
|
4109
|
+
reject(new ConnectionFailedError(`WebSocket connection failed: ${detail}`, error));
|
|
4016
4110
|
};
|
|
4017
4111
|
timeoutId = setTimeout(() => {
|
|
4018
4112
|
this.rws.removeEventListener("open", openHandler);
|