@libredb/studio 0.9.7 → 0.9.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (688) hide show
  1. package/dist/chunk-34YQUUCM.mjs +319 -0
  2. package/dist/chunk-34YQUUCM.mjs.map +1 -0
  3. package/dist/chunk-4LVB3K53.mjs +37 -0
  4. package/dist/chunk-4LVB3K53.mjs.map +1 -0
  5. package/dist/chunk-6DRZXXNT.mjs +100 -0
  6. package/dist/chunk-6DRZXXNT.mjs.map +1 -0
  7. package/dist/chunk-CPF7XWV5.mjs +1289 -0
  8. package/dist/chunk-CPF7XWV5.mjs.map +1 -0
  9. package/dist/chunk-CZVV3JJB.mjs +160 -0
  10. package/dist/chunk-CZVV3JJB.mjs.map +1 -0
  11. package/dist/chunk-D4WVWWWF.js +332 -0
  12. package/dist/chunk-D4WVWWWF.js.map +1 -0
  13. package/dist/chunk-DY3KXE44.mjs +3 -0
  14. package/dist/chunk-DY3KXE44.mjs.map +1 -0
  15. package/dist/chunk-FYSE52VB.js +242 -0
  16. package/dist/chunk-FYSE52VB.js.map +1 -0
  17. package/dist/chunk-G3S66G64.mjs +6673 -0
  18. package/dist/chunk-G3S66G64.mjs.map +1 -0
  19. package/dist/chunk-G4WYE6TI.js +4 -0
  20. package/dist/chunk-G4WYE6TI.js.map +1 -0
  21. package/dist/chunk-HGPD6PWV.js +1310 -0
  22. package/dist/chunk-HGPD6PWV.js.map +1 -0
  23. package/dist/chunk-JZO5KRZN.js +165 -0
  24. package/dist/chunk-JZO5KRZN.js.map +1 -0
  25. package/dist/chunk-KV356UXJ.js +253 -0
  26. package/dist/chunk-KV356UXJ.js.map +1 -0
  27. package/dist/chunk-PPODO6HX.mjs +237 -0
  28. package/dist/chunk-PPODO6HX.mjs.map +1 -0
  29. package/dist/chunk-PTIRB2JO.js +258 -0
  30. package/dist/chunk-PTIRB2JO.js.map +1 -0
  31. package/dist/chunk-Q6LRDBK7.js +42 -0
  32. package/dist/chunk-Q6LRDBK7.js.map +1 -0
  33. package/dist/chunk-QJP5FZRY.mjs +255 -0
  34. package/dist/chunk-QJP5FZRY.mjs.map +1 -0
  35. package/dist/chunk-R3POCJK6.mjs +248 -0
  36. package/dist/chunk-R3POCJK6.mjs.map +1 -0
  37. package/dist/chunk-RCQB4FCE.js +186 -0
  38. package/dist/chunk-RCQB4FCE.js.map +1 -0
  39. package/dist/chunk-SR5DRGBX.mjs +174 -0
  40. package/dist/chunk-SR5DRGBX.mjs.map +1 -0
  41. package/dist/chunk-VLCRUZX7.js +102 -0
  42. package/dist/chunk-VLCRUZX7.js.map +1 -0
  43. package/dist/chunk-Y52UIFEX.js +6741 -0
  44. package/dist/chunk-Y52UIFEX.js.map +1 -0
  45. package/dist/components.d.mts +273 -0
  46. package/dist/components.d.ts +273 -0
  47. package/dist/components.js +59 -0
  48. package/dist/components.js.map +1 -0
  49. package/dist/components.mjs +6 -0
  50. package/dist/components.mjs.map +1 -0
  51. package/dist/custom-BNDOYC5P.js +134 -0
  52. package/dist/custom-BNDOYC5P.js.map +1 -0
  53. package/dist/custom-S2EKFMP3.mjs +132 -0
  54. package/dist/custom-S2EKFMP3.mjs.map +1 -0
  55. package/dist/gemini-4ASHNK4H.js +81 -0
  56. package/dist/gemini-4ASHNK4H.js.map +1 -0
  57. package/dist/gemini-C5RBLQEJ.mjs +79 -0
  58. package/dist/gemini-C5RBLQEJ.mjs.map +1 -0
  59. package/dist/index.d.mts +6 -0
  60. package/dist/index.d.ts +6 -0
  61. package/dist/index.js +95 -0
  62. package/dist/index.js.map +1 -0
  63. package/dist/index.mjs +10 -0
  64. package/dist/index.mjs.map +1 -0
  65. package/dist/mongodb-XMZEZA4A.mjs +748 -0
  66. package/dist/mongodb-XMZEZA4A.mjs.map +1 -0
  67. package/dist/mongodb-YQJJTLX3.js +750 -0
  68. package/dist/mongodb-YQJJTLX3.js.map +1 -0
  69. package/dist/mssql-PMOU4D36.js +916 -0
  70. package/dist/mssql-PMOU4D36.js.map +1 -0
  71. package/{src/lib/db/providers/sql/mssql.ts → dist/mssql-ZH5VP2C5.mjs} +268 -423
  72. package/dist/mssql-ZH5VP2C5.mjs.map +1 -0
  73. package/{src/lib/db/providers/sql/mysql.ts → dist/mysql-I3WJQXN2.mjs} +277 -428
  74. package/dist/mysql-I3WJQXN2.mjs.map +1 -0
  75. package/dist/mysql-Y3MSA5QY.js +833 -0
  76. package/dist/mysql-Y3MSA5QY.js.map +1 -0
  77. package/dist/ollama-26BYLVEV.mjs +115 -0
  78. package/dist/ollama-26BYLVEV.mjs.map +1 -0
  79. package/dist/ollama-HVWAGKQC.js +117 -0
  80. package/dist/ollama-HVWAGKQC.js.map +1 -0
  81. package/dist/openai-4U56KPG7.mjs +111 -0
  82. package/dist/openai-4U56KPG7.mjs.map +1 -0
  83. package/dist/openai-AK3R37BS.js +113 -0
  84. package/dist/openai-AK3R37BS.js.map +1 -0
  85. package/dist/oracle-L6VEAVXO.js +917 -0
  86. package/dist/oracle-L6VEAVXO.js.map +1 -0
  87. package/{src/lib/db/providers/sql/oracle.ts → dist/oracle-P2G7T4P4.mjs} +321 -454
  88. package/dist/oracle-P2G7T4P4.mjs.map +1 -0
  89. package/{src/lib/db/providers/sql/postgres.ts → dist/postgres-O5KOQUVP.mjs} +261 -471
  90. package/dist/postgres-O5KOQUVP.mjs.map +1 -0
  91. package/dist/postgres-RLCWNFFX.js +971 -0
  92. package/dist/postgres-RLCWNFFX.js.map +1 -0
  93. package/dist/providers.d.mts +149 -0
  94. package/dist/providers.d.ts +149 -0
  95. package/dist/providers.js +44 -0
  96. package/dist/providers.js.map +1 -0
  97. package/dist/providers.mjs +7 -0
  98. package/dist/providers.mjs.map +1 -0
  99. package/dist/redis-4WMQOVLX.mjs +435 -0
  100. package/dist/redis-4WMQOVLX.mjs.map +1 -0
  101. package/dist/redis-QVQ6YU62.js +441 -0
  102. package/dist/redis-QVQ6YU62.js.map +1 -0
  103. package/dist/sqlite-4I2P2OGQ.js +554 -0
  104. package/dist/sqlite-4I2P2OGQ.js.map +1 -0
  105. package/dist/sqlite-OA4YJX5S.mjs +531 -0
  106. package/dist/sqlite-OA4YJX5S.mjs.map +1 -0
  107. package/dist/types-BJvJfxSY.d.mts +141 -0
  108. package/dist/types-BJvJfxSY.d.ts +141 -0
  109. package/dist/types-ClAg_v5k.d.mts +343 -0
  110. package/dist/types-Der_X8E8.d.ts +343 -0
  111. package/dist/types.d.mts +2 -0
  112. package/dist/types.d.ts +2 -0
  113. package/dist/types.js +6 -0
  114. package/dist/types.js.map +1 -0
  115. package/dist/types.mjs +3 -0
  116. package/dist/types.mjs.map +1 -0
  117. package/dist/workspace.d.mts +80 -0
  118. package/dist/workspace.d.ts +80 -0
  119. package/dist/workspace.js +4174 -0
  120. package/dist/workspace.js.map +1 -0
  121. package/dist/workspace.mjs +4147 -0
  122. package/dist/workspace.mjs.map +1 -0
  123. package/package.json +60 -5
  124. package/.claude/settings.local.json +0 -127
  125. package/.cursorrules +0 -426
  126. package/.devin/wiki.json +0 -143
  127. package/.dockerignore +0 -80
  128. package/.env.example +0 -159
  129. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -49
  130. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -29
  131. package/.github/PULL_REQUEST_TEMPLATE.md +0 -57
  132. package/.github/workflows/ci.yml +0 -185
  133. package/.github/workflows/codeql.yml +0 -57
  134. package/.github/workflows/docker-build-push.yml +0 -118
  135. package/.github/workflows/helm-release.yml +0 -113
  136. package/CLAUDE.md +0 -265
  137. package/CODE_OF_CONDUCT.md +0 -124
  138. package/CONTRIBUTING.md +0 -154
  139. package/Dockerfile +0 -73
  140. package/SECURITY.md +0 -107
  141. package/artifacthub-repo.yml +0 -4
  142. package/bun.lock +0 -1714
  143. package/bunfig.toml +0 -3
  144. package/charts/libredb-studio/.helmignore +0 -11
  145. package/charts/libredb-studio/Chart.lock +0 -6
  146. package/charts/libredb-studio/Chart.yaml +0 -50
  147. package/charts/libredb-studio/README.md +0 -206
  148. package/charts/libredb-studio/templates/NOTES.txt +0 -59
  149. package/charts/libredb-studio/templates/_helpers.tpl +0 -135
  150. package/charts/libredb-studio/templates/configmap.yaml +0 -37
  151. package/charts/libredb-studio/templates/deployment.yaml +0 -184
  152. package/charts/libredb-studio/templates/hpa.yaml +0 -32
  153. package/charts/libredb-studio/templates/ingress.yaml +0 -41
  154. package/charts/libredb-studio/templates/networkpolicy.yaml +0 -50
  155. package/charts/libredb-studio/templates/pdb.yaml +0 -18
  156. package/charts/libredb-studio/templates/pvc.yaml +0 -23
  157. package/charts/libredb-studio/templates/secret.yaml +0 -30
  158. package/charts/libredb-studio/templates/seed-configmap.yaml +0 -11
  159. package/charts/libredb-studio/templates/service.yaml +0 -22
  160. package/charts/libredb-studio/templates/serviceaccount.yaml +0 -13
  161. package/charts/libredb-studio/values.schema.json +0 -246
  162. package/charts/libredb-studio/values.yaml +0 -286
  163. package/components.json +0 -22
  164. package/conductor/code_styleguides/typescript.md +0 -43
  165. package/conductor/product-guidelines.md +0 -43
  166. package/conductor/product.md +0 -3
  167. package/conductor/setup_state.json +0 -1
  168. package/conductor/tech-stack.md +0 -39
  169. package/conductor/tracks/enhance_postgres_monitoring_20251227/metadata.json +0 -8
  170. package/conductor/tracks/enhance_postgres_monitoring_20251227/plan.md +0 -44
  171. package/conductor/tracks/enhance_postgres_monitoring_20251227/spec.md +0 -31
  172. package/conductor/tracks.md +0 -8
  173. package/conductor/workflow.md +0 -333
  174. package/database-compose.yml +0 -55
  175. package/docker/postgres-init/01-extensions.sql +0 -10
  176. package/docker/postgres-init/02-sample-data.sql +0 -585
  177. package/docker/postgres.yml +0 -68
  178. package/docker-compose.yml +0 -38
  179. package/docs/AI_PLAN.md +0 -74
  180. package/docs/API_DOCS.md +0 -875
  181. package/docs/ARCHITECTURE.md +0 -218
  182. package/docs/DATABASE_PROVIDERS.md +0 -358
  183. package/docs/FEATURES.md +0 -116
  184. package/docs/HELM_CHART.md +0 -252
  185. package/docs/LOGIN_PAGE.md +0 -178
  186. package/docs/MONACO_EDITOR_PERFORMANCE.md +0 -315
  187. package/docs/OIDC_ARCH.md +0 -681
  188. package/docs/OIDC_SETUP.md +0 -322
  189. package/docs/POSTGRES_METRICS.md +0 -516
  190. package/docs/QUERY_OPTIMIZATION.md +0 -370
  191. package/docs/SEED_CONNECTIONS.md +0 -468
  192. package/docs/SQL_ALIAS_COMPLETION.md +0 -190
  193. package/docs/STORAGE_ARCHITECTURE.md +0 -565
  194. package/docs/STORAGE_QUICK_SETUP.md +0 -419
  195. package/docs/TECHNICAL_PLAN.md +0 -36
  196. package/docs/THEMING.md +0 -345
  197. package/docs/adding-a-new-database-provider.md +0 -642
  198. package/docs/backlogs/000-PLATFORM_DATA_SYNC_DATABASE.md +0 -360
  199. package/docs/backlogs/001-INLINE_DATA_EDITING.md +0 -118
  200. package/docs/backlogs/002-DATA_IMPORT.md +0 -215
  201. package/docs/backlogs/003-QUERY_TIME_MACHINE.md +0 -183
  202. package/docs/backlogs/004-AI_DATA_STORYTELLER.md +0 -292
  203. package/docs/backlogs/005-QUERY_PLAYGROUND.md +0 -352
  204. package/docs/backlogs/006-DATA_MASKING.md +0 -418
  205. package/docs/enterprise-features.md +0 -718
  206. package/docs/kubernetes-helm-chart-artifacthub-plan.md +0 -803
  207. package/docs/medium-koyeb-article-en.md +0 -215
  208. package/docs/plans/test-plans.md +0 -445
  209. package/docs/releases/RELEASE.V0.3.0.md +0 -22
  210. package/docs/releases/RELEASE.V0.4.0.md +0 -154
  211. package/docs/releases/RELEASE.V0.5.0.md +0 -252
  212. package/docs/releases/RELEASE_v0.5.6.md +0 -145
  213. package/docs/releases/RELEASE_v0.6.1.md +0 -303
  214. package/docs/releases/RELEASE_v0.6.7.md +0 -292
  215. package/docs/releases/RELEASE_v0.7.0.md +0 -332
  216. package/docs/releases/RELEASE_v0.8.0.md +0 -521
  217. package/docs/sampledb/titanic.sql +0 -1379
  218. package/docs/superpowers/plans/2026-03-25-seed-connections.md +0 -1362
  219. package/docs/superpowers/specs/2026-03-25-seed-connections-design.md +0 -590
  220. package/e2e/admin-dashboard.spec.ts +0 -64
  221. package/e2e/connection-management.spec.ts +0 -58
  222. package/e2e/export.spec.ts +0 -34
  223. package/e2e/login.spec.ts +0 -85
  224. package/e2e/query-execution.spec.ts +0 -35
  225. package/e2e/tab-management.spec.ts +0 -64
  226. package/eslint.config.mjs +0 -28
  227. package/fly.toml +0 -43
  228. package/next.config.ts +0 -32
  229. package/playwright.config.ts +0 -34
  230. package/postcss.config.mjs +0 -7
  231. package/public/favicon-32x32.png +0 -0
  232. package/public/favicon.ico +0 -0
  233. package/public/file.svg +0 -1
  234. package/public/globe.svg +0 -1
  235. package/public/logo.svg +0 -32
  236. package/public/next.svg +0 -1
  237. package/public/screenshots/code-generator.png +0 -0
  238. package/public/screenshots/connection-modal.png +0 -0
  239. package/public/screenshots/data-profiler.png +0 -0
  240. package/public/screenshots/erd-diagram.png +0 -0
  241. package/public/screenshots/hero-editor.png +0 -0
  242. package/public/screenshots/nl2sql.png +0 -0
  243. package/public/vercel.svg +0 -1
  244. package/public/window.svg +0 -1
  245. package/render.yaml +0 -58
  246. package/scripts/merge-lcov.mjs +0 -239
  247. package/sonar-project.properties +0 -16
  248. package/src/app/admin/error.tsx +0 -46
  249. package/src/app/admin/page.tsx +0 -10
  250. package/src/app/api/admin/audit/route.ts +0 -52
  251. package/src/app/api/admin/fleet-health/route.ts +0 -81
  252. package/src/app/api/ai/autopilot/route.ts +0 -105
  253. package/src/app/api/ai/chat/route.ts +0 -132
  254. package/src/app/api/ai/describe-schema/route.ts +0 -52
  255. package/src/app/api/ai/explain/route.ts +0 -86
  256. package/src/app/api/ai/impact/route.ts +0 -97
  257. package/src/app/api/ai/index-advisor/route.ts +0 -98
  258. package/src/app/api/ai/nl2sql/route.ts +0 -87
  259. package/src/app/api/ai/query-safety/route.ts +0 -87
  260. package/src/app/api/auth/login/route.ts +0 -62
  261. package/src/app/api/auth/logout/route.ts +0 -25
  262. package/src/app/api/auth/me/route.ts +0 -10
  263. package/src/app/api/auth/oidc/callback/route.ts +0 -82
  264. package/src/app/api/auth/oidc/login/route.ts +0 -43
  265. package/src/app/api/connections/managed/route.ts +0 -35
  266. package/src/app/api/db/cancel/route.ts +0 -42
  267. package/src/app/api/db/disconnect/route.ts +0 -28
  268. package/src/app/api/db/health/route.ts +0 -49
  269. package/src/app/api/db/maintenance/route.ts +0 -72
  270. package/src/app/api/db/monitoring/route.ts +0 -62
  271. package/src/app/api/db/multi-query/route.ts +0 -116
  272. package/src/app/api/db/pool-stats/route.ts +0 -37
  273. package/src/app/api/db/profile/route.ts +0 -144
  274. package/src/app/api/db/provider-meta/route.ts +0 -49
  275. package/src/app/api/db/query/route.ts +0 -50
  276. package/src/app/api/db/schema/route.ts +0 -47
  277. package/src/app/api/db/schema-snapshot/route.ts +0 -42
  278. package/src/app/api/db/test-connection/route.ts +0 -55
  279. package/src/app/api/db/transaction/route.ts +0 -111
  280. package/src/app/api/storage/[collection]/route.ts +0 -67
  281. package/src/app/api/storage/config/route.ts +0 -17
  282. package/src/app/api/storage/migrate/route.ts +0 -45
  283. package/src/app/api/storage/route.ts +0 -32
  284. package/src/app/error.tsx +0 -49
  285. package/src/app/global-error.tsx +0 -55
  286. package/src/app/globals.css +0 -146
  287. package/src/app/icon.svg +0 -42
  288. package/src/app/layout.tsx +0 -34
  289. package/src/app/login/login-form.tsx +0 -301
  290. package/src/app/login/page.tsx +0 -11
  291. package/src/app/monitoring/page.tsx +0 -8
  292. package/src/app/not-found.tsx +0 -29
  293. package/src/app/page.tsx +0 -5
  294. package/src/components/AIAutopilotPanel.tsx +0 -238
  295. package/src/components/CodeGenerator.tsx +0 -271
  296. package/src/components/CommandPalette.tsx +0 -227
  297. package/src/components/ConnectionModal.tsx +0 -759
  298. package/src/components/CreateTableModal.tsx +0 -281
  299. package/src/components/DataCharts.tsx +0 -962
  300. package/src/components/DataImportModal.tsx +0 -582
  301. package/src/components/DataProfiler.tsx +0 -335
  302. package/src/components/DatabaseDocs.tsx +0 -251
  303. package/src/components/MaskingSettings.tsx +0 -414
  304. package/src/components/MobileNav.tsx +0 -50
  305. package/src/components/NL2SQLPanel.tsx +0 -281
  306. package/src/components/PivotTable.tsx +0 -257
  307. package/src/components/QueryEditor.tsx +0 -760
  308. package/src/components/QueryHistory.tsx +0 -344
  309. package/src/components/QuerySafetyDialog.tsx +0 -290
  310. package/src/components/ResultsGrid.tsx +0 -644
  311. package/src/components/SaveQueryModal.tsx +0 -104
  312. package/src/components/SavedQueries.tsx +0 -128
  313. package/src/components/SchemaDiagram.tsx +0 -473
  314. package/src/components/SchemaDiff.tsx +0 -473
  315. package/src/components/SnapshotTimeline.tsx +0 -116
  316. package/src/components/Studio.tsx +0 -639
  317. package/src/components/TestDataGenerator.tsx +0 -261
  318. package/src/components/VisualExplain.tsx +0 -820
  319. package/src/components/admin/AdminDashboard.tsx +0 -163
  320. package/src/components/admin/tabs/AuditTab.tsx +0 -531
  321. package/src/components/admin/tabs/MonitoringEmbed.tsx +0 -11
  322. package/src/components/admin/tabs/OperationsTab.tsx +0 -646
  323. package/src/components/admin/tabs/OverviewTab.tsx +0 -1328
  324. package/src/components/admin/tabs/SecurityTab.tsx +0 -284
  325. package/src/components/community-section.tsx +0 -92
  326. package/src/components/icons/db-icons.tsx +0 -84
  327. package/src/components/libredb-logo.tsx +0 -61
  328. package/src/components/monitoring/MonitoringDashboard.tsx +0 -345
  329. package/src/components/monitoring/tabs/MetricChart.tsx +0 -82
  330. package/src/components/monitoring/tabs/OverviewTab.tsx +0 -263
  331. package/src/components/monitoring/tabs/PerformanceTab.tsx +0 -254
  332. package/src/components/monitoring/tabs/PoolTab.tsx +0 -174
  333. package/src/components/monitoring/tabs/QueriesTab.tsx +0 -287
  334. package/src/components/monitoring/tabs/SessionsTab.tsx +0 -316
  335. package/src/components/monitoring/tabs/StorageTab.tsx +0 -335
  336. package/src/components/monitoring/tabs/TablesTab.tsx +0 -300
  337. package/src/components/results-grid/ResultCard.tsx +0 -111
  338. package/src/components/results-grid/RowDetailSheet.tsx +0 -178
  339. package/src/components/results-grid/StatsBar.tsx +0 -201
  340. package/src/components/results-grid/index.ts +0 -1
  341. package/src/components/results-grid/utils.ts +0 -23
  342. package/src/components/schema-explorer/ColumnList.tsx +0 -53
  343. package/src/components/schema-explorer/SchemaExplorer.tsx +0 -182
  344. package/src/components/schema-explorer/TableItem.tsx +0 -210
  345. package/src/components/schema-explorer/index.ts +0 -1
  346. package/src/components/sidebar/ConnectionItem.tsx +0 -105
  347. package/src/components/sidebar/ConnectionsList.tsx +0 -62
  348. package/src/components/sidebar/Sidebar.tsx +0 -130
  349. package/src/components/sidebar/index.ts +0 -2
  350. package/src/components/studio/BottomPanel.tsx +0 -286
  351. package/src/components/studio/QueryToolbar.tsx +0 -180
  352. package/src/components/studio/StudioDesktopHeader.tsx +0 -114
  353. package/src/components/studio/StudioMobileHeader.tsx +0 -340
  354. package/src/components/studio/StudioTabBar.tsx +0 -82
  355. package/src/components/studio/index.ts +0 -5
  356. package/src/components/ui/accordion.tsx +0 -66
  357. package/src/components/ui/alert-dialog.tsx +0 -157
  358. package/src/components/ui/alert.tsx +0 -66
  359. package/src/components/ui/aspect-ratio.tsx +0 -11
  360. package/src/components/ui/avatar.tsx +0 -53
  361. package/src/components/ui/badge.tsx +0 -46
  362. package/src/components/ui/breadcrumb.tsx +0 -109
  363. package/src/components/ui/button-group.tsx +0 -83
  364. package/src/components/ui/button.tsx +0 -60
  365. package/src/components/ui/calendar.tsx +0 -216
  366. package/src/components/ui/card.tsx +0 -92
  367. package/src/components/ui/carousel.tsx +0 -241
  368. package/src/components/ui/chart.tsx +0 -357
  369. package/src/components/ui/checkbox.tsx +0 -32
  370. package/src/components/ui/collapsible.tsx +0 -33
  371. package/src/components/ui/command.tsx +0 -184
  372. package/src/components/ui/context-menu.tsx +0 -252
  373. package/src/components/ui/dialog.tsx +0 -143
  374. package/src/components/ui/drawer.tsx +0 -135
  375. package/src/components/ui/dropdown-menu.tsx +0 -257
  376. package/src/components/ui/empty.tsx +0 -104
  377. package/src/components/ui/field.tsx +0 -248
  378. package/src/components/ui/form.tsx +0 -167
  379. package/src/components/ui/hover-card.tsx +0 -44
  380. package/src/components/ui/input-group.tsx +0 -170
  381. package/src/components/ui/input-otp.tsx +0 -77
  382. package/src/components/ui/input.tsx +0 -21
  383. package/src/components/ui/item.tsx +0 -193
  384. package/src/components/ui/kbd.tsx +0 -28
  385. package/src/components/ui/label.tsx +0 -24
  386. package/src/components/ui/menubar.tsx +0 -276
  387. package/src/components/ui/navigation-menu.tsx +0 -168
  388. package/src/components/ui/pagination.tsx +0 -127
  389. package/src/components/ui/popover.tsx +0 -48
  390. package/src/components/ui/progress.tsx +0 -31
  391. package/src/components/ui/radio-group.tsx +0 -45
  392. package/src/components/ui/resizable.tsx +0 -56
  393. package/src/components/ui/scroll-area.tsx +0 -58
  394. package/src/components/ui/select.tsx +0 -187
  395. package/src/components/ui/separator.tsx +0 -28
  396. package/src/components/ui/sheet.tsx +0 -139
  397. package/src/components/ui/sidebar.tsx +0 -726
  398. package/src/components/ui/skeleton.tsx +0 -13
  399. package/src/components/ui/slider.tsx +0 -63
  400. package/src/components/ui/sonner.tsx +0 -40
  401. package/src/components/ui/spinner.tsx +0 -16
  402. package/src/components/ui/switch.tsx +0 -31
  403. package/src/components/ui/table.tsx +0 -116
  404. package/src/components/ui/tabs.tsx +0 -66
  405. package/src/components/ui/textarea.tsx +0 -18
  406. package/src/components/ui/toggle-group.tsx +0 -83
  407. package/src/components/ui/toggle.tsx +0 -47
  408. package/src/components/ui/tooltip.tsx +0 -61
  409. package/src/exports/components.ts +0 -15
  410. package/src/exports/index.ts +0 -4
  411. package/src/exports/providers.ts +0 -4
  412. package/src/exports/types.ts +0 -26
  413. package/src/hooks/use-ai-chat.ts +0 -182
  414. package/src/hooks/use-all-connections.ts +0 -66
  415. package/src/hooks/use-api-call.ts +0 -71
  416. package/src/hooks/use-auth.ts +0 -51
  417. package/src/hooks/use-connection-form.ts +0 -349
  418. package/src/hooks/use-connection-manager.ts +0 -169
  419. package/src/hooks/use-connection-payload.ts +0 -15
  420. package/src/hooks/use-inline-editing.ts +0 -109
  421. package/src/hooks/use-mobile.ts +0 -20
  422. package/src/hooks/use-monitoring-data.ts +0 -270
  423. package/src/hooks/use-provider-metadata.ts +0 -62
  424. package/src/hooks/use-query-execution.ts +0 -478
  425. package/src/hooks/use-storage-sync.ts +0 -259
  426. package/src/hooks/use-tab-manager.ts +0 -231
  427. package/src/hooks/use-toast.ts +0 -20
  428. package/src/hooks/use-transaction-control.ts +0 -64
  429. package/src/lib/api/error-codes.ts +0 -30
  430. package/src/lib/api/errors.ts +0 -236
  431. package/src/lib/api/with-error-handler.ts +0 -41
  432. package/src/lib/audit.ts +0 -105
  433. package/src/lib/auth.ts +0 -87
  434. package/src/lib/connection-string-parser.ts +0 -172
  435. package/src/lib/data-masking.ts +0 -385
  436. package/src/lib/db/base-provider.ts +0 -325
  437. package/src/lib/db/errors.ts +0 -317
  438. package/src/lib/db/factory.ts +0 -324
  439. package/src/lib/db/index.ts +0 -123
  440. package/src/lib/db/providers/document/index.ts +0 -6
  441. package/src/lib/db/providers/document/mongodb.ts +0 -992
  442. package/src/lib/db/providers/keyvalue/redis.ts +0 -554
  443. package/src/lib/db/providers/sql/index.ts +0 -11
  444. package/src/lib/db/providers/sql/sql-base.ts +0 -174
  445. package/src/lib/db/providers/sql/sqlite.ts +0 -721
  446. package/src/lib/db/types.ts +0 -437
  447. package/src/lib/db/utils/pool-manager.ts +0 -287
  448. package/src/lib/db/utils/query-limiter.ts +0 -239
  449. package/src/lib/db-ui-config.ts +0 -86
  450. package/src/lib/editor/mongodb-completions.ts +0 -172
  451. package/src/lib/editor/sql-completions.ts +0 -280
  452. package/src/lib/llm/base-provider.ts +0 -117
  453. package/src/lib/llm/factory.ts +0 -102
  454. package/src/lib/llm/index.ts +0 -90
  455. package/src/lib/llm/providers/custom.ts +0 -181
  456. package/src/lib/llm/providers/gemini.ts +0 -126
  457. package/src/lib/llm/providers/ollama.ts +0 -154
  458. package/src/lib/llm/providers/openai.ts +0 -146
  459. package/src/lib/llm/types.ts +0 -173
  460. package/src/lib/llm/utils/config.ts +0 -187
  461. package/src/lib/llm/utils/retry.ts +0 -119
  462. package/src/lib/llm/utils/streaming.ts +0 -202
  463. package/src/lib/logger.ts +0 -127
  464. package/src/lib/monitoring-thresholds.ts +0 -44
  465. package/src/lib/oidc.ts +0 -262
  466. package/src/lib/query-generators.ts +0 -61
  467. package/src/lib/schema-diff/diff-engine.ts +0 -273
  468. package/src/lib/schema-diff/migration-generator.ts +0 -208
  469. package/src/lib/schema-diff/types.ts +0 -55
  470. package/src/lib/seed/config-loader.ts +0 -79
  471. package/src/lib/seed/connection-filter.ts +0 -49
  472. package/src/lib/seed/credential-resolver.ts +0 -62
  473. package/src/lib/seed/index.ts +0 -40
  474. package/src/lib/seed/resolve-connection.ts +0 -57
  475. package/src/lib/seed/types.ts +0 -69
  476. package/src/lib/sql/alias-extractor.ts +0 -267
  477. package/src/lib/sql/index.ts +0 -8
  478. package/src/lib/sql/statement-splitter.ts +0 -167
  479. package/src/lib/sql/types.ts +0 -40
  480. package/src/lib/ssh/tunnel.ts +0 -142
  481. package/src/lib/storage/factory.ts +0 -84
  482. package/src/lib/storage/index.ts +0 -14
  483. package/src/lib/storage/local-storage.ts +0 -99
  484. package/src/lib/storage/providers/postgres.ts +0 -225
  485. package/src/lib/storage/providers/sqlite.ts +0 -153
  486. package/src/lib/storage/storage-facade.ts +0 -272
  487. package/src/lib/storage/types.ts +0 -75
  488. package/src/lib/time-series-buffer.ts +0 -58
  489. package/src/lib/types.ts +0 -173
  490. package/src/lib/utils.ts +0 -6
  491. package/src/proxy.ts +0 -104
  492. package/src/types/db-drivers.d.ts +0 -23
  493. package/src/types/html2canvas.d.ts +0 -9
  494. package/tests/api/admin/audit.test.ts +0 -178
  495. package/tests/api/admin/fleet-health.test.ts +0 -183
  496. package/tests/api/ai/autopilot.test.ts +0 -174
  497. package/tests/api/ai/chat.test.ts +0 -250
  498. package/tests/api/ai/describe-schema.test.ts +0 -266
  499. package/tests/api/ai/explain.test.ts +0 -199
  500. package/tests/api/ai/impact.test.ts +0 -168
  501. package/tests/api/ai/index-advisor.test.ts +0 -171
  502. package/tests/api/ai/nl2sql.test.ts +0 -202
  503. package/tests/api/ai/query-safety.test.ts +0 -196
  504. package/tests/api/auth/login.test.ts +0 -170
  505. package/tests/api/auth/logout.test.ts +0 -140
  506. package/tests/api/auth/me.test.ts +0 -73
  507. package/tests/api/auth/oidc-callback.test.ts +0 -215
  508. package/tests/api/auth/oidc-login.test.ts +0 -127
  509. package/tests/api/db/cancel.test.ts +0 -198
  510. package/tests/api/db/disconnect.test.ts +0 -124
  511. package/tests/api/db/health.test.ts +0 -222
  512. package/tests/api/db/maintenance.test.ts +0 -263
  513. package/tests/api/db/monitoring.test.ts +0 -221
  514. package/tests/api/db/multi-query.test.ts +0 -316
  515. package/tests/api/db/pool-stats.test.ts +0 -135
  516. package/tests/api/db/profile.test.ts +0 -330
  517. package/tests/api/db/provider-meta.test.ts +0 -193
  518. package/tests/api/db/query.test.ts +0 -314
  519. package/tests/api/db/schema-snapshot.test.ts +0 -170
  520. package/tests/api/db/schema.test.ts +0 -191
  521. package/tests/api/db/test-connection.test.ts +0 -185
  522. package/tests/api/db/transaction.test.ts +0 -314
  523. package/tests/api/proxy.test.ts +0 -191
  524. package/tests/api/seed/managed-route.test.ts +0 -113
  525. package/tests/api/storage/config.test.ts +0 -42
  526. package/tests/api/storage/storage-routes.test.ts +0 -309
  527. package/tests/components/AIAutopilotPanel.test.tsx +0 -756
  528. package/tests/components/AdminPage.test.tsx +0 -33
  529. package/tests/components/CodeGenerator.test.tsx +0 -182
  530. package/tests/components/CommandPalette.test.tsx +0 -428
  531. package/tests/components/CommunitySection.test.tsx +0 -91
  532. package/tests/components/ConnectionModal.mobile.test.tsx +0 -284
  533. package/tests/components/ConnectionModal.test.tsx +0 -570
  534. package/tests/components/CreateTableModal.test.tsx +0 -383
  535. package/tests/components/DataCharts.test.tsx +0 -739
  536. package/tests/components/DataImportModal.test.tsx +0 -751
  537. package/tests/components/DataProfiler.test.tsx +0 -589
  538. package/tests/components/DatabaseDocs.test.tsx +0 -353
  539. package/tests/components/LoginPage.test.tsx +0 -163
  540. package/tests/components/LoginPageOIDC.test.tsx +0 -92
  541. package/tests/components/MaskingSettings.test.tsx +0 -498
  542. package/tests/components/MobileNav.test.tsx +0 -30
  543. package/tests/components/MonitoringPage.test.tsx +0 -32
  544. package/tests/components/NL2SQLPanel.test.tsx +0 -621
  545. package/tests/components/Page.test.tsx +0 -33
  546. package/tests/components/PivotTable.test.tsx +0 -350
  547. package/tests/components/QueryEditor.test.tsx +0 -1730
  548. package/tests/components/QueryHistory.test.tsx +0 -572
  549. package/tests/components/QuerySafetyDialog.test.tsx +0 -586
  550. package/tests/components/ResultsGrid.test.tsx +0 -804
  551. package/tests/components/RootLayout.test.tsx +0 -83
  552. package/tests/components/SaveQueryModal.test.tsx +0 -25
  553. package/tests/components/SavedQueries.test.tsx +0 -43
  554. package/tests/components/SchemaDiagram.test.tsx +0 -1034
  555. package/tests/components/SchemaDiff.test.tsx +0 -906
  556. package/tests/components/SnapshotTimeline.test.tsx +0 -174
  557. package/tests/components/Studio.test.tsx +0 -1030
  558. package/tests/components/TestDataGenerator.test.tsx +0 -291
  559. package/tests/components/VisualExplain.test.tsx +0 -704
  560. package/tests/components/admin/AdminDashboard.test.tsx +0 -205
  561. package/tests/components/admin/AuditTab.test.tsx +0 -220
  562. package/tests/components/admin/MonitoringEmbed.test.tsx +0 -58
  563. package/tests/components/admin/OperationsTab.test.tsx +0 -975
  564. package/tests/components/admin/OverviewTab.test.tsx +0 -254
  565. package/tests/components/admin/SecurityTab.test.tsx +0 -467
  566. package/tests/components/monitoring/MetricChart.test.tsx +0 -111
  567. package/tests/components/monitoring/MonitoringDashboard.test.tsx +0 -259
  568. package/tests/components/monitoring/OverviewTab.test.tsx +0 -78
  569. package/tests/components/monitoring/PerformanceTab.test.tsx +0 -87
  570. package/tests/components/monitoring/PoolTab.test.tsx +0 -42
  571. package/tests/components/monitoring/QueriesTab.test.tsx +0 -80
  572. package/tests/components/monitoring/SessionsTab.test.tsx +0 -154
  573. package/tests/components/monitoring/StorageTab.test.tsx +0 -127
  574. package/tests/components/monitoring/TablesTab.test.tsx +0 -153
  575. package/tests/components/results-grid/ResultCard.test.tsx +0 -105
  576. package/tests/components/results-grid/RowDetailSheet.test.tsx +0 -308
  577. package/tests/components/results-grid/StatsBar.test.tsx +0 -162
  578. package/tests/components/schema-explorer/ColumnList.test.tsx +0 -151
  579. package/tests/components/schema-explorer/SchemaExplorer.test.tsx +0 -461
  580. package/tests/components/schema-explorer/TableItem.test.tsx +0 -415
  581. package/tests/components/sidebar/ConnectionItem.test.tsx +0 -201
  582. package/tests/components/sidebar/ConnectionsList.test.tsx +0 -176
  583. package/tests/components/sidebar/Sidebar.test.tsx +0 -187
  584. package/tests/components/studio/BottomPanel.test.tsx +0 -383
  585. package/tests/components/studio/QueryToolbar.test.tsx +0 -321
  586. package/tests/components/studio/StudioDesktopHeader.test.tsx +0 -377
  587. package/tests/components/studio/StudioMobileHeader.test.tsx +0 -198
  588. package/tests/components/studio/StudioTabBar.test.tsx +0 -331
  589. package/tests/fixtures/connections.ts +0 -96
  590. package/tests/fixtures/masking-configs.ts +0 -86
  591. package/tests/fixtures/query-results.ts +0 -71
  592. package/tests/fixtures/schemas.ts +0 -64
  593. package/tests/fixtures/seed-connections/invalid-config.yaml +0 -7
  594. package/tests/fixtures/seed-connections/minimal-config.yaml +0 -8
  595. package/tests/fixtures/seed-connections/mixed-credentials.yaml +0 -23
  596. package/tests/fixtures/seed-connections/multi-role-config.yaml +0 -30
  597. package/tests/fixtures/seed-connections/valid-config.json +0 -15
  598. package/tests/fixtures/seed-connections/valid-config.yaml +0 -51
  599. package/tests/helpers/mock-fetch.ts +0 -59
  600. package/tests/helpers/mock-monaco.ts +0 -112
  601. package/tests/helpers/mock-navigation.ts +0 -28
  602. package/tests/helpers/mock-next.ts +0 -80
  603. package/tests/helpers/mock-provider.ts +0 -133
  604. package/tests/helpers/mock-sonner.ts +0 -29
  605. package/tests/helpers/render-with-providers.tsx +0 -19
  606. package/tests/hooks/use-ai-chat.test.ts +0 -600
  607. package/tests/hooks/use-auth.test.ts +0 -371
  608. package/tests/hooks/use-connection-form.test.ts +0 -743
  609. package/tests/hooks/use-connection-manager.test.ts +0 -466
  610. package/tests/hooks/use-inline-editing.test.ts +0 -321
  611. package/tests/hooks/use-mobile.test.ts +0 -177
  612. package/tests/hooks/use-monitoring-data.test.ts +0 -819
  613. package/tests/hooks/use-provider-metadata.test.ts +0 -228
  614. package/tests/hooks/use-query-execution.test.ts +0 -1212
  615. package/tests/hooks/use-tab-manager.test.ts +0 -756
  616. package/tests/hooks/use-toast.test.ts +0 -74
  617. package/tests/hooks/use-transaction-control.test.ts +0 -211
  618. package/tests/integration/db/mongodb-provider.test.ts +0 -698
  619. package/tests/integration/db/mssql-provider.test.ts +0 -840
  620. package/tests/integration/db/mysql-provider.test.ts +0 -872
  621. package/tests/integration/db/oracle-provider.test.ts +0 -843
  622. package/tests/integration/db/postgres-provider.test.ts +0 -1382
  623. package/tests/integration/db/redis-provider.test.ts +0 -526
  624. package/tests/integration/db/sqlite-provider.test.ts +0 -480
  625. package/tests/integration/seed/seed-pipeline.test.ts +0 -102
  626. package/tests/isolated/factory-singleton.test.ts +0 -150
  627. package/tests/isolated/use-storage-sync.test.ts +0 -389
  628. package/tests/run-components.sh +0 -196
  629. package/tests/setup-dom.ts +0 -58
  630. package/tests/setup.ts +0 -40
  631. package/tests/unit/api-errors.test.ts +0 -210
  632. package/tests/unit/code-generator-functions.test.ts +0 -271
  633. package/tests/unit/components/column-list.test.tsx +0 -190
  634. package/tests/unit/components/data-import-modal.test.tsx +0 -441
  635. package/tests/unit/components/studio-mobile-header.test.tsx +0 -327
  636. package/tests/unit/data-charts-functions.test.ts +0 -496
  637. package/tests/unit/data-import-functions.test.ts +0 -320
  638. package/tests/unit/data-import-utils.test.ts +0 -125
  639. package/tests/unit/db/base-provider.test.ts +0 -517
  640. package/tests/unit/db/errors.test.ts +0 -403
  641. package/tests/unit/db/factory.test.ts +0 -436
  642. package/tests/unit/db/pool-manager.test.ts +0 -440
  643. package/tests/unit/db/query-limiter.test.ts +0 -387
  644. package/tests/unit/db/sql-base.test.ts +0 -438
  645. package/tests/unit/lib/api/error-codes.test.ts +0 -39
  646. package/tests/unit/lib/audit.test.ts +0 -326
  647. package/tests/unit/lib/auth.test.ts +0 -146
  648. package/tests/unit/lib/connection-string-parser.test.ts +0 -424
  649. package/tests/unit/lib/data-masking.test.ts +0 -583
  650. package/tests/unit/lib/db-icons.test.tsx +0 -41
  651. package/tests/unit/lib/monitoring-thresholds.test.ts +0 -133
  652. package/tests/unit/lib/oidc.test.ts +0 -509
  653. package/tests/unit/lib/query-generators.test.ts +0 -127
  654. package/tests/unit/lib/storage/factory.test.ts +0 -71
  655. package/tests/unit/lib/storage/local-storage.test.ts +0 -114
  656. package/tests/unit/lib/storage/providers/postgres.test.ts +0 -312
  657. package/tests/unit/lib/storage/providers/sqlite.test.ts +0 -232
  658. package/tests/unit/lib/storage/storage-facade-extended.test.ts +0 -331
  659. package/tests/unit/lib/storage/storage-facade.test.ts +0 -184
  660. package/tests/unit/lib/storage.test.ts +0 -317
  661. package/tests/unit/lib/time-series-buffer.test.ts +0 -212
  662. package/tests/unit/lib/utils.test.ts +0 -24
  663. package/tests/unit/llm/base-provider.test.ts +0 -238
  664. package/tests/unit/llm/config.test.ts +0 -262
  665. package/tests/unit/llm/custom-provider.test.ts +0 -281
  666. package/tests/unit/llm/gemini-provider.test.ts +0 -248
  667. package/tests/unit/llm/llm-factory.test.ts +0 -155
  668. package/tests/unit/llm/ollama-provider.test.ts +0 -288
  669. package/tests/unit/llm/openai-provider.test.ts +0 -324
  670. package/tests/unit/llm/retry.test.ts +0 -180
  671. package/tests/unit/llm/streaming.test.ts +0 -355
  672. package/tests/unit/logger.test.ts +0 -198
  673. package/tests/unit/mongodb-completions.test.ts +0 -516
  674. package/tests/unit/pivot-table-functions.test.ts +0 -76
  675. package/tests/unit/query-cancelled-error.test.ts +0 -81
  676. package/tests/unit/schema-diff/diff-engine.test.ts +0 -367
  677. package/tests/unit/schema-diff/migration-generator.test.ts +0 -513
  678. package/tests/unit/seed/config-loader.test.ts +0 -73
  679. package/tests/unit/seed/connection-filter.test.ts +0 -91
  680. package/tests/unit/seed/credential-resolver.test.ts +0 -85
  681. package/tests/unit/seed/index.test.ts +0 -72
  682. package/tests/unit/seed/resolve-connection.test.ts +0 -74
  683. package/tests/unit/seed/types.test.ts +0 -129
  684. package/tests/unit/sql/alias-extractor.test.ts +0 -444
  685. package/tests/unit/sql/statement-splitter.test.ts +0 -348
  686. package/tests/unit/sql-completions.test.ts +0 -463
  687. package/tests/unit/ssh-tunnel.test.ts +0 -465
  688. package/tsconfig.json +0 -42
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@libredb/studio",
3
- "version": "0.9.7",
3
+ "version": "0.9.13",
4
4
  "private": false,
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -9,12 +9,64 @@
9
9
  "type": "git",
