sqlit-tui 1.3.1.1__tar.gz → 1.4.1__tar.gz

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 (765) hide show
  1. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/.github/workflows/release.yml +24 -8
  2. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/PKG-INFO +24 -7
  3. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/README.md +13 -4
  4. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/aur/.SRCINFO +1 -2
  5. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/aur/PKGBUILD +1 -2
  6. sqlit_tui-1.4.1/flake.nix +138 -0
  7. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/infra/docker/docker-compose.test.yml +160 -0
  8. sqlit_tui-1.4.1/infra/docker/impala_quickstart_conf/hive-site.xml +74 -0
  9. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/pyproject.toml +11 -3
  10. sqlit_tui-1.4.1/sqlit/_version.py +24 -0
  11. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/cli.py +7 -1
  12. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/core/binding_contexts.py +4 -0
  13. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/core/keymap.py +61 -0
  14. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/core/vim.py +2 -0
  15. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/app/connection_flow.py +14 -0
  16. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/app/install_strategy.py +23 -10
  17. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/app/tunnel.py +12 -1
  18. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/cli/commands.py +9 -1
  19. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/cli/helpers.py +11 -1
  20. sqlit_tui-1.4.1/sqlit/domains/connections/cli/prompts.py +68 -0
  21. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/discovery/cloud/aws/cache.py +3 -3
  22. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/discovery/cloud/azure/cache.py +3 -3
  23. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/discovery/cloud/gcp/cache.py +3 -3
  24. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/domain/config.py +23 -2
  25. sqlit_tui-1.4.1/sqlit/domains/connections/domain/password_command.py +35 -0
  26. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/domain/passwords.py +10 -2
  27. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/adapters/base.py +33 -1
  28. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/d1/adapter.py +2 -2
  29. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/duckdb/adapter.py +43 -0
  30. sqlit_tui-1.4.1/sqlit/domains/connections/providers/duckdb/data_files.py +106 -0
  31. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/firebird/adapter.py +10 -2
  32. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/hana/adapter.py +4 -8
  33. sqlit_tui-1.4.1/sqlit/domains/connections/providers/impala/__init__.py +1 -0
  34. sqlit_tui-1.4.1/sqlit/domains/connections/providers/impala/adapter.py +176 -0
  35. sqlit_tui-1.4.1/sqlit/domains/connections/providers/impala/provider.py +29 -0
  36. sqlit_tui-1.4.1/sqlit/domains/connections/providers/impala/schema.py +61 -0
  37. sqlit_tui-1.4.1/sqlit/domains/connections/providers/mariadb/adapter.py +208 -0
  38. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/model.py +12 -0
  39. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/mssql/adapter.py +138 -3
  40. sqlit_tui-1.4.1/sqlit/domains/connections/providers/mssql/token_cache.py +66 -0
  41. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/oracle/adapter.py +4 -4
  42. sqlit_tui-1.4.1/sqlit/domains/connections/providers/osquery/__init__.py +1 -0
  43. sqlit_tui-1.4.1/sqlit/domains/connections/providers/osquery/adapter.py +237 -0
  44. sqlit_tui-1.4.1/sqlit/domains/connections/providers/osquery/provider.py +29 -0
  45. sqlit_tui-1.4.1/sqlit/domains/connections/providers/osquery/schema.py +54 -0
  46. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/postgresql/adapter.py +9 -2
  47. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/snowflake/adapter.py +2 -0
  48. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/snowflake/schema.py +11 -0
  49. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/sqlite/adapter.py +3 -0
  50. sqlit_tui-1.4.1/sqlit/domains/connections/providers/surrealdb/__init__.py +1 -0
  51. sqlit_tui-1.4.1/sqlit/domains/connections/providers/surrealdb/adapter.py +300 -0
  52. sqlit_tui-1.4.1/sqlit/domains/connections/providers/surrealdb/provider.py +29 -0
  53. sqlit_tui-1.4.1/sqlit/domains/connections/providers/surrealdb/schema.py +50 -0
  54. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/teradata/adapter.py +50 -30
  55. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/store/connections.py +1 -1
  56. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/ui/mixins/connection.py +2 -2
  57. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/explorer/ui/mixins/tree_filter.py +136 -12
  58. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/process_worker/app/process_worker.py +18 -0
  59. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/app/query_service.py +10 -1
  60. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/editing/motions/lines.py +18 -0
  61. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/editing/motions/registry.py +2 -0
  62. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/state/__init__.py +4 -0
  63. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/state/query_normal.py +6 -0
  64. sqlit_tui-1.4.1/sqlit/domains/query/state/query_visual.py +109 -0
  65. sqlit_tui-1.4.1/sqlit/domains/query/state/query_visual_line.py +114 -0
  66. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/store/history.py +12 -3
  67. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/store/memory.py +11 -8
  68. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/store/starred.py +1 -1
  69. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/ui/mixins/autocomplete_schema.py +6 -30
  70. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/ui/mixins/autocomplete_suggestions.py +14 -2
  71. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/ui/mixins/query.py +4 -0
  72. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/ui/mixins/query_editing_clipboard.py +14 -7
  73. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/ui/mixins/query_editing_cursor.py +40 -5
  74. sqlit_tui-1.4.1/sqlit/domains/query/ui/mixins/query_editing_visual.py +166 -0
  75. sqlit_tui-1.4.1/sqlit/domains/query/ui/mixins/query_editing_visual_line.py +198 -0
  76. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/ui/mixins/query_execution.py +40 -5
  77. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/ui/mixins/query_results.py +22 -0
  78. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/ui/screens/query_history.py +3 -1
  79. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/results/state/results_focused.py +8 -0
  80. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/results/ui/mixins/results.py +103 -24
  81. sqlit_tui-1.4.1/sqlit/domains/results/ui/screens/__init__.py +5 -0
  82. sqlit_tui-1.4.1/sqlit/domains/results/ui/screens/column_picker.py +149 -0
  83. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/shell/app/commands/credentials.py +4 -4
  84. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/shell/app/main.css +7 -0
  85. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/shell/app/main.py +1 -1
  86. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/shell/app/theme_manager.py +2 -1
  87. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/shell/state/machine.py +27 -1
  88. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/shell/store/settings.py +1 -1
  89. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/shell/ui/mixins/ui_status.py +18 -8
  90. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/shell/ui/screens/theme.py +1 -1
  91. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/shared/app/services.py +1 -1
  92. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/shared/core/protocols.py +2 -1
  93. sqlit_tui-1.4.1/sqlit/shared/core/store.py +152 -0
  94. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/shared/core/system_probe.py +18 -1
  95. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/shared/core/system_probe_fake.py +3 -0
  96. sqlit_tui-1.4.1/sqlit/shared/ui/clipboard.py +165 -0
  97. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/shared/ui/protocols/query.py +4 -1
  98. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/shared/ui/widgets_autocomplete.py +29 -14
  99. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/shared/ui/widgets_filter.py +4 -1
  100. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/shared/ui/widgets_stacked_results.py +6 -2
  101. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/shared/ui/widgets_tables.py +7 -3
  102. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/shared/ui/widgets_text_area.py +60 -4
  103. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/conftest.py +3 -0
  104. sqlit_tui-1.4.1/tests/connections/providers/hana/test_get_columns.py +95 -0
  105. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/fixtures/cockroachdb.py +2 -2
  106. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/fixtures/d1/index.js +1 -1
  107. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/fixtures/d1.py +1 -1
  108. sqlit_tui-1.4.1/tests/fixtures/data.duckdb +0 -0
  109. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/fixtures/db2.py +2 -2
  110. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/fixtures/firebird.py +2 -2
  111. sqlit_tui-1.4.1/tests/fixtures/impala.py +197 -0
  112. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/fixtures/mariadb.py +6 -6
  113. sqlit_tui-1.4.1/tests/fixtures/mariadb_charset.py +249 -0
  114. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/fixtures/mssql.py +2 -2
  115. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/fixtures/mysql.py +2 -2
  116. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/fixtures/mysql_charset.py +3 -3
  117. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/fixtures/oracle.py +2 -2
  118. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/fixtures/oracle_legacy.py +2 -2
  119. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/fixtures/postgres.py +2 -2
  120. sqlit_tui-1.4.1/tests/fixtures/surrealdb.py +191 -0
  121. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/fixtures/utils.py +41 -1
  122. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/helpers.py +3 -0
  123. sqlit_tui-1.4.1/tests/integration/test_multi_statement_limits.py +329 -0
  124. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/integration/test_stale_connection_reconnect.py +3 -3
  125. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/test_charset_support.py +298 -2
  126. sqlit_tui-1.4.1/tests/test_impala.py +87 -0
  127. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/test_password_prompts.py +126 -0
  128. sqlit_tui-1.4.1/tests/test_surrealdb.py +266 -0
  129. sqlit_tui-1.4.1/tests/ui/explorer/test_filter_accept_cursor_pilot.py +80 -0
  130. sqlit_tui-1.4.1/tests/ui/explorer/test_tree_filter_search.py +455 -0
  131. sqlit_tui-1.4.1/tests/ui/keybindings/test_results_vim_motions.py +199 -0
  132. sqlit_tui-1.4.1/tests/ui/keybindings/test_visual_mode.py +497 -0
  133. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/mocks.py +5 -2
  134. sqlit_tui-1.4.1/tests/ui/test_autocomplete_dropdown.py +96 -0
  135. sqlit_tui-1.4.1/tests/ui/test_blob_markup.py +64 -0
  136. sqlit_tui-1.4.1/tests/ui/test_filter_input_widget.py +62 -0
  137. sqlit_tui-1.4.1/tests/ui/test_telescope_fresh_start.py +102 -0
  138. sqlit_tui-1.4.1/tests/unit/__init__.py +0 -0
  139. sqlit_tui-1.4.1/tests/unit/providers/__init__.py +1 -0
  140. sqlit_tui-1.4.1/tests/unit/providers/test_osquery_adapter.py +575 -0
  141. sqlit_tui-1.4.1/tests/unit/test_autocomplete_multidb.py +155 -0
  142. sqlit_tui-1.4.1/tests/unit/test_clipboard.py +50 -0
  143. sqlit_tui-1.4.1/tests/unit/test_config_dir_resolution.py +164 -0
  144. sqlit_tui-1.4.1/tests/unit/test_connection_config_from_dict.py +207 -0
  145. sqlit_tui-1.4.1/tests/unit/test_connection_flow.py +48 -0
  146. sqlit_tui-1.4.1/tests/unit/test_duckdb_data_files.py +257 -0
  147. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/unit/test_extra_options_passthrough.py +33 -1
  148. sqlit_tui-1.4.1/tests/unit/test_install_strategy_uv.py +110 -0
  149. sqlit_tui-1.4.1/tests/unit/test_mssql_adapter.py +594 -0
  150. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/unit/test_oracle_adapter.py +41 -11
  151. sqlit_tui-1.4.1/tests/unit/test_password_command.py +52 -0
  152. sqlit_tui-1.4.1/tests/unit/test_postgresql_adapter.py +76 -0
  153. sqlit_tui-1.4.1/tests/unit/test_probe_port.py +61 -0
  154. sqlit_tui-1.4.1/tests/unit/test_process_worker_pickle_safety.py +138 -0
  155. sqlit_tui-1.4.1/tests/unit/test_sanitize_row.py +32 -0
  156. sqlit_tui-1.4.1/tests/unit/test_sqlite_returning.py +71 -0
  157. sqlit_tui-1.4.1/tests/unit/test_tunnel_paramiko_version.py +43 -0
  158. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/unit/test_vim_motions.py +1 -1
  159. sqlit_tui-1.4.1/tests/unit/test_vim_visual_mode.py +238 -0
  160. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/uv.lock +1177 -127
  161. sqlit_tui-1.3.1.1/flake.nix +0 -106
  162. sqlit_tui-1.3.1.1/sqlit/_version.py +0 -34
  163. sqlit_tui-1.3.1.1/sqlit/domains/connections/cli/prompts.py +0 -23
  164. sqlit_tui-1.3.1.1/sqlit/domains/connections/providers/mariadb/adapter.py +0 -389
  165. sqlit_tui-1.3.1.1/sqlit/shared/core/store.py +0 -86
  166. sqlit_tui-1.3.1.1/sqlit/shared/ui/screens/__init__.py +0 -1
  167. sqlit_tui-1.3.1.1/tests/fixtures/data.duckdb +0 -0
  168. sqlit_tui-1.3.1.1/tests/fixtures/data.duckdb.wal +0 -0
  169. sqlit_tui-1.3.1.1/tests/unit/test_connection_config_from_dict.py +0 -70
  170. sqlit_tui-1.3.1.1/tests/unit/test_mssql_adapter.py +0 -237
  171. sqlit_tui-1.3.1.1/tests/unit/test_postgresql_adapter.py +0 -34
  172. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/.github/workflows/ci.yml +0 -0
  173. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/.gitignore +0 -0
  174. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/.pre-commit-config.yaml +0 -0
  175. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/CONTRIBUTING.md +0 -0
  176. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/LICENSE +0 -0
  177. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/assets/favorites/logo.png +0 -0
  178. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/assets/favorites/logo_sqlit.png +0 -0
  179. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/config/mock-ssh-missing.json +0 -0
  180. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/config/settings.template.json +0 -0
  181. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/config/sqlit-config/settings.json +0 -0
  182. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/docs/demos/autocomplete-01-basics.gif +0 -0
  183. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/docs/demos/autocomplete-02-select-from.gif +0 -0
  184. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/docs/demos/autocomplete-03-joins.gif +0 -0
  185. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/docs/demos/autocomplete-04-clauses.gif +0 -0
  186. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/docs/demos/d1-demo.json +0 -0
  187. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/docs/demos/demo-connect.gif +0 -0
  188. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/docs/demos/demo-d1.gif +0 -0
  189. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/docs/demos/demo-docker-picker.gif +0 -0
  190. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/docs/demos/demo-filter/demo-filter.gif +0 -0
  191. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/docs/demos/demo-history.gif +0 -0
  192. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/docs/demos/demo-providers.gif +0 -0
  193. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/docs/demos/demo-query.gif +0 -0
  194. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/docs/demos/demo-sqlite.gif +0 -0
  195. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/docs/demos/demo-supabase-mock.gif +0 -0
  196. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/docs/screenshots/all/catppuccin-latte.png +0 -0
  197. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/docs/screenshots/all/catppuccin-mocha.png +0 -0
  198. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/docs/screenshots/all/dracula.png +0 -0
  199. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/docs/screenshots/all/everforest.png +0 -0
  200. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/docs/screenshots/all/flexoki.png +0 -0
  201. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/docs/screenshots/all/gruvbox.png +0 -0
  202. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/docs/screenshots/all/hackerman.png +0 -0
  203. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/docs/screenshots/all/kanagawa.png +0 -0
  204. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/docs/screenshots/all/matte-black.png +0 -0
  205. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/docs/screenshots/all/monokai.png +0 -0
  206. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/docs/screenshots/all/nord.png +0 -0
  207. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/docs/screenshots/all/osaka-jade.png +0 -0
  208. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/docs/screenshots/all/ristretto.png +0 -0
  209. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/docs/screenshots/all/rose-pine-dawn.png +0 -0
  210. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/docs/screenshots/all/rose-pine-moon.png +0 -0
  211. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/docs/screenshots/all/rose-pine.png +0 -0
  212. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/docs/screenshots/all/solarized-dark.png +0 -0
  213. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/docs/screenshots/all/solarized-light.png +0 -0
  214. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/docs/screenshots/all/sqlit-light.png +0 -0
  215. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/docs/screenshots/all/sqlit.png +0 -0
  216. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/docs/screenshots/all/textual-ansi.png +0 -0
  217. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/docs/screenshots/all/textual-dark.png +0 -0
  218. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/docs/screenshots/all/textual-light.png +0 -0
  219. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/docs/screenshots/all/tokyo-night.png +0 -0
  220. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/flake.lock +0 -0
  221. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/pyrightconfig.json +0 -0
  222. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/__init__.py +0 -0
  223. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/core/__init__.py +0 -0
  224. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/core/action_validation.py +0 -0
  225. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/core/connection_manager.py +0 -0
  226. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/core/input_context.py +0 -0
  227. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/core/key_router.py +0 -0
  228. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/core/leader_commands.py +0 -0
  229. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/core/state_base.py +0 -0
  230. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/__init__.py +0 -0
  231. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/__init__.py +0 -0
  232. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/app/__init__.py +0 -0
  233. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/app/cloud_actions.py +0 -0
  234. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/app/credentials.py +0 -0
  235. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/app/executor.py +0 -0
  236. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/app/installer.py +0 -0
  237. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/app/mock_adapter_core.py +0 -0
  238. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/app/mock_data.py +0 -0
  239. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/app/mock_default_adapters.py +0 -0
  240. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/app/mock_profiles.py +0 -0
  241. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/app/mock_provider.py +0 -0
  242. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/app/mock_settings.py +0 -0
  243. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/app/mocks.py +0 -0
  244. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/app/persist_utils.py +0 -0
  245. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/app/save_connection.py +0 -0
  246. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/app/session.py +0 -0
  247. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/app/url_parser.py +0 -0
  248. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/cli/__init__.py +0 -0
  249. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/discovery/__init__.py +0 -0
  250. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/discovery/cloud/__init__.py +0 -0
  251. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/discovery/cloud/aws/__init__.py +0 -0
  252. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/discovery/cloud/aws/provider.py +0 -0
  253. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/discovery/cloud/azure/__init__.py +0 -0
  254. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/discovery/cloud/azure/cli.py +0 -0
  255. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/discovery/cloud/azure/discovery.py +0 -0
  256. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/discovery/cloud/azure/firewall.py +0 -0
  257. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/discovery/cloud/azure/models.py +0 -0
  258. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/discovery/cloud/azure/provider.py +0 -0
  259. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/discovery/cloud/base.py +0 -0
  260. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/discovery/cloud/gcp/__init__.py +0 -0
  261. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/discovery/cloud/gcp/provider.py +0 -0
  262. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/discovery/cloud/mock.py +0 -0
  263. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/discovery/cloud/registry.py +0 -0
  264. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/discovery/docker_detector.py +0 -0
  265. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/domain/__init__.py +0 -0
  266. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/__init__.py +0 -0
  267. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/adapter_provider.py +0 -0
  268. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/adapters/__init__.py +0 -0
  269. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/athena/__init__.py +0 -0
  270. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/athena/adapter.py +0 -0
  271. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/athena/provider.py +0 -0
  272. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/athena/schema.py +0 -0
  273. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/bigquery/__init__.py +0 -0
  274. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/bigquery/adapter.py +0 -0
  275. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/bigquery/provider.py +0 -0
  276. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/bigquery/schema.py +0 -0
  277. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/catalog.py +0 -0
  278. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/clickhouse/__init__.py +0 -0
  279. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/clickhouse/adapter.py +0 -0
  280. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/clickhouse/provider.py +0 -0
  281. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/clickhouse/schema.py +0 -0
  282. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/cockroachdb/__init__.py +0 -0
  283. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/cockroachdb/adapter.py +0 -0
  284. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/cockroachdb/provider.py +0 -0
  285. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/cockroachdb/schema.py +0 -0
  286. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/config_service.py +0 -0
  287. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/d1/__init__.py +0 -0
  288. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/d1/provider.py +0 -0
  289. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/d1/schema.py +0 -0
  290. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/db2/__init__.py +0 -0
  291. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/db2/adapter.py +0 -0
  292. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/db2/provider.py +0 -0
  293. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/db2/schema.py +0 -0
  294. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/docker.py +0 -0
  295. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/driver.py +0 -0
  296. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/duckdb/__init__.py +0 -0
  297. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/duckdb/provider.py +0 -0
  298. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/duckdb/schema.py +0 -0
  299. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/exceptions.py +0 -0
  300. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/explorer_nodes.py +0 -0
  301. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/firebird/__init__.py +0 -0
  302. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/firebird/provider.py +0 -0
  303. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/firebird/schema.py +0 -0
  304. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/flight/__init__.py +0 -0
  305. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/flight/adapter.py +0 -0
  306. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/flight/provider.py +0 -0
  307. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/flight/schema.py +0 -0
  308. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/hana/__init__.py +0 -0
  309. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/hana/provider.py +0 -0
  310. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/hana/schema.py +0 -0
  311. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/mariadb/__init__.py +0 -0
  312. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/mariadb/provider.py +0 -0
  313. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/mariadb/schema.py +0 -0
  314. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/metadata.py +0 -0
  315. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/motherduck/__init__.py +0 -0
  316. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/motherduck/adapter.py +0 -0
  317. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/motherduck/provider.py +0 -0
  318. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/motherduck/schema.py +0 -0
  319. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/mssql/__init__.py +0 -0
  320. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/mssql/provider.py +0 -0
  321. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/mssql/schema.py +0 -0
  322. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/mysql/__init__.py +0 -0
  323. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/mysql/adapter.py +0 -0
  324. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/mysql/base.py +0 -0
  325. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/mysql/provider.py +0 -0
  326. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/mysql/schema.py +0 -0
  327. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/oracle/__init__.py +0 -0
  328. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/oracle/provider.py +0 -0
  329. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/oracle/schema.py +0 -0
  330. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/oracle_legacy/__init__.py +0 -0
  331. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/oracle_legacy/adapter.py +0 -0
  332. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/oracle_legacy/provider.py +0 -0
  333. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/oracle_legacy/schema.py +0 -0
  334. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/postgresql/__init__.py +0 -0
  335. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/postgresql/base.py +0 -0
  336. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/postgresql/provider.py +0 -0
  337. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/postgresql/schema.py +0 -0
  338. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/presto/__init__.py +0 -0
  339. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/presto/adapter.py +0 -0
  340. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/presto/provider.py +0 -0
  341. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/presto/schema.py +0 -0
  342. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/redshift/__init__.py +0 -0
  343. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/redshift/adapter.py +0 -0
  344. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/redshift/provider.py +0 -0
  345. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/redshift/schema.py +0 -0
  346. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/registry.py +0 -0
  347. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/schema_catalog.py +0 -0
  348. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/schema_helpers.py +0 -0
  349. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/snowflake/__init__.py +0 -0
  350. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/snowflake/provider.py +0 -0
  351. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/spanner/__init__.py +0 -0
  352. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/spanner/adapter.py +0 -0
  353. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/spanner/provider.py +0 -0
  354. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/spanner/schema.py +0 -0
  355. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/sqlite/__init__.py +0 -0
  356. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/sqlite/provider.py +0 -0
  357. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/sqlite/schema.py +0 -0
  358. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/supabase/__init__.py +0 -0
  359. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/supabase/adapter.py +0 -0
  360. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/supabase/provider.py +0 -0
  361. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/supabase/schema.py +0 -0
  362. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/teradata/__init__.py +0 -0
  363. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/teradata/provider.py +0 -0
  364. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/teradata/schema.py +0 -0
  365. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/tls.py +0 -0
  366. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/trino/__init__.py +0 -0
  367. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/trino/adapter.py +0 -0
  368. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/trino/provider.py +0 -0
  369. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/trino/schema.py +0 -0
  370. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/turso/__init__.py +0 -0
  371. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/turso/adapter.py +0 -0
  372. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/turso/provider.py +0 -0
  373. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/turso/schema.py +0 -0
  374. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/providers/validation.py +0 -0
  375. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/store/__init__.py +0 -0
  376. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/store/memory.py +0 -0
  377. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/ui/__init__.py +0 -0
  378. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/ui/connection_error_handlers.py +0 -0
  379. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/ui/connection_focus.py +0 -0
  380. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/ui/connection_form.py +0 -0
  381. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/ui/connection_test_controller.py +0 -0
  382. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/ui/driver_status.py +0 -0
  383. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/ui/driver_status_controller.py +0 -0
  384. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/ui/field_widgets.py +0 -0
  385. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/ui/fields.py +0 -0
  386. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/ui/mixins/__init__.py +0 -0
  387. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/ui/restart_cache.py +0 -0
  388. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/ui/screens/__init__.py +0 -0
  389. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/ui/screens/azure_firewall.py +0 -0
  390. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/ui/screens/connection.py +0 -0
  391. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/ui/screens/connection_picker/__init__.py +0 -0
  392. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/ui/screens/connection_picker/cloud_nodes.py +0 -0
  393. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/ui/screens/connection_picker/cloud_providers/__init__.py +0 -0
  394. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/ui/screens/connection_picker/cloud_providers/aws.py +0 -0
  395. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/ui/screens/connection_picker/cloud_providers/azure.py +0 -0
  396. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/ui/screens/connection_picker/cloud_providers/base.py +0 -0
  397. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/ui/screens/connection_picker/cloud_providers/gcp.py +0 -0
  398. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/ui/screens/connection_picker/cloud_providers/utils.py +0 -0
  399. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/ui/screens/connection_picker/constants.py +0 -0
  400. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/ui/screens/connection_picker/controllers/__init__.py +0 -0
  401. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/ui/screens/connection_picker/controllers/cloud.py +0 -0
  402. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/ui/screens/connection_picker/controllers/docker.py +0 -0
  403. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/ui/screens/connection_picker/screen.py +0 -0
  404. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/ui/screens/connection_picker/shortcuts.py +0 -0
  405. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/ui/screens/connection_picker/state.py +0 -0
  406. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/ui/screens/connection_picker/tabs/__init__.py +0 -0
  407. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/ui/screens/connection_picker/tabs/cloud.py +0 -0
  408. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/ui/screens/connection_picker/tabs/connections.py +0 -0
  409. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/ui/screens/connection_picker/tabs/docker.py +0 -0
  410. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/ui/screens/connection_picker/view.py +0 -0
  411. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/ui/screens/connection_styles.py +0 -0
  412. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/ui/screens/folder_input.py +0 -0
  413. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/ui/screens/install_progress.py +0 -0
  414. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/ui/screens/package_setup.py +0 -0
  415. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/ui/screens/password_input.py +0 -0
  416. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/ui/validation.py +0 -0
  417. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/connections/ui/validation_ui_binder.py +0 -0
  418. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/explorer/__init__.py +0 -0
  419. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/explorer/app/schema_service.py +0 -0
  420. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/explorer/domain/__init__.py +0 -0
  421. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/explorer/domain/tree_nodes.py +0 -0
  422. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/explorer/state/__init__.py +0 -0
  423. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/explorer/state/tree_filter_active.py +0 -0
  424. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/explorer/state/tree_focused.py +0 -0
  425. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/explorer/state/tree_multi_select.py +0 -0
  426. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/explorer/state/tree_on_connection.py +0 -0
  427. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/explorer/state/tree_on_database.py +0 -0
  428. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/explorer/state/tree_on_folder.py +0 -0
  429. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/explorer/state/tree_on_object.py +0 -0
  430. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/explorer/state/tree_on_table.py +0 -0
  431. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/explorer/state/tree_visual_mode.py +0 -0
  432. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/explorer/ui/__init__.py +0 -0
  433. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/explorer/ui/mixins/__init__.py +0 -0
  434. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/explorer/ui/mixins/tree.py +0 -0
  435. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/explorer/ui/mixins/tree_labels.py +0 -0
  436. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/explorer/ui/mixins/tree_schema.py +0 -0
  437. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/explorer/ui/tree/__init__.py +0 -0
  438. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/explorer/ui/tree/builder.py +0 -0
  439. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/explorer/ui/tree/db_switching.py +0 -0
  440. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/explorer/ui/tree/expansion_state.py +0 -0
  441. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/explorer/ui/tree/loaders.py +0 -0
  442. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/explorer/ui/tree/object_info.py +0 -0
  443. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/explorer/ui/tree/schema_render.py +0 -0
  444. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/process_worker/__init__.py +0 -0
  445. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/process_worker/app/__init__.py +0 -0
  446. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/process_worker/app/process_worker_client.py +0 -0
  447. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/process_worker/app/support.py +0 -0
  448. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/process_worker/ui/__init__.py +0 -0
  449. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/process_worker/ui/mixins/__init__.py +0 -0
  450. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/process_worker/ui/mixins/process_worker_lifecycle.py +0 -0
  451. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/__init__.py +0 -0
  452. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/app/__init__.py +0 -0
  453. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/app/alerts.py +0 -0
  454. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/app/cancellable.py +0 -0
  455. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/app/multi_statement.py +0 -0
  456. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/app/query_runner.py +0 -0
  457. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/app/transaction.py +0 -0
  458. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/cli/__init__.py +0 -0
  459. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/cli/commands.py +0 -0
  460. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/completion/__init__.py +0 -0
  461. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/completion/alter_table.py +0 -0
  462. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/completion/completion.py +0 -0
  463. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/completion/core.py +0 -0
  464. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/completion/create_index.py +0 -0
  465. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/completion/create_table.py +0 -0
  466. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/completion/create_view.py +0 -0
  467. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/completion/delete.py +0 -0
  468. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/completion/drop.py +0 -0
  469. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/completion/insert.py +0 -0
  470. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/completion/keywords.py +0 -0
  471. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/completion/truncate.py +0 -0
  472. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/completion/update.py +0 -0
  473. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/editing/__init__.py +0 -0
  474. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/editing/clipboard.py +0 -0
  475. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/editing/comments.py +0 -0
  476. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/editing/deletion.py +0 -0
  477. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/editing/motions/__init__.py +0 -0
  478. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/editing/motions/basic.py +0 -0
  479. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/editing/motions/brackets.py +0 -0
  480. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/editing/motions/common.py +0 -0
  481. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/editing/motions/search.py +0 -0
  482. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/editing/motions/words.py +0 -0
  483. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/editing/operators.py +0 -0
  484. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/editing/text_objects.py +0 -0
  485. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/editing/types.py +0 -0
  486. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/editing/undo_history.py +0 -0
  487. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/state/autocomplete_active.py +0 -0
  488. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/state/query_focused.py +0 -0
  489. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/state/query_insert.py +0 -0
  490. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/store/__init__.py +0 -0
  491. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/ui/__init__.py +0 -0
  492. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/ui/mixins/__init__.py +0 -0
  493. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/ui/mixins/autocomplete.py +0 -0
  494. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/ui/mixins/query_constants.py +0 -0
  495. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/ui/mixins/query_editing_comments.py +0 -0
  496. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/ui/mixins/query_editing_common.py +0 -0
  497. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/ui/mixins/query_editing_operators.py +0 -0
  498. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/ui/mixins/query_editing_selection.py +0 -0
  499. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/ui/mixins/query_editing_undo.py +0 -0
  500. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/ui/screens/__init__.py +0 -0
  501. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/ui/screens/char_pending_menu.py +0 -0
  502. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/query/ui/screens/text_object_menu.py +0 -0
  503. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/results/__init__.py +0 -0
  504. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/results/formatters.py +0 -0
  505. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/results/state/__init__.py +0 -0
  506. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/results/state/results_filter_active.py +0 -0
  507. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/results/state/value_view_active.py +0 -0
  508. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/results/ui/__init__.py +0 -0
  509. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/results/ui/mixins/__init__.py +0 -0
  510. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/results/ui/mixins/results_filter.py +0 -0
  511. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/results/ui/screens/save_file.py +0 -0
  512. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/results/ui/screens/value_view.py +0 -0
  513. {sqlit_tui-1.3.1.1/sqlit/domains/results/ui/screens → sqlit_tui-1.4.1/sqlit/domains/shell}/__init__.py +0 -0
  514. {sqlit_tui-1.3.1.1/sqlit/domains/shell → sqlit_tui-1.4.1/sqlit/domains/shell/app}/__init__.py +0 -0
  515. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/shell/app/commands/__init__.py +0 -0
  516. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/shell/app/commands/alert.py +0 -0
  517. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/shell/app/commands/debug.py +0 -0
  518. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/shell/app/commands/router.py +0 -0
  519. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/shell/app/commands/watchdog.py +0 -0
  520. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/shell/app/commands/worker.py +0 -0
  521. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/shell/app/idle_scheduler.py +0 -0
  522. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/shell/app/omarchy.py +0 -0
  523. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/shell/app/startup_flow.py +0 -0
  524. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/shell/app/themes.py +0 -0
  525. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/shell/state/__init__.py +0 -0
  526. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/shell/state/leader_pending.py +0 -0
  527. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/shell/state/main_screen.py +0 -0
  528. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/shell/state/modal_active.py +0 -0
  529. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/shell/state/query_executing.py +0 -0
  530. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/shell/state/root.py +0 -0
  531. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/shell/store/__init__.py +0 -0
  532. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/shell/ui/__init__.py +0 -0
  533. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/shell/ui/mixins/__init__.py +0 -0
  534. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/shell/ui/mixins/ui_leader.py +0 -0
  535. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/shell/ui/mixins/ui_navigation.py +0 -0
  536. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/shell/ui/screens/__init__.py +0 -0
  537. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/shell/ui/screens/help.py +0 -0
  538. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/domains/shell/ui/screens/leader_menu.py +0 -0
  539. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/mock_settings.py +0 -0
  540. {sqlit_tui-1.3.1.1/sqlit/domains/shell/app → sqlit_tui-1.4.1/sqlit/shared}/__init__.py +0 -0
  541. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/shared/app/__init__.py +0 -0
  542. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/shared/app/runtime.py +0 -0
  543. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/shared/app/startup_profiler.py +0 -0
  544. {sqlit_tui-1.3.1.1/sqlit/shared → sqlit_tui-1.4.1/sqlit/shared/core}/__init__.py +0 -0
  545. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/shared/core/debug_events.py +0 -0
  546. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/shared/core/processes.py +0 -0
  547. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/shared/core/terminal.py +0 -0
  548. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/shared/core/utils.py +0 -0
  549. {sqlit_tui-1.3.1.1/sqlit/shared/core → sqlit_tui-1.4.1/sqlit/shared/ui}/__init__.py +0 -0
  550. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/shared/ui/lifecycle.py +0 -0
  551. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/shared/ui/protocols/__init__.py +0 -0
  552. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/shared/ui/protocols/autocomplete.py +0 -0
  553. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/shared/ui/protocols/connections.py +0 -0
  554. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/shared/ui/protocols/core.py +0 -0
  555. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/shared/ui/protocols/explorer.py +0 -0
  556. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/shared/ui/protocols/lifecycle.py +0 -0
  557. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/shared/ui/protocols/metadata.py +0 -0
  558. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/shared/ui/protocols/mixins.py +0 -0
  559. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/shared/ui/protocols/results.py +0 -0
  560. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/shared/ui/protocols/screens.py +0 -0
  561. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/shared/ui/protocols/startup.py +0 -0
  562. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/shared/ui/protocols/ui_navigation.py +0 -0
  563. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/shared/ui/protocols/vim.py +0 -0
  564. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/shared/ui/protocols/widgets.py +0 -0
  565. {sqlit_tui-1.3.1.1/sqlit/shared/ui → sqlit_tui-1.4.1/sqlit/shared/ui/screens}/__init__.py +0 -0
  566. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/shared/ui/screens/confirm.py +0 -0
  567. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/shared/ui/screens/error.py +0 -0
  568. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/shared/ui/screens/file_picker.py +0 -0
  569. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/shared/ui/screens/loading.py +0 -0
  570. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/shared/ui/screens/message.py +0 -0
  571. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/shared/ui/spinner.py +0 -0
  572. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/shared/ui/widgets.py +0 -0
  573. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/shared/ui/widgets_dialogs.py +0 -0
  574. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/shared/ui/widgets_flash.py +0 -0
  575. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/shared/ui/widgets_footer.py +0 -0
  576. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/shared/ui/widgets_json_tree.py +0 -0
  577. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/sqlit/shared/ui/widgets_value_view.py +0 -0
  578. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/.env.example +0 -0
  579. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/__init__.py +0 -0
  580. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/athena/__init__.py +0 -0
  581. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/athena/fixtures.py +0 -0
  582. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/athena/infra/.gitignore +0 -0
  583. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/athena/infra/create_view.py +0 -0
  584. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/athena/infra/main.tf +0 -0
  585. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/athena/infra/outputs.tf +0 -0
  586. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/athena/infra/variables.tf +0 -0
  587. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/athena/run_tests.sh +0 -0
  588. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/athena/test_athena.py +0 -0
  589. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/cli/test_cli_main.py +0 -0
  590. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/connections/providers/__init__.py +0 -0
  591. {sqlit_tui-1.3.1.1/tests/connections/providers/oracle → sqlit_tui-1.4.1/tests/connections/providers/hana}/__init__.py +0 -0
  592. {sqlit_tui-1.3.1.1/tests/unit → sqlit_tui-1.4.1/tests/connections/providers/oracle}/__init__.py +0 -0
  593. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/connections/providers/oracle/test_cursor_cleanup.py +0 -0
  594. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/fixtures/99-fix-sshd-config.sh +0 -0
  595. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/fixtures/__init__.py +0 -0
  596. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/fixtures/bigquery.py +0 -0
  597. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/fixtures/cli.py +0 -0
  598. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/fixtures/clickhouse.py +0 -0
  599. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/fixtures/d1/Dockerfile +0 -0
  600. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/fixtures/d1/wrangler.toml +0 -0
  601. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/fixtures/duckdb.py +0 -0
  602. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/fixtures/flight.py +0 -0
  603. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/fixtures/presto/catalog/memory.properties +0 -0
  604. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/fixtures/presto.py +0 -0
  605. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/fixtures/spanner.py +0 -0
  606. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/fixtures/sqlite.py +0 -0
  607. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/fixtures/ssh.py +0 -0
  608. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/fixtures/sshd_config +0 -0
  609. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/fixtures/trino/catalog/memory.properties +0 -0
  610. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/fixtures/trino.py +0 -0
  611. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/fixtures/turso.py +0 -0
  612. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/integration/__init__.py +0 -0
  613. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/integration/browsing_base.py +0 -0
  614. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/integration/docker_detect/__init__.py +0 -0
  615. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/integration/docker_detect/conftest.py +0 -0
  616. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/integration/docker_detect/database_configs.py +0 -0
  617. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/integration/docker_detect/test_all_databases.py +0 -0
  618. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/integration/docker_detect/test_docker_detection.py +0 -0
  619. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/integration/python_packages/README.md +0 -0
  620. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/integration/python_packages/docker-compose.yml +0 -0
  621. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/integration/python_packages/dockerfiles/debian.Dockerfile +0 -0
  622. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/integration/python_packages/run_tests.sh +0 -0
  623. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/integration/python_packages/test_package_install_flow.py +0 -0
  624. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/integration/test_autocomplete_mysql_columns.py +0 -0
  625. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/integration/test_database_browsing_flow.py +0 -0
  626. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/integration/test_explorer_refresh_cursor.py +0 -0
  627. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/integration/test_mssql_datetimeoffset.py +0 -0
  628. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/integration/test_snowflake_fakesnow.py +0 -0
  629. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/integration/test_telescope_watchdog.py +0 -0
  630. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/integration/test_tls_cli_config.py +0 -0
  631. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/integration/test_transactions.py +0 -0
  632. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/performance/__init__.py +0 -0
  633. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/performance/test_large_dataset_rendering.py +0 -0
  634. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/test_adapter_system_databases.py +0 -0
  635. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/test_apply_database_override.py +0 -0
  636. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/test_autocomplete_database_modes.py +0 -0
  637. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/test_bigquery.py +0 -0
  638. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/test_clickhouse.py +0 -0
  639. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/test_cloud_discovery.py +0 -0
  640. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/test_cockroachdb.py +0 -0
  641. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/test_commands.py +0 -0
  642. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/test_credentials_connection_store.py +0 -0
  643. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/test_credentials_global.py +0 -0
  644. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/test_credentials_keyring.py +0 -0
  645. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/test_credentials_plaintext.py +0 -0
  646. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/test_cross_database_queries.py +0 -0
  647. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/test_d1.py +0 -0
  648. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/test_database_base.py +0 -0
  649. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/test_database_docker.py +0 -0
  650. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/test_db2.py +0 -0
  651. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/test_docker_detector.py +0 -0
  652. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/test_driver_resolver.py +0 -0
  653. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/test_duckdb.py +0 -0
  654. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/test_firebird.py +0 -0
  655. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/test_flight.py +0 -0
  656. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/test_install_strategy.py +0 -0
  657. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/test_installer_cancel.py +0 -0
  658. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/test_mariadb.py +0 -0
  659. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/test_mocks.py +0 -0
  660. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/test_mssql.py +0 -0
  661. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/test_mysql.py +0 -0
  662. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/test_oracle.py +0 -0
  663. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/test_oracle_legacy.py +0 -0
  664. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/test_postgresql.py +0 -0
  665. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/test_presto.py +0 -0
  666. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/test_schema_capabilities.py +0 -0
  667. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/test_spanner.py +0 -0
  668. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/test_sqlite.py +0 -0
  669. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/test_ssh.py +0 -0
  670. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/test_trino.py +0 -0
  671. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/test_turso.py +0 -0
  672. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/test_validation.py +0 -0
  673. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/__init__.py +0 -0
  674. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/conftest.py +0 -0
  675. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/explorer/__init__.py +0 -0
  676. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/explorer/test_cross_database_query.py +0 -0
  677. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/explorer/test_markup_escaping.py +0 -0
  678. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/explorer/test_multidb_refresh.py +0 -0
  679. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/explorer/test_refresh_cursor_restore.py +0 -0
  680. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/explorer/test_refresh_expanded_loads.py +0 -0
  681. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/explorer/test_refresh_tree.py +0 -0
  682. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/explorer/test_tree_expansion.py +0 -0
  683. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/keybindings/__init__.py +0 -0
  684. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/keybindings/conftest.py +0 -0
  685. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/keybindings/test_contextual.py +0 -0
  686. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/keybindings/test_dialogs.py +0 -0
  687. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/keybindings/test_insert_mode.py +0 -0
  688. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/keybindings/test_keymap_provider.py +0 -0
  689. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/keybindings/test_leader.py +0 -0
  690. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/keybindings/test_state_machine.py +0 -0
  691. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/keybindings/test_vim_motions.py +0 -0
  692. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/snapshots/01_default_sqlite_screen.svg +0 -0
  693. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/snapshots/02_edit_mode_postgresql.svg +0 -0
  694. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/snapshots/03_before_cancel.svg +0 -0
  695. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/snapshots/04_empty_name_after_save_attempt.svg +0 -0
  696. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/snapshots/04_empty_name_before_save.svg +0 -0
  697. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/snapshots/05_after_switch_to_postgresql.svg +0 -0
  698. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/snapshots/05_before_switch_to_postgresql.svg +0 -0
  699. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/snapshots/06_sqlite_file_path_field.svg +0 -0
  700. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/snapshots/07_sqlite_filled_form.svg +0 -0
  701. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/snapshots/08_postgresql_after_switch.svg +0 -0
  702. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/snapshots/08_postgresql_filled_form.svg +0 -0
  703. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/snapshots/09_duplicate_name_validation.svg +0 -0
  704. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/snapshots/10_after_test_connection.svg +0 -0
  705. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/snapshots/10_before_test_connection.svg +0 -0
  706. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/snapshots/11_navigation_after_tab.svg +0 -0
  707. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/snapshots/11_navigation_initial_focus.svg +0 -0
  708. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/snapshots/12_navigation_after_shift_tab.svg +0 -0
  709. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/snapshots/12_navigation_after_two_tabs.svg +0 -0
  710. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/snapshots/13_ssh_fields_hidden.svg +0 -0
  711. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/test_command_version.py +0 -0
  712. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/test_connect_action.py +0 -0
  713. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/test_connection_screen.py +0 -0
  714. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/test_explorer_toggle.py +0 -0
  715. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/test_json_tree.py +0 -0
  716. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/test_multi_select_actions.py +0 -0
  717. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/test_password_input.py +0 -0
  718. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/test_query_history.py +0 -0
  719. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/test_results_incremental_rendering.py +0 -0
  720. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/ui/test_tree_schema_grouping.py +0 -0
  721. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/unit/sql_completion/__init__.py +0 -0
  722. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/unit/sql_completion/test_alter_table.py +0 -0
  723. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/unit/sql_completion/test_core.py +0 -0
  724. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/unit/sql_completion/test_create_index.py +0 -0
  725. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/unit/sql_completion/test_create_table.py +0 -0
  726. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/unit/sql_completion/test_create_view.py +0 -0
  727. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/unit/sql_completion/test_delete.py +0 -0
  728. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/unit/sql_completion/test_drop.py +0 -0
  729. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/unit/sql_completion/test_edge_cases_cross_returning.py +0 -0
  730. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/unit/sql_completion/test_edge_cases_misc.py +0 -0
  731. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/unit/sql_completion/test_edge_cases_select_window.py +0 -0
  732. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/unit/sql_completion/test_edge_cases_union_cast.py +0 -0
  733. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/unit/sql_completion/test_insert.py +0 -0
  734. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/unit/sql_completion/test_select.py +0 -0
  735. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/unit/sql_completion/test_truncate.py +0 -0
  736. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/unit/sql_completion/test_update.py +0 -0
  737. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/unit/test_auto_reconnect_after_driver_install.py +0 -0
  738. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/unit/test_autocomplete_alias_multi_db.py +0 -0
  739. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/unit/test_comments.py +0 -0
  740. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/unit/test_connection_mixin_edit.py +0 -0
  741. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/unit/test_connection_picker_refresh.py +0 -0
  742. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/unit/test_docker_credential_parsing.py +0 -0
  743. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/unit/test_docker_tab_filtering.py +0 -0
  744. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/unit/test_executor_reset_on_connection_switch.py +0 -0
  745. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/unit/test_flight_adapter.py +0 -0
  746. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/unit/test_incremental_rendering_numeric_range.py +0 -0
  747. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/unit/test_motherduck_adapter.py +0 -0
  748. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/unit/test_mssql_autocommit.py +0 -0
  749. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/unit/test_multi_statement.py +0 -0
  750. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/unit/test_open_line.py +0 -0
  751. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/unit/test_query_alerts.py +0 -0
  752. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/unit/test_query_deletion.py +0 -0
  753. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/unit/test_schema_config_validator.py +0 -0
  754. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/unit/test_select_all.py +0 -0
  755. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/unit/test_single_statement_execution.py +0 -0
  756. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/unit/test_snowflake_adapter.py +0 -0
  757. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/unit/test_starred.py +0 -0
  758. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/unit/test_text_object_menu.py +0 -0
  759. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/unit/test_tls_adapters.py +0 -0
  760. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/unit/test_transaction_executor.py +0 -0
  761. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/unit/test_transaction_state.py +0 -0
  762. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/unit/test_undo_history.py +0 -0
  763. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/unit/test_url_parser.py +0 -0
  764. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/unit/test_vim_operators.py +0 -0
  765. {sqlit_tui-1.3.1.1 → sqlit_tui-1.4.1}/tests/unit/test_vim_text_objects.py +0 -0
