@neverinfamous/mysql-mcp 2.1.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (751) hide show
  1. package/.env.example +14 -4
  2. package/.github/ISSUE_TEMPLATE/bug_report.md +7 -1
  3. package/.github/ISSUE_TEMPLATE/feature_request.md +6 -1
  4. package/.github/dependabot.yml +15 -0
  5. package/.github/pull_request_template.md +5 -0
  6. package/.github/workflows/codeql.yml +41 -42
  7. package/.github/workflows/docker-publish.yml +248 -210
  8. package/.github/workflows/publish-npm.yml +16 -6
  9. package/CHANGELOG.md +272 -22
  10. package/CODE_OF_CONDUCT.md +2 -0
  11. package/DOCKER_README.md +222 -156
  12. package/Dockerfile +2 -2
  13. package/README.md +210 -176
  14. package/SECURITY.md +0 -8
  15. package/VERSION +1 -1
  16. package/dist/__tests__/mocks/adapter.d.ts +3 -3
  17. package/dist/__tests__/mocks/adapter.d.ts.map +1 -1
  18. package/dist/__tests__/mocks/adapter.js +51 -35
  19. package/dist/__tests__/mocks/adapter.js.map +1 -1
  20. package/dist/__tests__/mocks/index.d.ts +4 -4
  21. package/dist/__tests__/mocks/index.d.ts.map +1 -1
  22. package/dist/__tests__/mocks/index.js +2 -2
  23. package/dist/__tests__/mocks/index.js.map +1 -1
  24. package/dist/__tests__/mocks/mysql.d.ts +2 -2
  25. package/dist/__tests__/mocks/mysql.d.ts.map +1 -1
  26. package/dist/__tests__/mocks/mysql.js +14 -14
  27. package/dist/__tests__/mocks/mysql.js.map +1 -1
  28. package/dist/__tests__/setup.d.ts.map +1 -1
  29. package/dist/__tests__/setup.js +7 -7
  30. package/dist/__tests__/setup.js.map +1 -1
  31. package/dist/adapters/DatabaseAdapter.d.ts +2 -2
  32. package/dist/adapters/DatabaseAdapter.d.ts.map +1 -1
  33. package/dist/adapters/DatabaseAdapter.js +69 -40
  34. package/dist/adapters/DatabaseAdapter.js.map +1 -1
  35. package/dist/adapters/mysql/MySQLAdapter.d.ts +10 -4
  36. package/dist/adapters/mysql/MySQLAdapter.d.ts.map +1 -1
  37. package/dist/adapters/mysql/MySQLAdapter.js +143 -116
  38. package/dist/adapters/mysql/MySQLAdapter.js.map +1 -1
  39. package/dist/adapters/mysql/SchemaManager.d.ts +1 -1
  40. package/dist/adapters/mysql/SchemaManager.d.ts.map +1 -1
  41. package/dist/adapters/mysql/SchemaManager.js +76 -56
  42. package/dist/adapters/mysql/SchemaManager.js.map +1 -1
  43. package/dist/adapters/mysql/index.d.ts +2 -2
  44. package/dist/adapters/mysql/index.js +2 -2
  45. package/dist/adapters/mysql/prompts/backupStrategy.d.ts +1 -1
  46. package/dist/adapters/mysql/prompts/backupStrategy.d.ts.map +1 -1
  47. package/dist/adapters/mysql/prompts/backupStrategy.js +21 -9
  48. package/dist/adapters/mysql/prompts/backupStrategy.js.map +1 -1
  49. package/dist/adapters/mysql/prompts/clusterSetup.d.ts +1 -1
  50. package/dist/adapters/mysql/prompts/clusterSetup.d.ts.map +1 -1
  51. package/dist/adapters/mysql/prompts/clusterSetup.js +3 -3
  52. package/dist/adapters/mysql/prompts/clusterSetup.js.map +1 -1
  53. package/dist/adapters/mysql/prompts/docstoreSetup.d.ts +1 -1
  54. package/dist/adapters/mysql/prompts/docstoreSetup.js +3 -3
  55. package/dist/adapters/mysql/prompts/docstoreSetup.js.map +1 -1
  56. package/dist/adapters/mysql/prompts/eventScheduler.d.ts +1 -1
  57. package/dist/adapters/mysql/prompts/eventScheduler.js +3 -3
  58. package/dist/adapters/mysql/prompts/eventScheduler.js.map +1 -1
  59. package/dist/adapters/mysql/prompts/healthCheck.d.ts +1 -1
  60. package/dist/adapters/mysql/prompts/healthCheck.d.ts.map +1 -1
  61. package/dist/adapters/mysql/prompts/healthCheck.js +10 -6
  62. package/dist/adapters/mysql/prompts/healthCheck.js.map +1 -1
  63. package/dist/adapters/mysql/prompts/index.d.ts +2 -2
  64. package/dist/adapters/mysql/prompts/index.d.ts.map +1 -1
  65. package/dist/adapters/mysql/prompts/index.js +98 -62
  66. package/dist/adapters/mysql/prompts/index.js.map +1 -1
  67. package/dist/adapters/mysql/prompts/indexTuning.d.ts +1 -1
  68. package/dist/adapters/mysql/prompts/indexTuning.d.ts.map +1 -1
  69. package/dist/adapters/mysql/prompts/indexTuning.js +11 -7
  70. package/dist/adapters/mysql/prompts/indexTuning.js.map +1 -1
  71. package/dist/adapters/mysql/prompts/mysqlshSetup.d.ts +1 -1
  72. package/dist/adapters/mysql/prompts/mysqlshSetup.js +4 -4
  73. package/dist/adapters/mysql/prompts/mysqlshSetup.js.map +1 -1
  74. package/dist/adapters/mysql/prompts/proxysqlSetup.d.ts +1 -1
  75. package/dist/adapters/mysql/prompts/proxysqlSetup.js +3 -3
  76. package/dist/adapters/mysql/prompts/proxysqlSetup.js.map +1 -1
  77. package/dist/adapters/mysql/prompts/replicationSetup.d.ts +1 -1
  78. package/dist/adapters/mysql/prompts/replicationSetup.d.ts.map +1 -1
  79. package/dist/adapters/mysql/prompts/replicationSetup.js +13 -7
  80. package/dist/adapters/mysql/prompts/replicationSetup.js.map +1 -1
  81. package/dist/adapters/mysql/prompts/routerSetup.d.ts +1 -1
  82. package/dist/adapters/mysql/prompts/routerSetup.js +3 -3
  83. package/dist/adapters/mysql/prompts/routerSetup.js.map +1 -1
  84. package/dist/adapters/mysql/prompts/spatialSetup.d.ts +1 -1
  85. package/dist/adapters/mysql/prompts/spatialSetup.js +3 -3
  86. package/dist/adapters/mysql/prompts/spatialSetup.js.map +1 -1
  87. package/dist/adapters/mysql/prompts/sysSchema.d.ts +1 -1
  88. package/dist/adapters/mysql/prompts/sysSchema.d.ts.map +1 -1
  89. package/dist/adapters/mysql/prompts/sysSchema.js +3 -3
  90. package/dist/adapters/mysql/prompts/sysSchema.js.map +1 -1
  91. package/dist/adapters/mysql/resources/capabilities.d.ts +2 -2
  92. package/dist/adapters/mysql/resources/capabilities.d.ts.map +1 -1
  93. package/dist/adapters/mysql/resources/capabilities.js +17 -15
  94. package/dist/adapters/mysql/resources/capabilities.js.map +1 -1
  95. package/dist/adapters/mysql/resources/cluster.d.ts +2 -2
  96. package/dist/adapters/mysql/resources/cluster.d.ts.map +1 -1
  97. package/dist/adapters/mysql/resources/cluster.js +17 -15
  98. package/dist/adapters/mysql/resources/cluster.js.map +1 -1
  99. package/dist/adapters/mysql/resources/docstore.d.ts +2 -2
  100. package/dist/adapters/mysql/resources/docstore.d.ts.map +1 -1
  101. package/dist/adapters/mysql/resources/docstore.js +12 -12
  102. package/dist/adapters/mysql/resources/docstore.js.map +1 -1
  103. package/dist/adapters/mysql/resources/events.d.ts +2 -2
  104. package/dist/adapters/mysql/resources/events.d.ts.map +1 -1
  105. package/dist/adapters/mysql/resources/events.js +12 -12
  106. package/dist/adapters/mysql/resources/events.js.map +1 -1
  107. package/dist/adapters/mysql/resources/health.d.ts +2 -2
  108. package/dist/adapters/mysql/resources/health.d.ts.map +1 -1
  109. package/dist/adapters/mysql/resources/health.js +36 -32
  110. package/dist/adapters/mysql/resources/health.js.map +1 -1
  111. package/dist/adapters/mysql/resources/index.d.ts +2 -2
  112. package/dist/adapters/mysql/resources/index.js +19 -19
  113. package/dist/adapters/mysql/resources/index.js.map +1 -1
  114. package/dist/adapters/mysql/resources/indexes.d.ts +2 -2
  115. package/dist/adapters/mysql/resources/indexes.d.ts.map +1 -1
  116. package/dist/adapters/mysql/resources/indexes.js +12 -12
  117. package/dist/adapters/mysql/resources/indexes.js.map +1 -1
  118. package/dist/adapters/mysql/resources/innodb.d.ts +2 -2
  119. package/dist/adapters/mysql/resources/innodb.d.ts.map +1 -1
  120. package/dist/adapters/mysql/resources/innodb.js +37 -36
  121. package/dist/adapters/mysql/resources/innodb.js.map +1 -1
  122. package/dist/adapters/mysql/resources/locks.d.ts +2 -2
  123. package/dist/adapters/mysql/resources/locks.d.ts.map +1 -1
  124. package/dist/adapters/mysql/resources/locks.js +14 -14
  125. package/dist/adapters/mysql/resources/locks.js.map +1 -1
  126. package/dist/adapters/mysql/resources/performance.d.ts +2 -2
  127. package/dist/adapters/mysql/resources/performance.d.ts.map +1 -1
  128. package/dist/adapters/mysql/resources/performance.js +30 -29
  129. package/dist/adapters/mysql/resources/performance.js.map +1 -1
  130. package/dist/adapters/mysql/resources/pool.d.ts +2 -2
  131. package/dist/adapters/mysql/resources/pool.d.ts.map +1 -1
  132. package/dist/adapters/mysql/resources/pool.js +9 -9
  133. package/dist/adapters/mysql/resources/pool.js.map +1 -1
  134. package/dist/adapters/mysql/resources/processlist.d.ts +2 -2
  135. package/dist/adapters/mysql/resources/processlist.d.ts.map +1 -1
  136. package/dist/adapters/mysql/resources/processlist.js +9 -9
  137. package/dist/adapters/mysql/resources/processlist.js.map +1 -1
  138. package/dist/adapters/mysql/resources/replication.d.ts +2 -2
  139. package/dist/adapters/mysql/resources/replication.d.ts.map +1 -1
  140. package/dist/adapters/mysql/resources/replication.js +42 -35
  141. package/dist/adapters/mysql/resources/replication.js.map +1 -1
  142. package/dist/adapters/mysql/resources/schema.d.ts +2 -2
  143. package/dist/adapters/mysql/resources/schema.d.ts.map +1 -1
  144. package/dist/adapters/mysql/resources/schema.js +8 -8
  145. package/dist/adapters/mysql/resources/schema.js.map +1 -1
  146. package/dist/adapters/mysql/resources/spatial.d.ts +2 -2
  147. package/dist/adapters/mysql/resources/spatial.d.ts.map +1 -1
  148. package/dist/adapters/mysql/resources/spatial.js +9 -9
  149. package/dist/adapters/mysql/resources/spatial.js.map +1 -1
  150. package/dist/adapters/mysql/resources/status.d.ts +2 -2
  151. package/dist/adapters/mysql/resources/status.d.ts.map +1 -1
  152. package/dist/adapters/mysql/resources/status.js +10 -10
  153. package/dist/adapters/mysql/resources/status.js.map +1 -1
  154. package/dist/adapters/mysql/resources/sysschema.d.ts +2 -2
  155. package/dist/adapters/mysql/resources/sysschema.d.ts.map +1 -1
  156. package/dist/adapters/mysql/resources/sysschema.js +10 -10
  157. package/dist/adapters/mysql/resources/sysschema.js.map +1 -1
  158. package/dist/adapters/mysql/resources/tables.d.ts +2 -2
  159. package/dist/adapters/mysql/resources/tables.d.ts.map +1 -1
  160. package/dist/adapters/mysql/resources/tables.js +8 -8
  161. package/dist/adapters/mysql/resources/tables.js.map +1 -1
  162. package/dist/adapters/mysql/resources/variables.d.ts +2 -2
  163. package/dist/adapters/mysql/resources/variables.d.ts.map +1 -1
  164. package/dist/adapters/mysql/resources/variables.js +10 -10
  165. package/dist/adapters/mysql/resources/variables.js.map +1 -1
  166. package/dist/adapters/mysql/tools/admin/backup.d.ts +2 -2
  167. package/dist/adapters/mysql/tools/admin/backup.d.ts.map +1 -1
  168. package/dist/adapters/mysql/tools/admin/backup.js +191 -99
  169. package/dist/adapters/mysql/tools/admin/backup.js.map +1 -1
  170. package/dist/adapters/mysql/tools/admin/index.d.ts +2 -2
  171. package/dist/adapters/mysql/tools/admin/index.js +6 -6
  172. package/dist/adapters/mysql/tools/admin/index.js.map +1 -1
  173. package/dist/adapters/mysql/tools/admin/maintenance.d.ts +2 -2
  174. package/dist/adapters/mysql/tools/admin/maintenance.d.ts.map +1 -1
  175. package/dist/adapters/mysql/tools/admin/maintenance.js +93 -62
  176. package/dist/adapters/mysql/tools/admin/maintenance.js.map +1 -1
  177. package/dist/adapters/mysql/tools/admin/monitoring.d.ts +2 -2
  178. package/dist/adapters/mysql/tools/admin/monitoring.d.ts.map +1 -1
  179. package/dist/adapters/mysql/tools/admin/monitoring.js +215 -79
  180. package/dist/adapters/mysql/tools/admin/monitoring.js.map +1 -1
  181. package/dist/adapters/mysql/tools/cluster/group-replication.d.ts +2 -2
  182. package/dist/adapters/mysql/tools/cluster/group-replication.d.ts.map +1 -1
  183. package/dist/adapters/mysql/tools/cluster/group-replication.js +90 -74
  184. package/dist/adapters/mysql/tools/cluster/group-replication.js.map +1 -1
  185. package/dist/adapters/mysql/tools/cluster/index.d.ts +2 -2
  186. package/dist/adapters/mysql/tools/cluster/index.js +3 -3
  187. package/dist/adapters/mysql/tools/cluster/index.js.map +1 -1
  188. package/dist/adapters/mysql/tools/cluster/innodb-cluster.d.ts +2 -2
  189. package/dist/adapters/mysql/tools/cluster/innodb-cluster.d.ts.map +1 -1
  190. package/dist/adapters/mysql/tools/cluster/innodb-cluster.js +204 -97
  191. package/dist/adapters/mysql/tools/cluster/innodb-cluster.js.map +1 -1
  192. package/dist/adapters/mysql/tools/core.d.ts +2 -2
  193. package/dist/adapters/mysql/tools/core.d.ts.map +1 -1
  194. package/dist/adapters/mysql/tools/core.js +205 -97
  195. package/dist/adapters/mysql/tools/core.js.map +1 -1
  196. package/dist/adapters/mysql/tools/docstore.d.ts +2 -2
  197. package/dist/adapters/mysql/tools/docstore.d.ts.map +1 -1
  198. package/dist/adapters/mysql/tools/docstore.js +252 -117
  199. package/dist/adapters/mysql/tools/docstore.js.map +1 -1
  200. package/dist/adapters/mysql/tools/events.d.ts +2 -2
  201. package/dist/adapters/mysql/tools/events.d.ts.map +1 -1
  202. package/dist/adapters/mysql/tools/events.js +219 -108
  203. package/dist/adapters/mysql/tools/events.js.map +1 -1
  204. package/dist/adapters/mysql/tools/index.d.ts +19 -19
  205. package/dist/adapters/mysql/tools/index.d.ts.map +1 -1
  206. package/dist/adapters/mysql/tools/index.js +19 -19
  207. package/dist/adapters/mysql/tools/index.js.map +1 -1
  208. package/dist/adapters/mysql/tools/json/core.d.ts +2 -2
  209. package/dist/adapters/mysql/tools/json/core.d.ts.map +1 -1
  210. package/dist/adapters/mysql/tools/json/core.js +221 -127
  211. package/dist/adapters/mysql/tools/json/core.js.map +1 -1
  212. package/dist/adapters/mysql/tools/json/enhanced.d.ts +2 -2
  213. package/dist/adapters/mysql/tools/json/enhanced.d.ts.map +1 -1
  214. package/dist/adapters/mysql/tools/json/enhanced.js +274 -163
  215. package/dist/adapters/mysql/tools/json/enhanced.js.map +1 -1
  216. package/dist/adapters/mysql/tools/json/helpers.d.ts +2 -2
  217. package/dist/adapters/mysql/tools/json/helpers.d.ts.map +1 -1
  218. package/dist/adapters/mysql/tools/json/helpers.js +134 -56
  219. package/dist/adapters/mysql/tools/json/helpers.js.map +1 -1
  220. package/dist/adapters/mysql/tools/json/index.d.ts +2 -2
  221. package/dist/adapters/mysql/tools/json/index.js +6 -6
  222. package/dist/adapters/mysql/tools/json/index.js.map +1 -1
  223. package/dist/adapters/mysql/tools/partitioning.d.ts +2 -2
  224. package/dist/adapters/mysql/tools/partitioning.js +143 -59
  225. package/dist/adapters/mysql/tools/partitioning.js.map +1 -1
  226. package/dist/adapters/mysql/tools/performance/analysis.d.ts +2 -2
  227. package/dist/adapters/mysql/tools/performance/analysis.d.ts.map +1 -1
  228. package/dist/adapters/mysql/tools/performance/analysis.js +122 -86
  229. package/dist/adapters/mysql/tools/performance/analysis.js.map +1 -1
  230. package/dist/adapters/mysql/tools/performance/index.d.ts +2 -2
  231. package/dist/adapters/mysql/tools/performance/index.js +4 -4
  232. package/dist/adapters/mysql/tools/performance/index.js.map +1 -1
  233. package/dist/adapters/mysql/tools/performance/optimization.d.ts +3 -3
  234. package/dist/adapters/mysql/tools/performance/optimization.d.ts.map +1 -1
  235. package/dist/adapters/mysql/tools/performance/optimization.js +195 -73
  236. package/dist/adapters/mysql/tools/performance/optimization.js.map +1 -1
  237. package/dist/adapters/mysql/tools/proxysql.d.ts +2 -2
  238. package/dist/adapters/mysql/tools/proxysql.d.ts.map +1 -1
  239. package/dist/adapters/mysql/tools/proxysql.js +213 -125
  240. package/dist/adapters/mysql/tools/proxysql.js.map +1 -1
  241. package/dist/adapters/mysql/tools/replication.d.ts +2 -2
  242. package/dist/adapters/mysql/tools/replication.d.ts.map +1 -1
  243. package/dist/adapters/mysql/tools/replication.js +117 -66
  244. package/dist/adapters/mysql/tools/replication.js.map +1 -1
  245. package/dist/adapters/mysql/tools/roles.d.ts +2 -2
  246. package/dist/adapters/mysql/tools/roles.d.ts.map +1 -1
  247. package/dist/adapters/mysql/tools/roles.js +276 -84
  248. package/dist/adapters/mysql/tools/roles.js.map +1 -1
  249. package/dist/adapters/mysql/tools/router.d.ts +2 -2
  250. package/dist/adapters/mysql/tools/router.d.ts.map +1 -1
  251. package/dist/adapters/mysql/tools/router.js +174 -109
  252. package/dist/adapters/mysql/tools/router.js.map +1 -1
  253. package/dist/adapters/mysql/tools/schema/constraints.d.ts +2 -2
  254. package/dist/adapters/mysql/tools/schema/constraints.d.ts.map +1 -1
  255. package/dist/adapters/mysql/tools/schema/constraints.js +24 -15
  256. package/dist/adapters/mysql/tools/schema/constraints.js.map +1 -1
  257. package/dist/adapters/mysql/tools/schema/index.d.ts +2 -2
  258. package/dist/adapters/mysql/tools/schema/index.d.ts.map +1 -1
  259. package/dist/adapters/mysql/tools/schema/index.js +7 -7
  260. package/dist/adapters/mysql/tools/schema/index.js.map +1 -1
  261. package/dist/adapters/mysql/tools/schema/management.d.ts +2 -2
  262. package/dist/adapters/mysql/tools/schema/management.d.ts.map +1 -1
  263. package/dist/adapters/mysql/tools/schema/management.js +99 -42
  264. package/dist/adapters/mysql/tools/schema/management.js.map +1 -1
  265. package/dist/adapters/mysql/tools/schema/routines.d.ts +2 -2
  266. package/dist/adapters/mysql/tools/schema/routines.d.ts.map +1 -1
  267. package/dist/adapters/mysql/tools/schema/routines.js +36 -19
  268. package/dist/adapters/mysql/tools/schema/routines.js.map +1 -1
  269. package/dist/adapters/mysql/tools/schema/scheduled_events.d.ts +2 -2
  270. package/dist/adapters/mysql/tools/schema/scheduled_events.d.ts.map +1 -1
  271. package/dist/adapters/mysql/tools/schema/scheduled_events.js +26 -13
  272. package/dist/adapters/mysql/tools/schema/scheduled_events.js.map +1 -1
  273. package/dist/adapters/mysql/tools/schema/triggers.d.ts +2 -2
  274. package/dist/adapters/mysql/tools/schema/triggers.d.ts.map +1 -1
  275. package/dist/adapters/mysql/tools/schema/triggers.js +24 -13
  276. package/dist/adapters/mysql/tools/schema/triggers.js.map +1 -1
  277. package/dist/adapters/mysql/tools/schema/views.d.ts +2 -2
  278. package/dist/adapters/mysql/tools/schema/views.d.ts.map +1 -1
  279. package/dist/adapters/mysql/tools/schema/views.js +59 -28
  280. package/dist/adapters/mysql/tools/schema/views.js.map +1 -1
  281. package/dist/adapters/mysql/tools/security/audit.d.ts +2 -2
  282. package/dist/adapters/mysql/tools/security/audit.d.ts.map +1 -1
  283. package/dist/adapters/mysql/tools/security/audit.js +61 -55
  284. package/dist/adapters/mysql/tools/security/audit.js.map +1 -1
  285. package/dist/adapters/mysql/tools/security/data-protection.d.ts +2 -2
  286. package/dist/adapters/mysql/tools/security/data-protection.d.ts.map +1 -1
  287. package/dist/adapters/mysql/tools/security/data-protection.js +188 -80
  288. package/dist/adapters/mysql/tools/security/data-protection.js.map +1 -1
  289. package/dist/adapters/mysql/tools/security/encryption.d.ts +2 -2
  290. package/dist/adapters/mysql/tools/security/encryption.d.ts.map +1 -1
  291. package/dist/adapters/mysql/tools/security/encryption.js +86 -67
  292. package/dist/adapters/mysql/tools/security/encryption.js.map +1 -1
  293. package/dist/adapters/mysql/tools/security/index.d.ts +2 -2
  294. package/dist/adapters/mysql/tools/security/index.js +4 -4
  295. package/dist/adapters/mysql/tools/security/index.js.map +1 -1
  296. package/dist/adapters/mysql/tools/shell/backup.d.ts +1 -1
  297. package/dist/adapters/mysql/tools/shell/backup.d.ts.map +1 -1
  298. package/dist/adapters/mysql/tools/shell/backup.js +122 -63
  299. package/dist/adapters/mysql/tools/shell/backup.js.map +1 -1
  300. package/dist/adapters/mysql/tools/shell/common.d.ts.map +1 -1
  301. package/dist/adapters/mysql/tools/shell/common.js +34 -36
  302. package/dist/adapters/mysql/tools/shell/common.js.map +1 -1
  303. package/dist/adapters/mysql/tools/shell/data-transfer.d.ts +1 -1
  304. package/dist/adapters/mysql/tools/shell/data-transfer.d.ts.map +1 -1
  305. package/dist/adapters/mysql/tools/shell/data-transfer.js +125 -69
  306. package/dist/adapters/mysql/tools/shell/data-transfer.js.map +1 -1
  307. package/dist/adapters/mysql/tools/shell/index.d.ts +2 -2
  308. package/dist/adapters/mysql/tools/shell/index.js +6 -6
  309. package/dist/adapters/mysql/tools/shell/index.js.map +1 -1
  310. package/dist/adapters/mysql/tools/shell/info.d.ts +1 -1
  311. package/dist/adapters/mysql/tools/shell/info.d.ts.map +1 -1
  312. package/dist/adapters/mysql/tools/shell/info.js +12 -12
  313. package/dist/adapters/mysql/tools/shell/info.js.map +1 -1
  314. package/dist/adapters/mysql/tools/shell/restore.d.ts +1 -1
  315. package/dist/adapters/mysql/tools/shell/restore.d.ts.map +1 -1
  316. package/dist/adapters/mysql/tools/shell/restore.js +77 -42
  317. package/dist/adapters/mysql/tools/shell/restore.js.map +1 -1
  318. package/dist/adapters/mysql/tools/shell/utilities.d.ts +1 -1
  319. package/dist/adapters/mysql/tools/shell/utilities.d.ts.map +1 -1
  320. package/dist/adapters/mysql/tools/shell/utilities.js +42 -18
  321. package/dist/adapters/mysql/tools/shell/utilities.js.map +1 -1
  322. package/dist/adapters/mysql/tools/spatial/geometry.d.ts +2 -2
  323. package/dist/adapters/mysql/tools/spatial/geometry.d.ts.map +1 -1
  324. package/dist/adapters/mysql/tools/spatial/geometry.js +85 -46
  325. package/dist/adapters/mysql/tools/spatial/geometry.js.map +1 -1
  326. package/dist/adapters/mysql/tools/spatial/index.d.ts +2 -2
  327. package/dist/adapters/mysql/tools/spatial/index.js +5 -5
  328. package/dist/adapters/mysql/tools/spatial/index.js.map +1 -1
  329. package/dist/adapters/mysql/tools/spatial/operations.d.ts +2 -2
  330. package/dist/adapters/mysql/tools/spatial/operations.d.ts.map +1 -1
  331. package/dist/adapters/mysql/tools/spatial/operations.js +167 -106
  332. package/dist/adapters/mysql/tools/spatial/operations.js.map +1 -1
  333. package/dist/adapters/mysql/tools/spatial/queries.d.ts +2 -2
  334. package/dist/adapters/mysql/tools/spatial/queries.d.ts.map +1 -1
  335. package/dist/adapters/mysql/tools/spatial/queries.js +144 -100
  336. package/dist/adapters/mysql/tools/spatial/queries.js.map +1 -1
  337. package/dist/adapters/mysql/tools/spatial/setup.d.ts +2 -2
  338. package/dist/adapters/mysql/tools/spatial/setup.d.ts.map +1 -1
  339. package/dist/adapters/mysql/tools/spatial/setup.js +104 -34
  340. package/dist/adapters/mysql/tools/spatial/setup.js.map +1 -1
  341. package/dist/adapters/mysql/tools/stats/comparative.d.ts +2 -2
  342. package/dist/adapters/mysql/tools/stats/comparative.d.ts.map +1 -1
  343. package/dist/adapters/mysql/tools/stats/comparative.js +159 -107
  344. package/dist/adapters/mysql/tools/stats/comparative.js.map +1 -1
  345. package/dist/adapters/mysql/tools/stats/descriptive.d.ts +2 -2
  346. package/dist/adapters/mysql/tools/stats/descriptive.d.ts.map +1 -1
  347. package/dist/adapters/mysql/tools/stats/descriptive.js +268 -205
  348. package/dist/adapters/mysql/tools/stats/descriptive.js.map +1 -1
  349. package/dist/adapters/mysql/tools/stats/index.d.ts +2 -2
  350. package/dist/adapters/mysql/tools/stats/index.js +3 -3
  351. package/dist/adapters/mysql/tools/stats/index.js.map +1 -1
  352. package/dist/adapters/mysql/tools/sysschema/activity.d.ts +2 -2
  353. package/dist/adapters/mysql/tools/sysschema/activity.d.ts.map +1 -1
  354. package/dist/adapters/mysql/tools/sysschema/activity.js +23 -23
  355. package/dist/adapters/mysql/tools/sysschema/activity.js.map +1 -1
  356. package/dist/adapters/mysql/tools/sysschema/index.d.ts +2 -2
  357. package/dist/adapters/mysql/tools/sysschema/index.js +4 -4
  358. package/dist/adapters/mysql/tools/sysschema/index.js.map +1 -1
  359. package/dist/adapters/mysql/tools/sysschema/performance.d.ts +2 -2
  360. package/dist/adapters/mysql/tools/sysschema/performance.d.ts.map +1 -1
  361. package/dist/adapters/mysql/tools/sysschema/performance.js +58 -43
  362. package/dist/adapters/mysql/tools/sysschema/performance.js.map +1 -1
  363. package/dist/adapters/mysql/tools/sysschema/resources.d.ts +2 -2
  364. package/dist/adapters/mysql/tools/sysschema/resources.d.ts.map +1 -1
  365. package/dist/adapters/mysql/tools/sysschema/resources.js +53 -33
  366. package/dist/adapters/mysql/tools/sysschema/resources.js.map +1 -1
  367. package/dist/adapters/mysql/tools/text/fulltext.d.ts +4 -3
  368. package/dist/adapters/mysql/tools/text/fulltext.d.ts.map +1 -1
  369. package/dist/adapters/mysql/tools/text/fulltext.js +211 -54
  370. package/dist/adapters/mysql/tools/text/fulltext.js.map +1 -1
  371. package/dist/adapters/mysql/tools/text/index.d.ts +3 -3
  372. package/dist/adapters/mysql/tools/text/index.d.ts.map +1 -1
  373. package/dist/adapters/mysql/tools/text/index.js +6 -5
  374. package/dist/adapters/mysql/tools/text/index.js.map +1 -1
  375. package/dist/adapters/mysql/tools/text/processing.d.ts +2 -2
  376. package/dist/adapters/mysql/tools/text/processing.d.ts.map +1 -1
  377. package/dist/adapters/mysql/tools/text/processing.js +191 -103
  378. package/dist/adapters/mysql/tools/text/processing.js.map +1 -1
  379. package/dist/adapters/mysql/tools/transactions.d.ts +2 -2
  380. package/dist/adapters/mysql/tools/transactions.js +156 -79
  381. package/dist/adapters/mysql/tools/transactions.js.map +1 -1
  382. package/dist/adapters/mysql/types/proxysql-types.d.ts +7 -2
  383. package/dist/adapters/mysql/types/proxysql-types.d.ts.map +1 -1
  384. package/dist/adapters/mysql/types/proxysql-types.js +52 -30
  385. package/dist/adapters/mysql/types/proxysql-types.js.map +1 -1
  386. package/dist/adapters/mysql/types/router-types.d.ts +1 -1
  387. package/dist/adapters/mysql/types/router-types.js +17 -17
  388. package/dist/adapters/mysql/types/router-types.js.map +1 -1
  389. package/dist/adapters/mysql/types/shell-types.d.ts +1 -2
  390. package/dist/adapters/mysql/types/shell-types.d.ts.map +1 -1
  391. package/dist/adapters/mysql/types/shell-types.js +255 -82
  392. package/dist/adapters/mysql/types/shell-types.js.map +1 -1
  393. package/dist/adapters/mysql/types.d.ts +8 -2
  394. package/dist/adapters/mysql/types.d.ts.map +1 -1
  395. package/dist/adapters/mysql/types.js +269 -128
  396. package/dist/adapters/mysql/types.js.map +1 -1
  397. package/dist/auth/AuthorizationServerDiscovery.d.ts +1 -1
  398. package/dist/auth/AuthorizationServerDiscovery.d.ts.map +1 -1
  399. package/dist/auth/AuthorizationServerDiscovery.js +16 -14
  400. package/dist/auth/AuthorizationServerDiscovery.js.map +1 -1
  401. package/dist/auth/OAuthResourceServer.d.ts +1 -1
  402. package/dist/auth/OAuthResourceServer.d.ts.map +1 -1
  403. package/dist/auth/OAuthResourceServer.js +4 -4
  404. package/dist/auth/OAuthResourceServer.js.map +1 -1
  405. package/dist/auth/TokenValidator.d.ts +1 -1
  406. package/dist/auth/TokenValidator.d.ts.map +1 -1
  407. package/dist/auth/TokenValidator.js +30 -20
  408. package/dist/auth/TokenValidator.js.map +1 -1
  409. package/dist/auth/errors.d.ts.map +1 -1
  410. package/dist/auth/errors.js +24 -24
  411. package/dist/auth/errors.js.map +1 -1
  412. package/dist/auth/index.d.ts +7 -7
  413. package/dist/auth/index.d.ts.map +1 -1
  414. package/dist/auth/index.js +6 -6
  415. package/dist/auth/index.js.map +1 -1
  416. package/dist/auth/middleware.d.ts +2 -2
  417. package/dist/auth/middleware.d.ts.map +1 -1
  418. package/dist/auth/middleware.js +28 -24
  419. package/dist/auth/middleware.js.map +1 -1
  420. package/dist/auth/scopes.d.ts +2 -2
  421. package/dist/auth/scopes.d.ts.map +1 -1
  422. package/dist/auth/scopes.js +22 -16
  423. package/dist/auth/scopes.js.map +1 -1
  424. package/dist/auth/types.d.ts +2 -2
  425. package/dist/auth/types.d.ts.map +1 -1
  426. package/dist/cli/args.d.ts +1 -1
  427. package/dist/cli/args.d.ts.map +1 -1
  428. package/dist/cli/args.js +70 -68
  429. package/dist/cli/args.js.map +1 -1
  430. package/dist/cli.d.ts +1 -1
  431. package/dist/cli.d.ts.map +1 -1
  432. package/dist/cli.js +44 -34
  433. package/dist/cli.js.map +1 -1
  434. package/dist/constants/ServerInstructions.d.ts +2 -2
  435. package/dist/constants/ServerInstructions.d.ts.map +1 -1
  436. package/dist/constants/ServerInstructions.js +228 -36
  437. package/dist/constants/ServerInstructions.js.map +1 -1
  438. package/dist/filtering/ToolConstants.d.ts +6 -6
  439. package/dist/filtering/ToolConstants.d.ts.map +1 -1
  440. package/dist/filtering/ToolConstants.js +229 -208
  441. package/dist/filtering/ToolConstants.js.map +1 -1
  442. package/dist/filtering/ToolFilter.d.ts +2 -2
  443. package/dist/filtering/ToolFilter.d.ts.map +1 -1
  444. package/dist/filtering/ToolFilter.js +35 -36
  445. package/dist/filtering/ToolFilter.js.map +1 -1
  446. package/dist/index.d.ts +9 -9
  447. package/dist/index.d.ts.map +1 -1
  448. package/dist/index.js +7 -7
  449. package/dist/index.js.map +1 -1
  450. package/dist/logging/McpLogging.d.ts +2 -2
  451. package/dist/logging/McpLogging.d.ts.map +1 -1
  452. package/dist/logging/McpLogging.js +16 -13
  453. package/dist/logging/McpLogging.js.map +1 -1
  454. package/dist/logging/index.d.ts +1 -1
  455. package/dist/logging/index.js +1 -1
  456. package/dist/pool/ConnectionPool.d.ts +3 -3
  457. package/dist/pool/ConnectionPool.d.ts.map +1 -1
  458. package/dist/pool/ConnectionPool.js +30 -26
  459. package/dist/pool/ConnectionPool.js.map +1 -1
  460. package/dist/progress/ProgressReporter.d.ts +1 -1
  461. package/dist/progress/ProgressReporter.d.ts.map +1 -1
  462. package/dist/progress/ProgressReporter.js +5 -5
  463. package/dist/progress/ProgressReporter.js.map +1 -1
  464. package/dist/progress/index.d.ts +1 -1
  465. package/dist/progress/index.d.ts.map +1 -1
  466. package/dist/progress/index.js +1 -1
  467. package/dist/progress/index.js.map +1 -1
  468. package/dist/server/McpServer.d.ts +3 -3
  469. package/dist/server/McpServer.d.ts.map +1 -1
  470. package/dist/server/McpServer.js +58 -53
  471. package/dist/server/McpServer.js.map +1 -1
  472. package/dist/transports/http.d.ts +3 -3
  473. package/dist/transports/http.d.ts.map +1 -1
  474. package/dist/transports/http.js +36 -33
  475. package/dist/transports/http.js.map +1 -1
  476. package/dist/transports/index.d.ts +1 -1
  477. package/dist/transports/index.d.ts.map +1 -1
  478. package/dist/transports/index.js +1 -1
  479. package/dist/transports/index.js.map +1 -1
  480. package/dist/types/index.d.ts +6 -6
  481. package/dist/types/index.d.ts.map +1 -1
  482. package/dist/types/index.js +1 -1
  483. package/dist/types/index.js.map +1 -1
  484. package/dist/types/modules/database.d.ts +1 -1
  485. package/dist/types/modules/database.d.ts.map +1 -1
  486. package/dist/types/modules/errors.d.ts.map +1 -1
  487. package/dist/types/modules/errors.js +15 -15
  488. package/dist/types/modules/errors.js.map +1 -1
  489. package/dist/types/modules/oauth.d.ts +1 -1
  490. package/dist/types/modules/oauth.d.ts.map +1 -1
  491. package/dist/types/modules/query.d.ts +8 -8
  492. package/dist/types/modules/query.d.ts.map +1 -1
  493. package/dist/types/modules/server.d.ts +3 -3
  494. package/dist/types/modules/server.d.ts.map +1 -1
  495. package/dist/types/modules/tools.d.ts +6 -6
  496. package/dist/types/modules/tools.d.ts.map +1 -1
  497. package/dist/utils/logger.d.ts +2 -2
  498. package/dist/utils/logger.d.ts.map +1 -1
  499. package/dist/utils/logger.js +58 -55
  500. package/dist/utils/logger.js.map +1 -1
  501. package/dist/utils/promptGenerator.d.ts +1 -1
  502. package/dist/utils/promptGenerator.d.ts.map +1 -1
  503. package/dist/utils/promptGenerator.js +24 -16
  504. package/dist/utils/promptGenerator.js.map +1 -1
  505. package/dist/utils/validators.d.ts +21 -2
  506. package/dist/utils/validators.d.ts.map +1 -1
  507. package/dist/utils/validators.js +101 -13
  508. package/dist/utils/validators.js.map +1 -1
  509. package/eslint.config.js +117 -81
  510. package/package.json +61 -64
  511. package/releases/release-notes.md +32 -26
  512. package/releases/v2.0.0-release-notes.md +99 -51
  513. package/releases/v2.1.0-release-notes.md +14 -5
  514. package/releases/v2.2.0-release-notes.md +239 -0
  515. package/server.json +1 -1
  516. package/src/__tests__/cli.test.ts +302 -247
  517. package/src/__tests__/index.test.ts +21 -21
  518. package/src/__tests__/mocks/adapter.ts +204 -163
  519. package/src/__tests__/mocks/index.ts +30 -23
  520. package/src/__tests__/mocks/mysql.ts +94 -84
  521. package/src/__tests__/perf.test.ts +207 -203
  522. package/src/__tests__/performance.test.ts +173 -164
  523. package/src/__tests__/setup.ts +26 -21
  524. package/src/adapters/DatabaseAdapter.ts +386 -340
  525. package/src/adapters/__tests__/DatabaseAdapter.test.ts +455 -377
  526. package/src/adapters/mysql/MySQLAdapter.ts +550 -486
  527. package/src/adapters/mysql/SchemaManager.ts +251 -208
  528. package/src/adapters/mysql/__tests__/MySQLAdapter.integration.test.ts +150 -147
  529. package/src/adapters/mysql/__tests__/MySQLAdapter.test.ts +590 -477
  530. package/src/adapters/mysql/__tests__/SchemaManager.test.ts +196 -154
  531. package/src/adapters/mysql/index.ts +2 -2
  532. package/src/adapters/mysql/prompts/__tests__/indexTuning.test.ts +33 -26
  533. package/src/adapters/mysql/prompts/__tests__/prompts.test.ts +277 -239
  534. package/src/adapters/mysql/prompts/backupStrategy.ts +29 -17
  535. package/src/adapters/mysql/prompts/clusterSetup.ts +11 -10
  536. package/src/adapters/mysql/prompts/docstoreSetup.ts +10 -10
  537. package/src/adapters/mysql/prompts/eventScheduler.ts +10 -10
  538. package/src/adapters/mysql/prompts/healthCheck.ts +20 -15
  539. package/src/adapters/mysql/prompts/index.ts +194 -144
  540. package/src/adapters/mysql/prompts/indexTuning.ts +22 -17
  541. package/src/adapters/mysql/prompts/mysqlshSetup.ts +11 -11
  542. package/src/adapters/mysql/prompts/proxysqlSetup.ts +10 -10
  543. package/src/adapters/mysql/prompts/replicationSetup.ts +24 -16
  544. package/src/adapters/mysql/prompts/routerSetup.ts +10 -10
  545. package/src/adapters/mysql/prompts/spatialSetup.ts +10 -10
  546. package/src/adapters/mysql/prompts/sysSchema.ts +11 -10
  547. package/src/adapters/mysql/resources/__tests__/capabilities.test.ts +69 -47
  548. package/src/adapters/mysql/resources/__tests__/cluster.test.ts +163 -104
  549. package/src/adapters/mysql/resources/__tests__/docstore.test.ts +88 -81
  550. package/src/adapters/mysql/resources/__tests__/events.test.ts +94 -83
  551. package/src/adapters/mysql/resources/__tests__/health.test.ts +131 -91
  552. package/src/adapters/mysql/resources/__tests__/indexes.test.ts +125 -102
  553. package/src/adapters/mysql/resources/__tests__/innodb.test.ts +86 -62
  554. package/src/adapters/mysql/resources/__tests__/locks.test.ts +142 -104
  555. package/src/adapters/mysql/resources/__tests__/performance.test.ts +81 -58
  556. package/src/adapters/mysql/resources/__tests__/pool.test.ts +45 -40
  557. package/src/adapters/mysql/resources/__tests__/processlist.test.ts +39 -23
  558. package/src/adapters/mysql/resources/__tests__/replication.test.ts +265 -211
  559. package/src/adapters/mysql/resources/__tests__/resources.test.ts +121 -109
  560. package/src/adapters/mysql/resources/__tests__/schema.test.ts +29 -23
  561. package/src/adapters/mysql/resources/__tests__/spatial.test.ts +58 -45
  562. package/src/adapters/mysql/resources/__tests__/status.test.ts +62 -45
  563. package/src/adapters/mysql/resources/__tests__/sysschema.test.ts +99 -60
  564. package/src/adapters/mysql/resources/__tests__/tables.test.ts +41 -32
  565. package/src/adapters/mysql/resources/__tests__/variables.test.ts +77 -49
  566. package/src/adapters/mysql/resources/capabilities.ts +59 -42
  567. package/src/adapters/mysql/resources/cluster.ts +58 -49
  568. package/src/adapters/mysql/resources/docstore.ts +46 -41
  569. package/src/adapters/mysql/resources/events.ts +37 -31
  570. package/src/adapters/mysql/resources/health.ts +98 -74
  571. package/src/adapters/mysql/resources/index.ts +46 -46
  572. package/src/adapters/mysql/resources/indexes.ts +66 -51
  573. package/src/adapters/mysql/resources/innodb.ts +98 -81
  574. package/src/adapters/mysql/resources/locks.ts +43 -40
  575. package/src/adapters/mysql/resources/performance.ts +80 -67
  576. package/src/adapters/mysql/resources/pool.ts +23 -20
  577. package/src/adapters/mysql/resources/processlist.ts +23 -18
  578. package/src/adapters/mysql/resources/replication.ts +124 -105
  579. package/src/adapters/mysql/resources/schema.ts +23 -18
  580. package/src/adapters/mysql/resources/spatial.ts +31 -26
  581. package/src/adapters/mysql/resources/status.ts +27 -22
  582. package/src/adapters/mysql/resources/sysschema.ts +41 -36
  583. package/src/adapters/mysql/resources/tables.ts +23 -18
  584. package/src/adapters/mysql/resources/variables.ts +27 -22
  585. package/src/adapters/mysql/tools/__tests__/cluster.test.ts +419 -311
  586. package/src/adapters/mysql/tools/__tests__/core.test.ts +633 -382
  587. package/src/adapters/mysql/tools/__tests__/docstore.test.ts +782 -413
  588. package/src/adapters/mysql/tools/__tests__/events.test.ts +752 -486
  589. package/src/adapters/mysql/tools/__tests__/json_core.test.ts +326 -259
  590. package/src/adapters/mysql/tools/__tests__/json_enhanced.test.ts +452 -352
  591. package/src/adapters/mysql/tools/__tests__/json_helpers.test.ts +169 -136
  592. package/src/adapters/mysql/tools/__tests__/proxysql.test.ts +576 -340
  593. package/src/adapters/mysql/tools/__tests__/replication.test.ts +697 -393
  594. package/src/adapters/mysql/tools/__tests__/roles.test.ts +423 -166
  595. package/src/adapters/mysql/tools/__tests__/router.test.ts +644 -540
  596. package/src/adapters/mysql/tools/__tests__/security.test.ts +708 -422
  597. package/src/adapters/mysql/tools/__tests__/security_injection.test.ts +246 -173
  598. package/src/adapters/mysql/tools/__tests__/security_integration.test.ts +244 -205
  599. package/src/adapters/mysql/tools/__tests__/spatial.test.ts +413 -300
  600. package/src/adapters/mysql/tools/__tests__/spatial_handler.test.ts +503 -150
  601. package/src/adapters/mysql/tools/__tests__/stats.test.ts +861 -553
  602. package/src/adapters/mysql/tools/__tests__/transactions.test.ts +454 -263
  603. package/src/adapters/mysql/tools/admin/__tests__/backup.test.ts +612 -372
  604. package/src/adapters/mysql/tools/admin/__tests__/maintenance.test.ts +550 -257
  605. package/src/adapters/mysql/tools/admin/__tests__/monitoring.test.ts +549 -352
  606. package/src/adapters/mysql/tools/admin/backup.ts +334 -215
  607. package/src/adapters/mysql/tools/admin/index.ts +46 -46
  608. package/src/adapters/mysql/tools/admin/maintenance.ts +176 -130
  609. package/src/adapters/mysql/tools/admin/monitoring.ts +373 -199
  610. package/src/adapters/mysql/tools/cluster/__tests__/group-replication.test.ts +200 -186
  611. package/src/adapters/mysql/tools/cluster/__tests__/innodb-cluster.test.ts +364 -95
  612. package/src/adapters/mysql/tools/cluster/group-replication.ts +218 -183
  613. package/src/adapters/mysql/tools/cluster/index.ts +27 -27
  614. package/src/adapters/mysql/tools/cluster/innodb-cluster.ts +392 -251
  615. package/src/adapters/mysql/tools/core.ts +408 -285
  616. package/src/adapters/mysql/tools/docstore.ts +478 -276
  617. package/src/adapters/mysql/tools/events.ts +425 -285
  618. package/src/adapters/mysql/tools/index.ts +31 -20
  619. package/src/adapters/mysql/tools/json/__tests__/core.test.ts +456 -199
  620. package/src/adapters/mysql/tools/json/__tests__/enhanced.test.ts +554 -298
  621. package/src/adapters/mysql/tools/json/__tests__/helpers.test.ts +150 -74
  622. package/src/adapters/mysql/tools/json/__tests__/validation.test.ts +106 -72
  623. package/src/adapters/mysql/tools/json/core.ts +364 -263
  624. package/src/adapters/mysql/tools/json/enhanced.ts +368 -229
  625. package/src/adapters/mysql/tools/json/helpers.ts +195 -113
  626. package/src/adapters/mysql/tools/json/index.ts +46 -46
  627. package/src/adapters/mysql/tools/partitioning.ts +242 -140
  628. package/src/adapters/mysql/tools/performance/__tests__/analysis.test.ts +439 -247
  629. package/src/adapters/mysql/tools/performance/__tests__/optimization.test.ts +401 -179
  630. package/src/adapters/mysql/tools/performance/analysis.ts +263 -213
  631. package/src/adapters/mysql/tools/performance/index.ts +33 -33
  632. package/src/adapters/mysql/tools/performance/optimization.ts +407 -190
  633. package/src/adapters/mysql/tools/proxysql.ts +462 -320
  634. package/src/adapters/mysql/tools/replication.ts +233 -180
  635. package/src/adapters/mysql/tools/roles.ts +429 -171
  636. package/src/adapters/mysql/tools/router.ts +410 -292
  637. package/src/adapters/mysql/tools/schema/__tests__/constraints.test.ts +157 -82
  638. package/src/adapters/mysql/tools/schema/__tests__/management.test.ts +226 -101
  639. package/src/adapters/mysql/tools/schema/__tests__/routines.test.ts +80 -35
  640. package/src/adapters/mysql/tools/schema/__tests__/scheduled_events.test.ts +59 -40
  641. package/src/adapters/mysql/tools/schema/__tests__/triggers.test.ts +65 -40
  642. package/src/adapters/mysql/tools/schema/__tests__/views.test.ts +146 -77
  643. package/src/adapters/mysql/tools/schema/constraints.ts +61 -42
  644. package/src/adapters/mysql/tools/schema/index.ts +26 -35
  645. package/src/adapters/mysql/tools/schema/management.ts +167 -94
  646. package/src/adapters/mysql/tools/schema/routines.ts +79 -48
  647. package/src/adapters/mysql/tools/schema/scheduled_events.ts +53 -32
  648. package/src/adapters/mysql/tools/schema/triggers.ts +51 -33
  649. package/src/adapters/mysql/tools/schema/views.ts +96 -53
  650. package/src/adapters/mysql/tools/security/__tests__/audit.test.ts +216 -158
  651. package/src/adapters/mysql/tools/security/__tests__/data-protection.test.ts +154 -98
  652. package/src/adapters/mysql/tools/security/__tests__/encryption.test.ts +174 -138
  653. package/src/adapters/mysql/tools/security/audit.ts +213 -193
  654. package/src/adapters/mysql/tools/security/data-protection.ts +336 -198
  655. package/src/adapters/mysql/tools/security/encryption.ts +233 -193
  656. package/src/adapters/mysql/tools/security/index.ts +26 -26
  657. package/src/adapters/mysql/tools/shell/__tests__/backup.test.ts +443 -283
  658. package/src/adapters/mysql/tools/shell/__tests__/common.test.ts +138 -131
  659. package/src/adapters/mysql/tools/shell/__tests__/data-transfer.test.ts +516 -353
  660. package/src/adapters/mysql/tools/shell/__tests__/info.test.ts +65 -63
  661. package/src/adapters/mysql/tools/shell/__tests__/restore.test.ts +233 -174
  662. package/src/adapters/mysql/tools/shell/__tests__/utilities.test.ts +161 -143
  663. package/src/adapters/mysql/tools/shell/backup.ts +280 -188
  664. package/src/adapters/mysql/tools/shell/common.ts +173 -155
  665. package/src/adapters/mysql/tools/shell/data-transfer.ts +286 -200
  666. package/src/adapters/mysql/tools/shell/index.ts +29 -29
  667. package/src/adapters/mysql/tools/shell/info.ts +35 -31
  668. package/src/adapters/mysql/tools/shell/restore.ts +176 -124
  669. package/src/adapters/mysql/tools/shell/utilities.ts +86 -45
  670. package/src/adapters/mysql/tools/spatial/__tests__/geometry.test.ts +129 -89
  671. package/src/adapters/mysql/tools/spatial/__tests__/operations.test.ts +255 -148
  672. package/src/adapters/mysql/tools/spatial/__tests__/queries.test.ts +340 -245
  673. package/src/adapters/mysql/tools/spatial/geometry.ts +120 -74
  674. package/src/adapters/mysql/tools/spatial/index.ts +33 -33
  675. package/src/adapters/mysql/tools/spatial/operations.ts +243 -171
  676. package/src/adapters/mysql/tools/spatial/queries.ts +221 -165
  677. package/src/adapters/mysql/tools/spatial/setup.ts +157 -73
  678. package/src/adapters/mysql/tools/stats/__tests__/comparative.test.ts +188 -130
  679. package/src/adapters/mysql/tools/stats/comparative.ts +261 -187
  680. package/src/adapters/mysql/tools/stats/descriptive.ts +414 -322
  681. package/src/adapters/mysql/tools/stats/index.ts +23 -23
  682. package/src/adapters/mysql/tools/sysschema/__tests__/activity.test.ts +99 -71
  683. package/src/adapters/mysql/tools/sysschema/__tests__/io_summary_fix.test.ts +21 -18
  684. package/src/adapters/mysql/tools/sysschema/__tests__/performance.test.ts +149 -108
  685. package/src/adapters/mysql/tools/sysschema/__tests__/resources.test.ts +222 -104
  686. package/src/adapters/mysql/tools/sysschema/activity.ts +72 -64
  687. package/src/adapters/mysql/tools/sysschema/index.ts +24 -24
  688. package/src/adapters/mysql/tools/sysschema/performance.ts +140 -115
  689. package/src/adapters/mysql/tools/sysschema/resources.ts +135 -99
  690. package/src/adapters/mysql/tools/text/__tests__/fulltext.test.ts +526 -145
  691. package/src/adapters/mysql/tools/text/__tests__/processing.test.ts +452 -193
  692. package/src/adapters/mysql/tools/text/fulltext.ts +319 -123
  693. package/src/adapters/mysql/tools/text/index.ts +32 -30
  694. package/src/adapters/mysql/tools/text/processing.ts +310 -212
  695. package/src/adapters/mysql/tools/transactions.ts +284 -197
  696. package/src/adapters/mysql/types/__tests__/shell-types.test.ts +204 -202
  697. package/src/adapters/mysql/types/proxysql-types.ts +142 -109
  698. package/src/adapters/mysql/types/router-types.ts +36 -36
  699. package/src/adapters/mysql/types/shell-types.ts +280 -94
  700. package/src/adapters/mysql/types.ts +288 -131
  701. package/src/auth/AuthorizationServerDiscovery.ts +127 -113
  702. package/src/auth/OAuthResourceServer.ts +67 -62
  703. package/src/auth/TokenValidator.ts +136 -119
  704. package/src/auth/__tests__/AuthorizationServerDiscovery.test.ts +295 -274
  705. package/src/auth/__tests__/OAuthResourceServer.test.ts +180 -169
  706. package/src/auth/__tests__/TokenValidator.test.ts +297 -285
  707. package/src/auth/__tests__/errors.test.ts +180 -175
  708. package/src/auth/__tests__/middleware.test.ts +281 -247
  709. package/src/auth/__tests__/scopes.test.ts +136 -134
  710. package/src/auth/errors.ts +56 -56
  711. package/src/auth/index.ts +23 -17
  712. package/src/auth/middleware.ts +161 -139
  713. package/src/auth/scopes.ts +133 -107
  714. package/src/auth/types.ts +155 -155
  715. package/src/cli/__tests__/args.test.ts +241 -216
  716. package/src/cli/__tests__/main.test.ts +191 -158
  717. package/src/cli/args.ts +271 -258
  718. package/src/cli.ts +150 -127
  719. package/src/constants/ServerInstructions.ts +271 -70
  720. package/src/filtering/ToolConstants.ts +287 -266
  721. package/src/filtering/ToolFilter.ts +239 -220
  722. package/src/filtering/__tests__/ToolFilter.test.ts +442 -396
  723. package/src/index.ts +62 -57
  724. package/src/logging/McpLogging.ts +128 -119
  725. package/src/logging/__tests__/McpLogging.test.ts +223 -223
  726. package/src/logging/index.ts +2 -2
  727. package/src/pool/ConnectionPool.ts +260 -246
  728. package/src/pool/__tests__/ConnectionPool.test.ts +452 -418
  729. package/src/progress/ProgressReporter.ts +123 -123
  730. package/src/progress/__tests__/ProgressReporter.test.ts +235 -229
  731. package/src/progress/index.ts +6 -2
  732. package/src/server/McpServer.ts +305 -285
  733. package/src/server/__tests__/McpServer.test.ts +333 -291
  734. package/src/transports/__tests__/http.test.ts +658 -527
  735. package/src/transports/http.ts +237 -203
  736. package/src/transports/index.ts +6 -2
  737. package/src/types/__tests__/types.test.ts +197 -193
  738. package/src/types/index.ts +49 -37
  739. package/src/types/modules/database.ts +65 -63
  740. package/src/types/modules/errors.ts +41 -37
  741. package/src/types/modules/oauth.ts +46 -46
  742. package/src/types/modules/query.ts +75 -75
  743. package/src/types/modules/server.ts +18 -18
  744. package/src/types/modules/tools.ts +181 -178
  745. package/src/utils/__tests__/logger.test.ts +424 -414
  746. package/src/utils/__tests__/validators.test.ts +250 -165
  747. package/src/utils/logger.ts +343 -330
  748. package/src/utils/promptGenerator.ts +58 -47
  749. package/src/utils/validators.ts +217 -91
  750. package/tsconfig.json +41 -50
  751. package/vitest.config.ts +23 -23