10
10
  "url": "https://github.com/libredb/libredb-studio"
11
11
  },
12
+ "main": "./dist/index.js",
13
+ "module": "./dist/index.mjs",
14
+ "types": "./dist/index.d.ts",
12
15
  "exports": {
13
- ".": "./src/exports/index.ts",
14
- "./components": "./src/exports/components.ts",
15
- "./providers": "./src/exports/providers.ts",
16
- "./types": "./src/exports/types.ts"
16
+ ".": {
17
+ "import": {
18
+ "types": "./dist/index.d.mts",
19
+ "default": "./dist/index.mjs"
20
+ },
21
+ "require": {
22
+ "types": "./dist/index.d.ts",
23
+ "default": "./dist/index.js"
24
+ }
25
+ },
26
+ "./providers": {
27
+ "import": {
28
+ "types": "./dist/providers.d.mts",
29
+ "default": "./dist/providers.mjs"
30
+ },
31
+ "require": {
32
+ "types": "./dist/providers.d.ts",
33
+ "default": "./dist/providers.js"
34
+ }
35
+ },
36
+ "./types": {
37
+ "import": {
38
+ "types": "./dist/types.d.mts",
39
+ "default": "./dist/types.mjs"
40
+ },
41
+ "require": {
42
+ "types": "./dist/types.d.ts",
43
+ "default": "./dist/types.js"
44
+ }
45
+ },
46
+ "./components": {
47
+ "import": {
48
+ "types": "./dist/components.d.mts",
49
+ "default": "./dist/components.mjs"
50
+ },
51
+ "require": {
52
+ "types": "./dist/components.d.ts",
53
+ "default": "./dist/components.js"
54
+ }
55
+ },
56
+ "./workspace": {
57
+ "import": {
58
+ "types": "./dist/workspace.d.mts",
59
+ "default": "./dist/workspace.mjs"
60
+ },
61
+ "require": {
62
+ "types": "./dist/workspace.d.ts",
63
+ "default": "./dist/workspace.js"
64
+ }
65
+ }
17
66
  },