@@ -9,23 +9,37 @@ on:
9
9
  version:
10
10
  description: 'Version to release (e.g., 0.4.2)'
11
11
  required: true
12
+ aur_only:
13
+ description: 'Only update AUR from the specified tag version'
14
+ required: false
15
+ type: boolean
16
+ default: false
17
+
18
+ env:
19
+ RELEASE_TAG: ${{ github.event_name == 'workflow_dispatch' && format('v{0}', github.event.inputs.version) || github.ref_name }}
12
20
 
13
21
  jobs:
14
22
  release:
23
+ if: ${{ !(github.event_name == 'workflow_dispatch' && github.event.inputs.aur_only == 'true') }}
15
24
  runs-on: ubuntu-latest
16
25
  permissions:
17
26
  contents: write
18
27
  steps:
19
28
  - uses: actions/checkout@v4
29
+ with:
30
+ ref: ${{ env.RELEASE_TAG }}
20
31
 
21
32
  - name: Extract version from tag
22
33
  id: version
23
- run: echo "VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
34
+ run: |
35
+ echo "TAG=${RELEASE_TAG}" >> $GITHUB_OUTPUT
36
+ echo "VERSION=${RELEASE_TAG#v}" >> $GITHUB_OUTPUT
24
37
 
25
38
  - name: Create GitHub Release
