decocms 2.186.6 → 2.186.8
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-CMykqSBg.js → AlertCircle-BD5gSXQu.js} +1 -1
- package/dist/client/assets/{ArrowLeft-uGR-9mNu.js → ArrowLeft-DN3D0Zrv.js} +1 -1
- package/dist/client/assets/{ArrowUp-nzMjud7y.js → ArrowUp-D6ltkV3R.js} +1 -1
- package/dist/client/assets/{Check-xiDQ8BtU.js → Check-Dczm9Dfw.js} +1 -1
- package/dist/client/assets/{ChevronDown-Br-9w7at.js → ChevronDown-CDxBhn_l.js} +1 -1
- package/dist/client/assets/{ChevronRight-9oNUepCi.js → ChevronRight-Dxvchjxo.js} +1 -1
- package/dist/client/assets/{ChevronUp-Cn8mueH6.js → ChevronUp-BLNd6dNq.js} +1 -1
- package/dist/client/assets/{Container-2jV0v6El.js → Container-CMPDG7Cp.js} +1 -1
- package/dist/client/assets/{Dataflow03-DxoSS6Mb.js → Dataflow03-slF1Ax9G.js} +1 -1
- package/dist/client/assets/{FolderClosed-rSkxBpcc.js → FolderClosed-BKB_NgWm.js} +1 -1
- package/dist/client/assets/{Loading01-BcvCGReP.js → Loading01-BVCg1O_G.js} +1 -1
- package/dist/client/assets/{Play-CfPk1Jil.js → Play-Bb4cvvVL.js} +1 -1
- package/dist/client/assets/{Plus-_0WPT4fC.js → Plus-DcVtqCMV.js} +1 -1
- package/dist/client/assets/{RefreshCcw01-7vLfxx-h.js → RefreshCcw01-Co0-i94o.js} +1 -1
- package/dist/client/assets/{SearchMd-Drvt0RJI.js → SearchMd-CVvF1HpM.js} +1 -1
- package/dist/client/assets/{Settings01-BWfYiv65.js → Settings01-DpZ_tsoX.js} +1 -1
- package/dist/client/assets/{Trash01-1xYo27RH.js → Trash01-CBP9WLeP.js} +1 -1
- package/dist/client/assets/{Type01-BYtXAD5n.js → Type01-CySkENi6.js} +1 -1
- package/dist/client/assets/{Upload01-B0BJCQ_e.js → Upload01-BzGPegBj.js} +1 -1
- package/dist/client/assets/{User01-BeQd85RG.js → User01-CItwHvE1.js} +1 -1
- package/dist/client/assets/{X-COxH8ezg.js → X-Dr-hR03I.js} +1 -1
- package/dist/client/assets/{XCircle-DF_H_9sl.js → XCircle-Z-JTmQ8v.js} +1 -1
- package/dist/client/assets/{XClose-DN7ytwf7.js → XClose-BLvk3pvY.js} +1 -1
- package/dist/client/assets/{Zap-EKbyzC1z.js → Zap-CiHJmamA.js} +1 -1
- package/dist/client/assets/{agent-connections-preview-BJR4An4x.js → agent-connections-preview-BQSZMPrI.js} +1 -1
- package/dist/client/assets/{agent-detail-S7Xnyf74.js → agent-detail-eyC4qU2J.js} +1 -1
- package/dist/client/assets/{agents-DGMB2xM-.js → agents-DrhC84qH.js} +1 -1
- package/dist/client/assets/{ai-providers-logos-AsQMrQkI.js → ai-providers-logos-idzpcoUr.js} +1 -1
- package/dist/client/assets/{alert-dialog-CahR3t2-.js → alert-dialog-Bke1xnyn.js} +1 -1
- package/dist/client/assets/{auth-catchall-CuUUPNMf.js → auth-catchall-omtOF0fb.js} +1 -1
- package/dist/client/assets/{automation-detail-D21R_NZo.js → automation-detail-Bc9ASowB.js} +1 -1
- package/dist/client/assets/{automations-BDE5mXwW.js → automations-Bp3tAuBH.js} +1 -1
- package/dist/client/assets/{avatar-CUJtyPo2.js → avatar-BZ4Frci2.js} +1 -1
- package/dist/client/assets/{badge-CED9DV1z.js → badge-DGQ0gFlp.js} +1 -1
- package/dist/client/assets/{breadcrumb-CCQEGtsd.js → breadcrumb-BBMvtdg-.js} +1 -1
- package/dist/client/assets/{card-CPxXaS9B.js → card-CKN-JP9M.js} +1 -1
- package/dist/client/assets/{checkbox-BkHtMStR.js → checkbox-Dzy6oaRF.js} +1 -1
- package/dist/client/assets/{collapsible-B030Rvpo.js → collapsible-D84K6rP8.js} +1 -1
- package/dist/client/assets/{collection-detail-6j0HNb-_.js → collection-detail-w8yO-_Ye.js} +1 -1
- package/dist/client/assets/{collection-display-button--wDfVH13.js → collection-display-button-ZvHBt_eA.js} +1 -1
- package/dist/client/assets/{collection-search-DpxIEj2Y.js → collection-search-fzGK39qM.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-fDncVs5S.js → collection-table-wrapper-DsHGysPH.js} +1 -1
- package/dist/client/assets/{collection-tabs-CqPectm8.js → collection-tabs-vUhndfXI.js} +1 -1
- package/dist/client/assets/{collections-D4sy0Xs0.js → collections-BsFnKFn5.js} +1 -1
- package/dist/client/assets/{command-BeBA7wJA.js → command-BnzawGxz.js} +1 -1
- package/dist/client/assets/{connection-card-Bji8m80q.js → connection-card-D7msIZJv.js} +1 -1
- package/dist/client/assets/{connection-detail-CGya4X8s.js → connection-detail-D84CXhKZ.js} +1 -1
- package/dist/client/assets/{connections-CzVW7p9D.js → connections-CbWHLS_c.js} +1 -1
- package/dist/client/assets/constants-BqeudQjB.js +1 -0
- package/dist/client/assets/{constants-C2mKle9u.js → constants-TLV7MTwP.js} +1 -1
- package/dist/client/assets/{context-BiAMhAiB.js → context-BSzlpoxW.js} +1 -1
- package/dist/client/assets/{create-organization-dialog-MUEiKqL8.js → create-organization-dialog-OZCitfn2.js} +1 -1
- package/dist/client/assets/{create-project-dialog-B8VM2kbV.js → create-project-dialog-RIITFpVV.js} +1 -1
- package/dist/client/assets/{danger-CCuvZ302.js → danger-DuoByYJO.js} +1 -1
- package/dist/client/assets/{danger-zone-R1YnFMha.js → danger-zone-CEP2ON89.js} +1 -1
- package/dist/client/assets/{dependencies-usSRHhHV.js → dependencies-LZwXzbBO.js} +1 -1
- package/dist/client/assets/{dialog-DkflQEEK.js → dialog-DCrLu7TC.js} +1 -1
- package/dist/client/assets/{drawer-CWTdsYcu.js → drawer-CwKj53Jm.js} +1 -1
- package/dist/client/assets/{dropdown-menu-CPUZgeQt.js → dropdown-menu-BK29e1o0.js} +1 -1
- package/dist/client/assets/{dynamic-plugin-layout-COn0BiTQ.js → dynamic-plugin-layout-C5CHlaVD.js} +1 -1
- package/dist/client/assets/{editable-task-title-CXF21pnu.js → editable-task-title-HEFeF21g.js} +1 -1
- package/dist/client/assets/{empty-state-mZytJ7Og.js → empty-state-B8NhLY9v.js} +1 -1
- package/dist/client/assets/{empty-state-DLNIkqnc.js → empty-state-D4ck9NGY.js} +1 -1
- package/dist/client/assets/{env-vars-editor-74-7rifU.js → env-vars-editor-CvqhjBEu.js} +1 -1
- package/dist/client/assets/{extract-connection-data-0iT2_wST.js → extract-connection-data-NSojo21r.js} +1 -1
- package/dist/client/assets/{form-DTthvfe9.js → form-DPsme8JL.js} +1 -1
- package/dist/client/assets/{general-g1xkIict.js → general-CPYyC5Rn.js} +1 -1
- package/dist/client/assets/{home-29e6ki_m.js → home-Cg6y-M7X.js} +1 -1
- package/dist/client/assets/{import-from-deco-dialog-1gjK7_AP.js → import-from-deco-dialog-CBUqBAZP.js} +1 -1
- package/dist/client/assets/{index--5l6Kd5l.js → index-2hR_U2H-.js} +1 -1
- package/dist/client/assets/{index-DcP_WR0J.js → index-3WTtRDrt.js} +1 -1
- package/dist/client/assets/{index-DIiriVeM.js → index-BZyxukAe.js} +1 -1
- package/dist/client/assets/{index-Cb6NnGWb.js → index-Bgix03M4.js} +1 -1
- package/dist/client/assets/{index-DTnP3oIT.js → index-BkAoKVx8.js} +1 -1
- package/dist/client/assets/{index-CuI-2Tt-.js → index-CoIN7QlF.js} +1 -1
- package/dist/client/assets/{index-B_aEJlRD.js → index-CtkIjbbq.js} +1 -1
- package/dist/client/assets/{index-DIir8pgm.js → index-D49VqQ7Q.js} +2 -2
- package/dist/client/assets/{index-DoQQIBf1.js → index-D_CXrtwd.js} +1 -1
- package/dist/client/assets/{index-ZixwJ1Pk.js → index-Dg9iIj2F.js} +1 -1
- package/dist/client/assets/{index-Dz9R7lP6.js → index-DxaXuxCe.js} +1 -1
- package/dist/client/assets/{infiniteQueryObserver-D_1D5AYq.js → infiniteQueryObserver-DiY9IZXI.js} +1 -1
- package/dist/client/assets/{input-BVAvDQ_C.js → input-BoNWsfmK.js} +1 -1
- package/dist/client/assets/{integration-icon-B_0G_X87.js → integration-icon-ByIZ-Vgj.js} +1 -1
- package/dist/client/assets/{label-C6omQTs_.js → label-DF2jcg2U.js} +1 -1
- package/dist/client/assets/{layout-AYXb28rc.js → layout-CgN1mZAZ.js} +1 -1
- package/dist/client/assets/{layout-D4tWA0bw.js → layout-Dp8uiQPy.js} +1 -1
- package/dist/client/assets/{login-Cx7hoJoT.js → login-EJWlcxg3.js} +1 -1
- package/dist/client/assets/{logo-upload-FTAEWKjw.js → logo-upload-D5UEFEut.js} +1 -1
- package/dist/client/assets/{mcp-app-renderer-DDZtzzcL.js → mcp-app-renderer-C8wEMNqP.js} +1 -1
- package/dist/client/assets/{mcp-server-card-C8wXu9yO.js → mcp-server-card-xRGKpDYM.js} +1 -1
- package/dist/client/assets/{mcp-server-detail-BVknczom.js → mcp-server-detail-Dfcu5k0K.js} +2 -2
- package/dist/client/assets/{members-CczX95O-.js → members-b1hYnwix.js} +1 -1
- package/dist/client/assets/{monaco-editor-BF2WLfQD.js → monaco-editor-D1C0-UAW.js} +1 -1
- package/dist/client/assets/{monitoring-9XsThidn.js → monitoring-DmCgdBgZ.js} +1 -1
- package/dist/client/assets/{monitoring-dashboard-edit-6dYajQ_1.js → monitoring-dashboard-edit-DL4fVGYY.js} +1 -1
- package/dist/client/assets/{monitoring-dashboard-view-C154UPGx.js → monitoring-dashboard-view-BfDYcRJx.js} +1 -1
- package/dist/client/assets/{monitoring-stats-row-C6qBbHow.js → monitoring-stats-row-Bzy3PCZQ.js} +1 -1
- package/dist/client/assets/{oauth-callback-3Syoq1nk.js → oauth-callback-N1SniIFs.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-udnTMnIE.js → oauth-callback-ai-provider-BZ8yDxr9.js} +1 -1
- package/dist/client/assets/{org-ai-providers-BZX8CBbC.js → org-ai-providers-DFHn6TCP.js} +1 -1
- package/dist/client/assets/{page-B8I6CLK9.js → page-B721jXQm.js} +1 -1
- package/dist/client/assets/{page-DG6axqmW.js → page-BgKYb-6_.js} +1 -1
- package/dist/client/assets/{plugin-empty-state-Bt8UXvj0.js → plugin-empty-state-BIg-myPi.js} +1 -1
- package/dist/client/assets/{plugin-header-DT9lR12I.js → plugin-header-CBfXQAQ5.js} +1 -1
- package/dist/client/assets/plugins-D7XVdEz7.js +1 -0
- package/dist/client/assets/{popover-BMBGvHQ_.js → popover-CvIauBBG.js} +1 -1
- package/dist/client/assets/{project-app-view-fuhRg8H7.js → project-app-view-Wq81-D6Q.js} +1 -1
- package/dist/client/assets/{project-layout-DWnRAr4s.js → project-layout-ByRNQhjx.js} +1 -1
- package/dist/client/assets/{project-plugins-CRqpdPvu.js → project-plugins-8LQo3YBE.js} +1 -1
- package/dist/client/assets/{projects-list-Dl8bD1xL.js → projects-list-CfdMQhGh.js} +1 -1
- package/dist/client/assets/{registry-layout-CdBoBkB6.js → registry-layout-BfWTztsz.js} +1 -1
- package/dist/client/assets/{registry-utils-pfpET92F.js → registry-utils-Cz03qmOa.js} +1 -1
- package/dist/client/assets/{reset-password-BL4AtRcT.js → reset-password-Cj1A6uL-.js} +1 -1
- package/dist/client/assets/{resizable-CcW4J8VD.js → resizable-BceA9DHD.js} +1 -1
- package/dist/client/assets/{save-actions-3dOJ5Mjm.js → save-actions-BENpgKCD.js} +1 -1
- package/dist/client/assets/{scroll-area-Bqfa6wPc.js → scroll-area-4KH7xRn7.js} +1 -1
- package/dist/client/assets/{select-CBE7xbF4.js → select-DaOZXaTi.js} +1 -1
- package/dist/client/assets/{select-virtual-mcp-Bco91LS8.js → select-virtual-mcp-CjfXEnho.js} +1 -1
- package/dist/client/assets/{shell-layout-BVpZ2wZ-.js → shell-layout-85fLFVwf.js} +2 -2
- package/dist/client/assets/{sidebar-settings-BpXHJmnQ.js → sidebar-settings-CvK0z-ir.js} +1 -1
- package/dist/client/assets/{skeleton-CQd2QEI9.js → skeleton-CLUePAN0.js} +1 -1
- package/dist/client/assets/{spinner-DCPsu4ZG.js → spinner-7bhznOFa.js} +1 -1
- package/dist/client/assets/{store-invite-D4qgWC83.js → store-invite-fWGyKl7o.js} +1 -1
- package/dist/client/assets/{switch-CDhXZx5x.js → switch-yIP7Yj81.js} +1 -1
- package/dist/client/assets/{table-CGhKFeKb.js → table-w828HACk.js} +1 -1
- package/dist/client/assets/{tabs-BMh4okm_.js → tabs-Du7uGFqP.js} +1 -1
- package/dist/client/assets/{task-status-2ts0kYwT.js → task-status-RaaIa42V.js} +1 -1
- package/dist/client/assets/{tasks-panel-0RmxrVW1.js → tasks-panel-CT_8gQvL.js} +1 -1
- package/dist/client/assets/tasks-x-XNinod.js +1 -0
- package/dist/client/assets/{textarea-CdQzy4Ij.js → textarea-D30IrLHN.js} +1 -1
- package/dist/client/assets/{time-range-picker-obtb96_y.js → time-range-picker-DVyznax9.js} +1 -1
- package/dist/client/assets/{toggle-group-BvQ8i1-N.js → toggle-group-DN_3BuPh.js} +1 -1
- package/dist/client/assets/{tools-list-SV45eRcg.js → tools-list-BQiqsKN2.js} +1 -1
- package/dist/client/assets/{tooltip-iG9fvlrZ.js → tooltip-DJkxXViN.js} +1 -1
- package/dist/client/assets/{types-BJ15oicG.js → types-llndI7Ky.js} +1 -1
- package/dist/client/assets/{use-automations-DDYigIn8.js → use-automations-DhJnP2CA.js} +1 -1
- package/dist/client/assets/{use-collections-CeVeE6L5.js → use-collections-Dmxer7H8.js} +1 -1
- package/dist/client/assets/{use-connection-B3ekSVUc.js → use-connection-Yjy9d1tW.js} +1 -1
- package/dist/client/assets/{use-copy-DFqHt08d.js → use-copy-DYNuGKRz.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-J-6A5Uhg.js → use-create-virtual-mcp-CEBO__7d.js} +1 -1
- package/dist/client/assets/{use-infinite-scroll-DbO9lGzn.js → use-infinite-scroll-JQzncaIM.js} +1 -1
- package/dist/client/assets/{use-install-from-registry-BKwLRanW.js → use-install-from-registry-Du1Xu864.js} +1 -1
- package/dist/client/assets/{use-list-state-BSx7RPGJ.js → use-list-state-BG8gUSh9.js} +1 -1
- package/dist/client/assets/{use-mcp-prompts-ClavsAnj.js → use-mcp-prompts-DY_yf0WC.js} +1 -1
- package/dist/client/assets/{use-mcp-resources-BuE1rP0c.js → use-mcp-resources-BnmpykKD.js} +1 -1
- package/dist/client/assets/{use-mcp-tools-JDKA9UZ8.js → use-mcp-tools-CmOfbC2t.js} +1 -1
- package/dist/client/assets/{use-members-DNGgajFa.js → use-members-BZM-R1qG.js} +1 -1
- package/dist/client/assets/{use-project-DvVOFuu-.js → use-project-W-5l7vWa.js} +1 -1
- package/dist/client/assets/{use-store-discovery-dPavPbA-.js → use-store-discovery-DfcEdPeQ.js} +1 -1
- package/dist/client/assets/{use-view-mode-BijqAGDe.js → use-view-mode-BGEJ9JzM.js} +1 -1
- package/dist/client/assets/{use-virtual-mcp-DXFVfjMZ.js → use-virtual-mcp-2qhGJdPe.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-D8TjRj27.js +1 -0
- package/dist/client/assets/{useMutation-DPjXSTSD.js → useMutation-BTUmJffP.js} +1 -1
- package/dist/client/assets/useQuery-CvkH2gG1.js +1 -0
- package/dist/client/assets/useSuspenseInfiniteQuery-DRfcYfXZ.js +1 -0
- package/dist/client/assets/{user-BAgoGcDp.js → user-DXILGeu2.js} +1 -1
- package/dist/client/assets/{workflow-DCKJ21al.js → workflow-CBGVBFDu.js} +1 -1
- package/dist/client/assets/{workflow-CrjjFLE3.js → workflow-ClE3y6g8.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/server/cli.js +341 -340
- package/dist/server/node_modules/ansi-styles/index.d.ts +236 -0
- package/dist/server/node_modules/ansi-styles/index.js +223 -0
- package/dist/server/node_modules/ansi-styles/package.json +54 -0
- package/dist/server/node_modules/ansi-styles/readme.md +173 -0
- package/dist/server/node_modules/mimic-fn/index.d.ts +54 -0
- package/dist/server/node_modules/mimic-fn/index.js +13 -0
- package/dist/server/node_modules/mimic-fn/license +9 -0
- package/dist/server/node_modules/{onetime → mimic-fn}/package.json +15 -16
- package/dist/server/node_modules/mimic-fn/readme.md +69 -0
- package/dist/server/node_modules/pg-int8/LICENSE +13 -0
- package/dist/server/node_modules/pg-int8/README.md +16 -0
- package/dist/server/node_modules/pg-int8/index.js +100 -0
- package/dist/server/node_modules/pg-int8/package.json +24 -0
- package/dist/server/node_modules/postgres-array/index.d.ts +4 -0
- package/dist/server/node_modules/postgres-array/index.js +97 -0
- package/dist/server/node_modules/{pg/LICENSE → postgres-array/license} +6 -6
- package/dist/server/node_modules/postgres-array/package.json +35 -0
- package/dist/server/node_modules/postgres-array/readme.md +43 -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-date/index.js +116 -0
- package/dist/server/node_modules/postgres-date/license +21 -0
- package/dist/server/node_modules/postgres-date/package.json +33 -0
- package/dist/server/node_modules/postgres-date/readme.md +49 -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/split2/LICENSE +13 -0
- package/dist/server/node_modules/split2/README.md +85 -0
- package/dist/server/node_modules/split2/bench.js +27 -0
- package/dist/server/node_modules/split2/index.js +141 -0
- package/dist/server/node_modules/split2/package.json +39 -0
- package/dist/server/node_modules/split2/test.js +409 -0
- package/dist/server/server.js +269 -269
- package/package.json +1 -1
- package/dist/client/assets/constants-CUwoz2Qc.js +0 -1
- package/dist/client/assets/plugins-S0nxg7Xk.js +0 -1
- package/dist/client/assets/tasks-DR3nWr8j.js +0 -1
- package/dist/client/assets/useInfiniteQuery-DfmHdhse.js +0 -1
- package/dist/client/assets/useQuery-BJg_09kQ.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-xbYvMmn4.js +0 -1
- package/dist/server/node_modules/onetime/index.d.ts +0 -64
- package/dist/server/node_modules/onetime/index.js +0 -44
- package/dist/server/node_modules/onetime/readme.md +0 -94
- package/dist/server/node_modules/pg/README.md +0 -95
- package/dist/server/node_modules/pg/esm/index.mjs +0 -20
- package/dist/server/node_modules/pg/lib/client.js +0 -743
- package/dist/server/node_modules/pg/lib/connection-parameters.js +0 -171
- package/dist/server/node_modules/pg/lib/connection.js +0 -221
- package/dist/server/node_modules/pg/lib/crypto/cert-signatures.js +0 -122
- package/dist/server/node_modules/pg/lib/crypto/sasl.js +0 -212
- package/dist/server/node_modules/pg/lib/crypto/utils-legacy.js +0 -43
- package/dist/server/node_modules/pg/lib/crypto/utils-webcrypto.js +0 -89
- package/dist/server/node_modules/pg/lib/crypto/utils.js +0 -9
- package/dist/server/node_modules/pg/lib/defaults.js +0 -91
- package/dist/server/node_modules/pg/lib/index.js +0 -73
- package/dist/server/node_modules/pg/lib/native/client.js +0 -323
- package/dist/server/node_modules/pg/lib/native/index.js +0 -2
- package/dist/server/node_modules/pg/lib/native/query.js +0 -165
- package/dist/server/node_modules/pg/lib/query.js +0 -252
- package/dist/server/node_modules/pg/lib/result.js +0 -109
- package/dist/server/node_modules/pg/lib/stream.js +0 -83
- package/dist/server/node_modules/pg/lib/type-overrides.js +0 -35
- package/dist/server/node_modules/pg/lib/utils.js +0 -217
- package/dist/server/node_modules/pg/package.json +0 -76
- /package/dist/server/node_modules/{onetime → ansi-styles}/license +0 -0
|
@@ -1,323 +0,0 @@
|
|
|
1
|
-
const nodeUtils = require('util')
|
|
2
|
-
// eslint-disable-next-line
|
|
3
|
-
var Native
|
|
4
|
-
// eslint-disable-next-line no-useless-catch
|
|
5
|
-
try {
|
|
6
|
-
// Wrap this `require()` in a try-catch to avoid upstream bundlers from complaining that this might not be available since it is an optional import
|
|
7
|
-
Native = require('pg-native')
|
|
8
|
-
} catch (e) {
|
|
9
|
-
throw e
|
|
10
|
-
}
|
|
11
|
-
const TypeOverrides = require('../type-overrides')
|
|
12
|
-
const EventEmitter = require('events').EventEmitter
|
|
13
|
-
const util = require('util')
|
|
14
|
-
const ConnectionParameters = require('../connection-parameters')
|
|
15
|
-
|
|
16
|
-
const NativeQuery = require('./query')
|
|
17
|
-
|
|
18
|
-
const queryQueueLengthDeprecationNotice = nodeUtils.deprecate(
|
|
19
|
-
() => {},
|
|
20
|
-
'Calling client.query() when the client is already executing a query is deprecated and will be removed in pg@9.0. Use async/await or an external async flow control mechanism instead.'
|
|
21
|
-
)
|
|
22
|
-
|
|
23
|
-
const Client = (module.exports = function (config) {
|
|
24
|
-
EventEmitter.call(this)
|
|
25
|
-
config = config || {}
|
|
26
|
-
|
|
27
|
-
this._Promise = config.Promise || global.Promise
|
|
28
|
-
this._types = new TypeOverrides(config.types)
|
|
29
|
-
|
|
30
|
-
this.native = new Native({
|
|
31
|
-
types: this._types,
|
|
32
|
-
})
|
|
33
|
-
|
|
34
|
-
this._queryQueue = []
|
|
35
|
-
this._ending = false
|
|
36
|
-
this._connecting = false
|
|
37
|
-
this._connected = false
|
|
38
|
-
this._queryable = true
|
|
39
|
-
|
|
40
|
-
// keep these on the object for legacy reasons
|
|
41
|
-
// for the time being. TODO: deprecate all this jazz
|
|
42
|
-
const cp = (this.connectionParameters = new ConnectionParameters(config))
|
|
43
|
-
if (config.nativeConnectionString) cp.nativeConnectionString = config.nativeConnectionString
|
|
44
|
-
this.user = cp.user
|
|
45
|
-
|
|
46
|
-
// "hiding" the password so it doesn't show up in stack traces
|
|
47
|
-
// or if the client is console.logged
|
|
48
|
-
Object.defineProperty(this, 'password', {
|
|
49
|
-
configurable: true,
|
|
50
|
-
enumerable: false,
|
|
51
|
-
writable: true,
|
|
52
|
-
value: cp.password,
|
|
53
|
-
})
|
|
54
|
-
this.database = cp.database
|
|
55
|
-
this.host = cp.host
|
|
56
|
-
this.port = cp.port
|
|
57
|
-
|
|
58
|
-
// a hash to hold named queries
|
|
59
|
-
this.namedQueries = {}
|
|
60
|
-
})
|
|
61
|
-
|
|
62
|
-
Client.Query = NativeQuery
|
|
63
|
-
|
|
64
|
-
util.inherits(Client, EventEmitter)
|
|
65
|
-
|
|
66
|
-
Client.prototype._errorAllQueries = function (err) {
|
|
67
|
-
const enqueueError = (query) => {
|
|
68
|
-
process.nextTick(() => {
|
|
69
|
-
query.native = this.native
|
|
70
|
-
query.handleError(err)
|
|
71
|
-
})
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
if (this._hasActiveQuery()) {
|
|
75
|
-
enqueueError(this._activeQuery)
|
|
76
|
-
this._activeQuery = null
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
this._queryQueue.forEach(enqueueError)
|
|
80
|
-
this._queryQueue.length = 0
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
// connect to the backend
|
|
84
|
-
// pass an optional callback to be called once connected
|
|
85
|
-
// or with an error if there was a connection error
|
|
86
|
-
Client.prototype._connect = function (cb) {
|
|
87
|
-
const self = this
|
|
88
|
-
|
|
89
|
-
if (this._connecting) {
|
|
90
|
-
process.nextTick(() => cb(new Error('Client has already been connected. You cannot reuse a client.')))
|
|
91
|
-
return
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
this._connecting = true
|
|
95
|
-
|
|
96
|
-
this.connectionParameters.getLibpqConnectionString(function (err, conString) {
|
|
97
|
-
if (self.connectionParameters.nativeConnectionString) conString = self.connectionParameters.nativeConnectionString
|
|
98
|
-
if (err) return cb(err)
|
|
99
|
-
self.native.connect(conString, function (err) {
|
|
100
|
-
if (err) {
|
|
101
|
-
self.native.end()
|
|
102
|
-
return cb(err)
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
// set internal states to connected
|
|
106
|
-
self._connected = true
|
|
107
|
-
|
|
108
|
-
// handle connection errors from the native layer
|
|
109
|
-
self.native.on('error', function (err) {
|
|
110
|
-
self._queryable = false
|
|
111
|
-
self._errorAllQueries(err)
|
|
112
|
-
self.emit('error', err)
|
|
113
|
-
})
|
|
114
|
-
|
|
115
|
-
self.native.on('notification', function (msg) {
|
|
116
|
-
self.emit('notification', {
|
|
117
|
-
channel: msg.relname,
|
|
118
|
-
payload: msg.extra,
|
|
119
|
-
})
|
|
120
|
-
})
|
|
121
|
-
|
|
122
|
-
// signal we are connected now
|
|
123
|
-
self.emit('connect')
|
|
124
|
-
self._pulseQueryQueue(true)
|
|
125
|
-
|
|
126
|
-
cb(null, this)
|
|
127
|
-
})
|
|
128
|
-
})
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
Client.prototype.connect = function (callback) {
|
|
132
|
-
if (callback) {
|
|
133
|
-
this._connect(callback)
|
|
134
|
-
return
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
return new this._Promise((resolve, reject) => {
|
|
138
|
-
this._connect((error) => {
|
|
139
|
-
if (error) {
|
|
140
|
-
reject(error)
|
|
141
|
-
} else {
|
|
142
|
-
resolve(this)
|
|
143
|
-
}
|
|
144
|
-
})
|
|
145
|
-
})
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
// send a query to the server
|
|
149
|
-
// this method is highly overloaded to take
|
|
150
|
-
// 1) string query, optional array of parameters, optional function callback
|
|
151
|
-
// 2) object query with {
|
|
152
|
-
// string query
|
|
153
|
-
// optional array values,
|
|
154
|
-
// optional function callback instead of as a separate parameter
|
|
155
|
-
// optional string name to name & cache the query plan
|
|
156
|
-
// optional string rowMode = 'array' for an array of results
|
|
157
|
-
// }
|
|
158
|
-
Client.prototype.query = function (config, values, callback) {
|
|
159
|
-
let query
|
|
160
|
-
let result
|
|
161
|
-
let readTimeout
|
|
162
|
-
let readTimeoutTimer
|
|
163
|
-
let queryCallback
|
|
164
|
-
|
|
165
|
-
if (config === null || config === undefined) {
|
|
166
|
-
throw new TypeError('Client was passed a null or undefined query')
|
|
167
|
-
} else if (typeof config.submit === 'function') {
|
|
168
|
-
readTimeout = config.query_timeout || this.connectionParameters.query_timeout
|
|
169
|
-
result = query = config
|
|
170
|
-
// accept query(new Query(...), (err, res) => { }) style
|
|
171
|
-
if (typeof values === 'function') {
|
|
172
|
-
config.callback = values
|
|
173
|
-
}
|
|
174
|
-
} else {
|
|
175
|
-
readTimeout = config.query_timeout || this.connectionParameters.query_timeout
|
|
176
|
-
query = new NativeQuery(config, values, callback)
|
|
177
|
-
if (!query.callback) {
|
|
178
|
-
let resolveOut, rejectOut
|
|
179
|
-
result = new this._Promise((resolve, reject) => {
|
|
180
|
-
resolveOut = resolve
|
|
181
|
-
rejectOut = reject
|
|
182
|
-
}).catch((err) => {
|
|
183
|
-
Error.captureStackTrace(err)
|
|
184
|
-
throw err
|
|
185
|
-
})
|
|
186
|
-
query.callback = (err, res) => (err ? rejectOut(err) : resolveOut(res))
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
if (readTimeout) {
|
|
191
|
-
queryCallback = query.callback || (() => {})
|
|
192
|
-
|
|
193
|
-
readTimeoutTimer = setTimeout(() => {
|
|
194
|
-
const error = new Error('Query read timeout')
|
|
195
|
-
|
|
196
|
-
process.nextTick(() => {
|
|
197
|
-
query.handleError(error, this.connection)
|
|
198
|
-
})
|
|
199
|
-
|
|
200
|
-
queryCallback(error)
|
|
201
|
-
|
|
202
|
-
// we already returned an error,
|
|
203
|
-
// just do nothing if query completes
|
|
204
|
-
query.callback = () => {}
|
|
205
|
-
|
|
206
|
-
// Remove from queue
|
|
207
|
-
const index = this._queryQueue.indexOf(query)
|
|
208
|
-
if (index > -1) {
|
|
209
|
-
this._queryQueue.splice(index, 1)
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
this._pulseQueryQueue()
|
|
213
|
-
}, readTimeout)
|
|
214
|
-
|
|
215
|
-
query.callback = (err, res) => {
|
|
216
|
-
clearTimeout(readTimeoutTimer)
|
|
217
|
-
queryCallback(err, res)
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
if (!this._queryable) {
|
|
222
|
-
query.native = this.native
|
|
223
|
-
process.nextTick(() => {
|
|
224
|
-
query.handleError(new Error('Client has encountered a connection error and is not queryable'))
|
|
225
|
-
})
|
|
226
|
-
return result
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
if (this._ending) {
|
|
230
|
-
query.native = this.native
|
|
231
|
-
process.nextTick(() => {
|
|
232
|
-
query.handleError(new Error('Client was closed and is not queryable'))
|
|
233
|
-
})
|
|
234
|
-
return result
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
if (this._queryQueue.length > 0) {
|
|
238
|
-
queryQueueLengthDeprecationNotice()
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
this._queryQueue.push(query)
|
|
242
|
-
this._pulseQueryQueue()
|
|
243
|
-
return result
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
// disconnect from the backend server
|
|
247
|
-
Client.prototype.end = function (cb) {
|
|
248
|
-
const self = this
|
|
249
|
-
|
|
250
|
-
this._ending = true
|
|
251
|
-
|
|
252
|
-
if (!this._connected) {
|
|
253
|
-
this.once('connect', this.end.bind(this, cb))
|
|
254
|
-
}
|
|
255
|
-
let result
|
|
256
|
-
if (!cb) {
|
|
257
|
-
result = new this._Promise(function (resolve, reject) {
|
|
258
|
-
cb = (err) => (err ? reject(err) : resolve())
|
|
259
|
-
})
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
this.native.end(function () {
|
|
263
|
-
self._connected = false
|
|
264
|
-
|
|
265
|
-
self._errorAllQueries(new Error('Connection terminated'))
|
|
266
|
-
|
|
267
|
-
process.nextTick(() => {
|
|
268
|
-
self.emit('end')
|
|
269
|
-
if (cb) cb()
|
|
270
|
-
})
|
|
271
|
-
})
|
|
272
|
-
return result
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
Client.prototype._hasActiveQuery = function () {
|
|
276
|
-
return this._activeQuery && this._activeQuery.state !== 'error' && this._activeQuery.state !== 'end'
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
Client.prototype._pulseQueryQueue = function (initialConnection) {
|
|
280
|
-
if (!this._connected) {
|
|
281
|
-
return
|
|
282
|
-
}
|
|
283
|
-
if (this._hasActiveQuery()) {
|
|
284
|
-
return
|
|
285
|
-
}
|
|
286
|
-
const query = this._queryQueue.shift()
|
|
287
|
-
if (!query) {
|
|
288
|
-
if (!initialConnection) {
|
|
289
|
-
this.emit('drain')
|
|
290
|
-
}
|
|
291
|
-
return
|
|
292
|
-
}
|
|
293
|
-
this._activeQuery = query
|
|
294
|
-
query.submit(this)
|
|
295
|
-
const self = this
|
|
296
|
-
query.once('_done', function () {
|
|
297
|
-
self._pulseQueryQueue()
|
|
298
|
-
})
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
// attempt to cancel an in-progress query
|
|
302
|
-
Client.prototype.cancel = function (query) {
|
|
303
|
-
if (this._activeQuery === query) {
|
|
304
|
-
this.native.cancel(function () {})
|
|
305
|
-
} else if (this._queryQueue.indexOf(query) !== -1) {
|
|
306
|
-
this._queryQueue.splice(this._queryQueue.indexOf(query), 1)
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
Client.prototype.ref = function () {}
|
|
311
|
-
Client.prototype.unref = function () {}
|
|
312
|
-
|
|
313
|
-
Client.prototype.setTypeParser = function (oid, format, parseFn) {
|
|
314
|
-
return this._types.setTypeParser(oid, format, parseFn)
|
|
315
|
-
}
|
|
316
|
-
|
|
317
|
-
Client.prototype.getTypeParser = function (oid, format) {
|
|
318
|
-
return this._types.getTypeParser(oid, format)
|
|
319
|
-
}
|
|
320
|
-
|
|
321
|
-
Client.prototype.isConnected = function () {
|
|
322
|
-
return this._connected
|
|
323
|
-
}
|
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
'use strict'
|
|
2
|
-
|
|
3
|
-
const EventEmitter = require('events').EventEmitter
|
|
4
|
-
const util = require('util')
|
|
5
|
-
const utils = require('../utils')
|
|
6
|
-
|
|
7
|
-
const NativeQuery = (module.exports = function (config, values, callback) {
|
|
8
|
-
EventEmitter.call(this)
|
|
9
|
-
config = utils.normalizeQueryConfig(config, values, callback)
|
|
10
|
-
this.text = config.text
|
|
11
|
-
this.values = config.values
|
|
12
|
-
this.name = config.name
|
|
13
|
-
this.queryMode = config.queryMode
|
|
14
|
-
this.callback = config.callback
|
|
15
|
-
this.state = 'new'
|
|
16
|
-
this._arrayMode = config.rowMode === 'array'
|
|
17
|
-
|
|
18
|
-
// if the 'row' event is listened for
|
|
19
|
-
// then emit them as they come in
|
|
20
|
-
// without setting singleRowMode to true
|
|
21
|
-
// this has almost no meaning because libpq
|
|
22
|
-
// reads all rows into memory before returning any
|
|
23
|
-
this._emitRowEvents = false
|
|
24
|
-
this.on(
|
|
25
|
-
'newListener',
|
|
26
|
-
function (event) {
|
|
27
|
-
if (event === 'row') this._emitRowEvents = true
|
|
28
|
-
}.bind(this)
|
|
29
|
-
)
|
|
30
|
-
})
|
|
31
|
-
|
|
32
|
-
util.inherits(NativeQuery, EventEmitter)
|
|
33
|
-
|
|
34
|
-
const errorFieldMap = {
|
|
35
|
-
sqlState: 'code',
|
|
36
|
-
statementPosition: 'position',
|
|
37
|
-
messagePrimary: 'message',
|
|
38
|
-
context: 'where',
|
|
39
|
-
schemaName: 'schema',
|
|
40
|
-
tableName: 'table',
|
|
41
|
-
columnName: 'column',
|
|
42
|
-
dataTypeName: 'dataType',
|
|
43
|
-
constraintName: 'constraint',
|
|
44
|
-
sourceFile: 'file',
|
|
45
|
-
sourceLine: 'line',
|
|
46
|
-
sourceFunction: 'routine',
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
NativeQuery.prototype.handleError = function (err) {
|
|
50
|
-
// copy pq error fields into the error object
|
|
51
|
-
const fields = this.native.pq.resultErrorFields()
|
|
52
|
-
if (fields) {
|
|
53
|
-
for (const key in fields) {
|
|
54
|
-
const normalizedFieldName = errorFieldMap[key] || key
|
|
55
|
-
err[normalizedFieldName] = fields[key]
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
if (this.callback) {
|
|
59
|
-
this.callback(err)
|
|
60
|
-
} else {
|
|
61
|
-
this.emit('error', err)
|
|
62
|
-
}
|
|
63
|
-
this.state = 'error'
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
NativeQuery.prototype.then = function (onSuccess, onFailure) {
|
|
67
|
-
return this._getPromise().then(onSuccess, onFailure)
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
NativeQuery.prototype.catch = function (callback) {
|
|
71
|
-
return this._getPromise().catch(callback)
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
NativeQuery.prototype._getPromise = function () {
|
|
75
|
-
if (this._promise) return this._promise
|
|
76
|
-
this._promise = new Promise(
|
|
77
|
-
function (resolve, reject) {
|
|
78
|
-
this._once('end', resolve)
|
|
79
|
-
this._once('error', reject)
|
|
80
|
-
}.bind(this)
|
|
81
|
-
)
|
|
82
|
-
return this._promise
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
NativeQuery.prototype.submit = function (client) {
|
|
86
|
-
this.state = 'running'
|
|
87
|
-
const self = this
|
|
88
|
-
this.native = client.native
|
|
89
|
-
client.native.arrayMode = this._arrayMode
|
|
90
|
-
|
|
91
|
-
let after = function (err, rows, results) {
|
|
92
|
-
client.native.arrayMode = false
|
|
93
|
-
setImmediate(function () {
|
|
94
|
-
self.emit('_done')
|
|
95
|
-
})
|
|
96
|
-
|
|
97
|
-
// handle possible query error
|
|
98
|
-
if (err) {
|
|
99
|
-
return self.handleError(err)
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
// emit row events for each row in the result
|
|
103
|
-
if (self._emitRowEvents) {
|
|
104
|
-
if (results.length > 1) {
|
|
105
|
-
rows.forEach((rowOfRows, i) => {
|
|
106
|
-
rowOfRows.forEach((row) => {
|
|
107
|
-
self.emit('row', row, results[i])
|
|
108
|
-
})
|
|
109
|
-
})
|
|
110
|
-
} else {
|
|
111
|
-
rows.forEach(function (row) {
|
|
112
|
-
self.emit('row', row, results)
|
|
113
|
-
})
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
// handle successful result
|
|
118
|
-
self.state = 'end'
|
|
119
|
-
self.emit('end', results)
|
|
120
|
-
if (self.callback) {
|
|
121
|
-
self.callback(null, results)
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
if (process.domain) {
|
|
126
|
-
after = process.domain.bind(after)
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
// named query
|
|
130
|
-
if (this.name) {
|
|
131
|
-
if (this.name.length > 63) {
|
|
132
|
-
console.error('Warning! Postgres only supports 63 characters for query names.')
|
|
133
|
-
console.error('You supplied %s (%s)', this.name, this.name.length)
|
|
134
|
-
console.error('This can cause conflicts and silent errors executing queries')
|
|
135
|
-
}
|
|
136
|
-
const values = (this.values || []).map(utils.prepareValue)
|
|
137
|
-
|
|
138
|
-
// check if the client has already executed this named query
|
|
139
|
-
// if so...just execute it again - skip the planning phase
|
|
140
|
-
if (client.namedQueries[this.name]) {
|
|
141
|
-
if (this.text && client.namedQueries[this.name] !== this.text) {
|
|
142
|
-
const err = new Error(`Prepared statements must be unique - '${this.name}' was used for a different statement`)
|
|
143
|
-
return after(err)
|
|
144
|
-
}
|
|
145
|
-
return client.native.execute(this.name, values, after)
|
|
146
|
-
}
|
|
147
|
-
// plan the named query the first time, then execute it
|
|
148
|
-
return client.native.prepare(this.name, this.text, values.length, function (err) {
|
|
149
|
-
if (err) return after(err)
|
|
150
|
-
client.namedQueries[self.name] = self.text
|
|
151
|
-
return self.native.execute(self.name, values, after)
|
|
152
|
-
})
|
|
153
|
-
} else if (this.values) {
|
|
154
|
-
if (!Array.isArray(this.values)) {
|
|
155
|
-
const err = new Error('Query values must be an array')
|
|
156
|
-
return after(err)
|
|
157
|
-
}
|
|
158
|
-
const vals = this.values.map(utils.prepareValue)
|
|
159
|
-
client.native.query(this.text, vals, after)
|
|
160
|
-
} else if (this.queryMode === 'extended') {
|
|
161
|
-
client.native.query(this.text, [], after)
|
|
162
|
-
} else {
|
|
163
|
-
client.native.query(this.text, after)
|
|
164
|
-
}
|
|
165
|
-
}
|