67
+ "files": [
68
+ "dist"
69
+ ],
18
70
  "peerDependencies": {
19
71
  "react": "^19",
20
72
  "react-dom": "^19"
@@ -22,6 +74,8 @@
22
74
  "scripts": {
23
75
  "dev": "next dev",
24
76
  "build": "next build",
77
+ "build:lib": "tsup",
78
+ "prepublishOnly": "tsup",
25
79
  "start": "next start",
26
80
  "lint": "eslint .",
27
81
  "typecheck": "tsc --noEmit",
@@ -124,6 +178,7 @@
124
178
  "eslint-config-next": "^16.1.6",
125
179
  "happy-dom": "^20.6.1",
126
180
  "tailwindcss": "^4",
181
+ "tsup": "^8.5.1",
127
182
  "tw-animate-css": "^1.4.0",
128
183
  "typescript": "^5"
129
184
  }
@@ -1,127 +0,0 @@
1
- {
2
- "permissions": {
3
- "allow": [
4
- "Bash(grep:*)",
5
- "Bash(find:*)",
6
- "Bash(xargs:*)",
7
- "Bash(bun run lint:*)",
8
- "Bash(npx tsc:*)",
9
- "Bash(bun run build:*)",
10
- "Bash(bun add:*)",
11
- "Bash(bun create:*)",
12
- "Bash(bun remove:*)",
13
- "Bash(ls:*)",
14
- "Bash(bun pm ls:*)",
15
- "Bash(npm ls:*)",
16
- "Bash(npm audit:*)",
17
- "Bash(docker network:*)",
18
- "Bash(docker ps:*)",
19
- "Bash(docker build:*)",
20
- "Bash(.)",
21
- "Bash(docker rm:*)",
22
- "Bash(docker run:*)",
23
- "Bash(libredb-studio:test)",
24
- "Bash(curl:*)",
25
- "WebFetch(domain:ui.shadcn.com)",
26
- "WebFetch(domain:www.shadcnblocks.com)",
27
- "Bash(PGPASSWORD='npg_qMrKIcQ0X6hn' psql:*)",
28
- "Bash(PGPASSWORD='readonly_secure_pass_2024' psql:*)",
29
- "Bash(docker logs:*)",
30
- "Bash(docker stop:*)",
31
- "Bash(libredb-test:*)",
32
- "Bash(PGPASSWORD='npg_qMrKIcQ0X6hn' psql -h ep-falling-morning-ag8brons-pooler.c-2.eu-central-1.aws.neon.tech -U neondb_owner -d employees -c \"\nSELECT table_name\nFROM information_schema.tables\nWHERE table_schema = ''employees''\nORDER BY table_name;\n\")",
33
- "mcp__ide__getDiagnostics",
34
- "Bash(lsof:*)",
35
- "WebFetch(domain:github.com)",
36
- "Bash(claude mcp add:*)",
37
- "mcp__playwright",
38
- "WebSearch",
39
- "Bash(wc:*)",
40
- "Bash(fuser:*)",
41
- "Bash(pkill:*)",
42
- "Bash(npm run build:*)",
43
- "Bash(source:*)",
44
- "Bash(echo $ADMIN_PASSWORD)",
45
- "Bash(echo $USER_PASSWORD)",
46
- "Bash(mysql:*)",
47
- "Bash(bun dev)",
48
- "Bash(echo:*)",
49
- "Bash(git -C /home/cevheri/projects/cevheribozoglan/libredb-studio status)",
50
- "Bash(git -C /home/cevheri/projects/cevheribozoglan/libredb-studio diff --stat)",
51
- "Bash(git -C /home/cevheri/projects/cevheribozoglan/libredb-studio log --oneline -5)",
52
- "Bash(git -C /home/cevheri/projects/cevheribozoglan/libredb-studio diff src/components/Studio.tsx src/components/monitoring/MonitoringDashboard.tsx src/lib/db/providers/sql/mysql.ts src/lib/storage.ts)",
53
- "Bash(docker exec:*)",
54
- "Bash(docker compose:*)",
55
- "Bash(PGPASSWORD=postgres psql:*)",
56
- "Bash(bun --version:*)",
57
- "Bash(bun test:*)",
58
- "Bash(bun -e:*)",
59
- "Bash(node:*)",
60
- "Bash(while read f)",
61
- "Bash(do)",
62
- "Bash(if ! grep -q 'cleanup' \"$f\")",
63
- "Bash(then)",
64
- "Bash(fi)",
65
- "Bash(done)",
66
- "Bash(/home/cevheri/projects/cevheribozoglan/libredb-studio/tests/_debug-screen.test.tsx:*)",
67
- "Bash(__NEW_LINE_b497933af27a2c60__ bun test tests/_debug-screen.test.tsx)",
68
- "Bash(# Test::*)",
69
- "Bash(git stash:*)",
70
- "Bash(tests/_debug_tabs.test.tsx:*)",
71
- "Bash(bun run test:*)",
72
- "Bash(bun run:*)",
73
- "Bash(bunx playwright install:*)",
74
- "Bash(bunx playwright test:*)",
75
- "Bash(npx eslint:*)",
76
- "Bash(bunx eslint:*)",
77
- "Bash(chmod:*)",
78
- "Bash(bash tests/run-components.sh)",
79
- "Bash(gh run list:*)",
80
- "Bash(bash)",
81
- "Bash(~/.bun/bin/bun:*)",
82
- "Bash(tar:*)",
83
- "Bash(/tmp/gh_2.65.0_linux_amd64/bin/gh:*)",
84
- "Bash(cat:*)",
85
- "Bash(for i in 1 2 3)",
86
- "Bash(do echo \"=== Run $i ===\")",
87
- "Bash(genhtml:*)",
88
- "Bash(/tmp/debug-schema-diff.tsx:*)",
89
- "Bash(python3:*)",
90
- "Bash(/tmp/test-login-debug.tsx:*)",
91
- "Bash(/home/cevheri/projects/cevheribozoglan/libredb-studio/tests/_debug_login.tsx:*)",
92
- "Bash(/tmp/bad-test.test.ts:*)",
93
- "Bash(bunx tsc:*)",
94
- "WebFetch(domain:registry.npmjs.org)",
95
- "WebFetch(domain:libredb.eu.auth0.com)",
96
- "Bash(psql:*)",
97
- "WebFetch(domain:railway.com)",
98
- "WebFetch(domain:render.com)",
99
- "WebFetch(domain:fly.io)",
100
- "WebFetch(domain:coolify.io)",
101
- "WebFetch(domain:northflank.com)",
102
- "WebFetch(domain:www.koyeb.com)",
103
- "WebFetch(domain:zeabur.com)",
104
- "WebFetch(domain:www.porter.run)",
105
- "WebFetch(domain:www.digitalocean.com)",
106
- "WebFetch(domain:aws.amazon.com)",
107
- "WebFetch(domain:sliplane.io)",
108
- "WebFetch(domain:neon.com)",
109
- "WebFetch(domain:supabase.com)",
110
- "WebFetch(domain:xata.io)",
111
- "WebFetch(domain:www.tembo.io)",
112
- "WebFetch(domain:docs.digitalocean.com)",
113
- "WebFetch(domain:planetscale.com)",
114
- "WebFetch(domain:azure.microsoft.com)",
115
- "WebFetch(domain:developers.cloudflare.com)",
116
- "WebFetch(domain:www.analyticsvidhya.com)",
117
- "Bash(unzip:*)",
118
- "WebFetch(domain:helm.sh)",
119
- "WebFetch(domain:artifacthub.io)",
120
- "WebFetch(domain:libredb.org)"
121
- ]
122
- },
123
- "enableAllProjectMcpServers": true,
124
- "enabledMcpjsonServers": [
125
- "playwright"
126
- ]
127
- }
package/.cursorrules DELETED
@@ -1,426 +0,0 @@
1
- # LibreDB Studio - Cursor Rules
2
-
3
- This file provides comprehensive guidance for AI assistants and developers working on LibreDB Studio. Follow these rules to maintain code quality, consistency, and architectural integrity.
4
-
5
- ## Project Overview
6
-
7
- LibreDB Studio is a modern, AI-powered, open-source SQL IDE for cloud-native teams. It provides a web-based interface for managing PostgreSQL, MySQL, SQLite, and MongoDB databases with features like AI-assisted query generation, visual schema exploration, and real-time monitoring.
8
-
9
- **Key Characteristics:**
10
- - Mobile-first, professional-always design philosophy
11
- - Zero-install browser-based solution
12
- - Multi-database support via Strategy Pattern
13
- - AI-native with multi-model LLM support (Gemini, OpenAI, Ollama, Custom)
14
- - Enterprise-grade with RBAC, query auditing, and health monitoring
15
-
16
- ## Tech Stack
17
-
18
- ### Core Framework
19
- - **Next.js 15** (App Router) with React 19
20
- - **TypeScript** (strict mode enabled)
21
- - **Bun** (preferred runtime) or Node.js 20+
22
- - **Tailwind CSS 4** with `@theme inline` theming
23
- - **shadcn/ui** components (Radix UI primitives)
24
-
25
- ### Key Libraries
26
- - **Monaco Editor** - SQL editor (VS Code engine)
27
- - **TanStack Table & Virtual** - Virtualized data grids
28
- - **Framer Motion** - Animations
29
- - **Jose** - JWT authentication
30
- - **Zod** - Runtime type validation
31
- - **React Hook Form** - Form management
32
-
33
- ### Database Drivers
34
- - PostgreSQL: `pg`
35
- - MySQL: `mysql2`
36
- - SQLite: `better-sqlite3` (via dynamic import)
37
- - MongoDB: `mongodb`
38
-
39
- ## Code Style & Conventions
40
-
41
- ### TypeScript
42
-
43
- - **Always use TypeScript** - No JavaScript files unless absolutely necessary
44
- - **Strict mode** - TypeScript strict mode is enabled, respect it
45
- - **Avoid `any`** - Use `unknown` or proper types instead. If `any` is unavoidable, add a comment explaining why
46
- - **Explicit types** - Prefer explicit return types for functions, especially public APIs
47
- - **Type imports** - Use `import type` for type-only imports
48
- - **Interfaces over types** - Prefer `interface` for object shapes, use `type` for unions, intersections, and aliases
49
-
50
- ```typescript
51
- // ✅ Good
52
- interface DatabaseConnection {
53
- id: string;
54
- name: string;
55
- type: DatabaseType;
56
- }
57
-
58
- type DatabaseType = 'postgres' | 'mysql' | 'sqlite' | 'mongodb' | 'redis' | 'oracle' | 'mssql';
59
-
60
- // ❌ Bad
61
- type DatabaseConnection = {
62
- id: string;
63
- name: string;
64
- }
65
- ```
66
-
67
- ### Naming Conventions
68
-
69
- - **Files**: kebab-case for components (`query-editor.tsx`), PascalCase for components (`QueryEditor.tsx`)
70
- - **Components**: PascalCase (`QueryEditor`, `Dashboard`)
71
- - **Functions/Variables**: camelCase (`fetchUser`, `activeConnection`)
72
- - **Constants**: UPPER_SNAKE_CASE (`DEFAULT_TIMEOUT`, `MAX_POOL_SIZE`)
73
- - **Types/Interfaces**: PascalCase (`DatabaseConnection`, `QueryResult`)
74
- - **Hooks**: camelCase starting with `use` (`useToast`, `useMonitoringData`)
75
- - **API Routes**: kebab-case (`/api/db/query`, `/api/auth/login`)
76
-
77
- ### React Patterns
78
-
79
- - **Functional components only** - No class components
80
- - **Hooks over HOCs** - Prefer custom hooks for shared logic
81
- - **Server Components by default** - Use `"use client"` only when necessary (interactivity, hooks, browser APIs)
82
- - **Component organization**:
83
- ```typescript
84
- // 1. Imports (external, then internal)
85
- // 2. Types/Interfaces
86
- // 3. Component
87
- // 4. Exports
88
- ```
89
- - **Props destructuring** - Destructure props in function signature
90
- - **Memoization** - Use `useMemo`/`useCallback` sparingly, only for expensive computations or stable references
91
-
92
- ```typescript
93
- // ✅ Good
94
- export default function QueryEditor({ query, onChange }: QueryEditorProps) {
95
- const handleChange = useCallback((value: string) => {
96
- onChange(value);
97
- }, [onChange]);
98
-
99
- return <MonacoEditor value={query} onChange={handleChange} />;
100
- }
101
-
102
- // ❌ Bad
103
- export default function QueryEditor(props: QueryEditorProps) {
104
- return <MonacoEditor value={props.query} onChange={props.onChange} />;
105
- }
106
- ```
107
-
108
- ### File Organization
109
-
110
- ```
111
- src/
112
- ├── app/ # Next.js App Router
113
- │ ├── api/ # API routes (REST endpoints)
114
- │ ├── (pages)/ # Page components
115
- │ └── layout.tsx # Root layout
116
- ├── components/ # React components
117
- │ ├── ui/ # shadcn/ui primitives
118
- │ └── [Feature].tsx # Feature components
119
- ├── hooks/ # Custom React hooks
120
- ├── lib/ # Utilities and business logic
121
- │ ├── db/ # Database providers (Strategy Pattern)
122
- │ ├── llm/ # LLM providers (Strategy Pattern)
123
- │ └── utils.ts # General utilities
124
- └── types.ts # Shared TypeScript types
125
- ```
126
-
127
- ### Import Order
128
-
129
- 1. External dependencies (React, Next.js, third-party)
130
- 2. Internal absolute imports (`@/components`, `@/lib`)
131
- 3. Relative imports (`./types`, `../utils`)
132
- 4. Type-only imports last (if separate)
133
-
134
- ```typescript
135
- // ✅ Good
136
- import { useState } from 'react';
137
- import { NextRequest, NextResponse } from 'next/server';
138
- import { Button } from '@/components/ui/button';
139
- import { cn } from '@/lib/utils';
140
- import type { DatabaseConnection } from '@/lib/types';
141
- ```
142
-
143
- ## Architecture Patterns
144
-
145
- ### Strategy Pattern for Providers
146
-
147
- Both database and LLM providers use the Strategy Pattern:
148
-
149
- ```typescript
150
- // Base interface
151
- interface DatabaseProvider {
152
- connect(): Promise<void>;
153
- query(sql: string): Promise<QueryResult>;
154
- disconnect(): Promise<void>;
155
- }
156
-
157
- // Implementation
158
- class PostgresProvider extends SQLBaseProvider implements DatabaseProvider {
159
- // Implementation
160
- }
161
-
162
- // Factory
163
- export async function createDatabaseProvider(
164
- connection: DatabaseConnection
165
- ): Promise<DatabaseProvider> {
166
- switch (connection.type) {
167
- case 'postgres':
168
- const { PostgresProvider } = await import('./providers/sql/postgres');
169
- return new PostgresProvider(connection);
170
- // ...
171
- }
172
- }
173
- ```
174
-
175
- **Key Points:**
176
- - Use dynamic imports for providers to reduce initial bundle size
177
- - All providers implement the same interface
178
- - Factory function handles provider creation
179
- - Cache providers for connection reuse
180
-
181
- ### API Routes
182
-
183
- - **Error handling** - Always use try-catch, return appropriate HTTP status codes
184
- - **Type safety** - Validate request bodies with Zod when needed
185
- - **Authentication** - Check JWT via middleware or `getUserFromRequest()`
186
- - **Response format** - Consistent JSON structure: `{ data?, error?, code? }`
187
-
188
- ```typescript
189
- // ✅ Good
190
- export async function POST(req: NextRequest) {
191
- try {
192
- const { connection, sql } = await req.json();
193
-
194
- if (!connection || !sql) {
195
- return NextResponse.json(
196
- { error: 'Connection and SQL query are required' },
197
- { status: 400 }
198
- );
199
- }
200
-
201
- const provider = await getOrCreateProvider(connection);
202
- const result = await provider.query(sql);
203
-
204
- return NextResponse.json(result);
205
- } catch (error) {
206
- if (error instanceof QueryError) {
207
- return NextResponse.json(
208
- { error: error.message, code: error.code },
209
- { status: 400 }
210
- );
211
- }
212
- return NextResponse.json(
213
- { error: 'Internal server error' },
214
- { status: 500 }
215
- );
216
- }
217
- }
218
- ```
219
-
220
- ### Error Handling
221
-
222
- - **Custom error classes** - Use project-specific error types (`DatabaseError`, `QueryError`, `TimeoutError`)
223
- - **Error boundaries** - Use React error boundaries for component-level errors
224
- - **User-friendly messages** - Never expose internal errors to users
225
- - **Logging** - Log errors with context: `console.error('[API:query] Error:', error)`
226
-
227
- ```typescript
228
- // ✅ Good
229
- try {
230
- await provider.query(sql);
231
- } catch (error) {
232
- if (error instanceof QueryError) {
233
- // Handle query-specific error
234
- } else if (isDatabaseError(error)) {
235
- // Handle database error
236
- } else {
237
- // Handle unknown error
238
- }
239
- }
240
- ```
241
-
242
- ## Component Guidelines
243
-
244
- ### shadcn/ui Components
245
-
246
- - **Use existing components** - Check `src/components/ui/` before creating new ones
247
- - **Composition over configuration** - Prefer component composition
248
- - **Accessibility** - All components should be keyboard navigable and screen-reader friendly
249
- - **Theming** - Use CSS variables for theming, defined in `globals.css`
250
-
251
- ### Custom Components
252
-
253
- - **Single responsibility** - One component, one purpose
254
- - **Props interface** - Always define explicit props interface
255
- - **Default exports** - Use default export for main component, named exports for sub-components
256
- - **Documentation** - Add JSDoc comments for complex components
257
-
258
- ```typescript
259
- /**
260
- * QueryEditor component - Monaco-based SQL editor
261
- *
262
- * @param query - Current SQL query text
263
- * @param onChange - Callback when query changes
264
- * @param onExecute - Callback when execute is triggered
265
- */
266
- export interface QueryEditorProps {
267
- query: string;
268
- onChange: (query: string) => void;
269
- onExecute?: () => void;
270
- }
271
-
272
- export default function QueryEditor({ query, onChange, onExecute }: QueryEditorProps) {
273
- // Implementation
274
- }
275
- ```
276
-
277
- ## Database Provider Development
278
-
279
- ### Adding a New Database Provider
280
-
281
- 1. **Create provider class** in `src/lib/db/providers/[category]/[name].ts`
282
- 2. **Extend base class** - `SQLBaseProvider` for SQL databases, `BaseDatabaseProvider` for others
283
- 3. **Implement required methods** - `connect()`, `query()`, `disconnect()`, `getSchema()`
284
- 4. **Add to factory** - Update `src/lib/db/factory.ts` with new case
285
- 5. **Add types** - Update `DatabaseType` union in `src/lib/types.ts`
286
- 6. **Handle errors** - Use appropriate error classes from `src/lib/db/errors.ts`
287
-
288
- ### Connection Pooling
289
-
290
- - **Use connection pools** - For SQL databases, always use connection pooling
291
- - **Pool configuration** - Use `DEFAULT_POOL_CONFIG` or provide custom config
292
- - **Cleanup** - Always disconnect and clear pools on errors or shutdown
293
-
294
- ## LLM Provider Development
295
-
296
- ### Adding a New LLM Provider
297
-
298
- 1. **Create provider class** in `src/lib/llm/providers/[name].ts`
299
- 2. **Extend `BaseLLMProvider`** - Implement `generate()` and `stream()` methods
300
- 3. **Add to factory** - Update `src/lib/llm/factory.ts`
301
- 4. **Add environment variables** - Document required env vars in README
302
- 5. **Handle rate limits** - Implement retry logic with exponential backoff
303
-
304
- ## Styling Guidelines
305
-
306
- ### Tailwind CSS 4
307
-
308
- - **Use utility classes** - Prefer Tailwind utilities over custom CSS
309
- - **Theme variables** - Use CSS variables for colors: `bg-background`, `text-foreground`
310
- - **Responsive design** - Mobile-first approach: `md:`, `lg:`, `xl:` breakpoints
311
- - **Dark mode** - All components must support dark mode via theme variables
312
- - **Custom utilities** - Use `@apply` sparingly, prefer component composition
313
-
314
- ### Component Styling
315
-
316
- ```typescript
317
- // ✅ Good - Tailwind utilities
318
- <Button className="bg-primary text-primary-foreground hover:bg-primary/90">
319
- Submit
320
- </Button>
321
-
322
- // ✅ Good - Conditional classes with cn()
323
- <div className={cn(
324
- "base-classes",
325
- isActive && "active-classes",
326
- variant === "primary" && "primary-classes"
327
- )}>
328
- ```
329
-
330
- ## Testing & Quality
331
-
332
- ### Code Quality
333
-
334
- - **ESLint** - Follow ESLint rules, run `bun lint` before committing
335
- - **Type checking** - Ensure `tsc --noEmit` passes
336
- - **No console.log in production** - Use `console.error` for errors, remove debug logs
337
-
338
- ### Performance
339
-
340
- - **Code splitting** - Use dynamic imports for heavy dependencies
341
- - **Virtualization** - Use TanStack Virtual for large lists
342
- - **Memoization** - Memoize expensive computations
343
- - **Image optimization** - Use Next.js Image component for images
344
-
345
- ## Git & Commit Messages
346
-
347
- ### Commit Message Format
348
-
349
- Follow conventional commits:
350
-
351
- ```
352
- type(scope): subject
353
-
354
- body (optional)
355
-
356
- footer (optional)
357
- ```
358
-
359
- **Types:**
360
- - `feat`: New feature
361
- - `fix`: Bug fix
362
- - `docs`: Documentation changes
363
- - `style`: Code style changes (formatting, no logic change)
364
- - `refactor`: Code refactoring
365
- - `perf`: Performance improvements
366
- - `test`: Adding or updating tests
367
- - `chore`: Maintenance tasks
368
-
369
- **Examples:**
370
- ```
371
- feat(db): add SQLite provider support
372
- fix(api): handle connection timeout errors
373
- docs(readme): update installation instructions
374
- refactor(components): extract query editor logic to hook
375
- ```
376
-
377
- ## Environment Variables
378
-
379
- ### Required
380
- - `ADMIN_PASSWORD` - Admin user password
381
- - `USER_PASSWORD` - Regular user password
382
- - `JWT_SECRET` - JWT signing secret (min 32 characters)
383
-
384
- ### Optional
385
- - `LLM_PROVIDER` - AI provider: `gemini`, `openai`, `ollama`, `custom`
386
- - `LLM_API_KEY` - API key for LLM provider
387
- - `LLM_MODEL` - Model name (e.g., `gemini-2.5-flash`)
388
- - `LLM_API_URL` - Custom API URL (for local LLMs)
389
-
390
- ## Common Pitfalls to Avoid
391
-
392
- 1. **Don't use `any`** - Always type your code properly
393
- 2. **Don't ignore errors** - Always handle errors appropriately
394
- 3. **Don't commit secrets** - Never commit `.env.local` or API keys
395
- 4. **Don't break the Strategy Pattern** - Keep provider interfaces consistent
396
- 5. **Don't mix server and client code** - Be explicit about `"use client"`
397
- 6. **Don't forget accessibility** - All interactive elements must be keyboard accessible
398
- 7. **Don't skip error boundaries** - Protect the app from component errors
399
- 8. **Don't use inline styles** - Use Tailwind classes or CSS variables
400
-
401
- ## AI Assistant Guidelines
402
-
403
- When working on this codebase:
404
-
405
- 1. **Understand the architecture** - Read `docs/ARCHITECTURE.md` before making changes
406
- 2. **Follow patterns** - Match existing code patterns and conventions
407
- 3. **Ask for clarification** - If unsure about approach, ask before implementing
408
- 4. **Test thoroughly** - Ensure changes work across different database types
409
- 5. **Update documentation** - Keep README and docs up to date
410
- 6. **Consider mobile** - All features must work on mobile browsers
411
- 7. **Respect RBAC** - Admin-only features must check user role
412
- 8. **Performance first** - Optimize for large datasets and slow connections
413
-
414
- ## Resources
415
-
416
- - **Architecture**: `docs/ARCHITECTURE.md`
417
- - **API Documentation**: `docs/API_DOCS.md`
418
- - **Theming Guide**: `docs/THEMING.md`
419
- - **Contributing**: `CONTRIBUTING.md`
420
- - **Claude Guide**: `CLAUDE.md`
421
-
422
- ---
423
-
424
- **Last Updated**: 2025-01-XX
425
- **Project Version**: 0.6.1
426
-