26
39
  uses: softprops/action-gh-release@v1
27
40
  with:
28
- name: ${{ steps.version.outputs.VERSION }}
41
+ tag_name: ${{ steps.version.outputs.TAG }}
42
+ name: ${{ steps.version.outputs.TAG }}
29
43
  generate_release_notes: true
30
44
  draft: false
31
45
  prerelease: false
@@ -34,6 +48,8 @@ jobs:
34
48
  runs-on: ubuntu-latest
35
49
  steps:
36
50
  - uses: actions/checkout@v4
51
+ with:
52
+ ref: ${{ env.RELEASE_TAG }}
37
53
 
38
54
  - name: Set up Python
39
55
  uses: actions/setup-python@v5
@@ -53,6 +69,7 @@ jobs:
53
69
  path: dist/
54
70
 
55
71
  publish:
72
+ if: ${{ !(github.event_name == 'workflow_dispatch' && github.event.inputs.aur_only == 'true') }}
56
73
  needs: build
57
74
  runs-on: ubuntu-latest
58
75
  environment: pypi
@@ -70,9 +87,12 @@ jobs:
70
87
 
71
88
  aur:
72
89
  needs: [build, publish]
90
+ if: ${{ always() && needs.build.result == 'success' && (needs.publish.result == 'success' || needs.publish.result == 'skipped') }}
73
91
  runs-on: ubuntu-latest
