@libredb/studio 0.9.7 → 0.9.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (688) hide show
  1. package/dist/chunk-34YQUUCM.mjs +319 -0
  2. package/dist/chunk-34YQUUCM.mjs.map +1 -0
  3. package/dist/chunk-4LVB3K53.mjs +37 -0
  4. package/dist/chunk-4LVB3K53.mjs.map +1 -0
  5. package/dist/chunk-6DRZXXNT.mjs +100 -0
  6. package/dist/chunk-6DRZXXNT.mjs.map +1 -0
  7. package/dist/chunk-CZVV3JJB.mjs +160 -0
  8. package/dist/chunk-CZVV3JJB.mjs.map +1 -0
  9. package/dist/chunk-D4WVWWWF.js +332 -0
  10. package/dist/chunk-D4WVWWWF.js.map +1 -0
  11. package/dist/chunk-DY3KXE44.mjs +3 -0
  12. package/dist/chunk-DY3KXE44.mjs.map +1 -0
  13. package/dist/chunk-DZ2UB3C6.mjs +6679 -0
  14. package/dist/chunk-DZ2UB3C6.mjs.map +1 -0
  15. package/dist/chunk-FYSE52VB.js +242 -0
  16. package/dist/chunk-FYSE52VB.js.map +1 -0
  17. package/dist/chunk-G4WYE6TI.js +4 -0
  18. package/dist/chunk-G4WYE6TI.js.map +1 -0
  19. package/dist/chunk-JOGLIOFO.js +1310 -0
  20. package/dist/chunk-JOGLIOFO.js.map +1 -0
  21. package/dist/chunk-JZO5KRZN.js +165 -0
  22. package/dist/chunk-JZO5KRZN.js.map +1 -0
  23. package/dist/chunk-KV356UXJ.js +253 -0
  24. package/dist/chunk-KV356UXJ.js.map +1 -0
  25. package/dist/chunk-PPODO6HX.mjs +237 -0
  26. package/dist/chunk-PPODO6HX.mjs.map +1 -0
  27. package/dist/chunk-PTIRB2JO.js +258 -0
  28. package/dist/chunk-PTIRB2JO.js.map +1 -0
  29. package/dist/chunk-Q6LRDBK7.js +42 -0
  30. package/dist/chunk-Q6LRDBK7.js.map +1 -0
  31. package/dist/chunk-QJP5FZRY.mjs +255 -0
  32. package/dist/chunk-QJP5FZRY.mjs.map +1 -0
  33. package/dist/chunk-R3POCJK6.mjs +248 -0
  34. package/dist/chunk-R3POCJK6.mjs.map +1 -0
  35. package/dist/chunk-RBVDMLFV.js +6747 -0
  36. package/dist/chunk-RBVDMLFV.js.map +1 -0
  37. package/dist/chunk-RCQB4FCE.js +186 -0
  38. package/dist/chunk-RCQB4FCE.js.map +1 -0
  39. package/dist/chunk-SR5DRGBX.mjs +174 -0
  40. package/dist/chunk-SR5DRGBX.mjs.map +1 -0
  41. package/dist/chunk-VLCRUZX7.js +102 -0
  42. package/dist/chunk-VLCRUZX7.js.map +1 -0
  43. package/dist/chunk-VWVRUCQO.mjs +1289 -0
  44. package/dist/chunk-VWVRUCQO.mjs.map +1 -0
  45. package/dist/components.d.mts +273 -0
  46. package/dist/components.d.ts +273 -0
  47. package/dist/components.js +59 -0
  48. package/dist/components.js.map +1 -0
  49. package/dist/components.mjs +6 -0
  50. package/dist/components.mjs.map +1 -0
  51. package/dist/custom-BNDOYC5P.js +134 -0
  52. package/dist/custom-BNDOYC5P.js.map +1 -0
  53. package/dist/custom-S2EKFMP3.mjs +132 -0
  54. package/dist/custom-S2EKFMP3.mjs.map +1 -0
  55. package/dist/gemini-4ASHNK4H.js +81 -0
  56. package/dist/gemini-4ASHNK4H.js.map +1 -0
  57. package/dist/gemini-C5RBLQEJ.mjs +79 -0
  58. package/dist/gemini-C5RBLQEJ.mjs.map +1 -0
  59. package/dist/index.d.mts +6 -0
  60. package/dist/index.d.ts +6 -0
  61. package/dist/index.js +95 -0
  62. package/dist/index.js.map +1 -0
  63. package/dist/index.mjs +10 -0
  64. package/dist/index.mjs.map +1 -0
  65. package/dist/mongodb-XMZEZA4A.mjs +748 -0
  66. package/dist/mongodb-XMZEZA4A.mjs.map +1 -0
  67. package/dist/mongodb-YQJJTLX3.js +750 -0
  68. package/dist/mongodb-YQJJTLX3.js.map +1 -0
  69. package/dist/mssql-PMOU4D36.js +916 -0
  70. package/dist/mssql-PMOU4D36.js.map +1 -0
  71. package/{src/lib/db/providers/sql/mssql.ts → dist/mssql-ZH5VP2C5.mjs} +268 -423
  72. package/dist/mssql-ZH5VP2C5.mjs.map +1 -0
  73. package/{src/lib/db/providers/sql/mysql.ts → dist/mysql-I3WJQXN2.mjs} +277 -428
  74. package/dist/mysql-I3WJQXN2.mjs.map +1 -0
  75. package/dist/mysql-Y3MSA5QY.js +833 -0
  76. package/dist/mysql-Y3MSA5QY.js.map +1 -0
  77. package/dist/ollama-26BYLVEV.mjs +115 -0
  78. package/dist/ollama-26BYLVEV.mjs.map +1 -0
  79. package/dist/ollama-HVWAGKQC.js +117 -0
  80. package/dist/ollama-HVWAGKQC.js.map +1 -0
  81. package/dist/openai-4U56KPG7.mjs +111 -0
  82. package/dist/openai-4U56KPG7.mjs.map +1 -0
  83. package/dist/openai-AK3R37BS.js +113 -0
  84. package/dist/openai-AK3R37BS.js.map +1 -0
  85. package/dist/oracle-L6VEAVXO.js +917 -0
  86. package/dist/oracle-L6VEAVXO.js.map +1 -0
  87. package/{src/lib/db/providers/sql/oracle.ts → dist/oracle-P2G7T4P4.mjs} +321 -454
  88. package/dist/oracle-P2G7T4P4.mjs.map +1 -0
  89. package/{src/lib/db/providers/sql/postgres.ts → dist/postgres-O5KOQUVP.mjs} +261 -471
  90. package/dist/postgres-O5KOQUVP.mjs.map +1 -0
  91. package/dist/postgres-RLCWNFFX.js +971 -0
  92. package/dist/postgres-RLCWNFFX.js.map +1 -0
  93. package/dist/providers.d.mts +149 -0
  94. package/dist/providers.d.ts +149 -0
  95. package/dist/providers.js +44 -0
  96. package/dist/providers.js.map +1 -0
  97. package/dist/providers.mjs +7 -0
  98. package/dist/providers.mjs.map +1 -0
  99. package/dist/redis-4WMQOVLX.mjs +435 -0
  100. package/dist/redis-4WMQOVLX.mjs.map +1 -0
  101. package/dist/redis-QVQ6YU62.js +441 -0
  102. package/dist/redis-QVQ6YU62.js.map +1 -0
  103. package/dist/sqlite-4I2P2OGQ.js +554 -0
  104. package/dist/sqlite-4I2P2OGQ.js.map +1 -0
  105. package/dist/sqlite-OA4YJX5S.mjs +531 -0
  106. package/dist/sqlite-OA4YJX5S.mjs.map +1 -0
  107. package/dist/types-BJvJfxSY.d.mts +141 -0
  108. package/dist/types-BJvJfxSY.d.ts +141 -0
  109. package/dist/types-ClAg_v5k.d.mts +343 -0
  110. package/dist/types-Der_X8E8.d.ts +343 -0
  111. package/dist/types.d.mts +2 -0
  112. package/dist/types.d.ts +2 -0
  113. package/dist/types.js +6 -0
  114. package/dist/types.js.map +1 -0
  115. package/dist/types.mjs +3 -0
  116. package/dist/types.mjs.map +1 -0
  117. package/dist/workspace.d.mts +80 -0
  118. package/dist/workspace.d.ts +80 -0
  119. package/dist/workspace.js +4182 -0
  120. package/dist/workspace.js.map +1 -0
  121. package/dist/workspace.mjs +4155 -0
  122. package/dist/workspace.mjs.map +1 -0
  123. package/package.json +60 -5
  124. package/.claude/settings.local.json +0 -127
  125. package/.cursorrules +0 -426
  126. package/.devin/wiki.json +0 -143
  127. package/.dockerignore +0 -80
  128. package/.env.example +0 -159
  129. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -49
  130. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -29
  131. package/.github/PULL_REQUEST_TEMPLATE.md +0 -57
  132. package/.github/workflows/ci.yml +0 -185
  133. package/.github/workflows/codeql.yml +0 -57
  134. package/.github/workflows/docker-build-push.yml +0 -118
  135. package/.github/workflows/helm-release.yml +0 -113
  136. package/CLAUDE.md +0 -265
  137. package/CODE_OF_CONDUCT.md +0 -124
  138. package/CONTRIBUTING.md +0 -154
  139. package/Dockerfile +0 -73
  140. package/SECURITY.md +0 -107
  141. package/artifacthub-repo.yml +0 -4
  142. package/bun.lock +0 -1714
  143. package/bunfig.toml +0 -3
  144. package/charts/libredb-studio/.helmignore +0 -11
  145. package/charts/libredb-studio/Chart.lock +0 -6
  146. package/charts/libredb-studio/Chart.yaml +0 -50
  147. package/charts/libredb-studio/README.md +0 -206
  148. package/charts/libredb-studio/templates/NOTES.txt +0 -59
  149. package/charts/libredb-studio/templates/_helpers.tpl +0 -135
  150. package/charts/libredb-studio/templates/configmap.yaml +0 -37
  151. package/charts/libredb-studio/templates/deployment.yaml +0 -184
  152. package/charts/libredb-studio/templates/hpa.yaml +0 -32
  153. package/charts/libredb-studio/templates/ingress.yaml +0 -41
  154. package/charts/libredb-studio/templates/networkpolicy.yaml +0 -50
  155. package/charts/libredb-studio/templates/pdb.yaml +0 -18
  156. package/charts/libredb-studio/templates/pvc.yaml +0 -23
  157. package/charts/libredb-studio/templates/secret.yaml +0 -30
  158. package/charts/libredb-studio/templates/seed-configmap.yaml +0 -11
  159. package/charts/libredb-studio/templates/service.yaml +0 -22
  160. package/charts/libredb-studio/templates/serviceaccount.yaml +0 -13
  161. package/charts/libredb-studio/values.schema.json +0 -246
  162. package/charts/libredb-studio/values.yaml +0 -286
  163. package/components.json +0 -22
  164. package/conductor/code_styleguides/typescript.md +0 -43
  165. package/conductor/product-guidelines.md +0 -43
  166. package/conductor/product.md +0 -3
  167. package/conductor/setup_state.json +0 -1
  168. package/conductor/tech-stack.md +0 -39
  169. package/conductor/tracks/enhance_postgres_monitoring_20251227/metadata.json +0 -8
  170. package/conductor/tracks/enhance_postgres_monitoring_20251227/plan.md +0 -44
  171. package/conductor/tracks/enhance_postgres_monitoring_20251227/spec.md +0 -31
  172. package/conductor/tracks.md +0 -8
  173. package/conductor/workflow.md +0 -333
  174. package/database-compose.yml +0 -55
  175. package/docker/postgres-init/01-extensions.sql +0 -10
  176. package/docker/postgres-init/02-sample-data.sql +0 -585
  177. package/docker/postgres.yml +0 -68
  178. package/docker-compose.yml +0 -38
  179. package/docs/AI_PLAN.md +0 -74
  180. package/docs/API_DOCS.md +0 -875
  181. package/docs/ARCHITECTURE.md +0 -218
  182. package/docs/DATABASE_PROVIDERS.md +0 -358
  183. package/docs/FEATURES.md +0 -116
  184. package/docs/HELM_CHART.md +0 -252
  185. package/docs/LOGIN_PAGE.md +0 -178
  186. package/docs/MONACO_EDITOR_PERFORMANCE.md +0 -315
  187. package/docs/OIDC_ARCH.md +0 -681
  188. package/docs/OIDC_SETUP.md +0 -322
  189. package/docs/POSTGRES_METRICS.md +0 -516
  190. package/docs/QUERY_OPTIMIZATION.md +0 -370
  191. package/docs/SEED_CONNECTIONS.md +0 -468
  192. package/docs/SQL_ALIAS_COMPLETION.md +0 -190
  193. package/docs/STORAGE_ARCHITECTURE.md +0 -565
  194. package/docs/STORAGE_QUICK_SETUP.md +0 -419
  195. package/docs/TECHNICAL_PLAN.md +0 -36
  196. package/docs/THEMING.md +0 -345
  197. package/docs/adding-a-new-database-provider.md +0 -642
  198. package/docs/backlogs/000-PLATFORM_DATA_SYNC_DATABASE.md +0 -360
  199. package/docs/backlogs/001-INLINE_DATA_EDITING.md +0 -118
  200. package/docs/backlogs/002-DATA_IMPORT.md +0 -215
  201. package/docs/backlogs/003-QUERY_TIME_MACHINE.md +0 -183
  202. package/docs/backlogs/004-AI_DATA_STORYTELLER.md +0 -292
  203. package/docs/backlogs/005-QUERY_PLAYGROUND.md +0 -352
  204. package/docs/backlogs/006-DATA_MASKING.md +0 -418
  205. package/docs/enterprise-features.md +0 -718
  206. package/docs/kubernetes-helm-chart-artifacthub-plan.md +0 -803
  207. package/docs/medium-koyeb-article-en.md +0 -215
  208. package/docs/plans/test-plans.md +0 -445
  209. package/docs/releases/RELEASE.V0.3.0.md +0 -22
  210. package/docs/releases/RELEASE.V0.4.0.md +0 -154
  211. package/docs/releases/RELEASE.V0.5.0.md +0 -252
  212. package/docs/releases/RELEASE_v0.5.6.md +0 -145
  213. package/docs/releases/RELEASE_v0.6.1.md +0 -303
  214. package/docs/releases/RELEASE_v0.6.7.md +0 -292
  215. package/docs/releases/RELEASE_v0.7.0.md +0 -332
  216. package/docs/releases/RELEASE_v0.8.0.md +0 -521
  217. package/docs/sampledb/titanic.sql +0 -1379
  218. package/docs/superpowers/plans/2026-03-25-seed-connections.md +0 -1362
  219. package/docs/superpowers/specs/2026-03-25-seed-connections-design.md +0 -590
  220. package/e2e/admin-dashboard.spec.ts +0 -64
  221. package/e2e/connection-management.spec.ts +0 -58
  222. package/e2e/export.spec.ts +0 -34
  223. package/e2e/login.spec.ts +0 -85
  224. package/e2e/query-execution.spec.ts +0 -35
  225. package/e2e/tab-management.spec.ts +0 -64
  226. package/eslint.config.mjs +0 -28
  227. package/fly.toml +0 -43
  228. package/next.config.ts +0 -32
  229. package/playwright.config.ts +0 -34
  230. package/postcss.config.mjs +0 -7
  231. package/public/favicon-32x32.png +0 -0
  232. package/public/favicon.ico +0 -0
  233. package/public/file.svg +0 -1
  234. package/public/globe.svg +0 -1
  235. package/public/logo.svg +0 -32
  236. package/public/next.svg +0 -1
  237. package/public/screenshots/code-generator.png +0 -0
  238. package/public/screenshots/connection-modal.png +0 -0
  239. package/public/screenshots/data-profiler.png +0 -0
  240. package/public/screenshots/erd-diagram.png +0 -0
  241. package/public/screenshots/hero-editor.png +0 -0
  242. package/public/screenshots/nl2sql.png +0 -0
  243. package/public/vercel.svg +0 -1
  244. package/public/window.svg +0 -1
  245. package/render.yaml +0 -58
  246. package/scripts/merge-lcov.mjs +0 -239
  247. package/sonar-project.properties +0 -16
  248. package/src/app/admin/error.tsx +0 -46
  249. package/src/app/admin/page.tsx +0 -10
  250. package/src/app/api/admin/audit/route.ts +0 -52
  251. package/src/app/api/admin/fleet-health/route.ts +0 -81
  252. package/src/app/api/ai/autopilot/route.ts +0 -105
  253. package/src/app/api/ai/chat/route.ts +0 -132
  254. package/src/app/api/ai/describe-schema/route.ts +0 -52
  255. package/src/app/api/ai/explain/route.ts +0 -86
  256. package/src/app/api/ai/impact/route.ts +0 -97
  257. package/src/app/api/ai/index-advisor/route.ts +0 -98
  258. package/src/app/api/ai/nl2sql/route.ts +0 -87
  259. package/src/app/api/ai/query-safety/route.ts +0 -87
  260. package/src/app/api/auth/login/route.ts +0 -62
  261. package/src/app/api/auth/logout/route.ts +0 -25
  262. package/src/app/api/auth/me/route.ts +0 -10
  263. package/src/app/api/auth/oidc/callback/route.ts +0 -82
  264. package/src/app/api/auth/oidc/login/route.ts +0 -43
  265. package/src/app/api/connections/managed/route.ts +0 -35
  266. package/src/app/api/db/cancel/route.ts +0 -42
  267. package/src/app/api/db/disconnect/route.ts +0 -28
  268. package/src/app/api/db/health/route.ts +0 -49
  269. package/src/app/api/db/maintenance/route.ts +0 -72
  270. package/src/app/api/db/monitoring/route.ts +0 -62
  271. package/src/app/api/db/multi-query/route.ts +0 -116
  272. package/src/app/api/db/pool-stats/route.ts +0 -37
  273. package/src/app/api/db/profile/route.ts +0 -144
  274. package/src/app/api/db/provider-meta/route.ts +0 -49
  275. package/src/app/api/db/query/route.ts +0 -50
  276. package/src/app/api/db/schema/route.ts +0 -47
  277. package/src/app/api/db/schema-snapshot/route.ts +0 -42
  278. package/src/app/api/db/test-connection/route.ts +0 -55
  279. package/src/app/api/db/transaction/route.ts +0 -111
  280. package/src/app/api/storage/[collection]/route.ts +0 -67
  281. package/src/app/api/storage/config/route.ts +0 -17
  282. package/src/app/api/storage/migrate/route.ts +0 -45
  283. package/src/app/api/storage/route.ts +0 -32
  284. package/src/app/error.tsx +0 -49
  285. package/src/app/global-error.tsx +0 -55
  286. package/src/app/globals.css +0 -146
  287. package/src/app/icon.svg +0 -42
  288. package/src/app/layout.tsx +0 -34
  289. package/src/app/login/login-form.tsx +0 -301
  290. package/src/app/login/page.tsx +0 -11
  291. package/src/app/monitoring/page.tsx +0 -8
  292. package/src/app/not-found.tsx +0 -29
  293. package/src/app/page.tsx +0 -5
  294. package/src/components/AIAutopilotPanel.tsx +0 -238
  295. package/src/components/CodeGenerator.tsx +0 -271
  296. package/src/components/CommandPalette.tsx +0 -227
  297. package/src/components/ConnectionModal.tsx +0 -759
  298. package/src/components/CreateTableModal.tsx +0 -281
  299. package/src/components/DataCharts.tsx +0 -962
  300. package/src/components/DataImportModal.tsx +0 -582
  301. package/src/components/DataProfiler.tsx +0 -335
  302. package/src/components/DatabaseDocs.tsx +0 -251
  303. package/src/components/MaskingSettings.tsx +0 -414
  304. package/src/components/MobileNav.tsx +0 -50
  305. package/src/components/NL2SQLPanel.tsx +0 -281
  306. package/src/components/PivotTable.tsx +0 -257
  307. package/src/components/QueryEditor.tsx +0 -760
  308. package/src/components/QueryHistory.tsx +0 -344
  309. package/src/components/QuerySafetyDialog.tsx +0 -290
  310. package/src/components/ResultsGrid.tsx +0 -644
  311. package/src/components/SaveQueryModal.tsx +0 -104
  312. package/src/components/SavedQueries.tsx +0 -128
  313. package/src/components/SchemaDiagram.tsx +0 -473
  314. package/src/components/SchemaDiff.tsx +0 -473
  315. package/src/components/SnapshotTimeline.tsx +0 -116
  316. package/src/components/Studio.tsx +0 -639
  317. package/src/components/TestDataGenerator.tsx +0 -261
  318. package/src/components/VisualExplain.tsx +0 -820
  319. package/src/components/admin/AdminDashboard.tsx +0 -163
  320. package/src/components/admin/tabs/AuditTab.tsx +0 -531
  321. package/src/components/admin/tabs/MonitoringEmbed.tsx +0 -11
  322. package/src/components/admin/tabs/OperationsTab.tsx +0 -646
  323. package/src/components/admin/tabs/OverviewTab.tsx +0 -1328
  324. package/src/components/admin/tabs/SecurityTab.tsx +0 -284
  325. package/src/components/community-section.tsx +0 -92
  326. package/src/components/icons/db-icons.tsx +0 -84
  327. package/src/components/libredb-logo.tsx +0 -61
  328. package/src/components/monitoring/MonitoringDashboard.tsx +0 -345
  329. package/src/components/monitoring/tabs/MetricChart.tsx +0 -82
  330. package/src/components/monitoring/tabs/OverviewTab.tsx +0 -263
  331. package/src/components/monitoring/tabs/PerformanceTab.tsx +0 -254
  332. package/src/components/monitoring/tabs/PoolTab.tsx +0 -174
  333. package/src/components/monitoring/tabs/QueriesTab.tsx +0 -287
  334. package/src/components/monitoring/tabs/SessionsTab.tsx +0 -316
  335. package/src/components/monitoring/tabs/StorageTab.tsx +0 -335
  336. package/src/components/monitoring/tabs/TablesTab.tsx +0 -300
  337. package/src/components/results-grid/ResultCard.tsx +0 -111
  338. package/src/components/results-grid/RowDetailSheet.tsx +0 -178
  339. package/src/components/results-grid/StatsBar.tsx +0 -201
  340. package/src/components/results-grid/index.ts +0 -1
  341. package/src/components/results-grid/utils.ts +0 -23
  342. package/src/components/schema-explorer/ColumnList.tsx +0 -53
  343. package/src/components/schema-explorer/SchemaExplorer.tsx +0 -182
  344. package/src/components/schema-explorer/TableItem.tsx +0 -210
  345. package/src/components/schema-explorer/index.ts +0 -1
  346. package/src/components/sidebar/ConnectionItem.tsx +0 -105
  347. package/src/components/sidebar/ConnectionsList.tsx +0 -62
  348. package/src/components/sidebar/Sidebar.tsx +0 -130
  349. package/src/components/sidebar/index.ts +0 -2
  350. package/src/components/studio/BottomPanel.tsx +0 -286
  351. package/src/components/studio/QueryToolbar.tsx +0 -180
  352. package/src/components/studio/StudioDesktopHeader.tsx +0 -114
  353. package/src/components/studio/StudioMobileHeader.tsx +0 -340
  354. package/src/components/studio/StudioTabBar.tsx +0 -82
  355. package/src/components/studio/index.ts +0 -5
  356. package/src/components/ui/accordion.tsx +0 -66
  357. package/src/components/ui/alert-dialog.tsx +0 -157
  358. package/src/components/ui/alert.tsx +0 -66
  359. package/src/components/ui/aspect-ratio.tsx +0 -11
  360. package/src/components/ui/avatar.tsx +0 -53
  361. package/src/components/ui/badge.tsx +0 -46
  362. package/src/components/ui/breadcrumb.tsx +0 -109
  363. package/src/components/ui/button-group.tsx +0 -83
  364. package/src/components/ui/button.tsx +0 -60
  365. package/src/components/ui/calendar.tsx +0 -216
  366. package/src/components/ui/card.tsx +0 -92
  367. package/src/components/ui/carousel.tsx +0 -241
  368. package/src/components/ui/chart.tsx +0 -357
  369. package/src/components/ui/checkbox.tsx +0 -32
  370. package/src/components/ui/collapsible.tsx +0 -33
  371. package/src/components/ui/command.tsx +0 -184
  372. package/src/components/ui/context-menu.tsx +0 -252
  373. package/src/components/ui/dialog.tsx +0 -143
  374. package/src/components/ui/drawer.tsx +0 -135
  375. package/src/components/ui/dropdown-menu.tsx +0 -257
  376. package/src/components/ui/empty.tsx +0 -104
  377. package/src/components/ui/field.tsx +0 -248
  378. package/src/components/ui/form.tsx +0 -167
  379. package/src/components/ui/hover-card.tsx +0 -44
  380. package/src/components/ui/input-group.tsx +0 -170
  381. package/src/components/ui/input-otp.tsx +0 -77
  382. package/src/components/ui/input.tsx +0 -21
  383. package/src/components/ui/item.tsx +0 -193
  384. package/src/components/ui/kbd.tsx +0 -28
  385. package/src/components/ui/label.tsx +0 -24
  386. package/src/components/ui/menubar.tsx +0 -276
  387. package/src/components/ui/navigation-menu.tsx +0 -168
  388. package/src/components/ui/pagination.tsx +0 -127
  389. package/src/components/ui/popover.tsx +0 -48
  390. package/src/components/ui/progress.tsx +0 -31
  391. package/src/components/ui/radio-group.tsx +0 -45
  392. package/src/components/ui/resizable.tsx +0 -56
  393. package/src/components/ui/scroll-area.tsx +0 -58
  394. package/src/components/ui/select.tsx +0 -187
  395. package/src/components/ui/separator.tsx +0 -28
  396. package/src/components/ui/sheet.tsx +0 -139
  397. package/src/components/ui/sidebar.tsx +0 -726
  398. package/src/components/ui/skeleton.tsx +0 -13
  399. package/src/components/ui/slider.tsx +0 -63
  400. package/src/components/ui/sonner.tsx +0 -40
  401. package/src/components/ui/spinner.tsx +0 -16
  402. package/src/components/ui/switch.tsx +0 -31
  403. package/src/components/ui/table.tsx +0 -116
  404. package/src/components/ui/tabs.tsx +0 -66
  405. package/src/components/ui/textarea.tsx +0 -18
  406. package/src/components/ui/toggle-group.tsx +0 -83
  407. package/src/components/ui/toggle.tsx +0 -47
  408. package/src/components/ui/tooltip.tsx +0 -61
  409. package/src/exports/components.ts +0 -15
  410. package/src/exports/index.ts +0 -4
  411. package/src/exports/providers.ts +0 -4
  412. package/src/exports/types.ts +0 -26
  413. package/src/hooks/use-ai-chat.ts +0 -182
  414. package/src/hooks/use-all-connections.ts +0 -66
  415. package/src/hooks/use-api-call.ts +0 -71
  416. package/src/hooks/use-auth.ts +0 -51
  417. package/src/hooks/use-connection-form.ts +0 -349
  418. package/src/hooks/use-connection-manager.ts +0 -169
  419. package/src/hooks/use-connection-payload.ts +0 -15
  420. package/src/hooks/use-inline-editing.ts +0 -109
  421. package/src/hooks/use-mobile.ts +0 -20
  422. package/src/hooks/use-monitoring-data.ts +0 -270
  423. package/src/hooks/use-provider-metadata.ts +0 -62
  424. package/src/hooks/use-query-execution.ts +0 -478
  425. package/src/hooks/use-storage-sync.ts +0 -259
  426. package/src/hooks/use-tab-manager.ts +0 -231
  427. package/src/hooks/use-toast.ts +0 -20
  428. package/src/hooks/use-transaction-control.ts +0 -64
  429. package/src/lib/api/error-codes.ts +0 -30
  430. package/src/lib/api/errors.ts +0 -236
  431. package/src/lib/api/with-error-handler.ts +0 -41
  432. package/src/lib/audit.ts +0 -105
  433. package/src/lib/auth.ts +0 -87
  434. package/src/lib/connection-string-parser.ts +0 -172
  435. package/src/lib/data-masking.ts +0 -385
  436. package/src/lib/db/base-provider.ts +0 -325
  437. package/src/lib/db/errors.ts +0 -317
  438. package/src/lib/db/factory.ts +0 -324
  439. package/src/lib/db/index.ts +0 -123
  440. package/src/lib/db/providers/document/index.ts +0 -6
  441. package/src/lib/db/providers/document/mongodb.ts +0 -992
  442. package/src/lib/db/providers/keyvalue/redis.ts +0 -554
  443. package/src/lib/db/providers/sql/index.ts +0 -11
  444. package/src/lib/db/providers/sql/sql-base.ts +0 -174
  445. package/src/lib/db/providers/sql/sqlite.ts +0 -721
  446. package/src/lib/db/types.ts +0 -437
  447. package/src/lib/db/utils/pool-manager.ts +0 -287
  448. package/src/lib/db/utils/query-limiter.ts +0 -239
  449. package/src/lib/db-ui-config.ts +0 -86
  450. package/src/lib/editor/mongodb-completions.ts +0 -172
  451. package/src/lib/editor/sql-completions.ts +0 -280
  452. package/src/lib/llm/base-provider.ts +0 -117
  453. package/src/lib/llm/factory.ts +0 -102
  454. package/src/lib/llm/index.ts +0 -90
  455. package/src/lib/llm/providers/custom.ts +0 -181
  456. package/src/lib/llm/providers/gemini.ts +0 -126
  457. package/src/lib/llm/providers/ollama.ts +0 -154
  458. package/src/lib/llm/providers/openai.ts +0 -146
  459. package/src/lib/llm/types.ts +0 -173
  460. package/src/lib/llm/utils/config.ts +0 -187
  461. package/src/lib/llm/utils/retry.ts +0 -119
  462. package/src/lib/llm/utils/streaming.ts +0 -202
  463. package/src/lib/logger.ts +0 -127
  464. package/src/lib/monitoring-thresholds.ts +0 -44
  465. package/src/lib/oidc.ts +0 -262
  466. package/src/lib/query-generators.ts +0 -61
  467. package/src/lib/schema-diff/diff-engine.ts +0 -273
  468. package/src/lib/schema-diff/migration-generator.ts +0 -208
  469. package/src/lib/schema-diff/types.ts +0 -55
  470. package/src/lib/seed/config-loader.ts +0 -79
  471. package/src/lib/seed/connection-filter.ts +0 -49
  472. package/src/lib/seed/credential-resolver.ts +0 -62
  473. package/src/lib/seed/index.ts +0 -40
  474. package/src/lib/seed/resolve-connection.ts +0 -57
  475. package/src/lib/seed/types.ts +0 -69
  476. package/src/lib/sql/alias-extractor.ts +0 -267
  477. package/src/lib/sql/index.ts +0 -8
  478. package/src/lib/sql/statement-splitter.ts +0 -167
  479. package/src/lib/sql/types.ts +0 -40
  480. package/src/lib/ssh/tunnel.ts +0 -142
  481. package/src/lib/storage/factory.ts +0 -84
  482. package/src/lib/storage/index.ts +0 -14
  483. package/src/lib/storage/local-storage.ts +0 -99
  484. package/src/lib/storage/providers/postgres.ts +0 -225
  485. package/src/lib/storage/providers/sqlite.ts +0 -153
  486. package/src/lib/storage/storage-facade.ts +0 -272
  487. package/src/lib/storage/types.ts +0 -75
  488. package/src/lib/time-series-buffer.ts +0 -58
  489. package/src/lib/types.ts +0 -173
  490. package/src/lib/utils.ts +0 -6
  491. package/src/proxy.ts +0 -104
  492. package/src/types/db-drivers.d.ts +0 -23
  493. package/src/types/html2canvas.d.ts +0 -9
  494. package/tests/api/admin/audit.test.ts +0 -178
  495. package/tests/api/admin/fleet-health.test.ts +0 -183
  496. package/tests/api/ai/autopilot.test.ts +0 -174
  497. package/tests/api/ai/chat.test.ts +0 -250
  498. package/tests/api/ai/describe-schema.test.ts +0 -266
  499. package/tests/api/ai/explain.test.ts +0 -199
  500. package/tests/api/ai/impact.test.ts +0 -168
  501. package/tests/api/ai/index-advisor.test.ts +0 -171
  502. package/tests/api/ai/nl2sql.test.ts +0 -202
  503. package/tests/api/ai/query-safety.test.ts +0 -196
  504. package/tests/api/auth/login.test.ts +0 -170
  505. package/tests/api/auth/logout.test.ts +0 -140
  506. package/tests/api/auth/me.test.ts +0 -73
  507. package/tests/api/auth/oidc-callback.test.ts +0 -215
  508. package/tests/api/auth/oidc-login.test.ts +0 -127
  509. package/tests/api/db/cancel.test.ts +0 -198
  510. package/tests/api/db/disconnect.test.ts +0 -124
  511. package/tests/api/db/health.test.ts +0 -222
  512. package/tests/api/db/maintenance.test.ts +0 -263
  513. package/tests/api/db/monitoring.test.ts +0 -221
  514. package/tests/api/db/multi-query.test.ts +0 -316
  515. package/tests/api/db/pool-stats.test.ts +0 -135
  516. package/tests/api/db/profile.test.ts +0 -330
  517. package/tests/api/db/provider-meta.test.ts +0 -193
  518. package/tests/api/db/query.test.ts +0 -314
  519. package/tests/api/db/schema-snapshot.test.ts +0 -170
  520. package/tests/api/db/schema.test.ts +0 -191
  521. package/tests/api/db/test-connection.test.ts +0 -185
  522. package/tests/api/db/transaction.test.ts +0 -314
  523. package/tests/api/proxy.test.ts +0 -191
  524. package/tests/api/seed/managed-route.test.ts +0 -113
  525. package/tests/api/storage/config.test.ts +0 -42
  526. package/tests/api/storage/storage-routes.test.ts +0 -309
  527. package/tests/components/AIAutopilotPanel.test.tsx +0 -756
  528. package/tests/components/AdminPage.test.tsx +0 -33
  529. package/tests/components/CodeGenerator.test.tsx +0 -182
  530. package/tests/components/CommandPalette.test.tsx +0 -428
  531. package/tests/components/CommunitySection.test.tsx +0 -91
  532. package/tests/components/ConnectionModal.mobile.test.tsx +0 -284
  533. package/tests/components/ConnectionModal.test.tsx +0 -570
  534. package/tests/components/CreateTableModal.test.tsx +0 -383
  535. package/tests/components/DataCharts.test.tsx +0 -739
  536. package/tests/components/DataImportModal.test.tsx +0 -751
  537. package/tests/components/DataProfiler.test.tsx +0 -589
  538. package/tests/components/DatabaseDocs.test.tsx +0 -353
  539. package/tests/components/LoginPage.test.tsx +0 -163
  540. package/tests/components/LoginPageOIDC.test.tsx +0 -92
  541. package/tests/components/MaskingSettings.test.tsx +0 -498
  542. package/tests/components/MobileNav.test.tsx +0 -30
  543. package/tests/components/MonitoringPage.test.tsx +0 -32
  544. package/tests/components/NL2SQLPanel.test.tsx +0 -621
  545. package/tests/components/Page.test.tsx +0 -33
  546. package/tests/components/PivotTable.test.tsx +0 -350
  547. package/tests/components/QueryEditor.test.tsx +0 -1730
  548. package/tests/components/QueryHistory.test.tsx +0 -572
  549. package/tests/components/QuerySafetyDialog.test.tsx +0 -586
  550. package/tests/components/ResultsGrid.test.tsx +0 -804
  551. package/tests/components/RootLayout.test.tsx +0 -83
  552. package/tests/components/SaveQueryModal.test.tsx +0 -25
  553. package/tests/components/SavedQueries.test.tsx +0 -43
  554. package/tests/components/SchemaDiagram.test.tsx +0 -1034
  555. package/tests/components/SchemaDiff.test.tsx +0 -906
  556. package/tests/components/SnapshotTimeline.test.tsx +0 -174
  557. package/tests/components/Studio.test.tsx +0 -1030
  558. package/tests/components/TestDataGenerator.test.tsx +0 -291
  559. package/tests/components/VisualExplain.test.tsx +0 -704
  560. package/tests/components/admin/AdminDashboard.test.tsx +0 -205
  561. package/tests/components/admin/AuditTab.test.tsx +0 -220
  562. package/tests/components/admin/MonitoringEmbed.test.tsx +0 -58
  563. package/tests/components/admin/OperationsTab.test.tsx +0 -975
  564. package/tests/components/admin/OverviewTab.test.tsx +0 -254
  565. package/tests/components/admin/SecurityTab.test.tsx +0 -467
  566. package/tests/components/monitoring/MetricChart.test.tsx +0 -111
  567. package/tests/components/monitoring/MonitoringDashboard.test.tsx +0 -259
  568. package/tests/components/monitoring/OverviewTab.test.tsx +0 -78
  569. package/tests/components/monitoring/PerformanceTab.test.tsx +0 -87
  570. package/tests/components/monitoring/PoolTab.test.tsx +0 -42
  571. package/tests/components/monitoring/QueriesTab.test.tsx +0 -80
  572. package/tests/components/monitoring/SessionsTab.test.tsx +0 -154
  573. package/tests/components/monitoring/StorageTab.test.tsx +0 -127
  574. package/tests/components/monitoring/TablesTab.test.tsx +0 -153
  575. package/tests/components/results-grid/ResultCard.test.tsx +0 -105
  576. package/tests/components/results-grid/RowDetailSheet.test.tsx +0 -308
  577. package/tests/components/results-grid/StatsBar.test.tsx +0 -162
  578. package/tests/components/schema-explorer/ColumnList.test.tsx +0 -151
  579. package/tests/components/schema-explorer/SchemaExplorer.test.tsx +0 -461
  580. package/tests/components/schema-explorer/TableItem.test.tsx +0 -415
  581. package/tests/components/sidebar/ConnectionItem.test.tsx +0 -201
  582. package/tests/components/sidebar/ConnectionsList.test.tsx +0 -176
  583. package/tests/components/sidebar/Sidebar.test.tsx +0 -187
  584. package/tests/components/studio/BottomPanel.test.tsx +0 -383
  585. package/tests/components/studio/QueryToolbar.test.tsx +0 -321
  586. package/tests/components/studio/StudioDesktopHeader.test.tsx +0 -377
  587. package/tests/components/studio/StudioMobileHeader.test.tsx +0 -198
  588. package/tests/components/studio/StudioTabBar.test.tsx +0 -331
  589. package/tests/fixtures/connections.ts +0 -96
  590. package/tests/fixtures/masking-configs.ts +0 -86
  591. package/tests/fixtures/query-results.ts +0 -71
  592. package/tests/fixtures/schemas.ts +0 -64
  593. package/tests/fixtures/seed-connections/invalid-config.yaml +0 -7
  594. package/tests/fixtures/seed-connections/minimal-config.yaml +0 -8
  595. package/tests/fixtures/seed-connections/mixed-credentials.yaml +0 -23
  596. package/tests/fixtures/seed-connections/multi-role-config.yaml +0 -30
  597. package/tests/fixtures/seed-connections/valid-config.json +0 -15
  598. package/tests/fixtures/seed-connections/valid-config.yaml +0 -51
  599. package/tests/helpers/mock-fetch.ts +0 -59
  600. package/tests/helpers/mock-monaco.ts +0 -112
  601. package/tests/helpers/mock-navigation.ts +0 -28
  602. package/tests/helpers/mock-next.ts +0 -80
  603. package/tests/helpers/mock-provider.ts +0 -133
  604. package/tests/helpers/mock-sonner.ts +0 -29
  605. package/tests/helpers/render-with-providers.tsx +0 -19
  606. package/tests/hooks/use-ai-chat.test.ts +0 -600
  607. package/tests/hooks/use-auth.test.ts +0 -371
  608. package/tests/hooks/use-connection-form.test.ts +0 -743
  609. package/tests/hooks/use-connection-manager.test.ts +0 -466
  610. package/tests/hooks/use-inline-editing.test.ts +0 -321
  611. package/tests/hooks/use-mobile.test.ts +0 -177
  612. package/tests/hooks/use-monitoring-data.test.ts +0 -819
  613. package/tests/hooks/use-provider-metadata.test.ts +0 -228
  614. package/tests/hooks/use-query-execution.test.ts +0 -1212
  615. package/tests/hooks/use-tab-manager.test.ts +0 -756
  616. package/tests/hooks/use-toast.test.ts +0 -74
  617. package/tests/hooks/use-transaction-control.test.ts +0 -211
  618. package/tests/integration/db/mongodb-provider.test.ts +0 -698
  619. package/tests/integration/db/mssql-provider.test.ts +0 -840
  620. package/tests/integration/db/mysql-provider.test.ts +0 -872
  621. package/tests/integration/db/oracle-provider.test.ts +0 -843
  622. package/tests/integration/db/postgres-provider.test.ts +0 -1382
  623. package/tests/integration/db/redis-provider.test.ts +0 -526
  624. package/tests/integration/db/sqlite-provider.test.ts +0 -480
  625. package/tests/integration/seed/seed-pipeline.test.ts +0 -102
  626. package/tests/isolated/factory-singleton.test.ts +0 -150
  627. package/tests/isolated/use-storage-sync.test.ts +0 -389
  628. package/tests/run-components.sh +0 -196
  629. package/tests/setup-dom.ts +0 -58
  630. package/tests/setup.ts +0 -40
  631. package/tests/unit/api-errors.test.ts +0 -210
  632. package/tests/unit/code-generator-functions.test.ts +0 -271
  633. package/tests/unit/components/column-list.test.tsx +0 -190
  634. package/tests/unit/components/data-import-modal.test.tsx +0 -441
  635. package/tests/unit/components/studio-mobile-header.test.tsx +0 -327
  636. package/tests/unit/data-charts-functions.test.ts +0 -496
  637. package/tests/unit/data-import-functions.test.ts +0 -320
  638. package/tests/unit/data-import-utils.test.ts +0 -125
  639. package/tests/unit/db/base-provider.test.ts +0 -517
  640. package/tests/unit/db/errors.test.ts +0 -403
  641. package/tests/unit/db/factory.test.ts +0 -436
  642. package/tests/unit/db/pool-manager.test.ts +0 -440
  643. package/tests/unit/db/query-limiter.test.ts +0 -387
  644. package/tests/unit/db/sql-base.test.ts +0 -438
  645. package/tests/unit/lib/api/error-codes.test.ts +0 -39
  646. package/tests/unit/lib/audit.test.ts +0 -326
  647. package/tests/unit/lib/auth.test.ts +0 -146
  648. package/tests/unit/lib/connection-string-parser.test.ts +0 -424
  649. package/tests/unit/lib/data-masking.test.ts +0 -583
  650. package/tests/unit/lib/db-icons.test.tsx +0 -41
  651. package/tests/unit/lib/monitoring-thresholds.test.ts +0 -133
  652. package/tests/unit/lib/oidc.test.ts +0 -509
  653. package/tests/unit/lib/query-generators.test.ts +0 -127
  654. package/tests/unit/lib/storage/factory.test.ts +0 -71
  655. package/tests/unit/lib/storage/local-storage.test.ts +0 -114
  656. package/tests/unit/lib/storage/providers/postgres.test.ts +0 -312
  657. package/tests/unit/lib/storage/providers/sqlite.test.ts +0 -232
  658. package/tests/unit/lib/storage/storage-facade-extended.test.ts +0 -331
  659. package/tests/unit/lib/storage/storage-facade.test.ts +0 -184
  660. package/tests/unit/lib/storage.test.ts +0 -317
  661. package/tests/unit/lib/time-series-buffer.test.ts +0 -212
  662. package/tests/unit/lib/utils.test.ts +0 -24
  663. package/tests/unit/llm/base-provider.test.ts +0 -238
  664. package/tests/unit/llm/config.test.ts +0 -262
  665. package/tests/unit/llm/custom-provider.test.ts +0 -281
  666. package/tests/unit/llm/gemini-provider.test.ts +0 -248
  667. package/tests/unit/llm/llm-factory.test.ts +0 -155
  668. package/tests/unit/llm/ollama-provider.test.ts +0 -288
  669. package/tests/unit/llm/openai-provider.test.ts +0 -324
  670. package/tests/unit/llm/retry.test.ts +0 -180
  671. package/tests/unit/llm/streaming.test.ts +0 -355
  672. package/tests/unit/logger.test.ts +0 -198
  673. package/tests/unit/mongodb-completions.test.ts +0 -516
  674. package/tests/unit/pivot-table-functions.test.ts +0 -76
  675. package/tests/unit/query-cancelled-error.test.ts +0 -81
  676. package/tests/unit/schema-diff/diff-engine.test.ts +0 -367
  677. package/tests/unit/schema-diff/migration-generator.test.ts +0 -513
  678. package/tests/unit/seed/config-loader.test.ts +0 -73
  679. package/tests/unit/seed/connection-filter.test.ts +0 -91
  680. package/tests/unit/seed/credential-resolver.test.ts +0 -85
  681. package/tests/unit/seed/index.test.ts +0 -72
  682. package/tests/unit/seed/resolve-connection.test.ts +0 -74
  683. package/tests/unit/seed/types.test.ts +0 -129
  684. package/tests/unit/sql/alias-extractor.test.ts +0 -444
  685. package/tests/unit/sql/statement-splitter.test.ts +0 -348
  686. package/tests/unit/sql-completions.test.ts +0 -463
  687. package/tests/unit/ssh-tunnel.test.ts +0 -465
  688. package/tsconfig.json +0 -42
