@marimo-team/islands 0.23.16-dev9 → 0.23.17-dev0
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/{chat-ui-JeekqoMH.js → chat-ui-DsZJj75A.js} +3104 -3107
- package/dist/{code-visibility-DveLKNtj.js → common-CotPLtrU.js} +1068 -1036
- package/dist/{formats-CO8cn5_K.js → formats-Dwq1THhr.js} +1 -1
- package/dist/{html-to-image-Bif4utQZ.js → html-to-image-CZ1kLKkq.js} +7336 -6342
- package/dist/main.js +211 -147
- package/dist/{node-sql-parser-DLl_zNw0.js → node-sql-parser-v1Vi-Fft.js} +16867 -16665
- package/dist/{process-output-TAzy-GUk.js → process-output-bVfbcx5_.js} +30 -26
- package/dist/{reveal-component-DxV4Ppa2.js → reveal-component-IoHipy82.js} +634 -626
- package/dist/style.css +1 -1
- package/dist/toDate-CqhBWjvO.js +713 -0
- package/dist/{vega-component-DphdxaJ_.js → vega-component-C7nO5zcf.js} +2 -2
- package/package.json +3 -4
- package/src/__mocks__/requests.ts +56 -4
- package/src/components/data-table/__tests__/__snapshots__/chart-spec-model.test.ts.snap +174 -21
- package/src/components/data-table/__tests__/chart-spec-model.test.ts +102 -1
- package/src/components/data-table/__tests__/columns.test.tsx +9 -1
- package/src/components/data-table/column-summary/chart-spec-model.tsx +163 -103
- package/src/components/data-table/column-summary/legacy-chart-spec.ts +15 -7
- package/src/components/data-table/column-summary/utils.ts +26 -7
- package/src/components/data-table/columns.tsx +11 -1
- package/src/components/data-table/types.ts +1 -1
- package/src/components/editor/__tests__/viewer-banner.test.tsx +14 -0
- package/src/components/editor/actions/__tests__/pair-with-agent-commands.test.ts +99 -18
- package/src/components/editor/actions/__tests__/pdf-export.test.ts +32 -13
- package/src/components/editor/actions/pair-with-agent-commands.ts +21 -10
- package/src/components/editor/actions/pair-with-agent-modal.tsx +2 -2
- package/src/components/editor/actions/pdf-export.ts +11 -14
- package/src/components/editor/actions/useNotebookActions.tsx +28 -19
- package/src/components/editor/cell/code/__tests__/cell-editor-activity-lifecycle.test.ts +250 -0
- package/src/components/editor/cell/code/cell-editor.tsx +13 -7
- package/src/components/editor/chrome/__tests__/state.test.ts +7 -1
- package/src/components/editor/chrome/panels/__tests__/logs-panel.test.tsx +25 -0
- package/src/components/editor/chrome/panels/__tests__/panel-accordion-state.test.ts +42 -0
- package/src/components/editor/chrome/panels/file-explorer-panel.tsx +6 -17
- package/src/components/editor/chrome/panels/logs-panel.tsx +12 -2
- package/src/components/editor/chrome/panels/panel-accordion-state.ts +51 -0
- package/src/components/editor/chrome/panels/session-panel.tsx +5 -16
- package/src/components/editor/chrome/panels/write-secret-modal.tsx +40 -12
- package/src/components/editor/chrome/state.ts +10 -0
- package/src/components/editor/connections/__tests__/json-credentials.test.ts +114 -0
- package/src/components/editor/connections/__tests__/paths.test.ts +39 -0
- package/src/components/editor/connections/__tests__/quick-add-data-sources.test.tsx +113 -0
- package/src/components/editor/connections/add-connection-dialog.tsx +2 -0
- package/src/components/editor/connections/components.tsx +6 -2
- package/src/components/editor/connections/database/__tests__/__snapshots__/as-code.test.ts.snap +27 -5
- package/src/components/editor/connections/database/__tests__/as-code.test.ts +33 -0
- package/src/components/editor/connections/database/as-code.ts +37 -13
- package/src/components/editor/connections/database/schemas.ts +6 -5
- package/src/components/editor/connections/form-renderers.tsx +99 -1
- package/src/components/editor/connections/json-credentials.ts +57 -0
- package/src/components/editor/connections/paths.ts +21 -0
- package/src/components/editor/connections/quick-add-data-sources.tsx +106 -0
- package/src/components/editor/connections/secret-combobox.tsx +41 -20
- package/src/components/editor/connections/storage/__tests__/__snapshots__/as-code.test.ts.snap +88 -2
- package/src/components/editor/connections/storage/__tests__/as-code.test.ts +128 -8
- package/src/components/editor/connections/storage/as-code.ts +79 -36
- package/src/components/editor/connections/storage/schemas.ts +85 -44
- package/src/components/editor/file-tree/__tests__/renderers.test.ts +31 -0
- package/src/components/editor/file-tree/file-viewer.tsx +11 -7
- package/src/components/editor/file-tree/renderers.tsx +21 -0
- package/src/components/editor/renderers/vertical-layout/vertical-layout.tsx +2 -2
- package/src/components/editor/viewer-banner.tsx +6 -1
- package/src/components/forms/form.tsx +59 -24
- package/src/components/forms/options.ts +2 -1
- package/src/components/slides/__tests__/cell-output-block.test.tsx +40 -0
- package/src/components/slides/__tests__/slide-cell-view.test.tsx +33 -0
- package/src/components/slides/reveal-component.tsx +22 -17
- package/src/components/slides/slide-cell-view.tsx +1 -1
- package/src/components/slides/slides.css +4 -2
- package/src/components/static-html/share-modal.tsx +1 -1
- package/src/core/ai/context/providers/file.ts +8 -29
- package/src/core/cells/__tests__/cells.test.ts +12 -2
- package/src/core/cells/__tests__/logs.test.ts +5 -5
- package/src/core/cells/cells.ts +17 -4
- package/src/core/cells/document-changes.ts +1 -0
- package/src/core/cells/logs.ts +14 -4
- package/src/core/codemirror/cm.ts +3 -0
- package/src/core/codemirror/code-lens/__tests__/actions.test.ts +68 -0
- package/src/core/codemirror/code-lens/__tests__/analyzer.test.ts +224 -0
- package/src/core/codemirror/code-lens/__tests__/entities.test.ts +175 -0
- package/src/core/codemirror/code-lens/__tests__/extension.test.ts +325 -0
- package/src/core/codemirror/code-lens/__tests__/perf.test.ts +121 -0
- package/src/core/codemirror/code-lens/__tests__/popover.test.ts +93 -0
- package/src/core/codemirror/code-lens/actions.ts +33 -0
- package/src/core/codemirror/code-lens/analyzer.ts +284 -0
- package/src/core/codemirror/code-lens/entities.ts +123 -0
- package/src/core/codemirror/code-lens/extension.ts +298 -0
- package/src/core/codemirror/code-lens/icons.ts +36 -0
- package/src/core/codemirror/code-lens/popover.tsx +240 -0
- package/src/core/codemirror/copilot/__tests__/language-server.test.ts +396 -100
- package/src/core/codemirror/copilot/__tests__/transport.test.ts +128 -540
- package/src/core/codemirror/copilot/language-server.ts +182 -70
- package/src/core/codemirror/copilot/transport.ts +15 -207
- package/src/core/codemirror/copilot/types.ts +9 -2
- package/src/core/codemirror/find-replace/__tests__/navigate.test.ts +42 -30
- package/src/core/codemirror/find-replace/navigate.ts +2 -0
- package/src/core/codemirror/go-to-definition/__tests__/commands.test.ts +24 -3
- package/src/core/codemirror/go-to-definition/commands.ts +93 -90
- package/src/core/codemirror/language/__tests__/sql.test.ts +627 -61
- package/src/core/codemirror/language/languages/python.ts +23 -11
- package/src/core/codemirror/language/languages/sql/completion-store.ts +5 -1
- package/src/core/codemirror/language/languages/sql/renderers.tsx +3 -3
- package/src/core/codemirror/language/languages/sql/sql.ts +251 -16
- package/src/core/codemirror/lsp/__tests__/federated-lsp.test.ts +161 -0
- package/src/core/codemirror/lsp/__tests__/log-messages.test.ts +53 -0
- package/src/core/codemirror/lsp/__tests__/normalize-markdown-math.test.ts +25 -0
- package/src/core/codemirror/lsp/__tests__/notebook-lsp.test.ts +598 -156
- package/src/core/codemirror/lsp/__tests__/transports.test.ts +112 -0
- package/src/core/codemirror/lsp/federated-lsp.ts +76 -23
- package/src/core/codemirror/lsp/log-messages.ts +37 -0
- package/src/core/codemirror/lsp/normalize-markdown-math.ts +8 -4
- package/src/core/codemirror/lsp/notebook-lsp.ts +220 -56
- package/src/core/codemirror/lsp/transports.ts +8 -1
- package/src/core/codemirror/lsp/types.ts +68 -8
- package/src/core/codemirror/lsp/utils.ts +14 -0
- package/src/core/codemirror/python-node-names.ts +90 -0
- package/src/core/codemirror/reactive-references/analyzer.ts +52 -57
- package/src/core/codemirror/utils.ts +28 -0
- package/src/core/config/feature-flag.tsx +3 -1
- package/src/core/datasets/data-source-discovery.ts +5 -0
- package/src/core/datasets/request-registry.ts +11 -0
- package/src/core/edit-app.tsx +1 -2
- package/src/core/export/__tests__/hooks.test.ts +2 -4
- package/src/core/export/hooks.ts +4 -3
- package/src/core/islands/__tests__/bridge.test.ts +107 -0
- package/src/core/islands/bootstrap.ts +1 -0
- package/src/core/islands/bridge.ts +18 -0
- package/src/core/kernel/messages.ts +2 -0
- package/src/core/lsp/__tests__/transport.test.ts +509 -337
- package/src/core/lsp/transport.ts +304 -132
- package/src/core/mode.ts +10 -0
- package/src/core/network/__tests__/api.test.ts +42 -0
- package/src/core/network/__tests__/connection.test.ts +45 -0
- package/src/core/network/__tests__/requests-lazy.test.ts +47 -1
- package/src/core/network/__tests__/requests-network.test.ts +48 -0
- package/src/core/network/api.ts +27 -0
- package/src/core/network/connection.ts +15 -0
- package/src/core/network/requests-lazy.ts +3 -0
- package/src/core/network/requests-network.ts +31 -8
- package/src/core/network/requests-static.ts +3 -0
- package/src/core/network/requests-toasting.tsx +3 -0
- package/src/core/network/types.ts +27 -6
- package/src/core/rtc/state.ts +9 -0
- package/src/core/static/download-html.ts +5 -14
- package/src/core/wasm/__tests__/bridge.test.ts +99 -5
- package/src/core/wasm/bridge.ts +42 -9
- package/src/core/wasm/worker/types.ts +10 -3
- package/src/core/wasm/worker/worker.ts +7 -8
- package/src/core/websocket/useMarimoKernelConnection.tsx +4 -0
- package/src/css/app/codemirror.css +16 -2
- package/src/hooks/__tests__/useDataSourceDiscovery.test.ts +80 -0
- package/src/hooks/useDataSourceDiscovery.ts +18 -0
- package/src/plugins/impl/DataTablePlugin.tsx +4 -1
- package/src/plugins/impl/__tests__/DataTablePlugin.test.tsx +158 -0
- package/src/plugins/impl/anywidget/__tests__/model.test.ts +55 -0
- package/src/plugins/impl/anywidget/model.ts +20 -5
- package/src/plugins/impl/data-frames/forms/__tests__/__snapshots__/form.test.tsx.snap +33 -21
- package/src/plugins/impl/data-frames/forms/renderers.tsx +11 -8
- package/src/stories/log-viewer.stories.tsx +12 -6
- package/src/utils/__tests__/blob.test.ts +27 -1
- package/src/utils/__tests__/download.test.tsx +44 -4
- package/src/utils/blob.ts +24 -1
- package/src/utils/download.ts +14 -15
- package/dist/toDate-CmR_xR3P.js +0 -692
|
@@ -66,6 +66,7 @@ export class IslandsPyodideBridge implements RunRequests, EditRequests {
|
|
|
66
66
|
private session: AppSession | undefined;
|
|
67
67
|
private sessionReady = new Deferred<AppSession>();
|
|
68
68
|
private nextSessionGeneration = 0;
|
|
69
|
+
private readonly activeSessionGenerations = new Set<number>();
|
|
69
70
|
private appTransition = Promise.resolve();
|
|
70
71
|
private workerReady = new Deferred<void>();
|
|
71
72
|
|
|
@@ -110,6 +111,11 @@ export class IslandsPyodideBridge implements RunRequests, EditRequests {
|
|
|
110
111
|
);
|
|
111
112
|
|
|
112
113
|
this.rpc.addMessageListener("kernelMessage", (message) => {
|
|
114
|
+
// A stopped session can still have messages in transit after the next
|
|
115
|
+
// app takes ownership of the shared frontend state.
|
|
116
|
+
if (!this.activeSessionGenerations.has(message.sessionGeneration)) {
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
113
119
|
this.messageConsumer?.(message);
|
|
114
120
|
});
|
|
115
121
|
}
|
|
@@ -149,6 +155,7 @@ export class IslandsPyodideBridge implements RunRequests, EditRequests {
|
|
|
149
155
|
return;
|
|
150
156
|
}
|
|
151
157
|
if (apps.length > 0) {
|
|
158
|
+
this.activeSessionGenerations.clear();
|
|
152
159
|
this.store.set(
|
|
153
160
|
islandsPendingInitialRunsAtom,
|
|
154
161
|
new Set(apps.map((_, index) => this.nextSessionGeneration + index + 1)),
|
|
@@ -165,6 +172,7 @@ export class IslandsPyodideBridge implements RunRequests, EditRequests {
|
|
|
165
172
|
};
|
|
166
173
|
const previousSession = this.session;
|
|
167
174
|
const replacesSession = managesSingleApp && previousSession !== undefined;
|
|
175
|
+
this.activeSessionGenerations.add(request.sessionGeneration);
|
|
168
176
|
if (replacesSession) {
|
|
169
177
|
this.store.set(notebookAtom, initialNotebookState());
|
|
170
178
|
}
|
|
@@ -186,8 +194,14 @@ export class IslandsPyodideBridge implements RunRequests, EditRequests {
|
|
|
186
194
|
this.sessionReady.resolve(this.session);
|
|
187
195
|
}
|
|
188
196
|
} catch (error) {
|
|
197
|
+
this.activeSessionGenerations.delete(request.sessionGeneration);
|
|
189
198
|
if (this.session?.sessionGeneration === request.sessionGeneration) {
|
|
190
199
|
this.session = previousSession;
|
|
200
|
+
if (previousSession) {
|
|
201
|
+
this.activeSessionGenerations.add(
|
|
202
|
+
previousSession.sessionGeneration,
|
|
203
|
+
);
|
|
204
|
+
}
|
|
191
205
|
}
|
|
192
206
|
Logger.error(`Failed to start session for app ${app.id}:`, error);
|
|
193
207
|
if (managesSingleApp) {
|
|
@@ -203,6 +217,7 @@ export class IslandsPyodideBridge implements RunRequests, EditRequests {
|
|
|
203
217
|
if (session?.code === undefined || (appId && session.appId !== appId)) {
|
|
204
218
|
return;
|
|
205
219
|
}
|
|
220
|
+
this.activeSessionGenerations.delete(session.sessionGeneration);
|
|
206
221
|
await this.rpc.proxy.request.stopSession({
|
|
207
222
|
appId: session.appId,
|
|
208
223
|
sessionGeneration: session.sessionGeneration,
|
|
@@ -326,6 +341,7 @@ export class IslandsPyodideBridge implements RunRequests, EditRequests {
|
|
|
326
341
|
previewSQLTableList = throwNotImplemented;
|
|
327
342
|
previewSQLSchemaList = throwNotImplemented;
|
|
328
343
|
previewDataSourceConnection = throwNotImplemented;
|
|
344
|
+
discoverDataSources = throwNotImplemented;
|
|
329
345
|
validateSQL = throwNotImplemented;
|
|
330
346
|
openFile = throwNotImplemented;
|
|
331
347
|
sendListFiles = throwNotImplemented;
|
|
@@ -339,9 +355,11 @@ export class IslandsPyodideBridge implements RunRequests, EditRequests {
|
|
|
339
355
|
sendUpdateFile = throwNotImplemented;
|
|
340
356
|
sendFileDetails = throwNotImplemented;
|
|
341
357
|
openTutorial = throwNotImplemented;
|
|
358
|
+
getExportAvailability = throwNotImplemented;
|
|
342
359
|
exportAsHTML = throwNotImplemented;
|
|
343
360
|
exportAsIPYNB = throwNotImplemented;
|
|
344
361
|
exportAsMarkdown = throwNotImplemented;
|
|
362
|
+
exportAsScript = throwNotImplemented;
|
|
345
363
|
exportAsPDF = throwNotImplemented;
|
|
346
364
|
autoExportAsHTML = throwNotImplemented;
|
|
347
365
|
autoExportAsMarkdown = throwNotImplemented;
|
|
@@ -44,6 +44,8 @@ export type SQLTableListPreview =
|
|
|
44
44
|
export type SQLSchemaListPreview =
|
|
45
45
|
NotificationMessageData<"sql-schema-list-preview">;
|
|
46
46
|
export type ValidateSQLResult = NotificationMessageData<"validate-sql-result">;
|
|
47
|
+
export type DataSourceDiscoveryResult =
|
|
48
|
+
NotificationMessageData<"data-source-discovery-result">;
|
|
47
49
|
export type SecretKeysResult = NotificationMessageData<"secret-keys-result">;
|
|
48
50
|
export type StartupLogs = NotificationMessageData<"startup-logs">;
|
|
49
51
|
export type CellMessage = NotificationMessageData<"cell-op">;
|