decocms 2.176.0 → 2.176.2

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.
Files changed (318) hide show
  1. package/dist/client/assets/{AlertCircle-PBJUtpjc.js → AlertCircle-BWr4XQe9.js} +1 -1
  2. package/dist/client/assets/{AlignLeft-CddYwC43.js → AlignLeft-BJyvDaBk.js} +1 -1
  3. package/dist/client/assets/{ArrowDown-LiBnMzQV.js → ArrowDown-BPMtK04S.js} +1 -1
  4. package/dist/client/assets/{ArrowLeft-BHzi0YLf.js → ArrowLeft-GOjXvqCa.js} +1 -1
  5. package/dist/client/assets/{ArrowUp-WIHiBhdv.js → ArrowUp-DqOjcDuh.js} +1 -1
  6. package/dist/client/assets/{Building02-c7FCt8-6.js → Building02-D_v8ZXC2.js} +1 -1
  7. package/dist/client/assets/{Check-Bme4aNg5.js → Check-DAFdA2oM.js} +1 -1
  8. package/dist/client/assets/{CheckCircle-BSVa-h_Y.js → CheckCircle-BL2mIAJn.js} +1 -1
  9. package/dist/client/assets/{CheckVerified02-e9BOcL0K.js → CheckVerified02-YYsvmiw4.js} +1 -1
  10. package/dist/client/assets/{ChevronDown-jyPVRLzp.js → ChevronDown-C-3qjfHK.js} +1 -1
  11. package/dist/client/assets/{ChevronLeft-Bn35AKxx.js → ChevronLeft-Dugo1z8_.js} +1 -1
  12. package/dist/client/assets/{ChevronRight-Ct9VK1GH.js → ChevronRight-B3gSyJmK.js} +1 -1
  13. package/dist/client/assets/{ChevronUp-B5BOcmGB.js → ChevronUp-Rk5dLXNx.js} +1 -1
  14. package/dist/client/assets/{Clock-Bwl2wOhM.js → Clock-Ccv6eV04.js} +1 -1
  15. package/dist/client/assets/{Code01-DygQPwlG.js → Code01-CoEt5nyY.js} +1 -1
  16. package/dist/client/assets/{Container-BeAIfNvy.js → Container-CQmXt7Nc.js} +1 -1
  17. package/dist/client/assets/{Copy01-ekqsSfJN.js → Copy01-D7uh0hW0.js} +1 -1
  18. package/dist/client/assets/{Dataflow03-BGqN1hrV.js → Dataflow03-ccC0qbkR.js} +1 -1
  19. package/dist/client/assets/{DotsHorizontal-BYFCLgks.js → DotsHorizontal-C3QGwRko.js} +1 -1
  20. package/dist/client/assets/{DotsVertical-Dn5mVo7u.js → DotsVertical-D5tMnzaQ.js} +1 -1
  21. package/dist/client/assets/{Download01-DQJbGhrI.js → Download01-BDm0aKH5.js} +1 -1
  22. package/dist/client/assets/{Edit01-BxDvpu_b.js → Edit01-DEd4k1xo.js} +1 -1
  23. package/dist/client/assets/{Edit05-Bta0rpFO.js → Edit05-RRC6ol7j.js} +1 -1
  24. package/dist/client/assets/{Eye-DN-kY_sb.js → Eye-MRRTHIte.js} +1 -1
  25. package/dist/client/assets/{EyeOff-E0TupCAH.js → EyeOff-CgRP1cSC.js} +1 -1
  26. package/dist/client/assets/{File02-Cyzf2kpD.js → File02-DdRvGWJN.js} +1 -1
  27. package/dist/client/assets/{File06-Ba0KxpWu.js → File06-DbRSeish.js} +1 -1
  28. package/dist/client/assets/{FilterLines-Ce9H-AFe.js → FilterLines-nV8jE7JI.js} +1 -1
  29. package/dist/client/assets/{Globe01-Cks65mCV.js → Globe01-Bb7jNfEM.js} +1 -1
  30. package/dist/client/assets/{Globe02-CB2InS06.js → Globe02-CDBspixd.js} +1 -1
  31. package/dist/client/assets/{Grid01-BvWQ72pJ.js → Grid01-COkHqk9k.js} +1 -1
  32. package/dist/client/assets/{Home02-C33y4DXe.js → Home02-Bjdq3zLu.js} +1 -1
  33. package/dist/client/assets/{Image01-B9BH_f0p.js → Image01-D4-tispo.js} +1 -1
  34. package/dist/client/assets/{Inbox01-ZPruuuHz.js → Inbox01-DiWhz3sk.js} +1 -1
  35. package/dist/client/assets/{InfoCircle-ETSHVG2F.js → InfoCircle-tftxVx0C.js} +1 -1
  36. package/dist/client/assets/{Key01-CdH7i8vY.js → Key01-Cv0XYLbb.js} +1 -1
  37. package/dist/client/assets/{LayersTwo01-8gQGsURS.js → LayersTwo01-DdRcHsrK.js} +1 -1
  38. package/dist/client/assets/{LayoutLeft-Bn9kcy6T.js → LayoutLeft-BuqgN7z4.js} +1 -1
  39. package/dist/client/assets/{Link01-B4s1G5Jr.js → Link01-Bo114MSv.js} +1 -1
  40. package/dist/client/assets/{LinkExternal01-B5VTVW6k.js → LinkExternal01-Div7VvWd.js} +1 -1
  41. package/dist/client/assets/{List-BU70NJSh.js → List-_Z2X7aPf.js} +1 -1
  42. package/dist/client/assets/{Loading01-Dt16NixZ.js → Loading01-BYjTtpy0.js} +1 -1
  43. package/dist/client/assets/{Lock01-DZeZ3WxC.js → Lock01-j13GCiRT.js} +1 -1
  44. package/dist/client/assets/{Play-WAyK_VUq.js → Play-BOK5c4Hp.js} +1 -1
  45. package/dist/client/assets/{Plus-DN4FtVmx.js → Plus-1vH_gFoY.js} +1 -1
  46. package/dist/client/assets/{RefreshCcw01-B88e0cNw.js → RefreshCcw01-ghOVEWuz.js} +1 -1
  47. package/dist/client/assets/{Save01-BCInJWrH.js → Save01-43mxrIvD.js} +1 -1
  48. package/dist/client/assets/{SearchMd-BQseJVRu.js → SearchMd-Dn4cWwEm.js} +1 -1
  49. package/dist/client/assets/{Settings01-CS4vVmx5.js → Settings01-B3FNPQBg.js} +1 -1
  50. package/dist/client/assets/{Shield01-BZpNsAZG.js → Shield01-0suO3hAe.js} +1 -1
  51. package/dist/client/assets/{Terminal-BDeJ6lHB.js → Terminal-CvfSVl9m.js} +1 -1
  52. package/dist/client/assets/{Tool01-xNX6v26H.js → Tool01-3i6uRXKJ.js} +1 -1
  53. package/dist/client/assets/{Trash01-PnuUudMl.js → Trash01-Dmi4vR7Q.js} +1 -1
  54. package/dist/client/assets/{Upload01-CSDtabhZ.js → Upload01-Cqh5tD2o.js} +1 -1
  55. package/dist/client/assets/{Users03-rAyzQyh3.js → Users03-CUiUl0DH.js} +1 -1
  56. package/dist/client/assets/{X-CxZVsh3L.js → X-Car5B1de.js} +1 -1
  57. package/dist/client/assets/{XClose-hdsxwv2G.js → XClose-D08ltwBw.js} +1 -1
  58. package/dist/client/assets/{Zap-azdz5wfI.js → Zap-CbjhdbUU.js} +1 -1
  59. package/dist/client/assets/{agent-connections-preview-XZw5-X3u.js → agent-connections-preview-Dv4euUYL.js} +1 -1
  60. package/dist/client/assets/{agent-detail-BJSxCMs1.js → agent-detail-BignzT6b.js} +1 -1
  61. package/dist/client/assets/{agents-DQWRQl2B.js → agents-DRDlT25N.js} +1 -1
  62. package/dist/client/assets/{ai-providers-logos-DPOiBl7V.js → ai-providers-logos-4n_w8l7D.js} +1 -1
  63. package/dist/client/assets/{alert-dialog-DdwA_v8c.js → alert-dialog-BZtQAioB.js} +1 -1
  64. package/dist/client/assets/{auth-catchall-WCsr2pQN.js → auth-catchall-BorI3Y5Q.js} +1 -1
  65. package/dist/client/assets/{automation-detail-BZk6VK2r.js → automation-detail-MAP63xhb.js} +1 -1
  66. package/dist/client/assets/{automations-B0oZ4Oep.js → automations-CXEh0WQH.js} +1 -1
  67. package/dist/client/assets/{avatar-CXKBBJaI.js → avatar-DEdDAQ0j.js} +1 -1
  68. package/dist/client/assets/{badge-BfLRgdaW.js → badge-BTw8dF6C.js} +1 -1
  69. package/dist/client/assets/{binder-B5Q0NNkg.js → binder-B2xnCBeC.js} +1 -1
  70. package/dist/client/assets/{breadcrumb-BhQI8Xw3.js → breadcrumb-CcE89MsN.js} +1 -1
  71. package/dist/client/assets/{card-B8QXMrj8.js → card-B6XTMOTf.js} +1 -1
  72. package/dist/client/assets/{checkbox-C5Om9oxx.js → checkbox-BA_JFbx4.js} +1 -1
  73. package/dist/client/assets/{collapsible-MCSgly5t.js → collapsible-CW12HasT.js} +1 -1
  74. package/dist/client/assets/{collection-detail-CrytnlOI.js → collection-detail-DTZ81ye0.js} +1 -1
  75. package/dist/client/assets/{collection-display-button-D7NovPlc.js → collection-display-button-BJQ_VSFQ.js} +1 -1
  76. package/dist/client/assets/{collection-search-DDX1Zkg7.js → collection-search-D6ILFEtf.js} +1 -1
  77. package/dist/client/assets/{collection-table-wrapper-YGokzak8.js → collection-table-wrapper-D0JGm79B.js} +1 -1
  78. package/dist/client/assets/{collection-tabs-D8NPXaOU.js → collection-tabs-fsXO7rse.js} +1 -1
  79. package/dist/client/assets/{command-BVlE6-p8.js → command-DwfoahUI.js} +1 -1
  80. package/dist/client/assets/{connection-card-D0Hulz9h.js → connection-card-CoZ_ixiG.js} +1 -1
  81. package/dist/client/assets/{connection-detail-C-Ge5CVn.js → connection-detail-BPi4jlBF.js} +1 -1
  82. package/dist/client/assets/{connection-status-CxcA3Thg.js → connection-status-CulzjjXt.js} +1 -1
  83. package/dist/client/assets/{connections-DWyHpNQR.js → connections-2fSWPLii.js} +1 -1
  84. package/dist/client/assets/{constants-CKGlP4oN.js → constants-CLw0F8Mm.js} +1 -1
  85. package/dist/client/assets/constants-D3bMpbG0.js +1 -0
  86. package/dist/client/assets/{context-ow-zK3BP.js → context-ClUgEsLK.js} +1 -1
  87. package/dist/client/assets/{create-organization-dialog-CFn_U9MK.js → create-organization-dialog-CNZiViYc.js} +1 -1
  88. package/dist/client/assets/{create-project-dialog-Rt5_XeVq.js → create-project-dialog-QYAKiAC_.js} +1 -1
  89. package/dist/client/assets/{danger-CgzhgW7h.js → danger-1mM9iHWV.js} +1 -1
  90. package/dist/client/assets/{danger-zone-CvDs5VVH.js → danger-zone-DSO2EIjr.js} +1 -1
  91. package/dist/client/assets/{dependencies-BbmKfxYe.js → dependencies-DtSMIESZ.js} +1 -1
  92. package/dist/client/assets/{dialog-COv8XUO0.js → dialog-ZIc7OUaM.js} +1 -1
  93. package/dist/client/assets/{dropdown-menu-Cr1iKfFo.js → dropdown-menu-EcTFyr4x.js} +1 -1
  94. package/dist/client/assets/{dynamic-plugin-layout-BIVc19gr.js → dynamic-plugin-layout-D40fWFup.js} +1 -1
  95. package/dist/client/assets/{editable-task-title-CrGgc8Hx.js → editable-task-title-CeJC7Fwa.js} +1 -1
  96. package/dist/client/assets/{empty-state-DsQ7yRoE.js → empty-state-gZUVmgL7.js} +1 -1
  97. package/dist/client/assets/{empty-state-CsEI90cv.js → empty-state-m7QcZ687.js} +1 -1
  98. package/dist/client/assets/{env-vars-editor-r00KzDtj.js → env-vars-editor-CIM7XauD.js} +1 -1
  99. package/dist/client/assets/{extract-connection-data-D46U8dB4.js → extract-connection-data-DEaEvOm7.js} +1 -1
  100. package/dist/client/assets/{file-browser-C8BCEBfL.js → file-browser-ChPNBU91.js} +2 -2
  101. package/dist/client/assets/{form-CZrleug2.js → form-Cd_AEgzv.js} +1 -1
  102. package/dist/client/assets/{general-39EgW9sq.js → general-mH6Dkpor.js} +1 -1
  103. package/dist/client/assets/{grid-view-CYvRmpTY.js → grid-view-C9tD8dqF.js} +1 -1
  104. package/dist/client/assets/{home-CwDvuqcO.js → home-icifeNIm.js} +1 -1
  105. package/dist/client/assets/{index-cEL2CgNm.js → index-BPs3Pxaa.js} +1 -1
  106. package/dist/client/assets/{index-Bc75bxbq.js → index-Bg2XE05Y.js} +1 -1
  107. package/dist/client/assets/{index-B23wyLB_.js → index-BrqeZa9X.js} +1 -1
  108. package/dist/client/assets/{index-DRLd-piX.js → index-CRi6734Z.js} +1 -1
  109. package/dist/client/assets/{index-CVyJGNS2.js → index-CfjT_Fv-.js} +1 -1
  110. package/dist/client/assets/{index-CT-515LV.js → index-Cg4edYBM.js} +1 -1
  111. package/dist/client/assets/{index-sEMWxAyS.js → index-Cz_J9f63.js} +1 -1
  112. package/dist/client/assets/{index-CsqngJxb.js → index-DKWOGpkx.js} +1 -1
  113. package/dist/client/assets/{index-BlBXXIdz.js → index-Dk4FCobs.js} +1 -1
  114. package/dist/client/assets/{index-iqPDmcBY.js → index-DxqOk4x4.js} +1 -1
  115. package/dist/client/assets/{index-B_DxRVw1.js → index-OyLnxARk.js} +3 -3
  116. package/dist/client/assets/{infiniteQueryObserver-DNhlrWmr.js → infiniteQueryObserver-BkZg7AVk.js} +1 -1
  117. package/dist/client/assets/{input-DqwWeNgs.js → input-B4YrZuiK.js} +1 -1
  118. package/dist/client/assets/{integration-icon-Dv0HduyT.js → integration-icon-B3aufi6R.js} +1 -1
  119. package/dist/client/assets/{label--AQoxbpU.js → label-BoRKSV_h.js} +1 -1
  120. package/dist/client/assets/{layout-Cji69-Fr.js → layout-C2-eT_B4.js} +1 -1
  121. package/dist/client/assets/{layout-CDyeWvbl.js → layout-DwPAPIK-.js} +1 -1
  122. package/dist/client/assets/{login-D1A8YvmQ.js → login-CYxKPB-k.js} +1 -1
  123. package/dist/client/assets/{logo-upload-BlIbeyor.js → logo-upload-DsXuRpYi.js} +1 -1
  124. package/dist/client/assets/{mcp-app-renderer-D7CJTHIn.js → mcp-app-renderer-KZyUYhBW.js} +1 -1
  125. package/dist/client/assets/{mcp-server-card-PhaJL10h.js → mcp-server-card-mO0UAT9W.js} +1 -1
  126. package/dist/client/assets/{mcp-server-detail-BInJ9Okh.js → mcp-server-detail-CyByMkle.js} +2 -2
  127. package/dist/client/assets/{members-WK1ZXtTy.js → members-3oNbzlXC.js} +1 -1
  128. package/dist/client/assets/{monaco-editor-Dgc89AWr.js → monaco-editor-DDZgyrgO.js} +1 -1
  129. package/dist/client/assets/{monitoring-Co1Fc87j.js → monitoring-Xs5hJ6u_.js} +1 -1
  130. package/dist/client/assets/{monitoring-dashboard-edit-BllFPC-c.js → monitoring-dashboard-edit-C_1U7sTf.js} +1 -1
  131. package/dist/client/assets/{monitoring-dashboard-view-CztiwjLo.js → monitoring-dashboard-view-DcMyYV2C.js} +1 -1
  132. package/dist/client/assets/{monitoring-stats-row-C4WAOhN_.js → monitoring-stats-row-CIKRC_fM.js} +1 -1
  133. package/dist/client/assets/{oauth-callback-ai-provider-Bcscfh1C.js → oauth-callback-ai-provider-CX0oMmvR.js} +1 -1
  134. package/dist/client/assets/{oauth-callback-oApNt2lX.js → oauth-callback-kezpwk-4.js} +1 -1
  135. package/dist/client/assets/{org-ai-providers-BHi1kOOt.js → org-ai-providers-dfJpkNdu.js} +1 -1
  136. package/dist/client/assets/{page-Dpk4jTO5.js → page-Y307a-9q.js} +1 -1
  137. package/dist/client/assets/{page-BZV8vSMw.js → page-y0K-3s3k.js} +1 -1
  138. package/dist/client/assets/{plugin-empty-state-BqFvCCv9.js → plugin-empty-state-BB0mg-1W.js} +1 -1
  139. package/dist/client/assets/{plugin-empty-state-DGylhF1c.js → plugin-empty-state-DwyPPEO0.js} +1 -1
  140. package/dist/client/assets/{plugin-header-B9UGjso3.js → plugin-header-BMLNemwj.js} +1 -1
  141. package/dist/client/assets/{plugin-header-CMHji8Df.js → plugin-header-DNeIXlLi.js} +1 -1
  142. package/dist/client/assets/plugins-CVEdGukW.js +1 -0
  143. package/dist/client/assets/{popover-DOnHuwq3.js → popover-BKHsia9C.js} +1 -1
  144. package/dist/client/assets/{project-app-view-fPmiutKj.js → project-app-view-C7kPLPhi.js} +1 -1
  145. package/dist/client/assets/{project-layout-CDVw6pd9.js → project-layout-C_1_eCl-.js} +1 -1
  146. package/dist/client/assets/{project-plugins-DwwhiaLk.js → project-plugins-BgoKgZwd.js} +1 -1
  147. package/dist/client/assets/{projects-list-BY_yiyPl.js → projects-list-B3H-urrL.js} +1 -1
  148. package/dist/client/assets/{registry-layout-4qwa3Yrl.js → registry-layout-BHOAsCzG.js} +1 -1
  149. package/dist/client/assets/{registry-utils--TC_kKCq.js → registry-utils-D0qx2c0_.js} +1 -1
  150. package/dist/client/assets/{reset-password-ChK1U3PS.js → reset-password-o3nCvS90.js} +1 -1
  151. package/dist/client/assets/{resizable-DXBCOl3J.js → resizable-1OPd79St.js} +1 -1
  152. package/dist/client/assets/{save-actions-ChdDeTz6.js → save-actions-DQ0FV8E3.js} +1 -1
  153. package/dist/client/assets/{scroll-area-ACn8ZLYT.js → scroll-area-BSQHcCri.js} +1 -1
  154. package/dist/client/assets/{select-BM9jpLT2.js → select-Ctls6rHz.js} +1 -1
  155. package/dist/client/assets/{select-virtual-mcp-DzKjKtT5.js → select-virtual-mcp-CEX-N6yN.js} +1 -1
  156. package/dist/client/assets/{sheet-DCDIRpJJ.js → sheet-MAyp9_-H.js} +1 -1
  157. package/dist/client/assets/{shell-layout-BTXUcCYK.js → shell-layout-8MdYJa94.js} +2 -2
  158. package/dist/client/assets/{sidebar-settings-Dy0o9qBx.js → sidebar-settings-BtI4Obrm.js} +1 -1
  159. package/dist/client/assets/{skeleton-BkpiIfDB.js → skeleton-DAvz6Hk5.js} +1 -1
  160. package/dist/client/assets/{spinner-tJ67zxkj.js → spinner-CItj22uq.js} +1 -1
  161. package/dist/client/assets/{store-invite-CTVa-Zvm.js → store-invite-Dr9c1QQu.js} +1 -1
  162. package/dist/client/assets/{switch-BE6ziGyo.js → switch-BunRXVYQ.js} +1 -1
  163. package/dist/client/assets/{table-BOA7X4H8.js → table-DHN8Pbh9.js} +1 -1
  164. package/dist/client/assets/{tabs-BQ5doEBy.js → tabs-kzZLmFuM.js} +1 -1
  165. package/dist/client/assets/{task-status-B3QSknHK.js → task-status-D6cPLJpA.js} +1 -1
  166. package/dist/client/assets/tasks-CZAS_EEA.js +1 -0
  167. package/dist/client/assets/{tasks-panel-BXchRGWe.js → tasks-panel-6uv7gp5j.js} +1 -1
  168. package/dist/client/assets/{textarea-BDS2584p.js → textarea-CpLkXx5p.js} +1 -1
  169. package/dist/client/assets/{time-range-picker-CWEE6Pax.js → time-range-picker-CYn_bf9F.js} +1 -1
  170. package/dist/client/assets/{toggle-group-B9XVwguR.js → toggle-group-C-kSfPqI.js} +1 -1
  171. package/dist/client/assets/{tools-list-DO_G3ceo.js → tools-list-GuN2kaNF.js} +1 -1
  172. package/dist/client/assets/{tooltip-Bm11lCIm.js → tooltip--UA5heKX.js} +1 -1
  173. package/dist/client/assets/{topbar-portal-XGVG-nsS.js → topbar-portal-M3PPIThx.js} +1 -1
  174. package/dist/client/assets/{types-BnNswHwQ.js → types-DoomhLgW.js} +1 -1
  175. package/dist/client/assets/{use-automations-nu85KLSx.js → use-automations-D5ELbflL.js} +1 -1
  176. package/dist/client/assets/{use-collections-aokT1D_C.js → use-collections-DXLoMYCx.js} +1 -1
  177. package/dist/client/assets/{use-connection-DA77pjoV.js → use-connection-B7ll8uNa.js} +1 -1
  178. package/dist/client/assets/{use-copy-CPgIfOPM.js → use-copy-XD9UDj7l.js} +1 -1
  179. package/dist/client/assets/{use-create-virtual-mcp-Dd303mOp.js → use-create-virtual-mcp-BvSTYw2n.js} +1 -1
  180. package/dist/client/assets/{use-infinite-scroll-DXKnZJHX.js → use-infinite-scroll-CSG4wWka.js} +1 -1
  181. package/dist/client/assets/{use-install-from-registry-C_csgcCs.js → use-install-from-registry-1KLotWZ_.js} +1 -1
  182. package/dist/client/assets/{use-list-state-CFQBiz4L.js → use-list-state-CVKHwo0P.js} +1 -1
  183. package/dist/client/assets/{use-mcp-prompts-Dw4CvfV3.js → use-mcp-prompts-DyPVjaKa.js} +1 -1
  184. package/dist/client/assets/{use-mcp-resources-CFkkQw1d.js → use-mcp-resources-CFTlLllB.js} +1 -1
  185. package/dist/client/assets/{use-mcp-tools-C3Vj1u8m.js → use-mcp-tools-S01H2JtZ.js} +1 -1
  186. package/dist/client/assets/{use-members-BbXqk449.js → use-members-BXkvGAIM.js} +1 -1
  187. package/dist/client/assets/{use-mobile-BarAf2zx.js → use-mobile-CgJAXGMs.js} +1 -1
  188. package/dist/client/assets/{use-project-CPyjDcpX.js → use-project-C2o9r0US.js} +1 -1
  189. package/dist/client/assets/{use-store-discovery-DupAMgFS.js → use-store-discovery-W6XcrfUT.js} +1 -1
  190. package/dist/client/assets/{use-view-mode-qVlfLymN.js → use-view-mode-CGzXYNrX.js} +1 -1
  191. package/dist/client/assets/{use-virtual-mcp-FAfRsySa.js → use-virtual-mcp-B8SbBr9v.js} +1 -1
  192. package/dist/client/assets/useInfiniteQuery-C9KaycVy.js +1 -0
  193. package/dist/client/assets/{useMutation-d1AXy22c.js → useMutation-B_6d8oLI.js} +1 -1
  194. package/dist/client/assets/useQuery-Brtj4EoG.js +1 -0
  195. package/dist/client/assets/useSuspenseInfiniteQuery-DD7d1y3B.js +1 -0
  196. package/dist/client/assets/{user-z34A3977.js → user-BLAfg6Ev.js} +1 -1
  197. package/dist/client/assets/{workflow-D77B4RT7.js → workflow-DHe_PiQF.js} +1 -1
  198. package/dist/client/index.html +1 -1
  199. package/dist/server/cli.js +230 -230
  200. package/dist/server/node_modules/pg-int8/LICENSE +13 -0
  201. package/dist/server/node_modules/pg-int8/README.md +16 -0
  202. package/dist/server/node_modules/pg-int8/index.js +100 -0
  203. package/dist/server/node_modules/pg-int8/package.json +24 -0
  204. package/dist/server/node_modules/postgres-bytea/index.js +33 -0
  205. package/dist/server/node_modules/{xtend/LICENSE → postgres-bytea/license} +2 -1
  206. package/dist/server/node_modules/postgres-bytea/package.json +34 -0
  207. package/dist/server/node_modules/postgres-bytea/readme.md +34 -0
  208. package/dist/server/node_modules/postgres-date/index.js +116 -0
  209. package/dist/server/node_modules/{pg-connection-string/LICENSE → postgres-date/license} +5 -5
  210. package/dist/server/node_modules/postgres-date/package.json +33 -0
  211. package/dist/server/node_modules/postgres-date/readme.md +49 -0
  212. package/dist/server/node_modules/postgres-interval/index.d.ts +20 -0
  213. package/dist/server/node_modules/postgres-interval/index.js +125 -0
  214. package/dist/server/node_modules/{pg-cloudflare/LICENSE → postgres-interval/license} +6 -6
  215. package/dist/server/node_modules/postgres-interval/package.json +36 -0
  216. package/dist/server/node_modules/postgres-interval/readme.md +48 -0
  217. package/dist/server/node_modules/split2/LICENSE +13 -0
  218. package/dist/server/node_modules/split2/README.md +85 -0
  219. package/dist/server/node_modules/split2/bench.js +27 -0
  220. package/dist/server/node_modules/split2/index.js +141 -0
  221. package/dist/server/node_modules/split2/package.json +39 -0
  222. package/dist/server/node_modules/split2/test.js +409 -0
  223. package/dist/server/server.js +2 -2
  224. package/package.json +1 -1
  225. package/dist/client/assets/constants-DqZ0hFNm.js +0 -1
  226. package/dist/client/assets/plugins-DcIPR0Gj.js +0 -1
  227. package/dist/client/assets/tasks-BqsZZgtJ.js +0 -1
  228. package/dist/client/assets/useInfiniteQuery-CCGqKrT7.js +0 -1
  229. package/dist/client/assets/useQuery-B8Io0Oda.js +0 -1
  230. package/dist/client/assets/useSuspenseInfiniteQuery-DsCmMd3U.js +0 -1
  231. package/dist/server/node_modules/pg-cloudflare/README.md +0 -112
  232. package/dist/server/node_modules/pg-cloudflare/dist/empty.d.ts +0 -2
  233. package/dist/server/node_modules/pg-cloudflare/dist/empty.js +0 -6
  234. package/dist/server/node_modules/pg-cloudflare/dist/empty.js.map +0 -1
  235. package/dist/server/node_modules/pg-cloudflare/dist/index.d.ts +0 -31
  236. package/dist/server/node_modules/pg-cloudflare/dist/index.js +0 -152
  237. package/dist/server/node_modules/pg-cloudflare/dist/index.js.map +0 -1
  238. package/dist/server/node_modules/pg-cloudflare/esm/index.mjs +0 -3
  239. package/dist/server/node_modules/pg-cloudflare/package.json +0 -39
  240. package/dist/server/node_modules/pg-cloudflare/src/empty.ts +0 -3
  241. package/dist/server/node_modules/pg-cloudflare/src/index.ts +0 -166
  242. package/dist/server/node_modules/pg-cloudflare/src/types.d.ts +0 -25
  243. package/dist/server/node_modules/pg-connection-string/README.md +0 -105
  244. package/dist/server/node_modules/pg-connection-string/esm/index.mjs +0 -8
  245. package/dist/server/node_modules/pg-connection-string/index.d.ts +0 -36
  246. package/dist/server/node_modules/pg-connection-string/index.js +0 -231
  247. package/dist/server/node_modules/pg-connection-string/package.json +0 -52
  248. package/dist/server/node_modules/pg-pool/LICENSE +0 -21
  249. package/dist/server/node_modules/pg-pool/README.md +0 -357
  250. package/dist/server/node_modules/pg-pool/esm/index.mjs +0 -5
  251. package/dist/server/node_modules/pg-pool/index.js +0 -517
  252. package/dist/server/node_modules/pg-pool/package.json +0 -51
  253. package/dist/server/node_modules/pg-protocol/LICENSE +0 -21
  254. package/dist/server/node_modules/pg-protocol/README.md +0 -3
  255. package/dist/server/node_modules/pg-protocol/dist/b.d.ts +0 -1
  256. package/dist/server/node_modules/pg-protocol/dist/b.js +0 -23
  257. package/dist/server/node_modules/pg-protocol/dist/b.js.map +0 -1
  258. package/dist/server/node_modules/pg-protocol/dist/buffer-reader.d.ts +0 -15
  259. package/dist/server/node_modules/pg-protocol/dist/buffer-reader.js +0 -55
  260. package/dist/server/node_modules/pg-protocol/dist/buffer-reader.js.map +0 -1
  261. package/dist/server/node_modules/pg-protocol/dist/buffer-writer.d.ts +0 -16
  262. package/dist/server/node_modules/pg-protocol/dist/buffer-writer.js +0 -81
  263. package/dist/server/node_modules/pg-protocol/dist/buffer-writer.js.map +0 -1
  264. package/dist/server/node_modules/pg-protocol/dist/inbound-parser.test.d.ts +0 -1
  265. package/dist/server/node_modules/pg-protocol/dist/inbound-parser.test.js +0 -530
  266. package/dist/server/node_modules/pg-protocol/dist/inbound-parser.test.js.map +0 -1
  267. package/dist/server/node_modules/pg-protocol/dist/index.d.ts +0 -6
  268. package/dist/server/node_modules/pg-protocol/dist/index.js +0 -15
  269. package/dist/server/node_modules/pg-protocol/dist/index.js.map +0 -1
  270. package/dist/server/node_modules/pg-protocol/dist/messages.d.ts +0 -162
  271. package/dist/server/node_modules/pg-protocol/dist/messages.js +0 -160
  272. package/dist/server/node_modules/pg-protocol/dist/messages.js.map +0 -1
  273. package/dist/server/node_modules/pg-protocol/dist/outbound-serializer.test.d.ts +0 -1
  274. package/dist/server/node_modules/pg-protocol/dist/outbound-serializer.test.js +0 -252
  275. package/dist/server/node_modules/pg-protocol/dist/outbound-serializer.test.js.map +0 -1
  276. package/dist/server/node_modules/pg-protocol/dist/parser.d.ts +0 -24
  277. package/dist/server/node_modules/pg-protocol/dist/parser.js +0 -324
  278. package/dist/server/node_modules/pg-protocol/dist/parser.js.map +0 -1
  279. package/dist/server/node_modules/pg-protocol/dist/serializer.d.ts +0 -42
  280. package/dist/server/node_modules/pg-protocol/dist/serializer.js +0 -189
  281. package/dist/server/node_modules/pg-protocol/dist/serializer.js.map +0 -1
  282. package/dist/server/node_modules/pg-protocol/esm/index.js +0 -11
  283. package/dist/server/node_modules/pg-protocol/package.json +0 -45
  284. package/dist/server/node_modules/pg-protocol/src/b.ts +0 -25
  285. package/dist/server/node_modules/pg-protocol/src/buffer-reader.ts +0 -58
  286. package/dist/server/node_modules/pg-protocol/src/buffer-writer.ts +0 -85
  287. package/dist/server/node_modules/pg-protocol/src/inbound-parser.test.ts +0 -575
  288. package/dist/server/node_modules/pg-protocol/src/index.ts +0 -11
  289. package/dist/server/node_modules/pg-protocol/src/messages.ts +0 -262
  290. package/dist/server/node_modules/pg-protocol/src/outbound-serializer.test.ts +0 -276
  291. package/dist/server/node_modules/pg-protocol/src/parser.ts +0 -413
  292. package/dist/server/node_modules/pg-protocol/src/serializer.ts +0 -274
  293. package/dist/server/node_modules/pg-protocol/src/testing/buffer-list.ts +0 -67
  294. package/dist/server/node_modules/pg-protocol/src/testing/test-buffers.ts +0 -166
  295. package/dist/server/node_modules/pg-protocol/src/types/chunky.d.ts +0 -1
  296. package/dist/server/node_modules/pg-types/.travis.yml +0 -7
  297. package/dist/server/node_modules/pg-types/Makefile +0 -14
  298. package/dist/server/node_modules/pg-types/README.md +0 -75
  299. package/dist/server/node_modules/pg-types/index.d.ts +0 -137
  300. package/dist/server/node_modules/pg-types/index.js +0 -47
  301. package/dist/server/node_modules/pg-types/index.test-d.ts +0 -21
  302. package/dist/server/node_modules/pg-types/lib/arrayParser.js +0 -11
  303. package/dist/server/node_modules/pg-types/lib/binaryParsers.js +0 -257
  304. package/dist/server/node_modules/pg-types/lib/builtins.js +0 -73
  305. package/dist/server/node_modules/pg-types/lib/textParsers.js +0 -215
  306. package/dist/server/node_modules/pg-types/package.json +0 -42
  307. package/dist/server/node_modules/pg-types/test/index.js +0 -24
  308. package/dist/server/node_modules/pg-types/test/types.js +0 -597
  309. package/dist/server/node_modules/pgpass/README.md +0 -74
  310. package/dist/server/node_modules/pgpass/lib/helper.js +0 -233
  311. package/dist/server/node_modules/pgpass/lib/index.js +0 -23
  312. package/dist/server/node_modules/pgpass/package.json +0 -41
  313. package/dist/server/node_modules/xtend/.jshintrc +0 -30
  314. package/dist/server/node_modules/xtend/README.md +0 -32
  315. package/dist/server/node_modules/xtend/immutable.js +0 -19
  316. package/dist/server/node_modules/xtend/mutable.js +0 -17
  317. package/dist/server/node_modules/xtend/package.json +0 -55
  318. package/dist/server/node_modules/xtend/test.js +0 -103