74
92
  steps:
75
93
  - uses: actions/checkout@v4
94
+ with:
95
+ ref: ${{ env.RELEASE_TAG }}
76
96
 
77
97
  - name: Download dist artifacts
78
98
  uses: actions/download-artifact@v4
@@ -83,11 +103,7 @@ jobs:
83
103
  - name: Extract version and checksum
84
104
  id: info
85
105
  run: |
86
- if [ -n "${{ github.event.inputs.version }}" ]; then
87
- VERSION="${{ github.event.inputs.version }}"
88
- else
89
- VERSION="${GITHUB_REF#refs/tags/v}"
90
- fi
106
+ VERSION="${RELEASE_TAG#v}"
91
107
  echo "VERSION=${VERSION}" >> $GITHUB_OUTPUT
92
108
 
93
109
  # Get checksum from the built artifact (no need to wait for PyPI)
@@ -116,7 +132,7 @@ jobs:
116
132
  cat PKGBUILD
117
133
 
118
134
  - name: Publish to AUR
119
- uses: KSXGitHub/github-actions-deploy-aur@v3.0.1
135
+ uses: KSXGitHub/github-actions-deploy-aur@v4.1.3
120
136
  with:
121
137
  pkgname: sqlit
122
138
  pkgbuild: ./aur/PKGBUILD
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sqlit-tui
3
- Version: 1.3.1.1
3
+ Version: 1.4.1
4
4
  Summary: A terminal UI for SQL Server, PostgreSQL, MySQL, SQLite, Oracle, and more
