@marimo-team/frontend 0.23.16-dev47 → 0.23.16-dev49
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{CellStatus-C6Cj3oJc.js → CellStatus-DciB5rbr.js} +1 -1
- package/dist/assets/{ConnectedDataExplorerComponent-CMaZapRd.js → ConnectedDataExplorerComponent-CXp99aFw.js} +1 -1
- package/dist/assets/{JsonOutput-BIwD6Z9Y.js → JsonOutput-BM3vve9F.js} +3 -3
- package/dist/assets/LazyAnyLanguageCodeMirror-DPOEues4.js +2 -0
- package/dist/assets/{MarimoErrorOutput-CIuzXFFo.js → MarimoErrorOutput-Bh0y53Du.js} +1 -1
- package/dist/assets/{RenderHTML-Cd-PP5ZR.js → RenderHTML-B9jx7Dsm.js} +1 -1
- package/dist/assets/{RunButton-CnYWedW4.js → RunButton-DMtHbFuA.js} +1 -1
- package/dist/assets/{add-cell-with-ai-C38rS_Vb.js → add-cell-with-ai-BcRYriMM.js} +1 -1
- package/dist/assets/add-connection-dialog-syjRSNPT.js +178 -0
- package/dist/assets/{agent-panel-BzpwIGH_.js → agent-panel-B31W_VwU.js} +1 -1
- package/dist/assets/{ai-model-dropdown-Bvqy98cI.js → ai-model-dropdown-B3D05oQh.js} +3 -3
- package/dist/assets/{any-language-editor--tRHs8C_.js → any-language-editor-BDvoKhJM.js} +1 -1
- package/dist/assets/apl-B-7blH-b.js +1 -0
- package/dist/assets/app-config-button-D_mjovwU.js +1 -0
- package/dist/assets/{arc-CfUZAQDm.js → arc-CezuXhk_.js} +1 -1
- package/dist/assets/{architecture-7HQA4BMR-Bvqj37EA.js → architecture-7HQA4BMR-Dy7zkjw8.js} +1 -1
- package/dist/assets/{architectureDiagram-VXUJARFQ-sx_yisiZ.js → architectureDiagram-VXUJARFQ-BmOSh2SW.js} +1 -1
- package/dist/assets/asciiarmor-D3K8amZ9.js +1 -0
- package/dist/assets/asn1-UGGn98tp.js +1 -0
- package/dist/assets/{blob-D4PJCCaE.js → blob-BJREJiQp.js} +1 -1
- package/dist/assets/{blockDiagram-VD42YOAC-KexI-fgH.js → blockDiagram-VD42YOAC-DHO0ifdn.js} +1 -1
- package/dist/assets/brainfuck-B4y4U3tg.js +1 -0
- package/dist/assets/{c4Diagram-YG6GDRKO-d8NrlxRF.js → c4Diagram-YG6GDRKO-ByToYMes.js} +1 -1
- package/dist/assets/{cache-panel-DcQUeUpg.js → cache-panel-Bvnkzrzd.js} +1 -1
- package/dist/assets/{cell-editor-IyYRG2xm.js → cell-editor-BOhZHoLm.js} +3 -3
- package/dist/assets/{cell-link-w5IbCQV4.js → cell-link-DqNEv3f9.js} +1 -1
- package/dist/assets/{cells-DzyDERZy.js → cells-Jr-5Pc9f.js} +4 -4
- package/dist/assets/channel-hYe4T32r.js +1 -0
- package/dist/assets/{chat-display-CX7zz7Iy.js → chat-display-Djy1Jt6b.js} +1 -1
- package/dist/assets/{chat-panel-D3FqQl4H.js → chat-panel-B2nYSE_l.js} +1 -1
- package/dist/assets/{chat-ui-B7QB4NwC.js → chat-ui-DlG0En7w.js} +1 -1
- package/dist/assets/{chunk-4BX2VUAB-fhh1HlXH.js → chunk-4BX2VUAB-BsEakQWN.js} +1 -1
- package/dist/assets/chunk-55IACEB6-DkGbQmsa.js +1 -0
- package/dist/assets/{chunk-5FQGJX7Z-Cp0LZT-a.js → chunk-5FQGJX7Z-BEbM01OT.js} +2 -2
- package/dist/assets/{chunk-ABZYJK2D-BtK4zInQ.js → chunk-ABZYJK2D-CCNXe-E2.js} +3 -3
- package/dist/assets/{chunk-ATLVNIR6-YZDenslF.js → chunk-ATLVNIR6-yY0weiRB.js} +1 -1
- package/dist/assets/{chunk-B4BG7PRW-DYIZwDbt.js → chunk-B4BG7PRW-DtjHcIBO.js} +1 -1
- package/dist/assets/{chunk-CVBHYZKI-CIyHeK0Q.js → chunk-CVBHYZKI-D1ar3Zzb.js} +1 -1
- package/dist/assets/{chunk-DI55MBZ5-TodwBGEN.js → chunk-DI55MBZ5-BxB9Lmc6.js} +1 -1
- package/dist/assets/{chunk-EXTU4WIE-C76bF1UD.js → chunk-EXTU4WIE-Do43HMrz.js} +1 -1
- package/dist/assets/{chunk-FMBD7UC4-Yq65IDPA.js → chunk-FMBD7UC4-FWkYBdS7.js} +1 -1
- package/dist/assets/{chunk-HN2XXSSU-CcbN4n6W.js → chunk-HN2XXSSU-nVY6M8Me.js} +1 -1
- package/dist/assets/{chunk-JA3XYJ7Z-CPXEu7AX.js → chunk-JA3XYJ7Z-52dYwyoT.js} +1 -1
- package/dist/assets/{chunk-JZLCHNYA-D8q1z6Py.js → chunk-JZLCHNYA-BHSouLxk.js} +1 -1
- package/dist/assets/{chunk-MI3HLSF2-bmomnexd.js → chunk-MI3HLSF2-BwgHEi3_.js} +1 -1
- package/dist/assets/{chunk-N4CR4FBY-BhsjB2qn.js → chunk-N4CR4FBY-BkAnRh0J.js} +2 -2
- package/dist/assets/{chunk-QN33PNHL-ngvPqyQ0.js → chunk-QN33PNHL-DWzHlkYI.js} +1 -1
- package/dist/assets/{chunk-QXUST7PY-C4c0Sjmn.js → chunk-QXUST7PY-CjtWgrZg.js} +1 -1
- package/dist/assets/{chunk-QZHKN3VN-CkbwBDOS.js → chunk-QZHKN3VN-CmAwpNoC.js} +1 -1
- package/dist/assets/{chunk-S3R3BYOJ-Bt2NnquF.js → chunk-S3R3BYOJ-DcZAYEft.js} +1 -1
- package/dist/assets/{chunk-TZMSLE5B-Dysko1OC.js → chunk-TZMSLE5B-D2-o8-XQ.js} +1 -1
- package/dist/assets/classDiagram-2ON5EDUG-DapsPtpH.js +1 -0
- package/dist/assets/classDiagram-v2-WZHVMYZB-Oa2f7U6n.js +1 -0
- package/dist/assets/{clike-DKPr2D1_.js → clike-BAN6KopO.js} +1 -1
- package/dist/assets/clojure-BAZ-ejkG.js +1 -0
- package/dist/assets/cmake-jWn0xN9y.js +1 -0
- package/dist/assets/cobol-XqY9jaWP.js +1 -0
- package/dist/assets/{code-block-37QAKDTI-DlENujeV.js → code-block-37QAKDTI-DdMTHZGu.js} +1 -1
- package/dist/assets/coffeescript-DI1jfZHX.js +1 -0
- package/dist/assets/{column-preview-rIsKPa9V.js → column-preview-BUHlI5va.js} +1 -1
- package/dist/assets/{command-palette-IpDnUFd7.js → command-palette-rEJmXCZM.js} +1 -1
- package/dist/assets/{common-CJ3baa6D.js → common-CZc3fQI4.js} +1 -1
- package/dist/assets/commonlisp-UKb01OlU.js +1 -0
- package/dist/assets/{components-DpUIWGaj.js → components-GAYCj6Mx.js} +1 -1
- package/dist/assets/{cose-bilkent-S5V4N54A-BlMw4-M9.js → cose-bilkent-S5V4N54A-B4-5phSs.js} +1 -1
- package/dist/assets/crystal-DOvjTBWA.js +1 -0
- package/dist/assets/{css-DsUcFZz8.js → css-DWLxGm3Z.js} +1 -1
- package/dist/assets/cypher-CLDhu2ae.js +1 -0
- package/dist/assets/d-C0ecUZk9.js +1 -0
- package/dist/assets/{dagre-6UL2VRFP-kJ4x17JK.js → dagre-6UL2VRFP-2XhH1Ri-.js} +1 -1
- package/dist/assets/{data-grid-overlay-editor-DbobQcVo.js → data-grid-overlay-editor-B4LrPNw9.js} +1 -1
- package/dist/assets/{datasource-D_VcQMEn.js → datasource-AWkkAeiS.js} +1 -1
- package/dist/assets/{dependency-graph-panel-BmvJHSNy.js → dependency-graph-panel-wcqTPq6b.js} +1 -1
- package/dist/assets/{diagram-PSM6KHXK-d-5aQNHk.js → diagram-PSM6KHXK-CAqt0euW.js} +1 -1
- package/dist/assets/{diagram-QEK2KX5R-CO-PXq75.js → diagram-QEK2KX5R-D5cgX3Vp.js} +1 -1
- package/dist/assets/{diagram-S2PKOQOG-Dv7pcvYC.js → diagram-S2PKOQOG-ibWavdR5.js} +1 -1
- package/dist/assets/diff-657cCCVc.js +1 -0
- package/dist/assets/{dist-CRrIf3gB.js → dist-7L5iW3e_.js} +1 -1
- package/dist/assets/{dist-R1kU4nzJ.js → dist-Bcpo9599.js} +1 -1
- package/dist/assets/{dist-DQNaXfK1.js → dist-BrZHhdmA.js} +1 -1
- package/dist/assets/dist-C00gHjPp.js +1 -0
- package/dist/assets/{dist-0QUuSoRx.js → dist-C4El4p_-.js} +1 -1
- package/dist/assets/{dist-BsphJPAV.js → dist-CIYjZ11d.js} +1 -1
- package/dist/assets/{dist-Du-wcJyR.js → dist-COTjOJlM.js} +1 -1
- package/dist/assets/dist-CWNfBqYo.js +1 -0
- package/dist/assets/dist-Cck3fpDq.js +1 -0
- package/dist/assets/{dist-CECF_J8y.js → dist-DIQO2yAn.js} +1 -1
- package/dist/assets/{dist-BMOD2Pyh.js → dist-DabFEfar.js} +1 -1
- package/dist/assets/dist-f5euh_Pv.js +1 -0
- package/dist/assets/{dist-CDUl-YL4.js → dist-ryTWanRP.js} +1 -1
- package/dist/assets/{dist-6c4zOh78.js → dist-sg9T7Ulw.js} +1 -1
- package/dist/assets/{dist-sPfKr-vH.js → dist-wSuqFvon.js} +1 -1
- package/dist/assets/{dockerfile-C2PznFWk.js → dockerfile-kqVBOcIP.js} +1 -1
- package/dist/assets/{documentation-panel-CGhwxsXK.js → documentation-panel-Eu8MIkoU.js} +1 -1
- package/dist/assets/{download-BIGA4WFm.js → download-CQ7iZFJL.js} +1 -1
- package/dist/assets/dtd-DSiK7Qgi.js +1 -0
- package/dist/assets/dylan-07d5-7Q9.js +1 -0
- package/dist/assets/ecl-CSTUHiwq.js +1 -0
- package/dist/assets/{edit-page-BxWEex0a.js → edit-page-zyK_cMuR.js} +5 -5
- package/dist/assets/eiffel-DR99GcsM.js +1 -0
- package/dist/assets/elm-Cmh0iW6J.js +1 -0
- package/dist/assets/{erDiagram-Q2GNP2WA-BQ8HfnRu.js → erDiagram-Q2GNP2WA-BaY7iomT.js} +1 -1
- package/dist/assets/erlang-CS9Yc6UC.js +1 -0
- package/dist/assets/{error-entries-CTYMwfsh.js → error-entries-Cr8uVukN.js} +1 -1
- package/dist/assets/{error-panel-DGAkG5kW.js → error-panel-BZzr0PA1.js} +1 -1
- package/dist/assets/{esm-Cmv0Nuxi.js → esm-DqItXpGT.js} +1 -1
- package/dist/assets/{factor-DMrXrOH8.js → factor-D96xahcJ.js} +1 -1
- package/dist/assets/factor-DjB27Lcf.js +1 -0
- package/dist/assets/{file-explorer-panel-D_9Rm9qM.js → file-explorer-panel-C1W7g_Wp.js} +1 -1
- package/dist/assets/{file-icons-DfWENcb8.js → file-icons-BAqZR08W.js} +1 -1
- package/dist/assets/{file-name-input-CNVZtm5K.js → file-name-input-0MiZVw5r.js} +1 -1
- package/dist/assets/{fileToBase64-C2Yy-YXq.js → fileToBase64-Dgfa7TRQ.js} +1 -1
- package/dist/assets/{floating-outline-LitP0wCD.js → floating-outline-C6g75zrP.js} +1 -1
- package/dist/assets/{flowDiagram-NV44I4VS-xBOzhlfg.js → flowDiagram-NV44I4VS-C_6PGGE6.js} +1 -1
- package/dist/assets/{focus-CNKbm-Xz.js → focus-C0HXXg3V.js} +1 -1
- package/dist/assets/form-C051zAev.js +1 -0
- package/dist/assets/{form-DTWstSVJ.js → form-DT44Rmhp.js} +2 -2
- package/dist/assets/forth-UwTUu7NY.js +1 -0
- package/dist/assets/fortran-cptiB4gJ.js +1 -0
- package/dist/assets/{gallery-page-CJ3ms1Hn.js → gallery-page-CL1y8LXc.js} +1 -1
- package/dist/assets/{ganttDiagram-JELNMOA3-D2O_k-Zg.js → ganttDiagram-JELNMOA3-CJFyE5hs.js} +1 -1
- package/dist/assets/gas-ajMbd9Us.js +1 -0
- package/dist/assets/gherkin-ClYkalzE.js +1 -0
- package/dist/assets/{gitGraph-G5XIXVHT-8HJwNcdU.js → gitGraph-G5XIXVHT-BP96QVP9.js} +1 -1
- package/dist/assets/{gitGraphDiagram-V2S2FVAM-Nk4Ll9GY.js → gitGraphDiagram-V2S2FVAM-CGQPWKR8.js} +1 -1
- package/dist/assets/{glide-data-editor-j2igs9Y_.js → glide-data-editor-Badziq3Y.js} +4 -4
- package/dist/assets/groovy-BY-gt7AW.js +1 -0
- package/dist/assets/haskell-D1BeJ7SR.js +1 -0
- package/dist/assets/haxe-QOq5WFXx.js +1 -0
- package/dist/assets/{home-page-DM9Z_IJ7.js → home-page-CJz9IHZ2.js} +1 -1
- package/dist/assets/{html-to-image-JaxFFZcr.js → html-to-image-CfjhKLA4.js} +1 -1
- package/dist/assets/idl-3-UcEGx7.js +1 -0
- package/dist/assets/{index-CGrnjnHL.js → index-BGE_j_ZS.js} +7 -7
- package/dist/assets/{info-VBDWY6EO-rfe3WPvd.js → info-VBDWY6EO-B7aeNYNu.js} +1 -1
- package/dist/assets/infoDiagram-HS3SLOUP-BT7ISZ3J.js +2 -0
- package/dist/assets/javascript-CorD44JN.js +1 -0
- package/dist/assets/{journeyDiagram-XKPGCS4Q-D61FGivn.js → journeyDiagram-XKPGCS4Q-DhyWkFu7.js} +1 -1
- package/dist/assets/julia-BYqTtTAl.js +1 -0
- package/dist/assets/{kanban-definition-3W4ZIXB7-Bnv0X0Tu.js → kanban-definition-3W4ZIXB7-B2A0FPA_.js} +1 -1
- package/dist/assets/katex-BnxSCReZ.js +1 -0
- package/dist/assets/{layout-rWti2H65.js → layout-D4bpsgVD.js} +3 -3
- package/dist/assets/{line-DNm2phYo.js → line-1dURhxkp.js} +1 -1
- package/dist/assets/{linear-CTQqNbVX.js → linear-gmSPLe7o.js} +1 -1
- package/dist/assets/livescript-qYgfNnNE.js +1 -0
- package/dist/assets/{logs-panel-CQRPYS8j.js → logs-panel-CsaY3O1m.js} +1 -1
- package/dist/assets/{loro_wasm_bg-Duqr-kJ2.js → loro_wasm_bg-DWuCVDfB.js} +1 -1
- package/dist/assets/lua-BCqCjdfz.js +1 -0
- package/dist/assets/{markdown-renderer-sEayY9-m.js → markdown-renderer-BgqeO4JR.js} +3 -3
- package/dist/assets/mathematica-XKwMfn0d.js +1 -0
- package/dist/assets/mbox-BnkeOnif.js +1 -0
- package/dist/assets/{mermaid-4DMBBIKO-CDGmT6YQ.js → mermaid-4DMBBIKO-DxfSuOnE.js} +1 -1
- package/dist/assets/{mermaid-CYN0wOyG.js → mermaid-Dfx05w1B.js} +3 -3
- package/dist/assets/{mermaid-parser.core-Dz2GMGqQ.js → mermaid-parser.core-OagDSIIt.js} +2 -2
- package/dist/assets/{mhchem-CIWniJp4.js → mhchem-Dka9kRKN.js} +1 -1
- package/dist/assets/{mindmap-definition-VGOIOE7T-C-YaKmEU.js → mindmap-definition-VGOIOE7T-torqqISZ.js} +1 -1
- package/dist/assets/mirc-ipoElhai.js +1 -0
- package/dist/assets/mllike-DmouQ5Dp.js +1 -0
- package/dist/assets/modelica-BtmmVsUf.js +1 -0
- package/dist/assets/mscgen-BHZmHZgz.js +1 -0
- package/dist/assets/mumps-oKfoFTl_.js +1 -0
- package/dist/assets/{name-cell-input-B-aj1KH3.js → name-cell-input-DcU8Rfrz.js} +1 -1
- package/dist/assets/nsis-DDOPnuAW.js +1 -0
- package/dist/assets/{nsis-Ccvd1gbp.js → nsis-gzbsJ5t0.js} +1 -1
- package/dist/assets/ntriples-Dsyl_sOF.js +1 -0
- package/dist/assets/{number-overlay-editor-BQ9P6yP7.js → number-overlay-editor-DlQjqV32.js} +1 -1
- package/dist/assets/octave-CI5RGMPa.js +1 -0
- package/dist/assets/{ordinal-DyTNGK17.js → ordinal-W4TcDjiJ.js} +1 -1
- package/dist/assets/{outline-panel-BOryk60D.js → outline-panel-D-CHPZQM.js} +1 -1
- package/dist/assets/oz-D01pKAWx.js +1 -0
- package/dist/assets/{packages-panel-DoYDLty3.js → packages-panel-dq7QVZl1.js} +1 -1
- package/dist/assets/{packet-DYOGHKS2-DTVloLa7.js → packet-DYOGHKS2-B2FlK_cc.js} +1 -1
- package/dist/assets/{panels-D-BYYQCt.js → panels-DWoniKhE.js} +1 -1
- package/dist/assets/pascal-DGXfnIFD.js +1 -0
- package/dist/assets/perl-gZ7qIkF-.js +1 -0
- package/dist/assets/{pie-VRWISCQL-Bmght6JF.js → pie-VRWISCQL-rtCNhZhm.js} +1 -1
- package/dist/assets/{pieDiagram-ADFJNKIX-DlFYL0BN.js → pieDiagram-ADFJNKIX-vSo1I9sb.js} +1 -1
- package/dist/assets/pig-Cb90ayl-.js +1 -0
- package/dist/assets/powershell-_YxddSL3.js +1 -0
- package/dist/assets/{process-output-d-LEMtGI.js → process-output-NbwnUu05.js} +1 -1
- package/dist/assets/properties-sU50dmvt.js +1 -0
- package/dist/assets/protobuf-DFdF-yfo.js +1 -0
- package/dist/assets/{pug-BtXi5KiX.js → pug-CfBtO6QD.js} +1 -1
- package/dist/assets/pug-DwUB-C24.js +1 -0
- package/dist/assets/puppet-DtKzwiZ6.js +1 -0
- package/dist/assets/python-BMLOKYmk.js +1 -0
- package/dist/assets/q-BF1zXMdP.js +1 -0
- package/dist/assets/{quadrantDiagram-AYHSOK5B-BpJug2BH.js → quadrantDiagram-AYHSOK5B-DonUSsuk.js} +1 -1
- package/dist/assets/r-BQiKhVSI.js +1 -0
- package/dist/assets/{radar-ZZBFDIW7-CYwWzRgW.js → radar-ZZBFDIW7-CRVupj1O.js} +1 -1
- package/dist/assets/{radio-group-DfioQthW.js → radio-group-rhQpGwU-.js} +1 -1
- package/dist/assets/{react-vega-TNCk_eWj.js → react-vega-Bd66vLSZ.js} +1 -1
- package/dist/assets/{readonly-code-display-C9fu8tvK.js → readonly-code-display-CVY2f7EZ.js} +1 -1
- package/dist/assets/{readonly-python-code-DHxOnQGj.js → readonly-python-code-Q_1Y3VyZ.js} +1 -1
- package/dist/assets/{requirementDiagram-UZGBJVZJ-Bd-1eny8.js → requirementDiagram-UZGBJVZJ-D8rJ1Dg-.js} +1 -1
- package/dist/assets/{reveal-component-CGBET1VL.js → reveal-component-CedpDwM8.js} +1 -1
- package/dist/assets/rpm-v7UTuaHo.js +1 -0
- package/dist/assets/ruby-Cw43FpG3.js +1 -0
- package/dist/assets/{run-page-BDt08QR4.js → run-page-CGoux5cj.js} +1 -1
- package/dist/assets/{sankeyDiagram-TZEHDZUN-CDWAE6GV.js → sankeyDiagram-TZEHDZUN-Bufh177s.js} +1 -1
- package/dist/assets/sas-BIKscqlp.js +1 -0
- package/dist/assets/scheme-CGic3hSV.js +1 -0
- package/dist/assets/{scratchpad-panel-CZqs-AmJ.js → scratchpad-panel-BLuF25yR.js} +1 -1
- package/dist/assets/{secrets-panel-6J6wcuVR.js → secrets-panel-4Qy7R-wy.js} +1 -1
- package/dist/assets/{sequenceDiagram-WL72ISMW-B6hjDGBF.js → sequenceDiagram-WL72ISMW-DOsQdDD2.js} +1 -1
- package/dist/assets/{session-panel-BNdpCbXw.js → session-panel-OIot3eyB.js} +1 -1
- package/dist/assets/shell-DAh545tm.js +1 -0
- package/dist/assets/sieve-bGkng63-.js +1 -0
- package/dist/assets/{skeleton-BJuRsFbf.js → skeleton-BRvjFlRu.js} +1 -1
- package/dist/assets/smalltalk-fIw53lm8.js +1 -0
- package/dist/assets/{snippets-panel-U2-iok-c.js → snippets-panel-YFyH2hUM.js} +1 -1
- package/dist/assets/sparql-CHbJrAY_.js +1 -0
- package/dist/assets/{src-CIOdyciO.js → src-BSYB0gI9.js} +1 -1
- package/dist/assets/{state-DJzSWGB9.js → state-DB_fxbhn.js} +1 -1
- package/dist/assets/{state-DxQhUsG9.js → state-bHyw5u3R.js} +1 -1
- package/dist/assets/{stateDiagram-FKZM4ZOC-Bzv6j99z.js → stateDiagram-FKZM4ZOC-z2ks4r_9.js} +1 -1
- package/dist/assets/stateDiagram-v2-4FDKWEC3-BApjXiT0.js +1 -0
- package/dist/assets/{step-CDlhJj9-.js → step-DIOVHicC.js} +1 -1
- package/dist/assets/stylus-3Q5WfXqT.js +1 -0
- package/dist/assets/swift-MKxc2knl.js +1 -0
- package/dist/assets/tcl-D3fKhQc_.js +1 -0
- package/dist/assets/{terminal-217O8hlZ.js → terminal-D4sGJYRn.js} +1 -1
- package/dist/assets/textarea-DZB2bzVL.js +1 -0
- package/dist/assets/textile-Bi_LEJQ3.js +1 -0
- package/dist/assets/{time-BuRlxEhE.js → time-NXrJfoDM.js} +1 -1
- package/dist/assets/{timeline-definition-IT6M3QCI-DXwdU1og.js → timeline-definition-IT6M3QCI-BRuA290T.js} +1 -1
- package/dist/assets/toml-Dt-PBqwt.js +1 -0
- package/dist/assets/{tracing-B5XFvMmV.js → tracing-CDMM1BB2.js} +1 -1
- package/dist/assets/{tracing-panel-DnR2bYDe.js → tracing-panel-BH5Zbvl9.js} +2 -2
- package/dist/assets/{tree-actions-Dx9CDaxV.js → tree-actions-DDveUIHK.js} +1 -1
- package/dist/assets/{treemap-GDKQZRPO-4Cm6HMmj.js → treemap-GDKQZRPO-DIzBBPQD.js} +1 -1
- package/dist/assets/troff-BSU-rxoD.js +1 -0
- package/dist/assets/ttcn-BmLjonVM.js +1 -0
- package/dist/assets/ttcn-cfg-TPTcP0Eh.js +1 -0
- package/dist/assets/turtle-HafmShQq.js +1 -0
- package/dist/assets/{useCellActionButton-D-uro4Di.js → useCellActionButton-D5ix_g2a.js} +1 -1
- package/dist/assets/{useDeleteCell-vMXAr3rY.js → useDeleteCell-BIopCngo.js} +1 -1
- package/dist/assets/{useDependencyPanelTab-BGGAtEWD.js → useDependencyPanelTab-snM337f9.js} +1 -1
- package/dist/assets/{useNotebookActions-DDDJKVxq.js → useNotebookActions-CsZfWFKy.js} +3 -3
- package/dist/assets/{useRunCells-C2dvU2jA.js → useRunCells-CF_V8X2K.js} +1 -1
- package/dist/assets/{useSplitCell-C1tubdNi.js → useSplitCell-BTmKY1CU.js} +1 -1
- package/dist/assets/vb-CUif5uGR.js +1 -0
- package/dist/assets/vbscript-DWVPFl59.js +1 -0
- package/dist/assets/{vega-component-Db8KjZJG.js → vega-component-BYd6AACD.js} +1 -1
- package/dist/assets/{vega-embed-container-hDAVOOba.js → vega-embed-container-CRADa99b.js} +1 -1
- package/dist/assets/velocity-BJl8UzB4.js +1 -0
- package/dist/assets/verilog-B4LUPYXy.js +1 -0
- package/dist/assets/vhdl-C91h3ipk.js +1 -0
- package/dist/assets/webidl-DOay1zbU.js +1 -0
- package/dist/assets/write-secret-modal-D-p66LIx.js +2 -0
- package/dist/assets/xquery-Cez7jD_4.js +1 -0
- package/dist/assets/{xychartDiagram-PRI3JC2R-Cb0exSKs.js → xychartDiagram-PRI3JC2R-BX6ICxcN.js} +1 -1
- package/dist/assets/yacas-CSQEXB_S.js +1 -0
- package/dist/assets/z80-CJbYj7Wr.js +1 -0
- package/dist/index.html +29 -28
- package/package.json +1 -1
- package/src/components/editor/chrome/panels/write-secret-modal.tsx +40 -12
- package/src/components/editor/connections/__tests__/json-credentials.test.ts +114 -0
- package/src/components/editor/connections/__tests__/paths.test.ts +39 -0
- package/src/components/editor/connections/components.tsx +6 -2
- package/src/components/editor/connections/database/__tests__/__snapshots__/as-code.test.ts.snap +21 -5
- package/src/components/editor/connections/database/__tests__/as-code.test.ts +17 -0
- package/src/components/editor/connections/database/as-code.ts +16 -2
- package/src/components/editor/connections/database/schemas.ts +6 -5
- package/src/components/editor/connections/form-renderers.tsx +99 -1
- package/src/components/editor/connections/json-credentials.ts +57 -0
- package/src/components/editor/connections/paths.ts +21 -0
- package/src/components/editor/connections/secret-combobox.tsx +41 -20
- package/src/components/editor/connections/storage/__tests__/__snapshots__/as-code.test.ts.snap +38 -2
- package/src/components/editor/connections/storage/__tests__/as-code.test.ts +41 -0
- package/src/components/editor/connections/storage/as-code.ts +39 -15
- package/src/components/editor/connections/storage/schemas.ts +2 -2
- package/src/components/forms/options.ts +2 -1
- package/dist/assets/LazyAnyLanguageCodeMirror-B2JvSXP-.js +0 -2
- package/dist/assets/add-connection-dialog-DDGKGmv6.js +0 -170
- package/dist/assets/apl-DTwRFDps.js +0 -1
- package/dist/assets/app-config-button-v1lG63C2.js +0 -1
- package/dist/assets/asciiarmor-CiqkDK0s.js +0 -1
- package/dist/assets/asn1-RTvH5MEs.js +0 -1
- package/dist/assets/brainfuck-szH_VGzd.js +0 -1
- package/dist/assets/channel-D-k8o3T1.js +0 -1
- package/dist/assets/chunk-55IACEB6-xhaY4LU6.js +0 -1
- package/dist/assets/classDiagram-2ON5EDUG-C-rIg7EQ.js +0 -1
- package/dist/assets/classDiagram-v2-WZHVMYZB-MBAsRLae.js +0 -1
- package/dist/assets/clojure-CyEbLmch.js +0 -1
- package/dist/assets/cmake-Dk8f7QuI.js +0 -1
- package/dist/assets/cobol-BJJRqW1D.js +0 -1
- package/dist/assets/coffeescript-BDuWJ9WO.js +0 -1
- package/dist/assets/commonlisp-CVHm2VSp.js +0 -1
- package/dist/assets/crystal-C2Fgr79A.js +0 -1
- package/dist/assets/cypher-CUlCm6vR.js +0 -1
- package/dist/assets/d-4ANEHA6q.js +0 -1
- package/dist/assets/diff-C-W-5V8L.js +0 -1
- package/dist/assets/dist-CCAhuqF-.js +0 -1
- package/dist/assets/dist-DGhK0kPE.js +0 -1
- package/dist/assets/dist-SVDIDTM2.js +0 -1
- package/dist/assets/dist-xSLg7wNV.js +0 -1
- package/dist/assets/dtd-D9h-tL8G.js +0 -1
- package/dist/assets/dylan-D3MC56xy.js +0 -1
- package/dist/assets/ecl-B6UC4tME.js +0 -1
- package/dist/assets/eiffel-CjvEov4k.js +0 -1
- package/dist/assets/elm-DvSbvRWe.js +0 -1
- package/dist/assets/erlang-DJYaGXyq.js +0 -1
- package/dist/assets/factor-CUQCrkTo.js +0 -1
- package/dist/assets/forth-D9xegiCO.js +0 -1
- package/dist/assets/fortran-B0Oe0U8s.js +0 -1
- package/dist/assets/gas-jLjj-PIq.js +0 -1
- package/dist/assets/gherkin-3Ig8Crit.js +0 -1
- package/dist/assets/groovy-NKpNVJ-n.js +0 -1
- package/dist/assets/haskell-OPE4bAjk.js +0 -1
- package/dist/assets/haxe-DEAZF8L3.js +0 -1
- package/dist/assets/idl-BM6265Xl.js +0 -1
- package/dist/assets/infoDiagram-HS3SLOUP-DQnMjKYJ.js +0 -2
- package/dist/assets/javascript-CZ9vDpAy.js +0 -1
- package/dist/assets/julia-BrY9TQnt.js +0 -1
- package/dist/assets/katex-C-lfa1AM.js +0 -1
- package/dist/assets/livescript-CNahkUp5.js +0 -1
- package/dist/assets/lua-Skr4TVu_.js +0 -1
- package/dist/assets/mathematica-BXxhrpeY.js +0 -1
- package/dist/assets/mbox-BRrQCVe9.js +0 -1
- package/dist/assets/mirc-CffYPE4R.js +0 -1
- package/dist/assets/mllike-C1DLZhEI.js +0 -1
- package/dist/assets/modelica-CvAyRRNV.js +0 -1
- package/dist/assets/mscgen-uMZWtMZv.js +0 -1
- package/dist/assets/mumps-DFJehEx7.js +0 -1
- package/dist/assets/nsis-BVI9YULz.js +0 -1
- package/dist/assets/ntriples-Bcdh7b2H.js +0 -1
- package/dist/assets/octave-CdAKz6YS.js +0 -1
- package/dist/assets/oz-DSySeR-W.js +0 -1
- package/dist/assets/pascal-DefziIUN.js +0 -1
- package/dist/assets/perl-BOOloBPk.js +0 -1
- package/dist/assets/pig-f0nBb-5x.js +0 -1
- package/dist/assets/powershell-DToQjbK9.js +0 -1
- package/dist/assets/properties-BRob-nyj.js +0 -1
- package/dist/assets/protobuf-DZyC6051.js +0 -1
- package/dist/assets/pug-pVoM8FRt.js +0 -1
- package/dist/assets/puppet-9fuYG07F.js +0 -1
- package/dist/assets/python-_Mr8fyXP.js +0 -1
- package/dist/assets/q-D73s4Y77.js +0 -1
- package/dist/assets/r-BOEjz92e.js +0 -1
- package/dist/assets/rpm-LpXWTM5t.js +0 -1
- package/dist/assets/ruby-DodgSDfF.js +0 -1
- package/dist/assets/sas-D9KCtUmL.js +0 -1
- package/dist/assets/scheme-p8UJxmJw.js +0 -1
- package/dist/assets/shell-BWdqyqwL.js +0 -1
- package/dist/assets/sieve-CLwJmtiQ.js +0 -1
- package/dist/assets/smalltalk-D3KV-Qah.js +0 -1
- package/dist/assets/sparql-D9Jz2mBw.js +0 -1
- package/dist/assets/stateDiagram-v2-4FDKWEC3-CA1l0rNa.js +0 -1
- package/dist/assets/stylus-ClN4l_XO.js +0 -1
- package/dist/assets/swift-Dvd_9xBv.js +0 -1
- package/dist/assets/tcl-DR2p8cyi.js +0 -1
- package/dist/assets/textarea-Bmzmbbpo.js +0 -1
- package/dist/assets/textile-D6S27_J2.js +0 -1
- package/dist/assets/toml-B-YuQ2Id.js +0 -1
- package/dist/assets/troff-HSk8AoRF.js +0 -1
- package/dist/assets/ttcn-CehzlVdx.js +0 -1
- package/dist/assets/ttcn-cfg-CLEPwk1s.js +0 -1
- package/dist/assets/turtle-DQLHkbOu.js +0 -1
- package/dist/assets/vb-o1EHrS4z.js +0 -1
- package/dist/assets/vbscript-BS8yUFpf.js +0 -1
- package/dist/assets/velocity-u_oGPFaA.js +0 -1
- package/dist/assets/verilog-CSmDH7su.js +0 -1
- package/dist/assets/vhdl-BCaWLcjw.js +0 -1
- package/dist/assets/webidl-Bf6dokXM.js +0 -1
- package/dist/assets/write-secret-modal-3-v-dHVj.js +0 -1
- package/dist/assets/xquery-Di0kkiXg.js +0 -1
- package/dist/assets/yacas-DB8tPtyp.js +0 -1
- package/dist/assets/z80-DFUvlWxk.js +0 -1
- /package/dist/assets/{ImageComparisonComponent-Cz3xVDLH.js → ImageComparisonComponent-HnxpPJnM.js} +0 -0
- /package/dist/assets/{Inputs-B8-VCb_j.js → Inputs-BhvqLBkk.js} +0 -0
- /package/dist/assets/{Plot-X2G47XHf.js → Plot-Df7XX6zz.js} +0 -0
- /package/dist/assets/{apl-DVqFAlEd.js → apl-CPlG1HX3.js} +0 -0
- /package/dist/assets/{array-Ddg9CgJT.js → array-DkMvCrqF.js} +0 -0
- /package/dist/assets/{asciiarmor-B45BhOLj.js → asciiarmor-DV_pcocJ.js} +0 -0
- /package/dist/assets/{asn1-C4T2ctU6.js → asn1-DPxWcGvG.js} +0 -0
- /package/dist/assets/{asterisk-9U_4Kgke.js → asterisk-Di-nanOd.js} +0 -0
- /package/dist/assets/{azure-nN8APleF.js → azure-BjL5s4-w.js} +0 -0
- /package/dist/assets/{brainfuck-kVh8Eud4.js → brainfuck-CGDdBVNO.js} +0 -0
- /package/dist/assets/{card-VUBaYDpT.js → card-DIbLM4TA.js} +0 -0
- /package/dist/assets/{chunk-4F5CHEZ2-ClSh5rxG.js → chunk-4F5CHEZ2-yOSqdjGN.js} +0 -0
- /package/dist/assets/{chunk-B2363JML-cit0ouFv.js → chunk-B2363JML-BqlxcdFI.js} +0 -0
- /package/dist/assets/{chunk-DR5Q36YT-Bsu9Glc0.js → chunk-DR5Q36YT-9bsCT1tL.js} +0 -0
- /package/dist/assets/{chunk-FRFDVMJY--Re1QfFE.js → chunk-FRFDVMJY-DW58IWII.js} +0 -0
- /package/dist/assets/{chunk-PL6DKKU2-CAwRAr-p.js → chunk-PL6DKKU2-CiPkyomE.js} +0 -0
- /package/dist/assets/{chunk-SJTYNZTY-G1spWesO.js → chunk-SJTYNZTY-UJLIXgY2.js} +0 -0
- /package/dist/assets/{chunk-TQ3KTPDO-DBwra5xv.js → chunk-TQ3KTPDO-DQFcRP5c.js} +0 -0
- /package/dist/assets/{chunk-UMXZTB3W-A5RvYDPE.js → chunk-UMXZTB3W-cibob28z.js} +0 -0
- /package/dist/assets/{clear-button-DQtvx6eq.js → clear-button-Bsxh4lx1.js} +0 -0
- /package/dist/assets/{click-outside-container-CrWZsAF5.js → click-outside-container-LfSB2_ne.js} +0 -0
- /package/dist/assets/{clike-O0gwXilc.js → clike-D91DrsBh.js} +0 -0
- /package/dist/assets/{clojure-CsbMWxp9.js → clojure-B0eb_-2q.js} +0 -0
- /package/dist/assets/{cmake-FpJvOdyj.js → cmake-COzUvjiS.js} +0 -0
- /package/dist/assets/{cobol-Duxbpsru.js → cobol-DW4FSnmb.js} +0 -0
- /package/dist/assets/{coffeescript-D-Unz9IP.js → coffeescript-CommR2mv.js} +0 -0
- /package/dist/assets/{colors-C_0lIznd.js → colors-CyQT5OPu.js} +0 -0
- /package/dist/assets/{common-keywords-PqH2GDfH.js → common-keywords-Bk-0jOKl.js} +0 -0
- /package/dist/assets/{commonlisp-_nR12oc7.js → commonlisp-FR_N9RJL.js} +0 -0
- /package/dist/assets/{crystal-dj3W4b1A.js → crystal-CAN7bz25.js} +0 -0
- /package/dist/assets/{css-0BG6A_BC.js → css-DmLg8a0m.js} +0 -0
- /package/dist/assets/{cypher-CKPokaoH.js → cypher-BzSJn05x.js} +0 -0
- /package/dist/assets/{cytoscape.esm-DzUNSF80.js → cytoscape.esm-CVhOSlMZ.js} +0 -0
- /package/dist/assets/{d-BrbqzVa2.js → d-UpmnByGo.js} +0 -0
- /package/dist/assets/{diff-BmdR9FsO.js → diff-DRpitNo9.js} +0 -0
- /package/dist/assets/{dist-CM-lWxt3.js → dist-1DJkf78n.js} +0 -0
- /package/dist/assets/{dist-ByK00N0T.js → dist-6KRysbQA.js} +0 -0
- /package/dist/assets/{dist-98K4fusX.js → dist-8H9kNP92.js} +0 -0
- /package/dist/assets/{dist-OgwOt8T2.js → dist-8lZYHUSx.js} +0 -0
- /package/dist/assets/{dist-DNGKAtWk.js → dist-B4sFEC9P.js} +0 -0
- /package/dist/assets/{dist-BaKJ0-Tb.js → dist-B5BlmbY-.js} +0 -0
- /package/dist/assets/{dist-CpbbK4-I.js → dist-BDUj3vkc.js} +0 -0
- /package/dist/assets/{dist-3N7-WLqi.js → dist-C13NfWpP.js} +0 -0
- /package/dist/assets/{dist-DokId-qM.js → dist-C3XTRycV.js} +0 -0
- /package/dist/assets/{dist-56ul6-mm.js → dist-C6uSSUmH.js} +0 -0
- /package/dist/assets/{dist-D5ToCtv8.js → dist-CDFlR-dv.js} +0 -0
- /package/dist/assets/{dist-DzAAhYcW.js → dist-CaADT3TK.js} +0 -0
- /package/dist/assets/{dist-B8g3pNYJ.js → dist-CbTMGxEf.js} +0 -0
- /package/dist/assets/{dist-O5-NiN3f.js → dist-CjpCHqUI.js} +0 -0
- /package/dist/assets/{dist-D9sE1udr.js → dist-D0BTeZL0.js} +0 -0
- /package/dist/assets/{dist-DrtRBAn8.js → dist-DE4Vb9tO.js} +0 -0
- /package/dist/assets/{dist-D35OyUMQ.js → dist-DYsXEge_.js} +0 -0
- /package/dist/assets/{dist-C5kf6g-d.js → dist-lCLEUACp.js} +0 -0
- /package/dist/assets/{dtd-DbCXDVgi.js → dtd-CQV9N2ok.js} +0 -0
- /package/dist/assets/{duckdb-keywords-mPlR0SxW.js → duckdb-keywords-CqO5LWsh.js} +0 -0
- /package/dist/assets/{dylan-CLLzL2Js.js → dylan-Bp98yT5y.js} +0 -0
- /package/dist/assets/{ebnf-Cnws41cu.js → ebnf-DoGvzVmX.js} +0 -0
- /package/dist/assets/{ecl-BC7x2nzk.js → ecl-BgtQ3zu5.js} +0 -0
- /package/dist/assets/{eiffel-CDU836rz.js → eiffel-Cu14O7Gi.js} +0 -0
- /package/dist/assets/{elm-D-_bXARs.js → elm-Dp1dn40k.js} +0 -0
- /package/dist/assets/{empty-state-CqJvEFRk.js → empty-state-yX2_pzkH.js} +0 -0
- /package/dist/assets/{erlang-CwDZk2zM.js → erlang-DdogJjdp.js} +0 -0
- /package/dist/assets/{esm-D6WfbcL3.js → esm-DZILy413.js} +0 -0
- /package/dist/assets/{fcl-CwkPc-_9.js → fcl-CTs4ROWI.js} +0 -0
- /package/dist/assets/{formatting-CDf6w1Kt.js → formatting-DQX9QUSf.js} +0 -0
- /package/dist/assets/{forth-D6FsO_8x.js → forth-Dd0r86IP.js} +0 -0
- /package/dist/assets/{fortran-D4BMbIkG.js → fortran-4qvtlW4z.js} +0 -0
- /package/dist/assets/{gas-JFjzcgdY.js → gas-DqwqZHXy.js} +0 -0
- /package/dist/assets/{gherkin-Cyu-qGaF.js → gherkin-DMxJEDh5.js} +0 -0
- /package/dist/assets/{github-_JH-0hIO.js → github-kTVN-x1m.js} +0 -0
- /package/dist/assets/{groovy-CZaE9eN-.js → groovy-DA_MxBua.js} +0 -0
- /package/dist/assets/{haskell-Dc6o0IGr.js → haskell-B_hi8VEK.js} +0 -0
- /package/dist/assets/{haxe-Bsf0tzqs.js → haxe-D-I6YeRN.js} +0 -0
- /package/dist/assets/{http-BQNSD-HR.js → http-Ci3E2pzn.js} +0 -0
- /package/dist/assets/{idl-1W91kQ8_.js → idl-CteRrHSs.js} +0 -0
- /package/dist/assets/{init-nx27Zb9l.js → init-CYoUL2Ak.js} +0 -0
- /package/dist/assets/{javascript-BZ81-2rO.js → javascript-Cq9DsvSW.js} +0 -0
- /package/dist/assets/{julia-BZOsq0r_.js → julia-bHGj6eLp.js} +0 -0
- /package/dist/assets/{katex-CvZ3kCGk.js → katex-BKFLE8En.js} +0 -0
- /package/dist/assets/{kiosk-mode-BumOFEtY.js → kiosk-mode-CWGEgpon.js} +0 -0
- /package/dist/assets/{links-CZr5bjvo.js → links-CiT7FeSM.js} +0 -0
- /package/dist/assets/{livescript-CNZfmikk.js → livescript-C72YlTeO.js} +0 -0
- /package/dist/assets/{loro_wasm_bg-RNUly1SE.js → loro_wasm_bg-aCH66ryB.js} +0 -0
- /package/dist/assets/{lua-DXGRliwd.js → lua-DAtJrHXr.js} +0 -0
- /package/dist/assets/{marimo-icons-C_nFooxr.js → marimo-icons-Bq_N9GGs.js} +0 -0
- /package/dist/assets/{math-CLO4uoaP.js → math-D6WZfqI3.js} +0 -0
- /package/dist/assets/{mathematica-BoUj8M7D.js → mathematica-DGp7b8Lx.js} +0 -0
- /package/dist/assets/{mbox-DLVP8LAe.js → mbox-C35KjfEV.js} +0 -0
- /package/dist/assets/{mirc-kI4d5fMu.js → mirc-BRCHEPv1.js} +0 -0
- /package/dist/assets/{mllike-CD9vBc_2.js → mllike-D7ajla-U.js} +0 -0
- /package/dist/assets/{modelica-DgfsLJuF.js → modelica-0RGVL4ie.js} +0 -0
- /package/dist/assets/{mscgen-B1HDwshJ.js → mscgen-C7Ohs4Tl.js} +0 -0
- /package/dist/assets/{multi-icon-nrKPWjDU.js → multi-icon-C2ijLyOs.js} +0 -0
- /package/dist/assets/{mumps-D_-b9TZD.js → mumps-Cgag5Xef.js} +0 -0
- /package/dist/assets/{nginx-Cm282mo8.js → nginx-k5GTB7o1.js} +0 -0
- /package/dist/assets/{node-sql-parser-Si4oZ2P-.js → node-sql-parser-Dpr10aqR.js} +0 -0
- /package/dist/assets/{ntriples-COX9JFZ8.js → ntriples-oQv5c69K.js} +0 -0
- /package/dist/assets/{octave-BejycR79.js → octave-BMTXs4lo.js} +0 -0
- /package/dist/assets/{oz-CFFivrGn.js → oz-CuHYwo8r.js} +0 -0
- /package/dist/assets/{pair-with-agent-modal-BCRSACei.js → pair-with-agent-modal-D2vO1D8g.js} +0 -0
- /package/dist/assets/{panel-context-CH75ubGG.js → panel-context-CmeYEpWr.js} +0 -0
- /package/dist/assets/{pascal-B_p9jkCs.js → pascal-eFKoVV2p.js} +0 -0
- /package/dist/assets/{path-Bz_hIzg5.js → path-BcLO3NWe.js} +0 -0
- /package/dist/assets/{pathUtils-Bfcp5m-a.js → pathUtils-BbJtW9Mp.js} +0 -0
- /package/dist/assets/{perl-C-SFBTly.js → perl-B1OqOW8w.js} +0 -0
- /package/dist/assets/{pig-BhxDMp2k.js → pig-gIrBDx27.js} +0 -0
- /package/dist/assets/{powershell-c59M-9N2.js → powershell-3fQF2XND.js} +0 -0
- /package/dist/assets/{properties-D1JNwCKy.js → properties-D4HHpZmU.js} +0 -0
- /package/dist/assets/{protobuf-DQS7ex8R.js → protobuf-DFSTKR0L.js} +0 -0
- /package/dist/assets/{puppet-DaQvhvew.js → puppet-BAISgXk9.js} +0 -0
- /package/dist/assets/{python-XHl3eRTS.js → python-mPctBCbA.js} +0 -0
- /package/dist/assets/{q-DppnoRE3.js → q-CYeV5Dbb.js} +0 -0
- /package/dist/assets/{r-D8-F_FWj.js → r-Ds4UrjIV.js} +0 -0
- /package/dist/assets/{request-registry-DHocQ_4I.js → request-registry-CEkYnwgr.js} +0 -0
- /package/dist/assets/{requests-DYeT4CEe.js → requests-CIR84T8A.js} +0 -0
- /package/dist/assets/{rpm-CegJhNNO.js → rpm-DV5-r6dM.js} +0 -0
- /package/dist/assets/{ruby-YMIxufV1.js → ruby-B9qrycrI.js} +0 -0
- /package/dist/assets/{runs-DBTXqJHS.js → runs-CZN8py6x.js} +0 -0
- /package/dist/assets/{sas-wTtX9UIQ.js → sas-Cd7L1ZOe.js} +0 -0
- /package/dist/assets/{scheme-BGenom3k.js → scheme-L6Kva-Kc.js} +0 -0
- /package/dist/assets/{semaphore-DtBYRzWS.js → semaphore-YOr3WMiw.js} +0 -0
- /package/dist/assets/{shell-Bu1sLaiP.js → shell-Ck42V1Kn.js} +0 -0
- /package/dist/assets/{sieve-ffe6rUQh.js → sieve-DfSJcUfS.js} +0 -0
- /package/dist/assets/{simple-mode-DBSzUJLA.js → simple-mode-CfoR0Lvg.js} +0 -0
- /package/dist/assets/{smalltalk-NU5EGjHp.js → smalltalk-CT418Iph.js} +0 -0
- /package/dist/assets/{solr-ptw1yIqO.js → solr-DfAVBX8L.js} +0 -0
- /package/dist/assets/{sparql-uqVktnwO.js → sparql-BlJ_cLEt.js} +0 -0
- /package/dist/assets/{spreadsheet-VEzeu_mb.js → spreadsheet-Qy1VjLDU.js} +0 -0
- /package/dist/assets/{sql-tYjnWETe.js → sql-BAkD7JGK.js} +0 -0
- /package/dist/assets/{src-BshXgZd4.js → src-Dlf0iGaF.js} +0 -0
- /package/dist/assets/{state-D10U2MwA.js → state-DFeun9PF.js} +0 -0
- /package/dist/assets/{stylus-B2E6Ulaz.js → stylus-92qIiGm1.js} +0 -0
- /package/dist/assets/{swift-Rmnn7ATv.js → swift-gZzicbJu.js} +0 -0
- /package/dist/assets/{swiper-component-g8EXE911.js → swiper-component-C0ieyDzn.js} +0 -0
- /package/dist/assets/{tcl-ZPWCn2nn.js → tcl-CtgoBYkk.js} +0 -0
- /package/dist/assets/{textile-uhA33kFk.js → textile-Du3RzJ2D.js} +0 -0
- /package/dist/assets/{tiddlywiki-CPkGLyXH.js → tiddlywiki-CL3W3RpP.js} +0 -0
- /package/dist/assets/{tiki-BtjLo8OF.js → tiki-2L3jCwab.js} +0 -0
- /package/dist/assets/{timer-VYMLXPue.js → timer-DLLzXmjF.js} +0 -0
- /package/dist/assets/{toml-BFZv2Mv7.js → toml-HcF44TVB.js} +0 -0
- /package/dist/assets/{treemap-Bca0xNNq.js → treemap-BdaAyoGw.js} +0 -0
- /package/dist/assets/{troff-B5eayHop.js → troff-xbwT4huN.js} +0 -0
- /package/dist/assets/{ttcn-cfg-CfbkL3Q_.js → ttcn-cfg-jWDg1i50.js} +0 -0
- /package/dist/assets/{ttcn-BM0Yp8NY.js → ttcn-phKysj_0.js} +0 -0
- /package/dist/assets/{turtle-DvetLxrv.js → turtle-CPC48wcy.js} +0 -0
- /package/dist/assets/{types-Da7lA5YC.js → types-C7hjolXC.js} +0 -0
- /package/dist/assets/{use-vega-container-remeasure-CbKTb_jy.js → use-vega-container-remeasure-0GBen_rR.js} +0 -0
- /package/dist/assets/{useInterval-CWBTUy5W.js → useInterval-Be6s6idX.js} +0 -0
- /package/dist/assets/{vb-i5Z8scch.js → vb-BTubZ2rB.js} +0 -0
- /package/dist/assets/{vbscript-BiPYgIyi.js → vbscript-B52mDFWM.js} +0 -0
- /package/dist/assets/{velocity-Dw3R3YoX.js → velocity-BO3M1iFD.js} +0 -0
- /package/dist/assets/{verilog-B8FhJcX6.js → verilog-CBz90JJu.js} +0 -0
- /package/dist/assets/{vhdl-BqPEoXdJ.js → vhdl-CeQ1lGlV.js} +0 -0
- /package/dist/assets/{web-vitals-CwE0GGzl.js → web-vitals-Q0-_CtWm.js} +0 -0
- /package/dist/assets/{webidl-mMO-qW5Q.js → webidl-CRtF5pmu.js} +0 -0
- /package/dist/assets/{ws-BmTnbVEi.js → ws-CNqquaud.js} +0 -0
- /package/dist/assets/{xquery-DvqNwq7L.js → xquery-CFnbrHav.js} +0 -0
- /package/dist/assets/{yacas-Dku9Z6Kf.js → yacas-KIC_JO6M.js} +0 -0
- /package/dist/assets/{z80-DvazU5Tr.js → z80-kGpw5_me.js} +0 -0
package/dist/assets/{xychartDiagram-PRI3JC2R-Cb0exSKs.js → xychartDiagram-PRI3JC2R-BX6ICxcN.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var j,Q,K,Z,q,J,tt,it,et,st;import"./purify.es-CWmnYhGI.js";import{t as zt}from"./linear-
|
|
1
|
+
var j,Q,K,Z,q,J,tt,it,et,st;import"./purify.es-CWmnYhGI.js";import{t as zt}from"./linear-gmSPLe7o.js";import{n as ui}from"./ordinal-W4TcDjiJ.js";import{t as xi}from"./range-u_glTVdi.js";import"./defaultLocale-DOVIEEPN.js";import{t as Ot}from"./line-1dURhxkp.js";import{i as Wt}from"./chunk-S3R3BYOJ-DcZAYEft.js";import{n as di}from"./init-CYoUL2Ak.js";import"./src-BSYB0gI9.js";import{n,r as Ft}from"./src-Dlf0iGaF.js";import{B as pi,C as Xt,I as fi,T as mi,U as yi,_ as bi,a as Ai,c as Ci,d as wi,v as Si,y as mt,z as ki}from"./chunk-ABZYJK2D-CCNXe-E2.js";import{t as _i}from"./chunk-EXTU4WIE-Do43HMrz.js";import"./dist-D0BTeZL0.js";import{t as Ti}from"./chunk-JA3XYJ7Z-52dYwyoT.js";function yt(){var e=ui().unknown(void 0),t=e.domain,i=e.range,s=0,a=1,l,g,f=!1,p=0,_=0,L=.5;delete e.unknown;function w(){var b=t().length,v=a<s,D=v?a:s,P=v?s:a;l=(P-D)/Math.max(1,b-p+_*2),f&&(l=Math.floor(l)),D+=(P-D-l*(b-p))*L,g=l*(1-p),f&&(D=Math.round(D),g=Math.round(g));var E=xi(b).map(function(m){return D+l*m});return i(v?E.reverse():E)}return e.domain=function(b){return arguments.length?(t(b),w()):t()},e.range=function(b){return arguments.length?([s,a]=b,s=+s,a=+a,w()):[s,a]},e.rangeRound=function(b){return[s,a]=b,s=+s,a=+a,f=!0,w()},e.bandwidth=function(){return g},e.step=function(){return l},e.round=function(b){return arguments.length?(f=!!b,w()):f},e.padding=function(b){return arguments.length?(p=Math.min(1,_=+b),w()):p},e.paddingInner=function(b){return arguments.length?(p=Math.min(1,b),w()):p},e.paddingOuter=function(b){return arguments.length?(_=+b,w()):_},e.align=function(b){return arguments.length?(L=Math.max(0,Math.min(1,b)),w()):L},e.copy=function(){return yt(t(),[s,a]).round(f).paddingInner(p).paddingOuter(_).align(L)},di.apply(w(),arguments)}var bt=(function(){var e=n(function(h,A,x,u){for(x||(x={}),u=h.length;u--;x[h[u]]=A);return x},"o"),t=[1,10,12,14,16,18,19,21,23],i=[2,6],s=[1,3],a=[1,5],l=[1,6],g=[1,7],f=[1,5,10,12,14,16,18,19,21,23,34,35,36],p=[1,25],_=[1,26],L=[1,28],w=[1,29],b=[1,30],v=[1,31],D=[1,32],P=[1,33],E=[1,34],m=[1,35],T=[1,36],r=[1,37],z=[1,43],O=[1,42],V=[1,47],S=[1,50],c=[1,10,12,14,16,18,19,21,23,34,35,36],M=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36],y=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36,41,42,43,44,45,46,47,48,49,50],Y=[1,64],U={trace:n(function(){},"trace"),yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,commaSeparatedNumbers:25,SQUARE_BRACES_END:26,NUMBER_WITH_DECIMAL:27,COMMA:28,xAxisData:29,bandData:30,ARROW_DELIMITER:31,commaSeparatedTexts:32,yAxisData:33,NEWLINE:34,SEMI:35,EOF:36,alphaNum:37,STR:38,MD_STR:39,alphaNumToken:40,AMP:41,NUM:42,ALPHA:43,PLUS:44,EQUALS:45,MULT:46,DOT:47,BRKT:48,MINUS:49,UNDERSCORE:50,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",27:"NUMBER_WITH_DECIMAL",28:"COMMA",31:"ARROW_DELIMITER",34:"NEWLINE",35:"SEMI",36:"EOF",38:"STR",39:"MD_STR",41:"AMP",42:"NUM",43:"ALPHA",44:"PLUS",45:"EQUALS",46:"MULT",47:"DOT",48:"BRKT",49:"MINUS",50:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[13,1],[13,2],[13,1],[29,1],[29,3],[30,3],[32,3],[32,1],[15,1],[15,2],[15,1],[33,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[37,1],[37,2],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1]],performAction:n(function(h,A,x,u,k,o,at){var d=o.length-1;switch(k){case 5:u.setOrientation(o[d]);break;case 9:u.setDiagramTitle(o[d].text.trim());break;case 12:u.setLineData({text:"",type:"text"},o[d]);break;case 13:u.setLineData(o[d-1],o[d]);break;case 14:u.setBarData({text:"",type:"text"},o[d]);break;case 15:u.setBarData(o[d-1],o[d]);break;case 16:this.$=o[d].trim(),u.setAccTitle(this.$);break;case 17:case 18:this.$=o[d].trim(),u.setAccDescription(this.$);break;case 19:this.$=o[d-1];break;case 20:this.$=[Number(o[d-2]),...o[d]];break;case 21:this.$=[Number(o[d])];break;case 22:u.setXAxisTitle(o[d]);break;case 23:u.setXAxisTitle(o[d-1]);break;case 24:u.setXAxisTitle({type:"text",text:""});break;case 25:u.setXAxisBand(o[d]);break;case 26:u.setXAxisRangeData(Number(o[d-2]),Number(o[d]));break;case 27:this.$=o[d-1];break;case 28:this.$=[o[d-2],...o[d]];break;case 29:this.$=[o[d]];break;case 30:u.setYAxisTitle(o[d]);break;case 31:u.setYAxisTitle(o[d-1]);break;case 32:u.setYAxisTitle({type:"text",text:""});break;case 33:u.setYAxisRangeData(Number(o[d-2]),Number(o[d]));break;case 37:this.$={text:o[d],type:"text"};break;case 38:this.$={text:o[d],type:"text"};break;case 39:this.$={text:o[d],type:"markdown"};break;case 40:this.$=o[d];break;case 41:this.$=o[d-1]+""+o[d];break}},"anonymous"),table:[e(t,i,{3:1,4:2,7:4,5:s,34:a,35:l,36:g}),{1:[3]},e(t,i,{4:2,7:4,3:8,5:s,34:a,35:l,36:g}),e(t,i,{4:2,7:4,6:9,3:10,5:s,8:[1,11],34:a,35:l,36:g}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},e(f,[2,34]),e(f,[2,35]),e(f,[2,36]),{1:[2,1]},e(t,i,{4:2,7:4,3:21,5:s,34:a,35:l,36:g}),{1:[2,3]},e(f,[2,5]),e(t,[2,7],{4:22,34:a,35:l,36:g}),{11:23,37:24,38:p,39:_,40:27,41:L,42:w,43:b,44:v,45:D,46:P,47:E,48:m,49:T,50:r},{11:39,13:38,24:z,27:O,29:40,30:41,37:24,38:p,39:_,40:27,41:L,42:w,43:b,44:v,45:D,46:P,47:E,48:m,49:T,50:r},{11:45,15:44,27:V,33:46,37:24,38:p,39:_,40:27,41:L,42:w,43:b,44:v,45:D,46:P,47:E,48:m,49:T,50:r},{11:49,17:48,24:S,37:24,38:p,39:_,40:27,41:L,42:w,43:b,44:v,45:D,46:P,47:E,48:m,49:T,50:r},{11:52,17:51,24:S,37:24,38:p,39:_,40:27,41:L,42:w,43:b,44:v,45:D,46:P,47:E,48:m,49:T,50:r},{20:[1,53]},{22:[1,54]},e(c,[2,18]),{1:[2,2]},e(c,[2,8]),e(c,[2,9]),e(M,[2,37],{40:55,41:L,42:w,43:b,44:v,45:D,46:P,47:E,48:m,49:T,50:r}),e(M,[2,38]),e(M,[2,39]),e(y,[2,40]),e(y,[2,42]),e(y,[2,43]),e(y,[2,44]),e(y,[2,45]),e(y,[2,46]),e(y,[2,47]),e(y,[2,48]),e(y,[2,49]),e(y,[2,50]),e(y,[2,51]),e(c,[2,10]),e(c,[2,22],{30:41,29:56,24:z,27:O}),e(c,[2,24]),e(c,[2,25]),{31:[1,57]},{11:59,32:58,37:24,38:p,39:_,40:27,41:L,42:w,43:b,44:v,45:D,46:P,47:E,48:m,49:T,50:r},e(c,[2,11]),e(c,[2,30],{33:60,27:V}),e(c,[2,32]),{31:[1,61]},e(c,[2,12]),{17:62,24:S},{25:63,27:Y},e(c,[2,14]),{17:65,24:S},e(c,[2,16]),e(c,[2,17]),e(y,[2,41]),e(c,[2,23]),{27:[1,66]},{26:[1,67]},{26:[2,29],28:[1,68]},e(c,[2,31]),{27:[1,69]},e(c,[2,13]),{26:[1,70]},{26:[2,21],28:[1,71]},e(c,[2,15]),e(c,[2,26]),e(c,[2,27]),{11:59,32:72,37:24,38:p,39:_,40:27,41:L,42:w,43:b,44:v,45:D,46:P,47:E,48:m,49:T,50:r},e(c,[2,33]),e(c,[2,19]),{25:73,27:Y},{26:[2,28]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],72:[2,28],73:[2,20]},parseError:n(function(h,A){if(A.recoverable)this.trace(h);else{var x=Error(h);throw x.hash=A,x}},"parseError"),parse:n(function(h){var A=this,x=[0],u=[],k=[null],o=[],at=this.table,d="",rt=0,vt=0,Et=0,ri=2,Mt=1,li=o.slice.call(arguments,1),R=Object.create(this.lexer),X={yy:{}};for(var xt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,xt)&&(X.yy[xt]=this.yy[xt]);R.setInput(h,X.yy),X.yy.lexer=R,X.yy.parser=this,R.yylloc===void 0&&(R.yylloc={});var dt=R.yylloc;o.push(dt);var ci=R.options&&R.options.ranges;typeof X.yy.parseError=="function"?this.parseError=X.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function gi(B){x.length-=2*B,k.length-=B,o.length-=B}n(gi,"popStack");function It(){var B=u.pop()||R.lex()||Mt;return typeof B!="number"&&(B instanceof Array&&(u=B,B=u.pop()),B=A.symbols_[B]||B),B}n(It,"lex");for(var I,pt,N,$,ft,H={},lt,W,$t,ct;;){if(N=x[x.length-1],this.defaultActions[N]?$=this.defaultActions[N]:(I??(I=It()),$=at[N]&&at[N][I]),$===void 0||!$.length||!$[0]){var Bt="";for(lt in ct=[],at[N])this.terminals_[lt]&<>ri&&ct.push("'"+this.terminals_[lt]+"'");Bt=R.showPosition?"Parse error on line "+(rt+1)+`:
|
|
2
2
|
`+R.showPosition()+`
|
|
3
3
|
Expecting `+ct.join(", ")+", got '"+(this.terminals_[I]||I)+"'":"Parse error on line "+(rt+1)+": Unexpected "+(I==Mt?"end of input":"'"+(this.terminals_[I]||I)+"'"),this.parseError(Bt,{text:R.match,token:this.terminals_[I]||I,line:R.yylineno,loc:dt,expected:ct})}if($[0]instanceof Array&&$.length>1)throw Error("Parse Error: multiple actions possible at state: "+N+", token: "+I);switch($[0]){case 1:x.push(I),k.push(R.yytext),o.push(R.yylloc),x.push($[1]),I=null,pt?(I=pt,pt=null):(vt=R.yyleng,d=R.yytext,rt=R.yylineno,dt=R.yylloc,Et>0&&Et--);break;case 2:if(W=this.productions_[$[1]][1],H.$=k[k.length-W],H._$={first_line:o[o.length-(W||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(W||1)].first_column,last_column:o[o.length-1].last_column},ci&&(H._$.range=[o[o.length-(W||1)].range[0],o[o.length-1].range[1]]),ft=this.performAction.apply(H,[d,vt,rt,X.yy,$[1],k,o].concat(li)),ft!==void 0)return ft;W&&(x=x.slice(0,-1*W*2),k=k.slice(0,-1*W),o=o.slice(0,-1*W)),x.push(this.productions_[$[1]][0]),k.push(H.$),o.push(H._$),$t=at[x[x.length-2]][x[x.length-1]],x.push($t);break;case 3:return!0}}return!0},"parse")};U.lexer=(function(){return{EOF:1,parseError:n(function(h,A){if(this.yy.parser)this.yy.parser.parseError(h,A);else throw Error(h)},"parseError"),setInput:n(function(h,A){return this.yy=A||this.yy||{},this._input=h,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:n(function(){var h=this._input[0];return this.yytext+=h,this.yyleng++,this.offset++,this.match+=h,this.matched+=h,h.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),h},"input"),unput:n(function(h){var A=h.length,x=h.split(/(?:\r\n?|\n)/g);this._input=h+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-A),this.offset-=A;var u=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),x.length-1&&(this.yylineno-=x.length-1);var k=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:x?(x.length===u.length?this.yylloc.first_column:0)+u[u.length-x.length].length-x[0].length:this.yylloc.first_column-A},this.options.ranges&&(this.yylloc.range=[k[0],k[0]+this.yyleng-A]),this.yyleng=this.yytext.length,this},"unput"),more:n(function(){return this._more=!0,this},"more"),reject:n(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
|
|
4
4
|
`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:n(function(h){this.unput(this.match.slice(h))},"less"),pastInput:n(function(){var h=this.matched.substr(0,this.matched.length-this.match.length);return(h.length>20?"...":"")+h.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:n(function(){var h=this.match;return h.length<20&&(h+=this._input.substr(0,20-h.length)),(h.substr(0,20)+(h.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:n(function(){var h=this.pastInput(),A=Array(h.length+1).join("-");return h+this.upcomingInput()+`
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as a}from"./yacas-KIC_JO6M.js";export{a as yacas};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as a,t as e}from"./z80-kGpw5_me.js";export{e as ez80,a as z80};
|
package/dist/index.html
CHANGED
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
<marimo-server-token data-token="{{ server_token }}" hidden></marimo-server-token>
|
|
67
67
|
<!-- /TODO -->
|
|
68
68
|
<title>{{ title }}</title>
|
|
69
|
-
<script type="module" crossorigin src="./assets/index-
|
|
69
|
+
<script type="module" crossorigin src="./assets/index-BGE_j_ZS.js"></script>
|
|
70
70
|
<link rel="modulepreload" crossorigin href="./assets/preload-helper-TXkS1QI3.js">
|
|
71
71
|
<link rel="modulepreload" crossorigin href="./assets/objects-BlG0ZrO0.js">
|
|
72
72
|
<link rel="modulepreload" crossorigin href="./assets/chunk-LvLJmgfZ.js">
|
|
@@ -134,7 +134,7 @@
|
|
|
134
134
|
<link rel="modulepreload" crossorigin href="./assets/debounce-OiXznToA.js">
|
|
135
135
|
<link rel="modulepreload" crossorigin href="./assets/database-zap-CKO8g4BU.js">
|
|
136
136
|
<link rel="modulepreload" crossorigin href="./assets/main-BNL5rxQw.js">
|
|
137
|
-
<link rel="modulepreload" crossorigin href="./assets/cells-
|
|
137
|
+
<link rel="modulepreload" crossorigin href="./assets/cells-Jr-5Pc9f.js">
|
|
138
138
|
<link rel="modulepreload" crossorigin href="./assets/kbd-C5HnBH5U.js">
|
|
139
139
|
<link rel="modulepreload" crossorigin href="./assets/useInstallPackage-WiYBwhUO.js">
|
|
140
140
|
<link rel="modulepreload" crossorigin href="./assets/alert-dialog-Bb8Lz8ko.js">
|
|
@@ -147,40 +147,40 @@
|
|
|
147
147
|
<link rel="modulepreload" crossorigin href="./assets/usePress-5hBv4sjD.js">
|
|
148
148
|
<link rel="modulepreload" crossorigin href="./assets/input-JxFwu-3G.js">
|
|
149
149
|
<link rel="modulepreload" crossorigin href="./assets/ImperativeModal-fY-ZfT0b.js">
|
|
150
|
-
<link rel="modulepreload" crossorigin href="./assets/cell-link-
|
|
150
|
+
<link rel="modulepreload" crossorigin href="./assets/cell-link-DqNEv3f9.js">
|
|
151
151
|
<link rel="modulepreload" crossorigin href="./assets/config-BJVx3eBW.js">
|
|
152
152
|
<link rel="modulepreload" crossorigin href="./assets/alert-jlwhGxSb.js">
|
|
153
153
|
<link rel="modulepreload" crossorigin href="./assets/chevron-right-BS_NcSch.js">
|
|
154
154
|
<link rel="modulepreload" crossorigin href="./assets/dropdown-menu-dHmZR8bI.js">
|
|
155
155
|
<link rel="modulepreload" crossorigin href="./assets/links-wcQA1Np1.js">
|
|
156
|
-
<link rel="modulepreload" crossorigin href="./assets/useRunCells-
|
|
156
|
+
<link rel="modulepreload" crossorigin href="./assets/useRunCells-CF_V8X2K.js">
|
|
157
157
|
<link rel="modulepreload" crossorigin href="./assets/copy-Bxb1_Gtw.js">
|
|
158
158
|
<link rel="modulepreload" crossorigin href="./assets/copy-3iHFdt22.js">
|
|
159
159
|
<link rel="modulepreload" crossorigin href="./assets/copy-icon-neDQUo4Q.js">
|
|
160
|
-
<link rel="modulepreload" crossorigin href="./assets/RenderHTML-
|
|
161
|
-
<link rel="modulepreload" crossorigin href="./assets/datasource-
|
|
162
|
-
<link rel="modulepreload" crossorigin href="./assets/state-
|
|
160
|
+
<link rel="modulepreload" crossorigin href="./assets/RenderHTML-B9jx7Dsm.js">
|
|
161
|
+
<link rel="modulepreload" crossorigin href="./assets/datasource-AWkkAeiS.js">
|
|
162
|
+
<link rel="modulepreload" crossorigin href="./assets/state-bHyw5u3R.js">
|
|
163
163
|
<link rel="modulepreload" crossorigin href="./assets/hat-glasses-BttHlyvs.js">
|
|
164
164
|
<link rel="modulepreload" crossorigin href="./assets/package-Bxz_8e44.js">
|
|
165
165
|
<link rel="modulepreload" crossorigin href="./assets/sparkles-DUCpRFlS.js">
|
|
166
|
-
<link rel="modulepreload" crossorigin href="./assets/MarimoErrorOutput-
|
|
166
|
+
<link rel="modulepreload" crossorigin href="./assets/MarimoErrorOutput-Bh0y53Du.js">
|
|
167
167
|
<link rel="modulepreload" crossorigin href="./assets/ErrorBoundary-DzTD8LVq.js">
|
|
168
168
|
<link rel="modulepreload" crossorigin href="./assets/eye-off-BOZA7gbn.js">
|
|
169
169
|
<link rel="modulepreload" crossorigin href="./assets/refresh-cw-CYq4mK5a.js">
|
|
170
|
-
<link rel="modulepreload" crossorigin href="./assets/tree-actions-
|
|
170
|
+
<link rel="modulepreload" crossorigin href="./assets/tree-actions-DDveUIHK.js">
|
|
171
171
|
<link rel="modulepreload" crossorigin href="./assets/spinner-D-V4psAa.js">
|
|
172
|
-
<link rel="modulepreload" crossorigin href="./assets/html-to-image-
|
|
173
|
-
<link rel="modulepreload" crossorigin href="./assets/focus-
|
|
172
|
+
<link rel="modulepreload" crossorigin href="./assets/html-to-image-CfjhKLA4.js">
|
|
173
|
+
<link rel="modulepreload" crossorigin href="./assets/focus-C0HXXg3V.js">
|
|
174
174
|
<link rel="modulepreload" crossorigin href="./assets/useAsyncData-Bg5iAViP.js">
|
|
175
|
-
<link rel="modulepreload" crossorigin href="./assets/LazyAnyLanguageCodeMirror-
|
|
175
|
+
<link rel="modulepreload" crossorigin href="./assets/LazyAnyLanguageCodeMirror-DPOEues4.js">
|
|
176
176
|
<link rel="modulepreload" crossorigin href="./assets/micromark-factory-space-Dx_STMJD.js">
|
|
177
|
-
<link rel="modulepreload" crossorigin href="./assets/chunk-5FQGJX7Z-
|
|
178
|
-
<link rel="modulepreload" crossorigin href="./assets/markdown-renderer-
|
|
177
|
+
<link rel="modulepreload" crossorigin href="./assets/chunk-5FQGJX7Z-BEbM01OT.js">
|
|
178
|
+
<link rel="modulepreload" crossorigin href="./assets/markdown-renderer-BgqeO4JR.js">
|
|
179
179
|
<link rel="modulepreload" crossorigin href="./assets/command-Dqxie4gq.js">
|
|
180
180
|
<link rel="modulepreload" crossorigin href="./assets/field-BsxD35VE.js">
|
|
181
181
|
<link rel="modulepreload" crossorigin href="./assets/popover-Bcz1Zikb.js">
|
|
182
182
|
<link rel="modulepreload" crossorigin href="./assets/errors-PgHhDa-M.js">
|
|
183
|
-
<link rel="modulepreload" crossorigin href="./assets/download-
|
|
183
|
+
<link rel="modulepreload" crossorigin href="./assets/download-CQ7iZFJL.js">
|
|
184
184
|
<link rel="modulepreload" crossorigin href="./assets/table-CH2plyy9.js">
|
|
185
185
|
<link rel="modulepreload" crossorigin href="./assets/useIframeCapabilities-j6fR_dBA.js">
|
|
186
186
|
<link rel="modulepreload" crossorigin href="./assets/error-banner-BSxEOIn2.js">
|
|
@@ -201,40 +201,41 @@
|
|
|
201
201
|
<link rel="modulepreload" crossorigin href="./assets/plus-AgXtozBz.js">
|
|
202
202
|
<link rel="modulepreload" crossorigin href="./assets/trash-2-72W0TZ3L.js">
|
|
203
203
|
<link rel="modulepreload" crossorigin href="./assets/react-resizable-panels.browser.esm-Z-MD3n3J.js">
|
|
204
|
-
<link rel="modulepreload" crossorigin href="./assets/JsonOutput-
|
|
204
|
+
<link rel="modulepreload" crossorigin href="./assets/JsonOutput-BM3vve9F.js">
|
|
205
205
|
<link rel="modulepreload" crossorigin href="./assets/chart-no-axes-column-iDRxid4h.js">
|
|
206
206
|
<link rel="modulepreload" crossorigin href="./assets/square-function-DNNRTPQJ.js">
|
|
207
207
|
<link rel="modulepreload" crossorigin href="./assets/spec-C7opZZRp.js">
|
|
208
|
-
<link rel="modulepreload" crossorigin href="./assets/column-preview-
|
|
208
|
+
<link rel="modulepreload" crossorigin href="./assets/column-preview-BUHlI5va.js">
|
|
209
209
|
<link rel="modulepreload" crossorigin href="./assets/icons-CIPE8AIY.js">
|
|
210
|
-
<link rel="modulepreload" crossorigin href="./assets/radio-group-
|
|
211
|
-
<link rel="modulepreload" crossorigin href="./assets/floating-outline-
|
|
210
|
+
<link rel="modulepreload" crossorigin href="./assets/radio-group-rhQpGwU-.js">
|
|
211
|
+
<link rel="modulepreload" crossorigin href="./assets/floating-outline-C6g75zrP.js">
|
|
212
212
|
<link rel="modulepreload" crossorigin href="./assets/switch-OVajJBPR.js">
|
|
213
213
|
<link rel="modulepreload" crossorigin href="./assets/objectWithoutPropertiesLoose-CboCOq4o.js">
|
|
214
214
|
<link rel="modulepreload" crossorigin href="./assets/esm-B30N1GS0.js">
|
|
215
|
-
<link rel="modulepreload" crossorigin href="./assets/readonly-python-code-
|
|
215
|
+
<link rel="modulepreload" crossorigin href="./assets/readonly-python-code-Q_1Y3VyZ.js">
|
|
216
216
|
<link rel="modulepreload" crossorigin href="./assets/file-headphone-DAu6VO6j.js">
|
|
217
217
|
<link rel="modulepreload" crossorigin href="./assets/file-CJH9JNGH.js">
|
|
218
218
|
<link rel="modulepreload" crossorigin href="./assets/image-5XI2VU-q.js">
|
|
219
|
-
<link rel="modulepreload" crossorigin href="./assets/file-icons-
|
|
219
|
+
<link rel="modulepreload" crossorigin href="./assets/file-icons-BAqZR08W.js">
|
|
220
220
|
<link rel="modulepreload" crossorigin href="./assets/events-90X9nql5.js">
|
|
221
221
|
<link rel="modulepreload" crossorigin href="./assets/share-852X_cqy.js">
|
|
222
|
-
<link rel="modulepreload" crossorigin href="./assets/blob-
|
|
222
|
+
<link rel="modulepreload" crossorigin href="./assets/blob-BJREJiQp.js">
|
|
223
223
|
<link rel="modulepreload" crossorigin href="./assets/memoize-Tp7rARFe.js">
|
|
224
224
|
<link rel="modulepreload" crossorigin href="./assets/get-C-qh_et5.js">
|
|
225
225
|
<link rel="modulepreload" crossorigin href="./assets/_baseSet-CsW0tABf.js">
|
|
226
|
-
<link rel="modulepreload" crossorigin href="./assets/state-
|
|
226
|
+
<link rel="modulepreload" crossorigin href="./assets/state-DB_fxbhn.js">
|
|
227
227
|
<link rel="modulepreload" crossorigin href="./assets/label-CqjrpwRC.js">
|
|
228
|
-
<link rel="modulepreload" crossorigin href="./assets/
|
|
228
|
+
<link rel="modulepreload" crossorigin href="./assets/form-C051zAev.js">
|
|
229
|
+
<link rel="modulepreload" crossorigin href="./assets/textarea-DZB2bzVL.js">
|
|
229
230
|
<link rel="modulepreload" crossorigin href="./assets/refresh-ccw-sLaKP2vj.js">
|
|
230
|
-
<link rel="modulepreload" crossorigin href="./assets/form-
|
|
231
|
+
<link rel="modulepreload" crossorigin href="./assets/form-DT44Rmhp.js">
|
|
231
232
|
<link rel="modulepreload" crossorigin href="./assets/renderShortcut-Bl8_FVn8.js">
|
|
232
233
|
<link rel="modulepreload" crossorigin href="./assets/useBoolean-CFj86iac.js">
|
|
233
234
|
<link rel="modulepreload" crossorigin href="./assets/useDeepCompareMemoize-CSMoa-ga.js">
|
|
234
235
|
<link rel="modulepreload" crossorigin href="./assets/types-jdbI9Q8O.js">
|
|
235
|
-
<link rel="modulepreload" crossorigin href="./assets/semaphore-
|
|
236
|
-
<link rel="modulepreload" crossorigin href="./assets/fileToBase64-
|
|
237
|
-
<link rel="modulepreload" crossorigin href="./assets/pathUtils-
|
|
236
|
+
<link rel="modulepreload" crossorigin href="./assets/semaphore-YOr3WMiw.js">
|
|
237
|
+
<link rel="modulepreload" crossorigin href="./assets/fileToBase64-Dgfa7TRQ.js">
|
|
238
|
+
<link rel="modulepreload" crossorigin href="./assets/pathUtils-BbJtW9Mp.js">
|
|
238
239
|
<link rel="modulepreload" crossorigin href="./assets/prop-types-C638SUfx.js">
|
|
239
240
|
<link rel="modulepreload" crossorigin href="./assets/es-gYgfF8y5.js">
|
|
240
241
|
<link rel="modulepreload" crossorigin href="./assets/_hasPath-hMc_3QZy.js">
|
package/package.json
CHANGED
|
@@ -19,9 +19,11 @@ import {
|
|
|
19
19
|
SelectTrigger,
|
|
20
20
|
SelectValue,
|
|
21
21
|
} from "@/components/ui/select";
|
|
22
|
+
import { Textarea } from "@/components/ui/textarea";
|
|
22
23
|
import { toast } from "@/components/ui/use-toast";
|
|
23
24
|
import { useRequestClient } from "@/core/network/requests";
|
|
24
25
|
import type { ListSecretKeysResponse } from "@/core/network/types";
|
|
26
|
+
import { flattenSecretValue } from "../../connections/json-credentials";
|
|
25
27
|
|
|
26
28
|
// dotenv providers should be at the top
|
|
27
29
|
export function sortProviders(providers: ListSecretKeysResponse["keys"]) {
|
|
@@ -44,10 +46,21 @@ export const WriteSecretModal: React.FC<{
|
|
|
44
46
|
onClose: () => void;
|
|
45
47
|
onSuccess: (secretName: string) => void;
|
|
46
48
|
initialValue?: string;
|
|
47
|
-
|
|
49
|
+
multiline?: boolean;
|
|
50
|
+
}> = ({
|
|
51
|
+
providerNames,
|
|
52
|
+
onClose,
|
|
53
|
+
onSuccess,
|
|
54
|
+
initialValue = "",
|
|
55
|
+
multiline = false,
|
|
56
|
+
}) => {
|
|
48
57
|
const { writeSecret } = useRequestClient();
|
|
49
58
|
const [key, setKey] = React.useState("");
|
|
50
|
-
|
|
59
|
+
// Multiline values are flattened so they fit on a single dotenv line;
|
|
60
|
+
// the textarea still wraps visually for readability.
|
|
61
|
+
const [value, setValue] = React.useState(() =>
|
|
62
|
+
multiline ? flattenSecretValue(initialValue) : initialValue,
|
|
63
|
+
);
|
|
51
64
|
const [location, setLocation] = React.useState<string | undefined>(
|
|
52
65
|
providerNames[0],
|
|
53
66
|
);
|
|
@@ -65,7 +78,9 @@ export const WriteSecretModal: React.FC<{
|
|
|
65
78
|
return;
|
|
66
79
|
}
|
|
67
80
|
|
|
68
|
-
|
|
81
|
+
const secretValue = multiline ? flattenSecretValue(value) : value;
|
|
82
|
+
|
|
83
|
+
if (!key || !secretValue || !location) {
|
|
69
84
|
toast({
|
|
70
85
|
title: "Error",
|
|
71
86
|
description: "Please fill in all fields.",
|
|
@@ -77,7 +92,7 @@ export const WriteSecretModal: React.FC<{
|
|
|
77
92
|
try {
|
|
78
93
|
await writeSecret({
|
|
79
94
|
key,
|
|
80
|
-
value,
|
|
95
|
+
value: secretValue,
|
|
81
96
|
provider,
|
|
82
97
|
name: location,
|
|
83
98
|
});
|
|
@@ -120,14 +135,27 @@ export const WriteSecretModal: React.FC<{
|
|
|
120
135
|
</div>
|
|
121
136
|
<div className="grid gap-2">
|
|
122
137
|
<Label htmlFor="value">Value</Label>
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
138
|
+
{multiline ? (
|
|
139
|
+
<Textarea
|
|
140
|
+
id="value"
|
|
141
|
+
value={value}
|
|
142
|
+
onChange={(e) => setValue(flattenSecretValue(e.target.value))}
|
|
143
|
+
required={true}
|
|
144
|
+
className="my-0 font-code text-xs break-all"
|
|
145
|
+
rows={8}
|
|
146
|
+
autoFocus={true}
|
|
147
|
+
autoComplete="off"
|
|
148
|
+
/>
|
|
149
|
+
) : (
|
|
150
|
+
<Input
|
|
151
|
+
id="value"
|
|
152
|
+
type="password"
|
|
153
|
+
value={value}
|
|
154
|
+
onChange={(e) => setValue(e.target.value)}
|
|
155
|
+
required={true}
|
|
156
|
+
autoComplete="off"
|
|
157
|
+
/>
|
|
158
|
+
)}
|
|
131
159
|
{/* http is prone to man-in-the-middle */}
|
|
132
160
|
{isHttpUrl() && (
|
|
133
161
|
<FormDescription>
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/* Copyright 2026 Marimo. All rights reserved. */
|
|
2
|
+
import { describe, expect, test } from "vitest";
|
|
3
|
+
import {
|
|
4
|
+
escapePythonString,
|
|
5
|
+
flattenSecretValue,
|
|
6
|
+
looksLikeJson,
|
|
7
|
+
resolveJsonCredential,
|
|
8
|
+
} from "../json-credentials";
|
|
9
|
+
import { prefixPath } from "../paths";
|
|
10
|
+
import { prefixSecret } from "../secrets";
|
|
11
|
+
|
|
12
|
+
describe("resolveJsonCredential", () => {
|
|
13
|
+
test("resolves a file path", () => {
|
|
14
|
+
expect(
|
|
15
|
+
resolveJsonCredential(prefixPath("/etc/secrets/key.json"), (v) => v),
|
|
16
|
+
).toEqual({ kind: "path", path: "/etc/secrets/key.json" });
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
test("resolves a secret via printSecret", () => {
|
|
20
|
+
expect(
|
|
21
|
+
resolveJsonCredential(prefixSecret("MY_CREDS"), () => "_my_creds"),
|
|
22
|
+
).toEqual({ kind: "json", expr: "json.loads(_my_creds)" });
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
test("resolves a raw JSON literal", () => {
|
|
26
|
+
expect(
|
|
27
|
+
resolveJsonCredential('{"type":"service_account"}', (v) => v),
|
|
28
|
+
).toEqual({
|
|
29
|
+
kind: "json",
|
|
30
|
+
expr: 'json.loads(r"""{"type":"service_account"}""")',
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
test("uses a raw string so escaped newlines in a private_key survive", () => {
|
|
35
|
+
const credentialsJson =
|
|
36
|
+
'{"private_key":"-----BEGIN PRIVATE KEY-----\\nabc123\\n-----END PRIVATE KEY-----\\n"}';
|
|
37
|
+
const credential = resolveJsonCredential(credentialsJson, (v) => v);
|
|
38
|
+
expect(credential).toEqual({
|
|
39
|
+
kind: "json",
|
|
40
|
+
expr: `json.loads(r"""${credentialsJson}""")`,
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
test("prefers path over secret-looking values", () => {
|
|
45
|
+
// A path-prefixed value wins even if the path text starts with "env:".
|
|
46
|
+
expect(
|
|
47
|
+
resolveJsonCredential(prefixPath("env:not-a-secret"), (v) => v),
|
|
48
|
+
).toEqual({ kind: "path", path: "env:not-a-secret" });
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
describe("looksLikeJson", () => {
|
|
53
|
+
test("detects objects and arrays, including partial paste", () => {
|
|
54
|
+
expect(looksLikeJson('{"type":"service_account"}')).toBe(true);
|
|
55
|
+
expect(looksLikeJson(" {")).toBe(true);
|
|
56
|
+
expect(looksLikeJson("[1, 2]")).toBe(true);
|
|
57
|
+
expect(looksLikeJson("/etc/secrets/key.json")).toBe(false);
|
|
58
|
+
expect(looksLikeJson("MY_SECRET")).toBe(false);
|
|
59
|
+
expect(looksLikeJson("")).toBe(false);
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
test("drives the path vs. create-secret combobox actions exclusively", () => {
|
|
63
|
+
// These mirror how SECRET_TEXTAREA_RENDERER wires allowCustomValue /
|
|
64
|
+
// allowCreateSecret, so a path and a JSON paste never both offer (or
|
|
65
|
+
// both hide) the wrong action.
|
|
66
|
+
const allowCustomValue = (search: string) => !looksLikeJson(search);
|
|
67
|
+
const allowCreateSecret = (search: string) =>
|
|
68
|
+
!search || looksLikeJson(search);
|
|
69
|
+
|
|
70
|
+
expect(allowCustomValue("/etc/secrets/key.json")).toBe(true);
|
|
71
|
+
expect(allowCreateSecret("/etc/secrets/key.json")).toBe(false);
|
|
72
|
+
|
|
73
|
+
expect(allowCustomValue('{"type":"service_account"}')).toBe(false);
|
|
74
|
+
expect(allowCreateSecret('{"type":"service_account"}')).toBe(true);
|
|
75
|
+
|
|
76
|
+
expect(allowCreateSecret("")).toBe(true);
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
describe("flattenSecretValue", () => {
|
|
81
|
+
test("minifies valid JSON", () => {
|
|
82
|
+
expect(
|
|
83
|
+
flattenSecretValue(`{
|
|
84
|
+
"type": "service_account",
|
|
85
|
+
"project_id": "test"
|
|
86
|
+
}`),
|
|
87
|
+
).toBe('{"type":"service_account","project_id":"test"}');
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
test("strips newlines from non-JSON", () => {
|
|
91
|
+
expect(flattenSecretValue("line1\nline2\r\nline3")).toBe("line1line2line3");
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
test("returns empty for blank input", () => {
|
|
95
|
+
expect(flattenSecretValue("")).toBe("");
|
|
96
|
+
expect(flattenSecretValue(" \n ")).toBe("");
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
describe("escapePythonString", () => {
|
|
101
|
+
test("escapes backslashes and quotes", () => {
|
|
102
|
+
expect(escapePythonString('C:\\tmp\\"creds".json')).toBe(
|
|
103
|
+
'C:\\\\tmp\\\\\\"creds\\".json',
|
|
104
|
+
);
|
|
105
|
+
expect(escapePythonString("/etc/secrets/key.json")).toBe(
|
|
106
|
+
"/etc/secrets/key.json",
|
|
107
|
+
);
|
|
108
|
+
});
|
|
109
|
+
|
|
110
|
+
test("escapes control characters", () => {
|
|
111
|
+
expect(escapePythonString("line1\nline2")).toBe("line1\\nline2");
|
|
112
|
+
expect(escapePythonString("a\tb\rc")).toBe("a\\tb\\rc");
|
|
113
|
+
});
|
|
114
|
+
});
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/* Copyright 2026 Marimo. All rights reserved. */
|
|
2
|
+
import { describe, expect, test } from "vitest";
|
|
3
|
+
import {
|
|
4
|
+
isPath,
|
|
5
|
+
prefixPath,
|
|
6
|
+
type PathPlaceholder,
|
|
7
|
+
unprefixPath,
|
|
8
|
+
} from "../paths";
|
|
9
|
+
|
|
10
|
+
describe("paths", () => {
|
|
11
|
+
test("isPath", () => {
|
|
12
|
+
expect(isPath("path:/etc/secrets/key.json")).toBe(true);
|
|
13
|
+
expect(isPath("path:")).toBe(true);
|
|
14
|
+
expect(isPath("/etc/secrets/key.json")).toBe(false);
|
|
15
|
+
expect(isPath("env:MY_SECRET")).toBe(false);
|
|
16
|
+
expect(isPath("")).toBe(false);
|
|
17
|
+
expect(isPath(null)).toBe(false);
|
|
18
|
+
expect(isPath(undefined)).toBe(false);
|
|
19
|
+
expect(isPath(123)).toBe(false);
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
test("prefixPath", () => {
|
|
23
|
+
expect(prefixPath("/etc/secrets/key.json")).toBe(
|
|
24
|
+
"path:/etc/secrets/key.json",
|
|
25
|
+
);
|
|
26
|
+
expect(prefixPath("")).toBe("path:");
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
test("unprefixPath", () => {
|
|
30
|
+
expect(unprefixPath("path:/etc/secrets/key.json" as PathPlaceholder)).toBe(
|
|
31
|
+
"/etc/secrets/key.json",
|
|
32
|
+
);
|
|
33
|
+
expect(unprefixPath("path:" as PathPlaceholder)).toBe("");
|
|
34
|
+
// Only strips the leading prefix — path may itself contain "path:".
|
|
35
|
+
expect(unprefixPath("path:/tmp/path:weird.json" as PathPlaceholder)).toBe(
|
|
36
|
+
"/tmp/path:weird.json",
|
|
37
|
+
);
|
|
38
|
+
});
|
|
39
|
+
});
|
|
@@ -21,9 +21,13 @@ import { maybeAddMarimoImport } from "@/core/cells/add-missing-import";
|
|
|
21
21
|
import { useCellActions } from "@/core/cells/cells";
|
|
22
22
|
import { useLastFocusedCellId } from "@/core/cells/focus";
|
|
23
23
|
import { autoInstantiateAtom } from "@/core/config/config";
|
|
24
|
-
import {
|
|
24
|
+
import {
|
|
25
|
+
ENV_RENDERER,
|
|
26
|
+
SECRET_TEXTAREA_RENDERER,
|
|
27
|
+
SecretsProvider,
|
|
28
|
+
} from "./form-renderers";
|
|
25
29
|
|
|
26
|
-
const RENDERERS: FormRenderer[] = [ENV_RENDERER];
|
|
30
|
+
const RENDERERS: FormRenderer[] = [ENV_RENDERER, SECRET_TEXTAREA_RENDERER];
|
|
27
31
|
|
|
28
32
|
/**
|
|
29
33
|
* Grid layout for provider/database selector buttons.
|
package/src/components/editor/connections/database/__tests__/__snapshots__/as-code.test.ts.snap
CHANGED
|
@@ -4,7 +4,7 @@ exports[`generateDatabaseCode > basic connections > bigquery 1`] = `
|
|
|
4
4
|
"import json
|
|
5
5
|
import sqlmodel
|
|
6
6
|
|
|
7
|
-
credentials = json.loads("""{"type": "service_account", "project_id": "test"}""")
|
|
7
|
+
credentials = json.loads(r"""{"type": "service_account", "project_id": "test"}""")
|
|
8
8
|
engine = sqlmodel.create_engine(f"bigquery://my-project/my_dataset", credentials_info=credentials)"
|
|
9
9
|
`;
|
|
10
10
|
|
|
@@ -388,10 +388,26 @@ import sqlmodel
|
|
|
388
388
|
|
|
389
389
|
_project = os.environ.get("ENV_PROJECT")
|
|
390
390
|
_dataset = os.environ.get("ENV_DATASET")
|
|
391
|
-
credentials = json.loads("""{"type": "service_account", "project_id": "test"}""")
|
|
391
|
+
credentials = json.loads(r"""{"type": "service_account", "project_id": "test"}""")
|
|
392
392
|
engine = sqlmodel.create_engine(f"bigquery://{_project}/{_dataset}", credentials_info=credentials)"
|
|
393
393
|
`;
|
|
394
394
|
|
|
395
|
+
exports[`generateDatabaseCode > connections with secrets > bigquery with credentials_json as a file path 1`] = `
|
|
396
|
+
"import sqlmodel
|
|
397
|
+
|
|
398
|
+
engine = sqlmodel.create_engine(f"bigquery://my-project/my_dataset", credentials_path="/etc/secrets/bigquery.json")"
|
|
399
|
+
`;
|
|
400
|
+
|
|
401
|
+
exports[`generateDatabaseCode > connections with secrets > bigquery with credentials_json as secret 1`] = `
|
|
402
|
+
"import json
|
|
403
|
+
import os
|
|
404
|
+
import sqlmodel
|
|
405
|
+
|
|
406
|
+
_credentials_json = os.environ.get("BIGQUERY_CREDENTIALS_JSON")
|
|
407
|
+
credentials = json.loads(_credentials_json)
|
|
408
|
+
engine = sqlmodel.create_engine(f"bigquery://my-project/my_dataset", credentials_info=credentials)"
|
|
409
|
+
`;
|
|
410
|
+
|
|
395
411
|
exports[`generateDatabaseCode > connections with secrets > clickhouse with all connection details as secrets 1`] = `
|
|
396
412
|
"import clickhouse_connect
|
|
397
413
|
import os
|
|
@@ -493,7 +509,7 @@ exports[`generateDatabaseCode > edge cases > bigquery with long credentials 1`]
|
|
|
493
509
|
"import json
|
|
494
510
|
import sqlmodel
|
|
495
511
|
|
|
496
|
-
credentials = json.loads("""xxxxxxxxxx""")
|
|
512
|
+
credentials = json.loads(r"""xxxxxxxxxx""")
|
|
497
513
|
engine = sqlmodel.create_engine(f"bigquery://my-project/my_dataset", credentials_info=credentials)"
|
|
498
514
|
`;
|
|
499
515
|
|
|
@@ -735,7 +751,7 @@ exports[`generateDatabaseCode > security cases > bigquery with malformed JSON 1`
|
|
|
735
751
|
"import json
|
|
736
752
|
import sqlmodel
|
|
737
753
|
|
|
738
|
-
credentials = json.loads("""{"type": "service_account", "project_id": "test"""")
|
|
754
|
+
credentials = json.loads(r"""{"type": "service_account", "project_id": "test"""")
|
|
739
755
|
engine = sqlmodel.create_engine(f"bigquery://my-project/my_dataset", credentials_info=credentials)"
|
|
740
756
|
`;
|
|
741
757
|
|
|
@@ -743,7 +759,7 @@ exports[`generateDatabaseCode > security cases > bigquery with malformed JSON 2`
|
|
|
743
759
|
"import json
|
|
744
760
|
import sqlalchemy
|
|
745
761
|
|
|
746
|
-
credentials = json.loads("""{"type": "service_account", "project_id": "test"""")
|
|
762
|
+
credentials = json.loads(r"""{"type": "service_account", "project_id": "test"""")
|
|
747
763
|
engine = sqlalchemy.create_engine(f"bigquery://my-project/my_dataset", credentials_info=credentials)"
|
|
748
764
|
`;
|
|
749
765
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/* Copyright 2026 Marimo. All rights reserved. */
|
|
2
2
|
import { describe, expect, it } from "vitest";
|
|
3
|
+
import { prefixPath } from "../../paths";
|
|
3
4
|
import { prefixSecret } from "../../secrets";
|
|
4
5
|
import { type ConnectionLibrary, generateDatabaseCode } from "../as-code";
|
|
5
6
|
import type { DatabaseConnection } from "../schemas";
|
|
@@ -383,6 +384,22 @@ describe("generateDatabaseCode", () => {
|
|
|
383
384
|
},
|
|
384
385
|
"sqlmodel",
|
|
385
386
|
],
|
|
387
|
+
[
|
|
388
|
+
"bigquery with credentials_json as secret",
|
|
389
|
+
{
|
|
390
|
+
...bigqueryConnection,
|
|
391
|
+
credentials_json: prefixSecret("BIGQUERY_CREDENTIALS_JSON"),
|
|
392
|
+
},
|
|
393
|
+
"sqlmodel",
|
|
394
|
+
],
|
|
395
|
+
[
|
|
396
|
+
"bigquery with credentials_json as a file path",
|
|
397
|
+
{
|
|
398
|
+
...bigqueryConnection,
|
|
399
|
+
credentials_json: prefixPath("/etc/secrets/bigquery.json"),
|
|
400
|
+
},
|
|
401
|
+
"sqlmodel",
|
|
402
|
+
],
|
|
386
403
|
[
|
|
387
404
|
"clickhouse with all connection details as secrets",
|
|
388
405
|
{
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import dedent from "string-dedent";
|
|
4
4
|
import { assertNever } from "@/utils/assertNever";
|
|
5
|
+
import { escapePythonString, resolveJsonCredential } from "../json-credentials";
|
|
5
6
|
import { isSecret, unprefixSecret } from "../secrets";
|
|
6
7
|
import { type DatabaseConnection, DatabaseConnectionSchema } from "./schemas";
|
|
7
8
|
|
|
@@ -415,8 +416,14 @@ ${formatUrlParams(params, (inner) => ` ${inner}`)},
|
|
|
415
416
|
}
|
|
416
417
|
|
|
417
418
|
class BigQueryGenerator extends CodeGenerator<"bigquery"> {
|
|
419
|
+
private get credential() {
|
|
420
|
+
return resolveJsonCredential(this.connection.credentials_json, (v) =>
|
|
421
|
+
this.secrets.print("credentials_json", v),
|
|
422
|
+
);
|
|
423
|
+
}
|
|
424
|
+
|
|
418
425
|
generateImports(): string[] {
|
|
419
|
-
return ["import json"];
|
|
426
|
+
return this.credential.kind === "path" ? [] : ["import json"];
|
|
420
427
|
}
|
|
421
428
|
|
|
422
429
|
generateConnectionCode(): string {
|
|
@@ -428,9 +435,16 @@ class BigQueryGenerator extends CodeGenerator<"bigquery"> {
|
|
|
428
435
|
"dataset",
|
|
429
436
|
this.connection.dataset,
|
|
430
437
|
);
|
|
438
|
+
const credential = this.credential;
|
|
439
|
+
|
|
440
|
+
if (credential.kind === "path") {
|
|
441
|
+
return dedent(`
|
|
442
|
+
engine = ${this.orm}.create_engine(f"bigquery://${project}/${dataset}", credentials_path="${escapePythonString(credential.path)}")
|
|
443
|
+
`);
|
|
444
|
+
}
|
|
431
445
|
|
|
432
446
|
return dedent(`
|
|
433
|
-
credentials =
|
|
447
|
+
credentials = ${credential.expr}
|
|
434
448
|
engine = ${this.orm}.create_engine(f"bigquery://${project}/${dataset}", credentials_info=credentials)
|
|
435
449
|
`);
|
|
436
450
|
}
|
|
@@ -295,11 +295,12 @@ export const BigQueryConnectionSchema = z
|
|
|
295
295
|
optionRegex: "(bigquery.?dataset|dataset)",
|
|
296
296
|
}),
|
|
297
297
|
),
|
|
298
|
-
credentials_json: z
|
|
299
|
-
.
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
),
|
|
298
|
+
credentials_json: z.string().describe(
|
|
299
|
+
FieldOptions.of({
|
|
300
|
+
label: "Credentials JSON",
|
|
301
|
+
special: "secret_textarea",
|
|
302
|
+
}),
|
|
303
|
+
),
|
|
303
304
|
})
|
|
304
305
|
.describe(FieldOptions.of({ direction: "two-columns" }));
|
|
305
306
|
|