@marimo-team/frontend 0.19.5-dev12 → 0.19.5-dev13
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/assets/{CellStatus-DIB2SP1L.js → CellStatus-CkHNEnSR.js} +1 -1
- package/dist/assets/{JsonOutput-CjaOTAEV.js → JsonOutput-DMMGGSXv.js} +1 -1
- package/dist/assets/{MarimoErrorOutput-4Wza14O4.js → MarimoErrorOutput-DuFSglTT.js} +1 -1
- package/dist/assets/{RenderHTML-BLIsiKhC.js → RenderHTML-wR1-1y1P.js} +1 -1
- package/dist/assets/{add-cell-with-ai-BMnjZTlS.js → add-cell-with-ai-CbaApRYx.js} +1 -1
- package/dist/assets/{add-database-form-BvPpJIGk.js → add-database-form-DHXYzyiI.js} +1 -1
- package/dist/assets/{agent-panel-C-ms_FO6.js → agent-panel-3PTqPJTj.js} +1 -1
- package/dist/assets/{ai-model-dropdown-B08ON-2S.js → ai-model-dropdown-ChmbKArd.js} +1 -1
- package/dist/assets/{app-config-button-D0ZPIPDx.js → app-config-button-FyYJ6Tyk.js} +1 -1
- package/dist/assets/{cell-editor-sMMkj7mr.js → cell-editor-6dMXQ0RL.js} +1 -1
- package/dist/assets/{cell-link-BiLNVg16.js → cell-link-DVWmB29p.js} +1 -1
- package/dist/assets/{cells-DOHFOwU9.js → cells-dG69fEtz.js} +1 -1
- package/dist/assets/{chat-components-D2BYV-Nb.js → chat-components-WF7xAOzH.js} +1 -1
- package/dist/assets/{chat-display-DSJUTa-_.js → chat-display-CSZE5mc2.js} +1 -1
- package/dist/assets/{chat-panel-zNxTxOhn.js → chat-panel-DicpjkOA.js} +1 -1
- package/dist/assets/{client-BsW5R8oX.js → client-pvw6NZnl.js} +1 -1
- package/dist/assets/{column-preview-B50wQ0Ot.js → column-preview-BI3bmg8t.js} +1 -1
- package/dist/assets/{command-2PnW_0Fg.js → command-C4F8xArq.js} +1 -1
- package/dist/assets/{command-palette-DeD72khR.js → command-palette-CflKYAtT.js} +1 -1
- package/dist/assets/{common-D9bTExUN.js → common-BWquCRv0.js} +1 -1
- package/dist/assets/{datasource-oykVdER6.js → datasource-wJp5J7GL.js} +1 -1
- package/dist/assets/{dependency-graph-panel--eDEb5es.js → dependency-graph-panel-C5ASDepz.js} +1 -1
- package/dist/assets/{documentation-panel-BwJRvSfP.js → documentation-panel-DjP7xcas.js} +1 -1
- package/dist/assets/{download-DJ80tw7s.js → download-B5nrQ7oh.js} +1 -1
- package/dist/assets/{edit-page-BAGum-NA.js → edit-page-DmZDitK1.js} +3 -3
- package/dist/assets/{error-panel-Cr_stfAB.js → error-panel-C3ZWSKyy.js} +1 -1
- package/dist/assets/{es-DuPxyYL6.js → es-CXayDCrt.js} +1 -1
- package/dist/assets/{file-explorer-panel-zZHbMUNQ.js → file-explorer-panel-DEAwmqNS.js} +1 -1
- package/dist/assets/{floating-outline-CDdWi8ym.js → floating-outline-DmMqfgvM.js} +1 -1
- package/dist/assets/{focus-CR0KHFJS.js → focus-De0fAFlq.js} +1 -1
- package/dist/assets/{form-B67Ty7BQ.js → form-CA9PbMgX.js} +1 -1
- package/dist/assets/{globals-ZKjX9iTa.js → globals-G25bi28X.js} +1 -1
- package/dist/assets/{home-page-CnBuRwhH.js → home-page-D-HacWwj.js} +1 -1
- package/dist/assets/{index-BF7CLiDV.js → index-C465IW42.js} +3 -3
- package/dist/assets/{kiosk-mode-Bhm4ewE9.js → kiosk-mode-BzPmO2rQ.js} +1 -1
- package/dist/assets/{layout-D0sSEr_l.js → layout-CcJbEqnj.js} +1 -1
- package/dist/assets/{logs-panel-CrGvVFsH.js → logs-panel-D81EnMXO.js} +1 -1
- package/dist/assets/{markdown-renderer-Cc2ofxZp.js → markdown-renderer-CRVtPH5D.js} +1 -1
- package/dist/assets/{mode-C_epPmqC.js → mode-ChYHAM7i.js} +1 -1
- package/dist/assets/{name-cell-input-B67C4hsZ.js → name-cell-input-CpZt0vsF.js} +1 -1
- package/dist/assets/{outline-panel-BE3f5fbF.js → outline-panel-C9vRV5y9.js} +1 -1
- package/dist/assets/{packages-panel-DHD9trI4.js → packages-panel-BmXADyDH.js} +1 -1
- package/dist/assets/{panels-DW9Jl_lS.js → panels-D2M0X4Da.js} +1 -1
- package/dist/assets/{process-output-Dhk5x5Si.js → process-output-Nbtlvi7C.js} +1 -1
- package/dist/assets/{readonly-python-code-CtOB8ln7.js → readonly-python-code-Crr_9chk.js} +1 -1
- package/dist/assets/{run-page-wxnAcqgQ.js → run-page-Zmcxhaf1.js} +1 -1
- package/dist/assets/{scratchpad-panel-Cvw4J59G.js → scratchpad-panel-B7hgkWTO.js} +1 -1
- package/dist/assets/{session-panel-BEd0xHMf.js → session-panel-CCw-hpml.js} +1 -1
- package/dist/assets/{snippets-panel-CLN8UIPX.js → snippets-panel-CftBFK7b.js} +1 -1
- package/dist/assets/{state-NxtIFd8O.js → state-B-q5vJAN.js} +1 -1
- package/dist/assets/{state-DMt8e_WU.js → state-B_RAyPJZ.js} +1 -1
- package/dist/assets/{switch-Dx7DXx7M.js → switch-CH7JBQ6U.js} +1 -1
- package/dist/assets/{textarea-C1bIhGG5.js → textarea-C1B1m2rU.js} +1 -1
- package/dist/assets/{tracing-CbPFWbpJ.js → tracing-CAY6F2mI.js} +1 -1
- package/dist/assets/{tracing-panel-Cvn85TN7.js → tracing-panel-Dl60o0Ok.js} +2 -2
- package/dist/assets/{types-gZ-fYTIG.js → types-D_eS2JEf.js} +1 -1
- package/dist/assets/{useAddCell-Bfk6Ierz.js → useAddCell-BSOKbqcD.js} +1 -1
- package/dist/assets/{useCellActionButton-CBvhjulK.js → useCellActionButton-fUOTJQY2.js} +1 -1
- package/dist/assets/{useDeleteCell-BCa6iFd7.js → useDeleteCell-CNPKeGD6.js} +1 -1
- package/dist/assets/{useDependencyPanelTab-DguVbV3t.js → useDependencyPanelTab-Coe6wSmK.js} +1 -1
- package/dist/assets/{useNotebookActions-_oHKWjBU.js → useNotebookActions-DSCcRoTB.js} +1 -1
- package/dist/assets/{useRunCells-DWz8DvYV.js → useRunCells-B7y_sG8R.js} +1 -1
- package/dist/assets/{useSplitCell-B9ZXszdo.js → useSplitCell-D5TLJkuE.js} +1 -1
- package/dist/assets/{utilities.esm-Cw_BKnGj.js → utilities.esm-CRKmwR4M.js} +1 -1
- package/dist/index.html +31 -31
- package/package.json +1 -1
- package/src/core/lsp/__tests__/transport.test.ts +149 -0
- package/src/core/lsp/transport.ts +48 -0
|
@@ -23,6 +23,11 @@ export interface ReconnectingWebSocketTransportOptions {
|
|
|
23
23
|
onReconnect?: () => Promise<void>;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
+
interface Subscription {
|
|
27
|
+
event: "pending" | "notification" | "response" | "error";
|
|
28
|
+
handler: Parameters<Transport["subscribe"]>[1];
|
|
29
|
+
}
|
|
30
|
+
|
|
26
31
|
/**
|
|
27
32
|
* A WebSocket transport that automatically reconnects when the connection is lost.
|
|
28
33
|
* This handles cases like computer sleep/wake or network interruptions.
|
|
@@ -33,6 +38,7 @@ export class ReconnectingWebSocketTransport extends Transport {
|
|
|
33
38
|
private connectionPromise: Promise<void> | undefined;
|
|
34
39
|
private isClosed = false;
|
|
35
40
|
private hasConnectedBefore = false;
|
|
41
|
+
private pendingSubscriptions: Subscription[] = [];
|
|
36
42
|
|
|
37
43
|
constructor(options: ReconnectingWebSocketTransportOptions) {
|
|
38
44
|
super();
|
|
@@ -55,6 +61,12 @@ export class ReconnectingWebSocketTransport extends Transport {
|
|
|
55
61
|
|
|
56
62
|
// Create a new delegate
|
|
57
63
|
this.delegate = new WebSocketTransport(this.options.getWsUrl());
|
|
64
|
+
|
|
65
|
+
// Re-register all pending subscriptions on the new delegate
|
|
66
|
+
for (const { event, handler } of this.pendingSubscriptions) {
|
|
67
|
+
this.delegate.subscribe(event, handler);
|
|
68
|
+
}
|
|
69
|
+
|
|
58
70
|
return this.delegate;
|
|
59
71
|
}
|
|
60
72
|
|
|
@@ -134,6 +146,42 @@ export class ReconnectingWebSocketTransport extends Transport {
|
|
|
134
146
|
this.connectionPromise = undefined;
|
|
135
147
|
}
|
|
136
148
|
|
|
149
|
+
override subscribe(...args: Parameters<Transport["subscribe"]>): void {
|
|
150
|
+
// Register handler on parent Transport
|
|
151
|
+
super.subscribe(...args);
|
|
152
|
+
|
|
153
|
+
const [event, handler] = args;
|
|
154
|
+
|
|
155
|
+
// Track the subscription
|
|
156
|
+
this.pendingSubscriptions.push({ event, handler });
|
|
157
|
+
|
|
158
|
+
// Also register on delegate if it exists
|
|
159
|
+
if (this.delegate) {
|
|
160
|
+
this.delegate.subscribe(event, handler);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
override unsubscribe(
|
|
165
|
+
...args: Parameters<Transport["unsubscribe"]>
|
|
166
|
+
): import("events").EventEmitter | undefined {
|
|
167
|
+
// Unregister from parent
|
|
168
|
+
const result = super.unsubscribe(...args);
|
|
169
|
+
|
|
170
|
+
const [event, handler] = args;
|
|
171
|
+
|
|
172
|
+
// Remove from pending subscriptions
|
|
173
|
+
this.pendingSubscriptions = this.pendingSubscriptions.filter(
|
|
174
|
+
(sub) => !(sub.event === event && sub.handler === handler),
|
|
175
|
+
);
|
|
176
|
+
|
|
177
|
+
// Also unregister from delegate if it exists
|
|
178
|
+
if (this.delegate) {
|
|
179
|
+
this.delegate.unsubscribe(event, handler);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
return result;
|
|
183
|
+
}
|
|
184
|
+
|
|
137
185
|
override async sendData(
|
|
138
186
|
data: JSONRPCRequestData,
|
|
139
187
|
timeout: number | null | undefined,
|