@marimo-team/frontend 0.24.1-dev81 → 0.24.1-dev83
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-DMQfH9wD.js → CellStatus-GcHBZKLm.js} +1 -1
- package/dist/assets/{JsonOutput-B7sDhGzR.js → JsonOutput-CUJlEdsN.js} +8 -8
- package/dist/assets/{MarimoErrorOutput-C0vk393J.js → MarimoErrorOutput-DCAezqcJ.js} +2 -2
- package/dist/assets/{RenderHTML-BnMaGpV8.js → RenderHTML-D9-75ltP.js} +1 -1
- package/dist/assets/{RunButton-nocIODpS.js → RunButton-plSsbubG.js} +1 -1
- package/dist/assets/{add-cell-with-ai-B_TSaqjJ.js → add-cell-with-ai-Cfby28hZ.js} +14 -14
- package/dist/assets/{add-connection-dialog-DOuojDa-.js → add-connection-dialog-By0i0Fq5.js} +42 -42
- package/dist/assets/{agent-panel-CkKCGjDp.js → agent-panel-Cf482jaA.js} +4 -4
- package/dist/assets/ai-model-dropdown-DMfaGQ8o.js +3 -0
- package/dist/assets/app-config-button-93unbEYx.js +1 -0
- package/dist/assets/{blob-CYM8xQsK.js → blob-yxfhyyvD.js} +1 -1
- package/dist/assets/cell-editor-CZmqG6aB.js +21 -0
- package/dist/assets/{cell-link-DCOAqVkE.js → cell-link-hHrWcozB.js} +1 -1
- package/dist/assets/{cells-C6lBv8kg.js → cells-yuYDzbAy.js} +51 -51
- package/dist/assets/{chat-display-B6GBZDq8.js → chat-display-CnhvADgL.js} +1 -1
- package/dist/assets/{chat-panel-wWuBXhXw.js → chat-panel-CdE97AxM.js} +2 -2
- package/dist/assets/{chat-ui-CQ7A3qdB.js → chat-ui-BD3rpULw.js} +2 -2
- package/dist/assets/{column-preview-CatwdUda.js → column-preview-BEmcYaKl.js} +1 -1
- package/dist/assets/{command-palette-DcPM_WiO.js → command-palette-BGRRw0sn.js} +1 -1
- package/dist/assets/{common-B4aMxphz.js → common-Bs2kaOs2.js} +1 -1
- package/dist/assets/{components-D8-ffQsq.js → components-ByyAzQxP.js} +1 -1
- package/dist/assets/{datasource-D-_jFtGs.js → datasource-DeZYq5UY.js} +2 -2
- package/dist/assets/{dependency-graph-panel-BQli6zxh.js → dependency-graph-panel-g10osAFc.js} +4 -4
- package/dist/assets/{documentation-panel-_QE3nPOg.js → documentation-panel-CZ1mKkDh.js} +1 -1
- package/dist/assets/{download-Cqjqrhzo.js → download-D1crMjD8.js} +1 -1
- package/dist/assets/edit-page-Bk1sT7Wb.js +9 -0
- package/dist/assets/{error-entries-c5sIySli.js → error-entries-B6XTLRyE.js} +1 -1
- package/dist/assets/{error-panel-CXKrWK_u.js → error-panel-lexB3L6f.js} +1 -1
- package/dist/assets/{file-explorer-panel-BZiAb4x_.js → file-explorer-panel-DHRH2J-3.js} +1 -1
- package/dist/assets/{file-icons-uUY_hGYm.js → file-icons-Dx3v6lMu.js} +1 -1
- package/dist/assets/{file-name-input-DWUKg4LS.js → file-name-input-DzL8D_7x.js} +1 -1
- package/dist/assets/{floating-outline-DhGtHg6T.js → floating-outline-3rQEbxxk.js} +1 -1
- package/dist/assets/{home-page-Bka_7H02.js → home-page-Dnz4tfZB.js} +1 -1
- package/dist/assets/index-BID9w87A.js +29 -0
- package/dist/assets/layout-qHVpnnQT.js +9 -0
- package/dist/assets/{logs-panel-ragZa1sf.js → logs-panel-CSbUhhRo.js} +1 -1
- package/dist/assets/{markdown-renderer-B-uA_6mP.js → markdown-renderer-BgUTGtM0.js} +1 -1
- package/dist/assets/{name-cell-input-gC1flbyT.js → name-cell-input-pEE4FGAL.js} +1 -1
- package/dist/assets/{outline-panel-D7H7bhOh.js → outline-panel-BgnjEQWg.js} +1 -1
- package/dist/assets/{packages-panel-BZnsUm4S.js → packages-panel-BprfUOzZ.js} +1 -1
- package/dist/assets/panel-accordion-state-vpqEc3Kd.js +1 -0
- package/dist/assets/panels-3h7Cf8xJ.js +4 -0
- package/dist/assets/{process-output-DQQ8T5gv.js → process-output-siRm_lza.js} +1 -1
- package/dist/assets/{readonly-code-display-Bc0VX9i6.js → readonly-code-display-CLWV76FT.js} +1 -1
- package/dist/assets/readonly-python-code-Bor9b9pV.js +1 -0
- package/dist/assets/reveal-component-DNPksvzT.js +1069 -0
- package/dist/assets/run-page-C4aONLoP.js +1 -0
- package/dist/assets/{scratchpad-panel-BJHlMBZV.js → scratchpad-panel-BQSoRQvQ.js} +1 -1
- package/dist/assets/session-panel-DB5qEYqt.js +1 -0
- package/dist/assets/skeleton-BSxwEE0h.js +1 -0
- package/dist/assets/{snippets-panel-2jq36DdG.js → snippets-panel-B8Yi81tz.js} +1 -1
- package/dist/assets/state-D1N9_41P.js +3 -0
- package/dist/assets/state-O8w98G11.js +1 -0
- package/dist/assets/{tracing-91_akEkv.js → tracing-DuLkr7ts.js} +1 -1
- package/dist/assets/{tracing-panel-BvE81RYx.js → tracing-panel-CeLKVG8M.js} +2 -2
- package/dist/assets/{tree-actions-CGkbUSfG.js → tree-actions-Bh-Nnaub.js} +1 -1
- package/dist/assets/useAddCell-_JRYhAFd.js +1 -0
- package/dist/assets/useBoolean-Cu7Eado1.js +1 -0
- package/dist/assets/{useCellActionButton-cv6xOsnc.js → useCellActionButton-Bi8Lnv3F.js} +1 -1
- package/dist/assets/{useDeleteCell-DB-bhhnO.js → useDeleteCell-CBQiavzs.js} +1 -1
- package/dist/assets/{useDependencyPanelTab-BDnVzNV-.js → useDependencyPanelTab-BOn3UJ07.js} +1 -1
- package/dist/assets/useNotebookActions--pblpIWF.js +10 -0
- package/dist/assets/{useRunCells-GCTS1YFv.js → useRunCells-BFQfLlUl.js} +1 -1
- package/dist/assets/{useSplitCell-DhT9BA2_.js → useSplitCell-Ig9P6lAn.js} +1 -1
- package/dist/index.html +20 -20
- package/package.json +1 -1
- package/src/__tests__/mount.test.ts +54 -2
- package/src/components/editor/__tests__/viewer-banner.test.tsx +1 -1
- package/src/components/editor/actions/export-dialog/__tests__/export-notebook.test.ts +9 -0
- package/src/components/editor/actions/export-dialog/export-notebook.ts +8 -1
- package/src/components/editor/actions/export-dialog/use-export-dialog.ts +2 -0
- package/src/components/editor/actions/useNotebookActions.tsx +1 -1
- package/src/components/editor/controls/__tests__/notebook-menu-dropdown.test.tsx +1 -1
- package/src/components/editor/renderers/__tests__/cells-renderer.test.tsx +1 -1
- package/src/components/editor/renderers/cells-renderer.tsx +15 -28
- package/src/components/editor/renderers/grid-layout/__tests__/plugin.test.ts +42 -0
- package/src/components/editor/renderers/grid-layout/plugin.tsx +20 -10
- package/src/components/editor/renderers/layout-select.tsx +1 -1
- package/src/components/editor/renderers/plugins.ts +7 -1
- package/src/components/editor/renderers/slides-layout/__tests__/plugin.test.ts +49 -15
- package/src/components/editor/renderers/slides-layout/slides-layout.tsx +16 -2
- package/src/components/editor/renderers/slides-layout/types.ts +15 -11
- package/src/components/editor/renderers/types.ts +5 -5
- package/src/components/editor/viewer-banner.tsx +1 -1
- package/src/components/pages/run-page.tsx +16 -7
- package/src/components/slides/__tests__/reveal-component.test.ts +33 -8
- package/src/components/slides/__tests__/speaker-view.test.ts +27 -0
- package/src/components/slides/reveal-component.tsx +110 -45
- package/src/components/slides/speaker-view.ts +22 -0
- package/src/components/static-html/share-modal.tsx +2 -0
- package/src/core/cells/__tests__/document-changes.test.ts +343 -26
- package/src/core/cells/document-changes.ts +181 -4
- package/src/core/export/hooks.ts +2 -0
- package/src/core/export/layout.ts +9 -0
- package/src/core/kernel/handlers.ts +7 -16
- package/src/core/kernel/state.ts +2 -0
- package/src/core/layout/__tests__/layout.test.ts +95 -0
- package/src/core/layout/layout.ts +59 -65
- package/src/core/layout/state.ts +121 -0
- package/src/core/meta/__tests__/code-visibility.test.tsx +28 -0
- package/src/core/meta/code-visibility.ts +3 -1
- package/src/core/run-app.tsx +6 -2
- package/src/core/saving/__tests__/save-component.test.ts +31 -1
- package/src/core/saving/save-component.tsx +39 -29
- package/src/core/saving/state.ts +1 -1
- package/src/core/static/download-html.ts +2 -0
- package/src/core/websocket/__tests__/useMarimoKernelConnection.hook.test.tsx +47 -14
- package/src/core/websocket/useMarimoKernelConnection.tsx +7 -2
- package/src/mount.tsx +24 -6
- package/dist/assets/ai-model-dropdown-CfWMIzjl.js +0 -3
- package/dist/assets/app-config-button-ii-Hj5CZ.js +0 -1
- package/dist/assets/cell-editor-BVb6iKbw.js +0 -21
- package/dist/assets/edit-page-RuyN164g.js +0 -9
- package/dist/assets/index-ChbtcNW2.js +0 -29
- package/dist/assets/layout-Uv1ZP5XB.js +0 -9
- package/dist/assets/panel-accordion-state-BLU7OiMD.js +0 -1
- package/dist/assets/panels-B3Y6fue9.js +0 -4
- package/dist/assets/readonly-python-code-D2HXwAfT.js +0 -1
- package/dist/assets/reveal-component-BN1C8zFu.js +0 -1069
- package/dist/assets/run-page-ByVvsH9G.js +0 -1
- package/dist/assets/session-panel-CdCKWAOf.js +0 -1
- package/dist/assets/skeleton-DirOIQrj.js +0 -1
- package/dist/assets/state-C9O-2hQL.js +0 -3
- package/dist/assets/state-DyxPdcEa.js +0 -1
- package/dist/assets/types-CoHi_MQq.js +0 -1
- package/dist/assets/useAddCell-DqvY2ulx.js +0 -1
- package/dist/assets/useBoolean-DWBCpKfT.js +0 -1
- package/dist/assets/useNotebookActions-Dxp4gTEa.js +0 -10
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{t}from"./react-CBDbhulC.js";import{
|
|
2
|
-
`)}},Te=class extends Y{generateImports(){return[]}generateConnectionCode(){let e=this.connection.ssl?`, connect_args={'sslmode': 'require'}`:``,t=this.secrets.printPassword(this.connection.password,`POSTGRES_PASSWORD`,!0),n=this.secrets.printInFString(`username`,this.connection.username),r=this.secrets.printInFString(`host`,this.connection.host),i=this.secrets.printInFString(`port`,this.connection.port),a=this.secrets.printInFString(`database`,this.connection.database);return
|
|
1
|
+
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{t}from"./react-CBDbhulC.js";import{An as n,Ft as r,Hi as i,It as a,Ln as o,Lt as s,Rt as c,Si as l,Tt as u,qo as d}from"./cells-yuYDzbAy.js";import{Cn as f,In as p,kt as m,ln as h,zt as g}from"./schemas-aTUejmFi.js";import{t as _}from"./compiler-runtime-CYIjoINj.js";import{t as v}from"./cn-ldLVeaqm.js";import{t as y}from"./jsx-runtime-B74pBk57.js";import{i as ee,n as te,r as ne,t as re}from"./tabs-c6mpccpH.js";import{i as b,t as ie}from"./tooltip-D7dq6bnc.js";import{r as x}from"./strings-CpYReX2Q.js";import{t as ae}from"./components-ib4asSo7.js";import{E as oe,M as se,O as ce,T as le,a as S,j as ue,l as de,p as C,r as w,s as T,w as fe}from"./write-secret-modal-lNU_7c2x.js";import{t as pe}from"./plus-C4J9gIE1.js";import{t as me}from"./useIframeCapabilities-DEpTCh1Q.js";var E=e(t(),1),D=_();function O(){return p().optional().describe(n.of({label:`Password`,inputType:`password`,optionRegex:`(password|passwd|pgpassword|db.?pass(word)?)`}))}function k(e,t){let r=p();return r=t?r.nonempty():r.optional(),r=r.describe(n.of({label:e||`Token`,inputType:`password`,optionRegex:`(token|api.?key|access.?token|auth.?token|(^|_)pat(_|$))`})),r}function A(){return p().optional().describe(n.of({label:`Warehouse Name`,optionRegex:`(warehouse|snowflake.?warehouse)`}))}function j(e,t){let r=p();return r=t?r.nonempty():r.optional(),r.describe(n.of({label:e||`URI`,optionRegex:`(uri|url|connection.?string|database.?url|jdbc)`}))}function M(e){return p().nonempty().describe(n.of({label:e||`Host`,optionRegex:`^(?!.*(kubernetes|gpg)).*(host(name)?|pghost|db.?host|database.?host|mysql.?host|postgres.?host|server.?host)`}))}function N(){return p().describe(n.of({label:`Database`,optionRegex:`(database|db.?name|pgdatabase|^DB$|^DATABASE$)`}))}function he(){return p().describe(n.of({label:`Schema`,optionRegex:`(^SCHEMA$|db.?schema|postgres.?schema|pg.?schema|_SCHEMA$)`}))}function P(){return p().nonempty().describe(n.of({label:`Username`,optionRegex:`(username|pguser|db.?user|^USER$|_USER$)`}))}function F(e){let t=d().describe(n.of({label:`Port`,inputType:`number`,placeholder:e?.toString()})).transform(Number).refine(e=>e>=0&&e<=65535,{message:`Port must be between 0 and 65535`});return e===void 0?t:t.default(e)}function ge(){return m().default(!1).describe(n.of({label:`Read Only`}))}var _e=f({type:h(`postgres`),host:M(),port:F(5432).optional(),database:N(),username:P(),password:O(),ssl:m().default(!1).describe(n.of({label:`Use SSL`}))}).describe(n.of({direction:`two-columns`})),ve=f({type:h(`mysql`),host:M(),port:F(3306),database:N(),username:P(),password:O(),ssl:m().default(!1).describe(n.of({label:`Use SSL`}))}).describe(n.of({direction:`two-columns`})),ye=f({type:h(`sqlite`),database:N().describe(n.of({label:`Database Path`}))}).describe(n.of({direction:`two-columns`})),I=f({type:h(`duckdb`),database:N().describe(n.of({label:`Database Path`})),read_only:ge()}).describe(n.of({direction:`two-columns`})),L=f({type:h(`motherduck`),database:N().default(`my_db`).describe(n.of({label:`Database Name`})),token:k()}).describe(n.of({direction:`two-columns`})),R=f({type:h(`snowflake`),account:p().nonempty().describe(n.of({label:`Account`,optionRegex:`(snowflake.?account|^SNOWFLAKE_ACCOUNT$|account.?id)`})),warehouse:p().optional().describe(n.of({label:`Warehouse`,optionRegex:`(snowflake.?warehouse|warehouse)`})),database:N(),schema:p().optional().describe(n.of({label:`Schema`,optionRegex:`(snowflake.?schema|^SCHEMA$|_SCHEMA$)`})),role:p().optional().describe(n.of({label:`Role`})),authType:g(`type`,[f({type:h(`Password`),username:P(),password:O(),enable_mfa:m().default(!1).describe(n.of({label:`Enable MFA (Duo Push)`}))}),f({type:h(`SSO (Browser)`),username:P()}),f({type:h(`Key Pair`),username:P(),private_key_path:p().nonempty().describe(n.of({label:`Private Key Path`,placeholder:`/path/to/rsa_key.p8`})),private_key_passphrase:p().optional().describe(n.of({label:`Private Key Passphrase`,inputType:`password`,optionRegex:`(passphrase|private.?key.?passphrase|key.?passphrase)`}))}),f({type:h(`OAuth / PAT`),token:k(`Token`,!0)})]).default({type:`Password`,username:`username`,enable_mfa:!1}).describe(n.of({special:`tabs`}))}).describe(n.of({direction:`two-columns`})),z=f({type:h(`bigquery`),project:p().nonempty().describe(n.of({label:`Project ID`,optionRegex:`(bigquery.?project|gcp.?project|google.?cloud.?project|project.?id)`})),dataset:p().nonempty().describe(n.of({label:`Dataset`,optionRegex:`(bigquery.?dataset|dataset)`})),credentials_json:p().describe(n.of({label:`Credentials JSON`,special:`secret_textarea`}))}).describe(n.of({direction:`two-columns`})),B=f({type:h(`clickhouse_connect`),host:M(),port:F(8123).optional(),username:P(),password:O(),secure:m().default(!1).describe(n.of({label:`Use HTTPs`})),proxy_path:p().optional().describe(n.of({label:`Proxy Path`,placeholder:`/clickhouse`}))}).describe(n.of({direction:`two-columns`})),V=f({type:h(`timeplus`),host:M().default(`localhost`),port:F(8123).optional(),username:P().default(`default`),password:O().default(``)}).describe(n.of({direction:`two-columns`})),H=f({type:h(`chdb`),database:N().describe(n.of({label:`Database Path`})),read_only:ge()}).describe(n.of({direction:`two-columns`})),U=f({type:h(`trino`),host:M(),port:F(8080),database:N(),schema:he().optional(),username:P(),password:O(),async_support:m().default(!1).describe(n.of({label:`Async Support`}))}).describe(n.of({direction:`two-columns`})),W=f({type:h(`iceberg`),name:p().describe(n.of({label:`Catalog Name`})),catalog:g(`type`,[f({type:h(`REST`),warehouse:A(),uri:p().optional().describe(n.of({label:`URI`,placeholder:`https://`,optionRegex:`(uri|url|connection.?string|database.?url|jdbc)`})),token:k()}),f({type:h(`SQL`),warehouse:A(),uri:p().optional().describe(n.of({label:`URI`,placeholder:`jdbc:iceberg://host:port/database`,optionRegex:`(uri|url|connection.?string|database.?url|jdbc)`}))}),f({type:h(`Hive`),warehouse:A(),uri:j()}),f({type:h(`Glue`),warehouse:A(),uri:j()}),f({type:h(`DynamoDB`),"dynamodb.profile-name":p().optional().describe(n.of({label:`Profile Name`})),"dynamodb.region":p().optional().describe(n.of({label:`Region`})),"dynamodb.access-key-id":p().optional().describe(n.of({label:`Access Key ID`,inputType:`password`,optionRegex:`(access.?key.?id|aws.?access.?key)`})),"dynamodb.secret-access-key":p().optional().describe(n.of({label:`Secret Access Key`,inputType:`password`,optionRegex:`(secret.?access.?key|aws.?secret)`})),"dynamodb.session-token":p().optional().describe(n.of({label:`Session Token`,inputType:`password`,optionRegex:`(session.?token|aws.?session)`}))})]).default({type:`REST`,token:void 0}).describe(n.of({special:`tabs`}))}),G=f({type:h(`datafusion`),sessionContext:m().optional().describe(n.of({label:`Use Session Context`}))}),K=f({type:h(`pyspark`),host:M().optional(),port:F().optional()}),q=f({type:h(`redshift`),host:M(),port:F(5439),connectionType:g(`type`,[f({type:h(`IAM credentials`),region:p().describe(n.of({label:`Region`})),aws_access_key_id:p().nonempty().describe(n.of({label:`AWS Access Key ID`,inputType:`password`,optionRegex:`(access.?key.?id|aws.?access.?key)`})),aws_secret_access_key:p().nonempty().describe(n.of({label:`AWS Secret Access Key`,inputType:`password`,optionRegex:`(secret.?access.?key|aws.?secret)`})),aws_session_token:p().optional().describe(n.of({label:`AWS Session Token`,inputType:`password`,optionRegex:`(session.?token|aws.?session)`}))}),f({type:h(`DB credentials`),user:P(),password:O()})]).default({type:`IAM credentials`,aws_access_key_id:``,aws_secret_access_key:``,region:``}),database:N()}).describe(n.of({direction:`two-columns`})),J=f({type:h(`databricks`),access_token:k(`Access Token`,!0),server_hostname:M(`Server Hostname`),http_path:j(`HTTP Path`,!0),catalog:p().optional().describe(n.of({label:`Catalog`})),schema:p().optional().describe(n.of({label:`Schema`}))}).describe(n.of({direction:`two-columns`})),be=f({type:h(`supabase`),host:M(),port:F(5432).optional(),database:N(),username:P(),password:O(),disable_client_pooling:m().default(!1).describe(n.of({label:`Disable Client-Side Pooling`}))}).describe(n.of({direction:`two-columns`})),xe=g(`type`,[_e,ve,ye,I,L,R,z,B,V,H,U,W,G,K,q,J,be]),Se={sqlmodel:`SQLModel`,sqlalchemy:`SQLAlchemy`,duckdb:`DuckDB`,clickhouse_connect:`ClickHouse Connect`,chdb:`chDB`,pyiceberg:`PyIceberg`,ibis:`Ibis`,motherduck:`MotherDuck`,redshift:`Redshift`,databricks:`Databricks`},Y=class{connection;orm;secrets;constructor(e,t,n){this.connection=e,this.orm=t,this.secrets=n}get imports(){let e=new Set(this.generateImports());switch(this.orm){case`sqlalchemy`:e.add(`import sqlalchemy`);break;case`sqlmodel`:e.add(`import sqlmodel`);break;case`duckdb`:e.add(`import duckdb`);break;case`ibis`:e.add(`import ibis`)}return e}},Ce=e=>`_${e}`,we=class{secrets={};get imports(){return Object.keys(this.secrets).length===0?new Set:new Set([`import os`])}print(e,t,n){if(e=Ce(e),T(t)){let r=de(t),i=n?`os.environ.get("${r}", "${n}")`:`os.environ.get("${r}")`;return this.secrets[e]=i,e}if(n!=null){let r=`os.environ.get("${t}", "${n}")`;return this.secrets[e]=r,e}return typeof t==`number`||typeof t==`number`?`${t}`:typeof t==`boolean`?X(t):t?`"${t}"`:``}printInFString(e,t,n){if(t===void 0)return``;if(typeof t==`number`)return`${t}`;if(typeof t==`boolean`)return X(t);let r=this.print(e,t,n);return r.startsWith(`"`)&&r.endsWith(`"`)?r.slice(1,-1):`{${r}}`}printPassword(e,t,n,r){let i=n?this.printInFString.bind(this):this.print.bind(this);return T(e)?i(r||`password`,e):i(r||`password`,t,e)}getSecrets(){return this.secrets}formatSecrets(){return Object.keys(this.secrets).length===0?``:Object.entries(this.secrets).map(([e,t])=>`${e} = ${t}`).join(`
|
|
2
|
+
`)}},Te=class extends Y{generateImports(){return[]}generateConnectionCode(){let e=this.connection.ssl?`, connect_args={'sslmode': 'require'}`:``,t=this.secrets.printPassword(this.connection.password,`POSTGRES_PASSWORD`,!0),n=this.secrets.printInFString(`username`,this.connection.username),r=this.secrets.printInFString(`host`,this.connection.host),i=this.secrets.printInFString(`port`,this.connection.port),a=this.secrets.printInFString(`database`,this.connection.database);return l(`
|
|
3
3
|
DATABASE_URL = f"postgresql://${n}:${t}@${r}:${i}/${a}"
|
|
4
4
|
engine = ${this.orm}.create_engine(DATABASE_URL${e})
|
|
5
|
-
`)}},Ee=class extends Y{generateImports(){return[]}generateConnectionCode(){let e=this.connection.ssl?`, connect_args={'ssl': {'ssl-mode': 'preferred'}}`:``,t=this.secrets.printPassword(this.connection.password,`MYSQL_PASSWORD`,!0),n=this.secrets.printInFString(`database`,this.connection.database),r=this.secrets.printInFString(`username`,this.connection.username),i=this.secrets.printInFString(`host`,this.connection.host),a=this.secrets.printInFString(`port`,this.connection.port);return
|
|
5
|
+
`)}},Ee=class extends Y{generateImports(){return[]}generateConnectionCode(){let e=this.connection.ssl?`, connect_args={'ssl': {'ssl-mode': 'preferred'}}`:``,t=this.secrets.printPassword(this.connection.password,`MYSQL_PASSWORD`,!0),n=this.secrets.printInFString(`database`,this.connection.database),r=this.secrets.printInFString(`username`,this.connection.username),i=this.secrets.printInFString(`host`,this.connection.host),a=this.secrets.printInFString(`port`,this.connection.port);return l(`
|
|
6
6
|
DATABASE_URL = f"mysql+pymysql://${r}:${t}@${i}:${a}/${n}"
|
|
7
7
|
engine = ${this.orm}.create_engine(DATABASE_URL${e})
|
|
8
|
-
`)}},De=class extends Y{generateImports(){return[]}generateConnectionCode(){let e=this.connection.database?this.secrets.printInFString(`database`,this.connection.database):``,t=e.startsWith(`{`)&&e.endsWith(`}`)?`DATABASE_URL = f"sqlite:///${e}"`:`DATABASE_URL = "sqlite:///${e}"`;return
|
|
8
|
+
`)}},De=class extends Y{generateImports(){return[]}generateConnectionCode(){let e=this.connection.database?this.secrets.printInFString(`database`,this.connection.database):``,t=e.startsWith(`{`)&&e.endsWith(`}`)?`DATABASE_URL = f"sqlite:///${e}"`:`DATABASE_URL = "sqlite:///${e}"`;return l(`
|
|
9
9
|
${t}
|
|
10
10
|
engine = ${this.orm}.create_engine(DATABASE_URL)
|
|
11
|
-
`)}},Oe=class extends Y{generateImports(){return[`from snowflake.sqlalchemy import URL`]}generateConnectionCode(){let{authType:e,account:t,database:n,warehouse:r,schema:i,role:a}=this.connection,o={account:this.secrets.print(`account`,t),database:this.secrets.print(`database`,n),warehouse:r?this.secrets.print(`warehouse`,r):void 0,schema:i?this.secrets.print(`schema`,i):void 0,role:a?this.secrets.print(`role`,a):void 0};switch(e.type){case`Password`:{let t=this.secrets.printPassword(e.password,`SNOWFLAKE_PASSWORD`,!1),n={...o,user:this.secrets.print(`user`,e.username),password:t};return e.enable_mfa?
|
|
11
|
+
`)}},Oe=class extends Y{generateImports(){return[`from snowflake.sqlalchemy import URL`]}generateConnectionCode(){let{authType:e,account:t,database:n,warehouse:r,schema:i,role:a}=this.connection,o={account:this.secrets.print(`account`,t),database:this.secrets.print(`database`,n),warehouse:r?this.secrets.print(`warehouse`,r):void 0,schema:i?this.secrets.print(`schema`,i):void 0,role:a?this.secrets.print(`role`,a):void 0};switch(e.type){case`Password`:{let t=this.secrets.printPassword(e.password,`SNOWFLAKE_PASSWORD`,!1),n={...o,user:this.secrets.print(`user`,e.username),password:t};return e.enable_mfa?l(`
|
|
12
12
|
engine = ${this.orm}.create_engine(
|
|
13
13
|
URL(
|
|
14
14
|
${Z(n,e=>` ${e}`)},
|
|
15
15
|
),
|
|
16
16
|
connect_args={"authenticator": "username_password_mfa"},
|
|
17
17
|
)
|
|
18
|
-
`):
|
|
18
|
+
`):l(`
|
|
19
19
|
engine = ${this.orm}.create_engine(
|
|
20
20
|
URL(
|
|
21
21
|
${Z(n,e=>` ${e}`)},
|
|
22
22
|
)
|
|
23
23
|
)
|
|
24
|
-
`)}case`SSO (Browser)`:{let t={...o,user:this.secrets.print(`user`,e.username),authenticator:`"externalbrowser"`};return
|
|
24
|
+
`)}case`SSO (Browser)`:{let t={...o,user:this.secrets.print(`user`,e.username),authenticator:`"externalbrowser"`};return l(`
|
|
25
25
|
engine = ${this.orm}.create_engine(
|
|
26
26
|
URL(
|
|
27
27
|
${Z(t,e=>` ${e}`)},
|
|
28
28
|
)
|
|
29
29
|
)
|
|
30
|
-
`)}case`Key Pair`:{let t={...o,user:this.secrets.print(`user`,e.username)},n=this.secrets.print(`private_key_path`,e.private_key_path),r=e.private_key_passphrase?this.secrets.printPassword(e.private_key_passphrase,`SNOWFLAKE_PRIVATE_KEY_PASSPHRASE`,!1):void 0,i=[` "authenticator": "SNOWFLAKE_JWT"`,` "private_key_file": ${n}`];return r&&i.push(` "private_key_file_pwd": ${r}`),
|
|
30
|
+
`)}case`Key Pair`:{let t={...o,user:this.secrets.print(`user`,e.username)},n=this.secrets.print(`private_key_path`,e.private_key_path),r=e.private_key_passphrase?this.secrets.printPassword(e.private_key_passphrase,`SNOWFLAKE_PRIVATE_KEY_PASSPHRASE`,!1):void 0,i=[` "authenticator": "SNOWFLAKE_JWT"`,` "private_key_file": ${n}`];return r&&i.push(` "private_key_file_pwd": ${r}`),l(`
|
|
31
31
|
engine = ${this.orm}.create_engine(
|
|
32
32
|
URL(
|
|
33
33
|
${Z(t,e=>` ${e}`)},
|
|
@@ -37,130 +37,130 @@ ${i.join(`,
|
|
|
37
37
|
`)},
|
|
38
38
|
},
|
|
39
39
|
)
|
|
40
|
-
`)}case`OAuth / PAT`:{let t=this.secrets.printPassword(e.token,`SNOWFLAKE_TOKEN`,!1),n={...o,authenticator:`"oauth"`,token:t};return
|
|
40
|
+
`)}case`OAuth / PAT`:{let t=this.secrets.printPassword(e.token,`SNOWFLAKE_TOKEN`,!1),n={...o,authenticator:`"oauth"`,token:t};return l(`
|
|
41
41
|
engine = ${this.orm}.create_engine(
|
|
42
42
|
URL(
|
|
43
43
|
${Z(n,e=>` ${e}`)},
|
|
44
44
|
)
|
|
45
45
|
)
|
|
46
|
-
`)}default:x(e)}}},ke=class extends Y{get credential(){return S(this.connection.credentials_json,e=>this.secrets.print(`credentials_json`,e))}generateImports(){return this.credential.kind===`path`?[]:[`import json`]}generateConnectionCode(){let e=this.secrets.printInFString(`project`,this.connection.project),t=this.secrets.printInFString(`dataset`,this.connection.dataset),n=this.credential;return n.kind===`path`?
|
|
46
|
+
`)}default:x(e)}}},ke=class extends Y{get credential(){return S(this.connection.credentials_json,e=>this.secrets.print(`credentials_json`,e))}generateImports(){return this.credential.kind===`path`?[]:[`import json`]}generateConnectionCode(){let e=this.secrets.printInFString(`project`,this.connection.project),t=this.secrets.printInFString(`dataset`,this.connection.dataset),n=this.credential;return n.kind===`path`?l(`
|
|
47
47
|
engine = ${this.orm}.create_engine(f"bigquery://${e}/${t}", credentials_path="${w(n.path)}")
|
|
48
|
-
`):
|
|
48
|
+
`):l(`
|
|
49
49
|
credentials = ${n.expr}
|
|
50
50
|
engine = ${this.orm}.create_engine(f"bigquery://${e}/${t}", credentials_info=credentials)
|
|
51
|
-
`)}},Ae=class extends Y{generateImports(){return[]}generateConnectionCode(){let e=this.secrets.printInFString(`database`,this.connection.database||`:memory:`);return
|
|
51
|
+
`)}},Ae=class extends Y{generateImports(){return[]}generateConnectionCode(){let e=this.secrets.printInFString(`database`,this.connection.database||`:memory:`);return l(`
|
|
52
52
|
DATABASE_URL = "${e}"
|
|
53
53
|
engine = ${this.orm}.connect(DATABASE_URL, read_only=${X(this.connection.read_only)})
|
|
54
|
-
`)}},je=class extends Y{generateImports(){return[]}generateConnectionCode(){let e=this.secrets.printInFString(`database`,this.connection.database);if(!this.connection.token)return
|
|
54
|
+
`)}},je=class extends Y{generateImports(){return[]}generateConnectionCode(){let e=this.secrets.printInFString(`database`,this.connection.database);if(!this.connection.token)return l(`
|
|
55
55
|
conn = duckdb.connect("md:${e}")
|
|
56
|
-
`);let t=this.secrets.printPassword(this.connection.token,`MOTHERDUCK_TOKEN`,!1);return
|
|
56
|
+
`);let t=this.secrets.printPassword(this.connection.token,`MOTHERDUCK_TOKEN`,!1);return l(`
|
|
57
57
|
conn = duckdb.connect("md:${e}", config={"motherduck_token": ${t}})
|
|
58
|
-
`)}},Me=class extends Y{generateImports(){return[`import clickhouse_connect`]}generateConnectionCode(){let e=this.secrets.printPassword(this.connection.password,`CLICKHOUSE_PASSWORD`,!1),t={host:this.secrets.print(`host`,this.connection.host),user:this.secrets.print(`user`,this.connection.username),secure:this.secrets.print(`secure`,this.connection.secure),port:this.connection.port?this.secrets.print(`port`,this.connection.port):void 0,password:this.connection.password?e:void 0,proxy_path:this.connection.proxy_path?this.secrets.print(`proxy_path`,this.connection.proxy_path):void 0};return
|
|
58
|
+
`)}},Me=class extends Y{generateImports(){return[`import clickhouse_connect`]}generateConnectionCode(){let e=this.secrets.printPassword(this.connection.password,`CLICKHOUSE_PASSWORD`,!1),t={host:this.secrets.print(`host`,this.connection.host),user:this.secrets.print(`user`,this.connection.username),secure:this.secrets.print(`secure`,this.connection.secure),port:this.connection.port?this.secrets.print(`port`,this.connection.port):void 0,password:this.connection.password?e:void 0,proxy_path:this.connection.proxy_path?this.secrets.print(`proxy_path`,this.connection.proxy_path):void 0};return l(`
|
|
59
59
|
engine = ${this.orm}.get_client(
|
|
60
60
|
${Z(t,e=>` ${e}`)},
|
|
61
61
|
)
|
|
62
|
-
`)}},Ne=class extends Y{generateImports(){return[]}generateConnectionCode(){let e=this.secrets.printPassword(this.connection.password,`TIMEPLUS_PASSWORD`,!0),t=this.secrets.printInFString(`username`,this.connection.username),n=this.secrets.printInFString(`host`,this.connection.host),r=this.secrets.printInFString(`port`,this.connection.port);return
|
|
62
|
+
`)}},Ne=class extends Y{generateImports(){return[]}generateConnectionCode(){let e=this.secrets.printPassword(this.connection.password,`TIMEPLUS_PASSWORD`,!0),t=this.secrets.printInFString(`username`,this.connection.username),n=this.secrets.printInFString(`host`,this.connection.host),r=this.secrets.printInFString(`port`,this.connection.port);return l(`
|
|
63
63
|
DATABASE_URL = f"timeplus://${t}:${e}@${n}:${r}"
|
|
64
64
|
engine = ${this.orm}.create_engine(DATABASE_URL)
|
|
65
|
-
`)}},Pe=class extends Y{generateImports(){return[`import chdb`]}generateConnectionCode(){let e=this.secrets.print(`database`,this.connection.database)||`""`;return
|
|
65
|
+
`)}},Pe=class extends Y{generateImports(){return[`import chdb`]}generateConnectionCode(){let e=this.secrets.print(`database`,this.connection.database)||`""`;return l(`
|
|
66
66
|
engine = ${this.orm}.connect(${e}, read_only=${X(this.connection.read_only)})
|
|
67
|
-
`)}},Fe=class extends Y{generateImports(){return this.connection.async_support?[`import aiotrino`]:[`import trino.sqlalchemy`]}generateConnectionCode(){let e=this.connection.async_support?`aiotrino`:`trino`,t=this.connection.schema?`/${this.connection.schema}`:``,n=this.secrets.printInFString(`username`,this.connection.username),r=this.secrets.printInFString(`host`,this.connection.host),i=this.secrets.printInFString(`port`,this.connection.port),a=this.secrets.printInFString(`database`,this.connection.database),o=this.secrets.printPassword(this.connection.password,`TRINO_PASSWORD`,!0);return
|
|
67
|
+
`)}},Fe=class extends Y{generateImports(){return this.connection.async_support?[`import aiotrino`]:[`import trino.sqlalchemy`]}generateConnectionCode(){let e=this.connection.async_support?`aiotrino`:`trino`,t=this.connection.schema?`/${this.connection.schema}`:``,n=this.secrets.printInFString(`username`,this.connection.username),r=this.secrets.printInFString(`host`,this.connection.host),i=this.secrets.printInFString(`port`,this.connection.port),a=this.secrets.printInFString(`database`,this.connection.database),o=this.secrets.printPassword(this.connection.password,`TRINO_PASSWORD`,!0);return l(`
|
|
68
68
|
engine = ${this.orm}.create_engine(f"${e}://${n}:${o}@${r}:${i}/${a}${t}")
|
|
69
|
-
`)}},Ie=class extends Y{getCatalogOptions(){return Object.fromEntries(Object.entries(this.connection.catalog).filter(([e,t])=>t!=null&&t!==``&&e!==`type`))}generateImports(){if(Object.keys(this.getCatalogOptions()).length===0)return[`from pyiceberg.catalog import load_catalog`];switch(this.connection.catalog.type){case`REST`:return[`from pyiceberg.catalog.rest import RestCatalog`];case`SQL`:return[`from pyiceberg.catalog.sql import SqlCatalog`];case`Hive`:return[`from pyiceberg.catalog.hive import HiveCatalog`];case`Glue`:return[`from pyiceberg.catalog.glue import GlueCatalog`];case`DynamoDB`:return[`from pyiceberg.catalog.dynamodb import DynamoDBCatalog`];default:x(this.connection.catalog)}}generateConnectionCode(){let e=`"${this.connection.name}"`,t=this.getCatalogOptions();if(Object.keys(t).length===0)return`catalog = load_catalog(${e})`;for(let[e,n]of Object.entries(t))T(n)?t[e]=this.secrets.print(e,n):typeof n==`string`&&(t[e]=`"${n}"`);let n=We(t,e=>` ${e}`);switch(this.connection.catalog.type){case`REST`:return
|
|
69
|
+
`)}},Ie=class extends Y{getCatalogOptions(){return Object.fromEntries(Object.entries(this.connection.catalog).filter(([e,t])=>t!=null&&t!==``&&e!==`type`))}generateImports(){if(Object.keys(this.getCatalogOptions()).length===0)return[`from pyiceberg.catalog import load_catalog`];switch(this.connection.catalog.type){case`REST`:return[`from pyiceberg.catalog.rest import RestCatalog`];case`SQL`:return[`from pyiceberg.catalog.sql import SqlCatalog`];case`Hive`:return[`from pyiceberg.catalog.hive import HiveCatalog`];case`Glue`:return[`from pyiceberg.catalog.glue import GlueCatalog`];case`DynamoDB`:return[`from pyiceberg.catalog.dynamodb import DynamoDBCatalog`];default:x(this.connection.catalog)}}generateConnectionCode(){let e=`"${this.connection.name}"`,t=this.getCatalogOptions();if(Object.keys(t).length===0)return`catalog = load_catalog(${e})`;for(let[e,n]of Object.entries(t))T(n)?t[e]=this.secrets.print(e,n):typeof n==`string`&&(t[e]=`"${n}"`);let n=We(t,e=>` ${e}`);switch(this.connection.catalog.type){case`REST`:return l(`
|
|
70
70
|
catalog = RestCatalog(
|
|
71
71
|
${e},
|
|
72
72
|
**{\n${n}
|
|
73
73
|
},
|
|
74
74
|
)
|
|
75
|
-
`);case`SQL`:return
|
|
75
|
+
`);case`SQL`:return l(`
|
|
76
76
|
catalog = SqlCatalog(
|
|
77
77
|
${e},
|
|
78
78
|
**{\n${n}
|
|
79
79
|
},
|
|
80
80
|
)
|
|
81
|
-
`);case`Hive`:return
|
|
81
|
+
`);case`Hive`:return l(`
|
|
82
82
|
catalog = HiveCatalog(
|
|
83
83
|
${e},
|
|
84
84
|
**{\n${n}
|
|
85
85
|
},
|
|
86
86
|
)
|
|
87
|
-
`);case`Glue`:return
|
|
87
|
+
`);case`Glue`:return l(`
|
|
88
88
|
catalog = GlueCatalog(
|
|
89
89
|
${e},
|
|
90
90
|
**{\n${n}
|
|
91
91
|
},
|
|
92
92
|
)
|
|
93
|
-
`);case`DynamoDB`:return
|
|
93
|
+
`);case`DynamoDB`:return l(`
|
|
94
94
|
catalog = DynamoDBCatalog(
|
|
95
95
|
${e},
|
|
96
96
|
**{\n${n}
|
|
97
97
|
},
|
|
98
98
|
)
|
|
99
|
-
`);default:x(this.connection.catalog)}}},Le=class extends Y{generateImports(){return[`from datafusion import SessionContext`]}generateConnectionCode(){return this.connection.sessionContext?
|
|
99
|
+
`);default:x(this.connection.catalog)}}},Le=class extends Y{generateImports(){return[`from datafusion import SessionContext`]}generateConnectionCode(){return this.connection.sessionContext?l(`
|
|
100
100
|
ctx = SessionContext()
|
|
101
101
|
# Sample table
|
|
102
102
|
_ = ctx.from_pydict({"a": [1, 2, 3]}, "my_table")
|
|
103
103
|
|
|
104
104
|
con = ibis.datafusion.connect(ctx)
|
|
105
|
-
`):
|
|
105
|
+
`):l(`
|
|
106
106
|
con = ibis.datafusion.connect()
|
|
107
|
-
`)}},Re=class extends Y{generateImports(){return[`from pyspark.sql import SparkSession`]}generateConnectionCode(){if(this.connection.host||this.connection.port){let e=this.secrets.printInFString(`host`,this.connection.host),t=this.secrets.printInFString(`port`,this.connection.port);return
|
|
107
|
+
`)}},Re=class extends Y{generateImports(){return[`from pyspark.sql import SparkSession`]}generateConnectionCode(){if(this.connection.host||this.connection.port){let e=this.secrets.printInFString(`host`,this.connection.host),t=this.secrets.printInFString(`port`,this.connection.port);return l(`
|
|
108
108
|
session = SparkSession.builder.remote(f"sc://${e}:${t}").getOrCreate()
|
|
109
109
|
con = ibis.pyspark.connect(session)
|
|
110
|
-
`)}return
|
|
110
|
+
`)}return l(`
|
|
111
111
|
con = ibis.pyspark.connect()
|
|
112
|
-
`)}},ze=class extends Y{generateImports(){return[`import redshift_connector`]}generateConnectionCode(){let e=this.secrets.print(`host`,this.connection.host),t=this.secrets.print(`port`,this.connection.port),n=this.secrets.print(`database`,this.connection.database);if(this.connection.connectionType.type===`IAM credentials`){let r=this.secrets.print(`aws_access_key_id`,this.connection.connectionType.aws_access_key_id),i=this.secrets.print(`aws_secret_access_key`,this.connection.connectionType.aws_secret_access_key),a=this.connection.connectionType.aws_session_token?this.secrets.print(`aws_session_token`,this.connection.connectionType.aws_session_token):void 0,o={iam:!0,host:e,port:t,region:`"${this.connection.connectionType.region}"`,database:n,access_key_id:r,secret_access_key:i,...a&&{session_token:a}};return
|
|
112
|
+
`)}},ze=class extends Y{generateImports(){return[`import redshift_connector`]}generateConnectionCode(){let e=this.secrets.print(`host`,this.connection.host),t=this.secrets.print(`port`,this.connection.port),n=this.secrets.print(`database`,this.connection.database);if(this.connection.connectionType.type===`IAM credentials`){let r=this.secrets.print(`aws_access_key_id`,this.connection.connectionType.aws_access_key_id),i=this.secrets.print(`aws_secret_access_key`,this.connection.connectionType.aws_secret_access_key),a=this.connection.connectionType.aws_session_token?this.secrets.print(`aws_session_token`,this.connection.connectionType.aws_session_token):void 0,o={iam:!0,host:e,port:t,region:`"${this.connection.connectionType.region}"`,database:n,access_key_id:r,secret_access_key:i,...a&&{session_token:a}};return l(`
|
|
113
113
|
con = redshift_connector.connect(
|
|
114
114
|
${Z(o,e=>` ${e}`)},
|
|
115
115
|
)
|
|
116
|
-
`)}let r=this.connection.connectionType.user?this.secrets.print(`user`,this.connection.connectionType.user):void 0,i=this.connection.connectionType.password?this.secrets.printPassword(this.connection.connectionType.password,`REDSHIFT_PASSWORD`,!1):void 0,a={host:e,port:t,database:n,...r&&{user:r},...i&&{password:i}};return
|
|
116
|
+
`)}let r=this.connection.connectionType.user?this.secrets.print(`user`,this.connection.connectionType.user):void 0,i=this.connection.connectionType.password?this.secrets.printPassword(this.connection.connectionType.password,`REDSHIFT_PASSWORD`,!1):void 0,a={host:e,port:t,database:n,...r&&{user:r},...i&&{password:i}};return l(`
|
|
117
117
|
con = redshift_connector.connect(
|
|
118
118
|
${Z(a,e=>` ${e}`)},
|
|
119
119
|
)
|
|
120
|
-
`)}},Be=class extends Y{generateImports(){return[]}generateConnectionCode(){let e=this.orm!==`ibis`,t=this.secrets.printPassword(this.connection.access_token,`DATABRICKS_ACCESS_TOKEN`,e,`access_token`),n=this.secrets.printPassword(this.connection.server_hostname,`DATABRICKS_SERVER_HOSTNAME`,e,`server_hostname`),r=this.secrets.printPassword(this.connection.http_path,`DATABRICKS_HTTP_PATH`,e,`http_path`),i=this.connection.catalog?this.secrets.printInFString(`catalog`,this.connection.catalog):void 0,a=this.connection.schema?this.secrets.printInFString(`schema`,this.connection.schema):void 0,o=`databricks://token:${t}@${n}?http_path=${r}`;if(i&&(o+=`&catalog=${i}`),a&&(o+=`&schema=${a}`),this.orm===`ibis`){let e=i?`\n catalog=${i},`:``,o=a?`\n schema=${a},`:``;return
|
|
120
|
+
`)}},Be=class extends Y{generateImports(){return[]}generateConnectionCode(){let e=this.orm!==`ibis`,t=this.secrets.printPassword(this.connection.access_token,`DATABRICKS_ACCESS_TOKEN`,e,`access_token`),n=this.secrets.printPassword(this.connection.server_hostname,`DATABRICKS_SERVER_HOSTNAME`,e,`server_hostname`),r=this.secrets.printPassword(this.connection.http_path,`DATABRICKS_HTTP_PATH`,e,`http_path`),i=this.connection.catalog?this.secrets.printInFString(`catalog`,this.connection.catalog):void 0,a=this.connection.schema?this.secrets.printInFString(`schema`,this.connection.schema):void 0,o=`databricks://token:${t}@${n}?http_path=${r}`;if(i&&(o+=`&catalog=${i}`),a&&(o+=`&schema=${a}`),this.orm===`ibis`){let e=i?`\n catalog=${i},`:``,o=a?`\n schema=${a},`:``;return l(`
|
|
121
121
|
engine = ibis.databricks.connect(
|
|
122
122
|
server_hostname=${n},
|
|
123
123
|
http_path=${r},${e}${o}
|
|
124
124
|
access_token=${t}
|
|
125
125
|
)
|
|
126
|
-
`)}return
|
|
126
|
+
`)}return l(`
|
|
127
127
|
DATABASE_URL = f"${o}"
|
|
128
128
|
engine = ${this.orm}.create_engine(DATABASE_URL)
|
|
129
|
-
`)}},Ve=class extends Y{generateImports(){return this.connection.disable_client_pooling?[`from sqlalchemy.pool import NullPool`]:[]}generateConnectionCode(){let e=this.secrets.printPassword(this.connection.password,`SUPABASE_PASSWORD`,!0),t=this.secrets.printInFString(`username`,this.connection.username),n=this.secrets.printInFString(`host`,this.connection.host),r=this.secrets.printInFString(`port`,this.connection.port),i=this.secrets.printInFString(`database`,this.connection.database),a=this.connection.disable_client_pooling?`, poolclass=NullPool`:``;return
|
|
129
|
+
`)}},Ve=class extends Y{generateImports(){return this.connection.disable_client_pooling?[`from sqlalchemy.pool import NullPool`]:[]}generateConnectionCode(){let e=this.secrets.printPassword(this.connection.password,`SUPABASE_PASSWORD`,!0),t=this.secrets.printInFString(`username`,this.connection.username),n=this.secrets.printInFString(`host`,this.connection.host),r=this.secrets.printInFString(`port`,this.connection.port),i=this.secrets.printInFString(`database`,this.connection.database),a=this.connection.disable_client_pooling?`, poolclass=NullPool`:``;return l(`
|
|
130
130
|
DATABASE_URL = f"postgresql+psycopg2://${t}:${e}@${n}:${r}/${i}?sslmode=require"
|
|
131
131
|
engine = ${this.orm}.create_engine(DATABASE_URL${a})
|
|
132
132
|
`)}},He=class{secrets=new we;createGenerator(e,t){switch(e.type){case`postgres`:return new Te(e,t,this.secrets);case`mysql`:return new Ee(e,t,this.secrets);case`sqlite`:return new De(e,t,this.secrets);case`snowflake`:return new Oe(e,t,this.secrets);case`bigquery`:return new ke(e,t,this.secrets);case`duckdb`:return new Ae(e,t,this.secrets);case`motherduck`:return new je(e,t,this.secrets);case`clickhouse_connect`:return new Me(e,t,this.secrets);case`timeplus`:return new Ne(e,t,this.secrets);case`chdb`:return new Pe(e,t,this.secrets);case`trino`:return new Fe(e,t,this.secrets);case`iceberg`:return new Ie(e,t,this.secrets);case`datafusion`:return new Le(e,t,this.secrets);case`pyspark`:return new Re(e,t,this.secrets);case`redshift`:return new ze(e,t,this.secrets);case`databricks`:return new Be(e,t,this.secrets);case`supabase`:return new Ve(e,t,this.secrets);default:x(e)}}};function Ue(e,t){if(!(t in Se))throw Error(`Unsupported library: ${t}`);xe.parse(e);let n=new He,r=n.createGenerator(e,t),i=r.generateConnectionCode(),a=n.secrets,o=[...new Set([...a.imports,...r.imports])].toSorted();o.push(``);let s=a.formatSecrets();return s&&o.push(s),o.push(i.trim()),o.join(`
|
|
133
133
|
`)}function X(e){return e.toString().charAt(0).toUpperCase()+e.toString().slice(1)}function Z(e,t){return Object.entries(e).filter(([,e])=>e!=null&&e!==``).map(([e,n])=>t(typeof n==`boolean`?`${e}=${X(n)}`:`${e}=${n}`)).join(`,
|
|
134
134
|
`)}function We(e,t){return Object.entries(e).filter(([,e])=>e!=null&&e!==``).map(([e,n])=>{let r=`"${e}"`;return t(typeof n==`boolean`?`${r}: ${X(n)}`:`${r}: ${n}`)}).join(`,
|
|
135
|
-
`)}var Q=y(),Ge=[{name:`PostgreSQL`,schema:_e,color:`#336791`,logo:`postgres`,connectionLibraries:{libraries:[`sqlalchemy`,`sqlmodel`],preferred:`sqlalchemy`}},{name:`MySQL`,schema:ve,color:`#00758F`,logo:`mysql`,connectionLibraries:{libraries:[`sqlalchemy`,`sqlmodel`],preferred:`sqlalchemy`}},{name:`SQLite`,schema:ye,color:`#003B57`,logo:`sqlite`,connectionLibraries:{libraries:[`sqlalchemy`,`sqlmodel`],preferred:`sqlalchemy`}},{name:`DuckDB`,schema:I,color:`#FFD700`,logo:`duckdb`,connectionLibraries:{libraries:[`duckdb`],preferred:`duckdb`}},{name:`MotherDuck`,schema:L,color:`#ff9538`,logo:`motherduck`,connectionLibraries:{libraries:[`duckdb`],preferred:`duckdb`}},{name:`Snowflake`,schema:R,color:`#29B5E8`,logo:`snowflake`,connectionLibraries:{libraries:[`sqlalchemy`,`sqlmodel`],preferred:`sqlalchemy`}},{name:`ClickHouse`,schema:B,color:`#2C2C1D`,logo:`clickhouse`,connectionLibraries:{libraries:[`clickhouse_connect`],preferred:`clickhouse_connect`}},{name:`Timeplus`,schema:V,color:`#B83280`,logo:`timeplus`,connectionLibraries:{libraries:[`sqlalchemy`,`sqlmodel`],preferred:`sqlalchemy`}},{name:`BigQuery`,schema:z,color:`#4285F4`,logo:`bigquery`,connectionLibraries:{libraries:[`sqlalchemy`,`sqlmodel`],preferred:`sqlalchemy`}},{name:`ClickHouse Embedded`,schema:H,color:`#f2b611`,logo:`clickhouse`,connectionLibraries:{libraries:[`chdb`],preferred:`chdb`}},{name:`Trino`,schema:U,color:`#d466b6`,logo:`trino`,connectionLibraries:{libraries:[`sqlalchemy`,`sqlmodel`],preferred:`sqlalchemy`}},{name:`DataFusion`,schema:G,color:`#202A37`,logo:`datafusion`,connectionLibraries:{libraries:[`ibis`],preferred:`ibis`}},{name:`PySpark`,schema:K,color:`#1C5162`,logo:`pyspark`,connectionLibraries:{libraries:[`ibis`],preferred:`ibis`}},{name:`Redshift`,schema:q,color:`#522BAE`,logo:`redshift`,connectionLibraries:{libraries:[`redshift`],preferred:`redshift`}},{name:`Databricks`,schema:J,color:`#c41e0c`,logo:`databricks`,connectionLibraries:{libraries:[`sqlalchemy`,`sqlmodel`,`ibis`],preferred:`sqlalchemy`}},{name:`Supabase`,schema:be,color:`#238F5F`,logo:`supabase`,connectionLibraries:{libraries:[`sqlalchemy`,`sqlmodel`],preferred:`sqlalchemy`}}],Ke=[{name:`Iceberg`,schema:W,color:`#000000`,logo:`iceberg`,connectionLibraries:{libraries:[`pyiceberg`],preferred:`pyiceberg`}}],qe=[...Ge,...Ke],Je=e=>{let t=(0,D.c)(12),{onSelect:n}=e,r;t[0]===n?r=t[1]:(r=Ge.map(e=>{let{name:t,schema:r,color:a,logo:o}=e;return(0,Q.jsx)(u,{name:t,color:a,icon:(0,Q.jsx)(i,{name:o,className:`w-8 h-8 text-white brightness-0 invert dark:invert`}),onSelect:()=>n(r)},t)}),t[0]=n,t[1]=r);let o;t[2]===r?o=t[3]:(o=(0,Q.jsx)(a,{children:r}),t[2]=r,t[3]=o);let s;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,Q.jsxs)(`h4`,{className:`font-semibold text-muted-foreground text-lg flex items-center gap-4 my-2`,children:[`Data Catalogs`,(0,Q.jsx)(`hr`,{className:`flex-1`})]}),t[4]=s):s=t[4];let c;t[5]===n?c=t[6]:(c=Ke.map(e=>{let{name:t,schema:r,color:a,logo:o}=e;return(0,Q.jsx)(u,{name:t,color:a,icon:(0,Q.jsx)(i,{name:o,className:`w-8 h-8 text-white brightness-0 invert dark:invert`}),onSelect:()=>n(r)},t)}),t[5]=n,t[6]=c);let l;t[7]===c?l=t[8]:(l=(0,Q.jsx)(a,{children:c}),t[7]=c,t[8]=l);let d;return t[9]!==o||t[10]!==l?(d=(0,Q.jsxs)(Q.Fragment,{children:[o,s,l]}),t[9]=o,t[10]=l,t[11]=d):d=t[11],d},Ye=e=>{let t=(0,D.c)(13),{onSubmit:n,header:r}=e,[i,a]=(0,E.useState)(null);if(!i){let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsx)(`div`,{children:(0,Q.jsx)(Je,{onSelect:a})}),t[0]=e):e=t[0];let n;return t[1]===r?n=t[2]:(n=(0,Q.jsxs)(Q.Fragment,{children:[r,e]}),t[1]=r,t[2]=n),n}let o;t[3]===i?o=t[4]:(o=qe.find(e=>e.schema===i),t[3]=i,t[4]=o);let s=o?.connectionLibraries,l;t[5]===s?.libraries?l=t[6]:(l=s?.libraries??[],t[5]=s?.libraries,t[6]=l);let u=s?.preferred??`sqlalchemy`,d;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(d=()=>a(null),t[7]=d):d=t[7];let f;return t[8]!==n||t[9]!==i||t[10]!==l||t[11]!==u?(f=(0,Q.jsx)(c,{schema:i,libraries:l,preferredLibrary:u,displayNames:Se,libraryLabel:`Preferred connection library`,generateCode:Xe,onSubmit:n,onBack:d}),t[8]=n,t[9]=i,t[10]=l,t[11]=u,t[12]=f):f=t[12],f};function Xe(e,t){return Ue(e,t)}var Ze=e=>{let t=(0,D.c)(19),{className:r,sources:i,onAdd:a}=e,o=(0,E.useId)();if(i.length===0)return null;let s;t[0]===r?s=t[1]:(s=v(`rounded-full bg-[linear-gradient(135deg,var(--blue-2),var(--purple-3))] px-3 py-2 dark:bg-[linear-gradient(135deg,var(--blue-2),var(--purple-2))]`,r),t[0]=r,t[1]=s);let c;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,Q.jsx)(n,{className:`h-3.5 w-3.5 text-(--blue-9) dark:text-(--blue-10)`}),t[2]=c):c=t[2];let l;t[3]===o?l=t[4]:(l=(0,Q.jsxs)(`div`,{className:`mr-1 flex items-center gap-1.5`,children:[c,(0,Q.jsx)(`h3`,{id:o,className:`text-sm`,children:`Quick add`})]}),t[3]=o,t[4]=l);let u;if(t[5]!==a||t[6]!==i){let e;t[8]===a?e=t[9]:(e=e=>(0,Q.jsx)(ie,{side:`bottom`,content:(0,Q.jsx)(Qe,{source:e}),children:(0,Q.jsxs)(`button`,{type:`button`,"aria-label":`Add ${e.displayName} connection`,className:`inline-flex items-center gap-1 rounded-full border border-border/60 bg-background px-2.5 py-1 text-xs font-medium text-foreground/90 transition-colors hover:border-(--blue-7) focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 dark:border-border dark:bg-background/60 dark:hover:bg-accent/80`,onClick:()=>a(e),children:[(0,Q.jsx)(pe,{className:`h-3 w-3 text-muted-foreground`}),e.displayName]})},e.id),t[8]=a,t[9]=e),u=i.map(e),t[5]=a,t[6]=i,t[7]=u}else u=t[7];let d;t[10]===u?d=t[11]:(d=(0,Q.jsx)(b,{delayDuration:200,children:u}),t[10]=u,t[11]=d);let f;t[12]!==l||t[13]!==d?(f=(0,Q.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[l,d]}),t[12]=l,t[13]=d,t[14]=f):f=t[14];let p;return t[15]!==s||t[16]!==f||t[17]!==o?(p=(0,Q.jsx)(`section`,{"aria-labelledby":o,className:s,children:f}),t[15]=s,t[16]=f,t[17]=o,t[18]=p):p=t[18],p},Qe=e=>{let t=(0,D.c)(17),{source:n}=e,r;t[0]===n.displayName?r=t[1]:(r=(0,Q.jsx)(`div`,{className:`font-medium`,children:n.displayName}),t[0]=n.displayName,t[1]=r);let i;t[2]===n.origins?i=t[3]:(i=n.origins.map(et).join(` and `),t[2]=n.origins,t[3]=i);let a;t[4]===i?a=t[5]:(a=(0,Q.jsxs)(`div`,{className:`text-xs text-muted-foreground`,children:[`Detected from`,` `,i]}),t[4]=i,t[5]=a);let o;t[6]!==r||t[7]!==a?(o=(0,Q.jsxs)(`div`,{children:[r,a]}),t[6]=r,t[7]=a,t[8]=o):o=t[8];let s;t[9]===n.configuration?s=t[10]:(s=n.configuration.map(tt),t[9]=n.configuration,t[10]=s);let c;t[11]===s?c=t[12]:(c=(0,Q.jsx)(`dl`,{className:`grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 text-xs`,children:s}),t[11]=s,t[12]=c);let l;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,Q.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:`Click to add a configured cell.`}),t[13]=l):l=t[13];let u;return t[14]!==o||t[15]!==c?(u=(0,Q.jsxs)(`div`,{className:`min-w-64 space-y-2 py-1`,children:[o,c,l]}),t[14]=o,t[15]=c,t[16]=u):u=t[16],u},$e=e=>{let t=(0,D.c)(4),{onSubmit:n,className:i,group:a}=e,o=s(n),c=r(a),l;return t[0]!==o||t[1]!==i||t[2]!==c?(l=(0,Q.jsx)(Ze,{className:i,sources:c,onAdd:o}),t[0]=o,t[1]=i,t[2]=c,t[3]=l):l=t[3],l};function et(e){return e.label}function tt(e){return(0,Q.jsxs)(`div`,{className:`contents`,children:[(0,Q.jsx)(`dt`,{className:`text-muted-foreground`,children:e.field}),(0,Q.jsx)(`dd`,{children:(0,Q.jsx)(`code`,{children:e.value.kind===`environment-variable`?`os.environ["${e.value.name}"]`:e.value.value})})]},e.value.kind===`environment-variable`?e.value.name:`${e.field}:${e.value.value}`)}var nt=()=>g(`type`,[f({type:h(`Access keys`),access_key_id:p().optional().describe(l.of({label:`Access Key ID`,description:`Leave empty to use the default credential chain`,inputType:`password`,optionRegex:`(access.?key.?id|object.?storage.?key|aws.?access.?key)`})),secret_access_key:p().optional().describe(l.of({label:`Secret Access Key`,inputType:`password`,optionRegex:`(secret.?access.?key|object.?storage.?secret|aws.?secret)`}))}),f({type:h(`Container credentials`),container_credentials_full_uri:p().nonempty().describe(l.of({label:`Credentials URI`,description:`Endpoint that vends credentials to the container`,placeholder:`http://169.254.170.23/v1/credentials`,optionRegex:`container.?credentials`})),container_authorization_token_file:p().nonempty().describe(l.of({label:`Authorization Token File`,description:`File holding the token sent to the credentials URI`,placeholder:`/var/run/secrets/token`,optionRegex:`(container.?authorization.?token.?file|container.?auth.?token)`}))})]).default({type:`Access keys`}).describe(l.of({label:`Credentials`,special:`tabs`})),rt=f({type:h(`s3`),bucket:p().nonempty().describe(l.of({label:`Bucket`,placeholder:`my-bucket`,optionRegex:`(bucket|s3.?bucket)`})),region:p().optional().describe(l.of({label:`Region`,placeholder:`us-east-1`,optionRegex:`(region|aws.?region)`})),endpoint_url:p().optional().describe(l.of({label:`Endpoint URL`,description:`Ignored if the AWS_ENDPOINT_URL_S3 environment variable is set`,placeholder:`https://s3.amazonaws.com`,optionRegex:`(endpoint|s3.?url|s3.?endpoint)`})),allow_http:m().default(!1).describe(l.of({label:`Allow HTTP`,description:`Required for plain-http (non-TLS) endpoints`})),auth:nt()}).describe(l.of({direction:`two-columns`})),it=f({type:h(`gcs`),bucket:p().nonempty().describe(l.of({label:`Bucket`,placeholder:`my-bucket`,optionRegex:`(bucket|gcs.?bucket|google.?bucket)`})),service_account_key:p().optional().describe(l.of({label:`Service Account Key (JSON)`,special:`secret_textarea`}))}).describe(l.of({direction:`two-columns`})),at=f({type:h(`azure`),container:p().nonempty().describe(l.of({label:`Container`,placeholder:`my-container`})),account_name:p().nonempty().describe(l.of({label:`Account Name`,placeholder:`storageaccount`,optionRegex:`(azure.?account|account.?name|storage.?account)`})),account_key:p().optional().describe(l.of({label:`Account Key`,inputType:`password`,optionRegex:`(azure.?key|account.?key|storage.?key)`}))}).describe(l.of({direction:`two-columns`})),$=f({type:h(`coreweave`),bucket:p().nonempty().describe(l.of({label:`Bucket`,placeholder:`bucket-name`})),region:p().nonempty().describe(l.of({label:`Region`,placeholder:`US-EAST-04A`})),auth:nt()}).describe(l.of({direction:`two-columns`})),ot=f({type:h(`gdrive`),credentials_json:p().optional().describe(l.of({label:`Service Account JSON`,description:`Leave empty to use browser-based authentication`,special:`secret_textarea`}))}).describe(l.of({direction:`two-columns`})),st=f({type:h(`huggingface`),token:p().optional().describe(l.of({label:`Access Token`,description:`Leave empty to use the HF_TOKEN environment variable or cached login`,inputType:`password`,optionRegex:`(hf.?token|hugging.?face.?token|hub.?token)`}))}).describe(l.of({direction:`two-columns`}));function ct(e){return e!=null&&e!==``}var lt=f({type:h(`github`),org:p().nonempty().describe(l.of({label:`Organization or user`})),repo:p().nonempty().describe(l.of({label:`Repository`})),sha:p().optional().describe(l.of({label:`Branch, tag, or commit`,placeholder:`main`,description:`Leave empty to use the default branch`})),username:p().optional().describe(l.of({label:`Username`,description:`Set this together with access token`,optionRegex:`(github.?username|github.?user)`})),token:p().optional().describe(l.of({label:`Access Token`,description:`Set this together with username. Required for private repos and to avoid GitHub's rate limits.`,inputType:`password`,optionRegex:`(github.?token|gh.?token|github.?pat)`}))}).refine(e=>ct(e.username)===ct(e.token),{message:`Username and access token are required together`,path:[`token`]}).describe(l.of({direction:`two-columns`})),ut=g(`type`,[rt,it,at,$,ot,st,lt]),dt={obstore:`obstore`,fsspec:`fsspec`,huggingface_hub:`huggingface_hub`},ft=class{secrets={};get imports(){return Object.keys(this.secrets).length===0?new Set:new Set([`import os`])}print(e,t){if(t===void 0||t===``)return``;let n=`_${e}`;if(T(t)){let e=de(t);return this.secrets[n]=`os.environ.get("${e}")`,n}return`"${w(t)}"`}formatSecrets(){return Object.keys(this.secrets).length===0?``:Object.entries(this.secrets).map(([e,t])=>`${e} = ${t}`).join(`
|
|
135
|
+
`)}var Q=y(),Ge=[{name:`PostgreSQL`,schema:_e,color:`#336791`,logo:`postgres`,connectionLibraries:{libraries:[`sqlalchemy`,`sqlmodel`],preferred:`sqlalchemy`}},{name:`MySQL`,schema:ve,color:`#00758F`,logo:`mysql`,connectionLibraries:{libraries:[`sqlalchemy`,`sqlmodel`],preferred:`sqlalchemy`}},{name:`SQLite`,schema:ye,color:`#003B57`,logo:`sqlite`,connectionLibraries:{libraries:[`sqlalchemy`,`sqlmodel`],preferred:`sqlalchemy`}},{name:`DuckDB`,schema:I,color:`#FFD700`,logo:`duckdb`,connectionLibraries:{libraries:[`duckdb`],preferred:`duckdb`}},{name:`MotherDuck`,schema:L,color:`#ff9538`,logo:`motherduck`,connectionLibraries:{libraries:[`duckdb`],preferred:`duckdb`}},{name:`Snowflake`,schema:R,color:`#29B5E8`,logo:`snowflake`,connectionLibraries:{libraries:[`sqlalchemy`,`sqlmodel`],preferred:`sqlalchemy`}},{name:`ClickHouse`,schema:B,color:`#2C2C1D`,logo:`clickhouse`,connectionLibraries:{libraries:[`clickhouse_connect`],preferred:`clickhouse_connect`}},{name:`Timeplus`,schema:V,color:`#B83280`,logo:`timeplus`,connectionLibraries:{libraries:[`sqlalchemy`,`sqlmodel`],preferred:`sqlalchemy`}},{name:`BigQuery`,schema:z,color:`#4285F4`,logo:`bigquery`,connectionLibraries:{libraries:[`sqlalchemy`,`sqlmodel`],preferred:`sqlalchemy`}},{name:`ClickHouse Embedded`,schema:H,color:`#f2b611`,logo:`clickhouse`,connectionLibraries:{libraries:[`chdb`],preferred:`chdb`}},{name:`Trino`,schema:U,color:`#d466b6`,logo:`trino`,connectionLibraries:{libraries:[`sqlalchemy`,`sqlmodel`],preferred:`sqlalchemy`}},{name:`DataFusion`,schema:G,color:`#202A37`,logo:`datafusion`,connectionLibraries:{libraries:[`ibis`],preferred:`ibis`}},{name:`PySpark`,schema:K,color:`#1C5162`,logo:`pyspark`,connectionLibraries:{libraries:[`ibis`],preferred:`ibis`}},{name:`Redshift`,schema:q,color:`#522BAE`,logo:`redshift`,connectionLibraries:{libraries:[`redshift`],preferred:`redshift`}},{name:`Databricks`,schema:J,color:`#c41e0c`,logo:`databricks`,connectionLibraries:{libraries:[`sqlalchemy`,`sqlmodel`,`ibis`],preferred:`sqlalchemy`}},{name:`Supabase`,schema:be,color:`#238F5F`,logo:`supabase`,connectionLibraries:{libraries:[`sqlalchemy`,`sqlmodel`],preferred:`sqlalchemy`}}],Ke=[{name:`Iceberg`,schema:W,color:`#000000`,logo:`iceberg`,connectionLibraries:{libraries:[`pyiceberg`],preferred:`pyiceberg`}}],qe=[...Ge,...Ke],Je=e=>{let t=(0,D.c)(12),{onSelect:n}=e,r;t[0]===n?r=t[1]:(r=Ge.map(e=>{let{name:t,schema:r,color:i,logo:s}=e;return(0,Q.jsx)(a,{name:t,color:i,icon:(0,Q.jsx)(o,{name:s,className:`w-8 h-8 text-white brightness-0 invert dark:invert`}),onSelect:()=>n(r)},t)}),t[0]=n,t[1]=r);let i;t[2]===r?i=t[3]:(i=(0,Q.jsx)(s,{children:r}),t[2]=r,t[3]=i);let c;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,Q.jsxs)(`h4`,{className:`font-semibold text-muted-foreground text-lg flex items-center gap-4 my-2`,children:[`Data Catalogs`,(0,Q.jsx)(`hr`,{className:`flex-1`})]}),t[4]=c):c=t[4];let l;t[5]===n?l=t[6]:(l=Ke.map(e=>{let{name:t,schema:r,color:i,logo:s}=e;return(0,Q.jsx)(a,{name:t,color:i,icon:(0,Q.jsx)(o,{name:s,className:`w-8 h-8 text-white brightness-0 invert dark:invert`}),onSelect:()=>n(r)},t)}),t[5]=n,t[6]=l);let u;t[7]===l?u=t[8]:(u=(0,Q.jsx)(s,{children:l}),t[7]=l,t[8]=u);let d;return t[9]!==i||t[10]!==u?(d=(0,Q.jsxs)(Q.Fragment,{children:[i,c,u]}),t[9]=i,t[10]=u,t[11]=d):d=t[11],d},Ye=e=>{let t=(0,D.c)(13),{onSubmit:n,header:i}=e,[a,o]=(0,E.useState)(null);if(!a){let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsx)(`div`,{children:(0,Q.jsx)(Je,{onSelect:o})}),t[0]=e):e=t[0];let n;return t[1]===i?n=t[2]:(n=(0,Q.jsxs)(Q.Fragment,{children:[i,e]}),t[1]=i,t[2]=n),n}let s;t[3]===a?s=t[4]:(s=qe.find(e=>e.schema===a),t[3]=a,t[4]=s);let c=s?.connectionLibraries,l;t[5]===c?.libraries?l=t[6]:(l=c?.libraries??[],t[5]=c?.libraries,t[6]=l);let u=c?.preferred??`sqlalchemy`,d;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(d=()=>o(null),t[7]=d):d=t[7];let f;return t[8]!==n||t[9]!==a||t[10]!==l||t[11]!==u?(f=(0,Q.jsx)(r,{schema:a,libraries:l,preferredLibrary:u,displayNames:Se,libraryLabel:`Preferred connection library`,generateCode:Xe,onSubmit:n,onBack:d}),t[8]=n,t[9]=a,t[10]=l,t[11]=u,t[12]=f):f=t[12],f};function Xe(e,t){return Ue(e,t)}var Ze=e=>{let t=(0,D.c)(19),{className:n,sources:r,onAdd:a}=e,o=(0,E.useId)();if(r.length===0)return null;let s;t[0]===n?s=t[1]:(s=v(`rounded-full bg-[linear-gradient(135deg,var(--blue-2),var(--purple-3))] px-3 py-2 dark:bg-[linear-gradient(135deg,var(--blue-2),var(--purple-2))]`,n),t[0]=n,t[1]=s);let c;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,Q.jsx)(i,{className:`h-3.5 w-3.5 text-(--blue-9) dark:text-(--blue-10)`}),t[2]=c):c=t[2];let l;t[3]===o?l=t[4]:(l=(0,Q.jsxs)(`div`,{className:`mr-1 flex items-center gap-1.5`,children:[c,(0,Q.jsx)(`h3`,{id:o,className:`text-sm`,children:`Quick add`})]}),t[3]=o,t[4]=l);let u;if(t[5]!==a||t[6]!==r){let e;t[8]===a?e=t[9]:(e=e=>(0,Q.jsx)(ie,{side:`bottom`,content:(0,Q.jsx)(Qe,{source:e}),children:(0,Q.jsxs)(`button`,{type:`button`,"aria-label":`Add ${e.displayName} connection`,className:`inline-flex items-center gap-1 rounded-full border border-border/60 bg-background px-2.5 py-1 text-xs font-medium text-foreground/90 transition-colors hover:border-(--blue-7) focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 dark:border-border dark:bg-background/60 dark:hover:bg-accent/80`,onClick:()=>a(e),children:[(0,Q.jsx)(pe,{className:`h-3 w-3 text-muted-foreground`}),e.displayName]})},e.id),t[8]=a,t[9]=e),u=r.map(e),t[5]=a,t[6]=r,t[7]=u}else u=t[7];let d;t[10]===u?d=t[11]:(d=(0,Q.jsx)(b,{delayDuration:200,children:u}),t[10]=u,t[11]=d);let f;t[12]!==l||t[13]!==d?(f=(0,Q.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[l,d]}),t[12]=l,t[13]=d,t[14]=f):f=t[14];let p;return t[15]!==s||t[16]!==f||t[17]!==o?(p=(0,Q.jsx)(`section`,{"aria-labelledby":o,className:s,children:f}),t[15]=s,t[16]=f,t[17]=o,t[18]=p):p=t[18],p},Qe=e=>{let t=(0,D.c)(17),{source:n}=e,r;t[0]===n.displayName?r=t[1]:(r=(0,Q.jsx)(`div`,{className:`font-medium`,children:n.displayName}),t[0]=n.displayName,t[1]=r);let i;t[2]===n.origins?i=t[3]:(i=n.origins.map(et).join(` and `),t[2]=n.origins,t[3]=i);let a;t[4]===i?a=t[5]:(a=(0,Q.jsxs)(`div`,{className:`text-xs text-muted-foreground`,children:[`Detected from`,` `,i]}),t[4]=i,t[5]=a);let o;t[6]!==r||t[7]!==a?(o=(0,Q.jsxs)(`div`,{children:[r,a]}),t[6]=r,t[7]=a,t[8]=o):o=t[8];let s;t[9]===n.configuration?s=t[10]:(s=n.configuration.map(tt),t[9]=n.configuration,t[10]=s);let c;t[11]===s?c=t[12]:(c=(0,Q.jsx)(`dl`,{className:`grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 text-xs`,children:s}),t[11]=s,t[12]=c);let l;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,Q.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:`Click to add a configured cell.`}),t[13]=l):l=t[13];let u;return t[14]!==o||t[15]!==c?(u=(0,Q.jsxs)(`div`,{className:`min-w-64 space-y-2 py-1`,children:[o,c,l]}),t[14]=o,t[15]=c,t[16]=u):u=t[16],u},$e=e=>{let t=(0,D.c)(4),{onSubmit:n,className:r,group:i}=e,a=c(n),o=u(i),s;return t[0]!==a||t[1]!==r||t[2]!==o?(s=(0,Q.jsx)(Ze,{className:r,sources:o,onAdd:a}),t[0]=a,t[1]=r,t[2]=o,t[3]=s):s=t[3],s};function et(e){return e.label}function tt(e){return(0,Q.jsxs)(`div`,{className:`contents`,children:[(0,Q.jsx)(`dt`,{className:`text-muted-foreground`,children:e.field}),(0,Q.jsx)(`dd`,{children:(0,Q.jsx)(`code`,{children:e.value.kind===`environment-variable`?`os.environ["${e.value.name}"]`:e.value.value})})]},e.value.kind===`environment-variable`?e.value.name:`${e.field}:${e.value.value}`)}var nt=()=>g(`type`,[f({type:h(`Access keys`),access_key_id:p().optional().describe(n.of({label:`Access Key ID`,description:`Leave empty to use the default credential chain`,inputType:`password`,optionRegex:`(access.?key.?id|object.?storage.?key|aws.?access.?key)`})),secret_access_key:p().optional().describe(n.of({label:`Secret Access Key`,inputType:`password`,optionRegex:`(secret.?access.?key|object.?storage.?secret|aws.?secret)`}))}),f({type:h(`Container credentials`),container_credentials_full_uri:p().nonempty().describe(n.of({label:`Credentials URI`,description:`Endpoint that vends credentials to the container`,placeholder:`http://169.254.170.23/v1/credentials`,optionRegex:`container.?credentials`})),container_authorization_token_file:p().nonempty().describe(n.of({label:`Authorization Token File`,description:`File holding the token sent to the credentials URI`,placeholder:`/var/run/secrets/token`,optionRegex:`(container.?authorization.?token.?file|container.?auth.?token)`}))})]).default({type:`Access keys`}).describe(n.of({label:`Credentials`,special:`tabs`})),rt=f({type:h(`s3`),bucket:p().nonempty().describe(n.of({label:`Bucket`,placeholder:`my-bucket`,optionRegex:`(bucket|s3.?bucket)`})),region:p().optional().describe(n.of({label:`Region`,placeholder:`us-east-1`,optionRegex:`(region|aws.?region)`})),endpoint_url:p().optional().describe(n.of({label:`Endpoint URL`,description:`Ignored if the AWS_ENDPOINT_URL_S3 environment variable is set`,placeholder:`https://s3.amazonaws.com`,optionRegex:`(endpoint|s3.?url|s3.?endpoint)`})),allow_http:m().default(!1).describe(n.of({label:`Allow HTTP`,description:`Required for plain-http (non-TLS) endpoints`})),auth:nt()}).describe(n.of({direction:`two-columns`})),it=f({type:h(`gcs`),bucket:p().nonempty().describe(n.of({label:`Bucket`,placeholder:`my-bucket`,optionRegex:`(bucket|gcs.?bucket|google.?bucket)`})),service_account_key:p().optional().describe(n.of({label:`Service Account Key (JSON)`,special:`secret_textarea`}))}).describe(n.of({direction:`two-columns`})),at=f({type:h(`azure`),container:p().nonempty().describe(n.of({label:`Container`,placeholder:`my-container`})),account_name:p().nonempty().describe(n.of({label:`Account Name`,placeholder:`storageaccount`,optionRegex:`(azure.?account|account.?name|storage.?account)`})),account_key:p().optional().describe(n.of({label:`Account Key`,inputType:`password`,optionRegex:`(azure.?key|account.?key|storage.?key)`}))}).describe(n.of({direction:`two-columns`})),$=f({type:h(`coreweave`),bucket:p().nonempty().describe(n.of({label:`Bucket`,placeholder:`bucket-name`})),region:p().nonempty().describe(n.of({label:`Region`,placeholder:`US-EAST-04A`})),auth:nt()}).describe(n.of({direction:`two-columns`})),ot=f({type:h(`gdrive`),credentials_json:p().optional().describe(n.of({label:`Service Account JSON`,description:`Leave empty to use browser-based authentication`,special:`secret_textarea`}))}).describe(n.of({direction:`two-columns`})),st=f({type:h(`huggingface`),token:p().optional().describe(n.of({label:`Access Token`,description:`Leave empty to use the HF_TOKEN environment variable or cached login`,inputType:`password`,optionRegex:`(hf.?token|hugging.?face.?token|hub.?token)`}))}).describe(n.of({direction:`two-columns`}));function ct(e){return e!=null&&e!==``}var lt=f({type:h(`github`),org:p().nonempty().describe(n.of({label:`Organization or user`})),repo:p().nonempty().describe(n.of({label:`Repository`})),sha:p().optional().describe(n.of({label:`Branch, tag, or commit`,placeholder:`main`,description:`Leave empty to use the default branch`})),username:p().optional().describe(n.of({label:`Username`,description:`Set this together with access token`,optionRegex:`(github.?username|github.?user)`})),token:p().optional().describe(n.of({label:`Access Token`,description:`Set this together with username. Required for private repos and to avoid GitHub's rate limits.`,inputType:`password`,optionRegex:`(github.?token|gh.?token|github.?pat)`}))}).refine(e=>ct(e.username)===ct(e.token),{message:`Username and access token are required together`,path:[`token`]}).describe(n.of({direction:`two-columns`})),ut=g(`type`,[rt,it,at,$,ot,st,lt]),dt={obstore:`obstore`,fsspec:`fsspec`,huggingface_hub:`huggingface_hub`},ft=class{secrets={};get imports(){return Object.keys(this.secrets).length===0?new Set:new Set([`import os`])}print(e,t){if(t===void 0||t===``)return``;let n=`_${e}`;if(T(t)){let e=de(t);return this.secrets[n]=`os.environ.get("${e}")`,n}return`"${w(t)}"`}formatSecrets(){return Object.keys(this.secrets).length===0?``:Object.entries(this.secrets).map(([e,t])=>`${e} = ${t}`).join(`
|
|
136
136
|
`)}};function pt(e,t){if(e?.type===`Container credentials`)return[` container_credentials_full_uri=${t.print(`container_credentials_full_uri`,e.container_credentials_full_uri)},`,` container_authorization_token_file=${t.print(`container_authorization_token_file`,e.container_authorization_token_file)},`];let n=[];return e?.access_key_id&&n.push(` access_key_id=${t.print(`access_key_id`,e.access_key_id)},`),e?.secret_access_key&&n.push(` secret_access_key=${t.print(`secret_access_key`,e.secret_access_key)},`),n}function mt(e,t){let n=t.print(`bucket`,e.bucket),r=new Set([`from obstore.store import S3Store`]),i=[];e.region&&i.push(` region=${t.print(`region`,e.region)},`),i.push(...pt(e.auth,t)),e.endpoint_url&&i.push(` endpoint_url=${t.print(`endpoint_url`,e.endpoint_url)},`),e.allow_http&&i.push(` allow_http=True,`);let a=i.length>0?`\n${i.join(`
|
|
137
|
-
`)}\n`:``;return{imports:r,code:
|
|
137
|
+
`)}\n`:``;return{imports:r,code:l(`
|
|
138
138
|
store = S3Store(${n},${a})
|
|
139
|
-
`)}}function ht(e,t){let n=t.print(`bucket`,e.bucket),r=new Set([`from obstore.store import GCSStore`]);if(!e.service_account_key)return{imports:r,code:
|
|
139
|
+
`)}}function ht(e,t){let n=t.print(`bucket`,e.bucket),r=new Set([`from obstore.store import GCSStore`]);if(!e.service_account_key)return{imports:r,code:l(`
|
|
140
140
|
store = GCSStore(${n})
|
|
141
|
-
`)};let i=S(e.service_account_key,e=>t.print(`service_account_key`,e));return i.kind===`path`?{imports:r,code:
|
|
141
|
+
`)};let i=S(e.service_account_key,e=>t.print(`service_account_key`,e));return i.kind===`path`?{imports:r,code:l(`
|
|
142
142
|
store = GCSStore(${n},
|
|
143
143
|
service_account_path="${w(i.path)}",
|
|
144
144
|
)
|
|
145
|
-
`)}:(r.add(`import json`),{imports:r,code:
|
|
145
|
+
`)}:(r.add(`import json`),{imports:r,code:l(`
|
|
146
146
|
_credentials = ${i.expr}
|
|
147
147
|
store = GCSStore(${n},
|
|
148
148
|
service_account_key=_credentials,
|
|
149
149
|
)
|
|
150
150
|
`)})}function gt(e,t){let n=t.print(`container`,e.container),r=t.print(`account_name`,e.account_name),i=new Set([`from obstore.store import AzureStore`]),a=[`account_name=${r},`];return e.account_key&&a.push(`account_key=${t.print(`account_key`,e.account_key)},`),{imports:i,code:`store = AzureStore(${n},\n${a.map(e=>` ${e}`).join(`
|
|
151
151
|
`)}\n)`}}function _t(e,t){let n=t.print(`bucket`,e.bucket),r=new Set([`from obstore.store import S3Store`]),i=[` region=${t.print(`region`,e.region)},`];i.push(...pt(e.auth,t)),i.push(` endpoint="https://${e.bucket}.cwobject.com",`,` virtual_hosted_style_request=True,`);let a=`\n${i.join(`
|
|
152
|
-
`)}\n`;return{imports:r,code:
|
|
152
|
+
`)}\n`;return{imports:r,code:l(`
|
|
153
153
|
store = S3Store(${n},${a})
|
|
154
|
-
`)}}function vt(e,t){let{secrets:n,isEmbedded:r=!1}=t,i=new Set([`from gdrive_fsspec import GoogleDriveFileSystem`]);if(e.credentials_json){let t=S(e.credentials_json,e=>n.print(`credentials_json`,e));return t.kind===`path`?{imports:i,code:
|
|
154
|
+
`)}}function vt(e,t){let{secrets:n,isEmbedded:r=!1}=t,i=new Set([`from gdrive_fsspec import GoogleDriveFileSystem`]);if(e.credentials_json){let t=S(e.credentials_json,e=>n.print(`credentials_json`,e));return t.kind===`path`?{imports:i,code:l(`
|
|
155
155
|
fs = GoogleDriveFileSystem(creds="${w(t.path)}", token="service_account", use_listings_cache=False, skip_instance_cache=True)
|
|
156
|
-
`)}:(i.add(`import json`),{imports:i,code:
|
|
156
|
+
`)}:(i.add(`import json`),{imports:i,code:l(`
|
|
157
157
|
_creds = ${t.expr}
|
|
158
158
|
fs = GoogleDriveFileSystem(creds=_creds, token="service_account", use_listings_cache=False, skip_instance_cache=True)
|
|
159
|
-
`)})}return{imports:i,code:
|
|
159
|
+
`)})}return{imports:i,code:l(r?`
|
|
160
160
|
fs = GoogleDriveFileSystem(use_listings_cache=False, skip_instance_cache=True, auth_kwargs={"use_local_webserver": False})
|
|
161
161
|
mo.output.clear_console()
|
|
162
162
|
`:`
|
|
163
163
|
fs = GoogleDriveFileSystem(use_listings_cache=False, skip_instance_cache=True)
|
|
164
164
|
`)}}function yt(e,t){let n=new Set([`from huggingface_hub import HfApi`]);return e.token?{imports:n,code:`hf = HfApi(token=${t.print(`token`,e.token)})`}:{imports:n,code:`hf = HfApi()`}}function bt(e,t){let n=new Set([`from fsspec.implementations.github import GithubFileSystem`]),r=[`org=${t.print(`org`,e.org)},`,`repo=${t.print(`repo`,e.repo)},`];return e.sha&&r.push(`sha=${t.print(`sha`,e.sha)},`),e.username&&e.token&&r.push(`username=${t.print(`username`,e.username)},`,`token=${t.print(`token`,e.token)},`),{imports:n,code:`fs = GithubFileSystem(\n${r.map(e=>` ${e}`).join(`
|
|
165
165
|
`)}\n)`}}function xt(e,t){ut.parse(e);let n=new ft,r;switch(e.type){case`s3`:r=mt(e,n);break;case`gcs`:r=ht(e,n);break;case`azure`:r=gt(e,n);break;case`coreweave`:r=_t(e,n);break;case`gdrive`:r=vt(e,{secrets:n,isEmbedded:t.isEmbedded});break;case`huggingface`:r=yt(e,n);break;case`github`:r=bt(e,n);break;default:x(e)}let i=[...new Set([...n.imports,...r.imports])].toSorted();i.push(``);let a=n.formatSecrets();return a&&i.push(a),i.push(r.code.trim()),i.join(`
|
|
166
|
-
`)}var St=`#232F3E`,Ct=[{name:`Amazon S3`,schema:rt,protocol:`s3`,storageLibraries:{libraries:[`obstore`],preferred:`obstore`}},{name:`Google Cloud Storage`,schema:it,protocol:`gcs`,storageLibraries:{libraries:[`obstore`],preferred:`obstore`}},{name:`Azure Blob Storage`,schema:at,protocol:`azure`,storageLibraries:{libraries:[`obstore`],preferred:`obstore`}},{name:`CoreWeave`,schema:$,protocol:`coreweave`,storageLibraries:{libraries:[`obstore`],preferred:`obstore`}},{name:`Google Drive`,schema:ot,protocol:`gdrive`,storageLibraries:{libraries:[`fsspec`],preferred:`fsspec`}},{name:`Hugging Face Hub`,schema:st,protocol:`hf`,storageLibraries:{libraries:[`huggingface_hub`],preferred:`huggingface_hub`}},{name:`GitHub`,schema:lt,protocol:`github`,storageLibraries:{libraries:[`fsspec`],preferred:`fsspec`}}],wt=e=>{let t=(0,D.c)(4),{onSelect:n}=e,r;t[0]===n?r=t[1]:(r=Ct.map(e=>{let{name:t,schema:r,protocol:i}=e;return(0,Q.jsx)(
|
|
166
|
+
`)}var St=`#232F3E`,Ct=[{name:`Amazon S3`,schema:rt,protocol:`s3`,storageLibraries:{libraries:[`obstore`],preferred:`obstore`}},{name:`Google Cloud Storage`,schema:it,protocol:`gcs`,storageLibraries:{libraries:[`obstore`],preferred:`obstore`}},{name:`Azure Blob Storage`,schema:at,protocol:`azure`,storageLibraries:{libraries:[`obstore`],preferred:`obstore`}},{name:`CoreWeave`,schema:$,protocol:`coreweave`,storageLibraries:{libraries:[`obstore`],preferred:`obstore`}},{name:`Google Drive`,schema:ot,protocol:`gdrive`,storageLibraries:{libraries:[`fsspec`],preferred:`fsspec`}},{name:`Hugging Face Hub`,schema:st,protocol:`hf`,storageLibraries:{libraries:[`huggingface_hub`],preferred:`huggingface_hub`}},{name:`GitHub`,schema:lt,protocol:`github`,storageLibraries:{libraries:[`fsspec`],preferred:`fsspec`}}],wt=e=>{let t=(0,D.c)(4),{onSelect:n}=e,r;t[0]===n?r=t[1]:(r=Ct.map(e=>{let{name:t,schema:r,protocol:i}=e;return(0,Q.jsx)(a,{name:t,color:St,icon:(0,Q.jsx)(ae,{protocol:i,forceDark:!0,className:`w-7.5 h-7.5 text-white`}),onSelect:()=>n(r)},t)}),t[0]=n,t[1]=r);let i;return t[2]===r?i=t[3]:(i=(0,Q.jsx)(s,{children:r}),t[2]=r,t[3]=i),i},Tt=e=>{let t=(0,D.c)(16),{onSubmit:n,header:i}=e,{isEmbedded:a}=me(),[o,s]=(0,E.useState)(null);if(!o){let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsx)(`div`,{children:(0,Q.jsx)(wt,{onSelect:s})}),t[0]=e):e=t[0];let n;return t[1]===i?n=t[2]:(n=(0,Q.jsxs)(Q.Fragment,{children:[i,e]}),t[1]=i,t[2]=n),n}let c;t[3]===o?c=t[4]:(c=Ct.find(e=>e.schema===o),t[3]=o,t[4]=c);let l=c?.storageLibraries,u;t[5]===l?.libraries?u=t[6]:(u=l?.libraries??[],t[5]=l?.libraries,t[6]=u);let d=l?.preferred??`obstore`,f;t[7]===a?f=t[8]:(f=(e,t)=>xt(e,{library:t,isEmbedded:a}),t[7]=a,t[8]=f);let p;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(p=()=>s(null),t[9]=p):p=t[9];let m;return t[10]!==n||t[11]!==o||t[12]!==u||t[13]!==d||t[14]!==f?(m=(0,Q.jsx)(r,{schema:o,libraries:u,preferredLibrary:d,displayNames:dt,libraryLabel:`Preferred storage library`,generateCode:f,onSubmit:n,onBack:p}),t[10]=n,t[11]=o,t[12]=u,t[13]=d,t[14]=f,t[15]=m):m=t[15],m},Et=e=>{let t=(0,D.c)(9),{children:n,defaultTab:r}=e,i=r===void 0?`databases`:r,[a,o]=(0,E.useState)(!1),s;t[0]===n?s=t[1]:(s=(0,Q.jsx)(se,{asChild:!0,children:n}),t[0]=n,t[1]=s);let c;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(c=()=>o(!1),t[2]=c):c=t[2];let l;t[3]===i?l=t[4]:(l=(0,Q.jsx)(Dt,{defaultTab:i,onClose:c}),t[3]=i,t[4]=l);let u;return t[5]!==a||t[6]!==s||t[7]!==l?(u=(0,Q.jsxs)(fe,{open:a,onOpenChange:o,children:[s,l]}),t[5]=a,t[6]=s,t[7]=l,t[8]=u):u=t[8],u},Dt=e=>{let t=(0,D.c)(24),{defaultTab:n,onClose:r}=e,[i,a]=(0,E.useState)(n===void 0?`databases`:n),o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,Q.jsxs)(ne,{className:`w-full mb-4`,children:[(0,Q.jsx)(ee,{value:`databases`,className:`flex-1`,children:`Databases & Catalogs`}),(0,Q.jsx)(ee,{value:`storage`,className:`flex-1`,children:`Remote Storages`})]}),t[0]=o):o=t[0];let s=o,c;t[1]===i?c=t[2]:(c=i===`databases`?(0,Q.jsxs)(Q.Fragment,{children:[`Don't see your database or connection method? A`,` `,(0,Q.jsx)(C,{href:`https://docs.marimo.io/guides/working_with_data/sql/#connecting-to-a-custom-database`,children:`code snippet`}),` `,`is all you need.`]}):(0,Q.jsxs)(Q.Fragment,{children:[`Don't see your storage or connection method? A`,` `,(0,Q.jsx)(C,{href:`https://docs.marimo.io/guides/working_with_data/remote_storage/#creating-a-storage-connection`,children:`code snippet`}),` `,`is all you need.`]}),t[1]=i,t[2]=c);let l=c,u;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,Q.jsx)(ue,{children:`Add Connection`}),t[3]=u):u=t[3];let d;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,Q.jsx)(C,{href:`https://docs.marimo.io/guides/working_with_data/sql/#connecting-to-a-custom-database`,children:`database, data catalog`}),t[4]=d):d=t[4];let f;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,Q.jsx)(C,{href:`https://docs.marimo.io/guides/working_with_data/remote_storage/`,children:`remote storage`}),t[5]=f):f=t[5];let p;t[6]===l?p=t[7]:(p=(0,Q.jsxs)(ce,{children:[u,(0,Q.jsxs)(oe,{children:[`Connect to a`,` `,d,` `,`or`,` `,f,` `,`directly from your notebook.`,(0,Q.jsx)(`span`,{className:`block`,children:l})]})]}),t[6]=l,t[7]=p);let m=i===`storage`?`storage`:`database`,h;t[8]!==r||t[9]!==m?(h=(0,Q.jsx)($e,{onSubmit:r,className:`-mt-2`,group:m}),t[8]=r,t[9]=m,t[10]=h):h=t[10];let g;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(g=e=>a(e),t[11]=g):g=t[11];let _;t[12]===r?_=t[13]:(_=(0,Q.jsx)(te,{value:`databases`,className:`mt-0 focus-visible:ring-0 focus-visible:ring-offset-0`,children:(0,Q.jsx)(Ye,{onSubmit:r,header:s})}),t[12]=r,t[13]=_);let v;t[14]===r?v=t[15]:(v=(0,Q.jsx)(te,{value:`storage`,className:`mt-0 focus-visible:ring-0 focus-visible:ring-offset-0`,children:(0,Q.jsx)(Tt,{onSubmit:r,header:s})}),t[14]=r,t[15]=v);let y;t[16]!==i||t[17]!==_||t[18]!==v?(y=(0,Q.jsxs)(re,{value:i,onValueChange:g,children:[_,v]}),t[16]=i,t[17]=_,t[18]=v,t[19]=y):y=t[19];let b;return t[20]!==y||t[21]!==p||t[22]!==h?(b=(0,Q.jsxs)(le,{className:`max-h-[75vh] overflow-y-auto`,children:[p,h,y]}),t[20]=y,t[21]=p,t[22]=h,t[23]=b):b=t[23],b};export{Dt as n,Et as t};
|