5
5
  Project-URL: Homepage, https://github.com/Maxteabag/sqlit
6
6
  Project-URL: Repository, https://github.com/Maxteabag/sqlit
@@ -36,10 +36,11 @@ Requires-Dist: google-cloud-bigquery; extra == 'all'
36
36
  Requires-Dist: google-cloud-spanner>=3.0.0; extra == 'all'
37
37
  Requires-Dist: hdbcli>=2.20.0; extra == 'all'
38
38
  Requires-Dist: ibm-db>=3.2.0; extra == 'all'
39
+ Requires-Dist: impyla>=0.18.0; extra == 'all'
39
40
  Requires-Dist: libsql>=0.1.0; extra == 'all'
40
- Requires-Dist: mariadb>=1.1.0; extra == 'all'
41
41
  Requires-Dist: mssql-python>=1.1.0; extra == 'all'
42
42
  Requires-Dist: oracledb>=2.0.0; extra == 'all'
43
+ Requires-Dist: osquery>=3.0.0; extra == 'all'
43
44
  Requires-Dist: paramiko<4.0.0,>=2.0.0; extra == 'all'
44
45
  Requires-Dist: presto-python-client>=0.8.4; extra == 'all'
45
46
  Requires-Dist: psycopg2-binary>=2.9.0; extra == 'all'
