db-studio 1.17.0 → 1.19.0

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 (175) hide show
  1. package/README.md +86 -49
  2. package/dist/index.js +151 -112
  3. package/dist/index.js.map +1 -1
  4. package/dist/web-dist/assets/_pathlessLayout-DFRv9XCB.js +1 -0
  5. package/dist/web-dist/assets/_pathlessLayout-DFy4SGet.js +2 -0
  6. package/dist/web-dist/assets/_queryId-BMByB2oT.js +1 -0
  7. package/dist/web-dist/assets/_table-Bg2023_C.js +1 -0
  8. package/dist/web-dist/assets/_table-CNv5UFxx.js +1 -0
  9. package/dist/web-dist/assets/_table-DFikg2By.js +1 -0
  10. package/dist/web-dist/assets/abap-dxRygfPH.js +1 -0
  11. package/dist/web-dist/assets/apex-zgJPDUJP.js +1 -0
  12. package/dist/web-dist/assets/azcli-wJHaoZMB.js +1 -0
  13. package/dist/web-dist/assets/badge-DKcWcYUF.js +1 -0
  14. package/dist/web-dist/assets/bat-C1wIr6Fe.js +1 -0
  15. package/dist/web-dist/assets/bicep-BvxsFQ8r.js +2 -0
  16. package/dist/web-dist/assets/browser-K0FP9iu-.js +1 -0
  17. package/dist/web-dist/assets/{bundle-mjs-CfhZe4O1.js → bundle-mjs-DnfzKk33.js} +1 -1
  18. package/dist/web-dist/assets/cameligo-DrYvjD55.js +1 -0
  19. package/dist/web-dist/assets/chat-sidebar-Cq9VUD6G.js +132 -0
  20. package/dist/web-dist/assets/clojure-74_l0zQh.js +1 -0
  21. package/dist/web-dist/assets/{code-editor-CI9i4mj3.js → code-editor-BjMRNGGr.js} +2 -2
  22. package/dist/web-dist/assets/coffee-C0rQZbWl.js +1 -0
  23. package/dist/web-dist/assets/constants-Ma2YHUjt.js +12 -0
  24. package/dist/web-dist/assets/cpp-B5zY1E3k.js +1 -0
  25. package/dist/web-dist/assets/csharp-DwtW3NHZ.js +1 -0
  26. package/dist/web-dist/assets/csp-JrZi5CVH.js +1 -0
  27. package/dist/web-dist/assets/css-C3v_G68F.js +3 -0
  28. package/dist/web-dist/assets/cssMode-DEx5wjaw.js +1 -0
  29. package/dist/web-dist/assets/cypher-BTD8b27B.js +1 -0
  30. package/dist/web-dist/assets/dart-CwL-_kqb.js +1 -0
  31. package/dist/web-dist/assets/database.store-1pbPyu5t.js +57 -0
  32. package/dist/web-dist/assets/{dist-CKgBcNn7.js → dist-BXhLQctj.js} +1 -1
  33. package/dist/web-dist/assets/dockerfile-CdgVtJCK.js +1 -0
  34. package/dist/web-dist/assets/ecl-BVdxv81-.js +1 -0
  35. package/dist/web-dist/assets/editor-1FQrmyyI.css +1 -0
  36. package/dist/web-dist/assets/editor.api-CYxF2O7b.js +865 -0
  37. package/dist/web-dist/assets/elixir-DfatOM0G.js +1 -0
  38. package/dist/web-dist/assets/esm-D-gZMxcU.js +501 -0
  39. package/dist/web-dist/assets/flow9-a4YAXy8S.js +1 -0
  40. package/dist/web-dist/assets/freemarker2-CfPBr1kT.js +3 -0
  41. package/dist/web-dist/assets/fsharp-DPMv4wkA.js +1 -0
  42. package/dist/web-dist/assets/go-IiZtrnqs.js +1 -0
  43. package/dist/web-dist/assets/graphql-CXNuaSRA.js +1 -0
  44. package/dist/web-dist/assets/handlebars-DxY2nPcz.js +1 -0
  45. package/dist/web-dist/assets/hcl-SxWYdXh8.js +1 -0
  46. package/dist/web-dist/assets/highlighted-body-OFNGDK62-CrpnFH8F.js +1 -0
  47. package/dist/web-dist/assets/html-drmbqc-0.js +1 -0
  48. package/dist/web-dist/assets/htmlMode-_WyzBcs8.js +1 -0
  49. package/dist/web-dist/assets/icons-D00FvbYk.js +1 -0
  50. package/dist/web-dist/assets/index-De1y1AW6.css +2 -0
  51. package/dist/web-dist/assets/index-DvUqe2GZ.js +45 -0
  52. package/dist/web-dist/assets/indexes-DKdMLQaQ.js +1 -0
  53. package/dist/web-dist/assets/ini-dRlOWwKj.js +1 -0
  54. package/dist/web-dist/assets/java-6BlUAALm.js +1 -0
  55. package/dist/web-dist/assets/javascript-BDJbGhjO.js +1 -0
  56. package/dist/web-dist/assets/json-editor-CWN4Qxy5.js +1 -0
  57. package/dist/web-dist/assets/jsonMode-CMZrI5JG.js +7 -0
  58. package/dist/web-dist/assets/julia-D9gAObN3.js +1 -0
  59. package/dist/web-dist/assets/keys-BNEHyGRj.js +1 -0
  60. package/dist/web-dist/assets/kotlin-BkNKxUBx.js +1 -0
  61. package/dist/web-dist/assets/label-r_iGrn1k.js +1 -0
  62. package/dist/web-dist/assets/less-CXD3UefM.js +2 -0
  63. package/dist/web-dist/assets/lexon-C_fFLl-m.js +1 -0
  64. package/dist/web-dist/assets/liquid-DK-C1kNz.js +1 -0
  65. package/dist/web-dist/assets/logs-DYp_nXQS.js +1 -0
  66. package/dist/web-dist/assets/lspLanguageFeatures-C43gbr5Q.js +4 -0
  67. package/dist/web-dist/assets/lua-D9zIDNVg.js +1 -0
  68. package/dist/web-dist/assets/m3-BOUXBH8W.js +1 -0
  69. package/dist/web-dist/assets/markdown-HYv7mtUU.js +1 -0
  70. package/dist/web-dist/assets/mdx-CyR2pftH.js +1 -0
  71. package/dist/web-dist/assets/mermaid-GHXKKRXX-BVKgPqVX.js +1 -0
  72. package/dist/web-dist/assets/{middleware-DGlL7Sbs.js → middleware-z4uSElcP.js} +1 -1
  73. package/dist/web-dist/assets/mips-BYotwMVA.js +1 -0
  74. package/dist/web-dist/assets/module-BcWVk-SL.js +2 -0
  75. package/dist/web-dist/assets/monaco-theme-BIjVxdNP.js +64 -0
  76. package/dist/web-dist/assets/monaco-theme-BnSsSzUH.css +1 -0
  77. package/dist/web-dist/assets/msdax-B5L4PZsP.js +1 -0
  78. package/dist/web-dist/assets/mysql-B58bnHpg.js +1 -0
  79. package/dist/web-dist/assets/objective-c-CFqy6rAv.js +1 -0
  80. package/dist/web-dist/assets/pascal-CLsa5WGA.js +1 -0
  81. package/dist/web-dist/assets/pascaligo-DziJFYKK.js +1 -0
  82. package/dist/web-dist/assets/perl-CmwL-QR-.js +1 -0
  83. package/dist/web-dist/assets/personal-preferences.store-D5exZVZQ.js +1 -0
  84. package/dist/web-dist/assets/pgsql-Do7fvYVV.js +1 -0
  85. package/dist/web-dist/assets/php-Dj9jihN6.js +1 -0
  86. package/dist/web-dist/assets/pla-L8RfOkFM.js +1 -0
  87. package/dist/web-dist/assets/postiats-BXpJZeqC.js +1 -0
  88. package/dist/web-dist/assets/powerquery-BXkVIUru.js +1 -0
  89. package/dist/web-dist/assets/powershell-DwW-M4zK.js +1 -0
  90. package/dist/web-dist/assets/preload-helper-ThWhQeFm.js +1 -0
  91. package/dist/web-dist/assets/protobuf-K907XPEr.js +2 -0
  92. package/dist/web-dist/assets/pug-C-RaYi9h.js +1 -0
  93. package/dist/web-dist/assets/python-CP4tLlJS.js +1 -0
  94. package/dist/web-dist/assets/qsharp-CzL8Ss6l.js +1 -0
  95. package/dist/web-dist/assets/queries.store-BY932Cz6.js +1 -0
  96. package/dist/web-dist/assets/query-runner-DE3oEoYe.js +17 -0
  97. package/dist/web-dist/assets/r-CRucCfm1.js +1 -0
  98. package/dist/web-dist/assets/radix-ui-C1Muznox.js +51 -0
  99. package/dist/web-dist/assets/razor-D5MHZkbo.js +1 -0
  100. package/dist/web-dist/assets/react-HGZFyY1j.js +1 -0
  101. package/dist/web-dist/assets/{react-dom-MwQ-XgNN.js → react-dom-DtHnGHi-.js} +1 -1
  102. package/dist/web-dist/assets/redis-D2ruGQTE.js +1 -0
  103. package/dist/web-dist/assets/redis-value-DvqdrDxN.js +1 -0
  104. package/dist/web-dist/assets/redshift-ClhJ3UDf.js +1 -0
  105. package/dist/web-dist/assets/restructuredtext-CDSduErp.js +1 -0
  106. package/dist/web-dist/assets/{rolldown-runtime-BCBVhuY0.js → rolldown-runtime-DglIe7XP.js} +1 -1
  107. package/dist/web-dist/assets/ruby-BOYci4GS.js +1 -0
  108. package/dist/web-dist/assets/runner-CdvyQd_7.js +1 -0
  109. package/dist/web-dist/assets/rust-C6GsoKwD.js +1 -0
  110. package/dist/web-dist/assets/sb-Byu7SwWe.js +1 -0
  111. package/dist/web-dist/assets/scala-BXABW78T.js +1 -0
  112. package/dist/web-dist/assets/schema-BG-MIF2O.js +1 -0
  113. package/dist/web-dist/assets/scheme-8OXsCVoc.js +1 -0
  114. package/dist/web-dist/assets/scss-osYiZxfm.js +3 -0
  115. package/dist/web-dist/assets/select-DIrPycKO.js +1 -0
  116. package/dist/web-dist/assets/separator-DXlD6ZPI.js +1 -0
  117. package/dist/web-dist/assets/sheet-sidebar-K2TU7XMc.js +1 -0
  118. package/dist/web-dist/assets/shell-xb0sqli5.js +1 -0
  119. package/dist/web-dist/assets/solidity-BaiP98Rq.js +1 -0
  120. package/dist/web-dist/assets/sophia-CQgWshwN.js +1 -0
  121. package/dist/web-dist/assets/sparql-XOTzL0Lh.js +1 -0
  122. package/dist/web-dist/assets/sql-DGJWoFiH.js +1 -0
  123. package/dist/web-dist/assets/st-BD5QOETo.js +1 -0
  124. package/dist/web-dist/assets/swift-lLfOkw1g.js +1 -0
  125. package/dist/web-dist/assets/systemverilog-BYxoqTfR.js +1 -0
  126. package/dist/web-dist/assets/table-DoAtaSpv.js +1 -0
  127. package/dist/web-dist/assets/tanstack-DeB5Eprq.js +8 -0
  128. package/dist/web-dist/assets/tcl-BFpZjjdK.js +1 -0
  129. package/dist/web-dist/assets/tooltip-B_5geL0k.js +1 -0
  130. package/dist/web-dist/assets/tsMode-8DDkjaCA.js +11 -0
  131. package/dist/web-dist/assets/twig-Ds4bsmPZ.js +1 -0
  132. package/dist/web-dist/assets/typescript-BD4P_hvn.js +1 -0
  133. package/dist/web-dist/assets/typespec-DMwDmafU.js +1 -0
  134. package/dist/web-dist/assets/utils-vY5qZZPu.js +1 -0
  135. package/dist/web-dist/assets/vb-B3EULsLk.js +1 -0
  136. package/dist/web-dist/assets/visualizer-CsdVT6fl.js +1 -0
  137. package/dist/web-dist/assets/wgsl-BCYPO-gR.js +298 -0
  138. package/dist/web-dist/assets/workers-DiwDrKYe.js +1 -0
  139. package/dist/web-dist/assets/xml-CPmvJeqm.js +1 -0
  140. package/dist/web-dist/assets/yaml-CGAao1xZ.js +1 -0
  141. package/dist/web-dist/index.html +23 -20
  142. package/package.json +11 -6
  143. package/dist/web-dist/assets/_pathlessLayout-BkAR-cxy.js +0 -132
  144. package/dist/web-dist/assets/_pathlessLayout-Da39Ex7I.js +0 -1
  145. package/dist/web-dist/assets/_queryId-DJ8Cszxw.js +0 -1
  146. package/dist/web-dist/assets/_table-C0a5HWX2.js +0 -1
  147. package/dist/web-dist/assets/_table-CSyEA1sh.js +0 -1
  148. package/dist/web-dist/assets/_table-D2rPjuB3.js +0 -1
  149. package/dist/web-dist/assets/badge-BgJ132Zp.js +0 -1
  150. package/dist/web-dist/assets/browser-DRVH5V78.js +0 -1
  151. package/dist/web-dist/assets/database.store-ybZyJeQE.js +0 -57
  152. package/dist/web-dist/assets/format-cell-value-FBkY2oBS.js +0 -1
  153. package/dist/web-dist/assets/highlighted-body-OFNGDK62-DJ_AZ-U-.js +0 -1
  154. package/dist/web-dist/assets/icons-Cqp8qsxp.js +0 -1
  155. package/dist/web-dist/assets/index-CZcDmX3V.css +0 -2
  156. package/dist/web-dist/assets/index-DkEjlgj_.js +0 -36
  157. package/dist/web-dist/assets/indexes-BJXcp3El.js +0 -1
  158. package/dist/web-dist/assets/logs-DEpoT_GT.js +0 -1
  159. package/dist/web-dist/assets/mermaid-GHXKKRXX-C-5cK5mF.js +0 -1
  160. package/dist/web-dist/assets/monaco-editor-Dlx7llW7.js +0 -1252
  161. package/dist/web-dist/assets/monaco-editor-IL9D_L0g.css +0 -1
  162. package/dist/web-dist/assets/monitoring-COzw_qZY.js +0 -22
  163. package/dist/web-dist/assets/overlay.store-CdMPivQ4.js +0 -11
  164. package/dist/web-dist/assets/queries.store-mYjqPBIG.js +0 -1
  165. package/dist/web-dist/assets/query-runner-Rk39OSFU.js +0 -17
  166. package/dist/web-dist/assets/radix-ui-B5VLwTAi.js +0 -51
  167. package/dist/web-dist/assets/react-CYwS-VST.js +0 -1
  168. package/dist/web-dist/assets/redis-value-D5wqUFuP.js +0 -1
  169. package/dist/web-dist/assets/runner--5mwKvXr.js +0 -1
  170. package/dist/web-dist/assets/schema-C8mv4CVD.js +0 -1
  171. package/dist/web-dist/assets/schema-boTdkq9l.js +0 -1
  172. package/dist/web-dist/assets/table-mU6PMMQx.js +0 -1
  173. package/dist/web-dist/assets/tanstack-DvfzCieo.js +0 -11
  174. package/dist/web-dist/assets/use-database-engine-FWzj-N81.js +0 -1
  175. package/dist/web-dist/assets/visualizer-CnmK5vq1.js +0 -1
