@phpsandbox/sdk 0.0.51 → 0.0.52
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/LICENSE +21 -0
- package/README.md +1 -1
- package/dist/auth.d.ts +0 -1
- package/dist/auth.js +0 -1
- package/dist/beacon/index.d.ts +4 -5
- package/dist/beacon/index.js +11 -12
- package/dist/beacon/navigator.d.ts +1 -2
- package/dist/beacon/navigator.js +0 -1
- package/dist/beacon/types.d.ts +12 -13
- package/dist/beacon/types.js +0 -1
- package/dist/browser/phpsandbox-sdk.esm.js +282 -479
- package/dist/browser/phpsandbox-sdk.esm.min.js +2 -3
- package/dist/browser/phpsandbox-sdk.iife.js +277 -479
- package/dist/browser/phpsandbox-sdk.iife.min.js +2 -3
- package/dist/composer.d.ts +2 -3
- package/dist/composer.js +0 -1
- package/dist/config.d.ts +0 -1
- package/dist/config.js +0 -1
- package/dist/container.d.ts +0 -1
- package/dist/container.js +0 -1
- package/dist/errors/index.d.ts +0 -1
- package/dist/errors/index.js +0 -1
- package/dist/events/index.d.ts +15 -15
- package/dist/events/index.js +16 -9
- package/dist/filesystem.d.ts +6 -7
- package/dist/filesystem.js +36 -14
- package/dist/git.d.ts +0 -1
- package/dist/git.js +0 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.js +38 -25
- package/dist/laravel.d.ts +1 -2
- package/dist/laravel.js +1 -2
- package/dist/log.d.ts +3 -4
- package/dist/log.js +1 -2
- package/dist/lsp.d.ts +10 -11
- package/dist/lsp.js +9 -10
- package/dist/repl.d.ts +3 -4
- package/dist/repl.js +2 -3
- package/dist/services.d.ts +0 -1
- package/dist/services.js +0 -1
- package/dist/shell.d.ts +1 -2
- package/dist/shell.js +1 -2
- package/dist/socket/index.d.ts +23 -129
- package/dist/socket/index.js +60 -350
- package/dist/terminal.d.ts +2 -3
- package/dist/terminal.js +45 -26
- package/dist/types.d.ts +0 -1
- package/dist/types.js +0 -1
- package/dist/utils/disposable.d.ts +0 -1
- package/dist/utils/disposable.js +0 -1
- package/dist/utils/promise.d.ts +0 -1
- package/dist/utils/promise.js +0 -1
- package/dist/utils/retry.d.ts +0 -1
- package/dist/utils/retry.js +0 -1
- package/dist/utils/websocket.d.ts +0 -1
- package/dist/utils/websocket.js +0 -1
- package/docs/api-summary.md +136 -0
- package/docs/cdn-usage.md +80 -0
- package/docs/getting-started.md +152 -0
- package/examples/README.md +206 -0
- package/examples/basic.ts +24 -0
- package/examples/get.ts +21 -0
- package/examples/git-merge-smoke.ts +415 -0
- package/examples/laravel-load-test.ts +2829 -0
- package/examples/notebook-readonly-smoke.ts +823 -0
- package/package.json +13 -7
- package/dist/auth.d.ts.map +0 -1
- package/dist/auth.js.map +0 -1
- package/dist/beacon/index.d.ts.map +0 -1
- package/dist/beacon/index.js.map +0 -1
- package/dist/beacon/navigator.d.ts.map +0 -1
- package/dist/beacon/navigator.js.map +0 -1
- package/dist/beacon/types.d.ts.map +0 -1
- package/dist/beacon/types.js.map +0 -1
- package/dist/browser/phpsandbox-sdk.esm.js.map +0 -7
- package/dist/browser/phpsandbox-sdk.esm.min.js.map +0 -7
- package/dist/browser/phpsandbox-sdk.iife.js.map +0 -7
- package/dist/browser/phpsandbox-sdk.iife.min.js.map +0 -7
- package/dist/composer.d.ts.map +0 -1
- package/dist/composer.js.map +0 -1
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js.map +0 -1
- package/dist/container.d.ts.map +0 -1
- package/dist/container.js.map +0 -1
- package/dist/errors/index.d.ts.map +0 -1
- package/dist/errors/index.js.map +0 -1
- package/dist/events/index.d.ts.map +0 -1
- package/dist/events/index.js.map +0 -1
- package/dist/filesystem.d.ts.map +0 -1
- package/dist/filesystem.js.map +0 -1
- package/dist/git.d.ts.map +0 -1
- package/dist/git.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/laravel.d.ts.map +0 -1
- package/dist/laravel.js.map +0 -1
- package/dist/log.d.ts.map +0 -1
- package/dist/log.js.map +0 -1
- package/dist/lsp.d.ts.map +0 -1
- package/dist/lsp.js.map +0 -1
- package/dist/repl.d.ts.map +0 -1
- package/dist/repl.js.map +0 -1
- package/dist/services.d.ts.map +0 -1
- package/dist/services.js.map +0 -1
- package/dist/shell.d.ts.map +0 -1
- package/dist/shell.js.map +0 -1
- package/dist/socket/index.d.ts.map +0 -1
- package/dist/socket/index.js.map +0 -1
- package/dist/terminal.d.ts.map +0 -1
- package/dist/terminal.js.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/utils/disposable.d.ts.map +0 -1
- package/dist/utils/disposable.js.map +0 -1
- package/dist/utils/promise.d.ts.map +0 -1
- package/dist/utils/promise.js.map +0 -1
- package/dist/utils/retry.d.ts.map +0 -1
- package/dist/utils/retry.js.map +0 -1
- package/dist/utils/websocket.d.ts.map +0 -1
- package/dist/utils/websocket.js.map +0 -1
package/dist/socket/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CloseEvent, ErrorEvent as
|
|
1
|
+
import type { CloseEvent as ReconnectingWebSocketCloseEvent, ErrorEvent as ReconnectingWebSocketErrorEvent } from 'reconnecting-websocket';
|
|
2
2
|
import { EventDispatcher } from '../events/index.js';
|
|
3
3
|
import { NotebookUnavailableError } from '../errors/index.js';
|
|
4
4
|
interface WsOptions {
|
|
@@ -8,7 +8,7 @@ interface WsOptions {
|
|
|
8
8
|
connectionTimeout?: number;
|
|
9
9
|
connectWaitTimeout?: number;
|
|
10
10
|
maxRetries?: number;
|
|
11
|
-
webSocket?:
|
|
11
|
+
webSocket?: unknown;
|
|
12
12
|
}
|
|
13
13
|
export interface CallOption {
|
|
14
14
|
responseEvent?: string;
|
|
@@ -18,6 +18,9 @@ export interface CallOption {
|
|
|
18
18
|
abortSignal?: AbortSignal;
|
|
19
19
|
}
|
|
20
20
|
export type WebSocketStatus = 'OPEN' | 'CONNECTING' | 'CLOSED';
|
|
21
|
+
type WebSocketCloseLikeEvent = ReconnectingWebSocketCloseEvent;
|
|
22
|
+
type WebSocketErrorLikeEvent = ReconnectingWebSocketErrorEvent & Partial<Pick<WebSocketCloseLikeEvent, 'code' | 'reason' | 'wasClean'>>;
|
|
23
|
+
type WebSocketLikeEvent = WebSocketCloseLikeEvent | WebSocketErrorLikeEvent;
|
|
21
24
|
export declare enum SocketEvent {
|
|
22
25
|
BootError = "Events.BootError",
|
|
23
26
|
Response = "response",
|
|
@@ -38,42 +41,6 @@ export declare class InvalidMessageError extends Error {
|
|
|
38
41
|
export declare class InvalidConfigurationError extends Error {
|
|
39
42
|
constructor(message: string);
|
|
40
43
|
}
|
|
41
|
-
export interface ConnectionStats {
|
|
42
|
-
connectTime: number;
|
|
43
|
-
reconnectCount: number;
|
|
44
|
-
lastPingTime: number;
|
|
45
|
-
lastPongTime: number;
|
|
46
|
-
avgResponseTime: number;
|
|
47
|
-
totalMessages: number;
|
|
48
|
-
totalErrors: number;
|
|
49
|
-
connectionStartTime: number;
|
|
50
|
-
connectionDuration: number;
|
|
51
|
-
uptime: number;
|
|
52
|
-
messagesPerSecond: string;
|
|
53
|
-
errorRate: string;
|
|
54
|
-
timeSinceLastPing: number;
|
|
55
|
-
timeSinceLastPong: number;
|
|
56
|
-
}
|
|
57
|
-
export interface MessageQueueInfo {
|
|
58
|
-
length: number;
|
|
59
|
-
maxSize: number;
|
|
60
|
-
oldestMessageAge: number;
|
|
61
|
-
}
|
|
62
|
-
export interface TransportConfig {
|
|
63
|
-
pingInterval: number;
|
|
64
|
-
queueTimeout: number;
|
|
65
|
-
url: string;
|
|
66
|
-
}
|
|
67
|
-
export interface ConnectionMetrics {
|
|
68
|
-
status: string | undefined;
|
|
69
|
-
clientId: string;
|
|
70
|
-
isConnected: boolean;
|
|
71
|
-
isConnecting: boolean;
|
|
72
|
-
connectionStats: ConnectionStats;
|
|
73
|
-
messageQueue: MessageQueueInfo;
|
|
74
|
-
config: TransportConfig;
|
|
75
|
-
}
|
|
76
|
-
export type HealthStatus = 'healthy' | 'degraded' | 'unhealthy';
|
|
77
44
|
export interface TransportEvents {
|
|
78
45
|
'transport.boot_error': {
|
|
79
46
|
error: NotebookUnavailableError;
|
|
@@ -81,14 +48,13 @@ export interface TransportEvents {
|
|
|
81
48
|
};
|
|
82
49
|
'transport.error': {
|
|
83
50
|
type: string;
|
|
84
|
-
error:
|
|
51
|
+
error: unknown;
|
|
85
52
|
rawMessage?: unknown;
|
|
86
53
|
timestamp: number;
|
|
87
54
|
};
|
|
88
55
|
'transport.closed': {
|
|
89
56
|
code?: number;
|
|
90
57
|
reason?: string;
|
|
91
|
-
metrics: ConnectionMetrics;
|
|
92
58
|
timestamp: number;
|
|
93
59
|
};
|
|
94
60
|
}
|
|
@@ -106,10 +72,6 @@ export declare class Transport {
|
|
|
106
72
|
private readonly url;
|
|
107
73
|
private readonly CONNECT_WAIT_TIMEOUT;
|
|
108
74
|
private pingIntervalStarted;
|
|
109
|
-
private connectionStats;
|
|
110
|
-
private messageQueue;
|
|
111
|
-
private readonly MAX_QUEUE_SIZE;
|
|
112
|
-
private readonly QUEUE_TIMEOUT;
|
|
113
75
|
private incomingMessageChain;
|
|
114
76
|
constructor(url: string, eventEmitter: EventDispatcher, options?: WsOptions);
|
|
115
77
|
/**
|
|
@@ -127,24 +89,29 @@ export declare class Transport {
|
|
|
127
89
|
id(): string;
|
|
128
90
|
private registerWatchers;
|
|
129
91
|
private processIncomingMessage;
|
|
92
|
+
private toArrayBuffer;
|
|
130
93
|
private handleRawMessage;
|
|
131
94
|
private handleMessage;
|
|
132
|
-
listen(event: string, listener: (data:
|
|
133
|
-
onDidBootError(listener: (error: NotebookUnavailableError) => void):
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
95
|
+
listen(event: string, listener: (data: unknown) => void, _context?: unknown): import("../types.js").Disposable;
|
|
96
|
+
onDidBootError(listener: (error: NotebookUnavailableError) => void): {
|
|
97
|
+
dispose: () => void;
|
|
98
|
+
};
|
|
99
|
+
removeListener(event: string, listener?: (data: unknown) => void): void;
|
|
100
|
+
listenOnce(event: string, listener: (data: unknown) => void, context?: unknown): {
|
|
101
|
+
dispose: () => void;
|
|
102
|
+
};
|
|
103
|
+
emit(event: string, ...data: unknown[]): void;
|
|
137
104
|
get isConnected(): boolean;
|
|
138
105
|
get isConnecting(): boolean;
|
|
139
106
|
get isDisconnected(): boolean;
|
|
140
107
|
get isClosed(): boolean;
|
|
141
108
|
getTerminalError(): Error | null;
|
|
142
109
|
get status(): string | undefined;
|
|
143
|
-
call(action: string, data?: object | string, options?: CallOption): Promise<
|
|
110
|
+
call(action: string, data?: object | string, options?: CallOption): Promise<unknown>;
|
|
144
111
|
send(action: string, data?: object | string): boolean;
|
|
145
112
|
private pack;
|
|
146
113
|
private sendWithRetry;
|
|
147
|
-
invoke(action: string, data?: object | string, options?: CallOption): Promise<
|
|
114
|
+
invoke(action: string, data?: object | string, options?: CallOption): Promise<unknown>;
|
|
148
115
|
/**
|
|
149
116
|
* Reconnect the websocket without disposing listeners.
|
|
150
117
|
* Uses the underlying ReconnectingWebSocket's reconnect mechanism.
|
|
@@ -154,84 +121,11 @@ export declare class Transport {
|
|
|
154
121
|
disconnect(): void;
|
|
155
122
|
terminate(error: Error, code?: number, reason?: string): void;
|
|
156
123
|
close(code?: number, reason?: string): void;
|
|
157
|
-
onDidConnect(listener: () => void):
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
private setupConnectionHealthMonitoring;
|
|
163
|
-
/**
|
|
164
|
-
* Handle different WebSocket close codes appropriately
|
|
165
|
-
*/
|
|
166
|
-
private handleConnectionClose;
|
|
167
|
-
/**
|
|
168
|
-
* Process queued messages when connection is restored
|
|
169
|
-
*/
|
|
170
|
-
private processMessageQueue;
|
|
171
|
-
/**
|
|
172
|
-
* Clear old queued messages to prevent memory leaks
|
|
173
|
-
*/
|
|
174
|
-
private clearOldQueuedMessages;
|
|
175
|
-
/**
|
|
176
|
-
* Calculate exponential backoff delay
|
|
177
|
-
*/
|
|
178
|
-
private getBackoffDelay;
|
|
179
|
-
/**
|
|
180
|
-
* Get comprehensive connection metrics
|
|
181
|
-
*/
|
|
182
|
-
getConnectionMetrics(): {
|
|
183
|
-
status: string;
|
|
184
|
-
clientId: string;
|
|
185
|
-
isConnected: boolean;
|
|
186
|
-
isConnecting: boolean;
|
|
187
|
-
connectionStats: {
|
|
188
|
-
connectionDuration: number;
|
|
189
|
-
uptime: number;
|
|
190
|
-
messagesPerSecond: string;
|
|
191
|
-
errorRate: string;
|
|
192
|
-
timeSinceLastPing: number;
|
|
193
|
-
timeSinceLastPong: number;
|
|
194
|
-
connectTime: number;
|
|
195
|
-
reconnectCount: number;
|
|
196
|
-
lastPingTime: number;
|
|
197
|
-
lastPongTime: number;
|
|
198
|
-
avgResponseTime: number;
|
|
199
|
-
totalMessages: number;
|
|
200
|
-
totalErrors: number;
|
|
201
|
-
connectionStartTime: number;
|
|
202
|
-
};
|
|
203
|
-
messageQueue: {
|
|
204
|
-
length: number;
|
|
205
|
-
maxSize: number;
|
|
206
|
-
oldestMessageAge: number;
|
|
207
|
-
};
|
|
208
|
-
config: {
|
|
209
|
-
pingInterval: number;
|
|
210
|
-
queueTimeout: number;
|
|
211
|
-
url: string;
|
|
212
|
-
};
|
|
124
|
+
onDidConnect(listener: () => void): {
|
|
125
|
+
dispose: () => void;
|
|
126
|
+
};
|
|
127
|
+
onDidClose(listener: (e: WebSocketLikeEvent) => void): {
|
|
128
|
+
dispose: () => void;
|
|
213
129
|
};
|
|
214
|
-
/**
|
|
215
|
-
* Get connection health status
|
|
216
|
-
*/
|
|
217
|
-
getHealthStatus(): 'healthy' | 'degraded' | 'unhealthy';
|
|
218
|
-
/**
|
|
219
|
-
* Reset connection statistics
|
|
220
|
-
*/
|
|
221
|
-
resetStats(): void;
|
|
222
|
-
/**
|
|
223
|
-
* Run connection diagnostics
|
|
224
|
-
*/
|
|
225
|
-
runDiagnostics(): Promise<{
|
|
226
|
-
status: HealthStatus;
|
|
227
|
-
metrics: ConnectionMetrics;
|
|
228
|
-
issues: string[];
|
|
229
|
-
recommendations: string[];
|
|
230
|
-
}>;
|
|
231
|
-
/**
|
|
232
|
-
* Periodic maintenance - clean up old data, run health checks
|
|
233
|
-
*/
|
|
234
|
-
private startPeriodicMaintenance;
|
|
235
130
|
}
|
|
236
131
|
export {};
|
|
237
|
-
//# sourceMappingURL=index.d.ts.map
|