@@ -49,6 +50,7 @@ Requires-Dist: redshift-connector; extra == 'all'
49
50
  Requires-Dist: requests>=2.32.4; extra == 'all'
50
51
  Requires-Dist: snowflake-connector-python>=3.7.0; extra == 'all'
51
52
  Requires-Dist: sshtunnel>=0.4.0; extra == 'all'
53
+ Requires-Dist: surrealdb>=1.0.0; extra == 'all'
52
54
  Requires-Dist: teradatasql>=20.0.0; extra == 'all'
53
55
  Requires-Dist: trino>=0.329.0; extra == 'all'
54
56
  Provides-Extra: athena
@@ -71,14 +73,18 @@ Provides-Extra: flight
71
73
  Requires-Dist: adbc-driver-flightsql>=1.0.0; extra == 'flight'
72
74
  Provides-Extra: hana
73
75
  Requires-Dist: hdbcli>=2.20.0; extra == 'hana'
76
+ Provides-Extra: impala
77
+ Requires-Dist: impyla>=0.18.0; extra == 'impala'
74
78
  Provides-Extra: mariadb
75
- Requires-Dist: mariadb>=1.1.0; extra == 'mariadb'
79
+ Requires-Dist: pymysql>=1.1.0; extra == 'mariadb'
76
80
  Provides-Extra: mssql
77
81
  Requires-Dist: mssql-python>=1.1.0; extra == 'mssql'
78
82
  Provides-Extra: mysql
79
83
  Requires-Dist: pymysql>=1.1.0; extra == 'mysql'
80
84
  Provides-Extra: oracle
81
85
  Requires-Dist: oracledb>=2.0.0; extra == 'oracle'
86
+ Provides-Extra: osquery
87
+ Requires-Dist: osquery>=3.0.0; extra == 'osquery'
82
88
  Provides-Extra: postgres
83
89
  Requires-Dist: psycopg2-binary>=2.9.0; extra == 'postgres'
84
90
  Provides-Extra: presto
@@ -92,6 +98,8 @@ Requires-Dist: google-cloud-spanner>=3.0.0; extra == 'spanner'
92
98
  Provides-Extra: ssh
93
99
  Requires-Dist: paramiko<4.0.0,>=2.0.0; extra == 'ssh'
94
100
  Requires-Dist: sshtunnel>=0.4.0; extra == 'ssh'
101
+ Provides-Extra: surrealdb
102
+ Requires-Dist: surrealdb>=1.0.0; extra == 'surrealdb'
95
103
  Provides-Extra: teradata
96
104
  Requires-Dist: teradatasql>=20.0.0; extra == 'teradata'
97
105
  Provides-Extra: trino
@@ -127,7 +135,7 @@ Description-Content-Type: text/markdown
127
135
  ---
128
136
 
129
137
  ### Connect
130
- Supports all major databases: SQL Server, PostgreSQL, MySQL, SQLite, MariaDB, FirebirdSQL, Oracle, DuckDB, CockroachDB, ClickHouse, Snowflake, Supabase, CloudFlare D1, Turso, Athena, BigQuery, Spanner, RedShift, IBM Db2, SAP HANA, Teradata, Trino, Presto and Apache Flight SQL.
138
+ Supports all major databases: SQL Server, PostgreSQL, MySQL, SQLite, MariaDB, FirebirdSQL, Oracle, DuckDB, CockroachDB, ClickHouse, Snowflake, Supabase, CloudFlare D1, Turso, Athena, BigQuery, Spanner, RedShift, IBM Db2, SAP HANA, Teradata, Trino, Presto, Apache Flight SQL, Apache Impala, SurrealDB and osquery.
131
139
 
132
140
  ![Database Providers](docs/demos/demo-providers.gif)
133
141
 
@@ -263,6 +271,10 @@ sqlit connections add athena --name "MyAthenaKeys" --athena-region-name "us-east
263
271
  sqlit connections add postgresql --name "RemoteDB" --server "db-host" --username "dbuser" --password "dbpass" \
264
272
  --ssh-enabled --ssh-host "ssh.example.com" --ssh-username "sshuser" --ssh-auth-type password --ssh-password "sshpass"
265
273
 
274
+ # Fetch password from a secrets manager (1Password, pass, Vault, etc.)
275
+ sqlit connections add postgresql --name "ProdDB" --server "prod.example.com" --username "dbuser" \
276
+ --password-command "op read 'op://Work/prod-db/password'"
277
+
266
278
  # Temporary (not saved) connection
267
279
  sqlit connect sqlite --file-path "/path/to/database.db"
268
280
 
@@ -335,13 +347,15 @@ Autocomplete triggers automatically in INSERT mode. Use `Tab` to accept.
335
347
 
336
348
  ## Configuration
337
349
 
338
- Connections and settings are stored in `~/.sqlit/`.
350
+ Connections and settings are stored in `$XDG_CONFIG_HOME/sqlit/` (default: `~/.config/sqlit/`). Override the location by setting `SQLIT_CONFIG_DIR`.
351
+
352
+ If an older install left files in `~/.sqlit/`, they are moved to the new location automatically on first run.
339
353
 
340
354
  ## FAQ
341
355
 
342
356
  ### How are sensitive credentials stored?
343
357
 
344
- Connection details are stored in `~/.sqlit/connections.json`, but passwords are stored in your OS keyring when available (macOS Keychain, Windows Credential Locker, Linux Secret Service).
358
+ Connection details are stored in `connections.json` inside the config directory, but passwords are stored in your OS keyring when available (macOS Keychain, Windows Credential Locker, Linux Secret Service).
345
359
 
346
360
  ### How does sqlit compare to Harlequin, Lazysql, etc.?
347
361
 
@@ -374,7 +388,7 @@ Most of the time you can just run `sqlit` and connect. If a Python driver is mis
374
388
  | PostgreSQL / CockroachDB / Supabase | `psycopg2-binary` | `pipx inject sqlit-tui psycopg2-binary` | `python -m pip install psycopg2-binary` |
375
389
  | SQL Server | `mssql-python` | `pipx inject sqlit-tui mssql-python` | `python -m pip install mssql-python` |
376
390
  | MySQL | `PyMySQL` | `pipx inject sqlit-tui PyMySQL` | `python -m pip install PyMySQL` |
377
- | MariaDB | `mariadb` | `pipx inject sqlit-tui mariadb` | `python -m pip install mariadb` |
391
+ | MariaDB | `PyMySQL` | `pipx inject sqlit-tui PyMySQL` | `python -m pip install PyMySQL` |
378
392
  | Oracle | `oracledb` | `pipx inject sqlit-tui oracledb` | `python -m pip install oracledb` |
379
393
  | DuckDB | `duckdb` | `pipx inject sqlit-tui duckdb` | `python -m pip install duckdb` |
380
394
  | ClickHouse | `clickhouse-connect` | `pipx inject sqlit-tui clickhouse-connect` | `python -m pip install clickhouse-connect` |
@@ -386,6 +400,9 @@ Most of the time you can just run `sqlit` and connect. If a Python driver is mis
386
400
  | BigQuery | `google-cloud-bigquery` | `pipx inject sqlit-tui google-cloud-bigquery` | `python -m pip install google-cloud-bigquery` |
387
401
  | Spanner | `google-cloud-spanner` | `pipx inject sqlit-tui google-cloud-spanner` | `python -m pip install google-cloud-spanner` |
388
402
  | Apache Arrow Flight SQL | `adbc-driver-flightsql` | `pipx inject sqlit-tui adbc-driver-flightsql` | `python -m pip install adbc-driver-flightsql` |
403
+ | Apache Impala | `impyla` | `pipx inject sqlit-tui impyla` | `python -m pip install impyla` |
404
+ | SurrealDB | `surrealdb` | `pipx inject sqlit-tui surrealdb` | `python -m pip install surrealdb` |
405
+ | osquery | `osquery` | `pipx inject sqlit-tui osquery` | `python -m pip install osquery` |
389
406
 
390
407
  ### SSH Tunnel Support
391
408
 
@@ -25,7 +25,7 @@
25
25
  ---
26
26
 
27
27
  ### Connect
28
- Supports all major databases: SQL Server, PostgreSQL, MySQL, SQLite, MariaDB, FirebirdSQL, Oracle, DuckDB, CockroachDB, ClickHouse, Snowflake, Supabase, CloudFlare D1, Turso, Athena, BigQuery, Spanner, RedShift, IBM Db2, SAP HANA, Teradata, Trino, Presto and Apache Flight SQL.
28
+ Supports all major databases: SQL Server, PostgreSQL, MySQL, SQLite, MariaDB, FirebirdSQL, Oracle, DuckDB, CockroachDB, ClickHouse, Snowflake, Supabase, CloudFlare D1, Turso, Athena, BigQuery, Spanner, RedShift, IBM Db2, SAP HANA, Teradata, Trino, Presto, Apache Flight SQL, Apache Impala, SurrealDB and osquery.
29
29
 
30
30
  ![Database Providers](docs/demos/demo-providers.gif)
31
31
 
@@ -161,6 +161,10 @@ sqlit connections add athena --name "MyAthenaKeys" --athena-region-name "us-east
161
161
  sqlit connections add postgresql --name "RemoteDB" --server "db-host" --username "dbuser" --password "dbpass" \
162
162
  --ssh-enabled --ssh-host "ssh.example.com" --ssh-username "sshuser" --ssh-auth-type password --ssh-password "sshpass"
163
163
 
164
+ # Fetch password from a secrets manager (1Password, pass, Vault, etc.)
165
+ sqlit connections add postgresql --name "ProdDB" --server "prod.example.com" --username "dbuser" \
166
+ --password-command "op read 'op://Work/prod-db/password'"
167
+
164
168
  # Temporary (not saved) connection