@@ -1,142 +1,83 @@
1
- /**
2
- * Microsoft SQL Server Database Provider
3
- * Full MSSQL support with connection pooling (SQL Authentication)
4
- */
5
-
1
+ import { SQLBaseProvider, DEFAULT_QUERY_LIMIT, MAX_UNLIMITED_ROWS, analyzeQuery } from './chunk-R3POCJK6.mjs';
2
+ import { formatBytes } from './chunk-QJP5FZRY.mjs';
3
+ import { DatabaseConfigError, ConnectionError, mapDatabaseError, QueryError } from './chunk-CZVV3JJB.mjs';
4
+ import { __spreadProps, __spreadValues } from './chunk-4LVB3K53.mjs';
6
5
  import mssql from 'mssql';
7
- import { SQLBaseProvider } from './sql-base';
8
- import {
9
- type DatabaseConnection,
10
- type TableSchema,
11
- type QueryResult,
12
- type HealthInfo,
13
- type MaintenanceType,
14
- type MaintenanceResult,
15
- type ProviderOptions,
16
- type ProviderCapabilities,
17
- type ProviderLabels,
18
- type SlowQuery,
19
- type ActiveSession,
20
- type DatabaseOverview,
21
- type PerformanceMetrics,
22
- type SlowQueryStats,
23
- type ActiveSessionDetails,
24
- type TableStats,
25
- type IndexStats,
26
- type StorageStats,
27
- type PreparedQuery,
28
- type QueryPrepareOptions,
29
- } from '../../types';
30
- import {
31
- DatabaseConfigError,
32
- ConnectionError,
33
- QueryError,
34
- mapDatabaseError,
35
- } from '../../errors';
36
- import { formatBytes } from '../../utils/pool-manager';
37
- import {
38
- analyzeQuery,
39
- DEFAULT_QUERY_LIMIT,
40
- MAX_UNLIMITED_ROWS,
41
- } from '../../utils/query-limiter';
42
-
43
- // ============================================================================
44
- // MSSQL Provider
45
- // ============================================================================
46
-
47
- export class MSSQLProvider extends SQLBaseProvider {
48
- private pool: mssql.ConnectionPool | null = null;
49
-
50
- // Transaction support
51
- private txTransaction: mssql.Transaction | null = null;
52
- private txActive = false;
53
-
54
- // Track running requests for cancellation
55
- private runningRequests = new Map<string, mssql.Request>();
56
6
 
57
- constructor(config: DatabaseConnection, options: ProviderOptions = {}) {
7
+ var MSSQLProvider = class extends SQLBaseProvider {
8
+ constructor(config, options = {}) {
58
9
  super(config, options);
10
+ this.pool = null;
11
+ // Transaction support
12
+ this.txTransaction = null;
13
+ this.txActive = false;
14
+ // Track running requests for cancellation
15
+ this.runningRequests = /* @__PURE__ */ new Map();
59
16
  this.validate();
60
17
  }
61
-
62
18
  // ============================================================================
63
19
  // Provider Metadata
64
20
  // ============================================================================
65
-
66
- public override getCapabilities(): ProviderCapabilities {
67
- return {
68
- ...super.getCapabilities(),
21
+ getCapabilities() {
22
+ return __spreadProps(__spreadValues({}, super.getCapabilities()), {
69
23
  defaultPort: 1433,
70
24
  supportsExplain: true,
71
25
  supportsConnectionString: true,
72
- maintenanceOperations: ['analyze', 'check', 'optimize', 'kill'],
73
- };
26
+ maintenanceOperations: ["analyze", "check", "optimize", "kill"]
27
+ });
74
28
  }
75
-
76
- public override getLabels(): ProviderLabels {
77
- return {
78
- ...super.getLabels(),
79
- analyzeAction: 'Update Statistics',
80
- vacuumAction: 'Rebuild Indexes',
81
- analyzeGlobalLabel: 'Update Stats',
82
- analyzeGlobalTitle: 'Update Statistics',
83
- analyzeGlobalDesc: 'Updates query optimizer statistics for all tables to improve query performance.',
84
- vacuumGlobalLabel: 'Rebuild Indexes',
85
- vacuumGlobalTitle: 'Rebuild All Indexes',
86
- vacuumGlobalDesc: 'Rebuilds all indexes to reclaim space and reduce fragmentation.',
87
- };
29
+ getLabels() {
30
+ return __spreadProps(__spreadValues({}, super.getLabels()), {
31
+ analyzeAction: "Update Statistics",
32
+ vacuumAction: "Rebuild Indexes",
33
+ analyzeGlobalLabel: "Update Stats",
34
+ analyzeGlobalTitle: "Update Statistics",
35
+ analyzeGlobalDesc: "Updates query optimizer statistics for all tables to improve query performance.",
36
+ vacuumGlobalLabel: "Rebuild Indexes",
37
+ vacuumGlobalTitle: "Rebuild All Indexes",
38
+ vacuumGlobalDesc: "Rebuilds all indexes to reclaim space and reduce fragmentation."
39
+ });
88
40
  }
89
-
90
41
  // ============================================================================
91
42
  // SQL Dialect Overrides
92
43
  // ============================================================================
93
-
94
- protected override escapeIdentifier(identifier: string): string {
95
- const escaped = identifier.replace(/\]/g, ']]');
44
+ escapeIdentifier(identifier) {
45
+ const escaped = identifier.replace(/\]/g, "]]");
96
46
  return `[${escaped}]`;
97
47
  }
98
-
99
48
  // ============================================================================
100
49
  // Validation
101
50
  // ============================================================================
102
-
103
- public validate(): void {
51
+ validate() {
104
52
  super.validate();
105
-
106
53
  if (!this.config.connectionString) {
107
54
  if (!this.config.host) {
108
- throw new DatabaseConfigError('Host is required for SQL Server', 'mssql');
55
+ throw new DatabaseConfigError("Host is required for SQL Server", "mssql");
109
56
  }
110
57
  if (!this.config.database) {
111
- throw new DatabaseConfigError('Database name is required for SQL Server', 'mssql');
58
+ throw new DatabaseConfigError("Database name is required for SQL Server", "mssql");
112
59
  }
113
60
  }
114
61
  }
115
-
116
62
  // ============================================================================
117
63
  // Connection Management
118
64
  // ============================================================================
119
-
120
- private buildConfig(): mssql.config {
121
- const host = this.config.host || 'localhost';
65
+ buildConfig() {
66
+ const host = this.config.host || "localhost";
122
67
  const port = this.config.port || 1433;
123
- const isAzure = host.endsWith('.database.windows.net');
124
-
68
+ const isAzure = host.endsWith(".database.windows.net");
125
69
  const sslConfig = this.config.ssl;
126
- // SQL Server 2022+ enforces encryption by default; always encrypt and trust self-signed certs for non-Azure
127
70
  let encrypt = true;
128
71
  let trustServerCertificate = !isAzure;
129
-
130
72
  if (sslConfig) {
131
- if (sslConfig.mode === 'disable') {
73
+ if (sslConfig.mode === "disable") {
132
74
  encrypt = false;
133
75
  } else {
134
76
  encrypt = true;
135
- trustServerCertificate = sslConfig.mode === 'require';
77
+ trustServerCertificate = sslConfig.mode === "require";
136
78
  }
137
79
  }
138
-
139
- const config: mssql.config = {
80
+ const config = {
140
81
  user: this.config.user,
141
82
  password: this.config.password,
142
83
  server: host,
@@ -145,183 +86,145 @@ export class MSSQLProvider extends SQLBaseProvider {
145
86
  pool: {
146
87
  min: this.poolConfig.min,
147
88
  max: this.poolConfig.max,
148
- idleTimeoutMillis: this.poolConfig.idleTimeout,
89
+ idleTimeoutMillis: this.poolConfig.idleTimeout
149
90
  },
150
91
  options: {
151
92
  encrypt,
152
93
  trustServerCertificate,
153
94
  connectTimeout: this.poolConfig.acquireTimeout,
154
- requestTimeout: this.queryTimeout,
155
- },
95
+ requestTimeout: this.queryTimeout
96
+ }
156
97
  };
157
-
158
- // Named instance support
159
98
  if (this.config.instanceName) {
160
- config.options = {
161
- ...config.options,
162
- instanceName: this.config.instanceName,
163
- };
164
- // When using instance name, port is auto-negotiated via SQL Server Browser
165
- delete (config as Record<string, unknown>).port;
99
+ config.options = __spreadProps(__spreadValues({}, config.options), {
100
+ instanceName: this.config.instanceName
101
+ });
102
+ delete config.port;
166
103
  }
167
-
168
104
  return config;
169
105
  }
170
-
171
- public async connect(): Promise<void> {
106
+ async connect() {
172
107
  if (this.pool) {
173
108
  return;
174
109
  }
175
-
176
110
  try {
177
111
  const config = this.buildConfig();
178
112
  this.pool = new mssql.ConnectionPool(config);
179
113
  await this.pool.connect();
180
-
181
- // Test the connection
182
- await this.pool.request().query('SELECT 1 AS test');
183
-
114
+ await this.pool.request().query("SELECT 1 AS test");
184
115
  this.setConnected(true);
185
116
  } catch (error) {
186
117
  this.setError(error instanceof Error ? error : new Error(String(error)));
187
118
  throw new ConnectionError(
188
119
  `Failed to connect to SQL Server: ${error instanceof Error ? error.message : error}`,
189
- 'mssql',
120
+ "mssql",
190
121
  this.config.host,
191
122
  this.config.port
192
123
  );
193
124
  }
194
125
  }
195
-
196
- public async disconnect(): Promise<void> {
126
+ async disconnect() {
197
127
  if (this.pool) {
198
128
  try {
199
129
  await this.pool.close();
200
- } catch {
201
- // Force close on error
130
+ } catch (e) {
202
131
  }
203
132
  this.pool = null;
204
133
  this.setConnected(false);
205
134
  }
206
135
  }
207
-
208
136
  // ============================================================================
209
137
  // Query Execution
210
138
  // ============================================================================
211
-
212
- public async query(sql: string, params?: unknown[], queryId?: string): Promise<QueryResult> {
139
+ async query(sql, params, queryId) {
213
140
  this.ensureConnected();
214
-
215
141
  return this.trackQuery(async () => {
142
+ var _a, _b;
216
143
  const { result, executionTime } = await this.measureExecution(async () => {
217
144
  try {
218
- const request = this.pool!.request();
219
-
145
+ const request = this.pool.request();
220
146
  if (queryId) {
221
147
  this.runningRequests.set(queryId, request);
222
148
  }
223
-
224
- // Add parameters
225
149
  if (params && params.length > 0) {
226
150
  params.forEach((p, i) => {
227
151
  request.input(`p${i + 1}`, p);
228
152
  });
229
153
  }
230
-
231
154
  const res = await request.query(sql);
232
155
  return res;
233
156
  } catch (error) {
234
- throw mapDatabaseError(error, 'mssql', sql);
157
+ throw mapDatabaseError(error, "mssql", sql);
235
158
  } finally {
236
159
  if (queryId) this.runningRequests.delete(queryId);
237
160
  }
238
161
  });
239
-
240
162
  const recordset = result.recordset || [];
241
- const fields = recordset.columns
242
- ? Object.keys(recordset.columns)
243
- : recordset.length > 0
244
- ? Object.keys(recordset[0])
245
- : [];
246
-
163
+ const fields = recordset.columns ? Object.keys(recordset.columns) : recordset.length > 0 ? Object.keys(recordset[0]) : [];
247
164
  return {
248
- rows: recordset as Record<string, unknown>[],
165
+ rows: recordset,
249
166
  fields,
250
- rowCount: result.rowsAffected?.[0] ?? recordset.length,
251
- executionTime,
167
+ rowCount: (_b = (_a = result.rowsAffected) == null ? void 0 : _a[0]) != null ? _b : recordset.length,
168
+ executionTime
252
169
  };
253
170
  });
254
171
  }
255
-
256
- public async cancelQuery(queryId: string): Promise<boolean> {
172
+ async cancelQuery(queryId) {
257
173
  const request = this.runningRequests.get(queryId);
258
174
  if (!request) return false;
259
-
260
175
  try {
261
176
  request.cancel();
262
177
  return true;
263
178
  } catch (error) {
264
- console.error('[MSSQL] Failed to cancel query:', error);
179
+ console.error("[MSSQL] Failed to cancel query:", error);
265
180
  return false;
266
181
  }
267
182
  }
268
-
269
183
  // ============================================================================
270
184
  // Query Preparation (MSSQL TOP / OFFSET FETCH)
271
185
  // ============================================================================
272
-
273
- public override prepareQuery(query: string, options: QueryPrepareOptions = {}): PreparedQuery {
186
+ prepareQuery(query, options = {}) {
274
187
  const { limit = DEFAULT_QUERY_LIMIT, offset = 0, unlimited = false } = options;
275
188
  const effectiveLimit = unlimited ? MAX_UNLIMITED_ROWS : limit;
276
189
  const queryInfo = analyzeQuery(query);
277
-
278
- if (queryInfo.type === 'SELECT' && !queryInfo.hasLimit) {
190
+ if (queryInfo.type === "SELECT" && !queryInfo.hasLimit) {
279
191
  let modifiedSql = query.trim();
280
- const hasSemicolon = modifiedSql.endsWith(';');
192
+ const hasSemicolon = modifiedSql.endsWith(";");
281
193
  if (hasSemicolon) modifiedSql = modifiedSql.slice(0, -1).trim();
282
-
283
194
  if (offset > 0) {
284
- // OFFSET FETCH requires ORDER BY
285
195
  const hasOrderBy = /\bORDER\s+BY\b/i.test(modifiedSql);
286
196
  if (!hasOrderBy) {
287
197
  modifiedSql = `${modifiedSql} ORDER BY (SELECT NULL)`;
288
198
  }
289
199
  modifiedSql = `${modifiedSql} OFFSET ${offset} ROWS FETCH NEXT ${effectiveLimit} ROWS ONLY`;
290
200
  } else {
291
- // Inject TOP N after SELECT
292
201
  modifiedSql = modifiedSql.replace(
293
202
  /^(\s*SELECT\s+)(DISTINCT\s+)?/i,
294
203
  `$1$2TOP ${effectiveLimit} `
295
204
  );
296
205
  }
297
-
298
- if (hasSemicolon) modifiedSql += ';';
299
-
206
+ if (hasSemicolon) modifiedSql += ";";
300
207
  return {
301
208
  query: modifiedSql,
302
209
  wasLimited: true,
303
210
  limit: effectiveLimit,
304
- offset,
211
+ offset
305
212
  };
306
213
  }
307
-
308
214
  return { query, wasLimited: false, limit: effectiveLimit, offset };
309
215
  }
310
-
311
216
  // ============================================================================
312
217
  // Transaction Support
313
218
  // ============================================================================
314
-
315
- public async beginTransaction(): Promise<void> {
219
+ async beginTransaction() {
316
220
  this.ensureConnected();
317
- if (this.txActive) throw new QueryError('Transaction already active', 'mssql');
318
- this.txTransaction = new mssql.Transaction(this.pool!);
221
+ if (this.txActive) throw new QueryError("Transaction already active", "mssql");
222
+ this.txTransaction = new mssql.Transaction(this.pool);
319
223
  await this.txTransaction.begin();
320
224
  this.txActive = true;
321
225
  }
322
-
323
- public async commitTransaction(): Promise<void> {
324
- if (!this.txTransaction || !this.txActive) throw new QueryError('No active transaction', 'mssql');
226
+ async commitTransaction() {
227
+ if (!this.txTransaction || !this.txActive) throw new QueryError("No active transaction", "mssql");
325
228
  try {
326
229
  await this.txTransaction.commit();
327
230
  } finally {
@@ -329,9 +232,8 @@ export class MSSQLProvider extends SQLBaseProvider {
329
232
  this.txActive = false;
330
233
  }
331
234
  }
332
-
333
- public async rollbackTransaction(): Promise<void> {
334
- if (!this.txTransaction || !this.txActive) throw new QueryError('No active transaction', 'mssql');
235
+ async rollbackTransaction() {
236
+ if (!this.txTransaction || !this.txActive) throw new QueryError("No active transaction", "mssql");
335
237
  try {
336
238
  await this.txTransaction.rollback();
337
239
  } finally {
@@ -339,18 +241,16 @@ export class MSSQLProvider extends SQLBaseProvider {
339
241
  this.txActive = false;
340
242
  }
341
243
  }
342
-
343
- public isInTransaction(): boolean {
244
+ isInTransaction() {
344
245
  return this.txActive;
345
246
  }
346
-
347
- public async queryInTransaction(sql: string, params?: unknown[]): Promise<QueryResult> {
348
- if (!this.txTransaction || !this.txActive) throw new QueryError('No active transaction', 'mssql');
349
-
247
+ async queryInTransaction(sql, params) {
248
+ if (!this.txTransaction || !this.txActive) throw new QueryError("No active transaction", "mssql");
350
249
  return this.trackQuery(async () => {
250
+ var _a, _b;
351
251
  const { result, executionTime } = await this.measureExecution(async () => {
352
252
  try {
353
- const request = new mssql.Request(this.txTransaction!);
253
+ const request = new mssql.Request(this.txTransaction);
354
254
  if (params && params.length > 0) {
355
255
  params.forEach((p, i) => {
356
256
  request.input(`p${i + 1}`, p);
@@ -358,32 +258,26 @@ export class MSSQLProvider extends SQLBaseProvider {
358
258
  }
359
259
  return await request.query(sql);
360
260
  } catch (error) {
361
- throw mapDatabaseError(error, 'mssql', sql);
261
+ throw mapDatabaseError(error, "mssql", sql);
362
262
  }
363
263
  });
364
-
365
264
  const recordset = result.recordset || [];
366
265
  const fields = recordset.length > 0 ? Object.keys(recordset[0]) : [];
367
-
368
266
  return {
369
- rows: recordset as Record<string, unknown>[],
267
+ rows: recordset,
370
268
  fields,
371
- rowCount: result.rowsAffected?.[0] ?? recordset.length,
372
- executionTime,
269
+ rowCount: (_b = (_a = result.rowsAffected) == null ? void 0 : _a[0]) != null ? _b : recordset.length,
270
+ executionTime
373
271
  };
374
272
  });
375
273
  }
376
-
377
274
  // ============================================================================
378
275
  // Schema Operations
379
276
  // ============================================================================
380
-
381
- public async getSchema(): Promise<TableSchema[]> {
277
+ async getSchema() {
382
278
  this.ensureConnected();
383
-
384
279
  try {
385
- // Get tables
386
- const tablesRes = await this.pool!.request().query(`
280
+ const tablesRes = await this.pool.request().query(`
387
281
  SELECT
388
282
  s.name AS schema_name,
389
283
  t.name AS table_name,
@@ -396,9 +290,7 @@ export class MSSQLProvider extends SQLBaseProvider {
396
290
  ORDER BY s.name, t.name
397
291
  `);
398
292
  const tables = tablesRes.recordset || [];
399
-
400
- // Get columns
401
- const colsRes = await this.pool!.request().query(`
293
+ const colsRes = await this.pool.request().query(`
402
294
  SELECT
403
295
  TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, DATA_TYPE,
404
296
  IS_NULLABLE, COLUMN_DEFAULT, ORDINAL_POSITION
@@ -406,9 +298,7 @@ export class MSSQLProvider extends SQLBaseProvider {
406
298
  ORDER BY TABLE_SCHEMA, TABLE_NAME, ORDINAL_POSITION
407
299
  `);
408
300
  const allCols = colsRes.recordset || [];
409
-
410
- // Get primary keys
411
- const pkRes = await this.pool!.request().query(`
301
+ const pkRes = await this.pool.request().query(`
412
302
  SELECT
413
303
  s.name AS schema_name,
414
304
  t.name AS table_name,
@@ -420,15 +310,13 @@ export class MSSQLProvider extends SQLBaseProvider {
420
310
  JOIN sys.schemas s ON t.schema_id = s.schema_id
421
311
  WHERE i.is_primary_key = 1
422
312
  `);
423
- const pkMap = new Map<string, Set<string>>();
313
+ const pkMap = /* @__PURE__ */ new Map();
424
314
  for (const row of pkRes.recordset || []) {
425
315
  const key = `${row.schema_name}.${row.table_name}`;
426
- if (!pkMap.has(key)) pkMap.set(key, new Set());
427
- pkMap.get(key)!.add(row.column_name);
316
+ if (!pkMap.has(key)) pkMap.set(key, /* @__PURE__ */ new Set());
317
+ pkMap.get(key).add(row.column_name);
428
318
  }
429
-
430
- // Get foreign keys
431
- const fkRes = await this.pool!.request().query(`
319
+ const fkRes = await this.pool.request().query(`
432
320
  SELECT
433
321
  OBJECT_SCHEMA_NAME(fk.parent_object_id) AS schema_name,
434
322
  OBJECT_NAME(fk.parent_object_id) AS table_name,
@@ -438,19 +326,17 @@ export class MSSQLProvider extends SQLBaseProvider {
438
326
  FROM sys.foreign_keys fk
439
327
  JOIN sys.foreign_key_columns fkc ON fk.object_id = fkc.constraint_object_id
440
328
  `);
441
- const fksByTable = new Map<string, Array<{ columnName: string; referencedTable: string; referencedColumn: string }>>();
329
+ const fksByTable = /* @__PURE__ */ new Map();
442
330
  for (const row of fkRes.recordset || []) {
443
331
  const key = `${row.schema_name}.${row.table_name}`;
444
332
  if (!fksByTable.has(key)) fksByTable.set(key, []);
445
- fksByTable.get(key)!.push({
333
+ fksByTable.get(key).push({
446
334
  columnName: row.column_name,
447
335
  referencedTable: row.ref_table,
448
- referencedColumn: row.ref_column,
336
+ referencedColumn: row.ref_column
449
337
  });
450
338
  }
451
-
452
- // Get indexes
453
- const idxRes = await this.pool!.request().query(`
339
+ const idxRes = await this.pool.request().query(`
454
340
  SELECT
455
341
  s.name AS schema_name,
456
342
  t.name AS table_name,
@@ -466,99 +352,85 @@ export class MSSQLProvider extends SQLBaseProvider {
466
352
  WHERE i.name IS NOT NULL AND i.is_primary_key = 0
467
353
  ORDER BY s.name, t.name, i.name, ic.key_ordinal
468
354
  `);
469
-
470
- const idxByTable = new Map<string, Map<string, { unique: boolean; columns: string[] }>>();
355
+ const idxByTable = /* @__PURE__ */ new Map();
471
356
  for (const row of idxRes.recordset || []) {
472
357
  const key = `${row.schema_name}.${row.table_name}`;
473
- if (!idxByTable.has(key)) idxByTable.set(key, new Map());
474
- const tableIdxs = idxByTable.get(key)!;
358
+ if (!idxByTable.has(key)) idxByTable.set(key, /* @__PURE__ */ new Map());
359
+ const tableIdxs = idxByTable.get(key);
475
360
  if (!tableIdxs.has(row.index_name)) {
476
361
  tableIdxs.set(row.index_name, { unique: row.is_unique, columns: [] });
477
362
  }
478
- tableIdxs.get(row.index_name)!.columns.push(row.column_name);
363
+ tableIdxs.get(row.index_name).columns.push(row.column_name);
479
364
  }
480
-
481
- // Group columns by table
482
- const colsByTable = new Map<string, typeof allCols>();
365
+ const colsByTable = /* @__PURE__ */ new Map();
483
366
  for (const c of allCols) {
484
367
  const key = `${c.TABLE_SCHEMA}.${c.TABLE_NAME}`;
485
368
  if (!colsByTable.has(key)) colsByTable.set(key, []);
486
- colsByTable.get(key)!.push(c);
369
+ colsByTable.get(key).push(c);
487
370
  }
488
-
489
- return tables.map((t: Record<string, unknown>) => {
490
- const schemaName = String(t.schema_name || 'dbo');
491
- const tableName = String(t.table_name || '');
371
+ return tables.map((t) => {
372
+ const schemaName = String(t.schema_name || "dbo");
373
+ const tableName = String(t.table_name || "");
492
374
  const key = `${schemaName}.${tableName}`;
493
- const displayName = schemaName === 'dbo' ? tableName : `${schemaName}.${tableName}`;
494
- const pks = pkMap.get(key) || new Set();
495
-
496
- const columns = (colsByTable.get(key) || []).map((c: Record<string, unknown>) => ({
497
- name: String(c.COLUMN_NAME || ''),
498
- type: String(c.DATA_TYPE || ''),
499
- nullable: String(c.IS_NULLABLE || '') === 'YES',
500
- isPrimary: pks.has(String(c.COLUMN_NAME || '')),
501
- defaultValue: c.COLUMN_DEFAULT ? String(c.COLUMN_DEFAULT) : undefined,
375
+ const displayName = schemaName === "dbo" ? tableName : `${schemaName}.${tableName}`;
376
+ const pks = pkMap.get(key) || /* @__PURE__ */ new Set();
377
+ const columns = (colsByTable.get(key) || []).map((c) => ({
378
+ name: String(c.COLUMN_NAME || ""),
379
+ type: String(c.DATA_TYPE || ""),
380
+ nullable: String(c.IS_NULLABLE || "") === "YES",
381
+ isPrimary: pks.has(String(c.COLUMN_NAME || "")),
382
+ defaultValue: c.COLUMN_DEFAULT ? String(c.COLUMN_DEFAULT) : void 0
502
383
  }));
503
-
504
384
  const foreignKeys = fksByTable.get(key) || [];
505
-
506
- const tableIdxs = idxByTable.get(key) || new Map();
385
+ const tableIdxs = idxByTable.get(key) || /* @__PURE__ */ new Map();
507
386
  const indexes = Array.from(tableIdxs.entries()).map(([name, info]) => ({
508
387
  name,
509
388
  columns: info.columns,
510
- unique: info.unique,
389
+ unique: info.unique
511
390
  }));
512
-
513
391
  return {
514
392
  name: displayName,
515
393
  rowCount: Number(t.row_count || 0),
516
394
  columns,
517
395
  indexes,
518
- foreignKeys,
396
+ foreignKeys
519
397
  };
520
398
  });
521
399
  } catch (error) {
522
- throw mapDatabaseError(error, 'mssql');
400
+ throw mapDatabaseError(error, "mssql");
523
401
  }
524
402
  }
525
-
526
403
  // ============================================================================
527
404
  // Health & Monitoring
528
405
  // ============================================================================
529
-
530
- public async getHealth(): Promise<HealthInfo> {
406
+ async getHealth() {
407
+ var _a, _b, _c;
531
408
  this.ensureConnected();
532
-
533
409
  try {
534
410
  let activeConnections = 0;
535
- let databaseSize = 'N/A';
536
- let cacheHitRatio = 'N/A';
537
- const slowQueries: SlowQuery[] = [];
538
- const activeSessions: ActiveSession[] = [];
539
-
540
- // Active connections
411
+ let databaseSize = "N/A";
412
+ let cacheHitRatio = "N/A";
413
+ const slowQueries = [];
414
+ const activeSessions = [];
541
415
  try {
542
- const connRes = await this.pool!.request().query(
416
+ const connRes = await this.pool.request().query(
543
417
  `SELECT COUNT(*) AS cnt FROM sys.dm_exec_sessions WHERE is_user_process = 1`
544
418
  );
545
- activeConnections = connRes.recordset[0]?.cnt || 0;
546
- } catch { /* DMV may require permissions */ }
547
-
548
- // Database size
419
+ activeConnections = ((_a = connRes.recordset[0]) == null ? void 0 : _a.cnt) || 0;
420
+ } catch (e) {
421
+ }
549
422
  try {
550
- const sizeRes = await this.pool!.request().query(`
423
+ const sizeRes = await this.pool.request().query(`
551
424
  SELECT
552
425
  CAST(SUM(size) * 8.0 / 1024 AS DECIMAL(10,2)) AS size_mb
553
426
  FROM sys.database_files
554
427
  `);
555
- const mb = Number(sizeRes.recordset[0]?.size_mb || 0);
428
+ const mb = Number(((_b = sizeRes.recordset[0]) == null ? void 0 : _b.size_mb) || 0);
556
429
  databaseSize = mb > 1024 ? `${(mb / 1024).toFixed(2)} GB` : `${mb} MB`;
557
- } catch { /* ignore */ }
558
-
559
- // Cache hit ratio
430
+ } catch (e) {
431
+ }
560
432
  try {
561
- const cacheRes = await this.pool!.request().query(`
433
+ const cacheRes = await this.pool.request().query(`
562
434
  SELECT
563
435
  CAST(
564
436
  (a.cntr_value * 1.0 / NULLIF(b.cntr_value, 0)) * 100
@@ -571,12 +443,11 @@ export class MSSQLProvider extends SQLBaseProvider {
571
443
  AND b.counter_name = 'Buffer cache hit ratio base'
572
444
  AND b.object_name LIKE '%Buffer Manager%'
573
445
  `);
574
- cacheHitRatio = `${cacheRes.recordset[0]?.hit_ratio || 0}%`;
575
- } catch { /* ignore */ }
576
-
577
- // Slow queries
446
+ cacheHitRatio = `${((_c = cacheRes.recordset[0]) == null ? void 0 : _c.hit_ratio) || 0}%`;
447
+ } catch (e) {
448
+ }
578
449
  try {
579
- const slowRes = await this.pool!.request().query(`
450
+ const slowRes = await this.pool.request().query(`
580
451
  SELECT TOP 5
581
452
  SUBSTRING(qt.text, 1, 100) AS query,
582
453
  qs.execution_count AS calls,
@@ -588,16 +459,15 @@ export class MSSQLProvider extends SQLBaseProvider {
588
459
  `);
589
460
  for (const row of slowRes.recordset || []) {
590
461
  slowQueries.push({
591
- query: String(row.query || ''),
462
+ query: String(row.query || ""),
592
463
  calls: Number(row.calls || 0),
593
- avgTime: `${row.avg_time_ms}ms`,
464
+ avgTime: `${row.avg_time_ms}ms`
594
465
  });
595
466
  }
596
- } catch { /* DMV permissions */ }
597
-
598
- // Active sessions
467
+ } catch (e) {
468
+ }
599
469
  try {
600
- const sessRes = await this.pool!.request().query(`
470
+ const sessRes = await this.pool.request().query(`
601
471
  SELECT TOP 10
602
472
  s.session_id AS pid,
603
473
  s.login_name AS [user],
@@ -614,48 +484,43 @@ export class MSSQLProvider extends SQLBaseProvider {
614
484
  for (const row of sessRes.recordset || []) {
615
485
  activeSessions.push({
616
486
  pid: Number(row.pid || 0),
617
- user: String(row.user || 'unknown'),
618
- database: String(row.database || ''),
619
- state: String(row.state || 'unknown'),
620
- query: String(row.query || ''),
621
- duration: String(row.duration || 'N/A'),
487
+ user: String(row.user || "unknown"),
488
+ database: String(row.database || ""),
489
+ state: String(row.state || "unknown"),
490
+ query: String(row.query || ""),
491
+ duration: String(row.duration || "N/A")
622
492
  });
623
493
  }
624
- } catch { /* ignore */ }
625
-
494
+ } catch (e) {
495
+ }
626
496
  return { activeConnections, databaseSize, cacheHitRatio, slowQueries, activeSessions };
627
497
  } catch (error) {
628
- throw mapDatabaseError(error, 'mssql');
498
+ throw mapDatabaseError(error, "mssql");
629
499
  }
630
500
  }
631
-
632
501
  // ============================================================================
633
502
  // Maintenance Operations
634
503
  // ============================================================================
635
-
636
- public async runMaintenance(type: MaintenanceType, target?: string): Promise<MaintenanceResult> {
504
+ async runMaintenance(type, target) {
637
505
  this.ensureConnected();
638
-
639
506
  const { result, executionTime } = await this.measureExecution(async () => {
640
507
  try {
641
- let sql = '';
642
-
508
+ let sql = "";
643
509
  switch (type) {
644
- case 'analyze':
510
+ case "analyze":
645
511
  if (target) {
646
- sql = `UPDATE STATISTICS [${target.replace(/\]/g, ']]')}]`;
512
+ sql = `UPDATE STATISTICS [${target.replace(/\]/g, "]]")}]`;
647
513
  } else {
648
514
  sql = `EXEC sp_updatestats`;
649
515
  }
650
516
  break;
651
- case 'check':
517
+ case "check":
652
518
  sql = `DBCC CHECKDB WITH NO_INFOMSGS`;
653
519
  break;
654
- case 'optimize':
520
+ case "optimize":
655
521
  if (target) {
656
- sql = `ALTER INDEX ALL ON [${target.replace(/\]/g, ']]')}] REBUILD`;
522
+ sql = `ALTER INDEX ALL ON [${target.replace(/\]/g, "]]")}] REBUILD`;
657
523
  } else {
658
- // Rebuild all indexes on all tables
659
524
  sql = `
660
525
  DECLARE @sql NVARCHAR(MAX) = '';
661
526
  SELECT @sql = @sql + 'ALTER INDEX ALL ON [' + s.name + '].[' + t.name + '] REBUILD;'
@@ -666,78 +531,68 @@ export class MSSQLProvider extends SQLBaseProvider {
666
531
  `;
667
532
  }
668
533
  break;
669
- case 'kill':
534
+ case "kill":
670
535
  if (!target) {
671
- throw new QueryError('Target SPID is required for kill operation', 'mssql');
536
+ throw new QueryError("Target SPID is required for kill operation", "mssql");
672
537
  }
673
538
  const spid = parseInt(target, 10);
674
539
  if (isNaN(spid)) {
675
- throw new QueryError('Invalid SPID for kill operation', 'mssql');
540
+ throw new QueryError("Invalid SPID for kill operation", "mssql");
676
541
  }
677
542
  sql = `KILL ${spid}`;
678
543
  break;
679
544
  default:
680
- throw new QueryError(`Unsupported maintenance type: ${type}`, 'mssql');
545
+ throw new QueryError(`Unsupported maintenance type: ${type}`, "mssql");
681
546
  }
682
-
683
- await this.pool!.request().query(sql);
547
+ await this.pool.request().query(sql);
684
548
  return { success: true };
685
549
  } catch (error) {
686
- throw mapDatabaseError(error, 'mssql');
550
+ throw mapDatabaseError(error, "mssql");
687
551
  }
688
552
  });
689
-
690
553
  return {
691
554
  success: result.success,
692
555
  executionTime,
693
- message: `${type.toUpperCase()} completed successfully`,
556
+ message: `${type.toUpperCase()} completed successfully`
694
557
  };
695
558
  }
696
-
697
559
  // ============================================================================
698
560
  // Pool Statistics
699
561
  // ============================================================================
700
-
701
- public getPoolStats() {
562
+ getPoolStats() {
702
563
  if (!this.pool) {
703
564
  return { total: 0, idle: 0, active: 0, waiting: 0 };
704
565
  }
705
-
706
566
  return {
707
567
  total: this.pool.size,
708
568
  idle: this.pool.available,
709
569
  active: this.pool.size - this.pool.available,
710
- waiting: this.pool.pending,
570
+ waiting: this.pool.pending
711
571
  };
712
572
  }
713
-
714
573
  // ============================================================================
715
574
  // Extended Monitoring Methods
716
575
  // ============================================================================
717
-
718
- public async getOverview(): Promise<DatabaseOverview> {
576
+ async getOverview() {
577
+ var _a, _b, _c, _d, _e, _f;
719
578
  this.ensureConnected();
720
-
721
579
  try {
722
- let version = 'SQL Server';
723
- let uptime = 'N/A';
724
- let startTime: Date | undefined;
580
+ let version = "SQL Server";
581
+ let uptime = "N/A";
582
+ let startTime;
725
583
  let activeConnections = 0;
726
584
  let maxConnections = 0;
727
- let databaseSize = '0 bytes';
585
+ let databaseSize = "0 bytes";
728
586
  let databaseSizeBytes = 0;
729
587
  let tableCount = 0;
730
588
  let indexCount = 0;
731
-
732
- // Version
733
589
  try {
734
- const vRes = await this.pool!.request().query(`SELECT @@VERSION AS version`);
735
- version = String(vRes.recordset[0]?.version || '').split('\n')[0];
736
- } catch { /* ignore */ }
737
-
738
- // Uptime
590
+ const vRes = await this.pool.request().query(`SELECT @@VERSION AS version`);
591
+ version = String(((_a = vRes.recordset[0]) == null ? void 0 : _a.version) || "").split("\n")[0];
592
+ } catch (e) {
593
+ }
739
594
  try {
740
- const upRes = await this.pool!.request().query(`
595
+ const upRes = await this.pool.request().query(`
741
596
  SELECT sqlserver_start_time,
742
597
  DATEDIFF(SECOND, sqlserver_start_time, GETDATE()) AS uptime_seconds
743
598
  FROM sys.dm_os_sys_info
@@ -745,65 +600,67 @@ export class MSSQLProvider extends SQLBaseProvider {
745
600
  if (upRes.recordset[0]) {
746
601
  const secs = Number(upRes.recordset[0].uptime_seconds || 0);
747
602
  const days = Math.floor(secs / 86400);
748
- const hours = Math.floor((secs % 86400) / 3600);
749
- const minutes = Math.floor((secs % 3600) / 60);
603
+ const hours = Math.floor(secs % 86400 / 3600);
604
+ const minutes = Math.floor(secs % 3600 / 60);
750
605
  uptime = days > 0 ? `${days}d ${hours}h ${minutes}m` : hours > 0 ? `${hours}h ${minutes}m` : `${minutes}m`;
751
606
  startTime = new Date(upRes.recordset[0].sqlserver_start_time);
752
607
  }
753
- } catch { /* ignore */ }
754
-
755
- // Connections
608
+ } catch (e) {
609
+ }
756
610
  try {
757
- const connRes = await this.pool!.request().query(`
611
+ const connRes = await this.pool.request().query(`
758
612
  SELECT
759
613
  COUNT(*) AS active_connections,
760
614
  (SELECT CAST(value_in_use AS INT) FROM sys.configurations WHERE name = 'user connections') AS max_connections
761
615
  FROM sys.dm_exec_sessions
762
616
  WHERE is_user_process = 1
763
617
  `);
764
- activeConnections = Number(connRes.recordset[0]?.active_connections || 0);
765
- maxConnections = Number(connRes.recordset[0]?.max_connections || 32767);
766
- if (maxConnections === 0) maxConnections = 32767; // 0 means unlimited
767
- } catch { /* ignore */ }
768
-
769
- // Database size
618
+ activeConnections = Number(((_b = connRes.recordset[0]) == null ? void 0 : _b.active_connections) || 0);
619
+ maxConnections = Number(((_c = connRes.recordset[0]) == null ? void 0 : _c.max_connections) || 32767);
620
+ if (maxConnections === 0) maxConnections = 32767;
621
+ } catch (e) {
622
+ }
770
623
  try {
771
- const sizeRes = await this.pool!.request().query(`
624
+ const sizeRes = await this.pool.request().query(`
772
625
  SELECT SUM(CAST(size AS BIGINT)) * 8 * 1024 AS size_bytes FROM sys.database_files
773
626
  `);
774
- databaseSizeBytes = Number(sizeRes.recordset[0]?.size_bytes || 0);
627
+ databaseSizeBytes = Number(((_d = sizeRes.recordset[0]) == null ? void 0 : _d.size_bytes) || 0);
775
628
  databaseSize = formatBytes(databaseSizeBytes);
776
- } catch { /* ignore */ }
777
-
778
- // Table/index counts
629
+ } catch (e) {
630
+ }
779
631
  try {
780
- const cntRes = await this.pool!.request().query(`
632
+ const cntRes = await this.pool.request().query(`
781
633
  SELECT
782
634
  (SELECT COUNT(*) FROM sys.tables WHERE type = 'U') AS table_count,
783
635
  (SELECT COUNT(*) FROM sys.indexes WHERE object_id IN (SELECT object_id FROM sys.tables WHERE type = 'U') AND name IS NOT NULL) AS index_count
784
636
  `);
785
- tableCount = Number(cntRes.recordset[0]?.table_count || 0);
786
- indexCount = Number(cntRes.recordset[0]?.index_count || 0);
787
- } catch { /* ignore */ }
788
-
637
+ tableCount = Number(((_e = cntRes.recordset[0]) == null ? void 0 : _e.table_count) || 0);
638
+ indexCount = Number(((_f = cntRes.recordset[0]) == null ? void 0 : _f.index_count) || 0);
639
+ } catch (e) {
640
+ }
789
641
  return {
790
- version, uptime, startTime, activeConnections, maxConnections,
791
- databaseSize, databaseSizeBytes, tableCount, indexCount,
642
+ version,
643
+ uptime,
644
+ startTime,
645
+ activeConnections,
646
+ maxConnections,
647
+ databaseSize,
648
+ databaseSizeBytes,
649
+ tableCount,
650
+ indexCount
792
651
  };
793
652
  } catch (error) {
794
- throw mapDatabaseError(error, 'mssql');
653
+ throw mapDatabaseError(error, "mssql");
795
654
  }
796
655
  }
797
-
798
- public async getPerformanceMetrics(): Promise<PerformanceMetrics> {
656
+ async getPerformanceMetrics() {
657
+ var _a;
799
658
  this.ensureConnected();
800
-
801
659
  try {
802
660
  let cacheHitRatio = 100;
803
- let bufferPoolUsage: number | undefined;
804
-
661
+ let bufferPoolUsage;
805
662
  try {
806
- const cacheRes = await this.pool!.request().query(`
663
+ const cacheRes = await this.pool.request().query(`
807
664
  SELECT
808
665
  CAST(
809
666
  (a.cntr_value * 1.0 / NULLIF(b.cntr_value, 0)) * 100
@@ -816,25 +673,24 @@ export class MSSQLProvider extends SQLBaseProvider {
816
673
  AND b.counter_name = 'Buffer cache hit ratio base'
817
674
  AND b.object_name LIKE '%Buffer Manager%'
818
675
  `);
819
- cacheHitRatio = Number(cacheRes.recordset[0]?.hit_ratio || 100);
676
+ cacheHitRatio = Number(((_a = cacheRes.recordset[0]) == null ? void 0 : _a.hit_ratio) || 100);
820
677
  bufferPoolUsage = cacheHitRatio;
821
- } catch { /* ignore */ }
822
-
678
+ } catch (e) {
679
+ }
823
680
  return {
824
681
  cacheHitRatio,
825
- bufferPoolUsage,
682
+ bufferPoolUsage
826
683
  };
827
684
  } catch (error) {
828
- throw mapDatabaseError(error, 'mssql');
685
+ throw mapDatabaseError(error, "mssql");
829
686
  }
830
687
  }
831
-
832
- public async getSlowQueries(options?: { limit?: number }): Promise<SlowQueryStats[]> {
688
+ async getSlowQueries(options) {
689
+ var _a;
833
690
  this.ensureConnected();
834
- const limit = options?.limit ?? 10;
835
-
691
+ const limit = (_a = options == null ? void 0 : options.limit) != null ? _a : 10;
836
692
  try {
837
- const res = await this.pool!.request().query(`
693
+ const res = await this.pool.request().query(`
838
694
  SELECT TOP ${limit}
839
695
  CAST(qs.query_hash AS VARCHAR(50)) AS query_id,
840
696
  SUBSTRING(qt.text, 1, 500) AS query,
@@ -851,10 +707,9 @@ export class MSSQLProvider extends SQLBaseProvider {
851
707
  WHERE qs.execution_count > 0
852
708
  ORDER BY qs.total_elapsed_time DESC
853
709
  `);
854
-
855
- return (res.recordset || []).map((r: Record<string, unknown>) => ({
856
- queryId: String(r.query_id || ''),
857
- query: String(r.query || ''),
710
+ return (res.recordset || []).map((r) => ({
711
+ queryId: String(r.query_id || ""),
712
+ query: String(r.query || ""),
858
713
  calls: Number(r.calls || 0),
859
714
  totalTime: Number(r.total_time || 0),
860
715
  avgTime: Number(r.avg_time || 0),
@@ -862,19 +717,18 @@ export class MSSQLProvider extends SQLBaseProvider {
862
717
  maxTime: Number(r.max_time || 0),
863
718
  rows: Number(r.row_cnt || 0),
864
719
  sharedBlksHit: Number(r.logical_reads || 0),
865
- sharedBlksRead: Number(r.physical_reads || 0),
720
+ sharedBlksRead: Number(r.physical_reads || 0)
866
721
  }));
867
- } catch {
722
+ } catch (e) {
868
723
  return [];
869
724
  }
870
725
  }
871
-
872
- public async getActiveSessions(options?: { limit?: number }): Promise<ActiveSessionDetails[]> {
726
+ async getActiveSessions(options) {
727
+ var _a;
873
728
  this.ensureConnected();
874
- const limit = options?.limit ?? 50;
875
-
729
+ const limit = (_a = options == null ? void 0 : options.limit) != null ? _a : 50;
876
730
  try {
877
- const res = await this.pool!.request().query(`
731
+ const res = await this.pool.request().query(`
878
732
  SELECT TOP ${limit}
879
733
  s.session_id AS pid,
880
734
  s.login_name AS [user],
@@ -897,32 +751,29 @@ export class MSSQLProvider extends SQLBaseProvider {
897
751
  CASE s.status WHEN 'running' THEN 0 WHEN 'sleeping' THEN 1 ELSE 2 END,
898
752
  s.last_request_start_time DESC
899
753
  `);
900
-
901
- return (res.recordset || []).map((r: Record<string, unknown>) => ({
754
+ return (res.recordset || []).map((r) => ({
902
755
  pid: Number(r.pid || 0),
903
- user: String(r.user || 'unknown'),
904
- database: String(r.database || ''),
905
- applicationName: r.application_name ? String(r.application_name) : undefined,
906
- clientAddr: r.client_addr ? String(r.client_addr) : undefined,
907
- state: String(r.state || 'unknown'),
908
- query: String(r.query || ''),
909
- queryStart: r.query_start ? new Date(String(r.query_start)) : undefined,
910
- duration: String(r.duration || 'N/A'),
756
+ user: String(r.user || "unknown"),
757
+ database: String(r.database || ""),
758
+ applicationName: r.application_name ? String(r.application_name) : void 0,
759
+ clientAddr: r.client_addr ? String(r.client_addr) : void 0,
760
+ state: String(r.state || "unknown"),
761
+ query: String(r.query || ""),
762
+ queryStart: r.query_start ? new Date(String(r.query_start)) : void 0,
763
+ duration: String(r.duration || "N/A"),
911
764
  durationMs: Number(r.duration_ms || 0),
912
- waitEventType: r.wait_type ? String(r.wait_type) : undefined,
913
- waitEvent: r.last_wait_type ? String(r.last_wait_type) : undefined,
914
- blocked: Boolean(r.is_blocked),
765
+ waitEventType: r.wait_type ? String(r.wait_type) : void 0,
766
+ waitEvent: r.last_wait_type ? String(r.last_wait_type) : void 0,
767
+ blocked: Boolean(r.is_blocked)
915
768
  }));
916
- } catch {
769
+ } catch (e) {
917
770
  return [];
918
771
  }
919
772
  }
920
-
921
- public async getTableStats(): Promise<TableStats[]> {
773
+ async getTableStats() {
922
774
  this.ensureConnected();
923
-
924
775
  try {
925
- const res = await this.pool!.request().query(`
776
+ const res = await this.pool.request().query(`
926
777
  SELECT
927
778
  s.name AS schema_name,
928
779
  t.name AS table_name,
@@ -941,14 +792,13 @@ export class MSSQLProvider extends SQLBaseProvider {
941
792
  GROUP BY s.name, t.name, t.object_id
942
793
  ORDER BY SUM(a.total_pages) DESC
943
794
  `);
944
-
945
- return (res.recordset || []).map((r: Record<string, unknown>) => {
795
+ return (res.recordset || []).map((r) => {
946
796
  const tableSizeBytes = Number(r.table_size_bytes || 0);
947
797
  const indexSizeBytes = Number(r.index_size_bytes || 0);
948
798
  const totalSizeBytes = Number(r.total_size_bytes || 0);
949
799
  return {
950
- schemaName: String(r.schema_name || 'dbo'),
951
- tableName: String(r.table_name || ''),
800
+ schemaName: String(r.schema_name || "dbo"),
801
+ tableName: String(r.table_name || ""),
952
802
  rowCount: Number(r.row_count || 0),
953
803
  tableSize: formatBytes(tableSizeBytes),
954
804
  tableSizeBytes,
@@ -956,19 +806,17 @@ export class MSSQLProvider extends SQLBaseProvider {
956
806
  indexSizeBytes,
957
807
  totalSize: formatBytes(totalSizeBytes),
958
808
  totalSizeBytes,
959
- lastAnalyze: r.last_stats_update ? new Date(String(r.last_stats_update)) : undefined,
809
+ lastAnalyze: r.last_stats_update ? new Date(String(r.last_stats_update)) : void 0
960
810
  };
961
811
  });
962
- } catch {
812
+ } catch (e) {
963
813
  return [];
964
814
  }
965
815
  }
966
-
967
- public async getIndexStats(): Promise<IndexStats[]> {
816
+ async getIndexStats() {
968
817
  this.ensureConnected();
969
-
970
818
  try {
971
- const res = await this.pool!.request().query(`
819
+ const res = await this.pool.request().query(`
972
820
  SELECT
973
821
  s.name AS schema_name,
974
822
  t.name AS table_name,
@@ -989,9 +837,7 @@ export class MSSQLProvider extends SQLBaseProvider {
989
837
  i.object_id, i.index_id, u.user_seeks, u.user_scans, u.user_lookups
990
838
  ORDER BY SUM(a.total_pages) DESC
991
839
  `);
992
-
993
- // Get columns for each index
994
- const colRes = await this.pool!.request().query(`
840
+ const colRes = await this.pool.request().query(`
995
841
  SELECT
996
842
  s.name AS schema_name,
997
843
  t.name AS table_name,
@@ -1006,40 +852,36 @@ export class MSSQLProvider extends SQLBaseProvider {
1006
852
  WHERE i.name IS NOT NULL AND t.type = 'U'
1007
853
  ORDER BY s.name, t.name, i.name, ic.key_ordinal
1008
854
  `);
1009
-
1010
- const colMap = new Map<string, string[]>();
855
+ const colMap = /* @__PURE__ */ new Map();
1011
856
  for (const c of colRes.recordset || []) {
1012
857
  const key = `${c.schema_name}.${c.table_name}.${c.index_name}`;
1013
858
  if (!colMap.has(key)) colMap.set(key, []);
1014
- colMap.get(key)!.push(String(c.column_name));
859
+ colMap.get(key).push(String(c.column_name));
1015
860
  }
1016
-
1017
- return (res.recordset || []).map((r: Record<string, unknown>) => {
861
+ return (res.recordset || []).map((r) => {
1018
862
  const key = `${r.schema_name}.${r.table_name}.${r.index_name}`;
1019
863
  const idxSizeBytes = Number(r.index_size_bytes || 0);
1020
864
  return {
1021
- schemaName: String(r.schema_name || 'dbo'),
1022
- tableName: String(r.table_name || ''),
1023
- indexName: String(r.index_name || ''),
1024
- indexType: String(r.index_type || ''),
865
+ schemaName: String(r.schema_name || "dbo"),
866
+ tableName: String(r.table_name || ""),
867
+ indexName: String(r.index_name || ""),
868
+ indexType: String(r.index_type || ""),
1025
869
  columns: colMap.get(key) || [],
1026
870
  isUnique: Boolean(r.is_unique),
1027
871
  isPrimary: Boolean(r.is_primary_key),
1028
872
  indexSize: formatBytes(idxSizeBytes),
1029
873
  indexSizeBytes: idxSizeBytes,
1030
- scans: Number(r.scans || 0),
874
+ scans: Number(r.scans || 0)
1031
875
  };
1032
876
  });
1033
- } catch {
877
+ } catch (e) {
1034
878
  return [];
1035
879
  }
1036
880
  }
1037
-
1038
- public async getStorageStats(): Promise<StorageStats[]> {
881
+ async getStorageStats() {
1039
882
  this.ensureConnected();
1040
-
1041
883
  try {
1042
- const res = await this.pool!.request().query(`
884
+ const res = await this.pool.request().query(`
1043
885
  SELECT
1044
886
  name,
1045
887
  physical_name AS location,
@@ -1048,18 +890,21 @@ export class MSSQLProvider extends SQLBaseProvider {
1048
890
  FROM sys.database_files
1049
891
  ORDER BY size DESC
1050
892
  `);
1051
-
1052
- return (res.recordset || []).map((r: Record<string, unknown>) => {
893
+ return (res.recordset || []).map((r) => {
1053
894
  const sizeBytes = Number(r.size_bytes || 0);
1054
895
  return {
1055
- name: String(r.name || ''),
1056
- location: String(r.location || ''),
896
+ name: String(r.name || ""),
897
+ location: String(r.location || ""),
1057
898
  size: formatBytes(sizeBytes),
1058
- sizeBytes,
899
+ sizeBytes
1059
900
  };
1060
901
  });
1061
- } catch {
902
+ } catch (e) {
1062
903
  return [];
1063
904
  }
1064
905
  }
1065
- }
906
+ };
907
+
908
+ export { MSSQLProvider };
909
+ //# sourceMappingURL=mssql-ZH5VP2C5.mjs.map
910
+ //# sourceMappingURL=mssql-ZH5VP2C5.mjs.map