@@ -1,188 +1,261 @@
1
1
  /**
2
2
  * Security Injection Tests
3
- *
3
+ *
4
4
  * Tests that verify SQL injection prevention across tool handlers.
5
5
  */
6
6
 
7
- import { describe, it, expect, beforeEach, vi } from 'vitest';
8
- import { createMockMySQLAdapter, createMockRequestContext } from '../../../../__tests__/mocks/index.js';
9
- import { getBackupTools } from '../admin/index.js';
10
- import { getJsonTools } from '../json/index.js';
11
- import type { MySQLAdapter } from '../../MySQLAdapter.js';
7
+ import { describe, it, expect, beforeEach, vi } from "vitest";
8
+ import {
9
+ createMockMySQLAdapter,
10
+ createMockRequestContext,
11
+ } from "../../../../__tests__/mocks/index.js";
12
+ import { getBackupTools } from "../admin/index.js";
13
+ import { getJsonTools } from "../json/index.js";
14
+ import type { MySQLAdapter } from "../../MySQLAdapter.js";
15
+
16
+ describe("Security: SQL Injection Prevention", () => {
17
+ let mockAdapter: ReturnType<typeof createMockMySQLAdapter>;
18
+ let mockContext: ReturnType<typeof createMockRequestContext>;
19
+
20
+ beforeEach(() => {
21
+ vi.clearAllMocks();
22
+ mockAdapter = createMockMySQLAdapter();
23
+ mockContext = createMockRequestContext();
24
+ });
25
+
26
+ describe("Backup Tools - mysql_export_table", () => {
27
+ it("should reject table name with SQL injection", async () => {
28
+ const tools = getBackupTools(mockAdapter as unknown as MySQLAdapter);
29
+ const exportTool = tools.find((t) => t.name === "mysql_export_table")!;
30
+
31
+ await expect(
32
+ exportTool.handler(
33
+ {
34
+ table: "users; DROP TABLE users",
35
+ format: "SQL",
36
+ },
37
+ mockContext,
38
+ ),
39
+ ).rejects.toThrow("Invalid table name");
40
+ });
41
+
42
+ it("should reject table name starting with number", async () => {
43
+ const tools = getBackupTools(mockAdapter as unknown as MySQLAdapter);
44
+ const exportTool = tools.find((t) => t.name === "mysql_export_table")!;
45
+
46
+ await expect(
47
+ exportTool.handler(
48
+ {
49
+ table: "123users",
50
+ format: "SQL",
51
+ },
52
+ mockContext,
53
+ ),
54
+ ).rejects.toThrow("Invalid table name");
55
+ });
56
+
57
+ it("should reject WHERE clause with stacked queries", async () => {
58
+ const tools = getBackupTools(mockAdapter as unknown as MySQLAdapter);
59
+ const exportTool = tools.find((t) => t.name === "mysql_export_table")!;
60
+
61
+ await expect(
62
+ exportTool.handler(
63
+ {
64
+ table: "users",
65
+ format: "SQL",
66
+ where: "1=1; DROP TABLE users",
67
+ },
68
+ mockContext,
69
+ ),
70
+ ).rejects.toThrow("dangerous SQL patterns");
71
+ });
72
+
73
+ it("should reject WHERE clause with UNION attack", async () => {
74
+ const tools = getBackupTools(mockAdapter as unknown as MySQLAdapter);
75
+ const exportTool = tools.find((t) => t.name === "mysql_export_table")!;
76
+
77
+ await expect(
78
+ exportTool.handler(
79
+ {
80
+ table: "users",
81
+ format: "SQL",
82
+ where: "1=1 UNION SELECT password FROM admin",
83
+ },
84
+ mockContext,
85
+ ),
86
+ ).rejects.toThrow("dangerous SQL patterns");
87
+ });
88
+
89
+ it("should reject WHERE clause with timing attack (SLEEP)", async () => {
90
+ const tools = getBackupTools(mockAdapter as unknown as MySQLAdapter);
91
+ const exportTool = tools.find((t) => t.name === "mysql_export_table")!;
92
+
93
+ await expect(
94
+ exportTool.handler(
95
+ {
96
+ table: "users",
97
+ format: "SQL",
98
+ where: "1=1 AND SLEEP(5)",
99
+ },
100
+ mockContext,
101
+ ),
102
+ ).rejects.toThrow("dangerous SQL patterns");
103
+ });
104
+
105
+ it("should reject WHERE clause with unbalanced quotes", async () => {
106
+ const tools = getBackupTools(mockAdapter as unknown as MySQLAdapter);
107
+ const exportTool = tools.find((t) => t.name === "mysql_export_table")!;
108
+
109
+ await expect(
110
+ exportTool.handler(
111
+ {
112
+ table: "users",
113
+ format: "SQL",
114
+ where: "id = 1 OR '1'='1",
115
+ },
116
+ mockContext,
117
+ ),
118
+ ).rejects.toThrow("unbalanced");
119
+ });
120
+
121
+ it("should accept valid table and WHERE", async () => {
122
+ mockAdapter.executeReadQuery.mockResolvedValue({ rows: [] });
123
+
124
+ const tools = getBackupTools(mockAdapter as unknown as MySQLAdapter);
125
+ const exportTool = tools.find((t) => t.name === "mysql_export_table")!;
126
+
127
+ await expect(
128
+ exportTool.handler(
129
+ {
130
+ table: "users",
131
+ format: "SQL",
132
+ where: "status = 'active' AND created_at > '2024-01-01'",
133
+ },
134
+ mockContext,
135
+ ),
136
+ ).resolves.toBeDefined();
137
+ });
138
+ });
139
+
140
+ describe("Backup Tools - mysql_import_data", () => {
141
+ it("should reject table name with injection", async () => {
142
+ const tools = getBackupTools(mockAdapter as unknown as MySQLAdapter);
143
+ const importTool = tools.find((t) => t.name === "mysql_import_data")!;
144
+
145
+ await expect(
146
+ importTool.handler(
147
+ {
148
+ table: "users`; DROP TABLE users; --",
149
+ data: [{ id: 1, name: "test" }],
150
+ },
151
+ mockContext,
152
+ ),
153
+ ).rejects.toThrow("Invalid table name");
154
+ });
12
155
 
13
- describe('Security: SQL Injection Prevention', () => {
14
- let mockAdapter: ReturnType<typeof createMockMySQLAdapter>;
15
- let mockContext: ReturnType<typeof createMockRequestContext>;
156
+ it("should reject column name with injection", async () => {
157
+ const tools = getBackupTools(mockAdapter as unknown as MySQLAdapter);
158
+ const importTool = tools.find((t) => t.name === "mysql_import_data")!;
159
+
160
+ await expect(
161
+ importTool.handler(
162
+ {
163
+ table: "users",
164
+ data: [{ "id; DROP TABLE": 1 }],
165
+ },
166
+ mockContext,
167
+ ),
168
+ ).rejects.toThrow("Invalid column name");
169
+ });
170
+ });
171
+
172
+ describe("JSON Tools - Injection Prevention", () => {
173
+ it("should reject table name with injection in mysql_json_extract", async () => {
174
+ const tools = getJsonTools(mockAdapter as unknown as MySQLAdapter);
175
+ const extractTool = tools.find((t) => t.name === "mysql_json_extract")!;
176
+
177
+ await expect(
178
+ extractTool.handler(
179
+ {
180
+ table: "users'; DROP TABLE users; --",
181
+ column: "data",
182
+ path: "$.name",
183
+ },
184
+ mockContext,
185
+ ),
186
+ ).rejects.toThrow("Invalid table name");
187
+ });
16
188
 
17
- beforeEach(() => {
18
- vi.clearAllMocks();
19
- mockAdapter = createMockMySQLAdapter();
20
- mockContext = createMockRequestContext();
189
+ it("should reject column name with injection in mysql_json_extract", async () => {
190
+ const tools = getJsonTools(mockAdapter as unknown as MySQLAdapter);
191
+ const extractTool = tools.find((t) => t.name === "mysql_json_extract")!;
192
+
193
+ await expect(
194
+ extractTool.handler(
195
+ {
196
+ table: "users",
197
+ column: "data`; DELETE FROM users; --",
198
+ path: "$.name",
199
+ },
200
+ mockContext,
201
+ ),
202
+ ).rejects.toThrow("Invalid column name");
21
203
  });
22
204
 
23
- describe('Backup Tools - mysql_export_table', () => {
24
- it('should reject table name with SQL injection', async () => {
25
- const tools = getBackupTools(mockAdapter as unknown as MySQLAdapter);
26
- const exportTool = tools.find(t => t.name === 'mysql_export_table')!;
27
-
28
- await expect(exportTool.handler({
29
- table: 'users; DROP TABLE users',
30
- format: 'SQL'
31
- }, mockContext)).rejects.toThrow('Invalid table name');
32
- });
33
-
34
- it('should reject table name starting with number', async () => {
35
- const tools = getBackupTools(mockAdapter as unknown as MySQLAdapter);
36
- const exportTool = tools.find(t => t.name === 'mysql_export_table')!;
37
-
38
- await expect(exportTool.handler({
39
- table: '123users',
40
- format: 'SQL'
41
- }, mockContext)).rejects.toThrow('Invalid table name');
42
- });
43
-
44
- it('should reject WHERE clause with stacked queries', async () => {
45
- const tools = getBackupTools(mockAdapter as unknown as MySQLAdapter);
46
- const exportTool = tools.find(t => t.name === 'mysql_export_table')!;
47
-
48
- await expect(exportTool.handler({
49
- table: 'users',
50
- format: 'SQL',
51
- where: '1=1; DROP TABLE users'
52
- }, mockContext)).rejects.toThrow('dangerous SQL patterns');
53
- });
54
-
55
- it('should reject WHERE clause with UNION attack', async () => {
56
- const tools = getBackupTools(mockAdapter as unknown as MySQLAdapter);
57
- const exportTool = tools.find(t => t.name === 'mysql_export_table')!;
58
-
59
- await expect(exportTool.handler({
60
- table: 'users',
61
- format: 'SQL',
62
- where: "1=1 UNION SELECT password FROM admin"
63
- }, mockContext)).rejects.toThrow('dangerous SQL patterns');
64
- });
65
-
66
- it('should reject WHERE clause with timing attack (SLEEP)', async () => {
67
- const tools = getBackupTools(mockAdapter as unknown as MySQLAdapter);
68
- const exportTool = tools.find(t => t.name === 'mysql_export_table')!;
69
-
70
- await expect(exportTool.handler({
71
- table: 'users',
72
- format: 'SQL',
73
- where: '1=1 AND SLEEP(5)'
74
- }, mockContext)).rejects.toThrow('dangerous SQL patterns');
75
- });
76
-
77
- it('should reject WHERE clause with unbalanced quotes', async () => {
78
- const tools = getBackupTools(mockAdapter as unknown as MySQLAdapter);
79
- const exportTool = tools.find(t => t.name === 'mysql_export_table')!;
80
-
81
- await expect(exportTool.handler({
82
- table: 'users',
83
- format: 'SQL',
84
- where: "id = 1 OR '1'='1"
85
- }, mockContext)).rejects.toThrow('unbalanced');
86
- });
87
-
88
- it('should accept valid table and WHERE', async () => {
89
- mockAdapter.executeReadQuery.mockResolvedValue({ rows: [] });
90
-
91
- const tools = getBackupTools(mockAdapter as unknown as MySQLAdapter);
92
- const exportTool = tools.find(t => t.name === 'mysql_export_table')!;
93
-
94
- await expect(exportTool.handler({
95
- table: 'users',
96
- format: 'SQL',
97
- where: "status = 'active' AND created_at > '2024-01-01'"
98
- }, mockContext)).resolves.toBeDefined();
99
- });
205
+ it("should reject WHERE clause with BENCHMARK attack in mysql_json_set", async () => {
206
+ const tools = getJsonTools(mockAdapter as unknown as MySQLAdapter);
207
+ const setTool = tools.find((t) => t.name === "mysql_json_set")!;
208
+
209
+ await expect(
210
+ setTool.handler(
211
+ {
212
+ table: "users",
213
+ column: "data",
214
+ path: "$.name",
215
+ value: "test",
216
+ where: "id = 1 AND BENCHMARK(1000000, SHA1('test'))",
217
+ },
218
+ mockContext,
219
+ ),
220
+ ).rejects.toThrow("dangerous SQL patterns");
100
221
  });
101
222
 
102
- describe('Backup Tools - mysql_import_data', () => {
103
- it('should reject table name with injection', async () => {
104
- const tools = getBackupTools(mockAdapter as unknown as MySQLAdapter);
105
- const importTool = tools.find(t => t.name === 'mysql_import_data')!;
106
-
107
- await expect(importTool.handler({
108
- table: 'users`; DROP TABLE users; --',
109
- data: [{ id: 1, name: 'test' }]
110
- }, mockContext)).rejects.toThrow('Invalid table name');
111
- });
112
-
113
- it('should reject column name with injection', async () => {
114
- const tools = getBackupTools(mockAdapter as unknown as MySQLAdapter);
115
- const importTool = tools.find(t => t.name === 'mysql_import_data')!;
116
-
117
- await expect(importTool.handler({
118
- table: 'users',
119
- data: [{ 'id; DROP TABLE': 1 }]
120
- }, mockContext)).rejects.toThrow('Invalid column name');
121
- });
223
+ it("should reject WHERE clause with file operation attack", async () => {
224
+ const tools = getJsonTools(mockAdapter as unknown as MySQLAdapter);
225
+ const setTool = tools.find((t) => t.name === "mysql_json_set")!;
226
+
227
+ await expect(
228
+ setTool.handler(
229
+ {
230
+ table: "users",
231
+ column: "data",
232
+ path: "$.name",
233
+ value: "test",
234
+ where: "id = 1 INTO OUTFILE '/tmp/pwned'",
235
+ },
236
+ mockContext,
237
+ ),
238
+ ).rejects.toThrow("dangerous SQL patterns");
122
239
  });
123
240
 
124
- describe('JSON Tools - Injection Prevention', () => {
125
- it('should reject table name with injection in mysql_json_extract', async () => {
126
- const tools = getJsonTools(mockAdapter as unknown as MySQLAdapter);
127
- const extractTool = tools.find(t => t.name === 'mysql_json_extract')!;
128
-
129
- await expect(extractTool.handler({
130
- table: "users'; DROP TABLE users; --",
131
- column: 'data',
132
- path: '$.name'
133
- }, mockContext)).rejects.toThrow('Invalid table name');
134
- });
135
-
136
- it('should reject column name with injection in mysql_json_extract', async () => {
137
- const tools = getJsonTools(mockAdapter as unknown as MySQLAdapter);
138
- const extractTool = tools.find(t => t.name === 'mysql_json_extract')!;
139
-
140
- await expect(extractTool.handler({
141
- table: 'users',
142
- column: 'data`; DELETE FROM users; --',
143
- path: '$.name'
144
- }, mockContext)).rejects.toThrow('Invalid column name');
145
- });
146
-
147
- it('should reject WHERE clause with BENCHMARK attack in mysql_json_set', async () => {
148
- const tools = getJsonTools(mockAdapter as unknown as MySQLAdapter);
149
- const setTool = tools.find(t => t.name === 'mysql_json_set')!;
150
-
151
- await expect(setTool.handler({
152
- table: 'users',
153
- column: 'data',
154
- path: '$.name',
155
- value: 'test',
156
- where: "id = 1 AND BENCHMARK(1000000, SHA1('test'))"
157
- }, mockContext)).rejects.toThrow('dangerous SQL patterns');
158
- });
159
-
160
- it('should reject WHERE clause with file operation attack', async () => {
161
- const tools = getJsonTools(mockAdapter as unknown as MySQLAdapter);
162
- const setTool = tools.find(t => t.name === 'mysql_json_set')!;
163
-
164
- await expect(setTool.handler({
165
- table: 'users',
166
- column: 'data',
167
- path: '$.name',
168
- value: 'test',
169
- where: "id = 1 INTO OUTFILE '/tmp/pwned'"
170
- }, mockContext)).rejects.toThrow('dangerous SQL patterns');
171
- });
172
-
173
- it('should accept valid inputs in mysql_json_set', async () => {
174
- mockAdapter.executeWriteQuery.mockResolvedValue({ rowsAffected: 1 });
175
-
176
- const tools = getJsonTools(mockAdapter as unknown as MySQLAdapter);
177
- const setTool = tools.find(t => t.name === 'mysql_json_set')!;
178
-
179
- await expect(setTool.handler({
180
- table: 'users',
181
- column: 'preferences',
182
- path: '$.theme',
183
- value: '"dark"',
184
- where: "id = 123"
185
- }, mockContext)).resolves.toBeDefined();
186
- });
241
+ it("should accept valid inputs in mysql_json_set", async () => {
242
+ mockAdapter.executeWriteQuery.mockResolvedValue({ rowsAffected: 1 });
243
+
244
+ const tools = getJsonTools(mockAdapter as unknown as MySQLAdapter);
245
+ const setTool = tools.find((t) => t.name === "mysql_json_set")!;
246
+
247
+ await expect(
248
+ setTool.handler(
249
+ {
250
+ table: "users",
251
+ column: "preferences",
252
+ path: "$.theme",
253
+ value: '"dark"',
254
+ where: "id = 123",
255
+ },
256
+ mockContext,
257
+ ),
258
+ ).resolves.toBeDefined();
187
259
  });
260
+ });
188
261
  });