orcaq 1.1.4 → 1.1.6
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/27ZsWTm2.js +1 -0
- package/.output/public/_nuxt/{e04t7nee.js → 3jfBYqJb.js} +1 -1
- package/.output/public/_nuxt/{DZ9fd-xA.js → 4LC09zKL.js} +1 -1
- package/.output/public/_nuxt/4OV_5qQE.js +1 -0
- package/.output/public/_nuxt/6NXhlm49.js +1 -0
- package/.output/public/_nuxt/6wO6CbCo.js +1 -0
- package/.output/public/_nuxt/{BqZGP9WI.js → 7nPLTDFM.js} +1 -1
- package/.output/public/_nuxt/B10QBDL6.js +1 -0
- package/.output/public/_nuxt/{DaiufW99.js → B3iNzG14.js} +1 -1
- package/.output/public/_nuxt/B5HZeat4.js +1 -0
- package/.output/public/_nuxt/B5rxJs06.js +1 -0
- package/.output/public/_nuxt/{DdW7QNKl.js → BAasx5OS.js} +1 -1
- package/.output/public/_nuxt/{DHnV-0Qj.js → BCa-NKh0.js} +1 -1
- package/.output/public/_nuxt/{CxSk31iP.js → BCazdlgN.js} +1 -1
- package/.output/public/_nuxt/{DQCTvlJf.js → BEvswgw7.js} +1 -1
- package/.output/public/_nuxt/{DmpCN34M.js → BJ8qQpib.js} +1 -1
- package/.output/public/_nuxt/{_Od8x2z5.js → BJoSd_uV.js} +1 -1
- package/.output/public/_nuxt/BKAEFZqP.js +1 -0
- package/.output/public/_nuxt/BTvOPFKG.js +1 -0
- package/.output/public/_nuxt/{g4lEPr__.js → BWg3wiuc.js} +3 -3
- package/.output/public/_nuxt/{xoY3RXI7.js → B_hWP06g.js} +1 -1
- package/.output/public/_nuxt/{DKhuBYhy.js → Bap1X7GD.js} +1 -1
- package/.output/public/_nuxt/{DynamicTable.B3c2woGb.css → BaseDataGrid.C2ywM2-T.css} +1 -1
- package/.output/public/_nuxt/{B_J4rjuT.js → BbLqUOHs.js} +1 -1
- package/.output/public/_nuxt/{BdaSWOzD.js → BbawOYVr.js} +1 -1
- package/.output/public/_nuxt/Bf2bW_MY.js +7 -0
- package/.output/public/_nuxt/{BxdkXfb_.js → Bgj8Q52i.js} +1 -1
- package/.output/public/_nuxt/BhzzQZRC.js +1 -0
- package/.output/public/_nuxt/{CwgI7YXL.js → Bibtvqd8.js} +1 -1
- package/.output/public/_nuxt/{BYY9MB0h.js → BmEIj9l9.js} +1 -1
- package/.output/public/_nuxt/BnZ5qYkP.js +39 -0
- package/.output/public/_nuxt/BoUZO_NV.js +1 -0
- package/.output/public/_nuxt/Bok35x_B.js +1 -0
- package/.output/public/_nuxt/{D65Keo_g.js → BuSZbOQO.js} +1 -1
- package/.output/public/_nuxt/BusLuQ4Q.js +1 -0
- package/.output/public/_nuxt/{DryPPXlb.js → BxZgIpkD.js} +1 -1
- package/.output/public/_nuxt/{C5zTeLKh.js → C4-wpUAK.js} +1 -1
- package/.output/public/_nuxt/{ziSTJBFH.js → C445d10Z.js} +1 -1
- package/.output/public/_nuxt/{2XEGje4L.js → C6CFIGob.js} +1 -1
- package/.output/public/_nuxt/{CYaqLaPZ.js → C6bwwZAc.js} +1 -1
- package/.output/public/_nuxt/C7C1kq_N.js +1 -0
- package/.output/public/_nuxt/{DijSUoYv.js → C9ZBCJdc.js} +1 -1
- package/.output/public/_nuxt/{BQFJwqXj.js → CBjcd4cE.js} +1 -1
- package/.output/public/_nuxt/{DKJfWiWm.js → CCK1so3F.js} +1 -1
- package/.output/public/_nuxt/CCOlJAKS.js +2 -0
- package/.output/public/_nuxt/{C6yADG7D.js → CE0zlNDo.js} +1 -1
- package/.output/public/_nuxt/CEoM97rJ.js +1 -0
- package/.output/public/_nuxt/CHAVZu6b.js +2 -0
- package/.output/public/_nuxt/CN8b9qPP.js +1 -0
- package/.output/public/_nuxt/{DYqNroD1.js → CNPNWuzz.js} +1 -1
- package/.output/public/_nuxt/{DEsdpKnm.js → CO0Pa76w.js} +1 -1
- package/.output/public/_nuxt/CP-7VdtS.js +1 -0
- package/.output/public/_nuxt/{MC96ynYQ.js → CROH8wgk.js} +1 -1
- package/.output/public/_nuxt/CUws2Uv7.js +1 -0
- package/.output/public/_nuxt/CZLVBTJx.js +1 -0
- package/.output/public/_nuxt/{BqjMHuu8.js → Cf6n9dsT.js} +1 -1
- package/.output/public/_nuxt/{BWphy0Pi.js → Ci7hrFNN.js} +1 -1
- package/.output/public/_nuxt/{BVl8VKr5.js → Cl3VX8Um.js} +1 -1
- package/.output/public/_nuxt/Cl5p4EQY.js +1 -0
- package/.output/public/_nuxt/CnQob-tn.js +1 -0
- package/.output/public/_nuxt/{u7qmw6wa.js → CoQ_oOia.js} +2 -2
- package/.output/public/_nuxt/CoX1_N4R.js +1 -0
- package/.output/public/_nuxt/CvDZBOay.js +1 -0
- package/.output/public/_nuxt/{CFOJLBf2.js → Cvkyd5iW.js} +1 -1
- package/.output/public/_nuxt/D29mzs5t.js +1 -0
- package/.output/public/_nuxt/D9MMtvTu.js +52 -0
- package/.output/public/_nuxt/{-lZvfnzr.js → D9Ycznwo.js} +1 -1
- package/.output/public/_nuxt/{C2kyA9ZS.js → DDsaDrGo.js} +1 -1
- package/.output/public/_nuxt/{5cKDQgbQ.js → DHyymmeR.js} +1 -1
- package/.output/public/_nuxt/{Bp1mKnR0.js → DLA-ioQ4.js} +1 -1
- package/.output/public/_nuxt/DM8LJTsg.js +1 -0
- package/.output/public/_nuxt/{Ef-1UUMy.js → DP6Az3fC.js} +1 -1
- package/.output/public/_nuxt/{DNpk_jbU.js → DRX1aIGD.js} +1 -1
- package/.output/public/_nuxt/{DDS9xPxH.js → DViCRsmA.js} +1 -1
- package/.output/public/_nuxt/{CmzTcheK.js → DYPm3mWQ.js} +1 -1
- package/.output/public/_nuxt/{BXp87mMj.js → DYqShb5v.js} +4 -4
- package/.output/public/_nuxt/DZFq5yqu.js +1 -0
- package/.output/public/_nuxt/DZVfXu09.js +1 -0
- package/.output/public/_nuxt/{DT4w6IwV.js → Dd89Vyx8.js} +1 -1
- package/.output/public/_nuxt/DdbhVPqD.js +1 -0
- package/.output/public/_nuxt/{l12ZvGEh.js → DeVs4gEL.js} +1 -1
- package/.output/public/_nuxt/{D9SUnmGh.js → Df4wU3r0.js} +1 -1
- package/.output/public/_nuxt/{BfSmOVMj.js → DgGwe7jd.js} +180 -180
- package/.output/public/_nuxt/DlymFQ5D.js +26 -0
- package/.output/public/_nuxt/DoNLWeqB.js +20 -0
- package/.output/public/_nuxt/Dpm6rnHk.js +1 -0
- package/.output/public/_nuxt/DsPClaxV.js +1 -0
- package/.output/public/_nuxt/DtOg0Asw.js +1 -0
- package/.output/public/_nuxt/DyDU0wFf.js +1 -0
- package/.output/public/_nuxt/{CRX1CszZ.js → EZ0owjER.js} +1 -1
- package/.output/public/_nuxt/F8eHh68O.js +9 -0
- package/.output/public/_nuxt/{bpGjU0QQ.js → FHx3Ejt6.js} +1 -1
- package/.output/public/_nuxt/{default.B0xlD4Sl.css → FileTree.CtTH3U6l.css} +1 -1
- package/.output/public/_nuxt/G40WRC_L.js +1 -0
- package/.output/public/_nuxt/{N6_KTIJr.js → Lh0RfwhV.js} +1 -1
- package/.output/public/_nuxt/NMm6Vanu.js +1 -0
- package/.output/public/_nuxt/ORit_vRp.js +1 -0
- package/.output/public/_nuxt/P_2SRa71.js +2 -0
- package/.output/public/_nuxt/PreviewRelationTable.BA0i90jA.css +1 -0
- package/.output/public/_nuxt/{HP3PGEjt.js → Un5zjlKE.js} +1 -1
- package/.output/public/_nuxt/W-4KVxy4.js +22 -0
- package/.output/public/_nuxt/XETGYn3c.js +1 -0
- package/.output/public/_nuxt/{BlRPNODF.js → ZNDxw-7x.js} +1 -1
- package/.output/public/_nuxt/ZVYA9HBl.js +1 -0
- package/.output/public/_nuxt/ZhP2FY6Y.js +1 -0
- package/.output/public/_nuxt/_TExiQQQ.js +3 -0
- package/.output/public/_nuxt/__PEYcIB.js +9 -0
- package/.output/public/_nuxt/{_fileId_.DDOcnoDQ.css → _fileId_.DxhkUVGK.css} +1 -1
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/47c294b1-d6b3-4974-bd50-5046ae0a393e.json +1 -0
- package/.output/public/_nuxt/dDqgUqt5.js +16 -0
- package/.output/public/_nuxt/dSX5D8ur.js +28 -0
- package/.output/public/_nuxt/default.DixIpIal.css +1 -0
- package/.output/public/_nuxt/entry.CGwcggc4.css +1 -0
- package/.output/public/_nuxt/{BsA8eQHh.js → habs8oz6.js} +1 -1
- package/.output/public/_nuxt/{index.P0q-dO_S.css → index.C4HrDOPM.css} +1 -1
- package/.output/public/_nuxt/o60RgyTd.js +1 -0
- package/.output/public/_nuxt/{DNgNuAci.js → uDsvlLN0.js} +1 -1
- package/.output/public/_nuxt/{Brupmvos.js → wH-P-_6A.js} +1 -1
- package/.output/public/_nuxt/{Cih6uwf6.js → wrneOCBW.js} +1 -1
- package/.output/public/_nuxt/{BN9sUptU.js → x85BV7y_.js} +1 -1
- package/.output/public/_nuxt/{CrNrSEll.js → yLATXAxG.js} +1 -1
- 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 +6 -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/_/sql-mutation-statements.mjs +496 -0
- package/.output/server/chunks/_/sql-mutation-statements.mjs.map +1 -0
- package/.output/server/chunks/_/tables.factory.mjs +58 -30
- package/.output/server/chunks/_/tables.factory.mjs.map +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 +808 -703
- package/.output/server/chunks/build/client.manifest.mjs.map +1 -1
- package/.output/server/chunks/nitro/nitro.mjs +687 -664
- 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 +21 -12
- package/.output/server/chunks/routes/api/tables/bulk-delete.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/tables/bulk-insert.post.mjs +90 -0
- package/.output/server/chunks/routes/api/tables/bulk-insert.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/tables/bulk-update.post.mjs +53 -11
- 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 -2
- package/package.json +1 -1
- package/.output/public/_nuxt/-sZwfgN3.js +0 -1
- package/.output/public/_nuxt/1iqadsOZ.js +0 -1
- package/.output/public/_nuxt/2WkPV7Mp.js +0 -22
- package/.output/public/_nuxt/B8rT4ISg.js +0 -2
- package/.output/public/_nuxt/B9Yq_mZo.js +0 -1
- package/.output/public/_nuxt/BCFLQ_rL.js +0 -9
- package/.output/public/_nuxt/BIHJR--x.js +0 -39
- package/.output/public/_nuxt/BNkZeak0.js +0 -1
- package/.output/public/_nuxt/BNqd1Zca.js +0 -1
- package/.output/public/_nuxt/BOZgY48g.js +0 -1
- package/.output/public/_nuxt/BSBcOKKj.js +0 -1
- package/.output/public/_nuxt/BYav_5oM.js +0 -1
- package/.output/public/_nuxt/B_U4hCvn.js +0 -7
- package/.output/public/_nuxt/BdCzQG_z.js +0 -1
- package/.output/public/_nuxt/BdX6JvdH.js +0 -20
- package/.output/public/_nuxt/BiMJOLHR.js +0 -1
- package/.output/public/_nuxt/BmREJclf.js +0 -1
- package/.output/public/_nuxt/Bwe8I9vL.js +0 -1
- package/.output/public/_nuxt/C20WaARR.js +0 -1
- package/.output/public/_nuxt/C4HRDaS8.js +0 -1
- package/.output/public/_nuxt/C6r_nDJz.js +0 -2
- package/.output/public/_nuxt/CBfQCVFf.js +0 -1
- package/.output/public/_nuxt/CDPrFhDR.js +0 -67
- package/.output/public/_nuxt/CJhlBUX_.js +0 -1
- package/.output/public/_nuxt/CLXbv9E5.js +0 -1
- package/.output/public/_nuxt/CMT3TfI0.js +0 -1
- package/.output/public/_nuxt/CS5akSNT.js +0 -1
- package/.output/public/_nuxt/CyEWn2V2.js +0 -1
- package/.output/public/_nuxt/D-pZQQ02.js +0 -1
- package/.output/public/_nuxt/D0mrO5vS.js +0 -1
- package/.output/public/_nuxt/D3ujZRkc.js +0 -1
- package/.output/public/_nuxt/D4PtOV7Y.js +0 -1
- package/.output/public/_nuxt/D6c_aTbv.js +0 -1
- package/.output/public/_nuxt/DDIVwUV6.js +0 -1
- package/.output/public/_nuxt/DIoeBtoF.js +0 -10
- package/.output/public/_nuxt/DLTvS7Vr.js +0 -2
- package/.output/public/_nuxt/DQf3b-ld.js +0 -1
- package/.output/public/_nuxt/DUqYnCG7.js +0 -1
- package/.output/public/_nuxt/DdRczQp2.js +0 -3
- package/.output/public/_nuxt/Ddtv9Dxp.js +0 -1
- package/.output/public/_nuxt/Dfzgj0Oq.js +0 -1
- package/.output/public/_nuxt/DgRHzRny.js +0 -1
- package/.output/public/_nuxt/Dm-rJ5VH.js +0 -1
- package/.output/public/_nuxt/DoB1FFC2.js +0 -1
- package/.output/public/_nuxt/Dp2UQPgO.js +0 -1
- package/.output/public/_nuxt/DyCQWd5B.js +0 -12
- package/.output/public/_nuxt/KK3goksi.js +0 -1
- package/.output/public/_nuxt/QuickQuery.CJ7tNjo4.css +0 -1
- package/.output/public/_nuxt/TKeZJpIw.js +0 -1
- package/.output/public/_nuxt/UHOKyE8O.js +0 -1
- package/.output/public/_nuxt/Z42SRPvO.js +0 -1
- 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
- package/.output/server/node_modules/ag-grid-community/dist/package/main.esm.mjs +0 -50065
- package/.output/server/node_modules/ag-grid-community/package.json +0 -113
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as g}from"./NMm6Vanu.js";import{_}from"./o60RgyTd.js";import{d as x,O as b,c as d,P as v,Q as C,R as y,S,e as N,f as t,m as o,w as a,t as m,g as n,z as s,o as R,A as T}from"./DgGwe7jd.js";import{_ as r}from"./DP6Az3fC.js";const h={class:"p-2 flex flex-col items-center justify-center h-full"},k={class:"font-medium text-xl pt-2"},w={class:"text-muted-foreground text-sm"},B={class:"flex items-center pt-3 text-muted-foreground gap-0.5 text-sm"},E={class:"flex items-center pt-1 text-muted-foreground gap-0.5 text-sm"},I={class:"flex items-center pt-1 text-muted-foreground gap-0.5 text-sm"},O={class:"flex items-center pt-1 text-muted-foreground gap-0.5 text-sm"},$=x({__name:"index",setup(P){const c=b(),p=d(()=>v(c.selectedConnection??{type:y.POSTGRES,method:C.STRING})),l=d(()=>p.value===S.REDIS?{title:"No Redis workspace tab is open",description:"Open a Redis key browser or tools tab from the sidebar to begin."}:{title:"No table is open",description:"Click on a database table from the sidebar to begin"});return(z,e)=>{const u=_,f=g,i=T;return R(),N("div",h,[t(f,{class:"rounded-2xl size-40"},{default:a(()=>[t(u,{src:"/logo.png",alt:"@unovue"})]),_:1}),o("div",k,m(n(l).title),1),o("div",w,[s(m(n(l).description)+" ",1),t(i,{name:"hugeicons:artificial-intelligence-08",class:"size-4 min-w-4"})]),o("div",B,[t(i,{name:"hugeicons:settings-01"}),e[1]||(e[1]=s(" Open setting ")),t(n(r),{class:"pl-2"},{default:a(()=>e[0]||(e[0]=[s("(⌘,)")])),_:1})]),o("div",E,[t(i,{name:"hugeicons:command"}),e[3]||(e[3]=s(" Command Palette ")),t(n(r),{class:"pl-2"},{default:a(()=>e[2]||(e[2]=[s("(⌘K or ⌘P)")])),_:1})]),o("div",I,[t(i,{name:"hugeicons:sidebar-left"}),e[5]||(e[5]=s(" Toggle left sidebar ")),t(n(r),{class:"pl-2"},{default:a(()=>e[4]||(e[4]=[s("(⌘B)")])),_:1})]),o("div",O,[t(i,{name:"hugeicons:sidebar-right"}),e[7]||(e[7]=s(" Toggle right sidebar ")),t(n(r),{class:"pl-2"},{default:a(()=>e[6]||(e[6]=[s("(⇧⌘B)")])),_:1})])])}}});export{$ as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{_ as o,c as ot,a4 as ut,L as dt,ak as yt,A as ft,k as pt,q as it,a as gt,b as kt,g as mt,s as wt,t as _t,e as bt}from"./
|
|
1
|
+
import{_ as o,c as ot,a4 as ut,L as dt,ak as yt,A as ft,k as pt,q as it,a as gt,b as kt,g as mt,s as wt,t as _t,e as bt}from"./DYqShb5v.js";import"./DgGwe7jd.js";var tt=function(){var e=o(function(M,t,s,i){for(s=s||{},i=M.length;i--;s[M[i]]=t);return s},"o"),h=[1,4],r=[1,14],a=[1,12],l=[1,13],y=[6,7,8],f=[1,20],d=[1,18],m=[1,19],c=[6,7,11],k=[1,6,13,14],g=[1,23],_=[1,24],x=[1,6,7,11,13,14],N={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,ishikawa:4,spaceLines:5,SPACELINE:6,NL:7,ISHIKAWA:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,TEXT:14,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"ISHIKAWA",11:"EOF",13:"SPACELIST",14:"TEXT"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,1],[12,1],[12,1]],performAction:o(function(t,s,i,u,p,n,v){var w=n.length-1;switch(p){case 6:case 7:return u;case 15:u.addNode(n[w-1].length,n[w].trim());break;case 16:u.addNode(0,n[w].trim());break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:h},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:h},{6:r,7:[1,10],9:9,12:11,13:a,14:l},e(y,[2,3]),{1:[2,2]},e(y,[2,4]),e(y,[2,5]),{1:[2,6],6:r,12:15,13:a,14:l},{6:r,9:16,12:11,13:a,14:l},{6:f,7:d,10:17,11:m},e(c,[2,18],{14:[1,21]}),e(c,[2,16]),e(c,[2,17]),{6:f,7:d,10:22,11:m},{1:[2,7],6:r,12:15,13:a,14:l},e(k,[2,14],{7:g,11:_}),e(x,[2,8]),e(x,[2,9]),e(x,[2,10]),e(c,[2,15]),e(k,[2,13],{7:g,11:_}),e(x,[2,11]),e(x,[2,12])],defaultActions:{2:[2,1],6:[2,2]},parseError:o(function(t,s){if(s.recoverable)this.trace(t);else{var i=new Error(t);throw i.hash=s,i}},"parseError"),parse:o(function(t){var s=this,i=[0],u=[],p=[null],n=[],v=this.table,w="",I=0,S=0,L=2,E=1,R=n.slice.call(arguments,1),b=Object.create(this.lexer),C={yy:{}};for(var F in this.yy)Object.prototype.hasOwnProperty.call(this.yy,F)&&(C.yy[F]=this.yy[F]);b.setInput(t,C.yy),C.yy.lexer=b,C.yy.parser=this,typeof b.yylloc>"u"&&(b.yylloc={});var T=b.yylloc;n.push(T);var D=b.options&&b.options.ranges;typeof C.yy.parseError=="function"?this.parseError=C.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function j(P){i.length=i.length-2*P,p.length=p.length-P,n.length=n.length-P}o(j,"popStack");function z(){var P;return P=u.pop()||b.lex()||E,typeof P!="number"&&(P instanceof Array&&(u=P,P=u.pop()),P=s.symbols_[P]||P),P}o(z,"lex");for(var A,W,B,K,H={},X,V,et,Y;;){if(W=i[i.length-1],this.defaultActions[W]?B=this.defaultActions[W]:((A===null||typeof A>"u")&&(A=z()),B=v[W]&&v[W][A]),typeof B>"u"||!B.length||!B[0]){var Q="";Y=[];for(X in v[W])this.terminals_[X]&&X>L&&Y.push("'"+this.terminals_[X]+"'");b.showPosition?Q="Parse error on line "+(I+1)+`:
|
|
2
2
|
`+b.showPosition()+`
|
|
3
3
|
Expecting `+Y.join(", ")+", got '"+(this.terminals_[A]||A)+"'":Q="Parse error on line "+(I+1)+": Unexpected "+(A==E?"end of input":"'"+(this.terminals_[A]||A)+"'"),this.parseError(Q,{text:b.match,token:this.terminals_[A]||A,line:b.yylineno,loc:T,expected:Y})}if(B[0]instanceof Array&&B.length>1)throw new Error("Parse Error: multiple actions possible at state: "+W+", token: "+A);switch(B[0]){case 1:i.push(A),p.push(b.yytext),n.push(b.yylloc),i.push(B[1]),A=null,S=b.yyleng,w=b.yytext,I=b.yylineno,T=b.yylloc;break;case 2:if(V=this.productions_[B[1]][1],H.$=p[p.length-V],H._$={first_line:n[n.length-(V||1)].first_line,last_line:n[n.length-1].last_line,first_column:n[n.length-(V||1)].first_column,last_column:n[n.length-1].last_column},D&&(H._$.range=[n[n.length-(V||1)].range[0],n[n.length-1].range[1]]),K=this.performAction.apply(H,[w,S,I,C.yy,B[1],p,n].concat(R)),typeof K<"u")return K;V&&(i=i.slice(0,-1*V*2),p=p.slice(0,-1*V),n=n.slice(0,-1*V)),i.push(this.productions_[B[1]][0]),p.push(H.$),n.push(H._$),et=v[i[i.length-2]][i[i.length-1]],i.push(et);break;case 3:return!0}}return!0},"parse")},O=function(){var M={EOF:1,parseError:o(function(s,i){if(this.yy.parser)this.yy.parser.parseError(s,i);else throw new Error(s)},"parseError"),setInput:o(function(t,s){return this.yy=s||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var t=this._input[0];this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t;var s=t.match(/(?:\r\n?|\n).*/g);return s?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},"input"),unput:o(function(t){var s=t.length,i=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-s),this.offset-=s;var u=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),i.length-1&&(this.yylineno-=i.length-1);var p=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:i?(i.length===u.length?this.yylloc.first_column:0)+u[u.length-i.length].length-i[0].length:this.yylloc.first_column-s},this.options.ranges&&(this.yylloc.range=[p[0],p[0]+this.yyleng-s]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
|
|
4
4
|
`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(t){this.unput(this.match.slice(t))},"less"),pastInput:o(function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var t=this.pastInput(),s=new Array(t.length+1).join("-");return t+this.upcomingInput()+`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as s}from"./
|
|
1
|
+
import{_ as s}from"./DYqShb5v.js";var t,e=(t=class{constructor(i){this.init=i,this.records=this.init()}reset(){this.records=this.init()}},s(t,"ImperativeState"),t);export{e as I};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as r,e as n,n as o,g as a,j as l,D as c,o as d,
|
|
1
|
+
import{d as r,e as n,n as o,g as a,j as l,D as c,o as d,aO as u}from"./DgGwe7jd.js";const f=r({__name:"Alert",props:{class:{},variant:{}},setup(t){const s=t;return(e,i)=>(d(),n("div",{class:o(a(l)(a(v)({variant:e.variant}),s.class)),role:"alert"},[c(e.$slots,"default")],2))}}),g=r({__name:"AlertDescription",props:{class:{}},setup(t){const s=t;return(e,i)=>(d(),n("div",{class:o(a(l)("text-sm [&_p]:leading-relaxed",s.class))},[c(e.$slots,"default")],2))}}),v=u("relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7",{variants:{variant:{default:"bg-background text-foreground",destructive:"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive"}},defaultVariants:{variant:"default"}});export{f as _,g as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{s as a,c as s,a as e,C as t}from"./DRX1aIGD.js";import{_ as i}from"./DYqShb5v.js";import"./CBjcd4cE.js";import"./BbLqUOHs.js";import"./CROH8wgk.js";import"./3jfBYqJb.js";import"./DgGwe7jd.js";var n={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{n as diagram};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as x,d as B,c as m,e as i,m as r,f,t as g,g as t,a7 as I,w as d,a8 as z,o as s,a9 as S,k as v,l as w,A as $,n as b,a4 as L,aa as N}from"./DgGwe7jd.js";import{c as k}from"./__PEYcIB.js";import{u as V}from"./DDsaDrGo.js";function j(c=2e3){const e=x(!1),n=x({});return{copied:e,handleCopy:async o=>{await k(o),e.value=!0,setTimeout(()=>{e.value=!1},c)},copiedStates:n,handleCopyWithKey:async(o,l)=>{await k(l),n.value[o]=!0,setTimeout(()=>{n.value[o]=!1},c)},isCopied:o=>n.value[o]??!1,getCopyIcon:(o=e.value)=>o?"hugeicons:tick-02":"hugeicons:copy-01",getCopyIconClass:(o=e.value)=>o?"text-primary":"",getCopyTooltip:(o=e.value,l="Copy")=>o?"Copied!":l}}const K={class:"rounded-lg border border-border/60 bg-muted/30 overflow-hidden shadow-sm"},W={class:"flex items-center justify-between px-3 py-1 border-b border-border/40 bg-muted/50"},q={class:"text-xxs font-semibold tracking-widest uppercase text-muted-foreground select-none"},A={class:"flex items-center gap-1 justify-center"},E=["innerHTML"],M={key:1,class:"p-3 font-mono whitespace-pre leading-relaxed text-foreground/80 m-0 w-fit min-w-full chat-code-text"},D=B({__name:"CodeHighlightPreview",props:{code:{},language:{default:"sql"},showCopyButton:{type:Boolean,default:!0},maxHeight:{default:void 0},decorations:{default:()=>[]}},setup(c){const e=c,{highlight:n}=V(),p=m(()=>e.code?n(e.code,e.language,{decorations:e.decorations}):null),h=m(()=>e.maxHeight?{maxHeight:e.maxHeight,overflowY:"auto",overflowX:"auto"}:{}),{copied:a,handleCopy:y,getCopyIcon:C,getCopyIconClass:u,getCopyTooltip:o}=j(),l=async()=>{e.code&&await y(e.code)},T=m(()=>e.language.toUpperCase());return(_,P)=>{const H=$;return s(),i("div",K,[r("div",W,[r("span",q,g(T.value),1),f(t(I),null,{default:d(()=>[f(t(S),{"as-child":""},{default:d(()=>[_.showCopyButton?(s(),v(t(L),{key:0,variant:"ghost",size:"xxs",onClick:l},{default:d(()=>[r("span",A,[(s(),v(H,{key:t(a)?"tick":"copy",name:t(C)(t(a)),class:b(["size-3.5",t(u)(t(a))])},null,8,["name","class"])),t(a)?(s(),i("span",{key:0,class:b(["text-xxs font-medium leading-none",t(u)(t(a))])},"Copied",2)):w("",!0)])]),_:1})):w("",!0)]),_:1}),f(t(N),null,{default:d(()=>[r("p",null,g(t(o)(t(a),"Copy code")),1)]),_:1})]),_:1})]),r("div",{style:z(h.value)},[p.value?(s(),i("div",{key:0,class:"[&>pre]:p-3 [&>pre]:font-mono [&>pre]:whitespace-pre [&>pre]:leading-relaxed [&>pre]:m-0 [&>pre]:w-fit [&>pre]:min-w-full [&>pre]:rounded-none chat-code-text",innerHTML:p.value},null,8,E)):(s(),i("pre",M,g(_.code),1))],4)])}}});export{D as _,j as u};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{cf as e}from"./DgGwe7jd.js";import{s as c}from"./DDsaDrGo.js";/**
|
|
2
2
|
* @license lucide-vue-next v0.487.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
5
5
|
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
-
*/const t=e("circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),l=Object.freeze(Object.defineProperty({__proto__:null,default:
|
|
6
|
+
*/const t=e("circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),l=Object.freeze(Object.defineProperty({__proto__:null,default:c},Symbol.toStringTag,{value:"Module"}));export{t as C,l as b};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{d,U as v,V as f,k as i,o as u,w as l,D as c,W as m,X as _,g as e,Y as g,Z as w,$ as I,c as x,p as y,j as M}from"./DgGwe7jd.js";import{M as P}from"./DyDU0wFf.js";import{D as z,d as D,a as b}from"./DZFq5yqu.js";var h=d({__name:"DropdownMenuItem",props:{disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["select"],setup(r,{emit:s}){const o=r,a=v(s);return f(),(t,p)=>(u(),i(e(P),m(_({...o,...e(a)})),{default:l(()=>[c(t.$slots,"default")]),_:3},16))}}),B=h;const S=d({__name:"DropdownMenuItem",props:{disabled:{type:Boolean},textValue:{},asChild:{type:Boolean},as:{},class:{},inset:{type:Boolean},variant:{default:"default"}},setup(r){const s=r,o=g(s,"inset","variant"),n=w(o),a=I(z,x(()=>"default"));return(t,p)=>(u(),i(e(B),y({"data-slot":"dropdown-menu-item","data-size":e(a),"data-inset":t.inset?"":void 0,"data-variant":t.variant},e(n),{class:e(M)("focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive-foreground data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/40 data-[variant=destructive]:focus:text-destructive-foreground data-[variant=destructive]:*:[svg]:!text-destructive-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e(D)[e(a)],t.inset&&e(b)[e(a)],s.class)}),{default:l(()=>[c(t.$slots,"default")]),_:3},16,["data-size","data-inset","data-variant","class"]))}});export{S as _};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{L as ee,d as ne,e as q,o as v,n as ve,m as f,k as y,l as F,f as n,w as t,g as e,a9 as k,a4 as pe,z as u,A as b,aa as R,a7 as z,O as ge,aY as _e,ae as Ce,r as c,c as C,E as Q,aZ as be,a_ as ye,a$ as Se,b0 as he,b1 as we,b2 as $e,b3 as xe,b4 as ke,i as A,b5 as K,b6 as H,b7 as Y,t as Re,b8 as Z,b9 as j,ba as G,bb as J,bc as ze,bd as W,af as Pe,be as De,F as Te,K as Fe}from"./DgGwe7jd.js";import{_ as Oe}from"./CnQob-tn.js";import{s as qe}from"./yLATXAxG.js";import{g as O,a as X}from"./COAycMg4.js";import{_ as Me,f as Ee}from"./DoNLWeqB.js";import{_ as Ue}from"./DP6Az3fC.js";import{m as Be}from"./BoUZO_NV.js";import{u as Ie}from"./CE0zlNDo.js";import"./__PEYcIB.js";import"./DDsaDrGo.js";const Le=w=>ee.of([{key:"Ctrl-s",mac:"Cmd-s",run:g=>{const m=g.state.doc.toString();return w(m),!0},preventDefault:!0}]),Ne={class:ve(["flex items-center justify-between p-1 rounded-md bg-muted"])},Ve={class:"flex items-center gap-1"},Qe={key:0,class:"text-xs text-muted-foreground"},Ae=ne({__name:"FunctionControlBar",props:{hasChanges:{type:Boolean},isSaving:{type:Boolean}},emits:["onPreview","onSave","onDiscard","onReload"],setup(w,{emit:g}){const m=g;return(d,s)=>{const i=pe,_=Ue;return v(),q("div",Ne,[f("div",Ve,[d.hasChanges?(v(),y(e(z),{key:0},{default:t(()=>[n(e(k),{"as-child":""},{default:t(()=>[f("div",null,[n(i,{variant:"outline",size:"xxs",disabled:d.isSaving,onClick:s[0]||(s[0]=r=>m("onPreview"))},{default:t(()=>[n(e(b),{name:"lucide:file-search",class:"size-4"}),s[4]||(s[4]=u(" Preview changes "))]),_:1},8,["disabled"])])]),_:1}),n(e(R),null,{default:t(()=>s[5]||(s[5]=[f("p",null,"Preview SQL changes before saving",-1)])),_:1})]),_:1})):F("",!0),n(e(z),null,{default:t(()=>[n(e(k),{"as-child":""},{default:t(()=>[f("div",null,[n(i,{variant:"outline",size:"xxs",disabled:!d.hasChanges||d.isSaving,onClick:s[1]||(s[1]=r=>m("onSave"))},{default:t(()=>[d.isSaving?(v(),y(e(b),{key:0,name:"hugeicons:loading-03",class:"size-4 animate-spin"})):(v(),y(e(b),{key:1,name:"lucide:save",class:"size-4"})),s[7]||(s[7]=u(" Save ")),n(_,null,{default:t(()=>s[6]||(s[6]=[u("⌘S")])),_:1})]),_:1},8,["disabled"])])]),_:1}),n(e(R),null,{default:t(()=>[s[8]||(s[8]=f("p",null,"Save routine changes",-1)),d.hasChanges?F("",!0):(v(),q("p",Qe," No changes to save "))]),_:1})]),_:1}),n(e(z),null,{default:t(()=>[n(e(k),{"as-child":""},{default:t(()=>[f("div",null,[n(i,{variant:"outline",size:"xxs",disabled:d.isSaving,onClick:s[2]||(s[2]=r=>m("onReload"))},{default:t(()=>[n(e(b),{name:"lucide:refresh-cw",class:"size-4"}),s[10]||(s[10]=u(" Reload ")),n(_,null,{default:t(()=>s[9]||(s[9]=[u("⌘R")])),_:1})]),_:1},8,["disabled"])])]),_:1}),n(e(R),null,{default:t(()=>s[11]||(s[11]=[f("p",null,"Reload latest version from database",-1)])),_:1})]),_:1}),d.hasChanges?(v(),y(e(z),{key:1},{default:t(()=>[n(e(k),{"as-child":""},{default:t(()=>[f("div",null,[n(i,{variant:"outline",size:"xxs",disabled:d.isSaving,onClick:s[3]||(s[3]=r=>m("onDiscard"))},{default:t(()=>[n(e(b),{name:"lucide:undo-2",class:"size-4"}),s[12]||(s[12]=u(" discard changes "))]),_:1},8,["disabled"])])]),_:1}),n(e(R),null,{default:t(()=>s[13]||(s[13]=[f("p",null,"Discard changes",-1)])),_:1})]),_:1})):F("",!0)])])}}}),Ke={class:"flex flex-col h-full p-1"},He={class:"flex flex-col h-full border rounded-md"},Ye={class:"h-full flex flex-col overflow-y-auto relative"},sn=ne({__name:"FunctionDetail",props:{functionId:{},connectionId:{}},setup(w){const g=w,m=ge(),d=_e(),{activeSchema:s}=Ce(d),i=c(""),_=c(""),r=c(!1),M=c(""),E=c("Query error!"),$=c(!1),S=c(!1),h=c(""),ae=C(()=>O(i.value)),te=C(()=>O(_.value)),P=C(()=>ae.value!==te.value),se=C(()=>{const o=X(h.value);return o?`${o} update preview`:"Routine update preview"}),oe=C(()=>{var o;return Be({schemas:d.activeSchemas,defaultSchemaName:(o=s.value)==null?void 0:o.name})}),le=new be,U=C(()=>g.connectionId?m.connections.find(o=>o.id===g.connectionId):m.selectedConnection),B=C(()=>({functionId:g.functionId,...Q(U.value)})),{status:ie,refresh:I}=Ie("/api/functions/definition",{method:"POST",body:B,onResponse:o=>{if(typeof o.response._data=="string"){const a=o.response._data||"";i.value=a,_.value=a}},watch:[B]},"$cS7qZacQ7d"),D=(o,a)=>{E.value=o,M.value=a,$.value=!0},L=()=>{if(!P.value){D("No changes to save","The routine definition already matches the loaded version.");return}const o=O(i.value);if(!X(o)){D("Invalid routine definition","Preview requires a valid CREATE OR REPLACE FUNCTION or PROCEDURE statement.");return}return o},ue=()=>{if(r.value)return;const o=L();o&&(h.value=o,S.value=!0)},N=async(o=h.value)=>{var a;if(!(!o||r.value)){r.value=!0;try{const l=await $fetch("/api/functions/update",{method:"POST",body:{...Q(U.value),functionDefinition:o}});_.value=i.value,S.value=!1,Fe.success("Routine saved",{description:`Updated successfully in ${(l==null?void 0:l.queryTime)??0}ms`})}catch(l){S.value=!1,D("Save failed",((a=l==null?void 0:l.data)==null?void 0:a.message)||(l==null?void 0:l.message)||"Failed to save routine.")}finally{r.value=!1}}},V=async()=>{if(r.value)return;const o=L();o&&(h.value=o,await N(o))},re=()=>{i.value=_.value},x=c(!1),T=async()=>{P.value?x.value=!0:await I()},de=async()=>{x.value=!1,await I()},fe=[Le(o=>{i.value=o,V()}),qe(o=>Ee(o,{language:"postgresql",keywordCase:"upper"})),ee.of([{key:"Mod-i",run:he},{key:"Tab",run:we},{key:"Mod-r",mac:"Cmd-r",run:()=>(T(),!0),preventDefault:!0},{key:"F5",run:()=>(T(),!0),preventDefault:!0}]),le.of($e({dialect:xe.PostgreSQLHighlightDialect,upperCaseKeywords:!0,keywordCompletion:ke,schema:oe.value.schema})),...ye(),Se];return(o,a)=>{const l=b,me=Oe,ce=Pe;return v(),q(Te,null,[n(Me,{open:e($),"onUpdate:open":a[0]||(a[0]=p=>A($)?$.value=p:null),title:e(E),message:e(M)},null,8,["open","title","message"]),n(e(W),{open:e(S),"onUpdate:open":a[2]||(a[2]=p=>S.value=p)},{default:t(()=>[n(e(K),{size:"preview"},{default:t(()=>[n(e(H),null,{default:t(()=>[n(e(Y),{class:"flex items-center text-base font-medium"},{default:t(()=>[n(l,{name:"lucide:file-search",class:"size-4 mr-2"}),u(" "+Re(e(se)),1)]),_:1}),n(e(Z),null,{default:t(()=>a[5]||(a[5]=[u(" Review the exact SQL that will be submitted. The routine is not updated until you confirm this save. ")])),_:1})]),_:1}),n(me,{code:e(h),"show-copy-button":"","max-height":"24rem"},null,8,["code"]),n(e(j),null,{default:t(()=>[n(e(G),{disabled:e(r)},{default:t(()=>a[6]||(a[6]=[u("Cancel")])),_:1},8,["disabled"]),n(e(J),{class:"gap-2",onClick:a[1]||(a[1]=ze(p=>N(),["prevent"]))},{default:t(()=>[e(r)?(v(),y(l,{key:0,name:"hugeicons:loading-03",class:"size-4 animate-spin"})):(v(),y(l,{key:1,name:"lucide:save",class:"size-4"})),a[7]||(a[7]=u(" Save to database "))]),_:1})]),_:1})]),_:1})]),_:1},8,["open"]),n(e(W),{open:e(x),"onUpdate:open":a[3]||(a[3]=p=>x.value=p)},{default:t(()=>[n(e(K),null,{default:t(()=>[n(e(H),null,{default:t(()=>[n(e(Y),{class:"flex items-center text-base font-medium text-destructive"},{default:t(()=>[n(l,{name:"lucide:alert-triangle",class:"size-5 mr-2"}),a[8]||(a[8]=u(" Discard Unsaved Changes? "))]),_:1}),n(e(Z),null,{default:t(()=>a[9]||(a[9]=[u(" You have unsaved changes in your editor. Reloading will fetch the latest definition from the database and discard all your local modifications. This action cannot be undone. ")])),_:1})]),_:1}),n(e(j),null,{default:t(()=>[n(e(G),null,{default:t(()=>a[10]||(a[10]=[u("Cancel")])),_:1}),n(e(J),{variant:"destructive",onClick:de},{default:t(()=>a[11]||(a[11]=[u(" Reload and Discard ")])),_:1})]),_:1})]),_:1})]),_:1},8,["open"]),f("div",Ke,[f("div",He,[n(Ae,{"has-changes":e(P),"is-saving":e(r),onOnPreview:ue,onOnSave:V,onOnDiscard:re,onOnReload:T},null,8,["has-changes","is-saving"]),f("div",Ye,[n(ce,{visible:e(ie)==="pending"||e(r)},null,8,["visible"]),n(De,{modelValue:e(i),"onUpdate:modelValue":a[4]||(a[4]=p=>A(i)?i.value=p:null),extensions:fe,disabled:!1},null,8,["modelValue"])])])])],64)}}});export{sn as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{_ as X,an as j,ao as F,ap as Y,aq as H,l as i,c as V,ar as q,as as U,ai as $,at as z,aj as P,ah as K,au as Q,av as W,aw as Z}from"./
|
|
1
|
+
import{_ as X,an as j,ao as F,ap as Y,aq as H,l as i,c as V,ar as q,as as U,ai as $,at as z,aj as P,ah as K,au as Q,av as W,aw as Z}from"./DYqShb5v.js";import{i as x,G as B}from"./qsFoMdT2.js";import{b as L,m as A,l as I}from"./CQb_mUBo.js";import"./DgGwe7jd.js";var ee=4;function ne(e){return L(e,ee)}function p(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:te(e),edges:se(e)};return x(e.graph())||(t.value=ne(e.graph())),t}function te(e){return A(e.nodes(),function(t){var n=e.node(t),o=e.parent(t),c={v:t};return x(n)||(c.value=n),x(o)||(c.parent=o),c})}function se(e){return A(e.edges(),function(t){var n=e.edge(t),o={v:t.v,w:t.w};return x(t.name)||(o.name=t.name),x(n)||(o.value=n),o})}var f=new Map,b=new Map,G=new Map,ie=X(()=>{b.clear(),G.clear(),f.clear()},"clear"),O=X((e,t)=>{const n=b.get(t)||[];return i.trace("In isDescendant",t," ",e," = ",n.includes(e)),n.includes(e)},"isDescendant"),re=X((e,t)=>{const n=b.get(t)||[];return i.info("Descendants of ",t," is ",n),i.info("Edge is ",e),e.v===t||e.w===t?!1:n?n.includes(e.v)||O(e.v,t)||O(e.w,t)||n.includes(e.w):(i.debug("Tilt, ",t,",not in descendants"),!1)},"edgeInCluster"),J=X((e,t,n,o)=>{i.warn("Copying children of ",e,"root",o,"data",t.node(e),o);const c=t.children(e)||[];e!==o&&c.push(e),i.warn("Copying (nodes) clusterId",e,"nodes",c),c.forEach(a=>{if(t.children(a).length>0)J(a,t,n,o);else{const r=t.node(a);i.info("cp ",a," to ",o," with parent ",e),n.setNode(a,r),o!==t.parent(a)&&(i.warn("Setting parent",a,t.parent(a)),n.setParent(a,t.parent(a))),e!==o&&a!==e?(i.debug("Setting parent",a,e),n.setParent(a,e)):(i.info("In copy ",e,"root",o,"data",t.node(e),o),i.debug("Not Setting parent for node=",a,"cluster!==rootId",e!==o,"node!==clusterId",a!==e));const u=t.edges(a);i.debug("Copying Edges",u),u.forEach(l=>{i.info("Edge",l);const h=t.edge(l.v,l.w,l.name);i.info("Edge data",h,o);try{re(l,o)?(i.info("Copying as ",l.v,l.w,h,l.name),n.setEdge(l.v,l.w,h,l.name),i.info("newGraph edges ",n.edges(),n.edge(n.edges()[0]))):i.info("Skipping copy of edge ",l.v,"-->",l.w," rootId: ",o," clusterId:",e)}catch(C){i.error(C)}})}i.debug("Removing node",a),t.removeNode(a)})},"copy"),R=X((e,t)=>{const n=t.children(e);let o=[...n];for(const c of n)G.set(c,e),o=[...o,...R(c,t)];return o},"extractDescendants"),oe=X((e,t,n)=>{const o=e.edges().filter(l=>l.v===t||l.w===t),c=e.edges().filter(l=>l.v===n||l.w===n),a=o.map(l=>({v:l.v===t?n:l.v,w:l.w===t?t:l.w})),r=c.map(l=>({v:l.v,w:l.w}));return a.filter(l=>r.some(h=>l.v===h.v&&l.w===h.w))},"findCommonEdges"),D=X((e,t,n)=>{const o=t.children(e);if(i.trace("Searching children of id ",e,o),o.length<1)return e;let c;for(const a of o){const r=D(a,t,n),u=oe(t,n,r);if(r)if(u.length>0)c=r;else return r}return c},"findNonClusterChild"),k=X(e=>!f.has(e)||!f.get(e).externalConnections?e:f.has(e)?f.get(e).id:e,"getAnchorId"),ae=X((e,t)=>{if(!e||t>10){i.debug("Opting out, no graph ");return}else i.debug("Opting in, graph ");e.nodes().forEach(function(n){e.children(n).length>0&&(i.warn("Cluster identified",n," Replacement id in edges: ",D(n,e,n)),b.set(n,R(n,e)),f.set(n,{id:D(n,e,n),clusterData:e.node(n)}))}),e.nodes().forEach(function(n){const o=e.children(n),c=e.edges();o.length>0?(i.debug("Cluster identified",n,b),c.forEach(a=>{const r=O(a.v,n),u=O(a.w,n);r^u&&(i.warn("Edge: ",a," leaves cluster ",n),i.warn("Descendants of XXX ",n,": ",b.get(n)),f.get(n).externalConnections=!0)})):i.debug("Not a cluster ",n,b)});for(let n of f.keys()){const o=f.get(n).id,c=e.parent(o);c!==n&&f.has(c)&&!f.get(c).externalConnections&&(f.get(n).id=c)}e.edges().forEach(function(n){const o=e.edge(n);i.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(n)),i.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(e.edge(n)));let c=n.v,a=n.w;if(i.warn("Fix XXX",f,"ids:",n.v,n.w,"Translating: ",f.get(n.v)," --- ",f.get(n.w)),f.get(n.v)||f.get(n.w)){if(i.warn("Fixing and trying - removing XXX",n.v,n.w,n.name),c=k(n.v),a=k(n.w),e.removeEdge(n.v,n.w,n.name),c!==n.v){const r=e.parent(c);f.get(r).externalConnections=!0,o.fromCluster=n.v}if(a!==n.w){const r=e.parent(a);f.get(r).externalConnections=!0,o.toCluster=n.w}i.warn("Fix Replacing with XXX",c,a,n.name),e.setEdge(c,a,o,n.name)}}),i.warn("Adjusted Graph",p(e)),T(e,0),i.trace(f)},"adjustClustersAndEdges"),T=X((e,t)=>{var c,a;if(i.warn("extractor - ",t,p(e),e.children("D")),t>10){i.error("Bailing out");return}let n=e.nodes(),o=!1;for(const r of n){const u=e.children(r);o=o||u.length>0}if(!o){i.debug("Done, no node has children",e.nodes());return}i.debug("Nodes = ",n,t);for(const r of n)if(i.debug("Extracting node",r,f,f.has(r)&&!f.get(r).externalConnections,!e.parent(r),e.node(r),e.children("D")," Depth ",t),!f.has(r))i.debug("Not a cluster",r,t);else if(!f.get(r).externalConnections&&e.children(r)&&e.children(r).length>0){i.warn("Cluster without external connections, without a parent and with children",r,t);let l=e.graph().rankdir==="TB"?"LR":"TB";(a=(c=f.get(r))==null?void 0:c.clusterData)!=null&&a.dir&&(l=f.get(r).clusterData.dir,i.warn("Fixing dir",f.get(r).clusterData.dir,l));const h=new B({multigraph:!0,compound:!0}).setGraph({rankdir:l,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});i.warn("Old graph before copy",p(e)),J(r,e,h,r),e.setNode(r,{clusterNode:!0,id:r,clusterData:f.get(r).clusterData,label:f.get(r).label,graph:h}),i.warn("New graph after copy node: (",r,")",p(h)),i.debug("Old graph after copy",p(e))}else i.warn("Cluster ** ",r," **not meeting the criteria !externalConnections:",!f.get(r).externalConnections," no parent: ",!e.parent(r)," children ",e.children(r)&&e.children(r).length>0,e.children("D"),t),i.debug(f);n=e.nodes(),i.warn("New list of nodes",n);for(const r of n){const u=e.node(r);i.warn(" Now next level",r,u),u!=null&&u.clusterNode&&T(u.graph,t+1)}},"extractor"),M=X((e,t)=>{if(t.length===0)return[];let n=Object.assign([],t);return t.forEach(o=>{const c=e.children(o),a=M(e,c);n=[...n,...a]}),n},"sorter"),ce=X(e=>M(e,e.children()),"sortNodesByHierarchy"),_=X(async(e,t,n,o,c,a)=>{i.warn("Graph in recursive render:XAX",p(t),c);const r=t.graph().rankdir;i.trace("Dir in recursive render - dir:",r);const u=e.insert("g").attr("class","root");t.nodes()?i.info("Recursive render XXX",t.nodes()):i.info("No nodes found for",t),t.edges().length>0&&i.info("Recursive edges",t.edge(t.edges()[0]));const l=u.insert("g").attr("class","clusters"),h=u.insert("g").attr("class","edgePaths"),C=u.insert("g").attr("class","edgeLabels"),g=u.insert("g").attr("class","nodes");await Promise.all(t.nodes().map(async function(d){const s=t.node(d);if(c!==void 0){const w=JSON.parse(JSON.stringify(c.clusterData));i.trace(`Setting data for parent cluster XXX
|
|
2
2
|
Node.id = `,d,`
|
|
3
3
|
data=`,w.height,`
|
|
4
4
|
Parent cluster`,c.height),t.setNode(c.id,w),t.parent(d)||(i.trace("Setting parent",d,c.id),t.setParent(d,c.id,w))}if(i.info("(Insert) Node XXX"+d+": "+JSON.stringify(t.node(d))),s!=null&&s.clusterNode){i.info("Cluster identified XBX",d,s.width,t.node(d));const{ranksep:w,nodesep:m}=t.graph();s.graph.setGraph({...s.graph.graph(),ranksep:w+25,nodesep:m});const N=await _(g,s.graph,n,o,t.node(d),a),S=N.elem;q(s,S),s.diff=N.diff||0,i.info("New compound node after recursive render XAX",d,"width",s.width,"height",s.height),U(S,s)}else t.children(d).length>0?(i.trace("Cluster - the non recursive path XBX",d,s.id,s,s.width,"Graph:",t),i.trace(D(s.id,t)),f.set(s.id,{id:D(s.id,t),node:s})):(i.trace("Node - the non recursive path XAX",d,g,t.node(d),r),await $(g,t.node(d),{config:a,dir:r}))})),await X(async()=>{const d=t.edges().map(async function(s){const w=t.edge(s.v,s.w,s.name);i.info("Edge "+s.v+" -> "+s.w+": "+JSON.stringify(s)),i.info("Edge "+s.v+" -> "+s.w+": ",s," ",JSON.stringify(t.edge(s))),i.info("Fix",f,"ids:",s.v,s.w,"Translating: ",f.get(s.v),f.get(s.w)),await Z(C,w)});await Promise.all(d)},"processEdges")(),i.info("Graph before layout:",JSON.stringify(p(t))),i.info("############################################# XXX"),i.info("### Layout ### XXX"),i.info("############################################# XXX"),I(t),i.info("Graph after layout:",JSON.stringify(p(t)));let E=0,{subGraphTitleTotalMargin:y}=z(a);return await Promise.all(ce(t).map(async function(d){var w;const s=t.node(d);if(i.info("Position XBX => "+d+": ("+s.x,","+s.y,") width: ",s.width," height: ",s.height),s!=null&&s.clusterNode)s.y+=y,i.info("A tainted cluster node XBX1",d,s.id,s.width,s.height,s.x,s.y,t.parent(d)),f.get(s.id).node=s,P(s);else if(t.children(d).length>0){i.info("A pure cluster node XBX1",d,s.id,s.x,s.y,s.width,s.height,t.parent(d)),s.height+=y,t.node(s.parentId);const m=(s==null?void 0:s.padding)/2||0,N=((w=s==null?void 0:s.labelBBox)==null?void 0:w.height)||0,S=N-m||0;i.debug("OffsetY",S,"labelHeight",N,"halfPadding",m),await K(l,s),f.get(s.id).node=s}else{const m=t.node(s.parentId);s.y+=y/2,i.info("A regular node XBX1 - using the padding",s.id,"parent",s.parentId,s.width,s.height,s.x,s.y,"offsetY",s.offsetY,"parent",m,m==null?void 0:m.offsetY,s),P(s)}})),t.edges().forEach(function(d){const s=t.edge(d);i.info("Edge "+d.v+" -> "+d.w+": "+JSON.stringify(s),s),s.points.forEach(S=>S.y+=y/2);const w=t.node(d.v);var m=t.node(d.w);const N=Q(h,s,f,n,w,m,o);W(s,N)}),t.nodes().forEach(function(d){const s=t.node(d);i.info(d,s.type,s.diff),s.isGroup&&(E=s.diff)}),i.warn("Returning from recursive render XAX",u,E),{elem:u,diff:E}},"recursiveRender"),ge=X(async(e,t)=>{var a,r,u,l,h,C;const n=new B({multigraph:!0,compound:!0}).setGraph({rankdir:e.direction,nodesep:((a=e.config)==null?void 0:a.nodeSpacing)||((u=(r=e.config)==null?void 0:r.flowchart)==null?void 0:u.nodeSpacing)||e.nodeSpacing,ranksep:((l=e.config)==null?void 0:l.rankSpacing)||((C=(h=e.config)==null?void 0:h.flowchart)==null?void 0:C.rankSpacing)||e.rankSpacing,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}}),o=t.select("g");j(o,e.markers,e.type,e.diagramId),F(),Y(),H(),ie(),e.nodes.forEach(g=>{n.setNode(g.id,{...g}),g.parentId&&n.setParent(g.id,g.parentId)}),i.debug("Edges:",e.edges),e.edges.forEach(g=>{if(g.start===g.end){const v=g.start,E=v+"---"+v+"---1",y=v+"---"+v+"---2",d=n.node(v);n.setNode(E,{domId:E,id:E,parentId:d.parentId,labelStyle:"",label:"",padding:0,shape:"labelRect",style:"",width:10,height:10}),n.setParent(E,d.parentId),n.setNode(y,{domId:y,id:y,parentId:d.parentId,labelStyle:"",padding:0,shape:"labelRect",label:"",style:"",width:10,height:10}),n.setParent(y,d.parentId);const s=structuredClone(g),w=structuredClone(g),m=structuredClone(g);s.label="",s.arrowTypeEnd="none",s.id=v+"-cyclic-special-1",w.arrowTypeStart="none",w.arrowTypeEnd="none",w.id=v+"-cyclic-special-mid",m.label="",d.isGroup&&(s.fromCluster=v,m.toCluster=v),m.id=v+"-cyclic-special-2",m.arrowTypeStart="none",n.setEdge(v,E,s,v+"-cyclic-special-0"),n.setEdge(E,y,w,v+"-cyclic-special-1"),n.setEdge(y,v,m,v+"-cyc<lic-special-2")}else n.setEdge(g.start,g.end,{...g},g.id)}),i.warn("Graph at first:",JSON.stringify(p(n))),ae(n),i.warn("Graph after XAX:",JSON.stringify(p(n)));const c=V();await _(o,n,e.type,e.diagramId,void 0,c)},"render");export{ge as render};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{G as Ye,d as X,r as B,an as re,c as I,e as g,m as e,l as O,f as w,a4 as ce,w as E,z as N,t as i,g as t,o as f,A as me,n as oe,cg as He,bh as Ve,i as le,a8 as Ie,cz as Je,cj as Ce,ck as Te,cp as Le,E as ne,K as be,O as $e,k as J,q as Re,I as te,aF as se,bf as xe,bj as Ae,bx as Pe,by as Be,F as H,s as V,bz as De,ae as je,R as ue,T as Ze,N as et}from"./DgGwe7jd.js";import{g as Ke}from"./CP-7VdtS.js";import{t as G,i as tt,a as st,b as nt,m as ot,k as at,g as Ue,h as Ge,c as it,d as Me,e as rt,f as lt,j as dt,n as ut,l as ct,S as mt,o as pt,p as ft,_ as qe,q as gt,r as Oe,s as vt,C as bt,u as _t,v as ht,E as we,w as yt,x as xt,y as $t,z as St,A as wt,B as kt}from"./DeVs4gEL.js";import{a as It}from"./D9Ycznwo.js";import{b as pe,a as fe,_ as Se,D as ge}from"./Bok35x_B.js";import{b as _e,a as Qe}from"./BVmBXPoG.js";import{u as Ct}from"./DDsaDrGo.js";import{_ as Tt}from"./DViCRsmA.js";import{_ as Ee}from"./Lh0RfwhV.js";import{_ as Lt,u as Rt}from"./G40WRC_L.js";import"./__PEYcIB.js";import"./uDsvlLN0.js";import"./6wO6CbCo.js";import"./DyDU0wFf.js";import"./B5rxJs06.js";import"./DP6Az3fC.js";var Fe={value:"eq","<":"lt","<=":"lte",">":"gt",">=":"gte","=":"eq","!=":"ne","<>":"ne"},At=function(){function n(r){var u=this._condVal=Me(r)?new RegExp(r):rt(r)?r:null;if(u==null){var s="";G(s)}}return n.prototype.evaluate=function(r){var u=typeof r;return Me(u)?this._condVal.test(r):lt(u)?this._condVal.test(r+""):!1},n}(),Pt=function(){function n(){}return n.prototype.evaluate=function(){return this.value},n}(),Bt=function(){function n(){}return n.prototype.evaluate=function(){for(var r=this.children,u=0;u<r.length;u++)if(!r[u].evaluate())return!1;return!0},n}(),Dt=function(){function n(){}return n.prototype.evaluate=function(){for(var r=this.children,u=0;u<r.length;u++)if(r[u].evaluate())return!0;return!1},n}(),Et=function(){function n(){}return n.prototype.evaluate=function(){return!this.child.evaluate()},n}(),Nt=function(){function n(){}return n.prototype.evaluate=function(){for(var r=!!this.valueParser,u=this.getValue,s=u(this.valueGetterParam),o=r?this.valueParser(s):null,v=0;v<this.subCondList.length;v++)if(!this.subCondList[v].evaluate(r?o:s))return!1;return!0},n}();function Ne(n,r){if(n===!0||n===!1){var u=new Pt;return u.value=n,u}var s="";return Xe(n)||G(s),n.and?ze("and",n,r):n.or?ze("or",n,r):n.not?Mt(n,r):Ot(n,r)}function ze(n,r,u){var s=r[n],o="";nt(s)||G(o),s.length||G(o);var v=n==="and"?new Bt:new Dt;return v.children=ot(s,function(c){return Ne(c,u)}),v.children.length||G(o),v}function Mt(n,r){var u=n.not,s="";Xe(u)||G(s);var o=new Et;return o.child=Ne(u,r),o.child||G(s),o}function Ot(n,r){for(var u="",s=r.prepareGetValue(n),o=[],v=at(n),c=n.parser,x=c?Ue(c):null,h=0;h<v.length;h++){var m=v[h];if(!(m==="parser"||r.valueGetterAttrMap.get(m))){var _=Ge(Fe,m)?Fe[m]:m,$=n[m],b=x?x($):$,p=it(_,b)||_==="reg"&&new At(b);p||G(u),o.push(p)}}o.length||G(u);var S=new Nt;return S.valueGetterParam=s,S.valueParser=x,S.getValue=r.getValue,S.subCondList=o,S}function Xe(n){return tt(n)&&!st(n)}var Ft=function(){function n(r,u){this._cond=Ne(r,u)}return n.prototype.evaluate=function(){return this._cond.evaluate()},n}();function zt(n,r){return new Ft(n,r)}var Ht={type:"echarts:filter",transform:function(n){for(var r=n.upstream,u,s=zt(n.config,{valueGetterAttrMap:dt({dimension:!0}),prepareGetValue:function(x){var h="",m=x.dimension;Ge(x,"dimension")||G(h);var _=r.getDimensionInfo(m);return _||G(h),{dimIdx:_.index}},getValue:function(x){return r.retrieveValueFromItem(u,x.dimIdx)}}),o=[],v=0,c=r.count();v<c;v++)u=r.getRawDataItem(v),s.evaluate()&&o.push(u);return{data:o}}},Vt={type:"echarts:sort",transform:function(n){var r=n.upstream,u=n.config,s="",o=ut(u);o.length||G(s);var v=[];ct(o,function(_){var $=_.dimension,b=_.order,p=_.parser,S=_.incomparable;if($==null&&G(s),b!=="asc"&&b!=="desc"&&G(s),S&&S!=="min"&&S!=="max"){var l="";G(l)}if(b!=="asc"&&b!=="desc"){var a="";G(a)}var d=r.getDimensionInfo($);d||G(s);var T=p?Ue(p):null;p&&!T&&G(s),v.push({dimIdx:d.index,parser:T,comparator:new mt(b,S)})});var c=r.sourceFormat;c!==pt&&c!==ft&&G(s);for(var x=[],h=0,m=r.count();h<m;h++)x.push(r.getRawDataItem(h));return x.sort(function(_,$){for(var b=0;b<v.length;b++){var p=v[b],S=r.retrieveValueFromItem(_,p.dimIdx),l=r.retrieveValueFromItem($,p.dimIdx);p.parser&&(S=p.parser(S),l=p.parser(l));var a=p.comparator.evaluate(S,l);if(a!==0)return a}return 0}),{data:x}}};function jt(n){n.registerTransform(Ht),n.registerTransform(Vt)}var Kt=function(n){qe(r,n);function r(){var u=n!==null&&n.apply(this,arguments)||this;return u.type="dataset",u}return r.prototype.init=function(u,s,o){n.prototype.init.call(this,u,s,o),this._sourceManager=new gt(this),Oe(this)},r.prototype.mergeOption=function(u,s){n.prototype.mergeOption.call(this,u,s),Oe(this)},r.prototype.optionUpdated=function(){this._sourceManager.dirty()},r.prototype.getSourceManager=function(){return this._sourceManager},r.type="dataset",r.defaultOption={seriesLayoutBy:vt},r}(bt),Ut=function(n){qe(r,n);function r(){var u=n!==null&&n.apply(this,arguments)||this;return u.type="dataset",u}return r.type="dataset",r}(_t);function Gt(n){n.registerComponentModel(Kt),n.registerComponentView(Ut)}const de=n=>It(n??0),ie=n=>n==null?"0.00/s":`${n.toFixed(2)}/s`,ke=n=>n==null?"0%":`${n.toFixed(2)}%`,he=n=>{if(!n)return"-";const r=new Date(n);return Number.isNaN(r.getTime())?n:r.toLocaleString()},We=n=>{if(n==null)return"-";if(n<60)return`${n}s`;const r=Math.floor(n/60),u=n%60;if(r<60)return`${r}m ${u}s`;const s=Math.floor(r/60),o=r%60;return`${s}h ${o}m`},qt=n=>n==null||n<=0?"0 B":Ye(n).replace(" bytes"," B"),Qt=n=>{if(!n)return"-";const r=n.replace(/\s+/g," ").trim();return r?r.length>320?`${r.slice(0,320)}...`:r:"-"},Xt=n=>(n||"").toLowerCase().includes("idle in transaction"),Wt={class:"space-y-4"},Yt={class:"flex items-center justify-between"},Jt={key:0,class:"border border-red-300 bg-red-50 text-red-700 rounded-lg p-3 text-sm"},Zt={class:"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-4 gap-2.5"},es={class:"h-full border rounded-lg p-2.5 space-y-2"},ts={class:"flex items-center gap-1"},ss={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"},as={class:"tabular-nums text-foreground"},is={class:"text-muted-foreground"},rs={class:"tabular-nums text-foreground"},ls={class:"text-muted-foreground"},ds={class:"tabular-nums text-foreground"},us={class:"text-muted-foreground"},cs={class:"tabular-nums text-foreground"},ms={class:"h-full border rounded-lg p-2.5 space-y-2"},ps={class:"flex items-center gap-1"},fs={class:"text-sm font-semibold leading-none tabular-nums"},gs={class:"grid grid-cols-2 gap-x-3 gap-y-1 text-[11px]"},vs={class:"text-muted-foreground"},bs={class:"tabular-nums text-foreground"},_s={class:"text-muted-foreground"},hs={class:"tabular-nums text-foreground"},ys={class:"text-muted-foreground"},xs={class:"tabular-nums text-foreground"},$s={class:"text-muted-foreground"},Ss={class:"tabular-nums text-foreground"},ws={class:"h-full border rounded-lg p-2.5 space-y-2"},ks={class:"flex items-center gap-1"},Is={class:"text-sm font-semibold leading-none tabular-nums"},Cs={class:"grid grid-cols-2 gap-x-3 gap-y-1 text-[11px]"},Ts={class:"text-muted-foreground"},Ls={class:"tabular-nums text-foreground"},Rs={class:"text-muted-foreground"},As={class:"tabular-nums text-foreground"},Ps={class:"text-muted-foreground"},Bs={class:"tabular-nums text-foreground"},Ds={class:"text-muted-foreground"},Es={class:"tabular-nums text-foreground"},Ns={class:"h-full border rounded-lg p-2.5 space-y-2"},Ms={class:"flex items-center gap-1"},Os={class:"text-sm font-semibold leading-none tabular-nums"},Fs={class:"grid grid-cols-2 gap-x-3 gap-y-1 text-[11px]"},zs={class:"text-muted-foreground"},Hs={class:"tabular-nums text-foreground"},Vs={class:"text-muted-foreground"},js={class:"tabular-nums text-foreground"},Ks={class:"text-muted-foreground"},Us={class:"tabular-nums text-foreground"},Gs={class:"text-muted-foreground"},qs={class:"tabular-nums text-foreground"},Qs={class:"grid grid-cols-1 xl:grid-cols-2 gap-3"},Xs={class:"border rounded-lg p-2.5"},Ws={class:"insights-chart-container"},Ys={class:"border rounded-lg p-2.5"},Js={class:"insights-chart-container"},Zs={class:"border rounded-lg p-2.5"},en={class:"insights-chart-container"},tn=X({__name:"InstanceInsightsActivitySection",props:{dashboard:{},isLoading:{type:Boolean},isActionLoading:{type:Boolean},onRefresh:{type:Function}},setup(n){ht([yt,xt,$t,Gt,jt,St,wt,kt]);const r=n,u=B({}),s=B({}),o=B({}),v=(l,a)=>{a!=null&&a.selected&&(l.value={...a.selected})},c=l=>v(u,l),x=l=>v(s,l),h=l=>v(o,l),m=B([]);re(()=>r.dashboard,l=>{if(!(l!=null&&l.capturedAt))return;const a=new Date(l.capturedAt).toLocaleTimeString(),d={capturedAt:l.capturedAt,label:a,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},T=m.value.findIndex(j=>j.capturedAt===d.capturedAt);if(T>=0){m.value[T]=d;return}m.value.push(d),m.value.length>80&&(m.value=m.value.slice(-80))},{immediate:!0,deep:!0});const _=I(()=>m.value.map((l,a)=>({...l,idx:a}))),$=l=>Object.keys(l).length?l:void 0,b=I(()=>({tooltip:{trigger:"axis"},legend:{top:0,selected:$(u.value)},dataset:[{id:"sessions_raw",source:_.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"}}]})),p=I(()=>({tooltip:{trigger:"axis"},legend:{top:0,selected:$(s.value)},dataset:[{id:"transactions_dataset",source:_.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"}}]})),S=I(()=>({tooltip:{trigger:"axis"},legend:{top:0,selected:$(o.value)},dataset:[{id:"block_io_dataset",source:_.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,a)=>{var j,R,F,U,q,k,M,z,y,L,K,A,P,Q,Z,ae,ve,C,D,Y,W;const d=me,T=ce;return f(),g("div",Wt,[e("div",Yt,[a[2]||(a[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)),w(T,{variant:"outline",size:"xs",disabled:l.isLoading||l.isActionLoading,class:"font-normal",onClick:a[0]||(a[0]=ye=>l.onRefresh())},{default:E(()=>[w(d,{name:"hugeicons:redo",class:oe(["size-4",l.isLoading&&"animate-spin"])},null,8,["class"]),a[1]||(a[1]=N(" Refresh Activity "))]),_:1},8,["disabled"])]),(j=l.dashboard)!=null&&j.sessions.exceedsThreshold?(f(),g("div",Jt,[a[3]||(a[3]=N(" Total connections are at ")),e("strong",null,i(t(ke)(l.dashboard.sessions.usagePercent)),1),a[4]||(a[4]=N(" of ")),a[5]||(a[5]=e("strong",null,"max_connections",-1)),a[6]||(a[6]=N(". Investigate connection pool usage. "))])):O("",!0),e("div",Zt,[e("div",es,[e("div",ts,[a[7]||(a[7]=e("p",{class:"text-xs uppercase text-muted-foreground"},"Sessions:",-1)),e("p",ss,i(t(de)((R=l.dashboard)==null?void 0:R.sessions.total)),1)]),e("div",ns,[e("p",os,[a[8]||(a[8]=e("span",null,"Active: ",-1)),e("span",as,i(t(de)((F=l.dashboard)==null?void 0:F.sessions.active)),1)]),e("p",is,[a[9]||(a[9]=e("span",null,"Idle: ",-1)),e("span",rs,i(t(de)((U=l.dashboard)==null?void 0:U.sessions.idle)),1)]),e("p",ls,[a[10]||(a[10]=e("span",null,"Max: ",-1)),e("span",ds,i(t(de)((q=l.dashboard)==null?void 0:q.sessions.maxConnections)),1)]),e("p",us,[a[11]||(a[11]=e("span",null,"Usage: ",-1)),e("span",cs,i(t(ke)((k=l.dashboard)==null?void 0:k.sessions.usagePercent)),1)])])]),e("div",ms,[e("div",ps,[a[12]||(a[12]=e("p",{class:"text-xs uppercase text-muted-foreground"},"TPS:",-1)),e("p",fs,i(t(ie)((M=l.dashboard)==null?void 0:M.transactions.tps)),1)]),e("div",gs,[e("p",vs,[a[13]||(a[13]=e("span",null,"Commits/sec: ",-1)),e("span",bs,i(t(ie)((z=l.dashboard)==null?void 0:z.transactions.commitsPerSec)),1)]),e("p",_s,[a[14]||(a[14]=e("span",null,"Rollbacks/sec: ",-1)),e("span",hs,i(t(ie)((y=l.dashboard)==null?void 0:y.transactions.rollbacksPerSec)),1)]),e("p",ys,[a[15]||(a[15]=e("span",null,"Total Commits: ",-1)),e("span",xs,i(t(de)((L=l.dashboard)==null?void 0:L.transactions.totalCommits)),1)]),e("p",$s,[a[16]||(a[16]=e("span",null,"Total Rollbacks: ",-1)),e("span",Ss,i(t(de)((K=l.dashboard)==null?void 0:K.transactions.totalRollbacks)),1)])])]),e("div",ws,[e("div",ks,[a[17]||(a[17]=e("p",{class:"text-xs uppercase text-muted-foreground"},"Tuples:",-1)),e("p",Is,i(t(ie)((A=l.dashboard)==null?void 0:A.tuples.insertsPerSec)),1)]),e("div",Cs,[e("p",Ts,[a[18]||(a[18]=e("span",null,"Updates: ",-1)),e("span",Ls,i(t(ie)((P=l.dashboard)==null?void 0:P.tuples.updatesPerSec)),1)]),e("p",Rs,[a[19]||(a[19]=e("span",null,"Deletes: ",-1)),e("span",As,i(t(ie)((Q=l.dashboard)==null?void 0:Q.tuples.deletesPerSec)),1)]),e("p",Ps,[a[20]||(a[20]=e("span",null,"Fetched: ",-1)),e("span",Bs,i(t(ie)((Z=l.dashboard)==null?void 0:Z.tuples.fetchedPerSec)),1)]),e("p",Ds,[a[21]||(a[21]=e("span",null,"Returned: ",-1)),e("span",Es,i(t(ie)((ae=l.dashboard)==null?void 0:ae.tuples.returnedPerSec)),1)])])]),e("div",Ns,[e("div",Ms,[a[22]||(a[22]=e("p",{class:"text-xs uppercase text-muted-foreground"},"Block I/O:",-1)),e("p",Os,i(t(ke)((ve=l.dashboard)==null?void 0:ve.blockIO.bufferHitRatio)),1)]),e("div",Fs,[e("p",zs,[a[23]||(a[23]=e("span",null,"Reads/sec: ",-1)),e("span",Hs,i(t(ie)((C=l.dashboard)==null?void 0:C.blockIO.readsPerSec)),1)]),e("p",Vs,[a[24]||(a[24]=e("span",null,"Hits/sec: ",-1)),e("span",js,i(t(ie)((D=l.dashboard)==null?void 0:D.blockIO.hitsPerSec)),1)]),e("p",Ks,[a[25]||(a[25]=e("span",null,"Total Reads: ",-1)),e("span",Us,i(t(de)((Y=l.dashboard)==null?void 0:Y.blockIO.totalReads)),1)]),e("p",Gs,[a[26]||(a[26]=e("span",null,"Total Hits: ",-1)),e("span",qs,i(t(de)((W=l.dashboard)==null?void 0:W.blockIO.totalHits)),1)])])])]),e("div",Qs,[e("div",Xs,[a[27]||(a[27]=e("p",{class:"text-sm font-medium mb-1.5"},"Sessions Timeline",-1)),e("div",Ws,[w(t(we),{option:t(b),autoresize:"",class:"insights-chart",onLegendselectchanged:c},null,8,["option"])])]),e("div",Ys,[a[28]||(a[28]=e("p",{class:"text-sm font-medium mb-1.5"},"Transactions Timeline",-1)),e("div",Js,[w(t(we),{option:t(p),autoresize:"",class:"insights-chart",onLegendselectchanged:x},null,8,["option"])])])]),e("div",Zs,[a[29]||(a[29]=e("p",{class:"text-sm font-medium mb-1.5"},"Block I/O Timeline",-1)),e("div",en,[w(t(we),{option:t(S),autoresize:"",class:"insights-chart",onLegendselectchanged:h},null,8,["option"])])])])}}}),sn=He(tn,[["__scopeId","data-v-ba36a884"]]),nn={class:"space-y-4 h-full flex flex-col overflow-auto"},on={class:"flex items-center justify-between gap-2 flex-wrap"},an={class:"h-full"},rn={class:"flex flex-col sm:flex-row sm:items-center gap-2 mb-2"},ln={class:"relative flex-1"},dn=X({__name:"InstanceInsightsConfigurationSection",props:{configuration:{},search:{},isLoading:{type:Boolean},isActionLoading:{type:Boolean},onRefresh:{type:Function}},emits:["update:search"],setup(n,{emit:r}){const u=n,s=r,o=I({get:()=>u.search,set:_=>s("update:search",_)}),v=I(()=>{var _;return((_=u.configuration)==null?void 0:_.rows)||[]}),c=I(()=>v.value.map(_=>({name:_.name,category:_.category,value:_.value,unit:_.unit||"-",requires_restart:_.pendingRestart?"yes":"no",description:_.description}))),x=I(()=>_e(c.value)),h=I(()=>pe({columns:x.value,rows:c.value,columnKeyBy:"field"})),m=I(()=>fe(c.value));return(_,$)=>{const b=me,p=ce,S=Ve,l=Se;return f(),g("div",nn,[e("div",on,[$[3]||($[3]=e("div",null,[e("h3",{class:"text-sm font-medium"},"Configuration"),e("p",{class:"text-xs text-muted-foreground"},"Searchable pg_settings")],-1)),w(p,{variant:"outline",size:"xs",disabled:_.isLoading||_.isActionLoading,class:"font-normal",onClick:$[0]||($[0]=a=>_.onRefresh())},{default:E(()=>[w(b,{name:"hugeicons:redo",class:oe(["size-4",_.isLoading&&"animate-spin"])},null,8,["class"]),$[2]||($[2]=N(" Refresh Configuration "))]),_:1},8,["disabled"])]),e("div",an,[e("div",rn,[e("div",ln,[w(b,{name:"hugeicons:search-01",class:"size-4 absolute left-2.5 top-1/2 -translate-y-1/2 text-muted-foreground"}),w(S,{type:"text",placeholder:"Search setting name, category, or description...",class:"h-8 w-full pl-8 pr-3",modelValue:t(o),"onUpdate:modelValue":$[1]||($[1]=a=>le(o)?o.value=a:null)},null,8,["modelValue"])])]),w(l,{"column-defs":t(h),"row-data":t(m),"column-types":t(ge),class:"h-full border rounded-md"},null,8,["column-defs","row-data","column-types"])])])}}}),un={class:"space-y-4"},cn={class:"flex items-center justify-between"},mn={key:0,class:"border border-orange-300 bg-orange-50 text-orange-700 rounded-lg p-3 text-sm"},pn={class:"space-y-1.5"},fn={class:"space-y-1.5"},gn={key:1,class:"border rounded-lg p-2.5"},vn={class:"flex items-center justify-between gap-3 flex-wrap"},bn={class:"text-sm font-medium"},_n={class:"flex items-center gap-2"},hn=300,yn=120,xn=44,$n=36,Sn=X({__name:"InstanceInsightsReplicationSection",props:{replication:{},isLoading:{type:Boolean},isActionLoading:{type:Boolean},onRefresh:{type:Function},onToggleSlotStatus:{type:Function},onDropSlot:{type:Function}},setup(n){const r=n,u=I(()=>{var k;return((k=r.replication)==null?void 0:k.replicationStats)||[]}),s=I(()=>{var k;return((k=r.replication)==null?void 0:k.replicationSlots)||[]}),o=B([]),v=k=>{o.value=k},c=I(()=>u.value.map(k=>({pid:k.pid,client_addr:k.clientAddr||"-",application:k.applicationName||"-",state:k.state||"-",sync_state:k.syncState||"-",reply_time:he(k.replyTime),write_lag:k.writeLag||"-",flush_lag:k.flushLag||"-",replay_lag:k.replayLag||"-"}))),x=["pid","client_addr","application","state","sync_state","reply_time","write_lag","flush_lag","replay_lag"],h=I(()=>c.value.length>0?_e(c.value):Qe(x)),m=I(()=>pe({columns:h.value,rows:c.value,columnKeyBy:"field"})),_=I(()=>fe(c.value)),$=I(()=>s.value.map(k=>({slot_name:k.slotName,slot_type:k.slotType,status:k.active?"on":"off",active_pid:k.activePid??"-",restart_lsn:k.restartLsn||"-",retained_wal:qt(k.retainedBytes),temporary:k.temporary?"yes":"no"}))),b=I(()=>_e($.value)),p=I(()=>pe({columns:b.value,rows:$.value,columnKeyBy:"field"})),S=I(()=>fe($.value)),l=k=>k<=0?yn:Math.min(hn,xn+k*$n),a=I(()=>`${l(c.value.length)}px`),d=I(()=>`${l($.value.length)}px`),T=I(()=>{var M;const k=String(((M=o.value[0])==null?void 0:M.slot_name)||"");return k&&s.value.find(z=>z.slotName===k)||null}),j=I(()=>{var k;return(k=T.value)!=null&&k.active?"off":"on"}),R=I(()=>j.value==="off"?"Turn Off Slot":"Turn On Slot"),F=k=>window.confirm(k),U=async()=>{T.value&&F(`Drop replication slot "${T.value.slotName}"? This action cannot be undone.`)&&await r.onDropSlot(T.value.slotName)},q=async()=>{T.value&&F(`Switch replication slot "${T.value.slotName}" to ${j.value.toUpperCase()} status?`)&&await r.onToggleSlotStatus({slotName:T.value.slotName,desiredStatus:j.value,activePid:T.value.activePid,slotType:T.value.slotType})};return(k,M)=>{var K;const z=me,y=ce,L=Se;return f(),g("div",un,[e("div",cn,[M[2]||(M[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)),w(y,{variant:"outline",size:"xs",disabled:k.isLoading||k.isActionLoading,class:"font-normal",onClick:M[0]||(M[0]=A=>k.onRefresh())},{default:E(()=>[w(z,{name:"hugeicons:redo",class:oe(["size-4",k.isLoading&&"animate-spin"])},null,8,["class"]),M[1]||(M[1]=N(" Refresh Replication "))]),_:1},8,["disabled"])]),(K=k.replication)!=null&&K.staleSlotWarning?(f(),g("div",mn,i(k.replication.staleSlotWarning),1)):O("",!0),e("div",pn,[M[3]||(M[3]=e("p",{class:"text-sm"},"Replication Stats",-1)),e("div",{class:"max-h-[300px] min-h-[200px]",style:Ie({height:t(a)})},[w(L,{"column-defs":t(m),"row-data":t(_),"column-types":t(ge),class:"h-full border rounded-md"},null,8,["column-defs","row-data","column-types"])],4)]),e("div",fn,[M[4]||(M[4]=e("h4",{class:"text-sm font-normal"},"Replication Slots",-1)),e("div",{class:"max-h-[300px] min-h-[200px]",style:Ie({height:t(d)})},[w(L,{"column-defs":t(p),"row-data":t(S),"column-types":t(ge),"selected-rows":t(o),class:"h-full border rounded-md",onSelectionChanged:v},null,8,["column-defs","row-data","column-types","selected-rows"])],4)]),t(T)?(f(),g("div",gn,[e("div",vn,[e("p",bn," Selected Slot: "+i(t(T).slotName)+" ("+i(t(T).active?"on":"off")+") · Active PID: "+i(t(T).activePid??"-"),1),e("div",_n,[w(y,{variant:"outline",size:"sm",disabled:k.isActionLoading,onClick:q},{default:E(()=>[N(i(t(R)),1)]),_:1},8,["disabled"]),w(y,{variant:"outline",size:"sm",disabled:k.isActionLoading,onClick:U},{default:E(()=>M[5]||(M[5]=[N(" Drop Slot ")])),_:1},8,["disabled"])])])])):O("",!0)])}}}),wn={class:"space-y-4"},kn={class:"flex items-center justify-between"},In={class:"space-y-1.5"},Cn={class:"h-[360px]"},Tn={key:0,class:"border rounded-lg p-2.5 space-y-2"},Ln={class:"flex items-center justify-between gap-3 flex-wrap"},Rn={class:"text-sm font-medium"},An={class:"flex gap-2"},Pn=["innerHTML"],Bn={class:"grid grid-cols-1 xl:grid-cols-2 gap-3"},Dn={class:"space-y-1.5"},En={class:"h-[300px]"},Nn={class:"space-y-1.5"},Mn={class:"h-[300px]"},On=X({__name:"InstanceInsightsStateSection",props:{state:{},isLoading:{type:Boolean},isActionLoading:{type:Boolean},onRefresh:{type:Function},onCancelQuery:{type:Function},onTerminateConnection:{type:Function}},setup(n){const r=n,{highlightSql:u}=Ct(),s=I(()=>{var y;return((y=r.state)==null?void 0:y.sessions)||[]}),o=I(()=>{var y;return((y=r.state)==null?void 0:y.locks)||[]}),v=I(()=>{var y;return((y=r.state)==null?void 0:y.preparedTransactions)||[]}),c=B([]),x=y=>{c.value=y},h=I(()=>s.value.map(y=>({pid:y.pid,user:y.user,application:y.application||"-",client:y.client||"-",state:y.state||"-",wait_event:y.waitEvent||"-",blocking_pids:y.blockingPids.length?y.blockingPids.join(", "):"-",backend_start:he(y.backendStart),transaction_start:he(y.transactionStart),query_duration:We(y.durationSeconds),sql:Qt(y.sql)}))),m=I(()=>_e(h.value)),_=I(()=>pe({columns:m.value,rows:h.value,columnKeyBy:"field",getCellClass:q})),$=I(()=>fe(h.value)),b=I(()=>o.value.map(y=>({lock_type:y.lockType,target_relation:y.targetRelation||"-",mode:y.mode,granted:y.granted?"yes":"no",pid:y.pid??"-",user:y.user||"-",state:y.state||"-"}))),p=I(()=>_e(b.value)),S=I(()=>pe({columns:p.value,rows:b.value,columnKeyBy:"field"})),l=I(()=>fe(b.value)),a=I(()=>v.value.map(y=>({gid:y.gid,transaction:y.transaction,prepared:he(y.prepared),owner:y.owner,database:y.database}))),d=I(()=>_e(a.value)),T=I(()=>pe({columns:d.value,rows:a.value,columnKeyBy:"field"})),j=I(()=>fe(a.value)),R=I(()=>{var L;const y=Number(((L=c.value[0])==null?void 0:L.pid)||0);return y&&s.value.find(K=>K.pid===y)||null}),F=y=>{if(!y||!y.trim())return"<pre><code>-</code></pre>";const L=y.replace(/\s+/g," ").trim(),K=L.length>900?`${L.slice(0,900)} ...`:L;return u(K)},U=I(()=>{var y;return F(((y=R.value)==null?void 0:y.sql)||null)}),q=(y,L)=>{const K=String(L.state||"");return Xt(K)?"insights-danger-cell":void 0},k=y=>window.confirm(y),M=async()=>{R.value&&k(`Cancel query for PID ${R.value.pid}?`)&&await r.onCancelQuery(R.value.pid)},z=async()=>{R.value&&k(`Terminate connection for PID ${R.value.pid}?`)&&await r.onTerminateConnection(R.value.pid)};return(y,L)=>{const K=me,A=ce,P=Se;return f(),g("div",wn,[e("div",kn,[L[2]||(L[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)),w(A,{variant:"outline",size:"xs",disabled:y.isLoading||y.isActionLoading,class:"font-normal",onClick:L[0]||(L[0]=Q=>y.onRefresh())},{default:E(()=>[w(K,{name:"hugeicons:redo",class:oe(["size-4",y.isLoading&&"animate-spin"])},null,8,["class"]),L[1]||(L[1]=N(" Refresh State "))]),_:1},8,["disabled"])]),e("div",In,[L[3]||(L[3]=e("h4",{class:"text-sm font-normal"},"Active Sessions",-1)),e("div",Cn,[w(P,{"column-defs":t(_),"row-data":t($),"column-types":t(ge),"selected-rows":t(c),class:"h-full border rounded-md",onSelectionChanged:x},null,8,["column-defs","row-data","column-types","selected-rows"])])]),t(R)?(f(),g("div",Tn,[e("div",Ln,[e("p",Rn," Selected PID: "+i(t(R).pid)+" ("+i(t(R).state||"-")+") ",1),e("div",An,[w(A,{variant:"outline",size:"sm",disabled:y.isActionLoading,onClick:M},{default:E(()=>L[4]||(L[4]=[N(" Cancel Query ")])),_:1},8,["disabled"]),w(A,{variant:"outline",size:"sm",disabled:y.isActionLoading,onClick:z},{default:E(()=>L[5]||(L[5]=[N(" Terminate Connection ")])),_:1},8,["disabled"])])]),e("div",null,[L[6]||(L[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(U)},null,8,Pn)])])):O("",!0),e("div",Bn,[e("div",Dn,[L[7]||(L[7]=e("h4",{class:"text-sm font-normal"},"Locks",-1)),e("div",En,[w(P,{"column-defs":t(S),"row-data":t(l),"column-types":t(ge),class:"h-full border rounded-md"},null,8,["column-defs","row-data","column-types"])])]),e("div",Nn,[L[8]||(L[8]=e("h4",{class:"text-sm font-normal"},"Prepared Transactions",-1)),e("div",Mn,[w(P,{"column-defs":t(T),"row-data":t(j),"column-types":t(ge),class:"h-full border rounded-md"},null,8,["column-defs","row-data","column-types"])])])])])}}}),Fn=He(On,[["__scopeId","data-v-07dc1849"]]),zn=5e3;function Hn(n){const r=B("activity"),u=B(!0),s=B(zn),o=B(null),v=B(!1),c=B(!1),x=B(!1),h=B(!1),m=B(!1),_=B(!1),$=B(null),b=B(null),p=B(null),S=B(null),l=B(""),a=Je(l,350),d=I(()=>!!n.value),T=B(!0);Ce(()=>{T.value=!1}),Te(()=>{T.value=!0});const j=()=>{o.value=null,$.value=null,b.value=null,p.value=null,S.value=null},R=async(C,D)=>{var Y;try{return o.value=null,await C()}catch(W){const ye=((Y=W==null?void 0:W.data)==null?void 0:Y.message)||(W==null?void 0:W.message)||(W==null?void 0:W.statusMessage)||D;return o.value=ye,null}},F=async(C={})=>{if(!d.value)return null;C.silent||(x.value=!0);const D=await R(async()=>await $fetch("/api/instance-insights/dashboard",{method:"POST",body:{...ne(n.value)}}),"Failed to fetch activity dashboard");return D&&($.value=D),C.silent||(x.value=!1),D},U=async(C={})=>{if(!d.value)return null;C.silent||(h.value=!0);const D=await R(async()=>await $fetch("/api/instance-insights/state",{method:"POST",body:{...ne(n.value)}}),"Failed to fetch active sessions and locks");return D&&(b.value=D),C.silent||(h.value=!1),D},q=async(C={})=>{if(!d.value)return null;C.silent||(m.value=!0);const D=await R(async()=>await $fetch("/api/instance-insights/configuration",{method:"POST",body:{...ne(n.value),search:a.value||void 0}}),"Failed to fetch PostgreSQL settings");return D&&(p.value=D),C.silent||(m.value=!1),D},k=async(C={})=>{if(!d.value)return null;C.silent||(_.value=!0);const D=await R(async()=>await $fetch("/api/instance-insights/replication",{method:"POST",body:{...ne(n.value)}}),"Failed to fetch replication status");return D&&(S.value=D),C.silent||(_.value=!1),D},M=async(C=r.value,D={})=>{switch(C){case"activity":await F(D);break;case"state":await Promise.all([F({silent:!0}),U(D)]);break;case"configuration":await Promise.all([F({silent:!0}),q(D)]);break;case"replication":await Promise.all([F({silent:!0}),k(D)]);break;default:await F(D);break}},z=async(C={})=>{await Promise.all([F(C),U(C),q(C),k(C)])},y=async(C,D)=>{if(!d.value)return!1;c.value=!0;const Y=await R(C,"Action failed");return c.value=!1,Y?(Y.success?be(D,{description:Y.message}):be(Y.message,{description:"The server did not complete this action."}),Y.success):(be(o.value||"Action failed",{description:"Check database permissions and try again."}),!1)},L=async C=>{await y(async()=>await $fetch("/api/instance-insights/cancel-query",{method:"POST",body:{...ne(n.value),pid:C}}),`Cancelled query for PID ${C}`)&&await U({silent:!0})},K=async C=>{await y(async()=>await $fetch("/api/instance-insights/terminate-connection",{method:"POST",body:{...ne(n.value),pid:C}}),`Terminated connection for PID ${C}`)&&(await U({silent:!0}),await F({silent:!0}))},A=async C=>{await y(async()=>await $fetch("/api/instance-insights/drop-slot",{method:"POST",body:{...ne(n.value),slotName:C}}),`Dropped replication slot "${C}"`)&&await k({silent:!0})},P=async C=>{await y(async()=>await $fetch("/api/instance-insights/toggle-slot-status",{method:"POST",body:{...ne(n.value),slotName:C.slotName,desiredStatus:C.desiredStatus,activePid:C.activePid??null,slotType:C.slotType??null}}),`Turned ${C.desiredStatus} slot "${C.slotName}"`)&&await k({silent:!0})},Q=async()=>{if(!d.value){j();return}v.value=!0,await z(),v.value=!1};re(()=>n.value,async C=>{if(!C){j();return}await Q()},{immediate:!0}),re(()=>a.value,async()=>{r.value!=="configuration"||!d.value||await q({silent:!0})}),re(()=>r.value,async C=>{d.value&&(C==="state"&&!b.value&&await U(),C==="configuration"&&!p.value&&await q(),C==="replication"&&!S.value&&await k())});const{pause:Z,resume:ae,isActive:ve}=Le(async()=>{!d.value||!T.value||await M(r.value,{silent:!0})},s,{immediate:!1});return re(()=>u.value,C=>{C?ae():Z()},{immediate:!0}),{activeSection:r,autoRefresh:u,isAutoRefreshRunning:ve,error:o,isInitialLoading:v,isActionLoading:c,isDashboardLoading:x,isStateLoading:h,isConfigurationLoading:m,isReplicationLoading:_,dashboard:$,state:b,configuration:p,replication:S,configurationSearch:l,refreshSection:M,refreshAll:z,fetchDashboard:F,fetchState:U,fetchConfiguration:q,fetchReplication:k,cancelQuery:L,terminateConnection:K,dropReplicationSlot:A,toggleReplicationSlotStatus:P}}const Vn={class:"flex flex-col h-full p-3 gap-3 overflow-hidden"},jn={class:"flex flex-col lg:flex-row lg:items-start lg:justify-between border rounded-lg p-3 gap-3 bg-background"},Kn={class:"space-y-1"},Un={class:"flex items-center gap-2"},Gn={class:"text-sm text-muted-foreground flex items-center gap-0.5"},qn={class:"flex items-center gap-0.5"},Qn={class:"font-medium text-foreground"},Xn={key:0,class:"flex items-center gap-1.5 mt-0.5"},Wn={class:"flex items-center gap-2 flex-wrap"},Yn={class:"text-xs flex items-center gap-2"},Jn={class:"flex items-center justify-between gap-2"},Zn={class:"text-xs text-muted-foreground"},eo={key:0,class:"border border-red-300 bg-red-50 text-red-700 rounded-lg p-3 text-sm"},to={key:1,class:"border rounded-lg p-6 flex items-center justify-center gap-2 text-muted-foreground"},so={key:2,class:"flex-1 overflow-y-auto border rounded-lg p-3 bg-background"},no=X({__name:"InstanceInsightsPanel",props:{dbConnectionString:{},databaseName:{},dbType:{}},setup(n){const r=[{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"}],u=$e(),s=I(()=>u.selectedConnection),{activeSection:o,autoRefresh:v,error:c,isInitialLoading:x,isActionLoading:h,isDashboardLoading:m,isStateLoading:_,isConfigurationLoading:$,isReplicationLoading:b,dashboard:p,state:S,configuration:l,replication:a,configurationSearch:d,refreshSection:T,refreshAll:j,cancelQuery:R,terminateConnection:F,dropReplicationSlot:U,toggleReplicationSlotStatus:q}=Hn(s);I(()=>r.find(A=>A.id===o.value));const k=I(()=>{var A,P,Q,Z;return o.value==="activity"?(A=p.value)==null?void 0:A.capturedAt:o.value==="state"?(P=S.value)==null?void 0:P.capturedAt:o.value==="configuration"?(Q=l.value)==null?void 0:Q.capturedAt:(Z=a.value)==null?void 0:Z.capturedAt}),M=()=>T("activity"),z=()=>T("state"),y=()=>T("configuration"),L=()=>T("replication"),K=A=>q(A);return(A,P)=>{var W,ye;const Q=me,Z=xe,ae=Ae,ve=ce,C=De,D=Be,Y=Pe;return f(),g("div",Vn,[e("div",jn,[e("div",Kn,[e("div",Un,[w(Q,{name:"hugeicons:database",class:"size-5 text-primary"}),P[4]||(P[4]=e("h2",{class:"text-base font-medium"},"Instance Insights",-1))]),e("div",Gn,[P[5]||(P[5]=N(" connection: ")),e("div",qn,[A.dbType?(f(),J(Re((W=t(Ke)(A.dbType))==null?void 0:W.icon),{key:0,class:"size-4!"})):O("",!0),e("span",Qn,i(A.databaseName),1)])]),(ye=t(p))!=null&&ye.version?(f(),g("div",Xn,[w(Z,{variant:"outline",class:"text-xxs h-5 px-1.5 font-normal"},{default:E(()=>[N(" PostgreSQL "+i(t(p).version),1)]),_:1})])):O("",!0)]),e("div",Wn,[e("div",Yn,[w(ae,{id:"insights-auto-refresh","model-value":t(v),"onUpdate:modelValue":P[0]||(P[0]=ee=>le(v)?v.value=ee:null),class:"cursor-pointer"},null,8,["model-value"]),P[6]||(P[6]=e("label",{for:"insights-auto-refresh",class:"cursor-pointer"}," Auto refresh ",-1))]),w(ve,{variant:"outline",size:"sm",disabled:t(x)||t(h),onClick:P[1]||(P[1]=ee=>t(j)()),class:"font-normal"},{default:E(()=>[w(Q,{name:"hugeicons:redo",class:"size-4"}),P[7]||(P[7]=N(" Refresh All "))]),_:1},8,["disabled"])])]),e("div",Jn,[w(Y,{modelValue:t(o),"onUpdate:modelValue":P[2]||(P[2]=ee=>le(o)?o.value=ee:null),class:"gap-0 flex-1 min-w-0"},{default:E(()=>[w(D,{size:"sm",class:"max-w-full overflow-x-auto justify-start!"},{default:E(()=>[(f(),g(H,null,V(r,ee=>w(C,{size:"xs",key:ee.id,value:ee.id,class:"rounded-sm cursor-pointer min-w-fit shrink-0",onClick:gr=>t(T)(ee.id,{silent:!0})},{default:E(()=>[w(Q,{name:ee.icon,class:"size-3.5!"},null,8,["name"]),N(" "+i(ee.tabLabel),1)]),_:2},1032,["value","onClick"])),64))]),_:1})]),_:1},8,["modelValue"]),e("div",Zn," Last updated: "+i(t(he)(t(k))),1)]),t(c)?(f(),g("div",eo,i(t(c)),1)):O("",!0),t(x)&&!t(p)?(f(),g("div",to,[w(Q,{name:"hugeicons:redo",class:"size-4 animate-spin"}),P[8]||(P[8]=N(" Loading instance insights... "))])):(f(),g("div",so,[te(w(sn,{dashboard:t(p),isLoading:t(m),isActionLoading:t(h),onRefresh:M},null,8,["dashboard","isLoading","isActionLoading"]),[[se,t(o)==="activity"]]),te(w(Fn,{state:t(S),isLoading:t(_),isActionLoading:t(h),onRefresh:z,onCancelQuery:t(R),onTerminateConnection:t(F)},null,8,["state","isLoading","isActionLoading","onCancelQuery","onTerminateConnection"]),[[se,t(o)==="state"]]),te(w(dn,{search:t(d),"onUpdate:search":P[3]||(P[3]=ee=>le(d)?d.value=ee:null),configuration:t(l),isLoading:t($),isActionLoading:t(h),onRefresh:y},null,8,["search","configuration","isLoading","isActionLoading"]),[[se,t(o)==="configuration"]]),te(w(Sn,{replication:t(a),isLoading:t(b),isActionLoading:t(h),onRefresh:L,onDropSlot:t(U),onToggleSlotStatus:K},null,8,["replication","isLoading","isActionLoading","onDropSlot"]),[[se,t(o)==="replication"]])]))])}}}),oo={key:0,class:"space-y-4"},ao={class:"flex items-start justify-between gap-3 flex-wrap"},io={class:"text-sm font-medium"},ro={class:"text-xs text-muted-foreground"},lo={key:1,class:"flex gap-2 flex-wrap"},uo={key:2,class:"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-4 gap-2.5"},co={class:"text-xs uppercase text-muted-foreground"},mo={class:"text-sm font-semibold leading-none tabular-nums"},po={key:0,class:"text-[11px] text-muted-foreground"},fo={key:3,class:"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-2.5"},go={class:"text-xs uppercase text-muted-foreground"},vo={class:"text-sm font-medium leading-tight break-words"},bo={key:0,class:"text-[11px] text-muted-foreground"},_o={key:4,class:"space-y-2"},ho={class:"font-medium"},yo={class:"text-xs mt-1"},xo={class:"text-sm font-normal"},$o={key:0,class:"text-xs text-muted-foreground"},So={key:0,class:"text-xs text-muted-foreground"},wo=360,ko=120,Io=44,Co=36,To=X({__name:"InstanceInsightsSectionRenderer",props:{section:{},search:{}},setup(n){const r=n,u=I(()=>{var m;return((m=r.search)==null?void 0:m.trim().toLowerCase())||""}),s=I(()=>r.section?!r.section.searchable||!u.value?r.section.tables||[]:(r.section.tables||[]).map(m=>({...m,rows:m.rows.filter(_=>Object.values(_).some($=>String($??"").toLowerCase().includes(u.value)))})):[]),o=m=>m<=0?ko:Math.min(wo,Io+m*Co),v=m=>m==="supported"?"border-emerald-300 bg-emerald-50 text-emerald-700":m==="conditional"?"border-amber-300 bg-amber-50 text-amber-700":"border-slate-300 bg-slate-50 text-slate-700",c=m=>m==="success"?"border-emerald-200 bg-emerald-50":m==="warning"?"border-amber-200 bg-amber-50":m==="danger"?"border-red-200 bg-red-50":m==="info"?"border-sky-200 bg-sky-50":"border-border bg-background",x=m=>m==="unsupported"?"border-amber-300 bg-amber-50 text-amber-700":m==="unavailable"?"border-red-300 bg-red-50 text-red-700":"border-emerald-300 bg-emerald-50 text-emerald-700",h=m=>m==="pass"?"border-emerald-200 bg-emerald-50 text-emerald-700":m==="warn"?"border-amber-200 bg-amber-50 text-amber-700":m==="fail"?"border-red-200 bg-red-50 text-red-700":"border-sky-200 bg-sky-50 text-sky-700";return(m,_)=>{var p,S,l,a;const $=xe,b=Se;return m.section?(f(),g("div",oo,[e("div",ao,[e("div",null,[e("h3",io,i(m.section.title),1),e("p",ro,i(m.section.subtitle),1)]),w($,{class:oe(x(m.section.status)),variant:"outline"},{default:E(()=>[N(i(m.section.status),1)]),_:1},8,["class"])]),m.section.statusMessage?(f(),g("div",{key:0,class:oe(["border rounded-lg p-3 text-sm",x(m.section.status)])},i(m.section.statusMessage),3)):O("",!0),(p=m.section.actions)!=null&&p.length?(f(),g("div",lo,[(f(!0),g(H,null,V(m.section.actions,d=>(f(),J($,{key:d.id,class:oe(v(d.state)),variant:"outline"},{default:E(()=>[N(i(d.label)+" · "+i(d.state),1)]),_:2},1032,["class"]))),128))])):O("",!0),(S=m.section.cards)!=null&&S.length?(f(),g("div",uo,[(f(!0),g(H,null,V(m.section.cards,d=>(f(),g("div",{key:d.id,class:oe(["h-full border rounded-lg p-2.5 space-y-1.5",c(d.tone)])},[e("p",co,i(d.label),1),e("p",mo,i(d.value),1),d.helperText?(f(),g("p",po,i(d.helperText),1)):O("",!0)],2))),128))])):O("",!0),(l=m.section.details)!=null&&l.length?(f(),g("div",fo,[(f(!0),g(H,null,V(m.section.details,d=>(f(),g("div",{key:`${d.label}-${d.value}`,class:oe(["border rounded-lg p-2.5 space-y-1",c(d.tone)])},[e("p",go,i(d.label),1),e("p",vo,i(d.value),1),d.helperText?(f(),g("p",bo,i(d.helperText),1)):O("",!0)],2))),128))])):O("",!0),(a=m.section.checks)!=null&&a.length?(f(),g("div",_o,[(f(!0),g(H,null,V(m.section.checks,d=>(f(),g("div",{key:d.id,class:oe(["border rounded-lg p-3 text-sm",h(d.status)])},[e("p",ho,i(d.label),1),e("p",yo,i(d.detail),1)],2))),128))])):O("",!0),(f(!0),g(H,null,V(t(s),d=>(f(),g("div",{key:d.id,class:"space-y-1.5"},[e("div",null,[e("h4",xo,i(d.title),1),d.description?(f(),g("p",$o,i(d.description),1)):O("",!0)]),e("div",{class:"max-h-[360px]",style:Ie({height:`${o(d.rows.length)}px`})},[w(b,{"column-defs":t(pe)({columns:t(Qe)(d.columns.map(T=>T.key)),rows:d.rows,columnKeyBy:"field"}),"row-data":t(fe)(d.rows),"column-types":t(ge),class:"h-full border rounded-md"},null,8,["column-defs","row-data","column-types"])],4),d.emptyMessage&&d.rows.length===0?(f(),g("p",So,i(d.emptyMessage),1)):O("",!0)]))),128))])):O("",!0)}}}),Lo=5e3;function Ro(n){const r=B(null),u=B("overview"),s=B(!0),o=B(""),v=B(null),c=B(!1),x=B(!1),h=I(()=>!!n.value),m=B(!0);Ce(()=>{m.value=!1}),Te(()=>{m.value=!0});const _=()=>{v.value=null,r.value=null,o.value="",u.value="overview"},$=async(d={})=>{var T,j;if(!h.value)return _(),null;d.silent||(x.value=!0);try{v.value=null;const R=await $fetch("/api/instance-insights/view",{method:"POST",body:{...ne(n.value)}});return r.value=R,R.sections.some(F=>F.id===u.value)||(u.value=((T=R.sections[0])==null?void 0:T.id)||"overview"),R}catch(R){const F=((j=R==null?void 0:R.data)==null?void 0:j.message)||(R==null?void 0:R.message)||(R==null?void 0:R.statusMessage)||"Failed to fetch instance insights";return v.value=F,null}finally{d.silent||(x.value=!1)}},b=async(d=u.value,T={})=>$(T),p=async(d={})=>$(d),S=async()=>{if(!h.value){_();return}c.value=!0,await $(),c.value=!1};re(()=>n.value,async d=>{if(!d){_();return}await S()},{immediate:!0});const{pause:l,resume:a}=Le(async()=>{!h.value||!m.value||await $({silent:!0})},Lo,{immediate:!1});return re(()=>s.value,d=>{d?a():l()},{immediate:!0}),{view:r,activeSection:u,autoRefresh:s,configurationSearch:o,error:v,isInitialLoading:c,isViewLoading:x,refreshSection:b,refreshAll:p}}const Ao={class:"flex flex-col h-full p-3 gap-3 overflow-hidden"},Po={class:"flex flex-col lg:flex-row lg:items-start lg:justify-between border rounded-lg p-3 gap-3 bg-background"},Bo={class:"space-y-2"},Do={class:"space-y-1"},Eo={class:"flex items-center gap-2"},No={class:"text-sm text-muted-foreground flex items-center gap-0.5"},Mo={class:"flex items-center gap-0.5"},Oo={class:"font-medium text-foreground"},Fo={key:0,class:"flex items-center gap-1.5 mt-0.5"},zo={key:0,class:"flex gap-2 flex-wrap"},Ho={class:"flex items-center gap-2 flex-wrap"},Vo={class:"text-xs flex items-center gap-2"},jo={class:"flex items-center justify-between gap-2"},Ko={class:"text-xs text-muted-foreground"},Uo={key:0,class:"border rounded-lg p-3 bg-background"},Go={class:"relative"},qo={key:1,class:"border border-red-300 bg-red-50 text-red-700 rounded-lg p-3 text-sm"},Qo={key:2,class:"border rounded-lg p-6 flex items-center justify-center gap-2 text-muted-foreground"},Xo={key:3,class:"flex-1 overflow-y-auto border rounded-lg p-3 bg-background"},Wo=X({__name:"MultiDbInstanceInsightsPanel",props:{dbConnectionString:{},databaseName:{},dbType:{}},setup(n){const r=$e(),{selectedConnection:u}=je(r),{view:s,activeSection:o,autoRefresh:v,configurationSearch:c,error:x,isInitialLoading:h,isViewLoading:m,refreshSection:_,refreshAll:$}=Ro(u),b=I(()=>{var l;return((l=s.value)==null?void 0:l.sections.find(a=>a.id===o.value))||null}),p=I(()=>{var l,a;return((l=b.value)==null?void 0:l.capturedAt)||((a=s.value)==null?void 0:a.capturedAt)||null}),S=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,a)=>{var M,z,y,L,K;const d=me,T=xe,j=Ae,R=ce,F=De,U=Be,q=Pe,k=Ve;return f(),g("div",Ao,[e("div",Po,[e("div",Bo,[e("div",Do,[e("div",Eo,[w(d,{name:"hugeicons:database",class:"size-5 text-primary"}),a[4]||(a[4]=e("h2",{class:"text-base font-medium"},"Instance Insights",-1))]),e("div",No,[a[5]||(a[5]=N(" connection: ")),e("div",Mo,[l.dbType?(f(),J(Re((M=t(Ke)(l.dbType))==null?void 0:M.icon),{key:0,class:"size-4!"})):O("",!0),e("span",Oo,i(l.databaseName),1)])]),(z=t(s))!=null&&z.version?(f(),g("div",Fo,[w(T,{variant:"outline",class:"text-xxs h-5 px-1.5 font-normal"},{default:E(()=>[N(i(l.dbType===t(ue).MARIADB?"MariaDB":l.dbType===t(ue).ORACLE?"Oracle":l.dbType===t(ue).SQLITE3?"SQLite":"MySQL")+" "+i(t(s).version),1)]),_:1})])):O("",!0)]),(L=(y=t(s))==null?void 0:y.actions)!=null&&L.length?(f(),g("div",zo,[(f(!0),g(H,null,V(t(s).actions,A=>(f(),J(T,{key:A.id,class:oe(S(A.state)),variant:"outline"},{default:E(()=>[N(i(A.label)+" · "+i(A.state),1)]),_:2},1032,["class"]))),128))])):O("",!0)]),e("div",Ho,[e("div",Vo,[w(j,{id:"insights-auto-refresh","model-value":t(v),"onUpdate:modelValue":a[0]||(a[0]=A=>le(v)?v.value=A:null),class:"cursor-pointer"},null,8,["model-value"]),a[6]||(a[6]=e("label",{for:"insights-auto-refresh",class:"cursor-pointer"}," Auto refresh ",-1))]),w(R,{variant:"outline",size:"sm",disabled:t(h)||t(m),class:"font-normal",onClick:a[1]||(a[1]=A=>t($)())},{default:E(()=>[w(d,{name:"hugeicons:redo",class:"size-4"}),a[7]||(a[7]=N(" Refresh All "))]),_:1},8,["disabled"])])]),e("div",jo,[w(q,{modelValue:t(o),"onUpdate:modelValue":a[2]||(a[2]=A=>le(o)?o.value=A:null),class:"gap-0 flex-1 min-w-0"},{default:E(()=>[w(U,{size:"sm",class:"max-w-full overflow-x-auto justify-start!"},{default:E(()=>{var A;return[(f(!0),g(H,null,V(((A=t(s))==null?void 0:A.sections)||[],P=>(f(),J(F,{size:"xs",key:P.id,value:P.id,class:"rounded-sm cursor-pointer min-w-fit shrink-0",onClick:Q=>t(_)(P.id,{silent:!0})},{default:E(()=>[N(i(P.title),1)]),_:2},1032,["value","onClick"]))),128))]}),_:1})]),_:1},8,["modelValue"]),e("div",Ko," Last updated: "+i(t(he)(t(p))),1)]),(K=t(b))!=null&&K.searchable?(f(),g("div",Uo,[e("div",Go,[w(d,{name:"hugeicons:search-01",class:"size-4 absolute left-2.5 top-1/2 -translate-y-1/2 text-muted-foreground"}),w(k,{modelValue:t(c),"onUpdate:modelValue":a[3]||(a[3]=A=>le(c)?c.value=A:null),type:"text",placeholder:t(b).searchPlaceholder||"Search...",class:"h-8 w-full pl-8 pr-3"},null,8,["modelValue","placeholder"])])])):O("",!0),t(x)?(f(),g("div",qo,i(t(x)),1)):O("",!0),t(h)&&!t(s)?(f(),g("div",Qo,[w(d,{name:"hugeicons:redo",class:"size-4 animate-spin"}),a[8]||(a[8]=N(" Loading instance insights... "))])):(f(),g("div",Xo,[w(To,{section:t(b),search:t(c)},null,8,["section","search"])]))])}}}),Yo={class:"space-y-4"},Jo={class:"grid gap-3 md:grid-cols-2"},Zo={class:"rounded-lg border p-3"},ea={class:"mt-1 text-lg font-medium"},ta={class:"rounded-lg border p-3"},sa={class:"mt-1 text-lg font-medium"},na={key:0,class:"rounded-lg border p-3"},oa={class:"mt-3 space-y-2 text-xs"},aa={class:"rounded-lg border p-3"},ia={class:"mt-3 space-y-2 text-xs"},ra={class:"flex items-start justify-between gap-3"},la={class:"font-medium"},da={class:"text-muted-foreground"},ua={class:"text-muted-foreground"},ca=X({__name:"RedisClientsSection",props:{clients:{},isActionLoading:{type:Boolean}},emits:["kill-client"],setup(n,{emit:r}){const u=r,s=new Intl.NumberFormat;function o(v){return v==null||v===""?"0":s.format(Number(v))}return(v,c)=>{var h,m,_,$,b;const x=ce;return f(),g("div",Yo,[e("div",Jo,[e("div",Zo,[c[0]||(c[0]=e("p",{class:"text-xs text-muted-foreground"},"Connected clients",-1)),e("p",ea,i(o((h=v.clients)==null?void 0:h.connectedClients)),1)]),e("div",ta,[c[1]||(c[1]=e("p",{class:"text-xs text-muted-foreground"},"Suspicious clients",-1)),e("p",sa,i(o((((m=v.clients)==null?void 0:m.suspiciousClients)||[]).length)),1)])]),(((_=v.clients)==null?void 0:_.suspiciousClients)||[]).length?(f(),g("div",na,[c[2]||(c[2]=e("h3",{class:"text-sm font-medium"},"Suspicious clients",-1)),e("div",oa,[(f(!0),g(H,null,V((($=v.clients)==null?void 0:$.suspiciousClients)||[],p=>(f(),g("div",{key:`${p.clientId}-${p.reason}`,class:"rounded-md bg-muted/20 px-3 py-2"},i(p.reason),1))),128))])])):O("",!0),e("div",aa,[c[4]||(c[4]=e("h3",{class:"text-sm font-medium"},"Client list",-1)),e("div",ia,[(f(!0),g(H,null,V(((b=v.clients)==null?void 0:b.clients)||[],p=>(f(),g("div",{key:p.id,class:"rounded-md bg-muted/20 px-3 py-2"},[e("div",ra,[e("div",null,[e("p",la,i(p.addr),1),e("p",da,i(p.name)+" · db "+i(p.db)+" · "+i(p.cmd),1),e("p",ua," age "+i(o(p.ageSeconds))+"s · idle "+i(o(p.idleSeconds))+"s ",1)]),w(x,{size:"sm",variant:"outline",disabled:v.isActionLoading,onClick:S=>u("kill-client",p.id)},{default:E(()=>c[3]||(c[3]=[N(" Kill client ")])),_:2},1032,["disabled","onClick"])])]))),128))])])])}}}),ma={class:"space-y-2"},pa={class:"text-muted-foreground"},fa=X({__name:"RedisConfigSection",props:{config:{}},setup(n){return(r,u)=>(f(),g("div",ma,[(f(!0),g(H,null,V(r.config||[],s=>(f(),g("div",{key:s.name,class:"flex items-center justify-between rounded-md border px-3 py-2 text-sm"},[e("span",null,i(s.name),1),e("span",pa,i(s.value||"not set"),1)]))),128))]))}}),ga={class:"space-y-4"},va={class:"grid gap-3 md:grid-cols-4"},ba={class:"rounded-lg border p-3"},_a={class:"mt-1 text-lg font-medium"},ha={class:"rounded-lg border p-3"},ya={class:"mt-1 text-lg font-medium"},xa={class:"rounded-lg border p-3"},$a={class:"mt-1 text-lg font-medium"},Sa={class:"rounded-lg border p-3"},wa={class:"mt-1 text-lg font-medium"},ka={class:"grid gap-4 lg:grid-cols-2"},Ia={class:"rounded-lg border p-3"},Ca={class:"mt-3 space-y-2 text-sm"},Ta={class:"text-muted-foreground"},La={class:"rounded-lg border p-3"},Ra={class:"mt-3 space-y-2 text-sm"},Aa={class:"text-muted-foreground"},Pa={class:"rounded-lg border p-3"},Ba={class:"mt-3 flex flex-wrap gap-2"},Da={class:"mt-3 text-xs text-muted-foreground"},Ea=X({__name:"RedisKeyspaceSection",props:{keyspace:{}},setup(n){const r=new Intl.NumberFormat;function u(s){return s==null||s===""?"0":r.format(Number(s))}return(s,o)=>{var c,x,h,m,_,$,b,p;const v=xe;return f(),g("div",ga,[e("div",va,[e("div",ba,[o[0]||(o[0]=e("p",{class:"text-xs text-muted-foreground"},"Expired key count",-1)),e("p",_a,i(u((c=s.keyspace)==null?void 0:c.expiredKeyCount)),1)]),e("div",ha,[o[1]||(o[1]=e("p",{class:"text-xs text-muted-foreground"},"Avg TTL",-1)),e("p",ya,i(u((x=s.keyspace)==null?void 0:x.avgTtl)),1)]),e("div",xa,[o[2]||(o[2]=e("p",{class:"text-xs text-muted-foreground"},"Keys without TTL",-1)),e("p",$a,i(u((h=s.keyspace)==null?void 0:h.keysWithoutTtl)),1)]),e("div",Sa,[o[3]||(o[3]=e("p",{class:"text-xs text-muted-foreground"},"Sampled keys",-1)),e("p",wa,i(u((m=s.keyspace)==null?void 0:m.sampledKeys)),1)])]),e("div",ka,[e("div",Ia,[o[4]||(o[4]=e("h3",{class:"text-sm font-medium"},"Databases",-1)),e("div",Ca,[(f(!0),g(H,null,V(((_=s.keyspace)==null?void 0:_.databases)||[],S=>(f(),g("div",{key:S.database,class:"flex items-center justify-between rounded-md bg-muted/20 px-3 py-2"},[e("span",null,i(S.database),1),e("span",Ta,i(u(S.keyCount))+" keys · "+i(u(S.expires))+" expiring · avg TTL "+i(u(S.avgTtl)),1)]))),128))])]),e("div",La,[o[5]||(o[5]=e("h3",{class:"text-sm font-medium"},"Top prefixes",-1)),e("div",Ra,[(f(!0),g(H,null,V((($=s.keyspace)==null?void 0:$.topPrefixes)||[],S=>(f(),g("div",{key:S.prefix,class:"flex items-center justify-between rounded-md bg-muted/20 px-3 py-2"},[e("span",null,i(S.prefix),1),e("span",Aa,i(u(S.keyCount))+" keys ",1)]))),128))])])]),e("div",Pa,[o[6]||(o[6]=e("h3",{class:"text-sm font-medium"},"Key type distribution",-1)),e("div",Ba,[(f(!0),g(H,null,V(((b=s.keyspace)==null?void 0:b.keyTypeDistribution)||[],S=>(f(),J(v,{key:S.type,variant:"outline"},{default:E(()=>[N(i(S.type)+" · "+i(u(S.count)),1)]),_:2},1024))),128))]),e("p",Da,i((p=s.keyspace)==null?void 0:p.hotKeysNote),1)])])}}}),Na={class:"space-y-4"},Ma={class:"grid gap-3 md:grid-cols-2 xl:grid-cols-4"},Oa={class:"rounded-lg border p-3"},Fa={class:"mt-1 text-lg font-medium"},za={class:"rounded-lg border p-3"},Ha={class:"mt-1 text-lg font-medium"},Va={class:"rounded-lg border p-3"},ja={class:"mt-1 text-lg font-medium"},Ka={class:"rounded-lg border p-3"},Ua={class:"mt-1 text-lg font-medium"},Ga={class:"grid gap-4 lg:grid-cols-2"},qa={class:"rounded-lg border p-3"},Qa={class:"mt-3 space-y-2 text-sm"},Xa={class:"text-muted-foreground"},Wa={class:"rounded-lg border p-3"},Ya={class:"mt-3 space-y-2 text-sm"},Ja={class:"flex items-center justify-between gap-2"},Za={class:"truncate"},ei={class:"mt-1 text-xs text-muted-foreground"},ti=X({__name:"RedisMemorySection",props:{memory:{}},setup(n){const r=new Intl.NumberFormat;function u(s){return s==null||s===""?"0":r.format(Number(s))}return(s,o)=>{var x,h,m,_,$,b,p,S;const v=Ee,c=xe;return f(),g("div",Na,[e("div",Ma,[e("div",Oa,[o[0]||(o[0]=e("p",{class:"text-xs text-muted-foreground"},"Used memory",-1)),e("p",Fa,i((x=s.memory)==null?void 0:x.usedMemoryHuman),1)]),e("div",za,[o[1]||(o[1]=e("p",{class:"text-xs text-muted-foreground"},"Peak memory",-1)),e("p",Ha,i((h=s.memory)==null?void 0:h.usedMemoryPeakHuman),1)]),e("div",Va,[o[2]||(o[2]=e("p",{class:"text-xs text-muted-foreground"},"Fragmentation",-1)),e("p",ja,i((m=s.memory)==null?void 0:m.memoryFragmentationRatio.toFixed(2)),1)]),e("div",Ka,[o[3]||(o[3]=e("p",{class:"text-xs text-muted-foreground"},"Maxmemory / policy",-1)),e("p",Ua,i((_=s.memory)==null?void 0:_.maxmemoryHuman)+" · "+i(($=s.memory)==null?void 0:$.maxmemoryPolicy),1)])]),(f(!0),g(H,null,V(((b=s.memory)==null?void 0:b.warnings)||[],l=>(f(),J(v,{key:l,variant:"secondary"},{default:E(()=>[N(i(l),1)]),_:2},1024))),128)),e("div",Ga,[e("div",qa,[o[4]||(o[4]=e("h3",{class:"text-sm font-medium"},"Top prefixes by memory",-1)),e("div",Qa,[(f(!0),g(H,null,V(((p=s.memory)==null?void 0:p.topPrefixesByMemory)||[],l=>(f(),g("div",{key:l.prefix,class:"flex items-center justify-between rounded-md bg-muted/20 px-3 py-2"},[e("span",null,i(l.prefix),1),e("span",Xa,i(u(l.keyCount))+" keys · "+i(u(l.memoryBytes))+" B ",1)]))),128))])]),e("div",Wa,[o[5]||(o[5]=e("h3",{class:"text-sm font-medium"},"Big keys detector",-1)),e("div",Ya,[(f(!0),g(H,null,V(((S=s.memory)==null?void 0:S.bigKeys)||[],l=>(f(),g("div",{key:l.key,class:"rounded-md bg-muted/20 px-3 py-2"},[e("div",Ja,[e("span",Za,i(l.key),1),w(c,{variant:"outline"},{default:E(()=>[N(i(l.type),1)]),_:2},1024)]),e("p",ei," TTL "+i(l.ttl>=0?l.ttl:"persisted")+" · "+i(u(l.memoryBytes))+" B ",1)]))),128))])])])])}}}),si={class:"space-y-4"},ni={class:"grid gap-3 md:grid-cols-2 xl:grid-cols-4"},oi={class:"text-xs text-muted-foreground"},ai={class:"mt-1 text-lg font-medium"},ii=X({__name:"RedisOverviewSection",props:{overview:{}},setup(n){const r=n,u=new Intl.NumberFormat;function s(c){return c==null||c===""?"0":u.format(Number(c))}function o(c){return`${(c*100).toFixed(1)}%`}const v=I(()=>{const c=r.overview;return c?[{label:"Redis version",value:c.redisVersion},{label:"Mode",value:c.mode},{label:"Uptime",value:We(c.uptimeSeconds)},{label:"Connected clients",value:s(c.connectedClients)},{label:"Used memory",value:c.usedMemoryHuman},{label:"Total keys",value:s(c.totalKeys)},{label:"Hit rate",value:o(c.hitRate)},{label:"Ops/sec",value:s(c.opsPerSec)},{label:"Evicted keys",value:s(c.evictedKeys)},{label:"Expired keys",value:s(c.expiredKeys)},{label:"Rejected connections",value:s(c.rejectedConnections)}]:[]});return(c,x)=>(f(),g("div",si,[e("div",ni,[(f(!0),g(H,null,V(t(v),h=>(f(),g("div",{key:h.label,class:"rounded-lg border p-3"},[e("p",oi,i(h.label),1),e("p",ai,i(h.value),1)]))),128))])]))}}),ri={class:"space-y-4"},li={class:"grid gap-3 md:grid-cols-3"},di={class:"rounded-lg border p-3"},ui={class:"mt-1 text-lg font-medium"},ci={class:"rounded-lg border p-3"},mi={class:"mt-1 text-lg font-medium"},pi={class:"rounded-lg border p-3"},fi={class:"mt-1 text-lg font-medium"},gi={class:"rounded-lg border p-3"},vi={class:"mt-3 whitespace-pre-wrap text-xs text-muted-foreground"},bi={class:"grid gap-4 lg:grid-cols-2"},_i={class:"rounded-lg border p-3"},hi={class:"mt-3 space-y-2 text-xs"},yi={class:"flex items-center justify-between gap-2"},xi={class:"font-medium"},$i={class:"mt-1 text-muted-foreground"},Si={class:"rounded-lg border p-3"},wi={class:"mt-3 space-y-2 text-xs"},ki={class:"text-muted-foreground"},Ii={class:"rounded-lg border p-3"},Ci={class:"mt-3 space-y-2 text-xs"},Ti={key:0,class:"text-muted-foreground"},Li={class:"text-muted-foreground"},Ri=X({__name:"RedisPerformanceSection",props:{performance:{}},setup(n){const r=new Intl.NumberFormat;function u(s){return s==null||s===""?"0":r.format(Number(s))}return(s,o)=>{var v,c,x,h,m,_,$,b;return f(),g("div",ri,[e("div",li,[e("div",di,[o[0]||(o[0]=e("p",{class:"text-xs text-muted-foreground"},"Ops/sec",-1)),e("p",ui,i(u((v=s.performance)==null?void 0:v.instantaneousOpsPerSec)),1)]),e("div",ci,[o[1]||(o[1]=e("p",{class:"text-xs text-muted-foreground"},"Total commands",-1)),e("p",mi,i(u((c=s.performance)==null?void 0:c.totalCommandsProcessed)),1)]),e("div",pi,[o[2]||(o[2]=e("p",{class:"text-xs text-muted-foreground"},"Blocked clients",-1)),e("p",fi,i(u((x=s.performance)==null?void 0:x.blockedClients)),1)])]),e("div",gi,[o[3]||(o[3]=e("h3",{class:"text-sm font-medium"},"Latency doctor",-1)),e("pre",vi,i(((h=s.performance)==null?void 0:h.latencyDoctor)||"No latency doctor output available."),1)]),e("div",bi,[e("div",_i,[o[4]||(o[4]=e("h3",{class:"text-sm font-medium"},"Slowlog",-1)),e("div",hi,[(f(!0),g(H,null,V(((m=s.performance)==null?void 0:m.slowlog)||[],p=>(f(),g("div",{key:p.id,class:"rounded-md bg-muted/20 px-3 py-2"},[e("div",yi,[e("span",xi,i(p.command||"unknown command"),1),e("span",null,i(u(p.durationMicros))+" µs",1)]),e("p",$i,i(p.clientAddr||"n/a")+" · "+i(p.timestamp||"unknown time"),1)]))),128))])]),e("div",Si,[o[5]||(o[5]=e("h3",{class:"text-sm font-medium"},"Command stats",-1)),e("div",wi,[(f(!0),g(H,null,V(((_=s.performance)==null?void 0:_.commandStats)||[],p=>(f(),g("div",{key:p.command,class:"flex items-center justify-between rounded-md bg-muted/20 px-3 py-2"},[e("span",null,i(p.command),1),e("span",ki,i(u(p.calls))+" calls · "+i(p.usecPerCall.toFixed(2))+" µs/call ",1)]))),128))])])]),e("div",Ii,[o[6]||(o[6]=e("h3",{class:"text-sm font-medium"},"Long-running Lua scripts",-1)),e("div",Ci,[((($=s.performance)==null?void 0:$.longRunningLuaScripts)||[]).length?O("",!0):(f(),g("div",Ti," No active Lua script clients detected. ")),(f(!0),g(H,null,V(((b=s.performance)==null?void 0:b.longRunningLuaScripts)||[],p=>(f(),g("div",{key:p.id,class:"flex items-center justify-between rounded-md bg-muted/20 px-3 py-2"},[e("span",null,i(p.addr),1),e("span",Li,i(p.cmd)+" · age "+i(u(p.ageSeconds))+"s ",1)]))),128))])])])}}}),Ai={class:"space-y-4"},Pi={class:"grid gap-3 md:grid-cols-2 xl:grid-cols-4"},Bi={class:"rounded-lg border p-3"},Di={class:"mt-1 text-lg font-medium"},Ei={class:"rounded-lg border p-3"},Ni={class:"mt-1 text-lg font-medium"},Mi={class:"rounded-lg border p-3"},Oi={class:"mt-1 text-lg font-medium"},Fi={class:"rounded-lg border p-3"},zi={class:"mt-1 text-lg font-medium"},Hi={class:"rounded-lg border p-3 text-sm text-muted-foreground space-y-1"},Vi={key:0},ji=X({__name:"RedisPersistenceSection",props:{persistence:{}},setup(n){const r=new Intl.NumberFormat;function u(s){return s==null||s===""?"0":r.format(Number(s))}return(s,o)=>{var c,x,h,m,_,$,b,p,S;const v=Ee;return f(),g("div",Ai,[e("div",Pi,[e("div",Bi,[o[0]||(o[0]=e("p",{class:"text-xs text-muted-foreground"},"RDB enabled",-1)),e("p",Di,i((c=s.persistence)!=null&&c.rdbEnabled?"Yes":"No"),1)]),e("div",Ei,[o[1]||(o[1]=e("p",{class:"text-xs text-muted-foreground"},"AOF enabled",-1)),e("p",Ni,i((x=s.persistence)!=null&&x.aofEnabled?"Yes":"No"),1)]),e("div",Mi,[o[2]||(o[2]=e("p",{class:"text-xs text-muted-foreground"},"AOF rewrite",-1)),e("p",Oi,i((h=s.persistence)!=null&&h.aofRewriteInProgress?"In progress":"Idle"),1)]),e("div",Fi,[o[3]||(o[3]=e("p",{class:"text-xs text-muted-foreground"},"Changes since save",-1)),e("p",zi,i(u((m=s.persistence)==null?void 0:m.changesSinceLastSave)),1)])]),(f(!0),g(H,null,V(((_=s.persistence)==null?void 0:_.warnings)||[],l=>(f(),J(v,{key:l,variant:"secondary"},{default:E(()=>[N(i(l),1)]),_:2},1024))),128)),e("div",Hi,[e("p",null," Last save status: "+i((($=s.persistence)==null?void 0:$.lastSaveStatus)||"unknown"),1),e("p",null," Last save time: "+i(((b=s.persistence)==null?void 0:b.lastSaveTime)||"unknown"),1),e("p",null," AOF last rewrite status: "+i(((p=s.persistence)==null?void 0:p.aofLastRewriteStatus)||"unknown"),1),(S=s.persistence)!=null&&S.lastBgsaveError?(f(),g("p",Vi," Last bgsave error: "+i(s.persistence.lastBgsaveError),1)):O("",!0)])])}}}),Ki={class:"space-y-4"},Ui={class:"grid gap-3 md:grid-cols-2 xl:grid-cols-4"},Gi={class:"rounded-lg border p-3"},qi={class:"mt-1 text-lg font-medium"},Qi={class:"rounded-lg border p-3"},Xi={class:"mt-1 text-lg font-medium"},Wi={class:"rounded-lg border p-3"},Yi={class:"mt-1 text-lg font-medium"},Ji={class:"rounded-lg border p-3"},Zi={class:"mt-1 text-lg font-medium"},er={class:"rounded-lg border p-3 text-sm text-muted-foreground space-y-1"},tr={class:"rounded-lg border p-3"},sr={class:"mt-3 space-y-2 text-xs"},nr={key:0,class:"text-muted-foreground"},or={class:"text-muted-foreground"},ar=X({__name:"RedisReplicationSection",props:{replication:{}},setup(n){const r=new Intl.NumberFormat;function u(s){return s==null||s===""?"0":r.format(Number(s))}return(s,o)=>{var v,c,x,h,m,_,$,b,p,S,l;return f(),g("div",Ki,[e("div",Ui,[e("div",Gi,[o[0]||(o[0]=e("p",{class:"text-xs text-muted-foreground"},"Role",-1)),e("p",qi,i(((v=s.replication)==null?void 0:v.role)||"unknown"),1)]),e("div",Qi,[o[1]||(o[1]=e("p",{class:"text-xs text-muted-foreground"},"Connected replicas",-1)),e("p",Xi,i(u((c=s.replication)==null?void 0:c.connectedReplicas)),1)]),e("div",Wi,[o[2]||(o[2]=e("p",{class:"text-xs text-muted-foreground"},"Master link status",-1)),e("p",Yi,i(((x=s.replication)==null?void 0:x.masterLinkStatus)||"n/a"),1)]),e("div",Ji,[o[3]||(o[3]=e("p",{class:"text-xs text-muted-foreground"},"Cluster state",-1)),e("p",Zi,i(((h=s.replication)==null?void 0:h.clusterState)||((m=s.replication)!=null&&m.clusterEnabled?"enabled":"disabled")),1)])]),e("div",er,[e("p",null,"Replication lag: "+i(((_=s.replication)==null?void 0:_.replicationLag)??"n/a"),1),e("p",null,"Sentinel masters: "+i((($=s.replication)==null?void 0:$.sentinelMasters)??"n/a"),1),e("p",null," Cluster slots assigned: "+i(((b=s.replication)==null?void 0:b.clusterSlotsAssigned)??"n/a"),1),e("p",null,"Cluster known nodes: "+i(((p=s.replication)==null?void 0:p.clusterKnownNodes)??"n/a"),1)]),e("div",tr,[o[4]||(o[4]=e("h3",{class:"text-sm font-medium"},"Replicas",-1)),e("div",sr,[(((S=s.replication)==null?void 0:S.replicas)||[]).length?O("",!0):(f(),g("div",nr," No replica nodes reported. ")),(f(!0),g(H,null,V(((l=s.replication)==null?void 0:l.replicas)||[],a=>(f(),g("div",{key:a.id,class:"flex items-center justify-between rounded-md bg-muted/20 px-3 py-2"},[e("span",null,i(a.addr),1),e("span",or,i(a.state)+" · lag "+i(a.lag??"n/a"),1)]))),128))])])])}}}),ir=5e3;function rr(n){const r=B("overview"),u=B(!0),s=B(null),o=B(!1),v=B(!1),c=B(!1),x=B(null),h=B(!0),m=I(()=>!!n.connection.value);Ce(()=>{h.value=!1}),Te(()=>{h.value=!0});const _=async(l=!1)=>{var a;if(!n.connection.value)return x.value=null,null;l||(v.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 x.value=d,d}catch(d){return s.value=((a=d==null?void 0:d.data)==null?void 0:a.message)||(d==null?void 0:d.message)||(d==null?void 0:d.statusMessage)||"Failed to fetch Redis instance insights.",null}finally{l||(v.value=!1)}},$=async l=>{var a;if(!n.connection.value)return!1;c.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?(be("Redis client terminated",{description:d.message}),await _(!0),!0):(be("Failed to terminate client",{description:d.message}),!1)}catch(d){return be("Failed to terminate client",{description:((a=d==null?void 0:d.data)==null?void 0:a.message)||(d==null?void 0:d.message)||"The Redis client could not be terminated."}),!1}finally{c.value=!1}},b=async()=>{await _()};re([()=>n.connection.value,()=>n.databaseIndex.value],async([l])=>{if(!l){x.value=null;return}o.value=!0,await _(),o.value=!1},{immediate:!0});const{pause:p,resume:S}=Le(async()=>{!m.value||!h.value||await _(!0)},ir,{immediate:!1});return re(()=>u.value,l=>{l?S():p()},{immediate:!0}),{activeSection:r,autoRefresh:u,error:s,isInitialLoading:o,isLoading:v,isActionLoading:c,insights:x,refresh:b,killClient:$}}const lr={class:"flex h-full flex-col gap-3 overflow-hidden p-3"},dr={class:"flex items-center gap-2 text-xs"},ur={key:1,class:"flex flex-1 items-center justify-center gap-2 rounded-lg border bg-background text-muted-foreground"},cr={key:2,class:"flex-1 overflow-y-auto rounded-lg border bg-background p-3 mt-2"},mr=X({__name:"RedisInstanceInsightsPanel",props:{databaseName:{},databaseIndex:{},databases:{},dbType:{}},emits:["update:databaseIndex"],setup(n,{emit:r}){const u=n,s=r,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"}],v=$e(),c=I(()=>v.selectedConnection),{activeSection:x,autoRefresh:h,error:m,isInitialLoading:_,isLoading:$,isActionLoading:b,insights:p,refresh:S,killClient:l}=rr({connection:c,databaseIndex:I(()=>u.databaseIndex)});return(a,d)=>{const T=Ae,j=me,R=ce,F=Tt,U=De,q=Be,k=Ee,M=Pe;return f(),g("div",lr,[w(F,{icon:"hugeicons:activity-02",title:"Instance Insights"},{context:E(()=>[a.dbType===t(ue).REDIS?(f(),J(Re("hugeicons:database-sync-01"),{key:0})):O("",!0)]),actions:E(()=>[w(Lt,{compact:"","trigger-id":"redis-instance-insights-db-index","trigger-class":"bg-background",databases:a.databases,"database-index":a.databaseIndex,"onUpdate:databaseIndex":d[0]||(d[0]=z=>s("update:databaseIndex",z))},null,8,["databases","database-index"]),e("div",dr,[w(T,{id:"redis-insights-auto-refresh","model-value":t(h),"onUpdate:modelValue":d[1]||(d[1]=z=>le(h)?h.value=z:null)},null,8,["model-value"]),d[3]||(d[3]=e("label",{for:"redis-insights-auto-refresh",class:"cursor-pointer"}," Auto refresh ",-1))]),w(R,{size:"xxs",variant:"outline",disabled:t($)||t(b),onClick:t(S)},{default:E(()=>[w(j,{name:"hugeicons:redo",class:"size-3.5!"}),d[4]||(d[4]=N(" Refresh "))]),_:1},8,["disabled","onClick"])]),_:1}),w(M,{modelValue:t(x),"onUpdate:modelValue":d[2]||(d[2]=z=>le(x)?x.value=z:null),class:"flex flex-1 min-h-0 flex-col gap-0"},{default:E(()=>{var z,y,L,K,A,P,Q,Z;return[w(q,{size:"sm",class:"max-w-full justify-start! shrink-0 overflow-x-auto"},{default:E(()=>[(f(),g(H,null,V(o,ae=>w(U,{size:"xs",key:ae.id,value:ae.id,class:"min-w-fit shrink-0 cursor-pointer rounded-sm"},{default:E(()=>[N(i(ae.label),1)]),_:2},1032,["value"])),64))]),_:1}),t(m)?(f(),J(k,{key:0,variant:"destructive"},{default:E(()=>[N(i(t(m)),1)]),_:1})):O("",!0),t(_)&&!t(p)?(f(),g("div",ur,[w(j,{name:"hugeicons:redo",class:"size-4 animate-spin"}),d[5]||(d[5]=N(" Loading Redis instance insights... "))])):(f(),g("div",cr,[te(w(ii,{overview:(z=t(p))==null?void 0:z.overview},null,8,["overview"]),[[se,t(x)==="overview"]]),te(w(Ea,{keyspace:(y=t(p))==null?void 0:y.keyspace},null,8,["keyspace"]),[[se,t(x)==="keyspace"]]),te(w(ti,{memory:(L=t(p))==null?void 0:L.memory},null,8,["memory"]),[[se,t(x)==="memory"]]),te(w(Ri,{performance:(K=t(p))==null?void 0:K.performance},null,8,["performance"]),[[se,t(x)==="performance"]]),te(w(ca,{clients:(A=t(p))==null?void 0:A.clients,"is-action-loading":t(b),onKillClient:t(l)},null,8,["clients","is-action-loading","onKillClient"]),[[se,t(x)==="clients"]]),te(w(ji,{persistence:(P=t(p))==null?void 0:P.persistence},null,8,["persistence"]),[[se,t(x)==="persistence"]]),te(w(ar,{replication:(Q=t(p))==null?void 0:Q.replication},null,8,["replication"]),[[se,t(x)==="replication"]]),te(w(fa,{config:(Z=t(p))==null?void 0:Z.config},null,8,["config"]),[[se,t(x)==="config"]])]))]}),_:1},8,["modelValue"])])}}}),pr={class:"h-full"},fr={key:0,class:"h-full p-4 flex flex-col items-center justify-center text-muted-foreground"},Pr=X({__name:"index",setup(n){const r=Ze(),u=$e(),s=et(),{activeTab:o}=je(s),v=I(()=>String(r.params.connectionId||"")),c=I(()=>v.value?u.connections.find(b=>b.id===v.value):null),x=I(()=>{var b;return((b=c.value)==null?void 0:b.connectionString)||""}),h=I(()=>{var b;return(b=c.value)==null?void 0:b.type}),m=I(()=>{var b,p,S;return h.value===ue.REDIS?((b=c.value)==null?void 0:b.name)||"Redis":((p=c.value)==null?void 0:p.database)||((S=c.value)==null?void 0:S.name)||"database"}),_=I(()=>h.value===ue.REDIS?c.value??void 0:void 0),$=Rt({connection:_,mode:"meta"});return re(()=>{var b,p;return(p=(b=o.value)==null?void 0:b.metadata)==null?void 0:p.databaseIndex},b=>{typeof b=="number"&&($.selectedDatabaseIndex.value=b)},{immediate:!0}),(b,p)=>{const S=me;return f(),g("div",pr,[t(c)?t(h)===t(ue).REDIS?(f(),J(mr,{key:1,"database-name":t(m),"database-index":t($).selectedDatabaseIndex.value,databases:t($).databases.value,"db-type":t(h),"onUpdate:databaseIndex":p[0]||(p[0]=l=>t($).selectedDatabaseIndex.value=l)},null,8,["database-name","database-index","databases","db-type"])):t(h)===t(ue).POSTGRES?(f(),J(no,{key:2,"db-connection-string":t(x),"database-name":t(m),"db-type":t(h)},null,8,["db-connection-string","database-name","db-type"])):(f(),J(Wo,{key:3,"db-connection-string":t(x),"database-name":t(m),"db-type":t(h)},null,8,["db-connection-string","database-name","db-type"])):(f(),g("div",fr,[w(S,{name:"hugeicons:plug-socket",class:"size-12 mb-2 opacity-50"}),p[1]||(p[1]=e("p",{class:"text-sm"},"Select a connection to open Instance Insights",-1))]))])}}});export{Pr as default};
|