@marimo-team/islands 0.25.3-dev170 → 0.25.3-dev173
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-BbSXV-Xa.js → ConnectedDataExplorerComponent-Le_OBfmt.js} +9 -9
- package/dist/{ErrorBoundary-NE86qEWZ.js → ErrorBoundary-wT3f3iJ1.js} +8 -8
- package/dist/{abnfDiagram-VCTEODGH-D7n07nXf.js → abnfDiagram-VCTEODGH-Tf1ghyQQ.js} +2 -2
- package/dist/{any-language-editor-3E24SnCV.js → any-language-editor-B92WMzoC.js} +2 -2
- package/dist/{architectureDiagram-5GKGNRK7-D6CjRib5.js → architectureDiagram-5GKGNRK7-xlnbTG0T.js} +1 -1
- package/dist/{chat-ui-CC7GekpG.js → chat-ui-CuORr6fL.js} +70 -70
- package/dist/{check-SpOMoCLP.js → check-C9Mp9eCK.js} +1 -1
- package/dist/{chunk-IMKFNOWR-6dtPz7uS.js → chunk-IMKFNOWR-Cmd4a5jy.js} +1 -1
- package/dist/{chunk-SHT3W25Y-BwnFNKDA.js → chunk-SHT3W25Y-mSNp-WpO.js} +1 -1
- package/dist/{chunk-SVP7TREG-D2eV4vBJ.js → chunk-SVP7TREG-CWC49D8X.js} +1 -1
- package/dist/{chunk-TICWLB2K-BDs4-_-r.js → chunk-TICWLB2K-De9FINtG.js} +1 -1
- package/dist/{classDiagram-ZZMXUADV-DCJnf_8v.js → classDiagram-ZZMXUADV-DweTkYdp.js} +2 -2
- package/dist/{classDiagram-v2-VYDZK3BY-BOmSzPBD.js → classDiagram-v2-VYDZK3BY-A6MR2TiE.js} +2 -2
- package/dist/{code-visibility-Bzvc6ajl.js → code-visibility-ZReaeMaF.js} +5 -5
- package/dist/{common-Ciw4zkh2.js → common-DCevHg1m.js} +231 -231
- package/dist/{copy-icon-C1trdvVt.js → copy-icon-De584pZ4.js} +2 -2
- package/dist/{cynefinDiagram-5FMLGOSQ-Bln_Soky.js → cynefinDiagram-5FMLGOSQ-BSvo5le-.js} +1 -1
- package/dist/{dagre-GXQ25YYZ-D-nf7WzW.js → dagre-GXQ25YYZ-tXRQslO6.js} +1 -1
- package/dist/{data-grid-overlay-editor-AQREmxI7.js → data-grid-overlay-editor-CTC-bJus.js} +1 -1
- package/dist/{diagram-S7CK7UJ4-PsgSMkY2.js → diagram-S7CK7UJ4-r3t5VtwI.js} +1 -1
- package/dist/{diagram-UQ7AKVKN-DfwfUuSw.js → diagram-UQ7AKVKN-qgbC8YnT.js} +1 -1
- package/dist/{diagram-VX7I27RA-C9_e-oMc.js → diagram-VX7I27RA-CiHxEwtp.js} +1 -1
- package/dist/{diagram-Z3DM3KII-CWLa5tuY.js → diagram-Z3DM3KII-D95u15Ev.js} +1 -1
- package/dist/{dialog-DgeqyrEZ.js → dialog-DVRfQuhD.js} +24 -24
- package/dist/{dropdown-menu-B6ftyzOg.js → dropdown-menu-DCMbbQ35.js} +691 -691
- package/dist/{ebnfDiagram-PWID7BFC-B1QRM58v.js → ebnfDiagram-PWID7BFC-P7e4bryK.js} +2 -2
- package/dist/{erDiagram-RLTQ6QDP-DJK_FqvW.js → erDiagram-RLTQ6QDP-CUHZcmRj.js} +1 -1
- package/dist/{error-banner-D40pmfQQ.js → error-banner-DxJ3s8YO.js} +57 -57
- package/dist/{error-entries-DgK3wUJR.js → error-entries-CmWMEsY_.js} +984 -961
- package/dist/{feedback-button-8a6SETmT.js → feedback-button-DwXkmewo.js} +29 -29
- package/dist/{flowDiagram-HODETNUW-Uxc25XSJ.js → flowDiagram-HODETNUW-BGZ95AzI.js} +2 -2
- package/dist/{formats-DQCyPd5Z.js → formats-DI7HEVv7.js} +1 -1
- package/dist/{glide-data-editor-B70oke_v.js → glide-data-editor-BlmcP-lw.js} +10 -10
- package/dist/{glide-utils-Dz_F4pAY.js → glide-utils-D98laidb.js} +2 -2
- package/dist/{globals-Cxd5hNlI.js → globals-BdRitZ4p.js} +3 -3
- package/dist/{html-to-image-D4yG5Ru0.js → html-to-image-bpiQh7ND.js} +55 -55
- package/dist/{infoDiagram-27XIBGKW-DmjxqwL0.js → infoDiagram-27XIBGKW-BF0YX70D.js} +1 -1
- package/dist/{ishikawaDiagram-5VMMS53U-NgCLHqQi.js → ishikawaDiagram-5VMMS53U-_itsAAn-.js} +1 -1
- package/dist/{kanban-definition-UXKFOSKX-CZaG-iam.js → kanban-definition-UXKFOSKX-VNW2Beqh.js} +1 -1
- package/dist/{label-D9_-zSg-.js → label-Qvw1E97W.js} +1 -1
- package/dist/main.js +8159 -6508
- package/dist/{mermaid-CSvw7c71.js → mermaid-CZ6FrClS.js} +35 -35
- package/dist/{mindmap-definition-YA3MSWOX-DJYQBDH_.js → mindmap-definition-YA3MSWOX-DR4ripvd.js} +1 -1
- package/dist/{number-overlay-editor-ChK-SKUk.js → number-overlay-editor-DQG-hFHT.js} +1 -1
- package/dist/{pegDiagram-XKGWAZYB-CHKO_dAe.js → pegDiagram-XKGWAZYB-CFr3XlGl.js} +2 -2
- package/dist/{pieDiagram-E7YTZNPT-DVevbMAo.js → pieDiagram-E7YTZNPT-j91XYSLY.js} +1 -1
- package/dist/{process-output-DxvBAeL3.js → process-output-BzloOI7F.js} +4 -4
- package/dist/{railroadDiagram-O6MQD6OU-Detj1kcB.js → railroadDiagram-O6MQD6OU-Cd47ZV9E.js} +2 -2
- package/dist/{requirementDiagram-BXWQKSXE-BLFD0T_Z.js → requirementDiagram-BXWQKSXE-eJH6gLtX.js} +1 -1
- package/dist/{reveal-component-CXMXeDZD.js → reveal-component-D3r3vSTK.js} +9 -9
- package/dist/{select-CkF_GBxO.js → select-2KOiReNY.js} +324 -324
- package/dist/{sequenceDiagram-WJ2MYXX4-BZBgatQV.js → sequenceDiagram-WJ2MYXX4-DdfFEIrm.js} +1 -1
- package/dist/{spec-Mnkn3XEr.js → spec-h69nC3SI.js} +4 -4
- package/dist/{stateDiagram-D77RDMKH-4BZW9-6_.js → stateDiagram-D77RDMKH-DkjDvip8.js} +2 -2
- package/dist/{stateDiagram-v2-MP3YSRHH-C4sKC8Iq.js → stateDiagram-v2-MP3YSRHH-DBHACnOo.js} +2 -2
- package/dist/{swimlanes-42K2YHIH-SL5yeGe2.js → swimlanes-42K2YHIH-ogImlOmp.js} +1 -1
- package/dist/{swimlanesDiagram-VR7AAH4N-DqPmAYUv.js → swimlanesDiagram-VR7AAH4N-D6x-zsci.js} +2 -2
- package/dist/{timeline-definition-24CTP7MA-BfXUMWkq.js → timeline-definition-24CTP7MA-DQpLtsHD.js} +1 -1
- package/dist/{toDate-TMubKIVL.js → toDate-CDzoofJo.js} +2 -2
- package/dist/{toast-Btbve3Lm.js → toast-B5t9o6s_.js} +47 -47
- package/dist/{tooltip-CJ4Rqasp.js → tooltip-s4zZxwKe.js} +67 -67
- package/dist/{use-restore-focus-CmGwRNId.js → use-restore-focus-BgDTd2tc.js} +1 -1
- package/dist/{useAsyncData-DjMGFzFy.js → useAsyncData-Bn8SxUqM.js} +1 -1
- package/dist/{useDateFormatter-eCL_SdeG.js → useDateFormatter-D3Tkfzej.js} +2 -2
- package/dist/{useDeepCompareMemoize-BQR5TJot.js → useDeepCompareMemoize-CC2tnPCk.js} +1 -1
- package/dist/{useLifecycle-C_GvKWbQ.js → useLifecycle-BJlxHqWa.js} +2 -2
- package/dist/{useTheme-Bns2gJZ6.js → useTheme-DMfQYmlG.js} +85 -85
- package/dist/{vega-component-BsVptuhz.js → vega-component-CovWHi60.js} +7 -7
- package/dist/{vennDiagram-4TSXK5OY-CH65znGa.js → vennDiagram-4TSXK5OY-BD-SL_vq.js} +1 -1
- package/dist/{wardleyDiagram-VM6X3IG4-z9pWKb2_.js → wardleyDiagram-VM6X3IG4-BDgJV4ah.js} +1 -1
- package/dist/{xychartDiagram-S5SC5T6Z-MxyaWjjq.js → xychartDiagram-S5SC5T6Z-1hIHN6Rl.js} +1 -1
- package/package.json +1 -1
- package/src/core/cells/__tests__/cells.test.ts +80 -48
- package/src/core/cells/__tests__/document.test.ts +37 -3
- package/src/core/cells/cells.ts +38 -34
- package/src/core/cells/document.ts +31 -2
- package/src/core/edit-app.tsx +7 -4
- package/src/core/islands/__tests__/bootstrap.test.ts +56 -0
- package/src/core/islands/__tests__/bridge.test.ts +42 -0
- package/src/core/islands/bootstrap.ts +24 -1
- package/src/core/islands/bridge.ts +46 -3
- package/src/core/kernel/__tests__/handlers.test.ts +7 -153
- package/src/core/kernel/handlers.ts +18 -59
- package/src/core/run-app.tsx +1 -7
- package/src/core/session/__tests__/useNotebookSession.hook.test.tsx +0 -6
- package/src/core/session/useNotebookSession.tsx +24 -35
|
@@ -2,18 +2,18 @@ import { a as e, i as t, n, r, t as i } from "./rolldown-runtime-Cb76FRpK.js";
|
|
|
2
2
|
import { g as a, h as o, o as s, p as c, t as l } from "./button-BQRdqQi1.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, i as m, m 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, a as ee, b as te, c as ne, i as re, n as ie, o as ae, r as oe, s as se, t as ce } from "./select-
|
|
10
|
-
import { C as le, S as ue, b as de, g as fe, h as pe, o as me, t as E, x as he } from "./toDate-
|
|
5
|
+
import { i as f } from "./copy-icon-De584pZ4.js";
|
|
6
|
+
import { d as p, i as m, m as h, t as g } from "./tooltip-s4zZxwKe.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-BJlxHqWa.js";
|
|
8
|
+
import { t as w } from "./check-C9Mp9eCK.js";
|
|
9
|
+
import { C as T, a as ee, b as te, c as ne, i as re, n as ie, o as ae, r as oe, s as se, t as ce } from "./select-2KOiReNY.js";
|
|
10
|
+
import { C as le, S as ue, b as de, g as fe, h as pe, o as me, t as E, x as he } from "./toDate-CDzoofJo.js";
|
|
11
11
|
import { t as ge } from "./react-dom-DUmH0GXv.js";
|
|
12
12
|
import { t as _e } from "./jsx-runtime-3BD1kT0s.js";
|
|
13
|
-
import { C as ve,
|
|
14
|
-
import { c as k, n as Oe } from "./toast-
|
|
13
|
+
import { C as ve, Et as ye, L as be, N as xe, Ot as Se, P as D, Tt as O, k as Ce, kt as we, w as Te, wt as Ee, z as De } from "./use-restore-focus-BgDTd2tc.js";
|
|
14
|
+
import { c as k, n as Oe } from "./toast-B5t9o6s_.js";
|
|
15
15
|
import { t as ke } from "./debounce-C3jyATpc.js";
|
|
16
|
-
import { C as Ae, D as A, S as je, _ as j, b as Me, c as Ne, g as Pe, l as Fe, t as Ie, w as Le, x as Re, y as ze } from "./useTheme-
|
|
16
|
+
import { C as Ae, D as A, S as je, _ as j, b as Me, c as Ne, g as Pe, l as Fe, t as Ie, w as Le, x as Re, y as ze } from "./useTheme-DMfQYmlG.js";
|
|
17
17
|
import { $ as Be, At as Ve, B as He, Bt as Ue, Ct as We, E as Ge, Ft as Ke, H as qe, I as Je, L as Ye, Mt as Xe, Pt as Ze, Rt as Qe, S as $e, St as et, Tt as tt, U as nt, Vt as rt, X as it, Z as at, b as ot, et as st, f as ct, ht as lt, jt as ut, kt as dt, l as M, mt as ft, tt as pt, u as mt, ut as ht, vt as gt, w as _t, z as vt, zt as yt } from "./dist-DoE4XJBC.js";
|
|
18
18
|
import { i as bt, o as xt, r as St, s as Ct, t as wt, u as Tt } from "./dist-CN8zI-XC.js";
|
|
19
19
|
import { t as Et } from "./invariant-DLmrl-hA.js";
|
|
@@ -26,7 +26,7 @@ import { a as Bt, c as Vt, d as Ht, f as Ut, i as Wt, l as Gt, n as Kt, o as qt,
|
|
|
26
26
|
import { n as Zt, r as Qt } from "./dist-CrSP_H1M.js";
|
|
27
27
|
import { a as $t, i as en, n as tn, o as nn, r as rn } from "./dist-BorMD-uX.js";
|
|
28
28
|
import { n as an } from "./stex-Btf3omL8.js";
|
|
29
|
-
import { t as on } from "./useAsyncData-
|
|
29
|
+
import { t as on } from "./useAsyncData-Bn8SxUqM.js";
|
|
30
30
|
import { t as sn } from "./purify.es-DMv5zIkJ.js";
|
|
31
31
|
var cn = h("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",
|
|
@@ -610,9 +610,9 @@ var cn = h("activity", [["path", {
|
|
|
610
610
|
]), P = /* @__PURE__ */ e(u(), 1), F = _e(), Hn = Object.defineProperty, Un = (e, t) => Hn(e, "name", {
|
|
611
611
|
value: t,
|
|
612
612
|
configurable: !0
|
|
613
|
-
}), Wn = "Checkbox", [Gn, Kn] =
|
|
613
|
+
}), Wn = "Checkbox", [Gn, Kn] = Se(Wn), [qn, Jn] = Gn(Wn);
|
|
614
614
|
function Yn(e) {
|
|
615
|
-
let { __scopeCheckbox: t, checked: n, children: r, defaultChecked: i, disabled: a, form: o, name: s, onCheckedChange: c, required: l, value: u = "on", internal_do_not_use_render: d } = e, [f, p] =
|
|
615
|
+
let { __scopeCheckbox: t, checked: n, children: r, defaultChecked: i, disabled: a, form: o, name: s, onCheckedChange: c, required: l, value: u = "on", internal_do_not_use_render: d } = e, [f, p] = O({
|
|
616
616
|
prop: n,
|
|
617
617
|
defaultProp: i ?? !1,
|
|
618
618
|
onChange: c,
|
|
@@ -649,7 +649,7 @@ var Xn = "CheckboxTrigger", Zn = /* @__PURE__ */ P.forwardRef(/* @__PURE__ */ Un
|
|
|
649
649
|
let t = /* @__PURE__ */ Un(() => f(_.current), "reset");
|
|
650
650
|
return e.addEventListener("reset", t), () => e.removeEventListener("reset", t);
|
|
651
651
|
}
|
|
652
|
-
}, [a, f]), /* @__PURE__ */ (0, F.jsx)(
|
|
652
|
+
}, [a, f]), /* @__PURE__ */ (0, F.jsx)(we.button, {
|
|
653
653
|
type: "button",
|
|
654
654
|
role: "checkbox",
|
|
655
655
|
"aria-checked": ir(l) ? "mixed" : l,
|
|
@@ -691,9 +691,9 @@ var Xn = "CheckboxTrigger", Zn = /* @__PURE__ */ P.forwardRef(/* @__PURE__ */ Un
|
|
|
691
691
|
});
|
|
692
692
|
}, "Checkbox")), $n = "CheckboxIndicator", er = /* @__PURE__ */ P.forwardRef(/* @__PURE__ */ Un(function(e, t) {
|
|
693
693
|
let { __scopeCheckbox: n, forceMount: r, ...i } = e, a = Jn($n, n);
|
|
694
|
-
return /* @__PURE__ */ (0, F.jsx)(
|
|
694
|
+
return /* @__PURE__ */ (0, F.jsx)(Ee, {
|
|
695
695
|
present: r || ir(a.checked) || a.checked === !0,
|
|
696
|
-
children: /* @__PURE__ */ (0, F.jsx)(
|
|
696
|
+
children: /* @__PURE__ */ (0, F.jsx)(we.span, {
|
|
697
697
|
"data-state": ar(a.checked),
|
|
698
698
|
"data-disabled": a.disabled ? "" : void 0,
|
|
699
699
|
...i,
|
|
@@ -727,7 +727,7 @@ var Xn = "CheckboxTrigger", Zn = /* @__PURE__ */ P.forwardRef(/* @__PURE__ */ Un
|
|
|
727
727
|
a
|
|
728
728
|
]);
|
|
729
729
|
let C = P.useRef(!ir(o) && o);
|
|
730
|
-
return /* @__PURE__ */ (0, F.jsx)(
|
|
730
|
+
return /* @__PURE__ */ (0, F.jsx)(we.input, {
|
|
731
731
|
type: "checkbox",
|
|
732
732
|
"aria-hidden": !0,
|
|
733
733
|
defaultChecked: s ?? C.current,
|
|
@@ -1281,7 +1281,7 @@ var oi = ai(), si = class {
|
|
|
1281
1281
|
function di() {
|
|
1282
1282
|
return { widths: [] };
|
|
1283
1283
|
}
|
|
1284
|
-
var fi = new li(ui,
|
|
1284
|
+
var fi = new li(ui, D({ widths: ve(De([xe(), Ce("contentWidth")]).default("contentWidth")) }), di);
|
|
1285
1285
|
function pi(e, t) {
|
|
1286
1286
|
let n = fi.get(ui).widths, r = Dt(n, e, t);
|
|
1287
1287
|
fi.set(ui, { widths: r });
|
|
@@ -18294,8 +18294,8 @@ var Uu = new Vu(), Wu = Qe.define(), Gu = Qe.define(), Ku = yt.define({
|
|
|
18294
18294
|
//#endregion
|
|
18295
18295
|
//#region src/core/codemirror/language/utils.ts
|
|
18296
18296
|
function qu(e, t, n) {
|
|
18297
|
-
if (t === void 0) return
|
|
18298
|
-
let r = e.state.field(
|
|
18297
|
+
if (t === void 0) return nb(e.state);
|
|
18298
|
+
let r = e.state.field(eb), i = e.state.field(Ku), a = e.state.doc.toString();
|
|
18299
18299
|
return r.transformOut(a.slice(t, n), i)[0];
|
|
18300
18300
|
}
|
|
18301
18301
|
function Ju(e) {
|
|
@@ -18346,7 +18346,7 @@ function Yu(e, t, n = {}) {
|
|
|
18346
18346
|
//#region src/core/codemirror/format.ts
|
|
18347
18347
|
var Xu = Qe.define();
|
|
18348
18348
|
async function Zu(e, t) {
|
|
18349
|
-
let { formatDialect: n } = await import("./esm-G4Fhsgng.js"), r = await Qu(Uu.getInternalDialect(t)), i = e.state.field(
|
|
18349
|
+
let { formatDialect: n } = await import("./esm-G4Fhsgng.js"), r = await Qu(Uu.getInternalDialect(t)), i = e.state.field(eb), o = Ge(e.state);
|
|
18350
18350
|
if (i.type !== "sql") {
|
|
18351
18351
|
a.error("Language adapter is not SQL");
|
|
18352
18352
|
return;
|
|
@@ -20345,11 +20345,11 @@ function tf(e) {
|
|
|
20345
20345
|
let t = j.get(ef);
|
|
20346
20346
|
return t.sidebar.includes(e) ? "sidebar" : t.developerPanel.includes(e) ? "developer-panel" : null;
|
|
20347
20347
|
}
|
|
20348
|
-
var nf = "marimo:sidebar", rf = new ci(
|
|
20349
|
-
selectedPanel:
|
|
20350
|
-
isSidebarOpen:
|
|
20351
|
-
isDeveloperPanelOpen:
|
|
20352
|
-
selectedDeveloperPanelTab:
|
|
20348
|
+
var nf = "marimo:sidebar", rf = new ci(D({
|
|
20349
|
+
selectedPanel: be().optional().transform((e) => e),
|
|
20350
|
+
isSidebarOpen: Te(),
|
|
20351
|
+
isDeveloperPanelOpen: Te().optional().default(!1),
|
|
20352
|
+
selectedDeveloperPanelTab: be().optional().default("errors").transform((e) => e)
|
|
20353
20353
|
}), af);
|
|
20354
20354
|
function af() {
|
|
20355
20355
|
return {
|
|
@@ -22154,7 +22154,7 @@ function Hp(e) {
|
|
|
22154
22154
|
//#endregion
|
|
22155
22155
|
//#region src/core/codemirror/lsp/utils.ts
|
|
22156
22156
|
function Up(e) {
|
|
22157
|
-
return Bp.is(e) ? j.get(
|
|
22157
|
+
return Bp.is(e) ? j.get(Ax).inOrderIds.includes(Bp.parse(e)) : !1;
|
|
22158
22158
|
}
|
|
22159
22159
|
function Wp() {
|
|
22160
22160
|
return j.get(ri)?.rootUri ?? "file:///";
|
|
@@ -22617,7 +22617,7 @@ var Om = class {
|
|
|
22617
22617
|
return om(e, t);
|
|
22618
22618
|
}
|
|
22619
22619
|
}, km = () => {
|
|
22620
|
-
let e =
|
|
22620
|
+
let e = Lx().cellHandles;
|
|
22621
22621
|
return Nt.mapValues(e, (e) => e.current?.editorViewOrNull);
|
|
22622
22622
|
};
|
|
22623
22623
|
function Am(e) {
|
|
@@ -22877,7 +22877,7 @@ var Rm = class {
|
|
|
22877
22877
|
continue;
|
|
22878
22878
|
}
|
|
22879
22879
|
if (qu(t) !== r) {
|
|
22880
|
-
let e =
|
|
22880
|
+
let e = ib(t.state, r);
|
|
22881
22881
|
e && t.dispatch(e), h++;
|
|
22882
22882
|
}
|
|
22883
22883
|
}
|
|
@@ -23139,30 +23139,33 @@ var Rm = class {
|
|
|
23139
23139
|
OPEN: "OPEN",
|
|
23140
23140
|
CLOSING: "CLOSING",
|
|
23141
23141
|
CLOSED: "CLOSED"
|
|
23142
|
-
}, Wm =
|
|
23142
|
+
}, Wm = {
|
|
23143
|
+
KERNEL_DISCONNECTED: "KERNEL_DISCONNECTED",
|
|
23144
|
+
KERNEL_STARTUP_ERROR: "KERNEL_STARTUP_ERROR"
|
|
23145
|
+
}, Gm = A({ state: Um.NOT_STARTED });
|
|
23143
23146
|
sr(null, (e, t) => t === null ? null : {
|
|
23144
23147
|
phase: t.phase,
|
|
23145
23148
|
logs: t.log_mode === "append" && e?.phase === t.phase ? e.logs + t.logs : t.logs
|
|
23146
23149
|
});
|
|
23147
|
-
function Gm() {
|
|
23148
|
-
return ze(Wm, (e) => e.state === Um.OPEN);
|
|
23149
|
-
}
|
|
23150
23150
|
function Km() {
|
|
23151
|
-
return
|
|
23151
|
+
return ze(Gm, (e) => e.state === Um.OPEN);
|
|
23152
|
+
}
|
|
23153
|
+
function qm() {
|
|
23154
|
+
return fe() ? Km() : Promise.resolve();
|
|
23152
23155
|
}
|
|
23153
|
-
A((e) => e(
|
|
23154
|
-
let t = e(
|
|
23156
|
+
A((e) => e(Gm).state === Um.CONNECTING), A((e) => e(Gm).state === Um.OPEN), A((e) => {
|
|
23157
|
+
let t = e(Gm);
|
|
23155
23158
|
return t.state === Um.OPEN || t.state === Um.NOT_STARTED;
|
|
23156
|
-
}), A((e) => e(
|
|
23159
|
+
}), A((e) => e(Gm).state === Um.CLOSED), A((e) => e(Gm).state === Um.NOT_STARTED);
|
|
23157
23160
|
//#endregion
|
|
23158
23161
|
//#region src/core/codemirror/lsp/log-messages.ts
|
|
23159
|
-
var
|
|
23160
|
-
function
|
|
23162
|
+
var Jm = /* @__PURE__ */ new Set([1, 2]);
|
|
23163
|
+
function Ym(e, t) {
|
|
23161
23164
|
if (!("method" in t) || t.method !== "window/logMessage") return;
|
|
23162
23165
|
let n = t.params;
|
|
23163
|
-
!$p(n) || typeof n.message != "string" ||
|
|
23166
|
+
!$p(n) || typeof n.message != "string" || kx({ logs: [{
|
|
23164
23167
|
timestamp: Date.now() / 1e3,
|
|
23165
|
-
level:
|
|
23168
|
+
level: Jm.has(n.type) ? "stderr" : "stdout",
|
|
23166
23169
|
message: n.message,
|
|
23167
23170
|
source: {
|
|
23168
23171
|
type: "lsp",
|
|
@@ -23172,35 +23175,35 @@ function Jm(e, t) {
|
|
|
23172
23175
|
}
|
|
23173
23176
|
//#endregion
|
|
23174
23177
|
//#region src/core/codemirror/lsp/transports.ts
|
|
23175
|
-
function
|
|
23178
|
+
function Xm(e, t) {
|
|
23176
23179
|
let n = me(), r = new Hm({
|
|
23177
23180
|
getWsUrl: () => n.getLSPURL(e).toString(),
|
|
23178
23181
|
waitForConnection: async () => {
|
|
23179
|
-
await
|
|
23182
|
+
await Km();
|
|
23180
23183
|
},
|
|
23181
23184
|
onReconnect: t
|
|
23182
23185
|
});
|
|
23183
|
-
return r.onMessage((t) =>
|
|
23186
|
+
return r.onMessage((t) => Ym(e, t)), r;
|
|
23184
23187
|
}
|
|
23185
23188
|
Qe.define(), new dt();
|
|
23186
|
-
function
|
|
23189
|
+
function Zm(e) {
|
|
23187
23190
|
return e.facet(ut.readOnly);
|
|
23188
23191
|
}
|
|
23189
23192
|
//#endregion
|
|
23190
23193
|
//#region src/core/codemirror/placeholder/extensions.ts
|
|
23191
|
-
function
|
|
23194
|
+
function Qm(e) {
|
|
23192
23195
|
return [gt(e), lt.of([{
|
|
23193
23196
|
key: "ArrowRight",
|
|
23194
23197
|
preventDefault: !0,
|
|
23195
|
-
run: (t) =>
|
|
23198
|
+
run: (t) => $m(t, e)
|
|
23196
23199
|
}, {
|
|
23197
23200
|
key: "Tab",
|
|
23198
23201
|
preventDefault: !0,
|
|
23199
|
-
run: (t) =>
|
|
23202
|
+
run: (t) => $m(t, e)
|
|
23200
23203
|
}])];
|
|
23201
23204
|
}
|
|
23202
|
-
function
|
|
23203
|
-
if (
|
|
23205
|
+
function $m(e, t) {
|
|
23206
|
+
if (Zm(e.state)) return !1;
|
|
23204
23207
|
let n = e.state.doc.length;
|
|
23205
23208
|
return n === 0 && (e.dispatch({
|
|
23206
23209
|
changes: {
|
|
@@ -23214,7 +23217,7 @@ function Qm(e, t) {
|
|
|
23214
23217
|
}
|
|
23215
23218
|
}), !0);
|
|
23216
23219
|
}
|
|
23217
|
-
function
|
|
23220
|
+
function eh(e) {
|
|
23218
23221
|
let { beforeText: t, linkText: n, afterText: r, onClick: i } = e;
|
|
23219
23222
|
return [gt((e) => {
|
|
23220
23223
|
let a = document.createElement("span");
|
|
@@ -23237,9 +23240,9 @@ function $m(e) {
|
|
|
23237
23240
|
}
|
|
23238
23241
|
//#endregion
|
|
23239
23242
|
//#region src/core/codemirror/language/languages/python.ts
|
|
23240
|
-
var
|
|
23243
|
+
var th = Pt((e) => {
|
|
23241
23244
|
let t, n = {
|
|
23242
|
-
transport:
|
|
23245
|
+
transport: Xm("pylsp", async () => {
|
|
23243
23246
|
await t?.();
|
|
23244
23247
|
}),
|
|
23245
23248
|
rootUri: Wp(),
|
|
@@ -23284,9 +23287,9 @@ var eh = Pt((e) => {
|
|
|
23284
23287
|
}
|
|
23285
23288
|
} } }, c = new Rm(new Dc({ ...n }), s);
|
|
23286
23289
|
return t = () => c.resyncAllDocuments(), c;
|
|
23287
|
-
}),
|
|
23290
|
+
}), nh = Pt((e) => {
|
|
23288
23291
|
let t, n = new Rm(new Dc({
|
|
23289
|
-
transport:
|
|
23292
|
+
transport: Xm("ty", async () => {
|
|
23290
23293
|
await t?.();
|
|
23291
23294
|
}),
|
|
23292
23295
|
rootUri: Wp(),
|
|
@@ -23294,9 +23297,9 @@ var eh = Pt((e) => {
|
|
|
23294
23297
|
getWorkspaceConfiguration: () => [{ disableLanguageServices: !0 }]
|
|
23295
23298
|
}), {});
|
|
23296
23299
|
return t = () => n.resyncAllDocuments(), n;
|
|
23297
|
-
}),
|
|
23300
|
+
}), rh = Pt((e) => {
|
|
23298
23301
|
let t, n = new Rm(new Dc({
|
|
23299
|
-
transport:
|
|
23302
|
+
transport: Xm("pyrefly", async () => {
|
|
23300
23303
|
await t?.();
|
|
23301
23304
|
}),
|
|
23302
23305
|
rootUri: Wp(),
|
|
@@ -23304,16 +23307,16 @@ var eh = Pt((e) => {
|
|
|
23304
23307
|
initializationOptions: { pyrefly: { displayTypeErrors: e.diagnostics?.enabled ?? !1 ? "force-on" : "force-off" } }
|
|
23305
23308
|
}), {});
|
|
23306
23309
|
return t = () => n.resyncAllDocuments(), n;
|
|
23307
|
-
}),
|
|
23310
|
+
}), ih = Pt((e) => {
|
|
23308
23311
|
let t, n = new Rm(new Dc({
|
|
23309
|
-
transport:
|
|
23312
|
+
transport: Xm("basedpyright", async () => {
|
|
23310
23313
|
await t?.();
|
|
23311
23314
|
}),
|
|
23312
23315
|
rootUri: Wp(),
|
|
23313
23316
|
workspaceFolders: Gp()
|
|
23314
23317
|
}), {});
|
|
23315
23318
|
return t = () => n.resyncAllDocuments(), n;
|
|
23316
|
-
}),
|
|
23319
|
+
}), ah = class {
|
|
23317
23320
|
parser = new Nd();
|
|
23318
23321
|
type = "python";
|
|
23319
23322
|
defaultCode = this.parser.defaultCode;
|
|
@@ -23341,7 +23344,7 @@ var eh = Pt((e) => {
|
|
|
23341
23344
|
activateOnTyping: t.activate_on_typing,
|
|
23342
23345
|
closeOnBlur: !1
|
|
23343
23346
|
}, o = { hideOnChange: !0 }, s = [];
|
|
23344
|
-
i?.pylsp?.enabled && ff("pylsp") && s.push(
|
|
23347
|
+
i?.pylsp?.enabled && ff("pylsp") && s.push(th(i)), i?.ty?.enabled && ff("ty") && s.push(nh(i)), i?.pyrefly?.enabled && ff("pyrefly") && s.push(rh(i)), i?.basedpyright?.enabled && ff("basedpyright") && s.push(ih(i));
|
|
23345
23348
|
let c = t.signature_hint_on_typing, l = c ? /(\w+|\w+\.|\/)$/ : /(\w+|\w+\.|\(|\/|,)$/;
|
|
23346
23349
|
if (s.length > 0) {
|
|
23347
23350
|
let t = s.length === 1 ? s[0] : new Yp(s), u = (e) => {
|
|
@@ -23376,13 +23379,13 @@ var eh = Pt((e) => {
|
|
|
23376
23379
|
override: [$f]
|
|
23377
23380
|
}), Qf];
|
|
23378
23381
|
})(),
|
|
23379
|
-
|
|
23380
|
-
|
|
23382
|
+
ch(),
|
|
23383
|
+
oh(r)
|
|
23381
23384
|
];
|
|
23382
23385
|
}
|
|
23383
23386
|
};
|
|
23384
|
-
function
|
|
23385
|
-
return e === "marimo-import" ? Ze.highest(
|
|
23387
|
+
function oh(e) {
|
|
23388
|
+
return e === "marimo-import" ? Ze.highest(Qm("import marimo as mo")) : e === "ai" ? eh({
|
|
23386
23389
|
beforeText: "Start coding or ",
|
|
23387
23390
|
linkText: "generate",
|
|
23388
23391
|
afterText: " with AI.",
|
|
@@ -23391,44 +23394,44 @@ function ah(e) {
|
|
|
23391
23394
|
}
|
|
23392
23395
|
}) : [];
|
|
23393
23396
|
}
|
|
23394
|
-
var
|
|
23397
|
+
var sh = $t.configure({ props: [_t.add({
|
|
23395
23398
|
ParenthesizedExpression: $e,
|
|
23396
23399
|
ArgList: $e
|
|
23397
23400
|
})] });
|
|
23398
|
-
function
|
|
23399
|
-
return new mt(
|
|
23401
|
+
function ch() {
|
|
23402
|
+
return new mt(sh, [sh.data.of({ autocomplete: rn }), sh.data.of({ autocomplete: tn })]);
|
|
23400
23403
|
}
|
|
23401
23404
|
//#endregion
|
|
23402
23405
|
//#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
|
|
23403
|
-
function ch(e) {
|
|
23404
|
-
return typeof e == "object" && !Array.isArray(e) && !lh(e);
|
|
23405
|
-
}
|
|
23406
23406
|
function lh(e) {
|
|
23407
|
+
return typeof e == "object" && !Array.isArray(e) && !uh(e);
|
|
23408
|
+
}
|
|
23409
|
+
function uh(e) {
|
|
23407
23410
|
if (typeof e != "object" || Array.isArray(e) || !("self" in e) || !("children" in e)) return !1;
|
|
23408
23411
|
let t = e.self;
|
|
23409
23412
|
return typeof t == "object" && !!t && !Array.isArray(t) && typeof t.label == "string";
|
|
23410
23413
|
}
|
|
23411
|
-
function
|
|
23414
|
+
function dh(e) {
|
|
23412
23415
|
return Array.isArray(e);
|
|
23413
23416
|
}
|
|
23414
|
-
function
|
|
23417
|
+
function fh(e, t, n, r) {
|
|
23415
23418
|
let i = e.length;
|
|
23416
|
-
if (t === "string" || t === "completion" && r &&
|
|
23419
|
+
if (t === "string" || t === "completion" && r && dh(r)) return "column";
|
|
23417
23420
|
if (t === "namespace" && n) {
|
|
23418
|
-
if (
|
|
23419
|
-
if (
|
|
23421
|
+
if (dh(n)) return "table";
|
|
23422
|
+
if (lh(n)) return Object.values(n).some((e) => dh(e) || uh(e) && dh(e.children)) ? i <= 1 ? "database" : "schema" : i === 0 ? "database" : "namespace";
|
|
23420
23423
|
}
|
|
23421
|
-
if (t === "completion" && n) return
|
|
23424
|
+
if (t === "completion" && n) return dh(n) ? "table" : (lh(n) && Object.values(n).some((e) => dh(e) || uh(e) && dh(e.children)), i <= 1 ? "database" : "schema");
|
|
23422
23425
|
switch (i) {
|
|
23423
23426
|
case 0: return "database";
|
|
23424
23427
|
case 1: return "schema";
|
|
23425
23428
|
default: return "namespace";
|
|
23426
23429
|
}
|
|
23427
23430
|
}
|
|
23428
|
-
function
|
|
23431
|
+
function ph(e, t, n = {}) {
|
|
23429
23432
|
let { maxDepth: r = 10 } = n;
|
|
23430
|
-
if ((typeof t == "string" ? t === "" : t.length === 0) &&
|
|
23431
|
-
let t =
|
|
23433
|
+
if ((typeof t == "string" ? t === "" : t.length === 0) && uh(e)) {
|
|
23434
|
+
let t = fh([], "completion", e.children);
|
|
23432
23435
|
return {
|
|
23433
23436
|
completion: e.self,
|
|
23434
23437
|
path: [],
|
|
@@ -23438,12 +23441,12 @@ function fh(e, t, n = {}) {
|
|
|
23438
23441
|
};
|
|
23439
23442
|
}
|
|
23440
23443
|
let i = (typeof t == "string" ? t.split(".") : t).filter((e) => e.length > 0);
|
|
23441
|
-
return i.length === 0 || i.length > r ? null :
|
|
23444
|
+
return i.length === 0 || i.length > r ? null : mh(e, i, [], n);
|
|
23442
23445
|
}
|
|
23443
|
-
function
|
|
23446
|
+
function mh(e, t, n, r, i) {
|
|
23444
23447
|
if (t.length === 0) {
|
|
23445
|
-
if (
|
|
23446
|
-
let t =
|
|
23448
|
+
if (uh(e)) {
|
|
23449
|
+
let t = fh(n, "completion", e.children, i);
|
|
23447
23450
|
return {
|
|
23448
23451
|
completion: e.self,
|
|
23449
23452
|
path: n,
|
|
@@ -23455,23 +23458,23 @@ function ph(e, t, n, r, i) {
|
|
|
23455
23458
|
return {
|
|
23456
23459
|
path: n,
|
|
23457
23460
|
type: "namespace",
|
|
23458
|
-
semanticType:
|
|
23461
|
+
semanticType: fh(n, "namespace", e, i),
|
|
23459
23462
|
namespace: e
|
|
23460
23463
|
};
|
|
23461
23464
|
}
|
|
23462
23465
|
let [a, ...o] = t, { caseSensitive: s = !1 } = r;
|
|
23463
23466
|
if (!a) return null;
|
|
23464
|
-
if (
|
|
23467
|
+
if (lh(e)) {
|
|
23465
23468
|
let t = s ? Object.keys(e).find((e) => e === a) : Object.keys(e).find((e) => e.toLowerCase() === a.toLowerCase());
|
|
23466
23469
|
if (t) {
|
|
23467
23470
|
let i = e[t];
|
|
23468
|
-
if (i) return
|
|
23471
|
+
if (i) return mh(i, o, [...n, t], r, e);
|
|
23469
23472
|
}
|
|
23470
|
-
} else if (
|
|
23471
|
-
else if (
|
|
23473
|
+
} else if (uh(e)) return mh(e.children, t, n, r, e);
|
|
23474
|
+
else if (dh(e)) {
|
|
23472
23475
|
for (let t of e) if (typeof t == "string") {
|
|
23473
23476
|
if ((s ? t === a : t.toLowerCase() === a.toLowerCase()) && o.length === 0) {
|
|
23474
|
-
let r =
|
|
23477
|
+
let r = fh([...n, t], "string", void 0, e);
|
|
23475
23478
|
return {
|
|
23476
23479
|
value: t,
|
|
23477
23480
|
path: [...n, t],
|
|
@@ -23480,7 +23483,7 @@ function ph(e, t, n, r, i) {
|
|
|
23480
23483
|
};
|
|
23481
23484
|
}
|
|
23482
23485
|
} else if ((s ? t.label === a : t.label.toLowerCase() === a.toLowerCase()) && o.length === 0) {
|
|
23483
|
-
let r =
|
|
23486
|
+
let r = fh([...n, t.label], "completion", void 0, e);
|
|
23484
23487
|
return {
|
|
23485
23488
|
completion: t,
|
|
23486
23489
|
path: [...n, t.label],
|
|
@@ -23491,20 +23494,20 @@ function ph(e, t, n, r, i) {
|
|
|
23491
23494
|
}
|
|
23492
23495
|
return null;
|
|
23493
23496
|
}
|
|
23494
|
-
function
|
|
23497
|
+
function hh(e, t, n = {}) {
|
|
23495
23498
|
let r = [];
|
|
23496
23499
|
if (t.includes(".")) {
|
|
23497
|
-
let r = t.lastIndexOf("."), i = t.substring(0, r), a = t.substring(r + 1), o =
|
|
23498
|
-
if (o?.namespace) return
|
|
23499
|
-
} else return
|
|
23500
|
+
let r = t.lastIndexOf("."), i = t.substring(0, r), a = t.substring(r + 1), o = ph(e, i, n);
|
|
23501
|
+
if (o?.namespace) return gh(o.namespace, a, o.path, n);
|
|
23502
|
+
} else return gh(e, t, [], n);
|
|
23500
23503
|
return r;
|
|
23501
23504
|
}
|
|
23502
|
-
function
|
|
23505
|
+
function gh(e, t, n, r) {
|
|
23503
23506
|
let i = [], { caseSensitive: a = !1, allowPartialMatch: o = !0 } = r;
|
|
23504
|
-
if (
|
|
23507
|
+
if (lh(e)) {
|
|
23505
23508
|
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()) {
|
|
23506
|
-
if (
|
|
23507
|
-
let t =
|
|
23509
|
+
if (uh(s)) {
|
|
23510
|
+
let t = fh([...n, r], "completion", s.children, e);
|
|
23508
23511
|
i.push({
|
|
23509
23512
|
completion: s.self,
|
|
23510
23513
|
path: [...n, r],
|
|
@@ -23513,7 +23516,7 @@ function hh(e, t, n, r) {
|
|
|
23513
23516
|
namespace: s.children
|
|
23514
23517
|
});
|
|
23515
23518
|
} else {
|
|
23516
|
-
let t =
|
|
23519
|
+
let t = fh([...n, r], "namespace", s, e);
|
|
23517
23520
|
i.push({
|
|
23518
23521
|
path: [...n, r],
|
|
23519
23522
|
type: "namespace",
|
|
@@ -23522,9 +23525,9 @@ function hh(e, t, n, r) {
|
|
|
23522
23525
|
});
|
|
23523
23526
|
}
|
|
23524
23527
|
}
|
|
23525
|
-
} else if (
|
|
23528
|
+
} else if (uh(e)) {
|
|
23526
23529
|
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()) {
|
|
23527
|
-
let t =
|
|
23530
|
+
let t = fh([...n, e.self.label], "completion", e.children);
|
|
23528
23531
|
i.push({
|
|
23529
23532
|
completion: e.self,
|
|
23530
23533
|
path: [...n, e.self.label],
|
|
@@ -23533,11 +23536,11 @@ function hh(e, t, n, r) {
|
|
|
23533
23536
|
namespace: e.children
|
|
23534
23537
|
});
|
|
23535
23538
|
}
|
|
23536
|
-
i.push(...
|
|
23537
|
-
} else if (
|
|
23539
|
+
i.push(...gh(e.children, t, n, r));
|
|
23540
|
+
} else if (dh(e)) {
|
|
23538
23541
|
for (let r of e) if (typeof r == "string") {
|
|
23539
23542
|
if (o ? a ? r.startsWith(t) : r.toLowerCase().startsWith(t.toLowerCase()) : a ? r === t : r.toLowerCase() === t.toLowerCase()) {
|
|
23540
|
-
let t =
|
|
23543
|
+
let t = fh([...n, r], "string", void 0, e);
|
|
23541
23544
|
i.push({
|
|
23542
23545
|
value: r,
|
|
23543
23546
|
path: [...n, r],
|
|
@@ -23546,7 +23549,7 @@ function hh(e, t, n, r) {
|
|
|
23546
23549
|
});
|
|
23547
23550
|
}
|
|
23548
23551
|
} else if (o ? a ? r.label.startsWith(t) : r.label.toLowerCase().startsWith(t.toLowerCase()) : a ? r.label === t : r.label.toLowerCase() === t.toLowerCase()) {
|
|
23549
|
-
let t =
|
|
23552
|
+
let t = fh([...n, r.label], "completion", void 0, e);
|
|
23550
23553
|
i.push({
|
|
23551
23554
|
completion: r,
|
|
23552
23555
|
path: [...n, r.label],
|
|
@@ -23557,49 +23560,49 @@ function hh(e, t, n, r) {
|
|
|
23557
23560
|
}
|
|
23558
23561
|
return i;
|
|
23559
23562
|
}
|
|
23560
|
-
function
|
|
23563
|
+
function _h(e, t, n = {}) {
|
|
23561
23564
|
let r = [], { maxDepth: i = 10 } = n;
|
|
23562
|
-
|
|
23565
|
+
vh(e, [], r, i);
|
|
23563
23566
|
let { caseSensitive: a = !1 } = n;
|
|
23564
23567
|
return r.filter((e) => e.path.some((e) => a ? e === t : e.toLowerCase() === t.toLowerCase())).sort((e, n) => {
|
|
23565
23568
|
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();
|
|
23566
23569
|
return r && !i ? -1 : !r && i ? 1 : e.path.length - n.path.length;
|
|
23567
23570
|
});
|
|
23568
23571
|
}
|
|
23569
|
-
function
|
|
23572
|
+
function vh(e, t, n, r) {
|
|
23570
23573
|
if (!(t.length >= r)) {
|
|
23571
|
-
if (
|
|
23574
|
+
if (lh(e)) for (let [i, a] of Object.entries(e)) {
|
|
23572
23575
|
let o = [...t, i];
|
|
23573
|
-
if (
|
|
23574
|
-
let t =
|
|
23576
|
+
if (uh(a)) {
|
|
23577
|
+
let t = fh(o, "completion", a.children, e);
|
|
23575
23578
|
n.push({
|
|
23576
23579
|
completion: a.self,
|
|
23577
23580
|
path: o,
|
|
23578
23581
|
type: "completion",
|
|
23579
23582
|
semanticType: t,
|
|
23580
23583
|
namespace: a.children
|
|
23581
|
-
}),
|
|
23584
|
+
}), vh(a.children, o, n, r);
|
|
23582
23585
|
} else {
|
|
23583
|
-
let t =
|
|
23586
|
+
let t = fh(o, "namespace", a, e);
|
|
23584
23587
|
n.push({
|
|
23585
23588
|
path: o,
|
|
23586
23589
|
type: "namespace",
|
|
23587
23590
|
semanticType: t,
|
|
23588
23591
|
namespace: a
|
|
23589
|
-
}),
|
|
23592
|
+
}), vh(a, o, n, r);
|
|
23590
23593
|
}
|
|
23591
23594
|
}
|
|
23592
|
-
else if (
|
|
23593
|
-
let i =
|
|
23595
|
+
else if (uh(e)) {
|
|
23596
|
+
let i = fh(t, "completion", e.children);
|
|
23594
23597
|
n.push({
|
|
23595
23598
|
completion: e.self,
|
|
23596
23599
|
path: t,
|
|
23597
23600
|
type: "completion",
|
|
23598
23601
|
semanticType: i,
|
|
23599
23602
|
namespace: e.children
|
|
23600
|
-
}),
|
|
23601
|
-
} else if (
|
|
23602
|
-
let i =
|
|
23603
|
+
}), vh(e.children, t, n, r);
|
|
23604
|
+
} else if (dh(e)) for (let r of e) if (typeof r == "string") {
|
|
23605
|
+
let i = fh([...t, r], "string", void 0, e);
|
|
23603
23606
|
n.push({
|
|
23604
23607
|
value: r,
|
|
23605
23608
|
path: [...t, r],
|
|
@@ -23607,7 +23610,7 @@ function _h(e, t, n, r) {
|
|
|
23607
23610
|
semanticType: i
|
|
23608
23611
|
});
|
|
23609
23612
|
} else {
|
|
23610
|
-
let i =
|
|
23613
|
+
let i = fh([...t, r.label], "completion", void 0, e);
|
|
23611
23614
|
n.push({
|
|
23612
23615
|
completion: r,
|
|
23613
23616
|
path: [...t, r.label],
|
|
@@ -23617,48 +23620,48 @@ function _h(e, t, n, r) {
|
|
|
23617
23620
|
}
|
|
23618
23621
|
}
|
|
23619
23622
|
}
|
|
23620
|
-
function
|
|
23621
|
-
let { enableFuzzySearch: r = !1 } = n, i =
|
|
23623
|
+
function yh(e, t, n = {}) {
|
|
23624
|
+
let { enableFuzzySearch: r = !1 } = n, i = ph(e, t, n);
|
|
23622
23625
|
if (i) return i;
|
|
23623
|
-
let a =
|
|
23626
|
+
let a = hh(e, t, n);
|
|
23624
23627
|
if (a.length > 0) return a[0] || null;
|
|
23625
23628
|
if (r) {
|
|
23626
|
-
let r =
|
|
23629
|
+
let r = _h(e, t, n);
|
|
23627
23630
|
if (r.length > 0) return r[0] || null;
|
|
23628
23631
|
}
|
|
23629
23632
|
return null;
|
|
23630
23633
|
}
|
|
23631
23634
|
//#endregion
|
|
23632
23635
|
//#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
|
|
23633
|
-
var
|
|
23634
|
-
function
|
|
23635
|
-
let n = e ?? t.state.facet(
|
|
23636
|
+
var bh = Xe.define({ combine: (e) => e[0] ?? null });
|
|
23637
|
+
function xh(e, t) {
|
|
23638
|
+
let n = e ?? t.state.facet(bh);
|
|
23636
23639
|
return n == null ? null : typeof n == "function" ? n(t) : n;
|
|
23637
23640
|
}
|
|
23638
23641
|
//#endregion
|
|
23639
23642
|
//#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
|
|
23640
|
-
function
|
|
23641
|
-
let n = e ?? t.state.facet(
|
|
23643
|
+
function Sh(e, t) {
|
|
23644
|
+
let n = e ?? t.state.facet(bh);
|
|
23642
23645
|
return n == null ? null : typeof n == "function" ? t.view ? n(t.view) : null : n;
|
|
23643
23646
|
}
|
|
23644
|
-
function
|
|
23647
|
+
function Ch(e) {
|
|
23645
23648
|
if (e == null) return null;
|
|
23646
|
-
let t =
|
|
23647
|
-
return
|
|
23649
|
+
let t = uh(e) ? e.children : e;
|
|
23650
|
+
return dh(t) ? t : null;
|
|
23648
23651
|
}
|
|
23649
|
-
function
|
|
23650
|
-
let n =
|
|
23652
|
+
function wh(e, t) {
|
|
23653
|
+
let n = Ch(ph(e, t, { caseSensitive: !1 })?.namespace);
|
|
23651
23654
|
if (n) return n;
|
|
23652
23655
|
let r = (typeof t == "string" ? t.split(".") : t).map((e) => e.toLowerCase()), i = r[r.length - 1];
|
|
23653
23656
|
if (!i) return null;
|
|
23654
|
-
let a =
|
|
23655
|
-
if (
|
|
23657
|
+
let a = _h(e, i).filter((e) => {
|
|
23658
|
+
if (Ch(e.namespace) === null || e.path.length < r.length) return !1;
|
|
23656
23659
|
let t = e.path.slice(-r.length).map((e) => e.toLowerCase());
|
|
23657
23660
|
return r.every((e, n) => t[n] === e);
|
|
23658
23661
|
});
|
|
23659
|
-
return a.length === 1 ?
|
|
23662
|
+
return a.length === 1 ? Ch(a[0]?.namespace) : null;
|
|
23660
23663
|
}
|
|
23661
|
-
function
|
|
23664
|
+
function Th(e, t, n) {
|
|
23662
23665
|
if (typeof e == "string") return n === void 0 ? {
|
|
23663
23666
|
label: e,
|
|
23664
23667
|
type: "property",
|
|
@@ -23678,17 +23681,17 @@ function wh(e, t, n) {
|
|
|
23678
23681
|
}
|
|
23679
23682
|
//#endregion
|
|
23680
23683
|
//#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
|
|
23681
|
-
var
|
|
23684
|
+
var Eh = (e) => {
|
|
23682
23685
|
let t;
|
|
23683
23686
|
return async () => (t ||= e(), await t);
|
|
23684
|
-
},
|
|
23687
|
+
}, Dh = class {
|
|
23685
23688
|
opts;
|
|
23686
23689
|
parser = null;
|
|
23687
23690
|
offsetRecord = {};
|
|
23688
23691
|
constructor(e = {}) {
|
|
23689
23692
|
this.opts = e;
|
|
23690
23693
|
}
|
|
23691
|
-
getParser =
|
|
23694
|
+
getParser = Eh(async () => {
|
|
23692
23695
|
if (this.parser) return this.parser;
|
|
23693
23696
|
let t = await import("./node-sql-parser-BiZOJ-FS.js").then((t) => /* @__PURE__ */ e(t.default, 1)), { Parser: n } = t.default || t;
|
|
23694
23697
|
return this.parser = new n(), this.parser;
|
|
@@ -23712,13 +23715,13 @@ var Th = (e) => {
|
|
|
23712
23715
|
}
|
|
23713
23716
|
async sanitizeSql(e, t) {
|
|
23714
23717
|
if (t?.ignoreBrackets) {
|
|
23715
|
-
let { sql: t, offsetRecord: n } =
|
|
23718
|
+
let { sql: t, offsetRecord: n } = Ah(e);
|
|
23716
23719
|
return this.offsetRecord = n, t;
|
|
23717
23720
|
}
|
|
23718
23721
|
return e;
|
|
23719
23722
|
}
|
|
23720
23723
|
async parseWithDuckDBSupport(e, t) {
|
|
23721
|
-
let n = await this.getParser(), r =
|
|
23724
|
+
let n = await this.getParser(), r = Oh(e).trimStart().toLowerCase();
|
|
23722
23725
|
if (r.startsWith("from") || r.includes("macro")) return {
|
|
23723
23726
|
success: !0,
|
|
23724
23727
|
errors: []
|
|
@@ -23796,24 +23799,24 @@ var Th = (e) => {
|
|
|
23796
23799
|
}
|
|
23797
23800
|
}
|
|
23798
23801
|
};
|
|
23799
|
-
function
|
|
23802
|
+
function Oh(e, t = ["/*", "--"]) {
|
|
23800
23803
|
let n = [];
|
|
23801
23804
|
if (t.includes("/*") && n.push("/\\*[\\s\\S]*?\\*/"), t.includes("--") && n.push("--[^\\n]*"), n.length === 0) return e;
|
|
23802
23805
|
let r = RegExp(`^\\s*(${n.join("|")})\\s*`, ""), i = e, a = "";
|
|
23803
23806
|
for (; i !== a;) a = i, i = i.replace(r, "");
|
|
23804
23807
|
return i;
|
|
23805
23808
|
}
|
|
23806
|
-
var
|
|
23807
|
-
function
|
|
23809
|
+
var kh = 2;
|
|
23810
|
+
function Ah(e) {
|
|
23808
23811
|
let t = {};
|
|
23809
23812
|
return {
|
|
23810
|
-
sql: e.replace(/("[^"\\]*(?:\\.[^"\\]*)*")|('[^'\\]*(?:\\.[^'\\]*)*')|(\{[^}]*\})/g, (e, n, r, i, a) => n || r ? e : i ? (t[a] =
|
|
23813
|
+
sql: e.replace(/("[^"\\]*(?:\\.[^"\\]*)*")|('[^'\\]*(?:\\.[^'\\]*)*')|(\{[^}]*\})/g, (e, n, r, i, a) => n || r ? e : i ? (t[a] = kh, `'${i}'`) : e),
|
|
23811
23814
|
offsetRecord: t
|
|
23812
23815
|
};
|
|
23813
23816
|
}
|
|
23814
23817
|
//#endregion
|
|
23815
23818
|
//#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
|
|
23816
|
-
function
|
|
23819
|
+
function jh() {
|
|
23817
23820
|
return {
|
|
23818
23821
|
tables: [],
|
|
23819
23822
|
ctes: [],
|
|
@@ -23821,79 +23824,79 @@ function Ah() {
|
|
|
23821
23824
|
selectAliases: []
|
|
23822
23825
|
};
|
|
23823
23826
|
}
|
|
23824
|
-
function
|
|
23827
|
+
function Mh(e) {
|
|
23825
23828
|
return typeof e == "object" && !!e && !Array.isArray(e);
|
|
23826
23829
|
}
|
|
23827
|
-
function
|
|
23830
|
+
function Nh(e) {
|
|
23828
23831
|
return Array.isArray(e) ? e : [];
|
|
23829
23832
|
}
|
|
23830
|
-
function
|
|
23833
|
+
function Ph(e) {
|
|
23831
23834
|
let t = e[0], n = e[e.length - 1];
|
|
23832
23835
|
return e.length >= 2 && (t === "\"" && n === "\"" || t === "'" && n === "'" || t === "`" && n === "`" || t === "[" && n === "]") ? e.slice(1, -1) : e;
|
|
23833
23836
|
}
|
|
23834
|
-
function Ph(e) {
|
|
23835
|
-
return typeof e == "string" ? e : jh(e) && typeof e.value == "string" ? e.value : null;
|
|
23836
|
-
}
|
|
23837
23837
|
function Fh(e) {
|
|
23838
|
-
|
|
23838
|
+
return typeof e == "string" ? e : Mh(e) && typeof e.value == "string" ? e.value : null;
|
|
23839
|
+
}
|
|
23840
|
+
function Ih(e) {
|
|
23841
|
+
if (!Mh(e) || e.type !== "column_ref") return null;
|
|
23839
23842
|
let t = e.column;
|
|
23840
23843
|
if (typeof t == "string") return t;
|
|
23841
|
-
if (
|
|
23842
|
-
let e = t.expr, n =
|
|
23844
|
+
if (Mh(t)) {
|
|
23845
|
+
let e = t.expr, n = Mh(e) ? e.value : t.value;
|
|
23843
23846
|
if (typeof n == "string") return n;
|
|
23844
23847
|
}
|
|
23845
23848
|
return null;
|
|
23846
23849
|
}
|
|
23847
|
-
function
|
|
23848
|
-
let t =
|
|
23850
|
+
function Lh(e) {
|
|
23851
|
+
let t = Nh(e.columns).map((e) => Fh(e) ?? Ih(e) ?? Fh(e.column)).filter((e) => typeof e == "string");
|
|
23849
23852
|
if (t.length > 0) return t;
|
|
23850
|
-
let n = e.stmt, r =
|
|
23851
|
-
if (!
|
|
23853
|
+
let n = e.stmt, r = Mh(n) ? n.ast ?? n : null;
|
|
23854
|
+
if (!Mh(r) || r.type !== "select") return [];
|
|
23852
23855
|
let i = [];
|
|
23853
|
-
for (let e of
|
|
23856
|
+
for (let e of Nh(r.columns)) if (typeof e.as == "string") i.push(e.as);
|
|
23854
23857
|
else {
|
|
23855
|
-
let t =
|
|
23858
|
+
let t = Ih(e.expr);
|
|
23856
23859
|
t && t !== "*" && i.push(t);
|
|
23857
23860
|
}
|
|
23858
23861
|
return i;
|
|
23859
23862
|
}
|
|
23860
|
-
function
|
|
23863
|
+
function Rh(e, t) {
|
|
23861
23864
|
if (typeof e.table != "string" || e.table.length === 0) return;
|
|
23862
23865
|
let n = [
|
|
23863
23866
|
e.db ?? e.catalog,
|
|
23864
23867
|
e.schema,
|
|
23865
23868
|
e.table
|
|
23866
|
-
].filter((e) => typeof e == "string" && e.length > 0).map(
|
|
23869
|
+
].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() ?? ""}`;
|
|
23867
23870
|
t.seenTables.has(i) || (t.seenTables.add(i), t.tables.push({
|
|
23868
|
-
name:
|
|
23871
|
+
name: Ph(e.table),
|
|
23869
23872
|
path: n,
|
|
23870
23873
|
...r ? { alias: r } : {}
|
|
23871
23874
|
}));
|
|
23872
23875
|
}
|
|
23873
|
-
function
|
|
23876
|
+
function zh(e, t, n) {
|
|
23874
23877
|
if (Array.isArray(e)) {
|
|
23875
|
-
for (let r of e)
|
|
23878
|
+
for (let r of e) zh(r, t, n);
|
|
23876
23879
|
return;
|
|
23877
23880
|
}
|
|
23878
|
-
if (!(!
|
|
23881
|
+
if (!(!Mh(e) || n.has(e))) {
|
|
23879
23882
|
n.add(e);
|
|
23880
|
-
for (let n of
|
|
23881
|
-
let e =
|
|
23883
|
+
for (let n of Nh(e.with)) {
|
|
23884
|
+
let e = Fh(n.name);
|
|
23882
23885
|
e && !t.seenCtes.has(e.toLowerCase()) && (t.seenCtes.add(e.toLowerCase()), t.ctes.push({
|
|
23883
|
-
name:
|
|
23884
|
-
columns:
|
|
23886
|
+
name: Ph(e),
|
|
23887
|
+
columns: Lh(n).map(Ph),
|
|
23885
23888
|
from: -1,
|
|
23886
23889
|
to: -1
|
|
23887
23890
|
}));
|
|
23888
23891
|
}
|
|
23889
|
-
for (let n of ["from", "table"]) for (let r of
|
|
23890
|
-
for (let [r, i] of Object.entries(e)) r !== "loc" && r !== "tableList" && r !== "columnList" &&
|
|
23892
|
+
for (let n of ["from", "table"]) for (let r of Nh(e[n])) Rh(r, t);
|
|
23893
|
+
for (let [r, i] of Object.entries(e)) r !== "loc" && r !== "tableList" && r !== "columnList" && zh(i, t, n);
|
|
23891
23894
|
}
|
|
23892
23895
|
}
|
|
23893
|
-
function zh(e, t) {
|
|
23894
|
-
if (e.type === "select") for (let n of Mh(e.columns)) typeof n.as == "string" && t.selectAliases.push(Nh(n.as));
|
|
23895
|
-
}
|
|
23896
23896
|
function Bh(e, t) {
|
|
23897
|
+
if (e.type === "select") for (let n of Nh(e.columns)) typeof n.as == "string" && t.selectAliases.push(Ph(n.as));
|
|
23898
|
+
}
|
|
23899
|
+
function Vh(e, t) {
|
|
23897
23900
|
let n = t.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), r = `(?:"${n}"|\`${n}\`|\\[${n}\\]|\\b${n})`, i = RegExp(`(${r})\\s*(?:\\([^)]*\\)\\s*)?AS\\s*\\(`, "i").exec(e);
|
|
23898
23901
|
return !i || i.index < 0 || !i[1] ? {
|
|
23899
23902
|
from: -1,
|
|
@@ -23903,8 +23906,8 @@ function Bh(e, t) {
|
|
|
23903
23906
|
to: i.index + i[1].length
|
|
23904
23907
|
};
|
|
23905
23908
|
}
|
|
23906
|
-
var
|
|
23907
|
-
function
|
|
23909
|
+
var Hh = /* @__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(".")), Uh = String.raw`(?:[\w$]+|"[^"]+"|\`[^\`]+\`|\[[^\]]+\])`, Wh = `(?!(?:${[...Hh].join("|")})\\b)`, Gh = new RegExp(String.raw`\b(?:from|join)\s+(${Uh}(?:\.${Uh})*)(?:\s+(?:as\s+)?${Wh}(${Uh}))?`, "gi");
|
|
23910
|
+
function Kh(e) {
|
|
23908
23911
|
let t = e.split(""), n = 0;
|
|
23909
23912
|
for (; n < e.length;) {
|
|
23910
23913
|
let r = e[n], i = e[n + 1];
|
|
@@ -23941,45 +23944,45 @@ function Gh(e) {
|
|
|
23941
23944
|
}
|
|
23942
23945
|
return t.join("");
|
|
23943
23946
|
}
|
|
23944
|
-
function
|
|
23947
|
+
function qh(e) {
|
|
23945
23948
|
let t = {
|
|
23946
23949
|
tables: [],
|
|
23947
23950
|
ctes: [],
|
|
23948
23951
|
selectAliases: [],
|
|
23949
23952
|
seenTables: /* @__PURE__ */ new Set(),
|
|
23950
23953
|
seenCtes: /* @__PURE__ */ new Set()
|
|
23951
|
-
}, n =
|
|
23952
|
-
|
|
23953
|
-
let r =
|
|
23954
|
+
}, n = Kh(e);
|
|
23955
|
+
Jh(n, t), Gh.lastIndex = 0;
|
|
23956
|
+
let r = Gh.exec(n);
|
|
23954
23957
|
for (; r !== null;) {
|
|
23955
23958
|
let e = r[1], i = r[2];
|
|
23956
23959
|
if (e) {
|
|
23957
|
-
let n = e.split(".").map(
|
|
23960
|
+
let n = e.split(".").map(Ph), r = n[n.length - 1] ?? "", a = i && !Hh.has(i.toLowerCase()) ? Ph(i) : void 0, o = `${n.join(".").toLowerCase()}::${a?.toLowerCase() ?? ""}`;
|
|
23958
23961
|
r && !t.seenTables.has(o) && (t.seenTables.add(o), t.tables.push({
|
|
23959
23962
|
name: r,
|
|
23960
23963
|
path: n,
|
|
23961
23964
|
...a ? { alias: a } : {}
|
|
23962
23965
|
}));
|
|
23963
23966
|
}
|
|
23964
|
-
r =
|
|
23967
|
+
r = Gh.exec(n);
|
|
23965
23968
|
}
|
|
23966
|
-
return
|
|
23969
|
+
return Zh(t);
|
|
23967
23970
|
}
|
|
23968
|
-
function
|
|
23969
|
-
let n = /\bWITH\s+(?:RECURSIVE\s+)?/gi, r = new RegExp(String.raw`^(${
|
|
23971
|
+
function Jh(e, t) {
|
|
23972
|
+
let n = /\bWITH\s+(?:RECURSIVE\s+)?/gi, r = new RegExp(String.raw`^(${Uh})\s*(?:\(([^)]*)\)\s*)?AS\s*\(`, "i"), i = n.exec(e);
|
|
23970
23973
|
for (; i !== null;) {
|
|
23971
23974
|
let a = i.index + i[0].length;
|
|
23972
23975
|
for (;;) {
|
|
23973
|
-
let n = r.exec(e.slice(a)), i = n?.[1], o = i ?
|
|
23976
|
+
let n = r.exec(e.slice(a)), i = n?.[1], o = i ? Ph(i) : void 0;
|
|
23974
23977
|
if (!n || !i || !o) break;
|
|
23975
23978
|
let s = a + n[0].length, c = s, l = 1;
|
|
23976
23979
|
for (; c < e.length && l > 0;) e[c] === "(" ? l++ : e[c] === ")" && l--, c++;
|
|
23977
23980
|
if (!t.seenCtes.has(o.toLowerCase())) {
|
|
23978
23981
|
t.seenCtes.add(o.toLowerCase());
|
|
23979
|
-
let r = (n[2] ?? "").split(",").map((e) =>
|
|
23982
|
+
let r = (n[2] ?? "").split(",").map((e) => Ph(e.trim())).filter((e) => e.length > 0);
|
|
23980
23983
|
t.ctes.push({
|
|
23981
23984
|
name: o,
|
|
23982
|
-
columns: r.length > 0 ? r :
|
|
23985
|
+
columns: r.length > 0 ? r : Xh(e.slice(s, Math.max(s, c - 1))),
|
|
23983
23986
|
from: a,
|
|
23984
23987
|
to: a + i.length
|
|
23985
23988
|
});
|
|
@@ -23991,19 +23994,19 @@ function qh(e, t) {
|
|
|
23991
23994
|
i = n.exec(e);
|
|
23992
23995
|
}
|
|
23993
23996
|
}
|
|
23994
|
-
function
|
|
23997
|
+
function Yh(e) {
|
|
23995
23998
|
let t = [], n = 0, r = "";
|
|
23996
23999
|
for (let i of e) i === "(" ? n++ : i === ")" && (n = Math.max(0, n - 1)), i === "," && n === 0 ? (t.push(r), r = "") : r += i;
|
|
23997
24000
|
return t.push(r), t;
|
|
23998
24001
|
}
|
|
23999
|
-
function
|
|
24002
|
+
function Xh(e) {
|
|
24000
24003
|
let t = /^\s*SELECT\s+(?:DISTINCT\s+)?([\s\S]*?)\s+FROM\s/i.exec(e);
|
|
24001
24004
|
if (!t || !t[1]) return [];
|
|
24002
24005
|
let n = [];
|
|
24003
|
-
for (let e of
|
|
24004
|
-
let t = e.trim(), r = new RegExp(String.raw`\s+AS\s+(${
|
|
24006
|
+
for (let e of Yh(t[1])) {
|
|
24007
|
+
let t = e.trim(), r = new RegExp(String.raw`\s+AS\s+(${Uh})$`, "i").exec(t);
|
|
24005
24008
|
if (r?.[1]) {
|
|
24006
|
-
n.push(
|
|
24009
|
+
n.push(Ph(r[1]));
|
|
24007
24010
|
continue;
|
|
24008
24011
|
}
|
|
24009
24012
|
if (/^(?:[\w$]+\.)*[\w$]+$/.test(t)) {
|
|
@@ -24013,7 +24016,7 @@ function Yh(e) {
|
|
|
24013
24016
|
}
|
|
24014
24017
|
return n;
|
|
24015
24018
|
}
|
|
24016
|
-
function
|
|
24019
|
+
function Zh(e) {
|
|
24017
24020
|
let t = /* @__PURE__ */ new Map();
|
|
24018
24021
|
for (let n of e.tables) if (n.alias) {
|
|
24019
24022
|
let e = n.alias.toLowerCase();
|
|
@@ -24026,14 +24029,14 @@ function Xh(e) {
|
|
|
24026
24029
|
selectAliases: e.selectAliases
|
|
24027
24030
|
};
|
|
24028
24031
|
}
|
|
24029
|
-
async function
|
|
24030
|
-
if (!e.trim()) return
|
|
24032
|
+
async function Qh(e, t, n) {
|
|
24033
|
+
if (!e.trim()) return jh();
|
|
24031
24034
|
let r = null;
|
|
24032
24035
|
try {
|
|
24033
24036
|
let i = await t.parse(e, n);
|
|
24034
24037
|
i.success && i.ast != null && (r = i.ast);
|
|
24035
24038
|
} catch {}
|
|
24036
|
-
if (r == null) return
|
|
24039
|
+
if (r == null) return qh(e);
|
|
24037
24040
|
try {
|
|
24038
24041
|
let t = {
|
|
24039
24042
|
tables: [],
|
|
@@ -24042,29 +24045,29 @@ async function Zh(e, t, n) {
|
|
|
24042
24045
|
seenTables: /* @__PURE__ */ new Set(),
|
|
24043
24046
|
seenCtes: /* @__PURE__ */ new Set()
|
|
24044
24047
|
}, n = Array.isArray(r) ? r : [r];
|
|
24045
|
-
for (let e of n)
|
|
24046
|
-
|
|
24047
|
-
let i =
|
|
24048
|
+
for (let e of n) Mh(e) && Bh(e, t);
|
|
24049
|
+
zh(r, t, /* @__PURE__ */ new Set());
|
|
24050
|
+
let i = Kh(e);
|
|
24048
24051
|
for (let e of t.ctes) {
|
|
24049
|
-
let t =
|
|
24052
|
+
let t = Vh(i, e.name);
|
|
24050
24053
|
e.from = t.from, e.to = t.to;
|
|
24051
24054
|
}
|
|
24052
|
-
return
|
|
24055
|
+
return Zh(t);
|
|
24053
24056
|
} catch {
|
|
24054
|
-
return
|
|
24057
|
+
return qh(e);
|
|
24055
24058
|
}
|
|
24056
24059
|
}
|
|
24057
|
-
var
|
|
24060
|
+
var $h = class {
|
|
24058
24061
|
parser;
|
|
24059
24062
|
cache = /* @__PURE__ */ new Map();
|
|
24060
24063
|
MAX_CACHE_SIZE = 20;
|
|
24061
|
-
constructor(e = new
|
|
24064
|
+
constructor(e = new Dh()) {
|
|
24062
24065
|
this.parser = e;
|
|
24063
24066
|
}
|
|
24064
24067
|
async getContext(e, t) {
|
|
24065
24068
|
let n = this.cache.get(e);
|
|
24066
24069
|
if (n) return n;
|
|
24067
|
-
let r = await
|
|
24070
|
+
let r = await Qh(e, this.parser, t);
|
|
24068
24071
|
if (this.cache.set(e, r), this.cache.size > this.MAX_CACHE_SIZE) {
|
|
24069
24072
|
let e = this.cache.keys().next().value;
|
|
24070
24073
|
e !== void 0 && this.cache.delete(e);
|
|
@@ -24074,7 +24077,7 @@ var Qh = class {
|
|
|
24074
24077
|
clearCache() {
|
|
24075
24078
|
this.cache.clear();
|
|
24076
24079
|
}
|
|
24077
|
-
},
|
|
24080
|
+
}, eg = class {
|
|
24078
24081
|
parser;
|
|
24079
24082
|
cache = /* @__PURE__ */ new Map();
|
|
24080
24083
|
MAX_CACHE_SIZE = 10;
|
|
@@ -24206,53 +24209,53 @@ var Qh = class {
|
|
|
24206
24209
|
};
|
|
24207
24210
|
//#endregion
|
|
24208
24211
|
//#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
|
|
24209
|
-
function
|
|
24210
|
-
let t = e.parser ?? new
|
|
24212
|
+
function tg(e = {}) {
|
|
24213
|
+
let t = e.parser ?? new Dh(), n = e.contextAnalyzer ?? new $h(t), r = new eg(t);
|
|
24211
24214
|
return async (t) => {
|
|
24212
24215
|
let i = t.matchBefore(/(?:[\w$]+|"[^"]+"|`[^`]+`|\[[^\]]+\])\.[\w$]*/);
|
|
24213
24216
|
if (!i || t.state.sliceDoc(Math.max(0, i.from - 1), i.from) === ".") return null;
|
|
24214
|
-
let a = i.text.lastIndexOf("."), o =
|
|
24217
|
+
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());
|
|
24215
24218
|
if (!u) return null;
|
|
24216
24219
|
let d = null, f = l.ctes.find((e) => e.name.toLowerCase() === u.toLowerCase());
|
|
24217
24220
|
if (f && f.columns.length > 0) d = f.columns;
|
|
24218
24221
|
else if (!f) {
|
|
24219
|
-
let n =
|
|
24220
|
-
n != null && (d =
|
|
24222
|
+
let n = Sh(e.schema, t);
|
|
24223
|
+
n != null && (d = wh(n, u));
|
|
24221
24224
|
}
|
|
24222
24225
|
if (!d || d.length === 0) return null;
|
|
24223
24226
|
let p = `column of ${u}`;
|
|
24224
24227
|
return {
|
|
24225
24228
|
from: i.from + a + 1,
|
|
24226
|
-
options: d.map((e) =>
|
|
24229
|
+
options: d.map((e) => Th(e, p)),
|
|
24227
24230
|
validFor: /^[\w$]*$/
|
|
24228
24231
|
};
|
|
24229
24232
|
};
|
|
24230
24233
|
}
|
|
24231
24234
|
//#endregion
|
|
24232
24235
|
//#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
|
|
24233
|
-
var
|
|
24234
|
-
function
|
|
24235
|
-
let t = e.parser ?? new
|
|
24236
|
+
var ng = 1, rg = /\b(?:from|join|into|update|table)\s+$/i, ig = /\bfrom\s+[\w$."`[\]]+(?:\s+(?:as\s+)?[\w$"`[\]]+)?(?:\s*,\s*[\w$."`[\]]+(?:\s+(?:as\s+)?[\w$"`[\]]+)?)*\s*,\s*$/i;
|
|
24237
|
+
function ag(e = {}) {
|
|
24238
|
+
let t = e.parser ?? new Dh(), n = e.contextAnalyzer ?? new $h(t), r = new eg(t);
|
|
24236
24239
|
return async (t) => {
|
|
24237
24240
|
let i = t.matchBefore(/[\w$]*/);
|
|
24238
24241
|
if (!i || i.from === i.to && !t.explicit || t.state.sliceDoc(Math.max(0, i.from - 1), i.from) === ".") return null;
|
|
24239
24242
|
let a = t.state.sliceDoc(Math.max(0, i.from - 256), i.from);
|
|
24240
|
-
if (
|
|
24241
|
-
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 =
|
|
24243
|
+
if (rg.test(a) || ig.test(a)) return null;
|
|
24244
|
+
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 = Kh(c), u = Math.max(s, i.from - 1) - s, d = i.to - s;
|
|
24242
24245
|
if (l.slice(u, d) !== c.slice(u, d)) return null;
|
|
24243
24246
|
let f = await n.getContext(c, { state: t.state });
|
|
24244
24247
|
if (f.tables.length === 0) return null;
|
|
24245
|
-
let p =
|
|
24248
|
+
let p = Sh(e.schema, t), m = [], h = /* @__PURE__ */ new Set(), g = /* @__PURE__ */ new Set();
|
|
24246
24249
|
for (let e of f.tables) {
|
|
24247
24250
|
let t = e.path.join(".").toLowerCase();
|
|
24248
24251
|
if (g.has(t)) continue;
|
|
24249
24252
|
g.add(t);
|
|
24250
24253
|
let n = f.ctes.find((t) => t.name.toLowerCase() === e.name.toLowerCase()), r = null;
|
|
24251
|
-
if (n ? r = n.columns.length > 0 ? n.columns : null : p != null && (r =
|
|
24254
|
+
if (n ? r = n.columns.length > 0 ? n.columns : null : p != null && (r = wh(p, e.path)), !r) continue;
|
|
24252
24255
|
let i = `column of ${e.name}`;
|
|
24253
24256
|
for (let e of r) {
|
|
24254
24257
|
let t = (typeof e == "string" ? e : e.label).toLowerCase();
|
|
24255
|
-
h.has(t) || (h.add(t), m.push(
|
|
24258
|
+
h.has(t) || (h.add(t), m.push(Th(e, i, ng)));
|
|
24256
24259
|
}
|
|
24257
24260
|
}
|
|
24258
24261
|
return m.length === 0 ? null : {
|
|
@@ -24264,30 +24267,30 @@ function ig(e = {}) {
|
|
|
24264
24267
|
}
|
|
24265
24268
|
//#endregion
|
|
24266
24269
|
//#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
|
|
24267
|
-
var
|
|
24268
|
-
function
|
|
24270
|
+
var og = /[\w$]/, sg = /"[^"]*"|`[^`]*`|\[[^\]]*\]/g;
|
|
24271
|
+
function cg(e, t) {
|
|
24269
24272
|
let n = e.doc.lineAt(t), r = n.text, i = t - n.from;
|
|
24270
|
-
|
|
24271
|
-
let a =
|
|
24273
|
+
sg.lastIndex = 0;
|
|
24274
|
+
let a = sg.exec(r);
|
|
24272
24275
|
for (; a !== null && a.index <= i;) {
|
|
24273
24276
|
let e = a.index + a[0].length;
|
|
24274
24277
|
if (i <= e) return {
|
|
24275
24278
|
from: n.from + a.index,
|
|
24276
24279
|
to: n.from + e,
|
|
24277
|
-
text:
|
|
24280
|
+
text: Ph(a[0])
|
|
24278
24281
|
};
|
|
24279
|
-
a =
|
|
24282
|
+
a = sg.exec(r);
|
|
24280
24283
|
}
|
|
24281
24284
|
let o = i, s = i;
|
|
24282
|
-
for (; o > 0 &&
|
|
24283
|
-
for (; s < r.length &&
|
|
24285
|
+
for (; o > 0 && og.test(r[o - 1] ?? "");) o--;
|
|
24286
|
+
for (; s < r.length && og.test(r[s] ?? "");) s++;
|
|
24284
24287
|
return o === s ? null : {
|
|
24285
24288
|
from: n.from + o,
|
|
24286
24289
|
to: n.from + s,
|
|
24287
24290
|
text: r.slice(o, s)
|
|
24288
24291
|
};
|
|
24289
24292
|
}
|
|
24290
|
-
async function
|
|
24293
|
+
async function lg(e, t, n) {
|
|
24291
24294
|
let r = await e.analyzeDocument(t), i = null;
|
|
24292
24295
|
for (let e of r) {
|
|
24293
24296
|
if (n >= e.from && n <= e.to) return e;
|
|
@@ -24295,15 +24298,15 @@ async function cg(e, t, n) {
|
|
|
24295
24298
|
}
|
|
24296
24299
|
return i;
|
|
24297
24300
|
}
|
|
24298
|
-
function
|
|
24301
|
+
function ug(e) {
|
|
24299
24302
|
return e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
24300
24303
|
}
|
|
24301
|
-
function
|
|
24302
|
-
let n =
|
|
24304
|
+
function dg(e, t = {}) {
|
|
24305
|
+
let n = ug(e);
|
|
24303
24306
|
return `(?:"${n}"|\`${n}\`|\\[${n}\\]|${t.allowLeadingDot ? "(?<![\\w$])" : "(?<![\\w$.])"}${n}(?![\\w$]))`;
|
|
24304
24307
|
}
|
|
24305
|
-
function
|
|
24306
|
-
let r = new RegExp(
|
|
24308
|
+
function fg(e, t, n = {}) {
|
|
24309
|
+
let r = new RegExp(dg(t), "gi"), i = [], a = r.exec(e);
|
|
24307
24310
|
for (; a !== null;) {
|
|
24308
24311
|
let t = a.index + a[0].length;
|
|
24309
24312
|
(!n.followedByDot || e[t] === ".") && i.push({
|
|
@@ -24313,19 +24316,19 @@ function dg(e, t, n = {}) {
|
|
|
24313
24316
|
}
|
|
24314
24317
|
return i;
|
|
24315
24318
|
}
|
|
24316
|
-
function
|
|
24319
|
+
function pg(e) {
|
|
24317
24320
|
let t = [], n = 0;
|
|
24318
24321
|
for (let r = 0; r < e.length; r++) e[r] === ")" && (n = Math.max(0, n - 1)), t[r] = n, e[r] === "(" && n++;
|
|
24319
24322
|
return t;
|
|
24320
24323
|
}
|
|
24321
|
-
var
|
|
24322
|
-
function
|
|
24323
|
-
|
|
24324
|
-
let t = null, n =
|
|
24325
|
-
for (; n !== null;) t = (n[1] ?? "").toLowerCase(), n =
|
|
24324
|
+
var mg = /\b(select|from|where|having|qualify|on|set|values|by|join|limit|offset|union|intersect|except|window)\b/gi;
|
|
24325
|
+
function hg(e) {
|
|
24326
|
+
mg.lastIndex = 0;
|
|
24327
|
+
let t = null, n = mg.exec(e);
|
|
24328
|
+
for (; n !== null;) t = (n[1] ?? "").toLowerCase(), n = mg.exec(e);
|
|
24326
24329
|
return t;
|
|
24327
24330
|
}
|
|
24328
|
-
function
|
|
24331
|
+
function gg(e, t) {
|
|
24329
24332
|
let n = t - 1;
|
|
24330
24333
|
for (;;) {
|
|
24331
24334
|
for (; n >= 0 && /\s/.test(e[n] ?? "");) n--;
|
|
@@ -24336,34 +24339,34 @@ function hg(e, t) {
|
|
|
24336
24339
|
let r = t === "]" ? "[" : t;
|
|
24337
24340
|
for (n--; n >= 0 && e[n] !== r;) n--;
|
|
24338
24341
|
n--;
|
|
24339
|
-
} else for (; n >= 0 &&
|
|
24342
|
+
} else for (; n >= 0 && og.test(e[n] ?? "");) n--;
|
|
24340
24343
|
continue;
|
|
24341
24344
|
}
|
|
24342
24345
|
break;
|
|
24343
24346
|
}
|
|
24344
24347
|
if (n < 0) return !1;
|
|
24345
|
-
if (e[n] === ",") return
|
|
24348
|
+
if (e[n] === ",") return hg(e.slice(0, n)) === "from";
|
|
24346
24349
|
let r = /([A-Za-z_]+)$/.exec(e.slice(0, n + 1))?.[1]?.toLowerCase();
|
|
24347
24350
|
return r === "from" || r === "join";
|
|
24348
24351
|
}
|
|
24349
|
-
function
|
|
24352
|
+
function _g(e) {
|
|
24350
24353
|
let t = /* @__PURE__ */ new Map();
|
|
24351
24354
|
for (let n of e) t.has(n.from) || t.set(n.from, n);
|
|
24352
24355
|
return [...t.values()].sort((e, t) => e.from - t.from);
|
|
24353
24356
|
}
|
|
24354
|
-
function
|
|
24357
|
+
function vg(e, t) {
|
|
24355
24358
|
return e.some((e) => e.from <= t.from && t.to <= e.to);
|
|
24356
24359
|
}
|
|
24357
|
-
function
|
|
24358
|
-
let r =
|
|
24360
|
+
function yg(e, t, n) {
|
|
24361
|
+
let r = Kh(e), i = n.text.toLowerCase(), a = t.selectAliases.some((e) => e.toLowerCase() === i), o = t.ctes.find((e) => e.name.toLowerCase() === i);
|
|
24359
24362
|
if (o) {
|
|
24360
24363
|
let e = t.aliases.get(i);
|
|
24361
24364
|
if (e && e.toLowerCase() !== i || a || o.from < 0) return null;
|
|
24362
24365
|
let s = {
|
|
24363
24366
|
from: o.from,
|
|
24364
24367
|
to: o.to
|
|
24365
|
-
}, c =
|
|
24366
|
-
return
|
|
24368
|
+
}, c = _g([s, ...fg(r, o.name).filter((e) => r[e.to] === "." || gg(r, e.from))]);
|
|
24369
|
+
return vg(c, n) ? {
|
|
24367
24370
|
kind: "cte",
|
|
24368
24371
|
name: o.name,
|
|
24369
24372
|
definition: s,
|
|
@@ -24374,14 +24377,14 @@ function vg(e, t, n) {
|
|
|
24374
24377
|
if (a) return null;
|
|
24375
24378
|
let e = t.tables.filter((e) => e.alias?.toLowerCase() === i);
|
|
24376
24379
|
if (e.length !== 1 || !e[0]) return null;
|
|
24377
|
-
let o = e[0], s = o.alias ?? n.text, c =
|
|
24378
|
-
for (; u !== null && !
|
|
24380
|
+
let o = e[0], s = o.alias ?? n.text, c = dg(o.name, { allowLeadingDot: !0 }), l = RegExp(`${c}\\s+(?:AS\\s+)?(${dg(s)})`, "gi"), u = l.exec(r);
|
|
24381
|
+
for (; u !== null && !gg(r, u.index);) u = l.exec(r);
|
|
24379
24382
|
if (!u || u[1] == null) return null;
|
|
24380
24383
|
let d = {
|
|
24381
24384
|
from: u.index + u[0].length - u[1].length,
|
|
24382
24385
|
to: u.index + u[0].length
|
|
24383
|
-
}, f =
|
|
24384
|
-
return
|
|
24386
|
+
}, f = _g([d, ...fg(r, s, { followedByDot: !0 })]);
|
|
24387
|
+
return vg(f, n) ? {
|
|
24385
24388
|
kind: "table-alias",
|
|
24386
24389
|
name: s,
|
|
24387
24390
|
definition: d,
|
|
@@ -24390,7 +24393,7 @@ function vg(e, t, n) {
|
|
|
24390
24393
|
}
|
|
24391
24394
|
let s = t.selectAliases.find((e) => e.toLowerCase() === i);
|
|
24392
24395
|
if (s) {
|
|
24393
|
-
let e =
|
|
24396
|
+
let e = pg(r), t = (t) => e[t] === 0, i = bg(r, /\bFROM\b/gi, t), a = i ? i.index : r.length, o = RegExp(`\\bAS\\s+(${dg(s)})`, "gi"), c = null, l = o.exec(r);
|
|
24394
24397
|
for (; l !== null;) {
|
|
24395
24398
|
let e = l.index + l[0].length - (l[1]?.length ?? 0);
|
|
24396
24399
|
if (t(l.index) && e < a) {
|
|
@@ -24403,8 +24406,8 @@ function vg(e, t, n) {
|
|
|
24403
24406
|
l = o.exec(r);
|
|
24404
24407
|
}
|
|
24405
24408
|
if (!c) return null;
|
|
24406
|
-
let u =
|
|
24407
|
-
return
|
|
24409
|
+
let u = Cg(r, t), d = fg(r, s).filter((e) => u.some((t) => e.from >= t.from && e.to <= t.to)), f = _g([c, ...d]);
|
|
24410
|
+
return vg(f, n) ? {
|
|
24408
24411
|
kind: "select-alias",
|
|
24409
24412
|
name: s,
|
|
24410
24413
|
definition: c,
|
|
@@ -24413,7 +24416,7 @@ function vg(e, t, n) {
|
|
|
24413
24416
|
}
|
|
24414
24417
|
return null;
|
|
24415
24418
|
}
|
|
24416
|
-
function
|
|
24419
|
+
function bg(e, t, n) {
|
|
24417
24420
|
let r = t.exec(e);
|
|
24418
24421
|
for (; r !== null;) {
|
|
24419
24422
|
if (n(r.index)) return r;
|
|
@@ -24421,45 +24424,45 @@ function yg(e, t, n) {
|
|
|
24421
24424
|
}
|
|
24422
24425
|
return null;
|
|
24423
24426
|
}
|
|
24424
|
-
var
|
|
24425
|
-
function
|
|
24427
|
+
var xg = /\b(?:GROUP\s+BY|ORDER\s+BY|HAVING|QUALIFY)\b/gi, Sg = /\b(?:GROUP\s+BY|ORDER\s+BY|HAVING|QUALIFY|LIMIT|OFFSET|FETCH|WINDOW|UNION|INTERSECT|EXCEPT)\b/gi;
|
|
24428
|
+
function Cg(e, t) {
|
|
24426
24429
|
let n = [];
|
|
24427
|
-
|
|
24428
|
-
let r =
|
|
24430
|
+
xg.lastIndex = 0;
|
|
24431
|
+
let r = xg.exec(e);
|
|
24429
24432
|
for (; r !== null;) {
|
|
24430
24433
|
if (t(r.index)) {
|
|
24431
24434
|
let i = r.index + r[0].length;
|
|
24432
|
-
|
|
24433
|
-
let a = e.length, o =
|
|
24435
|
+
Sg.lastIndex = i;
|
|
24436
|
+
let a = e.length, o = Sg.exec(e);
|
|
24434
24437
|
for (; o !== null;) {
|
|
24435
24438
|
if (t(o.index)) {
|
|
24436
24439
|
a = o.index;
|
|
24437
24440
|
break;
|
|
24438
24441
|
}
|
|
24439
|
-
o =
|
|
24442
|
+
o = Sg.exec(e);
|
|
24440
24443
|
}
|
|
24441
24444
|
n.push({
|
|
24442
24445
|
from: i,
|
|
24443
24446
|
to: a
|
|
24444
24447
|
});
|
|
24445
24448
|
}
|
|
24446
|
-
r =
|
|
24449
|
+
r = xg.exec(e);
|
|
24447
24450
|
}
|
|
24448
24451
|
return n;
|
|
24449
24452
|
}
|
|
24450
|
-
var
|
|
24453
|
+
var wg = class {
|
|
24451
24454
|
structureAnalyzer;
|
|
24452
24455
|
contextAnalyzer;
|
|
24453
24456
|
constructor(e = {}) {
|
|
24454
|
-
let t = e.parser ?? new
|
|
24455
|
-
this.structureAnalyzer = e.structureAnalyzer ?? new
|
|
24457
|
+
let t = e.parser ?? new Dh();
|
|
24458
|
+
this.structureAnalyzer = e.structureAnalyzer ?? new eg(t), this.contextAnalyzer = e.contextAnalyzer ?? new $h(t);
|
|
24456
24459
|
}
|
|
24457
24460
|
async resolve(e, t) {
|
|
24458
|
-
let n =
|
|
24461
|
+
let n = cg(e, t);
|
|
24459
24462
|
if (!n) return null;
|
|
24460
|
-
let r = await
|
|
24463
|
+
let r = await lg(this.structureAnalyzer, e, t);
|
|
24461
24464
|
if (!r || n.from < r.from || n.to > r.to) return null;
|
|
24462
|
-
let i = e.sliceDoc(r.from, r.to), a =
|
|
24465
|
+
let i = e.sliceDoc(r.from, r.to), a = yg(i, await this.contextAnalyzer.getContext(i, { state: e }), {
|
|
24463
24466
|
from: n.from - r.from,
|
|
24464
24467
|
to: n.to - r.from,
|
|
24465
24468
|
text: n.text
|
|
@@ -24475,54 +24478,54 @@ var Cg = class {
|
|
|
24475
24478
|
references: a.references.map(o)
|
|
24476
24479
|
};
|
|
24477
24480
|
}
|
|
24478
|
-
},
|
|
24479
|
-
function
|
|
24481
|
+
}, Tg = /([\w$]+|"[^"]+"|`[^`]+`|\[[^\]]+\])$/;
|
|
24482
|
+
function Eg(e) {
|
|
24480
24483
|
return /\b(?:from|join)\s+$/i.test(e);
|
|
24481
24484
|
}
|
|
24482
|
-
function
|
|
24485
|
+
function Dg(e) {
|
|
24483
24486
|
return /^[A-Za-z_][\w$]*$/.test(e);
|
|
24484
24487
|
}
|
|
24485
|
-
function
|
|
24488
|
+
function Og(e) {
|
|
24486
24489
|
return {
|
|
24487
24490
|
label: e.name,
|
|
24488
24491
|
type: "variable",
|
|
24489
24492
|
info: `Common Table Expression: ${e.name}`,
|
|
24490
24493
|
boost: 10,
|
|
24491
|
-
...
|
|
24494
|
+
...Dg(e.name) ? {} : { apply: `"${e.name}"` }
|
|
24492
24495
|
};
|
|
24493
24496
|
}
|
|
24494
|
-
function
|
|
24497
|
+
function kg(e) {
|
|
24495
24498
|
return e.columns.map((t) => ({
|
|
24496
24499
|
label: t,
|
|
24497
24500
|
type: "property",
|
|
24498
24501
|
detail: `column of ${e.name}`,
|
|
24499
24502
|
boost: 5,
|
|
24500
|
-
...
|
|
24503
|
+
...Dg(t) ? {} : { apply: `"${t}"` }
|
|
24501
24504
|
}));
|
|
24502
24505
|
}
|
|
24503
|
-
function
|
|
24504
|
-
let t = e.parser ?? new
|
|
24506
|
+
function Ag(e = {}) {
|
|
24507
|
+
let t = e.parser ?? new Dh(), n = e.contextAnalyzer ?? new $h(t), r = e.structureAnalyzer ?? new eg(t);
|
|
24505
24508
|
return async (e) => {
|
|
24506
24509
|
let t = e.matchBefore(/[\w$]*/);
|
|
24507
24510
|
if (!t) return null;
|
|
24508
24511
|
let i = e.state.sliceDoc(Math.max(0, t.from - 1), t.from) === ".";
|
|
24509
24512
|
if (t.from === t.to && !e.explicit && !i) return null;
|
|
24510
|
-
let a = await
|
|
24513
|
+
let a = await lg(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 });
|
|
24511
24514
|
if (s.ctes.length === 0) return null;
|
|
24512
24515
|
if (i) {
|
|
24513
|
-
let n = e.state.doc.lineAt(t.from), r = e.state.sliceDoc(n.from, t.from - 1), i =
|
|
24516
|
+
let n = e.state.doc.lineAt(t.from), r = e.state.sliceDoc(n.from, t.from - 1), i = Tg.exec(r);
|
|
24514
24517
|
if (!i || !i[1] || r.slice(0, r.length - i[1].length).endsWith(".")) return null;
|
|
24515
|
-
let a =
|
|
24518
|
+
let a = Ph(i[1]).toLowerCase(), o = s.ctes.find((e) => e.name.toLowerCase() === a);
|
|
24516
24519
|
return !o || o.columns.length === 0 ? null : {
|
|
24517
24520
|
from: t.from,
|
|
24518
|
-
options:
|
|
24521
|
+
options: kg(o),
|
|
24519
24522
|
validFor: /^[\w$]*$/
|
|
24520
24523
|
};
|
|
24521
24524
|
}
|
|
24522
|
-
let c = s.ctes.map(
|
|
24523
|
-
if (!
|
|
24525
|
+
let c = s.ctes.map(Og);
|
|
24526
|
+
if (!Eg(e.state.sliceDoc(Math.max(0, t.from - 64), t.from))) {
|
|
24524
24527
|
let e = new Set(s.tables.map((e) => e.name.toLowerCase())), t = /* @__PURE__ */ new Set();
|
|
24525
|
-
for (let n of s.ctes) if (e.has(n.name.toLowerCase())) for (let e of
|
|
24528
|
+
for (let n of s.ctes) if (e.has(n.name.toLowerCase())) for (let e of kg(n)) {
|
|
24526
24529
|
let n = e.label.toLowerCase();
|
|
24527
24530
|
t.has(n) || (t.add(n), c.push(e));
|
|
24528
24531
|
}
|
|
@@ -24536,59 +24539,59 @@ function kg(e = {}) {
|
|
|
24536
24539
|
}
|
|
24537
24540
|
//#endregion
|
|
24538
24541
|
//#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
|
|
24539
|
-
var
|
|
24540
|
-
function
|
|
24542
|
+
var jg = 750;
|
|
24543
|
+
function Mg(e, t) {
|
|
24541
24544
|
if (t >= e.length) return e.length;
|
|
24542
24545
|
let n = e.lineAt(t), r = n.text.slice(t - n.from).match(/^[\w"'`.]+/);
|
|
24543
24546
|
return r ? t + r[0].length : Math.min(t + 1, e.length);
|
|
24544
24547
|
}
|
|
24545
|
-
function
|
|
24548
|
+
function Ng(e, t) {
|
|
24546
24549
|
let n = t.line(Math.min(e.line, t.lines)), r = Math.min(n.from + Math.max(0, e.column - 1), t.length);
|
|
24547
24550
|
return {
|
|
24548
24551
|
from: r,
|
|
24549
|
-
to:
|
|
24552
|
+
to: Mg(t, r),
|
|
24550
24553
|
severity: e.severity,
|
|
24551
24554
|
message: e.message,
|
|
24552
24555
|
source: "sql-parser"
|
|
24553
24556
|
};
|
|
24554
24557
|
}
|
|
24555
|
-
function
|
|
24558
|
+
function Pg(e, t, n) {
|
|
24556
24559
|
let r;
|
|
24557
24560
|
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)), {
|
|
24558
24561
|
from: r,
|
|
24559
|
-
to: Math.max(r, Math.min(
|
|
24562
|
+
to: Math.max(r, Math.min(Mg(n, r), t.to)),
|
|
24560
24563
|
severity: e.severity,
|
|
24561
24564
|
message: e.message,
|
|
24562
24565
|
source: "sql-parser"
|
|
24563
24566
|
};
|
|
24564
24567
|
}
|
|
24565
|
-
function Pg(e = {}) {
|
|
24566
|
-
return St(Fg(e), { delay: e.delay || Ag });
|
|
24567
|
-
}
|
|
24568
24568
|
function Fg(e = {}) {
|
|
24569
|
-
|
|
24569
|
+
return St(Ig(e), { delay: e.delay || jg });
|
|
24570
|
+
}
|
|
24571
|
+
function Ig(e = {}) {
|
|
24572
|
+
let t = e.parser || new Dh(), n = e.perStatement !== !1, r = e.structureAnalyzer || new eg(t);
|
|
24570
24573
|
return async (e) => {
|
|
24571
24574
|
let i = e.state.doc, a = i.toString();
|
|
24572
|
-
return a.trim() ? n ? (await r.analyzeDocument(e.state)).flatMap((e) => e.errors.map((t) =>
|
|
24575
|
+
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) => Ng(e, i)) : [];
|
|
24573
24576
|
};
|
|
24574
24577
|
}
|
|
24575
24578
|
//#endregion
|
|
24576
24579
|
//#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
|
|
24577
|
-
function
|
|
24580
|
+
function Lg(e, t) {
|
|
24578
24581
|
if (t.size === 0) return {};
|
|
24579
|
-
if (
|
|
24582
|
+
if (lh(e)) {
|
|
24580
24583
|
let n = {};
|
|
24581
24584
|
for (let [r, i] of Object.entries(e)) if (Array.from(t).some((e) => e.toLowerCase() === r.toLowerCase())) n[r] = i;
|
|
24582
|
-
else if (
|
|
24583
|
-
let e =
|
|
24585
|
+
else if (lh(i)) {
|
|
24586
|
+
let e = Lg(i, t);
|
|
24584
24587
|
Object.keys(e).length > 0 && (n[r] = e);
|
|
24585
24588
|
}
|
|
24586
24589
|
return n;
|
|
24587
24590
|
}
|
|
24588
24591
|
return e;
|
|
24589
24592
|
}
|
|
24590
|
-
function
|
|
24591
|
-
let { schema: t, keywords: n = {}, enableKeywords: r = !0, enableTables: i = !0, enableColumns: a = !0, enableFuzzySearch: o = !0, parser: s = new
|
|
24593
|
+
function Rg(e = {}) {
|
|
24594
|
+
let { schema: t, keywords: n = {}, enableKeywords: r = !0, enableTables: i = !0, enableColumns: a = !0, enableFuzzySearch: o = !0, parser: s = new Dh(), tooltipRender: c, tooltipRenderers: l = {} } = e, u = new eg(s), d = e.contextAnalyzer ?? new $h(s), f = null;
|
|
24592
24595
|
return async (e, s, p) => {
|
|
24593
24596
|
let { from: m, to: h, text: g } = e.state.doc.lineAt(s), _ = s, v = s;
|
|
24594
24597
|
f === null && (f = typeof n == "function" ? n(e) : Promise.resolve(n));
|
|
@@ -24603,7 +24606,7 @@ function Lg(e = {}) {
|
|
|
24603
24606
|
if (_ === s && p < 0 || v === s && p > 0) return null;
|
|
24604
24607
|
let b = g.slice(_ - m, v - m).toLowerCase();
|
|
24605
24608
|
if (!b || b.length === 0) return null;
|
|
24606
|
-
let x =
|
|
24609
|
+
let x = xh(t, e) ?? {}, S = null;
|
|
24607
24610
|
`${b}`;
|
|
24608
24611
|
let C = Object.hasOwn(y, b) ? y[b] : void 0;
|
|
24609
24612
|
if (!S && r && C && (S = {
|
|
@@ -24616,8 +24619,8 @@ function Lg(e = {}) {
|
|
|
24616
24619
|
info: C
|
|
24617
24620
|
}
|
|
24618
24621
|
}), !S && (i || a) && x) {
|
|
24619
|
-
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 =
|
|
24620
|
-
if (!g && m.size === 0 && (g =
|
|
24622
|
+
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 = Lg(x, m), g = yh(h, p, { enableFuzzySearch: o });
|
|
24623
|
+
if (!g && m.size === 0 && (g = yh(x, p, { enableFuzzySearch: o })), g) {
|
|
24621
24624
|
let { semanticType: e } = g;
|
|
24622
24625
|
(e === "table" && !i || e === "column" && !a) && (g = null);
|
|
24623
24626
|
}
|
|
@@ -24646,10 +24649,10 @@ function Lg(e = {}) {
|
|
|
24646
24649
|
if (t) return { dom: t };
|
|
24647
24650
|
}
|
|
24648
24651
|
let t = null;
|
|
24649
|
-
if (w.tooltipType === "keyword" && w.keywordData) t = l.keyword ? l.keyword(w.keywordData) :
|
|
24652
|
+
if (w.tooltipType === "keyword" && w.keywordData) t = l.keyword ? l.keyword(w.keywordData) : Ug(w.keywordData);
|
|
24650
24653
|
else if (w.tooltipType === "namespace" && w.namespaceData) {
|
|
24651
24654
|
let e = w.namespaceData, { semanticType: n } = e.item;
|
|
24652
|
-
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 =
|
|
24655
|
+
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 = Vg(e.item), e.aliasFor && (t = `<div class="sql-hover-alias"><code>${Bg(e.word.split(".")[0] ?? "")}</code> is an alias for <code>${Bg(e.aliasFor)}</code></div>` + t));
|
|
24653
24656
|
}
|
|
24654
24657
|
if (!t) return { dom: document.createElement("div") };
|
|
24655
24658
|
let n = document.createElement("div");
|
|
@@ -24658,25 +24661,25 @@ function Lg(e = {}) {
|
|
|
24658
24661
|
};
|
|
24659
24662
|
};
|
|
24660
24663
|
}
|
|
24661
|
-
function
|
|
24664
|
+
function zg(e = {}) {
|
|
24662
24665
|
let { hoverTime: t = 300 } = e;
|
|
24663
|
-
return ft(
|
|
24666
|
+
return ft(Rg(e), { hoverTime: t });
|
|
24664
24667
|
}
|
|
24665
|
-
function
|
|
24668
|
+
function Bg(e) {
|
|
24666
24669
|
return e.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """);
|
|
24667
24670
|
}
|
|
24668
|
-
function
|
|
24671
|
+
function Vg(e) {
|
|
24669
24672
|
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}">`;
|
|
24670
24673
|
switch (r += `<div class="sql-hover-header"><strong>${n}</strong> <span class="sql-hover-type">${e.semanticType}</span></div>`, e.semanticType) {
|
|
24671
24674
|
case "database":
|
|
24672
24675
|
if (r += `<div class="sql-hover-description">Database${e.completion?.detail ? `: ${e.completion.detail}` : ""}</div>`, e.namespace) {
|
|
24673
|
-
let t =
|
|
24676
|
+
let t = Hg(e.namespace);
|
|
24674
24677
|
t > 0 && (r += `<div class="sql-hover-children">Contains ${t} schema${t === 1 ? "" : "s"}</div>`);
|
|
24675
24678
|
}
|
|
24676
24679
|
break;
|
|
24677
24680
|
case "schema":
|
|
24678
24681
|
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) {
|
|
24679
|
-
let t =
|
|
24682
|
+
let t = Hg(e.namespace);
|
|
24680
24683
|
t > 0 && (r += `<div class="sql-hover-children">Contains ${t} table${t === 1 ? "" : "s"}</div>`);
|
|
24681
24684
|
}
|
|
24682
24685
|
break;
|
|
@@ -24685,7 +24688,7 @@ function Bg(e) {
|
|
|
24685
24688
|
let t = e.path;
|
|
24686
24689
|
t.length > 1 && (r += `<div class="sql-hover-path"><strong>Schema:</strong> <code>${t.slice(0, -1).join(".")}</code></div>`);
|
|
24687
24690
|
}
|
|
24688
|
-
if (e.namespace &&
|
|
24691
|
+
if (e.namespace && dh(e.namespace)) {
|
|
24689
24692
|
let t = e.namespace;
|
|
24690
24693
|
if (t.length > 0) {
|
|
24691
24694
|
r += `<div class="sql-hover-columns"><strong>Columns (${t.length}):</strong><br>`;
|
|
@@ -24701,16 +24704,16 @@ function Bg(e) {
|
|
|
24701
24704
|
}
|
|
24702
24705
|
break;
|
|
24703
24706
|
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) {
|
|
24704
|
-
let t =
|
|
24707
|
+
let t = Hg(e.namespace);
|
|
24705
24708
|
t > 0 && (r += `<div class="sql-hover-children">Contains ${t} item${t === 1 ? "" : "s"}</div>`);
|
|
24706
24709
|
}
|
|
24707
24710
|
}
|
|
24708
24711
|
return e.completion?.info && typeof e.completion.info == "string" && (r += `<div class="sql-hover-info">${e.completion.info}</div>`), r += "</div>", r;
|
|
24709
24712
|
}
|
|
24710
|
-
function Vg(e) {
|
|
24711
|
-
return Array.isArray(e) ? e.length : typeof e == "object" && e ? "self" in e && "children" in e ? 1 + Vg(e.children) : Object.keys(e).length : 0;
|
|
24712
|
-
}
|
|
24713
24713
|
function Hg(e) {
|
|
24714
|
+
return Array.isArray(e) ? e.length : typeof e == "object" && e ? "self" in e && "children" in e ? 1 + Hg(e.children) : Object.keys(e).length : 0;
|
|
24715
|
+
}
|
|
24716
|
+
function Ug(e) {
|
|
24714
24717
|
let { keyword: t, info: n } = e, r = "<div class=\"sql-hover-keyword\">";
|
|
24715
24718
|
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) {
|
|
24716
24719
|
r += "<div class=\"sql-hover-metadata\">";
|
|
@@ -24719,7 +24722,7 @@ function Hg(e) {
|
|
|
24719
24722
|
}
|
|
24720
24723
|
return r += "</div>", r;
|
|
24721
24724
|
}
|
|
24722
|
-
function
|
|
24725
|
+
function Wg(e) {
|
|
24723
24726
|
let { tableName: t, columns: n, metadata: r } = e, i = "<div class=\"sql-hover-table\">";
|
|
24724
24727
|
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) {
|
|
24725
24728
|
i += "<div class=\"sql-hover-columns\"><strong>Columns:</strong><br>";
|
|
@@ -24733,7 +24736,7 @@ function Ug(e) {
|
|
|
24733
24736
|
}
|
|
24734
24737
|
return i += "</div>", i;
|
|
24735
24738
|
}
|
|
24736
|
-
function
|
|
24739
|
+
function Gg(e) {
|
|
24737
24740
|
let { tableName: t, columnName: n, schema: r, metadata: i } = e, a = "<div class=\"sql-hover-column\">";
|
|
24738
24741
|
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>`;
|
|
24739
24742
|
let o = r[t];
|
|
@@ -24752,12 +24755,12 @@ function Wg(e) {
|
|
|
24752
24755
|
}
|
|
24753
24756
|
return a += "</div>", a;
|
|
24754
24757
|
}
|
|
24755
|
-
var
|
|
24756
|
-
keyword:
|
|
24757
|
-
table:
|
|
24758
|
-
column:
|
|
24759
|
-
namespace:
|
|
24760
|
-
},
|
|
24758
|
+
var Kg = {
|
|
24759
|
+
keyword: Ug,
|
|
24760
|
+
table: Wg,
|
|
24761
|
+
column: Gg,
|
|
24762
|
+
namespace: Vg
|
|
24763
|
+
}, qg = (e = "light") => {
|
|
24761
24764
|
let t = e === "dark" ? {
|
|
24762
24765
|
tooltipBg: "#1f2937",
|
|
24763
24766
|
tooltipBorder: "#374151",
|
|
@@ -24881,32 +24884,32 @@ var Gg = {
|
|
|
24881
24884
|
};
|
|
24882
24885
|
//#endregion
|
|
24883
24886
|
//#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
|
|
24884
|
-
function
|
|
24885
|
-
return e.resolver ?? new
|
|
24887
|
+
function Jg(e) {
|
|
24888
|
+
return e.resolver ?? new wg(e);
|
|
24886
24889
|
}
|
|
24887
|
-
var
|
|
24890
|
+
var Yg = Be.baseTheme({
|
|
24888
24891
|
".cm-sqlReference": { backgroundColor: "rgba(96, 165, 250, 0.18)" },
|
|
24889
24892
|
".cm-sqlReference.cm-sqlDefinition": { backgroundColor: "rgba(96, 165, 250, 0.35)" },
|
|
24890
24893
|
".cm-sqlGotoTarget": {
|
|
24891
24894
|
textDecoration: "underline",
|
|
24892
24895
|
cursor: "pointer"
|
|
24893
24896
|
}
|
|
24894
|
-
}),
|
|
24895
|
-
function
|
|
24896
|
-
return at.set(e.references.map((t) => (t.from === e.definition.from ?
|
|
24897
|
+
}), Xg = at.mark({ class: "cm-sqlReference" }), Zg = at.mark({ class: "cm-sqlReference cm-sqlDefinition" }), Qg = at.mark({ class: "cm-sqlGotoTarget" });
|
|
24898
|
+
function $g(e) {
|
|
24899
|
+
return at.set(e.references.map((t) => (t.from === e.definition.from ? Zg : Xg).range(t.from, t.to)), !0);
|
|
24897
24900
|
}
|
|
24898
|
-
var
|
|
24901
|
+
var e_ = Qe.define(), t_ = yt.define({
|
|
24899
24902
|
create: () => at.none,
|
|
24900
24903
|
update(e, t) {
|
|
24901
|
-
for (let e of t.effects) if (e.is(
|
|
24904
|
+
for (let e of t.effects) if (e.is(e_)) return e.value;
|
|
24902
24905
|
return t.docChanged ? e.map(t.changes) : e;
|
|
24903
24906
|
},
|
|
24904
24907
|
provide: (e) => Be.decorations.from(e)
|
|
24905
24908
|
});
|
|
24906
|
-
function
|
|
24907
|
-
let t =
|
|
24909
|
+
function n_(e = {}) {
|
|
24910
|
+
let t = Jg(e), n = e.highlightDelay ?? 150;
|
|
24908
24911
|
return [
|
|
24909
|
-
|
|
24912
|
+
t_,
|
|
24910
24913
|
pt.fromClass(class {
|
|
24911
24914
|
view;
|
|
24912
24915
|
timer = null;
|
|
@@ -24926,21 +24929,21 @@ function t_(e = {}) {
|
|
|
24926
24929
|
let e = this.generation, n = this.view.state, r = n.selection.main, i = at.none;
|
|
24927
24930
|
if (r.empty) try {
|
|
24928
24931
|
let e = await t.resolve(n, r.head);
|
|
24929
|
-
e && (i =
|
|
24932
|
+
e && (i = $g(e));
|
|
24930
24933
|
} catch {}
|
|
24931
24934
|
if (e !== this.generation) return;
|
|
24932
|
-
let a = this.view.state.field(
|
|
24933
|
-
(i.size !== 0 || a != null && a.size !== 0) && this.view.dispatch({ effects:
|
|
24935
|
+
let a = this.view.state.field(t_, !1);
|
|
24936
|
+
(i.size !== 0 || a != null && a.size !== 0) && this.view.dispatch({ effects: e_.of(i) });
|
|
24934
24937
|
}
|
|
24935
24938
|
destroy() {
|
|
24936
24939
|
this.generation++, this.timer != null && clearTimeout(this.timer);
|
|
24937
24940
|
}
|
|
24938
24941
|
}),
|
|
24939
|
-
|
|
24942
|
+
Yg
|
|
24940
24943
|
];
|
|
24941
24944
|
}
|
|
24942
|
-
async function
|
|
24943
|
-
let r = e.state, i = t ?? r.selection.main.head, a = await
|
|
24945
|
+
async function r_(e, t, n = {}) {
|
|
24946
|
+
let r = e.state, i = t ?? r.selection.main.head, a = await Jg(n).resolve(r, i);
|
|
24944
24947
|
return !a || e.state !== r ? !1 : (e.dispatch({
|
|
24945
24948
|
selection: {
|
|
24946
24949
|
anchor: a.definition.from,
|
|
@@ -24950,18 +24953,18 @@ async function n_(e, t, n = {}) {
|
|
|
24950
24953
|
userEvent: "select"
|
|
24951
24954
|
}), !0);
|
|
24952
24955
|
}
|
|
24953
|
-
var
|
|
24956
|
+
var i_ = Qe.define(), a_ = yt.define({
|
|
24954
24957
|
create: () => at.none,
|
|
24955
24958
|
update(e, t) {
|
|
24956
|
-
for (let e of t.effects) if (e.is(
|
|
24959
|
+
for (let e of t.effects) if (e.is(i_)) return e.value;
|
|
24957
24960
|
return t.docChanged ? e.map(t.changes) : e;
|
|
24958
24961
|
},
|
|
24959
24962
|
provide: (e) => Be.decorations.from(e)
|
|
24960
24963
|
});
|
|
24961
|
-
function
|
|
24962
|
-
let t =
|
|
24964
|
+
function o_(e = {}) {
|
|
24965
|
+
let t = Jg(e);
|
|
24963
24966
|
return [
|
|
24964
|
-
|
|
24967
|
+
a_,
|
|
24965
24968
|
pt.fromClass(class {
|
|
24966
24969
|
view;
|
|
24967
24970
|
hovered = null;
|
|
@@ -24977,12 +24980,12 @@ function a_(e = {}) {
|
|
|
24977
24980
|
clear() {
|
|
24978
24981
|
if (this.hovered) {
|
|
24979
24982
|
this.hovered = null;
|
|
24980
|
-
let e = this.view.state.field(
|
|
24981
|
-
e && e.size > 0 && this.view.dispatch({ effects:
|
|
24983
|
+
let e = this.view.state.field(a_, !1);
|
|
24984
|
+
e && e.size > 0 && this.view.dispatch({ effects: i_.of(at.none) });
|
|
24982
24985
|
}
|
|
24983
24986
|
}
|
|
24984
24987
|
async hover(e) {
|
|
24985
|
-
let n =
|
|
24988
|
+
let n = cg(this.view.state, e);
|
|
24986
24989
|
if (!n) {
|
|
24987
24990
|
this.clear();
|
|
24988
24991
|
return;
|
|
@@ -24998,7 +25001,7 @@ function a_(e = {}) {
|
|
|
24998
25001
|
try {
|
|
24999
25002
|
let a = await t.resolve(i, e);
|
|
25000
25003
|
if (this.hovered !== r || this.view.state !== i) return;
|
|
25001
|
-
r.result = a, this.view.dispatch({ effects:
|
|
25004
|
+
r.result = a, this.view.dispatch({ effects: i_.of(a ? at.set([Qg.range(n.from, n.to)]) : at.none) });
|
|
25002
25005
|
} catch {}
|
|
25003
25006
|
}
|
|
25004
25007
|
destroy() {
|
|
@@ -25038,15 +25041,15 @@ function a_(e = {}) {
|
|
|
25038
25041
|
}), !0) : !1;
|
|
25039
25042
|
}
|
|
25040
25043
|
} }),
|
|
25041
|
-
|
|
25044
|
+
Yg
|
|
25042
25045
|
];
|
|
25043
25046
|
}
|
|
25044
|
-
var
|
|
25045
|
-
async function
|
|
25046
|
-
let n = e.state, r = await
|
|
25047
|
+
var s_ = (e) => typeof window < "u" && typeof window.prompt == "function" ? window.prompt(`Rename '${e}' to:`, e) : null, c_ = /^[A-Za-z_][\w$]*$/, l_ = /* @__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("."));
|
|
25048
|
+
async function u_(e, t = {}) {
|
|
25049
|
+
let n = e.state, r = await Jg(t).resolve(n, n.selection.main.head);
|
|
25047
25050
|
if (!r) return !1;
|
|
25048
|
-
let i = await (t.prompt ??
|
|
25049
|
-
return !i || i === r.name || !
|
|
25051
|
+
let i = await (t.prompt ?? s_)(r.name);
|
|
25052
|
+
return !i || i === r.name || !c_.test(i) || l_.has(i.toLowerCase()) || e.state !== n ? !1 : (e.dispatch({
|
|
25050
25053
|
changes: r.references.map((e) => ({
|
|
25051
25054
|
from: e.from,
|
|
25052
25055
|
to: e.to,
|
|
@@ -25055,36 +25058,36 @@ async function l_(e, t = {}) {
|
|
|
25055
25058
|
userEvent: "rename"
|
|
25056
25059
|
}), !0);
|
|
25057
25060
|
}
|
|
25058
|
-
function
|
|
25061
|
+
function d_(e = {}) {
|
|
25059
25062
|
let t = {
|
|
25060
25063
|
...e,
|
|
25061
|
-
resolver:
|
|
25064
|
+
resolver: Jg(e)
|
|
25062
25065
|
}, n = e.gotoDefinitionKeys ?? ["F12", "Mod-b"], r = e.renameKey ?? "F2";
|
|
25063
25066
|
return lt.of([...n.map((e) => ({
|
|
25064
25067
|
key: e,
|
|
25065
|
-
run: (e) => (
|
|
25068
|
+
run: (e) => (r_(e, void 0, t), !0)
|
|
25066
25069
|
})), {
|
|
25067
25070
|
key: r,
|
|
25068
|
-
run: (e) => (
|
|
25071
|
+
run: (e) => (u_(e, t), !0)
|
|
25069
25072
|
}]);
|
|
25070
25073
|
}
|
|
25071
|
-
function
|
|
25074
|
+
function f_(e = {}) {
|
|
25072
25075
|
let t = {
|
|
25073
25076
|
...e,
|
|
25074
|
-
resolver:
|
|
25075
|
-
}, n = [
|
|
25076
|
-
return e.keymap && n.push(
|
|
25077
|
+
resolver: Jg(e)
|
|
25078
|
+
}, n = [n_(t), o_(t)];
|
|
25079
|
+
return e.keymap && n.push(d_(t)), n;
|
|
25077
25080
|
}
|
|
25078
25081
|
//#endregion
|
|
25079
25082
|
//#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
|
|
25080
|
-
var
|
|
25081
|
-
function
|
|
25083
|
+
var p_ = 750;
|
|
25084
|
+
function m_(e) {
|
|
25082
25085
|
return typeof e == "object" && !!e && !Array.isArray(e) && e.type === "select";
|
|
25083
25086
|
}
|
|
25084
|
-
function
|
|
25087
|
+
function h_(e) {
|
|
25085
25088
|
return Array.isArray(e) ? e : [];
|
|
25086
25089
|
}
|
|
25087
|
-
function
|
|
25090
|
+
function g_(e) {
|
|
25088
25091
|
return {
|
|
25089
25092
|
sources: [],
|
|
25090
25093
|
columnRefs: [],
|
|
@@ -25093,23 +25096,23 @@ function h_(e) {
|
|
|
25093
25096
|
hasUsingJoin: !1
|
|
25094
25097
|
};
|
|
25095
25098
|
}
|
|
25096
|
-
function
|
|
25097
|
-
let r =
|
|
25099
|
+
function __(e, t, n) {
|
|
25100
|
+
let r = h_(e.with);
|
|
25098
25101
|
for (let e of r) {
|
|
25099
25102
|
let n = e.name, r = typeof n == "string" ? n : n?.value;
|
|
25100
25103
|
typeof r == "string" && t.add(r.toLowerCase());
|
|
25101
25104
|
}
|
|
25102
25105
|
for (let e of r) {
|
|
25103
25106
|
let r = e.stmt, i = r?.ast ?? r;
|
|
25104
|
-
|
|
25107
|
+
m_(i) && b_(i, t, n, !1);
|
|
25105
25108
|
}
|
|
25106
25109
|
}
|
|
25107
|
-
function
|
|
25108
|
-
e.using != null && (t.hasUsingJoin = !0), typeof e.join == "string" && e.join.toLowerCase().includes("natural") && (t.hasUsingJoin = !0), e.on != null &&
|
|
25110
|
+
function v_(e, t, n, r) {
|
|
25111
|
+
e.using != null && (t.hasUsingJoin = !0), typeof e.join == "string" && e.join.toLowerCase().includes("natural") && (t.hasUsingJoin = !0), e.on != null && y_(e.on, t, n, r);
|
|
25109
25112
|
let i = e.expr;
|
|
25110
25113
|
if (i != null) {
|
|
25111
25114
|
let a = i.ast ?? i;
|
|
25112
|
-
|
|
25115
|
+
m_(a) && b_(a, n, r, !1), t.sources.push({
|
|
25113
25116
|
path: "",
|
|
25114
25117
|
name: "",
|
|
25115
25118
|
alias: typeof e.as == "string" ? e.as : null,
|
|
@@ -25133,10 +25136,10 @@ function __(e, t, n, r) {
|
|
|
25133
25136
|
});
|
|
25134
25137
|
}
|
|
25135
25138
|
}
|
|
25136
|
-
function
|
|
25139
|
+
function y_(e, t, n, r) {
|
|
25137
25140
|
if (typeof e != "object" || !e) return;
|
|
25138
25141
|
if (Array.isArray(e)) {
|
|
25139
|
-
for (let i of e)
|
|
25142
|
+
for (let i of e) y_(i, t, n, r);
|
|
25140
25143
|
return;
|
|
25141
25144
|
}
|
|
25142
25145
|
let i = e;
|
|
@@ -25144,78 +25147,78 @@ function v_(e, t, n, r) {
|
|
|
25144
25147
|
t.columnRefs.push(i);
|
|
25145
25148
|
return;
|
|
25146
25149
|
}
|
|
25147
|
-
if (
|
|
25148
|
-
|
|
25150
|
+
if (m_(i)) {
|
|
25151
|
+
b_(i, n, r, !0);
|
|
25149
25152
|
return;
|
|
25150
25153
|
}
|
|
25151
|
-
if (
|
|
25152
|
-
|
|
25154
|
+
if (m_(i.ast)) {
|
|
25155
|
+
b_(i.ast, n, r, !0);
|
|
25153
25156
|
return;
|
|
25154
25157
|
}
|
|
25155
|
-
for (let [e, a] of Object.entries(i)) e !== "loc" && e !== "tableList" && e !== "columnList" &&
|
|
25158
|
+
for (let [e, a] of Object.entries(i)) e !== "loc" && e !== "tableList" && e !== "columnList" && y_(a, t, n, r);
|
|
25156
25159
|
}
|
|
25157
|
-
function
|
|
25160
|
+
function b_(e, t, n, r) {
|
|
25158
25161
|
let i = new Set(t);
|
|
25159
|
-
|
|
25160
|
-
let a =
|
|
25162
|
+
__(e, i, n);
|
|
25163
|
+
let a = g_(!r);
|
|
25161
25164
|
n.push(a);
|
|
25162
|
-
for (let t of
|
|
25163
|
-
for (let t of
|
|
25164
|
-
for (let [t, r] of Object.entries(e)) t !== "with" && t !== "from" && t !== "loc" &&
|
|
25165
|
+
for (let t of h_(e.from)) v_(t, a, i, n);
|
|
25166
|
+
for (let t of h_(e.columns)) typeof t.as == "string" && a.selectAliases.add(t.as.toLowerCase());
|
|
25167
|
+
for (let [t, r] of Object.entries(e)) t !== "with" && t !== "from" && t !== "loc" && y_(r, a, i, n);
|
|
25165
25168
|
}
|
|
25166
|
-
function
|
|
25169
|
+
function x_(e, t) {
|
|
25167
25170
|
let n = /* @__PURE__ */ new Set();
|
|
25168
25171
|
switch (e.type) {
|
|
25169
25172
|
case "select":
|
|
25170
|
-
|
|
25173
|
+
b_(e, n, t, !1);
|
|
25171
25174
|
return;
|
|
25172
25175
|
case "update": {
|
|
25173
|
-
|
|
25174
|
-
let r =
|
|
25176
|
+
__(e, n, t);
|
|
25177
|
+
let r = g_(!0);
|
|
25175
25178
|
t.push(r);
|
|
25176
|
-
for (let i of
|
|
25177
|
-
for (let i of
|
|
25178
|
-
for (let i of
|
|
25179
|
+
for (let i of h_(e.table)) v_(i, r, n, t);
|
|
25180
|
+
for (let i of h_(e.from)) v_(i, r, n, t);
|
|
25181
|
+
for (let i of h_(e.set)) i.column != null && r.columnRefs.push({
|
|
25179
25182
|
type: "column_ref",
|
|
25180
25183
|
table: i.table ?? null,
|
|
25181
25184
|
column: i.column
|
|
25182
|
-
}),
|
|
25183
|
-
for (let [i, a] of Object.entries(e)) i !== "with" && i !== "table" && i !== "from" && i !== "set" && i !== "loc" &&
|
|
25185
|
+
}), y_(i.value, r, n, t);
|
|
25186
|
+
for (let [i, a] of Object.entries(e)) i !== "with" && i !== "table" && i !== "from" && i !== "set" && i !== "loc" && y_(a, r, n, t);
|
|
25184
25187
|
return;
|
|
25185
25188
|
}
|
|
25186
25189
|
case "delete": {
|
|
25187
|
-
|
|
25188
|
-
let r =
|
|
25190
|
+
__(e, n, t);
|
|
25191
|
+
let r = g_(!0);
|
|
25189
25192
|
t.push(r);
|
|
25190
|
-
for (let i of
|
|
25191
|
-
for (let [i, a] of Object.entries(e)) i !== "with" && i !== "table" && i !== "from" && i !== "loc" &&
|
|
25193
|
+
for (let i of h_(e.from)) v_(i, r, n, t);
|
|
25194
|
+
for (let [i, a] of Object.entries(e)) i !== "with" && i !== "table" && i !== "from" && i !== "loc" && y_(a, r, n, t);
|
|
25192
25195
|
return;
|
|
25193
25196
|
}
|
|
25194
25197
|
case "insert":
|
|
25195
25198
|
case "replace": {
|
|
25196
|
-
|
|
25197
|
-
let r =
|
|
25199
|
+
__(e, n, t);
|
|
25200
|
+
let r = g_(!1);
|
|
25198
25201
|
t.push(r);
|
|
25199
|
-
for (let i of
|
|
25200
|
-
for (let [i, a] of Object.entries(e)) i !== "with" && i !== "table" && i !== "columns" && i !== "loc" && (
|
|
25202
|
+
for (let i of h_(e.table)) v_(i, r, n, t);
|
|
25203
|
+
for (let [i, a] of Object.entries(e)) i !== "with" && i !== "table" && i !== "columns" && i !== "loc" && (m_(a) ? b_(a, n, t, !1) : y_(a, r, n, t));
|
|
25201
25204
|
return;
|
|
25202
25205
|
}
|
|
25203
25206
|
case "create":
|
|
25204
25207
|
case "alter":
|
|
25205
25208
|
case "drop": {
|
|
25206
|
-
let r =
|
|
25209
|
+
let r = g_(!1);
|
|
25207
25210
|
t.push(r);
|
|
25208
|
-
for (let [i, a] of Object.entries(e)) i !== "table" && i !== "loc" && (
|
|
25211
|
+
for (let [i, a] of Object.entries(e)) i !== "table" && i !== "loc" && (m_(a) ? b_(a, n, t, !1) : y_(a, r, n, t));
|
|
25209
25212
|
return;
|
|
25210
25213
|
}
|
|
25211
25214
|
default: {
|
|
25212
|
-
let r =
|
|
25215
|
+
let r = g_(!1);
|
|
25213
25216
|
t.push(r);
|
|
25214
|
-
for (let [i, a] of Object.entries(e)) i !== "loc" &&
|
|
25217
|
+
for (let [i, a] of Object.entries(e)) i !== "loc" && y_(a, r, n, t);
|
|
25215
25218
|
}
|
|
25216
25219
|
}
|
|
25217
25220
|
}
|
|
25218
|
-
function
|
|
25221
|
+
function S_(e) {
|
|
25219
25222
|
let t = e.column;
|
|
25220
25223
|
if (typeof t == "string") return t;
|
|
25221
25224
|
if (typeof t == "object" && t) {
|
|
@@ -25224,27 +25227,27 @@ function x_(e) {
|
|
|
25224
25227
|
}
|
|
25225
25228
|
return null;
|
|
25226
25229
|
}
|
|
25227
|
-
function
|
|
25230
|
+
function C_(e) {
|
|
25228
25231
|
return typeof e.table != "string" || e.table.length === 0 ? null : typeof e.db == "string" && e.db.length > 0 ? `${e.db}.${e.table}` : e.table;
|
|
25229
25232
|
}
|
|
25230
|
-
function
|
|
25233
|
+
function w_(e) {
|
|
25231
25234
|
if (e == null) return null;
|
|
25232
|
-
let t =
|
|
25233
|
-
return
|
|
25235
|
+
let t = uh(e) ? e.children : e;
|
|
25236
|
+
return dh(t) ? t.map((e) => typeof e == "string" ? e : e.label) : null;
|
|
25234
25237
|
}
|
|
25235
|
-
function
|
|
25236
|
-
let n =
|
|
25238
|
+
function T_(e, t) {
|
|
25239
|
+
let n = ph(e, t, { caseSensitive: !1 });
|
|
25237
25240
|
if (n) return {
|
|
25238
25241
|
exists: !0,
|
|
25239
|
-
columns:
|
|
25242
|
+
columns: w_(n.namespace)
|
|
25240
25243
|
};
|
|
25241
25244
|
let r = t.split(".").map((e) => e.toLowerCase()), i = r[r.length - 1];
|
|
25242
25245
|
if (!i) return {
|
|
25243
25246
|
exists: !1,
|
|
25244
25247
|
columns: null
|
|
25245
25248
|
};
|
|
25246
|
-
let a =
|
|
25247
|
-
if (
|
|
25249
|
+
let a = _h(e, i).filter((e) => {
|
|
25250
|
+
if (w_(e.namespace) === null || e.path.length < r.length) return !1;
|
|
25248
25251
|
let t = e.path.slice(-r.length).map((e) => e.toLowerCase());
|
|
25249
25252
|
return r.every((e, n) => t[n] === e);
|
|
25250
25253
|
});
|
|
@@ -25253,16 +25256,16 @@ function w_(e, t) {
|
|
|
25253
25256
|
columns: null
|
|
25254
25257
|
} : {
|
|
25255
25258
|
exists: !0,
|
|
25256
|
-
columns: a.length === 1 ?
|
|
25259
|
+
columns: a.length === 1 ? w_(a[0]?.namespace) : null
|
|
25257
25260
|
};
|
|
25258
25261
|
}
|
|
25259
|
-
function
|
|
25262
|
+
function E_(e, t) {
|
|
25260
25263
|
let n = t.toLowerCase();
|
|
25261
25264
|
return e.some((e) => e.toLowerCase() === n);
|
|
25262
25265
|
}
|
|
25263
|
-
function
|
|
25266
|
+
function D_(e, t) {
|
|
25264
25267
|
let n = [];
|
|
25265
|
-
|
|
25268
|
+
x_(e, n);
|
|
25266
25269
|
let r = /* @__PURE__ */ new Map(), i = (e) => {
|
|
25267
25270
|
let t = `${e.kind}::${e.identifier.toLowerCase()}`;
|
|
25268
25271
|
r.has(t) || r.set(t, e);
|
|
@@ -25274,7 +25277,7 @@ function E_(e, t) {
|
|
|
25274
25277
|
exists: !0,
|
|
25275
25278
|
columns: null
|
|
25276
25279
|
};
|
|
25277
|
-
let n =
|
|
25280
|
+
let n = T_(t, e.path);
|
|
25278
25281
|
return {
|
|
25279
25282
|
source: e,
|
|
25280
25283
|
exists: n.exists,
|
|
@@ -25287,12 +25290,12 @@ function E_(e, t) {
|
|
|
25287
25290
|
message: `Unknown table '${e.path}'`
|
|
25288
25291
|
});
|
|
25289
25292
|
for (let t of e.columnRefs) {
|
|
25290
|
-
let r =
|
|
25293
|
+
let r = S_(t);
|
|
25291
25294
|
if (!r || r === "*") continue;
|
|
25292
|
-
let a =
|
|
25295
|
+
let a = C_(t);
|
|
25293
25296
|
if (a) {
|
|
25294
25297
|
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);
|
|
25295
|
-
t?.columns && !
|
|
25298
|
+
t?.columns && !E_(t.columns, r) && i({
|
|
25296
25299
|
kind: "unknownColumn",
|
|
25297
25300
|
identifier: r,
|
|
25298
25301
|
message: `Column '${r}' not found in table '${t.source.path || a}'`
|
|
@@ -25300,7 +25303,7 @@ function E_(e, t) {
|
|
|
25300
25303
|
continue;
|
|
25301
25304
|
}
|
|
25302
25305
|
if (!e.checkUnqualified || e.selectAliases.has(r.toLowerCase())) continue;
|
|
25303
|
-
let o = n.filter((e) => e.columns !== null &&
|
|
25306
|
+
let o = n.filter((e) => e.columns !== null && E_(e.columns, r));
|
|
25304
25307
|
if (o.length >= 2 && !e.hasUsingJoin) {
|
|
25305
25308
|
i({
|
|
25306
25309
|
kind: "ambiguousColumn",
|
|
@@ -25319,7 +25322,7 @@ function E_(e, t) {
|
|
|
25319
25322
|
}
|
|
25320
25323
|
return [...r.values()];
|
|
25321
25324
|
}
|
|
25322
|
-
function
|
|
25325
|
+
function O_(e, t) {
|
|
25323
25326
|
let n = e.toLowerCase(), r = t.toLowerCase(), i = n.indexOf(r);
|
|
25324
25327
|
for (; i !== -1;) {
|
|
25325
25328
|
let e = i > 0 ? n[i - 1] ?? "" : "", t = n[i + r.length] ?? "";
|
|
@@ -25328,8 +25331,8 @@ function D_(e, t) {
|
|
|
25328
25331
|
}
|
|
25329
25332
|
return -1;
|
|
25330
25333
|
}
|
|
25331
|
-
function
|
|
25332
|
-
let i = n.sliceString(t.from, t.to), a =
|
|
25334
|
+
function k_(e, t, n, r) {
|
|
25335
|
+
let i = n.sliceString(t.from, t.to), a = O_(i, e.identifier), o = a === -1 ? t.from : t.from + a;
|
|
25333
25336
|
return {
|
|
25334
25337
|
from: o,
|
|
25335
25338
|
to: Math.min(a === -1 ? t.from + (i.match(/^[\w"'`.]+/)?.[0].length ?? 1) : o + e.identifier.length, t.to),
|
|
@@ -25338,18 +25341,18 @@ function O_(e, t, n, r) {
|
|
|
25338
25341
|
source: "sql-schema"
|
|
25339
25342
|
};
|
|
25340
25343
|
}
|
|
25341
|
-
function
|
|
25342
|
-
return
|
|
25344
|
+
function A_(e) {
|
|
25345
|
+
return dh(e) ? e.length === 0 : lh(e) ? Object.keys(e).length === 0 : !1;
|
|
25343
25346
|
}
|
|
25344
|
-
function
|
|
25345
|
-
let t = e.parser || new
|
|
25347
|
+
function j_(e = {}) {
|
|
25348
|
+
let t = e.parser || new Dh(), n = e.structureAnalyzer || new eg(t), r = {
|
|
25346
25349
|
unknownTable: e.severity?.unknownTable ?? "warning",
|
|
25347
25350
|
unknownColumn: e.severity?.unknownColumn ?? "warning",
|
|
25348
25351
|
ambiguousColumn: e.severity?.ambiguousColumn ?? "warning"
|
|
25349
25352
|
};
|
|
25350
25353
|
return async (i) => {
|
|
25351
|
-
let a =
|
|
25352
|
-
if (a == null ||
|
|
25354
|
+
let a = xh(e.schema, i);
|
|
25355
|
+
if (a == null || A_(a)) return [];
|
|
25353
25356
|
let o = i.state.doc;
|
|
25354
25357
|
if (!o.toString().trim()) return [];
|
|
25355
25358
|
let s = [], c = await n.analyzeDocument(i.state);
|
|
@@ -25358,20 +25361,20 @@ function A_(e = {}) {
|
|
|
25358
25361
|
let n = await t.parse(e.content, { state: i.state });
|
|
25359
25362
|
if (!n.success || n.ast == null) continue;
|
|
25360
25363
|
let c = Array.isArray(n.ast) ? n.ast : [n.ast];
|
|
25361
|
-
for (let t of c) for (let n of
|
|
25364
|
+
for (let t of c) for (let n of D_(t, a)) {
|
|
25362
25365
|
let t = r[n.kind];
|
|
25363
|
-
t !== "off" && s.push(
|
|
25366
|
+
t !== "off" && s.push(k_(n, e, o, t));
|
|
25364
25367
|
}
|
|
25365
25368
|
}
|
|
25366
25369
|
return s;
|
|
25367
25370
|
};
|
|
25368
25371
|
}
|
|
25369
|
-
function
|
|
25370
|
-
return St(
|
|
25372
|
+
function M_(e = {}) {
|
|
25373
|
+
return St(j_(e), { delay: e.delay || p_ });
|
|
25371
25374
|
}
|
|
25372
25375
|
//#endregion
|
|
25373
25376
|
//#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
|
|
25374
|
-
var
|
|
25377
|
+
var N_ = Qe.define(), P_ = yt.define({
|
|
25375
25378
|
create() {
|
|
25376
25379
|
return {
|
|
25377
25380
|
currentStatement: null,
|
|
@@ -25381,11 +25384,11 @@ var M_ = Qe.define(), N_ = yt.define({
|
|
|
25381
25384
|
};
|
|
25382
25385
|
},
|
|
25383
25386
|
update(e, t) {
|
|
25384
|
-
for (let e of t.effects) if (e.is(
|
|
25387
|
+
for (let e of t.effects) if (e.is(N_)) return e.value;
|
|
25385
25388
|
return e;
|
|
25386
25389
|
}
|
|
25387
25390
|
});
|
|
25388
|
-
function
|
|
25391
|
+
function F_(e, t) {
|
|
25389
25392
|
let { isCurrent: n, isValid: r, isFocused: i } = t, a = e.backgroundColor || "#3b82f6";
|
|
25390
25393
|
!r && e.showInvalid !== !1 && (a = e.errorBackgroundColor || "#ef4444");
|
|
25391
25394
|
let o = n ? "1" : (e.inactiveOpacity ?? .3).toString(), s;
|
|
@@ -25394,7 +25397,7 @@ function P_(e, t) {
|
|
|
25394
25397
|
opacity: s
|
|
25395
25398
|
};
|
|
25396
25399
|
}
|
|
25397
|
-
var
|
|
25400
|
+
var I_ = class extends st {
|
|
25398
25401
|
config;
|
|
25399
25402
|
isCurrent;
|
|
25400
25403
|
isValid;
|
|
@@ -25405,7 +25408,7 @@ var F_ = class extends st {
|
|
|
25405
25408
|
toDOM() {
|
|
25406
25409
|
let e = document.createElement("div");
|
|
25407
25410
|
e.className = "cm-sql-gutter-marker";
|
|
25408
|
-
let { backgroundColor: t, opacity: n } =
|
|
25411
|
+
let { backgroundColor: t, opacity: n } = F_(this.config, {
|
|
25409
25412
|
isCurrent: this.isCurrent,
|
|
25410
25413
|
isValid: this.isValid,
|
|
25411
25414
|
isFocused: this.isFocused
|
|
@@ -25423,10 +25426,10 @@ var F_ = class extends st {
|
|
|
25423
25426
|
return this.isCurrent === e.isCurrent && this.isValid === e.isValid && this.isFocused === e.isFocused && this.config === e.config;
|
|
25424
25427
|
}
|
|
25425
25428
|
};
|
|
25426
|
-
function
|
|
25429
|
+
function L_(e, t) {
|
|
25427
25430
|
let n = Ke.empty;
|
|
25428
25431
|
if (t.whenHide?.(e)) return n;
|
|
25429
|
-
let r = e.state.field(
|
|
25432
|
+
let r = e.state.field(P_, !1);
|
|
25430
25433
|
if (!r) return n;
|
|
25431
25434
|
let { currentStatement: i, allStatements: a, isFocused: o } = r;
|
|
25432
25435
|
try {
|
|
@@ -25435,7 +25438,7 @@ function I_(e, t) {
|
|
|
25435
25438
|
if (c.lineTo < r || c.lineFrom > s) continue;
|
|
25436
25439
|
let a = i?.from === c.from && i?.to === c.to;
|
|
25437
25440
|
if (!c.isValid && t.showInvalid === !1) continue;
|
|
25438
|
-
let l = new
|
|
25441
|
+
let l = new I_(t, a, c.isValid, o), u = Math.max(c.lineFrom, r), d = Math.min(c.lineTo, s);
|
|
25439
25442
|
for (let t = u; t <= d; t++) try {
|
|
25440
25443
|
if (t < 1 || t > e.state.doc.lines) continue;
|
|
25441
25444
|
let r = e.state.doc.line(t);
|
|
@@ -25449,21 +25452,21 @@ function I_(e, t) {
|
|
|
25449
25452
|
}
|
|
25450
25453
|
return n;
|
|
25451
25454
|
}
|
|
25452
|
-
async function
|
|
25455
|
+
async function R_(e, t) {
|
|
25453
25456
|
let { state: n } = e, r = n.selection.main.head, i = await t.analyzeDocument(n), a = {
|
|
25454
25457
|
currentStatement: await t.getStatementAtPosition(n, r),
|
|
25455
25458
|
allStatements: i,
|
|
25456
25459
|
cursorPosition: r,
|
|
25457
25460
|
isFocused: e.hasFocus
|
|
25458
25461
|
};
|
|
25459
|
-
e.dispatch({ effects:
|
|
25462
|
+
e.dispatch({ effects: N_.of(a) });
|
|
25460
25463
|
}
|
|
25461
|
-
function
|
|
25462
|
-
return pt.define((t) => (
|
|
25463
|
-
!t.docChanged && !t.selectionSet && !t.focusChanged ||
|
|
25464
|
+
function z_(e) {
|
|
25465
|
+
return pt.define((t) => (R_(t, e), { update(t) {
|
|
25466
|
+
!t.docChanged && !t.selectionSet && !t.focusChanged || R_(t.view, e);
|
|
25464
25467
|
} }));
|
|
25465
25468
|
}
|
|
25466
|
-
function
|
|
25469
|
+
function B_(e) {
|
|
25467
25470
|
let t = e.width || 3;
|
|
25468
25471
|
return Be.baseTheme({
|
|
25469
25472
|
".cm-sql-gutter": {
|
|
@@ -25486,35 +25489,35 @@ function z_(e) {
|
|
|
25486
25489
|
}
|
|
25487
25490
|
});
|
|
25488
25491
|
}
|
|
25489
|
-
function
|
|
25492
|
+
function V_(e) {
|
|
25490
25493
|
return ht({
|
|
25491
25494
|
class: `cm-sql-gutter ${e.className || ""}`,
|
|
25492
|
-
markers: (t) =>
|
|
25495
|
+
markers: (t) => L_(t, e)
|
|
25493
25496
|
});
|
|
25494
25497
|
}
|
|
25495
|
-
function
|
|
25498
|
+
function H_(e = {}) {
|
|
25496
25499
|
return [
|
|
25497
|
-
|
|
25498
|
-
|
|
25499
|
-
|
|
25500
|
-
|
|
25500
|
+
P_,
|
|
25501
|
+
z_(new eg(e.parser || new Dh())),
|
|
25502
|
+
B_(e),
|
|
25503
|
+
V_(e)
|
|
25501
25504
|
];
|
|
25502
25505
|
}
|
|
25503
25506
|
//#endregion
|
|
25504
25507
|
//#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
|
|
25505
|
-
function
|
|
25508
|
+
function U_(e = {}) {
|
|
25506
25509
|
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;
|
|
25507
|
-
if (n != null && t.push(
|
|
25510
|
+
if (n != null && t.push(bh.of(n)), r && t.push(Fg(c)), i) {
|
|
25508
25511
|
let e = l?.parser ?? c?.parser, n = l?.structureAnalyzer ?? (l?.parser == null ? c?.structureAnalyzer : void 0);
|
|
25509
|
-
t.push(
|
|
25512
|
+
t.push(M_({
|
|
25510
25513
|
...l,
|
|
25511
25514
|
parser: e,
|
|
25512
25515
|
structureAnalyzer: n
|
|
25513
25516
|
}));
|
|
25514
25517
|
}
|
|
25515
|
-
if (a && t.push(
|
|
25518
|
+
if (a && t.push(H_(u)), o && (t.push(zg(d)), t.push(d?.theme ?? qg())), s) {
|
|
25516
25519
|
let e = f?.parser ?? c?.parser, n = f?.structureAnalyzer ?? (f?.parser == null ? c?.structureAnalyzer : void 0);
|
|
25517
|
-
t.push(...
|
|
25520
|
+
t.push(...f_({
|
|
25518
25521
|
...f,
|
|
25519
25522
|
parser: e,
|
|
25520
25523
|
structureAnalyzer: n
|
|
@@ -25524,7 +25527,7 @@ function H_(e = {}) {
|
|
|
25524
25527
|
}
|
|
25525
25528
|
//#endregion
|
|
25526
25529
|
//#region src/core/network/CachingRequestRegistry.ts
|
|
25527
|
-
var
|
|
25530
|
+
var W_ = class e {
|
|
25528
25531
|
delegate;
|
|
25529
25532
|
toKey;
|
|
25530
25533
|
cache;
|
|
@@ -25550,7 +25553,7 @@ var U_ = class e {
|
|
|
25550
25553
|
reject(e, t) {
|
|
25551
25554
|
this.delegate.reject(e, t);
|
|
25552
25555
|
}
|
|
25553
|
-
},
|
|
25556
|
+
}, G_ = new bf("data-source-discovery-result", async (e) => {
|
|
25554
25557
|
await xl().discoverDataSources({ requestId: e });
|
|
25555
25558
|
});
|
|
25556
25559
|
new bf("sql-table-preview", async (e, t) => {
|
|
@@ -25569,32 +25572,32 @@ new bf("sql-table-preview", async (e, t) => {
|
|
|
25569
25572
|
...t
|
|
25570
25573
|
});
|
|
25571
25574
|
});
|
|
25572
|
-
var
|
|
25575
|
+
var K_ = new W_(new bf("validate-sql", async (e, t) => {
|
|
25573
25576
|
await xl().validateSQL({
|
|
25574
25577
|
requestId: e,
|
|
25575
25578
|
...t
|
|
25576
25579
|
});
|
|
25577
|
-
}), { maxSize: 3 }),
|
|
25578
|
-
function
|
|
25579
|
-
let t = j.get(
|
|
25580
|
-
n.delete(e), j.set(
|
|
25580
|
+
}), { maxSize: 3 }), q_ = A(/* @__PURE__ */ new Map());
|
|
25581
|
+
function J_(e) {
|
|
25582
|
+
let t = j.get(q_), n = new Map(t);
|
|
25583
|
+
n.delete(e), j.set(q_, n);
|
|
25581
25584
|
}
|
|
25582
|
-
function
|
|
25583
|
-
j.set(
|
|
25585
|
+
function Y_() {
|
|
25586
|
+
j.set(q_, /* @__PURE__ */ new Map());
|
|
25584
25587
|
}
|
|
25585
|
-
function
|
|
25586
|
-
let r = j.get(
|
|
25587
|
-
i.set(e, a), j.set(
|
|
25588
|
+
function X_({ cellId: e, errorMessage: t, dialect: n }) {
|
|
25589
|
+
let r = j.get(q_), i = new Map(r), a = n === "DuckDB" ? Z_(t) : Q_(t);
|
|
25590
|
+
i.set(e, a), j.set(q_, i);
|
|
25588
25591
|
}
|
|
25589
|
-
function
|
|
25590
|
-
let { errorType: t, errorMessage: n } =
|
|
25592
|
+
function Z_(e) {
|
|
25593
|
+
let { errorType: t, errorMessage: n } = Q_(e), r = n, i, a = n.indexOf("LINE ");
|
|
25591
25594
|
return a !== -1 && (i = n.slice(Math.max(0, a)).trim(), r = n.slice(0, Math.max(0, a)).trim()), {
|
|
25592
25595
|
errorType: t,
|
|
25593
25596
|
errorMessage: r,
|
|
25594
25597
|
codeblock: i
|
|
25595
25598
|
};
|
|
25596
25599
|
}
|
|
25597
|
-
function
|
|
25600
|
+
function Q_(e) {
|
|
25598
25601
|
return {
|
|
25599
25602
|
errorType: e.split(":")[0].trim(),
|
|
25600
25603
|
errorMessage: e.split(":").slice(1).join(":").trim()
|
|
@@ -25602,26 +25605,26 @@ function Z_(e) {
|
|
|
25602
25605
|
}
|
|
25603
25606
|
//#endregion
|
|
25604
25607
|
//#region src/core/codemirror/language/languages/sql/completion-sources.tsx
|
|
25605
|
-
function
|
|
25608
|
+
function $_(e) {
|
|
25606
25609
|
return e.field(Ku);
|
|
25607
25610
|
}
|
|
25608
|
-
function
|
|
25611
|
+
function ev() {
|
|
25609
25612
|
return (e) => {
|
|
25610
|
-
let t =
|
|
25613
|
+
let t = $_(e.state).engine, n = Uu.getCompletionSource(t);
|
|
25611
25614
|
return n && Ut(n)(e) || null;
|
|
25612
25615
|
};
|
|
25613
25616
|
}
|
|
25614
|
-
function
|
|
25617
|
+
function tv() {
|
|
25615
25618
|
return (e) => {
|
|
25616
|
-
let t =
|
|
25619
|
+
let t = $_(e.state).engine, n = Uu.getDialect(t);
|
|
25617
25620
|
return e.matchBefore(/\.\w*/) ? null : Ht(n, !0, (e, t) => ({
|
|
25618
25621
|
label: e,
|
|
25619
25622
|
type: t,
|
|
25620
25623
|
info: async () => {
|
|
25621
|
-
let t = (await
|
|
25624
|
+
let t = (await nv())[e.toLocaleLowerCase()];
|
|
25622
25625
|
if (!t) return null;
|
|
25623
25626
|
let n = document.createElement("div");
|
|
25624
|
-
return n.innerHTML =
|
|
25627
|
+
return n.innerHTML = Kg.keyword({
|
|
25625
25628
|
keyword: e,
|
|
25626
25629
|
info: t
|
|
25627
25630
|
}), n;
|
|
@@ -25629,31 +25632,31 @@ function ev() {
|
|
|
25629
25632
|
}))(e);
|
|
25630
25633
|
};
|
|
25631
25634
|
}
|
|
25632
|
-
var
|
|
25635
|
+
var nv = Pt(async () => {
|
|
25633
25636
|
let e = await import("./common-keywords-8jMJIC1L.js"), t = await import("./duckdb-keywords-BGArYVVK.js");
|
|
25634
25637
|
return {
|
|
25635
25638
|
...e.default.keywords,
|
|
25636
25639
|
...t.default.keywords
|
|
25637
25640
|
};
|
|
25638
|
-
}),
|
|
25639
|
-
function
|
|
25640
|
-
let e = (0, wr.c)(3), [t, n] = Ae(
|
|
25641
|
+
}), rv = Cr("marimo:notebook-sql-mode", "default", Xd);
|
|
25642
|
+
function iv() {
|
|
25643
|
+
let e = (0, wr.c)(3), [t, n] = Ae(rv), r;
|
|
25641
25644
|
return e[0] !== n || e[1] !== t ? (r = {
|
|
25642
25645
|
sqlMode: t,
|
|
25643
25646
|
setSQLMode: n
|
|
25644
25647
|
}, e[0] = n, e[1] = t, e[2] = r) : r = e[2], r;
|
|
25645
25648
|
}
|
|
25646
|
-
function
|
|
25647
|
-
return j.get(
|
|
25649
|
+
function av() {
|
|
25650
|
+
return j.get(rv);
|
|
25648
25651
|
}
|
|
25649
25652
|
//#endregion
|
|
25650
25653
|
//#region src/core/codemirror/language/languages/sql/sql.ts
|
|
25651
|
-
var
|
|
25652
|
-
function
|
|
25654
|
+
var ov = Dl, sv = "DuckDB", cv = new dt();
|
|
25655
|
+
function lv() {
|
|
25653
25656
|
let { latestEngineSelected: e, connectionsMap: t } = j.get(Yl);
|
|
25654
25657
|
return e === null ? [...t.values()].reverse().find((e) => !Pl.has(e.name) && e.source !== "iceberg")?.name ?? "__marimo_duckdb" : e;
|
|
25655
25658
|
}
|
|
25656
|
-
var
|
|
25659
|
+
var uv = class {
|
|
25657
25660
|
parser = new Fd();
|
|
25658
25661
|
type = "sql";
|
|
25659
25662
|
sqlModeEnabled;
|
|
@@ -25663,16 +25666,16 @@ var lv = class {
|
|
|
25663
25666
|
get defaultMetadata() {
|
|
25664
25667
|
return {
|
|
25665
25668
|
...this.parser.defaultMetadata,
|
|
25666
|
-
engine:
|
|
25669
|
+
engine: lv() || "__marimo_duckdb"
|
|
25667
25670
|
};
|
|
25668
25671
|
}
|
|
25669
25672
|
get defaultCode() {
|
|
25670
|
-
let e =
|
|
25673
|
+
let e = lv();
|
|
25671
25674
|
return e && e !== "__marimo_duckdb" ? `_df = mo.sql(f"""SELECT * FROM """, engine=${e})` : this.parser.defaultCode;
|
|
25672
25675
|
}
|
|
25673
25676
|
static fromQuery = (e) => Fd.fromQuery(e);
|
|
25674
25677
|
transformIn(e) {
|
|
25675
|
-
this.parser.defaultMetadata.engine =
|
|
25678
|
+
this.parser.defaultMetadata.engine = lv() || "__marimo_duckdb";
|
|
25676
25679
|
let t = this.parser.transformIn(e), n = t.metadata;
|
|
25677
25680
|
return n.engine && n.engine !== "__marimo_duckdb" && Ql(n.engine), [
|
|
25678
25681
|
t.code,
|
|
@@ -25688,8 +25691,8 @@ var lv = class {
|
|
|
25688
25691
|
return this.parser.isSupported(e);
|
|
25689
25692
|
}
|
|
25690
25693
|
getExtension({ lspConfig: e }) {
|
|
25691
|
-
let t =
|
|
25692
|
-
|
|
25694
|
+
let t = dv(), n = [
|
|
25695
|
+
cv.of(Jt({ dialect: ov })),
|
|
25693
25696
|
lt.of([{
|
|
25694
25697
|
key: "Tab",
|
|
25695
25698
|
run: (e) => Lt(e) || Tt(e),
|
|
@@ -25699,9 +25702,9 @@ var lv = class {
|
|
|
25699
25702
|
defaultKeymap: !1,
|
|
25700
25703
|
activateOnTyping: !0,
|
|
25701
25704
|
override: [
|
|
25702
|
-
$_(),
|
|
25703
|
-
jp,
|
|
25704
25705
|
ev(),
|
|
25706
|
+
jp,
|
|
25707
|
+
tv(),
|
|
25705
25708
|
t.cteCompletionSource,
|
|
25706
25709
|
t.aliasCompletionSource,
|
|
25707
25710
|
t.columnCompletionSource
|
|
@@ -25709,9 +25712,9 @@ var lv = class {
|
|
|
25709
25712
|
})
|
|
25710
25713
|
];
|
|
25711
25714
|
if (e?.diagnostics?.sql_linter ?? !1) {
|
|
25712
|
-
let e = j.get(Ie), r = new
|
|
25713
|
-
n.push(
|
|
25714
|
-
schema:
|
|
25715
|
+
let e = j.get(Ie), r = new hv({ getParserOptions: (e) => ({ database: Sv(e) ?? sv }) });
|
|
25716
|
+
n.push(U_({
|
|
25717
|
+
schema: bv,
|
|
25715
25718
|
enableLinting: !0,
|
|
25716
25719
|
linterConfig: {
|
|
25717
25720
|
delay: 250,
|
|
@@ -25742,7 +25745,7 @@ var lv = class {
|
|
|
25742
25745
|
enableColumns: !0,
|
|
25743
25746
|
parser: t.parser,
|
|
25744
25747
|
contextAnalyzer: t.contextAnalyzer,
|
|
25745
|
-
theme:
|
|
25748
|
+
theme: qg(e)
|
|
25746
25749
|
},
|
|
25747
25750
|
enableNavigation: !0,
|
|
25748
25751
|
navigationConfig: {
|
|
@@ -25755,36 +25758,36 @@ var lv = class {
|
|
|
25755
25758
|
e.focusChanged && r.setFocusState(e.view.hasFocus);
|
|
25756
25759
|
}));
|
|
25757
25760
|
}
|
|
25758
|
-
return this.sqlModeEnabled && n.push(
|
|
25761
|
+
return this.sqlModeEnabled && n.push(Tv()), n;
|
|
25759
25762
|
}
|
|
25760
25763
|
};
|
|
25761
|
-
function
|
|
25762
|
-
let e = new
|
|
25764
|
+
function dv() {
|
|
25765
|
+
let e = new Dh({ getParserOptions: (e) => ({ database: fv(e) }) }), t = new pv(e), n = new mv(e);
|
|
25763
25766
|
return {
|
|
25764
25767
|
parser: e,
|
|
25765
25768
|
contextAnalyzer: t,
|
|
25766
25769
|
structureAnalyzer: n,
|
|
25767
|
-
cteCompletionSource:
|
|
25770
|
+
cteCompletionSource: Ag({
|
|
25768
25771
|
parser: e,
|
|
25769
25772
|
contextAnalyzer: t,
|
|
25770
25773
|
structureAnalyzer: n
|
|
25771
25774
|
}),
|
|
25772
|
-
aliasCompletionSource:
|
|
25773
|
-
schema:
|
|
25775
|
+
aliasCompletionSource: tg({
|
|
25776
|
+
schema: bv,
|
|
25774
25777
|
parser: e,
|
|
25775
25778
|
contextAnalyzer: t
|
|
25776
25779
|
}),
|
|
25777
|
-
columnCompletionSource:
|
|
25778
|
-
schema:
|
|
25780
|
+
columnCompletionSource: ag({
|
|
25781
|
+
schema: bv,
|
|
25779
25782
|
parser: e,
|
|
25780
25783
|
contextAnalyzer: t
|
|
25781
25784
|
})
|
|
25782
25785
|
};
|
|
25783
25786
|
}
|
|
25784
|
-
function
|
|
25785
|
-
return
|
|
25787
|
+
function fv(e) {
|
|
25788
|
+
return Sv(e) ?? sv;
|
|
25786
25789
|
}
|
|
25787
|
-
var
|
|
25790
|
+
var pv = class extends $h {
|
|
25788
25791
|
analyzers = /* @__PURE__ */ new Map();
|
|
25789
25792
|
analysisParser;
|
|
25790
25793
|
constructor(e) {
|
|
@@ -25797,10 +25800,10 @@ var fv = class extends Qh {
|
|
|
25797
25800
|
for (let e of this.analyzers.values()) e.clearCache();
|
|
25798
25801
|
}
|
|
25799
25802
|
getAnalyzer(e) {
|
|
25800
|
-
let t =
|
|
25801
|
-
return n || (n = new
|
|
25803
|
+
let t = fv(e), n = this.analyzers.get(t);
|
|
25804
|
+
return n || (n = new $h(this.analysisParser), this.analyzers.set(t, n)), n;
|
|
25802
25805
|
}
|
|
25803
|
-
},
|
|
25806
|
+
}, mv = class extends eg {
|
|
25804
25807
|
analyzers = /* @__PURE__ */ new Map();
|
|
25805
25808
|
analysisParser;
|
|
25806
25809
|
constructor(e) {
|
|
@@ -25819,10 +25822,10 @@ var fv = class extends Qh {
|
|
|
25819
25822
|
for (let e of this.analyzers.values()) e.clearCache();
|
|
25820
25823
|
}
|
|
25821
25824
|
getAnalyzer(e) {
|
|
25822
|
-
let t =
|
|
25823
|
-
return n || (n = new
|
|
25825
|
+
let t = fv(e), n = this.analyzers.get(t);
|
|
25826
|
+
return n || (n = new eg(this.analysisParser), this.analyzers.set(t, n)), n;
|
|
25824
25827
|
}
|
|
25825
|
-
},
|
|
25828
|
+
}, hv = class extends Dh {
|
|
25826
25829
|
validationTimeout = null;
|
|
25827
25830
|
pendingValidationResolve = null;
|
|
25828
25831
|
VALIDATION_DELAY_MS = 300;
|
|
@@ -25841,7 +25844,7 @@ var fv = class extends Qh {
|
|
|
25841
25844
|
return;
|
|
25842
25845
|
}
|
|
25843
25846
|
try {
|
|
25844
|
-
let r = await
|
|
25847
|
+
let r = await Ev(e, t, n, Pl.has(t) ? av() : "default");
|
|
25845
25848
|
if (r.error) {
|
|
25846
25849
|
a.error("Failed to validate SQL", { error: r.error }), this.resolvePendingValidation([]);
|
|
25847
25850
|
return;
|
|
@@ -25854,52 +25857,52 @@ var fv = class extends Qh {
|
|
|
25854
25857
|
});
|
|
25855
25858
|
}
|
|
25856
25859
|
async validateSql(e, t) {
|
|
25857
|
-
let n =
|
|
25858
|
-
return this.isFocused ?
|
|
25860
|
+
let n = yv(t.state), r = Cv(n.engine);
|
|
25861
|
+
return this.isFocused ? gv(n.engine, r) ? this.validateWithDelay(e, n.engine, r ?? sv) : super.validateSql(e, t) : [];
|
|
25859
25862
|
}
|
|
25860
25863
|
async parse(e, t) {
|
|
25861
|
-
let n =
|
|
25862
|
-
return
|
|
25864
|
+
let n = yv(t.state).engine;
|
|
25865
|
+
return gv(n, Cv(n)) ? {
|
|
25863
25866
|
success: !0,
|
|
25864
25867
|
errors: []
|
|
25865
25868
|
} : super.parse(e, t);
|
|
25866
25869
|
}
|
|
25867
25870
|
};
|
|
25868
|
-
function
|
|
25871
|
+
function gv(e, t) {
|
|
25869
25872
|
return e === "__marimo_duckdb" || t === "DuckDB";
|
|
25870
25873
|
}
|
|
25871
|
-
function
|
|
25874
|
+
function _v(e) {
|
|
25872
25875
|
let t = Uu.getDialect(e);
|
|
25873
|
-
return
|
|
25876
|
+
return cv.reconfigure(Jt({ dialect: t }));
|
|
25874
25877
|
}
|
|
25875
|
-
function
|
|
25876
|
-
e.dispatch({ effects:
|
|
25878
|
+
function vv(e, t) {
|
|
25879
|
+
e.dispatch({ effects: _v(t) });
|
|
25877
25880
|
}
|
|
25878
|
-
function
|
|
25881
|
+
function yv(e) {
|
|
25879
25882
|
return e.field(Ku);
|
|
25880
25883
|
}
|
|
25881
|
-
function
|
|
25882
|
-
let t =
|
|
25884
|
+
function bv(e) {
|
|
25885
|
+
let t = yv(e.state).engine, n = Uu.getCompletionSource(t);
|
|
25883
25886
|
if (!n?.schema) return {};
|
|
25884
25887
|
let r = n.schema;
|
|
25885
|
-
if (!
|
|
25888
|
+
if (!xv(r)) return r;
|
|
25886
25889
|
let i = n.defaultSchema, a = i ? r[i] : void 0;
|
|
25887
|
-
return a && !Array.isArray(a) && typeof a == "object" && "children" in a &&
|
|
25890
|
+
return a && !Array.isArray(a) && typeof a == "object" && "children" in a && xv(a.children) ? {
|
|
25888
25891
|
...r,
|
|
25889
25892
|
...Object.fromEntries(Object.entries(a.children).filter(([e]) => !Object.hasOwn(r, e)))
|
|
25890
25893
|
} : r;
|
|
25891
25894
|
}
|
|
25892
|
-
function
|
|
25895
|
+
function xv(e) {
|
|
25893
25896
|
if (Array.isArray(e)) return !1;
|
|
25894
25897
|
if (!("self" in e) || !("children" in e)) return !0;
|
|
25895
25898
|
let t = e.self;
|
|
25896
25899
|
return !(typeof t == "object" && t && !Array.isArray(t) && "label" in t && typeof t.label == "string");
|
|
25897
25900
|
}
|
|
25898
|
-
function xv(e) {
|
|
25899
|
-
let t = vv(e).engine;
|
|
25900
|
-
return Sv(t);
|
|
25901
|
-
}
|
|
25902
25901
|
function Sv(e) {
|
|
25902
|
+
let t = yv(e).engine;
|
|
25903
|
+
return Cv(t);
|
|
25904
|
+
}
|
|
25905
|
+
function Cv(e) {
|
|
25903
25906
|
let t = Uu.getInternalDialect(e)?.toLowerCase();
|
|
25904
25907
|
if (!t || !kl(t)) return null;
|
|
25905
25908
|
switch (t) {
|
|
@@ -25938,45 +25941,45 @@ function Sv(e) {
|
|
|
25938
25941
|
default: return T(t), null;
|
|
25939
25942
|
}
|
|
25940
25943
|
}
|
|
25941
|
-
var
|
|
25942
|
-
function
|
|
25944
|
+
var wv = 300;
|
|
25945
|
+
function Tv() {
|
|
25943
25946
|
return pt.define((e) => {
|
|
25944
25947
|
let t, n = null, r = e.state.facet(Cl);
|
|
25945
25948
|
return {
|
|
25946
25949
|
update(e) {
|
|
25947
25950
|
if (!e.docChanged) return;
|
|
25948
|
-
let i =
|
|
25951
|
+
let i = av();
|
|
25949
25952
|
if (i === "default") return;
|
|
25950
|
-
let o =
|
|
25953
|
+
let o = yv(e.state).engine;
|
|
25951
25954
|
if (!Pl.has(o)) return;
|
|
25952
25955
|
let s = e.state.doc.toString();
|
|
25953
25956
|
t && window.clearTimeout(t), t = window.setTimeout(async () => {
|
|
25954
25957
|
if (n !== s) {
|
|
25955
25958
|
if (n = s, s === "") {
|
|
25956
|
-
|
|
25959
|
+
J_(r);
|
|
25957
25960
|
return;
|
|
25958
25961
|
}
|
|
25959
25962
|
try {
|
|
25960
|
-
let e =
|
|
25961
|
-
t?.error_message ?
|
|
25963
|
+
let e = Cv(o), t = (await Ev(s, o, e, i)).validate_result;
|
|
25964
|
+
t?.error_message ? X_({
|
|
25962
25965
|
cellId: r,
|
|
25963
25966
|
errorMessage: t.error_message,
|
|
25964
25967
|
dialect: e
|
|
25965
|
-
}) :
|
|
25968
|
+
}) : J_(r);
|
|
25966
25969
|
} catch (e) {
|
|
25967
25970
|
a.error("Failed to validate SQL", { error: e });
|
|
25968
25971
|
}
|
|
25969
25972
|
}
|
|
25970
|
-
},
|
|
25973
|
+
}, wv);
|
|
25971
25974
|
},
|
|
25972
25975
|
destroy() {
|
|
25973
|
-
t && window.clearTimeout(t),
|
|
25976
|
+
t && window.clearTimeout(t), J_(r);
|
|
25974
25977
|
}
|
|
25975
25978
|
};
|
|
25976
25979
|
});
|
|
25977
25980
|
}
|
|
25978
|
-
async function
|
|
25979
|
-
let i = await
|
|
25981
|
+
async function Ev(e, t, n, r) {
|
|
25982
|
+
let i = await K_.request({
|
|
25980
25983
|
onlyParse: r === "default",
|
|
25981
25984
|
engine: t,
|
|
25982
25985
|
dialect: n,
|
|
@@ -25987,17 +25990,17 @@ async function Tv(e, t, n, r) {
|
|
|
25987
25990
|
}
|
|
25988
25991
|
//#endregion
|
|
25989
25992
|
//#region src/core/codemirror/language/LanguageAdapters.ts
|
|
25990
|
-
var
|
|
25993
|
+
var Dv = Pt(() => new ah()), Ov = Pt(() => new zp()), kv = Pt(() => new uv()), Av = {
|
|
25991
25994
|
get python() {
|
|
25992
|
-
return
|
|
25995
|
+
return Dv();
|
|
25993
25996
|
},
|
|
25994
25997
|
get markdown() {
|
|
25995
|
-
return
|
|
25998
|
+
return Ov();
|
|
25996
25999
|
},
|
|
25997
26000
|
get sql() {
|
|
25998
|
-
return
|
|
26001
|
+
return kv();
|
|
25999
26002
|
}
|
|
26000
|
-
},
|
|
26003
|
+
}, jv = P.forwardRef((e, t) => {
|
|
26001
26004
|
let n = (0, wr.c)(13), r, i;
|
|
26002
26005
|
n[0] === e ? (r = n[1], i = n[2]) : ({className: r, ...i} = e, n[0] = e, n[1] = r, n[2] = i);
|
|
26003
26006
|
let a;
|
|
@@ -26017,27 +26020,27 @@ var Ev = Pt(() => new ih()), Dv = Pt(() => new zp()), Ov = Pt(() => new lv()), k
|
|
|
26017
26020
|
children: c
|
|
26018
26021
|
}), n[8] = i, n[9] = t, n[10] = a, n[11] = c, n[12] = l) : l = n[12], l;
|
|
26019
26022
|
});
|
|
26020
|
-
|
|
26021
|
-
var
|
|
26022
|
-
function
|
|
26023
|
+
jv.displayName = Qn.displayName;
|
|
26024
|
+
var Mv = /* @__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("."));
|
|
26025
|
+
function Nv(e, t = !0) {
|
|
26023
26026
|
return e = e.trim(), e ? (/^\d/.test(e) && (e = `_${e}`), e = e.replaceAll(/\W/g, "_"), t ? e.toLowerCase() : e) : "_";
|
|
26024
26027
|
}
|
|
26025
|
-
function
|
|
26026
|
-
let n = new Set(t), r = e, i = (e) => !n.has(e) && !
|
|
26028
|
+
function Pv(e, t) {
|
|
26029
|
+
let n = new Set(t), r = e, i = (e) => !n.has(e) && !Mv.has(e);
|
|
26027
26030
|
if (i(e)) return e;
|
|
26028
26031
|
let a = 1;
|
|
26029
26032
|
for (; !i(r);) r = `${e}_${a}`, a++;
|
|
26030
26033
|
return r;
|
|
26031
26034
|
}
|
|
26032
|
-
function
|
|
26033
|
-
return
|
|
26035
|
+
function Fv(e, t) {
|
|
26036
|
+
return Iv(e) ? `cell-${t}` : e;
|
|
26034
26037
|
}
|
|
26035
|
-
function
|
|
26038
|
+
function Iv(e) {
|
|
26036
26039
|
return !e || e === "_" || e === "__";
|
|
26037
26040
|
}
|
|
26038
26041
|
//#endregion
|
|
26039
26042
|
//#region src/hooks/useAutoGrowInputProps.ts
|
|
26040
|
-
function
|
|
26043
|
+
function Lv(e) {
|
|
26041
26044
|
let t = (0, wr.c)(15), { minWidth: n, padding: r } = e, i = n === void 0 ? 70 : n, a = r === void 0 ? 15 : r, [o, s] = (0, P.useState)(50), c = (0, P.useRef)(null), l = (0, P.useRef)(null), u;
|
|
26042
26045
|
t[0] === a ? u = t[1] : (u = (e) => {
|
|
26043
26046
|
if (l.current && c.current) {
|
|
@@ -26084,11 +26087,11 @@ function Iv(e) {
|
|
|
26084
26087
|
}
|
|
26085
26088
|
//#endregion
|
|
26086
26089
|
//#region src/core/codemirror/language/panel/markdown.tsx
|
|
26087
|
-
function
|
|
26090
|
+
function Rv({ currentQuotePrefix: e, checked: t, prefix: n }) {
|
|
26088
26091
|
let r = e;
|
|
26089
26092
|
return t ? e === "" ? r = n : e !== "rf" && n !== e && (r = "rf") : e === n ? r = "" : e === "rf" && (r = n === "r" ? "f" : "r"), r;
|
|
26090
26093
|
}
|
|
26091
|
-
var
|
|
26094
|
+
var zv = () => {
|
|
26092
26095
|
let e = (0, wr.c)(2), t;
|
|
26093
26096
|
e[0] === Symbol.for("react.memo_cache_sentinel") ? (t = /* @__PURE__ */ (0, F.jsxs)("section", {
|
|
26094
26097
|
className: "flex flex-col gap-0.5",
|
|
@@ -26144,36 +26147,36 @@ var Rv = () => {
|
|
|
26144
26147
|
]
|
|
26145
26148
|
})]
|
|
26146
26149
|
}), e[1] = n) : n = e[1], n;
|
|
26147
|
-
},
|
|
26148
|
-
function
|
|
26149
|
-
return { [
|
|
26150
|
+
}, Bv = "data-cell-id";
|
|
26151
|
+
function Vv(e) {
|
|
26152
|
+
return { [Bv]: e };
|
|
26150
26153
|
}
|
|
26151
|
-
var
|
|
26152
|
-
function
|
|
26153
|
-
return { [
|
|
26154
|
+
var Hv = "data-for-cell-id";
|
|
26155
|
+
function Uv(e) {
|
|
26156
|
+
return { [Hv]: e };
|
|
26154
26157
|
}
|
|
26155
26158
|
//#endregion
|
|
26156
26159
|
//#region src/components/databases/icons/clickhouse.svg
|
|
26157
|
-
var Uv = "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", Wv = "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", Gv = "data:image/png;base64,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", Kv = "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", qv = "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", Jv = "data:image/png;base64,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", Yv = "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", Xv = "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", Zv = "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", Qv = {
|
|
26160
|
+
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", Gv = "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", Kv = "data:image/png;base64,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", qv = "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", Jv = "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", Yv = "data:image/png;base64,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", Xv = "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", Zv = "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", Qv = "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", $v = {
|
|
26158
26161
|
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",
|
|
26159
|
-
duckdb:
|
|
26160
|
-
motherduck:
|
|
26161
|
-
postgres:
|
|
26162
|
-
postgresql:
|
|
26163
|
-
mysql:
|
|
26162
|
+
duckdb: qv,
|
|
26163
|
+
motherduck: Xv,
|
|
26164
|
+
postgres: Qv,
|
|
26165
|
+
postgresql: Qv,
|
|
26166
|
+
mysql: Zv,
|
|
26164
26167
|
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",
|
|
26165
|
-
databricks:
|
|
26166
|
-
clickhouse:
|
|
26168
|
+
databricks: Gv,
|
|
26169
|
+
clickhouse: Wv,
|
|
26167
26170
|
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",
|
|
26168
|
-
bigquery:
|
|
26171
|
+
bigquery: Jv,
|
|
26169
26172
|
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",
|
|
26170
|
-
iceberg:
|
|
26171
|
-
datafusion:
|
|
26173
|
+
iceberg: Yv,
|
|
26174
|
+
datafusion: Kv,
|
|
26172
26175
|
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",
|
|
26173
26176
|
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",
|
|
26174
26177
|
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"
|
|
26175
|
-
},
|
|
26176
|
-
let t = (0, wr.c)(11), { name: n, className: r } = e, i =
|
|
26178
|
+
}, ey = (e) => {
|
|
26179
|
+
let t = (0, wr.c)(11), { name: n, className: r } = e, i = $v[n.toLowerCase()];
|
|
26177
26180
|
if (!i) {
|
|
26178
26181
|
let e;
|
|
26179
26182
|
t[0] === r ? e = t[1] : (e = o("mt-0.5", r), t[0] = r, t[1] = e);
|
|
@@ -26191,15 +26194,15 @@ var Uv = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20x
|
|
|
26191
26194
|
};
|
|
26192
26195
|
//#endregion
|
|
26193
26196
|
//#region src/core/cells/add-missing-import.ts
|
|
26194
|
-
function
|
|
26197
|
+
function ty({ moduleName: e, variableName: t, onAddImport: n, appStore: r = j }) {
|
|
26195
26198
|
if (t in r.get(qd)) return !1;
|
|
26196
26199
|
let { cellData: i, cellIds: a } = r.get($), o = RegExp(`import[ \t]+${e}[ \t]+as[ \t]+${t}`, "g");
|
|
26197
26200
|
for (let e of a.inOrderIds) if (o.test(i[e].code)) return !1;
|
|
26198
26201
|
return n(`import ${e} as ${t}`), !0;
|
|
26199
26202
|
}
|
|
26200
|
-
function
|
|
26203
|
+
function ny({ autoInstantiate: e, createNewCell: t, fromCellId: n, before: r }) {
|
|
26201
26204
|
let i = xl(), a = null;
|
|
26202
|
-
return
|
|
26205
|
+
return ty({
|
|
26203
26206
|
moduleName: "marimo",
|
|
26204
26207
|
variableName: "mo",
|
|
26205
26208
|
onAddImport: (o) => {
|
|
@@ -26218,9 +26221,9 @@ function ty({ autoInstantiate: e, createNewCell: t, fromCellId: n, before: r })
|
|
|
26218
26221
|
}
|
|
26219
26222
|
}) ? a : null;
|
|
26220
26223
|
}
|
|
26221
|
-
function
|
|
26224
|
+
function ry({ autoInstantiate: e, createNewCell: t, fromCellId: n }) {
|
|
26222
26225
|
let r = xl(), i = null;
|
|
26223
|
-
return
|
|
26226
|
+
return ty({
|
|
26224
26227
|
moduleName: "altair",
|
|
26225
26228
|
variableName: "alt",
|
|
26226
26229
|
onAddImport: (a) => {
|
|
@@ -26241,13 +26244,13 @@ function ny({ autoInstantiate: e, createNewCell: t, fromCellId: n }) {
|
|
|
26241
26244
|
}
|
|
26242
26245
|
//#endregion
|
|
26243
26246
|
//#region src/core/cells/focus.ts
|
|
26244
|
-
function
|
|
26247
|
+
function iy() {
|
|
26245
26248
|
return {
|
|
26246
26249
|
focusedCellId: null,
|
|
26247
26250
|
lastFocusedCellId: null
|
|
26248
26251
|
};
|
|
26249
26252
|
}
|
|
26250
|
-
var { reducer:
|
|
26253
|
+
var { reducer: ay, createActions: oy, valueAtom: sy, useActions: cy } = y(iy, {
|
|
26251
26254
|
focusCell: (e, t) => ({
|
|
26252
26255
|
...e,
|
|
26253
26256
|
focusedCellId: t.cellId,
|
|
@@ -26265,15 +26268,15 @@ var { reducer: iy, createActions: ay, valueAtom: oy, useActions: sy } = y(ry, {
|
|
|
26265
26268
|
...e,
|
|
26266
26269
|
focusedCellId: null
|
|
26267
26270
|
})
|
|
26268
|
-
}),
|
|
26269
|
-
function
|
|
26270
|
-
return Le(
|
|
26271
|
+
}), ly = A((e) => e(sy).lastFocusedCellId);
|
|
26272
|
+
function uy() {
|
|
26273
|
+
return Le(ly);
|
|
26271
26274
|
}
|
|
26272
26275
|
A((e) => {
|
|
26273
|
-
let t = e(
|
|
26274
|
-
return !t || t === "__scratch__" ? null :
|
|
26276
|
+
let t = e(ly);
|
|
26277
|
+
return !t || t === "__scratch__" ? null : dy(t, e($));
|
|
26275
26278
|
});
|
|
26276
|
-
function
|
|
26279
|
+
function dy(e, t) {
|
|
26277
26280
|
let { cellData: n, cellHandles: r, cellRuntime: i } = t, a = n[e], o = i[e], s = r[e]?.current;
|
|
26278
26281
|
return !a || !s ? null : {
|
|
26279
26282
|
cellId: e,
|
|
@@ -26287,10 +26290,10 @@ function uy(e, t) {
|
|
|
26287
26290
|
}
|
|
26288
26291
|
//#endregion
|
|
26289
26292
|
//#region src/components/editor/connections/components.tsx
|
|
26290
|
-
function
|
|
26291
|
-
let e = (0, wr.c)(4), { createNewCell: t } =
|
|
26293
|
+
function fy() {
|
|
26294
|
+
let e = (0, wr.c)(4), { createNewCell: t } = Jx(), n = uy(), r = Le(Ne), i;
|
|
26292
26295
|
return e[0] !== r || e[1] !== t || e[2] !== n ? (i = (e) => {
|
|
26293
|
-
/\bmo\./.test(e) &&
|
|
26296
|
+
/\bmo\./.test(e) && ny({
|
|
26294
26297
|
autoInstantiate: r,
|
|
26295
26298
|
createNewCell: t,
|
|
26296
26299
|
fromCellId: n
|
|
@@ -26302,44 +26305,44 @@ function dy() {
|
|
|
26302
26305
|
});
|
|
26303
26306
|
}, e[0] = r, e[1] = t, e[2] = n, e[3] = i) : i = e[3], i;
|
|
26304
26307
|
}
|
|
26305
|
-
function
|
|
26306
|
-
let t = (0, wr.c)(3), n =
|
|
26308
|
+
function py(e) {
|
|
26309
|
+
let t = (0, wr.c)(3), n = fy(), r;
|
|
26307
26310
|
return t[0] !== n || t[1] !== e ? (r = (t) => {
|
|
26308
26311
|
n(t.code), e?.();
|
|
26309
26312
|
}, t[0] = n, t[1] = e, t[2] = r) : r = t[2], r;
|
|
26310
26313
|
}
|
|
26311
26314
|
//#endregion
|
|
26312
26315
|
//#region src/core/datasets/data-source-discovery.ts
|
|
26313
|
-
function
|
|
26316
|
+
function my(e, t) {
|
|
26314
26317
|
return !t || e.category === "object-storage" == (t === "storage");
|
|
26315
26318
|
}
|
|
26316
|
-
function
|
|
26319
|
+
function hy(e, t) {
|
|
26317
26320
|
let n = e.hidesWhen;
|
|
26318
26321
|
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));
|
|
26319
26322
|
}
|
|
26320
|
-
var
|
|
26321
|
-
function
|
|
26322
|
-
let e = j.get(
|
|
26323
|
-
return (!
|
|
26324
|
-
throw
|
|
26325
|
-
})),
|
|
26323
|
+
var gy = A(0), _y, vy = 0;
|
|
26324
|
+
function yy() {
|
|
26325
|
+
let e = j.get(gy);
|
|
26326
|
+
return (!_y || vy !== e) && (vy = e, _y = qm().then(() => G_.request({})).then((e) => e.sources).catch((t) => {
|
|
26327
|
+
throw vy === e && (_y = void 0), t;
|
|
26328
|
+
})), _y;
|
|
26326
26329
|
}
|
|
26327
|
-
function
|
|
26330
|
+
function by(e, t) {
|
|
26328
26331
|
return `${e}::${t ?? ""}`;
|
|
26329
26332
|
}
|
|
26330
|
-
function
|
|
26333
|
+
function xy(e) {
|
|
26331
26334
|
return `${e}::`;
|
|
26332
26335
|
}
|
|
26333
26336
|
//#endregion
|
|
26334
26337
|
//#region src/core/storage/state.ts
|
|
26335
|
-
function
|
|
26338
|
+
function Sy() {
|
|
26336
26339
|
return {
|
|
26337
26340
|
namespaces: [],
|
|
26338
26341
|
entriesByPath: /* @__PURE__ */ new Map(),
|
|
26339
26342
|
pageMetadataByPath: /* @__PURE__ */ new Map()
|
|
26340
26343
|
};
|
|
26341
26344
|
}
|
|
26342
|
-
var { reducer:
|
|
26345
|
+
var { reducer: Cy, createActions: wy, valueAtom: Ty, useActions: Ey } = y(Sy, {
|
|
26343
26346
|
setNamespaces: (e, t) => {
|
|
26344
26347
|
let n = new Map(e.namespaces.map((e) => [e.name, e]));
|
|
26345
26348
|
for (let e of t.namespaces) n.set(e.name, e);
|
|
@@ -26349,7 +26352,7 @@ var { reducer: Sy, createActions: Cy, valueAtom: wy, useActions: Ty } = y(xy, {
|
|
|
26349
26352
|
};
|
|
26350
26353
|
},
|
|
26351
26354
|
setEntries: (e, t) => {
|
|
26352
|
-
let n =
|
|
26355
|
+
let n = by(t.namespace, t.prefix), r = new Map(e.entriesByPath), i = t.append && r.has(n) ? [...r.get(n) ?? [], ...t.entries] : t.entries;
|
|
26353
26356
|
r.set(n, i);
|
|
26354
26357
|
let a = new Map(e.pageMetadataByPath);
|
|
26355
26358
|
return a.set(n, { nextPageToken: t.nextPageToken ?? null }), {
|
|
@@ -26359,7 +26362,7 @@ var { reducer: Sy, createActions: Cy, valueAtom: wy, useActions: Ty } = y(xy, {
|
|
|
26359
26362
|
};
|
|
26360
26363
|
},
|
|
26361
26364
|
clearNamespaceCache: (e, t) => {
|
|
26362
|
-
let n = new Map(e.entriesByPath), r = new Map(e.pageMetadataByPath), i =
|
|
26365
|
+
let n = new Map(e.entriesByPath), r = new Map(e.pageMetadataByPath), i = xy(t);
|
|
26363
26366
|
for (let e of n.keys()) e.startsWith(i) && n.delete(e);
|
|
26364
26367
|
for (let e of r.keys()) e.startsWith(i) && r.delete(e);
|
|
26365
26368
|
return {
|
|
@@ -26375,15 +26378,15 @@ var { reducer: Sy, createActions: Cy, valueAtom: wy, useActions: Ty } = y(xy, {
|
|
|
26375
26378
|
namespaces: r
|
|
26376
26379
|
};
|
|
26377
26380
|
}
|
|
26378
|
-
}),
|
|
26381
|
+
}), Dy = A((e) => e(Ty).namespaces);
|
|
26379
26382
|
//#endregion
|
|
26380
26383
|
//#region src/hooks/useDataSourceDiscovery.ts
|
|
26381
|
-
function
|
|
26382
|
-
let e = (0, wr.c)(2), t = Le(
|
|
26383
|
-
return e[0] === t ? n = e[1] : (n = [t], e[0] = t, e[1] = n), on(
|
|
26384
|
+
function Oy() {
|
|
26385
|
+
let e = (0, wr.c)(2), t = Le(gy), n;
|
|
26386
|
+
return e[0] === t ? n = e[1] : (n = [t], e[0] = t, e[1] = n), on(yy, n);
|
|
26384
26387
|
}
|
|
26385
|
-
function
|
|
26386
|
-
let t = (0, wr.c)(6), { data: n } =
|
|
26388
|
+
function ky(e) {
|
|
26389
|
+
let t = (0, wr.c)(6), { data: n } = Oy(), r = Le(Zl), i = Le(Dy), a;
|
|
26387
26390
|
bb0: {
|
|
26388
26391
|
if (!n) {
|
|
26389
26392
|
let e;
|
|
@@ -26393,91 +26396,91 @@ function Oy(e) {
|
|
|
26393
26396
|
let o;
|
|
26394
26397
|
if (t[1] !== r || t[2] !== n || t[3] !== e || t[4] !== i) {
|
|
26395
26398
|
let a = {
|
|
26396
|
-
dialects: [...r.values()].map(
|
|
26397
|
-
storageProtocols: new Set(i.map(
|
|
26398
|
-
storageBackendTypes: new Set(i.map(
|
|
26399
|
+
dialects: [...r.values()].map(My),
|
|
26400
|
+
storageProtocols: new Set(i.map(jy)),
|
|
26401
|
+
storageBackendTypes: new Set(i.map(Ay))
|
|
26399
26402
|
};
|
|
26400
|
-
o = n.filter((t) =>
|
|
26403
|
+
o = n.filter((t) => my(t, e) && !hy(t, a)), t[1] = r, t[2] = n, t[3] = e, t[4] = i, t[5] = o;
|
|
26401
26404
|
} else o = t[5];
|
|
26402
26405
|
a = o;
|
|
26403
26406
|
}
|
|
26404
26407
|
return a;
|
|
26405
26408
|
}
|
|
26406
|
-
function
|
|
26409
|
+
function Ay(e) {
|
|
26407
26410
|
return e.backendType.toLowerCase();
|
|
26408
26411
|
}
|
|
26409
|
-
function
|
|
26412
|
+
function jy(e) {
|
|
26410
26413
|
return e.protocol.toLowerCase();
|
|
26411
26414
|
}
|
|
26412
|
-
function
|
|
26415
|
+
function My(e) {
|
|
26413
26416
|
return e.dialect.toLowerCase();
|
|
26414
26417
|
}
|
|
26415
26418
|
//#endregion
|
|
26416
26419
|
//#region src/hooks/useNonce.ts
|
|
26417
|
-
function
|
|
26420
|
+
function Ny() {
|
|
26418
26421
|
let e = (0, wr.c)(1), [, t] = (0, P.useState)(0), n;
|
|
26419
26422
|
return e[0] === Symbol.for("react.memo_cache_sentinel") ? (n = () => {
|
|
26420
|
-
t(
|
|
26423
|
+
t(Py);
|
|
26421
26424
|
}, e[0] = n) : n = e[0], n;
|
|
26422
26425
|
}
|
|
26423
|
-
function
|
|
26426
|
+
function Py(e) {
|
|
26424
26427
|
return e + 1;
|
|
26425
26428
|
}
|
|
26426
26429
|
//#endregion
|
|
26427
26430
|
//#region src/core/codemirror/language/panel/sql.tsx
|
|
26428
|
-
var
|
|
26429
|
-
let t = (0, wr.c)(6), n =
|
|
26431
|
+
var Fy = (e) => {
|
|
26432
|
+
let t = (0, wr.c)(6), n = ky("database");
|
|
26430
26433
|
if (n.length === 0) {
|
|
26431
26434
|
let r;
|
|
26432
|
-
return t[0] !== n || t[1] !== e ? (r = /* @__PURE__ */ (0, F.jsx)(
|
|
26435
|
+
return t[0] !== n || t[1] !== e ? (r = /* @__PURE__ */ (0, F.jsx)(Ly, {
|
|
26433
26436
|
...e,
|
|
26434
26437
|
detectedDataSources: n
|
|
26435
26438
|
}), t[0] = n, t[1] = e, t[2] = r) : r = t[2], r;
|
|
26436
26439
|
}
|
|
26437
26440
|
let r;
|
|
26438
|
-
return t[3] !== n || t[4] !== e ? (r = /* @__PURE__ */ (0, F.jsx)(
|
|
26441
|
+
return t[3] !== n || t[4] !== e ? (r = /* @__PURE__ */ (0, F.jsx)(Iy, {
|
|
26439
26442
|
...e,
|
|
26440
26443
|
detectedDataSources: n
|
|
26441
26444
|
}), t[3] = n, t[4] = e, t[5] = r) : r = t[5], r;
|
|
26442
|
-
},
|
|
26445
|
+
}, Iy = (e) => {
|
|
26443
26446
|
let t = (0, wr.c)(7), n, r;
|
|
26444
26447
|
t[0] === e ? (n = t[1], r = t[2]) : ({detectedDataSources: n, ...r} = e, t[0] = e, t[1] = n, t[2] = r);
|
|
26445
|
-
let i =
|
|
26446
|
-
return t[3] !== i || t[4] !== n || t[5] !== r ? (a = /* @__PURE__ */ (0, F.jsx)(
|
|
26448
|
+
let i = py(), a;
|
|
26449
|
+
return t[3] !== i || t[4] !== n || t[5] !== r ? (a = /* @__PURE__ */ (0, F.jsx)(Ly, {
|
|
26447
26450
|
...r,
|
|
26448
26451
|
detectedDataSources: n,
|
|
26449
26452
|
addDetectedDataSource: i
|
|
26450
26453
|
}), t[3] = i, t[4] = n, t[5] = r, t[6] = a) : a = t[6], a;
|
|
26451
|
-
},
|
|
26454
|
+
}, Ly = (e) => {
|
|
26452
26455
|
let t = (0, wr.c)(42), { selectedEngine: n, onChange: r, cellId: i, detectedDataSources: a, addDetectedDataSource: o } = e, s = Le(Zl), c = [], l = [];
|
|
26453
26456
|
for (let [e, t] of s.entries()) Pl.has(e) ? c.push(t) : l.push(t);
|
|
26454
|
-
let u =
|
|
26457
|
+
let u = Ny(), d;
|
|
26455
26458
|
t[0] !== s || t[1] !== n ? (d = n && !s.has(n), t[0] = s, t[1] = n, t[2] = d) : d = t[2];
|
|
26456
26459
|
let f = d, p;
|
|
26457
26460
|
t[3] !== o || t[4] !== s || t[5] !== a || t[6] !== r || t[7] !== u ? (p = (e) => {
|
|
26458
|
-
if (e ===
|
|
26459
|
-
window.open(
|
|
26461
|
+
if (e === Ry) {
|
|
26462
|
+
window.open(By, "_blank");
|
|
26460
26463
|
return;
|
|
26461
26464
|
}
|
|
26462
|
-
if (e.startsWith(
|
|
26463
|
-
let t = e.slice(
|
|
26465
|
+
if (e.startsWith(zy)) {
|
|
26466
|
+
let t = e.slice(zy.length), n = a.find((e) => e.id === t);
|
|
26464
26467
|
n && o && o(n);
|
|
26465
26468
|
return;
|
|
26466
26469
|
}
|
|
26467
26470
|
let t = s.get(e);
|
|
26468
26471
|
t && (u(), r(t.name), Ql(t.name));
|
|
26469
26472
|
}, t[3] = o, t[4] = s, t[5] = a, t[6] = r, t[7] = u, t[8] = p) : p = t[8];
|
|
26470
|
-
let m = p, h =
|
|
26471
|
-
t[9] === i ? _ = t[10] : (_ =
|
|
26473
|
+
let m = p, h = Gy, g = ce, _;
|
|
26474
|
+
t[9] === i ? _ = t[10] : (_ = Uv(i), t[9] = i, t[10] = _);
|
|
26472
26475
|
let v;
|
|
26473
26476
|
t[11] === Symbol.for("react.memo_cache_sentinel") ? (v = /* @__PURE__ */ (0, F.jsx)(ne, { placeholder: "Select an engine" }), t[11] = v) : v = t[11];
|
|
26474
26477
|
let y;
|
|
26475
|
-
t[12] === _ ? y = t[13] : (y = /* @__PURE__ */ (0, F.jsx)(
|
|
26478
|
+
t[12] === _ ? y = t[13] : (y = /* @__PURE__ */ (0, F.jsx)(Hy, {
|
|
26476
26479
|
..._,
|
|
26477
26480
|
children: v
|
|
26478
26481
|
}), t[12] = _, t[13] = y);
|
|
26479
26482
|
let b = ie, x;
|
|
26480
|
-
t[14] === i ? x = t[15] : (x =
|
|
26483
|
+
t[14] === i ? x = t[15] : (x = Uv(i), t[14] = i, t[15] = x);
|
|
26481
26484
|
let S = oe, C;
|
|
26482
26485
|
t[16] === Symbol.for("react.memo_cache_sentinel") ? (C = /* @__PURE__ */ (0, F.jsx)(ee, { children: "Database connections" }), t[16] = C) : C = t[16];
|
|
26483
26486
|
let w;
|
|
@@ -26495,17 +26498,17 @@ var Py = (e) => {
|
|
|
26495
26498
|
t[20] === a ? ue = t[21] : (ue = a.length > 0 && /* @__PURE__ */ (0, F.jsxs)(F.Fragment, { children: [
|
|
26496
26499
|
/* @__PURE__ */ (0, F.jsx)(ae, {}),
|
|
26497
26500
|
/* @__PURE__ */ (0, F.jsx)(ee, { children: "Detected in your environment" }),
|
|
26498
|
-
a.map(
|
|
26501
|
+
a.map(Ky)
|
|
26499
26502
|
] }), t[20] = a, t[21] = ue);
|
|
26500
26503
|
let de;
|
|
26501
26504
|
t[22] === Symbol.for("react.memo_cache_sentinel") ? (de = /* @__PURE__ */ (0, F.jsx)(ae, {}), t[22] = de) : de = t[22];
|
|
26502
26505
|
let fe;
|
|
26503
26506
|
t[23] === Symbol.for("react.memo_cache_sentinel") ? (fe = /* @__PURE__ */ (0, F.jsx)(re, {
|
|
26504
26507
|
className: "text-muted-foreground",
|
|
26505
|
-
value:
|
|
26508
|
+
value: Ry,
|
|
26506
26509
|
children: /* @__PURE__ */ (0, F.jsxs)("a", {
|
|
26507
26510
|
className: "flex items-center gap-1",
|
|
26508
|
-
href:
|
|
26511
|
+
href: By,
|
|
26509
26512
|
target: "_blank",
|
|
26510
26513
|
rel: "noreferrer",
|
|
26511
26514
|
children: [/* @__PURE__ */ (0, F.jsx)(le, { className: "h-3 w-3" }), /* @__PURE__ */ (0, F.jsx)("span", { children: "How to add a database connection" })]
|
|
@@ -26536,13 +26539,13 @@ var Py = (e) => {
|
|
|
26536
26539
|
children: [y, me]
|
|
26537
26540
|
})
|
|
26538
26541
|
}), t[36] = g, t[37] = m, t[38] = n, t[39] = me, t[40] = y, t[41] = E) : E = t[41], E;
|
|
26539
|
-
},
|
|
26540
|
-
let e = (0, wr.c)(16), { sqlMode: t, setSQLMode: n } =
|
|
26542
|
+
}, Ry = "__help__", zy = "__detected_source__:", By = "http://docs.marimo.io/guides/working_with_data/sql/#connecting-to-a-custom-database", Vy = () => {
|
|
26543
|
+
let e = (0, wr.c)(16), { sqlMode: t, setSQLMode: n } = iv(), r;
|
|
26541
26544
|
e[0] !== n || e[1] !== t ? (r = () => {
|
|
26542
26545
|
let e = t === "validate" ? "default" : "validate";
|
|
26543
|
-
e === "default" &&
|
|
26546
|
+
e === "default" && Y_(), n(e);
|
|
26544
26547
|
}, e[0] = n, e[1] = t, e[2] = r) : r = e[2];
|
|
26545
|
-
let i = r, a =
|
|
26548
|
+
let i = r, a = qy, o = Jy, s;
|
|
26546
26549
|
e[3] === t ? s = e[4] : (s = o(t), e[3] = t, e[4] = s);
|
|
26547
26550
|
let c;
|
|
26548
26551
|
e[5] === t ? c = e[6] : (c = a(t), e[5] = t, e[6] = c);
|
|
@@ -26568,7 +26571,7 @@ var Py = (e) => {
|
|
|
26568
26571
|
children: f
|
|
26569
26572
|
})
|
|
26570
26573
|
}), e[13] = s, e[14] = f, e[15] = p) : p = e[15], p;
|
|
26571
|
-
},
|
|
26574
|
+
}, Hy = (e) => {
|
|
26572
26575
|
let t = (0, wr.c)(6), n, r;
|
|
26573
26576
|
t[0] === e ? (n = t[1], r = t[2]) : ({children: n, ...r} = e, t[0] = e, t[1] = n, t[2] = r);
|
|
26574
26577
|
let i;
|
|
@@ -26578,15 +26581,15 @@ var Py = (e) => {
|
|
|
26578
26581
|
children: n
|
|
26579
26582
|
}), t[3] = n, t[4] = r, t[5] = i) : i = t[5], i;
|
|
26580
26583
|
};
|
|
26581
|
-
function
|
|
26584
|
+
function Uy(e) {
|
|
26582
26585
|
return e.source !== "iceberg";
|
|
26583
26586
|
}
|
|
26584
|
-
function
|
|
26587
|
+
function Wy(e) {
|
|
26585
26588
|
return /* @__PURE__ */ (0, F.jsx)(re, {
|
|
26586
26589
|
value: e.name,
|
|
26587
26590
|
children: /* @__PURE__ */ (0, F.jsxs)("div", {
|
|
26588
26591
|
className: "flex items-center gap-1",
|
|
26589
|
-
children: [/* @__PURE__ */ (0, F.jsx)(
|
|
26592
|
+
children: [/* @__PURE__ */ (0, F.jsx)(ey, {
|
|
26590
26593
|
className: "h-3 w-3",
|
|
26591
26594
|
name: e.dialect
|
|
26592
26595
|
}), /* @__PURE__ */ (0, F.jsx)("span", {
|
|
@@ -26596,12 +26599,12 @@ function Uy(e) {
|
|
|
26596
26599
|
})
|
|
26597
26600
|
}, e.name);
|
|
26598
26601
|
}
|
|
26599
|
-
function Wy(e) {
|
|
26600
|
-
return e = e.filter(Hy), e.map(Uy);
|
|
26601
|
-
}
|
|
26602
26602
|
function Gy(e) {
|
|
26603
|
+
return e = e.filter(Uy), e.map(Wy);
|
|
26604
|
+
}
|
|
26605
|
+
function Ky(e) {
|
|
26603
26606
|
return /* @__PURE__ */ (0, F.jsx)(re, {
|
|
26604
|
-
value: `${
|
|
26607
|
+
value: `${zy}${e.id}`,
|
|
26605
26608
|
children: /* @__PURE__ */ (0, F.jsxs)("div", {
|
|
26606
26609
|
className: "flex items-center gap-1",
|
|
26607
26610
|
children: [/* @__PURE__ */ (0, F.jsx)(In, { className: "h-3 w-3 text-(--blue-9)" }), /* @__PURE__ */ (0, F.jsxs)("span", {
|
|
@@ -26615,10 +26618,10 @@ function Gy(e) {
|
|
|
26615
26618
|
})
|
|
26616
26619
|
}, e.id);
|
|
26617
26620
|
}
|
|
26618
|
-
function
|
|
26621
|
+
function qy(e) {
|
|
26619
26622
|
return e === "validate" ? /* @__PURE__ */ (0, F.jsx)(Fn, { className: "h-3 w-3" }) : /* @__PURE__ */ (0, F.jsx)(yn, { className: "h-3 w-3" });
|
|
26620
26623
|
}
|
|
26621
|
-
function
|
|
26624
|
+
function Jy(e) {
|
|
26622
26625
|
return e === "validate" ? /* @__PURE__ */ (0, F.jsxs)("div", {
|
|
26623
26626
|
className: "text-xs",
|
|
26624
26627
|
children: [/* @__PURE__ */ (0, F.jsxs)("div", {
|
|
@@ -26635,14 +26638,14 @@ function qy(e) {
|
|
|
26635
26638
|
}
|
|
26636
26639
|
//#endregion
|
|
26637
26640
|
//#region src/core/codemirror/language/panel/panel.tsx
|
|
26638
|
-
var
|
|
26641
|
+
var Yy = () => {
|
|
26639
26642
|
let e = (0, wr.c)(1), t;
|
|
26640
26643
|
return e[0] === Symbol.for("react.memo_cache_sentinel") ? (t = /* @__PURE__ */ (0, F.jsx)("div", { className: "h-4 border-r border-border" }), e[0] = t) : t = e[0], t;
|
|
26641
|
-
},
|
|
26644
|
+
}, Xy = (e) => {
|
|
26642
26645
|
let t = (0, wr.c)(102), { view: n } = e, r;
|
|
26643
26646
|
t[0] === Symbol.for("react.memo_cache_sentinel") ? (r = { minWidth: 50 }, t[0] = r) : r = t[0];
|
|
26644
|
-
let { spanProps: i, inputProps: a } =
|
|
26645
|
-
t[1] === n.state ? o = t[2] : (o = n.state.field(
|
|
26647
|
+
let { spanProps: i, inputProps: a } = Lv(r), o;
|
|
26648
|
+
t[1] === n.state ? o = t[2] : (o = n.state.field(eb), t[1] = n.state, t[2] = o);
|
|
26646
26649
|
let s = o, c;
|
|
26647
26650
|
t[3] === n.state ? c = t[4] : (c = n.state.facet(Cl), t[3] = n.state, t[4] = c);
|
|
26648
26651
|
let u = c, d;
|
|
@@ -26659,19 +26662,19 @@ var Jy = () => {
|
|
|
26659
26662
|
});
|
|
26660
26663
|
}, t[6] = n, t[7] = h);
|
|
26661
26664
|
let _ = h;
|
|
26662
|
-
if (s instanceof
|
|
26665
|
+
if (s instanceof uv) {
|
|
26663
26666
|
let e;
|
|
26664
26667
|
t[8] === n.state ? e = t[9] : (e = n.state.field(Ku), t[8] = n.state, t[9] = e);
|
|
26665
26668
|
let r = e;
|
|
26666
26669
|
p = !0;
|
|
26667
26670
|
let o;
|
|
26668
26671
|
t[10] === _ ? o = t[11] : (o = (e) => {
|
|
26669
|
-
let t =
|
|
26672
|
+
let t = Nv(e.currentTarget.value, !1);
|
|
26670
26673
|
e.currentTarget.value = t, _({ dataframeName: t });
|
|
26671
26674
|
}, t[10] = _, t[11] = o);
|
|
26672
26675
|
let s = o, c;
|
|
26673
26676
|
t[12] !== _ || t[13] !== n ? (c = (e) => {
|
|
26674
|
-
_({ engine: e }),
|
|
26677
|
+
_({ engine: e }), vv(n, e);
|
|
26675
26678
|
}, t[12] = _, t[13] = n, t[14] = c) : c = t[14];
|
|
26676
26679
|
let d = c, m;
|
|
26677
26680
|
t[15] === Symbol.for("react.memo_cache_sentinel") ? (m = /* @__PURE__ */ (0, F.jsx)("span", {
|
|
@@ -26707,13 +26710,13 @@ var Jy = () => {
|
|
|
26707
26710
|
]
|
|
26708
26711
|
}), t[28] = y, t[29] = b, t[30] = x) : x = t[30];
|
|
26709
26712
|
let S;
|
|
26710
|
-
t[31] !== u || t[32] !== r.engine || t[33] !== d ? (S = /* @__PURE__ */ (0, F.jsx)(
|
|
26713
|
+
t[31] !== u || t[32] !== r.engine || t[33] !== d ? (S = /* @__PURE__ */ (0, F.jsx)(Fy, {
|
|
26711
26714
|
selectedEngine: r.engine,
|
|
26712
26715
|
onChange: d,
|
|
26713
26716
|
cellId: u
|
|
26714
26717
|
}), t[31] = u, t[32] = r.engine, t[33] = d, t[34] = S) : S = t[34];
|
|
26715
26718
|
let C;
|
|
26716
|
-
t[35] === r.engine ? C = t[36] : (C = r.engine === "__marimo_duckdb" && /* @__PURE__ */ (0, F.jsx)(
|
|
26719
|
+
t[35] === r.engine ? C = t[36] : (C = r.engine === "__marimo_duckdb" && /* @__PURE__ */ (0, F.jsx)(Vy, {}), t[35] = r.engine, t[36] = C);
|
|
26717
26720
|
let w;
|
|
26718
26721
|
t[37] !== r.engine || t[38] !== n ? (w = async () => {
|
|
26719
26722
|
await Zu(n, r.engine);
|
|
@@ -26732,7 +26735,7 @@ var Jy = () => {
|
|
|
26732
26735
|
})
|
|
26733
26736
|
}), t[41] = w, t[42] = ee);
|
|
26734
26737
|
let te;
|
|
26735
|
-
t[43] === Symbol.for("react.memo_cache_sentinel") ? (te = /* @__PURE__ */ (0, F.jsx)(
|
|
26738
|
+
t[43] === Symbol.for("react.memo_cache_sentinel") ? (te = /* @__PURE__ */ (0, F.jsx)(Yy, {}), t[43] = te) : te = t[43];
|
|
26736
26739
|
let ne;
|
|
26737
26740
|
t[44] === _ ? ne = t[45] : (ne = (e) => {
|
|
26738
26741
|
_({ showOutput: !e.target.checked });
|
|
@@ -26780,13 +26783,13 @@ var Jy = () => {
|
|
|
26780
26783
|
let { quotePrefix: f } = n.state.field(Ku);
|
|
26781
26784
|
r = f, r === void 0 && (r = "r", _({ quotePrefix: r })), d = (e, t) => {
|
|
26782
26785
|
if (typeof t != "boolean") return;
|
|
26783
|
-
let n =
|
|
26786
|
+
let n = Rv({
|
|
26784
26787
|
currentQuotePrefix: r,
|
|
26785
26788
|
checked: t,
|
|
26786
26789
|
prefix: e
|
|
26787
26790
|
});
|
|
26788
26791
|
_({ quotePrefix: n });
|
|
26789
|
-
}, 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, F.jsx)("span", { children: "r" }), t[72] = i) : i = t[72], e =
|
|
26792
|
+
}, 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, F.jsx)("span", { children: "r" }), t[72] = i) : i = t[72], e = jv, s = "Toggle raw string", c = "w-3 h-3", l = r.includes("r"), o = (e) => {
|
|
26790
26793
|
d("r", e);
|
|
26791
26794
|
}, 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;
|
|
26792
26795
|
} 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];
|
|
@@ -26813,7 +26816,7 @@ var Jy = () => {
|
|
|
26813
26816
|
let x;
|
|
26814
26817
|
t[88] !== y || t[89] !== b ? (x = /* @__PURE__ */ (0, F.jsxs)("div", {
|
|
26815
26818
|
className: "flex items-center gap-1.5",
|
|
26816
|
-
children: [v, /* @__PURE__ */ (0, F.jsx)(
|
|
26819
|
+
children: [v, /* @__PURE__ */ (0, F.jsx)(jv, {
|
|
26817
26820
|
"aria-label": "Toggle f-string",
|
|
26818
26821
|
className: "w-3 h-3",
|
|
26819
26822
|
checked: y,
|
|
@@ -26822,7 +26825,7 @@ var Jy = () => {
|
|
|
26822
26825
|
}), t[88] = y, t[89] = b, t[90] = x) : x = t[90];
|
|
26823
26826
|
let S;
|
|
26824
26827
|
t[91] === Symbol.for("react.memo_cache_sentinel") ? (S = /* @__PURE__ */ (0, F.jsx)(g, {
|
|
26825
|
-
content: /* @__PURE__ */ (0, F.jsx)(
|
|
26828
|
+
content: /* @__PURE__ */ (0, F.jsx)(zv, {}),
|
|
26826
26829
|
children: /* @__PURE__ */ (0, F.jsx)(Tn, { className: "w-3 h-3" })
|
|
26827
26830
|
}), t[91] = S) : S = t[91];
|
|
26828
26831
|
let C;
|
|
@@ -26836,7 +26839,7 @@ var Jy = () => {
|
|
|
26836
26839
|
}), t[92] = a, t[93] = h, t[94] = x, t[95] = C) : C = t[95], f = C;
|
|
26837
26840
|
}
|
|
26838
26841
|
let v;
|
|
26839
|
-
t[96] === p ? v = t[97] : (v = p && /* @__PURE__ */ (0, F.jsx)(
|
|
26842
|
+
t[96] === p ? v = t[97] : (v = p && /* @__PURE__ */ (0, F.jsx)(Yy, {}), t[96] = p, t[97] = v);
|
|
26840
26843
|
let y;
|
|
26841
26844
|
return t[98] !== f || t[99] !== s.type || t[100] !== v ? (y = /* @__PURE__ */ (0, F.jsx)(m, { children: /* @__PURE__ */ (0, F.jsxs)("div", {
|
|
26842
26845
|
className: "flex justify-between items-center gap-4 pl-2 pt-2",
|
|
@@ -26846,8 +26849,8 @@ var Jy = () => {
|
|
|
26846
26849
|
s.type
|
|
26847
26850
|
]
|
|
26848
26851
|
}) }), t[98] = f, t[99] = s.type, t[100] = v, t[101] = y) : y = t[101], y;
|
|
26849
|
-
},
|
|
26850
|
-
function
|
|
26852
|
+
}, Zy = new dt();
|
|
26853
|
+
function Qy(e, t) {
|
|
26851
26854
|
let n = t.getExtension({
|
|
26852
26855
|
cellId: e.facet(nl),
|
|
26853
26856
|
completionConfig: e.facet($c),
|
|
@@ -26855,46 +26858,46 @@ function Zy(e, t) {
|
|
|
26855
26858
|
placeholderType: e.facet(tl),
|
|
26856
26859
|
lspConfig: e.facet(rl)
|
|
26857
26860
|
});
|
|
26858
|
-
return e.field(Ct, !1) !== void 0 && n.push(Ct.init(() => ut.create({ extensions: [xt()] }).field(Ct))), [
|
|
26861
|
+
return e.field(Ct, !1) !== void 0 && n.push(Ct.init(() => ut.create({ extensions: [xt()] }).field(Ct))), [$y.of(t), Zy.reconfigure(n)];
|
|
26859
26862
|
}
|
|
26860
|
-
var
|
|
26863
|
+
var $y = Qe.define(), eb = yt.define({
|
|
26861
26864
|
create() {
|
|
26862
|
-
return
|
|
26865
|
+
return Av.python;
|
|
26863
26866
|
},
|
|
26864
26867
|
update(e, t) {
|
|
26865
|
-
for (let e of t.effects) if (e.is(
|
|
26868
|
+
for (let e of t.effects) if (e.is($y)) return e.value;
|
|
26866
26869
|
return e;
|
|
26867
26870
|
},
|
|
26868
|
-
provide: (e) => et.from(e, (e) => e.type === "python" ? null : (e) => $u(e,
|
|
26871
|
+
provide: (e) => et.from(e, (e) => e.type === "python" ? null : (e) => $u(e, Xy))
|
|
26869
26872
|
});
|
|
26870
|
-
function
|
|
26871
|
-
return e ?
|
|
26873
|
+
function tb(e) {
|
|
26874
|
+
return e ? Av.markdown.isSupported(e) ? Av.markdown : Av.sql.isSupported(e) ? Av.sql : Av.python : Av.python;
|
|
26872
26875
|
}
|
|
26873
26876
|
//#endregion
|
|
26874
26877
|
//#region src/core/codemirror/language/cell-code.ts
|
|
26875
|
-
function
|
|
26876
|
-
let t = e.doc.toString(), n = e.field(
|
|
26878
|
+
function nb(e) {
|
|
26879
|
+
let t = e.doc.toString(), n = e.field(eb, !1);
|
|
26877
26880
|
return n ? n.transformOut(t, e.field(Ku, !1) ?? {})[0] : t;
|
|
26878
26881
|
}
|
|
26879
|
-
function
|
|
26880
|
-
if (
|
|
26881
|
-
let n = e.field(
|
|
26882
|
+
function rb(e, t) {
|
|
26883
|
+
if (nb(e) === t) return !0;
|
|
26884
|
+
let n = e.field(eb, !1);
|
|
26882
26885
|
if (!n?.isSupported(t)) return !1;
|
|
26883
26886
|
let [r, , i] = n.transformIn(t);
|
|
26884
26887
|
return r === e.doc.toString() && Me(i, e.field(Ku, !1));
|
|
26885
26888
|
}
|
|
26886
|
-
function
|
|
26887
|
-
let r = e.field(
|
|
26888
|
-
r && (n ? i =
|
|
26889
|
+
function ib(e, t, { initialize: n = !1 } = {}) {
|
|
26890
|
+
let r = e.field(eb, !1), i = r;
|
|
26891
|
+
r && (n ? i = tb(t) : r.isSupported(t) || (i = Av.python));
|
|
26889
26892
|
let a = i?.type !== r?.type;
|
|
26890
|
-
if (!a &&
|
|
26893
|
+
if (!a && rb(e, t)) return null;
|
|
26891
26894
|
let o = [], s = t;
|
|
26892
26895
|
if (i) {
|
|
26893
|
-
a && o.push(...
|
|
26896
|
+
a && o.push(...Qy(e, i));
|
|
26894
26897
|
let [n, , r] = i.transformIn(t);
|
|
26895
26898
|
s = n;
|
|
26896
26899
|
let c = !Me(r, e.field(Ku, !1));
|
|
26897
|
-
c && o.push(Wu.of(r)), i.type === "sql" && (a || c) && o.push(
|
|
26900
|
+
c && o.push(Wu.of(r)), i.type === "sql" && (a || c) && o.push(_v(r.engine));
|
|
26898
26901
|
}
|
|
26899
26902
|
return {
|
|
26900
26903
|
changes: Ki(e.doc.toString(), s, { scanLimit: 500 }).map((e) => ({
|
|
@@ -26916,7 +26919,7 @@ if (typeof document < "u") {
|
|
|
26916
26919
|
t.tagName === "A" && t.hasAttribute(e) && (t.setAttribute("target", t.getAttribute(e) || ""), t.removeAttribute(e), t.getAttribute("target") === "_blank" && t.setAttribute("rel", "noopener noreferrer"));
|
|
26917
26920
|
});
|
|
26918
26921
|
}
|
|
26919
|
-
function
|
|
26922
|
+
function ab(e) {
|
|
26920
26923
|
let t = {
|
|
26921
26924
|
USE_PROFILES: {
|
|
26922
26925
|
html: !0,
|
|
@@ -26936,52 +26939,52 @@ function ib(e) {
|
|
|
26936
26939
|
}
|
|
26937
26940
|
//#endregion
|
|
26938
26941
|
//#region src/core/dom/outline.ts
|
|
26939
|
-
var
|
|
26942
|
+
var ob = [
|
|
26940
26943
|
"marimo-carousel",
|
|
26941
26944
|
"marimo-tabs",
|
|
26942
26945
|
"marimo-accordion",
|
|
26943
26946
|
"marimo-sidebar"
|
|
26944
|
-
],
|
|
26945
|
-
function
|
|
26947
|
+
], sb = "h1, h2, h3, h4, h5, h6";
|
|
26948
|
+
function cb(e) {
|
|
26946
26949
|
if (typeof DOMParser > "u") return null;
|
|
26947
|
-
let t = [], n = new DOMParser().parseFromString(e, "text/html").querySelectorAll(
|
|
26950
|
+
let t = [], n = new DOMParser().parseFromString(e, "text/html").querySelectorAll(sb);
|
|
26948
26951
|
for (let e of Array.from(n)) {
|
|
26949
26952
|
let n = e.textContent;
|
|
26950
|
-
if (
|
|
26953
|
+
if (ob.some((t) => e.closest(t)) || !n) continue;
|
|
26951
26954
|
let r = Number.parseInt(e.tagName[1], 10), i = e.innerHTML, a = {
|
|
26952
26955
|
name: n,
|
|
26953
26956
|
level: r,
|
|
26954
|
-
by:
|
|
26957
|
+
by: ub(e)
|
|
26955
26958
|
};
|
|
26956
|
-
i !== n && (a.html =
|
|
26959
|
+
i !== n && (a.html = ab(i)), t.push(a);
|
|
26957
26960
|
}
|
|
26958
26961
|
return { items: t };
|
|
26959
26962
|
}
|
|
26960
|
-
function
|
|
26963
|
+
function lb(e) {
|
|
26961
26964
|
if (!e.includes("\"")) return `"${e}"`;
|
|
26962
26965
|
if (!e.includes("'")) return `'${e}'`;
|
|
26963
26966
|
let t = e.split("\""), n = [];
|
|
26964
26967
|
for (let [e, r] of t.entries()) r && n.push(`"${r}"`), e < t.length - 1 && n.push("'\"'");
|
|
26965
26968
|
return `concat(${n.join(", ")})`;
|
|
26966
26969
|
}
|
|
26967
|
-
function
|
|
26970
|
+
function ub(e) {
|
|
26968
26971
|
let t = e.id;
|
|
26969
26972
|
if (t) return { id: t };
|
|
26970
26973
|
let n = e.textContent ?? "";
|
|
26971
|
-
return { path: `//${e.tagName}[contains(., ${
|
|
26974
|
+
return { path: `//${e.tagName}[contains(., ${lb(n)})]` };
|
|
26972
26975
|
}
|
|
26973
|
-
function
|
|
26976
|
+
function db(e) {
|
|
26974
26977
|
return { items: e.filter(Boolean).flatMap((e) => e.items) };
|
|
26975
26978
|
}
|
|
26976
|
-
function
|
|
26979
|
+
function fb(e) {
|
|
26977
26980
|
if (e == null || e.mimetype !== "text/html" && e.mimetype !== "text/markdown" || e.data == null) return null;
|
|
26978
26981
|
try {
|
|
26979
|
-
return Et(typeof e.data == "string", "expected string"),
|
|
26982
|
+
return Et(typeof e.data == "string", "expected string"), cb(e.data);
|
|
26980
26983
|
} catch {
|
|
26981
26984
|
return a.error("Failed to parse outline"), null;
|
|
26982
26985
|
}
|
|
26983
26986
|
}
|
|
26984
|
-
function
|
|
26987
|
+
function pb(e, t) {
|
|
26985
26988
|
let n = (e) => e.items.length === 0 ? 7 : Math.min(...e.items.map((e) => e.level)), r = t[e];
|
|
26986
26989
|
if (r == null || r.items.length === 0) return a.warn("Failed to find a starting outline"), null;
|
|
26987
26990
|
let i = n(r), o = e + 1;
|
|
@@ -26994,7 +26997,7 @@ function fb(e, t) {
|
|
|
26994
26997
|
}
|
|
26995
26998
|
//#endregion
|
|
26996
26999
|
//#region src/components/editor/output/ansi-reduce.ts
|
|
26997
|
-
var
|
|
27000
|
+
var mb = class e {
|
|
26998
27001
|
lines = [""];
|
|
26999
27002
|
cursor = {
|
|
27000
27003
|
row: 0,
|
|
@@ -27083,7 +27086,7 @@ var pb = class e {
|
|
|
27083
27086
|
render() {
|
|
27084
27087
|
return this.lines.join("\n");
|
|
27085
27088
|
}
|
|
27086
|
-
},
|
|
27089
|
+
}, hb = class {
|
|
27087
27090
|
ESC_REGEX = new RegExp(String.raw`\u001B(?:\[[0-9;]*[A-Za-z]|\([0-9A-Za-z])`, "gu");
|
|
27088
27091
|
parse(e) {
|
|
27089
27092
|
let t = [], n = 0;
|
|
@@ -27102,9 +27105,9 @@ var pb = class e {
|
|
|
27102
27105
|
value: e.slice(n)
|
|
27103
27106
|
}), t;
|
|
27104
27107
|
}
|
|
27105
|
-
},
|
|
27106
|
-
parser = new
|
|
27107
|
-
buffer = new
|
|
27108
|
+
}, gb = class {
|
|
27109
|
+
parser = new hb();
|
|
27110
|
+
buffer = new mb();
|
|
27108
27111
|
reduce(e) {
|
|
27109
27112
|
return this.reset(), this.append(e), this.render();
|
|
27110
27113
|
}
|
|
@@ -27120,7 +27123,7 @@ var pb = class e {
|
|
|
27120
27123
|
for (let e of t) e.type === "text" ? this.processText(e.value) : this.buffer.handleEscape(e.value);
|
|
27121
27124
|
}
|
|
27122
27125
|
reset() {
|
|
27123
|
-
this.buffer = new
|
|
27126
|
+
this.buffer = new mb();
|
|
27124
27127
|
}
|
|
27125
27128
|
render() {
|
|
27126
27129
|
return this.buffer.render();
|
|
@@ -27163,19 +27166,19 @@ var pb = class e {
|
|
|
27163
27166
|
for (let t of e) t >= " " && (n += t);
|
|
27164
27167
|
return n;
|
|
27165
27168
|
}
|
|
27166
|
-
},
|
|
27169
|
+
}, _b = class e {
|
|
27167
27170
|
mimetype;
|
|
27168
27171
|
channel;
|
|
27169
27172
|
timestamp;
|
|
27170
27173
|
code;
|
|
27171
27174
|
id;
|
|
27172
|
-
ansiReducer = new
|
|
27175
|
+
ansiReducer = new gb();
|
|
27173
27176
|
_data;
|
|
27174
27177
|
get data() {
|
|
27175
27178
|
return this._data;
|
|
27176
27179
|
}
|
|
27177
27180
|
static create(t) {
|
|
27178
|
-
let n = new
|
|
27181
|
+
let n = new gb();
|
|
27179
27182
|
return n.append(t.data), new e({
|
|
27180
27183
|
mimetype: t.mimetype,
|
|
27181
27184
|
channel: t.channel,
|
|
@@ -27210,28 +27213,28 @@ var pb = class e {
|
|
|
27210
27213
|
};
|
|
27211
27214
|
//#endregion
|
|
27212
27215
|
//#region src/core/cells/collapseConsoleOutputs.tsx
|
|
27213
|
-
function
|
|
27216
|
+
function vb(e, t = 5e3) {
|
|
27214
27217
|
let n = [...e];
|
|
27215
|
-
if (n.length < 2) return
|
|
27218
|
+
if (n.length < 2) return Cb(n.map(bb), t);
|
|
27216
27219
|
let r = n[n.length - 1], i = n[n.length - 2];
|
|
27217
|
-
return
|
|
27220
|
+
return yb(r, i) && (Sb(r), Sb(i), n[n.length - 2] = xb(i, r), n.pop()), Cb(n, t);
|
|
27218
27221
|
}
|
|
27219
|
-
function
|
|
27222
|
+
function yb(e, t) {
|
|
27220
27223
|
let n = e.mimetype === "text/plain" && t.mimetype === "text/plain";
|
|
27221
27224
|
if (!n) return !1;
|
|
27222
27225
|
let r = e.channel === t.channel, i = e.channel !== "stdin";
|
|
27223
27226
|
return n && r && i;
|
|
27224
27227
|
}
|
|
27225
|
-
function
|
|
27226
|
-
return e instanceof
|
|
27228
|
+
function bb(e) {
|
|
27229
|
+
return e instanceof _b ? e : typeof e.data == "string" ? _b.create(e) : e;
|
|
27227
27230
|
}
|
|
27228
|
-
function
|
|
27229
|
-
return e instanceof
|
|
27231
|
+
function xb(e, t) {
|
|
27232
|
+
return e instanceof _b ? e.appendData(t.data) : _b.create(e).appendData(t.data);
|
|
27230
27233
|
}
|
|
27231
|
-
function
|
|
27234
|
+
function Sb(e) {
|
|
27232
27235
|
Et(typeof e.data == "string", "expected string output");
|
|
27233
27236
|
}
|
|
27234
|
-
function
|
|
27237
|
+
function Cb(e, t) {
|
|
27235
27238
|
let n = 0, r;
|
|
27236
27239
|
for (r = e.length - 1; r >= 0 && n < t; r--) {
|
|
27237
27240
|
let t = e[r];
|
|
@@ -27261,10 +27264,10 @@ function Sb(e, t) {
|
|
|
27261
27264
|
}
|
|
27262
27265
|
//#endregion
|
|
27263
27266
|
//#region src/core/cells/cell.ts
|
|
27264
|
-
function
|
|
27267
|
+
function wb(e) {
|
|
27265
27268
|
return (e.at(-1)?.id ?? 0) + 1;
|
|
27266
27269
|
}
|
|
27267
|
-
function
|
|
27270
|
+
function Tb(e, t) {
|
|
27268
27271
|
let n = { ...e };
|
|
27269
27272
|
switch (t.status) {
|
|
27270
27273
|
case "queued":
|
|
@@ -27294,41 +27297,41 @@ function wb(e, t) {
|
|
|
27294
27297
|
response: e.response ?? ""
|
|
27295
27298
|
} : e));
|
|
27296
27299
|
let a = t.console;
|
|
27297
|
-
a != null && (i =
|
|
27300
|
+
a != null && (i = vb(Array.isArray(a) ? a.map((e, t) => ({
|
|
27298
27301
|
...e,
|
|
27299
27302
|
id: t + 1
|
|
27300
27303
|
})) : [...i, {
|
|
27301
27304
|
...a,
|
|
27302
|
-
id:
|
|
27303
|
-
}])), n.consoleOutputs = i, n.outline =
|
|
27305
|
+
id: wb(i)
|
|
27306
|
+
}])), n.consoleOutputs = i, n.outline = fb(n.output);
|
|
27304
27307
|
let o = [t.console].flat().filter(Boolean).filter((e) => e.channel === "pdb");
|
|
27305
27308
|
return o.length > 0 && o.some((e) => e.data === "start") && (n.debuggerActive = !0), n;
|
|
27306
27309
|
}
|
|
27307
|
-
function
|
|
27310
|
+
function Eb(e) {
|
|
27308
27311
|
let t = { ...e };
|
|
27309
27312
|
return e.status !== "disabled-transitively" && (t.status = "queued"), t.interrupted = !1, t.errored = !1, t.runElapsedTimeMs = null, t.debuggerActive = !1, t;
|
|
27310
27313
|
}
|
|
27311
|
-
function
|
|
27314
|
+
function Db(e) {
|
|
27312
27315
|
return e === "running" || e === "queued";
|
|
27313
27316
|
}
|
|
27314
|
-
function
|
|
27317
|
+
function Ob(e, t) {
|
|
27315
27318
|
let { status: n, output: r, runStartTimestamp: i, interrupted: a, staleInputs: o } = e;
|
|
27316
27319
|
if (a) return !1;
|
|
27317
27320
|
if (t) return !0;
|
|
27318
|
-
let s =
|
|
27321
|
+
let s = Db(n), c = n === "running" && r !== null && i !== null && (r.timestamp ?? 0) > i;
|
|
27319
27322
|
return s && !c ? !0 : o;
|
|
27320
27323
|
}
|
|
27321
27324
|
Cr("marimo:rtc:username", "", Xd);
|
|
27322
|
-
var
|
|
27323
|
-
function
|
|
27325
|
+
var kb = Pt(() => Hd("rtc_v2"));
|
|
27326
|
+
function Ab(e) {
|
|
27324
27327
|
return e !== Wr;
|
|
27325
27328
|
}
|
|
27326
27329
|
//#endregion
|
|
27327
27330
|
//#region src/core/session/active-notebook.ts
|
|
27328
|
-
var
|
|
27331
|
+
var jb = A(null), Mb = A(null);
|
|
27329
27332
|
//#endregion
|
|
27330
27333
|
//#region src/core/cells/columns.ts
|
|
27331
|
-
function
|
|
27334
|
+
function Nb(e) {
|
|
27332
27335
|
let t = /* @__PURE__ */ new Map(), n = 0;
|
|
27333
27336
|
for (let r of e.order) {
|
|
27334
27337
|
let i = e.cells.get(r)?.config.column;
|
|
@@ -27336,9 +27339,9 @@ function Mb(e) {
|
|
|
27336
27339
|
}
|
|
27337
27340
|
return t;
|
|
27338
27341
|
}
|
|
27339
|
-
function
|
|
27342
|
+
function Pb(e) {
|
|
27340
27343
|
let t = [[]];
|
|
27341
|
-
for (let [n, r] of
|
|
27344
|
+
for (let [n, r] of Nb(e)) {
|
|
27342
27345
|
for (; t.length <= r;) t.push([]);
|
|
27343
27346
|
t[r].push(n);
|
|
27344
27347
|
}
|
|
@@ -27346,10 +27349,10 @@ function Nb(e) {
|
|
|
27346
27349
|
}
|
|
27347
27350
|
//#endregion
|
|
27348
27351
|
//#region src/core/cells/types.ts
|
|
27349
|
-
function
|
|
27352
|
+
function Fb(e, t) {
|
|
27350
27353
|
return e === null ? t.trim().length > 0 : e.trim() !== t.trim();
|
|
27351
27354
|
}
|
|
27352
|
-
function
|
|
27355
|
+
function Ib({ id: e, name: t = "_", code: n = "", lastCodeRun: r = null, lastExecutionTime: i = null, edited: a = !1, config: o, serializedEditorState: s = null }) {
|
|
27353
27356
|
return {
|
|
27354
27357
|
id: e,
|
|
27355
27358
|
config: o || {
|
|
@@ -27366,7 +27369,7 @@ function Fb({ id: e, name: t = "_", code: n = "", lastCodeRun: r = null, lastExe
|
|
|
27366
27369
|
serializedEditorState: s
|
|
27367
27370
|
};
|
|
27368
27371
|
}
|
|
27369
|
-
function
|
|
27372
|
+
function Lb(e) {
|
|
27370
27373
|
return {
|
|
27371
27374
|
hide_code: !1,
|
|
27372
27375
|
disabled: !1,
|
|
@@ -27375,7 +27378,7 @@ function Ib(e) {
|
|
|
27375
27378
|
...e
|
|
27376
27379
|
};
|
|
27377
27380
|
}
|
|
27378
|
-
function
|
|
27381
|
+
function Rb(e) {
|
|
27379
27382
|
return {
|
|
27380
27383
|
outline: null,
|
|
27381
27384
|
output: null,
|
|
@@ -27394,21 +27397,21 @@ function Lb(e) {
|
|
|
27394
27397
|
}
|
|
27395
27398
|
//#endregion
|
|
27396
27399
|
//#region src/core/cells/document.ts
|
|
27397
|
-
function
|
|
27400
|
+
function zb(e, t) {
|
|
27398
27401
|
let n = e.getColumns();
|
|
27399
27402
|
for (; n[t.length]?.length === 0;) t.push([]);
|
|
27400
27403
|
return t.length === n.length && t.every((e, t) => Me(e, n[t].inOrderIds)) ? e : new vi(t.map((e, t) => _i.fromWithPreviousShape(e, n[t])));
|
|
27401
27404
|
}
|
|
27402
|
-
function
|
|
27403
|
-
let r = t.code ?? e.code, i = Me(e.config, t.config) ? e.config :
|
|
27405
|
+
function Bb(e, t, n) {
|
|
27406
|
+
let r = t.code ?? e.code, i = Me(e.config, t.config) ? e.config : Lb(t.config);
|
|
27404
27407
|
if (r === e.code && t.name === e.name && i === e.config) return e;
|
|
27405
27408
|
if (r === e.code) return {
|
|
27406
27409
|
...e,
|
|
27407
27410
|
name: t.name,
|
|
27408
27411
|
config: i
|
|
27409
27412
|
};
|
|
27410
|
-
if (!
|
|
27411
|
-
let e = n?.current?.editorViewOrNull, t = e &&
|
|
27413
|
+
if (!kb() || !Ab(e.id)) {
|
|
27414
|
+
let e = n?.current?.editorViewOrNull, t = e && ib(e.state, r);
|
|
27412
27415
|
t && e.dispatch(t);
|
|
27413
27416
|
}
|
|
27414
27417
|
return {
|
|
@@ -27416,33 +27419,33 @@ function zb(e, t, n) {
|
|
|
27416
27419
|
code: r,
|
|
27417
27420
|
name: t.name,
|
|
27418
27421
|
config: i,
|
|
27419
|
-
edited:
|
|
27422
|
+
edited: Fb(e.lastCodeRun, r)
|
|
27420
27423
|
};
|
|
27421
27424
|
}
|
|
27422
|
-
function
|
|
27423
|
-
let n =
|
|
27425
|
+
function Vb(e, t) {
|
|
27426
|
+
let n = zb(e.cellIds, Pb(t)), { cellData: r, cellRuntime: i, cellHandles: a } = e;
|
|
27424
27427
|
for (let o of n.inOrderIds) {
|
|
27425
27428
|
let n = t.cells.get(o), s = e.cellData[o];
|
|
27426
27429
|
if (n === void 0) continue;
|
|
27427
27430
|
if (s === void 0) {
|
|
27428
27431
|
r = {
|
|
27429
27432
|
...r,
|
|
27430
|
-
[o]:
|
|
27433
|
+
[o]: Ib({
|
|
27431
27434
|
id: o,
|
|
27432
27435
|
code: n.code ?? "",
|
|
27433
27436
|
name: n.name,
|
|
27434
|
-
config:
|
|
27437
|
+
config: Lb(n.config)
|
|
27435
27438
|
})
|
|
27436
27439
|
}, i = {
|
|
27437
27440
|
...i,
|
|
27438
|
-
[o]:
|
|
27441
|
+
[o]: Rb()
|
|
27439
27442
|
}, a = {
|
|
27440
27443
|
...a,
|
|
27441
27444
|
[o]: (0, P.createRef)()
|
|
27442
27445
|
};
|
|
27443
27446
|
continue;
|
|
27444
27447
|
}
|
|
27445
|
-
let c =
|
|
27448
|
+
let c = Bb(s, n, e.cellHandles[o]);
|
|
27446
27449
|
c !== s && (r = {
|
|
27447
27450
|
...r,
|
|
27448
27451
|
[o]: c
|
|
@@ -27461,17 +27464,24 @@ function Bb(e, t) {
|
|
|
27461
27464
|
cellHandles: a
|
|
27462
27465
|
};
|
|
27463
27466
|
}
|
|
27464
|
-
|
|
27467
|
+
function Hb({ store: e, model: t, reconcile: n, signal: r }) {
|
|
27468
|
+
let i = () => {
|
|
27469
|
+
let r = e.get(t.documentAtom);
|
|
27470
|
+
r !== null && n(r);
|
|
27471
|
+
}, a = e.sub(t.documentAtom, i);
|
|
27472
|
+
r.addEventListener("abort", a, { once: !0 }), i();
|
|
27473
|
+
}
|
|
27474
|
+
var Ub = [
|
|
27465
27475
|
"disabled",
|
|
27466
27476
|
"hide_code",
|
|
27467
27477
|
"expand_output"
|
|
27468
27478
|
];
|
|
27469
|
-
function
|
|
27479
|
+
function Wb(e, t) {
|
|
27470
27480
|
let n = {};
|
|
27471
|
-
for (let r of
|
|
27481
|
+
for (let r of Ub) e[r] !== t[r] && (n[r] = t[r] ?? !1);
|
|
27472
27482
|
return Object.keys(n).length === 0 ? null : n;
|
|
27473
27483
|
}
|
|
27474
|
-
function
|
|
27484
|
+
function Gb(e) {
|
|
27475
27485
|
let t = [], n = e.cellIds.getColumns();
|
|
27476
27486
|
if (n.length === 1) {
|
|
27477
27487
|
for (let r of n[0].inOrderIds) {
|
|
@@ -27488,7 +27498,7 @@ function Ub(e) {
|
|
|
27488
27498
|
}
|
|
27489
27499
|
}), t;
|
|
27490
27500
|
}
|
|
27491
|
-
function
|
|
27501
|
+
function Kb(e, t) {
|
|
27492
27502
|
let n = [], r = e.cellIds.inOrderIds, i = t.cellIds.inOrderIds, a = new Set(r), o = new Set(i);
|
|
27493
27503
|
for (let e of r) o.has(e) || n.push((t) => t.deleteCell(e));
|
|
27494
27504
|
let s = [];
|
|
@@ -27505,40 +27515,40 @@ function Wb(e, t) {
|
|
|
27505
27515
|
}
|
|
27506
27516
|
if (o === i) continue;
|
|
27507
27517
|
o.code !== i.code && n.push((e) => e.setCode(r, i.code)), o.name !== i.name && n.push((e) => e.setName(r, i.name));
|
|
27508
|
-
let c =
|
|
27518
|
+
let c = Wb(o.config, i.config);
|
|
27509
27519
|
c !== null && n.push((e) => e.updateConfig(r, c));
|
|
27510
27520
|
}
|
|
27511
|
-
for (let [e, r] of
|
|
27521
|
+
for (let [e, r] of Gb(t)) n.push((t) => t.updateConfig(e, { column: r }));
|
|
27512
27522
|
let c = r.filter((e) => o.has(e));
|
|
27513
27523
|
return Me(i, [...c, ...s]) || n.push((e) => e.setOrder(i)), n.length === 0 ? null : (e) => {
|
|
27514
27524
|
for (let t of n) t(e);
|
|
27515
27525
|
};
|
|
27516
27526
|
}
|
|
27517
|
-
function
|
|
27518
|
-
if (n.type === "
|
|
27519
|
-
let r = j.get(
|
|
27527
|
+
function qb(e, t, n) {
|
|
27528
|
+
if (n.type === "reconcileDocument" || e.cellIds === t.cellIds && e.cellData === t.cellData) return;
|
|
27529
|
+
let r = j.get(Mb);
|
|
27520
27530
|
if (r === null) return;
|
|
27521
|
-
let i =
|
|
27531
|
+
let i = Kb(e, t);
|
|
27522
27532
|
i !== null && j.set(r.editAtom, i);
|
|
27523
27533
|
}
|
|
27524
|
-
async function
|
|
27525
|
-
let e = j.get(
|
|
27534
|
+
async function Jb() {
|
|
27535
|
+
let e = j.get(Mb);
|
|
27526
27536
|
e !== null && j.get(e.syncStatusAtom).status !== "unavailable" && await e.flush();
|
|
27527
27537
|
}
|
|
27528
27538
|
//#endregion
|
|
27529
27539
|
//#region ../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/fromUnixTime.js
|
|
27530
|
-
function
|
|
27540
|
+
function Yb(e, t) {
|
|
27531
27541
|
return E(e * 1e3, t?.in);
|
|
27532
27542
|
}
|
|
27533
27543
|
//#endregion
|
|
27534
27544
|
//#region ../node_modules/.pnpm/ansi_up@6.0.6/node_modules/ansi_up/ansi_up.js
|
|
27535
|
-
var
|
|
27545
|
+
var Xb = function(e, t) {
|
|
27536
27546
|
return Object.defineProperty ? Object.defineProperty(e, "raw", { value: t }) : e.raw = t, e;
|
|
27537
|
-
},
|
|
27547
|
+
}, Zb;
|
|
27538
27548
|
(function(e) {
|
|
27539
27549
|
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";
|
|
27540
|
-
})(
|
|
27541
|
-
var
|
|
27550
|
+
})(Zb ||= {});
|
|
27551
|
+
var Qb = class {
|
|
27542
27552
|
constructor() {
|
|
27543
27553
|
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 = {
|
|
27544
27554
|
http: 1,
|
|
@@ -27770,57 +27780,57 @@ var Xb = class {
|
|
|
27770
27780
|
}
|
|
27771
27781
|
get_next_packet() {
|
|
27772
27782
|
var e = {
|
|
27773
|
-
kind:
|
|
27783
|
+
kind: Zb.EOS,
|
|
27774
27784
|
text: "",
|
|
27775
27785
|
url: ""
|
|
27776
27786
|
}, t = this._buffer.length;
|
|
27777
27787
|
if (t == 0) return e;
|
|
27778
27788
|
var n = this._buffer.indexOf("\x1B");
|
|
27779
|
-
if (n == -1) return e.kind =
|
|
27780
|
-
if (n > 0) return e.kind =
|
|
27789
|
+
if (n == -1) return e.kind = Zb.Text, e.text = this._buffer, this._buffer = "", e;
|
|
27790
|
+
if (n > 0) return e.kind = Zb.Text, e.text = this._buffer.slice(0, n), this._buffer = this._buffer.slice(n), e;
|
|
27781
27791
|
if (n == 0) {
|
|
27782
|
-
if (t < 3) return e.kind =
|
|
27792
|
+
if (t < 3) return e.kind = Zb.Incomplete, e;
|
|
27783
27793
|
var r = this._buffer.charAt(1);
|
|
27784
|
-
if (r != "[" && r != "]" && r != "(") return e.kind =
|
|
27794
|
+
if (r != "[" && r != "]" && r != "(") return e.kind = Zb.ESC, e.text = this._buffer.slice(0, 1), this._buffer = this._buffer.slice(1), e;
|
|
27785
27795
|
if (r == "[") {
|
|
27786
|
-
this._csi_regex ||=
|
|
27796
|
+
this._csi_regex ||= $b(tx ||= Xb(["\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 "]));
|
|
27787
27797
|
let t = this._buffer.match(this._csi_regex);
|
|
27788
|
-
if (t === null) return e.kind =
|
|
27789
|
-
if (t[4]) return e.kind =
|
|
27790
|
-
e.kind = t[1] != "" || t[3] != "m" ?
|
|
27798
|
+
if (t === null) return e.kind = Zb.Incomplete, e;
|
|
27799
|
+
if (t[4]) return e.kind = Zb.ESC, e.text = this._buffer.slice(0, 1), this._buffer = this._buffer.slice(1), e;
|
|
27800
|
+
e.kind = t[1] != "" || t[3] != "m" ? Zb.Unknown : Zb.SGR, e.text = t[2];
|
|
27791
27801
|
var i = t[0].length;
|
|
27792
27802
|
return this._buffer = this._buffer.slice(i), e;
|
|
27793
27803
|
}
|
|
27794
27804
|
if (r == "]") {
|
|
27795
|
-
if (t < 4) return e.kind =
|
|
27796
|
-
if (this._buffer.charAt(2) != "8" || this._buffer.charAt(3) != ";") return e.kind =
|
|
27797
|
-
this._osc_st ||=
|
|
27805
|
+
if (t < 4) return e.kind = Zb.Incomplete, e;
|
|
27806
|
+
if (this._buffer.charAt(2) != "8" || this._buffer.charAt(3) != ";") return e.kind = Zb.ESC, e.text = this._buffer.slice(0, 1), this._buffer = this._buffer.slice(1), e;
|
|
27807
|
+
this._osc_st ||= ex(nx ||= Xb(["\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;
|
|
27798
27808
|
{
|
|
27799
27809
|
let t = this._osc_st.exec(this._buffer);
|
|
27800
|
-
if (t === null) return e.kind =
|
|
27801
|
-
if (t[3]) return e.kind =
|
|
27810
|
+
if (t === null) return e.kind = Zb.Incomplete, e;
|
|
27811
|
+
if (t[3]) return e.kind = Zb.ESC, e.text = this._buffer.slice(0, 1), this._buffer = this._buffer.slice(1), e;
|
|
27802
27812
|
}
|
|
27803
27813
|
{
|
|
27804
27814
|
let t = this._osc_st.exec(this._buffer);
|
|
27805
|
-
if (t === null) return e.kind =
|
|
27806
|
-
if (t[3]) return e.kind =
|
|
27815
|
+
if (t === null) return e.kind = Zb.Incomplete, e;
|
|
27816
|
+
if (t[3]) return e.kind = Zb.ESC, e.text = this._buffer.slice(0, 1), this._buffer = this._buffer.slice(1), e;
|
|
27807
27817
|
}
|
|
27808
|
-
this._osc_regex ||=
|
|
27818
|
+
this._osc_regex ||= $b(rx ||= Xb(["\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 "]));
|
|
27809
27819
|
let n = this._buffer.match(this._osc_regex);
|
|
27810
|
-
if (n === null) return e.kind =
|
|
27811
|
-
e.kind =
|
|
27820
|
+
if (n === null) return e.kind = Zb.ESC, e.text = this._buffer.slice(0, 1), this._buffer = this._buffer.slice(1), e;
|
|
27821
|
+
e.kind = Zb.OSCURL, e.url = n[1], e.text = n[2];
|
|
27812
27822
|
var i = n[0].length;
|
|
27813
27823
|
return this._buffer = this._buffer.slice(i), e;
|
|
27814
27824
|
}
|
|
27815
|
-
if (r == "(") return e.kind =
|
|
27825
|
+
if (r == "(") return e.kind = Zb.Unknown, this._buffer = this._buffer.slice(3), e;
|
|
27816
27826
|
}
|
|
27817
27827
|
}
|
|
27818
27828
|
ansi_to_html(e) {
|
|
27819
27829
|
this.append_buffer(e);
|
|
27820
27830
|
for (var t = [];;) {
|
|
27821
27831
|
var n = this.get_next_packet();
|
|
27822
|
-
if (n.kind ==
|
|
27823
|
-
n.kind !=
|
|
27832
|
+
if (n.kind == Zb.EOS || n.kind == Zb.Incomplete) break;
|
|
27833
|
+
n.kind != Zb.ESC && n.kind != Zb.Unknown && (n.kind == Zb.Text ? t.push(this.transform_to_html(this.with_state(n))) : n.kind == Zb.SGR ? this.process_ansi(n) : n.kind == Zb.OSCURL && t.push(this.process_hyperlink(n)));
|
|
27824
27834
|
}
|
|
27825
27835
|
return t.join("");
|
|
27826
27836
|
}
|
|
@@ -27890,16 +27900,16 @@ var Xb = class {
|
|
|
27890
27900
|
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>`;
|
|
27891
27901
|
}
|
|
27892
27902
|
};
|
|
27893
|
-
function
|
|
27903
|
+
function $b(e, ...t) {
|
|
27894
27904
|
let n = e.raw[0].replace(/^\s+|\s+\n|\s*#[\s\S]*?\n|\n/gm, "");
|
|
27895
27905
|
return new RegExp(n);
|
|
27896
27906
|
}
|
|
27897
|
-
function
|
|
27907
|
+
function ex(e, ...t) {
|
|
27898
27908
|
let n = e.raw[0].replace(/^\s+|\s+\n|\s*#[\s\S]*?\n|\n/gm, "");
|
|
27899
27909
|
return new RegExp(n, "g");
|
|
27900
27910
|
}
|
|
27901
|
-
var
|
|
27902
|
-
function
|
|
27911
|
+
var tx, nx, rx, ix = new Qb();
|
|
27912
|
+
function ax(e) {
|
|
27903
27913
|
try {
|
|
27904
27914
|
let t = document.createElement("div");
|
|
27905
27915
|
return t.innerHTML = e, (t.textContent || t.innerText || "").split("\n").map((e) => e.trimEnd()).join("\n");
|
|
@@ -27907,24 +27917,24 @@ function rx(e) {
|
|
|
27907
27917
|
return a.error("Error parsing HTML content:", t), e;
|
|
27908
27918
|
}
|
|
27909
27919
|
}
|
|
27910
|
-
function
|
|
27920
|
+
function ox(e) {
|
|
27911
27921
|
if (!e) return "";
|
|
27912
27922
|
try {
|
|
27913
|
-
return
|
|
27923
|
+
return ax(ix.ansi_to_html(e));
|
|
27914
27924
|
} catch (t) {
|
|
27915
27925
|
return a.error("Error converting ANSI to plain text:", t), e;
|
|
27916
27926
|
}
|
|
27917
27927
|
}
|
|
27918
27928
|
//#endregion
|
|
27919
27929
|
//#region src/core/errors/traceback-atom.ts
|
|
27920
|
-
var
|
|
27930
|
+
var sx = A(null);
|
|
27921
27931
|
//#endregion
|
|
27922
27932
|
//#region src/core/cells/logs.ts
|
|
27923
|
-
function
|
|
27933
|
+
function cx(e) {
|
|
27924
27934
|
return e.type === "cell" ? e.cellId : `lsp:${e.name}`;
|
|
27925
27935
|
}
|
|
27926
|
-
var
|
|
27927
|
-
function
|
|
27936
|
+
var lx = !1;
|
|
27937
|
+
function ux(e) {
|
|
27928
27938
|
let t = [], n = [e.console].filter(Boolean).flat();
|
|
27929
27939
|
for (let r of n) {
|
|
27930
27940
|
let n = r.mimetype === "text/plain", i = r.mimetype === "text/html" || r.mimetype === "application/vnd.marimo+traceback";
|
|
@@ -27934,7 +27944,7 @@ function cx(e) {
|
|
|
27934
27944
|
case "stdout":
|
|
27935
27945
|
case "stderr":
|
|
27936
27946
|
case "marimo-error": {
|
|
27937
|
-
let a = te.asString(r.data), o = i ?
|
|
27947
|
+
let a = te.asString(r.data), o = i ? ax(a) : a;
|
|
27938
27948
|
t.push({
|
|
27939
27949
|
timestamp: r.timestamp || Date.now(),
|
|
27940
27950
|
level: n ? "stderr" : "stdout",
|
|
@@ -27949,9 +27959,9 @@ function cx(e) {
|
|
|
27949
27959
|
}
|
|
27950
27960
|
}
|
|
27951
27961
|
}
|
|
27952
|
-
if (t.forEach(
|
|
27962
|
+
if (t.forEach(dx.log), n.length === 0 && ol(e.output?.mimetype) && Array.isArray(e.output.data)) {
|
|
27953
27963
|
e.output.data.forEach((t) => {
|
|
27954
|
-
|
|
27964
|
+
dx.log({
|
|
27955
27965
|
level: "stderr",
|
|
27956
27966
|
source: {
|
|
27957
27967
|
type: "cell",
|
|
@@ -27962,8 +27972,8 @@ function cx(e) {
|
|
|
27962
27972
|
});
|
|
27963
27973
|
});
|
|
27964
27974
|
let t = e.output.data.filter((e) => "type" in e && e.type === "exception" || e.type === "internal"), n = j.get(pe) === "read";
|
|
27965
|
-
if (t.length > 0 && !
|
|
27966
|
-
|
|
27975
|
+
if (t.length > 0 && !lx && n) {
|
|
27976
|
+
lx = !0;
|
|
27967
27977
|
let e = t.find((e) => e.traceback);
|
|
27968
27978
|
f(e ? {
|
|
27969
27979
|
title: "An internal error occurred",
|
|
@@ -27972,7 +27982,7 @@ function cx(e) {
|
|
|
27972
27982
|
action: P.createElement(Oe, {
|
|
27973
27983
|
altText: "View traceback",
|
|
27974
27984
|
onClick: () => {
|
|
27975
|
-
j.set(
|
|
27985
|
+
j.set(sx, {
|
|
27976
27986
|
traceback: e.traceback,
|
|
27977
27987
|
errorMessage: e.msg || "An internal error occurred"
|
|
27978
27988
|
});
|
|
@@ -27987,13 +27997,13 @@ function cx(e) {
|
|
|
27987
27997
|
}
|
|
27988
27998
|
return t;
|
|
27989
27999
|
}
|
|
27990
|
-
var
|
|
28000
|
+
var dx = { log: (e) => {
|
|
27991
28001
|
let t = e.level === "stdout" ? "gray" : e.level === "stderr" ? "red" : "orange", n = e.level.toUpperCase();
|
|
27992
|
-
console.log(`%c[${n}]`, `color:${t}; padding:2px 0; border-radius:2px; font-weight:bold`, `[${
|
|
28002
|
+
console.log(`%c[${n}]`, `color:${t}; padding:2px 0; border-radius:2px; font-weight:bold`, `[${fx(e.timestamp)}]`, `(${cx(e.source)}) ${e.message}`);
|
|
27993
28003
|
} };
|
|
27994
|
-
function
|
|
28004
|
+
function fx(e) {
|
|
27995
28005
|
try {
|
|
27996
|
-
return
|
|
28006
|
+
return Yb(e).toLocaleTimeString(void 0, {
|
|
27997
28007
|
hour12: !0,
|
|
27998
28008
|
hour: "numeric",
|
|
27999
28009
|
minute: "numeric",
|
|
@@ -28005,14 +28015,14 @@ function ux(e) {
|
|
|
28005
28015
|
}
|
|
28006
28016
|
//#endregion
|
|
28007
28017
|
//#region src/components/editor/navigation/focus-utils.ts
|
|
28008
|
-
function
|
|
28018
|
+
function px(e, t) {
|
|
28009
28019
|
let n = document.getElementById(qr.create(e));
|
|
28010
|
-
n ?
|
|
28020
|
+
n ? hx(n, t) : a.warn(`[CellFocusManager] focusCell: element not found: ${e}`);
|
|
28011
28021
|
}
|
|
28012
|
-
function
|
|
28022
|
+
function mx() {
|
|
28013
28023
|
return document.activeElement instanceof HTMLElement && document.activeElement.classList.contains("marimo-cell");
|
|
28014
28024
|
}
|
|
28015
|
-
function
|
|
28025
|
+
function hx(e, t) {
|
|
28016
28026
|
try {
|
|
28017
28027
|
e.focus(t);
|
|
28018
28028
|
} catch {
|
|
@@ -28021,7 +28031,7 @@ function px(e, t) {
|
|
|
28021
28031
|
}
|
|
28022
28032
|
//#endregion
|
|
28023
28033
|
//#region src/utils/timeout.ts
|
|
28024
|
-
function
|
|
28034
|
+
function gx(e, t) {
|
|
28025
28035
|
let { retries: n, delay: r, initialDelay: i = 0 } = t, o = 0, s = () => {
|
|
28026
28036
|
if (o < n) {
|
|
28027
28037
|
try {
|
|
@@ -28036,18 +28046,18 @@ function mx(e, t) {
|
|
|
28036
28046
|
}
|
|
28037
28047
|
//#endregion
|
|
28038
28048
|
//#region src/core/cells/scrollCellIntoView.ts
|
|
28039
|
-
function
|
|
28049
|
+
function _x({ cellId: e, cell: t, isCodeHidden: n, codeFocus: r, variableName: i }) {
|
|
28040
28050
|
if (!t) return;
|
|
28041
28051
|
let o = document.getElementById(qr.create(e));
|
|
28042
28052
|
if (!o) {
|
|
28043
28053
|
a.warn("scrollCellIntoView: element not found");
|
|
28044
28054
|
return;
|
|
28045
28055
|
}
|
|
28046
|
-
if (
|
|
28047
|
-
|
|
28056
|
+
if (mx()) {
|
|
28057
|
+
hx(o);
|
|
28048
28058
|
return;
|
|
28049
28059
|
}
|
|
28050
|
-
if (n)
|
|
28060
|
+
if (n) hx(o);
|
|
28051
28061
|
else {
|
|
28052
28062
|
Ti.promote(e);
|
|
28053
28063
|
let n = t.current?.editorView;
|
|
@@ -28056,7 +28066,7 @@ function hx({ cellId: e, cell: t, isCodeHidden: n, codeFocus: r, variableName: i
|
|
|
28056
28066
|
return;
|
|
28057
28067
|
}
|
|
28058
28068
|
if (n.hasFocus || !document.hasFocus()) return;
|
|
28059
|
-
if (
|
|
28069
|
+
if (gx(() => (n.focus(), n.hasFocus), {
|
|
28060
28070
|
retries: 5,
|
|
28061
28071
|
delay: 20
|
|
28062
28072
|
}), r === "top") n.dispatch({ selection: {
|
|
@@ -28076,14 +28086,14 @@ function hx({ cellId: e, cell: t, isCodeHidden: n, codeFocus: r, variableName: i
|
|
|
28076
28086
|
block: "nearest"
|
|
28077
28087
|
});
|
|
28078
28088
|
}
|
|
28079
|
-
function
|
|
28089
|
+
function vx() {
|
|
28080
28090
|
let e = document.getElementById("App");
|
|
28081
28091
|
e?.scrollTo({
|
|
28082
28092
|
top: e.scrollHeight,
|
|
28083
28093
|
behavior: "smooth"
|
|
28084
28094
|
});
|
|
28085
28095
|
}
|
|
28086
|
-
function
|
|
28096
|
+
function yx() {
|
|
28087
28097
|
document.getElementById("App")?.scrollTo({
|
|
28088
28098
|
top: 0,
|
|
28089
28099
|
behavior: "smooth"
|
|
@@ -28091,7 +28101,7 @@ function _x() {
|
|
|
28091
28101
|
}
|
|
28092
28102
|
//#endregion
|
|
28093
28103
|
//#region src/core/cells/cells.ts
|
|
28094
|
-
function
|
|
28104
|
+
function bx(e) {
|
|
28095
28105
|
let t = {
|
|
28096
28106
|
column: 0,
|
|
28097
28107
|
hide_code: !1,
|
|
@@ -28101,14 +28111,14 @@ function vx(e) {
|
|
|
28101
28111
|
return {
|
|
28102
28112
|
...e,
|
|
28103
28113
|
cellData: {
|
|
28104
|
-
[Wr]:
|
|
28114
|
+
[Wr]: Ib({
|
|
28105
28115
|
id: Wr,
|
|
28106
28116
|
config: t
|
|
28107
28117
|
}),
|
|
28108
28118
|
...e.cellData
|
|
28109
28119
|
},
|
|
28110
28120
|
cellRuntime: {
|
|
28111
|
-
[Wr]:
|
|
28121
|
+
[Wr]: Rb(),
|
|
28112
28122
|
...e.cellRuntime
|
|
28113
28123
|
},
|
|
28114
28124
|
cellHandles: {
|
|
@@ -28117,8 +28127,8 @@ function vx(e) {
|
|
|
28117
28127
|
}
|
|
28118
28128
|
};
|
|
28119
28129
|
}
|
|
28120
|
-
function
|
|
28121
|
-
return
|
|
28130
|
+
function xx() {
|
|
28131
|
+
return bx({
|
|
28122
28132
|
cellIds: vi.from([]),
|
|
28123
28133
|
cellData: {},
|
|
28124
28134
|
cellRuntime: {},
|
|
@@ -28129,7 +28139,7 @@ function yx() {
|
|
|
28129
28139
|
untouchedNewCells: /* @__PURE__ */ new Set()
|
|
28130
28140
|
});
|
|
28131
28141
|
}
|
|
28132
|
-
var { reducer:
|
|
28142
|
+
var { reducer: Sx, addMiddleware: Cx, createActions: wx, useActions: Tx, valueAtom: $ } = y(xx, {
|
|
28133
28143
|
createNewCell: (e, t) => {
|
|
28134
28144
|
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;
|
|
28135
28145
|
if (u) {
|
|
@@ -28151,12 +28161,12 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
|
|
|
28151
28161
|
cellIds: e.cellIds.insertId(m, f, h),
|
|
28152
28162
|
cellData: {
|
|
28153
28163
|
...e.cellData,
|
|
28154
|
-
[m]:
|
|
28164
|
+
[m]: Ib({
|
|
28155
28165
|
id: m,
|
|
28156
28166
|
code: i,
|
|
28157
28167
|
name: a,
|
|
28158
28168
|
lastCodeRun: s,
|
|
28159
|
-
config:
|
|
28169
|
+
config: Lb({
|
|
28160
28170
|
...o,
|
|
28161
28171
|
...d != null && { hide_code: d }
|
|
28162
28172
|
}),
|
|
@@ -28166,7 +28176,7 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
|
|
|
28166
28176
|
},
|
|
28167
28177
|
cellRuntime: {
|
|
28168
28178
|
...e.cellRuntime,
|
|
28169
|
-
[m]:
|
|
28179
|
+
[m]: Rb()
|
|
28170
28180
|
},
|
|
28171
28181
|
cellHandles: {
|
|
28172
28182
|
...e.cellHandles,
|
|
@@ -28268,10 +28278,10 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
|
|
|
28268
28278
|
let { cellId: r, where: i } = t, a = n.indexOfOrThrow(r), o;
|
|
28269
28279
|
o = i === "before" ? Mt(a - 1, 0, n.length - 1) : i === "after" ? Mt(a + 1, 0, n.length - 1) : a;
|
|
28270
28280
|
let s = n.atOrThrow(o);
|
|
28271
|
-
return
|
|
28281
|
+
return _x({
|
|
28272
28282
|
cellId: s,
|
|
28273
28283
|
cell: e.cellHandles[s],
|
|
28274
|
-
isCodeHidden:
|
|
28284
|
+
isCodeHidden: Ex(e, s),
|
|
28275
28285
|
codeFocus: i === "after" ? "top" : "bottom",
|
|
28276
28286
|
variableName: void 0
|
|
28277
28287
|
}), e;
|
|
@@ -28280,25 +28290,25 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
|
|
|
28280
28290
|
let t = e.cellIds.getColumns().at(0);
|
|
28281
28291
|
if (t === void 0 || t.length === 0) return e;
|
|
28282
28292
|
let n = t.first();
|
|
28283
|
-
return
|
|
28293
|
+
return _x({
|
|
28284
28294
|
cellId: n,
|
|
28285
28295
|
cell: e.cellHandles[n],
|
|
28286
|
-
isCodeHidden:
|
|
28296
|
+
isCodeHidden: Ex(e, n),
|
|
28287
28297
|
codeFocus: void 0,
|
|
28288
28298
|
variableName: void 0
|
|
28289
|
-
}),
|
|
28299
|
+
}), yx(), e;
|
|
28290
28300
|
},
|
|
28291
28301
|
focusBottomCell: (e) => {
|
|
28292
28302
|
let t = e.cellIds.getColumns().at(-1);
|
|
28293
28303
|
if (t === void 0 || t.length === 0) return e;
|
|
28294
28304
|
let n = t.last();
|
|
28295
|
-
return
|
|
28305
|
+
return _x({
|
|
28296
28306
|
cellId: n,
|
|
28297
28307
|
cell: e.cellHandles[n],
|
|
28298
|
-
isCodeHidden:
|
|
28308
|
+
isCodeHidden: Ex(e, n),
|
|
28299
28309
|
codeFocus: void 0,
|
|
28300
28310
|
variableName: void 0
|
|
28301
|
-
}),
|
|
28311
|
+
}), vx(), e;
|
|
28302
28312
|
},
|
|
28303
28313
|
sendToTop: (e, t) => {
|
|
28304
28314
|
let n = e.cellIds.findWithId(t.cellId);
|
|
@@ -28327,11 +28337,11 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
|
|
|
28327
28337
|
cellIds: e.cellIds.addColumn(t.columnId, [n]),
|
|
28328
28338
|
cellData: {
|
|
28329
28339
|
...e.cellData,
|
|
28330
|
-
[n]:
|
|
28340
|
+
[n]: Ib({ id: n })
|
|
28331
28341
|
},
|
|
28332
28342
|
cellRuntime: {
|
|
28333
28343
|
...e.cellRuntime,
|
|
28334
|
-
[n]:
|
|
28344
|
+
[n]: Rb()
|
|
28335
28345
|
},
|
|
28336
28346
|
cellHandles: {
|
|
28337
28347
|
...e.cellHandles,
|
|
@@ -28377,7 +28387,7 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
|
|
|
28377
28387
|
let i = r.indexOfOrThrow(n), o = i === 0 ? 1 : i - 1, s = null;
|
|
28378
28388
|
r.length > 1 && (s = r.atOrThrow(o));
|
|
28379
28389
|
let c = (e.cellHandles[n].current?.editorView)?.state.toJSON({ history: Ct });
|
|
28380
|
-
c && (c.doc = e.cellData[n].code),
|
|
28390
|
+
c && (c.doc = e.cellData[n].code), Gx(n);
|
|
28381
28391
|
let l = e.cellData[n];
|
|
28382
28392
|
return {
|
|
28383
28393
|
...e,
|
|
@@ -28415,7 +28425,7 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
|
|
|
28415
28425
|
scrollKey: n[0] ?? null
|
|
28416
28426
|
};
|
|
28417
28427
|
}
|
|
28418
|
-
let { name: n, serializedEditorState: r = { doc: "" }, column: i, index: a, isSetupCell: o, config: s } = t, c = o ? Gr : Kr.create(), l =
|
|
28428
|
+
let { name: n, serializedEditorState: r = { doc: "" }, column: i, index: a, isSetupCell: o, config: s } = t, c = o ? Gr : Kr.create(), l = Ib({
|
|
28419
28429
|
id: c,
|
|
28420
28430
|
name: n,
|
|
28421
28431
|
code: r.doc,
|
|
@@ -28432,7 +28442,7 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
|
|
|
28432
28442
|
},
|
|
28433
28443
|
cellRuntime: {
|
|
28434
28444
|
...e.cellRuntime,
|
|
28435
|
-
[c]:
|
|
28445
|
+
[c]: Rb()
|
|
28436
28446
|
},
|
|
28437
28447
|
cellHandles: {
|
|
28438
28448
|
...e.cellHandles,
|
|
@@ -28444,7 +28454,7 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
|
|
|
28444
28454
|
},
|
|
28445
28455
|
clearSerializedEditorState: (e, t) => {
|
|
28446
28456
|
let { cellId: n } = t;
|
|
28447
|
-
return
|
|
28457
|
+
return Ox({
|
|
28448
28458
|
state: e,
|
|
28449
28459
|
cellId: n,
|
|
28450
28460
|
cellReducer: (e) => ({
|
|
@@ -28455,7 +28465,7 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
|
|
|
28455
28465
|
},
|
|
28456
28466
|
updateCellCode: (e, t) => {
|
|
28457
28467
|
let { cellId: n, code: r, formattingChange: i } = t;
|
|
28458
|
-
return e.cellData[n] ?
|
|
28468
|
+
return e.cellData[n] ? Ox({
|
|
28459
28469
|
state: e,
|
|
28460
28470
|
cellId: n,
|
|
28461
28471
|
cellReducer: (e) => i ? {
|
|
@@ -28471,7 +28481,7 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
|
|
|
28471
28481
|
},
|
|
28472
28482
|
updateCellName: (e, t) => {
|
|
28473
28483
|
let { cellId: n, name: r } = t;
|
|
28474
|
-
return
|
|
28484
|
+
return Ox({
|
|
28475
28485
|
state: e,
|
|
28476
28486
|
cellId: n,
|
|
28477
28487
|
cellReducer: (e) => ({
|
|
@@ -28482,23 +28492,23 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
|
|
|
28482
28492
|
},
|
|
28483
28493
|
updateCellConfig: (e, t) => {
|
|
28484
28494
|
let { cellId: n, config: r } = t;
|
|
28485
|
-
return
|
|
28495
|
+
return Ox({
|
|
28486
28496
|
state: e,
|
|
28487
28497
|
cellId: n,
|
|
28488
28498
|
cellReducer: (e) => ({
|
|
28489
28499
|
...e,
|
|
28490
|
-
config:
|
|
28500
|
+
config: Lb({
|
|
28491
28501
|
...e.config,
|
|
28492
28502
|
...r
|
|
28493
28503
|
})
|
|
28494
28504
|
})
|
|
28495
28505
|
});
|
|
28496
28506
|
},
|
|
28497
|
-
prepareForRun: (e, t) =>
|
|
28498
|
-
state:
|
|
28507
|
+
prepareForRun: (e, t) => Ox({
|
|
28508
|
+
state: Dx({
|
|
28499
28509
|
state: e,
|
|
28500
28510
|
cellId: t.cellId,
|
|
28501
|
-
cellReducer: (e) =>
|
|
28511
|
+
cellReducer: (e) => Eb(e)
|
|
28502
28512
|
}),
|
|
28503
28513
|
cellId: t.cellId,
|
|
28504
28514
|
cellReducer: (e) => ({
|
|
@@ -28508,12 +28518,12 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
|
|
|
28508
28518
|
})
|
|
28509
28519
|
}),
|
|
28510
28520
|
handleCellMessage: (e, t) => {
|
|
28511
|
-
let n = t.cell_id, r =
|
|
28521
|
+
let n = t.cell_id, r = Dx({
|
|
28512
28522
|
state: e,
|
|
28513
28523
|
cellId: n,
|
|
28514
|
-
cellReducer: (e) =>
|
|
28524
|
+
cellReducer: (e) => Tb(e, t)
|
|
28515
28525
|
});
|
|
28516
|
-
return t.status === "queued" && (r =
|
|
28526
|
+
return t.status === "queued" && (r = Ox({
|
|
28517
28527
|
state: r,
|
|
28518
28528
|
cellId: n,
|
|
28519
28529
|
cellReducer: (e) => ({
|
|
@@ -28523,7 +28533,7 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
|
|
|
28523
28533
|
})
|
|
28524
28534
|
})), {
|
|
28525
28535
|
...r,
|
|
28526
|
-
cellLogs: [...r.cellLogs, ...
|
|
28536
|
+
cellLogs: [...r.cellLogs, ...ux(t)]
|
|
28527
28537
|
};
|
|
28528
28538
|
},
|
|
28529
28539
|
addLogs: (e, t) => ({
|
|
@@ -28531,13 +28541,13 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
|
|
|
28531
28541
|
cellLogs: [...e.cellLogs, ...t.logs]
|
|
28532
28542
|
}),
|
|
28533
28543
|
reconcileDocument: (e, t) => {
|
|
28534
|
-
let n =
|
|
28535
|
-
for (let t of e.cellIds.inOrderIds) t in n.cellData ||
|
|
28544
|
+
let n = Vb(e, t);
|
|
28545
|
+
for (let t of e.cellIds.inOrderIds) t in n.cellData || Gx(t);
|
|
28536
28546
|
return n;
|
|
28537
28547
|
},
|
|
28538
28548
|
setStdinResponse: (e, t) => {
|
|
28539
28549
|
let { cellId: n, response: r, outputIndex: i } = t;
|
|
28540
|
-
return
|
|
28550
|
+
return Dx({
|
|
28541
28551
|
state: e,
|
|
28542
28552
|
cellId: n,
|
|
28543
28553
|
cellReducer: (e) => {
|
|
@@ -28557,19 +28567,32 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
|
|
|
28557
28567
|
}
|
|
28558
28568
|
});
|
|
28559
28569
|
},
|
|
28560
|
-
|
|
28561
|
-
let n =
|
|
28562
|
-
|
|
28563
|
-
let
|
|
28564
|
-
|
|
28565
|
-
|
|
28566
|
-
|
|
28570
|
+
setLastRun: (e, t) => {
|
|
28571
|
+
let n = { ...e.cellData };
|
|
28572
|
+
for (let r of e.cellIds.inOrderIds) {
|
|
28573
|
+
let i = e.cellData[r], a = t.lastCodeRun[r] ?? null;
|
|
28574
|
+
n[r] = {
|
|
28575
|
+
...i,
|
|
28576
|
+
lastCodeRun: a,
|
|
28577
|
+
lastExecutionTime: t.lastExecutionTime[r] ?? null,
|
|
28578
|
+
edited: a !== null && Fb(a, i.code)
|
|
28579
|
+
};
|
|
28580
|
+
}
|
|
28581
|
+
return {
|
|
28567
28582
|
...e,
|
|
28568
|
-
|
|
28569
|
-
|
|
28570
|
-
|
|
28571
|
-
|
|
28572
|
-
}
|
|
28583
|
+
cellData: n
|
|
28584
|
+
};
|
|
28585
|
+
},
|
|
28586
|
+
resetCellRuntimes: (e) => {
|
|
28587
|
+
let t = he(), n = { ...e.cellRuntime };
|
|
28588
|
+
for (let r of [...e.cellIds.inOrderIds, Wr]) {
|
|
28589
|
+
let i = e.cellRuntime[r];
|
|
28590
|
+
n[r] = t && i !== void 0 && (i.output != null || i.consoleOutputs.length > 0) ? i : Rb();
|
|
28591
|
+
}
|
|
28592
|
+
return {
|
|
28593
|
+
...e,
|
|
28594
|
+
cellRuntime: n
|
|
28595
|
+
};
|
|
28573
28596
|
},
|
|
28574
28597
|
moveToNextCell: (e, t) => {
|
|
28575
28598
|
let { cellId: n, before: r, noCreate: i = !1 } = t;
|
|
@@ -28582,11 +28605,11 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
|
|
|
28582
28605
|
cellIds: e.cellIds.insertId(t, a.id, s),
|
|
28583
28606
|
cellData: {
|
|
28584
28607
|
...e.cellData,
|
|
28585
|
-
[t]:
|
|
28608
|
+
[t]: Ib({ id: t })
|
|
28586
28609
|
},
|
|
28587
28610
|
cellRuntime: {
|
|
28588
28611
|
...e.cellRuntime,
|
|
28589
|
-
[t]:
|
|
28612
|
+
[t]: Rb()
|
|
28590
28613
|
},
|
|
28591
28614
|
cellHandles: {
|
|
28592
28615
|
...e.cellHandles,
|
|
@@ -28602,11 +28625,11 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
|
|
|
28602
28625
|
cellIds: e.cellIds.insertId(t, a.id, 0),
|
|
28603
28626
|
cellData: {
|
|
28604
28627
|
...e.cellData,
|
|
28605
|
-
[t]:
|
|
28628
|
+
[t]: Ib({ id: t })
|
|
28606
28629
|
},
|
|
28607
28630
|
cellRuntime: {
|
|
28608
28631
|
...e.cellRuntime,
|
|
28609
|
-
[t]:
|
|
28632
|
+
[t]: Rb()
|
|
28610
28633
|
},
|
|
28611
28634
|
cellHandles: {
|
|
28612
28635
|
...e.cellHandles,
|
|
@@ -28618,10 +28641,10 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
|
|
|
28618
28641
|
if ((c || l) && i) return e;
|
|
28619
28642
|
if (s >= 0 && s < a.length) {
|
|
28620
28643
|
let t = a.atOrThrow(s);
|
|
28621
|
-
|
|
28644
|
+
_x({
|
|
28622
28645
|
cellId: t,
|
|
28623
28646
|
cell: e.cellHandles[t],
|
|
28624
|
-
isCodeHidden:
|
|
28647
|
+
isCodeHidden: Ex(e, t),
|
|
28625
28648
|
codeFocus: r ? "bottom" : "top",
|
|
28626
28649
|
variableName: void 0
|
|
28627
28650
|
});
|
|
@@ -28654,10 +28677,10 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
|
|
|
28654
28677
|
let t = e.scrollKey;
|
|
28655
28678
|
if (t === null) return e;
|
|
28656
28679
|
let n = e.cellIds.findWithId(t), r = n.indexOfOrThrow(t), i = r === n.length - 1 ? n.last() : n.atOrThrow(r);
|
|
28657
|
-
return
|
|
28680
|
+
return _x({
|
|
28658
28681
|
cellId: i,
|
|
28659
28682
|
cell: e.cellHandles[i],
|
|
28660
|
-
isCodeHidden:
|
|
28683
|
+
isCodeHidden: Ex(e, i),
|
|
28661
28684
|
codeFocus: void 0,
|
|
28662
28685
|
variableName: void 0
|
|
28663
28686
|
}), {
|
|
@@ -28672,7 +28695,7 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
|
|
|
28672
28695
|
cellLogs: []
|
|
28673
28696
|
}),
|
|
28674
28697
|
collapseCell: (e, t) => {
|
|
28675
|
-
let { cellId: n } = t, r = e.cellIds.findWithId(n), i = r.topLevelIds.map((t) => e.cellRuntime[t].outline), a =
|
|
28698
|
+
let { cellId: n } = t, r = e.cellIds.findWithId(n), i = r.topLevelIds.map((t) => e.cellRuntime[t].outline), a = pb(r.indexOfOrThrow(n), i);
|
|
28676
28699
|
if (!a) return e;
|
|
28677
28700
|
let o = r.atOrThrow(a[1]);
|
|
28678
28701
|
return {
|
|
@@ -28694,7 +28717,7 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
|
|
|
28694
28717
|
cellIds: e.cellIds.transformAll((t) => {
|
|
28695
28718
|
let n = t.topLevelIds.map((t) => e.cellRuntime[t].outline), r = [...t.nodes], i = /* @__PURE__ */ new Map(), a = [], o = r.length - 1;
|
|
28696
28719
|
for (; o >= 0;) {
|
|
28697
|
-
let e =
|
|
28720
|
+
let e = pb(o, n);
|
|
28698
28721
|
if (e) {
|
|
28699
28722
|
let n = o, r = e[1], s = i.get(r) ?? r;
|
|
28700
28723
|
i.set(r, n);
|
|
@@ -28724,7 +28747,7 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
|
|
|
28724
28747
|
splitCell: (e, t) => {
|
|
28725
28748
|
let { cellId: n } = t, r = e.cellIds.findWithId(n), i = r.indexOfOrThrow(n), a = e.cellData[n], o = e.cellHandles[n].current;
|
|
28726
28749
|
if (o?.editorView == null) return e;
|
|
28727
|
-
let { beforeCursorCode: s, afterCursorCode: c } = Ju(o.editorView), l =
|
|
28750
|
+
let { beforeCursorCode: s, afterCursorCode: c } = Ju(o.editorView), l = ib(o.editorView.state, s);
|
|
28728
28751
|
l && o.editorView.dispatch(l);
|
|
28729
28752
|
let u = Kr.create();
|
|
28730
28753
|
return {
|
|
@@ -28737,7 +28760,7 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
|
|
|
28737
28760
|
code: s,
|
|
28738
28761
|
edited: !!s && s.trim() !== a.lastCodeRun?.trim()
|
|
28739
28762
|
},
|
|
28740
|
-
[u]:
|
|
28763
|
+
[u]: Ib({
|
|
28741
28764
|
id: u,
|
|
28742
28765
|
code: c,
|
|
28743
28766
|
edited: !!c
|
|
@@ -28750,7 +28773,7 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
|
|
|
28750
28773
|
output: null,
|
|
28751
28774
|
consoleOutputs: []
|
|
28752
28775
|
},
|
|
28753
|
-
[u]:
|
|
28776
|
+
[u]: Rb()
|
|
28754
28777
|
},
|
|
28755
28778
|
cellHandles: {
|
|
28756
28779
|
...e.cellHandles,
|
|
@@ -28762,7 +28785,7 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
|
|
|
28762
28785
|
undoSplitCell: (e, t) => {
|
|
28763
28786
|
let { cellId: n, snapshot: r } = t, i = e.cellData[n], a = e.cellHandles[n].current;
|
|
28764
28787
|
if (a?.editorView == null) return e;
|
|
28765
|
-
let o =
|
|
28788
|
+
let o = ib(a.editorView.state, r);
|
|
28766
28789
|
return o && a.editorView.dispatch(o), {
|
|
28767
28790
|
...e,
|
|
28768
28791
|
cellIds: e.cellIds.transformWithCellId(n, (e) => {
|
|
@@ -28790,7 +28813,7 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
|
|
|
28790
28813
|
},
|
|
28791
28814
|
clearCellOutput: (e, t) => {
|
|
28792
28815
|
let { cellId: n } = t;
|
|
28793
|
-
return
|
|
28816
|
+
return Dx({
|
|
28794
28817
|
state: e,
|
|
28795
28818
|
cellId: n,
|
|
28796
28819
|
cellReducer: (e) => ({
|
|
@@ -28802,7 +28825,7 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
|
|
|
28802
28825
|
},
|
|
28803
28826
|
clearCellConsoleOutput: (e, t) => {
|
|
28804
28827
|
let { cellId: n } = t;
|
|
28805
|
-
return
|
|
28828
|
+
return Dx({
|
|
28806
28829
|
state: e,
|
|
28807
28830
|
cellId: n,
|
|
28808
28831
|
cellReducer: (e) => ({
|
|
@@ -28833,7 +28856,7 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
|
|
|
28833
28856
|
cellIds: e.cellIds.insertId(Gr, e.cellIds.atOrThrow(0).id, 0),
|
|
28834
28857
|
cellData: {
|
|
28835
28858
|
...e.cellData,
|
|
28836
|
-
[Gr]:
|
|
28859
|
+
[Gr]: Ib({
|
|
28837
28860
|
id: Gr,
|
|
28838
28861
|
name: Gr,
|
|
28839
28862
|
code: n,
|
|
@@ -28842,7 +28865,7 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
|
|
|
28842
28865
|
},
|
|
28843
28866
|
cellRuntime: {
|
|
28844
28867
|
...e.cellRuntime,
|
|
28845
|
-
[Gr]:
|
|
28868
|
+
[Gr]: Rb()
|
|
28846
28869
|
},
|
|
28847
28870
|
cellHandles: {
|
|
28848
28871
|
...e.cellHandles,
|
|
@@ -28852,11 +28875,11 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
|
|
|
28852
28875
|
};
|
|
28853
28876
|
}
|
|
28854
28877
|
});
|
|
28855
|
-
|
|
28856
|
-
function
|
|
28878
|
+
Cx(qb);
|
|
28879
|
+
function Ex(e, t) {
|
|
28857
28880
|
return !!e.cellData[t].config.hide_code && !e.untouchedNewCells.has(t);
|
|
28858
28881
|
}
|
|
28859
|
-
function
|
|
28882
|
+
function Dx({ state: e, cellId: t, cellReducer: n }) {
|
|
28860
28883
|
return t in e.cellRuntime ? {
|
|
28861
28884
|
...e,
|
|
28862
28885
|
cellRuntime: {
|
|
@@ -28865,7 +28888,7 @@ function Tx({ state: e, cellId: t, cellReducer: n }) {
|
|
|
28865
28888
|
}
|
|
28866
28889
|
} : (a.warn(`Cell ${t} not found in state`), e);
|
|
28867
28890
|
}
|
|
28868
|
-
function
|
|
28891
|
+
function Ox({ state: e, cellId: t, cellReducer: n }) {
|
|
28869
28892
|
return t in e.cellData ? {
|
|
28870
28893
|
...e,
|
|
28871
28894
|
cellData: {
|
|
@@ -28874,11 +28897,11 @@ function Ex({ state: e, cellId: t, cellReducer: n }) {
|
|
|
28874
28897
|
}
|
|
28875
28898
|
} : (a.warn(`Cell ${t} not found in state`), e);
|
|
28876
28899
|
}
|
|
28877
|
-
var
|
|
28878
|
-
j.set($, (t) =>
|
|
28879
|
-
}).addLogs,
|
|
28900
|
+
var kx = wx((e) => {
|
|
28901
|
+
j.set($, (t) => Sx(t, e));
|
|
28902
|
+
}).addLogs, Ax = A((e) => e($).cellIds), jx = A((e) => e(Ax).hasOnlyOneId());
|
|
28880
28903
|
A((e) => dl(e($)).length > 0), A((e) => fl(e($)).length > 0), A((e) => pl(e($))), A((e) => ml(e($))), A((e) => ll(e($)));
|
|
28881
|
-
var
|
|
28904
|
+
var Mx = A((e) => {
|
|
28882
28905
|
let { cellIds: t, cellRuntime: n, cellData: r } = e($);
|
|
28883
28906
|
return t.inOrderIds.map((e) => {
|
|
28884
28907
|
let t = n[e], { name: i } = r[e];
|
|
@@ -28896,43 +28919,43 @@ var Ax = A((e) => {
|
|
|
28896
28919
|
}
|
|
28897
28920
|
return null;
|
|
28898
28921
|
}).filter(Boolean);
|
|
28899
|
-
}),
|
|
28900
|
-
let t = e(
|
|
28901
|
-
return
|
|
28922
|
+
}), Nx = A((e) => {
|
|
28923
|
+
let t = e(Ax), n = e(Bx);
|
|
28924
|
+
return db(t.inOrderIds.map((e) => n[e].outline));
|
|
28902
28925
|
});
|
|
28903
|
-
A((e) => e(
|
|
28904
|
-
var
|
|
28926
|
+
A((e) => e(Mx).length);
|
|
28927
|
+
var Px = Pe(A((e) => {
|
|
28905
28928
|
let { cellIds: t, cellData: n } = e($);
|
|
28906
28929
|
return Nt.fromEntries(t.inOrderIds.map((e) => [e, n[e]?.name]));
|
|
28907
28930
|
}));
|
|
28908
28931
|
A((e) => e($).scrollKey);
|
|
28909
|
-
var
|
|
28932
|
+
var Fx = () => Le(Ax), Ix = () => Le(Px), Lx = () => j.get($), Rx = () => j.get($).cellIds, zx = () => {
|
|
28910
28933
|
let { cellIds: e, cellData: t } = j.get($);
|
|
28911
28934
|
return e.inOrderIds.map((e) => t[e]?.name).filter(Boolean);
|
|
28912
28935
|
};
|
|
28913
28936
|
yr(fr($, (e) => e.cellIds.inOrderIds.map((t) => e.cellData[t])));
|
|
28914
|
-
var
|
|
28937
|
+
var Bx = A((e) => e($).cellRuntime);
|
|
28915
28938
|
A((e) => sl(e($))), A((e) => {
|
|
28916
28939
|
let { cellRuntime: t } = e($);
|
|
28917
28940
|
return Object.entries(t).every(([e, t]) => t.status !== "running" || e === "__scratch__");
|
|
28918
28941
|
}), A((e) => cl(e($)));
|
|
28919
|
-
var
|
|
28942
|
+
var Vx = A((e) => e($).cellIds.colLength);
|
|
28920
28943
|
A((e) => e($).cellIds.idLength > 0), A((e) => e($).cellIds.getColumnIds());
|
|
28921
|
-
var
|
|
28922
|
-
function
|
|
28923
|
-
|
|
28944
|
+
var Hx = cr((e) => A((t) => t($).cellData[e])), Ux = cr((e) => A((t) => t($).cellRuntime[e])), Wx = cr((e) => A((t) => t($).cellHandles[e]));
|
|
28945
|
+
function Gx(e) {
|
|
28946
|
+
Hx.remove(e), Ux.remove(e), Wx.remove(e);
|
|
28924
28947
|
}
|
|
28925
|
-
var
|
|
28948
|
+
var Kx = (e) => {
|
|
28926
28949
|
let { cellHandles: t } = j.get($);
|
|
28927
28950
|
return t[e].current?.editorView;
|
|
28928
|
-
},
|
|
28929
|
-
function
|
|
28951
|
+
}, qx = (e) => (Ti.promote(e), Kx(e));
|
|
28952
|
+
function Jx(e) {
|
|
28930
28953
|
let t = (0, wr.c)(2), n;
|
|
28931
|
-
return t[0] === e ? n = t[1] : (n = e === void 0 ? {} : e, t[0] = e, t[1] = n),
|
|
28954
|
+
return t[0] === e ? n = t[1] : (n = e === void 0 ? {} : e, t[0] = e, t[1] = n), Tx(n);
|
|
28932
28955
|
}
|
|
28933
28956
|
//#endregion
|
|
28934
28957
|
//#region src/core/errors/error-entries.ts
|
|
28935
|
-
function
|
|
28958
|
+
function Yx(e) {
|
|
28936
28959
|
if (il(e.mimetype)) {
|
|
28937
28960
|
if (!Array.isArray(e.data)) return null;
|
|
28938
28961
|
let t = e.data.filter((e) => !e.type.includes("ancestor"));
|
|
@@ -28943,45 +28966,45 @@ function qx(e) {
|
|
|
28943
28966
|
tracebackHtml: e.data
|
|
28944
28967
|
} : null;
|
|
28945
28968
|
}
|
|
28946
|
-
function
|
|
28969
|
+
function Xx(e) {
|
|
28947
28970
|
return e.some((e) => "traceback" in e && e.traceback);
|
|
28948
28971
|
}
|
|
28949
|
-
function
|
|
28972
|
+
function Zx(e) {
|
|
28950
28973
|
let t = e?.find((e) => al(e.mimetype));
|
|
28951
28974
|
if (!(!t || typeof t.data != "string" || t.data.length === 0)) return t.data;
|
|
28952
28975
|
}
|
|
28953
|
-
function
|
|
28976
|
+
function Qx(e, t) {
|
|
28954
28977
|
if (e.tracebackHtml) return e.tracebackHtml;
|
|
28955
|
-
if (!
|
|
28978
|
+
if (!Xx(e.errorData)) return Zx(t);
|
|
28956
28979
|
}
|
|
28957
|
-
function
|
|
28980
|
+
function $x(e) {
|
|
28958
28981
|
let { cellIds: t, cellRuntime: n, cellData: r } = e.get($), i = [];
|
|
28959
28982
|
for (let [e, a] of t.inOrderIds.entries()) {
|
|
28960
28983
|
let t = n[a], o = t.output;
|
|
28961
28984
|
if (!o || !ol(o.mimetype)) continue;
|
|
28962
|
-
let s =
|
|
28985
|
+
let s = Yx(o);
|
|
28963
28986
|
if (!s) continue;
|
|
28964
|
-
let c =
|
|
28987
|
+
let c = Fv(r[a].name, e), l = r[a].lastCodeRun ?? r[a].code;
|
|
28965
28988
|
i.push({
|
|
28966
28989
|
cellId: a,
|
|
28967
28990
|
cellName: c,
|
|
28968
28991
|
cellCode: l,
|
|
28969
28992
|
errorData: s.errorData,
|
|
28970
|
-
tracebackHtml:
|
|
28993
|
+
tracebackHtml: Qx(s, t.consoleOutputs)
|
|
28971
28994
|
});
|
|
28972
28995
|
}
|
|
28973
28996
|
return i;
|
|
28974
28997
|
}
|
|
28975
|
-
function
|
|
28998
|
+
function eS(e) {
|
|
28976
28999
|
return e.type === "setup-refs" ? "The setup cell cannot have references" : e.type === "cycle" ? "This cell is in a cycle" : e.type === "multiple-defs" ? `The variable '${e.name}' was defined by another cell` : e.type === "import-star" || e.type === "lazy-import" || e.type === "ancestor-stopped" || e.type === "ancestor-prevented" || e.type === "exception" || e.type === "strict-exception" ? e.msg : e.type === "interruption" ? "This cell was interrupted and needs to be re-run" : e.type === "syntax" || e.type === "unknown" || e.type === "sql-error" ? e.msg : e.type === "internal" ? e.msg || "An internal error occurred" : (T(e), "Unknown error");
|
|
28977
29000
|
}
|
|
28978
|
-
function
|
|
28979
|
-
let t =
|
|
28980
|
-
return "traceback" in e && e.traceback && (t += `\n\nTraceback:\n${
|
|
29001
|
+
function tS(e) {
|
|
29002
|
+
let t = eS(e);
|
|
29003
|
+
return "traceback" in e && e.traceback && (t += `\n\nTraceback:\n${ax(e.traceback)}`), t;
|
|
28981
29004
|
}
|
|
28982
|
-
function
|
|
29005
|
+
function nS(e) {
|
|
28983
29006
|
let t = [e.cellName];
|
|
28984
|
-
return e.tracebackHtml && t.push(
|
|
29007
|
+
return e.tracebackHtml && t.push(ax(e.tracebackHtml)), e.errorData.length > 0 && t.push(e.errorData.map(tS).join("\n\n")), t.join("\n\n");
|
|
28985
29008
|
}
|
|
28986
29009
|
//#endregion
|
|
28987
|
-
export {
|
|
29010
|
+
export { Ep as $, Fr as $t, Ob as A, yl as At, Pv as B, ci as Bt, ox as C, au as Ct, Hb as D, Il as Dt, Jb as E, eu as Et, ry as F, vl as Ft, uv as G, Xr as Gt, Nv as H, Qr as Ht, ny as I, Qc as It, Wm as J, Yr as Jt, ch as K, qr as Kt, Bv as L, mi as Lt, ab as M, gl as Mt, cy as N, ul as Nt, jb as O, Pl as Ot, uy as P, _l as Pt, zp as Q, Pr as Qt, Vv as R, li as Rt, px as S, su as St, Qb as T, Yl as Tt, jv as U, $r as Ut, Iv as V, ni as Vt, Av as W, ei as Wt, em as X, zr as Xt, Um as Y, Jr as Yt, $p as Z, Br as Zt, Vx as _, hn as _n, du as _t, Hx as a, zn as an, bf as at, Fx as b, uu as bt, qx as c, Mn as cn, uf as ct, Rx as d, Tn as dn, qd as dt, Mr as en, up as et, Lx as f, Cn as fn, Hd as ft, Nx as g, vn as gn, Nu as gt, $ as h, bn as hn, Md as ht, $x as i, fr as in, Sf as it, ub as j, bl as jt, Db as k, xl as kt, Kx as l, An as ln, Yd as lt, xx as m, xn as mn, Fd as mt, nS as n, sr as nn, X as nt, Ax as o, In as on, vf as ot, jx as p, Sn as pn, Bd as pt, Gm as q, Wr as qt, tS as r, Cr as rn, Af as rt, wx as s, Nn as sn, pf as st, eS as t, Tr as tn, lp as tt, zx as u, On as un, Xd as ut, Sx as v, mn as vn, fu as vt, ax as w, $l as wt, Ix as x, lu as xt, Jx as y, fn as yn, V as yt, Fv as z, si as zt };
|