165
169
  sqlit connect sqlite --file-path "/path/to/database.db"
166
170
 
@@ -233,13 +237,15 @@ Autocomplete triggers automatically in INSERT mode. Use `Tab` to accept.
233
237
 
234
238
  ## Configuration
235
239
 
236
- Connections and settings are stored in `~/.sqlit/`.
240
+ Connections and settings are stored in `$XDG_CONFIG_HOME/sqlit/` (default: `~/.config/sqlit/`). Override the location by setting `SQLIT_CONFIG_DIR`.
241
+
242
+ If an older install left files in `~/.sqlit/`, they are moved to the new location automatically on first run.
237
243
 
238
244
  ## FAQ
239
245
 
240
246
  ### How are sensitive credentials stored?
241
247
 
242
- Connection details are stored in `~/.sqlit/connections.json`, but passwords are stored in your OS keyring when available (macOS Keychain, Windows Credential Locker, Linux Secret Service).
248
+ Connection details are stored in `connections.json` inside the config directory, but passwords are stored in your OS keyring when available (macOS Keychain, Windows Credential Locker, Linux Secret Service).
243
249
 
244
250
  ### How does sqlit compare to Harlequin, Lazysql, etc.?
245
251
 
@@ -272,7 +278,7 @@ Most of the time you can just run `sqlit` and connect. If a Python driver is mis
272
278
  | PostgreSQL / CockroachDB / Supabase | `psycopg2-binary` | `pipx inject sqlit-tui psycopg2-binary` | `python -m pip install psycopg2-binary` |
273
279
  | SQL Server | `mssql-python` | `pipx inject sqlit-tui mssql-python` | `python -m pip install mssql-python` |
274
280
  | MySQL | `PyMySQL` | `pipx inject sqlit-tui PyMySQL` | `python -m pip install PyMySQL` |
275
- | MariaDB | `mariadb` | `pipx inject sqlit-tui mariadb` | `python -m pip install mariadb` |
281
+ | MariaDB | `PyMySQL` | `pipx inject sqlit-tui PyMySQL` | `python -m pip install PyMySQL` |
276
282
  | Oracle | `oracledb` | `pipx inject sqlit-tui oracledb` | `python -m pip install oracledb` |
277
283
  | DuckDB | `duckdb` | `pipx inject sqlit-tui duckdb` | `python -m pip install duckdb` |
278
284
  | ClickHouse | `clickhouse-connect` | `pipx inject sqlit-tui clickhouse-connect` | `python -m pip install clickhouse-connect` |
@@ -284,6 +290,9 @@ Most of the time you can just run `sqlit` and connect. If a Python driver is mis
284
290
  | BigQuery | `google-cloud-bigquery` | `pipx inject sqlit-tui google-cloud-bigquery` | `python -m pip install google-cloud-bigquery` |
285
291
  | Spanner | `google-cloud-spanner` | `pipx inject sqlit-tui google-cloud-spanner` | `python -m pip install google-cloud-spanner` |
286
292
  | Apache Arrow Flight SQL | `adbc-driver-flightsql` | `pipx inject sqlit-tui adbc-driver-flightsql` | `python -m pip install adbc-driver-flightsql` |
293
+ | Apache Impala | `impyla` | `pipx inject sqlit-tui impyla` | `python -m pip install impyla` |
294
+ | SurrealDB | `surrealdb` | `pipx inject sqlit-tui surrealdb` | `python -m pip install surrealdb` |
295
+ | osquery | `osquery` | `pipx inject sqlit-tui osquery` | `python -m pip install osquery` |
287
296
 
288
297
  ### SSH Tunnel Support
289
298
 
@@ -17,8 +17,7 @@ pkgbase = sqlit
17
17
  depends = python-docker
18
18
  optdepends = python-psycopg2: PostgreSQL, CockroachDB and Supabase support
19
19
  optdepends = python-pyodbc: SQL Server support
20
- optdepends = python-pymysql: MySQL support
21
- optdepends = python-mariadb-connector: MariaDB support
20
+ optdepends = python-pymysql: MySQL and MariaDB support
22
21
  optdepends = python-oracledb: Oracle support
23
22
  optdepends = python-duckdb: DuckDB support
24
23
  optdepends = python-clickhouse-connect: ClickHouse support