package/README.md CHANGED
@@ -1,52 +1,37 @@
1
1
  # db-studio
2
2
 
3
- A modern, universal (pgAdmin alternative) database management studio for any database.
4
-
5
- <div align="center">
6
- <a href="https://github.com/husamql3/db-studio/stargazers">
7
- <img alt="GitHub Repo stars" src="https://img.shields.io/github/stars/husamql3/db-studio">
8
- </a>
9
- <a href="https://www.npmjs.com/package/db-studio">
10
- <img src="https://img.shields.io/npm/v/db-studio?style=flat-rounded" />
11
- </a>
12
- <a href="https://www.npmjs.com/package/db-studio">
13
- <img src="https://img.shields.io/npm/dm/db-studio?style=flat-rounded" />
14
- </a>
15
- <a href="https://github.com/husamql3/db-studio/blob/main/LICENSE">
16
- <img alt="License" src="https://img.shields.io/github/license/husamql3/db-studio">
17
- </a>
18
- <a href="https://deepwiki.com/husamql3/db-studio">
19
- <img src="https://deepwiki.com/badge.svg" alt="Ask DeepWiki">
20
- </a>
21
- </div>
22
-
23
- <br />
24
-
25
- <img src="https://dbstudio.sh/og-image.png" alt="db-studio screenshot" width="1000" />
26
-
27
- ## Getting Started
28
-
29
- Run db-studio without installing it globally:
3
+ <p align="center">
4
+ <img src="https://raw.githubusercontent.com/husamql3/db-studio/main/assets/icon.png" alt="db-studio icon" width="128" height="128">
5
+ </p>
30
6
 
