decocms 2.172.0 → 2.172.1
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/client/assets/{AlertCircle-BvnCc6-D.js → AlertCircle-DBHSxle0.js} +1 -1
- package/dist/client/assets/{AlignLeft-Du0NczL1.js → AlignLeft-BZi0b3qg.js} +1 -1
- package/dist/client/assets/{ArrowDown-C_8n0unK.js → ArrowDown-J5qOTRoA.js} +1 -1
- package/dist/client/assets/{ArrowLeft-BQgzcaok.js → ArrowLeft-Cke1NjsZ.js} +1 -1
- package/dist/client/assets/{ArrowUp-o0gFtaSp.js → ArrowUp-aSx0u-5l.js} +1 -1
- package/dist/client/assets/{Check-BxC8tao2.js → Check-B8ndkg7T.js} +1 -1
- package/dist/client/assets/{CheckCircle-D_nIOFVe.js → CheckCircle-DAXfTEK-.js} +1 -1
- package/dist/client/assets/{CheckDone01-CakzFmCS.js → CheckDone01-CKxo2Bt7.js} +1 -1
- package/dist/client/assets/{CheckVerified02-B0-uBz5z.js → CheckVerified02-3DuNYJZt.js} +1 -1
- package/dist/client/assets/{ChevronDown-B6clHAxQ.js → ChevronDown-D9wVK5bH.js} +1 -1
- package/dist/client/assets/{ChevronLeft-ByevmkD8.js → ChevronLeft-DcNKgEQb.js} +1 -1
- package/dist/client/assets/{ChevronRight-BZWqxnWE.js → ChevronRight-BWpUvEdI.js} +1 -1
- package/dist/client/assets/{ChevronUp-DxXRh85A.js → ChevronUp-pA-2UtBp.js} +1 -1
- package/dist/client/assets/{Clock-aoVUv0E3.js → Clock-Bp-LAqbC.js} +1 -1
- package/dist/client/assets/{Code01-BfCMg42R.js → Code01-ChPYGYfB.js} +1 -1
- package/dist/client/assets/{Coins01-CRttGRCL.js → Coins01-CEldpOw2.js} +1 -1
- package/dist/client/assets/{Container-CHE6pZ9r.js → Container-CLsUjxhY.js} +1 -1
- package/dist/client/assets/{Copy01-Wuk9LRR2.js → Copy01-CgG_OJP6.js} +1 -1
- package/dist/client/assets/{Dataflow03-DheawpLZ.js → Dataflow03-DUfN03Mp.js} +1 -1
- package/dist/client/assets/{DotsHorizontal-D5nivPvW.js → DotsHorizontal-COn1MVBJ.js} +1 -1
- package/dist/client/assets/{DotsVertical-CgdYQJ7U.js → DotsVertical-B6C_2FFD.js} +1 -1
- package/dist/client/assets/{Download01-DTYQtrJQ.js → Download01-BgosRgo9.js} +1 -1
- package/dist/client/assets/{Edit01-BKkVXIhK.js → Edit01-BYoLi1wi.js} +1 -1
- package/dist/client/assets/{Edit05-BvgGPrtV.js → Edit05-CXzMSTEE.js} +1 -1
- package/dist/client/assets/{Eye-geJ1dSoO.js → Eye-MtNtMWW5.js} +1 -1
- package/dist/client/assets/{EyeOff-ClRv57XC.js → EyeOff-CY8Gwzvd.js} +1 -1
- package/dist/client/assets/{File02-C3A15tgy.js → File02-CBJOSTF8.js} +1 -1
- package/dist/client/assets/{File06-CJDVZeqU.js → File06-021s902A.js} +1 -1
- package/dist/client/assets/{FilterLines-DABMr8G9.js → FilterLines-zxDuDuuJ.js} +1 -1
- package/dist/client/assets/{Globe01-7vtf7Y1x.js → Globe01-BrfugmTH.js} +1 -1
- package/dist/client/assets/{Globe02-zQio7SJP.js → Globe02-D4GwpBVP.js} +1 -1
- package/dist/client/assets/{Grid01-CgI0fqut.js → Grid01-Cx4wu3Y9.js} +1 -1
- package/dist/client/assets/{Hash02-Bng1Hle8.js → Hash02-hnhH9Jxc.js} +1 -1
- package/dist/client/assets/{Home02-D1KSrO9o.js → Home02-DyHu25ax.js} +1 -1
- package/dist/client/assets/{Image01-BLsRmD6t.js → Image01-T3g4Xdvf.js} +1 -1
- package/dist/client/assets/{Inbox01-DGQRZkXS.js → Inbox01-BXbJXxyv.js} +1 -1
- package/dist/client/assets/{InfoCircle-DvSUioPF.js → InfoCircle-Da_z8Szm.js} +1 -1
- package/dist/client/assets/{Key01-Dib7ammN.js → Key01-4NZitUKS.js} +1 -1
- package/dist/client/assets/{LayersTwo01-BmzCQYk2.js → LayersTwo01-670JTIpk.js} +1 -1
- package/dist/client/assets/{LayoutLeft-CWuWCiNa.js → LayoutLeft-CIpulo-e.js} +1 -1
- package/dist/client/assets/{Link01-DwbGnCZ-.js → Link01-BXmFSJRd.js} +1 -1
- package/dist/client/assets/{LinkExternal01-3ULSi1GW.js → LinkExternal01-Bq8XeN8a.js} +1 -1
- package/dist/client/assets/{List-3zjBAIRS.js → List-B0bmeecJ.js} +1 -1
- package/dist/client/assets/{Loading01-BbnQsfMx.js → Loading01-B87VIClz.js} +1 -1
- package/dist/client/assets/{Lock01-ClyjUTBv.js → Lock01-BdaMZYNr.js} +1 -1
- package/dist/client/assets/{Play-p1Z3ioGY.js → Play-DBH8t0rX.js} +1 -1
- package/dist/client/assets/{Plus-BJUL5Wvq.js → Plus-CDc4R7NF.js} +1 -1
- package/dist/client/assets/{RefreshCcw01-Dfcp2VAx.js → RefreshCcw01-CiW1ymIS.js} +1 -1
- package/dist/client/assets/{Save01-BNoezVOP.js → Save01-SGB22t4q.js} +1 -1
- package/dist/client/assets/{SearchMd-BJkDuyJ3.js → SearchMd-DEv7e_hZ.js} +1 -1
- package/dist/client/assets/{Settings01-k8tDFeX4.js → Settings01-ovVBguWq.js} +1 -1
- package/dist/client/assets/{Shield01-XMvdJvy8.js → Shield01-D18ahoYD.js} +1 -1
- package/dist/client/assets/{Terminal-Bq1nd15g.js → Terminal-DNbN4GE7.js} +1 -1
- package/dist/client/assets/{Trash01-BEjbK4f6.js → Trash01-DC96NOta.js} +1 -1
- package/dist/client/assets/{Upload01-r0pGX4kR.js → Upload01-BW9BwfoA.js} +1 -1
- package/dist/client/assets/{Users03-DTCxnqPZ.js → Users03-cvM2Ndk1.js} +1 -1
- package/dist/client/assets/{X-CEnrrbAn.js → X-C5okAsgi.js} +1 -1
- package/dist/client/assets/{XCircle-BKAmr_f6.js → XCircle-CFDOKqbE.js} +1 -1
- package/dist/client/assets/{XClose-CRDqusrl.js → XClose-BHPDEFB2.js} +1 -1
- package/dist/client/assets/{Zap-CNayKvai.js → Zap-CkD-kOX3.js} +1 -1
- package/dist/client/assets/{agent-connections-preview-DWjxgkFC.js → agent-connections-preview-BlJ035nM.js} +1 -1
- package/dist/client/assets/{agent-detail-qPTQbHAB.js → agent-detail-NABTJfFm.js} +1 -1
- package/dist/client/assets/{agents-De8iH2o7.js → agents-CK1zn3pf.js} +1 -1
- package/dist/client/assets/{alert-dialog-B77zp5_9.js → alert-dialog-BQU839b3.js} +1 -1
- package/dist/client/assets/{auth-catchall-ajIqzmLh.js → auth-catchall-CuvA1tS7.js} +1 -1
- package/dist/client/assets/{automation-detail-l1ds4Esy.js → automation-detail-BnVlIGOj.js} +1 -1
- package/dist/client/assets/{automations-D-ICSDP7.js → automations-9UyxTFnE.js} +1 -1
- package/dist/client/assets/{avatar-DUHTdDSS.js → avatar-BzF6Jb9Z.js} +1 -1
- package/dist/client/assets/{badge-B33icYfV.js → badge-DSBNODR5.js} +1 -1
- package/dist/client/assets/{binder-C4RsQP3G.js → binder-Df6Go4wZ.js} +1 -1
- package/dist/client/assets/{breadcrumb-C11JDZLD.js → breadcrumb-C0C7xCxQ.js} +1 -1
- package/dist/client/assets/{card-Bfa3ZJIC.js → card-3wGXs2xF.js} +1 -1
- package/dist/client/assets/{chart-BLla5WT3.js → chart-DpmD8a68.js} +1 -1
- package/dist/client/assets/{checkbox-BuLFRc1C.js → checkbox-B3Rpe7-l.js} +1 -1
- package/dist/client/assets/{collapsible-DDvEBvNF.js → collapsible-Df2r9Beq.js} +1 -1
- package/dist/client/assets/{collection-detail-Bi5TVIvY.js → collection-detail-Bx2S4wNW.js} +1 -1
- package/dist/client/assets/{collection-display-button-CB65ibr7.js → collection-display-button-Dbmpw-3P.js} +1 -1
- package/dist/client/assets/{collection-search-C-DUGZUN.js → collection-search-Bl8CXpst.js} +1 -1
- package/dist/client/assets/{collection-tab-dHFGyC1m.js → collection-tab-Zi-tIaoO.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-CNWTcnzH.js → collection-table-wrapper-CWpzycma.js} +1 -1
- package/dist/client/assets/{collection-tabs-hNcG012s.js → collection-tabs-XXmKF6cf.js} +1 -1
- package/dist/client/assets/{command-B_9ik1cM.js → command-DsOv8SIr.js} +1 -1
- package/dist/client/assets/{connect-DfuwjHHd.js → connect-DHGLggyX.js} +1 -1
- package/dist/client/assets/{connection-card-zeX_VYK4.js → connection-card-N3Tx1qhb.js} +1 -1
- package/dist/client/assets/{connection-detail-jw7eh9PA.js → connection-detail-D3Kdf77j.js} +1 -1
- package/dist/client/assets/{connection-status-DFBDMZAF.js → connection-status-BzysCDJU.js} +1 -1
- package/dist/client/assets/{connections-B6AcPhdJ.js → connections-CZhVovQk.js} +1 -1
- package/dist/client/assets/{constants-uVLQN0jY.js → constants-B4i933q7.js} +1 -1
- package/dist/client/assets/constants-BLiDtBGA.js +1 -0
- package/dist/client/assets/{context-ClCBXQoI.js → context-vne_tDFm.js} +1 -1
- package/dist/client/assets/{create-organization-dialog-D_k6cEfv.js → create-organization-dialog-BhY0HdLQ.js} +1 -1
- package/dist/client/assets/{create-project-dialog-F0Ewm4t_.js → create-project-dialog-BLIvPVWr.js} +1 -1
- package/dist/client/assets/{danger-oup6oh4U.js → danger-lReiiLi3.js} +1 -1
- package/dist/client/assets/{danger-zone-vsCYRE0x.js → danger-zone-B5x8MB5G.js} +1 -1
- package/dist/client/assets/{dependencies-CACLYIk-.js → dependencies-6FYvuL0W.js} +1 -1
- package/dist/client/assets/{dialog-CvddUtOS.js → dialog-CflsNx8x.js} +1 -1
- package/dist/client/assets/{dropdown-menu-CNJ1rfC3.js → dropdown-menu-DcNTx9lg.js} +1 -1
- package/dist/client/assets/{dynamic-plugin-layout-Cl4-VlSa.js → dynamic-plugin-layout-t1gg8oRt.js} +1 -1
- package/dist/client/assets/{editable-task-title-BGawVgqA.js → editable-task-title-DD2nEqgz.js} +1 -1
- package/dist/client/assets/{empty-state-CpzrK9g6.js → empty-state-BJQVSVey.js} +1 -1
- package/dist/client/assets/{empty-state-CP4jllwU.js → empty-state-XvkhVm2a.js} +1 -1
- package/dist/client/assets/{env-vars-editor-CchFdE5U.js → env-vars-editor-D0IVO2-N.js} +1 -1
- package/dist/client/assets/{extract-connection-data-_6Kh3We4.js → extract-connection-data-Dcq9_d1D.js} +1 -1
- package/dist/client/assets/{file-browser-DnLypKL_.js → file-browser-B7VwaOBu.js} +2 -2
- package/dist/client/assets/{form-DmTtx5UX.js → form-t-VTqwHW.js} +1 -1
- package/dist/client/assets/{general-W7HUJ0d1.js → general-CHmY6WCR.js} +1 -1
- package/dist/client/assets/{grid-view-DcSLIihL.js → grid-view-CObD1ODK.js} +1 -1
- package/dist/client/assets/{home-CrqfmLIg.js → home-DAdz-q5X.js} +1 -1
- package/dist/client/assets/{icon-picker-DHh5HlMd.js → icon-picker-CXAPe9ug.js} +1 -1
- package/dist/client/assets/{index-MC5fCcRU.js → index-BPNTL7B5.js} +1 -1
- package/dist/client/assets/{index-BJ81Vsww.js → index-BUP2j-VZ.js} +3 -3
- package/dist/client/assets/{index-Cv3zhjFc.js → index-C1_svsm9.js} +1 -1
- package/dist/client/assets/{index-BKYpmcE7.js → index-CRVyuFS0.js} +1 -1
- package/dist/client/assets/{index-RAS9JMxX.js → index-CZ74MLAU.js} +1 -1
- package/dist/client/assets/{index-BvJY4WDC.js → index-CgdCtkSt.js} +1 -1
- package/dist/client/assets/{index-XiB7e0AL.js → index-D-cm4gF6.js} +1 -1
- package/dist/client/assets/{index-BX8jl6GF.js → index-D2ROEW_j.js} +1 -1
- package/dist/client/assets/{index-Bb9MktBE.js → index-D9ujiDbX.js} +1 -1
- package/dist/client/assets/{index-BYvtYdJ1.js → index-iDNDhzRC.js} +1 -1
- package/dist/client/assets/{infiniteQueryObserver-DyqlIjS8.js → infiniteQueryObserver-ueKf4rCa.js} +1 -1
- package/dist/client/assets/{input-95A3RU7n.js → input-OS0sGs_c.js} +1 -1
- package/dist/client/assets/{integration-icon-DKPtAPgu.js → integration-icon-DhNWPq_0.js} +1 -1
- package/dist/client/assets/{label-CKi_xgKG.js → label-Cj5QTzyK.js} +1 -1
- package/dist/client/assets/{layout-KmDEzVfx.js → layout-BjgZH_LK.js} +1 -1
- package/dist/client/assets/{layout-CacZ9vAP.js → layout-CunxSw7b.js} +1 -1
- package/dist/client/assets/login-BF9hcIwR.js +1 -0
- package/dist/client/assets/{logo-upload-aOk9IMA5.js → logo-upload-dZtFly9d.js} +1 -1
- package/dist/client/assets/{markdown-DrAh7zaw.js → markdown-BEHkpiAe.js} +1 -1
- package/dist/client/assets/{mcp-app-renderer-CeIZPzvW.js → mcp-app-renderer-CqfIV03X.js} +1 -1
- package/dist/client/assets/{mcp-server-card-CZA2yTqZ.js → mcp-server-card-DnXtIYiQ.js} +1 -1
- package/dist/client/assets/{mcp-server-detail-Cjp4DUbD.js → mcp-server-detail-B5_9wNbY.js} +2 -2
- package/dist/client/assets/{members-dxBgS07V.js → members-BeuYhjqH.js} +1 -1
- package/dist/client/assets/{monaco-editor-BmHelGDg.js → monaco-editor-CjYCKOTC.js} +1 -1
- package/dist/client/assets/{monitoring-dashboard-edit-C0T1_3ja.js → monitoring-dashboard-edit-DvViNUXq.js} +1 -1
- package/dist/client/assets/{monitoring-dashboard-view-CDX0iyhB.js → monitoring-dashboard-view-CcuLeEOc.js} +1 -1
- package/dist/client/assets/{monitoring-Dygm51vZ.js → monitoring-hEPUjgsC.js} +1 -1
- package/dist/client/assets/{oauth-callback-Cb1hCxgk.js → oauth-callback-BhMmtwfn.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-lIzsTYGK.js → oauth-callback-ai-provider-DdW8Ak96.js} +1 -1
- package/dist/client/assets/{org-ai-providers-CoYprATW.js → org-ai-providers-BRKDGo95.js} +1 -1
- package/dist/client/assets/{page-Cu7gHbt4.js → page-4HZ9ZSA4.js} +1 -1
- package/dist/client/assets/{page-DL6abyDO.js → page-DEXUji1V.js} +1 -1
- package/dist/client/assets/{plugin-empty-state-cFVUXsMw.js → plugin-empty-state-6gk92Qyl.js} +1 -1
- package/dist/client/assets/{plugin-empty-state-DwzoJyko.js → plugin-empty-state-CXlis9nm.js} +1 -1
- package/dist/client/assets/{plugin-header-rHEUUeKT.js → plugin-header-Dne9u3jl.js} +1 -1
- package/dist/client/assets/{plugin-header-BhPYkg2t.js → plugin-header-kfwiBpJ4.js} +1 -1
- package/dist/client/assets/plugins-Ca0nbE2z.js +1 -0
- package/dist/client/assets/{popover-DAiH8HrC.js → popover-DFyjfZbz.js} +1 -1
- package/dist/client/assets/{project-app-view-C8IeiPWh.js → project-app-view-D8C1RwhY.js} +1 -1
- package/dist/client/assets/{project-layout-D1sK3RsI.js → project-layout-DoW61RN5.js} +1 -1
- package/dist/client/assets/{project-plugins-CLJvpqWA.js → project-plugins-CoTSSvm2.js} +1 -1
- package/dist/client/assets/{projects-list-D0-piP6V.js → projects-list-CDkYXY0c.js} +1 -1
- package/dist/client/assets/{readme-viewer-Cw2zVTtx.js → readme-viewer-2DAqsNDi.js} +1 -1
- package/dist/client/assets/{registry-layout-CQk4V9Fy.js → registry-layout-OLjzUiGm.js} +1 -1
- package/dist/client/assets/{registry-utils-BQ0EUN1b.js → registry-utils-DQ3Yz0aq.js} +1 -1
- package/dist/client/assets/{reports-layout-V83nUDoJ.js → reports-layout-CATRzkgZ.js} +1 -1
- package/dist/client/assets/{reset-password-DcRv69F2.js → reset-password-CBi8fGal.js} +1 -1
- package/dist/client/assets/{resizable-BRcjlpb9.js → resizable-5ZSV72uv.js} +1 -1
- package/dist/client/assets/{save-actions-Br5EOuh1.js → save-actions-BMwCSEwb.js} +1 -1
- package/dist/client/assets/{scroll-area-B93RC88a.js → scroll-area-D61RAolI.js} +1 -1
- package/dist/client/assets/{select-Iosam4nc.js → select-D2hoe72R.js} +1 -1
- package/dist/client/assets/{select-virtual-mcp-B55ZVK2k.js → select-virtual-mcp-DbjwN01X.js} +1 -1
- package/dist/client/assets/{shell-layout-BEtMdNiu.js → shell-layout-C1SmF7Hv.js} +2 -2
- package/dist/client/assets/{sidebar-settings-Zh3CDrTB.js → sidebar-settings-ZGimo8zw.js} +1 -1
- package/dist/client/assets/{skeleton-f9h0kyuC.js → skeleton-DnYWqER_.js} +1 -1
- package/dist/client/assets/{spinner-ClMTbKWw.js → spinner-CABex48W.js} +1 -1
- package/dist/client/assets/{store-invite-DQ0eTfXv.js → store-invite-BFE_gQ55.js} +1 -1
- package/dist/client/assets/{switch-2e_OzSa-.js → switch-CAcWD1sq.js} +1 -1
- package/dist/client/assets/{table-Dr847bjN.js → table-Cxzf-FHD.js} +1 -1
- package/dist/client/assets/{tabs-BlAwR39Z.js → tabs-D57oGoRB.js} +1 -1
- package/dist/client/assets/{task-status-myNxZFI-.js → task-status-D43Cwt6l.js} +1 -1
- package/dist/client/assets/tasks-BCjx4cWT.js +1 -0
- package/dist/client/assets/{tasks-panel-X0AV2-Sn.js → tasks-panel-CG3BQMOl.js} +1 -1
- package/dist/client/assets/{textarea-XcCjv61M.js → textarea-BHHzOaro.js} +1 -1
- package/dist/client/assets/{time-range-picker-_owYVo_t.js → time-range-picker-WMggaRPG.js} +1 -1
- package/dist/client/assets/{toggle-group-C_4VG-JK.js → toggle-group-BIoAHYZJ.js} +1 -1
- package/dist/client/assets/{tools-list-D9ljaQOJ.js → tools-list-x8d6J887.js} +1 -1
- package/dist/client/assets/{tooltip-DjLTvHpz.js → tooltip-CYJcicRO.js} +1 -1
- package/dist/client/assets/{topbar-portal-Bt-7uOLT.js → topbar-portal-f4GfspVt.js} +1 -1
- package/dist/client/assets/{types-B4Gd-u-3.js → types-BvJtOINP.js} +1 -1
- package/dist/client/assets/{use-automations-BeuGbjZ-.js → use-automations-BZqwiEM_.js} +1 -1
- package/dist/client/assets/{use-binding-BEPf7Gie.js → use-binding-DKk5_N9r.js} +1 -1
- package/dist/client/assets/{use-collections-BLzG3bJp.js → use-collections-DMxCeq8b.js} +1 -1
- package/dist/client/assets/{use-connection-D_u6jBgP.js → use-connection-ez0pyFtP.js} +1 -1
- package/dist/client/assets/{use-copy-8HTCCusQ.js → use-copy-CiJz8oao.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-CCZ9ZXv4.js → use-create-virtual-mcp-B8asQT4w.js} +1 -1
- package/dist/client/assets/{use-install-from-registry-B5invNZ7.js → use-install-from-registry-CfygxUq4.js} +1 -1
- package/dist/client/assets/{use-list-state-ByEy7Osm.js → use-list-state-CSB_h2rv.js} +1 -1
- package/dist/client/assets/{use-llm-VA4dgcLv.js → use-llm-76KQxHJG.js} +1 -1
- package/dist/client/assets/{use-local-storage-LMzJlC-M.js → use-local-storage-Do7hPFcT.js} +1 -1
- package/dist/client/assets/{use-mcp-prompts-BQwPUsA-.js → use-mcp-prompts-Dejjnovy.js} +1 -1
- package/dist/client/assets/{use-mcp-resources-e1qXr7bA.js → use-mcp-resources-C2GVZGS8.js} +1 -1
- package/dist/client/assets/{use-mcp-tools-CCtN3o9e.js → use-mcp-tools-JJSno6Er.js} +1 -1
- package/dist/client/assets/{use-members-C3PUprae.js → use-members-D4TXNlgc.js} +1 -1
- package/dist/client/assets/{use-mobile-DXK-sBip.js → use-mobile-Dc15vEtL.js} +1 -1
- package/dist/client/assets/{use-project-D1gauJR3.js → use-project-fmhu7bPh.js} +1 -1
- package/dist/client/assets/{use-view-mode-DThyKTt5.js → use-view-mode-DmTBDQfD.js} +1 -1
- package/dist/client/assets/{use-virtual-mcp-dbqVkjzK.js → use-virtual-mcp-94OtcwcB.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-CATkeJqj.js +1 -0
- package/dist/client/assets/{useMutation-D0WkcqTd.js → useMutation-7d0bWCn1.js} +1 -1
- package/dist/client/assets/useQuery-CN1pzVoX.js +1 -0
- package/dist/client/assets/useSuspenseInfiniteQuery-BD0TGQFj.js +1 -0
- package/dist/client/assets/{user-LylUdoHD.js → user-CztLlDB5.js} +1 -1
- package/dist/client/assets/{workflow-CA1DIkk0.js → workflow-BdfJ6OoL.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/server/node_modules/pg-cloudflare/LICENSE +21 -0
- package/dist/server/node_modules/pg-cloudflare/README.md +112 -0
- package/dist/server/node_modules/pg-cloudflare/dist/empty.d.ts +2 -0
- package/dist/server/node_modules/pg-cloudflare/dist/empty.js +6 -0
- package/dist/server/node_modules/pg-cloudflare/dist/empty.js.map +1 -0
- package/dist/server/node_modules/pg-cloudflare/dist/index.d.ts +31 -0
- package/dist/server/node_modules/pg-cloudflare/dist/index.js +152 -0
- package/dist/server/node_modules/pg-cloudflare/dist/index.js.map +1 -0
- package/dist/server/node_modules/pg-cloudflare/esm/index.mjs +3 -0
- package/dist/server/node_modules/pg-cloudflare/package.json +39 -0
- package/dist/server/node_modules/pg-cloudflare/src/empty.ts +3 -0
- package/dist/server/node_modules/pg-cloudflare/src/index.ts +166 -0
- package/dist/server/node_modules/pg-cloudflare/src/types.d.ts +25 -0
- package/dist/server/node_modules/pg-connection-string/LICENSE +21 -0
- package/dist/server/node_modules/pg-connection-string/README.md +105 -0
- package/dist/server/node_modules/pg-connection-string/esm/index.mjs +8 -0
- package/dist/server/node_modules/pg-connection-string/index.d.ts +36 -0
- package/dist/server/node_modules/pg-connection-string/index.js +231 -0
- package/dist/server/node_modules/pg-connection-string/package.json +52 -0
- package/dist/server/node_modules/pg-pool/LICENSE +21 -0
- package/dist/server/node_modules/pg-pool/README.md +357 -0
- package/dist/server/node_modules/pg-pool/esm/index.mjs +5 -0
- package/dist/server/node_modules/pg-pool/index.js +517 -0
- package/dist/server/node_modules/pg-pool/package.json +51 -0
- package/dist/server/node_modules/pg-protocol/LICENSE +21 -0
- package/dist/server/node_modules/pg-protocol/README.md +3 -0
- package/dist/server/node_modules/pg-protocol/dist/b.d.ts +1 -0
- package/dist/server/node_modules/pg-protocol/dist/b.js +23 -0
- package/dist/server/node_modules/pg-protocol/dist/b.js.map +1 -0
- package/dist/server/node_modules/pg-protocol/dist/buffer-reader.d.ts +15 -0
- package/dist/server/node_modules/pg-protocol/dist/buffer-reader.js +55 -0
- package/dist/server/node_modules/pg-protocol/dist/buffer-reader.js.map +1 -0
- package/dist/server/node_modules/pg-protocol/dist/buffer-writer.d.ts +16 -0
- package/dist/server/node_modules/pg-protocol/dist/buffer-writer.js +81 -0
- package/dist/server/node_modules/pg-protocol/dist/buffer-writer.js.map +1 -0
- package/dist/server/node_modules/pg-protocol/dist/inbound-parser.test.d.ts +1 -0
- package/dist/server/node_modules/pg-protocol/dist/inbound-parser.test.js +530 -0
- package/dist/server/node_modules/pg-protocol/dist/inbound-parser.test.js.map +1 -0
- package/dist/server/node_modules/pg-protocol/dist/index.d.ts +6 -0
- package/dist/server/node_modules/pg-protocol/dist/index.js +15 -0
- package/dist/server/node_modules/pg-protocol/dist/index.js.map +1 -0
- package/dist/server/node_modules/pg-protocol/dist/messages.d.ts +162 -0
- package/dist/server/node_modules/pg-protocol/dist/messages.js +160 -0
- package/dist/server/node_modules/pg-protocol/dist/messages.js.map +1 -0
- package/dist/server/node_modules/pg-protocol/dist/outbound-serializer.test.d.ts +1 -0
- package/dist/server/node_modules/pg-protocol/dist/outbound-serializer.test.js +252 -0
- package/dist/server/node_modules/pg-protocol/dist/outbound-serializer.test.js.map +1 -0
- package/dist/server/node_modules/pg-protocol/dist/parser.d.ts +24 -0
- package/dist/server/node_modules/pg-protocol/dist/parser.js +324 -0
- package/dist/server/node_modules/pg-protocol/dist/parser.js.map +1 -0
- package/dist/server/node_modules/pg-protocol/dist/serializer.d.ts +42 -0
- package/dist/server/node_modules/pg-protocol/dist/serializer.js +189 -0
- package/dist/server/node_modules/pg-protocol/dist/serializer.js.map +1 -0
- package/dist/server/node_modules/pg-protocol/esm/index.js +11 -0
- package/dist/server/node_modules/pg-protocol/package.json +45 -0
- package/dist/server/node_modules/pg-protocol/src/b.ts +25 -0
- package/dist/server/node_modules/pg-protocol/src/buffer-reader.ts +58 -0
- package/dist/server/node_modules/pg-protocol/src/buffer-writer.ts +85 -0
- package/dist/server/node_modules/pg-protocol/src/inbound-parser.test.ts +575 -0
- package/dist/server/node_modules/pg-protocol/src/index.ts +11 -0
- package/dist/server/node_modules/pg-protocol/src/messages.ts +262 -0
- package/dist/server/node_modules/pg-protocol/src/outbound-serializer.test.ts +276 -0
- package/dist/server/node_modules/pg-protocol/src/parser.ts +413 -0
- package/dist/server/node_modules/pg-protocol/src/serializer.ts +274 -0
- package/dist/server/node_modules/pg-protocol/src/testing/buffer-list.ts +67 -0
- package/dist/server/node_modules/pg-protocol/src/testing/test-buffers.ts +166 -0
- package/dist/server/node_modules/pg-protocol/src/types/chunky.d.ts +1 -0
- package/dist/server/node_modules/pg-types/.travis.yml +7 -0
- package/dist/server/node_modules/pg-types/Makefile +14 -0
- package/dist/server/node_modules/pg-types/README.md +75 -0
- package/dist/server/node_modules/pg-types/index.d.ts +137 -0
- package/dist/server/node_modules/pg-types/index.js +47 -0
- package/dist/server/node_modules/pg-types/index.test-d.ts +21 -0
- package/dist/server/node_modules/pg-types/lib/arrayParser.js +11 -0
- package/dist/server/node_modules/pg-types/lib/binaryParsers.js +257 -0
- package/dist/server/node_modules/pg-types/lib/builtins.js +73 -0
- package/dist/server/node_modules/pg-types/lib/textParsers.js +215 -0
- package/dist/server/node_modules/pg-types/package.json +42 -0
- package/dist/server/node_modules/pg-types/test/index.js +24 -0
- package/dist/server/node_modules/pg-types/test/types.js +597 -0
- package/dist/server/node_modules/pgpass/README.md +74 -0
- package/dist/server/node_modules/pgpass/lib/helper.js +233 -0
- package/dist/server/node_modules/pgpass/lib/index.js +23 -0
- package/dist/server/node_modules/pgpass/package.json +41 -0
- package/dist/server/node_modules/postgres-bytea/index.js +33 -0
- package/dist/server/node_modules/postgres-bytea/license +21 -0
- package/dist/server/node_modules/postgres-bytea/package.json +34 -0
- package/dist/server/node_modules/postgres-bytea/readme.md +34 -0
- package/dist/server/node_modules/postgres-interval/index.d.ts +20 -0
- package/dist/server/node_modules/postgres-interval/index.js +125 -0
- package/dist/server/node_modules/postgres-interval/license +21 -0
- package/dist/server/node_modules/postgres-interval/package.json +36 -0
- package/dist/server/node_modules/postgres-interval/readme.md +48 -0
- package/dist/server/node_modules/xtend/.jshintrc +30 -0
- package/dist/server/node_modules/xtend/LICENSE +20 -0
- package/dist/server/node_modules/xtend/README.md +32 -0
- package/dist/server/node_modules/xtend/immutable.js +19 -0
- package/dist/server/node_modules/xtend/mutable.js +17 -0
- package/dist/server/node_modules/xtend/package.json +55 -0
- package/dist/server/node_modules/xtend/test.js +103 -0
- package/package.json +1 -1
- package/dist/client/assets/constants-Dxc17JqT.js +0 -1
- package/dist/client/assets/login-jzlEVf-H.js +0 -1
- package/dist/client/assets/plugins-D8nN3ns-.js +0 -1
- package/dist/client/assets/tasks-Cg_ykzKa.js +0 -1
- package/dist/client/assets/useInfiniteQuery-6ok0NRM6.js +0 -1
- package/dist/client/assets/useQuery-DMs04NaY.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-xBbNB0pB.js +0 -1
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
pg-connection-string
|
|
2
|
+
====================
|
|
3
|
+
|
|
4
|
+
[](https://nodei.co/npm/pg-connection-string/)
|
|
5
|
+
|
|
6
|
+
Functions for dealing with a PostgresSQL connection string
|
|
7
|
+
|
|
8
|
+
`parse` method taken from [node-postgres](https://github.com/brianc/node-postgres.git)
|
|
9
|
+
Copyright (c) 2010-2014 Brian Carlson (brian.m.carlson@gmail.com)
|
|
10
|
+
MIT License
|
|
11
|
+
|
|
12
|
+
## Usage
|
|
13
|
+
|
|
14
|
+
```js
|
|
15
|
+
const parse = require('pg-connection-string').parse;
|
|
16
|
+
|
|
17
|
+
const config = parse('postgres://someuser:somepassword@somehost:381/somedatabase')
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
The resulting config contains a subset of the following properties:
|
|
21
|
+
|
|
22
|
+
* `user` - User with which to authenticate to the server
|
|
23
|
+
* `password` - Corresponding password
|
|
24
|
+
* `host` - Postgres server hostname or, for UNIX domain sockets, the socket filename
|
|
25
|
+
* `port` - port on which to connect
|
|
26
|
+
* `database` - Database name within the server
|
|
27
|
+
* `client_encoding` - string encoding the client will use
|
|
28
|
+
* `ssl`, either a boolean or an object with properties
|
|
29
|
+
* `rejectUnauthorized`
|
|
30
|
+
* `cert`
|
|
31
|
+
* `key`
|
|
32
|
+
* `ca`
|
|
33
|
+
* any other query parameters (for example, `application_name`) are preserved intact.
|
|
34
|
+
|
|
35
|
+
### ClientConfig Compatibility for TypeScript
|
|
36
|
+
|
|
37
|
+
The pg-connection-string `ConnectionOptions` interface is not compatible with the `ClientConfig` interface that [pg.Client](https://node-postgres.com/apis/client) expects. To remedy this, use the `parseIntoClientConfig` function instead of `parse`:
|
|
38
|
+
|
|
39
|
+
```ts
|
|
40
|
+
import { ClientConfig } from 'pg';
|
|
41
|
+
import { parseIntoClientConfig } from 'pg-connection-string';
|
|
42
|
+
|
|
43
|
+
const config: ClientConfig = parseIntoClientConfig('postgres://someuser:somepassword@somehost:381/somedatabase')
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
You can also use `toClientConfig` to convert an existing `ConnectionOptions` interface into a `ClientConfig` interface:
|
|
47
|
+
|
|
48
|
+
```ts
|
|
49
|
+
import { ClientConfig } from 'pg';
|
|
50
|
+
import { parse, toClientConfig } from 'pg-connection-string';
|
|
51
|
+
|
|
52
|
+
const config = parse('postgres://someuser:somepassword@somehost:381/somedatabase')
|
|
53
|
+
const clientConfig: ClientConfig = toClientConfig(config)
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Connection Strings
|
|
57
|
+
|
|
58
|
+
The short summary of acceptable URLs is:
|
|
59
|
+
|
|
60
|
+
* `socket:<path>?<query>` - UNIX domain socket
|
|
61
|
+
* `postgres://<user>:<password>@<host>:<port>/<database>?<query>` - TCP connection
|
|
62
|
+
|
|
63
|
+
But see below for more details.
|
|
64
|
+
|
|
65
|
+
### UNIX Domain Sockets
|
|
66
|
+
|
|
67
|
+
When user and password are not given, the socket path follows `socket:`, as in `socket:/var/run/pgsql`.
|
|
68
|
+
This form can be shortened to just a path: `/var/run/pgsql`.
|
|
69
|
+
|
|
70
|
+
When user and password are given, they are included in the typical URL positions, with an empty `host`, as in `socket://user:pass@/var/run/pgsql`.
|
|
71
|
+
|
|
72
|
+
Query parameters follow a `?` character, including the following special query parameters:
|
|
73
|
+
|
|
74
|
+
* `db=<database>` - sets the database name (urlencoded)
|
|
75
|
+
* `encoding=<encoding>` - sets the `client_encoding` property
|
|
76
|
+
|
|
77
|
+
### TCP Connections
|
|
78
|
+
|
|
79
|
+
TCP connections to the Postgres server are indicated with `pg:` or `postgres:` schemes (in fact, any scheme but `socket:` is accepted).
|
|
80
|
+
If username and password are included, they should be urlencoded.
|
|
81
|
+
The database name, however, should *not* be urlencoded.
|
|
82
|
+
|
|
83
|
+
Query parameters follow a `?` character, including the following special query parameters:
|
|
84
|
+
* `host=<host>` - sets `host` property, overriding the URL's host
|
|
85
|
+
* `encoding=<encoding>` - sets the `client_encoding` property
|
|
86
|
+
* `ssl=1`, `ssl=true`, `ssl=0`, `ssl=false` - sets `ssl` to true or false, accordingly
|
|
87
|
+
* `uselibpqcompat=true` - use libpq semantics
|
|
88
|
+
* `sslmode=<sslmode>` when `uselibpqcompat=true` is not set
|
|
89
|
+
* `sslmode=disable` - sets `ssl` to false
|
|
90
|
+
* `sslmode=no-verify` - sets `ssl` to `{ rejectUnauthorized: false }`
|
|
91
|
+
* `sslmode=prefer`, `sslmode=require`, `sslmode=verify-ca`, `sslmode=verify-full` - sets `ssl` to true
|
|
92
|
+
* `sslmode=<sslmode>` when `uselibpqcompat=true`
|
|
93
|
+
* `sslmode=disable` - sets `ssl` to false
|
|
94
|
+
* `sslmode=prefer` - sets `ssl` to `{ rejectUnauthorized: false }`
|
|
95
|
+
* `sslmode=require` - sets `ssl` to `{ rejectUnauthorized: false }` unless `sslrootcert` is specified, in which case it behaves like `verify-ca`
|
|
96
|
+
* `sslmode=verify-ca` - sets `ssl` to `{ checkServerIdentity: no-op }` (verify CA, but not server identity). This verifies the presented certificate against the effective CA specified in sslrootcert.
|
|
97
|
+
* `sslmode=verify-full` - sets `ssl` to `{}` (verify CA and server identity)
|
|
98
|
+
* `sslcert=<filename>` - reads data from the given file and includes the result as `ssl.cert`
|
|
99
|
+
* `sslkey=<filename>` - reads data from the given file and includes the result as `ssl.key`
|
|
100
|
+
* `sslrootcert=<filename>` - reads data from the given file and includes the result as `ssl.ca`
|
|
101
|
+
|
|
102
|
+
A bare relative URL, such as `salesdata`, will indicate a database name while leaving other properties empty.
|
|
103
|
+
|
|
104
|
+
> [!CAUTION]
|
|
105
|
+
> Choosing an sslmode other than verify-full has serious security implications. Please read https://www.postgresql.org/docs/current/libpq-ssl.html#LIBPQ-SSL-SSLMODE-STATEMENTS to understand the trade-offs.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// ESM wrapper for pg-connection-string
|
|
2
|
+
import connectionString from '../index.js'
|
|
3
|
+
|
|
4
|
+
// Re-export the parse function
|
|
5
|
+
export default connectionString.parse
|
|
6
|
+
export const parse = connectionString.parse
|
|
7
|
+
export const toClientConfig = connectionString.toClientConfig
|
|
8
|
+
export const parseIntoClientConfig = connectionString.parseIntoClientConfig
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { ClientConfig } from 'pg'
|
|
2
|
+
|
|
3
|
+
export function parse(connectionString: string, options?: Options): ConnectionOptions
|
|
4
|
+
|
|
5
|
+
export interface Options {
|
|
6
|
+
// Use libpq semantics when interpreting the connection string
|
|
7
|
+
useLibpqCompat?: boolean
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
interface SSLConfig {
|
|
11
|
+
ca?: string
|
|
12
|
+
cert?: string | null
|
|
13
|
+
key?: string
|
|
14
|
+
rejectUnauthorized?: boolean
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export interface ConnectionOptions {
|
|
18
|
+
host: string | null
|
|
19
|
+
password?: string
|
|
20
|
+
user?: string
|
|
21
|
+
port?: string | null
|
|
22
|
+
database: string | null | undefined
|
|
23
|
+
client_encoding?: string
|
|
24
|
+
ssl?: boolean | string | SSLConfig
|
|
25
|
+
|
|
26
|
+
application_name?: string
|
|
27
|
+
fallback_application_name?: string
|
|
28
|
+
options?: string
|
|
29
|
+
keepalives?: number
|
|
30
|
+
|
|
31
|
+
// We allow any other options to be passed through
|
|
32
|
+
[key: string]: unknown
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export function toClientConfig(config: ConnectionOptions): ClientConfig
|
|
36
|
+
export function parseIntoClientConfig(connectionString: string): ClientConfig
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
//Parse method copied from https://github.com/brianc/node-postgres
|
|
4
|
+
//Copyright (c) 2010-2014 Brian Carlson (brian.m.carlson@gmail.com)
|
|
5
|
+
//MIT License
|
|
6
|
+
|
|
7
|
+
//parses a connection string
|
|
8
|
+
function parse(str, options = {}) {
|
|
9
|
+
//unix socket
|
|
10
|
+
if (str.charAt(0) === '/') {
|
|
11
|
+
const config = str.split(' ')
|
|
12
|
+
return { host: config[0], database: config[1] }
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// Check for empty host in URL
|
|
16
|
+
|
|
17
|
+
const config = {}
|
|
18
|
+
let result
|
|
19
|
+
let dummyHost = false
|
|
20
|
+
if (/ |%[^a-f0-9]|%[a-f0-9][^a-f0-9]/i.test(str)) {
|
|
21
|
+
// Ensure spaces are encoded as %20
|
|
22
|
+
str = encodeURI(str).replace(/%25(\d\d)/g, '%$1')
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
try {
|
|
26
|
+
try {
|
|
27
|
+
result = new URL(str, 'postgres://base')
|
|
28
|
+
} catch (e) {
|
|
29
|
+
// The URL is invalid so try again with a dummy host
|
|
30
|
+
result = new URL(str.replace('@/', '@___DUMMY___/'), 'postgres://base')
|
|
31
|
+
dummyHost = true
|
|
32
|
+
}
|
|
33
|
+
} catch (err) {
|
|
34
|
+
// Remove the input from the error message to avoid leaking sensitive information
|
|
35
|
+
err.input && (err.input = '*****REDACTED*****')
|
|
36
|
+
throw err
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// We'd like to use Object.fromEntries() here but Node.js 10 does not support it
|
|
40
|
+
for (const entry of result.searchParams.entries()) {
|
|
41
|
+
config[entry[0]] = entry[1]
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
config.user = config.user || decodeURIComponent(result.username)
|
|
45
|
+
config.password = config.password || decodeURIComponent(result.password)
|
|
46
|
+
|
|
47
|
+
if (result.protocol == 'socket:') {
|
|
48
|
+
config.host = decodeURI(result.pathname)
|
|
49
|
+
config.database = result.searchParams.get('db')
|
|
50
|
+
config.client_encoding = result.searchParams.get('encoding')
|
|
51
|
+
return config
|
|
52
|
+
}
|
|
53
|
+
const hostname = dummyHost ? '' : result.hostname
|
|
54
|
+
if (!config.host) {
|
|
55
|
+
// Only set the host if there is no equivalent query param.
|
|
56
|
+
config.host = decodeURIComponent(hostname)
|
|
57
|
+
} else if (hostname && /^%2f/i.test(hostname)) {
|
|
58
|
+
// Only prepend the hostname to the pathname if it is not a URL encoded Unix socket host.
|
|
59
|
+
result.pathname = hostname + result.pathname
|
|
60
|
+
}
|
|
61
|
+
if (!config.port) {
|
|
62
|
+
// Only set the port if there is no equivalent query param.
|
|
63
|
+
config.port = result.port
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
const pathname = result.pathname.slice(1) || null
|
|
67
|
+
config.database = pathname ? decodeURI(pathname) : null
|
|
68
|
+
|
|
69
|
+
if (config.ssl === 'true' || config.ssl === '1') {
|
|
70
|
+
config.ssl = true
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
if (config.ssl === '0') {
|
|
74
|
+
config.ssl = false
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
if (config.sslcert || config.sslkey || config.sslrootcert || config.sslmode) {
|
|
78
|
+
config.ssl = {}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// Only try to load fs if we expect to read from the disk
|
|
82
|
+
const fs = config.sslcert || config.sslkey || config.sslrootcert ? require('fs') : null
|
|
83
|
+
|
|
84
|
+
if (config.sslcert) {
|
|
85
|
+
config.ssl.cert = fs.readFileSync(config.sslcert).toString()
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
if (config.sslkey) {
|
|
89
|
+
config.ssl.key = fs.readFileSync(config.sslkey).toString()
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
if (config.sslrootcert) {
|
|
93
|
+
config.ssl.ca = fs.readFileSync(config.sslrootcert).toString()
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
if (options.useLibpqCompat && config.uselibpqcompat) {
|
|
97
|
+
throw new Error('Both useLibpqCompat and uselibpqcompat are set. Please use only one of them.')
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
if (config.uselibpqcompat === 'true' || options.useLibpqCompat) {
|
|
101
|
+
switch (config.sslmode) {
|
|
102
|
+
case 'disable': {
|
|
103
|
+
config.ssl = false
|
|
104
|
+
break
|
|
105
|
+
}
|
|
106
|
+
case 'prefer': {
|
|
107
|
+
config.ssl.rejectUnauthorized = false
|
|
108
|
+
break
|
|
109
|
+
}
|
|
110
|
+
case 'require': {
|
|
111
|
+
if (config.sslrootcert) {
|
|
112
|
+
// If a root CA is specified, behavior of `sslmode=require` will be the same as that of `verify-ca`
|
|
113
|
+
config.ssl.checkServerIdentity = function () {}
|
|
114
|
+
} else {
|
|
115
|
+
config.ssl.rejectUnauthorized = false
|
|
116
|
+
}
|
|
117
|
+
break
|
|
118
|
+
}
|
|
119
|
+
case 'verify-ca': {
|
|
120
|
+
if (!config.ssl.ca) {
|
|
121
|
+
throw new Error(
|
|
122
|
+
'SECURITY WARNING: Using sslmode=verify-ca requires specifying a CA with sslrootcert. If a public CA is used, verify-ca allows connections to a server that somebody else may have registered with the CA, making you vulnerable to Man-in-the-Middle attacks. Either specify a custom CA certificate with sslrootcert parameter or use sslmode=verify-full for proper security.'
|
|
123
|
+
)
|
|
124
|
+
}
|
|
125
|
+
config.ssl.checkServerIdentity = function () {}
|
|
126
|
+
break
|
|
127
|
+
}
|
|
128
|
+
case 'verify-full': {
|
|
129
|
+
break
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
} else {
|
|
133
|
+
switch (config.sslmode) {
|
|
134
|
+
case 'disable': {
|
|
135
|
+
config.ssl = false
|
|
136
|
+
break
|
|
137
|
+
}
|
|
138
|
+
case 'prefer':
|
|
139
|
+
case 'require':
|
|
140
|
+
case 'verify-ca':
|
|
141
|
+
case 'verify-full': {
|
|
142
|
+
if (config.sslmode !== 'verify-full') {
|
|
143
|
+
deprecatedSslModeWarning(config.sslmode)
|
|
144
|
+
}
|
|
145
|
+
break
|
|
146
|
+
}
|
|
147
|
+
case 'no-verify': {
|
|
148
|
+
config.ssl.rejectUnauthorized = false
|
|
149
|
+
break
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
return config
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
// convert pg-connection-string ssl config to a ClientConfig.ConnectionOptions
|
|
158
|
+
function toConnectionOptions(sslConfig) {
|
|
159
|
+
const connectionOptions = Object.entries(sslConfig).reduce((c, [key, value]) => {
|
|
160
|
+
// we explicitly check for undefined and null instead of `if (value)` because some
|
|
161
|
+
// options accept falsy values. Example: `ssl.rejectUnauthorized = false`
|
|
162
|
+
if (value !== undefined && value !== null) {
|
|
163
|
+
c[key] = value
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
return c
|
|
167
|
+
}, {})
|
|
168
|
+
|
|
169
|
+
return connectionOptions
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
// convert pg-connection-string config to a ClientConfig
|
|
173
|
+
function toClientConfig(config) {
|
|
174
|
+
const poolConfig = Object.entries(config).reduce((c, [key, value]) => {
|
|
175
|
+
if (key === 'ssl') {
|
|
176
|
+
const sslConfig = value
|
|
177
|
+
|
|
178
|
+
if (typeof sslConfig === 'boolean') {
|
|
179
|
+
c[key] = sslConfig
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
if (typeof sslConfig === 'object') {
|
|
183
|
+
c[key] = toConnectionOptions(sslConfig)
|
|
184
|
+
}
|
|
185
|
+
} else if (value !== undefined && value !== null) {
|
|
186
|
+
if (key === 'port') {
|
|
187
|
+
// when port is not specified, it is converted into an empty string
|
|
188
|
+
// we want to avoid NaN or empty string as a values in ClientConfig
|
|
189
|
+
if (value !== '') {
|
|
190
|
+
const v = parseInt(value, 10)
|
|
191
|
+
if (isNaN(v)) {
|
|
192
|
+
throw new Error(`Invalid ${key}: ${value}`)
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
c[key] = v
|
|
196
|
+
}
|
|
197
|
+
} else {
|
|
198
|
+
c[key] = value
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
return c
|
|
203
|
+
}, {})
|
|
204
|
+
|
|
205
|
+
return poolConfig
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
// parses a connection string into ClientConfig
|
|
209
|
+
function parseIntoClientConfig(str) {
|
|
210
|
+
return toClientConfig(parse(str))
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
function deprecatedSslModeWarning(sslmode) {
|
|
214
|
+
if (!deprecatedSslModeWarning.warned && typeof process !== 'undefined' && process.emitWarning) {
|
|
215
|
+
deprecatedSslModeWarning.warned = true
|
|
216
|
+
process.emitWarning(`SECURITY WARNING: The SSL modes 'prefer', 'require', and 'verify-ca' are treated as aliases for 'verify-full'.
|
|
217
|
+
In the next major version (pg-connection-string v3.0.0 and pg v9.0.0), these modes will adopt standard libpq semantics, which have weaker security guarantees.
|
|
218
|
+
|
|
219
|
+
To prepare for this change:
|
|
220
|
+
- If you want the current behavior, explicitly use 'sslmode=verify-full'
|
|
221
|
+
- If you want libpq compatibility now, use 'uselibpqcompat=true&sslmode=${sslmode}'
|
|
222
|
+
|
|
223
|
+
See https://www.postgresql.org/docs/current/libpq-ssl.html for libpq SSL mode definitions.`)
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
module.exports = parse
|
|
228
|
+
|
|
229
|
+
parse.parse = parse
|
|
230
|
+
parse.toClientConfig = toClientConfig
|
|
231
|
+
parse.parseIntoClientConfig = parseIntoClientConfig
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "pg-connection-string",
|
|
3
|
+
"version": "2.12.0",
|
|
4
|
+
"description": "Functions for dealing with a PostgresSQL connection string",
|
|
5
|
+
"main": "./index.js",
|
|
6
|
+
"types": "./index.d.ts",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"types": "./index.d.ts",
|
|
10
|
+
"import": "./esm/index.mjs",
|
|
11
|
+
"require": "./index.js",
|
|
12
|
+
"default": "./index.js"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"scripts": {
|
|
16
|
+
"test": "nyc --reporter=lcov mocha && npm run check-coverage",
|
|
17
|
+
"check-coverage": "nyc check-coverage --statements 100 --branches 100 --lines 100 --functions 100"
|
|
18
|
+
},
|
|
19
|
+
"repository": {
|
|
20
|
+
"type": "git",
|
|
21
|
+
"url": "git://github.com/brianc/node-postgres.git",
|
|
22
|
+
"directory": "packages/pg-connection-string"
|
|
23
|
+
},
|
|
24
|
+
"keywords": [
|
|
25
|
+
"pg",
|
|
26
|
+
"connection",
|
|
27
|
+
"string",
|
|
28
|
+
"parse"
|
|
29
|
+
],
|
|
30
|
+
"author": "Blaine Bublitz <blaine@iceddev.com> (http://iceddev.com/)",
|
|
31
|
+
"license": "MIT",
|
|
32
|
+
"bugs": {
|
|
33
|
+
"url": "https://github.com/brianc/node-postgres/issues"
|
|
34
|
+
},
|
|
35
|
+
"homepage": "https://github.com/brianc/node-postgres/tree/master/packages/pg-connection-string",
|
|
36
|
+
"devDependencies": {
|
|
37
|
+
"@types/pg": "^8.12.0",
|
|
38
|
+
"chai": "^4.1.1",
|
|
39
|
+
"coveralls": "^3.0.4",
|
|
40
|
+
"istanbul": "^0.4.5",
|
|
41
|
+
"mocha": "^11.7.5",
|
|
42
|
+
"nyc": "^15",
|
|
43
|
+
"tsx": "^4.19.4",
|
|
44
|
+
"typescript": "^4.0.3"
|
|
45
|
+
},
|
|
46
|
+
"files": [
|
|
47
|
+
"index.js",
|
|
48
|
+
"index.d.ts",
|
|
49
|
+
"esm"
|
|
50
|
+
],
|
|
51
|
+
"gitHead": "c9070cc8d526fca65780cedc25c1966b57cf7532"
|
|
52
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2017 Brian M. Carlson
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|