@@ -1,231 +0,0 @@
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
@@ -1,52 +0,0 @@
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
- }
@@ -1,21 +0,0 @@
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.
@@ -1,357 +0,0 @@
1
- # pg-pool
2
-
3
- [![Build Status](https://travis-ci.org/brianc/node-pg-pool.svg?branch=master)](https://travis-ci.org/brianc/node-pg-pool)
4
-
5
- A connection pool for node-postgres
6
-
7
- ## install
8
-
9
- ```sh
10
- npm i pg-pool pg
11
- ```
12
-
13
- ## use
14
-
15
- ### create
16
-
17
- to use pg-pool you must first create an instance of a pool
18
-
19
- ```js
20
- const Pool = require('pg-pool')
21
-
22
- // by default the pool uses the same
23
- // configuration as whatever `pg` version you have installed
24
- const pool = new Pool()
25
-
26
- // you can pass properties to the pool
27
- // these properties are passed unchanged to both the node-postgres Client constructor
28
- // and the pool constructor, allowing you to fully configure the behavior of both
29
- const pool2 = new Pool({
30
- database: 'postgres',
31
- user: 'brianc',
32
- password: 'secret!',
33
- port: 5432,
34
- ssl: true,
35
- max: 20, // set pool max size to 20
36
- idleTimeoutMillis: 1000, // close idle clients after 1 second
37
- connectionTimeoutMillis: 1000, // return an error after 1 second if connection could not be established
38
- maxUses: 7500, // close (and replace) a connection after it has been used 7500 times (see below for discussion)
39
- })
40
-
41
- // you can supply a custom client constructor
42
- // if you want to use the native postgres client
43
- const NativeClient = require('pg').native.Client
44
- const nativePool = new Pool({ Client: NativeClient })
45
-
46
- // you can even pool pg-native clients directly
47
- const PgNativeClient = require('pg-native')
48
- const pgNativePool = new Pool({ Client: PgNativeClient })
49
- ```
50
-
51
- ##### Note:
52
-
53
- The Pool constructor does not support passing a Database URL as the parameter. To use pg-pool on heroku, for example, you need to parse the URL into a config object. Here is an example of how to parse a Database URL.
54
-
55
- ```js
56
- const Pool = require('pg-pool')
57
- const url = require('url')
58
-
59
- const params = url.parse(process.env.DATABASE_URL)
60
- const auth = params.auth.split(':')
61
-
62
- const config = {
63
- user: auth[0],
64
- password: auth[1],
65
- host: params.hostname,
66
- port: params.port,
67
- database: params.pathname.split('/')[1],
68
- ssl: true,
69
- }
70
-
71
- const pool = new Pool(config)
72
-
73
- /*
74
- Transforms, 'postgres://DBuser:secret@DBHost:#####/myDB', into
75
- config = {
76
- user: 'DBuser',
77
- password: 'secret',
78
- host: 'DBHost',
79
- port: '#####',
80
- database: 'myDB',
81
- ssl: true
82
- }
83
- */
84
- ```
85
-
86
- ### acquire clients with a promise
87
-
88
- pg-pool supports a fully promise-based api for acquiring clients
89
-
90
- ```js
91
- const pool = new Pool()
92
- pool.connect().then((client) => {
93
- client
94
- .query('select $1::text as name', ['pg-pool'])
95
- .then((res) => {
96
- client.release()
97
- console.log('hello from', res.rows[0].name)
98
- })
99
- .catch((e) => {
100
- client.release()
101
- console.error('query error', e.message, e.stack)
102
- })
103
- })
104
- ```
105
-
106
- ### plays nice with async/await
107
-
108
- this ends up looking much nicer if you're using [co](https://github.com/tj/co) or async/await:
109
-
110
- ```js
111
- // with async/await
112
- ;(async () => {
113
- const pool = new Pool()
114
- const client = await pool.connect()
115
- try {
116
- const result = await client.query('select $1::text as name', ['brianc'])
117
- console.log('hello from', result.rows[0])
118
- } finally {
119
- client.release()
120
- }
121
- })().catch((e) => console.error(e.message, e.stack))
122
-
123
- // with co
124
- co(function* () {
125
- const client = yield pool.connect()
126
- try {
127
- const result = yield client.query('select $1::text as name', ['brianc'])
128
- console.log('hello from', result.rows[0])
129
- } finally {
130
- client.release()
131
- }
132
- }).catch((e) => console.error(e.message, e.stack))
133
- ```
134
-
135
- ### your new favorite helper method
136
-
137
- because its so common to just run a query and return the client to the pool afterward pg-pool has this built-in:
138
-
139
- ```js
140
- const pool = new Pool()
141
- const time = await pool.query('SELECT NOW()')
142
- const name = await pool.query('select $1::text as name', ['brianc'])
143
- console.log(name.rows[0].name, 'says hello at', time.rows[0].now)
144
- ```
145
-
146
- you can also use a callback here if you'd like:
147
-
148
- ```js
149
- const pool = new Pool()
150
- pool.query('SELECT $1::text as name', ['brianc'], function (err, res) {
151
- console.log(res.rows[0].name) // brianc
152
- })
153
- ```
154
-
155
- **pro tip:** unless you need to run a transaction (which requires a single client for multiple queries) or you
156
- have some other edge case like [streaming rows](https://github.com/brianc/node-pg-query-stream) or using a [cursor](https://github.com/brianc/node-pg-cursor)
157
- you should almost always just use `pool.query`. Its easy, it does the right thing :tm:, and wont ever forget to return
158
- clients back to the pool after the query is done.
159
-
160
- ### drop-in backwards compatible
161
-
162
- pg-pool still and will always support the traditional callback api for acquiring a client. This is the exact API node-postgres has shipped with for years:
163
-
164
- ```js
165
- const pool = new Pool()
166
- pool.connect((err, client, done) => {
167
- if (err) return done(err)
168
-
169
- client.query('SELECT $1::text as name', ['pg-pool'], (err, res) => {
170
- done()
171
- if (err) {
172
- return console.error('query error', err.message, err.stack)
173
- }
174
- console.log('hello from', res.rows[0].name)
175
- })
176
- })
177
- ```
178
-
179
- ### shut it down
180
-
181
- When you are finished with the pool if all the clients are idle the pool will close them after `config.idleTimeoutMillis` and your app
182
- will shutdown gracefully. If you don't want to wait for the timeout you can end the pool as follows:
183
-
184
- ```js
185
- const pool = new Pool()
186
- const client = await pool.connect()
187
- console.log(await client.query('select now()'))
188
- client.release()
189
- await pool.end()
190
- ```
191
-
192
- ### a note on instances
193
-
194
- The pool should be a **long-lived object** in your application. Generally you'll want to instantiate one pool when your app starts up and use the same instance of the pool throughout the lifetime of your application. If you are frequently creating a new pool within your code you likely don't have your pool initialization code in the correct place. Example:
195
-
196
- ```js
197
- // assume this is a file in your program at ./your-app/lib/db.js
198
-
199
- // correct usage: create the pool and let it live
200
- // 'globally' here, controlling access to it through exported methods
201
- const pool = new pg.Pool()
202
-
203
- // this is the right way to export the query method
204
- module.exports.query = (text, values) => {
205
- console.log('query:', text, values)
206
- return pool.query(text, values)
207
- }
208
-
209
- // this would be the WRONG way to export the connect method
210
- module.exports.connect = () => {
211
- // notice how we would be creating a pool instance here
212
- // every time we called 'connect' to get a new client?
213
- // that's a bad thing & results in creating an unbounded
214
- // number of pools & therefore connections
215
- const aPool = new pg.Pool()
216
- return aPool.connect()
217
- }
218
- ```
219
-
220
- ### events
221
-
222
- Every instance of a `Pool` is an event emitter. These instances emit the following events:
223
-
224
- #### error
225
-
226
- Emitted whenever an idle client in the pool encounters an error. This is common when your PostgreSQL server shuts down, reboots, or a network partition otherwise causes it to become unavailable while your pool has connected clients.
227
-
228
- Example:
229
-
230
- ```js
231
- const Pool = require('pg-pool')
232
- const pool = new Pool()
233
-
234
- // attach an error handler to the pool for when a connected, idle client
235
- // receives an error by being disconnected, etc
236
- pool.on('error', function (error, client) {
237
- // handle this in the same way you would treat process.on('uncaughtException')
238
- // it is supplied the error as well as the idle client which received the error
239
- })
240
- ```
241
-
242
- #### connect
243
-
244
- Fired whenever the pool creates a **new** `pg.Client` instance and successfully connects it to the backend.
245
-
246
- Example:
247
-
248
- ```js
249
- const Pool = require('pg-pool')
250
- const pool = new Pool()
251
-
252
- const count = 0
253
-
254
- pool.on('connect', (client) => {
255
- client.count = count++
256
- })
257
-
258
- pool
259
- .connect()
260
- .then((client) => {
261
- return client
262
- .query('SELECT $1::int AS "clientCount"', [client.count])
263
- .then((res) => console.log(res.rows[0].clientCount)) // outputs 0
264
- .then(() => client)
265
- })
266
- .then((client) => client.release())
267
- ```
268
-
269
- #### acquire
270
-
271
- Fired whenever a client is acquired from the pool
272
-
273
- Example:
274
-
275
- This allows you to count the number of clients which have ever been acquired from the pool.
276
-
277
- ```js
278
- const Pool = require('pg-pool')
279
- const pool = new Pool()
280
-
281
- const acquireCount = 0
282
- pool.on('acquire', function (client) {
283
- acquireCount++
284
- })
285
-
286
- const connectCount = 0
287
- pool.on('connect', function () {
288
- connectCount++
289
- })
290
-
291
- for (let i = 0; i < 200; i++) {
292
- pool.query('SELECT NOW()')
293
- }
294
-
295
- setTimeout(function () {
296
- console.log('connect count:', connectCount) // output: connect count: 10
297
- console.log('acquire count:', acquireCount) // output: acquire count: 200
298
- }, 100)
299
- ```
300
-
301
- ### environment variables
302
-
303
- pg-pool & node-postgres support some of the same environment variables as `psql` supports. The most common are:
304
-
305
- ```
306
- PGDATABASE=my_db
307
- PGUSER=username
308
- PGPASSWORD="my awesome password"
309
- PGPORT=5432
310
- PGSSLMODE=require
311
- ```
312
-
313
- Usually I will export these into my local environment via a `.env` file with environment settings or export them in `~/.bash_profile` or something similar. This way I get configurability which works with both the postgres suite of tools (`psql`, `pg_dump`, `pg_restore`) and node, I can vary the environment variables locally and in production, and it supports the concept of a [12-factor app](http://12factor.net/) out of the box.
314
-
315
- ## maxUses and read-replica autoscaling (e.g. AWS Aurora)
316
-
317
- The maxUses config option can help an application instance rebalance load against a replica set that has been auto-scaled after the connection pool is already full of healthy connections.
318
-
319
- The mechanism here is that a connection is considered "expended" after it has been acquired and released `maxUses` number of times. Depending on the load on your system, this means there will be an approximate time in which any given connection will live, thus creating a window for rebalancing.
320
-
321
- Imagine a scenario where you have 10 app instances providing an API running against a replica cluster of 3 that are accessed via a round-robin DNS entry. Each instance runs a connection pool size of 20. With an ambient load of 50 requests per second, the connection pool will likely fill up in a few minutes with healthy connections.
322
-
323
- If you have weekly bursts of traffic which peak at 1,000 requests per second, you might want to grow your replicas to 10 during this period. Without setting `maxUses`, the new replicas will not be adopted by the app servers without an intervention -- namely, restarting each in turn in order to build up new connection pools that are balanced against all the replicas. Adding additional app server instances will help to some extent because they will adopt all the replicas in an even way, but the initial app servers will continue to focus additional load on the original replicas.
324
-
325
- This is where the `maxUses` configuration option comes into play. Setting `maxUses` to 7500 will ensure that over a period of 30 minutes or so the new replicas will be adopted as the pre-existing connections are closed and replaced with new ones, thus creating a window for eventual balance.
326
-
327
- You'll want to test based on your own scenarios, but one way to make a first guess at `maxUses` is to identify an acceptable window for rebalancing and then solve for the value:
328
-
329
- ```
330
- maxUses = rebalanceWindowSeconds * totalRequestsPerSecond / numAppInstances / poolSize
331
- ```
332
-
333
- In the example above, assuming we acquire and release 1 connection per request and we are aiming for a 30 minute rebalancing window:
334
-
335
- ```
336
- maxUses = rebalanceWindowSeconds * totalRequestsPerSecond / numAppInstances / poolSize
337
- 7200 = 1800 * 1000 / 10 / 25
338
- ```
339
-
340
- ## tests
341
-
342
- To run tests clone the repo, `npm i` in the working dir, and then run `npm test`
343
-
344
- ## contributions
345
-
346
- I love contributions. Please make sure they have tests, and submit a PR. If you're not sure if the issue is worth it or will be accepted it never hurts to open an issue to begin the conversation. If you're interested in keeping up with node-postgres releated stuff, you can follow me on twitter at [@briancarlson](https://twitter.com/briancarlson) - I generally announce any noteworthy updates there.
347
-
348
- ## license
349
-
350
- The MIT License (MIT)
351
- Copyright (c) 2016 Brian M. Carlson
352
-
353
- Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
354
-
355
- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
356
-
357
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -1,5 +0,0 @@
1
- // ESM wrapper for pg-pool
2
- import Pool from '../index.js'
3
-
4
- // Export as default only to match CJS module
5
- export default Pool