@marimo-team/islands 0.25.3-dev5 → 0.25.3-dev51
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/{ConnectedDataExplorerComponent-CNMliVzw.js → ConnectedDataExplorerComponent-Da5OoEUL.js} +14 -14
- package/dist/{ErrorBoundary-BiZWOrv4.js → ErrorBoundary-CbxCC2kk.js} +8 -8
- package/dist/{abnfDiagram-VCTEODGH-D-Ez91gV.js → abnfDiagram-VCTEODGH-Bz3mrprX.js} +2 -2
- package/dist/any-language-editor-k2B8YI3Y.js +75 -0
- package/dist/{architectureDiagram-5GKGNRK7-CTpcNtO8.js → architectureDiagram-5GKGNRK7-Cs5ujb9K.js} +1 -1
- package/dist/{arrays-CN1djC4k.js → arrays-R6JsImiT.js} +8 -0
- package/dist/{button-CvjkwdSk.js → button-BxB3RDjN.js} +1 -1
- package/dist/{capabilities-CQ5IjhzL.js → capabilities-BgR0osfN.js} +2 -2
- package/dist/{chat-ui-0lKdOoQ3.js → chat-ui-C1Gjgokv.js} +1103 -1103
- package/dist/{check-EDwSwP89.js → check-P35dc2dH.js} +1 -1
- package/dist/{chunk-IMKFNOWR-DGxi-zeo.js → chunk-IMKFNOWR-CcTSaxZt.js} +1 -1
- package/dist/{chunk-SHT3W25Y-CV9J3rAB.js → chunk-SHT3W25Y-DcJcjOaO.js} +1 -1
- package/dist/{chunk-SVP7TREG-BL-9Fqgg.js → chunk-SVP7TREG-BVtDTjaF.js} +1 -1
- package/dist/{chunk-TICWLB2K-Cu_XMjDM.js → chunk-TICWLB2K-BkDFkh8q.js} +1 -1
- package/dist/{chunk-YOKDWASO-DPZk8vhS.js → chunk-YOKDWASO-DKplTrBY.js} +20 -20
- package/dist/{classDiagram-ZZMXUADV-BXXV13Hq.js → classDiagram-ZZMXUADV-CfAt7HT5.js} +2 -2
- package/dist/{classDiagram-v2-VYDZK3BY-B7FXJ1Cp.js → classDiagram-v2-VYDZK3BY-CGEjNYa2.js} +2 -2
- package/dist/{code-visibility-CW5_8ZOI.js → code-visibility-DoZ9lxzx.js} +6 -6
- package/dist/{common-mzWw4FdI.js → common-D1PacyXO.js} +3112 -3015
- package/dist/{copy-icon-Ft7t9bqz.js → copy-icon-CPoxUG7G.js} +3 -3
- package/dist/{cynefinDiagram-5FMLGOSQ-CH96rwba.js → cynefinDiagram-5FMLGOSQ-BW6NmfJi.js} +1 -1
- package/dist/{dagre-GXQ25YYZ-BD3PmpFY.js → dagre-GXQ25YYZ-CWg3CTuF.js} +1 -1
- package/dist/{data-grid-overlay-editor-CJmehSdc.js → data-grid-overlay-editor-B50UpkXd.js} +5 -5
- package/dist/{data-grid-types-BH_r7g7l.js → data-grid-types-0PJ-9N5n.js} +1 -1
- package/dist/{diagram-S7CK7UJ4-BsSJJldB.js → diagram-S7CK7UJ4-BPxtoS-z.js} +1 -1
- package/dist/{diagram-UQ7AKVKN-muQtNZc4.js → diagram-UQ7AKVKN-DA-vJdFL.js} +1 -1
- package/dist/{diagram-VX7I27RA-CdhuZAqR.js → diagram-VX7I27RA-D6bkR84S.js} +1 -1
- package/dist/{diagram-Z3DM3KII-BD8mXjOj.js → diagram-Z3DM3KII-m60g4cAT.js} +1 -1
- package/dist/{dialog-CEBFZNyc.js → dialog-C1PcpCqX.js} +3 -3
- package/dist/{dist-DpBpA_n1.js → dist-Lm-D-Vr6.js} +3 -3
- package/dist/{dropdown-menu-CP_qCYHC.js → dropdown-menu-MG5hiCIa.js} +76 -76
- package/dist/{ebnfDiagram-PWID7BFC-BIN1sweE.js → ebnfDiagram-PWID7BFC-CK99sho2.js} +2 -2
- package/dist/{erDiagram-RLTQ6QDP-Ctp5cfoN.js → erDiagram-RLTQ6QDP-Bryq0tdE.js} +1 -1
- package/dist/{error-banner-D-WCIiMt.js → error-banner-Sl2FlSJ4.js} +2 -2
- package/dist/{error-entries-DSvFWT_M.js → error-entries-CMNtA8NK.js} +959 -959
- package/dist/{feedback-button-BcT1FBud.js → feedback-button-DqPqwryB.js} +29 -29
- package/dist/{flowDiagram-HODETNUW-3EfLrlFb.js → flowDiagram-HODETNUW-D-3aRpfS.js} +2 -2
- package/dist/{formats-CeOmU1MU.js → formats-6pLWWrY2.js} +3 -3
- package/dist/{ganttDiagram-EL5Y4UJY-BQT16JSc.js → ganttDiagram-EL5Y4UJY-Dh_4cBJZ.js} +2 -2
- package/dist/{glide-data-editor-XckatD0j.js → glide-data-editor-BxMhUd3K.js} +370 -368
- package/dist/{glide-utils-DJyqh0EM.js → glide-utils-Bt8_pBa2.js} +16 -16
- package/dist/{globals-jRrLCkrP.js → globals-DTJa_doJ.js} +3 -3
- package/dist/{highlighted-body-KPVGNVTW-zwjq21tf.js → highlighted-body-KPVGNVTW-3Ziwfz-V.js} +2 -2
- package/dist/{html-to-image-B8s5SgGm.js → html-to-image-By72ALyI.js} +29 -29
- package/dist/{infoDiagram-27XIBGKW-DipQoHxl.js → infoDiagram-27XIBGKW-s1C1kgfU.js} +1 -1
- package/dist/{ishikawaDiagram-5VMMS53U-DgFMjSGz.js → ishikawaDiagram-5VMMS53U-CCsRgolY.js} +1 -1
- package/dist/{kanban-definition-UXKFOSKX-w1ACVjgl.js → kanban-definition-UXKFOSKX-BrmxDlcc.js} +1 -1
- package/dist/{label-BDKF3Afc.js → label-BRnUC0NX.js} +2 -2
- package/dist/{linear-Cnaq3Tfb.js → linear-DWERh7eI.js} +121 -73
- package/dist/{loader-BQOfjTIJ.js → loader-Bm8cy3e8.js} +12 -12
- package/dist/main.js +2358 -2221
- package/dist/{mermaid-CHo49Yv-.js → mermaid-DKI0869I.js} +38 -38
- package/dist/mermaid-HWGCJPDP-Du3-HPQA.js +2 -0
- package/dist/{mindmap-definition-YA3MSWOX-CrT0KSfX.js → mindmap-definition-YA3MSWOX-641xJysF.js} +1 -1
- package/dist/{number-overlay-editor-pZx8dUDV.js → number-overlay-editor-Z_H6x5b-.js} +3 -3
- package/dist/{objects-CzUgoMIF.js → objects-DCmMvZtn.js} +1 -3
- package/dist/{once-BtE-wKRL.js → once-eG8Vmvjd.js} +1 -1
- package/dist/{pegDiagram-XKGWAZYB-BqvywNJA.js → pegDiagram-XKGWAZYB-keVUAUeS.js} +2 -2
- package/dist/{pieDiagram-E7YTZNPT-BfxJ_XCc.js → pieDiagram-E7YTZNPT-DHktXPO_.js} +1 -1
- package/dist/precisionRound-DhAzeRcm.js +49 -0
- package/dist/{process-output-CKRXyszb.js → process-output-D-OMW5sV.js} +4 -4
- package/dist/{quadrantDiagram-AXDQQJYC-Ccw0xMjN.js → quadrantDiagram-AXDQQJYC-Blrm7V7_.js} +1 -1
- package/dist/{railroadDiagram-O6MQD6OU-8vFLVTPu.js → railroadDiagram-O6MQD6OU-BVEF4OV_.js} +2 -2
- package/dist/{react-vega-BED0DjiB.js → react-vega-C4T9Rb_w.js} +12284 -12270
- package/dist/{requirementDiagram-BXWQKSXE-a_MxGvxe.js → requirementDiagram-BXWQKSXE-CWo-UAKV.js} +1 -1
- package/dist/{reveal-component-79ez8-D5.js → reveal-component-tAB5K3QE.js} +10 -10
- package/dist/{select-BButFi-d.js → select-B0LRDH0g.js} +4 -4
- package/dist/{sequenceDiagram-WJ2MYXX4-CXFMnxGh.js → sequenceDiagram-WJ2MYXX4-CHQvLnq4.js} +1 -1
- package/dist/{spec-BwarBpUJ.js → spec-C-LRKGtT.js} +4 -4
- package/dist/{stateDiagram-D77RDMKH-DQeA_CwI.js → stateDiagram-D77RDMKH-BOJZgbUJ.js} +2 -2
- package/dist/{stateDiagram-v2-MP3YSRHH-BxxQucm1.js → stateDiagram-v2-MP3YSRHH-C53XXdYH.js} +2 -2
- package/dist/style.css +1 -1
- package/dist/{swimlanes-42K2YHIH-Do6L-cYg.js → swimlanes-42K2YHIH-D2o1gOtw.js} +1 -1
- package/dist/{swimlanesDiagram-VR7AAH4N-DUzPvSVU.js → swimlanesDiagram-VR7AAH4N-BHFzN1Wk.js} +2 -2
- package/dist/{swiper-component-DKntyn8p.js → swiper-component-DfhRvAFi.js} +2 -2
- package/dist/{time-BieKwdYS.js → time-BaMbJs4z.js} +18 -18
- package/dist/{timeline-definition-24CTP7MA-D3c46WM5.js → timeline-definition-24CTP7MA-rv7QUa46.js} +1 -1
- package/dist/{toDate-vIXljnsr.js → toDate-CjPuEPou.js} +21 -20
- package/dist/{toast-B9UMEi8u.js → toast-CFWpihJU.js} +4 -4
- package/dist/{tooltip-BO1REbqs.js → tooltip-CKO1pHJo.js} +2 -2
- package/dist/{use-restore-focus-BEM7sFWl.js → use-restore-focus-DBCITLeF.js} +1 -1
- package/dist/{useAsyncData-Deh5kszT.js → useAsyncData-ChgNtdmE.js} +15 -14
- package/dist/{useDateFormatter-D8XruNGG.js → useDateFormatter-c_yJtkAe.js} +2 -2
- package/dist/{useDeepCompareMemoize-DXwzRINI.js → useDeepCompareMemoize-Bet7kSsI.js} +1 -1
- package/dist/{useIframeCapabilities-DBETvvPl.js → useIframeCapabilities-BkdeVdXC.js} +1 -1
- package/dist/{useLifecycle-j7D9uD1o.js → useLifecycle-VVmz_24o.js} +3 -3
- package/dist/{useTheme-CRnjkku0.js → useTheme-DympCsQg.js} +5 -5
- package/dist/{vega-component-DTG6zxaY.js → vega-component-DnfQeoyt.js} +147 -147
- package/dist/{vega-embed-container-BNHE18G9.js → vega-embed-container--LYZqguO.js} +2 -2
- package/dist/{vega-loader.browser-DNST6uVf.js → vega-loader.browser-B9Pz0EGP.js} +298 -507
- package/dist/{vennDiagram-4TSXK5OY-BSZD8JcZ.js → vennDiagram-4TSXK5OY-D36Zk7t-.js} +1 -1
- package/dist/{wardleyDiagram-VM6X3IG4-48cUWkfA.js → wardleyDiagram-VM6X3IG4-BLBolvyQ.js} +1 -1
- package/dist/{xychartDiagram-S5SC5T6Z-CswYgYeu.js → xychartDiagram-S5SC5T6Z-CfH57l0v.js} +2 -2
- package/package.json +4 -4
- package/src/__tests__/fixtures/{pair-preview.ts → pair-config.ts} +3 -2
- package/src/__tests__/host-imports.test.ts +1 -0
- package/src/__tests__/mount.test.ts +8 -8
- package/src/components/app-config/ai-config.tsx +5 -1
- package/src/components/chat/__tests__/message-queue.test.tsx +17 -0
- package/src/components/chat/chat-panel.tsx +3 -7
- package/src/components/chat/chat-utils.ts +4 -8
- package/src/components/data-table/__tests__/context-menu-interaction.test.tsx +130 -0
- package/src/components/data-table/__tests__/date-popover.test.tsx +72 -0
- package/src/components/data-table/__tests__/export-actions.test.tsx +417 -6
- package/src/components/data-table/column-visibility-dropdown.tsx +8 -13
- package/src/components/data-table/columns.tsx +2 -1
- package/src/components/data-table/context-menu.tsx +36 -20
- package/src/components/data-table/date-popover.tsx +6 -4
- package/src/components/data-table/export-actions.tsx +263 -161
- package/src/components/data-table/row-viewer-panel/row-viewer.tsx +2 -2
- package/src/components/data-table/schemas.ts +14 -36
- package/src/components/editor/Output.tsx +5 -1
- package/src/components/editor/__tests__/dynamic-favicon.test.tsx +111 -18
- package/src/components/editor/actions/__tests__/pair-with-agent-commands.test.ts +80 -252
- package/src/components/editor/actions/__tests__/pair-with-agent-modal.test.tsx +186 -34
- package/src/components/editor/actions/pair-with-agent-commands.ts +42 -51
- package/src/components/editor/actions/pair-with-agent-modal.tsx +96 -36
- package/src/components/editor/ai/add-cell-with-ai.tsx +3 -3
- package/src/components/editor/cell/CreateCellButton.tsx +8 -10
- package/src/components/editor/cell/code/__tests__/language-toggle.test.tsx +54 -0
- package/src/components/editor/cell/code/cell-editor.tsx +1 -1
- package/src/components/editor/cell/code/language-toggle.tsx +8 -7
- package/src/components/editor/chrome/wrapper/__tests__/attachment-status.test.tsx +277 -78
- package/src/components/editor/chrome/wrapper/footer-items/attachment-status.tsx +196 -41
- package/src/components/editor/connections/components.tsx +1 -1
- package/src/components/editor/controls/__tests__/command-palette.test.tsx +53 -0
- package/src/components/editor/controls/command-palette.tsx +22 -10
- package/src/components/editor/dynamic-favicon.tsx +21 -40
- package/src/components/editor/errors/__tests__/send-error-report-button.test.tsx +139 -36
- package/src/components/editor/errors/send-error-report-button.tsx +10 -7
- package/src/components/editor/file-tree/file-viewer.tsx +4 -2
- package/src/components/editor/output/MarimoTracebackOutput.tsx +28 -22
- package/src/components/editor/output/console/ConsoleOutput.tsx +8 -18
- package/src/components/pages/home-page.tsx +4 -4
- package/src/components/slides/slide-cell-view.tsx +1 -1
- package/src/components/tracing/tracing.tsx +2 -2
- package/src/core/attachments/__tests__/toast.test.tsx +58 -0
- package/src/core/attachments/state.ts +5 -8
- package/src/core/attachments/toast.ts +15 -0
- package/src/core/cells/__tests__/error-report.test.ts +53 -3
- package/src/core/cells/__tests__/notebook-outline.test.ts +113 -0
- package/src/core/cells/__tests__/session.test.ts +18 -3
- package/src/core/cells/cells.ts +2 -1
- package/src/core/cells/error-report.ts +14 -6
- package/src/core/cells/pending-delete-service.ts +2 -6
- package/src/core/cells/session.ts +19 -1
- package/src/core/config/pair.ts +5 -3
- package/src/core/datasets/__tests__/data-source-discovery.test.ts +4 -4
- package/src/core/datasets/data-source-discovery.ts +4 -6
- package/src/core/edit-app.tsx +2 -2
- package/src/core/host/AGENTS.md +11 -2
- package/src/core/host/__tests__/attachments.test.ts +56 -0
- package/src/core/host/__tests__/document.test.ts +126 -0
- package/src/core/host/__tests__/events.test.ts +49 -0
- package/src/core/host/__tests__/fixtures.ts +41 -0
- package/src/core/host/__tests__/notebook-client.test.ts +496 -0
- package/src/core/host/connection.ts +81 -0
- package/src/core/host/events.ts +68 -0
- package/src/core/host/notebook-client.ts +316 -0
- package/src/core/host/resources/attachments.ts +19 -0
- package/src/core/host/resources/document.ts +101 -0
- package/src/core/hotkeys/actions.ts +2 -4
- package/src/core/islands/__tests__/bootstrap.test.ts +0 -26
- package/src/core/islands/bootstrap.ts +0 -1
- package/src/core/network/connection.ts +4 -2
- package/src/core/run-app.tsx +2 -2
- package/src/core/runtime/__tests__/runtime.test.ts +5 -12
- package/src/core/runtime/runtime.ts +5 -5
- package/src/core/static/files.ts +2 -0
- package/src/core/websocket/__tests__/{useMarimoKernelConnection.test.ts → connection-state.test.ts} +15 -17
- package/src/core/websocket/__tests__/{useWebSocket.test.ts → createConnectionTransport.test.ts} +1 -1
- package/src/core/websocket/__tests__/useNotebookClient.hook.test.tsx +149 -0
- package/src/core/websocket/__tests__/{useMarimoKernelConnection.hook.test.tsx → useNotebookSession.hook.test.tsx} +168 -253
- package/src/core/websocket/connection-state.ts +70 -0
- package/src/core/websocket/state.ts +7 -0
- package/src/core/websocket/transports/__tests__/sse.test.ts +18 -4
- package/src/core/websocket/transports/create.ts +31 -0
- package/src/core/websocket/transports/sse.ts +14 -2
- package/src/core/websocket/transports/transport.ts +12 -23
- package/src/core/websocket/types.ts +9 -39
- package/src/core/websocket/useNotebookClient.ts +78 -0
- package/src/core/websocket/{useMarimoKernelConnection.tsx → useNotebookSession.tsx} +53 -233
- package/src/hooks/__tests__/useAsyncData.test.tsx +148 -0
- package/src/hooks/useAsyncData.ts +3 -3
- package/src/hooks/useDataSourceDiscovery.ts +6 -4
- package/src/hooks/useElapsedTime.ts +3 -3
- package/src/hooks/useInputHistory.ts +4 -7
- package/src/hooks/useResizeObserver.ts +4 -7
- package/src/mount.tsx +3 -3
- package/src/plugins/core/registerReactComponent.tsx +1 -1
- package/src/plugins/impl/DropdownPlugin.tsx +2 -6
- package/src/plugins/impl/FormPlugin.tsx +1 -1
- package/src/plugins/impl/__tests__/DataTablePlugin.test.tsx +84 -0
- package/src/plugins/impl/anywidget/__tests__/registry.test.ts +2 -0
- package/src/plugins/impl/anywidget/__tests__/widget-binding.test.ts +241 -2
- package/src/plugins/impl/anywidget/runtime.ts +21 -9
- package/src/plugins/impl/anywidget/widget-binding.ts +160 -82
- package/src/plugins/impl/code/any-language-editor.tsx +2 -2
- package/src/plugins/impl/data-editor/glide-data-editor.tsx +8 -5
- package/src/plugins/impl/data-editor/glide-utils.ts +3 -1
- package/src/plugins/impl/mpl-interactive/MplInteractivePlugin.tsx +5 -3
- package/src/plugins/impl/panel/PanelPlugin.tsx +15 -16
- package/src/plugins/impl/panel/__tests__/utils.test.ts +39 -1
- package/src/plugins/impl/panel/utils.ts +17 -0
- package/src/plugins/impl/vega/make-selectable.ts +3 -6
- package/src/stories/__tests__/editor-story.test.tsx +33 -0
- package/src/stories/editor.stories.tsx +24 -17
- package/src/utils/__tests__/arrays.test.ts +35 -0
- package/src/utils/__tests__/numbers.test.ts +48 -1
- package/src/utils/__tests__/objects.test.ts +21 -0
- package/src/utils/arrays.ts +10 -0
- package/src/utils/numbers.ts +28 -17
- package/src/utils/objects.ts +3 -7
- package/src/utils/once.ts +19 -19
- package/dist/any-language-editor-DZ_YTVus.js +0 -76
- package/dist/mermaid-HWGCJPDP-ByCsZnYF.js +0 -2
- package/dist/precisionRound-DMIVQrt2.js +0 -97
- package/src/core/host/__tests__/protocol.test.ts +0 -214
- package/src/core/host/protocol.ts +0 -1943
- package/src/core/websocket/useWebSocket.tsx +0 -88
|
@@ -1,32 +1,32 @@
|
|
|
1
1
|
import { a as e, i as t, n, r, t as i } from "./rolldown-runtime-Cb76FRpK.js";
|
|
2
|
-
import { g as a, h as o, o as s, p as c, t as l } from "./button-
|
|
2
|
+
import { g as a, h as o, o as s, p as c, t as l } from "./button-BxB3RDjN.js";
|
|
3
3
|
import { t as u } from "./react-sHtZdjeP.js";
|
|
4
4
|
import { t as d } from "./compiler-runtime-CldRdSsv.js";
|
|
5
|
-
import { i as f } from "./copy-icon-
|
|
6
|
-
import { d as p, h as m, i as h, t as g } from "./tooltip-
|
|
7
|
-
import { a as _, c as v, i as y, o as b, r as x, s as S, t as C } from "./useLifecycle-
|
|
8
|
-
import { t as w } from "./check-
|
|
9
|
-
import { C as T, S as ee, a as te, b as ne, c as re, i as ie, n as ae, o as oe, r as se, s as ce, t as le } from "./select-
|
|
10
|
-
import { C as ue, S as de, _ as fe, b as pe, g as me, h as E, o as he, t as ge, x as _e } from "./toDate-
|
|
5
|
+
import { i as f } from "./copy-icon-CPoxUG7G.js";
|
|
6
|
+
import { d as p, h as m, i as h, t as g } from "./tooltip-CKO1pHJo.js";
|
|
7
|
+
import { a as _, c as v, i as y, o as b, r as x, s as S, t as C } from "./useLifecycle-VVmz_24o.js";
|
|
8
|
+
import { t as w } from "./check-P35dc2dH.js";
|
|
9
|
+
import { C as T, S as ee, a as te, b as ne, c as re, i as ie, n as ae, o as oe, r as se, s as ce, t as le } from "./select-B0LRDH0g.js";
|
|
10
|
+
import { C as ue, S as de, _ as fe, b as pe, g as me, h as E, o as he, t as ge, x as _e } from "./toDate-CjPuEPou.js";
|
|
11
11
|
import { t as ve } from "./react-dom-DUmH0GXv.js";
|
|
12
12
|
import { t as ye } from "./jsx-runtime-3BD1kT0s.js";
|
|
13
|
-
import { C as be, Ct as xe, D as Se, F as D, L as O, M as Ce, S as we, St as Te, bt as Ee, j as De, wt as k, yt as Oe } from "./use-restore-focus-
|
|
14
|
-
import { c as ke, n as Ae } from "./toast-
|
|
13
|
+
import { C as be, Ct as xe, D as Se, F as D, L as O, M as Ce, S as we, St as Te, bt as Ee, j as De, wt as k, yt as Oe } from "./use-restore-focus-DBCITLeF.js";
|
|
14
|
+
import { c as ke, n as Ae } from "./toast-CFWpihJU.js";
|
|
15
15
|
import { t as je } from "./debounce-C3jyATpc.js";
|
|
16
|
-
import { C as Me, E as A, S as Ne, _ as j, b as Pe, c as Fe, g as Ie, k as Le, l as Re, t as ze, x as Be, y as Ve } from "./useTheme-
|
|
16
|
+
import { C as Me, E as A, S as Ne, _ as j, b as Pe, c as Fe, g as Ie, k as Le, l as Re, t as ze, x as Be, y as Ve } from "./useTheme-DympCsQg.js";
|
|
17
17
|
import { $ as He, At as Ue, B as We, Bt as Ge, Ct as Ke, E as qe, Ft as Je, H as Ye, I as Xe, L as Ze, Mt as Qe, Pt as $e, Rt as et, S as tt, St as nt, Tt as rt, U as it, Vt as at, X as ot, Z as st, b as ct, et as lt, f as ut, ht as dt, jt as ft, kt as pt, l as M, mt, tt as ht, u as gt, ut as _t, vt, w as yt, z as bt, zt as xt } from "./dist-DoE4XJBC.js";
|
|
18
18
|
import { i as St, o as Ct, r as wt, s as Tt, t as Et, u as Dt } from "./dist-CN8zI-XC.js";
|
|
19
19
|
import { t as N } from "./invariant-DLmrl-hA.js";
|
|
20
|
-
import { a as Ot, i as kt, n as At, r as jt, s as Mt, u as Nt } from "./arrays-
|
|
21
|
-
import { t as Pt } from "./objects-
|
|
22
|
-
import { n as Ft } from "./once-
|
|
23
|
-
import { t as It } from "./capabilities-
|
|
20
|
+
import { a as Ot, i as kt, n as At, r as jt, s as Mt, u as Nt } from "./arrays-R6JsImiT.js";
|
|
21
|
+
import { t as Pt } from "./objects-DCmMvZtn.js";
|
|
22
|
+
import { n as Ft } from "./once-eG8Vmvjd.js";
|
|
23
|
+
import { t as It } from "./capabilities-BgR0osfN.js";
|
|
24
24
|
import { d as Lt, n as Rt, r as zt, u as Bt } from "./dist-CkTTIdBe.js";
|
|
25
25
|
import { a as Vt, c as Ht, d as Ut, f as Wt, i as Gt, l as Kt, n as qt, o as Jt, p as Yt, r as P, s as Xt, t as Zt } from "./dist-diIx5qJW.js";
|
|
26
26
|
import { n as Qt, r as $t } from "./dist-CrSP_H1M.js";
|
|
27
27
|
import { a as en, i as tn, n as nn, o as rn, r as an } from "./dist-BorMD-uX.js";
|
|
28
28
|
import { n as on } from "./stex-Btf3omL8.js";
|
|
29
|
-
import { t as sn } from "./useAsyncData-
|
|
29
|
+
import { t as sn } from "./useAsyncData-ChgNtdmE.js";
|
|
30
30
|
import { t as cn } from "./purify.es-DMv5zIkJ.js";
|
|
31
31
|
var ln = m("activity", [["path", {
|
|
32
32
|
d: "M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",
|
|
@@ -762,7 +762,7 @@ function or(e) {
|
|
|
762
762
|
}
|
|
763
763
|
Wn(or, "getState");
|
|
764
764
|
//#endregion
|
|
765
|
-
//#region ../node_modules/.pnpm/jotai@2.20.3_@babel+core@7.29.
|
|
765
|
+
//#region ../node_modules/.pnpm/jotai@2.20.3_@babel+core@7.29.0_supports-color@10.0.0__@babel+template@7.28.6_@types+react@19.3.0_react@19.3.0/node_modules/jotai/esm/vanilla/utils.mjs
|
|
766
766
|
var sr = /* @__PURE__ */ Symbol("");
|
|
767
767
|
function cr(e, t) {
|
|
768
768
|
return A(e, function(e, n, r) {
|
|
@@ -18123,7 +18123,7 @@ function wu(e) {
|
|
|
18123
18123
|
}
|
|
18124
18124
|
var Tu = new Cu(), Eu = et.define();
|
|
18125
18125
|
async function Du(e, t) {
|
|
18126
|
-
let { formatDialect: n } = await import("./esm-G4Fhsgng.js"), r = await Ou(Tu.getInternalDialect(t)), i = e.state.field(
|
|
18126
|
+
let { formatDialect: n } = await import("./esm-G4Fhsgng.js"), r = await Ou(Tu.getInternalDialect(t)), i = e.state.field(Ny), o = qe(e.state);
|
|
18127
18127
|
if (i.type !== "sql") {
|
|
18128
18128
|
a.error("Language adapter is not SQL");
|
|
18129
18129
|
return;
|
|
@@ -21943,7 +21943,7 @@ function Sp(e) {
|
|
|
21943
21943
|
//#endregion
|
|
21944
21944
|
//#region src/core/codemirror/lsp/utils.ts
|
|
21945
21945
|
function Cp(e) {
|
|
21946
|
-
return bp.is(e) ? j.get(
|
|
21946
|
+
return bp.is(e) ? j.get(vx).inOrderIds.includes(bp.parse(e)) : !1;
|
|
21947
21947
|
}
|
|
21948
21948
|
function wp() {
|
|
21949
21949
|
return j.get(ii)?.rootUri ?? "file:///";
|
|
@@ -22135,7 +22135,7 @@ var Fp = A((e) => {
|
|
|
22135
22135
|
let t = e($);
|
|
22136
22136
|
return Pt.fromEntries(t.cellIds.inOrderIds.map((e) => {
|
|
22137
22137
|
let n = t.cellHandles[e]?.current?.editorViewOrNull;
|
|
22138
|
-
return [e, n ?
|
|
22138
|
+
return [e, n ? Ly(n) : t.cellData[e]?.code ?? ""];
|
|
22139
22139
|
}));
|
|
22140
22140
|
}), Ip = A((e) => e($).cellIds.inOrderIds), Lp = A((e) => zp(e(Ip), e(Cd))), Rp = A((e) => ({
|
|
22141
22141
|
cellIds: e(Lp),
|
|
@@ -22406,7 +22406,7 @@ var cm = class {
|
|
|
22406
22406
|
return Bp(e, t);
|
|
22407
22407
|
}
|
|
22408
22408
|
}, lm = () => {
|
|
22409
|
-
let e =
|
|
22409
|
+
let e = Tx().cellHandles;
|
|
22410
22410
|
return Pt.mapValues(e, (e) => e.current?.editorViewOrNull);
|
|
22411
22411
|
};
|
|
22412
22412
|
function um(e) {
|
|
@@ -22523,7 +22523,7 @@ var vm = class {
|
|
|
22523
22523
|
cellIds: e,
|
|
22524
22524
|
codes: Pt.fromEntries(e.map((e) => {
|
|
22525
22525
|
let r = n[e];
|
|
22526
|
-
return [e, r ?
|
|
22526
|
+
return [e, r ? Ly(r) : t[e] ?? ""];
|
|
22527
22527
|
}))
|
|
22528
22528
|
};
|
|
22529
22529
|
}
|
|
@@ -22665,7 +22665,7 @@ var vm = class {
|
|
|
22665
22665
|
a.warn("[lsp] No editor view for cell during rename", e), m.push(e);
|
|
22666
22666
|
continue;
|
|
22667
22667
|
}
|
|
22668
|
-
|
|
22668
|
+
Ly(t) !== r && (Ry(t, r), h++);
|
|
22669
22669
|
}
|
|
22670
22670
|
return m.length > 0 && a.error(`[lsp] Rename partially failed: could not update ${m.length} cell(s)`, m), a.debug(`[lsp] Rename completed: updated ${h} cell(s)`), {
|
|
22671
22671
|
...o,
|
|
@@ -22936,21 +22936,19 @@ function Tm() {
|
|
|
22936
22936
|
function Em() {
|
|
22937
22937
|
return me() ? Tm() : Promise.resolve();
|
|
22938
22938
|
}
|
|
22939
|
-
A((e) => e(wm).state === Cm.CONNECTING)
|
|
22940
|
-
var Dm = A((e) => e(wm).state === Cm.OPEN);
|
|
22941
|
-
A((e) => {
|
|
22939
|
+
A((e) => e(wm).state === Cm.CONNECTING), A((e) => e(wm).state === Cm.OPEN), A((e) => {
|
|
22942
22940
|
let t = e(wm);
|
|
22943
22941
|
return t.state === Cm.OPEN || t.state === Cm.NOT_STARTED;
|
|
22944
22942
|
}), A((e) => e(wm).state === Cm.CLOSED), A((e) => e(wm).state === Cm.NOT_STARTED);
|
|
22945
22943
|
//#endregion
|
|
22946
22944
|
//#region src/core/codemirror/lsp/log-messages.ts
|
|
22947
|
-
var
|
|
22948
|
-
function
|
|
22945
|
+
var Dm = /* @__PURE__ */ new Set([1, 2]);
|
|
22946
|
+
function Om(e, t) {
|
|
22949
22947
|
if (!("method" in t) || t.method !== "window/logMessage") return;
|
|
22950
22948
|
let n = t.params;
|
|
22951
|
-
!Np(n) || typeof n.message != "string" ||
|
|
22949
|
+
!Np(n) || typeof n.message != "string" || _x({ logs: [{
|
|
22952
22950
|
timestamp: Date.now() / 1e3,
|
|
22953
|
-
level:
|
|
22951
|
+
level: Dm.has(n.type) ? "stderr" : "stdout",
|
|
22954
22952
|
message: n.message,
|
|
22955
22953
|
source: {
|
|
22956
22954
|
type: "lsp",
|
|
@@ -22960,7 +22958,7 @@ function km(e, t) {
|
|
|
22960
22958
|
}
|
|
22961
22959
|
//#endregion
|
|
22962
22960
|
//#region src/core/codemirror/lsp/transports.ts
|
|
22963
|
-
function
|
|
22961
|
+
function km(e, t) {
|
|
22964
22962
|
let n = he(), r = new Sm({
|
|
22965
22963
|
getWsUrl: () => n.getLSPURL(e).toString(),
|
|
22966
22964
|
waitForConnection: async () => {
|
|
@@ -22968,27 +22966,27 @@ function Am(e, t) {
|
|
|
22968
22966
|
},
|
|
22969
22967
|
onReconnect: t
|
|
22970
22968
|
});
|
|
22971
|
-
return r.onMessage((t) =>
|
|
22969
|
+
return r.onMessage((t) => Om(e, t)), r;
|
|
22972
22970
|
}
|
|
22973
22971
|
et.define(), new pt();
|
|
22974
|
-
function
|
|
22972
|
+
function Am(e) {
|
|
22975
22973
|
return e.facet(ft.readOnly);
|
|
22976
22974
|
}
|
|
22977
22975
|
//#endregion
|
|
22978
22976
|
//#region src/core/codemirror/placeholder/extensions.ts
|
|
22979
|
-
function
|
|
22977
|
+
function jm(e) {
|
|
22980
22978
|
return [vt(e), dt.of([{
|
|
22981
22979
|
key: "ArrowRight",
|
|
22982
22980
|
preventDefault: !0,
|
|
22983
|
-
run: (t) =>
|
|
22981
|
+
run: (t) => Mm(t, e)
|
|
22984
22982
|
}, {
|
|
22985
22983
|
key: "Tab",
|
|
22986
22984
|
preventDefault: !0,
|
|
22987
|
-
run: (t) =>
|
|
22985
|
+
run: (t) => Mm(t, e)
|
|
22988
22986
|
}])];
|
|
22989
22987
|
}
|
|
22990
|
-
function
|
|
22991
|
-
if (
|
|
22988
|
+
function Mm(e, t) {
|
|
22989
|
+
if (Am(e.state)) return !1;
|
|
22992
22990
|
let n = e.state.doc.length;
|
|
22993
22991
|
return n === 0 && (e.dispatch({
|
|
22994
22992
|
changes: {
|
|
@@ -23002,7 +23000,7 @@ function Nm(e, t) {
|
|
|
23002
23000
|
}
|
|
23003
23001
|
}), !0);
|
|
23004
23002
|
}
|
|
23005
|
-
function
|
|
23003
|
+
function Nm(e) {
|
|
23006
23004
|
let { beforeText: t, linkText: n, afterText: r, onClick: i } = e;
|
|
23007
23005
|
return [vt((e) => {
|
|
23008
23006
|
let a = document.createElement("span");
|
|
@@ -23025,9 +23023,9 @@ function Pm(e) {
|
|
|
23025
23023
|
}
|
|
23026
23024
|
//#endregion
|
|
23027
23025
|
//#region src/core/codemirror/language/languages/python.ts
|
|
23028
|
-
var
|
|
23026
|
+
var Pm = Ft((e) => {
|
|
23029
23027
|
let t, n = {
|
|
23030
|
-
transport:
|
|
23028
|
+
transport: km("pylsp", async () => {
|
|
23031
23029
|
await t?.();
|
|
23032
23030
|
}),
|
|
23033
23031
|
rootUri: wp(),
|
|
@@ -23072,9 +23070,9 @@ var Fm = Ft((e) => {
|
|
|
23072
23070
|
}
|
|
23073
23071
|
} } }, c = new vm(new oc({ ...n }), s);
|
|
23074
23072
|
return t = () => c.resyncAllDocuments(), c;
|
|
23075
|
-
}),
|
|
23073
|
+
}), Fm = Ft((e) => {
|
|
23076
23074
|
let t, n = new vm(new oc({
|
|
23077
|
-
transport:
|
|
23075
|
+
transport: km("ty", async () => {
|
|
23078
23076
|
await t?.();
|
|
23079
23077
|
}),
|
|
23080
23078
|
rootUri: wp(),
|
|
@@ -23082,9 +23080,9 @@ var Fm = Ft((e) => {
|
|
|
23082
23080
|
getWorkspaceConfiguration: (e) => [{ disableLanguageServices: !0 }]
|
|
23083
23081
|
}), {});
|
|
23084
23082
|
return t = () => n.resyncAllDocuments(), n;
|
|
23085
|
-
}),
|
|
23083
|
+
}), Im = Ft((e) => {
|
|
23086
23084
|
let t, n = new vm(new oc({
|
|
23087
|
-
transport:
|
|
23085
|
+
transport: km("pyrefly", async () => {
|
|
23088
23086
|
await t?.();
|
|
23089
23087
|
}),
|
|
23090
23088
|
rootUri: wp(),
|
|
@@ -23092,16 +23090,16 @@ var Fm = Ft((e) => {
|
|
|
23092
23090
|
initializationOptions: { pyrefly: { displayTypeErrors: e.diagnostics?.enabled ?? !1 ? "force-on" : "force-off" } }
|
|
23093
23091
|
}), {});
|
|
23094
23092
|
return t = () => n.resyncAllDocuments(), n;
|
|
23095
|
-
}),
|
|
23093
|
+
}), Lm = Ft((e) => {
|
|
23096
23094
|
let t, n = new vm(new oc({
|
|
23097
|
-
transport:
|
|
23095
|
+
transport: km("basedpyright", async () => {
|
|
23098
23096
|
await t?.();
|
|
23099
23097
|
}),
|
|
23100
23098
|
rootUri: wp(),
|
|
23101
23099
|
workspaceFolders: Tp()
|
|
23102
23100
|
}), {});
|
|
23103
23101
|
return t = () => n.resyncAllDocuments(), n;
|
|
23104
|
-
}),
|
|
23102
|
+
}), Rm = class {
|
|
23105
23103
|
parser = new ld();
|
|
23106
23104
|
type = "python";
|
|
23107
23105
|
defaultCode = this.parser.defaultCode;
|
|
@@ -23129,7 +23127,7 @@ var Fm = Ft((e) => {
|
|
|
23129
23127
|
activateOnTyping: t.activate_on_typing,
|
|
23130
23128
|
closeOnBlur: !1
|
|
23131
23129
|
}, o = { hideOnChange: !0 }, s = [];
|
|
23132
|
-
i?.pylsp?.enabled && Vd("pylsp") && s.push(
|
|
23130
|
+
i?.pylsp?.enabled && Vd("pylsp") && s.push(Pm(i)), i?.ty?.enabled && Vd("ty") && s.push(Fm(i)), i?.pyrefly?.enabled && Vd("pyrefly") && s.push(Im(i)), i?.basedpyright?.enabled && Vd("basedpyright") && s.push(Lm(i));
|
|
23133
23131
|
let c = t.signature_hint_on_typing, l = c ? /(\w+|\w+\.|\/)$/ : /(\w+|\w+\.|\(|\/|,)$/;
|
|
23134
23132
|
if (s.length > 0) {
|
|
23135
23133
|
let t = s.length === 1 ? s[0] : new kp(s), u = (e) => {
|
|
@@ -23164,13 +23162,13 @@ var Fm = Ft((e) => {
|
|
|
23164
23162
|
override: [Af]
|
|
23165
23163
|
}), kf];
|
|
23166
23164
|
})(),
|
|
23167
|
-
|
|
23168
|
-
|
|
23165
|
+
Vm(),
|
|
23166
|
+
zm(r)
|
|
23169
23167
|
];
|
|
23170
23168
|
}
|
|
23171
23169
|
};
|
|
23172
|
-
function
|
|
23173
|
-
return e === "marimo-import" ? $e.highest(
|
|
23170
|
+
function zm(e) {
|
|
23171
|
+
return e === "marimo-import" ? $e.highest(jm("import marimo as mo")) : e === "ai" ? Nm({
|
|
23174
23172
|
beforeText: "Start coding or ",
|
|
23175
23173
|
linkText: "generate",
|
|
23176
23174
|
afterText: " with AI.",
|
|
@@ -23179,44 +23177,44 @@ function Bm(e) {
|
|
|
23179
23177
|
}
|
|
23180
23178
|
}) : [];
|
|
23181
23179
|
}
|
|
23182
|
-
var
|
|
23180
|
+
var Bm = en.configure({ props: [yt.add({
|
|
23183
23181
|
ParenthesizedExpression: tt,
|
|
23184
23182
|
ArgList: tt
|
|
23185
23183
|
})] });
|
|
23186
|
-
function
|
|
23187
|
-
return new gt(
|
|
23184
|
+
function Vm() {
|
|
23185
|
+
return new gt(Bm, [Bm.data.of({ autocomplete: an }), Bm.data.of({ autocomplete: nn })]);
|
|
23188
23186
|
}
|
|
23189
23187
|
//#endregion
|
|
23190
23188
|
//#region ../node_modules/.pnpm/@marimo-team+codemirror-sql@0.3.0_@codemirror+autocomplete@6.20.3_@codemirror+lint@6.9._ea1055731b2d7fd34c5d3340d30da00f/node_modules/@marimo-team/codemirror-sql/dist/sql/namespace-utils.js
|
|
23191
|
-
function
|
|
23192
|
-
return typeof e == "object" && !Array.isArray(e) && !
|
|
23189
|
+
function Hm(e) {
|
|
23190
|
+
return typeof e == "object" && !Array.isArray(e) && !Um(e);
|
|
23193
23191
|
}
|
|
23194
|
-
function
|
|
23192
|
+
function Um(e) {
|
|
23195
23193
|
if (typeof e != "object" || Array.isArray(e) || !("self" in e) || !("children" in e)) return !1;
|
|
23196
23194
|
let t = e.self;
|
|
23197
23195
|
return typeof t == "object" && !!t && !Array.isArray(t) && typeof t.label == "string";
|
|
23198
23196
|
}
|
|
23199
|
-
function
|
|
23197
|
+
function Wm(e) {
|
|
23200
23198
|
return Array.isArray(e);
|
|
23201
23199
|
}
|
|
23202
|
-
function
|
|
23200
|
+
function Gm(e, t, n, r) {
|
|
23203
23201
|
let i = e.length;
|
|
23204
|
-
if (t === "string" || t === "completion" && r &&
|
|
23202
|
+
if (t === "string" || t === "completion" && r && Wm(r)) return "column";
|
|
23205
23203
|
if (t === "namespace" && n) {
|
|
23206
|
-
if (
|
|
23207
|
-
if (
|
|
23204
|
+
if (Wm(n)) return "table";
|
|
23205
|
+
if (Hm(n)) return Object.values(n).some((e) => Wm(e) || Um(e) && Wm(e.children)) ? i <= 1 ? "database" : "schema" : i === 0 ? "database" : "namespace";
|
|
23208
23206
|
}
|
|
23209
|
-
if (t === "completion" && n) return
|
|
23207
|
+
if (t === "completion" && n) return Wm(n) ? "table" : (Hm(n) && Object.values(n).some((e) => Wm(e) || Um(e) && Wm(e.children)), i <= 1 ? "database" : "schema");
|
|
23210
23208
|
switch (i) {
|
|
23211
23209
|
case 0: return "database";
|
|
23212
23210
|
case 1: return "schema";
|
|
23213
23211
|
default: return "namespace";
|
|
23214
23212
|
}
|
|
23215
23213
|
}
|
|
23216
|
-
function
|
|
23214
|
+
function Km(e, t, n = {}) {
|
|
23217
23215
|
let { maxDepth: r = 10 } = n;
|
|
23218
|
-
if ((typeof t == "string" ? t === "" : t.length === 0) &&
|
|
23219
|
-
let t =
|
|
23216
|
+
if ((typeof t == "string" ? t === "" : t.length === 0) && Um(e)) {
|
|
23217
|
+
let t = Gm([], "completion", e.children);
|
|
23220
23218
|
return {
|
|
23221
23219
|
completion: e.self,
|
|
23222
23220
|
path: [],
|
|
@@ -23226,12 +23224,12 @@ function qm(e, t, n = {}) {
|
|
|
23226
23224
|
};
|
|
23227
23225
|
}
|
|
23228
23226
|
let i = (typeof t == "string" ? t.split(".") : t).filter((e) => e.length > 0);
|
|
23229
|
-
return i.length === 0 || i.length > r ? null :
|
|
23227
|
+
return i.length === 0 || i.length > r ? null : qm(e, i, [], n);
|
|
23230
23228
|
}
|
|
23231
|
-
function
|
|
23229
|
+
function qm(e, t, n, r, i) {
|
|
23232
23230
|
if (t.length === 0) {
|
|
23233
|
-
if (
|
|
23234
|
-
let t =
|
|
23231
|
+
if (Um(e)) {
|
|
23232
|
+
let t = Gm(n, "completion", e.children, i);
|
|
23235
23233
|
return {
|
|
23236
23234
|
completion: e.self,
|
|
23237
23235
|
path: n,
|
|
@@ -23243,23 +23241,23 @@ function Jm(e, t, n, r, i) {
|
|
|
23243
23241
|
return {
|
|
23244
23242
|
path: n,
|
|
23245
23243
|
type: "namespace",
|
|
23246
|
-
semanticType:
|
|
23244
|
+
semanticType: Gm(n, "namespace", e, i),
|
|
23247
23245
|
namespace: e
|
|
23248
23246
|
};
|
|
23249
23247
|
}
|
|
23250
23248
|
let [a, ...o] = t, { caseSensitive: s = !1 } = r;
|
|
23251
23249
|
if (!a) return null;
|
|
23252
|
-
if (
|
|
23250
|
+
if (Hm(e)) {
|
|
23253
23251
|
let t = s ? Object.keys(e).find((e) => e === a) : Object.keys(e).find((e) => e.toLowerCase() === a.toLowerCase());
|
|
23254
23252
|
if (t) {
|
|
23255
23253
|
let i = e[t];
|
|
23256
|
-
if (i) return
|
|
23254
|
+
if (i) return qm(i, o, [...n, t], r, e);
|
|
23257
23255
|
}
|
|
23258
|
-
} else if (
|
|
23259
|
-
else if (
|
|
23256
|
+
} else if (Um(e)) return qm(e.children, t, n, r, e);
|
|
23257
|
+
else if (Wm(e)) {
|
|
23260
23258
|
for (let t of e) if (typeof t == "string") {
|
|
23261
23259
|
if ((s ? t === a : t.toLowerCase() === a.toLowerCase()) && o.length === 0) {
|
|
23262
|
-
let r =
|
|
23260
|
+
let r = Gm([...n, t], "string", void 0, e);
|
|
23263
23261
|
return {
|
|
23264
23262
|
value: t,
|
|
23265
23263
|
path: [...n, t],
|
|
@@ -23268,7 +23266,7 @@ function Jm(e, t, n, r, i) {
|
|
|
23268
23266
|
};
|
|
23269
23267
|
}
|
|
23270
23268
|
} else if ((s ? t.label === a : t.label.toLowerCase() === a.toLowerCase()) && o.length === 0) {
|
|
23271
|
-
let r =
|
|
23269
|
+
let r = Gm([...n, t.label], "completion", void 0, e);
|
|
23272
23270
|
return {
|
|
23273
23271
|
completion: t,
|
|
23274
23272
|
path: [...n, t.label],
|
|
@@ -23279,20 +23277,20 @@ function Jm(e, t, n, r, i) {
|
|
|
23279
23277
|
}
|
|
23280
23278
|
return null;
|
|
23281
23279
|
}
|
|
23282
|
-
function
|
|
23280
|
+
function Jm(e, t, n = {}) {
|
|
23283
23281
|
let r = [];
|
|
23284
23282
|
if (t.includes(".")) {
|
|
23285
|
-
let r = t.lastIndexOf("."), i = t.substring(0, r), a = t.substring(r + 1), o =
|
|
23286
|
-
if (o?.namespace) return
|
|
23287
|
-
} else return
|
|
23283
|
+
let r = t.lastIndexOf("."), i = t.substring(0, r), a = t.substring(r + 1), o = Km(e, i, n);
|
|
23284
|
+
if (o?.namespace) return Ym(o.namespace, a, o.path, n);
|
|
23285
|
+
} else return Ym(e, t, [], n);
|
|
23288
23286
|
return r;
|
|
23289
23287
|
}
|
|
23290
|
-
function
|
|
23288
|
+
function Ym(e, t, n, r) {
|
|
23291
23289
|
let i = [], { caseSensitive: a = !1, allowPartialMatch: o = !0 } = r;
|
|
23292
|
-
if (
|
|
23290
|
+
if (Hm(e)) {
|
|
23293
23291
|
for (let [r, s] of Object.entries(e)) if (o ? a ? r.startsWith(t) : r.toLowerCase().startsWith(t.toLowerCase()) : a ? r === t : r.toLowerCase() === t.toLowerCase()) {
|
|
23294
|
-
if (
|
|
23295
|
-
let t =
|
|
23292
|
+
if (Um(s)) {
|
|
23293
|
+
let t = Gm([...n, r], "completion", s.children, e);
|
|
23296
23294
|
i.push({
|
|
23297
23295
|
completion: s.self,
|
|
23298
23296
|
path: [...n, r],
|
|
@@ -23301,7 +23299,7 @@ function Xm(e, t, n, r) {
|
|
|
23301
23299
|
namespace: s.children
|
|
23302
23300
|
});
|
|
23303
23301
|
} else {
|
|
23304
|
-
let t =
|
|
23302
|
+
let t = Gm([...n, r], "namespace", s, e);
|
|
23305
23303
|
i.push({
|
|
23306
23304
|
path: [...n, r],
|
|
23307
23305
|
type: "namespace",
|
|
@@ -23310,9 +23308,9 @@ function Xm(e, t, n, r) {
|
|
|
23310
23308
|
});
|
|
23311
23309
|
}
|
|
23312
23310
|
}
|
|
23313
|
-
} else if (
|
|
23311
|
+
} else if (Um(e)) {
|
|
23314
23312
|
if (o ? a ? e.self.label.startsWith(t) : e.self.label.toLowerCase().startsWith(t.toLowerCase()) : a ? e.self.label === t : e.self.label.toLowerCase() === t.toLowerCase()) {
|
|
23315
|
-
let t =
|
|
23313
|
+
let t = Gm([...n, e.self.label], "completion", e.children);
|
|
23316
23314
|
i.push({
|
|
23317
23315
|
completion: e.self,
|
|
23318
23316
|
path: [...n, e.self.label],
|
|
@@ -23321,11 +23319,11 @@ function Xm(e, t, n, r) {
|
|
|
23321
23319
|
namespace: e.children
|
|
23322
23320
|
});
|
|
23323
23321
|
}
|
|
23324
|
-
i.push(...
|
|
23325
|
-
} else if (
|
|
23322
|
+
i.push(...Ym(e.children, t, n, r));
|
|
23323
|
+
} else if (Wm(e)) {
|
|
23326
23324
|
for (let r of e) if (typeof r == "string") {
|
|
23327
23325
|
if (o ? a ? r.startsWith(t) : r.toLowerCase().startsWith(t.toLowerCase()) : a ? r === t : r.toLowerCase() === t.toLowerCase()) {
|
|
23328
|
-
let t =
|
|
23326
|
+
let t = Gm([...n, r], "string", void 0, e);
|
|
23329
23327
|
i.push({
|
|
23330
23328
|
value: r,
|
|
23331
23329
|
path: [...n, r],
|
|
@@ -23334,7 +23332,7 @@ function Xm(e, t, n, r) {
|
|
|
23334
23332
|
});
|
|
23335
23333
|
}
|
|
23336
23334
|
} else if (o ? a ? r.label.startsWith(t) : r.label.toLowerCase().startsWith(t.toLowerCase()) : a ? r.label === t : r.label.toLowerCase() === t.toLowerCase()) {
|
|
23337
|
-
let t =
|
|
23335
|
+
let t = Gm([...n, r.label], "completion", void 0, e);
|
|
23338
23336
|
i.push({
|
|
23339
23337
|
completion: r,
|
|
23340
23338
|
path: [...n, r.label],
|
|
@@ -23345,49 +23343,49 @@ function Xm(e, t, n, r) {
|
|
|
23345
23343
|
}
|
|
23346
23344
|
return i;
|
|
23347
23345
|
}
|
|
23348
|
-
function
|
|
23346
|
+
function Xm(e, t, n = {}) {
|
|
23349
23347
|
let r = [], { maxDepth: i = 10 } = n;
|
|
23350
|
-
|
|
23348
|
+
Zm(e, [], r, i);
|
|
23351
23349
|
let { caseSensitive: a = !1 } = n;
|
|
23352
23350
|
return r.filter((e) => e.path.some((e) => a ? e === t : e.toLowerCase() === t.toLowerCase())).sort((e, n) => {
|
|
23353
23351
|
let r = a ? e.path[e.path.length - 1] === t : e.path[e.path.length - 1]?.toLowerCase() === t.toLowerCase(), i = a ? n.path[n.path.length - 1] === t : n.path[n.path.length - 1]?.toLowerCase() === t.toLowerCase();
|
|
23354
23352
|
return r && !i ? -1 : !r && i ? 1 : e.path.length - n.path.length;
|
|
23355
23353
|
});
|
|
23356
23354
|
}
|
|
23357
|
-
function
|
|
23355
|
+
function Zm(e, t, n, r) {
|
|
23358
23356
|
if (!(t.length >= r)) {
|
|
23359
|
-
if (
|
|
23357
|
+
if (Hm(e)) for (let [i, a] of Object.entries(e)) {
|
|
23360
23358
|
let o = [...t, i];
|
|
23361
|
-
if (
|
|
23362
|
-
let t =
|
|
23359
|
+
if (Um(a)) {
|
|
23360
|
+
let t = Gm(o, "completion", a.children, e);
|
|
23363
23361
|
n.push({
|
|
23364
23362
|
completion: a.self,
|
|
23365
23363
|
path: o,
|
|
23366
23364
|
type: "completion",
|
|
23367
23365
|
semanticType: t,
|
|
23368
23366
|
namespace: a.children
|
|
23369
|
-
}),
|
|
23367
|
+
}), Zm(a.children, o, n, r);
|
|
23370
23368
|
} else {
|
|
23371
|
-
let t =
|
|
23369
|
+
let t = Gm(o, "namespace", a, e);
|
|
23372
23370
|
n.push({
|
|
23373
23371
|
path: o,
|
|
23374
23372
|
type: "namespace",
|
|
23375
23373
|
semanticType: t,
|
|
23376
23374
|
namespace: a
|
|
23377
|
-
}),
|
|
23375
|
+
}), Zm(a, o, n, r);
|
|
23378
23376
|
}
|
|
23379
23377
|
}
|
|
23380
|
-
else if (
|
|
23381
|
-
let i =
|
|
23378
|
+
else if (Um(e)) {
|
|
23379
|
+
let i = Gm(t, "completion", e.children);
|
|
23382
23380
|
n.push({
|
|
23383
23381
|
completion: e.self,
|
|
23384
23382
|
path: t,
|
|
23385
23383
|
type: "completion",
|
|
23386
23384
|
semanticType: i,
|
|
23387
23385
|
namespace: e.children
|
|
23388
|
-
}),
|
|
23389
|
-
} else if (
|
|
23390
|
-
let i =
|
|
23386
|
+
}), Zm(e.children, t, n, r);
|
|
23387
|
+
} else if (Wm(e)) for (let r of e) if (typeof r == "string") {
|
|
23388
|
+
let i = Gm([...t, r], "string", void 0, e);
|
|
23391
23389
|
n.push({
|
|
23392
23390
|
value: r,
|
|
23393
23391
|
path: [...t, r],
|
|
@@ -23395,7 +23393,7 @@ function Qm(e, t, n, r) {
|
|
|
23395
23393
|
semanticType: i
|
|
23396
23394
|
});
|
|
23397
23395
|
} else {
|
|
23398
|
-
let i =
|
|
23396
|
+
let i = Gm([...t, r.label], "completion", void 0, e);
|
|
23399
23397
|
n.push({
|
|
23400
23398
|
completion: r,
|
|
23401
23399
|
path: [...t, r.label],
|
|
@@ -23405,48 +23403,48 @@ function Qm(e, t, n, r) {
|
|
|
23405
23403
|
}
|
|
23406
23404
|
}
|
|
23407
23405
|
}
|
|
23408
|
-
function
|
|
23409
|
-
let { enableFuzzySearch: r = !1 } = n, i =
|
|
23406
|
+
function Qm(e, t, n = {}) {
|
|
23407
|
+
let { enableFuzzySearch: r = !1 } = n, i = Km(e, t, n);
|
|
23410
23408
|
if (i) return i;
|
|
23411
|
-
let a =
|
|
23409
|
+
let a = Jm(e, t, n);
|
|
23412
23410
|
if (a.length > 0) return a[0] || null;
|
|
23413
23411
|
if (r) {
|
|
23414
|
-
let r =
|
|
23412
|
+
let r = Xm(e, t, n);
|
|
23415
23413
|
if (r.length > 0) return r[0] || null;
|
|
23416
23414
|
}
|
|
23417
23415
|
return null;
|
|
23418
23416
|
}
|
|
23419
23417
|
//#endregion
|
|
23420
23418
|
//#region ../node_modules/.pnpm/@marimo-team+codemirror-sql@0.3.0_@codemirror+autocomplete@6.20.3_@codemirror+lint@6.9._ea1055731b2d7fd34c5d3340d30da00f/node_modules/@marimo-team/codemirror-sql/dist/sql/schema-facet.js
|
|
23421
|
-
var
|
|
23422
|
-
function
|
|
23423
|
-
let n = e ?? t.state.facet(
|
|
23419
|
+
var $m = Qe.define({ combine: (e) => e[0] ?? null });
|
|
23420
|
+
function eh(e, t) {
|
|
23421
|
+
let n = e ?? t.state.facet($m);
|
|
23424
23422
|
return n == null ? null : typeof n == "function" ? n(t) : n;
|
|
23425
23423
|
}
|
|
23426
23424
|
//#endregion
|
|
23427
23425
|
//#region ../node_modules/.pnpm/@marimo-team+codemirror-sql@0.3.0_@codemirror+autocomplete@6.20.3_@codemirror+lint@6.9._ea1055731b2d7fd34c5d3340d30da00f/node_modules/@marimo-team/codemirror-sql/dist/sql/completion-utils.js
|
|
23428
|
-
function
|
|
23429
|
-
let n = e ?? t.state.facet(
|
|
23426
|
+
function th(e, t) {
|
|
23427
|
+
let n = e ?? t.state.facet($m);
|
|
23430
23428
|
return n == null ? null : typeof n == "function" ? t.view ? n(t.view) : null : n;
|
|
23431
23429
|
}
|
|
23432
|
-
function
|
|
23430
|
+
function nh(e) {
|
|
23433
23431
|
if (e == null) return null;
|
|
23434
|
-
let t =
|
|
23435
|
-
return
|
|
23432
|
+
let t = Um(e) ? e.children : e;
|
|
23433
|
+
return Wm(t) ? t : null;
|
|
23436
23434
|
}
|
|
23437
|
-
function
|
|
23438
|
-
let n =
|
|
23435
|
+
function rh(e, t) {
|
|
23436
|
+
let n = nh(Km(e, t, { caseSensitive: !1 })?.namespace);
|
|
23439
23437
|
if (n) return n;
|
|
23440
23438
|
let r = (typeof t == "string" ? t.split(".") : t).map((e) => e.toLowerCase()), i = r[r.length - 1];
|
|
23441
23439
|
if (!i) return null;
|
|
23442
|
-
let a =
|
|
23443
|
-
if (
|
|
23440
|
+
let a = Xm(e, i).filter((e) => {
|
|
23441
|
+
if (nh(e.namespace) === null || e.path.length < r.length) return !1;
|
|
23444
23442
|
let t = e.path.slice(-r.length).map((e) => e.toLowerCase());
|
|
23445
23443
|
return r.every((e, n) => t[n] === e);
|
|
23446
23444
|
});
|
|
23447
|
-
return a.length === 1 ?
|
|
23445
|
+
return a.length === 1 ? nh(a[0]?.namespace) : null;
|
|
23448
23446
|
}
|
|
23449
|
-
function
|
|
23447
|
+
function ih(e, t, n) {
|
|
23450
23448
|
if (typeof e == "string") return n === void 0 ? {
|
|
23451
23449
|
label: e,
|
|
23452
23450
|
type: "property",
|
|
@@ -23466,17 +23464,17 @@ function ah(e, t, n) {
|
|
|
23466
23464
|
}
|
|
23467
23465
|
//#endregion
|
|
23468
23466
|
//#region ../node_modules/.pnpm/@marimo-team+codemirror-sql@0.3.0_@codemirror+autocomplete@6.20.3_@codemirror+lint@6.9._ea1055731b2d7fd34c5d3340d30da00f/node_modules/@marimo-team/codemirror-sql/dist/utils.js
|
|
23469
|
-
var
|
|
23467
|
+
var ah = (e) => {
|
|
23470
23468
|
let t;
|
|
23471
23469
|
return async () => (t ||= e(), await t);
|
|
23472
|
-
},
|
|
23470
|
+
}, oh = class {
|
|
23473
23471
|
opts;
|
|
23474
23472
|
parser = null;
|
|
23475
23473
|
offsetRecord = {};
|
|
23476
23474
|
constructor(e = {}) {
|
|
23477
23475
|
this.opts = e;
|
|
23478
23476
|
}
|
|
23479
|
-
getParser =
|
|
23477
|
+
getParser = ah(async () => {
|
|
23480
23478
|
if (this.parser) return this.parser;
|
|
23481
23479
|
let t = await import("./node-sql-parser-BiZOJ-FS.js").then((t) => /* @__PURE__ */ e(t.default, 1)), { Parser: n } = t.default || t;
|
|
23482
23480
|
return this.parser = new n(), this.parser;
|
|
@@ -23500,13 +23498,13 @@ var oh = (e) => {
|
|
|
23500
23498
|
}
|
|
23501
23499
|
async sanitizeSql(e, t) {
|
|
23502
23500
|
if (t?.ignoreBrackets) {
|
|
23503
|
-
let { sql: t, offsetRecord: n } =
|
|
23501
|
+
let { sql: t, offsetRecord: n } = lh(e);
|
|
23504
23502
|
return this.offsetRecord = n, t;
|
|
23505
23503
|
}
|
|
23506
23504
|
return e;
|
|
23507
23505
|
}
|
|
23508
23506
|
async parseWithDuckDBSupport(e, t) {
|
|
23509
|
-
let n = await this.getParser(), r =
|
|
23507
|
+
let n = await this.getParser(), r = sh(e).trimStart().toLowerCase();
|
|
23510
23508
|
if (r.startsWith("from") || r.includes("macro")) return {
|
|
23511
23509
|
success: !0,
|
|
23512
23510
|
errors: []
|
|
@@ -23584,24 +23582,24 @@ var oh = (e) => {
|
|
|
23584
23582
|
}
|
|
23585
23583
|
}
|
|
23586
23584
|
};
|
|
23587
|
-
function
|
|
23585
|
+
function sh(e, t = ["/*", "--"]) {
|
|
23588
23586
|
let n = [];
|
|
23589
23587
|
if (t.includes("/*") && n.push("/\\*[\\s\\S]*?\\*/"), t.includes("--") && n.push("--[^\\n]*"), n.length === 0) return e;
|
|
23590
23588
|
let r = RegExp(`^\\s*(${n.join("|")})\\s*`, ""), i = e, a = "";
|
|
23591
23589
|
for (; i !== a;) a = i, i = i.replace(r, "");
|
|
23592
23590
|
return i;
|
|
23593
23591
|
}
|
|
23594
|
-
var
|
|
23595
|
-
function
|
|
23592
|
+
var ch = 2;
|
|
23593
|
+
function lh(e) {
|
|
23596
23594
|
let t = {};
|
|
23597
23595
|
return {
|
|
23598
|
-
sql: e.replace(/("[^"\\]*(?:\\.[^"\\]*)*")|('[^'\\]*(?:\\.[^'\\]*)*')|(\{[^}]*\})/g, (e, n, r, i, a) => n || r ? e : i ? (t[a] =
|
|
23596
|
+
sql: e.replace(/("[^"\\]*(?:\\.[^"\\]*)*")|('[^'\\]*(?:\\.[^'\\]*)*')|(\{[^}]*\})/g, (e, n, r, i, a) => n || r ? e : i ? (t[a] = ch, `'${i}'`) : e),
|
|
23599
23597
|
offsetRecord: t
|
|
23600
23598
|
};
|
|
23601
23599
|
}
|
|
23602
23600
|
//#endregion
|
|
23603
23601
|
//#region ../node_modules/.pnpm/@marimo-team+codemirror-sql@0.3.0_@codemirror+autocomplete@6.20.3_@codemirror+lint@6.9._ea1055731b2d7fd34c5d3340d30da00f/node_modules/@marimo-team/codemirror-sql/dist/sql/query-context.js
|
|
23604
|
-
function
|
|
23602
|
+
function uh() {
|
|
23605
23603
|
return {
|
|
23606
23604
|
tables: [],
|
|
23607
23605
|
ctes: [],
|
|
@@ -23609,79 +23607,79 @@ function dh() {
|
|
|
23609
23607
|
selectAliases: []
|
|
23610
23608
|
};
|
|
23611
23609
|
}
|
|
23612
|
-
function
|
|
23610
|
+
function dh(e) {
|
|
23613
23611
|
return typeof e == "object" && !!e && !Array.isArray(e);
|
|
23614
23612
|
}
|
|
23615
|
-
function
|
|
23613
|
+
function fh(e) {
|
|
23616
23614
|
return Array.isArray(e) ? e : [];
|
|
23617
23615
|
}
|
|
23618
|
-
function
|
|
23616
|
+
function ph(e) {
|
|
23619
23617
|
let t = e[0], n = e[e.length - 1];
|
|
23620
23618
|
return e.length >= 2 && (t === "\"" && n === "\"" || t === "'" && n === "'" || t === "`" && n === "`" || t === "[" && n === "]") ? e.slice(1, -1) : e;
|
|
23621
23619
|
}
|
|
23622
|
-
function
|
|
23623
|
-
return typeof e == "string" ? e :
|
|
23620
|
+
function mh(e) {
|
|
23621
|
+
return typeof e == "string" ? e : dh(e) && typeof e.value == "string" ? e.value : null;
|
|
23624
23622
|
}
|
|
23625
|
-
function
|
|
23626
|
-
if (!
|
|
23623
|
+
function hh(e) {
|
|
23624
|
+
if (!dh(e) || e.type !== "column_ref") return null;
|
|
23627
23625
|
let t = e.column;
|
|
23628
23626
|
if (typeof t == "string") return t;
|
|
23629
|
-
if (
|
|
23630
|
-
let e = t.expr, n =
|
|
23627
|
+
if (dh(t)) {
|
|
23628
|
+
let e = t.expr, n = dh(e) ? e.value : t.value;
|
|
23631
23629
|
if (typeof n == "string") return n;
|
|
23632
23630
|
}
|
|
23633
23631
|
return null;
|
|
23634
23632
|
}
|
|
23635
|
-
function
|
|
23636
|
-
let t =
|
|
23633
|
+
function gh(e) {
|
|
23634
|
+
let t = fh(e.columns).map((e) => mh(e) ?? hh(e) ?? mh(e.column)).filter((e) => typeof e == "string");
|
|
23637
23635
|
if (t.length > 0) return t;
|
|
23638
|
-
let n = e.stmt, r =
|
|
23639
|
-
if (!
|
|
23636
|
+
let n = e.stmt, r = dh(n) ? n.ast ?? n : null;
|
|
23637
|
+
if (!dh(r) || r.type !== "select") return [];
|
|
23640
23638
|
let i = [];
|
|
23641
|
-
for (let e of
|
|
23639
|
+
for (let e of fh(r.columns)) if (typeof e.as == "string") i.push(e.as);
|
|
23642
23640
|
else {
|
|
23643
|
-
let t =
|
|
23641
|
+
let t = hh(e.expr);
|
|
23644
23642
|
t && t !== "*" && i.push(t);
|
|
23645
23643
|
}
|
|
23646
23644
|
return i;
|
|
23647
23645
|
}
|
|
23648
|
-
function
|
|
23646
|
+
function _h(e, t) {
|
|
23649
23647
|
if (typeof e.table != "string" || e.table.length === 0) return;
|
|
23650
23648
|
let n = [
|
|
23651
23649
|
e.db ?? e.catalog,
|
|
23652
23650
|
e.schema,
|
|
23653
23651
|
e.table
|
|
23654
|
-
].filter((e) => typeof e == "string" && e.length > 0).map(
|
|
23652
|
+
].filter((e) => typeof e == "string" && e.length > 0).map(ph), r = typeof e.as == "string" ? ph(e.as) : void 0, i = `${n.join(".").toLowerCase()}::${r?.toLowerCase() ?? ""}`;
|
|
23655
23653
|
t.seenTables.has(i) || (t.seenTables.add(i), t.tables.push({
|
|
23656
|
-
name:
|
|
23654
|
+
name: ph(e.table),
|
|
23657
23655
|
path: n,
|
|
23658
23656
|
...r ? { alias: r } : {}
|
|
23659
23657
|
}));
|
|
23660
23658
|
}
|
|
23661
|
-
function
|
|
23659
|
+
function vh(e, t, n) {
|
|
23662
23660
|
if (Array.isArray(e)) {
|
|
23663
|
-
for (let r of e)
|
|
23661
|
+
for (let r of e) vh(r, t, n);
|
|
23664
23662
|
return;
|
|
23665
23663
|
}
|
|
23666
|
-
if (!(!
|
|
23664
|
+
if (!(!dh(e) || n.has(e))) {
|
|
23667
23665
|
n.add(e);
|
|
23668
|
-
for (let n of
|
|
23669
|
-
let e =
|
|
23666
|
+
for (let n of fh(e.with)) {
|
|
23667
|
+
let e = mh(n.name);
|
|
23670
23668
|
e && !t.seenCtes.has(e.toLowerCase()) && (t.seenCtes.add(e.toLowerCase()), t.ctes.push({
|
|
23671
|
-
name:
|
|
23672
|
-
columns:
|
|
23669
|
+
name: ph(e),
|
|
23670
|
+
columns: gh(n).map(ph),
|
|
23673
23671
|
from: -1,
|
|
23674
23672
|
to: -1
|
|
23675
23673
|
}));
|
|
23676
23674
|
}
|
|
23677
|
-
for (let n of ["from", "table"]) for (let r of
|
|
23678
|
-
for (let [r, i] of Object.entries(e)) r !== "loc" && r !== "tableList" && r !== "columnList" &&
|
|
23675
|
+
for (let n of ["from", "table"]) for (let r of fh(e[n])) _h(r, t);
|
|
23676
|
+
for (let [r, i] of Object.entries(e)) r !== "loc" && r !== "tableList" && r !== "columnList" && vh(i, t, n);
|
|
23679
23677
|
}
|
|
23680
23678
|
}
|
|
23681
|
-
function
|
|
23682
|
-
if (e.type === "select") for (let n of
|
|
23679
|
+
function yh(e, t) {
|
|
23680
|
+
if (e.type === "select") for (let n of fh(e.columns)) typeof n.as == "string" && t.selectAliases.push(ph(n.as));
|
|
23683
23681
|
}
|
|
23684
|
-
function
|
|
23682
|
+
function bh(e, t) {
|
|
23685
23683
|
let n = t.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), r = `(?:"${n}"|\`${n}\`|\\[${n}\\]|\\b${n})`, i = RegExp(`(${r})\\s*(?:\\([^)]*\\)\\s*)?AS\\s*\\(`, "i").exec(e);
|
|
23686
23684
|
return !i || i.index < 0 || !i[1] ? {
|
|
23687
23685
|
from: -1,
|
|
@@ -23691,8 +23689,8 @@ function xh(e, t) {
|
|
|
23691
23689
|
to: i.index + i[1].length
|
|
23692
23690
|
};
|
|
23693
23691
|
}
|
|
23694
|
-
var
|
|
23695
|
-
function
|
|
23692
|
+
var xh = /* @__PURE__ */ new Set(/* @__PURE__ */ "as.on.using.where.join.inner.left.right.full.cross.outer.natural.lateral.group.order.limit.offset.having.union.intersect.except.select.set.values.when.then.and.or.not.in.is.asc.desc.fetch.window.qualify.returning.with".split(".")), Sh = String.raw`(?:[\w$]+|"[^"]+"|\`[^\`]+\`|\[[^\]]+\])`, Ch = `(?!(?:${[...xh].join("|")})\\b)`, wh = new RegExp(String.raw`\b(?:from|join)\s+(${Sh}(?:\.${Sh})*)(?:\s+(?:as\s+)?${Ch}(${Sh}))?`, "gi");
|
|
23693
|
+
function Th(e) {
|
|
23696
23694
|
let t = e.split(""), n = 0;
|
|
23697
23695
|
for (; n < e.length;) {
|
|
23698
23696
|
let r = e[n], i = e[n + 1];
|
|
@@ -23729,45 +23727,45 @@ function Eh(e) {
|
|
|
23729
23727
|
}
|
|
23730
23728
|
return t.join("");
|
|
23731
23729
|
}
|
|
23732
|
-
function
|
|
23730
|
+
function Eh(e) {
|
|
23733
23731
|
let t = {
|
|
23734
23732
|
tables: [],
|
|
23735
23733
|
ctes: [],
|
|
23736
23734
|
selectAliases: [],
|
|
23737
23735
|
seenTables: /* @__PURE__ */ new Set(),
|
|
23738
23736
|
seenCtes: /* @__PURE__ */ new Set()
|
|
23739
|
-
}, n =
|
|
23740
|
-
|
|
23741
|
-
let r =
|
|
23737
|
+
}, n = Th(e);
|
|
23738
|
+
Dh(n, t), wh.lastIndex = 0;
|
|
23739
|
+
let r = wh.exec(n);
|
|
23742
23740
|
for (; r !== null;) {
|
|
23743
23741
|
let e = r[1], i = r[2];
|
|
23744
23742
|
if (e) {
|
|
23745
|
-
let n = e.split(".").map(
|
|
23743
|
+
let n = e.split(".").map(ph), r = n[n.length - 1] ?? "", a = i && !xh.has(i.toLowerCase()) ? ph(i) : void 0, o = `${n.join(".").toLowerCase()}::${a?.toLowerCase() ?? ""}`;
|
|
23746
23744
|
r && !t.seenTables.has(o) && (t.seenTables.add(o), t.tables.push({
|
|
23747
23745
|
name: r,
|
|
23748
23746
|
path: n,
|
|
23749
23747
|
...a ? { alias: a } : {}
|
|
23750
23748
|
}));
|
|
23751
23749
|
}
|
|
23752
|
-
r =
|
|
23750
|
+
r = wh.exec(n);
|
|
23753
23751
|
}
|
|
23754
|
-
return
|
|
23752
|
+
return Ah(t);
|
|
23755
23753
|
}
|
|
23756
|
-
function
|
|
23757
|
-
let n = /\bWITH\s+(?:RECURSIVE\s+)?/gi, r = new RegExp(String.raw`^(${
|
|
23754
|
+
function Dh(e, t) {
|
|
23755
|
+
let n = /\bWITH\s+(?:RECURSIVE\s+)?/gi, r = new RegExp(String.raw`^(${Sh})\s*(?:\(([^)]*)\)\s*)?AS\s*\(`, "i"), i = n.exec(e);
|
|
23758
23756
|
for (; i !== null;) {
|
|
23759
23757
|
let a = i.index + i[0].length;
|
|
23760
23758
|
for (;;) {
|
|
23761
|
-
let n = r.exec(e.slice(a)), i = n?.[1], o = i ?
|
|
23759
|
+
let n = r.exec(e.slice(a)), i = n?.[1], o = i ? ph(i) : void 0;
|
|
23762
23760
|
if (!n || !i || !o) break;
|
|
23763
23761
|
let s = a + n[0].length, c = s, l = 1;
|
|
23764
23762
|
for (; c < e.length && l > 0;) e[c] === "(" ? l++ : e[c] === ")" && l--, c++;
|
|
23765
23763
|
if (!t.seenCtes.has(o.toLowerCase())) {
|
|
23766
23764
|
t.seenCtes.add(o.toLowerCase());
|
|
23767
|
-
let r = (n[2] ?? "").split(",").map((e) =>
|
|
23765
|
+
let r = (n[2] ?? "").split(",").map((e) => ph(e.trim())).filter((e) => e.length > 0);
|
|
23768
23766
|
t.ctes.push({
|
|
23769
23767
|
name: o,
|
|
23770
|
-
columns: r.length > 0 ? r :
|
|
23768
|
+
columns: r.length > 0 ? r : kh(e.slice(s, Math.max(s, c - 1))),
|
|
23771
23769
|
from: a,
|
|
23772
23770
|
to: a + i.length
|
|
23773
23771
|
});
|
|
@@ -23779,19 +23777,19 @@ function Oh(e, t) {
|
|
|
23779
23777
|
i = n.exec(e);
|
|
23780
23778
|
}
|
|
23781
23779
|
}
|
|
23782
|
-
function
|
|
23780
|
+
function Oh(e) {
|
|
23783
23781
|
let t = [], n = 0, r = "";
|
|
23784
23782
|
for (let i of e) i === "(" ? n++ : i === ")" && (n = Math.max(0, n - 1)), i === "," && n === 0 ? (t.push(r), r = "") : r += i;
|
|
23785
23783
|
return t.push(r), t;
|
|
23786
23784
|
}
|
|
23787
|
-
function
|
|
23785
|
+
function kh(e) {
|
|
23788
23786
|
let t = /^\s*SELECT\s+(?:DISTINCT\s+)?([\s\S]*?)\s+FROM\s/i.exec(e);
|
|
23789
23787
|
if (!t || !t[1]) return [];
|
|
23790
23788
|
let n = [];
|
|
23791
|
-
for (let e of
|
|
23792
|
-
let t = e.trim(), r = new RegExp(String.raw`\s+AS\s+(${
|
|
23789
|
+
for (let e of Oh(t[1])) {
|
|
23790
|
+
let t = e.trim(), r = new RegExp(String.raw`\s+AS\s+(${Sh})$`, "i").exec(t);
|
|
23793
23791
|
if (r?.[1]) {
|
|
23794
|
-
n.push(
|
|
23792
|
+
n.push(ph(r[1]));
|
|
23795
23793
|
continue;
|
|
23796
23794
|
}
|
|
23797
23795
|
if (/^(?:[\w$]+\.)*[\w$]+$/.test(t)) {
|
|
@@ -23801,7 +23799,7 @@ function Ah(e) {
|
|
|
23801
23799
|
}
|
|
23802
23800
|
return n;
|
|
23803
23801
|
}
|
|
23804
|
-
function
|
|
23802
|
+
function Ah(e) {
|
|
23805
23803
|
let t = /* @__PURE__ */ new Map();
|
|
23806
23804
|
for (let n of e.tables) if (n.alias) {
|
|
23807
23805
|
let e = n.alias.toLowerCase();
|
|
@@ -23814,14 +23812,14 @@ function jh(e) {
|
|
|
23814
23812
|
selectAliases: e.selectAliases
|
|
23815
23813
|
};
|
|
23816
23814
|
}
|
|
23817
|
-
async function
|
|
23818
|
-
if (!e.trim()) return
|
|
23815
|
+
async function jh(e, t, n) {
|
|
23816
|
+
if (!e.trim()) return uh();
|
|
23819
23817
|
let r = null;
|
|
23820
23818
|
try {
|
|
23821
23819
|
let i = await t.parse(e, n);
|
|
23822
23820
|
i.success && i.ast != null && (r = i.ast);
|
|
23823
23821
|
} catch {}
|
|
23824
|
-
if (r == null) return
|
|
23822
|
+
if (r == null) return Eh(e);
|
|
23825
23823
|
try {
|
|
23826
23824
|
let t = {
|
|
23827
23825
|
tables: [],
|
|
@@ -23830,29 +23828,29 @@ async function Mh(e, t, n) {
|
|
|
23830
23828
|
seenTables: /* @__PURE__ */ new Set(),
|
|
23831
23829
|
seenCtes: /* @__PURE__ */ new Set()
|
|
23832
23830
|
}, n = Array.isArray(r) ? r : [r];
|
|
23833
|
-
for (let e of n)
|
|
23834
|
-
|
|
23835
|
-
let i =
|
|
23831
|
+
for (let e of n) dh(e) && yh(e, t);
|
|
23832
|
+
vh(r, t, /* @__PURE__ */ new Set());
|
|
23833
|
+
let i = Th(e);
|
|
23836
23834
|
for (let e of t.ctes) {
|
|
23837
|
-
let t =
|
|
23835
|
+
let t = bh(i, e.name);
|
|
23838
23836
|
e.from = t.from, e.to = t.to;
|
|
23839
23837
|
}
|
|
23840
|
-
return
|
|
23838
|
+
return Ah(t);
|
|
23841
23839
|
} catch {
|
|
23842
|
-
return
|
|
23840
|
+
return Eh(e);
|
|
23843
23841
|
}
|
|
23844
23842
|
}
|
|
23845
|
-
var
|
|
23843
|
+
var Mh = class {
|
|
23846
23844
|
parser;
|
|
23847
23845
|
cache = /* @__PURE__ */ new Map();
|
|
23848
23846
|
MAX_CACHE_SIZE = 20;
|
|
23849
|
-
constructor(e = new
|
|
23847
|
+
constructor(e = new oh()) {
|
|
23850
23848
|
this.parser = e;
|
|
23851
23849
|
}
|
|
23852
23850
|
async getContext(e, t) {
|
|
23853
23851
|
let n = this.cache.get(e);
|
|
23854
23852
|
if (n) return n;
|
|
23855
|
-
let r = await
|
|
23853
|
+
let r = await jh(e, this.parser, t);
|
|
23856
23854
|
if (this.cache.set(e, r), this.cache.size > this.MAX_CACHE_SIZE) {
|
|
23857
23855
|
let e = this.cache.keys().next().value;
|
|
23858
23856
|
e !== void 0 && this.cache.delete(e);
|
|
@@ -23862,7 +23860,7 @@ var Nh = class {
|
|
|
23862
23860
|
clearCache() {
|
|
23863
23861
|
this.cache.clear();
|
|
23864
23862
|
}
|
|
23865
|
-
},
|
|
23863
|
+
}, Nh = class {
|
|
23866
23864
|
parser;
|
|
23867
23865
|
cache = /* @__PURE__ */ new Map();
|
|
23868
23866
|
MAX_CACHE_SIZE = 10;
|
|
@@ -23994,53 +23992,53 @@ var Nh = class {
|
|
|
23994
23992
|
};
|
|
23995
23993
|
//#endregion
|
|
23996
23994
|
//#region ../node_modules/.pnpm/@marimo-team+codemirror-sql@0.3.0_@codemirror+autocomplete@6.20.3_@codemirror+lint@6.9._ea1055731b2d7fd34c5d3340d30da00f/node_modules/@marimo-team/codemirror-sql/dist/sql/alias-completion-source.js
|
|
23997
|
-
function
|
|
23998
|
-
let t = e.parser ?? new
|
|
23995
|
+
function Ph(e = {}) {
|
|
23996
|
+
let t = e.parser ?? new oh(), n = e.contextAnalyzer ?? new Mh(t), r = new Nh(t);
|
|
23999
23997
|
return async (t) => {
|
|
24000
23998
|
let i = t.matchBefore(/(?:[\w$]+|"[^"]+"|`[^`]+`|\[[^\]]+\])\.[\w$]*/);
|
|
24001
23999
|
if (!i || t.state.sliceDoc(Math.max(0, i.from - 1), i.from) === ".") return null;
|
|
24002
|
-
let a = i.text.lastIndexOf("."), o =
|
|
24000
|
+
let a = i.text.lastIndexOf("."), o = ph(i.text.slice(0, a)), s = await r.getStatementAtPosition(t.state, t.pos), c = s ? t.state.sliceDoc(s.from, s.to) : t.state.doc.toString(), l = await n.getContext(c, { state: t.state }), u = l.aliases.get(o.toLowerCase());
|
|
24003
24001
|
if (!u) return null;
|
|
24004
24002
|
let d = null, f = l.ctes.find((e) => e.name.toLowerCase() === u.toLowerCase());
|
|
24005
24003
|
if (f && f.columns.length > 0) d = f.columns;
|
|
24006
24004
|
else if (!f) {
|
|
24007
|
-
let n =
|
|
24008
|
-
n != null && (d =
|
|
24005
|
+
let n = th(e.schema, t);
|
|
24006
|
+
n != null && (d = rh(n, u));
|
|
24009
24007
|
}
|
|
24010
24008
|
if (!d || d.length === 0) return null;
|
|
24011
24009
|
let p = `column of ${u}`;
|
|
24012
24010
|
return {
|
|
24013
24011
|
from: i.from + a + 1,
|
|
24014
|
-
options: d.map((e) =>
|
|
24012
|
+
options: d.map((e) => ih(e, p)),
|
|
24015
24013
|
validFor: /^[\w$]*$/
|
|
24016
24014
|
};
|
|
24017
24015
|
};
|
|
24018
24016
|
}
|
|
24019
24017
|
//#endregion
|
|
24020
24018
|
//#region ../node_modules/.pnpm/@marimo-team+codemirror-sql@0.3.0_@codemirror+autocomplete@6.20.3_@codemirror+lint@6.9._ea1055731b2d7fd34c5d3340d30da00f/node_modules/@marimo-team/codemirror-sql/dist/sql/column-completion-source.js
|
|
24021
|
-
var
|
|
24022
|
-
function
|
|
24023
|
-
let t = e.parser ?? new
|
|
24019
|
+
var Fh = 1, Ih = /\b(?:from|join|into|update|table)\s+$/i, Lh = /\bfrom\s+[\w$."`[\]]+(?:\s+(?:as\s+)?[\w$"`[\]]+)?(?:\s*,\s*[\w$."`[\]]+(?:\s+(?:as\s+)?[\w$"`[\]]+)?)*\s*,\s*$/i;
|
|
24020
|
+
function Rh(e = {}) {
|
|
24021
|
+
let t = e.parser ?? new oh(), n = e.contextAnalyzer ?? new Mh(t), r = new Nh(t);
|
|
24024
24022
|
return async (t) => {
|
|
24025
24023
|
let i = t.matchBefore(/[\w$]*/);
|
|
24026
24024
|
if (!i || i.from === i.to && !t.explicit || t.state.sliceDoc(Math.max(0, i.from - 1), i.from) === ".") return null;
|
|
24027
24025
|
let a = t.state.sliceDoc(Math.max(0, i.from - 256), i.from);
|
|
24028
|
-
if (
|
|
24029
|
-
let o = await r.getStatementAtPosition(t.state, t.pos), s = o?.from ?? 0, c = o ? t.state.sliceDoc(o.from, o.to) : t.state.doc.toString(), l =
|
|
24026
|
+
if (Ih.test(a) || Lh.test(a)) return null;
|
|
24027
|
+
let o = await r.getStatementAtPosition(t.state, t.pos), s = o?.from ?? 0, c = o ? t.state.sliceDoc(o.from, o.to) : t.state.doc.toString(), l = Th(c), u = Math.max(s, i.from - 1) - s, d = i.to - s;
|
|
24030
24028
|
if (l.slice(u, d) !== c.slice(u, d)) return null;
|
|
24031
24029
|
let f = await n.getContext(c, { state: t.state });
|
|
24032
24030
|
if (f.tables.length === 0) return null;
|
|
24033
|
-
let p =
|
|
24031
|
+
let p = th(e.schema, t), m = [], h = /* @__PURE__ */ new Set(), g = /* @__PURE__ */ new Set();
|
|
24034
24032
|
for (let e of f.tables) {
|
|
24035
24033
|
let t = e.path.join(".").toLowerCase();
|
|
24036
24034
|
if (g.has(t)) continue;
|
|
24037
24035
|
g.add(t);
|
|
24038
24036
|
let n = f.ctes.find((t) => t.name.toLowerCase() === e.name.toLowerCase()), r = null;
|
|
24039
|
-
if (n ? r = n.columns.length > 0 ? n.columns : null : p != null && (r =
|
|
24037
|
+
if (n ? r = n.columns.length > 0 ? n.columns : null : p != null && (r = rh(p, e.path)), !r) continue;
|
|
24040
24038
|
let i = `column of ${e.name}`;
|
|
24041
24039
|
for (let e of r) {
|
|
24042
24040
|
let t = (typeof e == "string" ? e : e.label).toLowerCase();
|
|
24043
|
-
h.has(t) || (h.add(t), m.push(
|
|
24041
|
+
h.has(t) || (h.add(t), m.push(ih(e, i, Fh)));
|
|
24044
24042
|
}
|
|
24045
24043
|
}
|
|
24046
24044
|
return m.length === 0 ? null : {
|
|
@@ -24052,30 +24050,30 @@ function zh(e = {}) {
|
|
|
24052
24050
|
}
|
|
24053
24051
|
//#endregion
|
|
24054
24052
|
//#region ../node_modules/.pnpm/@marimo-team+codemirror-sql@0.3.0_@codemirror+autocomplete@6.20.3_@codemirror+lint@6.9._ea1055731b2d7fd34c5d3340d30da00f/node_modules/@marimo-team/codemirror-sql/dist/sql/references.js
|
|
24055
|
-
var
|
|
24056
|
-
function
|
|
24053
|
+
var zh = /[\w$]/, Bh = /"[^"]*"|`[^`]*`|\[[^\]]*\]/g;
|
|
24054
|
+
function Vh(e, t) {
|
|
24057
24055
|
let n = e.doc.lineAt(t), r = n.text, i = t - n.from;
|
|
24058
|
-
|
|
24059
|
-
let a =
|
|
24056
|
+
Bh.lastIndex = 0;
|
|
24057
|
+
let a = Bh.exec(r);
|
|
24060
24058
|
for (; a !== null && a.index <= i;) {
|
|
24061
24059
|
let e = a.index + a[0].length;
|
|
24062
24060
|
if (i <= e) return {
|
|
24063
24061
|
from: n.from + a.index,
|
|
24064
24062
|
to: n.from + e,
|
|
24065
|
-
text:
|
|
24063
|
+
text: ph(a[0])
|
|
24066
24064
|
};
|
|
24067
|
-
a =
|
|
24065
|
+
a = Bh.exec(r);
|
|
24068
24066
|
}
|
|
24069
24067
|
let o = i, s = i;
|
|
24070
|
-
for (; o > 0 &&
|
|
24071
|
-
for (; s < r.length &&
|
|
24068
|
+
for (; o > 0 && zh.test(r[o - 1] ?? "");) o--;
|
|
24069
|
+
for (; s < r.length && zh.test(r[s] ?? "");) s++;
|
|
24072
24070
|
return o === s ? null : {
|
|
24073
24071
|
from: n.from + o,
|
|
24074
24072
|
to: n.from + s,
|
|
24075
24073
|
text: r.slice(o, s)
|
|
24076
24074
|
};
|
|
24077
24075
|
}
|
|
24078
|
-
async function
|
|
24076
|
+
async function Hh(e, t, n) {
|
|
24079
24077
|
let r = await e.analyzeDocument(t), i = null;
|
|
24080
24078
|
for (let e of r) {
|
|
24081
24079
|
if (n >= e.from && n <= e.to) return e;
|
|
@@ -24083,15 +24081,15 @@ async function Uh(e, t, n) {
|
|
|
24083
24081
|
}
|
|
24084
24082
|
return i;
|
|
24085
24083
|
}
|
|
24086
|
-
function
|
|
24084
|
+
function Uh(e) {
|
|
24087
24085
|
return e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
24088
24086
|
}
|
|
24089
|
-
function
|
|
24090
|
-
let n =
|
|
24087
|
+
function Wh(e, t = {}) {
|
|
24088
|
+
let n = Uh(e);
|
|
24091
24089
|
return `(?:"${n}"|\`${n}\`|\\[${n}\\]|${t.allowLeadingDot ? "(?<![\\w$])" : "(?<![\\w$.])"}${n}(?![\\w$]))`;
|
|
24092
24090
|
}
|
|
24093
|
-
function
|
|
24094
|
-
let r = new RegExp(
|
|
24091
|
+
function Gh(e, t, n = {}) {
|
|
24092
|
+
let r = new RegExp(Wh(t), "gi"), i = [], a = r.exec(e);
|
|
24095
24093
|
for (; a !== null;) {
|
|
24096
24094
|
let t = a.index + a[0].length;
|
|
24097
24095
|
(!n.followedByDot || e[t] === ".") && i.push({
|
|
@@ -24101,19 +24099,19 @@ function Kh(e, t, n = {}) {
|
|
|
24101
24099
|
}
|
|
24102
24100
|
return i;
|
|
24103
24101
|
}
|
|
24104
|
-
function
|
|
24102
|
+
function Kh(e) {
|
|
24105
24103
|
let t = [], n = 0;
|
|
24106
24104
|
for (let r = 0; r < e.length; r++) e[r] === ")" && (n = Math.max(0, n - 1)), t[r] = n, e[r] === "(" && n++;
|
|
24107
24105
|
return t;
|
|
24108
24106
|
}
|
|
24109
|
-
var
|
|
24110
|
-
function
|
|
24111
|
-
|
|
24112
|
-
let t = null, n =
|
|
24113
|
-
for (; n !== null;) t = (n[1] ?? "").toLowerCase(), n =
|
|
24107
|
+
var qh = /\b(select|from|where|having|qualify|on|set|values|by|join|limit|offset|union|intersect|except|window)\b/gi;
|
|
24108
|
+
function Jh(e) {
|
|
24109
|
+
qh.lastIndex = 0;
|
|
24110
|
+
let t = null, n = qh.exec(e);
|
|
24111
|
+
for (; n !== null;) t = (n[1] ?? "").toLowerCase(), n = qh.exec(e);
|
|
24114
24112
|
return t;
|
|
24115
24113
|
}
|
|
24116
|
-
function
|
|
24114
|
+
function Yh(e, t) {
|
|
24117
24115
|
let n = t - 1;
|
|
24118
24116
|
for (;;) {
|
|
24119
24117
|
for (; n >= 0 && /\s/.test(e[n] ?? "");) n--;
|
|
@@ -24124,34 +24122,34 @@ function Xh(e, t) {
|
|
|
24124
24122
|
let r = t === "]" ? "[" : t;
|
|
24125
24123
|
for (n--; n >= 0 && e[n] !== r;) n--;
|
|
24126
24124
|
n--;
|
|
24127
|
-
} else for (; n >= 0 &&
|
|
24125
|
+
} else for (; n >= 0 && zh.test(e[n] ?? "");) n--;
|
|
24128
24126
|
continue;
|
|
24129
24127
|
}
|
|
24130
24128
|
break;
|
|
24131
24129
|
}
|
|
24132
24130
|
if (n < 0) return !1;
|
|
24133
|
-
if (e[n] === ",") return
|
|
24131
|
+
if (e[n] === ",") return Jh(e.slice(0, n)) === "from";
|
|
24134
24132
|
let r = /([A-Za-z_]+)$/.exec(e.slice(0, n + 1))?.[1]?.toLowerCase();
|
|
24135
24133
|
return r === "from" || r === "join";
|
|
24136
24134
|
}
|
|
24137
|
-
function
|
|
24135
|
+
function Xh(e) {
|
|
24138
24136
|
let t = /* @__PURE__ */ new Map();
|
|
24139
24137
|
for (let n of e) t.has(n.from) || t.set(n.from, n);
|
|
24140
24138
|
return [...t.values()].sort((e, t) => e.from - t.from);
|
|
24141
24139
|
}
|
|
24142
|
-
function
|
|
24140
|
+
function Zh(e, t) {
|
|
24143
24141
|
return e.some((e) => e.from <= t.from && t.to <= e.to);
|
|
24144
24142
|
}
|
|
24145
|
-
function
|
|
24146
|
-
let r =
|
|
24143
|
+
function Qh(e, t, n) {
|
|
24144
|
+
let r = Th(e), i = n.text.toLowerCase(), a = t.selectAliases.some((e) => e.toLowerCase() === i), o = t.ctes.find((e) => e.name.toLowerCase() === i);
|
|
24147
24145
|
if (o) {
|
|
24148
24146
|
let e = t.aliases.get(i);
|
|
24149
24147
|
if (e && e.toLowerCase() !== i || a || o.from < 0) return null;
|
|
24150
24148
|
let s = {
|
|
24151
24149
|
from: o.from,
|
|
24152
24150
|
to: o.to
|
|
24153
|
-
}, c =
|
|
24154
|
-
return
|
|
24151
|
+
}, c = Xh([s, ...Gh(r, o.name).filter((e) => r[e.to] === "." || Yh(r, e.from))]);
|
|
24152
|
+
return Zh(c, n) ? {
|
|
24155
24153
|
kind: "cte",
|
|
24156
24154
|
name: o.name,
|
|
24157
24155
|
definition: s,
|
|
@@ -24162,14 +24160,14 @@ function $h(e, t, n) {
|
|
|
24162
24160
|
if (a) return null;
|
|
24163
24161
|
let e = t.tables.filter((e) => e.alias?.toLowerCase() === i);
|
|
24164
24162
|
if (e.length !== 1 || !e[0]) return null;
|
|
24165
|
-
let o = e[0], s = o.alias ?? n.text, c =
|
|
24166
|
-
for (; u !== null && !
|
|
24163
|
+
let o = e[0], s = o.alias ?? n.text, c = Wh(o.name, { allowLeadingDot: !0 }), l = RegExp(`${c}\\s+(?:AS\\s+)?(${Wh(s)})`, "gi"), u = l.exec(r);
|
|
24164
|
+
for (; u !== null && !Yh(r, u.index);) u = l.exec(r);
|
|
24167
24165
|
if (!u || u[1] == null) return null;
|
|
24168
24166
|
let d = {
|
|
24169
24167
|
from: u.index + u[0].length - u[1].length,
|
|
24170
24168
|
to: u.index + u[0].length
|
|
24171
|
-
}, f =
|
|
24172
|
-
return
|
|
24169
|
+
}, f = Xh([d, ...Gh(r, s, { followedByDot: !0 })]);
|
|
24170
|
+
return Zh(f, n) ? {
|
|
24173
24171
|
kind: "table-alias",
|
|
24174
24172
|
name: s,
|
|
24175
24173
|
definition: d,
|
|
@@ -24178,7 +24176,7 @@ function $h(e, t, n) {
|
|
|
24178
24176
|
}
|
|
24179
24177
|
let s = t.selectAliases.find((e) => e.toLowerCase() === i);
|
|
24180
24178
|
if (s) {
|
|
24181
|
-
let e =
|
|
24179
|
+
let e = Kh(r), t = (t) => e[t] === 0, i = $h(r, /\bFROM\b/gi, t), a = i ? i.index : r.length, o = RegExp(`\\bAS\\s+(${Wh(s)})`, "gi"), c = null, l = o.exec(r);
|
|
24182
24180
|
for (; l !== null;) {
|
|
24183
24181
|
let e = l.index + l[0].length - (l[1]?.length ?? 0);
|
|
24184
24182
|
if (t(l.index) && e < a) {
|
|
@@ -24191,8 +24189,8 @@ function $h(e, t, n) {
|
|
|
24191
24189
|
l = o.exec(r);
|
|
24192
24190
|
}
|
|
24193
24191
|
if (!c) return null;
|
|
24194
|
-
let u =
|
|
24195
|
-
return
|
|
24192
|
+
let u = ng(r, t), d = Gh(r, s).filter((e) => u.some((t) => e.from >= t.from && e.to <= t.to)), f = Xh([c, ...d]);
|
|
24193
|
+
return Zh(f, n) ? {
|
|
24196
24194
|
kind: "select-alias",
|
|
24197
24195
|
name: s,
|
|
24198
24196
|
definition: c,
|
|
@@ -24201,7 +24199,7 @@ function $h(e, t, n) {
|
|
|
24201
24199
|
}
|
|
24202
24200
|
return null;
|
|
24203
24201
|
}
|
|
24204
|
-
function
|
|
24202
|
+
function $h(e, t, n) {
|
|
24205
24203
|
let r = t.exec(e);
|
|
24206
24204
|
for (; r !== null;) {
|
|
24207
24205
|
if (n(r.index)) return r;
|
|
@@ -24209,45 +24207,45 @@ function eg(e, t, n) {
|
|
|
24209
24207
|
}
|
|
24210
24208
|
return null;
|
|
24211
24209
|
}
|
|
24212
|
-
var
|
|
24213
|
-
function
|
|
24210
|
+
var eg = /\b(?:GROUP\s+BY|ORDER\s+BY|HAVING|QUALIFY)\b/gi, tg = /\b(?:GROUP\s+BY|ORDER\s+BY|HAVING|QUALIFY|LIMIT|OFFSET|FETCH|WINDOW|UNION|INTERSECT|EXCEPT)\b/gi;
|
|
24211
|
+
function ng(e, t) {
|
|
24214
24212
|
let n = [];
|
|
24215
|
-
|
|
24216
|
-
let r =
|
|
24213
|
+
eg.lastIndex = 0;
|
|
24214
|
+
let r = eg.exec(e);
|
|
24217
24215
|
for (; r !== null;) {
|
|
24218
24216
|
if (t(r.index)) {
|
|
24219
24217
|
let i = r.index + r[0].length;
|
|
24220
|
-
|
|
24221
|
-
let a = e.length, o =
|
|
24218
|
+
tg.lastIndex = i;
|
|
24219
|
+
let a = e.length, o = tg.exec(e);
|
|
24222
24220
|
for (; o !== null;) {
|
|
24223
24221
|
if (t(o.index)) {
|
|
24224
24222
|
a = o.index;
|
|
24225
24223
|
break;
|
|
24226
24224
|
}
|
|
24227
|
-
o =
|
|
24225
|
+
o = tg.exec(e);
|
|
24228
24226
|
}
|
|
24229
24227
|
n.push({
|
|
24230
24228
|
from: i,
|
|
24231
24229
|
to: a
|
|
24232
24230
|
});
|
|
24233
24231
|
}
|
|
24234
|
-
r =
|
|
24232
|
+
r = eg.exec(e);
|
|
24235
24233
|
}
|
|
24236
24234
|
return n;
|
|
24237
24235
|
}
|
|
24238
|
-
var
|
|
24236
|
+
var rg = class {
|
|
24239
24237
|
structureAnalyzer;
|
|
24240
24238
|
contextAnalyzer;
|
|
24241
24239
|
constructor(e = {}) {
|
|
24242
|
-
let t = e.parser ?? new
|
|
24243
|
-
this.structureAnalyzer = e.structureAnalyzer ?? new
|
|
24240
|
+
let t = e.parser ?? new oh();
|
|
24241
|
+
this.structureAnalyzer = e.structureAnalyzer ?? new Nh(t), this.contextAnalyzer = e.contextAnalyzer ?? new Mh(t);
|
|
24244
24242
|
}
|
|
24245
24243
|
async resolve(e, t) {
|
|
24246
|
-
let n =
|
|
24244
|
+
let n = Vh(e, t);
|
|
24247
24245
|
if (!n) return null;
|
|
24248
|
-
let r = await
|
|
24246
|
+
let r = await Hh(this.structureAnalyzer, e, t);
|
|
24249
24247
|
if (!r || n.from < r.from || n.to > r.to) return null;
|
|
24250
|
-
let i = e.sliceDoc(r.from, r.to), a =
|
|
24248
|
+
let i = e.sliceDoc(r.from, r.to), a = Qh(i, await this.contextAnalyzer.getContext(i, { state: e }), {
|
|
24251
24249
|
from: n.from - r.from,
|
|
24252
24250
|
to: n.to - r.from,
|
|
24253
24251
|
text: n.text
|
|
@@ -24263,54 +24261,54 @@ var ig = class {
|
|
|
24263
24261
|
references: a.references.map(o)
|
|
24264
24262
|
};
|
|
24265
24263
|
}
|
|
24266
|
-
},
|
|
24267
|
-
function
|
|
24264
|
+
}, ig = /([\w$]+|"[^"]+"|`[^`]+`|\[[^\]]+\])$/;
|
|
24265
|
+
function ag(e) {
|
|
24268
24266
|
return /\b(?:from|join)\s+$/i.test(e);
|
|
24269
24267
|
}
|
|
24270
|
-
function
|
|
24268
|
+
function og(e) {
|
|
24271
24269
|
return /^[A-Za-z_][\w$]*$/.test(e);
|
|
24272
24270
|
}
|
|
24273
|
-
function
|
|
24271
|
+
function sg(e) {
|
|
24274
24272
|
return {
|
|
24275
24273
|
label: e.name,
|
|
24276
24274
|
type: "variable",
|
|
24277
24275
|
info: `Common Table Expression: ${e.name}`,
|
|
24278
24276
|
boost: 10,
|
|
24279
|
-
...
|
|
24277
|
+
...og(e.name) ? {} : { apply: `"${e.name}"` }
|
|
24280
24278
|
};
|
|
24281
24279
|
}
|
|
24282
|
-
function
|
|
24280
|
+
function cg(e) {
|
|
24283
24281
|
return e.columns.map((t) => ({
|
|
24284
24282
|
label: t,
|
|
24285
24283
|
type: "property",
|
|
24286
24284
|
detail: `column of ${e.name}`,
|
|
24287
24285
|
boost: 5,
|
|
24288
|
-
...
|
|
24286
|
+
...og(t) ? {} : { apply: `"${t}"` }
|
|
24289
24287
|
}));
|
|
24290
24288
|
}
|
|
24291
|
-
function
|
|
24292
|
-
let t = e.parser ?? new
|
|
24289
|
+
function lg(e = {}) {
|
|
24290
|
+
let t = e.parser ?? new oh(), n = e.contextAnalyzer ?? new Mh(t), r = e.structureAnalyzer ?? new Nh(t);
|
|
24293
24291
|
return async (e) => {
|
|
24294
24292
|
let t = e.matchBefore(/[\w$]*/);
|
|
24295
24293
|
if (!t) return null;
|
|
24296
24294
|
let i = e.state.sliceDoc(Math.max(0, t.from - 1), t.from) === ".";
|
|
24297
24295
|
if (t.from === t.to && !e.explicit && !i) return null;
|
|
24298
|
-
let a = await
|
|
24296
|
+
let a = await Hh(r, e.state, e.pos), o = a ? e.state.sliceDoc(a.from, a.to) : e.state.doc.toString(), s = await n.getContext(o, { state: e.state });
|
|
24299
24297
|
if (s.ctes.length === 0) return null;
|
|
24300
24298
|
if (i) {
|
|
24301
|
-
let n = e.state.doc.lineAt(t.from), r = e.state.sliceDoc(n.from, t.from - 1), i =
|
|
24299
|
+
let n = e.state.doc.lineAt(t.from), r = e.state.sliceDoc(n.from, t.from - 1), i = ig.exec(r);
|
|
24302
24300
|
if (!i || !i[1] || r.slice(0, r.length - i[1].length).endsWith(".")) return null;
|
|
24303
|
-
let a =
|
|
24301
|
+
let a = ph(i[1]).toLowerCase(), o = s.ctes.find((e) => e.name.toLowerCase() === a);
|
|
24304
24302
|
return !o || o.columns.length === 0 ? null : {
|
|
24305
24303
|
from: t.from,
|
|
24306
|
-
options:
|
|
24304
|
+
options: cg(o),
|
|
24307
24305
|
validFor: /^[\w$]*$/
|
|
24308
24306
|
};
|
|
24309
24307
|
}
|
|
24310
|
-
let c = s.ctes.map(
|
|
24311
|
-
if (!
|
|
24308
|
+
let c = s.ctes.map(sg);
|
|
24309
|
+
if (!ag(e.state.sliceDoc(Math.max(0, t.from - 64), t.from))) {
|
|
24312
24310
|
let e = new Set(s.tables.map((e) => e.name.toLowerCase())), t = /* @__PURE__ */ new Set();
|
|
24313
|
-
for (let n of s.ctes) if (e.has(n.name.toLowerCase())) for (let e of
|
|
24311
|
+
for (let n of s.ctes) if (e.has(n.name.toLowerCase())) for (let e of cg(n)) {
|
|
24314
24312
|
let n = e.label.toLowerCase();
|
|
24315
24313
|
t.has(n) || (t.add(n), c.push(e));
|
|
24316
24314
|
}
|
|
@@ -24324,59 +24322,59 @@ function ug(e = {}) {
|
|
|
24324
24322
|
}
|
|
24325
24323
|
//#endregion
|
|
24326
24324
|
//#region ../node_modules/.pnpm/@marimo-team+codemirror-sql@0.3.0_@codemirror+autocomplete@6.20.3_@codemirror+lint@6.9._ea1055731b2d7fd34c5d3340d30da00f/node_modules/@marimo-team/codemirror-sql/dist/sql/diagnostics.js
|
|
24327
|
-
var
|
|
24328
|
-
function
|
|
24325
|
+
var ug = 750;
|
|
24326
|
+
function dg(e, t) {
|
|
24329
24327
|
if (t >= e.length) return e.length;
|
|
24330
24328
|
let n = e.lineAt(t), r = n.text.slice(t - n.from).match(/^[\w"'`.]+/);
|
|
24331
24329
|
return r ? t + r[0].length : Math.min(t + 1, e.length);
|
|
24332
24330
|
}
|
|
24333
|
-
function
|
|
24331
|
+
function fg(e, t) {
|
|
24334
24332
|
let n = t.line(Math.min(e.line, t.lines)), r = Math.min(n.from + Math.max(0, e.column - 1), t.length);
|
|
24335
24333
|
return {
|
|
24336
24334
|
from: r,
|
|
24337
|
-
to:
|
|
24335
|
+
to: dg(t, r),
|
|
24338
24336
|
severity: e.severity,
|
|
24339
24337
|
message: e.message,
|
|
24340
24338
|
source: "sql-parser"
|
|
24341
24339
|
};
|
|
24342
24340
|
}
|
|
24343
|
-
function
|
|
24341
|
+
function pg(e, t, n) {
|
|
24344
24342
|
let r;
|
|
24345
24343
|
return r = e.line <= 1 ? t.from + Math.max(0, e.column - 1) : n.line(Math.min(t.lineFrom + e.line - 1, n.lines)).from + Math.max(0, e.column - 1), r = Math.max(t.from, Math.min(r, t.to)), {
|
|
24346
24344
|
from: r,
|
|
24347
|
-
to: Math.max(r, Math.min(
|
|
24345
|
+
to: Math.max(r, Math.min(dg(n, r), t.to)),
|
|
24348
24346
|
severity: e.severity,
|
|
24349
24347
|
message: e.message,
|
|
24350
24348
|
source: "sql-parser"
|
|
24351
24349
|
};
|
|
24352
24350
|
}
|
|
24353
|
-
function
|
|
24354
|
-
return wt(
|
|
24351
|
+
function mg(e = {}) {
|
|
24352
|
+
return wt(hg(e), { delay: e.delay || ug });
|
|
24355
24353
|
}
|
|
24356
|
-
function
|
|
24357
|
-
let t = e.parser || new
|
|
24354
|
+
function hg(e = {}) {
|
|
24355
|
+
let t = e.parser || new oh(), n = e.perStatement !== !1, r = e.structureAnalyzer || new Nh(t);
|
|
24358
24356
|
return async (e) => {
|
|
24359
24357
|
let i = e.state.doc, a = i.toString();
|
|
24360
|
-
return a.trim() ? n ? (await r.analyzeDocument(e.state)).flatMap((e) => e.errors.map((t) =>
|
|
24358
|
+
return a.trim() ? n ? (await r.analyzeDocument(e.state)).flatMap((e) => e.errors.map((t) => pg(t, e, i))) : (await t.validateSql(a, { state: e.state })).map((e) => fg(e, i)) : [];
|
|
24361
24359
|
};
|
|
24362
24360
|
}
|
|
24363
24361
|
//#endregion
|
|
24364
24362
|
//#region ../node_modules/.pnpm/@marimo-team+codemirror-sql@0.3.0_@codemirror+autocomplete@6.20.3_@codemirror+lint@6.9._ea1055731b2d7fd34c5d3340d30da00f/node_modules/@marimo-team/codemirror-sql/dist/sql/hover.js
|
|
24365
|
-
function
|
|
24363
|
+
function gg(e, t) {
|
|
24366
24364
|
if (t.size === 0) return {};
|
|
24367
|
-
if (
|
|
24365
|
+
if (Hm(e)) {
|
|
24368
24366
|
let n = {};
|
|
24369
24367
|
for (let [r, i] of Object.entries(e)) if (Array.from(t).some((e) => e.toLowerCase() === r.toLowerCase())) n[r] = i;
|
|
24370
|
-
else if (
|
|
24371
|
-
let e =
|
|
24368
|
+
else if (Hm(i)) {
|
|
24369
|
+
let e = gg(i, t);
|
|
24372
24370
|
Object.keys(e).length > 0 && (n[r] = e);
|
|
24373
24371
|
}
|
|
24374
24372
|
return n;
|
|
24375
24373
|
}
|
|
24376
24374
|
return e;
|
|
24377
24375
|
}
|
|
24378
|
-
function
|
|
24379
|
-
let { schema: t, keywords: n = {}, enableKeywords: r = !0, enableTables: i = !0, enableColumns: a = !0, enableFuzzySearch: o = !0, parser: s = new
|
|
24376
|
+
function _g(e = {}) {
|
|
24377
|
+
let { schema: t, keywords: n = {}, enableKeywords: r = !0, enableTables: i = !0, enableColumns: a = !0, enableFuzzySearch: o = !0, parser: s = new oh(), tooltipRender: c, tooltipRenderers: l = {} } = e, u = new Nh(s), d = e.contextAnalyzer ?? new Mh(s), f = null;
|
|
24380
24378
|
return async (e, s, p) => {
|
|
24381
24379
|
let { from: m, to: h, text: g } = e.state.doc.lineAt(s), _ = s, v = s;
|
|
24382
24380
|
f === null && (f = typeof n == "function" ? n(e) : Promise.resolve(n));
|
|
@@ -24391,7 +24389,7 @@ function vg(e = {}) {
|
|
|
24391
24389
|
if (_ === s && p < 0 || v === s && p > 0) return null;
|
|
24392
24390
|
let b = g.slice(_ - m, v - m).toLowerCase();
|
|
24393
24391
|
if (!b || b.length === 0) return null;
|
|
24394
|
-
let x =
|
|
24392
|
+
let x = eh(t, e) ?? {}, S = null;
|
|
24395
24393
|
`${b}`;
|
|
24396
24394
|
let C = Object.hasOwn(y, b) ? y[b] : void 0;
|
|
24397
24395
|
if (!S && r && C && (S = {
|
|
@@ -24404,8 +24402,8 @@ function vg(e = {}) {
|
|
|
24404
24402
|
info: C
|
|
24405
24403
|
}
|
|
24406
24404
|
}), !S && (i || a) && x) {
|
|
24407
|
-
let t = await u.getStatementAtPosition(e.state, s), n = t ? e.state.doc.sliceString(t.from, t.to) : e.state.doc.toString(), r = await d.getContext(n, { state: e.state }), [c = "", ...l] = b.split("."), f = r.aliases.get(c), p = f ? [f, ...l].join(".").toLowerCase() : b, m = new Set(r.tables.map((e) => e.name.toLowerCase())), h =
|
|
24408
|
-
if (!g && m.size === 0 && (g =
|
|
24405
|
+
let t = await u.getStatementAtPosition(e.state, s), n = t ? e.state.doc.sliceString(t.from, t.to) : e.state.doc.toString(), r = await d.getContext(n, { state: e.state }), [c = "", ...l] = b.split("."), f = r.aliases.get(c), p = f ? [f, ...l].join(".").toLowerCase() : b, m = new Set(r.tables.map((e) => e.name.toLowerCase())), h = gg(x, m), g = Qm(h, p, { enableFuzzySearch: o });
|
|
24406
|
+
if (!g && m.size === 0 && (g = Qm(x, p, { enableFuzzySearch: o })), g) {
|
|
24409
24407
|
let { semanticType: e } = g;
|
|
24410
24408
|
(e === "table" && !i || e === "column" && !a) && (g = null);
|
|
24411
24409
|
}
|
|
@@ -24434,10 +24432,10 @@ function vg(e = {}) {
|
|
|
24434
24432
|
if (t) return { dom: t };
|
|
24435
24433
|
}
|
|
24436
24434
|
let t = null;
|
|
24437
|
-
if (w.tooltipType === "keyword" && w.keywordData) t = l.keyword ? l.keyword(w.keywordData) :
|
|
24435
|
+
if (w.tooltipType === "keyword" && w.keywordData) t = l.keyword ? l.keyword(w.keywordData) : Sg(w.keywordData);
|
|
24438
24436
|
else if (w.tooltipType === "namespace" && w.namespaceData) {
|
|
24439
24437
|
let e = w.namespaceData, { semanticType: n } = e.item;
|
|
24440
|
-
n === "table" && l.table ? t = l.table(e) : n === "column" && l.column ? t = l.column(e) : (n === "database" || n === "schema" || n === "namespace") && l.namespace ? t = l.namespace(e) : (t =
|
|
24438
|
+
n === "table" && l.table ? t = l.table(e) : n === "column" && l.column ? t = l.column(e) : (n === "database" || n === "schema" || n === "namespace") && l.namespace ? t = l.namespace(e) : (t = bg(e.item), e.aliasFor && (t = `<div class="sql-hover-alias"><code>${yg(e.word.split(".")[0] ?? "")}</code> is an alias for <code>${yg(e.aliasFor)}</code></div>` + t));
|
|
24441
24439
|
}
|
|
24442
24440
|
if (!t) return { dom: document.createElement("div") };
|
|
24443
24441
|
let n = document.createElement("div");
|
|
@@ -24446,25 +24444,25 @@ function vg(e = {}) {
|
|
|
24446
24444
|
};
|
|
24447
24445
|
};
|
|
24448
24446
|
}
|
|
24449
|
-
function
|
|
24447
|
+
function vg(e = {}) {
|
|
24450
24448
|
let { hoverTime: t = 300 } = e;
|
|
24451
|
-
return mt(
|
|
24449
|
+
return mt(_g(e), { hoverTime: t });
|
|
24452
24450
|
}
|
|
24453
|
-
function
|
|
24451
|
+
function yg(e) {
|
|
24454
24452
|
return e.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """);
|
|
24455
24453
|
}
|
|
24456
|
-
function
|
|
24454
|
+
function bg(e) {
|
|
24457
24455
|
let t = e.path.join("."), n = e.completion?.label || e.value || e.path[e.path.length - 1] || "unknown", r = `<div class="sql-hover-${e.semanticType}">`;
|
|
24458
24456
|
switch (r += `<div class="sql-hover-header"><strong>${n}</strong> <span class="sql-hover-type">${e.semanticType}</span></div>`, e.semanticType) {
|
|
24459
24457
|
case "database":
|
|
24460
24458
|
if (r += `<div class="sql-hover-description">Database${e.completion?.detail ? `: ${e.completion.detail}` : ""}</div>`, e.namespace) {
|
|
24461
|
-
let t =
|
|
24459
|
+
let t = xg(e.namespace);
|
|
24462
24460
|
t > 0 && (r += `<div class="sql-hover-children">Contains ${t} schema${t === 1 ? "" : "s"}</div>`);
|
|
24463
24461
|
}
|
|
24464
24462
|
break;
|
|
24465
24463
|
case "schema":
|
|
24466
24464
|
if (r += `<div class="sql-hover-description">Schema${e.completion?.detail ? `: ${e.completion.detail}` : ""}</div>`, t && (r += `<div class="sql-hover-path"><strong>Path:</strong> <code>${t}</code></div>`), e.namespace) {
|
|
24467
|
-
let t =
|
|
24465
|
+
let t = xg(e.namespace);
|
|
24468
24466
|
t > 0 && (r += `<div class="sql-hover-children">Contains ${t} table${t === 1 ? "" : "s"}</div>`);
|
|
24469
24467
|
}
|
|
24470
24468
|
break;
|
|
@@ -24473,7 +24471,7 @@ function xg(e) {
|
|
|
24473
24471
|
let t = e.path;
|
|
24474
24472
|
t.length > 1 && (r += `<div class="sql-hover-path"><strong>Schema:</strong> <code>${t.slice(0, -1).join(".")}</code></div>`);
|
|
24475
24473
|
}
|
|
24476
|
-
if (e.namespace &&
|
|
24474
|
+
if (e.namespace && Wm(e.namespace)) {
|
|
24477
24475
|
let t = e.namespace;
|
|
24478
24476
|
if (t.length > 0) {
|
|
24479
24477
|
r += `<div class="sql-hover-columns"><strong>Columns (${t.length}):</strong><br>`;
|
|
@@ -24489,16 +24487,16 @@ function xg(e) {
|
|
|
24489
24487
|
}
|
|
24490
24488
|
break;
|
|
24491
24489
|
default: if (r += `<div class="sql-hover-description">Namespace${e.completion?.detail ? `: ${e.completion.detail}` : ""}</div>`, t && (r += `<div class="sql-hover-path"><strong>Path:</strong> <code>${t}</code></div>`), e.namespace) {
|
|
24492
|
-
let t =
|
|
24490
|
+
let t = xg(e.namespace);
|
|
24493
24491
|
t > 0 && (r += `<div class="sql-hover-children">Contains ${t} item${t === 1 ? "" : "s"}</div>`);
|
|
24494
24492
|
}
|
|
24495
24493
|
}
|
|
24496
24494
|
return e.completion?.info && typeof e.completion.info == "string" && (r += `<div class="sql-hover-info">${e.completion.info}</div>`), r += "</div>", r;
|
|
24497
24495
|
}
|
|
24498
|
-
function
|
|
24499
|
-
return Array.isArray(e) ? e.length : typeof e == "object" && e ? "self" in e && "children" in e ? 1 +
|
|
24496
|
+
function xg(e) {
|
|
24497
|
+
return Array.isArray(e) ? e.length : typeof e == "object" && e ? "self" in e && "children" in e ? 1 + xg(e.children) : Object.keys(e).length : 0;
|
|
24500
24498
|
}
|
|
24501
|
-
function
|
|
24499
|
+
function Sg(e) {
|
|
24502
24500
|
let { keyword: t, info: n } = e, r = "<div class=\"sql-hover-keyword\">";
|
|
24503
24501
|
if (r += `<div class="sql-hover-header"><strong>${t.toUpperCase()}</strong> <span class="sql-hover-type">keyword</span></div>`, r += `<div class="sql-hover-description">${n.description}</div>`, n.syntax && (r += `<div class="sql-hover-syntax"><strong>Syntax:</strong> <code>${n.syntax}</code></div>`), n.example && (r += `<div class="sql-hover-example"><strong>Example:</strong><br><code>${n.example}</code></div>`), n.metadata && typeof n.metadata == "object" && Object.keys(n.metadata).length > 0) {
|
|
24504
24502
|
r += "<div class=\"sql-hover-metadata\">";
|
|
@@ -24507,7 +24505,7 @@ function Cg(e) {
|
|
|
24507
24505
|
}
|
|
24508
24506
|
return r += "</div>", r;
|
|
24509
24507
|
}
|
|
24510
|
-
function
|
|
24508
|
+
function Cg(e) {
|
|
24511
24509
|
let { tableName: t, columns: n, metadata: r } = e, i = "<div class=\"sql-hover-table\">";
|
|
24512
24510
|
if (i += `<div class="sql-hover-header"><strong>${t}</strong> <span class="sql-hover-type">table</span></div>`, i += `<div class="sql-hover-description">Table with ${n.length} column${n.length === 1 ? "" : "s"}</div>`, n.length > 0) {
|
|
24513
24511
|
i += "<div class=\"sql-hover-columns\"><strong>Columns:</strong><br>";
|
|
@@ -24521,7 +24519,7 @@ function wg(e) {
|
|
|
24521
24519
|
}
|
|
24522
24520
|
return i += "</div>", i;
|
|
24523
24521
|
}
|
|
24524
|
-
function
|
|
24522
|
+
function wg(e) {
|
|
24525
24523
|
let { tableName: t, columnName: n, schema: r, metadata: i } = e, a = "<div class=\"sql-hover-column\">";
|
|
24526
24524
|
a += `<div class="sql-hover-header"><strong>${n}</strong> <span class="sql-hover-type">column</span></div>`, a += `<div class="sql-hover-description">Column in table <code>${t}</code></div>`;
|
|
24527
24525
|
let o = r[t];
|
|
@@ -24540,12 +24538,12 @@ function Tg(e) {
|
|
|
24540
24538
|
}
|
|
24541
24539
|
return a += "</div>", a;
|
|
24542
24540
|
}
|
|
24543
|
-
var
|
|
24544
|
-
keyword:
|
|
24545
|
-
table:
|
|
24546
|
-
column:
|
|
24547
|
-
namespace:
|
|
24548
|
-
},
|
|
24541
|
+
var Tg = {
|
|
24542
|
+
keyword: Sg,
|
|
24543
|
+
table: Cg,
|
|
24544
|
+
column: wg,
|
|
24545
|
+
namespace: bg
|
|
24546
|
+
}, Eg = (e = "light") => {
|
|
24549
24547
|
let t = e === "dark" ? {
|
|
24550
24548
|
tooltipBg: "#1f2937",
|
|
24551
24549
|
tooltipBorder: "#374151",
|
|
@@ -24669,32 +24667,32 @@ var Eg = {
|
|
|
24669
24667
|
};
|
|
24670
24668
|
//#endregion
|
|
24671
24669
|
//#region ../node_modules/.pnpm/@marimo-team+codemirror-sql@0.3.0_@codemirror+autocomplete@6.20.3_@codemirror+lint@6.9._ea1055731b2d7fd34c5d3340d30da00f/node_modules/@marimo-team/codemirror-sql/dist/sql/navigation-extension.js
|
|
24672
|
-
function
|
|
24673
|
-
return e.resolver ?? new
|
|
24670
|
+
function Dg(e) {
|
|
24671
|
+
return e.resolver ?? new rg(e);
|
|
24674
24672
|
}
|
|
24675
|
-
var
|
|
24673
|
+
var Og = He.baseTheme({
|
|
24676
24674
|
".cm-sqlReference": { backgroundColor: "rgba(96, 165, 250, 0.18)" },
|
|
24677
24675
|
".cm-sqlReference.cm-sqlDefinition": { backgroundColor: "rgba(96, 165, 250, 0.35)" },
|
|
24678
24676
|
".cm-sqlGotoTarget": {
|
|
24679
24677
|
textDecoration: "underline",
|
|
24680
24678
|
cursor: "pointer"
|
|
24681
24679
|
}
|
|
24682
|
-
}),
|
|
24683
|
-
function
|
|
24684
|
-
return st.set(e.references.map((t) => (t.from === e.definition.from ?
|
|
24680
|
+
}), kg = st.mark({ class: "cm-sqlReference" }), Ag = st.mark({ class: "cm-sqlReference cm-sqlDefinition" }), jg = st.mark({ class: "cm-sqlGotoTarget" });
|
|
24681
|
+
function Mg(e) {
|
|
24682
|
+
return st.set(e.references.map((t) => (t.from === e.definition.from ? Ag : kg).range(t.from, t.to)), !0);
|
|
24685
24683
|
}
|
|
24686
|
-
var
|
|
24684
|
+
var Ng = et.define(), Pg = xt.define({
|
|
24687
24685
|
create: () => st.none,
|
|
24688
24686
|
update(e, t) {
|
|
24689
|
-
for (let e of t.effects) if (e.is(
|
|
24687
|
+
for (let e of t.effects) if (e.is(Ng)) return e.value;
|
|
24690
24688
|
return t.docChanged ? e.map(t.changes) : e;
|
|
24691
24689
|
},
|
|
24692
24690
|
provide: (e) => He.decorations.from(e)
|
|
24693
24691
|
});
|
|
24694
|
-
function
|
|
24695
|
-
let t =
|
|
24692
|
+
function Fg(e = {}) {
|
|
24693
|
+
let t = Dg(e), n = e.highlightDelay ?? 150;
|
|
24696
24694
|
return [
|
|
24697
|
-
|
|
24695
|
+
Pg,
|
|
24698
24696
|
ht.fromClass(class {
|
|
24699
24697
|
view;
|
|
24700
24698
|
timer = null;
|
|
@@ -24714,21 +24712,21 @@ function Ig(e = {}) {
|
|
|
24714
24712
|
let e = this.generation, n = this.view.state, r = n.selection.main, i = st.none;
|
|
24715
24713
|
if (r.empty) try {
|
|
24716
24714
|
let e = await t.resolve(n, r.head);
|
|
24717
|
-
e && (i =
|
|
24715
|
+
e && (i = Mg(e));
|
|
24718
24716
|
} catch {}
|
|
24719
24717
|
if (e !== this.generation) return;
|
|
24720
|
-
let a = this.view.state.field(
|
|
24721
|
-
(i.size !== 0 || a != null && a.size !== 0) && this.view.dispatch({ effects:
|
|
24718
|
+
let a = this.view.state.field(Pg, !1);
|
|
24719
|
+
(i.size !== 0 || a != null && a.size !== 0) && this.view.dispatch({ effects: Ng.of(i) });
|
|
24722
24720
|
}
|
|
24723
24721
|
destroy() {
|
|
24724
24722
|
this.generation++, this.timer != null && clearTimeout(this.timer);
|
|
24725
24723
|
}
|
|
24726
24724
|
}),
|
|
24727
|
-
|
|
24725
|
+
Og
|
|
24728
24726
|
];
|
|
24729
24727
|
}
|
|
24730
|
-
async function
|
|
24731
|
-
let r = e.state, i = t ?? r.selection.main.head, a = await
|
|
24728
|
+
async function Ig(e, t, n = {}) {
|
|
24729
|
+
let r = e.state, i = t ?? r.selection.main.head, a = await Dg(n).resolve(r, i);
|
|
24732
24730
|
return !a || e.state !== r ? !1 : (e.dispatch({
|
|
24733
24731
|
selection: {
|
|
24734
24732
|
anchor: a.definition.from,
|
|
@@ -24738,18 +24736,18 @@ async function Lg(e, t, n = {}) {
|
|
|
24738
24736
|
userEvent: "select"
|
|
24739
24737
|
}), !0);
|
|
24740
24738
|
}
|
|
24741
|
-
var
|
|
24739
|
+
var Lg = et.define(), Rg = xt.define({
|
|
24742
24740
|
create: () => st.none,
|
|
24743
24741
|
update(e, t) {
|
|
24744
|
-
for (let e of t.effects) if (e.is(
|
|
24742
|
+
for (let e of t.effects) if (e.is(Lg)) return e.value;
|
|
24745
24743
|
return t.docChanged ? e.map(t.changes) : e;
|
|
24746
24744
|
},
|
|
24747
24745
|
provide: (e) => He.decorations.from(e)
|
|
24748
24746
|
});
|
|
24749
|
-
function
|
|
24750
|
-
let t =
|
|
24747
|
+
function zg(e = {}) {
|
|
24748
|
+
let t = Dg(e);
|
|
24751
24749
|
return [
|
|
24752
|
-
|
|
24750
|
+
Rg,
|
|
24753
24751
|
ht.fromClass(class {
|
|
24754
24752
|
view;
|
|
24755
24753
|
hovered = null;
|
|
@@ -24765,12 +24763,12 @@ function Bg(e = {}) {
|
|
|
24765
24763
|
clear() {
|
|
24766
24764
|
if (this.hovered) {
|
|
24767
24765
|
this.hovered = null;
|
|
24768
|
-
let e = this.view.state.field(
|
|
24769
|
-
e && e.size > 0 && this.view.dispatch({ effects:
|
|
24766
|
+
let e = this.view.state.field(Rg, !1);
|
|
24767
|
+
e && e.size > 0 && this.view.dispatch({ effects: Lg.of(st.none) });
|
|
24770
24768
|
}
|
|
24771
24769
|
}
|
|
24772
24770
|
async hover(e) {
|
|
24773
|
-
let n =
|
|
24771
|
+
let n = Vh(this.view.state, e);
|
|
24774
24772
|
if (!n) {
|
|
24775
24773
|
this.clear();
|
|
24776
24774
|
return;
|
|
@@ -24786,7 +24784,7 @@ function Bg(e = {}) {
|
|
|
24786
24784
|
try {
|
|
24787
24785
|
let a = await t.resolve(i, e);
|
|
24788
24786
|
if (this.hovered !== r || this.view.state !== i) return;
|
|
24789
|
-
r.result = a, this.view.dispatch({ effects:
|
|
24787
|
+
r.result = a, this.view.dispatch({ effects: Lg.of(a ? st.set([jg.range(n.from, n.to)]) : st.none) });
|
|
24790
24788
|
} catch {}
|
|
24791
24789
|
}
|
|
24792
24790
|
destroy() {
|
|
@@ -24826,15 +24824,15 @@ function Bg(e = {}) {
|
|
|
24826
24824
|
}), !0) : !1;
|
|
24827
24825
|
}
|
|
24828
24826
|
} }),
|
|
24829
|
-
|
|
24827
|
+
Og
|
|
24830
24828
|
];
|
|
24831
24829
|
}
|
|
24832
|
-
var
|
|
24833
|
-
async function
|
|
24834
|
-
let n = e.state, r = await
|
|
24830
|
+
var Bg = (e) => typeof window < "u" && typeof window.prompt == "function" ? window.prompt(`Rename '${e}' to:`, e) : null, Vg = /^[A-Za-z_][\w$]*$/, Hg = /* @__PURE__ */ new Set(/* @__PURE__ */ "all.and.as.asc.between.by.case.cross.delete.desc.distinct.else.end.except.exists.fetch.from.full.group.having.in.inner.insert.intersect.into.is.join.lateral.left.like.limit.natural.not.null.offset.on.or.order.outer.qualify.recursive.right.select.set.table.then.union.update.using.values.when.where.window.with".split("."));
|
|
24831
|
+
async function Ug(e, t = {}) {
|
|
24832
|
+
let n = e.state, r = await Dg(t).resolve(n, n.selection.main.head);
|
|
24835
24833
|
if (!r) return !1;
|
|
24836
|
-
let i = await (t.prompt ??
|
|
24837
|
-
return !i || i === r.name || !
|
|
24834
|
+
let i = await (t.prompt ?? Bg)(r.name);
|
|
24835
|
+
return !i || i === r.name || !Vg.test(i) || Hg.has(i.toLowerCase()) || e.state !== n ? !1 : (e.dispatch({
|
|
24838
24836
|
changes: r.references.map((e) => ({
|
|
24839
24837
|
from: e.from,
|
|
24840
24838
|
to: e.to,
|
|
@@ -24843,36 +24841,36 @@ async function Wg(e, t = {}) {
|
|
|
24843
24841
|
userEvent: "rename"
|
|
24844
24842
|
}), !0);
|
|
24845
24843
|
}
|
|
24846
|
-
function
|
|
24844
|
+
function Wg(e = {}) {
|
|
24847
24845
|
let t = {
|
|
24848
24846
|
...e,
|
|
24849
|
-
resolver:
|
|
24847
|
+
resolver: Dg(e)
|
|
24850
24848
|
}, n = e.gotoDefinitionKeys ?? ["F12", "Mod-b"], r = e.renameKey ?? "F2";
|
|
24851
24849
|
return dt.of([...n.map((e) => ({
|
|
24852
24850
|
key: e,
|
|
24853
|
-
run: (e) => (
|
|
24851
|
+
run: (e) => (Ig(e, void 0, t), !0)
|
|
24854
24852
|
})), {
|
|
24855
24853
|
key: r,
|
|
24856
|
-
run: (e) => (
|
|
24854
|
+
run: (e) => (Ug(e, t), !0)
|
|
24857
24855
|
}]);
|
|
24858
24856
|
}
|
|
24859
|
-
function
|
|
24857
|
+
function Gg(e = {}) {
|
|
24860
24858
|
let t = {
|
|
24861
24859
|
...e,
|
|
24862
|
-
resolver:
|
|
24863
|
-
}, n = [
|
|
24864
|
-
return e.keymap && n.push(
|
|
24860
|
+
resolver: Dg(e)
|
|
24861
|
+
}, n = [Fg(t), zg(t)];
|
|
24862
|
+
return e.keymap && n.push(Wg(t)), n;
|
|
24865
24863
|
}
|
|
24866
24864
|
//#endregion
|
|
24867
24865
|
//#region ../node_modules/.pnpm/@marimo-team+codemirror-sql@0.3.0_@codemirror+autocomplete@6.20.3_@codemirror+lint@6.9._ea1055731b2d7fd34c5d3340d30da00f/node_modules/@marimo-team/codemirror-sql/dist/sql/semantic-diagnostics.js
|
|
24868
|
-
var
|
|
24869
|
-
function
|
|
24866
|
+
var Kg = 750;
|
|
24867
|
+
function qg(e) {
|
|
24870
24868
|
return typeof e == "object" && !!e && !Array.isArray(e) && e.type === "select";
|
|
24871
24869
|
}
|
|
24872
|
-
function
|
|
24870
|
+
function Jg(e) {
|
|
24873
24871
|
return Array.isArray(e) ? e : [];
|
|
24874
24872
|
}
|
|
24875
|
-
function
|
|
24873
|
+
function Yg(e) {
|
|
24876
24874
|
return {
|
|
24877
24875
|
sources: [],
|
|
24878
24876
|
columnRefs: [],
|
|
@@ -24881,23 +24879,23 @@ function Xg(e) {
|
|
|
24881
24879
|
hasUsingJoin: !1
|
|
24882
24880
|
};
|
|
24883
24881
|
}
|
|
24884
|
-
function
|
|
24885
|
-
let r =
|
|
24882
|
+
function Xg(e, t, n) {
|
|
24883
|
+
let r = Jg(e.with);
|
|
24886
24884
|
for (let e of r) {
|
|
24887
24885
|
let n = e.name, r = typeof n == "string" ? n : n?.value;
|
|
24888
24886
|
typeof r == "string" && t.add(r.toLowerCase());
|
|
24889
24887
|
}
|
|
24890
24888
|
for (let e of r) {
|
|
24891
24889
|
let r = e.stmt, i = r?.ast ?? r;
|
|
24892
|
-
|
|
24890
|
+
qg(i) && $g(i, t, n, !1);
|
|
24893
24891
|
}
|
|
24894
24892
|
}
|
|
24895
|
-
function
|
|
24896
|
-
e.using != null && (t.hasUsingJoin = !0), typeof e.join == "string" && e.join.toLowerCase().includes("natural") && (t.hasUsingJoin = !0), e.on != null &&
|
|
24893
|
+
function Zg(e, t, n, r) {
|
|
24894
|
+
e.using != null && (t.hasUsingJoin = !0), typeof e.join == "string" && e.join.toLowerCase().includes("natural") && (t.hasUsingJoin = !0), e.on != null && Qg(e.on, t, n, r);
|
|
24897
24895
|
let i = e.expr;
|
|
24898
24896
|
if (i != null) {
|
|
24899
24897
|
let a = i.ast ?? i;
|
|
24900
|
-
|
|
24898
|
+
qg(a) && $g(a, n, r, !1), t.sources.push({
|
|
24901
24899
|
path: "",
|
|
24902
24900
|
name: "",
|
|
24903
24901
|
alias: typeof e.as == "string" ? e.as : null,
|
|
@@ -24921,10 +24919,10 @@ function Qg(e, t, n, r) {
|
|
|
24921
24919
|
});
|
|
24922
24920
|
}
|
|
24923
24921
|
}
|
|
24924
|
-
function
|
|
24922
|
+
function Qg(e, t, n, r) {
|
|
24925
24923
|
if (typeof e != "object" || !e) return;
|
|
24926
24924
|
if (Array.isArray(e)) {
|
|
24927
|
-
for (let i of e)
|
|
24925
|
+
for (let i of e) Qg(i, t, n, r);
|
|
24928
24926
|
return;
|
|
24929
24927
|
}
|
|
24930
24928
|
let i = e;
|
|
@@ -24932,78 +24930,78 @@ function $g(e, t, n, r) {
|
|
|
24932
24930
|
t.columnRefs.push(i);
|
|
24933
24931
|
return;
|
|
24934
24932
|
}
|
|
24935
|
-
if (
|
|
24936
|
-
|
|
24933
|
+
if (qg(i)) {
|
|
24934
|
+
$g(i, n, r, !0);
|
|
24937
24935
|
return;
|
|
24938
24936
|
}
|
|
24939
|
-
if (
|
|
24940
|
-
|
|
24937
|
+
if (qg(i.ast)) {
|
|
24938
|
+
$g(i.ast, n, r, !0);
|
|
24941
24939
|
return;
|
|
24942
24940
|
}
|
|
24943
|
-
for (let [e, a] of Object.entries(i)) e !== "loc" && e !== "tableList" && e !== "columnList" &&
|
|
24941
|
+
for (let [e, a] of Object.entries(i)) e !== "loc" && e !== "tableList" && e !== "columnList" && Qg(a, t, n, r);
|
|
24944
24942
|
}
|
|
24945
|
-
function
|
|
24943
|
+
function $g(e, t, n, r) {
|
|
24946
24944
|
let i = new Set(t);
|
|
24947
|
-
|
|
24948
|
-
let a =
|
|
24945
|
+
Xg(e, i, n);
|
|
24946
|
+
let a = Yg(!r);
|
|
24949
24947
|
n.push(a);
|
|
24950
|
-
for (let t of
|
|
24951
|
-
for (let t of
|
|
24952
|
-
for (let [t, r] of Object.entries(e)) t !== "with" && t !== "from" && t !== "loc" &&
|
|
24948
|
+
for (let t of Jg(e.from)) Zg(t, a, i, n);
|
|
24949
|
+
for (let t of Jg(e.columns)) typeof t.as == "string" && a.selectAliases.add(t.as.toLowerCase());
|
|
24950
|
+
for (let [t, r] of Object.entries(e)) t !== "with" && t !== "from" && t !== "loc" && Qg(r, a, i, n);
|
|
24953
24951
|
}
|
|
24954
|
-
function
|
|
24952
|
+
function e_(e, t) {
|
|
24955
24953
|
let n = /* @__PURE__ */ new Set();
|
|
24956
24954
|
switch (e.type) {
|
|
24957
24955
|
case "select":
|
|
24958
|
-
|
|
24956
|
+
$g(e, n, t, !1);
|
|
24959
24957
|
return;
|
|
24960
24958
|
case "update": {
|
|
24961
|
-
|
|
24962
|
-
let r =
|
|
24959
|
+
Xg(e, n, t);
|
|
24960
|
+
let r = Yg(!0);
|
|
24963
24961
|
t.push(r);
|
|
24964
|
-
for (let i of
|
|
24965
|
-
for (let i of
|
|
24966
|
-
for (let i of
|
|
24962
|
+
for (let i of Jg(e.table)) Zg(i, r, n, t);
|
|
24963
|
+
for (let i of Jg(e.from)) Zg(i, r, n, t);
|
|
24964
|
+
for (let i of Jg(e.set)) i.column != null && r.columnRefs.push({
|
|
24967
24965
|
type: "column_ref",
|
|
24968
24966
|
table: i.table ?? null,
|
|
24969
24967
|
column: i.column
|
|
24970
|
-
}),
|
|
24971
|
-
for (let [i, a] of Object.entries(e)) i !== "with" && i !== "table" && i !== "from" && i !== "set" && i !== "loc" &&
|
|
24968
|
+
}), Qg(i.value, r, n, t);
|
|
24969
|
+
for (let [i, a] of Object.entries(e)) i !== "with" && i !== "table" && i !== "from" && i !== "set" && i !== "loc" && Qg(a, r, n, t);
|
|
24972
24970
|
return;
|
|
24973
24971
|
}
|
|
24974
24972
|
case "delete": {
|
|
24975
|
-
|
|
24976
|
-
let r =
|
|
24973
|
+
Xg(e, n, t);
|
|
24974
|
+
let r = Yg(!0);
|
|
24977
24975
|
t.push(r);
|
|
24978
|
-
for (let i of
|
|
24979
|
-
for (let [i, a] of Object.entries(e)) i !== "with" && i !== "table" && i !== "from" && i !== "loc" &&
|
|
24976
|
+
for (let i of Jg(e.from)) Zg(i, r, n, t);
|
|
24977
|
+
for (let [i, a] of Object.entries(e)) i !== "with" && i !== "table" && i !== "from" && i !== "loc" && Qg(a, r, n, t);
|
|
24980
24978
|
return;
|
|
24981
24979
|
}
|
|
24982
24980
|
case "insert":
|
|
24983
24981
|
case "replace": {
|
|
24984
|
-
|
|
24985
|
-
let r =
|
|
24982
|
+
Xg(e, n, t);
|
|
24983
|
+
let r = Yg(!1);
|
|
24986
24984
|
t.push(r);
|
|
24987
|
-
for (let i of
|
|
24988
|
-
for (let [i, a] of Object.entries(e)) i !== "with" && i !== "table" && i !== "columns" && i !== "loc" && (
|
|
24985
|
+
for (let i of Jg(e.table)) Zg(i, r, n, t);
|
|
24986
|
+
for (let [i, a] of Object.entries(e)) i !== "with" && i !== "table" && i !== "columns" && i !== "loc" && (qg(a) ? $g(a, n, t, !1) : Qg(a, r, n, t));
|
|
24989
24987
|
return;
|
|
24990
24988
|
}
|
|
24991
24989
|
case "create":
|
|
24992
24990
|
case "alter":
|
|
24993
24991
|
case "drop": {
|
|
24994
|
-
let r =
|
|
24992
|
+
let r = Yg(!1);
|
|
24995
24993
|
t.push(r);
|
|
24996
|
-
for (let [i, a] of Object.entries(e)) i !== "table" && i !== "loc" && (
|
|
24994
|
+
for (let [i, a] of Object.entries(e)) i !== "table" && i !== "loc" && (qg(a) ? $g(a, n, t, !1) : Qg(a, r, n, t));
|
|
24997
24995
|
return;
|
|
24998
24996
|
}
|
|
24999
24997
|
default: {
|
|
25000
|
-
let r =
|
|
24998
|
+
let r = Yg(!1);
|
|
25001
24999
|
t.push(r);
|
|
25002
|
-
for (let [i, a] of Object.entries(e)) i !== "loc" &&
|
|
25000
|
+
for (let [i, a] of Object.entries(e)) i !== "loc" && Qg(a, r, n, t);
|
|
25003
25001
|
}
|
|
25004
25002
|
}
|
|
25005
25003
|
}
|
|
25006
|
-
function
|
|
25004
|
+
function t_(e) {
|
|
25007
25005
|
let t = e.column;
|
|
25008
25006
|
if (typeof t == "string") return t;
|
|
25009
25007
|
if (typeof t == "object" && t) {
|
|
@@ -25012,27 +25010,27 @@ function n_(e) {
|
|
|
25012
25010
|
}
|
|
25013
25011
|
return null;
|
|
25014
25012
|
}
|
|
25015
|
-
function
|
|
25013
|
+
function n_(e) {
|
|
25016
25014
|
return typeof e.table != "string" || e.table.length === 0 ? null : typeof e.db == "string" && e.db.length > 0 ? `${e.db}.${e.table}` : e.table;
|
|
25017
25015
|
}
|
|
25018
|
-
function
|
|
25016
|
+
function r_(e) {
|
|
25019
25017
|
if (e == null) return null;
|
|
25020
|
-
let t =
|
|
25021
|
-
return
|
|
25018
|
+
let t = Um(e) ? e.children : e;
|
|
25019
|
+
return Wm(t) ? t.map((e) => typeof e == "string" ? e : e.label) : null;
|
|
25022
25020
|
}
|
|
25023
|
-
function
|
|
25024
|
-
let n =
|
|
25021
|
+
function i_(e, t) {
|
|
25022
|
+
let n = Km(e, t, { caseSensitive: !1 });
|
|
25025
25023
|
if (n) return {
|
|
25026
25024
|
exists: !0,
|
|
25027
|
-
columns:
|
|
25025
|
+
columns: r_(n.namespace)
|
|
25028
25026
|
};
|
|
25029
25027
|
let r = t.split(".").map((e) => e.toLowerCase()), i = r[r.length - 1];
|
|
25030
25028
|
if (!i) return {
|
|
25031
25029
|
exists: !1,
|
|
25032
25030
|
columns: null
|
|
25033
25031
|
};
|
|
25034
|
-
let a =
|
|
25035
|
-
if (
|
|
25032
|
+
let a = Xm(e, i).filter((e) => {
|
|
25033
|
+
if (r_(e.namespace) === null || e.path.length < r.length) return !1;
|
|
25036
25034
|
let t = e.path.slice(-r.length).map((e) => e.toLowerCase());
|
|
25037
25035
|
return r.every((e, n) => t[n] === e);
|
|
25038
25036
|
});
|
|
@@ -25041,16 +25039,16 @@ function a_(e, t) {
|
|
|
25041
25039
|
columns: null
|
|
25042
25040
|
} : {
|
|
25043
25041
|
exists: !0,
|
|
25044
|
-
columns: a.length === 1 ?
|
|
25042
|
+
columns: a.length === 1 ? r_(a[0]?.namespace) : null
|
|
25045
25043
|
};
|
|
25046
25044
|
}
|
|
25047
|
-
function
|
|
25045
|
+
function a_(e, t) {
|
|
25048
25046
|
let n = t.toLowerCase();
|
|
25049
25047
|
return e.some((e) => e.toLowerCase() === n);
|
|
25050
25048
|
}
|
|
25051
|
-
function
|
|
25049
|
+
function o_(e, t) {
|
|
25052
25050
|
let n = [];
|
|
25053
|
-
|
|
25051
|
+
e_(e, n);
|
|
25054
25052
|
let r = /* @__PURE__ */ new Map(), i = (e) => {
|
|
25055
25053
|
let t = `${e.kind}::${e.identifier.toLowerCase()}`;
|
|
25056
25054
|
r.has(t) || r.set(t, e);
|
|
@@ -25062,7 +25060,7 @@ function s_(e, t) {
|
|
|
25062
25060
|
exists: !0,
|
|
25063
25061
|
columns: null
|
|
25064
25062
|
};
|
|
25065
|
-
let n =
|
|
25063
|
+
let n = i_(t, e.path);
|
|
25066
25064
|
return {
|
|
25067
25065
|
source: e,
|
|
25068
25066
|
exists: n.exists,
|
|
@@ -25075,12 +25073,12 @@ function s_(e, t) {
|
|
|
25075
25073
|
message: `Unknown table '${e.path}'`
|
|
25076
25074
|
});
|
|
25077
25075
|
for (let t of e.columnRefs) {
|
|
25078
|
-
let r =
|
|
25076
|
+
let r = t_(t);
|
|
25079
25077
|
if (!r || r === "*") continue;
|
|
25080
|
-
let a =
|
|
25078
|
+
let a = n_(t);
|
|
25081
25079
|
if (a) {
|
|
25082
25080
|
let e = a.toLowerCase(), t = n.find((t) => t.source.alias?.toLowerCase() === e) ?? n.find((t) => t.source.name.toLowerCase() === e || t.source.path.toLowerCase() === e);
|
|
25083
|
-
t?.columns && !
|
|
25081
|
+
t?.columns && !a_(t.columns, r) && i({
|
|
25084
25082
|
kind: "unknownColumn",
|
|
25085
25083
|
identifier: r,
|
|
25086
25084
|
message: `Column '${r}' not found in table '${t.source.path || a}'`
|
|
@@ -25088,7 +25086,7 @@ function s_(e, t) {
|
|
|
25088
25086
|
continue;
|
|
25089
25087
|
}
|
|
25090
25088
|
if (!e.checkUnqualified || e.selectAliases.has(r.toLowerCase())) continue;
|
|
25091
|
-
let o = n.filter((e) => e.columns !== null &&
|
|
25089
|
+
let o = n.filter((e) => e.columns !== null && a_(e.columns, r));
|
|
25092
25090
|
if (o.length >= 2 && !e.hasUsingJoin) {
|
|
25093
25091
|
i({
|
|
25094
25092
|
kind: "ambiguousColumn",
|
|
@@ -25107,7 +25105,7 @@ function s_(e, t) {
|
|
|
25107
25105
|
}
|
|
25108
25106
|
return [...r.values()];
|
|
25109
25107
|
}
|
|
25110
|
-
function
|
|
25108
|
+
function s_(e, t) {
|
|
25111
25109
|
let n = e.toLowerCase(), r = t.toLowerCase(), i = n.indexOf(r);
|
|
25112
25110
|
for (; i !== -1;) {
|
|
25113
25111
|
let e = i > 0 ? n[i - 1] ?? "" : "", t = n[i + r.length] ?? "";
|
|
@@ -25116,8 +25114,8 @@ function c_(e, t) {
|
|
|
25116
25114
|
}
|
|
25117
25115
|
return -1;
|
|
25118
25116
|
}
|
|
25119
|
-
function
|
|
25120
|
-
let i = n.sliceString(t.from, t.to), a =
|
|
25117
|
+
function c_(e, t, n, r) {
|
|
25118
|
+
let i = n.sliceString(t.from, t.to), a = s_(i, e.identifier), o = a === -1 ? t.from : t.from + a;
|
|
25121
25119
|
return {
|
|
25122
25120
|
from: o,
|
|
25123
25121
|
to: Math.min(a === -1 ? t.from + (i.match(/^[\w"'`.]+/)?.[0].length ?? 1) : o + e.identifier.length, t.to),
|
|
@@ -25126,18 +25124,18 @@ function l_(e, t, n, r) {
|
|
|
25126
25124
|
source: "sql-schema"
|
|
25127
25125
|
};
|
|
25128
25126
|
}
|
|
25129
|
-
function
|
|
25130
|
-
return
|
|
25127
|
+
function l_(e) {
|
|
25128
|
+
return Wm(e) ? e.length === 0 : Hm(e) ? Object.keys(e).length === 0 : !1;
|
|
25131
25129
|
}
|
|
25132
|
-
function
|
|
25133
|
-
let t = e.parser || new
|
|
25130
|
+
function u_(e = {}) {
|
|
25131
|
+
let t = e.parser || new oh(), n = e.structureAnalyzer || new Nh(t), r = {
|
|
25134
25132
|
unknownTable: e.severity?.unknownTable ?? "warning",
|
|
25135
25133
|
unknownColumn: e.severity?.unknownColumn ?? "warning",
|
|
25136
25134
|
ambiguousColumn: e.severity?.ambiguousColumn ?? "warning"
|
|
25137
25135
|
};
|
|
25138
25136
|
return async (i) => {
|
|
25139
|
-
let a =
|
|
25140
|
-
if (a == null ||
|
|
25137
|
+
let a = eh(e.schema, i);
|
|
25138
|
+
if (a == null || l_(a)) return [];
|
|
25141
25139
|
let o = i.state.doc;
|
|
25142
25140
|
if (!o.toString().trim()) return [];
|
|
25143
25141
|
let s = [], c = await n.analyzeDocument(i.state);
|
|
@@ -25146,20 +25144,20 @@ function d_(e = {}) {
|
|
|
25146
25144
|
let n = await t.parse(e.content, { state: i.state });
|
|
25147
25145
|
if (!n.success || n.ast == null) continue;
|
|
25148
25146
|
let c = Array.isArray(n.ast) ? n.ast : [n.ast];
|
|
25149
|
-
for (let t of c) for (let n of
|
|
25147
|
+
for (let t of c) for (let n of o_(t, a)) {
|
|
25150
25148
|
let t = r[n.kind];
|
|
25151
|
-
t !== "off" && s.push(
|
|
25149
|
+
t !== "off" && s.push(c_(n, e, o, t));
|
|
25152
25150
|
}
|
|
25153
25151
|
}
|
|
25154
25152
|
return s;
|
|
25155
25153
|
};
|
|
25156
25154
|
}
|
|
25157
|
-
function
|
|
25158
|
-
return wt(
|
|
25155
|
+
function d_(e = {}) {
|
|
25156
|
+
return wt(u_(e), { delay: e.delay || Kg });
|
|
25159
25157
|
}
|
|
25160
25158
|
//#endregion
|
|
25161
25159
|
//#region ../node_modules/.pnpm/@marimo-team+codemirror-sql@0.3.0_@codemirror+autocomplete@6.20.3_@codemirror+lint@6.9._ea1055731b2d7fd34c5d3340d30da00f/node_modules/@marimo-team/codemirror-sql/dist/sql/structure-extension.js
|
|
25162
|
-
var
|
|
25160
|
+
var f_ = et.define(), p_ = xt.define({
|
|
25163
25161
|
create() {
|
|
25164
25162
|
return {
|
|
25165
25163
|
currentStatement: null,
|
|
@@ -25169,11 +25167,11 @@ var p_ = et.define(), m_ = xt.define({
|
|
|
25169
25167
|
};
|
|
25170
25168
|
},
|
|
25171
25169
|
update(e, t) {
|
|
25172
|
-
for (let e of t.effects) if (e.is(
|
|
25170
|
+
for (let e of t.effects) if (e.is(f_)) return e.value;
|
|
25173
25171
|
return e;
|
|
25174
25172
|
}
|
|
25175
25173
|
});
|
|
25176
|
-
function
|
|
25174
|
+
function m_(e, t) {
|
|
25177
25175
|
let { isCurrent: n, isValid: r, isFocused: i } = t, a = e.backgroundColor || "#3b82f6";
|
|
25178
25176
|
!r && e.showInvalid !== !1 && (a = e.errorBackgroundColor || "#ef4444");
|
|
25179
25177
|
let o = n ? "1" : (e.inactiveOpacity ?? .3).toString(), s;
|
|
@@ -25182,7 +25180,7 @@ function h_(e, t) {
|
|
|
25182
25180
|
opacity: s
|
|
25183
25181
|
};
|
|
25184
25182
|
}
|
|
25185
|
-
var
|
|
25183
|
+
var h_ = class extends lt {
|
|
25186
25184
|
config;
|
|
25187
25185
|
isCurrent;
|
|
25188
25186
|
isValid;
|
|
@@ -25193,7 +25191,7 @@ var g_ = class extends lt {
|
|
|
25193
25191
|
toDOM() {
|
|
25194
25192
|
let e = document.createElement("div");
|
|
25195
25193
|
e.className = "cm-sql-gutter-marker";
|
|
25196
|
-
let { backgroundColor: t, opacity: n } =
|
|
25194
|
+
let { backgroundColor: t, opacity: n } = m_(this.config, {
|
|
25197
25195
|
isCurrent: this.isCurrent,
|
|
25198
25196
|
isValid: this.isValid,
|
|
25199
25197
|
isFocused: this.isFocused
|
|
@@ -25211,10 +25209,10 @@ var g_ = class extends lt {
|
|
|
25211
25209
|
return this.isCurrent === e.isCurrent && this.isValid === e.isValid && this.isFocused === e.isFocused && this.config === e.config;
|
|
25212
25210
|
}
|
|
25213
25211
|
};
|
|
25214
|
-
function
|
|
25212
|
+
function g_(e, t) {
|
|
25215
25213
|
let n = Je.empty;
|
|
25216
25214
|
if (t.whenHide?.(e)) return n;
|
|
25217
|
-
let r = e.state.field(
|
|
25215
|
+
let r = e.state.field(p_, !1);
|
|
25218
25216
|
if (!r) return n;
|
|
25219
25217
|
let { currentStatement: i, allStatements: a, isFocused: o } = r;
|
|
25220
25218
|
try {
|
|
@@ -25223,7 +25221,7 @@ function __(e, t) {
|
|
|
25223
25221
|
if (c.lineTo < r || c.lineFrom > s) continue;
|
|
25224
25222
|
let a = i?.from === c.from && i?.to === c.to;
|
|
25225
25223
|
if (!c.isValid && t.showInvalid === !1) continue;
|
|
25226
|
-
let l = new
|
|
25224
|
+
let l = new h_(t, a, c.isValid, o), u = Math.max(c.lineFrom, r), d = Math.min(c.lineTo, s);
|
|
25227
25225
|
for (let t = u; t <= d; t++) try {
|
|
25228
25226
|
if (t < 1 || t > e.state.doc.lines) continue;
|
|
25229
25227
|
let r = e.state.doc.line(t);
|
|
@@ -25237,21 +25235,21 @@ function __(e, t) {
|
|
|
25237
25235
|
}
|
|
25238
25236
|
return n;
|
|
25239
25237
|
}
|
|
25240
|
-
async function
|
|
25238
|
+
async function __(e, t) {
|
|
25241
25239
|
let { state: n } = e, r = n.selection.main.head, i = await t.analyzeDocument(n), a = {
|
|
25242
25240
|
currentStatement: await t.getStatementAtPosition(n, r),
|
|
25243
25241
|
allStatements: i,
|
|
25244
25242
|
cursorPosition: r,
|
|
25245
25243
|
isFocused: e.hasFocus
|
|
25246
25244
|
};
|
|
25247
|
-
e.dispatch({ effects:
|
|
25245
|
+
e.dispatch({ effects: f_.of(a) });
|
|
25248
25246
|
}
|
|
25249
|
-
function
|
|
25250
|
-
return ht.define((t) => (
|
|
25251
|
-
!t.docChanged && !t.selectionSet && !t.focusChanged ||
|
|
25247
|
+
function v_(e) {
|
|
25248
|
+
return ht.define((t) => (__(t, e), { update(t) {
|
|
25249
|
+
!t.docChanged && !t.selectionSet && !t.focusChanged || __(t.view, e);
|
|
25252
25250
|
} }));
|
|
25253
25251
|
}
|
|
25254
|
-
function
|
|
25252
|
+
function y_(e) {
|
|
25255
25253
|
let t = e.width || 3;
|
|
25256
25254
|
return He.baseTheme({
|
|
25257
25255
|
".cm-sql-gutter": {
|
|
@@ -25274,35 +25272,35 @@ function b_(e) {
|
|
|
25274
25272
|
}
|
|
25275
25273
|
});
|
|
25276
25274
|
}
|
|
25277
|
-
function
|
|
25275
|
+
function b_(e) {
|
|
25278
25276
|
return _t({
|
|
25279
25277
|
class: `cm-sql-gutter ${e.className || ""}`,
|
|
25280
|
-
markers: (t) =>
|
|
25278
|
+
markers: (t) => g_(t, e)
|
|
25281
25279
|
});
|
|
25282
25280
|
}
|
|
25283
|
-
function
|
|
25281
|
+
function x_(e = {}) {
|
|
25284
25282
|
return [
|
|
25285
|
-
|
|
25286
|
-
|
|
25287
|
-
|
|
25288
|
-
|
|
25283
|
+
p_,
|
|
25284
|
+
v_(new Nh(e.parser || new oh())),
|
|
25285
|
+
y_(e),
|
|
25286
|
+
b_(e)
|
|
25289
25287
|
];
|
|
25290
25288
|
}
|
|
25291
25289
|
//#endregion
|
|
25292
25290
|
//#region ../node_modules/.pnpm/@marimo-team+codemirror-sql@0.3.0_@codemirror+autocomplete@6.20.3_@codemirror+lint@6.9._ea1055731b2d7fd34c5d3340d30da00f/node_modules/@marimo-team/codemirror-sql/dist/sql/extension.js
|
|
25293
|
-
function
|
|
25291
|
+
function S_(e = {}) {
|
|
25294
25292
|
let t = [], { schema: n, enableLinting: r = !0, enableSemanticLinting: i = !0, enableGutterMarkers: a = !0, enableHover: o = !0, enableNavigation: s = !0, linterConfig: c, semanticLinterConfig: l, gutterConfig: u, hoverConfig: d, navigationConfig: f } = e;
|
|
25295
|
-
if (n != null && t.push(
|
|
25293
|
+
if (n != null && t.push($m.of(n)), r && t.push(mg(c)), i) {
|
|
25296
25294
|
let e = l?.parser ?? c?.parser, n = l?.structureAnalyzer ?? (l?.parser == null ? c?.structureAnalyzer : void 0);
|
|
25297
|
-
t.push(
|
|
25295
|
+
t.push(d_({
|
|
25298
25296
|
...l,
|
|
25299
25297
|
parser: e,
|
|
25300
25298
|
structureAnalyzer: n
|
|
25301
25299
|
}));
|
|
25302
25300
|
}
|
|
25303
|
-
if (a && t.push(
|
|
25301
|
+
if (a && t.push(x_(u)), o && (t.push(vg(d)), t.push(d?.theme ?? Eg())), s) {
|
|
25304
25302
|
let e = f?.parser ?? c?.parser, n = f?.structureAnalyzer ?? (f?.parser == null ? c?.structureAnalyzer : void 0);
|
|
25305
|
-
t.push(...
|
|
25303
|
+
t.push(...Gg({
|
|
25306
25304
|
...f,
|
|
25307
25305
|
parser: e,
|
|
25308
25306
|
structureAnalyzer: n
|
|
@@ -25312,7 +25310,7 @@ function C_(e = {}) {
|
|
|
25312
25310
|
}
|
|
25313
25311
|
//#endregion
|
|
25314
25312
|
//#region src/core/network/CachingRequestRegistry.ts
|
|
25315
|
-
var
|
|
25313
|
+
var C_ = class e {
|
|
25316
25314
|
delegate;
|
|
25317
25315
|
toKey;
|
|
25318
25316
|
cache;
|
|
@@ -25338,7 +25336,7 @@ var w_ = class e {
|
|
|
25338
25336
|
reject(e, t) {
|
|
25339
25337
|
this.delegate.reject(e, t);
|
|
25340
25338
|
}
|
|
25341
|
-
},
|
|
25339
|
+
}, w_ = new Xd("data-source-discovery-result", async (e) => {
|
|
25342
25340
|
await nl().discoverDataSources({ requestId: e });
|
|
25343
25341
|
});
|
|
25344
25342
|
new Xd("sql-table-preview", async (e, t) => {
|
|
@@ -25357,32 +25355,32 @@ new Xd("sql-table-preview", async (e, t) => {
|
|
|
25357
25355
|
...t
|
|
25358
25356
|
});
|
|
25359
25357
|
});
|
|
25360
|
-
var
|
|
25358
|
+
var T_ = new C_(new Xd("validate-sql", async (e, t) => {
|
|
25361
25359
|
await nl().validateSQL({
|
|
25362
25360
|
requestId: e,
|
|
25363
25361
|
...t
|
|
25364
25362
|
});
|
|
25365
|
-
}), { maxSize: 3 }),
|
|
25366
|
-
function
|
|
25367
|
-
let t = j.get(
|
|
25368
|
-
n.delete(e), j.set(
|
|
25363
|
+
}), { maxSize: 3 }), E_ = A(/* @__PURE__ */ new Map());
|
|
25364
|
+
function D_(e) {
|
|
25365
|
+
let t = j.get(E_), n = new Map(t);
|
|
25366
|
+
n.delete(e), j.set(E_, n);
|
|
25369
25367
|
}
|
|
25370
|
-
function
|
|
25371
|
-
j.set(
|
|
25368
|
+
function O_() {
|
|
25369
|
+
j.set(E_, /* @__PURE__ */ new Map());
|
|
25372
25370
|
}
|
|
25373
|
-
function
|
|
25374
|
-
let r = j.get(
|
|
25375
|
-
i.set(e, a), j.set(
|
|
25371
|
+
function k_({ cellId: e, errorMessage: t, dialect: n }) {
|
|
25372
|
+
let r = j.get(E_), i = new Map(r), a = n === "DuckDB" ? A_(t) : j_(t);
|
|
25373
|
+
i.set(e, a), j.set(E_, i);
|
|
25376
25374
|
}
|
|
25377
|
-
function
|
|
25378
|
-
let { errorType: t, errorMessage: n } =
|
|
25375
|
+
function A_(e) {
|
|
25376
|
+
let { errorType: t, errorMessage: n } = j_(e), r = n, i, a = n.indexOf("LINE ");
|
|
25379
25377
|
return a !== -1 && (i = n.slice(Math.max(0, a)).trim(), r = n.slice(0, Math.max(0, a)).trim()), {
|
|
25380
25378
|
errorType: t,
|
|
25381
25379
|
errorMessage: r,
|
|
25382
25380
|
codeblock: i
|
|
25383
25381
|
};
|
|
25384
25382
|
}
|
|
25385
|
-
function
|
|
25383
|
+
function j_(e) {
|
|
25386
25384
|
return {
|
|
25387
25385
|
errorType: e.split(":")[0].trim(),
|
|
25388
25386
|
errorMessage: e.split(":").slice(1).join(":").trim()
|
|
@@ -25390,26 +25388,26 @@ function M_(e) {
|
|
|
25390
25388
|
}
|
|
25391
25389
|
//#endregion
|
|
25392
25390
|
//#region src/core/codemirror/language/languages/sql/completion-sources.tsx
|
|
25393
|
-
function
|
|
25391
|
+
function M_(e) {
|
|
25394
25392
|
return e.field(vp);
|
|
25395
25393
|
}
|
|
25396
|
-
function
|
|
25394
|
+
function N_() {
|
|
25397
25395
|
return (e) => {
|
|
25398
|
-
let t =
|
|
25396
|
+
let t = M_(e.state).engine, n = Tu.getCompletionSource(t);
|
|
25399
25397
|
return n && Wt(n)(e) || null;
|
|
25400
25398
|
};
|
|
25401
25399
|
}
|
|
25402
|
-
function
|
|
25400
|
+
function P_() {
|
|
25403
25401
|
return (e) => {
|
|
25404
|
-
let t =
|
|
25402
|
+
let t = M_(e.state).engine, n = Tu.getDialect(t);
|
|
25405
25403
|
return e.matchBefore(/\.\w*/) ? null : Ut(n, !0, (e, t) => ({
|
|
25406
25404
|
label: e,
|
|
25407
25405
|
type: t,
|
|
25408
25406
|
info: async () => {
|
|
25409
|
-
let t = (await
|
|
25407
|
+
let t = (await F_())[e.toLocaleLowerCase()];
|
|
25410
25408
|
if (!t) return null;
|
|
25411
25409
|
let n = document.createElement("div");
|
|
25412
|
-
return n.innerHTML =
|
|
25410
|
+
return n.innerHTML = Tg.keyword({
|
|
25413
25411
|
keyword: e,
|
|
25414
25412
|
info: t
|
|
25415
25413
|
}), n;
|
|
@@ -25417,31 +25415,31 @@ function F_() {
|
|
|
25417
25415
|
}))(e);
|
|
25418
25416
|
};
|
|
25419
25417
|
}
|
|
25420
|
-
var
|
|
25418
|
+
var F_ = Ft(async () => {
|
|
25421
25419
|
let e = await import("./common-keywords-8jMJIC1L.js"), t = await import("./duckdb-keywords-BGArYVVK.js");
|
|
25422
25420
|
return {
|
|
25423
25421
|
...e.default.keywords,
|
|
25424
25422
|
...t.default.keywords
|
|
25425
25423
|
};
|
|
25426
|
-
}),
|
|
25427
|
-
function
|
|
25428
|
-
let e = (0, Tr.c)(3), [t, n] = Ne(
|
|
25424
|
+
}), I_ = wr("marimo:notebook-sql-mode", "default", Ed);
|
|
25425
|
+
function L_() {
|
|
25426
|
+
let e = (0, Tr.c)(3), [t, n] = Ne(I_), r;
|
|
25429
25427
|
return e[0] !== n || e[1] !== t ? (r = {
|
|
25430
25428
|
sqlMode: t,
|
|
25431
25429
|
setSQLMode: n
|
|
25432
25430
|
}, e[0] = n, e[1] = t, e[2] = r) : r = e[2], r;
|
|
25433
25431
|
}
|
|
25434
|
-
function
|
|
25435
|
-
return j.get(
|
|
25432
|
+
function R_() {
|
|
25433
|
+
return j.get(I_);
|
|
25436
25434
|
}
|
|
25437
25435
|
//#endregion
|
|
25438
25436
|
//#region src/core/codemirror/language/languages/sql/sql.ts
|
|
25439
|
-
var
|
|
25440
|
-
function
|
|
25437
|
+
var z_ = cl, B_ = "DuckDB", V_ = new pt();
|
|
25438
|
+
function H_() {
|
|
25441
25439
|
let { latestEngineSelected: e, connectionsMap: t } = j.get(Al);
|
|
25442
25440
|
return e === null ? [...t.values()].reverse().find((e) => !hl.has(e.name) && e.source !== "iceberg")?.name ?? "__marimo_duckdb" : e;
|
|
25443
25441
|
}
|
|
25444
|
-
var
|
|
25442
|
+
var U_ = class {
|
|
25445
25443
|
parser = new dd();
|
|
25446
25444
|
type = "sql";
|
|
25447
25445
|
sqlModeEnabled;
|
|
@@ -25451,16 +25449,16 @@ var W_ = class {
|
|
|
25451
25449
|
get defaultMetadata() {
|
|
25452
25450
|
return {
|
|
25453
25451
|
...this.parser.defaultMetadata,
|
|
25454
|
-
engine:
|
|
25452
|
+
engine: H_() || "__marimo_duckdb"
|
|
25455
25453
|
};
|
|
25456
25454
|
}
|
|
25457
25455
|
get defaultCode() {
|
|
25458
|
-
let e =
|
|
25456
|
+
let e = H_();
|
|
25459
25457
|
return e && e !== "__marimo_duckdb" ? `_df = mo.sql(f"""SELECT * FROM """, engine=${e})` : this.parser.defaultCode;
|
|
25460
25458
|
}
|
|
25461
25459
|
static fromQuery = (e) => dd.fromQuery(e);
|
|
25462
25460
|
transformIn(e) {
|
|
25463
|
-
this.parser.defaultMetadata.engine =
|
|
25461
|
+
this.parser.defaultMetadata.engine = H_() || "__marimo_duckdb";
|
|
25464
25462
|
let t = this.parser.transformIn(e), n = t.metadata;
|
|
25465
25463
|
return n.engine && n.engine !== "__marimo_duckdb" && Nl(n.engine), [
|
|
25466
25464
|
t.code,
|
|
@@ -25476,8 +25474,8 @@ var W_ = class {
|
|
|
25476
25474
|
return this.parser.isSupported(e);
|
|
25477
25475
|
}
|
|
25478
25476
|
getExtension(e, t, n, r, i) {
|
|
25479
|
-
let a =
|
|
25480
|
-
|
|
25477
|
+
let a = W_(), o = [
|
|
25478
|
+
V_.of(Yt({ dialect: z_ })),
|
|
25481
25479
|
dt.of([{
|
|
25482
25480
|
key: "Tab",
|
|
25483
25481
|
run: (e) => Rt(e) || Dt(e),
|
|
@@ -25487,9 +25485,9 @@ var W_ = class {
|
|
|
25487
25485
|
defaultKeymap: !1,
|
|
25488
25486
|
activateOnTyping: !0,
|
|
25489
25487
|
override: [
|
|
25490
|
-
|
|
25488
|
+
N_(),
|
|
25491
25489
|
sp,
|
|
25492
|
-
|
|
25490
|
+
P_(),
|
|
25493
25491
|
a.cteCompletionSource,
|
|
25494
25492
|
a.aliasCompletionSource,
|
|
25495
25493
|
a.columnCompletionSource
|
|
@@ -25497,9 +25495,9 @@ var W_ = class {
|
|
|
25497
25495
|
})
|
|
25498
25496
|
];
|
|
25499
25497
|
if (i?.diagnostics?.sql_linter ?? !1) {
|
|
25500
|
-
let e = j.get(ze), t = new
|
|
25501
|
-
o.push(
|
|
25502
|
-
schema:
|
|
25498
|
+
let e = j.get(ze), t = new J_({ getParserOptions: (e) => ({ database: nv(e) ?? B_ }) });
|
|
25499
|
+
o.push(S_({
|
|
25500
|
+
schema: ev,
|
|
25503
25501
|
enableLinting: !0,
|
|
25504
25502
|
linterConfig: {
|
|
25505
25503
|
delay: 250,
|
|
@@ -25530,7 +25528,7 @@ var W_ = class {
|
|
|
25530
25528
|
enableColumns: !0,
|
|
25531
25529
|
parser: a.parser,
|
|
25532
25530
|
contextAnalyzer: a.contextAnalyzer,
|
|
25533
|
-
theme:
|
|
25531
|
+
theme: Eg(e)
|
|
25534
25532
|
},
|
|
25535
25533
|
enableNavigation: !0,
|
|
25536
25534
|
navigationConfig: {
|
|
@@ -25543,36 +25541,36 @@ var W_ = class {
|
|
|
25543
25541
|
e.focusChanged && t.setFocusState(e.view.hasFocus);
|
|
25544
25542
|
}));
|
|
25545
25543
|
}
|
|
25546
|
-
return this.sqlModeEnabled && o.push(
|
|
25544
|
+
return this.sqlModeEnabled && o.push(av()), o;
|
|
25547
25545
|
}
|
|
25548
25546
|
};
|
|
25549
|
-
function
|
|
25550
|
-
let e = new
|
|
25547
|
+
function W_() {
|
|
25548
|
+
let e = new oh({ getParserOptions: (e) => ({ database: G_(e) }) }), t = new K_(e), n = new q_(e);
|
|
25551
25549
|
return {
|
|
25552
25550
|
parser: e,
|
|
25553
25551
|
contextAnalyzer: t,
|
|
25554
25552
|
structureAnalyzer: n,
|
|
25555
|
-
cteCompletionSource:
|
|
25553
|
+
cteCompletionSource: lg({
|
|
25556
25554
|
parser: e,
|
|
25557
25555
|
contextAnalyzer: t,
|
|
25558
25556
|
structureAnalyzer: n
|
|
25559
25557
|
}),
|
|
25560
|
-
aliasCompletionSource:
|
|
25561
|
-
schema:
|
|
25558
|
+
aliasCompletionSource: Ph({
|
|
25559
|
+
schema: ev,
|
|
25562
25560
|
parser: e,
|
|
25563
25561
|
contextAnalyzer: t
|
|
25564
25562
|
}),
|
|
25565
|
-
columnCompletionSource:
|
|
25566
|
-
schema:
|
|
25563
|
+
columnCompletionSource: Rh({
|
|
25564
|
+
schema: ev,
|
|
25567
25565
|
parser: e,
|
|
25568
25566
|
contextAnalyzer: t
|
|
25569
25567
|
})
|
|
25570
25568
|
};
|
|
25571
25569
|
}
|
|
25572
|
-
function
|
|
25573
|
-
return
|
|
25570
|
+
function G_(e) {
|
|
25571
|
+
return nv(e) ?? B_;
|
|
25574
25572
|
}
|
|
25575
|
-
var
|
|
25573
|
+
var K_ = class extends Mh {
|
|
25576
25574
|
analyzers = /* @__PURE__ */ new Map();
|
|
25577
25575
|
analysisParser;
|
|
25578
25576
|
constructor(e) {
|
|
@@ -25585,10 +25583,10 @@ var q_ = class extends Nh {
|
|
|
25585
25583
|
for (let e of this.analyzers.values()) e.clearCache();
|
|
25586
25584
|
}
|
|
25587
25585
|
getAnalyzer(e) {
|
|
25588
|
-
let t =
|
|
25589
|
-
return n || (n = new
|
|
25586
|
+
let t = G_(e), n = this.analyzers.get(t);
|
|
25587
|
+
return n || (n = new Mh(this.analysisParser), this.analyzers.set(t, n)), n;
|
|
25590
25588
|
}
|
|
25591
|
-
},
|
|
25589
|
+
}, q_ = class extends Nh {
|
|
25592
25590
|
analyzers = /* @__PURE__ */ new Map();
|
|
25593
25591
|
analysisParser;
|
|
25594
25592
|
constructor(e) {
|
|
@@ -25607,10 +25605,10 @@ var q_ = class extends Nh {
|
|
|
25607
25605
|
for (let e of this.analyzers.values()) e.clearCache();
|
|
25608
25606
|
}
|
|
25609
25607
|
getAnalyzer(e) {
|
|
25610
|
-
let t =
|
|
25611
|
-
return n || (n = new
|
|
25608
|
+
let t = G_(e), n = this.analyzers.get(t);
|
|
25609
|
+
return n || (n = new Nh(this.analysisParser), this.analyzers.set(t, n)), n;
|
|
25612
25610
|
}
|
|
25613
|
-
},
|
|
25611
|
+
}, J_ = class extends oh {
|
|
25614
25612
|
validationTimeout = null;
|
|
25615
25613
|
pendingValidationResolve = null;
|
|
25616
25614
|
VALIDATION_DELAY_MS = 300;
|
|
@@ -25629,7 +25627,7 @@ var q_ = class extends Nh {
|
|
|
25629
25627
|
return;
|
|
25630
25628
|
}
|
|
25631
25629
|
try {
|
|
25632
|
-
let r = await
|
|
25630
|
+
let r = await ov(e, t, n, hl.has(t) ? R_() : "default");
|
|
25633
25631
|
if (r.error) {
|
|
25634
25632
|
a.error("Failed to validate SQL", { error: r.error }), this.resolvePendingValidation([]);
|
|
25635
25633
|
return;
|
|
@@ -25642,55 +25640,55 @@ var q_ = class extends Nh {
|
|
|
25642
25640
|
});
|
|
25643
25641
|
}
|
|
25644
25642
|
async validateSql(e, t) {
|
|
25645
|
-
let n =
|
|
25646
|
-
return this.isFocused ?
|
|
25643
|
+
let n = $_(t.state), r = rv(n.engine);
|
|
25644
|
+
return this.isFocused ? Y_(n.engine, r) ? this.validateWithDelay(e, n.engine, r ?? B_) : super.validateSql(e, t) : [];
|
|
25647
25645
|
}
|
|
25648
25646
|
async parse(e, t) {
|
|
25649
|
-
let n =
|
|
25650
|
-
return
|
|
25647
|
+
let n = $_(t.state).engine;
|
|
25648
|
+
return Y_(n, rv(n)) ? {
|
|
25651
25649
|
success: !0,
|
|
25652
25650
|
errors: []
|
|
25653
25651
|
} : super.parse(e, t);
|
|
25654
25652
|
}
|
|
25655
25653
|
};
|
|
25656
|
-
function
|
|
25654
|
+
function Y_(e, t) {
|
|
25657
25655
|
return e === "__marimo_duckdb" || t === "DuckDB";
|
|
25658
25656
|
}
|
|
25657
|
+
function X_(e, t) {
|
|
25658
|
+
e.dispatch({ effects: V_.reconfigure(Yt({ dialect: t })) });
|
|
25659
|
+
}
|
|
25659
25660
|
function Z_(e, t) {
|
|
25660
|
-
e
|
|
25661
|
+
X_(e, Tu.getDialect(t));
|
|
25661
25662
|
}
|
|
25662
|
-
function Q_(e
|
|
25663
|
-
|
|
25663
|
+
function Q_(e) {
|
|
25664
|
+
let t = $_(e.state).engine;
|
|
25665
|
+
X_(e, Tu.getDialect(t));
|
|
25664
25666
|
}
|
|
25665
25667
|
function $_(e) {
|
|
25666
|
-
let t = ev(e.state).engine;
|
|
25667
|
-
Z_(e, Tu.getDialect(t));
|
|
25668
|
-
}
|
|
25669
|
-
function ev(e) {
|
|
25670
25668
|
return e.field(vp);
|
|
25671
25669
|
}
|
|
25672
|
-
function
|
|
25673
|
-
let t =
|
|
25670
|
+
function ev(e) {
|
|
25671
|
+
let t = $_(e.state).engine, n = Tu.getCompletionSource(t);
|
|
25674
25672
|
if (!n?.schema) return {};
|
|
25675
25673
|
let r = n.schema;
|
|
25676
|
-
if (!
|
|
25674
|
+
if (!tv(r)) return r;
|
|
25677
25675
|
let i = n.defaultSchema, a = i ? r[i] : void 0;
|
|
25678
|
-
return a && !Array.isArray(a) && typeof a == "object" && "children" in a &&
|
|
25676
|
+
return a && !Array.isArray(a) && typeof a == "object" && "children" in a && tv(a.children) ? {
|
|
25679
25677
|
...r,
|
|
25680
25678
|
...Object.fromEntries(Object.entries(a.children).filter(([e]) => !Object.hasOwn(r, e)))
|
|
25681
25679
|
} : r;
|
|
25682
25680
|
}
|
|
25683
|
-
function
|
|
25681
|
+
function tv(e) {
|
|
25684
25682
|
if (Array.isArray(e)) return !1;
|
|
25685
25683
|
if (!("self" in e) || !("children" in e)) return !0;
|
|
25686
25684
|
let t = e.self;
|
|
25687
25685
|
return !(typeof t == "object" && t && !Array.isArray(t) && "label" in t && typeof t.label == "string");
|
|
25688
25686
|
}
|
|
25689
|
-
function
|
|
25690
|
-
let t =
|
|
25691
|
-
return
|
|
25687
|
+
function nv(e) {
|
|
25688
|
+
let t = $_(e).engine;
|
|
25689
|
+
return rv(t);
|
|
25692
25690
|
}
|
|
25693
|
-
function
|
|
25691
|
+
function rv(e) {
|
|
25694
25692
|
let t = Tu.getInternalDialect(e)?.toLowerCase();
|
|
25695
25693
|
if (!t || !ul(t)) return null;
|
|
25696
25694
|
switch (t) {
|
|
@@ -25729,45 +25727,45 @@ function iv(e) {
|
|
|
25729
25727
|
default: return T(t), null;
|
|
25730
25728
|
}
|
|
25731
25729
|
}
|
|
25732
|
-
var
|
|
25733
|
-
function
|
|
25730
|
+
var iv = 300;
|
|
25731
|
+
function av() {
|
|
25734
25732
|
return ht.define((e) => {
|
|
25735
25733
|
let t, n = null, r = e.state.facet(il);
|
|
25736
25734
|
return {
|
|
25737
25735
|
update(e) {
|
|
25738
25736
|
if (!e.docChanged) return;
|
|
25739
|
-
let i =
|
|
25737
|
+
let i = R_();
|
|
25740
25738
|
if (i === "default") return;
|
|
25741
|
-
let o =
|
|
25739
|
+
let o = $_(e.state).engine;
|
|
25742
25740
|
if (!hl.has(o)) return;
|
|
25743
25741
|
let s = e.state.doc.toString();
|
|
25744
25742
|
t && window.clearTimeout(t), t = window.setTimeout(async () => {
|
|
25745
25743
|
if (n !== s) {
|
|
25746
25744
|
if (n = s, s === "") {
|
|
25747
|
-
|
|
25745
|
+
D_(r);
|
|
25748
25746
|
return;
|
|
25749
25747
|
}
|
|
25750
25748
|
try {
|
|
25751
|
-
let e =
|
|
25752
|
-
t?.error_message ?
|
|
25749
|
+
let e = rv(o), t = (await ov(s, o, e, i)).validate_result;
|
|
25750
|
+
t?.error_message ? k_({
|
|
25753
25751
|
cellId: r,
|
|
25754
25752
|
errorMessage: t.error_message,
|
|
25755
25753
|
dialect: e
|
|
25756
|
-
}) :
|
|
25754
|
+
}) : D_(r);
|
|
25757
25755
|
} catch (e) {
|
|
25758
25756
|
a.error("Failed to validate SQL", { error: e });
|
|
25759
25757
|
}
|
|
25760
25758
|
}
|
|
25761
|
-
},
|
|
25759
|
+
}, iv);
|
|
25762
25760
|
},
|
|
25763
25761
|
destroy() {
|
|
25764
|
-
t && window.clearTimeout(t),
|
|
25762
|
+
t && window.clearTimeout(t), D_(r);
|
|
25765
25763
|
}
|
|
25766
25764
|
};
|
|
25767
25765
|
});
|
|
25768
25766
|
}
|
|
25769
|
-
async function
|
|
25770
|
-
let i = await
|
|
25767
|
+
async function ov(e, t, n, r) {
|
|
25768
|
+
let i = await T_.request({
|
|
25771
25769
|
onlyParse: r === "default",
|
|
25772
25770
|
engine: t,
|
|
25773
25771
|
dialect: n,
|
|
@@ -25778,17 +25776,17 @@ async function sv(e, t, n, r) {
|
|
|
25778
25776
|
}
|
|
25779
25777
|
//#endregion
|
|
25780
25778
|
//#region src/core/codemirror/language/LanguageAdapters.ts
|
|
25781
|
-
var
|
|
25779
|
+
var sv = Ft(() => new Rm()), cv = Ft(() => new yp()), lv = Ft(() => new U_()), uv = {
|
|
25782
25780
|
get python() {
|
|
25783
|
-
return
|
|
25781
|
+
return sv();
|
|
25784
25782
|
},
|
|
25785
25783
|
get markdown() {
|
|
25786
|
-
return
|
|
25784
|
+
return cv();
|
|
25787
25785
|
},
|
|
25788
25786
|
get sql() {
|
|
25789
|
-
return
|
|
25787
|
+
return lv();
|
|
25790
25788
|
}
|
|
25791
|
-
},
|
|
25789
|
+
}, dv = F.forwardRef((e, t) => {
|
|
25792
25790
|
let n = (0, Tr.c)(13), r, i;
|
|
25793
25791
|
n[0] === e ? (r = n[1], i = n[2]) : ({className: r, ...i} = e, n[0] = e, n[1] = r, n[2] = i);
|
|
25794
25792
|
let a;
|
|
@@ -25808,27 +25806,27 @@ var cv = Ft(() => new zm()), lv = Ft(() => new yp()), uv = Ft(() => new W_()), d
|
|
|
25808
25806
|
children: c
|
|
25809
25807
|
}), n[8] = i, n[9] = t, n[10] = a, n[11] = c, n[12] = l) : l = n[12], l;
|
|
25810
25808
|
});
|
|
25811
|
-
|
|
25812
|
-
var
|
|
25813
|
-
function
|
|
25809
|
+
dv.displayName = $n.displayName;
|
|
25810
|
+
var fv = /* @__PURE__ */ new Set(/* @__PURE__ */ "__*.marimo.app.False.None.True.__peg_parser__.and.as.assert.async.await.break.class.continue.def.del.elif.else.except.finally.for.from.global.if.import.in.is.lambda.nonlocal.not.or.pass.raise.return.try.while.with.yield.None.setup".split("."));
|
|
25811
|
+
function pv(e, t = !0) {
|
|
25814
25812
|
return e = e.trim(), e ? (/^\d/.test(e) && (e = `_${e}`), e = e.replaceAll(/\W/g, "_"), t ? e.toLowerCase() : e) : "_";
|
|
25815
25813
|
}
|
|
25816
|
-
function
|
|
25817
|
-
let n = new Set(t), r = e, i = (e) => !n.has(e) && !
|
|
25814
|
+
function mv(e, t) {
|
|
25815
|
+
let n = new Set(t), r = e, i = (e) => !n.has(e) && !fv.has(e);
|
|
25818
25816
|
if (i(e)) return e;
|
|
25819
25817
|
let a = 1;
|
|
25820
25818
|
for (; !i(r);) r = `${e}_${a}`, a++;
|
|
25821
25819
|
return r;
|
|
25822
25820
|
}
|
|
25823
|
-
function
|
|
25824
|
-
return
|
|
25821
|
+
function hv(e, t) {
|
|
25822
|
+
return gv(e) ? `cell-${t}` : e;
|
|
25825
25823
|
}
|
|
25826
|
-
function
|
|
25824
|
+
function gv(e) {
|
|
25827
25825
|
return !e || e === "_" || e === "__";
|
|
25828
25826
|
}
|
|
25829
25827
|
//#endregion
|
|
25830
25828
|
//#region src/hooks/useAutoGrowInputProps.ts
|
|
25831
|
-
function
|
|
25829
|
+
function _v(e) {
|
|
25832
25830
|
let t = (0, Tr.c)(15), { minWidth: n, padding: r } = e, i = n === void 0 ? 70 : n, a = r === void 0 ? 15 : r, [o, s] = (0, F.useState)(50), c = (0, F.useRef)(null), l = (0, F.useRef)(null), u;
|
|
25833
25831
|
t[0] === a ? u = t[1] : (u = (e) => {
|
|
25834
25832
|
if (l.current && c.current) {
|
|
@@ -25875,11 +25873,11 @@ function vv(e) {
|
|
|
25875
25873
|
}
|
|
25876
25874
|
//#endregion
|
|
25877
25875
|
//#region src/core/codemirror/language/panel/markdown.tsx
|
|
25878
|
-
function
|
|
25876
|
+
function vv({ currentQuotePrefix: e, checked: t, prefix: n }) {
|
|
25879
25877
|
let r = e;
|
|
25880
25878
|
return t ? e === "" ? r = n : e !== "rf" && n !== e && (r = "rf") : e === n ? r = "" : e === "rf" && (r = n === "r" ? "f" : "r"), r;
|
|
25881
25879
|
}
|
|
25882
|
-
var
|
|
25880
|
+
var yv = () => {
|
|
25883
25881
|
let e = (0, Tr.c)(2), t;
|
|
25884
25882
|
e[0] === Symbol.for("react.memo_cache_sentinel") ? (t = /* @__PURE__ */ (0, I.jsxs)("section", {
|
|
25885
25883
|
className: "flex flex-col gap-0.5",
|
|
@@ -25935,36 +25933,36 @@ var bv = () => {
|
|
|
25935
25933
|
]
|
|
25936
25934
|
})]
|
|
25937
25935
|
}), e[1] = n) : n = e[1], n;
|
|
25938
|
-
},
|
|
25939
|
-
function
|
|
25940
|
-
return { [
|
|
25936
|
+
}, bv = "data-cell-id";
|
|
25937
|
+
function xv(e) {
|
|
25938
|
+
return { [bv]: e };
|
|
25941
25939
|
}
|
|
25942
|
-
var
|
|
25943
|
-
function
|
|
25944
|
-
return { [
|
|
25940
|
+
var Sv = "data-for-cell-id";
|
|
25941
|
+
function Cv(e) {
|
|
25942
|
+
return { [Sv]: e };
|
|
25945
25943
|
}
|
|
25946
25944
|
//#endregion
|
|
25947
25945
|
//#region src/components/databases/icons/clickhouse.svg
|
|
25948
|
-
var Tv = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eClickHouse%3c/title%3e%3cpath%20d='M21.333%2010H24v4h-2.667ZM16%201.335h2.667v21.33H16Zm-5.333%200h2.666v21.33h-2.666ZM0%2022.665V1.335h2.667v21.33zm5.333-21.33H8v21.33H5.333Z'/%3e%3c/svg%3e", Ev = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eDatabricks%3c/title%3e%3cpath%20d='M.95%2014.184L12%2020.403l9.919-5.55v2.21L12%2022.662l-10.484-5.96-.565.308v.77L12%2024l11.05-6.218v-4.317l-.515-.309L12%2019.118l-9.867-5.653v-2.21L12%2016.805l11.05-6.218V6.32l-.515-.308L12%2011.974%202.647%206.681%2012%201.388l7.76%204.368.668-.411v-.566L12%200%20.95%206.27v.72L12%2013.207l9.919-5.55v2.26L12%2015.52%201.516%209.56l-.565.308Z'/%3e%3c/svg%3e", Dv = "data:image/png;base64,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", Ov = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eDuckDB%3c/title%3e%3cpath%20d='M12%200C5.363%200%200%205.363%200%2012s5.363%2012%2012%2012%2012-5.363%2012-12S18.637%200%2012%200zM9.502%207.03a4.974%204.974%200%200%201%204.97%204.97%204.974%204.974%200%200%201-4.97%204.97A4.974%204.974%200%200%201%204.532%2012a4.974%204.974%200%200%201%204.97-4.97zm6.563%203.183h2.351c.98%200%201.787.782%201.787%201.762s-.807%201.789-1.787%201.789h-2.351v-3.551z'/%3e%3c/svg%3e", kv = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eGoogle%20BigQuery%3c/title%3e%3cpath%20d='M5.676%2010.595h2.052v5.244a5.892%205.892%200%200%201-2.052-2.088v-3.156zm18.179%2010.836a.504.504%200%200%201%200%20.708l-1.716%201.716a.504.504%200%200%201-.708%200l-4.248-4.248a.206.206%200%200%201-.007-.007c-.02-.02-.028-.045-.043-.066a10.736%2010.736%200%200%201-6.334%202.065C4.835%2021.599%200%2016.764%200%2010.799S4.835%200%2010.8%200s10.799%204.835%2010.799%2010.8c0%202.369-.772%204.553-2.066%206.333.025.017.052.028.074.05l4.248%204.248zm-5.028-10.632a8.015%208.015%200%201%200-8.028%208.028h.024a8.016%208.016%200%200%200%208.004-8.028zm-4.86%204.98a6.002%206.002%200%200%200%202.04-2.184v-1.764h-2.04v3.948zm-4.5.948c.442.057.887.08%201.332.072.4.025.8.025%201.2%200V7.692H9.468v9.035z'/%3e%3c/svg%3e", Av = "data:image/png;base64,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", jv = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eMotherDuck%3c/title%3e%3cg%20transform='scale(0.85)%20translate(0,%202)'%3e%3cpath%20fill='%23ff9538'%20d='M1.71%2015.86s7.45%205.32%207.89%205.59c.44.27%201.08.33%201.64.11.56-.22.98-.71%201.11-1.21s1.85-9.49%201.85-9.49c.02-.12.07-.48-.13-.83-.27-.47-.86-.71-1.38-.57-.42.12-.64.44-.7.55-.09.17-.26.45-.57.7-.24.19-.47.3-.58.34-.96.38-2.02.06-2.61-.72-.38-.48-1.04-.67-1.64-.43-.6.24-.94.84-.89%201.45.11.98-.44%201.94-1.4%202.32-.51.21-1.06.21-1.54.05-.12-.03-.51-.12-.89.09-.48.26-.74.84-.61%201.37.09.39.38.62.48.69z'%20/%3e%3cpath%20fill='%23ff9538'%20d='M14.12%204.21s2.65%208.76%202.83%209.24c.19.48.66.92%201.23%201.09.58.16%201.21.03%201.62-.28.41-.31%207.25-6.39%207.25-6.39.09-.08.35-.34.4-.74.07-.53-.25-1.09-.75-1.29-.4-.16-.78-.04-.89%200-.18.08-.48.2-.88.2-.3.01-.55-.05-.67-.08-.99-.28-1.64-1.18-1.63-2.16-.01-.61-.42-1.17-1.04-1.35-.62-.18-1.26.09-1.59.6-.51.84-1.53%201.27-2.52.99-.53-.15-.96-.48-1.25-.91-.07-.09-.33-.4-.76-.48-.54-.09-1.1.22-1.32.71-.16.37-.08.72-.04.84z'%20/%3e%3c/g%3e%3c/svg%3e", Mv = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eMySQL%3c/title%3e%3cpath%20d='M16.405%205.501c-.115%200-.193.014-.274.033v.013h.014c.054.104.146.18.214.273.054.107.1.214.154.32l.014-.015c.094-.066.14-.172.14-.333-.04-.047-.046-.094-.08-.14-.04-.067-.126-.1-.18-.153zM5.77%2018.695h-.927a50.854%2050.854%200%2000-.27-4.41h-.008l-1.41%204.41H2.45l-1.4-4.41h-.01a72.892%2072.892%200%2000-.195%204.41H0c.055-1.966.192-3.81.41-5.53h1.15l1.335%204.064h.008l1.347-4.064h1.095c.242%202.015.384%203.86.428%205.53zm4.017-4.08c-.378%202.045-.876%203.533-1.492%204.46-.482.716-1.01%201.073-1.583%201.073-.153%200-.34-.046-.566-.138v-.494c.11.017.24.026.386.026.268%200%20.483-.075.647-.222.197-.18.295-.382.295-.605%200-.155-.077-.47-.23-.944L6.23%2014.615h.91l.727%202.36c.164.536.233.91.205%201.123.4-1.064.678-2.227.835-3.483zm12.325%204.08h-2.63v-5.53h.885v4.85h1.745zm-3.32.135l-1.016-.5c.09-.076.177-.158.255-.25.433-.506.648-1.258.648-2.253%200-1.83-.718-2.746-2.155-2.746-.704%200-1.254.232-1.65.697-.43.508-.646%201.256-.646%202.245%200%20.972.19%201.686.574%202.14.35.41.877.615%201.583.615.264%200%20.506-.033.725-.098l1.325.772.36-.622zM15.5%2017.588c-.225-.36-.337-.94-.337-1.736%200-1.393.424-2.09%201.27-2.09.443%200%20.77.167.977.5.224.362.336.936.336%201.723%200%201.404-.424%202.108-1.27%202.108-.445%200-.77-.167-.978-.5zm-1.658-.425c0%20.47-.172.856-.516%201.156-.344.3-.803.45-1.384.45-.543%200-1.064-.172-1.573-.515l.237-.476c.438.22.833.328%201.19.328.332%200%20.593-.073.783-.22a.754.754%200%2000.3-.615c0-.33-.23-.61-.648-.845-.388-.213-1.163-.657-1.163-.657-.422-.307-.632-.636-.632-1.177%200-.45.157-.81.47-1.085.315-.278.72-.415%201.22-.415.512%200%20.98.136%201.4.41l-.213.476a2.726%202.726%200%2000-1.064-.23c-.283%200-.502.068-.654.206a.685.685%200%2000-.248.524c0%20.328.234.61.666.85.393.215%201.187.67%201.187.67.433.305.648.63.648%201.168zm9.382-5.852c-.535-.014-.95.04-1.297.188-.1.04-.26.04-.274.167.055.053.063.14.11.214.08.134.218.313.346.407.14.11.28.216.427.31.26.16.555.255.81.416.145.094.293.213.44.313.073.05.12.14.214.172v-.02c-.046-.06-.06-.147-.105-.214-.067-.067-.134-.127-.2-.193a3.223%203.223%200%2000-.695-.675c-.214-.146-.682-.35-.77-.595l-.013-.014c.146-.013.32-.066.46-.106.227-.06.435-.047.67-.106.106-.027.213-.06.32-.094v-.06c-.12-.12-.21-.283-.334-.395a8.867%208.867%200%2000-1.104-.823c-.21-.134-.476-.22-.697-.334-.08-.04-.214-.06-.26-.127-.12-.146-.19-.34-.275-.514a17.69%2017.69%200%2001-.547-1.163c-.12-.262-.193-.523-.34-.763-.69-1.137-1.437-1.826-2.586-2.5-.247-.14-.543-.2-.856-.274-.167-.008-.334-.02-.5-.027-.11-.047-.216-.174-.31-.235-.38-.24-1.364-.76-1.644-.072-.18.434.267.862.422%201.082.115.153.26.328.34.5.047.116.06.235.107.356.106.294.207.622.347.897.073.14.153.287.247.413.054.073.146.107.167.227-.094.136-.1.334-.154.5-.24.757-.146%201.693.194%202.25.107.166.362.534.703.393.3-.12.234-.5.32-.835.02-.08.007-.133.048-.187v.015c.094.188.188.367.274.555.206.328.566.668.867.895.16.12.287.328.487.402v-.02h-.015c-.043-.058-.1-.086-.154-.133a3.445%203.445%200%2001-.35-.4%208.76%208.76%200%2001-.747-1.218c-.11-.21-.202-.436-.29-.643-.04-.08-.04-.2-.107-.24-.1.146-.247.273-.32.453-.127.288-.14.642-.188%201.01-.027.007-.014%200-.027.014-.214-.052-.287-.274-.367-.46-.2-.475-.233-1.238-.06-1.785.047-.14.247-.582.167-.716-.042-.127-.174-.2-.247-.303a2.478%202.478%200%2001-.24-.427c-.16-.374-.24-.788-.414-1.162-.08-.173-.22-.354-.334-.513-.127-.18-.267-.307-.368-.52-.033-.073-.08-.194-.027-.274.014-.054.042-.075.094-.09.088-.072.335.022.422.062.247.1.455.194.662.334.094.066.195.193.315.226h.14c.214.047.455.014.655.073.355.114.675.28.962.46a5.953%205.953%200%20012.085%202.286c.08.154.115.295.188.455.14.33.313.663.455.982.14.315.275.636.476.897.1.14.502.213.682.286.133.06.34.115.46.188.23.14.454.3.67.454.11.076.443.243.463.378z'/%3e%3c/svg%3e", Nv = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3ePostgreSQL%3c/title%3e%3cpath%20d='M23.5594%2014.7228a.5269.5269%200%200%200-.0563-.1191c-.139-.2632-.4768-.3418-1.0074-.2321-1.6533.3411-2.2935.1312-2.5256-.0191%201.342-2.0482%202.445-4.522%203.0411-6.8297.2714-1.0507.7982-3.5237.1222-4.7316a1.5641%201.5641%200%200%200-.1509-.235C21.6931.9086%2019.8007.0248%2017.5099.0005c-1.4947-.0158-2.7705.3461-3.1161.4794a9.449%209.449%200%200%200-.5159-.0816%208.044%208.044%200%200%200-1.3114-.1278c-1.1822-.0184-2.2038.2642-3.0498.8406-.8573-.3211-4.7888-1.645-7.2219.0788C.9359%202.1526.3086%203.8733.4302%206.3043c.0409.818.5069%203.334%201.2423%205.7436.4598%201.5065.9387%202.7019%201.4334%203.582.553.9942%201.1259%201.5933%201.7143%201.7895.4474.1491%201.1327.1441%201.8581-.7279.8012-.9635%201.5903-1.8258%201.9446-2.2069.4351.2355.9064.3625%201.39.3772a.0569.0569%200%200%200%20.0004.0041%2011.0312%2011.0312%200%200%200-.2472.3054c-.3389.4302-.4094.5197-1.5002.7443-.3102.064-1.1344.2339-1.1464.8115-.0025.1224.0329.2309.0919.3268.2269.4231.9216.6097%201.015.6331%201.3345.3335%202.5044.092%203.3714-.6787-.017%202.231.0775%204.4174.3454%205.0874.2212.5529.7618%201.9045%202.4692%201.9043.2505%200%20.5263-.0291.8296-.0941%201.7819-.3821%202.5557-1.1696%202.855-2.9059.1503-.8707.4016-2.8753.5388-4.1012.0169-.0703.0357-.1207.057-.1362.0007-.0005.0697-.0471.4272.0307a.3673.3673%200%200%200%20.0443.0068l.2539.0223.0149.001c.8468.0384%201.9114-.1426%202.5312-.4308.6438-.2988%201.8057-1.0323%201.5951-1.6698zM2.371%2011.8765c-.7435-2.4358-1.1779-4.8851-1.2123-5.5719-.1086-2.1714.4171-3.6829%201.5623-4.4927%201.8367-1.2986%204.8398-.5408%206.108-.13-.0032.0032-.0066.0061-.0098.0094-2.0238%202.044-1.9758%205.536-1.9708%205.7495-.0002.0823.0066.1989.0162.3593.0348.5873.0996%201.6804-.0735%202.9184-.1609%201.1504.1937%202.2764.9728%203.0892.0806.0841.1648.1631.2518.2374-.3468.3714-1.1004%201.1926-1.9025%202.1576-.5677.6825-.9597.5517-1.0886.5087-.3919-.1307-.813-.5871-1.2381-1.3223-.4796-.839-.9635-2.0317-1.4155-3.5126zm6.0072%205.0871c-.1711-.0428-.3271-.1132-.4322-.1772.0889-.0394.2374-.0902.4833-.1409%201.2833-.2641%201.4815-.4506%201.9143-1.0002.0992-.126.2116-.2687.3673-.4426a.3549.3549%200%200%200%20.0737-.1298c.1708-.1513.2724-.1099.4369-.0417.156.0646.3078.26.3695.4752.0291.1016.0619.2945-.0452.4444-.9043%201.2658-2.2216%201.2494-3.1676%201.0128zm2.094-3.988-.0525.141c-.133.3566-.2567.6881-.3334%201.003-.6674-.0021-1.3168-.2872-1.8105-.8024-.6279-.6551-.9131-1.5664-.7825-2.5004.1828-1.3079.1153-2.4468.079-3.0586-.005-.0857-.0095-.1607-.0122-.2199.2957-.2621%201.6659-.9962%202.6429-.7724.4459.1022.7176.4057.8305.928.5846%202.7038.0774%203.8307-.3302%204.7363-.084.1866-.1633.3629-.2311.5454zm7.3637%204.5725c-.0169.1768-.0358.376-.0618.5959l-.146.4383a.3547.3547%200%200%200-.0182.1077c-.0059.4747-.054.6489-.115.8693-.0634.2292-.1353.4891-.1794%201.0575-.11%201.4143-.8782%202.2267-2.4172%202.5565-1.5155.3251-1.7843-.4968-2.0212-1.2217a6.5824%206.5824%200%200%200-.0769-.2266c-.2154-.5858-.1911-1.4119-.1574-2.5551.0165-.5612-.0249-1.9013-.3302-2.6462.0044-.2932.0106-.5909.019-.8918a.3529.3529%200%200%200-.0153-.1126%201.4927%201.4927%200%200%200-.0439-.208c-.1226-.4283-.4213-.7866-.7797-.9351-.1424-.059-.4038-.1672-.7178-.0869.067-.276.1831-.5875.309-.9249l.0529-.142c.0595-.16.134-.3257.213-.5012.4265-.9476%201.0106-2.2453.3766-5.1772-.2374-1.0981-1.0304-1.6343-2.2324-1.5098-.7207.0746-1.3799.3654-1.7088.5321a5.6716%205.6716%200%200%200-.1958.1041c.0918-1.1064.4386-3.1741%201.7357-4.4823a4.0306%204.0306%200%200%201%20.3033-.276.3532.3532%200%200%200%20.1447-.0644c.7524-.5706%201.6945-.8506%202.802-.8325.4091.0067.8017.0339%201.1742.081%201.939.3544%203.2439%201.4468%204.0359%202.3827.8143.9623%201.2552%201.9315%201.4312%202.4543-1.3232-.1346-2.2234.1268-2.6797.779-.9926%201.4189.543%204.1729%201.2811%205.4964.1353.2426.2522.4522.2889.5413.2403.5825.5515.9713.7787%201.2552.0696.087.1372.1714.1885.245-.4008.1155-1.1208.3825-1.0552%201.717-.0123.1563-.0423.4469-.0834.8148-.0461.2077-.0702.4603-.0994.7662zm.8905-1.6211c-.0405-.8316.2691-.9185.5967-1.0105a2.8566%202.8566%200%200%200%20.135-.0406%201.202%201.202%200%200%200%20.1342.103c.5703.3765%201.5823.4213%203.0068.1344-.2016.1769-.5189.3994-.9533.6011-.4098.1903-1.0957.333-1.7473.3636-.7197.0336-1.0859-.0807-1.1721-.151zm.5695-9.2712c-.0059.3508-.0542.6692-.1054%201.0017-.055.3576-.112.7274-.1264%201.1762-.0142.4368.0404.8909.0932%201.3301.1066.887.216%201.8003-.2075%202.7014a3.5272%203.5272%200%200%201-.1876-.3856c-.0527-.1276-.1669-.3326-.3251-.6162-.6156-1.1041-2.0574-3.6896-1.3193-4.7446.3795-.5427%201.3408-.5661%202.1781-.463zm.2284%207.0137a12.3762%2012.3762%200%200%200-.0853-.1074l-.0355-.0444c.7262-1.1995.5842-2.3862.4578-3.4385-.0519-.4318-.1009-.8396-.0885-1.2226.0129-.4061.0666-.7543.1185-1.0911.0639-.415.1288-.8443.1109-1.3505.0134-.0531.0188-.1158.0118-.1902-.0457-.4855-.5999-1.938-1.7294-3.253-.6076-.7073-1.4896-1.4972-2.6889-2.0395.5251-.1066%201.2328-.2035%202.0244-.1859%202.0515.0456%203.6746.8135%204.8242%202.2824a.908.908%200%200%201%20.0667.1002c.7231%201.3556-.2762%206.2751-2.9867%2010.5405zm-8.8166-6.1162c-.025.1794-.3089.4225-.6211.4225a.5821.5821%200%200%201-.0809-.0056c-.1873-.026-.3765-.144-.5059-.3156-.0458-.0605-.1203-.178-.1055-.2844.0055-.0401.0261-.0985.0925-.1488.1182-.0894.3518-.1226.6096-.0867.3163.0441.6426.1938.6113.4186zm7.9305-.4114c.0111.0792-.049.201-.1531.3102-.0683.0717-.212.1961-.4079.2232a.5456.5456%200%200%201-.075.0052c-.2935%200-.5414-.2344-.5607-.3717-.024-.1765.2641-.3106.5611-.352.297-.0414.6111.0088.6356.1851z'/%3e%3c/svg%3e", Pv = {
|
|
25946
|
+
var wv = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eClickHouse%3c/title%3e%3cpath%20d='M21.333%2010H24v4h-2.667ZM16%201.335h2.667v21.33H16Zm-5.333%200h2.666v21.33h-2.666ZM0%2022.665V1.335h2.667v21.33zm5.333-21.33H8v21.33H5.333Z'/%3e%3c/svg%3e", Tv = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eDatabricks%3c/title%3e%3cpath%20d='M.95%2014.184L12%2020.403l9.919-5.55v2.21L12%2022.662l-10.484-5.96-.565.308v.77L12%2024l11.05-6.218v-4.317l-.515-.309L12%2019.118l-9.867-5.653v-2.21L12%2016.805l11.05-6.218V6.32l-.515-.308L12%2011.974%202.647%206.681%2012%201.388l7.76%204.368.668-.411v-.566L12%200%20.95%206.27v.72L12%2013.207l9.919-5.55v2.26L12%2015.52%201.516%209.56l-.565.308Z'/%3e%3c/svg%3e", Ev = "data:image/png;base64,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", Dv = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eDuckDB%3c/title%3e%3cpath%20d='M12%200C5.363%200%200%205.363%200%2012s5.363%2012%2012%2012%2012-5.363%2012-12S18.637%200%2012%200zM9.502%207.03a4.974%204.974%200%200%201%204.97%204.97%204.974%204.974%200%200%201-4.97%204.97A4.974%204.974%200%200%201%204.532%2012a4.974%204.974%200%200%201%204.97-4.97zm6.563%203.183h2.351c.98%200%201.787.782%201.787%201.762s-.807%201.789-1.787%201.789h-2.351v-3.551z'/%3e%3c/svg%3e", Ov = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eGoogle%20BigQuery%3c/title%3e%3cpath%20d='M5.676%2010.595h2.052v5.244a5.892%205.892%200%200%201-2.052-2.088v-3.156zm18.179%2010.836a.504.504%200%200%201%200%20.708l-1.716%201.716a.504.504%200%200%201-.708%200l-4.248-4.248a.206.206%200%200%201-.007-.007c-.02-.02-.028-.045-.043-.066a10.736%2010.736%200%200%201-6.334%202.065C4.835%2021.599%200%2016.764%200%2010.799S4.835%200%2010.8%200s10.799%204.835%2010.799%2010.8c0%202.369-.772%204.553-2.066%206.333.025.017.052.028.074.05l4.248%204.248zm-5.028-10.632a8.015%208.015%200%201%200-8.028%208.028h.024a8.016%208.016%200%200%200%208.004-8.028zm-4.86%204.98a6.002%206.002%200%200%200%202.04-2.184v-1.764h-2.04v3.948zm-4.5.948c.442.057.887.08%201.332.072.4.025.8.025%201.2%200V7.692H9.468v9.035z'/%3e%3c/svg%3e", kv = "data:image/png;base64,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", Av = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eMotherDuck%3c/title%3e%3cg%20transform='scale(0.85)%20translate(0,%202)'%3e%3cpath%20fill='%23ff9538'%20d='M1.71%2015.86s7.45%205.32%207.89%205.59c.44.27%201.08.33%201.64.11.56-.22.98-.71%201.11-1.21s1.85-9.49%201.85-9.49c.02-.12.07-.48-.13-.83-.27-.47-.86-.71-1.38-.57-.42.12-.64.44-.7.55-.09.17-.26.45-.57.7-.24.19-.47.3-.58.34-.96.38-2.02.06-2.61-.72-.38-.48-1.04-.67-1.64-.43-.6.24-.94.84-.89%201.45.11.98-.44%201.94-1.4%202.32-.51.21-1.06.21-1.54.05-.12-.03-.51-.12-.89.09-.48.26-.74.84-.61%201.37.09.39.38.62.48.69z'%20/%3e%3cpath%20fill='%23ff9538'%20d='M14.12%204.21s2.65%208.76%202.83%209.24c.19.48.66.92%201.23%201.09.58.16%201.21.03%201.62-.28.41-.31%207.25-6.39%207.25-6.39.09-.08.35-.34.4-.74.07-.53-.25-1.09-.75-1.29-.4-.16-.78-.04-.89%200-.18.08-.48.2-.88.2-.3.01-.55-.05-.67-.08-.99-.28-1.64-1.18-1.63-2.16-.01-.61-.42-1.17-1.04-1.35-.62-.18-1.26.09-1.59.6-.51.84-1.53%201.27-2.52.99-.53-.15-.96-.48-1.25-.91-.07-.09-.33-.4-.76-.48-.54-.09-1.1.22-1.32.71-.16.37-.08.72-.04.84z'%20/%3e%3c/g%3e%3c/svg%3e", jv = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eMySQL%3c/title%3e%3cpath%20d='M16.405%205.501c-.115%200-.193.014-.274.033v.013h.014c.054.104.146.18.214.273.054.107.1.214.154.32l.014-.015c.094-.066.14-.172.14-.333-.04-.047-.046-.094-.08-.14-.04-.067-.126-.1-.18-.153zM5.77%2018.695h-.927a50.854%2050.854%200%2000-.27-4.41h-.008l-1.41%204.41H2.45l-1.4-4.41h-.01a72.892%2072.892%200%2000-.195%204.41H0c.055-1.966.192-3.81.41-5.53h1.15l1.335%204.064h.008l1.347-4.064h1.095c.242%202.015.384%203.86.428%205.53zm4.017-4.08c-.378%202.045-.876%203.533-1.492%204.46-.482.716-1.01%201.073-1.583%201.073-.153%200-.34-.046-.566-.138v-.494c.11.017.24.026.386.026.268%200%20.483-.075.647-.222.197-.18.295-.382.295-.605%200-.155-.077-.47-.23-.944L6.23%2014.615h.91l.727%202.36c.164.536.233.91.205%201.123.4-1.064.678-2.227.835-3.483zm12.325%204.08h-2.63v-5.53h.885v4.85h1.745zm-3.32.135l-1.016-.5c.09-.076.177-.158.255-.25.433-.506.648-1.258.648-2.253%200-1.83-.718-2.746-2.155-2.746-.704%200-1.254.232-1.65.697-.43.508-.646%201.256-.646%202.245%200%20.972.19%201.686.574%202.14.35.41.877.615%201.583.615.264%200%20.506-.033.725-.098l1.325.772.36-.622zM15.5%2017.588c-.225-.36-.337-.94-.337-1.736%200-1.393.424-2.09%201.27-2.09.443%200%20.77.167.977.5.224.362.336.936.336%201.723%200%201.404-.424%202.108-1.27%202.108-.445%200-.77-.167-.978-.5zm-1.658-.425c0%20.47-.172.856-.516%201.156-.344.3-.803.45-1.384.45-.543%200-1.064-.172-1.573-.515l.237-.476c.438.22.833.328%201.19.328.332%200%20.593-.073.783-.22a.754.754%200%2000.3-.615c0-.33-.23-.61-.648-.845-.388-.213-1.163-.657-1.163-.657-.422-.307-.632-.636-.632-1.177%200-.45.157-.81.47-1.085.315-.278.72-.415%201.22-.415.512%200%20.98.136%201.4.41l-.213.476a2.726%202.726%200%2000-1.064-.23c-.283%200-.502.068-.654.206a.685.685%200%2000-.248.524c0%20.328.234.61.666.85.393.215%201.187.67%201.187.67.433.305.648.63.648%201.168zm9.382-5.852c-.535-.014-.95.04-1.297.188-.1.04-.26.04-.274.167.055.053.063.14.11.214.08.134.218.313.346.407.14.11.28.216.427.31.26.16.555.255.81.416.145.094.293.213.44.313.073.05.12.14.214.172v-.02c-.046-.06-.06-.147-.105-.214-.067-.067-.134-.127-.2-.193a3.223%203.223%200%2000-.695-.675c-.214-.146-.682-.35-.77-.595l-.013-.014c.146-.013.32-.066.46-.106.227-.06.435-.047.67-.106.106-.027.213-.06.32-.094v-.06c-.12-.12-.21-.283-.334-.395a8.867%208.867%200%2000-1.104-.823c-.21-.134-.476-.22-.697-.334-.08-.04-.214-.06-.26-.127-.12-.146-.19-.34-.275-.514a17.69%2017.69%200%2001-.547-1.163c-.12-.262-.193-.523-.34-.763-.69-1.137-1.437-1.826-2.586-2.5-.247-.14-.543-.2-.856-.274-.167-.008-.334-.02-.5-.027-.11-.047-.216-.174-.31-.235-.38-.24-1.364-.76-1.644-.072-.18.434.267.862.422%201.082.115.153.26.328.34.5.047.116.06.235.107.356.106.294.207.622.347.897.073.14.153.287.247.413.054.073.146.107.167.227-.094.136-.1.334-.154.5-.24.757-.146%201.693.194%202.25.107.166.362.534.703.393.3-.12.234-.5.32-.835.02-.08.007-.133.048-.187v.015c.094.188.188.367.274.555.206.328.566.668.867.895.16.12.287.328.487.402v-.02h-.015c-.043-.058-.1-.086-.154-.133a3.445%203.445%200%2001-.35-.4%208.76%208.76%200%2001-.747-1.218c-.11-.21-.202-.436-.29-.643-.04-.08-.04-.2-.107-.24-.1.146-.247.273-.32.453-.127.288-.14.642-.188%201.01-.027.007-.014%200-.027.014-.214-.052-.287-.274-.367-.46-.2-.475-.233-1.238-.06-1.785.047-.14.247-.582.167-.716-.042-.127-.174-.2-.247-.303a2.478%202.478%200%2001-.24-.427c-.16-.374-.24-.788-.414-1.162-.08-.173-.22-.354-.334-.513-.127-.18-.267-.307-.368-.52-.033-.073-.08-.194-.027-.274.014-.054.042-.075.094-.09.088-.072.335.022.422.062.247.1.455.194.662.334.094.066.195.193.315.226h.14c.214.047.455.014.655.073.355.114.675.28.962.46a5.953%205.953%200%20012.085%202.286c.08.154.115.295.188.455.14.33.313.663.455.982.14.315.275.636.476.897.1.14.502.213.682.286.133.06.34.115.46.188.23.14.454.3.67.454.11.076.443.243.463.378z'/%3e%3c/svg%3e", Mv = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3ePostgreSQL%3c/title%3e%3cpath%20d='M23.5594%2014.7228a.5269.5269%200%200%200-.0563-.1191c-.139-.2632-.4768-.3418-1.0074-.2321-1.6533.3411-2.2935.1312-2.5256-.0191%201.342-2.0482%202.445-4.522%203.0411-6.8297.2714-1.0507.7982-3.5237.1222-4.7316a1.5641%201.5641%200%200%200-.1509-.235C21.6931.9086%2019.8007.0248%2017.5099.0005c-1.4947-.0158-2.7705.3461-3.1161.4794a9.449%209.449%200%200%200-.5159-.0816%208.044%208.044%200%200%200-1.3114-.1278c-1.1822-.0184-2.2038.2642-3.0498.8406-.8573-.3211-4.7888-1.645-7.2219.0788C.9359%202.1526.3086%203.8733.4302%206.3043c.0409.818.5069%203.334%201.2423%205.7436.4598%201.5065.9387%202.7019%201.4334%203.582.553.9942%201.1259%201.5933%201.7143%201.7895.4474.1491%201.1327.1441%201.8581-.7279.8012-.9635%201.5903-1.8258%201.9446-2.2069.4351.2355.9064.3625%201.39.3772a.0569.0569%200%200%200%20.0004.0041%2011.0312%2011.0312%200%200%200-.2472.3054c-.3389.4302-.4094.5197-1.5002.7443-.3102.064-1.1344.2339-1.1464.8115-.0025.1224.0329.2309.0919.3268.2269.4231.9216.6097%201.015.6331%201.3345.3335%202.5044.092%203.3714-.6787-.017%202.231.0775%204.4174.3454%205.0874.2212.5529.7618%201.9045%202.4692%201.9043.2505%200%20.5263-.0291.8296-.0941%201.7819-.3821%202.5557-1.1696%202.855-2.9059.1503-.8707.4016-2.8753.5388-4.1012.0169-.0703.0357-.1207.057-.1362.0007-.0005.0697-.0471.4272.0307a.3673.3673%200%200%200%20.0443.0068l.2539.0223.0149.001c.8468.0384%201.9114-.1426%202.5312-.4308.6438-.2988%201.8057-1.0323%201.5951-1.6698zM2.371%2011.8765c-.7435-2.4358-1.1779-4.8851-1.2123-5.5719-.1086-2.1714.4171-3.6829%201.5623-4.4927%201.8367-1.2986%204.8398-.5408%206.108-.13-.0032.0032-.0066.0061-.0098.0094-2.0238%202.044-1.9758%205.536-1.9708%205.7495-.0002.0823.0066.1989.0162.3593.0348.5873.0996%201.6804-.0735%202.9184-.1609%201.1504.1937%202.2764.9728%203.0892.0806.0841.1648.1631.2518.2374-.3468.3714-1.1004%201.1926-1.9025%202.1576-.5677.6825-.9597.5517-1.0886.5087-.3919-.1307-.813-.5871-1.2381-1.3223-.4796-.839-.9635-2.0317-1.4155-3.5126zm6.0072%205.0871c-.1711-.0428-.3271-.1132-.4322-.1772.0889-.0394.2374-.0902.4833-.1409%201.2833-.2641%201.4815-.4506%201.9143-1.0002.0992-.126.2116-.2687.3673-.4426a.3549.3549%200%200%200%20.0737-.1298c.1708-.1513.2724-.1099.4369-.0417.156.0646.3078.26.3695.4752.0291.1016.0619.2945-.0452.4444-.9043%201.2658-2.2216%201.2494-3.1676%201.0128zm2.094-3.988-.0525.141c-.133.3566-.2567.6881-.3334%201.003-.6674-.0021-1.3168-.2872-1.8105-.8024-.6279-.6551-.9131-1.5664-.7825-2.5004.1828-1.3079.1153-2.4468.079-3.0586-.005-.0857-.0095-.1607-.0122-.2199.2957-.2621%201.6659-.9962%202.6429-.7724.4459.1022.7176.4057.8305.928.5846%202.7038.0774%203.8307-.3302%204.7363-.084.1866-.1633.3629-.2311.5454zm7.3637%204.5725c-.0169.1768-.0358.376-.0618.5959l-.146.4383a.3547.3547%200%200%200-.0182.1077c-.0059.4747-.054.6489-.115.8693-.0634.2292-.1353.4891-.1794%201.0575-.11%201.4143-.8782%202.2267-2.4172%202.5565-1.5155.3251-1.7843-.4968-2.0212-1.2217a6.5824%206.5824%200%200%200-.0769-.2266c-.2154-.5858-.1911-1.4119-.1574-2.5551.0165-.5612-.0249-1.9013-.3302-2.6462.0044-.2932.0106-.5909.019-.8918a.3529.3529%200%200%200-.0153-.1126%201.4927%201.4927%200%200%200-.0439-.208c-.1226-.4283-.4213-.7866-.7797-.9351-.1424-.059-.4038-.1672-.7178-.0869.067-.276.1831-.5875.309-.9249l.0529-.142c.0595-.16.134-.3257.213-.5012.4265-.9476%201.0106-2.2453.3766-5.1772-.2374-1.0981-1.0304-1.6343-2.2324-1.5098-.7207.0746-1.3799.3654-1.7088.5321a5.6716%205.6716%200%200%200-.1958.1041c.0918-1.1064.4386-3.1741%201.7357-4.4823a4.0306%204.0306%200%200%201%20.3033-.276.3532.3532%200%200%200%20.1447-.0644c.7524-.5706%201.6945-.8506%202.802-.8325.4091.0067.8017.0339%201.1742.081%201.939.3544%203.2439%201.4468%204.0359%202.3827.8143.9623%201.2552%201.9315%201.4312%202.4543-1.3232-.1346-2.2234.1268-2.6797.779-.9926%201.4189.543%204.1729%201.2811%205.4964.1353.2426.2522.4522.2889.5413.2403.5825.5515.9713.7787%201.2552.0696.087.1372.1714.1885.245-.4008.1155-1.1208.3825-1.0552%201.717-.0123.1563-.0423.4469-.0834.8148-.0461.2077-.0702.4603-.0994.7662zm.8905-1.6211c-.0405-.8316.2691-.9185.5967-1.0105a2.8566%202.8566%200%200%200%20.135-.0406%201.202%201.202%200%200%200%20.1342.103c.5703.3765%201.5823.4213%203.0068.1344-.2016.1769-.5189.3994-.9533.6011-.4098.1903-1.0957.333-1.7473.3636-.7197.0336-1.0859-.0807-1.1721-.151zm.5695-9.2712c-.0059.3508-.0542.6692-.1054%201.0017-.055.3576-.112.7274-.1264%201.1762-.0142.4368.0404.8909.0932%201.3301.1066.887.216%201.8003-.2075%202.7014a3.5272%203.5272%200%200%201-.1876-.3856c-.0527-.1276-.1669-.3326-.3251-.6162-.6156-1.1041-2.0574-3.6896-1.3193-4.7446.3795-.5427%201.3408-.5661%202.1781-.463zm.2284%207.0137a12.3762%2012.3762%200%200%200-.0853-.1074l-.0355-.0444c.7262-1.1995.5842-2.3862.4578-3.4385-.0519-.4318-.1009-.8396-.0885-1.2226.0129-.4061.0666-.7543.1185-1.0911.0639-.415.1288-.8443.1109-1.3505.0134-.0531.0188-.1158.0118-.1902-.0457-.4855-.5999-1.938-1.7294-3.253-.6076-.7073-1.4896-1.4972-2.6889-2.0395.5251-.1066%201.2328-.2035%202.0244-.1859%202.0515.0456%203.6746.8135%204.8242%202.2824a.908.908%200%200%201%20.0667.1002c.7231%201.3556-.2762%206.2751-2.9867%2010.5405zm-8.8166-6.1162c-.025.1794-.3089.4225-.6211.4225a.5821.5821%200%200%201-.0809-.0056c-.1873-.026-.3765-.144-.5059-.3156-.0458-.0605-.1203-.178-.1055-.2844.0055-.0401.0261-.0985.0925-.1488.1182-.0894.3518-.1226.6096-.0867.3163.0441.6426.1938.6113.4186zm7.9305-.4114c.0111.0792-.049.201-.1531.3102-.0683.0717-.212.1961-.4079.2232a.5456.5456%200%200%201-.075.0052c-.2935%200-.5414-.2344-.5607-.3717-.024-.1765.2641-.3106.5611-.352.297-.0414.6111.0088.6356.1851z'/%3e%3c/svg%3e", Nv = {
|
|
25949
25947
|
sqlite: "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eSQLite%3c/title%3e%3cpath%20d='M21.678.521c-1.032-.92-2.28-.55-3.513.544a8.71%208.71%200%200%200-.547.535c-2.109%202.237-4.066%206.38-4.674%209.544.237.48.422%201.093.544%201.561a13.044%2013.044%200%200%201%20.164.703s-.019-.071-.096-.296l-.05-.146a1.689%201.689%200%200%200-.033-.08c-.138-.32-.518-.995-.686-1.289-.143.423-.27.818-.376%201.176.484.884.778%202.4.778%202.4s-.025-.099-.147-.442c-.107-.303-.644-1.244-.772-1.464-.217.804-.304%201.346-.226%201.478.152.256.296.698.422%201.186.286%201.1.485%202.44.485%202.44l.017.224a22.41%2022.41%200%200%200%20.056%202.748c.095%201.146.273%202.13.5%202.657l.155-.084c-.334-1.038-.47-2.399-.41-3.967.09-2.398.642-5.29%201.661-8.304%201.723-4.55%204.113-8.201%206.3-9.945-1.993%201.8-4.692%207.63-5.5%209.788-.904%202.416-1.545%204.684-1.931%206.857.666-2.037%202.821-2.912%202.821-2.912s1.057-1.304%202.292-3.166c-.74.169-1.955.458-2.362.629-.6.251-.762.337-.762.337s1.945-1.184%203.613-1.72C21.695%207.9%2024.195%202.767%2021.678.521m-18.573.543A1.842%201.842%200%200%200%201.27%202.9v16.608a1.84%201.84%200%200%200%201.835%201.834h9.418a22.953%2022.953%200%200%201-.052-2.707c-.006-.062-.011-.141-.016-.2a27.01%2027.01%200%200%200-.473-2.378c-.121-.47-.275-.898-.369-1.057-.116-.197-.098-.31-.097-.432%200-.12.015-.245.037-.386a9.98%209.98%200%200%201%20.234-1.045l.217-.028c-.017-.035-.014-.065-.031-.097l-.041-.381a32.8%2032.8%200%200%201%20.382-1.194l.2-.019c-.008-.016-.01-.038-.018-.053l-.043-.316c.63-3.28%202.587-7.443%204.8-9.791.066-.069.133-.128.198-.194Z'/%3e%3c/svg%3e",
|
|
25950
|
-
duckdb:
|
|
25951
|
-
motherduck:
|
|
25952
|
-
postgres:
|
|
25953
|
-
postgresql:
|
|
25954
|
-
mysql:
|
|
25948
|
+
duckdb: Dv,
|
|
25949
|
+
motherduck: Av,
|
|
25950
|
+
postgres: Mv,
|
|
25951
|
+
postgresql: Mv,
|
|
25952
|
+
mysql: jv,
|
|
25955
25953
|
snowflake: "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eSnowflake%3c/title%3e%3cpath%20d='M24%203.459c0%20.646-.418%201.18-1.141%201.18-.723%200-1.142-.534-1.142-1.18%200-.647.419-1.18%201.142-1.18.723%200%201.141.533%201.141%201.18zm-.228%200c0-.533-.38-.951-.913-.951s-.913.38-.913.95c0%20.533.38.952.913.952.57%200%20.913-.419.913-.951zm-1.37-.533h.495c.266%200%20.456.152.456.38%200%20.153-.076.229-.19.305l.19.266v.038h-.266l-.19-.266h-.229v.266h-.266zm.495.228h-.229v.267h.229c.114%200%20.152-.038.152-.114.038-.077-.038-.153-.152-.153zM7.602%2012.4c.038-.151.076-.304.076-.456%200-.114-.038-.228-.038-.342-.114-.343-.304-.647-.646-.838l-4.87-2.777c-.685-.38-1.56-.152-1.94.533-.381.685-.153%201.56.532%201.94l2.701%201.56-2.701%201.56c-.685.38-.913%201.256-.533%201.94.38.685%201.256.914%201.94.533l4.832-2.777c.343-.267.571-.533.647-.876zm1.332%202.626c-.266-.038-.57.038-.837.19l-4.832%202.777c-.685.38-.913%201.256-.532%201.94.38.686%201.255.914%201.94.533l2.701-1.56v3.12c0%20.8.647%201.408%201.446%201.408.799%200%201.407-.647%201.407-1.408v-5.592c0-.761-.57-1.37-1.293-1.408zm4.946-6.088c.266.038.57-.038.837-.19l4.832-2.777c.685-.38.913-1.256.532-1.94-.38-.686-1.255-.914-1.94-.533l-2.701%201.56V1.975c0-.799-.647-1.408-1.446-1.408-.799%200-1.446.609-1.446%201.408V7.53c0%20.76.609%201.37%201.332%201.407zM3.265%205.97l4.832%202.777c.266.152.533.19.837.19.723-.038%201.331-.684%201.331-1.407V1.975c0-.799-.646-1.408-1.407-1.408-.799%200-1.446.647-1.446%201.408v3.12l-2.701-1.56c-.685-.38-1.56-.152-1.94.533-.419.646-.19%201.521.494%201.902zm9.093%206.011a.412.412%200%2000-.114-.266l-.57-.571a.346.346%200%2000-.267-.114.412.412%200%2000-.266.114l-.571.57a.411.411%200%2000-.114.267c0%20.076.038.19.114.267l.57.57a.345.345%200%2000.267.114c.076%200%20.19-.038.266-.114l.571-.57a.412.412%200%2000.114-.267zm1.598.533L11.94%2014.53c-.039.038-.153.114-.229.114h-.608a.411.411%200%2001-.267-.114L8.82%2012.514a.408.408%200%2001-.076-.229v-.608c0-.076.038-.19.114-.267l2.016-2.016a.41.41%200%2001.267-.114h.608a.41.41%200%2001.267.114l2.016%202.016a.347.347%200%2001.114.267v.608c-.076.077-.114.19-.19.229zm5.593%205.44l-4.832-2.777c-.266-.152-.57-.19-.837-.152-.723.038-1.332.684-1.332%201.408v5.554c0%20.8.647%201.408%201.408%201.408.799%200%201.446-.647%201.446-1.408v-3.12l2.7%201.56c.686.38%201.561.152%201.941-.533.419-.646.19-1.521-.494-1.94zm2.549-7.533l-2.701%201.56%202.7%201.56c.686.38.914%201.256.533%201.94-.38.685-1.255.913-1.94.533l-4.832-2.778a1.644%201.644%200%2001-.647-.798c-.037-.153-.076-.305-.076-.457%200-.114.039-.228.039-.342.114-.343.342-.647.646-.837l4.832-2.778c.685-.38%201.56-.152%201.94.533.457.609.19%201.484-.494%201.864'/%3e%3c/svg%3e",
|
|
25956
|
-
databricks:
|
|
25957
|
-
clickhouse:
|
|
25954
|
+
databricks: Tv,
|
|
25955
|
+
clickhouse: wv,
|
|
25958
25956
|
timeplus: "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3c!--%20Generated%20by%20Pixelmator%20Pro%203.6.17%20--%3e%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20id='Option2SymbolB'%3e%3cg%20id='Layer1-2'%3e%3cg%20id='Group'%20opacity='0.4'%3e%3cpath%20id='Path'%20fill='%23d53c97'%20stroke='none'%20d='M%2017.016802%2012.188573%20C%2017.016802%209.607646%2015.86018%207.293022%2014.039526%205.731081%20C%2013.942595%205.70038%2013.844628%205.671406%2013.745972%205.645189%20C%2013.131133%205.809095%2012.54265%206.059378%2011.998103%206.388559%20C%2013.964327%207.575191%2015.281006%209.730104%2015.281006%2012.188573%20C%2015.279476%2014.563734%2014.033739%2016.764488%2011.998103%2017.988243%20C%2012.542634%2018.317537%2013.131119%2018.567936%2013.745972%2018.731958%20C%2013.844628%2018.705742%2013.942595%2018.67642%2014.039526%2018.645721%20C%2015.86018%2017.084126%2017.016802%2014.769501%2017.016802%2012.188573%20Z'/%3e%3cpath%20id='path1'%20fill='%23d53c97'%20stroke='none'%20d='M%2013.897406%205.609659%20L%2013.894991%205.60759%20C%2013.844973%205.619663%2013.7953%205.631737%2013.745972%205.645189%20C%2013.79599%205.631737%2013.847043%205.622078%2013.897406%205.609659%20Z'/%3e%3cpath%20id='path2'%20fill='%23d53c97'%20stroke='none'%20d='M%201.735796%2012.188573%20C%201.735796%209.164728%203.728925%206.59622%206.470945%205.729357%20C%207.554634%204.797861%208.856011%204.155121%2010.254373%203.860756%20C%209.680216%203.740549%209.095179%203.679977%208.508574%203.68%20C%203.816888%203.68%20-0%207.496887%20-0%2012.188573%20C%20-0%2016.880259%203.816888%2020.697147%208.508574%2020.697147%20C%209.0952%2020.697229%209.680255%2020.636539%2010.254373%2020.516048%20C%208.855971%2020.221794%207.554568%2019.579041%206.470945%2018.647446%20C%203.728925%2017.780582%201.735796%2015.213453%201.735796%2012.188573%20Z'/%3e%3cpath%20id='path3'%20fill='%23d53c97'%20stroke='none'%20d='M%2013.745972%2018.731958%20C%2013.7953%2018.745068%2013.844973%2018.757484%2013.894991%2018.769558%20C%2013.894991%2018.769558%2013.896715%2018.769558%2013.897406%2018.767488%20C%2013.847043%2018.754379%2013.79599%2018.745411%2013.745972%2018.731958%20Z'/%3e%3c/g%3e%3cpath%20id='path4'%20fill='%23ff3b65'%20stroke='none'%20d='M%2020.508402%2012.188573%20C%2020.508402%209.606611%2019.351088%207.290262%2017.5294%205.729357%20C%2016.301817%205.342468%2014.989366%205.313629%2013.745972%205.646223%20C%2016.636665%206.418224%2018.772606%209.058484%2018.772606%2012.189609%20C%2018.772606%2015.320732%2016.636665%2017.960991%2013.745972%2018.731958%20C%2014.98947%2019.064316%2016.301983%2019.034998%2017.5294%2018.647446%20C%2019.419907%2017.034296%2020.508638%2014.673781%2020.508402%2012.188573%20Z'/%3e%3cpath%20id='path5'%20fill='%23ff3b65'%20stroke='none'%20d='M%209.962543%2018.647446%20C%207.220525%2017.780582%205.227395%2015.213453%205.227395%2012.188573%20C%205.227395%209.163693%207.220525%206.59622%209.962543%205.729357%20C%2011.046233%204.797861%2012.34761%204.155121%2013.745972%203.860756%20C%2013.171818%203.74053%2012.586779%203.679956%2012.000173%203.68%20C%207.308832%203.68%203.491599%207.496887%203.491599%2012.188573%20C%203.491599%2016.880259%207.308487%2020.697147%2012.000173%2020.697147%20C%2012.586799%2020.697247%2013.171857%2020.636557%2013.745972%2020.516048%20C%2012.34757%2020.221794%2011.046167%2019.579041%209.962543%2018.647446%20Z'/%3e%3cpath%20id='path6'%20fill='%23383838'%20stroke='none'%20d='M%2015.491772%203.68%20C%2010.800431%203.68%206.983198%207.496887%206.983198%2012.188573%20C%206.983198%2016.880259%2010.800086%2020.697147%2015.491772%2020.697147%20C%2020.183456%2020.697147%2024%2016.880259%2024%2012.188573%20C%2024%207.496887%2020.183456%203.68%2015.491772%203.68%20Z%20M%2022.264549%2012.188573%20C%2022.264549%2015.923018%2019.226215%2018.961351%2015.491772%2018.961351%20C%2011.757326%2018.961351%208.718994%2015.923018%208.718994%2012.188573%20C%208.718994%208.454128%2011.757326%205.415796%2015.491772%205.415796%20C%2019.226215%205.415796%2022.264549%208.454128%2022.264549%2012.188573%20Z'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e",
|
|
25959
|
-
bigquery:
|
|
25957
|
+
bigquery: Ov,
|
|
25960
25958
|
trino: "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eTrino%3c/title%3e%3cpath%20d='M14.124%2016.8529a.1615.1615%200%201%201%20.1576.1614.1577.1577%200%200%201-.1576-.1614zm-5.607-.1576a.1614.1614%200%201%200%200%20.3228.1614.1614%200%200%200%200-.3228zm10.1341-.6648v1.9869c-.031.5788-.524%201.0237-1.1029.9954h-.3843a5.0596%205.0596%200%200%201-1.1298%201.7178.3192.3192%200%200%200%200%20.465l.2382.2191a.3036.3036%200%200%201%20.0385.4304c-1.126%201.3835-2.9669%202.1521-5.0498%202.1521a6.575%206.575%200%200%201-4.8192-1.8985c-.0029-.0032-.0059-.0063-.0087-.0096a.6302.6302%200%200%201%20.0548-.8896c.137-.1265.1371-.3462%200-.4727a4.944%204.944%200%200%201-1.126-1.714h-.3497c-.5797.0284-1.0737-.416-1.1068-.9954v-1.9869c.0351-.5779.5286-1.02%201.1068-.9915h.2728a5.7648%205.7648%200%200%201%202.0791-3.0936c-.4227-1.0991-1.1529-3.2551-1.226-5.0075C6.0229%204.4705%206.2189.078%207.8253.001c1.6064-.0768%201.3719%204.0275%201.0991%206.6946a32.732%2032.732%200%200%200-.123%204.4503%206.994%206.994%200%200%201%202.4826-.4304%207.2414%207.2414%200%200%201%201.7371.2075c.2614-1.2682.8762-3.574%202.0292-5.1958%201.6717-2.352%203.4357-4.7808%204.6116-4.1006%201.176.6802-.3074%203.1398-1.3297%204.4272-1.0222%201.2874-2.7862%203.2089-3.3742%204.2274-.2114.3843-.4304.8032-.5956%201.1529a5.7375%205.7375%200%200%201%202.9169%203.6125h.073v-2.3058a.3075.3075%200%200%200-.1806-.2844.9148.9148%200%200%201-.5573-.8148%201.0184%201.0184%200%200%201%20.9045-.9044c.5593-.0598%201.061.3452%201.1208.9044a.9187.9187%200%200%201-.5534.8148.3074.3074%200%200%200-.1691.2844v2.1522a.3113.3113%200%200%200%20.1691.2805.9724.9724%200%200%201%20.5648.857zm-1.0222-3.9737a.4345.4345%200%200%200%20.4612-.4151.4151.4151%200%201%200-.4612.4151zm-.4227%203.4779c.0978.4794.148.9672.1498%201.4565v.3651h.4113a.3228.3228%200%200%200%20.3228-.319v-1.0069c-.0111-.2967-.2733-.5256-.5688-.4957h-.3151zm-3.7278-4.481.611.2383a36.6046%2036.6046%200%200%201%202.3828-3.8661c1.2874-1.7255%202.3365-3.5817%201.8715-3.8699-.465-.2883-1.6179%201.2297-2.7708%203.109a34.8978%2034.8978%200%200%200-2.0945%204.3887zm-4.0544.6726.0154%201.3335c-.0039.2007.1881.3587.3843.3152a6.4317%206.4317%200%200%201%201.4565-.1653%205.995%205.995%200%200%201%201.4527.1729c.1956.0398.3853-.1153.3843-.3151v-1.3412a.319.319%200%200%200-.2421-.3113%206.664%206.664%200%200%200-1.6026-.1845%206.7093%206.7093%200%200%200-1.6025.1845.3188.3188%200%200%200-.246.3113zm1.7063%206.8637v.3843a.6878.6878%200%200%201-.4996.269c-.3074%200-.538-.4189-.538-.4189a.073.073%200%200%200-.1-.0307l-.0024.0013a.0693.0693%200%200%200-.0245.0947c.0115.0231.2806.4957.6649.4957a.7144.7144%200%200%200%20.3843-.1268.3267.3267%200%200%201%20.3612%200%20.8332.8332%200%200%200%20.4727.1345.957.957%200%200%200%20.6572-.4803.0692.0692%200%200%200-.0269-.0961.0692.0692%200%200%200-.0999.0269c0%20.0231-.2191.3843-.5419.4074a.8036.8036%200%200%201-.5765-.269v-.3843a.3154.3154%200%200%201%20.1268-.2537c.196-.1499.415-.3958.415-.4919a.538.538%200%200%200-.5764-.4189c-.3766%200-.6533.2498-.6533.4573%200%20.1345.2536.3382.4227.4612a.3226.3226%200%200%201%20.1346.2383zM7.783%2011.6455l.5765-.3074c-.0192-1.126-.0346-3.1436%200-4.5425.0538-2.0368.1537-4.5732-.5226-4.5463S6.6877%204.2285%206.949%207.007a33.0562%2033.0562%200%200%200%20.834%204.6385zm-3.305%205.3919a.319.319%200%200%200%20.319.319h.3997a3.046%203.046%200%200%201%200-.3651%207.546%207.546%200%200%201%20.1461-1.4565c-.0493.0002-.34.0005-.3866-.0021a.4881.4881%200%200%200-.4781.4979v1.0068zm.9184%201.4718a5.3254%205.3254%200%200%201-.123-.5573.3228.3228%200%200%200-.319-.2728h-.4957c.0007.0163-.0015.34.0009.355a.5188.5188%200%200%200%20.5526.4827l.3842-.0076zm10.1265%202.917-.0884-.0807a.3229.3229%200%200%200-.3843-.0269%206.9823%206.9823%200%200%201-3.8046%201.0068%206.995%206.995%200%200%201-3.7932-1.0068.3228.3228%200%200%200-.3843.0269l-.0884.0807a.3154.3154%200%200%200%200%20.4573%206.0305%206.0305%200%200%200%204.2927%201.5988%206.0453%206.0453%200%200%200%204.2889-1.5988.315.315%200%200%200-.0384-.4573zm1.4488-4.4158c0-2.4557-1.1529-4.3273-3.0245-5.2266-.2081-.1022-.4673.0594-.465.2921v1.3297a.3269.3269%200%200%200%20.2037.296c1.7332.7109%202.9284%202.1866%202.9284%203.8776%200%202.2712-2.1559%203.8085-5.3419%203.8085-3.1859%200-5.3419-1.5411-5.3419-3.8085%200-1.691%201.1952-3.1667%202.9284-3.8776a.319.319%200%200%200%20.2037-.296v-1.322c.0048-.2315-.2536-.3963-.4612-.2921-1.887.8839-3.0399%202.767-3.0399%205.2073%200%202.9899%202.2866%204.996%205.7108%204.996%203.4282.0001%205.6994-2.0098%205.6994-4.9844zm-8.6084-.538h-.0038a.5842.5842%200%201%200%20.0038%200zm5.1614.5919c.0063.3226.2615.5789.584.5725a.5842.5842%200%201%200-.584-.5725zm4.5692.6225h-.4996a.3227.3227%200%200%200-.3151.2728c-.0346.173-.0768.3766-.1268.5573.0163.0007.3861-.0014.4012.0009a.5188.5188%200%200%200%20.5366-.5004l.0037-.3306z'/%3e%3c/svg%3e",
|
|
25961
|
-
iceberg:
|
|
25962
|
-
datafusion:
|
|
25959
|
+
iceberg: kv,
|
|
25960
|
+
datafusion: Ev,
|
|
25963
25961
|
pyspark: "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eApache%20Spark%3c/title%3e%3cpath%20d='M10.812%200c-.425.013-.845.215-1.196.605a3.593%203.593%200%2000-.493.722c-.355.667-.425%201.415-.556%202.143a551.9%20551.9%200%2000-.726%204.087c-.027.16-.096.227-.244.273C5.83%208.386%204.06%208.94%202.3%209.514c-.387.125-.773.289-1.114.506-1.042.665-1.196%201.753-.415%202.71.346.422.79.715%201.284.936%201.1.49%202.202.976%203.3%201.47.019.01.036.013.053.019h-.004l1.306.535c0%20.023.002.045%200%20.073-.2%202.03-.39%204.063-.58%206.095-.04.419-.012.831.134%201.23.317.87%201.065%201.148%201.881.701.372-.204.666-.497.937-.818%201.372-1.623%202.746-3.244%204.113-4.872.111-.133.205-.15.363-.098.349.117.697.231%201.045.347h.001c.02.012.045.02.073.03l.142.042c1.248.416%202.68.775%203.929%201.19.4.132.622.164%201.045.098.311-.048.592-.062.828-.236.602-.33.995-.957.988-1.682-.005-.427-.154-.813-.35-1.186-.82-1.556-1.637-3.113-2.461-4.666-.078-.148-.076-.243.037-.375%201.381-1.615%202.756-3.236%204.133-4.855.272-.32.513-.658.653-1.058.308-.878-.09-1.57-1-1.741a2.783%202.783%200%2000-1.235.069c-1.974.521-3.947%201.041-5.918%201.57-.175.047-.26.015-.355-.144a353.08%20353.08%200%2000-2.421-4.018%204.61%204.61%200%2000-.652-.849c-.371-.37-.802-.549-1.227-.536zm.172%203.703a.592.592%200%2001.189.211c.87%201.446%201.742%202.89%202.609%204.338.07.118.135.16.277.121%201.525-.41%203.052-.813%204.579-1.217.367-.098.735-.193%201.103-.289a.399.399%200%2001-.1.2c-1.259%201.48-2.516%202.962-3.779%204.438-.11.13-.12.22-.04.37.937%201.803%201.768%203.309%202.498%204.76l-3.696-1.019c-.538-.18-1.077-.358-1.615-.539-.163-.055-.25-.03-.36.1-1.248%201.488-2.504%202.97-3.759%204.454a.398.398%200%2001-.18.132c.035-.378.068-.757.104-1.136.149-1.572.297-3.144.451-4.716-.03-.318.117-.405-.322-.545-1.493-.593-3.346-1.321-4.816-1.905a.595.595%200%2001.24-.134c1.797-.57%203.595-1.14%205.394-1.705.127-.04.199-.092.211-.233.013-.148.05-.294.076-.441.241-1.363.483-2.726.726-4.088.068-.386.14-.771.21-1.157z'/%3e%3c/svg%3e",
|
|
25964
25962
|
redshift: "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eAmazon%20Redshift%3c/title%3e%3cpath%20d='M16.639%209.932a.822.822%200%200%201-.822-.82.823.823%200%200%201%201.645%200c0%20.452-.37.82-.823.82m-2.086%204.994a.823.823%200%200%201-.822-.822.822.822%200%200%201%201.645%200%20.822.822%200%200%201-.823.822m-5.004-.833a.822.822%200%201%201%20.002-1.644.822.822%200%200%201-.002%201.644m-2.083%204.578a.823.823%200%200%201-.823-.82.823.823%200%200%201%201.645%200c0%20.452-.37.82-.822.82m9.173-11.236a1.68%201.68%200%200%200-1.68%201.676c0%20.566.285%201.066.718%201.37l-.782%201.982a1.674%201.674%200%200%200-1.923%201.104l-1.753-.398a1.675%201.675%200%200%200-3.348.103c0%20.432.169.823.438%201.12l-.764%201.79c-.028-.001-.053-.008-.08-.008a1.68%201.68%200%200%200-1.68%201.676%201.68%201.68%200%200%200%203.36%200c0-.593-.312-1.112-.778-1.41l.674-1.579c.161.052.33.088.508.088.661%200%201.228-.386%201.502-.94l1.856.42a1.68%201.68%200%200%200%203.327-.325c0-.5-.224-.943-.574-1.25l.822-2.083c.053.005.104.016.157.016a1.68%201.68%200%200%200%201.68-1.676%201.68%201.68%200%200%200-1.68-1.676M12%2023.145c-4.17%200-7.286-1.252-7.286-2.37V4.79C6.14%205.938%209.131%206.547%2012%206.547c2.869%200%205.86-.609%207.286-1.756v15.983c0%201.12-3.116%202.37-7.286%202.37M12%20.856c4.293%200%207.286%201.274%207.286%202.419%200%201.143-2.993%202.418-7.286%202.418-4.293%200-7.286-1.275-7.286-2.418C4.714%202.129%207.707.855%2012%20.855m8.143%202.419C20.143%201.147%2015.947%200%2012%200%208.052%200%203.857%201.147%203.857%203.274l.002.01h-.002v17.49C3.857%2022.87%208.052%2024%2012%2024c3.947%200%208.143-1.13%208.143-3.226V3.284h-.002l.002-.01'/%3e%3c/svg%3e",
|
|
25965
25963
|
supabase: "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eSupabase%3c/title%3e%3cpath%20d='M11.9%201.036c-.015-.986-1.26-1.41-1.874-.637L.764%2012.05C-.33%2013.427.65%2015.455%202.409%2015.455h9.579l.113%207.51c.014.985%201.259%201.408%201.873.636l9.262-11.653c1.093-1.375.113-3.403-1.645-3.403h-9.642z'/%3e%3c/svg%3e"
|
|
25966
|
-
},
|
|
25967
|
-
let t = (0, Tr.c)(11), { name: n, className: r } = e, i =
|
|
25964
|
+
}, Pv = (e) => {
|
|
25965
|
+
let t = (0, Tr.c)(11), { name: n, className: r } = e, i = Nv[n.toLowerCase()];
|
|
25968
25966
|
if (!i) {
|
|
25969
25967
|
let e;
|
|
25970
25968
|
t[0] === r ? e = t[1] : (e = o("mt-0.5", r), t[0] = r, t[1] = e);
|
|
@@ -25982,15 +25980,15 @@ var Tv = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20x
|
|
|
25982
25980
|
};
|
|
25983
25981
|
//#endregion
|
|
25984
25982
|
//#region src/core/cells/add-missing-import.ts
|
|
25985
|
-
function
|
|
25983
|
+
function Fv({ moduleName: e, variableName: t, onAddImport: n, appStore: r = j }) {
|
|
25986
25984
|
if (t in r.get(Cd)) return !1;
|
|
25987
25985
|
let { cellData: i, cellIds: a } = r.get($), o = RegExp(`import[ \t]+${e}[ \t]+as[ \t]+${t}`, "g");
|
|
25988
25986
|
for (let e of a.inOrderIds) if (o.test(i[e].code)) return !1;
|
|
25989
25987
|
return n(`import ${e} as ${t}`), !0;
|
|
25990
25988
|
}
|
|
25991
|
-
function
|
|
25989
|
+
function Iv({ autoInstantiate: e, createNewCell: t, fromCellId: n, before: r }) {
|
|
25992
25990
|
let i = nl(), a = null;
|
|
25993
|
-
return
|
|
25991
|
+
return Fv({
|
|
25994
25992
|
moduleName: "marimo",
|
|
25995
25993
|
variableName: "mo",
|
|
25996
25994
|
onAddImport: (o) => {
|
|
@@ -26009,9 +26007,9 @@ function Lv({ autoInstantiate: e, createNewCell: t, fromCellId: n, before: r })
|
|
|
26009
26007
|
}
|
|
26010
26008
|
}) ? a : null;
|
|
26011
26009
|
}
|
|
26012
|
-
function
|
|
26010
|
+
function Lv({ autoInstantiate: e, createNewCell: t, fromCellId: n }) {
|
|
26013
26011
|
let r = nl(), i = null;
|
|
26014
|
-
return
|
|
26012
|
+
return Fv({
|
|
26015
26013
|
moduleName: "altair",
|
|
26016
26014
|
variableName: "alt",
|
|
26017
26015
|
onAddImport: (a) => {
|
|
@@ -26032,13 +26030,13 @@ function Rv({ autoInstantiate: e, createNewCell: t, fromCellId: n }) {
|
|
|
26032
26030
|
}
|
|
26033
26031
|
//#endregion
|
|
26034
26032
|
//#region src/core/cells/focus.ts
|
|
26035
|
-
function
|
|
26033
|
+
function Rv() {
|
|
26036
26034
|
return {
|
|
26037
26035
|
focusedCellId: null,
|
|
26038
26036
|
lastFocusedCellId: null
|
|
26039
26037
|
};
|
|
26040
26038
|
}
|
|
26041
|
-
var { reducer:
|
|
26039
|
+
var { reducer: zv, createActions: Bv, valueAtom: Vv, useActions: Hv } = y(Rv, {
|
|
26042
26040
|
focusCell: (e, t) => ({
|
|
26043
26041
|
...e,
|
|
26044
26042
|
focusedCellId: t.cellId,
|
|
@@ -26056,15 +26054,15 @@ var { reducer: Bv, createActions: Vv, valueAtom: Hv, useActions: Uv } = y(zv, {
|
|
|
26056
26054
|
...e,
|
|
26057
26055
|
focusedCellId: null
|
|
26058
26056
|
})
|
|
26059
|
-
}),
|
|
26060
|
-
function
|
|
26061
|
-
return Me(
|
|
26057
|
+
}), Uv = A((e) => e(Vv).lastFocusedCellId);
|
|
26058
|
+
function Wv() {
|
|
26059
|
+
return Me(Uv);
|
|
26062
26060
|
}
|
|
26063
26061
|
A((e) => {
|
|
26064
|
-
let t = e(
|
|
26065
|
-
return !t || t === "__scratch__" ? null :
|
|
26062
|
+
let t = e(Uv);
|
|
26063
|
+
return !t || t === "__scratch__" ? null : Gv(t, e($));
|
|
26066
26064
|
});
|
|
26067
|
-
function
|
|
26065
|
+
function Gv(e, t) {
|
|
26068
26066
|
let { cellData: n, cellHandles: r, cellRuntime: i } = t, a = n[e], o = i[e], s = r[e]?.current;
|
|
26069
26067
|
return !a || !s ? null : {
|
|
26070
26068
|
cellId: e,
|
|
@@ -26078,10 +26076,10 @@ function Kv(e, t) {
|
|
|
26078
26076
|
}
|
|
26079
26077
|
//#endregion
|
|
26080
26078
|
//#region src/components/editor/connections/components.tsx
|
|
26081
|
-
function
|
|
26082
|
-
let e = (0, Tr.c)(4), { createNewCell: t } = Ix(), n =
|
|
26079
|
+
function Kv() {
|
|
26080
|
+
let e = (0, Tr.c)(4), { createNewCell: t } = Ix(), n = Wv(), r = Me(Fe), i;
|
|
26083
26081
|
return e[0] !== r || e[1] !== t || e[2] !== n ? (i = (e) => {
|
|
26084
|
-
/\bmo\./.test(e) &&
|
|
26082
|
+
/\bmo\./.test(e) && Iv({
|
|
26085
26083
|
autoInstantiate: r,
|
|
26086
26084
|
createNewCell: t,
|
|
26087
26085
|
fromCellId: n
|
|
@@ -26093,44 +26091,44 @@ function qv() {
|
|
|
26093
26091
|
});
|
|
26094
26092
|
}, e[0] = r, e[1] = t, e[2] = n, e[3] = i) : i = e[3], i;
|
|
26095
26093
|
}
|
|
26096
|
-
function
|
|
26097
|
-
let t = (0, Tr.c)(3), n =
|
|
26094
|
+
function qv(e) {
|
|
26095
|
+
let t = (0, Tr.c)(3), n = Kv(), r;
|
|
26098
26096
|
return t[0] !== n || t[1] !== e ? (r = (t) => {
|
|
26099
26097
|
n(t.code), e?.();
|
|
26100
26098
|
}, t[0] = n, t[1] = e, t[2] = r) : r = t[2], r;
|
|
26101
26099
|
}
|
|
26102
26100
|
//#endregion
|
|
26103
26101
|
//#region src/core/datasets/data-source-discovery.ts
|
|
26104
|
-
function
|
|
26102
|
+
function Jv(e, t) {
|
|
26105
26103
|
return !t || e.category === "object-storage" == (t === "storage");
|
|
26106
26104
|
}
|
|
26107
|
-
function
|
|
26105
|
+
function Yv(e, t) {
|
|
26108
26106
|
let n = e.hidesWhen;
|
|
26109
|
-
return n.kind === "dialect" ? n.substrings.some((e) => t.dialects.some((t) => t.includes(e))) : n.protocols.some((e) => t.storageProtocols.
|
|
26107
|
+
return n.kind === "dialect" ? n.substrings.some((e) => t.dialects.some((t) => t.includes(e))) : n.protocols.some((e) => t.storageProtocols.has(e)) ? !0 : n.backendTypes.some((e) => t.storageBackendTypes.has(e));
|
|
26110
26108
|
}
|
|
26111
|
-
var
|
|
26112
|
-
function
|
|
26113
|
-
let e = j.get(
|
|
26114
|
-
return (!
|
|
26115
|
-
throw
|
|
26116
|
-
})),
|
|
26109
|
+
var Xv = A(0), Zv, Qv = 0;
|
|
26110
|
+
function $v() {
|
|
26111
|
+
let e = j.get(Xv);
|
|
26112
|
+
return (!Zv || Qv !== e) && (Qv = e, Zv = Em().then(() => w_.request({})).then((e) => e.sources).catch((t) => {
|
|
26113
|
+
throw Qv === e && (Zv = void 0), t;
|
|
26114
|
+
})), Zv;
|
|
26117
26115
|
}
|
|
26118
|
-
function
|
|
26116
|
+
function ey(e, t) {
|
|
26119
26117
|
return `${e}::${t ?? ""}`;
|
|
26120
26118
|
}
|
|
26121
|
-
function
|
|
26119
|
+
function ty(e) {
|
|
26122
26120
|
return `${e}::`;
|
|
26123
26121
|
}
|
|
26124
26122
|
//#endregion
|
|
26125
26123
|
//#region src/core/storage/state.ts
|
|
26126
|
-
function
|
|
26124
|
+
function ny() {
|
|
26127
26125
|
return {
|
|
26128
26126
|
namespaces: [],
|
|
26129
26127
|
entriesByPath: /* @__PURE__ */ new Map(),
|
|
26130
26128
|
pageMetadataByPath: /* @__PURE__ */ new Map()
|
|
26131
26129
|
};
|
|
26132
26130
|
}
|
|
26133
|
-
var { reducer:
|
|
26131
|
+
var { reducer: ry, createActions: iy, valueAtom: ay, useActions: oy } = y(ny, {
|
|
26134
26132
|
setNamespaces: (e, t) => {
|
|
26135
26133
|
let n = new Map(e.namespaces.map((e) => [e.name, e]));
|
|
26136
26134
|
for (let e of t.namespaces) n.set(e.name, e);
|
|
@@ -26140,7 +26138,7 @@ var { reducer: iy, createActions: ay, valueAtom: oy, useActions: sy } = y(ry, {
|
|
|
26140
26138
|
};
|
|
26141
26139
|
},
|
|
26142
26140
|
setEntries: (e, t) => {
|
|
26143
|
-
let n =
|
|
26141
|
+
let n = ey(t.namespace, t.prefix), r = new Map(e.entriesByPath), i = t.append && r.has(n) ? [...r.get(n) ?? [], ...t.entries] : t.entries;
|
|
26144
26142
|
r.set(n, i);
|
|
26145
26143
|
let a = new Map(e.pageMetadataByPath);
|
|
26146
26144
|
return a.set(n, { nextPageToken: t.nextPageToken ?? null }), {
|
|
@@ -26150,7 +26148,7 @@ var { reducer: iy, createActions: ay, valueAtom: oy, useActions: sy } = y(ry, {
|
|
|
26150
26148
|
};
|
|
26151
26149
|
},
|
|
26152
26150
|
clearNamespaceCache: (e, t) => {
|
|
26153
|
-
let n = new Map(e.entriesByPath), r = new Map(e.pageMetadataByPath), i =
|
|
26151
|
+
let n = new Map(e.entriesByPath), r = new Map(e.pageMetadataByPath), i = ty(t);
|
|
26154
26152
|
for (let e of n.keys()) e.startsWith(i) && n.delete(e);
|
|
26155
26153
|
for (let e of r.keys()) e.startsWith(i) && r.delete(e);
|
|
26156
26154
|
return {
|
|
@@ -26166,15 +26164,15 @@ var { reducer: iy, createActions: ay, valueAtom: oy, useActions: sy } = y(ry, {
|
|
|
26166
26164
|
namespaces: r
|
|
26167
26165
|
};
|
|
26168
26166
|
}
|
|
26169
|
-
}),
|
|
26167
|
+
}), sy = A((e) => e(ay).namespaces);
|
|
26170
26168
|
//#endregion
|
|
26171
26169
|
//#region src/hooks/useDataSourceDiscovery.ts
|
|
26172
|
-
function
|
|
26173
|
-
let e = (0, Tr.c)(2), t = Me(
|
|
26174
|
-
return e[0] === t ? n = e[1] : (n = [t], e[0] = t, e[1] = n), sn(
|
|
26170
|
+
function cy() {
|
|
26171
|
+
let e = (0, Tr.c)(2), t = Me(Xv), n;
|
|
26172
|
+
return e[0] === t ? n = e[1] : (n = [t], e[0] = t, e[1] = n), sn($v, n);
|
|
26175
26173
|
}
|
|
26176
|
-
function
|
|
26177
|
-
let t = (0, Tr.c)(6), { data: n } =
|
|
26174
|
+
function ly(e) {
|
|
26175
|
+
let t = (0, Tr.c)(6), { data: n } = cy(), r = Me(Ml), i = Me(sy), a;
|
|
26178
26176
|
bb0: {
|
|
26179
26177
|
if (!n) {
|
|
26180
26178
|
let e;
|
|
@@ -26184,91 +26182,91 @@ function uy(e) {
|
|
|
26184
26182
|
let o;
|
|
26185
26183
|
if (t[1] !== r || t[2] !== n || t[3] !== e || t[4] !== i) {
|
|
26186
26184
|
let a = {
|
|
26187
|
-
dialects: [...r.values()].map(
|
|
26188
|
-
storageProtocols: i.map(
|
|
26189
|
-
storageBackendTypes: i.map(
|
|
26185
|
+
dialects: [...r.values()].map(fy),
|
|
26186
|
+
storageProtocols: new Set(i.map(dy)),
|
|
26187
|
+
storageBackendTypes: new Set(i.map(uy))
|
|
26190
26188
|
};
|
|
26191
|
-
o = n.filter((t) =>
|
|
26189
|
+
o = n.filter((t) => Jv(t, e) && !Yv(t, a)), t[1] = r, t[2] = n, t[3] = e, t[4] = i, t[5] = o;
|
|
26192
26190
|
} else o = t[5];
|
|
26193
26191
|
a = o;
|
|
26194
26192
|
}
|
|
26195
26193
|
return a;
|
|
26196
26194
|
}
|
|
26197
|
-
function
|
|
26195
|
+
function uy(e) {
|
|
26198
26196
|
return e.backendType.toLowerCase();
|
|
26199
26197
|
}
|
|
26200
|
-
function
|
|
26198
|
+
function dy(e) {
|
|
26201
26199
|
return e.protocol.toLowerCase();
|
|
26202
26200
|
}
|
|
26203
|
-
function
|
|
26201
|
+
function fy(e) {
|
|
26204
26202
|
return e.dialect.toLowerCase();
|
|
26205
26203
|
}
|
|
26206
26204
|
//#endregion
|
|
26207
26205
|
//#region src/hooks/useNonce.ts
|
|
26208
|
-
function
|
|
26206
|
+
function py() {
|
|
26209
26207
|
let e = (0, Tr.c)(1), [, t] = (0, F.useState)(0), n;
|
|
26210
26208
|
return e[0] === Symbol.for("react.memo_cache_sentinel") ? (n = () => {
|
|
26211
|
-
t(
|
|
26209
|
+
t(my);
|
|
26212
26210
|
}, e[0] = n) : n = e[0], n;
|
|
26213
26211
|
}
|
|
26214
|
-
function
|
|
26212
|
+
function my(e) {
|
|
26215
26213
|
return e + 1;
|
|
26216
26214
|
}
|
|
26217
26215
|
//#endregion
|
|
26218
26216
|
//#region src/core/codemirror/language/panel/sql.tsx
|
|
26219
|
-
var
|
|
26220
|
-
let t = (0, Tr.c)(6), n =
|
|
26217
|
+
var hy = (e) => {
|
|
26218
|
+
let t = (0, Tr.c)(6), n = ly("database");
|
|
26221
26219
|
if (n.length === 0) {
|
|
26222
26220
|
let r;
|
|
26223
|
-
return t[0] !== n || t[1] !== e ? (r = /* @__PURE__ */ (0, I.jsx)(
|
|
26221
|
+
return t[0] !== n || t[1] !== e ? (r = /* @__PURE__ */ (0, I.jsx)(_y, {
|
|
26224
26222
|
...e,
|
|
26225
26223
|
detectedDataSources: n
|
|
26226
26224
|
}), t[0] = n, t[1] = e, t[2] = r) : r = t[2], r;
|
|
26227
26225
|
}
|
|
26228
26226
|
let r;
|
|
26229
|
-
return t[3] !== n || t[4] !== e ? (r = /* @__PURE__ */ (0, I.jsx)(
|
|
26227
|
+
return t[3] !== n || t[4] !== e ? (r = /* @__PURE__ */ (0, I.jsx)(gy, {
|
|
26230
26228
|
...e,
|
|
26231
26229
|
detectedDataSources: n
|
|
26232
26230
|
}), t[3] = n, t[4] = e, t[5] = r) : r = t[5], r;
|
|
26233
|
-
},
|
|
26231
|
+
}, gy = (e) => {
|
|
26234
26232
|
let t = (0, Tr.c)(7), n, r;
|
|
26235
26233
|
t[0] === e ? (n = t[1], r = t[2]) : ({detectedDataSources: n, ...r} = e, t[0] = e, t[1] = n, t[2] = r);
|
|
26236
|
-
let i =
|
|
26237
|
-
return t[3] !== i || t[4] !== n || t[5] !== r ? (a = /* @__PURE__ */ (0, I.jsx)(
|
|
26234
|
+
let i = qv(), a;
|
|
26235
|
+
return t[3] !== i || t[4] !== n || t[5] !== r ? (a = /* @__PURE__ */ (0, I.jsx)(_y, {
|
|
26238
26236
|
...r,
|
|
26239
26237
|
detectedDataSources: n,
|
|
26240
26238
|
addDetectedDataSource: i
|
|
26241
26239
|
}), t[3] = i, t[4] = n, t[5] = r, t[6] = a) : a = t[6], a;
|
|
26242
|
-
},
|
|
26240
|
+
}, _y = (e) => {
|
|
26243
26241
|
let t = (0, Tr.c)(42), { selectedEngine: n, onChange: r, cellId: i, detectedDataSources: a, addDetectedDataSource: o } = e, s = Me(Ml), c = [], l = [];
|
|
26244
26242
|
for (let [e, t] of s.entries()) hl.has(e) ? c.push(t) : l.push(t);
|
|
26245
|
-
let u =
|
|
26243
|
+
let u = py(), d;
|
|
26246
26244
|
t[0] !== s || t[1] !== n ? (d = n && !s.has(n), t[0] = s, t[1] = n, t[2] = d) : d = t[2];
|
|
26247
26245
|
let f = d, p;
|
|
26248
26246
|
t[3] !== o || t[4] !== s || t[5] !== a || t[6] !== r || t[7] !== u ? (p = (e) => {
|
|
26249
|
-
if (e ===
|
|
26250
|
-
window.open(
|
|
26247
|
+
if (e === vy) {
|
|
26248
|
+
window.open(by, "_blank");
|
|
26251
26249
|
return;
|
|
26252
26250
|
}
|
|
26253
|
-
if (e.startsWith(
|
|
26254
|
-
let t = e.slice(
|
|
26251
|
+
if (e.startsWith(yy)) {
|
|
26252
|
+
let t = e.slice(yy.length), n = a.find((e) => e.id === t);
|
|
26255
26253
|
n && o && o(n);
|
|
26256
26254
|
return;
|
|
26257
26255
|
}
|
|
26258
26256
|
let t = s.get(e);
|
|
26259
26257
|
t && (u(), r(t.name), Nl(t.name));
|
|
26260
26258
|
}, t[3] = o, t[4] = s, t[5] = a, t[6] = r, t[7] = u, t[8] = p) : p = t[8];
|
|
26261
|
-
let m = p, h =
|
|
26262
|
-
t[9] === i ? _ = t[10] : (_ =
|
|
26259
|
+
let m = p, h = Ty, g = le, _;
|
|
26260
|
+
t[9] === i ? _ = t[10] : (_ = Cv(i), t[9] = i, t[10] = _);
|
|
26263
26261
|
let v;
|
|
26264
26262
|
t[11] === Symbol.for("react.memo_cache_sentinel") ? (v = /* @__PURE__ */ (0, I.jsx)(re, { placeholder: "Select an engine" }), t[11] = v) : v = t[11];
|
|
26265
26263
|
let y;
|
|
26266
|
-
t[12] === _ ? y = t[13] : (y = /* @__PURE__ */ (0, I.jsx)(
|
|
26264
|
+
t[12] === _ ? y = t[13] : (y = /* @__PURE__ */ (0, I.jsx)(Sy, {
|
|
26267
26265
|
..._,
|
|
26268
26266
|
children: v
|
|
26269
26267
|
}), t[12] = _, t[13] = y);
|
|
26270
26268
|
let b = ae, x;
|
|
26271
|
-
t[14] === i ? x = t[15] : (x =
|
|
26269
|
+
t[14] === i ? x = t[15] : (x = Cv(i), t[14] = i, t[15] = x);
|
|
26272
26270
|
let S = se, C;
|
|
26273
26271
|
t[16] === Symbol.for("react.memo_cache_sentinel") ? (C = /* @__PURE__ */ (0, I.jsx)(te, { children: "Database connections" }), t[16] = C) : C = t[16];
|
|
26274
26272
|
let w;
|
|
@@ -26286,17 +26284,17 @@ var gy = (e) => {
|
|
|
26286
26284
|
t[20] === a ? ce = t[21] : (ce = a.length > 0 && /* @__PURE__ */ (0, I.jsxs)(I.Fragment, { children: [
|
|
26287
26285
|
/* @__PURE__ */ (0, I.jsx)(oe, {}),
|
|
26288
26286
|
/* @__PURE__ */ (0, I.jsx)(te, { children: "Detected in your environment" }),
|
|
26289
|
-
a.map(
|
|
26287
|
+
a.map(Ey)
|
|
26290
26288
|
] }), t[20] = a, t[21] = ce);
|
|
26291
26289
|
let de;
|
|
26292
26290
|
t[22] === Symbol.for("react.memo_cache_sentinel") ? (de = /* @__PURE__ */ (0, I.jsx)(oe, {}), t[22] = de) : de = t[22];
|
|
26293
26291
|
let fe;
|
|
26294
26292
|
t[23] === Symbol.for("react.memo_cache_sentinel") ? (fe = /* @__PURE__ */ (0, I.jsx)(ie, {
|
|
26295
26293
|
className: "text-muted-foreground",
|
|
26296
|
-
value:
|
|
26294
|
+
value: vy,
|
|
26297
26295
|
children: /* @__PURE__ */ (0, I.jsxs)("a", {
|
|
26298
26296
|
className: "flex items-center gap-1",
|
|
26299
|
-
href:
|
|
26297
|
+
href: by,
|
|
26300
26298
|
target: "_blank",
|
|
26301
26299
|
rel: "noreferrer",
|
|
26302
26300
|
children: [/* @__PURE__ */ (0, I.jsx)(ue, { className: "h-3 w-3" }), /* @__PURE__ */ (0, I.jsx)("span", { children: "How to add a database connection" })]
|
|
@@ -26327,13 +26325,13 @@ var gy = (e) => {
|
|
|
26327
26325
|
children: [y, me]
|
|
26328
26326
|
})
|
|
26329
26327
|
}), t[36] = g, t[37] = m, t[38] = n, t[39] = me, t[40] = y, t[41] = E) : E = t[41], E;
|
|
26330
|
-
},
|
|
26331
|
-
let e = (0, Tr.c)(16), { sqlMode: t, setSQLMode: n } =
|
|
26328
|
+
}, vy = "__help__", yy = "__detected_source__:", by = "http://docs.marimo.io/guides/working_with_data/sql/#connecting-to-a-custom-database", xy = () => {
|
|
26329
|
+
let e = (0, Tr.c)(16), { sqlMode: t, setSQLMode: n } = L_(), r;
|
|
26332
26330
|
e[0] !== n || e[1] !== t ? (r = () => {
|
|
26333
26331
|
let e = t === "validate" ? "default" : "validate";
|
|
26334
|
-
e === "default" &&
|
|
26332
|
+
e === "default" && O_(), n(e);
|
|
26335
26333
|
}, e[0] = n, e[1] = t, e[2] = r) : r = e[2];
|
|
26336
|
-
let i = r, a =
|
|
26334
|
+
let i = r, a = Dy, o = Oy, s;
|
|
26337
26335
|
e[3] === t ? s = e[4] : (s = o(t), e[3] = t, e[4] = s);
|
|
26338
26336
|
let c;
|
|
26339
26337
|
e[5] === t ? c = e[6] : (c = a(t), e[5] = t, e[6] = c);
|
|
@@ -26359,7 +26357,7 @@ var gy = (e) => {
|
|
|
26359
26357
|
children: f
|
|
26360
26358
|
})
|
|
26361
26359
|
}), e[13] = s, e[14] = f, e[15] = p) : p = e[15], p;
|
|
26362
|
-
},
|
|
26360
|
+
}, Sy = (e) => {
|
|
26363
26361
|
let t = (0, Tr.c)(6), n, r;
|
|
26364
26362
|
t[0] === e ? (n = t[1], r = t[2]) : ({children: n, ...r} = e, t[0] = e, t[1] = n, t[2] = r);
|
|
26365
26363
|
let i;
|
|
@@ -26369,15 +26367,15 @@ var gy = (e) => {
|
|
|
26369
26367
|
children: n
|
|
26370
26368
|
}), t[3] = n, t[4] = r, t[5] = i) : i = t[5], i;
|
|
26371
26369
|
};
|
|
26372
|
-
function
|
|
26370
|
+
function Cy(e) {
|
|
26373
26371
|
return e.source !== "iceberg";
|
|
26374
26372
|
}
|
|
26375
|
-
function
|
|
26373
|
+
function wy(e) {
|
|
26376
26374
|
return /* @__PURE__ */ (0, I.jsx)(ie, {
|
|
26377
26375
|
value: e.name,
|
|
26378
26376
|
children: /* @__PURE__ */ (0, I.jsxs)("div", {
|
|
26379
26377
|
className: "flex items-center gap-1",
|
|
26380
|
-
children: [/* @__PURE__ */ (0, I.jsx)(
|
|
26378
|
+
children: [/* @__PURE__ */ (0, I.jsx)(Pv, {
|
|
26381
26379
|
className: "h-3 w-3",
|
|
26382
26380
|
name: e.dialect
|
|
26383
26381
|
}), /* @__PURE__ */ (0, I.jsx)("span", {
|
|
@@ -26387,12 +26385,12 @@ function Ty(e) {
|
|
|
26387
26385
|
})
|
|
26388
26386
|
}, e.name);
|
|
26389
26387
|
}
|
|
26390
|
-
function
|
|
26391
|
-
return e = e.filter(
|
|
26388
|
+
function Ty(e) {
|
|
26389
|
+
return e = e.filter(Cy), e.map(wy);
|
|
26392
26390
|
}
|
|
26393
|
-
function
|
|
26391
|
+
function Ey(e) {
|
|
26394
26392
|
return /* @__PURE__ */ (0, I.jsx)(ie, {
|
|
26395
|
-
value: `${
|
|
26393
|
+
value: `${yy}${e.id}`,
|
|
26396
26394
|
children: /* @__PURE__ */ (0, I.jsxs)("div", {
|
|
26397
26395
|
className: "flex items-center gap-1",
|
|
26398
26396
|
children: [/* @__PURE__ */ (0, I.jsx)(Ln, { className: "h-3 w-3 text-(--blue-9)" }), /* @__PURE__ */ (0, I.jsxs)("span", {
|
|
@@ -26406,10 +26404,10 @@ function Dy(e) {
|
|
|
26406
26404
|
})
|
|
26407
26405
|
}, e.id);
|
|
26408
26406
|
}
|
|
26409
|
-
function
|
|
26407
|
+
function Dy(e) {
|
|
26410
26408
|
return e === "validate" ? /* @__PURE__ */ (0, I.jsx)(In, { className: "h-3 w-3" }) : /* @__PURE__ */ (0, I.jsx)(bn, { className: "h-3 w-3" });
|
|
26411
26409
|
}
|
|
26412
|
-
function
|
|
26410
|
+
function Oy(e) {
|
|
26413
26411
|
return e === "validate" ? /* @__PURE__ */ (0, I.jsxs)("div", {
|
|
26414
26412
|
className: "text-xs",
|
|
26415
26413
|
children: [/* @__PURE__ */ (0, I.jsxs)("div", {
|
|
@@ -26426,14 +26424,14 @@ function ky(e) {
|
|
|
26426
26424
|
}
|
|
26427
26425
|
//#endregion
|
|
26428
26426
|
//#region src/core/codemirror/language/panel/panel.tsx
|
|
26429
|
-
var
|
|
26427
|
+
var ky = () => {
|
|
26430
26428
|
let e = (0, Tr.c)(1), t;
|
|
26431
26429
|
return e[0] === Symbol.for("react.memo_cache_sentinel") ? (t = /* @__PURE__ */ (0, I.jsx)("div", { className: "h-4 border-r border-border" }), e[0] = t) : t = e[0], t;
|
|
26432
|
-
},
|
|
26430
|
+
}, Ay = (e) => {
|
|
26433
26431
|
let t = (0, Tr.c)(102), { view: n } = e, r;
|
|
26434
26432
|
t[0] === Symbol.for("react.memo_cache_sentinel") ? (r = { minWidth: 50 }, t[0] = r) : r = t[0];
|
|
26435
|
-
let { spanProps: i, inputProps: a } =
|
|
26436
|
-
t[1] === n.state ? o = t[2] : (o = n.state.field(
|
|
26433
|
+
let { spanProps: i, inputProps: a } = _v(r), o;
|
|
26434
|
+
t[1] === n.state ? o = t[2] : (o = n.state.field(Ny), t[1] = n.state, t[2] = o);
|
|
26437
26435
|
let s = o, c;
|
|
26438
26436
|
t[3] === n.state ? c = t[4] : (c = n.state.facet(il), t[3] = n.state, t[4] = c);
|
|
26439
26437
|
let u = c, d;
|
|
@@ -26450,19 +26448,19 @@ var Ay = () => {
|
|
|
26450
26448
|
});
|
|
26451
26449
|
}, t[6] = n, t[7] = m);
|
|
26452
26450
|
let _ = m;
|
|
26453
|
-
if (s instanceof
|
|
26451
|
+
if (s instanceof U_) {
|
|
26454
26452
|
let e;
|
|
26455
26453
|
t[8] === n.state ? e = t[9] : (e = n.state.field(vp), t[8] = n.state, t[9] = e);
|
|
26456
26454
|
let r = e;
|
|
26457
26455
|
p = !0;
|
|
26458
26456
|
let o;
|
|
26459
26457
|
t[10] === _ ? o = t[11] : (o = (e) => {
|
|
26460
|
-
let t =
|
|
26458
|
+
let t = pv(e.currentTarget.value, !1);
|
|
26461
26459
|
e.currentTarget.value = t, _({ dataframeName: t });
|
|
26462
26460
|
}, t[10] = _, t[11] = o);
|
|
26463
26461
|
let s = o, c;
|
|
26464
26462
|
t[12] !== _ || t[13] !== n ? (c = (e) => {
|
|
26465
|
-
_({ engine: e }),
|
|
26463
|
+
_({ engine: e }), Z_(n, e);
|
|
26466
26464
|
}, t[12] = _, t[13] = n, t[14] = c) : c = t[14];
|
|
26467
26465
|
let d = c, m;
|
|
26468
26466
|
t[15] === Symbol.for("react.memo_cache_sentinel") ? (m = /* @__PURE__ */ (0, I.jsx)("span", {
|
|
@@ -26498,13 +26496,13 @@ var Ay = () => {
|
|
|
26498
26496
|
]
|
|
26499
26497
|
}), t[28] = y, t[29] = b, t[30] = x) : x = t[30];
|
|
26500
26498
|
let S;
|
|
26501
|
-
t[31] !== u || t[32] !== r.engine || t[33] !== d ? (S = /* @__PURE__ */ (0, I.jsx)(
|
|
26499
|
+
t[31] !== u || t[32] !== r.engine || t[33] !== d ? (S = /* @__PURE__ */ (0, I.jsx)(hy, {
|
|
26502
26500
|
selectedEngine: r.engine,
|
|
26503
26501
|
onChange: d,
|
|
26504
26502
|
cellId: u
|
|
26505
26503
|
}), t[31] = u, t[32] = r.engine, t[33] = d, t[34] = S) : S = t[34];
|
|
26506
26504
|
let C;
|
|
26507
|
-
t[35] === r.engine ? C = t[36] : (C = r.engine === "__marimo_duckdb" && /* @__PURE__ */ (0, I.jsx)(
|
|
26505
|
+
t[35] === r.engine ? C = t[36] : (C = r.engine === "__marimo_duckdb" && /* @__PURE__ */ (0, I.jsx)(xy, {}), t[35] = r.engine, t[36] = C);
|
|
26508
26506
|
let w;
|
|
26509
26507
|
t[37] !== r.engine || t[38] !== n ? (w = async () => {
|
|
26510
26508
|
await Du(n, r.engine);
|
|
@@ -26522,7 +26520,7 @@ var Ay = () => {
|
|
|
26522
26520
|
})
|
|
26523
26521
|
}), t[41] = w, t[42] = ee);
|
|
26524
26522
|
let te;
|
|
26525
|
-
t[43] === Symbol.for("react.memo_cache_sentinel") ? (te = /* @__PURE__ */ (0, I.jsx)(
|
|
26523
|
+
t[43] === Symbol.for("react.memo_cache_sentinel") ? (te = /* @__PURE__ */ (0, I.jsx)(ky, {}), t[43] = te) : te = t[43];
|
|
26526
26524
|
let ne;
|
|
26527
26525
|
t[44] === _ ? ne = t[45] : (ne = (e) => {
|
|
26528
26526
|
_({ showOutput: !e.target.checked });
|
|
@@ -26570,13 +26568,13 @@ var Ay = () => {
|
|
|
26570
26568
|
let { quotePrefix: f } = n.state.field(vp);
|
|
26571
26569
|
r = f, r === void 0 && (r = "r", _({ quotePrefix: r })), d = (e, t) => {
|
|
26572
26570
|
if (typeof t != "boolean") return;
|
|
26573
|
-
let n =
|
|
26571
|
+
let n = vv({
|
|
26574
26572
|
currentQuotePrefix: r,
|
|
26575
26573
|
checked: t,
|
|
26576
26574
|
prefix: e
|
|
26577
26575
|
});
|
|
26578
26576
|
_({ quotePrefix: n });
|
|
26579
|
-
}, a = "flex flex-row w-full justify-end gap-1.5 items-center", u = "flex items-center gap-1.5", t[72] === Symbol.for("react.memo_cache_sentinel") ? (i = /* @__PURE__ */ (0, I.jsx)("span", { children: "r" }), t[72] = i) : i = t[72], e =
|
|
26577
|
+
}, a = "flex flex-row w-full justify-end gap-1.5 items-center", u = "flex items-center gap-1.5", t[72] === Symbol.for("react.memo_cache_sentinel") ? (i = /* @__PURE__ */ (0, I.jsx)("span", { children: "r" }), t[72] = i) : i = t[72], e = dv, s = "Toggle raw string", c = "w-3 h-3", l = r.includes("r"), o = (e) => {
|
|
26580
26578
|
d("r", e);
|
|
26581
26579
|
}, t[60] = _, t[61] = n.state, t[62] = e, t[63] = r, t[64] = i, t[65] = a, t[66] = o, t[67] = s, t[68] = c, t[69] = l, t[70] = u, t[71] = d;
|
|
26582
26580
|
} else e = t[62], r = t[63], i = t[64], a = t[65], o = t[66], s = t[67], c = t[68], l = t[69], u = t[70], d = t[71];
|
|
@@ -26603,7 +26601,7 @@ var Ay = () => {
|
|
|
26603
26601
|
let x;
|
|
26604
26602
|
t[88] !== y || t[89] !== b ? (x = /* @__PURE__ */ (0, I.jsxs)("div", {
|
|
26605
26603
|
className: "flex items-center gap-1.5",
|
|
26606
|
-
children: [v, /* @__PURE__ */ (0, I.jsx)(
|
|
26604
|
+
children: [v, /* @__PURE__ */ (0, I.jsx)(dv, {
|
|
26607
26605
|
"aria-label": "Toggle f-string",
|
|
26608
26606
|
className: "w-3 h-3",
|
|
26609
26607
|
checked: y,
|
|
@@ -26612,7 +26610,7 @@ var Ay = () => {
|
|
|
26612
26610
|
}), t[88] = y, t[89] = b, t[90] = x) : x = t[90];
|
|
26613
26611
|
let S;
|
|
26614
26612
|
t[91] === Symbol.for("react.memo_cache_sentinel") ? (S = /* @__PURE__ */ (0, I.jsx)(g, {
|
|
26615
|
-
content: /* @__PURE__ */ (0, I.jsx)(
|
|
26613
|
+
content: /* @__PURE__ */ (0, I.jsx)(yv, {}),
|
|
26616
26614
|
children: /* @__PURE__ */ (0, I.jsx)(En, { className: "w-3 h-3" })
|
|
26617
26615
|
}), t[91] = S) : S = t[91];
|
|
26618
26616
|
let C;
|
|
@@ -26626,7 +26624,7 @@ var Ay = () => {
|
|
|
26626
26624
|
}), t[92] = a, t[93] = h, t[94] = x, t[95] = C) : C = t[95], f = C;
|
|
26627
26625
|
}
|
|
26628
26626
|
let v;
|
|
26629
|
-
t[96] === p ? v = t[97] : (v = p && /* @__PURE__ */ (0, I.jsx)(
|
|
26627
|
+
t[96] === p ? v = t[97] : (v = p && /* @__PURE__ */ (0, I.jsx)(ky, {}), t[96] = p, t[97] = v);
|
|
26630
26628
|
let y;
|
|
26631
26629
|
return t[98] !== f || t[99] !== s.type || t[100] !== v ? (y = /* @__PURE__ */ (0, I.jsx)(h, { children: /* @__PURE__ */ (0, I.jsxs)("div", {
|
|
26632
26630
|
className: "flex justify-between items-center gap-4 pl-2 pt-2",
|
|
@@ -26636,18 +26634,18 @@ var Ay = () => {
|
|
|
26636
26634
|
s.type
|
|
26637
26635
|
]
|
|
26638
26636
|
}) }), t[98] = f, t[99] = s.type, t[100] = v, t[101] = y) : y = t[101], y;
|
|
26639
|
-
},
|
|
26637
|
+
}, jy = new pt(), My = et.define(), Ny = xt.define({
|
|
26640
26638
|
create() {
|
|
26641
|
-
return
|
|
26639
|
+
return uv.python;
|
|
26642
26640
|
},
|
|
26643
26641
|
update(e, t) {
|
|
26644
|
-
for (let e of t.effects) if (e.is(
|
|
26642
|
+
for (let e of t.effects) if (e.is(My)) return e.value;
|
|
26645
26643
|
return e;
|
|
26646
26644
|
},
|
|
26647
|
-
provide: (e) => nt.from(e, (e) => e.type === "python" ? null : (e) => ku(e,
|
|
26645
|
+
provide: (e) => nt.from(e, (e) => e.type === "python" ? null : (e) => ku(e, Ay))
|
|
26648
26646
|
});
|
|
26649
|
-
function
|
|
26650
|
-
let r = e.state.field(
|
|
26647
|
+
function Py({ view: e, nextLanguage: t, opts: n }) {
|
|
26648
|
+
let r = e.state.field(Ny), i = e.state.doc.toString(), a = e.state.facet(Nc), o = e.state.facet(Pc), s = e.state.facet(Fc), c = e.state.facet(Ic), l = e.state.facet(Lc), u = e.state.field(vp), d = e.state.selection.main.head, f;
|
|
26651
26649
|
if (n.keepCodeAsIs) f = i, r.type !== t.type && (u = { ...t.defaultMetadata });
|
|
26652
26650
|
else {
|
|
26653
26651
|
let [e, n] = r.transformOut(i, u), [a, o, s] = t.transformIn(e);
|
|
@@ -26655,9 +26653,9 @@ function Fy({ view: e, nextLanguage: t, opts: n }) {
|
|
|
26655
26653
|
}
|
|
26656
26654
|
e.dispatch({
|
|
26657
26655
|
effects: [
|
|
26658
|
-
|
|
26656
|
+
My.of(t),
|
|
26659
26657
|
gp.of(u),
|
|
26660
|
-
|
|
26658
|
+
jy.reconfigure(t.getExtension(c, a, o, s, l)),
|
|
26661
26659
|
Rc.reconfigure([]),
|
|
26662
26660
|
Eu.of(!0)
|
|
26663
26661
|
],
|
|
@@ -26667,38 +26665,38 @@ function Fy({ view: e, nextLanguage: t, opts: n }) {
|
|
|
26667
26665
|
insert: f
|
|
26668
26666
|
},
|
|
26669
26667
|
selection: n.keepCodeAsIs ? void 0 : Ue.cursor(d)
|
|
26670
|
-
}), e.dispatch({ effects: [Rc.reconfigure([Ct()])] }), t.type === "sql" &&
|
|
26668
|
+
}), e.dispatch({ effects: [Rc.reconfigure([Ct()])] }), t.type === "sql" && Q_(e);
|
|
26671
26669
|
}
|
|
26672
|
-
function
|
|
26673
|
-
return e ?
|
|
26670
|
+
function Fy(e) {
|
|
26671
|
+
return e ? uv.markdown.isSupported(e) ? uv.markdown : uv.sql.isSupported(e) ? uv.sql : uv.python : uv.python;
|
|
26674
26672
|
}
|
|
26675
|
-
function
|
|
26676
|
-
e.state.field(
|
|
26673
|
+
function Iy(e, t) {
|
|
26674
|
+
e.state.field(Ny).type !== t.language && Py({
|
|
26677
26675
|
view: e,
|
|
26678
|
-
nextLanguage:
|
|
26676
|
+
nextLanguage: uv[t.language],
|
|
26679
26677
|
opts: { keepCodeAsIs: t.keepCodeAsIs ?? !1 }
|
|
26680
26678
|
});
|
|
26681
26679
|
}
|
|
26682
26680
|
//#endregion
|
|
26683
26681
|
//#region src/core/codemirror/language/utils.ts
|
|
26684
|
-
function
|
|
26685
|
-
let r = e.state.field(
|
|
26682
|
+
function Ly(e, t, n) {
|
|
26683
|
+
let r = e.state.field(Ny), i = e.state.field(vp), a = e.state.doc.toString();
|
|
26686
26684
|
return t === void 0 ? r.transformOut(a, i)[0] : r.transformOut(a.slice(t, n), i)[0];
|
|
26687
26685
|
}
|
|
26688
|
-
function
|
|
26689
|
-
let n = e.state.field(
|
|
26690
|
-
r.type !== n.type &&
|
|
26686
|
+
function Ry(e, t) {
|
|
26687
|
+
let n = e.state.field(Ny), r = Fy(t);
|
|
26688
|
+
r.type !== n.type && Iy(e, {
|
|
26691
26689
|
language: r.type,
|
|
26692
26690
|
keepCodeAsIs: !0
|
|
26693
26691
|
});
|
|
26694
|
-
let [i] = e.state.field(
|
|
26692
|
+
let [i] = e.state.field(Ny).transformIn(t);
|
|
26695
26693
|
return jc(e, i), i;
|
|
26696
26694
|
}
|
|
26697
|
-
function
|
|
26695
|
+
function zy(e) {
|
|
26698
26696
|
let t = e.state.selection.main.head, n = e.state.doc.toString(), r = n.length > 0 && n[t - 1] === "\n", i = n.length > 0 && n[t] === "\n", a = r ? t - 1 : t, o = i ? t + 1 : t;
|
|
26699
26697
|
return {
|
|
26700
|
-
beforeCursorCode:
|
|
26701
|
-
afterCursorCode:
|
|
26698
|
+
beforeCursorCode: Ly(e, 0, a),
|
|
26699
|
+
afterCursorCode: Ly(e, o)
|
|
26702
26700
|
};
|
|
26703
26701
|
}
|
|
26704
26702
|
//#endregion
|
|
@@ -26711,7 +26709,7 @@ if (typeof document < "u") {
|
|
|
26711
26709
|
t.tagName === "A" && t.hasAttribute(e) && (t.setAttribute("target", t.getAttribute(e) || ""), t.removeAttribute(e), t.getAttribute("target") === "_blank" && t.setAttribute("rel", "noopener noreferrer"));
|
|
26712
26710
|
});
|
|
26713
26711
|
}
|
|
26714
|
-
function
|
|
26712
|
+
function By(e) {
|
|
26715
26713
|
let t = {
|
|
26716
26714
|
USE_PROFILES: {
|
|
26717
26715
|
html: !0,
|
|
@@ -26731,52 +26729,52 @@ function Vy(e) {
|
|
|
26731
26729
|
}
|
|
26732
26730
|
//#endregion
|
|
26733
26731
|
//#region src/core/dom/outline.ts
|
|
26734
|
-
var
|
|
26732
|
+
var Vy = [
|
|
26735
26733
|
"marimo-carousel",
|
|
26736
26734
|
"marimo-tabs",
|
|
26737
26735
|
"marimo-accordion",
|
|
26738
26736
|
"marimo-sidebar"
|
|
26739
|
-
],
|
|
26740
|
-
function
|
|
26737
|
+
], Hy = "h1, h2, h3, h4, h5, h6";
|
|
26738
|
+
function Uy(e) {
|
|
26741
26739
|
if (typeof DOMParser > "u") return null;
|
|
26742
|
-
let t = [], n = new DOMParser().parseFromString(e, "text/html").querySelectorAll(
|
|
26740
|
+
let t = [], n = new DOMParser().parseFromString(e, "text/html").querySelectorAll(Hy);
|
|
26743
26741
|
for (let e of Array.from(n)) {
|
|
26744
26742
|
let n = e.textContent;
|
|
26745
|
-
if (
|
|
26743
|
+
if (Vy.some((t) => e.closest(t)) || !n) continue;
|
|
26746
26744
|
let r = Number.parseInt(e.tagName[1], 10), i = e.innerHTML, a = {
|
|
26747
26745
|
name: n,
|
|
26748
26746
|
level: r,
|
|
26749
|
-
by:
|
|
26747
|
+
by: Gy(e)
|
|
26750
26748
|
};
|
|
26751
|
-
i !== n && (a.html =
|
|
26749
|
+
i !== n && (a.html = By(i)), t.push(a);
|
|
26752
26750
|
}
|
|
26753
26751
|
return { items: t };
|
|
26754
26752
|
}
|
|
26755
|
-
function
|
|
26753
|
+
function Wy(e) {
|
|
26756
26754
|
if (!e.includes("\"")) return `"${e}"`;
|
|
26757
26755
|
if (!e.includes("'")) return `'${e}'`;
|
|
26758
26756
|
let t = e.split("\""), n = [];
|
|
26759
26757
|
for (let [e, r] of t.entries()) r && n.push(`"${r}"`), e < t.length - 1 && n.push("'\"'");
|
|
26760
26758
|
return `concat(${n.join(", ")})`;
|
|
26761
26759
|
}
|
|
26762
|
-
function
|
|
26760
|
+
function Gy(e) {
|
|
26763
26761
|
let t = e.id;
|
|
26764
26762
|
if (t) return { id: t };
|
|
26765
26763
|
let n = e.textContent ?? "";
|
|
26766
|
-
return { path: `//${e.tagName}[contains(., ${
|
|
26764
|
+
return { path: `//${e.tagName}[contains(., ${Wy(n)})]` };
|
|
26767
26765
|
}
|
|
26768
|
-
function
|
|
26766
|
+
function Ky(e) {
|
|
26769
26767
|
return { items: e.filter(Boolean).flatMap((e) => e.items) };
|
|
26770
26768
|
}
|
|
26771
|
-
function
|
|
26769
|
+
function qy(e) {
|
|
26772
26770
|
if (e == null || e.mimetype !== "text/html" && e.mimetype !== "text/markdown" || e.data == null) return null;
|
|
26773
26771
|
try {
|
|
26774
|
-
return N(typeof e.data == "string", "expected string"),
|
|
26772
|
+
return N(typeof e.data == "string", "expected string"), Uy(e.data);
|
|
26775
26773
|
} catch {
|
|
26776
26774
|
return a.error("Failed to parse outline"), null;
|
|
26777
26775
|
}
|
|
26778
26776
|
}
|
|
26779
|
-
function
|
|
26777
|
+
function Jy(e, t) {
|
|
26780
26778
|
let n = (e) => e.items.length === 0 ? 7 : Math.min(...e.items.map((e) => e.level)), r = t[e];
|
|
26781
26779
|
if (r == null || r.items.length === 0) return a.warn("Failed to find a starting outline"), null;
|
|
26782
26780
|
let i = n(r), o = e + 1;
|
|
@@ -26788,13 +26786,13 @@ function Yy(e, t) {
|
|
|
26788
26786
|
return [e, t.length - 1];
|
|
26789
26787
|
}
|
|
26790
26788
|
wr("marimo:rtc:username", "", Ed);
|
|
26791
|
-
var
|
|
26792
|
-
function
|
|
26789
|
+
var Yy = Ft(() => vd("rtc_v2"));
|
|
26790
|
+
function Xy(e) {
|
|
26793
26791
|
return e !== Gr;
|
|
26794
26792
|
}
|
|
26795
26793
|
//#endregion
|
|
26796
26794
|
//#region src/components/editor/output/ansi-reduce.ts
|
|
26797
|
-
var
|
|
26795
|
+
var Zy = class e {
|
|
26798
26796
|
lines = [""];
|
|
26799
26797
|
cursor = {
|
|
26800
26798
|
row: 0,
|
|
@@ -26883,7 +26881,7 @@ var Qy = class e {
|
|
|
26883
26881
|
render() {
|
|
26884
26882
|
return this.lines.join("\n");
|
|
26885
26883
|
}
|
|
26886
|
-
},
|
|
26884
|
+
}, Qy = class {
|
|
26887
26885
|
ESC_REGEX = new RegExp(String.raw`\u001B(?:\[[0-9;]*[A-Za-z]|\([0-9A-Za-z])`, "gu");
|
|
26888
26886
|
parse(e) {
|
|
26889
26887
|
let t = [], n = 0;
|
|
@@ -26902,9 +26900,9 @@ var Qy = class e {
|
|
|
26902
26900
|
value: e.slice(n)
|
|
26903
26901
|
}), t;
|
|
26904
26902
|
}
|
|
26905
|
-
},
|
|
26906
|
-
parser = new
|
|
26907
|
-
buffer = new
|
|
26903
|
+
}, $y = class {
|
|
26904
|
+
parser = new Qy();
|
|
26905
|
+
buffer = new Zy();
|
|
26908
26906
|
reduce(e) {
|
|
26909
26907
|
return this.reset(), this.append(e), this.render();
|
|
26910
26908
|
}
|
|
@@ -26920,7 +26918,7 @@ var Qy = class e {
|
|
|
26920
26918
|
for (let e of t) e.type === "text" ? this.processText(e.value) : this.buffer.handleEscape(e.value);
|
|
26921
26919
|
}
|
|
26922
26920
|
reset() {
|
|
26923
|
-
this.buffer = new
|
|
26921
|
+
this.buffer = new Zy();
|
|
26924
26922
|
}
|
|
26925
26923
|
render() {
|
|
26926
26924
|
return this.buffer.render();
|
|
@@ -26963,18 +26961,18 @@ var Qy = class e {
|
|
|
26963
26961
|
for (let t of e) t >= " " && (n += t);
|
|
26964
26962
|
return n;
|
|
26965
26963
|
}
|
|
26966
|
-
},
|
|
26964
|
+
}, eb = class e {
|
|
26967
26965
|
mimetype;
|
|
26968
26966
|
channel;
|
|
26969
26967
|
timestamp;
|
|
26970
26968
|
code;
|
|
26971
|
-
ansiReducer = new
|
|
26969
|
+
ansiReducer = new $y();
|
|
26972
26970
|
_data;
|
|
26973
26971
|
get data() {
|
|
26974
26972
|
return this._data;
|
|
26975
26973
|
}
|
|
26976
26974
|
static create(t) {
|
|
26977
|
-
let n = new
|
|
26975
|
+
let n = new $y();
|
|
26978
26976
|
return n.append(t.data), new e(t.mimetype, t.channel, t.timestamp, n, t.code);
|
|
26979
26977
|
}
|
|
26980
26978
|
constructor(e, t, n, r, i) {
|
|
@@ -26995,28 +26993,28 @@ var Qy = class e {
|
|
|
26995
26993
|
};
|
|
26996
26994
|
//#endregion
|
|
26997
26995
|
//#region src/core/cells/collapseConsoleOutputs.tsx
|
|
26998
|
-
function
|
|
26996
|
+
function tb(e, t = 5e3) {
|
|
26999
26997
|
let n = [...e];
|
|
27000
|
-
if (n.length < 2) return
|
|
26998
|
+
if (n.length < 2) return ob(n.map(rb), t);
|
|
27001
26999
|
let r = n[n.length - 1], i = n[n.length - 2];
|
|
27002
|
-
return
|
|
27000
|
+
return nb(r, i) && (ab(r), ab(i), n[n.length - 2] = ib(i, r), n.pop()), ob(n, t);
|
|
27003
27001
|
}
|
|
27004
|
-
function
|
|
27002
|
+
function nb(e, t) {
|
|
27005
27003
|
let n = e.mimetype === "text/plain" && t.mimetype === "text/plain";
|
|
27006
27004
|
if (!n) return !1;
|
|
27007
27005
|
let r = e.channel === t.channel, i = e.channel !== "stdin";
|
|
27008
27006
|
return n && r && i;
|
|
27009
27007
|
}
|
|
27010
|
-
function
|
|
27011
|
-
return e instanceof
|
|
27008
|
+
function rb(e) {
|
|
27009
|
+
return e instanceof eb ? e : typeof e.data == "string" ? eb.create(e) : e;
|
|
27012
27010
|
}
|
|
27013
|
-
function
|
|
27014
|
-
return e instanceof
|
|
27011
|
+
function ib(e, t) {
|
|
27012
|
+
return e instanceof eb ? e.appendData(t.data) : eb.create(e).appendData(t.data);
|
|
27015
27013
|
}
|
|
27016
|
-
function
|
|
27014
|
+
function ab(e) {
|
|
27017
27015
|
N(typeof e.data == "string", "expected string output");
|
|
27018
27016
|
}
|
|
27019
|
-
function
|
|
27017
|
+
function ob(e, t) {
|
|
27020
27018
|
let n = 0, r;
|
|
27021
27019
|
for (r = e.length - 1; r >= 0 && n < t; r--) {
|
|
27022
27020
|
let t = e[r];
|
|
@@ -27046,7 +27044,7 @@ function sb(e, t) {
|
|
|
27046
27044
|
}
|
|
27047
27045
|
//#endregion
|
|
27048
27046
|
//#region src/core/cells/cell.ts
|
|
27049
|
-
function
|
|
27047
|
+
function sb(e, t) {
|
|
27050
27048
|
let n = { ...e };
|
|
27051
27049
|
switch (t.status) {
|
|
27052
27050
|
case "queued":
|
|
@@ -27075,27 +27073,27 @@ function cb(e, t) {
|
|
|
27075
27073
|
response: e.response ?? ""
|
|
27076
27074
|
} : e));
|
|
27077
27075
|
let a = t.console;
|
|
27078
|
-
a != null && (i =
|
|
27076
|
+
a != null && (i = tb(Array.isArray(a) ? a : [...i, a])), n.consoleOutputs = i, n.outline = qy(n.output);
|
|
27079
27077
|
let o = [t.console].flat().filter(Boolean).filter((e) => e.channel === "pdb");
|
|
27080
27078
|
return o.length > 0 && o.some((e) => e.data === "start") && (n.debuggerActive = !0), n;
|
|
27081
27079
|
}
|
|
27082
|
-
function
|
|
27080
|
+
function cb(e) {
|
|
27083
27081
|
let t = { ...e };
|
|
27084
27082
|
return e.status !== "disabled-transitively" && (t.status = "queued"), t.interrupted = !1, t.errored = !1, t.runElapsedTimeMs = null, t.debuggerActive = !1, t;
|
|
27085
27083
|
}
|
|
27086
|
-
function
|
|
27084
|
+
function lb(e) {
|
|
27087
27085
|
return e === "running" || e === "queued";
|
|
27088
27086
|
}
|
|
27089
|
-
function
|
|
27087
|
+
function ub(e, t) {
|
|
27090
27088
|
let { status: n, output: r, runStartTimestamp: i, interrupted: a, staleInputs: o } = e;
|
|
27091
27089
|
if (a) return !1;
|
|
27092
27090
|
if (t) return !0;
|
|
27093
|
-
let s =
|
|
27091
|
+
let s = lb(n), c = n === "running" && r !== null && i !== null && (r.timestamp ?? 0) > i;
|
|
27094
27092
|
return s && !c ? !0 : o;
|
|
27095
27093
|
}
|
|
27096
27094
|
//#endregion
|
|
27097
27095
|
//#region src/core/cells/document-changes.ts
|
|
27098
|
-
function
|
|
27096
|
+
function db(e, t) {
|
|
27099
27097
|
if (!e) {
|
|
27100
27098
|
a.warn("getCell: cellId is undefined");
|
|
27101
27099
|
return;
|
|
@@ -27107,32 +27105,32 @@ function fb(e, t) {
|
|
|
27107
27105
|
}
|
|
27108
27106
|
return n;
|
|
27109
27107
|
}
|
|
27110
|
-
function
|
|
27108
|
+
function fb(e, t) {
|
|
27111
27109
|
let n = t.cellIds.inOrderIds, r = n.indexOf(e);
|
|
27112
27110
|
if (r > 0) return { after: n[r - 1] };
|
|
27113
27111
|
if (r === 0 && n.length > 1) return { before: n[1] };
|
|
27114
27112
|
}
|
|
27115
|
-
function
|
|
27113
|
+
function pb(e) {
|
|
27116
27114
|
let t = /* @__PURE__ */ new Map(), n = e.cellIds.getColumns();
|
|
27117
27115
|
for (let [e, r] of n.entries()) for (let n of r.inOrderIds) t.set(n, e);
|
|
27118
27116
|
return t;
|
|
27119
27117
|
}
|
|
27120
|
-
function
|
|
27118
|
+
function mb(e, t) {
|
|
27121
27119
|
let n = new Set(e.cellIds.inOrderIds), r = [];
|
|
27122
27120
|
for (let e of t.cellIds.inOrderIds) if (!n.has(e)) {
|
|
27123
|
-
let n =
|
|
27121
|
+
let n = db(e, t);
|
|
27124
27122
|
n && r.push({
|
|
27125
27123
|
type: "create-cell",
|
|
27126
27124
|
cellId: n.id,
|
|
27127
27125
|
code: n.code,
|
|
27128
27126
|
name: n.name,
|
|
27129
27127
|
config: n.config,
|
|
27130
|
-
...
|
|
27128
|
+
...fb(n.id, t)
|
|
27131
27129
|
});
|
|
27132
27130
|
}
|
|
27133
27131
|
return r;
|
|
27134
27132
|
}
|
|
27135
|
-
function
|
|
27133
|
+
function hb(e, t) {
|
|
27136
27134
|
let n = new Set(t.cellIds.inOrderIds), r = [];
|
|
27137
27135
|
for (let t of e.cellIds.inOrderIds) n.has(t) || r.push({
|
|
27138
27136
|
type: "delete-cell",
|
|
@@ -27140,10 +27138,10 @@ function gb(e, t) {
|
|
|
27140
27138
|
});
|
|
27141
27139
|
return r;
|
|
27142
27140
|
}
|
|
27143
|
-
function
|
|
27144
|
-
let n =
|
|
27141
|
+
function gb(e, t) {
|
|
27142
|
+
let n = pb(e), r = pb(t), i = [];
|
|
27145
27143
|
for (let [e, a] of r) if (n.get(e) !== a) {
|
|
27146
|
-
let n =
|
|
27144
|
+
let n = db(e, t);
|
|
27147
27145
|
i.push({
|
|
27148
27146
|
type: "set-config",
|
|
27149
27147
|
cellId: e,
|
|
@@ -27158,9 +27156,9 @@ function _b(e, t) {
|
|
|
27158
27156
|
cellIds: t.cellIds.inOrderIds
|
|
27159
27157
|
}), i;
|
|
27160
27158
|
}
|
|
27161
|
-
function
|
|
27159
|
+
function _b(e, t, n) {
|
|
27162
27160
|
switch (n.type) {
|
|
27163
|
-
case "createNewCell": return
|
|
27161
|
+
case "createNewCell": return mb(e, t);
|
|
27164
27162
|
case "deleteCell": return [{
|
|
27165
27163
|
type: "delete-cell",
|
|
27166
27164
|
cellId: n.payload.cellId
|
|
@@ -27172,15 +27170,15 @@ function vb(e, t, n) {
|
|
|
27172
27170
|
return [{
|
|
27173
27171
|
type: "move-cell",
|
|
27174
27172
|
cellId: e,
|
|
27175
|
-
...
|
|
27173
|
+
...fb(e, t)
|
|
27176
27174
|
}];
|
|
27177
27175
|
}
|
|
27178
27176
|
case "dropCellOverCell":
|
|
27179
27177
|
case "dropCellOverColumn":
|
|
27180
27178
|
case "moveCellToIndex":
|
|
27181
|
-
case "moveCellsRelativeTo": return
|
|
27179
|
+
case "moveCellsRelativeTo": return gb(e, t);
|
|
27182
27180
|
case "updateCellCode": {
|
|
27183
|
-
let e =
|
|
27181
|
+
let e = db(n.payload.cellId, t);
|
|
27184
27182
|
return e ? [{
|
|
27185
27183
|
type: "set-code",
|
|
27186
27184
|
cellId: e.id,
|
|
@@ -27188,7 +27186,7 @@ function vb(e, t, n) {
|
|
|
27188
27186
|
}] : [];
|
|
27189
27187
|
}
|
|
27190
27188
|
case "updateCellName": {
|
|
27191
|
-
let e =
|
|
27189
|
+
let e = db(n.payload.cellId, t);
|
|
27192
27190
|
return e ? [{
|
|
27193
27191
|
type: "set-name",
|
|
27194
27192
|
cellId: e.id,
|
|
@@ -27196,7 +27194,7 @@ function vb(e, t, n) {
|
|
|
27196
27194
|
}] : [];
|
|
27197
27195
|
}
|
|
27198
27196
|
case "updateCellConfig": {
|
|
27199
|
-
let { cellId: e } = n.payload, r =
|
|
27197
|
+
let { cellId: e } = n.payload, r = db(e, t);
|
|
27200
27198
|
return r ? [{
|
|
27201
27199
|
type: "set-config",
|
|
27202
27200
|
cellId: e,
|
|
@@ -27211,30 +27209,30 @@ function vb(e, t, n) {
|
|
|
27211
27209
|
case "addColumnBreakpoint":
|
|
27212
27210
|
case "deleteColumn":
|
|
27213
27211
|
case "mergeAllColumns":
|
|
27214
|
-
case "compactColumns": return
|
|
27215
|
-
case "addColumn": return [...
|
|
27212
|
+
case "compactColumns": return gb(e, t);
|
|
27213
|
+
case "addColumn": return [...mb(e, t), ...gb(e, t)];
|
|
27216
27214
|
case "undoDeleteCell": {
|
|
27217
|
-
let n =
|
|
27215
|
+
let n = mb(e, t), r = gb(e, t);
|
|
27218
27216
|
return n.length === 0 ? r : r.length > 1 ? [...n, ...r] : n;
|
|
27219
27217
|
}
|
|
27220
27218
|
case "splitCell": {
|
|
27221
|
-
let { cellId: r } = n.payload, i =
|
|
27219
|
+
let { cellId: r } = n.payload, i = db(r, t);
|
|
27222
27220
|
return i ? [{
|
|
27223
27221
|
type: "set-code",
|
|
27224
27222
|
cellId: r,
|
|
27225
27223
|
code: i.code
|
|
27226
|
-
}, ...
|
|
27224
|
+
}, ...mb(e, t)] : [];
|
|
27227
27225
|
}
|
|
27228
27226
|
case "undoSplitCell": {
|
|
27229
|
-
let { cellId: r } = n.payload, i =
|
|
27227
|
+
let { cellId: r } = n.payload, i = db(r, t);
|
|
27230
27228
|
return i ? [{
|
|
27231
27229
|
type: "set-code",
|
|
27232
27230
|
cellId: r,
|
|
27233
27231
|
code: i.code
|
|
27234
|
-
}, ...
|
|
27232
|
+
}, ...hb(e, t)] : [];
|
|
27235
27233
|
}
|
|
27236
|
-
case "moveToNextCell": return
|
|
27237
|
-
case "addSetupCellIfDoesntExist": return
|
|
27234
|
+
case "moveToNextCell": return mb(e, t);
|
|
27235
|
+
case "addSetupCellIfDoesntExist": return mb(e, t);
|
|
27238
27236
|
case "focusCell":
|
|
27239
27237
|
case "focusTopCell":
|
|
27240
27238
|
case "focusBottomCell":
|
|
@@ -27264,88 +27262,88 @@ function vb(e, t, n) {
|
|
|
27264
27262
|
default: ee(n);
|
|
27265
27263
|
}
|
|
27266
27264
|
}
|
|
27267
|
-
var
|
|
27265
|
+
var vb = /* @__PURE__ */ new Set([
|
|
27268
27266
|
"set-code",
|
|
27269
27267
|
"set-name",
|
|
27270
27268
|
"set-config"
|
|
27271
|
-
]),
|
|
27269
|
+
]), yb = /* @__PURE__ */ new Set([
|
|
27272
27270
|
"set-code",
|
|
27273
27271
|
"set-name",
|
|
27274
27272
|
"set-config",
|
|
27275
27273
|
"move-cell"
|
|
27276
27274
|
]);
|
|
27277
|
-
function
|
|
27275
|
+
function bb(e) {
|
|
27278
27276
|
let t = /* @__PURE__ */ new Set();
|
|
27279
27277
|
for (let n of e) n.type === "delete-cell" && t.add(n.cellId);
|
|
27280
|
-
let n = e.filter((e) => !(
|
|
27278
|
+
let n = e.filter((e) => !(yb.has(e.type) && "cellId" in e && t.has(e.cellId))), r = /* @__PURE__ */ new Map();
|
|
27281
27279
|
return n.forEach((e, t) => {
|
|
27282
|
-
|
|
27283
|
-
}), n.filter((e, t) =>
|
|
27284
|
-
}
|
|
27285
|
-
var
|
|
27286
|
-
function
|
|
27287
|
-
if (
|
|
27288
|
-
let e = xb
|
|
27289
|
-
|
|
27290
|
-
}
|
|
27291
|
-
async function
|
|
27292
|
-
if (e ===
|
|
27293
|
-
if (
|
|
27294
|
-
for (;
|
|
27295
|
-
let t =
|
|
27280
|
+
vb.has(e.type) && "cellId" in e && r.set(`${e.type}:${e.cellId}`, t);
|
|
27281
|
+
}), n.filter((e, t) => vb.has(e.type) && "cellId" in e ? r.get(`${e.type}:${e.cellId}`) === t : !0);
|
|
27282
|
+
}
|
|
27283
|
+
var xb = [], Sb = [], Cb = Promise.resolve(), wb = 0, Tb = null, Eb = { status: "synchronized" };
|
|
27284
|
+
function Db() {
|
|
27285
|
+
if (Eb.status === "failed") return;
|
|
27286
|
+
let e = bb(xb);
|
|
27287
|
+
xb = [], e.length > 0 && Sb.push(e);
|
|
27288
|
+
}
|
|
27289
|
+
async function Ob(e) {
|
|
27290
|
+
if (e === wb) {
|
|
27291
|
+
if (Eb.status === "failed") throw Eb.error;
|
|
27292
|
+
for (; Sb.length > 0;) {
|
|
27293
|
+
let t = Sb[0];
|
|
27296
27294
|
try {
|
|
27297
27295
|
await nl().sendDocumentTransaction({ changes: t });
|
|
27298
27296
|
} catch (t) {
|
|
27299
|
-
if (e !==
|
|
27300
|
-
throw
|
|
27297
|
+
if (e !== wb) return;
|
|
27298
|
+
throw Eb = {
|
|
27301
27299
|
status: "failed",
|
|
27302
27300
|
error: t
|
|
27303
|
-
},
|
|
27301
|
+
}, Sb = Sb.slice(1), t;
|
|
27304
27302
|
}
|
|
27305
|
-
if (e !==
|
|
27306
|
-
|
|
27303
|
+
if (e !== wb) return;
|
|
27304
|
+
Sb.shift();
|
|
27307
27305
|
}
|
|
27308
27306
|
}
|
|
27309
27307
|
}
|
|
27310
|
-
function
|
|
27311
|
-
let e =
|
|
27312
|
-
return
|
|
27308
|
+
function kb() {
|
|
27309
|
+
let e = wb, t = Tb?.promise ?? Promise.resolve(), n = Promise.all([Cb.catch(() => void 0), t]).then(() => Ob(e));
|
|
27310
|
+
return Cb = n, n;
|
|
27313
27311
|
}
|
|
27314
|
-
var
|
|
27315
|
-
|
|
27312
|
+
var Ab = je(() => {
|
|
27313
|
+
Db(), kb().catch(() => void 0);
|
|
27316
27314
|
}, 400);
|
|
27317
|
-
async function
|
|
27318
|
-
if (
|
|
27319
|
-
|
|
27320
|
-
let e =
|
|
27315
|
+
async function jb() {
|
|
27316
|
+
if (Eb.status === "failed") throw Eb.error;
|
|
27317
|
+
Ab.cancel(), Db();
|
|
27318
|
+
let e = kb();
|
|
27321
27319
|
for (;;) {
|
|
27322
|
-
if (await e,
|
|
27323
|
-
e =
|
|
27320
|
+
if (await e, Ab.cancel(), Db(), xb.length === 0 && Sb.length === 0 && Cb === e) return;
|
|
27321
|
+
e = Cb === e ? kb() : Cb;
|
|
27324
27322
|
}
|
|
27325
27323
|
}
|
|
27326
|
-
function
|
|
27324
|
+
function Mb(e) {
|
|
27327
27325
|
return "cellId" in e && e.cellId === "__scratch__";
|
|
27328
27326
|
}
|
|
27329
|
-
function
|
|
27330
|
-
j.get(fe) ||
|
|
27327
|
+
function Nb(e) {
|
|
27328
|
+
j.get(fe) || Mb(e) || (xb.push(e), Eb.status === "synchronized" && Ab());
|
|
27331
27329
|
}
|
|
27332
|
-
function
|
|
27333
|
-
for (let r of
|
|
27330
|
+
function Pb(e, t, n) {
|
|
27331
|
+
for (let r of _b(e, t, n)) Nb(r);
|
|
27334
27332
|
}
|
|
27335
27333
|
//#endregion
|
|
27336
27334
|
//#region ../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/fromUnixTime.js
|
|
27337
|
-
function
|
|
27335
|
+
function Fb(e, t) {
|
|
27338
27336
|
return ge(e * 1e3, t?.in);
|
|
27339
27337
|
}
|
|
27340
27338
|
//#endregion
|
|
27341
27339
|
//#region ../node_modules/.pnpm/ansi_up@6.0.6/node_modules/ansi_up/ansi_up.js
|
|
27342
|
-
var
|
|
27340
|
+
var Ib = function(e, t) {
|
|
27343
27341
|
return Object.defineProperty ? Object.defineProperty(e, "raw", { value: t }) : e.raw = t, e;
|
|
27344
|
-
},
|
|
27342
|
+
}, Lb;
|
|
27345
27343
|
(function(e) {
|
|
27346
27344
|
e[e.EOS = 0] = "EOS", e[e.Text = 1] = "Text", e[e.Incomplete = 2] = "Incomplete", e[e.ESC = 3] = "ESC", e[e.Unknown = 4] = "Unknown", e[e.SGR = 5] = "SGR", e[e.OSCURL = 6] = "OSCURL";
|
|
27347
|
-
})(
|
|
27348
|
-
var
|
|
27345
|
+
})(Lb ||= {});
|
|
27346
|
+
var Rb = class {
|
|
27349
27347
|
constructor() {
|
|
27350
27348
|
this.VERSION = "6.0.6", this.setup_palettes(), this._use_classes = !1, this.bold = !1, this.faint = !1, this.italic = !1, this.underline = !1, this.fg = this.bg = null, this._buffer = "", this._url_allowlist = {
|
|
27351
27349
|
http: 1,
|
|
@@ -27577,57 +27575,57 @@ var zb = class {
|
|
|
27577
27575
|
}
|
|
27578
27576
|
get_next_packet() {
|
|
27579
27577
|
var e = {
|
|
27580
|
-
kind:
|
|
27578
|
+
kind: Lb.EOS,
|
|
27581
27579
|
text: "",
|
|
27582
27580
|
url: ""
|
|
27583
27581
|
}, t = this._buffer.length;
|
|
27584
27582
|
if (t == 0) return e;
|
|
27585
27583
|
var n = this._buffer.indexOf("\x1B");
|
|
27586
|
-
if (n == -1) return e.kind =
|
|
27587
|
-
if (n > 0) return e.kind =
|
|
27584
|
+
if (n == -1) return e.kind = Lb.Text, e.text = this._buffer, this._buffer = "", e;
|
|
27585
|
+
if (n > 0) return e.kind = Lb.Text, e.text = this._buffer.slice(0, n), this._buffer = this._buffer.slice(n), e;
|
|
27588
27586
|
if (n == 0) {
|
|
27589
|
-
if (t < 3) return e.kind =
|
|
27587
|
+
if (t < 3) return e.kind = Lb.Incomplete, e;
|
|
27590
27588
|
var r = this._buffer.charAt(1);
|
|
27591
|
-
if (r != "[" && r != "]" && r != "(") return e.kind =
|
|
27589
|
+
if (r != "[" && r != "]" && r != "(") return e.kind = Lb.ESC, e.text = this._buffer.slice(0, 1), this._buffer = this._buffer.slice(1), e;
|
|
27592
27590
|
if (r == "[") {
|
|
27593
|
-
this._csi_regex ||=
|
|
27591
|
+
this._csi_regex ||= zb(Vb ||= Ib(["\n ^ # beginning of line\n #\n # First attempt\n (?: # legal sequence\n \x1B[ # CSI\n ([<-?]?) # private-mode char\n ([d;]*) # any digits or semicolons\n ([ -/]? # an intermediate modifier\n [@-~]) # the command\n )\n | # alternate (second attempt)\n (?: # illegal sequence\n \x1B[ # CSI\n [ -~]* # anything legal\n ([\0-:]) # anything illegal\n )\n "], ["\n ^ # beginning of line\n #\n # First attempt\n (?: # legal sequence\n \\x1b\\[ # CSI\n ([\\x3c-\\x3f]?) # private-mode char\n ([\\d;]*) # any digits or semicolons\n ([\\x20-\\x2f]? # an intermediate modifier\n [\\x40-\\x7e]) # the command\n )\n | # alternate (second attempt)\n (?: # illegal sequence\n \\x1b\\[ # CSI\n [\\x20-\\x7e]* # anything legal\n ([\\x00-\\x1f:]) # anything illegal\n )\n "]));
|
|
27594
27592
|
let t = this._buffer.match(this._csi_regex);
|
|
27595
|
-
if (t === null) return e.kind =
|
|
27596
|
-
if (t[4]) return e.kind =
|
|
27597
|
-
e.kind = t[1] != "" || t[3] != "m" ?
|
|
27593
|
+
if (t === null) return e.kind = Lb.Incomplete, e;
|
|
27594
|
+
if (t[4]) return e.kind = Lb.ESC, e.text = this._buffer.slice(0, 1), this._buffer = this._buffer.slice(1), e;
|
|
27595
|
+
e.kind = t[1] != "" || t[3] != "m" ? Lb.Unknown : Lb.SGR, e.text = t[2];
|
|
27598
27596
|
var i = t[0].length;
|
|
27599
27597
|
return this._buffer = this._buffer.slice(i), e;
|
|
27600
27598
|
}
|
|
27601
27599
|
if (r == "]") {
|
|
27602
|
-
if (t < 4) return e.kind =
|
|
27603
|
-
if (this._buffer.charAt(2) != "8" || this._buffer.charAt(3) != ";") return e.kind =
|
|
27604
|
-
this._osc_st ||=
|
|
27600
|
+
if (t < 4) return e.kind = Lb.Incomplete, e;
|
|
27601
|
+
if (this._buffer.charAt(2) != "8" || this._buffer.charAt(3) != ";") return e.kind = Lb.ESC, e.text = this._buffer.slice(0, 1), this._buffer = this._buffer.slice(1), e;
|
|
27602
|
+
this._osc_st ||= Bb(Hb ||= Ib(["\n (?: # legal sequence\n (\x1B\\) # ESC | # alternate\n (\x07) # BEL (what xterm did)\n )\n | # alternate (second attempt)\n ( # illegal sequence\n [\0-] # anything illegal\n | # alternate\n [\b-] # anything illegal\n | # alternate\n [-] # anything illegal\n )\n "], ["\n (?: # legal sequence\n (\\x1b\\\\) # ESC \\\n | # alternate\n (\\x07) # BEL (what xterm did)\n )\n | # alternate (second attempt)\n ( # illegal sequence\n [\\x00-\\x06] # anything illegal\n | # alternate\n [\\x08-\\x1a] # anything illegal\n | # alternate\n [\\x1c-\\x1f] # anything illegal\n )\n "])), this._osc_st.lastIndex = 0;
|
|
27605
27603
|
{
|
|
27606
27604
|
let t = this._osc_st.exec(this._buffer);
|
|
27607
|
-
if (t === null) return e.kind =
|
|
27608
|
-
if (t[3]) return e.kind =
|
|
27605
|
+
if (t === null) return e.kind = Lb.Incomplete, e;
|
|
27606
|
+
if (t[3]) return e.kind = Lb.ESC, e.text = this._buffer.slice(0, 1), this._buffer = this._buffer.slice(1), e;
|
|
27609
27607
|
}
|
|
27610
27608
|
{
|
|
27611
27609
|
let t = this._osc_st.exec(this._buffer);
|
|
27612
|
-
if (t === null) return e.kind =
|
|
27613
|
-
if (t[3]) return e.kind =
|
|
27610
|
+
if (t === null) return e.kind = Lb.Incomplete, e;
|
|
27611
|
+
if (t[3]) return e.kind = Lb.ESC, e.text = this._buffer.slice(0, 1), this._buffer = this._buffer.slice(1), e;
|
|
27614
27612
|
}
|
|
27615
|
-
this._osc_regex ||=
|
|
27613
|
+
this._osc_regex ||= zb(Ub ||= Ib(["\n ^ # beginning of line\n #\n \x1B]8; # OSC Hyperlink\n [ -:<-~]* # params (excluding ;)\n ; # end of params\n ([!-~]{0,512}) # URL capture\n (?: # ST\n (?:\x1B\\) # ESC | # alternate\n (?:\x07) # BEL (what xterm did)\n )\n ([ -~]+) # TEXT capture\n \x1B]8;; # OSC Hyperlink End\n (?: # ST\n (?:\x1B\\) # ESC | # alternate\n (?:\x07) # BEL (what xterm did)\n )\n "], ["\n ^ # beginning of line\n #\n \\x1b\\]8; # OSC Hyperlink\n [\\x20-\\x3a\\x3c-\\x7e]* # params (excluding ;)\n ; # end of params\n ([\\x21-\\x7e]{0,512}) # URL capture\n (?: # ST\n (?:\\x1b\\\\) # ESC \\\n | # alternate\n (?:\\x07) # BEL (what xterm did)\n )\n ([\\x20-\\x7e]+) # TEXT capture\n \\x1b\\]8;; # OSC Hyperlink End\n (?: # ST\n (?:\\x1b\\\\) # ESC \\\n | # alternate\n (?:\\x07) # BEL (what xterm did)\n )\n "]));
|
|
27616
27614
|
let n = this._buffer.match(this._osc_regex);
|
|
27617
|
-
if (n === null) return e.kind =
|
|
27618
|
-
e.kind =
|
|
27615
|
+
if (n === null) return e.kind = Lb.ESC, e.text = this._buffer.slice(0, 1), this._buffer = this._buffer.slice(1), e;
|
|
27616
|
+
e.kind = Lb.OSCURL, e.url = n[1], e.text = n[2];
|
|
27619
27617
|
var i = n[0].length;
|
|
27620
27618
|
return this._buffer = this._buffer.slice(i), e;
|
|
27621
27619
|
}
|
|
27622
|
-
if (r == "(") return e.kind =
|
|
27620
|
+
if (r == "(") return e.kind = Lb.Unknown, this._buffer = this._buffer.slice(3), e;
|
|
27623
27621
|
}
|
|
27624
27622
|
}
|
|
27625
27623
|
ansi_to_html(e) {
|
|
27626
27624
|
this.append_buffer(e);
|
|
27627
27625
|
for (var t = [];;) {
|
|
27628
27626
|
var n = this.get_next_packet();
|
|
27629
|
-
if (n.kind ==
|
|
27630
|
-
n.kind !=
|
|
27627
|
+
if (n.kind == Lb.EOS || n.kind == Lb.Incomplete) break;
|
|
27628
|
+
n.kind != Lb.ESC && n.kind != Lb.Unknown && (n.kind == Lb.Text ? t.push(this.transform_to_html(this.with_state(n))) : n.kind == Lb.SGR ? this.process_ansi(n) : n.kind == Lb.OSCURL && t.push(this.process_hyperlink(n)));
|
|
27631
27629
|
}
|
|
27632
27630
|
return t.join("");
|
|
27633
27631
|
}
|
|
@@ -27697,16 +27695,16 @@ var zb = class {
|
|
|
27697
27695
|
return t.length < 1 || !this._url_allowlist[t[0]] ? "" : `<a href="${this.escape_txt_for_html(e.url)}">${this.escape_txt_for_html(e.text)}</a>`;
|
|
27698
27696
|
}
|
|
27699
27697
|
};
|
|
27700
|
-
function
|
|
27698
|
+
function zb(e, ...t) {
|
|
27701
27699
|
let n = e.raw[0].replace(/^\s+|\s+\n|\s*#[\s\S]*?\n|\n/gm, "");
|
|
27702
27700
|
return new RegExp(n);
|
|
27703
27701
|
}
|
|
27704
|
-
function
|
|
27702
|
+
function Bb(e, ...t) {
|
|
27705
27703
|
let n = e.raw[0].replace(/^\s+|\s+\n|\s*#[\s\S]*?\n|\n/gm, "");
|
|
27706
27704
|
return new RegExp(n, "g");
|
|
27707
27705
|
}
|
|
27708
|
-
var Hb, Ub, Wb
|
|
27709
|
-
function
|
|
27706
|
+
var Vb, Hb, Ub, Wb = new Rb();
|
|
27707
|
+
function Gb(e) {
|
|
27710
27708
|
try {
|
|
27711
27709
|
let t = document.createElement("div");
|
|
27712
27710
|
return t.innerHTML = e, (t.textContent || t.innerText || "").split("\n").map((e) => e.trimEnd()).join("\n");
|
|
@@ -27714,24 +27712,24 @@ function Kb(e) {
|
|
|
27714
27712
|
return a.error("Error parsing HTML content:", t), e;
|
|
27715
27713
|
}
|
|
27716
27714
|
}
|
|
27717
|
-
function
|
|
27715
|
+
function Kb(e) {
|
|
27718
27716
|
if (!e) return "";
|
|
27719
27717
|
try {
|
|
27720
|
-
return
|
|
27718
|
+
return Gb(Wb.ansi_to_html(e));
|
|
27721
27719
|
} catch (t) {
|
|
27722
27720
|
return a.error("Error converting ANSI to plain text:", t), e;
|
|
27723
27721
|
}
|
|
27724
27722
|
}
|
|
27725
27723
|
//#endregion
|
|
27726
27724
|
//#region src/core/errors/traceback-atom.ts
|
|
27727
|
-
var
|
|
27725
|
+
var qb = A(null);
|
|
27728
27726
|
//#endregion
|
|
27729
27727
|
//#region src/core/cells/logs.ts
|
|
27730
|
-
function
|
|
27728
|
+
function Jb(e) {
|
|
27731
27729
|
return e.type === "cell" ? e.cellId : `lsp:${e.name}`;
|
|
27732
27730
|
}
|
|
27733
|
-
var
|
|
27734
|
-
function
|
|
27731
|
+
var Yb = !1;
|
|
27732
|
+
function Xb(e) {
|
|
27735
27733
|
let t = [], n = [e.console].filter(Boolean).flat();
|
|
27736
27734
|
for (let r of n) {
|
|
27737
27735
|
let n = r.mimetype === "text/plain", i = r.mimetype === "text/html" || r.mimetype === "application/vnd.marimo+traceback";
|
|
@@ -27741,7 +27739,7 @@ function Zb(e) {
|
|
|
27741
27739
|
case "stdout":
|
|
27742
27740
|
case "stderr":
|
|
27743
27741
|
case "marimo-error": {
|
|
27744
|
-
let a = ne.asString(r.data), o = i ?
|
|
27742
|
+
let a = ne.asString(r.data), o = i ? Gb(a) : a;
|
|
27745
27743
|
t.push({
|
|
27746
27744
|
timestamp: r.timestamp || Date.now(),
|
|
27747
27745
|
level: n ? "stderr" : "stdout",
|
|
@@ -27756,9 +27754,9 @@ function Zb(e) {
|
|
|
27756
27754
|
}
|
|
27757
27755
|
}
|
|
27758
27756
|
}
|
|
27759
|
-
if (t.forEach(
|
|
27757
|
+
if (t.forEach(Zb.log), n.length === 0 && Vc(e.output?.mimetype) && Array.isArray(e.output.data)) {
|
|
27760
27758
|
e.output.data.forEach((t) => {
|
|
27761
|
-
|
|
27759
|
+
Zb.log({
|
|
27762
27760
|
level: "stderr",
|
|
27763
27761
|
source: {
|
|
27764
27762
|
type: "cell",
|
|
@@ -27769,8 +27767,8 @@ function Zb(e) {
|
|
|
27769
27767
|
});
|
|
27770
27768
|
});
|
|
27771
27769
|
let t = e.output.data.filter((e) => "type" in e && e.type === "exception" || e.type === "internal"), n = j.get(E) === "read";
|
|
27772
|
-
if (t.length > 0 && !
|
|
27773
|
-
|
|
27770
|
+
if (t.length > 0 && !Yb && n) {
|
|
27771
|
+
Yb = !0;
|
|
27774
27772
|
let e = t.find((e) => e.traceback);
|
|
27775
27773
|
f(e ? {
|
|
27776
27774
|
title: "An internal error occurred",
|
|
@@ -27779,7 +27777,7 @@ function Zb(e) {
|
|
|
27779
27777
|
action: F.createElement(Ae, {
|
|
27780
27778
|
altText: "View traceback",
|
|
27781
27779
|
onClick: () => {
|
|
27782
|
-
j.set(
|
|
27780
|
+
j.set(qb, {
|
|
27783
27781
|
traceback: e.traceback,
|
|
27784
27782
|
errorMessage: e.msg || "An internal error occurred"
|
|
27785
27783
|
});
|
|
@@ -27794,13 +27792,13 @@ function Zb(e) {
|
|
|
27794
27792
|
}
|
|
27795
27793
|
return t;
|
|
27796
27794
|
}
|
|
27797
|
-
var
|
|
27795
|
+
var Zb = { log: (e) => {
|
|
27798
27796
|
let t = e.level === "stdout" ? "gray" : e.level === "stderr" ? "red" : "orange", n = e.level.toUpperCase();
|
|
27799
|
-
console.log(`%c[${n}]`, `color:${t}; padding:2px 0; border-radius:2px; font-weight:bold`, `[${
|
|
27797
|
+
console.log(`%c[${n}]`, `color:${t}; padding:2px 0; border-radius:2px; font-weight:bold`, `[${Qb(e.timestamp)}]`, `(${Jb(e.source)}) ${e.message}`);
|
|
27800
27798
|
} };
|
|
27801
|
-
function
|
|
27799
|
+
function Qb(e) {
|
|
27802
27800
|
try {
|
|
27803
|
-
return
|
|
27801
|
+
return Fb(e).toLocaleTimeString(void 0, {
|
|
27804
27802
|
hour12: !0,
|
|
27805
27803
|
hour: "numeric",
|
|
27806
27804
|
minute: "numeric",
|
|
@@ -27812,10 +27810,10 @@ function $b(e) {
|
|
|
27812
27810
|
}
|
|
27813
27811
|
//#endregion
|
|
27814
27812
|
//#region src/components/editor/navigation/focus-utils.ts
|
|
27815
|
-
function
|
|
27813
|
+
function $b() {
|
|
27816
27814
|
return document.activeElement instanceof HTMLElement && document.activeElement.classList.contains("marimo-cell");
|
|
27817
27815
|
}
|
|
27818
|
-
function
|
|
27816
|
+
function ex(e) {
|
|
27819
27817
|
try {
|
|
27820
27818
|
e.focus();
|
|
27821
27819
|
} catch {
|
|
@@ -27824,7 +27822,7 @@ function tx(e) {
|
|
|
27824
27822
|
}
|
|
27825
27823
|
//#endregion
|
|
27826
27824
|
//#region src/utils/timeout.ts
|
|
27827
|
-
function
|
|
27825
|
+
function tx(e, t) {
|
|
27828
27826
|
let { retries: n, delay: r, initialDelay: i = 0 } = t, o = 0, s = () => {
|
|
27829
27827
|
if (o < n) {
|
|
27830
27828
|
try {
|
|
@@ -27839,18 +27837,18 @@ function nx(e, t) {
|
|
|
27839
27837
|
}
|
|
27840
27838
|
//#endregion
|
|
27841
27839
|
//#region src/core/cells/scrollCellIntoView.ts
|
|
27842
|
-
function
|
|
27840
|
+
function nx({ cellId: e, cell: t, isCodeHidden: n, codeFocus: r, variableName: i }) {
|
|
27843
27841
|
if (!t) return;
|
|
27844
27842
|
let o = document.getElementById(Jr.create(e));
|
|
27845
27843
|
if (!o) {
|
|
27846
27844
|
a.warn("scrollCellIntoView: element not found");
|
|
27847
27845
|
return;
|
|
27848
27846
|
}
|
|
27849
|
-
if (
|
|
27850
|
-
|
|
27847
|
+
if ($b()) {
|
|
27848
|
+
ex(o);
|
|
27851
27849
|
return;
|
|
27852
27850
|
}
|
|
27853
|
-
if (n)
|
|
27851
|
+
if (n) ex(o);
|
|
27854
27852
|
else {
|
|
27855
27853
|
Ei.promote(e);
|
|
27856
27854
|
let n = t.current?.editorView;
|
|
@@ -27859,7 +27857,7 @@ function rx({ cellId: e, cell: t, isCodeHidden: n, codeFocus: r, variableName: i
|
|
|
27859
27857
|
return;
|
|
27860
27858
|
}
|
|
27861
27859
|
if (n.hasFocus || !document.hasFocus()) return;
|
|
27862
|
-
if (
|
|
27860
|
+
if (tx(() => (n.focus(), n.hasFocus), {
|
|
27863
27861
|
retries: 5,
|
|
27864
27862
|
delay: 20
|
|
27865
27863
|
}), r === "top") n.dispatch({ selection: {
|
|
@@ -27879,14 +27877,14 @@ function rx({ cellId: e, cell: t, isCodeHidden: n, codeFocus: r, variableName: i
|
|
|
27879
27877
|
block: "nearest"
|
|
27880
27878
|
});
|
|
27881
27879
|
}
|
|
27882
|
-
function
|
|
27880
|
+
function rx() {
|
|
27883
27881
|
let e = document.getElementById("App");
|
|
27884
27882
|
e?.scrollTo({
|
|
27885
27883
|
top: e.scrollHeight,
|
|
27886
27884
|
behavior: "smooth"
|
|
27887
27885
|
});
|
|
27888
27886
|
}
|
|
27889
|
-
function
|
|
27887
|
+
function ix() {
|
|
27890
27888
|
document.getElementById("App")?.scrollTo({
|
|
27891
27889
|
top: 0,
|
|
27892
27890
|
behavior: "smooth"
|
|
@@ -27894,7 +27892,7 @@ function ax() {
|
|
|
27894
27892
|
}
|
|
27895
27893
|
//#endregion
|
|
27896
27894
|
//#region src/core/cells/types.ts
|
|
27897
|
-
function
|
|
27895
|
+
function ax({ id: e, name: t = "_", code: n = "", lastCodeRun: r = null, lastExecutionTime: i = null, edited: a = !1, config: o, serializedEditorState: s = null }) {
|
|
27898
27896
|
return {
|
|
27899
27897
|
id: e,
|
|
27900
27898
|
config: o || {
|
|
@@ -27911,7 +27909,7 @@ function ox({ id: e, name: t = "_", code: n = "", lastCodeRun: r = null, lastExe
|
|
|
27911
27909
|
serializedEditorState: s
|
|
27912
27910
|
};
|
|
27913
27911
|
}
|
|
27914
|
-
function
|
|
27912
|
+
function ox(e) {
|
|
27915
27913
|
return {
|
|
27916
27914
|
hide_code: !1,
|
|
27917
27915
|
disabled: !1,
|
|
@@ -27920,7 +27918,7 @@ function sx(e) {
|
|
|
27920
27918
|
...e
|
|
27921
27919
|
};
|
|
27922
27920
|
}
|
|
27923
|
-
function
|
|
27921
|
+
function sx(e) {
|
|
27924
27922
|
return {
|
|
27925
27923
|
outline: null,
|
|
27926
27924
|
output: null,
|
|
@@ -27939,7 +27937,7 @@ function cx(e) {
|
|
|
27939
27937
|
}
|
|
27940
27938
|
//#endregion
|
|
27941
27939
|
//#region src/core/cells/cells.ts
|
|
27942
|
-
function
|
|
27940
|
+
function cx(e) {
|
|
27943
27941
|
let t = {
|
|
27944
27942
|
column: 0,
|
|
27945
27943
|
hide_code: !1,
|
|
@@ -27949,14 +27947,14 @@ function lx(e) {
|
|
|
27949
27947
|
return {
|
|
27950
27948
|
...e,
|
|
27951
27949
|
cellData: {
|
|
27952
|
-
[Gr]:
|
|
27950
|
+
[Gr]: ax({
|
|
27953
27951
|
id: Gr,
|
|
27954
27952
|
config: t
|
|
27955
27953
|
}),
|
|
27956
27954
|
...e.cellData
|
|
27957
27955
|
},
|
|
27958
27956
|
cellRuntime: {
|
|
27959
|
-
[Gr]:
|
|
27957
|
+
[Gr]: sx(),
|
|
27960
27958
|
...e.cellRuntime
|
|
27961
27959
|
},
|
|
27962
27960
|
cellHandles: {
|
|
@@ -27965,8 +27963,8 @@ function lx(e) {
|
|
|
27965
27963
|
}
|
|
27966
27964
|
};
|
|
27967
27965
|
}
|
|
27968
|
-
function
|
|
27969
|
-
return
|
|
27966
|
+
function lx() {
|
|
27967
|
+
return cx({
|
|
27970
27968
|
cellIds: yi.from([]),
|
|
27971
27969
|
cellData: {},
|
|
27972
27970
|
cellRuntime: {},
|
|
@@ -27977,7 +27975,7 @@ function ux() {
|
|
|
27977
27975
|
untouchedNewCells: /* @__PURE__ */ new Set()
|
|
27978
27976
|
});
|
|
27979
27977
|
}
|
|
27980
|
-
var { reducer:
|
|
27978
|
+
var { reducer: ux, addMiddleware: dx, createActions: fx, useActions: px, valueAtom: $ } = y(lx, {
|
|
27981
27979
|
createNewCell: (e, t) => {
|
|
27982
27980
|
let { cellId: n, before: r, code: i, name: a, config: o, lastCodeRun: s = null, lastExecutionTime: c = null, autoFocus: l = !0, skipIfCodeExists: u = !1, hideCode: d = void 0 } = t, f, p;
|
|
27983
27981
|
if (u) {
|
|
@@ -27999,12 +27997,12 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
|
|
|
27999
27997
|
cellIds: e.cellIds.insertId(m, f, h),
|
|
28000
27998
|
cellData: {
|
|
28001
27999
|
...e.cellData,
|
|
28002
|
-
[m]:
|
|
28000
|
+
[m]: ax({
|
|
28003
28001
|
id: m,
|
|
28004
28002
|
code: i,
|
|
28005
28003
|
name: a,
|
|
28006
28004
|
lastCodeRun: s,
|
|
28007
|
-
config:
|
|
28005
|
+
config: ox({
|
|
28008
28006
|
...o,
|
|
28009
28007
|
...d != null && { hide_code: d }
|
|
28010
28008
|
}),
|
|
@@ -28014,7 +28012,7 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
|
|
|
28014
28012
|
},
|
|
28015
28013
|
cellRuntime: {
|
|
28016
28014
|
...e.cellRuntime,
|
|
28017
|
-
[m]:
|
|
28015
|
+
[m]: sx()
|
|
28018
28016
|
},
|
|
28019
28017
|
cellHandles: {
|
|
28020
28018
|
...e.cellHandles,
|
|
@@ -28116,10 +28114,10 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
|
|
|
28116
28114
|
let { cellId: r, where: i } = t, a = n.indexOfOrThrow(r), o;
|
|
28117
28115
|
o = i === "before" ? Nt(a - 1, 0, n.length - 1) : i === "after" ? Nt(a + 1, 0, n.length - 1) : a;
|
|
28118
28116
|
let s = n.atOrThrow(o);
|
|
28119
|
-
return
|
|
28117
|
+
return nx({
|
|
28120
28118
|
cellId: s,
|
|
28121
28119
|
cell: e.cellHandles[s],
|
|
28122
|
-
isCodeHidden:
|
|
28120
|
+
isCodeHidden: mx(e, s),
|
|
28123
28121
|
codeFocus: i === "after" ? "top" : "bottom",
|
|
28124
28122
|
variableName: void 0
|
|
28125
28123
|
}), e;
|
|
@@ -28128,25 +28126,25 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
|
|
|
28128
28126
|
let t = e.cellIds.getColumns().at(0);
|
|
28129
28127
|
if (t === void 0 || t.length === 0) return e;
|
|
28130
28128
|
let n = t.first();
|
|
28131
|
-
return
|
|
28129
|
+
return nx({
|
|
28132
28130
|
cellId: n,
|
|
28133
28131
|
cell: e.cellHandles[n],
|
|
28134
|
-
isCodeHidden:
|
|
28132
|
+
isCodeHidden: mx(e, n),
|
|
28135
28133
|
codeFocus: void 0,
|
|
28136
28134
|
variableName: void 0
|
|
28137
|
-
}),
|
|
28135
|
+
}), ix(), e;
|
|
28138
28136
|
},
|
|
28139
28137
|
focusBottomCell: (e) => {
|
|
28140
28138
|
let t = e.cellIds.getColumns().at(-1);
|
|
28141
28139
|
if (t === void 0 || t.length === 0) return e;
|
|
28142
28140
|
let n = t.last();
|
|
28143
|
-
return
|
|
28141
|
+
return nx({
|
|
28144
28142
|
cellId: n,
|
|
28145
28143
|
cell: e.cellHandles[n],
|
|
28146
|
-
isCodeHidden:
|
|
28144
|
+
isCodeHidden: mx(e, n),
|
|
28147
28145
|
codeFocus: void 0,
|
|
28148
28146
|
variableName: void 0
|
|
28149
|
-
}),
|
|
28147
|
+
}), rx(), e;
|
|
28150
28148
|
},
|
|
28151
28149
|
sendToTop: (e, t) => {
|
|
28152
28150
|
let n = e.cellIds.findWithId(t.cellId);
|
|
@@ -28175,11 +28173,11 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
|
|
|
28175
28173
|
cellIds: e.cellIds.addColumn(t.columnId, [n]),
|
|
28176
28174
|
cellData: {
|
|
28177
28175
|
...e.cellData,
|
|
28178
|
-
[n]:
|
|
28176
|
+
[n]: ax({ id: n })
|
|
28179
28177
|
},
|
|
28180
28178
|
cellRuntime: {
|
|
28181
28179
|
...e.cellRuntime,
|
|
28182
|
-
[n]:
|
|
28180
|
+
[n]: sx()
|
|
28183
28181
|
},
|
|
28184
28182
|
cellHandles: {
|
|
28185
28183
|
...e.cellHandles,
|
|
@@ -28263,7 +28261,7 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
|
|
|
28263
28261
|
scrollKey: n[0] ?? null
|
|
28264
28262
|
};
|
|
28265
28263
|
}
|
|
28266
|
-
let { name: n, serializedEditorState: r = { doc: "" }, column: i, index: a, isSetupCell: o, config: s } = t, c = o ? Kr : qr.create(), l =
|
|
28264
|
+
let { name: n, serializedEditorState: r = { doc: "" }, column: i, index: a, isSetupCell: o, config: s } = t, c = o ? Kr : qr.create(), l = ax({
|
|
28267
28265
|
id: c,
|
|
28268
28266
|
name: n,
|
|
28269
28267
|
code: r.doc,
|
|
@@ -28280,7 +28278,7 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
|
|
|
28280
28278
|
},
|
|
28281
28279
|
cellRuntime: {
|
|
28282
28280
|
...e.cellRuntime,
|
|
28283
|
-
[c]:
|
|
28281
|
+
[c]: sx()
|
|
28284
28282
|
},
|
|
28285
28283
|
cellHandles: {
|
|
28286
28284
|
...e.cellHandles,
|
|
@@ -28292,7 +28290,7 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
|
|
|
28292
28290
|
},
|
|
28293
28291
|
clearSerializedEditorState: (e, t) => {
|
|
28294
28292
|
let { cellId: n } = t;
|
|
28295
|
-
return
|
|
28293
|
+
return gx({
|
|
28296
28294
|
state: e,
|
|
28297
28295
|
cellId: n,
|
|
28298
28296
|
cellReducer: (e) => ({
|
|
@@ -28303,7 +28301,7 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
|
|
|
28303
28301
|
},
|
|
28304
28302
|
updateCellCode: (e, t) => {
|
|
28305
28303
|
let { cellId: n, code: r, formattingChange: i } = t;
|
|
28306
|
-
return e.cellData[n] ?
|
|
28304
|
+
return e.cellData[n] ? gx({
|
|
28307
28305
|
state: e,
|
|
28308
28306
|
cellId: n,
|
|
28309
28307
|
cellReducer: (e) => i ? {
|
|
@@ -28319,7 +28317,7 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
|
|
|
28319
28317
|
},
|
|
28320
28318
|
updateCellName: (e, t) => {
|
|
28321
28319
|
let { cellId: n, name: r } = t;
|
|
28322
|
-
return
|
|
28320
|
+
return gx({
|
|
28323
28321
|
state: e,
|
|
28324
28322
|
cellId: n,
|
|
28325
28323
|
cellReducer: (e) => ({
|
|
@@ -28330,23 +28328,23 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
|
|
|
28330
28328
|
},
|
|
28331
28329
|
updateCellConfig: (e, t) => {
|
|
28332
28330
|
let { cellId: n, config: r } = t;
|
|
28333
|
-
return
|
|
28331
|
+
return gx({
|
|
28334
28332
|
state: e,
|
|
28335
28333
|
cellId: n,
|
|
28336
28334
|
cellReducer: (e) => ({
|
|
28337
28335
|
...e,
|
|
28338
|
-
config:
|
|
28336
|
+
config: ox({
|
|
28339
28337
|
...e.config,
|
|
28340
28338
|
...r
|
|
28341
28339
|
})
|
|
28342
28340
|
})
|
|
28343
28341
|
});
|
|
28344
28342
|
},
|
|
28345
|
-
prepareForRun: (e, t) =>
|
|
28346
|
-
state:
|
|
28343
|
+
prepareForRun: (e, t) => gx({
|
|
28344
|
+
state: hx({
|
|
28347
28345
|
state: e,
|
|
28348
28346
|
cellId: t.cellId,
|
|
28349
|
-
cellReducer: (e) =>
|
|
28347
|
+
cellReducer: (e) => cb(e)
|
|
28350
28348
|
}),
|
|
28351
28349
|
cellId: t.cellId,
|
|
28352
28350
|
cellReducer: (e) => ({
|
|
@@ -28356,12 +28354,12 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
|
|
|
28356
28354
|
})
|
|
28357
28355
|
}),
|
|
28358
28356
|
handleCellMessage: (e, t) => {
|
|
28359
|
-
let n = t.cell_id, r =
|
|
28357
|
+
let n = t.cell_id, r = hx({
|
|
28360
28358
|
state: e,
|
|
28361
28359
|
cellId: n,
|
|
28362
|
-
cellReducer: (e) =>
|
|
28360
|
+
cellReducer: (e) => sb(e, t)
|
|
28363
28361
|
});
|
|
28364
|
-
return t.status === "queued" && (r =
|
|
28362
|
+
return t.status === "queued" && (r = gx({
|
|
28365
28363
|
state: r,
|
|
28366
28364
|
cellId: n,
|
|
28367
28365
|
cellReducer: (e) => ({
|
|
@@ -28371,7 +28369,7 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
|
|
|
28371
28369
|
})
|
|
28372
28370
|
})), {
|
|
28373
28371
|
...r,
|
|
28374
|
-
cellLogs: [...r.cellLogs, ...
|
|
28372
|
+
cellLogs: [...r.cellLogs, ...Xb(t)]
|
|
28375
28373
|
};
|
|
28376
28374
|
},
|
|
28377
28375
|
addLogs: (e, t) => ({
|
|
@@ -28381,7 +28379,7 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
|
|
|
28381
28379
|
setCellIds: (e, t) => {
|
|
28382
28380
|
if (Le(e.cellIds.inOrderIds, t.cellIds)) return e;
|
|
28383
28381
|
let n = { ...e.cellData }, r = { ...e.cellRuntime }, i = { ...e.cellHandles };
|
|
28384
|
-
for (let a of t.cellIds) a in e.cellData || (n[a] =
|
|
28382
|
+
for (let a of t.cellIds) a in e.cellData || (n[a] = ax({ id: a })), a in e.cellRuntime || (r[a] = sx()), a in e.cellHandles || (i[a] = (0, F.createRef)());
|
|
28385
28383
|
return {
|
|
28386
28384
|
...e,
|
|
28387
28385
|
cellIds: yi.fromWithPreviousShape(t.cellIds, e.cellIds),
|
|
@@ -28400,7 +28398,7 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
|
|
|
28400
28398
|
setCellCodes: (e, t) => {
|
|
28401
28399
|
N(t.codes.length === t.ids.length, "Expected codes and ids to have the same length");
|
|
28402
28400
|
let n = { ...e }, r = ({ cell: e, code: r, cellId: i, name: a, config: o }) => {
|
|
28403
|
-
if (!e) return
|
|
28401
|
+
if (!e) return ax({
|
|
28404
28402
|
id: i,
|
|
28405
28403
|
code: r,
|
|
28406
28404
|
name: a,
|
|
@@ -28417,9 +28415,9 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
|
|
|
28417
28415
|
...a !== void 0 && { name: a },
|
|
28418
28416
|
...o !== void 0 && { config: o }
|
|
28419
28417
|
};
|
|
28420
|
-
if (!
|
|
28418
|
+
if (!Yy() || !Xy(i)) {
|
|
28421
28419
|
let e = n.cellHandles[i].current;
|
|
28422
|
-
e?.editorViewOrNull &&
|
|
28420
|
+
e?.editorViewOrNull && Ry(e.editorViewOrNull, r);
|
|
28423
28421
|
}
|
|
28424
28422
|
return {
|
|
28425
28423
|
...e,
|
|
@@ -28452,7 +28450,7 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
|
|
|
28452
28450
|
},
|
|
28453
28451
|
setStdinResponse: (e, t) => {
|
|
28454
28452
|
let { cellId: n, response: r, outputIndex: i } = t;
|
|
28455
|
-
return
|
|
28453
|
+
return hx({
|
|
28456
28454
|
state: e,
|
|
28457
28455
|
cellId: n,
|
|
28458
28456
|
cellReducer: (e) => {
|
|
@@ -28473,11 +28471,11 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
|
|
|
28473
28471
|
},
|
|
28474
28472
|
setCells: (e, t) => {
|
|
28475
28473
|
let n = Object.fromEntries(t.map((e) => [e.id, e])), r = _e(), i = (t) => {
|
|
28476
|
-
if (!r) return
|
|
28474
|
+
if (!r) return sx();
|
|
28477
28475
|
let n = e.cellRuntime[t];
|
|
28478
|
-
return n && (n.output != null || n.consoleOutputs.length > 0) ? n :
|
|
28476
|
+
return n && (n.output != null || n.consoleOutputs.length > 0) ? n : sx();
|
|
28479
28477
|
}, a = Object.fromEntries(t.map((e) => [e.id, i(e.id)]));
|
|
28480
|
-
return
|
|
28478
|
+
return cx({
|
|
28481
28479
|
...e,
|
|
28482
28480
|
cellIds: yi.fromIdsAndColumns(t.map((e) => [e.id, e.config.column])),
|
|
28483
28481
|
cellData: n,
|
|
@@ -28496,11 +28494,11 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
|
|
|
28496
28494
|
cellIds: e.cellIds.insertId(t, a.id, s),
|
|
28497
28495
|
cellData: {
|
|
28498
28496
|
...e.cellData,
|
|
28499
|
-
[t]:
|
|
28497
|
+
[t]: ax({ id: t })
|
|
28500
28498
|
},
|
|
28501
28499
|
cellRuntime: {
|
|
28502
28500
|
...e.cellRuntime,
|
|
28503
|
-
[t]:
|
|
28501
|
+
[t]: sx()
|
|
28504
28502
|
},
|
|
28505
28503
|
cellHandles: {
|
|
28506
28504
|
...e.cellHandles,
|
|
@@ -28516,11 +28514,11 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
|
|
|
28516
28514
|
cellIds: e.cellIds.insertId(t, a.id, 0),
|
|
28517
28515
|
cellData: {
|
|
28518
28516
|
...e.cellData,
|
|
28519
|
-
[t]:
|
|
28517
|
+
[t]: ax({ id: t })
|
|
28520
28518
|
},
|
|
28521
28519
|
cellRuntime: {
|
|
28522
28520
|
...e.cellRuntime,
|
|
28523
|
-
[t]:
|
|
28521
|
+
[t]: sx()
|
|
28524
28522
|
},
|
|
28525
28523
|
cellHandles: {
|
|
28526
28524
|
...e.cellHandles,
|
|
@@ -28532,10 +28530,10 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
|
|
|
28532
28530
|
if ((c || l) && i) return e;
|
|
28533
28531
|
if (s >= 0 && s < a.length) {
|
|
28534
28532
|
let t = a.atOrThrow(s);
|
|
28535
|
-
|
|
28533
|
+
nx({
|
|
28536
28534
|
cellId: t,
|
|
28537
28535
|
cell: e.cellHandles[t],
|
|
28538
|
-
isCodeHidden:
|
|
28536
|
+
isCodeHidden: mx(e, t),
|
|
28539
28537
|
codeFocus: r ? "bottom" : "top",
|
|
28540
28538
|
variableName: void 0
|
|
28541
28539
|
});
|
|
@@ -28568,10 +28566,10 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
|
|
|
28568
28566
|
let t = e.scrollKey;
|
|
28569
28567
|
if (t === null) return e;
|
|
28570
28568
|
let n = e.cellIds.findWithId(t), r = n.indexOfOrThrow(t), i = r === n.length - 1 ? n.last() : n.atOrThrow(r);
|
|
28571
|
-
return
|
|
28569
|
+
return nx({
|
|
28572
28570
|
cellId: i,
|
|
28573
28571
|
cell: e.cellHandles[i],
|
|
28574
|
-
isCodeHidden:
|
|
28572
|
+
isCodeHidden: mx(e, i),
|
|
28575
28573
|
codeFocus: void 0,
|
|
28576
28574
|
variableName: void 0
|
|
28577
28575
|
}), {
|
|
@@ -28586,7 +28584,7 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
|
|
|
28586
28584
|
cellLogs: []
|
|
28587
28585
|
}),
|
|
28588
28586
|
collapseCell: (e, t) => {
|
|
28589
|
-
let { cellId: n } = t, r = e.cellIds.findWithId(n), i = r.topLevelIds.map((t) => e.cellRuntime[t].outline), a =
|
|
28587
|
+
let { cellId: n } = t, r = e.cellIds.findWithId(n), i = r.topLevelIds.map((t) => e.cellRuntime[t].outline), a = Jy(r.indexOfOrThrow(n), i);
|
|
28590
28588
|
if (!a) return e;
|
|
28591
28589
|
let o = r.atOrThrow(a[1]);
|
|
28592
28590
|
return {
|
|
@@ -28608,7 +28606,7 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
|
|
|
28608
28606
|
cellIds: e.cellIds.transformAll((t) => {
|
|
28609
28607
|
let n = t.topLevelIds.map((t) => e.cellRuntime[t].outline), r = [...t.nodes], i = /* @__PURE__ */ new Map(), a = [], o = r.length - 1;
|
|
28610
28608
|
for (; o >= 0;) {
|
|
28611
|
-
let e =
|
|
28609
|
+
let e = Jy(o, n);
|
|
28612
28610
|
if (e) {
|
|
28613
28611
|
let n = o, r = e[1], s = i.get(r) ?? r;
|
|
28614
28612
|
i.set(r, n);
|
|
@@ -28638,8 +28636,8 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
|
|
|
28638
28636
|
splitCell: (e, t) => {
|
|
28639
28637
|
let { cellId: n } = t, r = e.cellIds.findWithId(n), i = r.indexOfOrThrow(n), a = e.cellData[n], o = e.cellHandles[n].current;
|
|
28640
28638
|
if (o?.editorView == null) return e;
|
|
28641
|
-
let { beforeCursorCode: s, afterCursorCode: c } =
|
|
28642
|
-
|
|
28639
|
+
let { beforeCursorCode: s, afterCursorCode: c } = zy(o.editorView);
|
|
28640
|
+
Ry(o.editorView, s);
|
|
28643
28641
|
let l = qr.create();
|
|
28644
28642
|
return {
|
|
28645
28643
|
...e,
|
|
@@ -28651,7 +28649,7 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
|
|
|
28651
28649
|
code: s,
|
|
28652
28650
|
edited: !!s && s.trim() !== a.lastCodeRun?.trim()
|
|
28653
28651
|
},
|
|
28654
|
-
[l]:
|
|
28652
|
+
[l]: ax({
|
|
28655
28653
|
id: l,
|
|
28656
28654
|
code: c,
|
|
28657
28655
|
edited: !!c
|
|
@@ -28664,7 +28662,7 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
|
|
|
28664
28662
|
output: null,
|
|
28665
28663
|
consoleOutputs: []
|
|
28666
28664
|
},
|
|
28667
|
-
[l]:
|
|
28665
|
+
[l]: sx()
|
|
28668
28666
|
},
|
|
28669
28667
|
cellHandles: {
|
|
28670
28668
|
...e.cellHandles,
|
|
@@ -28675,7 +28673,7 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
|
|
|
28675
28673
|
},
|
|
28676
28674
|
undoSplitCell: (e, t) => {
|
|
28677
28675
|
let { cellId: n, snapshot: r } = t, i = e.cellData[n], a = e.cellHandles[n].current;
|
|
28678
|
-
return a?.editorView == null ? e : (
|
|
28676
|
+
return a?.editorView == null ? e : (Ry(a.editorView, r), {
|
|
28679
28677
|
...e,
|
|
28680
28678
|
cellIds: e.cellIds.transformWithCellId(n, (e) => {
|
|
28681
28679
|
let t = e.indexOfOrThrow(n) + 1;
|
|
@@ -28702,7 +28700,7 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
|
|
|
28702
28700
|
},
|
|
28703
28701
|
clearCellOutput: (e, t) => {
|
|
28704
28702
|
let { cellId: n } = t;
|
|
28705
|
-
return
|
|
28703
|
+
return hx({
|
|
28706
28704
|
state: e,
|
|
28707
28705
|
cellId: n,
|
|
28708
28706
|
cellReducer: (e) => ({
|
|
@@ -28714,7 +28712,7 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
|
|
|
28714
28712
|
},
|
|
28715
28713
|
clearCellConsoleOutput: (e, t) => {
|
|
28716
28714
|
let { cellId: n } = t;
|
|
28717
|
-
return
|
|
28715
|
+
return hx({
|
|
28718
28716
|
state: e,
|
|
28719
28717
|
cellId: n,
|
|
28720
28718
|
cellReducer: (e) => ({
|
|
@@ -28745,7 +28743,7 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
|
|
|
28745
28743
|
cellIds: e.cellIds.insertId(Kr, e.cellIds.atOrThrow(0).id, 0),
|
|
28746
28744
|
cellData: {
|
|
28747
28745
|
...e.cellData,
|
|
28748
|
-
[Kr]:
|
|
28746
|
+
[Kr]: ax({
|
|
28749
28747
|
id: Kr,
|
|
28750
28748
|
name: Kr,
|
|
28751
28749
|
code: n,
|
|
@@ -28754,7 +28752,7 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
|
|
|
28754
28752
|
},
|
|
28755
28753
|
cellRuntime: {
|
|
28756
28754
|
...e.cellRuntime,
|
|
28757
|
-
[Kr]:
|
|
28755
|
+
[Kr]: sx()
|
|
28758
28756
|
},
|
|
28759
28757
|
cellHandles: {
|
|
28760
28758
|
...e.cellHandles,
|
|
@@ -28764,11 +28762,11 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
|
|
|
28764
28762
|
};
|
|
28765
28763
|
}
|
|
28766
28764
|
});
|
|
28767
|
-
|
|
28768
|
-
function
|
|
28765
|
+
dx(Pb);
|
|
28766
|
+
function mx(e, t) {
|
|
28769
28767
|
return !!e.cellData[t].config.hide_code && !e.untouchedNewCells.has(t);
|
|
28770
28768
|
}
|
|
28771
|
-
function
|
|
28769
|
+
function hx({ state: e, cellId: t, cellReducer: n }) {
|
|
28772
28770
|
return t in e.cellRuntime ? {
|
|
28773
28771
|
...e,
|
|
28774
28772
|
cellRuntime: {
|
|
@@ -28777,7 +28775,7 @@ function gx({ state: e, cellId: t, cellReducer: n }) {
|
|
|
28777
28775
|
}
|
|
28778
28776
|
} : (a.warn(`Cell ${t} not found in state`), e);
|
|
28779
28777
|
}
|
|
28780
|
-
function
|
|
28778
|
+
function gx({ state: e, cellId: t, cellReducer: n }) {
|
|
28781
28779
|
return t in e.cellData ? {
|
|
28782
28780
|
...e,
|
|
28783
28781
|
cellData: {
|
|
@@ -28786,11 +28784,11 @@ function _x({ state: e, cellId: t, cellReducer: n }) {
|
|
|
28786
28784
|
}
|
|
28787
28785
|
} : (a.warn(`Cell ${t} not found in state`), e);
|
|
28788
28786
|
}
|
|
28789
|
-
var
|
|
28790
|
-
j.set($, (t) =>
|
|
28791
|
-
}).addLogs,
|
|
28787
|
+
var _x = fx((e) => {
|
|
28788
|
+
j.set($, (t) => ux(t, e));
|
|
28789
|
+
}).addLogs, vx = A((e) => e($).cellIds), yx = A((e) => e(vx).hasOnlyOneId());
|
|
28792
28790
|
A((e) => Kc(e($)).length > 0), A((e) => qc(e($)).length > 0), A((e) => Jc(e($))), A((e) => Yc(e($))), A((e) => Wc(e($)));
|
|
28793
|
-
var
|
|
28791
|
+
var bx = A((e) => {
|
|
28794
28792
|
let { cellIds: t, cellRuntime: n, cellData: r } = e($);
|
|
28795
28793
|
return t.inOrderIds.map((e) => {
|
|
28796
28794
|
let t = n[e], { name: i } = r[e];
|
|
@@ -28808,21 +28806,23 @@ var xx = A((e) => {
|
|
|
28808
28806
|
}
|
|
28809
28807
|
return null;
|
|
28810
28808
|
}).filter(Boolean);
|
|
28811
|
-
}),
|
|
28812
|
-
let
|
|
28813
|
-
return
|
|
28809
|
+
}), xx = A((e) => {
|
|
28810
|
+
let t = e(vx), n = e(Ox);
|
|
28811
|
+
return Ky(t.inOrderIds.map((e) => n[e].outline));
|
|
28814
28812
|
});
|
|
28815
|
-
A((e) => e(
|
|
28816
|
-
var
|
|
28813
|
+
A((e) => e(bx).length);
|
|
28814
|
+
var Sx = Ie(A((e) => {
|
|
28817
28815
|
let { cellIds: t, cellData: n } = e($);
|
|
28818
28816
|
return Pt.fromEntries(t.inOrderIds.map((e) => [e, n[e]?.name]));
|
|
28819
28817
|
}));
|
|
28820
28818
|
A((e) => e($).scrollKey);
|
|
28821
|
-
var
|
|
28819
|
+
var Cx = () => Me(vx), wx = () => Me(Sx), Tx = () => j.get($), Ex = () => j.get($).cellIds, Dx = () => {
|
|
28822
28820
|
let { cellIds: e, cellData: t } = j.get($);
|
|
28823
28821
|
return e.inOrderIds.map((e) => t[e]?.name).filter(Boolean);
|
|
28824
28822
|
};
|
|
28825
|
-
br(pr($, (e) => e.cellIds.inOrderIds.map((t) => e.cellData[t])))
|
|
28823
|
+
br(pr($, (e) => e.cellIds.inOrderIds.map((t) => e.cellData[t])));
|
|
28824
|
+
var Ox = A((e) => e($).cellRuntime);
|
|
28825
|
+
A((e) => Hc(e($))), A((e) => {
|
|
28826
28826
|
let { cellRuntime: t } = e($);
|
|
28827
28827
|
return Object.entries(t).every(([e, t]) => t.status !== "running" || e === "__scratch__");
|
|
28828
28828
|
}), A((e) => Uc(e($)));
|
|
@@ -28838,7 +28838,7 @@ var Px = (e) => {
|
|
|
28838
28838
|
}, Fx = (e) => (Ei.promote(e), Px(e));
|
|
28839
28839
|
function Ix(e) {
|
|
28840
28840
|
let t = (0, Tr.c)(2), n;
|
|
28841
|
-
return t[0] === e ? n = t[1] : (n = e === void 0 ? {} : e, t[0] = e, t[1] = n),
|
|
28841
|
+
return t[0] === e ? n = t[1] : (n = e === void 0 ? {} : e, t[0] = e, t[1] = n), px(n);
|
|
28842
28842
|
}
|
|
28843
28843
|
//#endregion
|
|
28844
28844
|
//#region src/core/errors/error-entries.ts
|
|
@@ -28871,7 +28871,7 @@ function Vx(e) {
|
|
|
28871
28871
|
if (!o || !Vc(o.mimetype)) continue;
|
|
28872
28872
|
let s = Lx(o);
|
|
28873
28873
|
if (!s) continue;
|
|
28874
|
-
let c =
|
|
28874
|
+
let c = hv(r[a].name, e), l = r[a].lastCodeRun ?? r[a].code;
|
|
28875
28875
|
i.push({
|
|
28876
28876
|
cellId: a,
|
|
28877
28877
|
cellName: c,
|
|
@@ -28887,11 +28887,11 @@ function Hx(e) {
|
|
|
28887
28887
|
}
|
|
28888
28888
|
function Ux(e) {
|
|
28889
28889
|
let t = Hx(e);
|
|
28890
|
-
return "traceback" in e && e.traceback && (t += `\n\nTraceback:\n${
|
|
28890
|
+
return "traceback" in e && e.traceback && (t += `\n\nTraceback:\n${Gb(e.traceback)}`), t;
|
|
28891
28891
|
}
|
|
28892
28892
|
function Wx(e) {
|
|
28893
28893
|
let t = [e.cellName];
|
|
28894
|
-
return e.tracebackHtml && t.push(
|
|
28894
|
+
return e.tracebackHtml && t.push(Gb(e.tracebackHtml)), e.errorData.length > 0 && t.push(e.errorData.map(Ux).join("\n\n")), t.join("\n\n");
|
|
28895
28895
|
}
|
|
28896
28896
|
//#endregion
|
|
28897
|
-
export {
|
|
28897
|
+
export { bf as $, cr as $t, By as A, Gc as At, pv as B, ei as Bt, Kb as C, Fl as Ct, lb as D, el as Dt, jb as E, nl as Et, bv as F, ui as Ft, wm as G, Xr as Gt, uv as H, Zr as Ht, xv as I, ci as It, Np as J, Vr as Jt, Cm as K, Yr as Kt, hv as L, li as Lt, Wv as M, $c as Mt, Lv as N, Mc as Nt, ub as O, tl as Ot, Iv as P, hi as Pt, Vf as Q, Er as Qt, mv as R, ri as Rt, ax as S, Al as St, Rb as T, hl as Tt, U_ as U, Jr as Ut, dv as V, ti as Vt, Vm as W, Gr as Wt, np as X, Ir as Xt, yp as Y, Fr as Yt, Hf as Z, Nr as Zt, kx as _, Kl as _t, Ax as a, Nn as an, zd as at, Cx as b, Bl as bt, Fx as c, En as cn, Cd as ct, Ex as d, Sn as dn, dd as dt, wr as en, sf as et, Tx as f, xn as fn, cd as ft, xx as g, pn as gn, Wl as gt, $ as h, hn, Jl as ht, Vx as i, Pn as in, Hd as it, Hv as j, Qc as jt, Gy as k, Zc as kt, Px as l, wn as ln, vd as lt, lx as m, gn as mn, ql as mt, Wx as n, Bn as nn, Xd as nt, vx as o, jn as on, Td as ot, yx as p, yn as pn, hu as pt, Pp as q, Br as qt, Ux as r, Ln as rn, Jd as rt, fx as s, kn as sn, Ed as st, Hx as t, pr as tn, Qd as tt, Dx as u, Cn as un, gd as ut, ux as v, Gl as vt, Gb as w, _l as wt, wx as x, Pl as xt, Ix as y, Hl as yt, gv as z, $r as zt };
|