@@ -20,8 +20,7 @@ depends=(
20
20
  optdepends=(
21
21
  'python-psycopg2: PostgreSQL, CockroachDB and Supabase support'
22
22
  'python-pyodbc: SQL Server support'
23
- 'python-pymysql: MySQL support'
24
- 'python-mariadb-connector: MariaDB support'
23
+ 'python-pymysql: MySQL and MariaDB support'
25
24
  'python-oracledb: Oracle support'
26
25
  'python-duckdb: DuckDB support'
27
26
  'python-clickhouse-connect: ClickHouse support'
@@ -0,0 +1,138 @@
1
+ {
2
+ description = "A terminal UI for SQL databases";
3
+
4
+ inputs = {
5
+ nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
6
+ flake-utils.url = "github:numtide/flake-utils";
7
+ };
8
+
9
+ outputs = { self, nixpkgs, flake-utils }:
10
+ flake-utils.lib.eachDefaultSystem (system:
11
+ let
12
+ pkgs = nixpkgs.legacyPackages.${system};
13
+ lib = pkgs.lib;
14
+ pyPkgs = pkgs.python3.pkgs;
15
+
16
+ ref =
17
+ if self ? sourceInfo && self.sourceInfo ? ref
18
+ then self.sourceInfo.ref
19
+ else "";
20
+ tag =
21
+ if lib.hasPrefix "refs/tags/v" ref
22
+ then lib.removePrefix "refs/tags/v" ref
23
+ else if lib.hasPrefix "refs/tags/" ref
24
+ then lib.removePrefix "refs/tags/" ref
25
+ else if lib.hasPrefix "v" ref
26
+ then lib.removePrefix "v" ref
27
+ else "";
28
+ shortRev = if self ? shortRev then self.shortRev else "dirty";
29
+ version = if tag != "" then tag else "0.0.0+${shortRev}";
30
+
31
+ # Extras mirror project.optional-dependencies in pyproject.toml,
32
+ # limited to drivers packaged in nixpkgs. Others (mssql-python,
33
+ # oracledb, mariadb, ibm_db, hdbcli, teradatasql, trino,
34
+ # presto-python-client, redshift-connector, clickhouse-connect,
35
+ # libsql, firebirdsql, pyathena, adbc-driver-flightsql) aren't
36
+ # here; install with `pipx inject` or a custom derivation.
37
+ nixpkgsExtras = {
38
+ ssh = [ pyPkgs.sshtunnel pyPkgs.paramiko ];
39
+ postgres = [ pyPkgs.psycopg2 ];
40
+ cockroachdb = [ pyPkgs.psycopg2 ];
41
+ mysql = [ pyPkgs.pymysql ];
42
+ duckdb = [ pyPkgs.duckdb ];
43
+ bigquery = [ pyPkgs.google-cloud-bigquery ];
44
+ snowflake = [ pyPkgs.snowflake-connector-python ];
45
+ d1 = [ pyPkgs.requests ];
46
+ };
47
+
48
+ resolveExtras = names:
49
+ lib.concatLists (map (n:
50
+ nixpkgsExtras.${n} or (throw
51
+ "Unknown sqlit extra '${n}'. Available: ${
52
+ lib.concatStringsSep ", " (builtins.attrNames nixpkgsExtras)
53
+ }")
54
+ ) names);
55
+
56
+ # Build sqlit, optionally with a set of driver extras from nixpkgs.
57
+ # Example: makeSqlit { extras = [ "postgres" "ssh" ]; }
58
+ makeSqlit = { extras ? [] }:
59
+ pyPkgs.buildPythonApplication {
60
+ pname = "sqlit";
61
+ inherit version;
62
+ pyproject = true;
63
+
64
+ src = self;
65
+
66
+ build-system = [
67
+ pyPkgs.hatchling
68
+ pyPkgs."hatch-vcs"
69
+ pyPkgs."setuptools-scm"
70
+ ];
71
+
72
+ nativeBuildInputs = [
73
+ pyPkgs.pythonRelaxDepsHook
74
+ ];
75
+
76
+ pythonRelaxDeps = [
77
+ "textual-fastdatatable"
78
+ ];
79
+
80
+ SETUPTOOLS_SCM_PRETEND_VERSION = version;
81
+
82
+ dependencies = [
83
+ pyPkgs.docker
84
+ pyPkgs.keyring
85
+ pyPkgs.pyperclip
86
+ pyPkgs.sqlparse
87
+ pyPkgs.textual
88
+ pyPkgs."textual-fastdatatable"
89
+ ] ++ (resolveExtras extras);
90
+
91
+ pythonImportsCheck = [ "sqlit" ];
92
+
93
+ meta = with lib; {
94
+ description = "A terminal UI for SQL databases";
95
+ homepage = "https://github.com/Maxteabag/sqlit";
96
+ license = licenses.mit;
97
+ mainProgram = "sqlit";
98
+ };
99
+ };
100
+
101
+ sqlit = makeSqlit { extras = builtins.attrNames nixpkgsExtras; };
102
+ in {
103
+ packages = {
104
+ inherit sqlit;
105
+ default = sqlit;
106
+ };
107
+
108
+ lib = { inherit makeSqlit; };
109
+
110
+ apps.default = {
111
+ type = "app";
112
+ program = "${sqlit}/bin/sqlit";
113
+ };
114
+
115
+ checks = {
116
+ inherit sqlit;
117
+ };
118
+
119
+ devShells.default = pkgs.mkShell {
120
+ packages = [
121
+ pkgs.python3
122
+ pkgs.hatch
123
+ pyPkgs.pytest
124
+ pyPkgs.pytest-timeout
125
+ pyPkgs.pytest-asyncio
126
+ pyPkgs.pytest-cov
127
+ pyPkgs.pytest-benchmark
128
+ pkgs.ruff
129
+ pyPkgs.mypy
130
+ pkgs.pre-commit
131
+ pyPkgs.build
132
+ pyPkgs.faker
133
+ pyPkgs.ipython
134
+ ];
135
+ inputsFrom = [ sqlit ];
136
+ };
137
+ });
138
+ }
@@ -175,6 +175,101 @@ services:
175
175
  retries: 10
176
176
  start_period: 10s
177
177
 
178
+ # Apache Impala ships no single-container image. The official quickstart runs
179
+ # Hive Metastore + statestored + catalogd + impalad together, all pinned to
180
+ # apache/impala:4.5.0-* with hive-site.xml mounted from impala_quickstart_conf/.
181
+ # Based on https://github.com/apache/impala/blob/master/docker/quickstart.yml
182
+ impala-hms:
183
+ image: apache/impala:4.5.0-impala_quickstart_hms
184
+ container_name: sqlit-test-impala-hms
185
+ command: ["hms"]
186
+ volumes:
187
+ - impala-warehouse:/var/lib/hive
188
+ - impala-warehouse:/user/hive/warehouse
189
+ - ./impala_quickstart_conf:/opt/hive/conf:ro
190
+ # hive-site.xml refers to the metastore as `thrift://quickstart-hive-metastore:9083`
191
+ # (matching the upstream quickstart). Alias so catalogd/impalad can resolve it.
192
+ networks:
193
+ impala-network:
194
+ aliases:
195
+ - quickstart-hive-metastore
196
+ profiles:
197
+ - enterprise
198
+
199
+ impala-statestored:
200
+ image: apache/impala:4.5.0-statestored
201
+ container_name: sqlit-test-impala-statestored
202
+ command: ["-redirect_stdout_stderr=false", "-logtostderr", "-v=1"]
203
+ volumes:
204
+ - ./impala_quickstart_conf:/opt/impala/conf:ro
205
+ # Impala hard-codes peer hostnames `statestored` and `catalogd` when the
206
+ # services register — alias so the other containers can reach it there.
207
+ networks:
208
+ impala-network:
209
+ aliases:
210
+ - statestored
211
+ profiles:
212
+ - enterprise
213
+
214
+ impala-catalogd:
215
+ image: apache/impala:4.5.0-catalogd
216
+ container_name: sqlit-test-impala-catalogd
217
+ depends_on:
218
+ - impala-statestored
219
+ - impala-hms
220
+ command:
221
+ - "-redirect_stdout_stderr=false"
222
+ - "-logtostderr"
223
+ - "-v=1"
224
+ - "-hms_event_polling_interval_s=1"
225
+ - "-invalidate_tables_timeout_s=999999"
226
+ volumes:
227
+ - impala-warehouse:/user/hive/warehouse
228
+ - ./impala_quickstart_conf:/opt/impala/conf:ro
229
+ networks:
230
+ impala-network:
231
+ aliases:
232
+ - catalogd
233
+ profiles:
234
+ - enterprise
235
+
236
+ impala:
237
+ image: apache/impala:4.5.0-impalad_coord_exec
238
+ container_name: sqlit-test-impala
239
+ depends_on:
240
+ - impala-statestored
241
+ - impala-catalogd
242
+ command:
243
+ - "-v=1"
244
+ - "-redirect_stdout_stderr=false"
245
+ - "-logtostderr"
246
+ - "-mt_dop_auto_fallback=true"
247
+ - "-default_query_options=mt_dop=4,default_file_format=parquet,default_transactional_type=insert_only"
248
+ - "-mem_limit=4gb"
249
+ environment:
250
+ - JAVA_TOOL_OPTIONS=-Xmx1g
251
+ ports:
252
+ - "${IMPALA_PORT:-21050}:21050"
253
+ volumes:
254
+ - impala-warehouse:/user/hive/warehouse
255
+ - ./impala_quickstart_conf:/opt/impala/conf:ro
256
+ networks:
257
+ - impala-network
258
+ healthcheck:
259
+ # /bin/sh in this image is dash, which doesn't support bash's /dev/tcp.
260
+ # The Impala image ships Python, so use that for a tiny TCP probe.
261
+ test:
262
+ - "CMD"
263
+ - "python"
264
+ - "-c"
265
+ - "import socket,sys; s=socket.socket(); s.settimeout(2); s.connect(('localhost',21050)); sys.exit(0)"
266
+ interval: 10s
267
+ timeout: 5s
268
+ retries: 30
269
+ start_period: 90s
270
+ profiles:
271
+ - enterprise
272
+
178
273
  mariadb:
179
274
  image: mariadb:11
180
275
  container_name: sqlit-test-mariadb
@@ -194,6 +289,48 @@ services:
194
289
  tmpfs:
195
290
  - /var/lib/mysql
196
291
 
292
+ # MariaDB with TIS-620 charset (Thai) - for charset testing
293
+ mariadb-tis620:
294
+ image: mariadb:11
295
+ container_name: sqlit-test-mariadb-tis620
296
+ command: --character-set-server=tis620 --collation-server=tis620_thai_ci
297
+ environment:
298
+ MARIADB_ROOT_PASSWORD: "TestPassword123!"
299
+ MARIADB_USER: "testuser"
300
+ MARIADB_PASSWORD: "TestPassword123!"
301
+ MARIADB_DATABASE: "test_sqlit"
302
+ ports:
303
+ - "${MARIADB_TIS620_PORT:-3310}:3306"
304
+ healthcheck:
305
+ test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
306
+ interval: 5s
307
+ timeout: 5s
308
+ retries: 10
309
+ start_period: 30s
310
+ tmpfs:
311
+ - /var/lib/mysql
312
+
313
+ # MariaDB with Latin1 charset - for charset testing
314
+ mariadb-latin1:
315
+ image: mariadb:11
316
+ container_name: sqlit-test-mariadb-latin1
317
+ command: --character-set-server=latin1 --collation-server=latin1_swedish_ci
318
+ environment:
319
+ MARIADB_ROOT_PASSWORD: "TestPassword123!"
320
+ MARIADB_USER: "testuser"
321
+ MARIADB_PASSWORD: "TestPassword123!"
322
+ MARIADB_DATABASE: "test_sqlit"
323
+ ports:
324
+ - "${MARIADB_LATIN1_PORT:-3311}:3306"
325
+ healthcheck:
326
+ test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
327
+ interval: 5s
328
+ timeout: 5s
329
+ retries: 10
330
+ start_period: 30s
331
+ tmpfs:
332
+ - /var/lib/mysql
333
+
197
334
  cockroachdb:
198
335
  image: cockroachdb/cockroach:latest
199
336
  container_name: sqlit-test-cockroachdb
@@ -220,6 +357,20 @@ services:
220
357
  retries: 10
221
358
  start_period: 10s
222
359
 
360
+ surrealdb:
361
+ image: surrealdb/surrealdb:latest
362
+ container_name: sqlit-test-surrealdb
363
+ command: start --user root --pass root --bind 0.0.0.0:8000 memory
364
+ ports:
365
+ - "${SURREALDB_PORT:-8000}:8000"
366
+ healthcheck:
367
+ test: ["CMD", "/surreal", "is-ready", "--endpoint", "http://localhost:8000"]
368
+ interval: 5s
369
+ timeout: 5s
370
+ retries: 10
371
+ start_period: 10s
372
+
373
+
223
374
  firebird:
224
375
  image: firebirdsql/firebird:5.0.3-noble
225
376
  container_name: sqlit-test-firebird
@@ -333,3 +484,12 @@ services:
333
484
  timeout: 5s
334
485
  retries: 10
335
486
  start_period: 10s
487
+
488
+ volumes:
489
+ impala-warehouse:
490
+
491
+ networks:
492
+ impala-network:
493
+ # Underscore-free FQDN: Java's URL parser rejects hostnames with underscores,
494
+ # which is why we can't let compose auto-prefix the network name.
495
+ name: impalanet
@@ -0,0 +1,74 @@
1
+ <?xml version="1.0"?>
2
+ <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
3
+ <!--
4
+ Licensed to the Apache Software Foundation (ASF) under one or more
5
+ contributor license agreements. See the NOTICE file distributed with
6
+ this work for additional information regarding copyright ownership.
7
+ The ASF licenses this file to You under the Apache License, Version 2.0
8
+ (the "License"); you may not use this file except in compliance with
9
+ the License. You may obtain a copy of the License at
10
+
11
+ http://www.apache.org/licenses/LICENSE-2.0
12
+
13
+ Unless required by applicable law or agreed to in writing, software
14
+ distributed under the License is distributed on an "AS IS" BASIS,
15
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ See the License for the specific language governing permissions and
17
+ limitations under the License.
18
+ -->
19
+ <!--
20
+ Hive configuration for Impala quickstart docker cluster.
21
+ -->
22
+ <configuration>
23
+ <property>
24
+ <!-- Required for automatic metadata sync. -->
25
+ <name>hive.metastore.dml.events</name>
26
+ <value>true</value>
27
+ </property>
28
+ <property>
29
+ <!-- User impala is not authorized to consume notifications by default, disable
30
+ authentication to work around this. -->
31
+ <name>hive.metastore.event.db.notification.api.auth</name>
32
+ <value>false</value>
33
+ </property>
34
+ <property>
35
+ <name>hive.metastore.uris</name>
36
+ <value>thrift://quickstart-hive-metastore:9083</value>
37
+ </property>
38
+ <!-- Managed and external tablespaces must live on the Docker volumes that we
39
+ configure for the quickstart cluster. -->
40
+ <property>
41
+ <name>hive.metastore.warehouse.dir</name>
42
+ <value>/user/hive/warehouse/managed</value>
43
+ </property>
44
+ <property>
45
+ <name>hive.metastore.warehouse.external.dir</name>
46
+ <value>/user/hive/warehouse/external</value>
47
+ </property>
48
+ <property>
49
+ <!-- Required to enable Hive transactions -->
50
+ <name>hive.support.concurrency</name>
51
+ <value>true</value>
52
+ </property>
53
+ <property>
54
+ <!-- Required to enable Hive transactions -->
55
+ <name>hive.txn.manager</name>
56
+ <value>org.apache.hadoop.hive.ql.lockmgr.DbTxnManager</value>
57
+ </property>
58
+ <property>
59
+ <!-- Use embedded Derby database -->
60
+ <name>javax.jdo.option.ConnectionDriverName</name>
61
+ <value>org.apache.derby.jdbc.EmbeddedDriver</value>
62
+ </property>
63
+ <property>
64
+ <!-- Use embedded Derby database -->
65
+ <name>javax.jdo.option.ConnectionURL</name>
66
+ <value>jdbc:derby:;databaseName=/var/lib/hive/metastore/metastore_db;create=true</value>
67
+ </property>
68
+ <!-- Hive stats autogathering negatively affects latency of DDL operations, etc and
69
+ is not particularly useful for Impala -->
70
+ <property>
71
+ <name>hive.stats.autogather</name>
72
+ <value>false</value>
73
+ </property>
74
+ </configuration>