orcaq 1.1.4 → 1.1.5
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/.output/nitro.json +1 -1
- package/.output/public/_nuxt/{TKeZJpIw.js → 0olA6U9-.js} +1 -1
- package/.output/public/_nuxt/{DQCTvlJf.js → 2bjDg-PP.js} +1 -1
- package/.output/public/_nuxt/{C6r_nDJz.js → 3MFLtJaB.js} +2 -2
- package/.output/public/_nuxt/{BiMJOLHR.js → 5eGdUlL5.js} +1 -1
- package/.output/public/_nuxt/{DEsdpKnm.js → 98JSO6jv.js} +1 -1
- package/.output/public/_nuxt/{BdCzQG_z.js → 9N_axiMO.js} +1 -1
- package/.output/public/_nuxt/{MC96ynYQ.js → B1LoOOkn.js} +1 -1
- package/.output/public/_nuxt/{CrNrSEll.js → B6tZoMuV.js} +1 -1
- package/.output/public/_nuxt/{BYav_5oM.js → B7-PqSUV.js} +1 -1
- package/.output/public/_nuxt/{xoY3RXI7.js → B8-wNbMP.js} +1 -1
- package/.output/public/_nuxt/{C5zTeLKh.js → B9FaYCWq.js} +1 -1
- package/.output/public/_nuxt/BDMb-Pyv.js +1 -0
- package/.output/public/_nuxt/{BQFJwqXj.js → BEhaJXPi.js} +1 -1
- package/.output/public/_nuxt/{DoB1FFC2.js → BN6ZmV2J.js} +1 -1
- package/.output/public/_nuxt/{BfSmOVMj.js → BNM5p7H5.js} +5 -5
- package/.output/public/_nuxt/{BdaSWOzD.js → BQfpgF4f.js} +1 -1
- package/.output/public/_nuxt/{DijSUoYv.js → BX-UQU8e.js} +1 -1
- package/.output/public/_nuxt/{ziSTJBFH.js → BYWbdMZt.js} +1 -1
- package/.output/public/_nuxt/{5cKDQgbQ.js → Ba5PGSyB.js} +1 -1
- package/.output/public/_nuxt/{BlRPNODF.js → BcuPgKcZ.js} +1 -1
- package/.output/public/_nuxt/{BqjMHuu8.js → BiDM-4Ma.js} +1 -1
- package/.output/public/_nuxt/{BSBcOKKj.js → BjdYdiyf.js} +1 -1
- package/.output/public/_nuxt/{BYY9MB0h.js → BmDMzOju.js} +1 -1
- package/.output/public/_nuxt/{bpGjU0QQ.js → BptGnFIG.js} +1 -1
- package/.output/public/_nuxt/{BqZGP9WI.js → BqjI13AR.js} +1 -1
- package/.output/public/_nuxt/{D9SUnmGh.js → BtWocXUF.js} +1 -1
- package/.output/public/_nuxt/{-sZwfgN3.js → By3LMj8D.js} +1 -1
- package/.output/public/_nuxt/{BXp87mMj.js → BzOiQq7V.js} +4 -4
- package/.output/public/_nuxt/{D65Keo_g.js → C6Cu0sLe.js} +1 -1
- package/.output/public/_nuxt/{CBfQCVFf.js → CAw6QK8a.js} +1 -1
- package/.output/public/_nuxt/{g4lEPr__.js → CFLipT9o.js} +1 -1
- package/.output/public/_nuxt/{DKJfWiWm.js → CGW0AH4b.js} +1 -1
- package/.output/public/_nuxt/{DryPPXlb.js → CGewvTrI.js} +1 -1
- package/.output/public/_nuxt/CGtwVe-7.js +1 -0
- package/.output/public/_nuxt/{D-pZQQ02.js → CJZf1MDD.js} +1 -1
- package/.output/public/_nuxt/{DDIVwUV6.js → CKTZRDiI.js} +1 -1
- package/.output/public/_nuxt/{DHnV-0Qj.js → COm5WeiJ.js} +1 -1
- package/.output/public/_nuxt/CQUEIz0K.js +1 -0
- package/.output/public/_nuxt/{BdX6JvdH.js → CQas_zLl.js} +1 -1
- package/.output/public/_nuxt/{N6_KTIJr.js → CQzADP3y.js} +1 -1
- package/.output/public/_nuxt/{BIHJR--x.js → CTkQN1XK.js} +1 -1
- package/.output/public/_nuxt/{BxdkXfb_.js → CUU4aZu3.js} +1 -1
- package/.output/public/_nuxt/CUiGarir.js +1 -0
- package/.output/public/_nuxt/{Cih6uwf6.js → CWrGZxpH.js} +1 -1
- package/.output/public/_nuxt/{DdW7QNKl.js → CY5xaULp.js} +1 -1
- package/.output/public/_nuxt/{C20WaARR.js → CYMhtSRb.js} +1 -1
- package/.output/public/_nuxt/{CMT3TfI0.js → CYkdQXWd.js} +1 -1
- package/.output/public/_nuxt/{CRX1CszZ.js → CZGnIeYQ.js} +1 -1
- package/.output/public/_nuxt/CZmkQ9aO.js +2 -0
- package/.output/public/_nuxt/{C2kyA9ZS.js → CbANTWsS.js} +1 -1
- package/.output/public/_nuxt/{CDPrFhDR.js → Cc2igSge.js} +21 -21
- package/.output/public/_nuxt/{CFOJLBf2.js → CdVERIz5.js} +1 -1
- package/.output/public/_nuxt/{_Od8x2z5.js → Ce7ha8Ij.js} +1 -1
- package/.output/public/_nuxt/{BCFLQ_rL.js → Cgf5py_m.js} +1 -1
- package/.output/public/_nuxt/{C6yADG7D.js → CopwM-Pr.js} +1 -1
- package/.output/public/_nuxt/CpBFRs2a.js +1 -0
- package/.output/public/_nuxt/Cr2BKem3.js +1 -0
- package/.output/public/_nuxt/{DmpCN34M.js → CtcvFTZM.js} +1 -1
- package/.output/public/_nuxt/{DUqYnCG7.js → CuaktsoE.js} +1 -1
- package/.output/public/_nuxt/{Bp1mKnR0.js → D0o3znGI.js} +1 -1
- package/.output/public/_nuxt/{BNqd1Zca.js → D1veMm0L.js} +1 -1
- package/.output/public/_nuxt/{CmzTcheK.js → D2eDr3o2.js} +1 -1
- package/.output/public/_nuxt/{BsA8eQHh.js → D2uh44XM.js} +1 -1
- package/.output/public/_nuxt/{BNkZeak0.js → D3ZJP2ze.js} +1 -1
- package/.output/public/_nuxt/{DDS9xPxH.js → D4dXVtWp.js} +1 -1
- package/.output/public/_nuxt/{u7qmw6wa.js → DCaozlmM.js} +1 -1
- package/.output/public/_nuxt/{KK3goksi.js → DGuH4YHZ.js} +1 -1
- package/.output/public/_nuxt/{Z42SRPvO.js → DJa6BJMa.js} +1 -1
- package/.output/public/_nuxt/{e04t7nee.js → DKGci8Z9.js} +1 -1
- package/.output/public/_nuxt/{D4PtOV7Y.js → DTEzbo2c.js} +1 -1
- package/.output/public/_nuxt/DUliC29v.js +1 -0
- package/.output/public/_nuxt/{CJhlBUX_.js → DW1m4Hxy.js} +1 -1
- package/.output/public/_nuxt/{DNpk_jbU.js → DWkbgNG-.js} +1 -1
- package/.output/public/_nuxt/{Ddtv9Dxp.js → DWnJMbXf.js} +1 -1
- package/.output/public/_nuxt/{DLTvS7Vr.js → DXQS6bj6.js} +2 -2
- package/.output/public/_nuxt/Dah6izTx.js +22 -0
- package/.output/public/_nuxt/{BN9sUptU.js → DcCuT_qB.js} +1 -1
- package/.output/public/_nuxt/Dcz-n576.js +1 -0
- package/.output/public/_nuxt/{CLXbv9E5.js → DdUuVBMi.js} +1 -1
- package/.output/public/_nuxt/{HP3PGEjt.js → DehrK61g.js} +1 -1
- package/.output/public/_nuxt/{BWphy0Pi.js → Di03NGSO.js} +1 -1
- package/.output/public/_nuxt/{DNgNuAci.js → Di0QgSJz.js} +1 -1
- package/.output/public/_nuxt/Di_nUA-u.js +7 -0
- package/.output/public/_nuxt/{Dfzgj0Oq.js → DnPYRTtC.js} +1 -1
- package/.output/public/_nuxt/{DT4w6IwV.js → DoIRSvuP.js} +1 -1
- package/.output/public/_nuxt/{D3ujZRkc.js → DpyRXhd7.js} +1 -1
- package/.output/public/_nuxt/{CYaqLaPZ.js → Ds73uRhN.js} +1 -1
- package/.output/public/_nuxt/{CwgI7YXL.js → Dtfetpn0.js} +1 -1
- package/.output/public/_nuxt/DuMEW1lw.js +1 -0
- package/.output/public/_nuxt/{D6c_aTbv.js → DvATq7eC.js} +1 -1
- package/.output/public/_nuxt/DwfS-MFd.js +1 -0
- package/.output/public/_nuxt/{DaiufW99.js → DyIuwJ7R.js} +1 -1
- package/.output/public/_nuxt/{2XEGje4L.js → LQx-wtAv.js} +1 -1
- package/.output/public/_nuxt/{DKhuBYhy.js → MPvsaAca.js} +1 -1
- package/.output/public/_nuxt/{Brupmvos.js → O78AcFB2.js} +1 -1
- package/.output/public/_nuxt/OMgXwGIN.js +26 -0
- package/.output/public/_nuxt/{UHOKyE8O.js → Th_o-5A0.js} +1 -1
- package/.output/public/_nuxt/{Ef-1UUMy.js → XAHyd86s.js} +1 -1
- package/.output/public/_nuxt/{1iqadsOZ.js → ZDrzZQNQ.js} +1 -1
- package/.output/public/_nuxt/{BVl8VKr5.js → ZS8y2W5x.js} +1 -1
- package/.output/public/_nuxt/{_fileId_.DDOcnoDQ.css → _fileId_.DxhkUVGK.css} +1 -1
- package/.output/public/_nuxt/{CxSk31iP.js → _q4rKPCs.js} +1 -1
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/5680cb77-cc14-4e94-a235-c54fb463e1ca.json +1 -0
- package/.output/public/_nuxt/entry.CNXXuHFL.css +1 -0
- package/.output/public/_nuxt/{B9Yq_mZo.js → fkIyRXiG.js} +1 -1
- package/.output/public/_nuxt/{B_J4rjuT.js → hJtoF0XJ.js} +1 -1
- package/.output/public/_nuxt/{DYqNroD1.js → i2P9wHne.js} +1 -1
- package/.output/public/_nuxt/{DZ9fd-xA.js → jwI3t-NN.js} +1 -1
- package/.output/public/_nuxt/{l12ZvGEh.js → lID_8ynt.js} +1 -1
- package/.output/public/_nuxt/{DdRczQp2.js → nZnnkbcv.js} +1 -1
- package/.output/public/_nuxt/{DIoeBtoF.js → s75xJ0Ts.js} +3 -3
- package/.output/server/chunks/_/create-adapter.mjs +2 -1
- package/.output/server/chunks/_/create-adapter.mjs.map +1 -1
- package/.output/server/chunks/_/database-client-type.mjs +27 -0
- package/.output/server/chunks/_/database-client-type.mjs.map +1 -0
- package/.output/server/chunks/_/database-error.mjs +1 -1
- package/.output/server/chunks/_/database-roles.factory.mjs +1 -1
- package/.output/server/chunks/_/db-connection.mjs +3 -27
- package/.output/server/chunks/_/db-connection.mjs.map +1 -1
- package/.output/server/chunks/_/functions.factory.mjs +1 -1
- package/.output/server/chunks/_/instance-insights.factory.mjs +2 -1
- package/.output/server/chunks/_/instance-insights.factory.mjs.map +1 -1
- package/.output/server/chunks/_/metadata.factory.mjs +1 -1
- package/.output/server/chunks/_/native-backup-jobs.mjs +9 -179
- package/.output/server/chunks/_/native-backup-jobs.mjs.map +1 -1
- package/.output/server/chunks/_/native-backup.mjs +339 -0
- package/.output/server/chunks/_/native-backup.mjs.map +1 -0
- package/.output/server/chunks/_/query.factory.mjs +2 -1
- package/.output/server/chunks/_/query.factory.mjs.map +1 -1
- package/.output/server/chunks/_/redis.client.mjs +1 -1
- package/.output/server/chunks/_/tables.factory.mjs +1 -1
- package/.output/server/chunks/_/type-alias.constants.mjs +1 -1
- package/.output/server/chunks/_/views.factory.mjs +1 -1
- package/.output/server/chunks/build/client.manifest.mjs +629 -642
- package/.output/server/chunks/build/client.manifest.mjs.map +1 -1
- package/.output/server/chunks/nitro/nitro.mjs +643 -650
- package/.output/server/chunks/routes/api/ai/agent.mjs +2 -1
- package/.output/server/chunks/routes/api/ai/agent.mjs.map +1 -1
- package/.output/server/chunks/routes/api/database-backup/capability.get.mjs +33 -0
- package/.output/server/chunks/routes/api/database-backup/capability.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/database-export/export-database.mjs +7 -5
- package/.output/server/chunks/routes/api/database-export/export-database.mjs.map +1 -1
- package/.output/server/chunks/routes/api/database-export/jobs/_jobId/download.get.mjs +5 -3
- package/.output/server/chunks/routes/api/database-export/jobs/_jobId/download.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/database-export/jobs/_jobId_.get.mjs +5 -3
- package/.output/server/chunks/routes/api/database-export/jobs/_jobId_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/database-import/import-database.mjs +8 -6
- package/.output/server/chunks/routes/api/database-import/import-database.mjs.map +1 -1
- package/.output/server/chunks/routes/api/database-import/jobs/_jobId_.get.mjs +5 -3
- package/.output/server/chunks/routes/api/database-import/jobs/_jobId_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/database-roles/create-role.mjs +3 -2
- package/.output/server/chunks/routes/api/database-roles/create-role.mjs.map +1 -1
- package/.output/server/chunks/routes/api/database-roles/delete-role.mjs +3 -2
- package/.output/server/chunks/routes/api/database-roles/delete-role.mjs.map +1 -1
- package/.output/server/chunks/routes/api/database-roles/get-databases-with-permissions.mjs +3 -2
- package/.output/server/chunks/routes/api/database-roles/get-databases-with-permissions.mjs.map +1 -1
- package/.output/server/chunks/routes/api/database-roles/get-databases.mjs +3 -2
- package/.output/server/chunks/routes/api/database-roles/get-databases.mjs.map +1 -1
- package/.output/server/chunks/routes/api/database-roles/get-permissions.mjs +3 -2
- package/.output/server/chunks/routes/api/database-roles/get-permissions.mjs.map +1 -1
- package/.output/server/chunks/routes/api/database-roles/get-role-inheritance.mjs +3 -2
- package/.output/server/chunks/routes/api/database-roles/get-role-inheritance.mjs.map +1 -1
- package/.output/server/chunks/routes/api/database-roles/get-role.mjs +3 -2
- package/.output/server/chunks/routes/api/database-roles/get-role.mjs.map +1 -1
- package/.output/server/chunks/routes/api/database-roles/get-roles.mjs +3 -2
- package/.output/server/chunks/routes/api/database-roles/get-roles.mjs.map +1 -1
- package/.output/server/chunks/routes/api/database-roles/get-schema-objects.mjs +3 -2
- package/.output/server/chunks/routes/api/database-roles/get-schema-objects.mjs.map +1 -1
- package/.output/server/chunks/routes/api/database-roles/get-schemas.mjs +3 -2
- package/.output/server/chunks/routes/api/database-roles/get-schemas.mjs.map +1 -1
- package/.output/server/chunks/routes/api/database-roles/grant-bulk-permissions.mjs +3 -2
- package/.output/server/chunks/routes/api/database-roles/grant-bulk-permissions.mjs.map +1 -1
- package/.output/server/chunks/routes/api/database-roles/grant-permission.mjs +3 -2
- package/.output/server/chunks/routes/api/database-roles/grant-permission.mjs.map +1 -1
- package/.output/server/chunks/routes/api/database-roles/revoke-permission.mjs +3 -2
- package/.output/server/chunks/routes/api/database-roles/revoke-permission.mjs.map +1 -1
- package/.output/server/chunks/routes/api/functions/definition.post.mjs +3 -2
- package/.output/server/chunks/routes/api/functions/definition.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/functions/delete.post.mjs +3 -2
- package/.output/server/chunks/routes/api/functions/delete.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/functions/overview.post.mjs +3 -2
- package/.output/server/chunks/routes/api/functions/overview.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/functions/rename.post.mjs +3 -2
- package/.output/server/chunks/routes/api/functions/rename.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/functions/signature.post.mjs +3 -2
- package/.output/server/chunks/routes/api/functions/signature.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/functions/update.post.mjs +3 -2
- package/.output/server/chunks/routes/api/functions/update.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.post.mjs +5 -4
- package/.output/server/chunks/routes/api/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/instance-insights/cancel-query.post.mjs +2 -1
- package/.output/server/chunks/routes/api/instance-insights/cancel-query.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/instance-insights/configuration.post.mjs +2 -1
- package/.output/server/chunks/routes/api/instance-insights/configuration.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/instance-insights/dashboard.post.mjs +2 -1
- package/.output/server/chunks/routes/api/instance-insights/dashboard.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/instance-insights/drop-slot.post.mjs +2 -1
- package/.output/server/chunks/routes/api/instance-insights/drop-slot.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/instance-insights/replication.post.mjs +2 -1
- package/.output/server/chunks/routes/api/instance-insights/replication.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/instance-insights/state.post.mjs +2 -1
- package/.output/server/chunks/routes/api/instance-insights/state.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/instance-insights/terminate-connection.post.mjs +2 -1
- package/.output/server/chunks/routes/api/instance-insights/terminate-connection.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/instance-insights/toggle-slot-status.post.mjs +2 -1
- package/.output/server/chunks/routes/api/instance-insights/toggle-slot-status.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/instance-insights/view.post.mjs +2 -1
- package/.output/server/chunks/routes/api/instance-insights/view.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/managment-connection/health-check.mjs +1 -0
- package/.output/server/chunks/routes/api/managment-connection/health-check.mjs.map +1 -1
- package/.output/server/chunks/routes/api/metadata/erd.post.mjs +4 -3
- package/.output/server/chunks/routes/api/metadata/erd.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/metadata/meta-data.post.mjs +4 -3
- package/.output/server/chunks/routes/api/metadata/meta-data.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/metadata/reverse-schemas.post.mjs +4 -3
- package/.output/server/chunks/routes/api/metadata/reverse-schemas.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/metrics/monitor.post.mjs +2 -1
- package/.output/server/chunks/routes/api/metrics/monitor.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/query/execute.post.mjs +3 -2
- package/.output/server/chunks/routes/api/query/execute.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/query/raw-execute-stream.post.mjs +2 -1
- package/.output/server/chunks/routes/api/query/raw-execute-stream.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/query/raw-execute.post.mjs +3 -2
- package/.output/server/chunks/routes/api/query/raw-execute.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/redis/browser/value.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/tables/bulk-delete.post.mjs +3 -2
- package/.output/server/chunks/routes/api/tables/bulk-delete.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/tables/bulk-update.post.mjs +3 -2
- package/.output/server/chunks/routes/api/tables/bulk-update.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/tables/ddl.post.mjs +3 -2
- package/.output/server/chunks/routes/api/tables/ddl.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/tables/export.post.mjs +4 -3
- package/.output/server/chunks/routes/api/tables/export.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/tables/indexes.post.mjs +3 -2
- package/.output/server/chunks/routes/api/tables/indexes.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/tables/meta.post.mjs +3 -2
- package/.output/server/chunks/routes/api/tables/meta.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/tables/overview.post.mjs +3 -2
- package/.output/server/chunks/routes/api/tables/overview.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/tables/rls.post.mjs +3 -2
- package/.output/server/chunks/routes/api/tables/rls.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/tables/rules.post.mjs +3 -2
- package/.output/server/chunks/routes/api/tables/rules.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/tables/size.post.mjs +3 -2
- package/.output/server/chunks/routes/api/tables/size.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/tables/structure.post.mjs +3 -2
- package/.output/server/chunks/routes/api/tables/structure.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/tables/triggers.post.mjs +3 -2
- package/.output/server/chunks/routes/api/tables/triggers.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/views/definition.post.mjs +3 -2
- package/.output/server/chunks/routes/api/views/definition.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/views/dependencies.post.mjs +3 -2
- package/.output/server/chunks/routes/api/views/dependencies.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/views/explain.post.mjs +3 -2
- package/.output/server/chunks/routes/api/views/explain.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/views/indexes.post.mjs +3 -2
- package/.output/server/chunks/routes/api/views/indexes.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/views/meta.post.mjs +3 -2
- package/.output/server/chunks/routes/api/views/meta.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/views/overview.post.mjs +3 -2
- package/.output/server/chunks/routes/api/views/overview.post.mjs.map +1 -1
- package/.output/server/chunks/routes/renderer.mjs +1 -1
- package/.output/server/package.json +1 -1
- package/package.json +1 -1
- package/.output/public/_nuxt/2WkPV7Mp.js +0 -22
- package/.output/public/_nuxt/B8rT4ISg.js +0 -2
- package/.output/public/_nuxt/BOZgY48g.js +0 -1
- package/.output/public/_nuxt/B_U4hCvn.js +0 -7
- package/.output/public/_nuxt/BmREJclf.js +0 -1
- package/.output/public/_nuxt/Bwe8I9vL.js +0 -1
- package/.output/public/_nuxt/C4HRDaS8.js +0 -1
- package/.output/public/_nuxt/CyEWn2V2.js +0 -1
- package/.output/public/_nuxt/D0mrO5vS.js +0 -1
- package/.output/public/_nuxt/DQf3b-ld.js +0 -1
- package/.output/public/_nuxt/DgRHzRny.js +0 -1
- package/.output/public/_nuxt/Dm-rJ5VH.js +0 -1
- package/.output/public/_nuxt/Dp2UQPgO.js +0 -1
- package/.output/public/_nuxt/DyCQWd5B.js +0 -12
- package/.output/public/_nuxt/builds/meta/9b89410f-7683-420e-9dea-d15741f0e6ce.json +0 -1
- package/.output/public/_nuxt/doR1dsEF.js +0 -15
- package/.output/public/_nuxt/entry.DEE2Ngsu.css +0 -1
- package/.output/server/chunks/routes/api/ai/chat.mjs +0 -77
- package/.output/server/chunks/routes/api/ai/chat.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{G as Qe,d as U,r as L,au as re,c as T,e as _,m as e,l as N,f as S,a0 as ce,w as E,z as M,t as a,g as t,o as f,A as me,n as oe,de as De,bn as Fe,i as le,aZ as Se,df as We,dg as ke,cp as we,bW as Ie,E as ne,K as fe,a3 as he,k as X,q as Te,I as te,aM as se,bl as _e,bp as Ce,bD as Le,bE as Re,F as D,s as F,bF as Ae,am as He,a6 as ue,a8 as Xe,a2 as Ye}from"./BfSmOVMj.js";import{g as Ve}from"./DoB1FFC2.js";import{t as K,i as Je,a as Ze,b as et,m as tt,k as st,g as ze,h as je,c as nt,d as Ee,e as ot,f as at,j as it,n as rt,l as lt,S as dt,o as ut,p as ct,_ as Ke,q as mt,r as Me,s as pt,C as ft,u as gt,v as vt,E as xe,w as bt,x as _t,y as ht,z as yt,A as xt,B as $t}from"./l12ZvGEh.js";import{f as St}from"./-lZvfnzr.js";import{_ as ye}from"./DUqYnCG7.js";import{b as ge,a as Ue}from"./BVmBXPoG.js";import{u as kt}from"./C2kyA9ZS.js";import{_ as wt}from"./DDS9xPxH.js";import{_ as Pe}from"./N6_KTIJr.js";import{_ as It,u as Tt}from"./BiMJOLHR.js";import"./DNgNuAci.js";import"./CS5akSNT.js";var Ne={value:"eq","<":"lt","<=":"lte",">":"gt",">=":"gte","=":"eq","!=":"ne","<>":"ne"},Ct=function(){function n(i){var c=this._condVal=Ee(i)?new RegExp(i):ot(i)?i:null;if(c==null){var s="";K(s)}}return n.prototype.evaluate=function(i){var c=typeof i;return Ee(c)?this._condVal.test(i):at(c)?this._condVal.test(i+""):!1},n}(),Lt=function(){function n(){}return n.prototype.evaluate=function(){return this.value},n}(),Rt=function(){function n(){}return n.prototype.evaluate=function(){for(var i=this.children,c=0;c<i.length;c++)if(!i[c].evaluate())return!1;return!0},n}(),At=function(){function n(){}return n.prototype.evaluate=function(){for(var i=this.children,c=0;c<i.length;c++)if(i[c].evaluate())return!0;return!1},n}(),Pt=function(){function n(){}return n.prototype.evaluate=function(){return!this.child.evaluate()},n}(),Bt=function(){function n(){}return n.prototype.evaluate=function(){for(var i=!!this.valueParser,c=this.getValue,s=c(this.valueGetterParam),o=i?this.valueParser(s):null,h=0;h<this.subCondList.length;h++)if(!this.subCondList[h].evaluate(i?o:s))return!1;return!0},n}();function Be(n,i){if(n===!0||n===!1){var c=new Lt;return c.value=n,c}var s="";return Ge(n)||K(s),n.and?Oe("and",n,i):n.or?Oe("or",n,i):n.not?Et(n,i):Mt(n,i)}function Oe(n,i,c){var s=i[n],o="";et(s)||K(o),s.length||K(o);var h=n==="and"?new Rt:new At;return h.children=tt(s,function(p){return Be(p,c)}),h.children.length||K(o),h}function Et(n,i){var c=n.not,s="";Ge(c)||K(s);var o=new Pt;return o.child=Be(c,i),o.child||K(s),o}function Mt(n,i){for(var c="",s=i.prepareGetValue(n),o=[],h=st(n),p=n.parser,$=p?ze(p):null,b=0;b<h.length;b++){var u=h[b];if(!(u==="parser"||i.valueGetterAttrMap.get(u))){var k=je(Ne,u)?Ne[u]:u,w=n[u],y=$?$(w):w,m=nt(k,y)||k==="reg"&&new Ct(y);m||K(c),o.push(m)}}o.length||K(c);var v=new Bt;return v.valueGetterParam=s,v.valueParser=$,v.getValue=i.getValue,v.subCondList=o,v}function Ge(n){return Je(n)&&!Ze(n)}var Nt=function(){function n(i,c){this._cond=Be(i,c)}return n.prototype.evaluate=function(){return this._cond.evaluate()},n}();function Ot(n,i){return new Nt(n,i)}var Dt={type:"echarts:filter",transform:function(n){for(var i=n.upstream,c,s=Ot(n.config,{valueGetterAttrMap:it({dimension:!0}),prepareGetValue:function($){var b="",u=$.dimension;je($,"dimension")||K(b);var k=i.getDimensionInfo(u);return k||K(b),{dimIdx:k.index}},getValue:function($){return i.retrieveValueFromItem(c,$.dimIdx)}}),o=[],h=0,p=i.count();h<p;h++)c=i.getRawDataItem(h),s.evaluate()&&o.push(c);return{data:o}}},Ft={type:"echarts:sort",transform:function(n){var i=n.upstream,c=n.config,s="",o=rt(c);o.length||K(s);var h=[];lt(o,function(k){var w=k.dimension,y=k.order,m=k.parser,v=k.incomparable;if(w==null&&K(s),y!=="asc"&&y!=="desc"&&K(s),v&&v!=="min"&&v!=="max"){var l="";K(l)}if(y!=="asc"&&y!=="desc"){var r="";K(r)}var d=i.getDimensionInfo(w);d||K(s);var R=m?ze(m):null;m&&!R&&K(s),h.push({dimIdx:d.index,parser:R,comparator:new dt(y,v)})});var p=i.sourceFormat;p!==ut&&p!==ct&&K(s);for(var $=[],b=0,u=i.count();b<u;b++)$.push(i.getRawDataItem(b));return $.sort(function(k,w){for(var y=0;y<h.length;y++){var m=h[y],v=i.retrieveValueFromItem(k,m.dimIdx),l=i.retrieveValueFromItem(w,m.dimIdx);m.parser&&(v=m.parser(v),l=m.parser(l));var r=m.comparator.evaluate(v,l);if(r!==0)return r}return 0}),{data:$}}};function Ht(n){n.registerTransform(Dt),n.registerTransform(Ft)}var Vt=function(n){Ke(i,n);function i(){var c=n!==null&&n.apply(this,arguments)||this;return c.type="dataset",c}return i.prototype.init=function(c,s,o){n.prototype.init.call(this,c,s,o),this._sourceManager=new mt(this),Me(this)},i.prototype.mergeOption=function(c,s){n.prototype.mergeOption.call(this,c,s),Me(this)},i.prototype.optionUpdated=function(){this._sourceManager.dirty()},i.prototype.getSourceManager=function(){return this._sourceManager},i.type="dataset",i.defaultOption={seriesLayoutBy:pt},i}(ft),zt=function(n){Ke(i,n);function i(){var c=n!==null&&n.apply(this,arguments)||this;return c.type="dataset",c}return i.type="dataset",i}(gt);function jt(n){n.registerComponentModel(Vt),n.registerComponentView(zt)}const de=n=>St(n??0),ie=n=>n==null?"0.00/s":`${n.toFixed(2)}/s`,$e=n=>n==null?"0%":`${n.toFixed(2)}%`,ve=n=>{if(!n)return"-";const i=new Date(n);return Number.isNaN(i.getTime())?n:i.toLocaleString()},qe=n=>{if(n==null)return"-";if(n<60)return`${n}s`;const i=Math.floor(n/60),c=n%60;if(i<60)return`${i}m ${c}s`;const s=Math.floor(i/60),o=i%60;return`${s}h ${o}m`},Kt=n=>n==null||n<=0?"0 B":Qe(n).replace(" bytes"," B"),Ut=n=>{if(!n)return"-";const i=n.replace(/\s+/g," ").trim();return i?i.length>320?`${i.slice(0,320)}...`:i:"-"},Gt=n=>(n||"").toLowerCase().includes("idle in transaction"),qt={class:"space-y-4"},Qt={class:"flex items-center justify-between"},Wt={key:0,class:"border border-red-300 bg-red-50 text-red-700 rounded-lg p-3 text-sm"},Xt={class:"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-4 gap-2.5"},Yt={class:"h-full border rounded-lg p-2.5 space-y-2"},Jt={class:"flex items-center gap-1"},Zt={class:"text-sm font-semibold leading-none tabular-nums"},es={class:"grid grid-cols-2 gap-x-3 gap-y-1 text-[11px]"},ts={class:"text-muted-foreground"},ss={class:"tabular-nums text-foreground"},ns={class:"text-muted-foreground"},os={class:"tabular-nums text-foreground"},as={class:"text-muted-foreground"},is={class:"tabular-nums text-foreground"},rs={class:"text-muted-foreground"},ls={class:"tabular-nums text-foreground"},ds={class:"h-full border rounded-lg p-2.5 space-y-2"},us={class:"flex items-center gap-1"},cs={class:"text-sm font-semibold leading-none tabular-nums"},ms={class:"grid grid-cols-2 gap-x-3 gap-y-1 text-[11px]"},ps={class:"text-muted-foreground"},fs={class:"tabular-nums text-foreground"},gs={class:"text-muted-foreground"},vs={class:"tabular-nums text-foreground"},bs={class:"text-muted-foreground"},_s={class:"tabular-nums text-foreground"},hs={class:"text-muted-foreground"},ys={class:"tabular-nums text-foreground"},xs={class:"h-full border rounded-lg p-2.5 space-y-2"},$s={class:"flex items-center gap-1"},Ss={class:"text-sm font-semibold leading-none tabular-nums"},ks={class:"grid grid-cols-2 gap-x-3 gap-y-1 text-[11px]"},ws={class:"text-muted-foreground"},Is={class:"tabular-nums text-foreground"},Ts={class:"text-muted-foreground"},Cs={class:"tabular-nums text-foreground"},Ls={class:"text-muted-foreground"},Rs={class:"tabular-nums text-foreground"},As={class:"text-muted-foreground"},Ps={class:"tabular-nums text-foreground"},Bs={class:"h-full border rounded-lg p-2.5 space-y-2"},Es={class:"flex items-center gap-1"},Ms={class:"text-sm font-semibold leading-none tabular-nums"},Ns={class:"grid grid-cols-2 gap-x-3 gap-y-1 text-[11px]"},Os={class:"text-muted-foreground"},Ds={class:"tabular-nums text-foreground"},Fs={class:"text-muted-foreground"},Hs={class:"tabular-nums text-foreground"},Vs={class:"text-muted-foreground"},zs={class:"tabular-nums text-foreground"},js={class:"text-muted-foreground"},Ks={class:"tabular-nums text-foreground"},Us={class:"grid grid-cols-1 xl:grid-cols-2 gap-3"},Gs={class:"border rounded-lg p-2.5"},qs={class:"insights-chart-container"},Qs={class:"border rounded-lg p-2.5"},Ws={class:"insights-chart-container"},Xs={class:"border rounded-lg p-2.5"},Ys={class:"insights-chart-container"},Js=U({__name:"InstanceInsightsActivitySection",props:{dashboard:{},isLoading:{type:Boolean},isActionLoading:{type:Boolean},onRefresh:{type:Function}},setup(n){vt([bt,_t,ht,jt,Ht,yt,xt,$t]);const i=n,c=L({}),s=L({}),o=L({}),h=(l,r)=>{r!=null&&r.selected&&(l.value={...r.selected})},p=l=>h(c,l),$=l=>h(s,l),b=l=>h(o,l),u=L([]);re(()=>i.dashboard,l=>{if(!(l!=null&&l.capturedAt))return;const r=new Date(l.capturedAt).toLocaleTimeString(),d={capturedAt:l.capturedAt,label:r,sessionsTotal:l.sessions.total,sessionsActive:l.sessions.active,sessionsIdle:l.sessions.idle,tps:l.transactions.tps,commits:l.transactions.commitsPerSec,rollbacks:l.transactions.rollbacksPerSec,reads:l.blockIO.readsPerSec,hits:l.blockIO.hitsPerSec,hitRatio:l.blockIO.bufferHitRatio},R=u.value.findIndex(V=>V.capturedAt===d.capturedAt);if(R>=0){u.value[R]=d;return}u.value.push(d),u.value.length>80&&(u.value=u.value.slice(-80))},{immediate:!0,deep:!0});const k=T(()=>u.value.map((l,r)=>({...l,idx:r}))),w=l=>Object.keys(l).length?l:void 0,y=T(()=>({tooltip:{trigger:"axis"},legend:{top:0,selected:w(c.value)},dataset:[{id:"sessions_raw",source:k.value},{id:"sessions_filtered",fromDatasetId:"sessions_raw",transform:{type:"filter",config:{dimension:"idx",gte:0}}}],grid:{left:45,right:20,top:34,bottom:24},xAxis:{type:"category",boundaryGap:!1},yAxis:{type:"value"},series:[{name:"Total",type:"line",smooth:!0,datasetId:"sessions_filtered",encode:{x:"label",y:"sessionsTotal"}},{name:"Active",type:"line",smooth:!0,datasetId:"sessions_filtered",encode:{x:"label",y:"sessionsActive"}},{name:"Idle",type:"line",smooth:!0,datasetId:"sessions_filtered",encode:{x:"label",y:"sessionsIdle"}}]})),m=T(()=>({tooltip:{trigger:"axis"},legend:{top:0,selected:w(s.value)},dataset:[{id:"transactions_dataset",source:k.value}],grid:{left:45,right:20,top:34,bottom:24},xAxis:{type:"category",boundaryGap:!0},yAxis:[{type:"value",name:"TPS"},{type:"value",name:"Commit/Rollback"}],series:[{name:"TPS",type:"line",smooth:!0,yAxisIndex:0,datasetId:"transactions_dataset",encode:{x:"label",y:"tps"}},{name:"Commits/s",type:"bar",yAxisIndex:1,datasetId:"transactions_dataset",encode:{x:"label",y:"commits"}},{name:"Rollbacks/s",type:"bar",yAxisIndex:1,datasetId:"transactions_dataset",encode:{x:"label",y:"rollbacks"}}]})),v=T(()=>({tooltip:{trigger:"axis"},legend:{top:0,selected:w(o.value)},dataset:[{id:"block_io_dataset",source:k.value}],grid:{left:45,right:20,top:34,bottom:24},xAxis:{type:"category",boundaryGap:!0},yAxis:[{type:"value",name:"Blocks/s"},{type:"value",name:"Hit %",min:0,max:100}],series:[{name:"Reads/s",type:"bar",yAxisIndex:0,datasetId:"block_io_dataset",encode:{x:"label",y:"reads"}},{name:"Hits/s",type:"bar",yAxisIndex:0,datasetId:"block_io_dataset",encode:{x:"label",y:"hits"}},{name:"Buffer Hit Ratio",type:"line",smooth:!0,yAxisIndex:1,datasetId:"block_io_dataset",encode:{x:"label",y:"hitRatio"}}]}));return(l,r)=>{var V,x,g,C,O,H,j,z,q,Y,J,B,A,G,Z,ae,pe,I,P,W,Q;const d=me,R=ce;return f(),_("div",qt,[e("div",Qt,[r[2]||(r[2]=e("div",null,[e("h3",{class:"text-sm font-medium"},"Activity Dashboard"),e("p",{class:"text-xs text-muted-foreground"}," Sessions, TPS, tuples and block I/O ")],-1)),S(R,{variant:"outline",size:"xs",disabled:l.isLoading||l.isActionLoading,class:"font-normal",onClick:r[0]||(r[0]=be=>l.onRefresh())},{default:E(()=>[S(d,{name:"hugeicons:redo",class:oe(["size-4",l.isLoading&&"animate-spin"])},null,8,["class"]),r[1]||(r[1]=M(" Refresh Activity "))]),_:1},8,["disabled"])]),(V=l.dashboard)!=null&&V.sessions.exceedsThreshold?(f(),_("div",Wt,[r[3]||(r[3]=M(" Total connections are at ")),e("strong",null,a(t($e)(l.dashboard.sessions.usagePercent)),1),r[4]||(r[4]=M(" of ")),r[5]||(r[5]=e("strong",null,"max_connections",-1)),r[6]||(r[6]=M(". Investigate connection pool usage. "))])):N("",!0),e("div",Xt,[e("div",Yt,[e("div",Jt,[r[7]||(r[7]=e("p",{class:"text-xs uppercase text-muted-foreground"},"Sessions:",-1)),e("p",Zt,a(t(de)((x=l.dashboard)==null?void 0:x.sessions.total)),1)]),e("div",es,[e("p",ts,[r[8]||(r[8]=e("span",null,"Active: ",-1)),e("span",ss,a(t(de)((g=l.dashboard)==null?void 0:g.sessions.active)),1)]),e("p",ns,[r[9]||(r[9]=e("span",null,"Idle: ",-1)),e("span",os,a(t(de)((C=l.dashboard)==null?void 0:C.sessions.idle)),1)]),e("p",as,[r[10]||(r[10]=e("span",null,"Max: ",-1)),e("span",is,a(t(de)((O=l.dashboard)==null?void 0:O.sessions.maxConnections)),1)]),e("p",rs,[r[11]||(r[11]=e("span",null,"Usage: ",-1)),e("span",ls,a(t($e)((H=l.dashboard)==null?void 0:H.sessions.usagePercent)),1)])])]),e("div",ds,[e("div",us,[r[12]||(r[12]=e("p",{class:"text-xs uppercase text-muted-foreground"},"TPS:",-1)),e("p",cs,a(t(ie)((j=l.dashboard)==null?void 0:j.transactions.tps)),1)]),e("div",ms,[e("p",ps,[r[13]||(r[13]=e("span",null,"Commits/sec: ",-1)),e("span",fs,a(t(ie)((z=l.dashboard)==null?void 0:z.transactions.commitsPerSec)),1)]),e("p",gs,[r[14]||(r[14]=e("span",null,"Rollbacks/sec: ",-1)),e("span",vs,a(t(ie)((q=l.dashboard)==null?void 0:q.transactions.rollbacksPerSec)),1)]),e("p",bs,[r[15]||(r[15]=e("span",null,"Total Commits: ",-1)),e("span",_s,a(t(de)((Y=l.dashboard)==null?void 0:Y.transactions.totalCommits)),1)]),e("p",hs,[r[16]||(r[16]=e("span",null,"Total Rollbacks: ",-1)),e("span",ys,a(t(de)((J=l.dashboard)==null?void 0:J.transactions.totalRollbacks)),1)])])]),e("div",xs,[e("div",$s,[r[17]||(r[17]=e("p",{class:"text-xs uppercase text-muted-foreground"},"Tuples:",-1)),e("p",Ss,a(t(ie)((B=l.dashboard)==null?void 0:B.tuples.insertsPerSec)),1)]),e("div",ks,[e("p",ws,[r[18]||(r[18]=e("span",null,"Updates: ",-1)),e("span",Is,a(t(ie)((A=l.dashboard)==null?void 0:A.tuples.updatesPerSec)),1)]),e("p",Ts,[r[19]||(r[19]=e("span",null,"Deletes: ",-1)),e("span",Cs,a(t(ie)((G=l.dashboard)==null?void 0:G.tuples.deletesPerSec)),1)]),e("p",Ls,[r[20]||(r[20]=e("span",null,"Fetched: ",-1)),e("span",Rs,a(t(ie)((Z=l.dashboard)==null?void 0:Z.tuples.fetchedPerSec)),1)]),e("p",As,[r[21]||(r[21]=e("span",null,"Returned: ",-1)),e("span",Ps,a(t(ie)((ae=l.dashboard)==null?void 0:ae.tuples.returnedPerSec)),1)])])]),e("div",Bs,[e("div",Es,[r[22]||(r[22]=e("p",{class:"text-xs uppercase text-muted-foreground"},"Block I/O:",-1)),e("p",Ms,a(t($e)((pe=l.dashboard)==null?void 0:pe.blockIO.bufferHitRatio)),1)]),e("div",Ns,[e("p",Os,[r[23]||(r[23]=e("span",null,"Reads/sec: ",-1)),e("span",Ds,a(t(ie)((I=l.dashboard)==null?void 0:I.blockIO.readsPerSec)),1)]),e("p",Fs,[r[24]||(r[24]=e("span",null,"Hits/sec: ",-1)),e("span",Hs,a(t(ie)((P=l.dashboard)==null?void 0:P.blockIO.hitsPerSec)),1)]),e("p",Vs,[r[25]||(r[25]=e("span",null,"Total Reads: ",-1)),e("span",zs,a(t(de)((W=l.dashboard)==null?void 0:W.blockIO.totalReads)),1)]),e("p",js,[r[26]||(r[26]=e("span",null,"Total Hits: ",-1)),e("span",Ks,a(t(de)((Q=l.dashboard)==null?void 0:Q.blockIO.totalHits)),1)])])])]),e("div",Us,[e("div",Gs,[r[27]||(r[27]=e("p",{class:"text-sm font-medium mb-1.5"},"Sessions Timeline",-1)),e("div",qs,[S(t(xe),{option:t(y),autoresize:"",class:"insights-chart",onLegendselectchanged:p},null,8,["option"])])]),e("div",Qs,[r[28]||(r[28]=e("p",{class:"text-sm font-medium mb-1.5"},"Transactions Timeline",-1)),e("div",Ws,[S(t(xe),{option:t(m),autoresize:"",class:"insights-chart",onLegendselectchanged:$},null,8,["option"])])])]),e("div",Xs,[r[29]||(r[29]=e("p",{class:"text-sm font-medium mb-1.5"},"Block I/O Timeline",-1)),e("div",Ys,[S(t(xe),{option:t(v),autoresize:"",class:"insights-chart",onLegendselectchanged:b},null,8,["option"])])])])}}}),Zs=De(Js,[["__scopeId","data-v-ba36a884"]]),en={class:"space-y-4 h-full flex flex-col overflow-auto"},tn={class:"flex items-center justify-between gap-2 flex-wrap"},sn={class:"h-full"},nn={class:"flex flex-col sm:flex-row sm:items-center gap-2 mb-2"},on={class:"relative flex-1"},an=U({__name:"InstanceInsightsConfigurationSection",props:{configuration:{},search:{},isLoading:{type:Boolean},isActionLoading:{type:Boolean},onRefresh:{type:Function}},emits:["update:search"],setup(n,{emit:i}){const c=n,s=i,o=T({get:()=>c.search,set:b=>s("update:search",b)}),h=T(()=>{var b;return((b=c.configuration)==null?void 0:b.rows)||[]}),p=T(()=>h.value.map(b=>({name:b.name,category:b.category,value:b.value,unit:b.unit||"-",requires_restart:b.pendingRestart?"yes":"no",description:b.description}))),$=T(()=>ge(p.value));return(b,u)=>{const k=me,w=ce,y=Fe,m=ye;return f(),_("div",en,[e("div",tn,[u[3]||(u[3]=e("div",null,[e("h3",{class:"text-sm font-medium"},"Configuration"),e("p",{class:"text-xs text-muted-foreground"},"Searchable pg_settings")],-1)),S(w,{variant:"outline",size:"xs",disabled:b.isLoading||b.isActionLoading,class:"font-normal",onClick:u[0]||(u[0]=v=>b.onRefresh())},{default:E(()=>[S(k,{name:"hugeicons:redo",class:oe(["size-4",b.isLoading&&"animate-spin"])},null,8,["class"]),u[2]||(u[2]=M(" Refresh Configuration "))]),_:1},8,["disabled"])]),e("div",sn,[e("div",nn,[e("div",on,[S(k,{name:"hugeicons:search-01",class:"size-4 absolute left-2.5 top-1/2 -translate-y-1/2 text-muted-foreground"}),S(y,{type:"text",placeholder:"Search setting name, category, or description...",class:"h-8 w-full pl-8 pr-3",modelValue:t(o),"onUpdate:modelValue":u[1]||(u[1]=v=>le(o)?o.value=v:null)},null,8,["modelValue"])])]),S(m,{columns:t($),data:t(p),class:"h-full border rounded-md",columnKeyBy:"field"},null,8,["columns","data"])])])}}}),rn={class:"space-y-4"},ln={class:"flex items-center justify-between"},dn={key:0,class:"border border-orange-300 bg-orange-50 text-orange-700 rounded-lg p-3 text-sm"},un={class:"space-y-1.5"},cn={class:"space-y-1.5"},mn={key:1,class:"border rounded-lg p-2.5"},pn={class:"flex items-center justify-between gap-3 flex-wrap"},fn={class:"text-sm font-medium"},gn={class:"flex items-center gap-2"},vn=300,bn=120,_n=44,hn=36,yn=U({__name:"InstanceInsightsReplicationSection",props:{replication:{},isLoading:{type:Boolean},isActionLoading:{type:Boolean},onRefresh:{type:Function},onToggleSlotStatus:{type:Function},onDropSlot:{type:Function}},setup(n){const i=n,c=T(()=>{var x;return((x=i.replication)==null?void 0:x.replicationStats)||[]}),s=T(()=>{var x;return((x=i.replication)==null?void 0:x.replicationSlots)||[]}),o=L([]),h=x=>{o.value=x},p=T(()=>c.value.map(x=>({pid:x.pid,client_addr:x.clientAddr||"-",application:x.applicationName||"-",state:x.state||"-",sync_state:x.syncState||"-",reply_time:ve(x.replyTime),write_lag:x.writeLag||"-",flush_lag:x.flushLag||"-",replay_lag:x.replayLag||"-"}))),$=["pid","client_addr","application","state","sync_state","reply_time","write_lag","flush_lag","replay_lag"],b=T(()=>p.value.length>0?ge(p.value):Ue($)),u=T(()=>s.value.map(x=>({slot_name:x.slotName,slot_type:x.slotType,status:x.active?"on":"off",active_pid:x.activePid??"-",restart_lsn:x.restartLsn||"-",retained_wal:Kt(x.retainedBytes),temporary:x.temporary?"yes":"no"}))),k=T(()=>ge(u.value)),w=x=>x<=0?bn:Math.min(vn,_n+x*hn),y=T(()=>`${w(p.value.length)}px`),m=T(()=>`${w(u.value.length)}px`),v=T(()=>{var g;const x=String(((g=o.value[0])==null?void 0:g.slot_name)||"");return x&&s.value.find(C=>C.slotName===x)||null}),l=T(()=>{var x;return(x=v.value)!=null&&x.active?"off":"on"}),r=T(()=>l.value==="off"?"Turn Off Slot":"Turn On Slot"),d=x=>window.confirm(x),R=async()=>{v.value&&d(`Drop replication slot "${v.value.slotName}"? This action cannot be undone.`)&&await i.onDropSlot(v.value.slotName)},V=async()=>{v.value&&d(`Switch replication slot "${v.value.slotName}" to ${l.value.toUpperCase()} status?`)&&await i.onToggleSlotStatus({slotName:v.value.slotName,desiredStatus:l.value,activePid:v.value.activePid,slotType:v.value.slotType})};return(x,g)=>{var j;const C=me,O=ce,H=ye;return f(),_("div",rn,[e("div",ln,[g[2]||(g[2]=e("div",null,[e("h3",{class:"text-sm font-medium"},"Replication"),e("p",{class:"text-xs text-muted-foreground"},"Replication stats and slots")],-1)),S(O,{variant:"outline",size:"xs",disabled:x.isLoading||x.isActionLoading,class:"font-normal",onClick:g[0]||(g[0]=z=>x.onRefresh())},{default:E(()=>[S(C,{name:"hugeicons:redo",class:oe(["size-4",x.isLoading&&"animate-spin"])},null,8,["class"]),g[1]||(g[1]=M(" Refresh Replication "))]),_:1},8,["disabled"])]),(j=x.replication)!=null&&j.staleSlotWarning?(f(),_("div",dn,a(x.replication.staleSlotWarning),1)):N("",!0),e("div",un,[g[3]||(g[3]=e("p",{class:"text-sm"},"Replication Stats",-1)),e("div",{class:"max-h-[300px]",style:Se({height:t(y)})},[S(H,{columns:t(b),data:t(p),class:"h-full border rounded-md",columnKeyBy:"field"},null,8,["columns","data"])],4)]),e("div",cn,[g[4]||(g[4]=e("h4",{class:"text-sm font-normal"},"Replication Slots",-1)),e("div",{class:"max-h-[300px]",style:Se({height:t(m)})},[S(H,{columns:t(k),data:t(u),selectedRows:t(o),class:"h-full border rounded-md",columnKeyBy:"field",onOnSelectedRows:h},null,8,["columns","data","selectedRows"])],4)]),t(v)?(f(),_("div",mn,[e("div",pn,[e("p",fn," Selected Slot: "+a(t(v).slotName)+" ("+a(t(v).active?"on":"off")+") · Active PID: "+a(t(v).activePid??"-"),1),e("div",gn,[S(O,{variant:"outline",size:"sm",disabled:x.isActionLoading,onClick:V},{default:E(()=>[M(a(t(r)),1)]),_:1},8,["disabled"]),S(O,{variant:"outline",size:"sm",disabled:x.isActionLoading,onClick:R},{default:E(()=>g[5]||(g[5]=[M(" Drop Slot ")])),_:1},8,["disabled"])])])])):N("",!0)])}}}),xn={class:"space-y-4"},$n={class:"flex items-center justify-between"},Sn={class:"space-y-1.5"},kn={class:"h-[360px]"},wn={key:0,class:"border rounded-lg p-2.5 space-y-2"},In={class:"flex items-center justify-between gap-3 flex-wrap"},Tn={class:"text-sm font-medium"},Cn={class:"flex gap-2"},Ln=["innerHTML"],Rn={class:"grid grid-cols-1 xl:grid-cols-2 gap-3"},An={class:"space-y-1.5"},Pn={class:"h-[300px]"},Bn={class:"space-y-1.5"},En={class:"h-[300px]"},Mn=U({__name:"InstanceInsightsStateSection",props:{state:{},isLoading:{type:Boolean},isActionLoading:{type:Boolean},onRefresh:{type:Function},onCancelQuery:{type:Function},onTerminateConnection:{type:Function}},setup(n){const i=n,{highlightSql:c}=kt(),s=T(()=>{var g;return((g=i.state)==null?void 0:g.sessions)||[]}),o=T(()=>{var g;return((g=i.state)==null?void 0:g.locks)||[]}),h=T(()=>{var g;return((g=i.state)==null?void 0:g.preparedTransactions)||[]}),p=L([]),$=g=>{p.value=g},b=T(()=>s.value.map(g=>({pid:g.pid,user:g.user,application:g.application||"-",client:g.client||"-",state:g.state||"-",wait_event:g.waitEvent||"-",blocking_pids:g.blockingPids.length?g.blockingPids.join(", "):"-",backend_start:ve(g.backendStart),transaction_start:ve(g.transactionStart),query_duration:qe(g.durationSeconds),sql:Ut(g.sql)}))),u=T(()=>ge(b.value)),k=T(()=>o.value.map(g=>({lock_type:g.lockType,target_relation:g.targetRelation||"-",mode:g.mode,granted:g.granted?"yes":"no",pid:g.pid??"-",user:g.user||"-",state:g.state||"-"}))),w=T(()=>ge(k.value)),y=T(()=>h.value.map(g=>({gid:g.gid,transaction:g.transaction,prepared:ve(g.prepared),owner:g.owner,database:g.database}))),m=T(()=>ge(y.value)),v=T(()=>{var C;const g=Number(((C=p.value[0])==null?void 0:C.pid)||0);return g&&s.value.find(O=>O.pid===g)||null}),l=g=>{if(!g||!g.trim())return"<pre><code>-</code></pre>";const C=g.replace(/\s+/g," ").trim(),O=C.length>900?`${C.slice(0,900)} ...`:C;return c(O)},r=T(()=>{var g;return l(((g=v.value)==null?void 0:g.sql)||null)}),d=(g,C)=>{const O=String(C.state||"");return Gt(O)?"insights-danger-cell":void 0},R=g=>window.confirm(g),V=async()=>{v.value&&R(`Cancel query for PID ${v.value.pid}?`)&&await i.onCancelQuery(v.value.pid)},x=async()=>{v.value&&R(`Terminate connection for PID ${v.value.pid}?`)&&await i.onTerminateConnection(v.value.pid)};return(g,C)=>{const O=me,H=ce,j=ye;return f(),_("div",xn,[e("div",$n,[C[2]||(C[2]=e("div",null,[e("h3",{class:"text-sm font-medium"},"State"),e("p",{class:"text-xs text-muted-foreground"}," Active sessions, locks, prepared transactions ")],-1)),S(H,{variant:"outline",size:"xs",disabled:g.isLoading||g.isActionLoading,class:"font-normal",onClick:C[0]||(C[0]=z=>g.onRefresh())},{default:E(()=>[S(O,{name:"hugeicons:redo",class:oe(["size-4",g.isLoading&&"animate-spin"])},null,8,["class"]),C[1]||(C[1]=M(" Refresh State "))]),_:1},8,["disabled"])]),e("div",Sn,[C[3]||(C[3]=e("h4",{class:"text-sm font-normal"},"Active Sessions",-1)),e("div",kn,[S(j,{columns:t(u),data:t(b),selectedRows:t(p),getCellClass:d,class:"h-full border rounded-md",columnKeyBy:"field",onOnSelectedRows:$},null,8,["columns","data","selectedRows"])])]),t(v)?(f(),_("div",wn,[e("div",In,[e("p",Tn," Selected PID: "+a(t(v).pid)+" ("+a(t(v).state||"-")+") ",1),e("div",Cn,[S(H,{variant:"outline",size:"sm",disabled:g.isActionLoading,onClick:V},{default:E(()=>C[4]||(C[4]=[M(" Cancel Query ")])),_:1},8,["disabled"]),S(H,{variant:"outline",size:"sm",disabled:g.isActionLoading,onClick:x},{default:E(()=>C[5]||(C[5]=[M(" Terminate Connection ")])),_:1},8,["disabled"])])]),e("div",null,[C[6]||(C[6]=e("p",{class:"text-xs text-muted-foreground mb-1"},"SQL Preview",-1)),e("div",{class:"sql-preview border rounded-md overflow-hidden",innerHTML:t(r)},null,8,Ln)])])):N("",!0),e("div",Rn,[e("div",An,[C[7]||(C[7]=e("h4",{class:"text-sm font-normal"},"Locks",-1)),e("div",Pn,[S(j,{columns:t(w),data:t(k),class:"h-full border rounded-md",columnKeyBy:"field"},null,8,["columns","data"])])]),e("div",Bn,[C[8]||(C[8]=e("h4",{class:"text-sm font-normal"},"Prepared Transactions",-1)),e("div",En,[S(j,{columns:t(m),data:t(y),class:"h-full border rounded-md",columnKeyBy:"field"},null,8,["columns","data"])])])])])}}}),Nn=De(Mn,[["__scopeId","data-v-2eab93d6"]]),On=5e3;function Dn(n){const i=L("activity"),c=L(!0),s=L(On),o=L(null),h=L(!1),p=L(!1),$=L(!1),b=L(!1),u=L(!1),k=L(!1),w=L(null),y=L(null),m=L(null),v=L(null),l=L(""),r=We(l,350),d=T(()=>!!n.value),R=L(!0);ke(()=>{R.value=!1}),we(()=>{R.value=!0});const V=()=>{o.value=null,w.value=null,y.value=null,m.value=null,v.value=null},x=async(I,P)=>{var W;try{return o.value=null,await I()}catch(Q){const be=((W=Q==null?void 0:Q.data)==null?void 0:W.message)||(Q==null?void 0:Q.message)||(Q==null?void 0:Q.statusMessage)||P;return o.value=be,null}},g=async(I={})=>{if(!d.value)return null;I.silent||($.value=!0);const P=await x(async()=>await $fetch("/api/instance-insights/dashboard",{method:"POST",body:{...ne(n.value)}}),"Failed to fetch activity dashboard");return P&&(w.value=P),I.silent||($.value=!1),P},C=async(I={})=>{if(!d.value)return null;I.silent||(b.value=!0);const P=await x(async()=>await $fetch("/api/instance-insights/state",{method:"POST",body:{...ne(n.value)}}),"Failed to fetch active sessions and locks");return P&&(y.value=P),I.silent||(b.value=!1),P},O=async(I={})=>{if(!d.value)return null;I.silent||(u.value=!0);const P=await x(async()=>await $fetch("/api/instance-insights/configuration",{method:"POST",body:{...ne(n.value),search:r.value||void 0}}),"Failed to fetch PostgreSQL settings");return P&&(m.value=P),I.silent||(u.value=!1),P},H=async(I={})=>{if(!d.value)return null;I.silent||(k.value=!0);const P=await x(async()=>await $fetch("/api/instance-insights/replication",{method:"POST",body:{...ne(n.value)}}),"Failed to fetch replication status");return P&&(v.value=P),I.silent||(k.value=!1),P},j=async(I=i.value,P={})=>{switch(I){case"activity":await g(P);break;case"state":await Promise.all([g({silent:!0}),C(P)]);break;case"configuration":await Promise.all([g({silent:!0}),O(P)]);break;case"replication":await Promise.all([g({silent:!0}),H(P)]);break;default:await g(P);break}},z=async(I={})=>{await Promise.all([g(I),C(I),O(I),H(I)])},q=async(I,P)=>{if(!d.value)return!1;p.value=!0;const W=await x(I,"Action failed");return p.value=!1,W?(W.success?fe(P,{description:W.message}):fe(W.message,{description:"The server did not complete this action."}),W.success):(fe(o.value||"Action failed",{description:"Check database permissions and try again."}),!1)},Y=async I=>{await q(async()=>await $fetch("/api/instance-insights/cancel-query",{method:"POST",body:{...ne(n.value),pid:I}}),`Cancelled query for PID ${I}`)&&await C({silent:!0})},J=async I=>{await q(async()=>await $fetch("/api/instance-insights/terminate-connection",{method:"POST",body:{...ne(n.value),pid:I}}),`Terminated connection for PID ${I}`)&&(await C({silent:!0}),await g({silent:!0}))},B=async I=>{await q(async()=>await $fetch("/api/instance-insights/drop-slot",{method:"POST",body:{...ne(n.value),slotName:I}}),`Dropped replication slot "${I}"`)&&await H({silent:!0})},A=async I=>{await q(async()=>await $fetch("/api/instance-insights/toggle-slot-status",{method:"POST",body:{...ne(n.value),slotName:I.slotName,desiredStatus:I.desiredStatus,activePid:I.activePid??null,slotType:I.slotType??null}}),`Turned ${I.desiredStatus} slot "${I.slotName}"`)&&await H({silent:!0})},G=async()=>{if(!d.value){V();return}h.value=!0,await z(),h.value=!1};re(()=>n.value,async I=>{if(!I){V();return}await G()},{immediate:!0}),re(()=>r.value,async()=>{i.value!=="configuration"||!d.value||await O({silent:!0})}),re(()=>i.value,async I=>{d.value&&(I==="state"&&!y.value&&await C(),I==="configuration"&&!m.value&&await O(),I==="replication"&&!v.value&&await H())});const{pause:Z,resume:ae,isActive:pe}=Ie(async()=>{!d.value||!R.value||await j(i.value,{silent:!0})},s,{immediate:!1});return re(()=>c.value,I=>{I?ae():Z()},{immediate:!0}),{activeSection:i,autoRefresh:c,isAutoRefreshRunning:pe,error:o,isInitialLoading:h,isActionLoading:p,isDashboardLoading:$,isStateLoading:b,isConfigurationLoading:u,isReplicationLoading:k,dashboard:w,state:y,configuration:m,replication:v,configurationSearch:l,refreshSection:j,refreshAll:z,fetchDashboard:g,fetchState:C,fetchConfiguration:O,fetchReplication:H,cancelQuery:Y,terminateConnection:J,dropReplicationSlot:B,toggleReplicationSlotStatus:A}}const Fn={class:"flex flex-col h-full p-3 gap-3 overflow-hidden"},Hn={class:"flex flex-col lg:flex-row lg:items-start lg:justify-between border rounded-lg p-3 gap-3 bg-background"},Vn={class:"space-y-1"},zn={class:"flex items-center gap-2"},jn={class:"text-sm text-muted-foreground flex items-center gap-0.5"},Kn={class:"flex items-center gap-0.5"},Un={class:"font-medium text-foreground"},Gn={key:0,class:"flex items-center gap-1.5 mt-0.5"},qn={class:"flex items-center gap-2 flex-wrap"},Qn={class:"text-xs flex items-center gap-2"},Wn={class:"flex items-center justify-between gap-2"},Xn={class:"text-xs text-muted-foreground"},Yn={key:0,class:"border border-red-300 bg-red-50 text-red-700 rounded-lg p-3 text-sm"},Jn={key:1,class:"border rounded-lg p-6 flex items-center justify-center gap-2 text-muted-foreground"},Zn={key:2,class:"flex-1 overflow-y-auto border rounded-lg p-3 bg-background"},eo=U({__name:"InstanceInsightsPanel",props:{dbConnectionString:{},databaseName:{},dbType:{}},setup(n){const i=[{id:"activity",tabLabel:"Activity",subtitle:"Sessions, TPS, tuples and block I/O",icon:"hugeicons:artificial-intelligence-08"},{id:"state",tabLabel:"State",subtitle:"Active sessions, locks, prepared transactions",icon:"hugeicons:shield-01"},{id:"configuration",tabLabel:"Config",subtitle:"Searchable pg_settings",icon:"hugeicons:settings-01"},{id:"replication",tabLabel:"Replication",subtitle:"Replication stats and slots",icon:"hugeicons:database"}],c=he(),s=T(()=>c.selectedConnection),{activeSection:o,autoRefresh:h,error:p,isInitialLoading:$,isActionLoading:b,isDashboardLoading:u,isStateLoading:k,isConfigurationLoading:w,isReplicationLoading:y,dashboard:m,state:v,configuration:l,replication:r,configurationSearch:d,refreshSection:R,refreshAll:V,cancelQuery:x,terminateConnection:g,dropReplicationSlot:C,toggleReplicationSlotStatus:O}=Dn(s);T(()=>i.find(B=>B.id===o.value));const H=T(()=>{var B,A,G,Z;return o.value==="activity"?(B=m.value)==null?void 0:B.capturedAt:o.value==="state"?(A=v.value)==null?void 0:A.capturedAt:o.value==="configuration"?(G=l.value)==null?void 0:G.capturedAt:(Z=r.value)==null?void 0:Z.capturedAt}),j=()=>R("activity"),z=()=>R("state"),q=()=>R("configuration"),Y=()=>R("replication"),J=B=>O(B);return(B,A)=>{var Q,be;const G=me,Z=_e,ae=Ce,pe=ce,I=Ae,P=Re,W=Le;return f(),_("div",Fn,[e("div",Hn,[e("div",Vn,[e("div",zn,[S(G,{name:"hugeicons:database",class:"size-5 text-primary"}),A[4]||(A[4]=e("h2",{class:"text-base font-medium"},"Instance Insights",-1))]),e("div",jn,[A[5]||(A[5]=M(" connection: ")),e("div",Kn,[B.dbType?(f(),X(Te((Q=t(Ve)(B.dbType))==null?void 0:Q.icon),{key:0,class:"size-4!"})):N("",!0),e("span",Un,a(B.databaseName),1)])]),(be=t(m))!=null&&be.version?(f(),_("div",Gn,[S(Z,{variant:"outline",class:"text-xxs h-5 px-1.5 font-normal"},{default:E(()=>[M(" PostgreSQL "+a(t(m).version),1)]),_:1})])):N("",!0)]),e("div",qn,[e("div",Qn,[S(ae,{id:"insights-auto-refresh","model-value":t(h),"onUpdate:modelValue":A[0]||(A[0]=ee=>le(h)?h.value=ee:null),class:"cursor-pointer"},null,8,["model-value"]),A[6]||(A[6]=e("label",{for:"insights-auto-refresh",class:"cursor-pointer"}," Auto refresh ",-1))]),S(pe,{variant:"outline",size:"sm",disabled:t($)||t(b),onClick:A[1]||(A[1]=ee=>t(V)()),class:"font-normal"},{default:E(()=>[S(G,{name:"hugeicons:redo",class:"size-4"}),A[7]||(A[7]=M(" Refresh All "))]),_:1},8,["disabled"])])]),e("div",Wn,[S(W,{modelValue:t(o),"onUpdate:modelValue":A[2]||(A[2]=ee=>le(o)?o.value=ee:null),class:"gap-0 flex-1 min-w-0"},{default:E(()=>[S(P,{class:"h-8 max-w-full overflow-x-auto justify-start!"},{default:E(()=>[(f(),_(D,null,F(i,ee=>S(I,{key:ee.id,value:ee.id,class:"text-xs px-1.5 rounded-sm cursor-pointer min-w-fit shrink-0",onClick:mr=>t(R)(ee.id,{silent:!0})},{default:E(()=>[S(G,{name:ee.icon,class:"size-3.5!"},null,8,["name"]),M(" "+a(ee.tabLabel),1)]),_:2},1032,["value","onClick"])),64))]),_:1})]),_:1},8,["modelValue"]),e("div",Xn," Last updated: "+a(t(ve)(t(H))),1)]),t(p)?(f(),_("div",Yn,a(t(p)),1)):N("",!0),t($)&&!t(m)?(f(),_("div",Jn,[S(G,{name:"hugeicons:redo",class:"size-4 animate-spin"}),A[8]||(A[8]=M(" Loading instance insights... "))])):(f(),_("div",Zn,[te(S(Zs,{dashboard:t(m),isLoading:t(u),isActionLoading:t(b),onRefresh:j},null,8,["dashboard","isLoading","isActionLoading"]),[[se,t(o)==="activity"]]),te(S(Nn,{state:t(v),isLoading:t(k),isActionLoading:t(b),onRefresh:z,onCancelQuery:t(x),onTerminateConnection:t(g)},null,8,["state","isLoading","isActionLoading","onCancelQuery","onTerminateConnection"]),[[se,t(o)==="state"]]),te(S(an,{search:t(d),"onUpdate:search":A[3]||(A[3]=ee=>le(d)?d.value=ee:null),configuration:t(l),isLoading:t(w),isActionLoading:t(b),onRefresh:q},null,8,["search","configuration","isLoading","isActionLoading"]),[[se,t(o)==="configuration"]]),te(S(yn,{replication:t(r),isLoading:t(y),isActionLoading:t(b),onRefresh:Y,onDropSlot:t(C),onToggleSlotStatus:J},null,8,["replication","isLoading","isActionLoading","onDropSlot"]),[[se,t(o)==="replication"]])]))])}}}),to={key:0,class:"space-y-4"},so={class:"flex items-start justify-between gap-3 flex-wrap"},no={class:"text-sm font-medium"},oo={class:"text-xs text-muted-foreground"},ao={key:1,class:"flex gap-2 flex-wrap"},io={key:2,class:"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-4 gap-2.5"},ro={class:"text-xs uppercase text-muted-foreground"},lo={class:"text-sm font-semibold leading-none tabular-nums"},uo={key:0,class:"text-[11px] text-muted-foreground"},co={key:3,class:"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-2.5"},mo={class:"text-xs uppercase text-muted-foreground"},po={class:"text-sm font-medium leading-tight break-words"},fo={key:0,class:"text-[11px] text-muted-foreground"},go={key:4,class:"space-y-2"},vo={class:"font-medium"},bo={class:"text-xs mt-1"},_o={class:"text-sm font-normal"},ho={key:0,class:"text-xs text-muted-foreground"},yo={key:0,class:"text-xs text-muted-foreground"},xo=360,$o=120,So=44,ko=36,wo=U({__name:"InstanceInsightsSectionRenderer",props:{section:{},search:{}},setup(n){const i=n,c=T(()=>{var u;return((u=i.search)==null?void 0:u.trim().toLowerCase())||""}),s=T(()=>i.section?!i.section.searchable||!c.value?i.section.tables||[]:(i.section.tables||[]).map(u=>({...u,rows:u.rows.filter(k=>Object.values(k).some(w=>String(w??"").toLowerCase().includes(c.value)))})):[]),o=u=>u<=0?$o:Math.min(xo,So+u*ko),h=u=>u==="supported"?"border-emerald-300 bg-emerald-50 text-emerald-700":u==="conditional"?"border-amber-300 bg-amber-50 text-amber-700":"border-slate-300 bg-slate-50 text-slate-700",p=u=>u==="success"?"border-emerald-200 bg-emerald-50":u==="warning"?"border-amber-200 bg-amber-50":u==="danger"?"border-red-200 bg-red-50":u==="info"?"border-sky-200 bg-sky-50":"border-border bg-background",$=u=>u==="unsupported"?"border-amber-300 bg-amber-50 text-amber-700":u==="unavailable"?"border-red-300 bg-red-50 text-red-700":"border-emerald-300 bg-emerald-50 text-emerald-700",b=u=>u==="pass"?"border-emerald-200 bg-emerald-50 text-emerald-700":u==="warn"?"border-amber-200 bg-amber-50 text-amber-700":u==="fail"?"border-red-200 bg-red-50 text-red-700":"border-sky-200 bg-sky-50 text-sky-700";return(u,k)=>{var m,v,l,r;const w=_e,y=ye;return u.section?(f(),_("div",to,[e("div",so,[e("div",null,[e("h3",no,a(u.section.title),1),e("p",oo,a(u.section.subtitle),1)]),S(w,{class:oe($(u.section.status)),variant:"outline"},{default:E(()=>[M(a(u.section.status),1)]),_:1},8,["class"])]),u.section.statusMessage?(f(),_("div",{key:0,class:oe(["border rounded-lg p-3 text-sm",$(u.section.status)])},a(u.section.statusMessage),3)):N("",!0),(m=u.section.actions)!=null&&m.length?(f(),_("div",ao,[(f(!0),_(D,null,F(u.section.actions,d=>(f(),X(w,{key:d.id,class:oe(h(d.state)),variant:"outline"},{default:E(()=>[M(a(d.label)+" · "+a(d.state),1)]),_:2},1032,["class"]))),128))])):N("",!0),(v=u.section.cards)!=null&&v.length?(f(),_("div",io,[(f(!0),_(D,null,F(u.section.cards,d=>(f(),_("div",{key:d.id,class:oe(["h-full border rounded-lg p-2.5 space-y-1.5",p(d.tone)])},[e("p",ro,a(d.label),1),e("p",lo,a(d.value),1),d.helperText?(f(),_("p",uo,a(d.helperText),1)):N("",!0)],2))),128))])):N("",!0),(l=u.section.details)!=null&&l.length?(f(),_("div",co,[(f(!0),_(D,null,F(u.section.details,d=>(f(),_("div",{key:`${d.label}-${d.value}`,class:oe(["border rounded-lg p-2.5 space-y-1",p(d.tone)])},[e("p",mo,a(d.label),1),e("p",po,a(d.value),1),d.helperText?(f(),_("p",fo,a(d.helperText),1)):N("",!0)],2))),128))])):N("",!0),(r=u.section.checks)!=null&&r.length?(f(),_("div",go,[(f(!0),_(D,null,F(u.section.checks,d=>(f(),_("div",{key:d.id,class:oe(["border rounded-lg p-3 text-sm",b(d.status)])},[e("p",vo,a(d.label),1),e("p",bo,a(d.detail),1)],2))),128))])):N("",!0),(f(!0),_(D,null,F(t(s),d=>(f(),_("div",{key:d.id,class:"space-y-1.5"},[e("div",null,[e("h4",_o,a(d.title),1),d.description?(f(),_("p",ho,a(d.description),1)):N("",!0)]),e("div",{class:"max-h-[360px]",style:Se({height:`${o(d.rows.length)}px`})},[S(y,{columns:t(Ue)(d.columns.map(R=>R.key)),data:d.rows,class:"h-full border rounded-md",columnKeyBy:"field"},null,8,["columns","data"])],4),d.emptyMessage&&d.rows.length===0?(f(),_("p",yo,a(d.emptyMessage),1)):N("",!0)]))),128))])):N("",!0)}}}),Io=5e3;function To(n){const i=L(null),c=L("overview"),s=L(!0),o=L(""),h=L(null),p=L(!1),$=L(!1),b=T(()=>!!n.value),u=L(!0);ke(()=>{u.value=!1}),we(()=>{u.value=!0});const k=()=>{h.value=null,i.value=null,o.value="",c.value="overview"},w=async(d={})=>{var R,V;if(!b.value)return k(),null;d.silent||($.value=!0);try{h.value=null;const x=await $fetch("/api/instance-insights/view",{method:"POST",body:{...ne(n.value)}});return i.value=x,x.sections.some(g=>g.id===c.value)||(c.value=((R=x.sections[0])==null?void 0:R.id)||"overview"),x}catch(x){const g=((V=x==null?void 0:x.data)==null?void 0:V.message)||(x==null?void 0:x.message)||(x==null?void 0:x.statusMessage)||"Failed to fetch instance insights";return h.value=g,null}finally{d.silent||($.value=!1)}},y=async(d=c.value,R={})=>w(R),m=async(d={})=>w(d),v=async()=>{if(!b.value){k();return}p.value=!0,await w(),p.value=!1};re(()=>n.value,async d=>{if(!d){k();return}await v()},{immediate:!0});const{pause:l,resume:r}=Ie(async()=>{!b.value||!u.value||await w({silent:!0})},Io,{immediate:!1});return re(()=>s.value,d=>{d?r():l()},{immediate:!0}),{view:i,activeSection:c,autoRefresh:s,configurationSearch:o,error:h,isInitialLoading:p,isViewLoading:$,refreshSection:y,refreshAll:m}}const Co={class:"flex flex-col h-full p-3 gap-3 overflow-hidden"},Lo={class:"flex flex-col lg:flex-row lg:items-start lg:justify-between border rounded-lg p-3 gap-3 bg-background"},Ro={class:"space-y-2"},Ao={class:"space-y-1"},Po={class:"flex items-center gap-2"},Bo={class:"text-sm text-muted-foreground flex items-center gap-0.5"},Eo={class:"flex items-center gap-0.5"},Mo={class:"font-medium text-foreground"},No={key:0,class:"flex items-center gap-1.5 mt-0.5"},Oo={key:0,class:"flex gap-2 flex-wrap"},Do={class:"flex items-center gap-2 flex-wrap"},Fo={class:"text-xs flex items-center gap-2"},Ho={class:"flex items-center justify-between gap-2"},Vo={class:"text-xs text-muted-foreground"},zo={key:0,class:"border rounded-lg p-3 bg-background"},jo={class:"relative"},Ko={key:1,class:"border border-red-300 bg-red-50 text-red-700 rounded-lg p-3 text-sm"},Uo={key:2,class:"border rounded-lg p-6 flex items-center justify-center gap-2 text-muted-foreground"},Go={key:3,class:"flex-1 overflow-y-auto border rounded-lg p-3 bg-background"},qo=U({__name:"MultiDbInstanceInsightsPanel",props:{dbConnectionString:{},databaseName:{},dbType:{}},setup(n){const i=he(),{selectedConnection:c}=He(i),{view:s,activeSection:o,autoRefresh:h,configurationSearch:p,error:$,isInitialLoading:b,isViewLoading:u,refreshSection:k,refreshAll:w}=To(c),y=T(()=>{var l;return((l=s.value)==null?void 0:l.sections.find(r=>r.id===o.value))||null}),m=T(()=>{var l,r;return((l=y.value)==null?void 0:l.capturedAt)||((r=s.value)==null?void 0:r.capturedAt)||null}),v=l=>l==="supported"?"border-emerald-300 bg-emerald-50 text-emerald-700":l==="conditional"?"border-amber-300 bg-amber-50 text-amber-700":"border-slate-300 bg-slate-50 text-slate-700";return(l,r)=>{var j,z,q,Y,J;const d=me,R=_e,V=Ce,x=ce,g=Ae,C=Re,O=Le,H=Fe;return f(),_("div",Co,[e("div",Lo,[e("div",Ro,[e("div",Ao,[e("div",Po,[S(d,{name:"hugeicons:database",class:"size-5 text-primary"}),r[4]||(r[4]=e("h2",{class:"text-base font-medium"},"Instance Insights",-1))]),e("div",Bo,[r[5]||(r[5]=M(" connection: ")),e("div",Eo,[l.dbType?(f(),X(Te((j=t(Ve)(l.dbType))==null?void 0:j.icon),{key:0,class:"size-4!"})):N("",!0),e("span",Mo,a(l.databaseName),1)])]),(z=t(s))!=null&&z.version?(f(),_("div",No,[S(R,{variant:"outline",class:"text-xxs h-5 px-1.5 font-normal"},{default:E(()=>[M(a(l.dbType===t(ue).MARIADB?"MariaDB":l.dbType===t(ue).ORACLE?"Oracle":l.dbType===t(ue).SQLITE3?"SQLite":"MySQL")+" "+a(t(s).version),1)]),_:1})])):N("",!0)]),(Y=(q=t(s))==null?void 0:q.actions)!=null&&Y.length?(f(),_("div",Oo,[(f(!0),_(D,null,F(t(s).actions,B=>(f(),X(R,{key:B.id,class:oe(v(B.state)),variant:"outline"},{default:E(()=>[M(a(B.label)+" · "+a(B.state),1)]),_:2},1032,["class"]))),128))])):N("",!0)]),e("div",Do,[e("div",Fo,[S(V,{id:"insights-auto-refresh","model-value":t(h),"onUpdate:modelValue":r[0]||(r[0]=B=>le(h)?h.value=B:null),class:"cursor-pointer"},null,8,["model-value"]),r[6]||(r[6]=e("label",{for:"insights-auto-refresh",class:"cursor-pointer"}," Auto refresh ",-1))]),S(x,{variant:"outline",size:"sm",disabled:t(b)||t(u),class:"font-normal",onClick:r[1]||(r[1]=B=>t(w)())},{default:E(()=>[S(d,{name:"hugeicons:redo",class:"size-4"}),r[7]||(r[7]=M(" Refresh All "))]),_:1},8,["disabled"])])]),e("div",Ho,[S(O,{modelValue:t(o),"onUpdate:modelValue":r[2]||(r[2]=B=>le(o)?o.value=B:null),class:"gap-0 flex-1 min-w-0"},{default:E(()=>[S(C,{class:"h-8 max-w-full overflow-x-auto justify-start!"},{default:E(()=>{var B;return[(f(!0),_(D,null,F(((B=t(s))==null?void 0:B.sections)||[],A=>(f(),X(g,{key:A.id,value:A.id,class:"text-xs px-1.5 rounded-sm cursor-pointer min-w-fit shrink-0",onClick:G=>t(k)(A.id,{silent:!0})},{default:E(()=>[M(a(A.title),1)]),_:2},1032,["value","onClick"]))),128))]}),_:1})]),_:1},8,["modelValue"]),e("div",Vo," Last updated: "+a(t(ve)(t(m))),1)]),(J=t(y))!=null&&J.searchable?(f(),_("div",zo,[e("div",jo,[S(d,{name:"hugeicons:search-01",class:"size-4 absolute left-2.5 top-1/2 -translate-y-1/2 text-muted-foreground"}),S(H,{modelValue:t(p),"onUpdate:modelValue":r[3]||(r[3]=B=>le(p)?p.value=B:null),type:"text",placeholder:t(y).searchPlaceholder||"Search...",class:"h-8 w-full pl-8 pr-3"},null,8,["modelValue","placeholder"])])])):N("",!0),t($)?(f(),_("div",Ko,a(t($)),1)):N("",!0),t(b)&&!t(s)?(f(),_("div",Uo,[S(d,{name:"hugeicons:redo",class:"size-4 animate-spin"}),r[8]||(r[8]=M(" Loading instance insights... "))])):(f(),_("div",Go,[S(wo,{section:t(y),search:t(p)},null,8,["section","search"])]))])}}}),Qo={class:"space-y-4"},Wo={class:"grid gap-3 md:grid-cols-2"},Xo={class:"rounded-lg border p-3"},Yo={class:"mt-1 text-lg font-medium"},Jo={class:"rounded-lg border p-3"},Zo={class:"mt-1 text-lg font-medium"},ea={key:0,class:"rounded-lg border p-3"},ta={class:"mt-3 space-y-2 text-xs"},sa={class:"rounded-lg border p-3"},na={class:"mt-3 space-y-2 text-xs"},oa={class:"flex items-start justify-between gap-3"},aa={class:"font-medium"},ia={class:"text-muted-foreground"},ra={class:"text-muted-foreground"},la=U({__name:"RedisClientsSection",props:{clients:{},isActionLoading:{type:Boolean}},emits:["kill-client"],setup(n,{emit:i}){const c=i,s=new Intl.NumberFormat;function o(h){return h==null||h===""?"0":s.format(Number(h))}return(h,p)=>{var b,u,k,w,y;const $=ce;return f(),_("div",Qo,[e("div",Wo,[e("div",Xo,[p[0]||(p[0]=e("p",{class:"text-xs text-muted-foreground"},"Connected clients",-1)),e("p",Yo,a(o((b=h.clients)==null?void 0:b.connectedClients)),1)]),e("div",Jo,[p[1]||(p[1]=e("p",{class:"text-xs text-muted-foreground"},"Suspicious clients",-1)),e("p",Zo,a(o((((u=h.clients)==null?void 0:u.suspiciousClients)||[]).length)),1)])]),(((k=h.clients)==null?void 0:k.suspiciousClients)||[]).length?(f(),_("div",ea,[p[2]||(p[2]=e("h3",{class:"text-sm font-medium"},"Suspicious clients",-1)),e("div",ta,[(f(!0),_(D,null,F(((w=h.clients)==null?void 0:w.suspiciousClients)||[],m=>(f(),_("div",{key:`${m.clientId}-${m.reason}`,class:"rounded-md bg-muted/20 px-3 py-2"},a(m.reason),1))),128))])])):N("",!0),e("div",sa,[p[4]||(p[4]=e("h3",{class:"text-sm font-medium"},"Client list",-1)),e("div",na,[(f(!0),_(D,null,F(((y=h.clients)==null?void 0:y.clients)||[],m=>(f(),_("div",{key:m.id,class:"rounded-md bg-muted/20 px-3 py-2"},[e("div",oa,[e("div",null,[e("p",aa,a(m.addr),1),e("p",ia,a(m.name)+" · db "+a(m.db)+" · "+a(m.cmd),1),e("p",ra," age "+a(o(m.ageSeconds))+"s · idle "+a(o(m.idleSeconds))+"s ",1)]),S($,{size:"sm",variant:"outline",disabled:h.isActionLoading,onClick:v=>c("kill-client",m.id)},{default:E(()=>p[3]||(p[3]=[M(" Kill client ")])),_:2},1032,["disabled","onClick"])])]))),128))])])])}}}),da={class:"space-y-2"},ua={class:"text-muted-foreground"},ca=U({__name:"RedisConfigSection",props:{config:{}},setup(n){return(i,c)=>(f(),_("div",da,[(f(!0),_(D,null,F(i.config||[],s=>(f(),_("div",{key:s.name,class:"flex items-center justify-between rounded-md border px-3 py-2 text-sm"},[e("span",null,a(s.name),1),e("span",ua,a(s.value||"not set"),1)]))),128))]))}}),ma={class:"space-y-4"},pa={class:"grid gap-3 md:grid-cols-4"},fa={class:"rounded-lg border p-3"},ga={class:"mt-1 text-lg font-medium"},va={class:"rounded-lg border p-3"},ba={class:"mt-1 text-lg font-medium"},_a={class:"rounded-lg border p-3"},ha={class:"mt-1 text-lg font-medium"},ya={class:"rounded-lg border p-3"},xa={class:"mt-1 text-lg font-medium"},$a={class:"grid gap-4 lg:grid-cols-2"},Sa={class:"rounded-lg border p-3"},ka={class:"mt-3 space-y-2 text-sm"},wa={class:"text-muted-foreground"},Ia={class:"rounded-lg border p-3"},Ta={class:"mt-3 space-y-2 text-sm"},Ca={class:"text-muted-foreground"},La={class:"rounded-lg border p-3"},Ra={class:"mt-3 flex flex-wrap gap-2"},Aa={class:"mt-3 text-xs text-muted-foreground"},Pa=U({__name:"RedisKeyspaceSection",props:{keyspace:{}},setup(n){const i=new Intl.NumberFormat;function c(s){return s==null||s===""?"0":i.format(Number(s))}return(s,o)=>{var p,$,b,u,k,w,y,m;const h=_e;return f(),_("div",ma,[e("div",pa,[e("div",fa,[o[0]||(o[0]=e("p",{class:"text-xs text-muted-foreground"},"Expired key count",-1)),e("p",ga,a(c((p=s.keyspace)==null?void 0:p.expiredKeyCount)),1)]),e("div",va,[o[1]||(o[1]=e("p",{class:"text-xs text-muted-foreground"},"Avg TTL",-1)),e("p",ba,a(c(($=s.keyspace)==null?void 0:$.avgTtl)),1)]),e("div",_a,[o[2]||(o[2]=e("p",{class:"text-xs text-muted-foreground"},"Keys without TTL",-1)),e("p",ha,a(c((b=s.keyspace)==null?void 0:b.keysWithoutTtl)),1)]),e("div",ya,[o[3]||(o[3]=e("p",{class:"text-xs text-muted-foreground"},"Sampled keys",-1)),e("p",xa,a(c((u=s.keyspace)==null?void 0:u.sampledKeys)),1)])]),e("div",$a,[e("div",Sa,[o[4]||(o[4]=e("h3",{class:"text-sm font-medium"},"Databases",-1)),e("div",ka,[(f(!0),_(D,null,F(((k=s.keyspace)==null?void 0:k.databases)||[],v=>(f(),_("div",{key:v.database,class:"flex items-center justify-between rounded-md bg-muted/20 px-3 py-2"},[e("span",null,a(v.database),1),e("span",wa,a(c(v.keyCount))+" keys · "+a(c(v.expires))+" expiring · avg TTL "+a(c(v.avgTtl)),1)]))),128))])]),e("div",Ia,[o[5]||(o[5]=e("h3",{class:"text-sm font-medium"},"Top prefixes",-1)),e("div",Ta,[(f(!0),_(D,null,F(((w=s.keyspace)==null?void 0:w.topPrefixes)||[],v=>(f(),_("div",{key:v.prefix,class:"flex items-center justify-between rounded-md bg-muted/20 px-3 py-2"},[e("span",null,a(v.prefix),1),e("span",Ca,a(c(v.keyCount))+" keys ",1)]))),128))])])]),e("div",La,[o[6]||(o[6]=e("h3",{class:"text-sm font-medium"},"Key type distribution",-1)),e("div",Ra,[(f(!0),_(D,null,F(((y=s.keyspace)==null?void 0:y.keyTypeDistribution)||[],v=>(f(),X(h,{key:v.type,variant:"outline"},{default:E(()=>[M(a(v.type)+" · "+a(c(v.count)),1)]),_:2},1024))),128))]),e("p",Aa,a((m=s.keyspace)==null?void 0:m.hotKeysNote),1)])])}}}),Ba={class:"space-y-4"},Ea={class:"grid gap-3 md:grid-cols-2 xl:grid-cols-4"},Ma={class:"rounded-lg border p-3"},Na={class:"mt-1 text-lg font-medium"},Oa={class:"rounded-lg border p-3"},Da={class:"mt-1 text-lg font-medium"},Fa={class:"rounded-lg border p-3"},Ha={class:"mt-1 text-lg font-medium"},Va={class:"rounded-lg border p-3"},za={class:"mt-1 text-lg font-medium"},ja={class:"grid gap-4 lg:grid-cols-2"},Ka={class:"rounded-lg border p-3"},Ua={class:"mt-3 space-y-2 text-sm"},Ga={class:"text-muted-foreground"},qa={class:"rounded-lg border p-3"},Qa={class:"mt-3 space-y-2 text-sm"},Wa={class:"flex items-center justify-between gap-2"},Xa={class:"truncate"},Ya={class:"mt-1 text-xs text-muted-foreground"},Ja=U({__name:"RedisMemorySection",props:{memory:{}},setup(n){const i=new Intl.NumberFormat;function c(s){return s==null||s===""?"0":i.format(Number(s))}return(s,o)=>{var $,b,u,k,w,y,m,v;const h=Pe,p=_e;return f(),_("div",Ba,[e("div",Ea,[e("div",Ma,[o[0]||(o[0]=e("p",{class:"text-xs text-muted-foreground"},"Used memory",-1)),e("p",Na,a(($=s.memory)==null?void 0:$.usedMemoryHuman),1)]),e("div",Oa,[o[1]||(o[1]=e("p",{class:"text-xs text-muted-foreground"},"Peak memory",-1)),e("p",Da,a((b=s.memory)==null?void 0:b.usedMemoryPeakHuman),1)]),e("div",Fa,[o[2]||(o[2]=e("p",{class:"text-xs text-muted-foreground"},"Fragmentation",-1)),e("p",Ha,a((u=s.memory)==null?void 0:u.memoryFragmentationRatio.toFixed(2)),1)]),e("div",Va,[o[3]||(o[3]=e("p",{class:"text-xs text-muted-foreground"},"Maxmemory / policy",-1)),e("p",za,a((k=s.memory)==null?void 0:k.maxmemoryHuman)+" · "+a((w=s.memory)==null?void 0:w.maxmemoryPolicy),1)])]),(f(!0),_(D,null,F(((y=s.memory)==null?void 0:y.warnings)||[],l=>(f(),X(h,{key:l,variant:"secondary"},{default:E(()=>[M(a(l),1)]),_:2},1024))),128)),e("div",ja,[e("div",Ka,[o[4]||(o[4]=e("h3",{class:"text-sm font-medium"},"Top prefixes by memory",-1)),e("div",Ua,[(f(!0),_(D,null,F(((m=s.memory)==null?void 0:m.topPrefixesByMemory)||[],l=>(f(),_("div",{key:l.prefix,class:"flex items-center justify-between rounded-md bg-muted/20 px-3 py-2"},[e("span",null,a(l.prefix),1),e("span",Ga,a(c(l.keyCount))+" keys · "+a(c(l.memoryBytes))+" B ",1)]))),128))])]),e("div",qa,[o[5]||(o[5]=e("h3",{class:"text-sm font-medium"},"Big keys detector",-1)),e("div",Qa,[(f(!0),_(D,null,F(((v=s.memory)==null?void 0:v.bigKeys)||[],l=>(f(),_("div",{key:l.key,class:"rounded-md bg-muted/20 px-3 py-2"},[e("div",Wa,[e("span",Xa,a(l.key),1),S(p,{variant:"outline"},{default:E(()=>[M(a(l.type),1)]),_:2},1024)]),e("p",Ya," TTL "+a(l.ttl>=0?l.ttl:"persisted")+" · "+a(c(l.memoryBytes))+" B ",1)]))),128))])])])])}}}),Za={class:"space-y-4"},ei={class:"grid gap-3 md:grid-cols-2 xl:grid-cols-4"},ti={class:"text-xs text-muted-foreground"},si={class:"mt-1 text-lg font-medium"},ni=U({__name:"RedisOverviewSection",props:{overview:{}},setup(n){const i=n,c=new Intl.NumberFormat;function s(p){return p==null||p===""?"0":c.format(Number(p))}function o(p){return`${(p*100).toFixed(1)}%`}const h=T(()=>{const p=i.overview;return p?[{label:"Redis version",value:p.redisVersion},{label:"Mode",value:p.mode},{label:"Uptime",value:qe(p.uptimeSeconds)},{label:"Connected clients",value:s(p.connectedClients)},{label:"Used memory",value:p.usedMemoryHuman},{label:"Total keys",value:s(p.totalKeys)},{label:"Hit rate",value:o(p.hitRate)},{label:"Ops/sec",value:s(p.opsPerSec)},{label:"Evicted keys",value:s(p.evictedKeys)},{label:"Expired keys",value:s(p.expiredKeys)},{label:"Rejected connections",value:s(p.rejectedConnections)}]:[]});return(p,$)=>(f(),_("div",Za,[e("div",ei,[(f(!0),_(D,null,F(t(h),b=>(f(),_("div",{key:b.label,class:"rounded-lg border p-3"},[e("p",ti,a(b.label),1),e("p",si,a(b.value),1)]))),128))])]))}}),oi={class:"space-y-4"},ai={class:"grid gap-3 md:grid-cols-3"},ii={class:"rounded-lg border p-3"},ri={class:"mt-1 text-lg font-medium"},li={class:"rounded-lg border p-3"},di={class:"mt-1 text-lg font-medium"},ui={class:"rounded-lg border p-3"},ci={class:"mt-1 text-lg font-medium"},mi={class:"rounded-lg border p-3"},pi={class:"mt-3 whitespace-pre-wrap text-xs text-muted-foreground"},fi={class:"grid gap-4 lg:grid-cols-2"},gi={class:"rounded-lg border p-3"},vi={class:"mt-3 space-y-2 text-xs"},bi={class:"flex items-center justify-between gap-2"},_i={class:"font-medium"},hi={class:"mt-1 text-muted-foreground"},yi={class:"rounded-lg border p-3"},xi={class:"mt-3 space-y-2 text-xs"},$i={class:"text-muted-foreground"},Si={class:"rounded-lg border p-3"},ki={class:"mt-3 space-y-2 text-xs"},wi={key:0,class:"text-muted-foreground"},Ii={class:"text-muted-foreground"},Ti=U({__name:"RedisPerformanceSection",props:{performance:{}},setup(n){const i=new Intl.NumberFormat;function c(s){return s==null||s===""?"0":i.format(Number(s))}return(s,o)=>{var h,p,$,b,u,k,w,y;return f(),_("div",oi,[e("div",ai,[e("div",ii,[o[0]||(o[0]=e("p",{class:"text-xs text-muted-foreground"},"Ops/sec",-1)),e("p",ri,a(c((h=s.performance)==null?void 0:h.instantaneousOpsPerSec)),1)]),e("div",li,[o[1]||(o[1]=e("p",{class:"text-xs text-muted-foreground"},"Total commands",-1)),e("p",di,a(c((p=s.performance)==null?void 0:p.totalCommandsProcessed)),1)]),e("div",ui,[o[2]||(o[2]=e("p",{class:"text-xs text-muted-foreground"},"Blocked clients",-1)),e("p",ci,a(c(($=s.performance)==null?void 0:$.blockedClients)),1)])]),e("div",mi,[o[3]||(o[3]=e("h3",{class:"text-sm font-medium"},"Latency doctor",-1)),e("pre",pi,a(((b=s.performance)==null?void 0:b.latencyDoctor)||"No latency doctor output available."),1)]),e("div",fi,[e("div",gi,[o[4]||(o[4]=e("h3",{class:"text-sm font-medium"},"Slowlog",-1)),e("div",vi,[(f(!0),_(D,null,F(((u=s.performance)==null?void 0:u.slowlog)||[],m=>(f(),_("div",{key:m.id,class:"rounded-md bg-muted/20 px-3 py-2"},[e("div",bi,[e("span",_i,a(m.command||"unknown command"),1),e("span",null,a(c(m.durationMicros))+" µs",1)]),e("p",hi,a(m.clientAddr||"n/a")+" · "+a(m.timestamp||"unknown time"),1)]))),128))])]),e("div",yi,[o[5]||(o[5]=e("h3",{class:"text-sm font-medium"},"Command stats",-1)),e("div",xi,[(f(!0),_(D,null,F(((k=s.performance)==null?void 0:k.commandStats)||[],m=>(f(),_("div",{key:m.command,class:"flex items-center justify-between rounded-md bg-muted/20 px-3 py-2"},[e("span",null,a(m.command),1),e("span",$i,a(c(m.calls))+" calls · "+a(m.usecPerCall.toFixed(2))+" µs/call ",1)]))),128))])])]),e("div",Si,[o[6]||(o[6]=e("h3",{class:"text-sm font-medium"},"Long-running Lua scripts",-1)),e("div",ki,[(((w=s.performance)==null?void 0:w.longRunningLuaScripts)||[]).length?N("",!0):(f(),_("div",wi," No active Lua script clients detected. ")),(f(!0),_(D,null,F(((y=s.performance)==null?void 0:y.longRunningLuaScripts)||[],m=>(f(),_("div",{key:m.id,class:"flex items-center justify-between rounded-md bg-muted/20 px-3 py-2"},[e("span",null,a(m.addr),1),e("span",Ii,a(m.cmd)+" · age "+a(c(m.ageSeconds))+"s ",1)]))),128))])])])}}}),Ci={class:"space-y-4"},Li={class:"grid gap-3 md:grid-cols-2 xl:grid-cols-4"},Ri={class:"rounded-lg border p-3"},Ai={class:"mt-1 text-lg font-medium"},Pi={class:"rounded-lg border p-3"},Bi={class:"mt-1 text-lg font-medium"},Ei={class:"rounded-lg border p-3"},Mi={class:"mt-1 text-lg font-medium"},Ni={class:"rounded-lg border p-3"},Oi={class:"mt-1 text-lg font-medium"},Di={class:"rounded-lg border p-3 text-sm text-muted-foreground space-y-1"},Fi={key:0},Hi=U({__name:"RedisPersistenceSection",props:{persistence:{}},setup(n){const i=new Intl.NumberFormat;function c(s){return s==null||s===""?"0":i.format(Number(s))}return(s,o)=>{var p,$,b,u,k,w,y,m,v;const h=Pe;return f(),_("div",Ci,[e("div",Li,[e("div",Ri,[o[0]||(o[0]=e("p",{class:"text-xs text-muted-foreground"},"RDB enabled",-1)),e("p",Ai,a((p=s.persistence)!=null&&p.rdbEnabled?"Yes":"No"),1)]),e("div",Pi,[o[1]||(o[1]=e("p",{class:"text-xs text-muted-foreground"},"AOF enabled",-1)),e("p",Bi,a(($=s.persistence)!=null&&$.aofEnabled?"Yes":"No"),1)]),e("div",Ei,[o[2]||(o[2]=e("p",{class:"text-xs text-muted-foreground"},"AOF rewrite",-1)),e("p",Mi,a((b=s.persistence)!=null&&b.aofRewriteInProgress?"In progress":"Idle"),1)]),e("div",Ni,[o[3]||(o[3]=e("p",{class:"text-xs text-muted-foreground"},"Changes since save",-1)),e("p",Oi,a(c((u=s.persistence)==null?void 0:u.changesSinceLastSave)),1)])]),(f(!0),_(D,null,F(((k=s.persistence)==null?void 0:k.warnings)||[],l=>(f(),X(h,{key:l,variant:"secondary"},{default:E(()=>[M(a(l),1)]),_:2},1024))),128)),e("div",Di,[e("p",null," Last save status: "+a(((w=s.persistence)==null?void 0:w.lastSaveStatus)||"unknown"),1),e("p",null," Last save time: "+a(((y=s.persistence)==null?void 0:y.lastSaveTime)||"unknown"),1),e("p",null," AOF last rewrite status: "+a(((m=s.persistence)==null?void 0:m.aofLastRewriteStatus)||"unknown"),1),(v=s.persistence)!=null&&v.lastBgsaveError?(f(),_("p",Fi," Last bgsave error: "+a(s.persistence.lastBgsaveError),1)):N("",!0)])])}}}),Vi={class:"space-y-4"},zi={class:"grid gap-3 md:grid-cols-2 xl:grid-cols-4"},ji={class:"rounded-lg border p-3"},Ki={class:"mt-1 text-lg font-medium"},Ui={class:"rounded-lg border p-3"},Gi={class:"mt-1 text-lg font-medium"},qi={class:"rounded-lg border p-3"},Qi={class:"mt-1 text-lg font-medium"},Wi={class:"rounded-lg border p-3"},Xi={class:"mt-1 text-lg font-medium"},Yi={class:"rounded-lg border p-3 text-sm text-muted-foreground space-y-1"},Ji={class:"rounded-lg border p-3"},Zi={class:"mt-3 space-y-2 text-xs"},er={key:0,class:"text-muted-foreground"},tr={class:"text-muted-foreground"},sr=U({__name:"RedisReplicationSection",props:{replication:{}},setup(n){const i=new Intl.NumberFormat;function c(s){return s==null||s===""?"0":i.format(Number(s))}return(s,o)=>{var h,p,$,b,u,k,w,y,m,v,l;return f(),_("div",Vi,[e("div",zi,[e("div",ji,[o[0]||(o[0]=e("p",{class:"text-xs text-muted-foreground"},"Role",-1)),e("p",Ki,a(((h=s.replication)==null?void 0:h.role)||"unknown"),1)]),e("div",Ui,[o[1]||(o[1]=e("p",{class:"text-xs text-muted-foreground"},"Connected replicas",-1)),e("p",Gi,a(c((p=s.replication)==null?void 0:p.connectedReplicas)),1)]),e("div",qi,[o[2]||(o[2]=e("p",{class:"text-xs text-muted-foreground"},"Master link status",-1)),e("p",Qi,a((($=s.replication)==null?void 0:$.masterLinkStatus)||"n/a"),1)]),e("div",Wi,[o[3]||(o[3]=e("p",{class:"text-xs text-muted-foreground"},"Cluster state",-1)),e("p",Xi,a(((b=s.replication)==null?void 0:b.clusterState)||((u=s.replication)!=null&&u.clusterEnabled?"enabled":"disabled")),1)])]),e("div",Yi,[e("p",null,"Replication lag: "+a(((k=s.replication)==null?void 0:k.replicationLag)??"n/a"),1),e("p",null,"Sentinel masters: "+a(((w=s.replication)==null?void 0:w.sentinelMasters)??"n/a"),1),e("p",null," Cluster slots assigned: "+a(((y=s.replication)==null?void 0:y.clusterSlotsAssigned)??"n/a"),1),e("p",null,"Cluster known nodes: "+a(((m=s.replication)==null?void 0:m.clusterKnownNodes)??"n/a"),1)]),e("div",Ji,[o[4]||(o[4]=e("h3",{class:"text-sm font-medium"},"Replicas",-1)),e("div",Zi,[(((v=s.replication)==null?void 0:v.replicas)||[]).length?N("",!0):(f(),_("div",er," No replica nodes reported. ")),(f(!0),_(D,null,F(((l=s.replication)==null?void 0:l.replicas)||[],r=>(f(),_("div",{key:r.id,class:"flex items-center justify-between rounded-md bg-muted/20 px-3 py-2"},[e("span",null,a(r.addr),1),e("span",tr,a(r.state)+" · lag "+a(r.lag??"n/a"),1)]))),128))])])])}}}),nr=5e3;function or(n){const i=L("overview"),c=L(!0),s=L(null),o=L(!1),h=L(!1),p=L(!1),$=L(null),b=L(!0),u=T(()=>!!n.connection.value);ke(()=>{b.value=!1}),we(()=>{b.value=!0});const k=async(l=!1)=>{var r;if(!n.connection.value)return $.value=null,null;l||(h.value=!0);try{s.value=null;const d=await $fetch("/api/redis/instance-insights/overview",{method:"POST",body:{...ne(n.connection.value),method:n.connection.value.method,databaseIndex:n.databaseIndex.value}});return $.value=d,d}catch(d){return s.value=((r=d==null?void 0:d.data)==null?void 0:r.message)||(d==null?void 0:d.message)||(d==null?void 0:d.statusMessage)||"Failed to fetch Redis instance insights.",null}finally{l||(h.value=!1)}},w=async l=>{var r;if(!n.connection.value)return!1;p.value=!0;try{const d=await $fetch("/api/redis/instance-insights/kill-client",{method:"POST",body:{...ne(n.connection.value),method:n.connection.value.method,databaseIndex:n.databaseIndex.value,clientId:l}});return d.success?(fe("Redis client terminated",{description:d.message}),await k(!0),!0):(fe("Failed to terminate client",{description:d.message}),!1)}catch(d){return fe("Failed to terminate client",{description:((r=d==null?void 0:d.data)==null?void 0:r.message)||(d==null?void 0:d.message)||"The Redis client could not be terminated."}),!1}finally{p.value=!1}},y=async()=>{await k()};re([()=>n.connection.value,()=>n.databaseIndex.value],async([l])=>{if(!l){$.value=null;return}o.value=!0,await k(),o.value=!1},{immediate:!0});const{pause:m,resume:v}=Ie(async()=>{!u.value||!b.value||await k(!0)},nr,{immediate:!1});return re(()=>c.value,l=>{l?v():m()},{immediate:!0}),{activeSection:i,autoRefresh:c,error:s,isInitialLoading:o,isLoading:h,isActionLoading:p,insights:$,refresh:y,killClient:w}}const ar={class:"flex h-full flex-col gap-3 overflow-hidden p-3"},ir={class:"flex items-center gap-2 text-xs"},rr={key:1,class:"flex flex-1 items-center justify-center gap-2 rounded-lg border bg-background text-muted-foreground"},lr={key:2,class:"flex-1 overflow-y-auto rounded-lg border bg-background p-3 mt-2"},dr=U({__name:"RedisInstanceInsightsPanel",props:{databaseName:{},databaseIndex:{},databases:{},dbType:{}},emits:["update:databaseIndex"],setup(n,{emit:i}){const c=n,s=i,o=[{id:"overview",label:"Overview"},{id:"keyspace",label:"Keyspace"},{id:"memory",label:"Memory"},{id:"performance",label:"Performance"},{id:"clients",label:"Clients"},{id:"persistence",label:"Persistence"},{id:"replication",label:"Replication / Cluster"},{id:"config",label:"Config"}],h=he(),p=T(()=>h.selectedConnection),{activeSection:$,autoRefresh:b,error:u,isInitialLoading:k,isLoading:w,isActionLoading:y,insights:m,refresh:v,killClient:l}=or({connection:p,databaseIndex:T(()=>c.databaseIndex)});return(r,d)=>{const R=Ce,V=me,x=ce,g=wt,C=Ae,O=Re,H=Pe,j=Le;return f(),_("div",ar,[S(g,{icon:"hugeicons:activity-02",title:"Instance Insights"},{context:E(()=>[r.dbType===t(ue).REDIS?(f(),X(Te("hugeicons:database-sync-01"),{key:0})):N("",!0)]),actions:E(()=>[S(It,{compact:"","trigger-id":"redis-instance-insights-db-index","trigger-class":"bg-background",databases:r.databases,"database-index":r.databaseIndex,"onUpdate:databaseIndex":d[0]||(d[0]=z=>s("update:databaseIndex",z))},null,8,["databases","database-index"]),e("div",ir,[S(R,{id:"redis-insights-auto-refresh","model-value":t(b),"onUpdate:modelValue":d[1]||(d[1]=z=>le(b)?b.value=z:null)},null,8,["model-value"]),d[3]||(d[3]=e("label",{for:"redis-insights-auto-refresh",class:"cursor-pointer"}," Auto refresh ",-1))]),S(x,{size:"xxs",variant:"outline",disabled:t(w)||t(y),onClick:t(v)},{default:E(()=>[S(V,{name:"hugeicons:redo",class:"size-3.5!"}),d[4]||(d[4]=M(" Refresh "))]),_:1},8,["disabled","onClick"])]),_:1}),S(j,{modelValue:t($),"onUpdate:modelValue":d[2]||(d[2]=z=>le($)?$.value=z:null),class:"flex flex-1 min-h-0 flex-col gap-0"},{default:E(()=>{var z,q,Y,J,B,A,G,Z;return[S(O,{class:"h-8 max-w-full justify-start! shrink-0 overflow-x-auto"},{default:E(()=>[(f(),_(D,null,F(o,ae=>S(C,{key:ae.id,value:ae.id,class:"min-w-fit shrink-0 cursor-pointer rounded-sm px-1.5 text-xs"},{default:E(()=>[M(a(ae.label),1)]),_:2},1032,["value"])),64))]),_:1}),t(u)?(f(),X(H,{key:0,variant:"destructive"},{default:E(()=>[M(a(t(u)),1)]),_:1})):N("",!0),t(k)&&!t(m)?(f(),_("div",rr,[S(V,{name:"hugeicons:redo",class:"size-4 animate-spin"}),d[5]||(d[5]=M(" Loading Redis instance insights... "))])):(f(),_("div",lr,[te(S(ni,{overview:(z=t(m))==null?void 0:z.overview},null,8,["overview"]),[[se,t($)==="overview"]]),te(S(Pa,{keyspace:(q=t(m))==null?void 0:q.keyspace},null,8,["keyspace"]),[[se,t($)==="keyspace"]]),te(S(Ja,{memory:(Y=t(m))==null?void 0:Y.memory},null,8,["memory"]),[[se,t($)==="memory"]]),te(S(Ti,{performance:(J=t(m))==null?void 0:J.performance},null,8,["performance"]),[[se,t($)==="performance"]]),te(S(la,{clients:(B=t(m))==null?void 0:B.clients,"is-action-loading":t(y),onKillClient:t(l)},null,8,["clients","is-action-loading","onKillClient"]),[[se,t($)==="clients"]]),te(S(Hi,{persistence:(A=t(m))==null?void 0:A.persistence},null,8,["persistence"]),[[se,t($)==="persistence"]]),te(S(sr,{replication:(G=t(m))==null?void 0:G.replication},null,8,["replication"]),[[se,t($)==="replication"]]),te(S(ca,{config:(Z=t(m))==null?void 0:Z.config},null,8,["config"]),[[se,t($)==="config"]])]))]}),_:1},8,["modelValue"])])}}}),ur={class:"h-full"},cr={key:0,class:"h-full p-4 flex flex-col items-center justify-center text-muted-foreground"},wr=U({__name:"index",setup(n){const i=Xe(),c=he(),s=Ye(),{activeTab:o}=He(s),h=T(()=>String(i.params.connectionId||"")),p=T(()=>h.value?c.connections.find(y=>y.id===h.value):null),$=T(()=>{var y;return((y=p.value)==null?void 0:y.connectionString)||""}),b=T(()=>{var y;return(y=p.value)==null?void 0:y.type}),u=T(()=>{var y,m,v;return b.value===ue.REDIS?((y=p.value)==null?void 0:y.name)||"Redis":((m=p.value)==null?void 0:m.database)||((v=p.value)==null?void 0:v.name)||"database"}),k=T(()=>b.value===ue.REDIS?p.value??void 0:void 0),w=Tt({connection:k,mode:"meta"});return re(()=>{var y,m;return(m=(y=o.value)==null?void 0:y.metadata)==null?void 0:m.databaseIndex},y=>{typeof y=="number"&&(w.selectedDatabaseIndex.value=y)},{immediate:!0}),(y,m)=>{const v=me;return f(),_("div",ur,[t(p)?t(b)===t(ue).REDIS?(f(),X(dr,{key:1,"database-name":t(u),"database-index":t(w).selectedDatabaseIndex.value,databases:t(w).databases.value,"db-type":t(b),"onUpdate:databaseIndex":m[0]||(m[0]=l=>t(w).selectedDatabaseIndex.value=l)},null,8,["database-name","database-index","databases","db-type"])):t(b)===t(ue).POSTGRES?(f(),X(eo,{key:2,"db-connection-string":t($),"database-name":t(u),"db-type":t(b)},null,8,["db-connection-string","database-name","db-type"])):(f(),X(qo,{key:3,"db-connection-string":t($),"database-name":t(u),"db-type":t(b)},null,8,["db-connection-string","database-name","db-type"])):(f(),_("div",cr,[S(v,{name:"hugeicons:plug-socket",class:"size-12 mb-2 opacity-50"}),m[1]||(m[1]=e("p",{class:"text-sm"},"Select a connection to open Instance Insights",-1))]))])}}});export{wr as default};
|
|
1
|
+
import{G as Qe,d as U,r as L,au as re,c as T,e as _,m as e,l as N,f as S,a0 as ce,w as E,z as M,t as a,g as t,o as f,A as me,n as oe,cX as De,bn as Fe,i as le,aZ as Se,cY as Xe,cZ as ke,co as we,cp as Ie,E as ne,K as fe,a3 as he,k as W,q as Te,I as te,aM as se,bl as _e,bp as Ce,bD as Le,bE as Re,F as D,s as F,bF as Ae,am as He,a6 as ue,a8 as We,a2 as Ye}from"./BNM5p7H5.js";import{g as Ve}from"./BN6ZmV2J.js";import{t as K,i as Ze,a as Je,b as et,m as tt,k as st,g as ze,h as je,c as nt,d as Ee,e as ot,f as at,j as it,n as rt,l as lt,S as dt,o as ut,p as ct,_ as Ke,q as mt,r as Me,s as pt,C as ft,u as gt,v as vt,E as xe,w as bt,x as _t,y as ht,z as yt,A as xt,B as $t}from"./lID_8ynt.js";import{f as St}from"./-lZvfnzr.js";import{_ as ye}from"./CuaktsoE.js";import{b as ge,a as Ue}from"./BVmBXPoG.js";import{u as kt}from"./CbANTWsS.js";import{_ as wt}from"./D4dXVtWp.js";import{_ as Pe}from"./CQzADP3y.js";import{_ as It,u as Tt}from"./5eGdUlL5.js";import"./Di0QgSJz.js";import"./CS5akSNT.js";var Ne={value:"eq","<":"lt","<=":"lte",">":"gt",">=":"gte","=":"eq","!=":"ne","<>":"ne"},Ct=function(){function n(i){var c=this._condVal=Ee(i)?new RegExp(i):ot(i)?i:null;if(c==null){var s="";K(s)}}return n.prototype.evaluate=function(i){var c=typeof i;return Ee(c)?this._condVal.test(i):at(c)?this._condVal.test(i+""):!1},n}(),Lt=function(){function n(){}return n.prototype.evaluate=function(){return this.value},n}(),Rt=function(){function n(){}return n.prototype.evaluate=function(){for(var i=this.children,c=0;c<i.length;c++)if(!i[c].evaluate())return!1;return!0},n}(),At=function(){function n(){}return n.prototype.evaluate=function(){for(var i=this.children,c=0;c<i.length;c++)if(i[c].evaluate())return!0;return!1},n}(),Pt=function(){function n(){}return n.prototype.evaluate=function(){return!this.child.evaluate()},n}(),Bt=function(){function n(){}return n.prototype.evaluate=function(){for(var i=!!this.valueParser,c=this.getValue,s=c(this.valueGetterParam),o=i?this.valueParser(s):null,h=0;h<this.subCondList.length;h++)if(!this.subCondList[h].evaluate(i?o:s))return!1;return!0},n}();function Be(n,i){if(n===!0||n===!1){var c=new Lt;return c.value=n,c}var s="";return Ge(n)||K(s),n.and?Oe("and",n,i):n.or?Oe("or",n,i):n.not?Et(n,i):Mt(n,i)}function Oe(n,i,c){var s=i[n],o="";et(s)||K(o),s.length||K(o);var h=n==="and"?new Rt:new At;return h.children=tt(s,function(p){return Be(p,c)}),h.children.length||K(o),h}function Et(n,i){var c=n.not,s="";Ge(c)||K(s);var o=new Pt;return o.child=Be(c,i),o.child||K(s),o}function Mt(n,i){for(var c="",s=i.prepareGetValue(n),o=[],h=st(n),p=n.parser,$=p?ze(p):null,b=0;b<h.length;b++){var u=h[b];if(!(u==="parser"||i.valueGetterAttrMap.get(u))){var k=je(Ne,u)?Ne[u]:u,w=n[u],y=$?$(w):w,m=nt(k,y)||k==="reg"&&new Ct(y);m||K(c),o.push(m)}}o.length||K(c);var v=new Bt;return v.valueGetterParam=s,v.valueParser=$,v.getValue=i.getValue,v.subCondList=o,v}function Ge(n){return Ze(n)&&!Je(n)}var Nt=function(){function n(i,c){this._cond=Be(i,c)}return n.prototype.evaluate=function(){return this._cond.evaluate()},n}();function Ot(n,i){return new Nt(n,i)}var Dt={type:"echarts:filter",transform:function(n){for(var i=n.upstream,c,s=Ot(n.config,{valueGetterAttrMap:it({dimension:!0}),prepareGetValue:function($){var b="",u=$.dimension;je($,"dimension")||K(b);var k=i.getDimensionInfo(u);return k||K(b),{dimIdx:k.index}},getValue:function($){return i.retrieveValueFromItem(c,$.dimIdx)}}),o=[],h=0,p=i.count();h<p;h++)c=i.getRawDataItem(h),s.evaluate()&&o.push(c);return{data:o}}},Ft={type:"echarts:sort",transform:function(n){var i=n.upstream,c=n.config,s="",o=rt(c);o.length||K(s);var h=[];lt(o,function(k){var w=k.dimension,y=k.order,m=k.parser,v=k.incomparable;if(w==null&&K(s),y!=="asc"&&y!=="desc"&&K(s),v&&v!=="min"&&v!=="max"){var l="";K(l)}if(y!=="asc"&&y!=="desc"){var r="";K(r)}var d=i.getDimensionInfo(w);d||K(s);var R=m?ze(m):null;m&&!R&&K(s),h.push({dimIdx:d.index,parser:R,comparator:new dt(y,v)})});var p=i.sourceFormat;p!==ut&&p!==ct&&K(s);for(var $=[],b=0,u=i.count();b<u;b++)$.push(i.getRawDataItem(b));return $.sort(function(k,w){for(var y=0;y<h.length;y++){var m=h[y],v=i.retrieveValueFromItem(k,m.dimIdx),l=i.retrieveValueFromItem(w,m.dimIdx);m.parser&&(v=m.parser(v),l=m.parser(l));var r=m.comparator.evaluate(v,l);if(r!==0)return r}return 0}),{data:$}}};function Ht(n){n.registerTransform(Dt),n.registerTransform(Ft)}var Vt=function(n){Ke(i,n);function i(){var c=n!==null&&n.apply(this,arguments)||this;return c.type="dataset",c}return i.prototype.init=function(c,s,o){n.prototype.init.call(this,c,s,o),this._sourceManager=new mt(this),Me(this)},i.prototype.mergeOption=function(c,s){n.prototype.mergeOption.call(this,c,s),Me(this)},i.prototype.optionUpdated=function(){this._sourceManager.dirty()},i.prototype.getSourceManager=function(){return this._sourceManager},i.type="dataset",i.defaultOption={seriesLayoutBy:pt},i}(ft),zt=function(n){Ke(i,n);function i(){var c=n!==null&&n.apply(this,arguments)||this;return c.type="dataset",c}return i.type="dataset",i}(gt);function jt(n){n.registerComponentModel(Vt),n.registerComponentView(zt)}const de=n=>St(n??0),ie=n=>n==null?"0.00/s":`${n.toFixed(2)}/s`,$e=n=>n==null?"0%":`${n.toFixed(2)}%`,ve=n=>{if(!n)return"-";const i=new Date(n);return Number.isNaN(i.getTime())?n:i.toLocaleString()},qe=n=>{if(n==null)return"-";if(n<60)return`${n}s`;const i=Math.floor(n/60),c=n%60;if(i<60)return`${i}m ${c}s`;const s=Math.floor(i/60),o=i%60;return`${s}h ${o}m`},Kt=n=>n==null||n<=0?"0 B":Qe(n).replace(" bytes"," B"),Ut=n=>{if(!n)return"-";const i=n.replace(/\s+/g," ").trim();return i?i.length>320?`${i.slice(0,320)}...`:i:"-"},Gt=n=>(n||"").toLowerCase().includes("idle in transaction"),qt={class:"space-y-4"},Qt={class:"flex items-center justify-between"},Xt={key:0,class:"border border-red-300 bg-red-50 text-red-700 rounded-lg p-3 text-sm"},Wt={class:"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-4 gap-2.5"},Yt={class:"h-full border rounded-lg p-2.5 space-y-2"},Zt={class:"flex items-center gap-1"},Jt={class:"text-sm font-semibold leading-none tabular-nums"},es={class:"grid grid-cols-2 gap-x-3 gap-y-1 text-[11px]"},ts={class:"text-muted-foreground"},ss={class:"tabular-nums text-foreground"},ns={class:"text-muted-foreground"},os={class:"tabular-nums text-foreground"},as={class:"text-muted-foreground"},is={class:"tabular-nums text-foreground"},rs={class:"text-muted-foreground"},ls={class:"tabular-nums text-foreground"},ds={class:"h-full border rounded-lg p-2.5 space-y-2"},us={class:"flex items-center gap-1"},cs={class:"text-sm font-semibold leading-none tabular-nums"},ms={class:"grid grid-cols-2 gap-x-3 gap-y-1 text-[11px]"},ps={class:"text-muted-foreground"},fs={class:"tabular-nums text-foreground"},gs={class:"text-muted-foreground"},vs={class:"tabular-nums text-foreground"},bs={class:"text-muted-foreground"},_s={class:"tabular-nums text-foreground"},hs={class:"text-muted-foreground"},ys={class:"tabular-nums text-foreground"},xs={class:"h-full border rounded-lg p-2.5 space-y-2"},$s={class:"flex items-center gap-1"},Ss={class:"text-sm font-semibold leading-none tabular-nums"},ks={class:"grid grid-cols-2 gap-x-3 gap-y-1 text-[11px]"},ws={class:"text-muted-foreground"},Is={class:"tabular-nums text-foreground"},Ts={class:"text-muted-foreground"},Cs={class:"tabular-nums text-foreground"},Ls={class:"text-muted-foreground"},Rs={class:"tabular-nums text-foreground"},As={class:"text-muted-foreground"},Ps={class:"tabular-nums text-foreground"},Bs={class:"h-full border rounded-lg p-2.5 space-y-2"},Es={class:"flex items-center gap-1"},Ms={class:"text-sm font-semibold leading-none tabular-nums"},Ns={class:"grid grid-cols-2 gap-x-3 gap-y-1 text-[11px]"},Os={class:"text-muted-foreground"},Ds={class:"tabular-nums text-foreground"},Fs={class:"text-muted-foreground"},Hs={class:"tabular-nums text-foreground"},Vs={class:"text-muted-foreground"},zs={class:"tabular-nums text-foreground"},js={class:"text-muted-foreground"},Ks={class:"tabular-nums text-foreground"},Us={class:"grid grid-cols-1 xl:grid-cols-2 gap-3"},Gs={class:"border rounded-lg p-2.5"},qs={class:"insights-chart-container"},Qs={class:"border rounded-lg p-2.5"},Xs={class:"insights-chart-container"},Ws={class:"border rounded-lg p-2.5"},Ys={class:"insights-chart-container"},Zs=U({__name:"InstanceInsightsActivitySection",props:{dashboard:{},isLoading:{type:Boolean},isActionLoading:{type:Boolean},onRefresh:{type:Function}},setup(n){vt([bt,_t,ht,jt,Ht,yt,xt,$t]);const i=n,c=L({}),s=L({}),o=L({}),h=(l,r)=>{r!=null&&r.selected&&(l.value={...r.selected})},p=l=>h(c,l),$=l=>h(s,l),b=l=>h(o,l),u=L([]);re(()=>i.dashboard,l=>{if(!(l!=null&&l.capturedAt))return;const r=new Date(l.capturedAt).toLocaleTimeString(),d={capturedAt:l.capturedAt,label:r,sessionsTotal:l.sessions.total,sessionsActive:l.sessions.active,sessionsIdle:l.sessions.idle,tps:l.transactions.tps,commits:l.transactions.commitsPerSec,rollbacks:l.transactions.rollbacksPerSec,reads:l.blockIO.readsPerSec,hits:l.blockIO.hitsPerSec,hitRatio:l.blockIO.bufferHitRatio},R=u.value.findIndex(V=>V.capturedAt===d.capturedAt);if(R>=0){u.value[R]=d;return}u.value.push(d),u.value.length>80&&(u.value=u.value.slice(-80))},{immediate:!0,deep:!0});const k=T(()=>u.value.map((l,r)=>({...l,idx:r}))),w=l=>Object.keys(l).length?l:void 0,y=T(()=>({tooltip:{trigger:"axis"},legend:{top:0,selected:w(c.value)},dataset:[{id:"sessions_raw",source:k.value},{id:"sessions_filtered",fromDatasetId:"sessions_raw",transform:{type:"filter",config:{dimension:"idx",gte:0}}}],grid:{left:45,right:20,top:34,bottom:24},xAxis:{type:"category",boundaryGap:!1},yAxis:{type:"value"},series:[{name:"Total",type:"line",smooth:!0,datasetId:"sessions_filtered",encode:{x:"label",y:"sessionsTotal"}},{name:"Active",type:"line",smooth:!0,datasetId:"sessions_filtered",encode:{x:"label",y:"sessionsActive"}},{name:"Idle",type:"line",smooth:!0,datasetId:"sessions_filtered",encode:{x:"label",y:"sessionsIdle"}}]})),m=T(()=>({tooltip:{trigger:"axis"},legend:{top:0,selected:w(s.value)},dataset:[{id:"transactions_dataset",source:k.value}],grid:{left:45,right:20,top:34,bottom:24},xAxis:{type:"category",boundaryGap:!0},yAxis:[{type:"value",name:"TPS"},{type:"value",name:"Commit/Rollback"}],series:[{name:"TPS",type:"line",smooth:!0,yAxisIndex:0,datasetId:"transactions_dataset",encode:{x:"label",y:"tps"}},{name:"Commits/s",type:"bar",yAxisIndex:1,datasetId:"transactions_dataset",encode:{x:"label",y:"commits"}},{name:"Rollbacks/s",type:"bar",yAxisIndex:1,datasetId:"transactions_dataset",encode:{x:"label",y:"rollbacks"}}]})),v=T(()=>({tooltip:{trigger:"axis"},legend:{top:0,selected:w(o.value)},dataset:[{id:"block_io_dataset",source:k.value}],grid:{left:45,right:20,top:34,bottom:24},xAxis:{type:"category",boundaryGap:!0},yAxis:[{type:"value",name:"Blocks/s"},{type:"value",name:"Hit %",min:0,max:100}],series:[{name:"Reads/s",type:"bar",yAxisIndex:0,datasetId:"block_io_dataset",encode:{x:"label",y:"reads"}},{name:"Hits/s",type:"bar",yAxisIndex:0,datasetId:"block_io_dataset",encode:{x:"label",y:"hits"}},{name:"Buffer Hit Ratio",type:"line",smooth:!0,yAxisIndex:1,datasetId:"block_io_dataset",encode:{x:"label",y:"hitRatio"}}]}));return(l,r)=>{var V,x,g,C,O,H,j,z,q,Y,Z,B,A,G,J,ae,pe,I,P,X,Q;const d=me,R=ce;return f(),_("div",qt,[e("div",Qt,[r[2]||(r[2]=e("div",null,[e("h3",{class:"text-sm font-medium"},"Activity Dashboard"),e("p",{class:"text-xs text-muted-foreground"}," Sessions, TPS, tuples and block I/O ")],-1)),S(R,{variant:"outline",size:"xs",disabled:l.isLoading||l.isActionLoading,class:"font-normal",onClick:r[0]||(r[0]=be=>l.onRefresh())},{default:E(()=>[S(d,{name:"hugeicons:redo",class:oe(["size-4",l.isLoading&&"animate-spin"])},null,8,["class"]),r[1]||(r[1]=M(" Refresh Activity "))]),_:1},8,["disabled"])]),(V=l.dashboard)!=null&&V.sessions.exceedsThreshold?(f(),_("div",Xt,[r[3]||(r[3]=M(" Total connections are at ")),e("strong",null,a(t($e)(l.dashboard.sessions.usagePercent)),1),r[4]||(r[4]=M(" of ")),r[5]||(r[5]=e("strong",null,"max_connections",-1)),r[6]||(r[6]=M(". Investigate connection pool usage. "))])):N("",!0),e("div",Wt,[e("div",Yt,[e("div",Zt,[r[7]||(r[7]=e("p",{class:"text-xs uppercase text-muted-foreground"},"Sessions:",-1)),e("p",Jt,a(t(de)((x=l.dashboard)==null?void 0:x.sessions.total)),1)]),e("div",es,[e("p",ts,[r[8]||(r[8]=e("span",null,"Active: ",-1)),e("span",ss,a(t(de)((g=l.dashboard)==null?void 0:g.sessions.active)),1)]),e("p",ns,[r[9]||(r[9]=e("span",null,"Idle: ",-1)),e("span",os,a(t(de)((C=l.dashboard)==null?void 0:C.sessions.idle)),1)]),e("p",as,[r[10]||(r[10]=e("span",null,"Max: ",-1)),e("span",is,a(t(de)((O=l.dashboard)==null?void 0:O.sessions.maxConnections)),1)]),e("p",rs,[r[11]||(r[11]=e("span",null,"Usage: ",-1)),e("span",ls,a(t($e)((H=l.dashboard)==null?void 0:H.sessions.usagePercent)),1)])])]),e("div",ds,[e("div",us,[r[12]||(r[12]=e("p",{class:"text-xs uppercase text-muted-foreground"},"TPS:",-1)),e("p",cs,a(t(ie)((j=l.dashboard)==null?void 0:j.transactions.tps)),1)]),e("div",ms,[e("p",ps,[r[13]||(r[13]=e("span",null,"Commits/sec: ",-1)),e("span",fs,a(t(ie)((z=l.dashboard)==null?void 0:z.transactions.commitsPerSec)),1)]),e("p",gs,[r[14]||(r[14]=e("span",null,"Rollbacks/sec: ",-1)),e("span",vs,a(t(ie)((q=l.dashboard)==null?void 0:q.transactions.rollbacksPerSec)),1)]),e("p",bs,[r[15]||(r[15]=e("span",null,"Total Commits: ",-1)),e("span",_s,a(t(de)((Y=l.dashboard)==null?void 0:Y.transactions.totalCommits)),1)]),e("p",hs,[r[16]||(r[16]=e("span",null,"Total Rollbacks: ",-1)),e("span",ys,a(t(de)((Z=l.dashboard)==null?void 0:Z.transactions.totalRollbacks)),1)])])]),e("div",xs,[e("div",$s,[r[17]||(r[17]=e("p",{class:"text-xs uppercase text-muted-foreground"},"Tuples:",-1)),e("p",Ss,a(t(ie)((B=l.dashboard)==null?void 0:B.tuples.insertsPerSec)),1)]),e("div",ks,[e("p",ws,[r[18]||(r[18]=e("span",null,"Updates: ",-1)),e("span",Is,a(t(ie)((A=l.dashboard)==null?void 0:A.tuples.updatesPerSec)),1)]),e("p",Ts,[r[19]||(r[19]=e("span",null,"Deletes: ",-1)),e("span",Cs,a(t(ie)((G=l.dashboard)==null?void 0:G.tuples.deletesPerSec)),1)]),e("p",Ls,[r[20]||(r[20]=e("span",null,"Fetched: ",-1)),e("span",Rs,a(t(ie)((J=l.dashboard)==null?void 0:J.tuples.fetchedPerSec)),1)]),e("p",As,[r[21]||(r[21]=e("span",null,"Returned: ",-1)),e("span",Ps,a(t(ie)((ae=l.dashboard)==null?void 0:ae.tuples.returnedPerSec)),1)])])]),e("div",Bs,[e("div",Es,[r[22]||(r[22]=e("p",{class:"text-xs uppercase text-muted-foreground"},"Block I/O:",-1)),e("p",Ms,a(t($e)((pe=l.dashboard)==null?void 0:pe.blockIO.bufferHitRatio)),1)]),e("div",Ns,[e("p",Os,[r[23]||(r[23]=e("span",null,"Reads/sec: ",-1)),e("span",Ds,a(t(ie)((I=l.dashboard)==null?void 0:I.blockIO.readsPerSec)),1)]),e("p",Fs,[r[24]||(r[24]=e("span",null,"Hits/sec: ",-1)),e("span",Hs,a(t(ie)((P=l.dashboard)==null?void 0:P.blockIO.hitsPerSec)),1)]),e("p",Vs,[r[25]||(r[25]=e("span",null,"Total Reads: ",-1)),e("span",zs,a(t(de)((X=l.dashboard)==null?void 0:X.blockIO.totalReads)),1)]),e("p",js,[r[26]||(r[26]=e("span",null,"Total Hits: ",-1)),e("span",Ks,a(t(de)((Q=l.dashboard)==null?void 0:Q.blockIO.totalHits)),1)])])])]),e("div",Us,[e("div",Gs,[r[27]||(r[27]=e("p",{class:"text-sm font-medium mb-1.5"},"Sessions Timeline",-1)),e("div",qs,[S(t(xe),{option:t(y),autoresize:"",class:"insights-chart",onLegendselectchanged:p},null,8,["option"])])]),e("div",Qs,[r[28]||(r[28]=e("p",{class:"text-sm font-medium mb-1.5"},"Transactions Timeline",-1)),e("div",Xs,[S(t(xe),{option:t(m),autoresize:"",class:"insights-chart",onLegendselectchanged:$},null,8,["option"])])])]),e("div",Ws,[r[29]||(r[29]=e("p",{class:"text-sm font-medium mb-1.5"},"Block I/O Timeline",-1)),e("div",Ys,[S(t(xe),{option:t(v),autoresize:"",class:"insights-chart",onLegendselectchanged:b},null,8,["option"])])])])}}}),Js=De(Zs,[["__scopeId","data-v-ba36a884"]]),en={class:"space-y-4 h-full flex flex-col overflow-auto"},tn={class:"flex items-center justify-between gap-2 flex-wrap"},sn={class:"h-full"},nn={class:"flex flex-col sm:flex-row sm:items-center gap-2 mb-2"},on={class:"relative flex-1"},an=U({__name:"InstanceInsightsConfigurationSection",props:{configuration:{},search:{},isLoading:{type:Boolean},isActionLoading:{type:Boolean},onRefresh:{type:Function}},emits:["update:search"],setup(n,{emit:i}){const c=n,s=i,o=T({get:()=>c.search,set:b=>s("update:search",b)}),h=T(()=>{var b;return((b=c.configuration)==null?void 0:b.rows)||[]}),p=T(()=>h.value.map(b=>({name:b.name,category:b.category,value:b.value,unit:b.unit||"-",requires_restart:b.pendingRestart?"yes":"no",description:b.description}))),$=T(()=>ge(p.value));return(b,u)=>{const k=me,w=ce,y=Fe,m=ye;return f(),_("div",en,[e("div",tn,[u[3]||(u[3]=e("div",null,[e("h3",{class:"text-sm font-medium"},"Configuration"),e("p",{class:"text-xs text-muted-foreground"},"Searchable pg_settings")],-1)),S(w,{variant:"outline",size:"xs",disabled:b.isLoading||b.isActionLoading,class:"font-normal",onClick:u[0]||(u[0]=v=>b.onRefresh())},{default:E(()=>[S(k,{name:"hugeicons:redo",class:oe(["size-4",b.isLoading&&"animate-spin"])},null,8,["class"]),u[2]||(u[2]=M(" Refresh Configuration "))]),_:1},8,["disabled"])]),e("div",sn,[e("div",nn,[e("div",on,[S(k,{name:"hugeicons:search-01",class:"size-4 absolute left-2.5 top-1/2 -translate-y-1/2 text-muted-foreground"}),S(y,{type:"text",placeholder:"Search setting name, category, or description...",class:"h-8 w-full pl-8 pr-3",modelValue:t(o),"onUpdate:modelValue":u[1]||(u[1]=v=>le(o)?o.value=v:null)},null,8,["modelValue"])])]),S(m,{columns:t($),data:t(p),class:"h-full border rounded-md",columnKeyBy:"field"},null,8,["columns","data"])])])}}}),rn={class:"space-y-4"},ln={class:"flex items-center justify-between"},dn={key:0,class:"border border-orange-300 bg-orange-50 text-orange-700 rounded-lg p-3 text-sm"},un={class:"space-y-1.5"},cn={class:"space-y-1.5"},mn={key:1,class:"border rounded-lg p-2.5"},pn={class:"flex items-center justify-between gap-3 flex-wrap"},fn={class:"text-sm font-medium"},gn={class:"flex items-center gap-2"},vn=300,bn=120,_n=44,hn=36,yn=U({__name:"InstanceInsightsReplicationSection",props:{replication:{},isLoading:{type:Boolean},isActionLoading:{type:Boolean},onRefresh:{type:Function},onToggleSlotStatus:{type:Function},onDropSlot:{type:Function}},setup(n){const i=n,c=T(()=>{var x;return((x=i.replication)==null?void 0:x.replicationStats)||[]}),s=T(()=>{var x;return((x=i.replication)==null?void 0:x.replicationSlots)||[]}),o=L([]),h=x=>{o.value=x},p=T(()=>c.value.map(x=>({pid:x.pid,client_addr:x.clientAddr||"-",application:x.applicationName||"-",state:x.state||"-",sync_state:x.syncState||"-",reply_time:ve(x.replyTime),write_lag:x.writeLag||"-",flush_lag:x.flushLag||"-",replay_lag:x.replayLag||"-"}))),$=["pid","client_addr","application","state","sync_state","reply_time","write_lag","flush_lag","replay_lag"],b=T(()=>p.value.length>0?ge(p.value):Ue($)),u=T(()=>s.value.map(x=>({slot_name:x.slotName,slot_type:x.slotType,status:x.active?"on":"off",active_pid:x.activePid??"-",restart_lsn:x.restartLsn||"-",retained_wal:Kt(x.retainedBytes),temporary:x.temporary?"yes":"no"}))),k=T(()=>ge(u.value)),w=x=>x<=0?bn:Math.min(vn,_n+x*hn),y=T(()=>`${w(p.value.length)}px`),m=T(()=>`${w(u.value.length)}px`),v=T(()=>{var g;const x=String(((g=o.value[0])==null?void 0:g.slot_name)||"");return x&&s.value.find(C=>C.slotName===x)||null}),l=T(()=>{var x;return(x=v.value)!=null&&x.active?"off":"on"}),r=T(()=>l.value==="off"?"Turn Off Slot":"Turn On Slot"),d=x=>window.confirm(x),R=async()=>{v.value&&d(`Drop replication slot "${v.value.slotName}"? This action cannot be undone.`)&&await i.onDropSlot(v.value.slotName)},V=async()=>{v.value&&d(`Switch replication slot "${v.value.slotName}" to ${l.value.toUpperCase()} status?`)&&await i.onToggleSlotStatus({slotName:v.value.slotName,desiredStatus:l.value,activePid:v.value.activePid,slotType:v.value.slotType})};return(x,g)=>{var j;const C=me,O=ce,H=ye;return f(),_("div",rn,[e("div",ln,[g[2]||(g[2]=e("div",null,[e("h3",{class:"text-sm font-medium"},"Replication"),e("p",{class:"text-xs text-muted-foreground"},"Replication stats and slots")],-1)),S(O,{variant:"outline",size:"xs",disabled:x.isLoading||x.isActionLoading,class:"font-normal",onClick:g[0]||(g[0]=z=>x.onRefresh())},{default:E(()=>[S(C,{name:"hugeicons:redo",class:oe(["size-4",x.isLoading&&"animate-spin"])},null,8,["class"]),g[1]||(g[1]=M(" Refresh Replication "))]),_:1},8,["disabled"])]),(j=x.replication)!=null&&j.staleSlotWarning?(f(),_("div",dn,a(x.replication.staleSlotWarning),1)):N("",!0),e("div",un,[g[3]||(g[3]=e("p",{class:"text-sm"},"Replication Stats",-1)),e("div",{class:"max-h-[300px]",style:Se({height:t(y)})},[S(H,{columns:t(b),data:t(p),class:"h-full border rounded-md",columnKeyBy:"field"},null,8,["columns","data"])],4)]),e("div",cn,[g[4]||(g[4]=e("h4",{class:"text-sm font-normal"},"Replication Slots",-1)),e("div",{class:"max-h-[300px]",style:Se({height:t(m)})},[S(H,{columns:t(k),data:t(u),selectedRows:t(o),class:"h-full border rounded-md",columnKeyBy:"field",onOnSelectedRows:h},null,8,["columns","data","selectedRows"])],4)]),t(v)?(f(),_("div",mn,[e("div",pn,[e("p",fn," Selected Slot: "+a(t(v).slotName)+" ("+a(t(v).active?"on":"off")+") · Active PID: "+a(t(v).activePid??"-"),1),e("div",gn,[S(O,{variant:"outline",size:"sm",disabled:x.isActionLoading,onClick:V},{default:E(()=>[M(a(t(r)),1)]),_:1},8,["disabled"]),S(O,{variant:"outline",size:"sm",disabled:x.isActionLoading,onClick:R},{default:E(()=>g[5]||(g[5]=[M(" Drop Slot ")])),_:1},8,["disabled"])])])])):N("",!0)])}}}),xn={class:"space-y-4"},$n={class:"flex items-center justify-between"},Sn={class:"space-y-1.5"},kn={class:"h-[360px]"},wn={key:0,class:"border rounded-lg p-2.5 space-y-2"},In={class:"flex items-center justify-between gap-3 flex-wrap"},Tn={class:"text-sm font-medium"},Cn={class:"flex gap-2"},Ln=["innerHTML"],Rn={class:"grid grid-cols-1 xl:grid-cols-2 gap-3"},An={class:"space-y-1.5"},Pn={class:"h-[300px]"},Bn={class:"space-y-1.5"},En={class:"h-[300px]"},Mn=U({__name:"InstanceInsightsStateSection",props:{state:{},isLoading:{type:Boolean},isActionLoading:{type:Boolean},onRefresh:{type:Function},onCancelQuery:{type:Function},onTerminateConnection:{type:Function}},setup(n){const i=n,{highlightSql:c}=kt(),s=T(()=>{var g;return((g=i.state)==null?void 0:g.sessions)||[]}),o=T(()=>{var g;return((g=i.state)==null?void 0:g.locks)||[]}),h=T(()=>{var g;return((g=i.state)==null?void 0:g.preparedTransactions)||[]}),p=L([]),$=g=>{p.value=g},b=T(()=>s.value.map(g=>({pid:g.pid,user:g.user,application:g.application||"-",client:g.client||"-",state:g.state||"-",wait_event:g.waitEvent||"-",blocking_pids:g.blockingPids.length?g.blockingPids.join(", "):"-",backend_start:ve(g.backendStart),transaction_start:ve(g.transactionStart),query_duration:qe(g.durationSeconds),sql:Ut(g.sql)}))),u=T(()=>ge(b.value)),k=T(()=>o.value.map(g=>({lock_type:g.lockType,target_relation:g.targetRelation||"-",mode:g.mode,granted:g.granted?"yes":"no",pid:g.pid??"-",user:g.user||"-",state:g.state||"-"}))),w=T(()=>ge(k.value)),y=T(()=>h.value.map(g=>({gid:g.gid,transaction:g.transaction,prepared:ve(g.prepared),owner:g.owner,database:g.database}))),m=T(()=>ge(y.value)),v=T(()=>{var C;const g=Number(((C=p.value[0])==null?void 0:C.pid)||0);return g&&s.value.find(O=>O.pid===g)||null}),l=g=>{if(!g||!g.trim())return"<pre><code>-</code></pre>";const C=g.replace(/\s+/g," ").trim(),O=C.length>900?`${C.slice(0,900)} ...`:C;return c(O)},r=T(()=>{var g;return l(((g=v.value)==null?void 0:g.sql)||null)}),d=(g,C)=>{const O=String(C.state||"");return Gt(O)?"insights-danger-cell":void 0},R=g=>window.confirm(g),V=async()=>{v.value&&R(`Cancel query for PID ${v.value.pid}?`)&&await i.onCancelQuery(v.value.pid)},x=async()=>{v.value&&R(`Terminate connection for PID ${v.value.pid}?`)&&await i.onTerminateConnection(v.value.pid)};return(g,C)=>{const O=me,H=ce,j=ye;return f(),_("div",xn,[e("div",$n,[C[2]||(C[2]=e("div",null,[e("h3",{class:"text-sm font-medium"},"State"),e("p",{class:"text-xs text-muted-foreground"}," Active sessions, locks, prepared transactions ")],-1)),S(H,{variant:"outline",size:"xs",disabled:g.isLoading||g.isActionLoading,class:"font-normal",onClick:C[0]||(C[0]=z=>g.onRefresh())},{default:E(()=>[S(O,{name:"hugeicons:redo",class:oe(["size-4",g.isLoading&&"animate-spin"])},null,8,["class"]),C[1]||(C[1]=M(" Refresh State "))]),_:1},8,["disabled"])]),e("div",Sn,[C[3]||(C[3]=e("h4",{class:"text-sm font-normal"},"Active Sessions",-1)),e("div",kn,[S(j,{columns:t(u),data:t(b),selectedRows:t(p),getCellClass:d,class:"h-full border rounded-md",columnKeyBy:"field",onOnSelectedRows:$},null,8,["columns","data","selectedRows"])])]),t(v)?(f(),_("div",wn,[e("div",In,[e("p",Tn," Selected PID: "+a(t(v).pid)+" ("+a(t(v).state||"-")+") ",1),e("div",Cn,[S(H,{variant:"outline",size:"sm",disabled:g.isActionLoading,onClick:V},{default:E(()=>C[4]||(C[4]=[M(" Cancel Query ")])),_:1},8,["disabled"]),S(H,{variant:"outline",size:"sm",disabled:g.isActionLoading,onClick:x},{default:E(()=>C[5]||(C[5]=[M(" Terminate Connection ")])),_:1},8,["disabled"])])]),e("div",null,[C[6]||(C[6]=e("p",{class:"text-xs text-muted-foreground mb-1"},"SQL Preview",-1)),e("div",{class:"sql-preview border rounded-md overflow-hidden",innerHTML:t(r)},null,8,Ln)])])):N("",!0),e("div",Rn,[e("div",An,[C[7]||(C[7]=e("h4",{class:"text-sm font-normal"},"Locks",-1)),e("div",Pn,[S(j,{columns:t(w),data:t(k),class:"h-full border rounded-md",columnKeyBy:"field"},null,8,["columns","data"])])]),e("div",Bn,[C[8]||(C[8]=e("h4",{class:"text-sm font-normal"},"Prepared Transactions",-1)),e("div",En,[S(j,{columns:t(m),data:t(y),class:"h-full border rounded-md",columnKeyBy:"field"},null,8,["columns","data"])])])])])}}}),Nn=De(Mn,[["__scopeId","data-v-2eab93d6"]]),On=5e3;function Dn(n){const i=L("activity"),c=L(!0),s=L(On),o=L(null),h=L(!1),p=L(!1),$=L(!1),b=L(!1),u=L(!1),k=L(!1),w=L(null),y=L(null),m=L(null),v=L(null),l=L(""),r=Xe(l,350),d=T(()=>!!n.value),R=L(!0);ke(()=>{R.value=!1}),we(()=>{R.value=!0});const V=()=>{o.value=null,w.value=null,y.value=null,m.value=null,v.value=null},x=async(I,P)=>{var X;try{return o.value=null,await I()}catch(Q){const be=((X=Q==null?void 0:Q.data)==null?void 0:X.message)||(Q==null?void 0:Q.message)||(Q==null?void 0:Q.statusMessage)||P;return o.value=be,null}},g=async(I={})=>{if(!d.value)return null;I.silent||($.value=!0);const P=await x(async()=>await $fetch("/api/instance-insights/dashboard",{method:"POST",body:{...ne(n.value)}}),"Failed to fetch activity dashboard");return P&&(w.value=P),I.silent||($.value=!1),P},C=async(I={})=>{if(!d.value)return null;I.silent||(b.value=!0);const P=await x(async()=>await $fetch("/api/instance-insights/state",{method:"POST",body:{...ne(n.value)}}),"Failed to fetch active sessions and locks");return P&&(y.value=P),I.silent||(b.value=!1),P},O=async(I={})=>{if(!d.value)return null;I.silent||(u.value=!0);const P=await x(async()=>await $fetch("/api/instance-insights/configuration",{method:"POST",body:{...ne(n.value),search:r.value||void 0}}),"Failed to fetch PostgreSQL settings");return P&&(m.value=P),I.silent||(u.value=!1),P},H=async(I={})=>{if(!d.value)return null;I.silent||(k.value=!0);const P=await x(async()=>await $fetch("/api/instance-insights/replication",{method:"POST",body:{...ne(n.value)}}),"Failed to fetch replication status");return P&&(v.value=P),I.silent||(k.value=!1),P},j=async(I=i.value,P={})=>{switch(I){case"activity":await g(P);break;case"state":await Promise.all([g({silent:!0}),C(P)]);break;case"configuration":await Promise.all([g({silent:!0}),O(P)]);break;case"replication":await Promise.all([g({silent:!0}),H(P)]);break;default:await g(P);break}},z=async(I={})=>{await Promise.all([g(I),C(I),O(I),H(I)])},q=async(I,P)=>{if(!d.value)return!1;p.value=!0;const X=await x(I,"Action failed");return p.value=!1,X?(X.success?fe(P,{description:X.message}):fe(X.message,{description:"The server did not complete this action."}),X.success):(fe(o.value||"Action failed",{description:"Check database permissions and try again."}),!1)},Y=async I=>{await q(async()=>await $fetch("/api/instance-insights/cancel-query",{method:"POST",body:{...ne(n.value),pid:I}}),`Cancelled query for PID ${I}`)&&await C({silent:!0})},Z=async I=>{await q(async()=>await $fetch("/api/instance-insights/terminate-connection",{method:"POST",body:{...ne(n.value),pid:I}}),`Terminated connection for PID ${I}`)&&(await C({silent:!0}),await g({silent:!0}))},B=async I=>{await q(async()=>await $fetch("/api/instance-insights/drop-slot",{method:"POST",body:{...ne(n.value),slotName:I}}),`Dropped replication slot "${I}"`)&&await H({silent:!0})},A=async I=>{await q(async()=>await $fetch("/api/instance-insights/toggle-slot-status",{method:"POST",body:{...ne(n.value),slotName:I.slotName,desiredStatus:I.desiredStatus,activePid:I.activePid??null,slotType:I.slotType??null}}),`Turned ${I.desiredStatus} slot "${I.slotName}"`)&&await H({silent:!0})},G=async()=>{if(!d.value){V();return}h.value=!0,await z(),h.value=!1};re(()=>n.value,async I=>{if(!I){V();return}await G()},{immediate:!0}),re(()=>r.value,async()=>{i.value!=="configuration"||!d.value||await O({silent:!0})}),re(()=>i.value,async I=>{d.value&&(I==="state"&&!y.value&&await C(),I==="configuration"&&!m.value&&await O(),I==="replication"&&!v.value&&await H())});const{pause:J,resume:ae,isActive:pe}=Ie(async()=>{!d.value||!R.value||await j(i.value,{silent:!0})},s,{immediate:!1});return re(()=>c.value,I=>{I?ae():J()},{immediate:!0}),{activeSection:i,autoRefresh:c,isAutoRefreshRunning:pe,error:o,isInitialLoading:h,isActionLoading:p,isDashboardLoading:$,isStateLoading:b,isConfigurationLoading:u,isReplicationLoading:k,dashboard:w,state:y,configuration:m,replication:v,configurationSearch:l,refreshSection:j,refreshAll:z,fetchDashboard:g,fetchState:C,fetchConfiguration:O,fetchReplication:H,cancelQuery:Y,terminateConnection:Z,dropReplicationSlot:B,toggleReplicationSlotStatus:A}}const Fn={class:"flex flex-col h-full p-3 gap-3 overflow-hidden"},Hn={class:"flex flex-col lg:flex-row lg:items-start lg:justify-between border rounded-lg p-3 gap-3 bg-background"},Vn={class:"space-y-1"},zn={class:"flex items-center gap-2"},jn={class:"text-sm text-muted-foreground flex items-center gap-0.5"},Kn={class:"flex items-center gap-0.5"},Un={class:"font-medium text-foreground"},Gn={key:0,class:"flex items-center gap-1.5 mt-0.5"},qn={class:"flex items-center gap-2 flex-wrap"},Qn={class:"text-xs flex items-center gap-2"},Xn={class:"flex items-center justify-between gap-2"},Wn={class:"text-xs text-muted-foreground"},Yn={key:0,class:"border border-red-300 bg-red-50 text-red-700 rounded-lg p-3 text-sm"},Zn={key:1,class:"border rounded-lg p-6 flex items-center justify-center gap-2 text-muted-foreground"},Jn={key:2,class:"flex-1 overflow-y-auto border rounded-lg p-3 bg-background"},eo=U({__name:"InstanceInsightsPanel",props:{dbConnectionString:{},databaseName:{},dbType:{}},setup(n){const i=[{id:"activity",tabLabel:"Activity",subtitle:"Sessions, TPS, tuples and block I/O",icon:"hugeicons:artificial-intelligence-08"},{id:"state",tabLabel:"State",subtitle:"Active sessions, locks, prepared transactions",icon:"hugeicons:shield-01"},{id:"configuration",tabLabel:"Config",subtitle:"Searchable pg_settings",icon:"hugeicons:settings-01"},{id:"replication",tabLabel:"Replication",subtitle:"Replication stats and slots",icon:"hugeicons:database"}],c=he(),s=T(()=>c.selectedConnection),{activeSection:o,autoRefresh:h,error:p,isInitialLoading:$,isActionLoading:b,isDashboardLoading:u,isStateLoading:k,isConfigurationLoading:w,isReplicationLoading:y,dashboard:m,state:v,configuration:l,replication:r,configurationSearch:d,refreshSection:R,refreshAll:V,cancelQuery:x,terminateConnection:g,dropReplicationSlot:C,toggleReplicationSlotStatus:O}=Dn(s);T(()=>i.find(B=>B.id===o.value));const H=T(()=>{var B,A,G,J;return o.value==="activity"?(B=m.value)==null?void 0:B.capturedAt:o.value==="state"?(A=v.value)==null?void 0:A.capturedAt:o.value==="configuration"?(G=l.value)==null?void 0:G.capturedAt:(J=r.value)==null?void 0:J.capturedAt}),j=()=>R("activity"),z=()=>R("state"),q=()=>R("configuration"),Y=()=>R("replication"),Z=B=>O(B);return(B,A)=>{var Q,be;const G=me,J=_e,ae=Ce,pe=ce,I=Ae,P=Re,X=Le;return f(),_("div",Fn,[e("div",Hn,[e("div",Vn,[e("div",zn,[S(G,{name:"hugeicons:database",class:"size-5 text-primary"}),A[4]||(A[4]=e("h2",{class:"text-base font-medium"},"Instance Insights",-1))]),e("div",jn,[A[5]||(A[5]=M(" connection: ")),e("div",Kn,[B.dbType?(f(),W(Te((Q=t(Ve)(B.dbType))==null?void 0:Q.icon),{key:0,class:"size-4!"})):N("",!0),e("span",Un,a(B.databaseName),1)])]),(be=t(m))!=null&&be.version?(f(),_("div",Gn,[S(J,{variant:"outline",class:"text-xxs h-5 px-1.5 font-normal"},{default:E(()=>[M(" PostgreSQL "+a(t(m).version),1)]),_:1})])):N("",!0)]),e("div",qn,[e("div",Qn,[S(ae,{id:"insights-auto-refresh","model-value":t(h),"onUpdate:modelValue":A[0]||(A[0]=ee=>le(h)?h.value=ee:null),class:"cursor-pointer"},null,8,["model-value"]),A[6]||(A[6]=e("label",{for:"insights-auto-refresh",class:"cursor-pointer"}," Auto refresh ",-1))]),S(pe,{variant:"outline",size:"sm",disabled:t($)||t(b),onClick:A[1]||(A[1]=ee=>t(V)()),class:"font-normal"},{default:E(()=>[S(G,{name:"hugeicons:redo",class:"size-4"}),A[7]||(A[7]=M(" Refresh All "))]),_:1},8,["disabled"])])]),e("div",Xn,[S(X,{modelValue:t(o),"onUpdate:modelValue":A[2]||(A[2]=ee=>le(o)?o.value=ee:null),class:"gap-0 flex-1 min-w-0"},{default:E(()=>[S(P,{class:"h-8 max-w-full overflow-x-auto justify-start!"},{default:E(()=>[(f(),_(D,null,F(i,ee=>S(I,{key:ee.id,value:ee.id,class:"text-xs px-1.5 rounded-sm cursor-pointer min-w-fit shrink-0",onClick:mr=>t(R)(ee.id,{silent:!0})},{default:E(()=>[S(G,{name:ee.icon,class:"size-3.5!"},null,8,["name"]),M(" "+a(ee.tabLabel),1)]),_:2},1032,["value","onClick"])),64))]),_:1})]),_:1},8,["modelValue"]),e("div",Wn," Last updated: "+a(t(ve)(t(H))),1)]),t(p)?(f(),_("div",Yn,a(t(p)),1)):N("",!0),t($)&&!t(m)?(f(),_("div",Zn,[S(G,{name:"hugeicons:redo",class:"size-4 animate-spin"}),A[8]||(A[8]=M(" Loading instance insights... "))])):(f(),_("div",Jn,[te(S(Js,{dashboard:t(m),isLoading:t(u),isActionLoading:t(b),onRefresh:j},null,8,["dashboard","isLoading","isActionLoading"]),[[se,t(o)==="activity"]]),te(S(Nn,{state:t(v),isLoading:t(k),isActionLoading:t(b),onRefresh:z,onCancelQuery:t(x),onTerminateConnection:t(g)},null,8,["state","isLoading","isActionLoading","onCancelQuery","onTerminateConnection"]),[[se,t(o)==="state"]]),te(S(an,{search:t(d),"onUpdate:search":A[3]||(A[3]=ee=>le(d)?d.value=ee:null),configuration:t(l),isLoading:t(w),isActionLoading:t(b),onRefresh:q},null,8,["search","configuration","isLoading","isActionLoading"]),[[se,t(o)==="configuration"]]),te(S(yn,{replication:t(r),isLoading:t(y),isActionLoading:t(b),onRefresh:Y,onDropSlot:t(C),onToggleSlotStatus:Z},null,8,["replication","isLoading","isActionLoading","onDropSlot"]),[[se,t(o)==="replication"]])]))])}}}),to={key:0,class:"space-y-4"},so={class:"flex items-start justify-between gap-3 flex-wrap"},no={class:"text-sm font-medium"},oo={class:"text-xs text-muted-foreground"},ao={key:1,class:"flex gap-2 flex-wrap"},io={key:2,class:"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-4 gap-2.5"},ro={class:"text-xs uppercase text-muted-foreground"},lo={class:"text-sm font-semibold leading-none tabular-nums"},uo={key:0,class:"text-[11px] text-muted-foreground"},co={key:3,class:"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-2.5"},mo={class:"text-xs uppercase text-muted-foreground"},po={class:"text-sm font-medium leading-tight break-words"},fo={key:0,class:"text-[11px] text-muted-foreground"},go={key:4,class:"space-y-2"},vo={class:"font-medium"},bo={class:"text-xs mt-1"},_o={class:"text-sm font-normal"},ho={key:0,class:"text-xs text-muted-foreground"},yo={key:0,class:"text-xs text-muted-foreground"},xo=360,$o=120,So=44,ko=36,wo=U({__name:"InstanceInsightsSectionRenderer",props:{section:{},search:{}},setup(n){const i=n,c=T(()=>{var u;return((u=i.search)==null?void 0:u.trim().toLowerCase())||""}),s=T(()=>i.section?!i.section.searchable||!c.value?i.section.tables||[]:(i.section.tables||[]).map(u=>({...u,rows:u.rows.filter(k=>Object.values(k).some(w=>String(w??"").toLowerCase().includes(c.value)))})):[]),o=u=>u<=0?$o:Math.min(xo,So+u*ko),h=u=>u==="supported"?"border-emerald-300 bg-emerald-50 text-emerald-700":u==="conditional"?"border-amber-300 bg-amber-50 text-amber-700":"border-slate-300 bg-slate-50 text-slate-700",p=u=>u==="success"?"border-emerald-200 bg-emerald-50":u==="warning"?"border-amber-200 bg-amber-50":u==="danger"?"border-red-200 bg-red-50":u==="info"?"border-sky-200 bg-sky-50":"border-border bg-background",$=u=>u==="unsupported"?"border-amber-300 bg-amber-50 text-amber-700":u==="unavailable"?"border-red-300 bg-red-50 text-red-700":"border-emerald-300 bg-emerald-50 text-emerald-700",b=u=>u==="pass"?"border-emerald-200 bg-emerald-50 text-emerald-700":u==="warn"?"border-amber-200 bg-amber-50 text-amber-700":u==="fail"?"border-red-200 bg-red-50 text-red-700":"border-sky-200 bg-sky-50 text-sky-700";return(u,k)=>{var m,v,l,r;const w=_e,y=ye;return u.section?(f(),_("div",to,[e("div",so,[e("div",null,[e("h3",no,a(u.section.title),1),e("p",oo,a(u.section.subtitle),1)]),S(w,{class:oe($(u.section.status)),variant:"outline"},{default:E(()=>[M(a(u.section.status),1)]),_:1},8,["class"])]),u.section.statusMessage?(f(),_("div",{key:0,class:oe(["border rounded-lg p-3 text-sm",$(u.section.status)])},a(u.section.statusMessage),3)):N("",!0),(m=u.section.actions)!=null&&m.length?(f(),_("div",ao,[(f(!0),_(D,null,F(u.section.actions,d=>(f(),W(w,{key:d.id,class:oe(h(d.state)),variant:"outline"},{default:E(()=>[M(a(d.label)+" · "+a(d.state),1)]),_:2},1032,["class"]))),128))])):N("",!0),(v=u.section.cards)!=null&&v.length?(f(),_("div",io,[(f(!0),_(D,null,F(u.section.cards,d=>(f(),_("div",{key:d.id,class:oe(["h-full border rounded-lg p-2.5 space-y-1.5",p(d.tone)])},[e("p",ro,a(d.label),1),e("p",lo,a(d.value),1),d.helperText?(f(),_("p",uo,a(d.helperText),1)):N("",!0)],2))),128))])):N("",!0),(l=u.section.details)!=null&&l.length?(f(),_("div",co,[(f(!0),_(D,null,F(u.section.details,d=>(f(),_("div",{key:`${d.label}-${d.value}`,class:oe(["border rounded-lg p-2.5 space-y-1",p(d.tone)])},[e("p",mo,a(d.label),1),e("p",po,a(d.value),1),d.helperText?(f(),_("p",fo,a(d.helperText),1)):N("",!0)],2))),128))])):N("",!0),(r=u.section.checks)!=null&&r.length?(f(),_("div",go,[(f(!0),_(D,null,F(u.section.checks,d=>(f(),_("div",{key:d.id,class:oe(["border rounded-lg p-3 text-sm",b(d.status)])},[e("p",vo,a(d.label),1),e("p",bo,a(d.detail),1)],2))),128))])):N("",!0),(f(!0),_(D,null,F(t(s),d=>(f(),_("div",{key:d.id,class:"space-y-1.5"},[e("div",null,[e("h4",_o,a(d.title),1),d.description?(f(),_("p",ho,a(d.description),1)):N("",!0)]),e("div",{class:"max-h-[360px]",style:Se({height:`${o(d.rows.length)}px`})},[S(y,{columns:t(Ue)(d.columns.map(R=>R.key)),data:d.rows,class:"h-full border rounded-md",columnKeyBy:"field"},null,8,["columns","data"])],4),d.emptyMessage&&d.rows.length===0?(f(),_("p",yo,a(d.emptyMessage),1)):N("",!0)]))),128))])):N("",!0)}}}),Io=5e3;function To(n){const i=L(null),c=L("overview"),s=L(!0),o=L(""),h=L(null),p=L(!1),$=L(!1),b=T(()=>!!n.value),u=L(!0);ke(()=>{u.value=!1}),we(()=>{u.value=!0});const k=()=>{h.value=null,i.value=null,o.value="",c.value="overview"},w=async(d={})=>{var R,V;if(!b.value)return k(),null;d.silent||($.value=!0);try{h.value=null;const x=await $fetch("/api/instance-insights/view",{method:"POST",body:{...ne(n.value)}});return i.value=x,x.sections.some(g=>g.id===c.value)||(c.value=((R=x.sections[0])==null?void 0:R.id)||"overview"),x}catch(x){const g=((V=x==null?void 0:x.data)==null?void 0:V.message)||(x==null?void 0:x.message)||(x==null?void 0:x.statusMessage)||"Failed to fetch instance insights";return h.value=g,null}finally{d.silent||($.value=!1)}},y=async(d=c.value,R={})=>w(R),m=async(d={})=>w(d),v=async()=>{if(!b.value){k();return}p.value=!0,await w(),p.value=!1};re(()=>n.value,async d=>{if(!d){k();return}await v()},{immediate:!0});const{pause:l,resume:r}=Ie(async()=>{!b.value||!u.value||await w({silent:!0})},Io,{immediate:!1});return re(()=>s.value,d=>{d?r():l()},{immediate:!0}),{view:i,activeSection:c,autoRefresh:s,configurationSearch:o,error:h,isInitialLoading:p,isViewLoading:$,refreshSection:y,refreshAll:m}}const Co={class:"flex flex-col h-full p-3 gap-3 overflow-hidden"},Lo={class:"flex flex-col lg:flex-row lg:items-start lg:justify-between border rounded-lg p-3 gap-3 bg-background"},Ro={class:"space-y-2"},Ao={class:"space-y-1"},Po={class:"flex items-center gap-2"},Bo={class:"text-sm text-muted-foreground flex items-center gap-0.5"},Eo={class:"flex items-center gap-0.5"},Mo={class:"font-medium text-foreground"},No={key:0,class:"flex items-center gap-1.5 mt-0.5"},Oo={key:0,class:"flex gap-2 flex-wrap"},Do={class:"flex items-center gap-2 flex-wrap"},Fo={class:"text-xs flex items-center gap-2"},Ho={class:"flex items-center justify-between gap-2"},Vo={class:"text-xs text-muted-foreground"},zo={key:0,class:"border rounded-lg p-3 bg-background"},jo={class:"relative"},Ko={key:1,class:"border border-red-300 bg-red-50 text-red-700 rounded-lg p-3 text-sm"},Uo={key:2,class:"border rounded-lg p-6 flex items-center justify-center gap-2 text-muted-foreground"},Go={key:3,class:"flex-1 overflow-y-auto border rounded-lg p-3 bg-background"},qo=U({__name:"MultiDbInstanceInsightsPanel",props:{dbConnectionString:{},databaseName:{},dbType:{}},setup(n){const i=he(),{selectedConnection:c}=He(i),{view:s,activeSection:o,autoRefresh:h,configurationSearch:p,error:$,isInitialLoading:b,isViewLoading:u,refreshSection:k,refreshAll:w}=To(c),y=T(()=>{var l;return((l=s.value)==null?void 0:l.sections.find(r=>r.id===o.value))||null}),m=T(()=>{var l,r;return((l=y.value)==null?void 0:l.capturedAt)||((r=s.value)==null?void 0:r.capturedAt)||null}),v=l=>l==="supported"?"border-emerald-300 bg-emerald-50 text-emerald-700":l==="conditional"?"border-amber-300 bg-amber-50 text-amber-700":"border-slate-300 bg-slate-50 text-slate-700";return(l,r)=>{var j,z,q,Y,Z;const d=me,R=_e,V=Ce,x=ce,g=Ae,C=Re,O=Le,H=Fe;return f(),_("div",Co,[e("div",Lo,[e("div",Ro,[e("div",Ao,[e("div",Po,[S(d,{name:"hugeicons:database",class:"size-5 text-primary"}),r[4]||(r[4]=e("h2",{class:"text-base font-medium"},"Instance Insights",-1))]),e("div",Bo,[r[5]||(r[5]=M(" connection: ")),e("div",Eo,[l.dbType?(f(),W(Te((j=t(Ve)(l.dbType))==null?void 0:j.icon),{key:0,class:"size-4!"})):N("",!0),e("span",Mo,a(l.databaseName),1)])]),(z=t(s))!=null&&z.version?(f(),_("div",No,[S(R,{variant:"outline",class:"text-xxs h-5 px-1.5 font-normal"},{default:E(()=>[M(a(l.dbType===t(ue).MARIADB?"MariaDB":l.dbType===t(ue).ORACLE?"Oracle":l.dbType===t(ue).SQLITE3?"SQLite":"MySQL")+" "+a(t(s).version),1)]),_:1})])):N("",!0)]),(Y=(q=t(s))==null?void 0:q.actions)!=null&&Y.length?(f(),_("div",Oo,[(f(!0),_(D,null,F(t(s).actions,B=>(f(),W(R,{key:B.id,class:oe(v(B.state)),variant:"outline"},{default:E(()=>[M(a(B.label)+" · "+a(B.state),1)]),_:2},1032,["class"]))),128))])):N("",!0)]),e("div",Do,[e("div",Fo,[S(V,{id:"insights-auto-refresh","model-value":t(h),"onUpdate:modelValue":r[0]||(r[0]=B=>le(h)?h.value=B:null),class:"cursor-pointer"},null,8,["model-value"]),r[6]||(r[6]=e("label",{for:"insights-auto-refresh",class:"cursor-pointer"}," Auto refresh ",-1))]),S(x,{variant:"outline",size:"sm",disabled:t(b)||t(u),class:"font-normal",onClick:r[1]||(r[1]=B=>t(w)())},{default:E(()=>[S(d,{name:"hugeicons:redo",class:"size-4"}),r[7]||(r[7]=M(" Refresh All "))]),_:1},8,["disabled"])])]),e("div",Ho,[S(O,{modelValue:t(o),"onUpdate:modelValue":r[2]||(r[2]=B=>le(o)?o.value=B:null),class:"gap-0 flex-1 min-w-0"},{default:E(()=>[S(C,{class:"h-8 max-w-full overflow-x-auto justify-start!"},{default:E(()=>{var B;return[(f(!0),_(D,null,F(((B=t(s))==null?void 0:B.sections)||[],A=>(f(),W(g,{key:A.id,value:A.id,class:"text-xs px-1.5 rounded-sm cursor-pointer min-w-fit shrink-0",onClick:G=>t(k)(A.id,{silent:!0})},{default:E(()=>[M(a(A.title),1)]),_:2},1032,["value","onClick"]))),128))]}),_:1})]),_:1},8,["modelValue"]),e("div",Vo," Last updated: "+a(t(ve)(t(m))),1)]),(Z=t(y))!=null&&Z.searchable?(f(),_("div",zo,[e("div",jo,[S(d,{name:"hugeicons:search-01",class:"size-4 absolute left-2.5 top-1/2 -translate-y-1/2 text-muted-foreground"}),S(H,{modelValue:t(p),"onUpdate:modelValue":r[3]||(r[3]=B=>le(p)?p.value=B:null),type:"text",placeholder:t(y).searchPlaceholder||"Search...",class:"h-8 w-full pl-8 pr-3"},null,8,["modelValue","placeholder"])])])):N("",!0),t($)?(f(),_("div",Ko,a(t($)),1)):N("",!0),t(b)&&!t(s)?(f(),_("div",Uo,[S(d,{name:"hugeicons:redo",class:"size-4 animate-spin"}),r[8]||(r[8]=M(" Loading instance insights... "))])):(f(),_("div",Go,[S(wo,{section:t(y),search:t(p)},null,8,["section","search"])]))])}}}),Qo={class:"space-y-4"},Xo={class:"grid gap-3 md:grid-cols-2"},Wo={class:"rounded-lg border p-3"},Yo={class:"mt-1 text-lg font-medium"},Zo={class:"rounded-lg border p-3"},Jo={class:"mt-1 text-lg font-medium"},ea={key:0,class:"rounded-lg border p-3"},ta={class:"mt-3 space-y-2 text-xs"},sa={class:"rounded-lg border p-3"},na={class:"mt-3 space-y-2 text-xs"},oa={class:"flex items-start justify-between gap-3"},aa={class:"font-medium"},ia={class:"text-muted-foreground"},ra={class:"text-muted-foreground"},la=U({__name:"RedisClientsSection",props:{clients:{},isActionLoading:{type:Boolean}},emits:["kill-client"],setup(n,{emit:i}){const c=i,s=new Intl.NumberFormat;function o(h){return h==null||h===""?"0":s.format(Number(h))}return(h,p)=>{var b,u,k,w,y;const $=ce;return f(),_("div",Qo,[e("div",Xo,[e("div",Wo,[p[0]||(p[0]=e("p",{class:"text-xs text-muted-foreground"},"Connected clients",-1)),e("p",Yo,a(o((b=h.clients)==null?void 0:b.connectedClients)),1)]),e("div",Zo,[p[1]||(p[1]=e("p",{class:"text-xs text-muted-foreground"},"Suspicious clients",-1)),e("p",Jo,a(o((((u=h.clients)==null?void 0:u.suspiciousClients)||[]).length)),1)])]),(((k=h.clients)==null?void 0:k.suspiciousClients)||[]).length?(f(),_("div",ea,[p[2]||(p[2]=e("h3",{class:"text-sm font-medium"},"Suspicious clients",-1)),e("div",ta,[(f(!0),_(D,null,F(((w=h.clients)==null?void 0:w.suspiciousClients)||[],m=>(f(),_("div",{key:`${m.clientId}-${m.reason}`,class:"rounded-md bg-muted/20 px-3 py-2"},a(m.reason),1))),128))])])):N("",!0),e("div",sa,[p[4]||(p[4]=e("h3",{class:"text-sm font-medium"},"Client list",-1)),e("div",na,[(f(!0),_(D,null,F(((y=h.clients)==null?void 0:y.clients)||[],m=>(f(),_("div",{key:m.id,class:"rounded-md bg-muted/20 px-3 py-2"},[e("div",oa,[e("div",null,[e("p",aa,a(m.addr),1),e("p",ia,a(m.name)+" · db "+a(m.db)+" · "+a(m.cmd),1),e("p",ra," age "+a(o(m.ageSeconds))+"s · idle "+a(o(m.idleSeconds))+"s ",1)]),S($,{size:"sm",variant:"outline",disabled:h.isActionLoading,onClick:v=>c("kill-client",m.id)},{default:E(()=>p[3]||(p[3]=[M(" Kill client ")])),_:2},1032,["disabled","onClick"])])]))),128))])])])}}}),da={class:"space-y-2"},ua={class:"text-muted-foreground"},ca=U({__name:"RedisConfigSection",props:{config:{}},setup(n){return(i,c)=>(f(),_("div",da,[(f(!0),_(D,null,F(i.config||[],s=>(f(),_("div",{key:s.name,class:"flex items-center justify-between rounded-md border px-3 py-2 text-sm"},[e("span",null,a(s.name),1),e("span",ua,a(s.value||"not set"),1)]))),128))]))}}),ma={class:"space-y-4"},pa={class:"grid gap-3 md:grid-cols-4"},fa={class:"rounded-lg border p-3"},ga={class:"mt-1 text-lg font-medium"},va={class:"rounded-lg border p-3"},ba={class:"mt-1 text-lg font-medium"},_a={class:"rounded-lg border p-3"},ha={class:"mt-1 text-lg font-medium"},ya={class:"rounded-lg border p-3"},xa={class:"mt-1 text-lg font-medium"},$a={class:"grid gap-4 lg:grid-cols-2"},Sa={class:"rounded-lg border p-3"},ka={class:"mt-3 space-y-2 text-sm"},wa={class:"text-muted-foreground"},Ia={class:"rounded-lg border p-3"},Ta={class:"mt-3 space-y-2 text-sm"},Ca={class:"text-muted-foreground"},La={class:"rounded-lg border p-3"},Ra={class:"mt-3 flex flex-wrap gap-2"},Aa={class:"mt-3 text-xs text-muted-foreground"},Pa=U({__name:"RedisKeyspaceSection",props:{keyspace:{}},setup(n){const i=new Intl.NumberFormat;function c(s){return s==null||s===""?"0":i.format(Number(s))}return(s,o)=>{var p,$,b,u,k,w,y,m;const h=_e;return f(),_("div",ma,[e("div",pa,[e("div",fa,[o[0]||(o[0]=e("p",{class:"text-xs text-muted-foreground"},"Expired key count",-1)),e("p",ga,a(c((p=s.keyspace)==null?void 0:p.expiredKeyCount)),1)]),e("div",va,[o[1]||(o[1]=e("p",{class:"text-xs text-muted-foreground"},"Avg TTL",-1)),e("p",ba,a(c(($=s.keyspace)==null?void 0:$.avgTtl)),1)]),e("div",_a,[o[2]||(o[2]=e("p",{class:"text-xs text-muted-foreground"},"Keys without TTL",-1)),e("p",ha,a(c((b=s.keyspace)==null?void 0:b.keysWithoutTtl)),1)]),e("div",ya,[o[3]||(o[3]=e("p",{class:"text-xs text-muted-foreground"},"Sampled keys",-1)),e("p",xa,a(c((u=s.keyspace)==null?void 0:u.sampledKeys)),1)])]),e("div",$a,[e("div",Sa,[o[4]||(o[4]=e("h3",{class:"text-sm font-medium"},"Databases",-1)),e("div",ka,[(f(!0),_(D,null,F(((k=s.keyspace)==null?void 0:k.databases)||[],v=>(f(),_("div",{key:v.database,class:"flex items-center justify-between rounded-md bg-muted/20 px-3 py-2"},[e("span",null,a(v.database),1),e("span",wa,a(c(v.keyCount))+" keys · "+a(c(v.expires))+" expiring · avg TTL "+a(c(v.avgTtl)),1)]))),128))])]),e("div",Ia,[o[5]||(o[5]=e("h3",{class:"text-sm font-medium"},"Top prefixes",-1)),e("div",Ta,[(f(!0),_(D,null,F(((w=s.keyspace)==null?void 0:w.topPrefixes)||[],v=>(f(),_("div",{key:v.prefix,class:"flex items-center justify-between rounded-md bg-muted/20 px-3 py-2"},[e("span",null,a(v.prefix),1),e("span",Ca,a(c(v.keyCount))+" keys ",1)]))),128))])])]),e("div",La,[o[6]||(o[6]=e("h3",{class:"text-sm font-medium"},"Key type distribution",-1)),e("div",Ra,[(f(!0),_(D,null,F(((y=s.keyspace)==null?void 0:y.keyTypeDistribution)||[],v=>(f(),W(h,{key:v.type,variant:"outline"},{default:E(()=>[M(a(v.type)+" · "+a(c(v.count)),1)]),_:2},1024))),128))]),e("p",Aa,a((m=s.keyspace)==null?void 0:m.hotKeysNote),1)])])}}}),Ba={class:"space-y-4"},Ea={class:"grid gap-3 md:grid-cols-2 xl:grid-cols-4"},Ma={class:"rounded-lg border p-3"},Na={class:"mt-1 text-lg font-medium"},Oa={class:"rounded-lg border p-3"},Da={class:"mt-1 text-lg font-medium"},Fa={class:"rounded-lg border p-3"},Ha={class:"mt-1 text-lg font-medium"},Va={class:"rounded-lg border p-3"},za={class:"mt-1 text-lg font-medium"},ja={class:"grid gap-4 lg:grid-cols-2"},Ka={class:"rounded-lg border p-3"},Ua={class:"mt-3 space-y-2 text-sm"},Ga={class:"text-muted-foreground"},qa={class:"rounded-lg border p-3"},Qa={class:"mt-3 space-y-2 text-sm"},Xa={class:"flex items-center justify-between gap-2"},Wa={class:"truncate"},Ya={class:"mt-1 text-xs text-muted-foreground"},Za=U({__name:"RedisMemorySection",props:{memory:{}},setup(n){const i=new Intl.NumberFormat;function c(s){return s==null||s===""?"0":i.format(Number(s))}return(s,o)=>{var $,b,u,k,w,y,m,v;const h=Pe,p=_e;return f(),_("div",Ba,[e("div",Ea,[e("div",Ma,[o[0]||(o[0]=e("p",{class:"text-xs text-muted-foreground"},"Used memory",-1)),e("p",Na,a(($=s.memory)==null?void 0:$.usedMemoryHuman),1)]),e("div",Oa,[o[1]||(o[1]=e("p",{class:"text-xs text-muted-foreground"},"Peak memory",-1)),e("p",Da,a((b=s.memory)==null?void 0:b.usedMemoryPeakHuman),1)]),e("div",Fa,[o[2]||(o[2]=e("p",{class:"text-xs text-muted-foreground"},"Fragmentation",-1)),e("p",Ha,a((u=s.memory)==null?void 0:u.memoryFragmentationRatio.toFixed(2)),1)]),e("div",Va,[o[3]||(o[3]=e("p",{class:"text-xs text-muted-foreground"},"Maxmemory / policy",-1)),e("p",za,a((k=s.memory)==null?void 0:k.maxmemoryHuman)+" · "+a((w=s.memory)==null?void 0:w.maxmemoryPolicy),1)])]),(f(!0),_(D,null,F(((y=s.memory)==null?void 0:y.warnings)||[],l=>(f(),W(h,{key:l,variant:"secondary"},{default:E(()=>[M(a(l),1)]),_:2},1024))),128)),e("div",ja,[e("div",Ka,[o[4]||(o[4]=e("h3",{class:"text-sm font-medium"},"Top prefixes by memory",-1)),e("div",Ua,[(f(!0),_(D,null,F(((m=s.memory)==null?void 0:m.topPrefixesByMemory)||[],l=>(f(),_("div",{key:l.prefix,class:"flex items-center justify-between rounded-md bg-muted/20 px-3 py-2"},[e("span",null,a(l.prefix),1),e("span",Ga,a(c(l.keyCount))+" keys · "+a(c(l.memoryBytes))+" B ",1)]))),128))])]),e("div",qa,[o[5]||(o[5]=e("h3",{class:"text-sm font-medium"},"Big keys detector",-1)),e("div",Qa,[(f(!0),_(D,null,F(((v=s.memory)==null?void 0:v.bigKeys)||[],l=>(f(),_("div",{key:l.key,class:"rounded-md bg-muted/20 px-3 py-2"},[e("div",Xa,[e("span",Wa,a(l.key),1),S(p,{variant:"outline"},{default:E(()=>[M(a(l.type),1)]),_:2},1024)]),e("p",Ya," TTL "+a(l.ttl>=0?l.ttl:"persisted")+" · "+a(c(l.memoryBytes))+" B ",1)]))),128))])])])])}}}),Ja={class:"space-y-4"},ei={class:"grid gap-3 md:grid-cols-2 xl:grid-cols-4"},ti={class:"text-xs text-muted-foreground"},si={class:"mt-1 text-lg font-medium"},ni=U({__name:"RedisOverviewSection",props:{overview:{}},setup(n){const i=n,c=new Intl.NumberFormat;function s(p){return p==null||p===""?"0":c.format(Number(p))}function o(p){return`${(p*100).toFixed(1)}%`}const h=T(()=>{const p=i.overview;return p?[{label:"Redis version",value:p.redisVersion},{label:"Mode",value:p.mode},{label:"Uptime",value:qe(p.uptimeSeconds)},{label:"Connected clients",value:s(p.connectedClients)},{label:"Used memory",value:p.usedMemoryHuman},{label:"Total keys",value:s(p.totalKeys)},{label:"Hit rate",value:o(p.hitRate)},{label:"Ops/sec",value:s(p.opsPerSec)},{label:"Evicted keys",value:s(p.evictedKeys)},{label:"Expired keys",value:s(p.expiredKeys)},{label:"Rejected connections",value:s(p.rejectedConnections)}]:[]});return(p,$)=>(f(),_("div",Ja,[e("div",ei,[(f(!0),_(D,null,F(t(h),b=>(f(),_("div",{key:b.label,class:"rounded-lg border p-3"},[e("p",ti,a(b.label),1),e("p",si,a(b.value),1)]))),128))])]))}}),oi={class:"space-y-4"},ai={class:"grid gap-3 md:grid-cols-3"},ii={class:"rounded-lg border p-3"},ri={class:"mt-1 text-lg font-medium"},li={class:"rounded-lg border p-3"},di={class:"mt-1 text-lg font-medium"},ui={class:"rounded-lg border p-3"},ci={class:"mt-1 text-lg font-medium"},mi={class:"rounded-lg border p-3"},pi={class:"mt-3 whitespace-pre-wrap text-xs text-muted-foreground"},fi={class:"grid gap-4 lg:grid-cols-2"},gi={class:"rounded-lg border p-3"},vi={class:"mt-3 space-y-2 text-xs"},bi={class:"flex items-center justify-between gap-2"},_i={class:"font-medium"},hi={class:"mt-1 text-muted-foreground"},yi={class:"rounded-lg border p-3"},xi={class:"mt-3 space-y-2 text-xs"},$i={class:"text-muted-foreground"},Si={class:"rounded-lg border p-3"},ki={class:"mt-3 space-y-2 text-xs"},wi={key:0,class:"text-muted-foreground"},Ii={class:"text-muted-foreground"},Ti=U({__name:"RedisPerformanceSection",props:{performance:{}},setup(n){const i=new Intl.NumberFormat;function c(s){return s==null||s===""?"0":i.format(Number(s))}return(s,o)=>{var h,p,$,b,u,k,w,y;return f(),_("div",oi,[e("div",ai,[e("div",ii,[o[0]||(o[0]=e("p",{class:"text-xs text-muted-foreground"},"Ops/sec",-1)),e("p",ri,a(c((h=s.performance)==null?void 0:h.instantaneousOpsPerSec)),1)]),e("div",li,[o[1]||(o[1]=e("p",{class:"text-xs text-muted-foreground"},"Total commands",-1)),e("p",di,a(c((p=s.performance)==null?void 0:p.totalCommandsProcessed)),1)]),e("div",ui,[o[2]||(o[2]=e("p",{class:"text-xs text-muted-foreground"},"Blocked clients",-1)),e("p",ci,a(c(($=s.performance)==null?void 0:$.blockedClients)),1)])]),e("div",mi,[o[3]||(o[3]=e("h3",{class:"text-sm font-medium"},"Latency doctor",-1)),e("pre",pi,a(((b=s.performance)==null?void 0:b.latencyDoctor)||"No latency doctor output available."),1)]),e("div",fi,[e("div",gi,[o[4]||(o[4]=e("h3",{class:"text-sm font-medium"},"Slowlog",-1)),e("div",vi,[(f(!0),_(D,null,F(((u=s.performance)==null?void 0:u.slowlog)||[],m=>(f(),_("div",{key:m.id,class:"rounded-md bg-muted/20 px-3 py-2"},[e("div",bi,[e("span",_i,a(m.command||"unknown command"),1),e("span",null,a(c(m.durationMicros))+" µs",1)]),e("p",hi,a(m.clientAddr||"n/a")+" · "+a(m.timestamp||"unknown time"),1)]))),128))])]),e("div",yi,[o[5]||(o[5]=e("h3",{class:"text-sm font-medium"},"Command stats",-1)),e("div",xi,[(f(!0),_(D,null,F(((k=s.performance)==null?void 0:k.commandStats)||[],m=>(f(),_("div",{key:m.command,class:"flex items-center justify-between rounded-md bg-muted/20 px-3 py-2"},[e("span",null,a(m.command),1),e("span",$i,a(c(m.calls))+" calls · "+a(m.usecPerCall.toFixed(2))+" µs/call ",1)]))),128))])])]),e("div",Si,[o[6]||(o[6]=e("h3",{class:"text-sm font-medium"},"Long-running Lua scripts",-1)),e("div",ki,[(((w=s.performance)==null?void 0:w.longRunningLuaScripts)||[]).length?N("",!0):(f(),_("div",wi," No active Lua script clients detected. ")),(f(!0),_(D,null,F(((y=s.performance)==null?void 0:y.longRunningLuaScripts)||[],m=>(f(),_("div",{key:m.id,class:"flex items-center justify-between rounded-md bg-muted/20 px-3 py-2"},[e("span",null,a(m.addr),1),e("span",Ii,a(m.cmd)+" · age "+a(c(m.ageSeconds))+"s ",1)]))),128))])])])}}}),Ci={class:"space-y-4"},Li={class:"grid gap-3 md:grid-cols-2 xl:grid-cols-4"},Ri={class:"rounded-lg border p-3"},Ai={class:"mt-1 text-lg font-medium"},Pi={class:"rounded-lg border p-3"},Bi={class:"mt-1 text-lg font-medium"},Ei={class:"rounded-lg border p-3"},Mi={class:"mt-1 text-lg font-medium"},Ni={class:"rounded-lg border p-3"},Oi={class:"mt-1 text-lg font-medium"},Di={class:"rounded-lg border p-3 text-sm text-muted-foreground space-y-1"},Fi={key:0},Hi=U({__name:"RedisPersistenceSection",props:{persistence:{}},setup(n){const i=new Intl.NumberFormat;function c(s){return s==null||s===""?"0":i.format(Number(s))}return(s,o)=>{var p,$,b,u,k,w,y,m,v;const h=Pe;return f(),_("div",Ci,[e("div",Li,[e("div",Ri,[o[0]||(o[0]=e("p",{class:"text-xs text-muted-foreground"},"RDB enabled",-1)),e("p",Ai,a((p=s.persistence)!=null&&p.rdbEnabled?"Yes":"No"),1)]),e("div",Pi,[o[1]||(o[1]=e("p",{class:"text-xs text-muted-foreground"},"AOF enabled",-1)),e("p",Bi,a(($=s.persistence)!=null&&$.aofEnabled?"Yes":"No"),1)]),e("div",Ei,[o[2]||(o[2]=e("p",{class:"text-xs text-muted-foreground"},"AOF rewrite",-1)),e("p",Mi,a((b=s.persistence)!=null&&b.aofRewriteInProgress?"In progress":"Idle"),1)]),e("div",Ni,[o[3]||(o[3]=e("p",{class:"text-xs text-muted-foreground"},"Changes since save",-1)),e("p",Oi,a(c((u=s.persistence)==null?void 0:u.changesSinceLastSave)),1)])]),(f(!0),_(D,null,F(((k=s.persistence)==null?void 0:k.warnings)||[],l=>(f(),W(h,{key:l,variant:"secondary"},{default:E(()=>[M(a(l),1)]),_:2},1024))),128)),e("div",Di,[e("p",null," Last save status: "+a(((w=s.persistence)==null?void 0:w.lastSaveStatus)||"unknown"),1),e("p",null," Last save time: "+a(((y=s.persistence)==null?void 0:y.lastSaveTime)||"unknown"),1),e("p",null," AOF last rewrite status: "+a(((m=s.persistence)==null?void 0:m.aofLastRewriteStatus)||"unknown"),1),(v=s.persistence)!=null&&v.lastBgsaveError?(f(),_("p",Fi," Last bgsave error: "+a(s.persistence.lastBgsaveError),1)):N("",!0)])])}}}),Vi={class:"space-y-4"},zi={class:"grid gap-3 md:grid-cols-2 xl:grid-cols-4"},ji={class:"rounded-lg border p-3"},Ki={class:"mt-1 text-lg font-medium"},Ui={class:"rounded-lg border p-3"},Gi={class:"mt-1 text-lg font-medium"},qi={class:"rounded-lg border p-3"},Qi={class:"mt-1 text-lg font-medium"},Xi={class:"rounded-lg border p-3"},Wi={class:"mt-1 text-lg font-medium"},Yi={class:"rounded-lg border p-3 text-sm text-muted-foreground space-y-1"},Zi={class:"rounded-lg border p-3"},Ji={class:"mt-3 space-y-2 text-xs"},er={key:0,class:"text-muted-foreground"},tr={class:"text-muted-foreground"},sr=U({__name:"RedisReplicationSection",props:{replication:{}},setup(n){const i=new Intl.NumberFormat;function c(s){return s==null||s===""?"0":i.format(Number(s))}return(s,o)=>{var h,p,$,b,u,k,w,y,m,v,l;return f(),_("div",Vi,[e("div",zi,[e("div",ji,[o[0]||(o[0]=e("p",{class:"text-xs text-muted-foreground"},"Role",-1)),e("p",Ki,a(((h=s.replication)==null?void 0:h.role)||"unknown"),1)]),e("div",Ui,[o[1]||(o[1]=e("p",{class:"text-xs text-muted-foreground"},"Connected replicas",-1)),e("p",Gi,a(c((p=s.replication)==null?void 0:p.connectedReplicas)),1)]),e("div",qi,[o[2]||(o[2]=e("p",{class:"text-xs text-muted-foreground"},"Master link status",-1)),e("p",Qi,a((($=s.replication)==null?void 0:$.masterLinkStatus)||"n/a"),1)]),e("div",Xi,[o[3]||(o[3]=e("p",{class:"text-xs text-muted-foreground"},"Cluster state",-1)),e("p",Wi,a(((b=s.replication)==null?void 0:b.clusterState)||((u=s.replication)!=null&&u.clusterEnabled?"enabled":"disabled")),1)])]),e("div",Yi,[e("p",null,"Replication lag: "+a(((k=s.replication)==null?void 0:k.replicationLag)??"n/a"),1),e("p",null,"Sentinel masters: "+a(((w=s.replication)==null?void 0:w.sentinelMasters)??"n/a"),1),e("p",null," Cluster slots assigned: "+a(((y=s.replication)==null?void 0:y.clusterSlotsAssigned)??"n/a"),1),e("p",null,"Cluster known nodes: "+a(((m=s.replication)==null?void 0:m.clusterKnownNodes)??"n/a"),1)]),e("div",Zi,[o[4]||(o[4]=e("h3",{class:"text-sm font-medium"},"Replicas",-1)),e("div",Ji,[(((v=s.replication)==null?void 0:v.replicas)||[]).length?N("",!0):(f(),_("div",er," No replica nodes reported. ")),(f(!0),_(D,null,F(((l=s.replication)==null?void 0:l.replicas)||[],r=>(f(),_("div",{key:r.id,class:"flex items-center justify-between rounded-md bg-muted/20 px-3 py-2"},[e("span",null,a(r.addr),1),e("span",tr,a(r.state)+" · lag "+a(r.lag??"n/a"),1)]))),128))])])])}}}),nr=5e3;function or(n){const i=L("overview"),c=L(!0),s=L(null),o=L(!1),h=L(!1),p=L(!1),$=L(null),b=L(!0),u=T(()=>!!n.connection.value);ke(()=>{b.value=!1}),we(()=>{b.value=!0});const k=async(l=!1)=>{var r;if(!n.connection.value)return $.value=null,null;l||(h.value=!0);try{s.value=null;const d=await $fetch("/api/redis/instance-insights/overview",{method:"POST",body:{...ne(n.connection.value),method:n.connection.value.method,databaseIndex:n.databaseIndex.value}});return $.value=d,d}catch(d){return s.value=((r=d==null?void 0:d.data)==null?void 0:r.message)||(d==null?void 0:d.message)||(d==null?void 0:d.statusMessage)||"Failed to fetch Redis instance insights.",null}finally{l||(h.value=!1)}},w=async l=>{var r;if(!n.connection.value)return!1;p.value=!0;try{const d=await $fetch("/api/redis/instance-insights/kill-client",{method:"POST",body:{...ne(n.connection.value),method:n.connection.value.method,databaseIndex:n.databaseIndex.value,clientId:l}});return d.success?(fe("Redis client terminated",{description:d.message}),await k(!0),!0):(fe("Failed to terminate client",{description:d.message}),!1)}catch(d){return fe("Failed to terminate client",{description:((r=d==null?void 0:d.data)==null?void 0:r.message)||(d==null?void 0:d.message)||"The Redis client could not be terminated."}),!1}finally{p.value=!1}},y=async()=>{await k()};re([()=>n.connection.value,()=>n.databaseIndex.value],async([l])=>{if(!l){$.value=null;return}o.value=!0,await k(),o.value=!1},{immediate:!0});const{pause:m,resume:v}=Ie(async()=>{!u.value||!b.value||await k(!0)},nr,{immediate:!1});return re(()=>c.value,l=>{l?v():m()},{immediate:!0}),{activeSection:i,autoRefresh:c,error:s,isInitialLoading:o,isLoading:h,isActionLoading:p,insights:$,refresh:y,killClient:w}}const ar={class:"flex h-full flex-col gap-3 overflow-hidden p-3"},ir={class:"flex items-center gap-2 text-xs"},rr={key:1,class:"flex flex-1 items-center justify-center gap-2 rounded-lg border bg-background text-muted-foreground"},lr={key:2,class:"flex-1 overflow-y-auto rounded-lg border bg-background p-3 mt-2"},dr=U({__name:"RedisInstanceInsightsPanel",props:{databaseName:{},databaseIndex:{},databases:{},dbType:{}},emits:["update:databaseIndex"],setup(n,{emit:i}){const c=n,s=i,o=[{id:"overview",label:"Overview"},{id:"keyspace",label:"Keyspace"},{id:"memory",label:"Memory"},{id:"performance",label:"Performance"},{id:"clients",label:"Clients"},{id:"persistence",label:"Persistence"},{id:"replication",label:"Replication / Cluster"},{id:"config",label:"Config"}],h=he(),p=T(()=>h.selectedConnection),{activeSection:$,autoRefresh:b,error:u,isInitialLoading:k,isLoading:w,isActionLoading:y,insights:m,refresh:v,killClient:l}=or({connection:p,databaseIndex:T(()=>c.databaseIndex)});return(r,d)=>{const R=Ce,V=me,x=ce,g=wt,C=Ae,O=Re,H=Pe,j=Le;return f(),_("div",ar,[S(g,{icon:"hugeicons:activity-02",title:"Instance Insights"},{context:E(()=>[r.dbType===t(ue).REDIS?(f(),W(Te("hugeicons:database-sync-01"),{key:0})):N("",!0)]),actions:E(()=>[S(It,{compact:"","trigger-id":"redis-instance-insights-db-index","trigger-class":"bg-background",databases:r.databases,"database-index":r.databaseIndex,"onUpdate:databaseIndex":d[0]||(d[0]=z=>s("update:databaseIndex",z))},null,8,["databases","database-index"]),e("div",ir,[S(R,{id:"redis-insights-auto-refresh","model-value":t(b),"onUpdate:modelValue":d[1]||(d[1]=z=>le(b)?b.value=z:null)},null,8,["model-value"]),d[3]||(d[3]=e("label",{for:"redis-insights-auto-refresh",class:"cursor-pointer"}," Auto refresh ",-1))]),S(x,{size:"xxs",variant:"outline",disabled:t(w)||t(y),onClick:t(v)},{default:E(()=>[S(V,{name:"hugeicons:redo",class:"size-3.5!"}),d[4]||(d[4]=M(" Refresh "))]),_:1},8,["disabled","onClick"])]),_:1}),S(j,{modelValue:t($),"onUpdate:modelValue":d[2]||(d[2]=z=>le($)?$.value=z:null),class:"flex flex-1 min-h-0 flex-col gap-0"},{default:E(()=>{var z,q,Y,Z,B,A,G,J;return[S(O,{class:"h-8 max-w-full justify-start! shrink-0 overflow-x-auto"},{default:E(()=>[(f(),_(D,null,F(o,ae=>S(C,{key:ae.id,value:ae.id,class:"min-w-fit shrink-0 cursor-pointer rounded-sm px-1.5 text-xs"},{default:E(()=>[M(a(ae.label),1)]),_:2},1032,["value"])),64))]),_:1}),t(u)?(f(),W(H,{key:0,variant:"destructive"},{default:E(()=>[M(a(t(u)),1)]),_:1})):N("",!0),t(k)&&!t(m)?(f(),_("div",rr,[S(V,{name:"hugeicons:redo",class:"size-4 animate-spin"}),d[5]||(d[5]=M(" Loading Redis instance insights... "))])):(f(),_("div",lr,[te(S(ni,{overview:(z=t(m))==null?void 0:z.overview},null,8,["overview"]),[[se,t($)==="overview"]]),te(S(Pa,{keyspace:(q=t(m))==null?void 0:q.keyspace},null,8,["keyspace"]),[[se,t($)==="keyspace"]]),te(S(Za,{memory:(Y=t(m))==null?void 0:Y.memory},null,8,["memory"]),[[se,t($)==="memory"]]),te(S(Ti,{performance:(Z=t(m))==null?void 0:Z.performance},null,8,["performance"]),[[se,t($)==="performance"]]),te(S(la,{clients:(B=t(m))==null?void 0:B.clients,"is-action-loading":t(y),onKillClient:t(l)},null,8,["clients","is-action-loading","onKillClient"]),[[se,t($)==="clients"]]),te(S(Hi,{persistence:(A=t(m))==null?void 0:A.persistence},null,8,["persistence"]),[[se,t($)==="persistence"]]),te(S(sr,{replication:(G=t(m))==null?void 0:G.replication},null,8,["replication"]),[[se,t($)==="replication"]]),te(S(ca,{config:(J=t(m))==null?void 0:J.config},null,8,["config"]),[[se,t($)==="config"]])]))]}),_:1},8,["modelValue"])])}}}),ur={class:"h-full"},cr={key:0,class:"h-full p-4 flex flex-col items-center justify-center text-muted-foreground"},wr=U({__name:"index",setup(n){const i=We(),c=he(),s=Ye(),{activeTab:o}=He(s),h=T(()=>String(i.params.connectionId||"")),p=T(()=>h.value?c.connections.find(y=>y.id===h.value):null),$=T(()=>{var y;return((y=p.value)==null?void 0:y.connectionString)||""}),b=T(()=>{var y;return(y=p.value)==null?void 0:y.type}),u=T(()=>{var y,m,v;return b.value===ue.REDIS?((y=p.value)==null?void 0:y.name)||"Redis":((m=p.value)==null?void 0:m.database)||((v=p.value)==null?void 0:v.name)||"database"}),k=T(()=>b.value===ue.REDIS?p.value??void 0:void 0),w=Tt({connection:k,mode:"meta"});return re(()=>{var y,m;return(m=(y=o.value)==null?void 0:y.metadata)==null?void 0:m.databaseIndex},y=>{typeof y=="number"&&(w.selectedDatabaseIndex.value=y)},{immediate:!0}),(y,m)=>{const v=me;return f(),_("div",ur,[t(p)?t(b)===t(ue).REDIS?(f(),W(dr,{key:1,"database-name":t(u),"database-index":t(w).selectedDatabaseIndex.value,databases:t(w).databases.value,"db-type":t(b),"onUpdate:databaseIndex":m[0]||(m[0]=l=>t(w).selectedDatabaseIndex.value=l)},null,8,["database-name","database-index","databases","db-type"])):t(b)===t(ue).POSTGRES?(f(),W(eo,{key:2,"db-connection-string":t($),"database-name":t(u),"db-type":t(b)},null,8,["db-connection-string","database-name","db-type"])):(f(),W(qo,{key:3,"db-connection-string":t($),"database-name":t(u),"db-type":t(b)},null,8,["db-connection-string","database-name","db-type"])):(f(),_("div",cr,[S(v,{name:"hugeicons:plug-socket",class:"size-12 mb-2 opacity-50"}),m[1]||(m[1]=e("p",{class:"text-sm"},"Select a connection to open Instance Insights",-1))]))])}}});export{wr as default};
|