31
- ```bash
32
- npx db-studio
33
- ```
7
+ <p align="center">
8
+ <a href="https://www.npmjs.com/package/db-studio"><img src="https://img.shields.io/npm/v/db-studio" alt="npm version"></a>
9
+ <a href="https://www.npmjs.com/package/db-studio"><img src="https://img.shields.io/npm/dm/db-studio" alt="npm downloads"></a>
10
+ <a href="https://github.com/husamql3/db-studio/stargazers"><img src="https://img.shields.io/github/stars/husamql3/db-studio" alt="GitHub stars"></a>
11
+ <a href="https://github.com/husamql3/db-studio/blob/main/LICENSE"><img src="https://img.shields.io/badge/License-Apache_2.0-blue.svg" alt="License: Apache 2.0"></a>
12
+ <a href="https://deepwiki.com/husamql3/db-studio"><img src="https://deepwiki.com/badge.svg" alt="Ask DeepWiki"></a>
13
+ </p>
34
14
 
35
- db-studio reads your database connection from `DATABASE_URL` in a `.env` file.
15
+ <p align="center">
16
+ A modern, universal database studio (the pgAdmin alternative) for every database.<br>
17
+ Browse tables, edit records, design schemas, and run queries from one UI, launched with a single <code>npx</code> command.
18
+ </p>
36
19
 
37
- ```env
38
- DATABASE_URL="postgresql://user:password@127.0.0.1:5432/mydb"
39
- ```
20
+ <p align="center">
21
+ <img src="https://dbstudio.sh/og-image.png" alt="db-studio screenshot" width="800">
22
+ </p>
23
+
24
+ ## Installation
40
25
 
41
- You can also pass the connection string directly:
26
+ No installation required. Run it from a directory that has a `.env` with `DATABASE_URL`:
42
27
 
43
28
  ```bash
44
- npx db-studio --database-url "postgresql://user:password@127.0.0.1:5432/mydb"
29
+ npx db-studio
45
30
  ```
46
31
 
47
- ## Usage
32
+ db-studio searches the current directory, then its parents, for a `.env` file. If `DATABASE_URL` is not there, it reads it from the environment.
48
33
 
49
- Add a simple script to your `package.json`:
34
+ **As a project script:**
50
35
 
51
36
  ```json
52
37
  {
@@ -56,14 +41,66 @@ Add a simple script to your `package.json`:
56
41
  }
57
42
  ```
58
43
 
59
- Then run:
60
-
61
- ```bash
62
- npm run db:studio
63
- ```
64
-
65
- Helpful options:
66
-
67
- - `npx db-studio --env .env.local`
68
- - `npx db-studio --port 4000`
69
- - `npx db-studio --status`
44
+ **Flags:**
45
+
46
+ | Flag | Description | Example |
47
+ |------------------------|------------------------------------------------|----------------------------------------------------------|
48
+ | `--env <path>` | Use a specific `.env` file | `npx db-studio --env .env.local` |
49
+ | `--var-name <name>` | Read a different environment variable | `npx db-studio --var-name MY_DB_URL` |
50
+ | `--port <number>` | Change the server port (default: 3333) | `npx db-studio --port 4000` |
51
+ | `--database-url <url>` | Pass the connection string directly | `npx db-studio --database-url "postgresql://localhost/mydb"` |
52
+ | `--open` | Open db-studio in your browser once it starts | `npx db-studio --open` |
53
+ | `--no-open` | Do not open the browser (the default) | `npx db-studio --no-open` |
54
+ | `--status` | Check the connection only, without the UI | `npx db-studio --status` |
55
+ | `--version` | Show the installed version | `npx db-studio --version` |
56
+ | `--help` | Show all options | `npx db-studio --help` |
57
+
58
+ Full documentation: [dbstudio.sh](https://dbstudio.sh)
59
+
60
+ ## Features
61
+
62
+ ### Databases
63
+ - 🐘 PostgreSQL, CockroachDB, MySQL, MariaDB, TiDB, SQL Server, Oracle
64
+ - 🪶 SQLite, Turso / libSQL, Cloudflare D1, DuckDB
65
+ - 🍃 MongoDB, Redis, ClickHouse
66
+ - 🔌 Connect with a single connection URL
67
+
68
+ ### Table Browser
69
+ - 📋 Spreadsheet-like grid with inline cell editing
70
+ - 🔎 Filter, sort, and paginate rows
71
+ - 🔴 Live mode refreshes the grid and highlights changed rows and cells
72
+ - 🧾 Row details sheet with keyboard navigation between rows
73
+ - 🙈 Hide and reorder columns, saved per table
74
+ - 📤 Export tables as CSV, Excel, or JSON
75
+
76
+ ### Records
77
+ - ➕ Add records with type-aware forms
78
+ - 📥 Bulk insert from CSV, Excel, or JSON
79
+ - 🔗 Pick foreign key values from the referenced table
80
+ - 🗑️ Delete rows, with force delete for dependent rows
81
+
82
+ ### Schema
83
+ - 🏗️ Create and rename tables, with foreign keys
84
+ - ✏️ Add and edit columns
85
+ - 📇 Create and drop indexes
86
+
87
+ ### Query Runner
88
+ - ⌨️ Monaco-powered editor with syntax highlighting and autocomplete
89
+ - ✨ Generate, optimize, or fix queries with AI
90
+
91
+ ### AI Assistant
92
+ - 💬 Ask questions about your data in plain English
93
+ - 🔑 Bring your own key for Gemini, OpenAI, Anthropic, Grok, or OpenRouter
94
+
95
+ ### Everywhere
96
+ - ⌘ Command palette to jump to tables and run actions
97
+ - 🌗 Light and dark themes
98
+ - 📊 Anonymous usage data, off with `DB_STUDIO_TELEMETRY=0`
99
+
100
+ ## Contributing
101
+
102
+ See [CONTRIBUTING.md](https://github.com/husamql3/db-studio/blob/main/CONTRIBUTING.md) for development setup. Check the [roadmap](https://dbstudio.sh/roadmap) and [changelog](https://dbstudio.sh/changelog) for what's planned and what shipped.
103
+
104
+ ## License
105
+
106
+ Apache License 2.0 - see [LICENSE](https://github.com/husamql3/db-studio/blob/main/LICENSE).