@neverinfamous/mysql-mcp 2.1.0 → 2.3.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.
- package/.env.example +14 -4
- package/.github/ISSUE_TEMPLATE/bug_report.md +7 -1
- package/.github/ISSUE_TEMPLATE/feature_request.md +6 -1
- package/.github/dependabot.yml +15 -0
- package/.github/pull_request_template.md +5 -0
- package/.github/workflows/codeql.yml +41 -42
- package/.github/workflows/docker-publish.yml +247 -210
- package/.github/workflows/publish-npm.yml +16 -6
- package/CHANGELOG.md +357 -22
- package/CODE_MODE.md +245 -0
- package/CODE_OF_CONDUCT.md +2 -0
- package/DOCKER_README.md +250 -161
- package/Dockerfile +2 -2
- package/README.md +239 -182
- package/SECURITY.md +0 -8
- package/VERSION +1 -1
- package/dist/__tests__/mocks/adapter.d.ts +3 -3
- package/dist/__tests__/mocks/adapter.d.ts.map +1 -1
- package/dist/__tests__/mocks/adapter.js +51 -35
- package/dist/__tests__/mocks/adapter.js.map +1 -1
- package/dist/__tests__/mocks/index.d.ts +4 -4
- package/dist/__tests__/mocks/index.d.ts.map +1 -1
- package/dist/__tests__/mocks/index.js +2 -2
- package/dist/__tests__/mocks/index.js.map +1 -1
- package/dist/__tests__/mocks/mysql.d.ts +2 -2
- package/dist/__tests__/mocks/mysql.d.ts.map +1 -1
- package/dist/__tests__/mocks/mysql.js +14 -14
- package/dist/__tests__/mocks/mysql.js.map +1 -1
- package/dist/__tests__/setup.d.ts.map +1 -1
- package/dist/__tests__/setup.js +7 -7
- package/dist/__tests__/setup.js.map +1 -1
- package/dist/adapters/DatabaseAdapter.d.ts +2 -2
- package/dist/adapters/DatabaseAdapter.d.ts.map +1 -1
- package/dist/adapters/DatabaseAdapter.js +69 -40
- package/dist/adapters/DatabaseAdapter.js.map +1 -1
- package/dist/adapters/mysql/MySQLAdapter.d.ts +14 -4
- package/dist/adapters/mysql/MySQLAdapter.d.ts.map +1 -1
- package/dist/adapters/mysql/MySQLAdapter.js +152 -116
- package/dist/adapters/mysql/MySQLAdapter.js.map +1 -1
- package/dist/adapters/mysql/SchemaManager.d.ts +1 -1
- package/dist/adapters/mysql/SchemaManager.d.ts.map +1 -1
- package/dist/adapters/mysql/SchemaManager.js +76 -56
- package/dist/adapters/mysql/SchemaManager.js.map +1 -1
- package/dist/adapters/mysql/index.d.ts +2 -2
- package/dist/adapters/mysql/index.js +2 -2
- package/dist/adapters/mysql/prompts/backupStrategy.d.ts +1 -1
- package/dist/adapters/mysql/prompts/backupStrategy.d.ts.map +1 -1
- package/dist/adapters/mysql/prompts/backupStrategy.js +21 -9
- package/dist/adapters/mysql/prompts/backupStrategy.js.map +1 -1
- package/dist/adapters/mysql/prompts/clusterSetup.d.ts +1 -1
- package/dist/adapters/mysql/prompts/clusterSetup.d.ts.map +1 -1
- package/dist/adapters/mysql/prompts/clusterSetup.js +3 -3
- package/dist/adapters/mysql/prompts/clusterSetup.js.map +1 -1
- package/dist/adapters/mysql/prompts/docstoreSetup.d.ts +1 -1
- package/dist/adapters/mysql/prompts/docstoreSetup.js +3 -3
- package/dist/adapters/mysql/prompts/docstoreSetup.js.map +1 -1
- package/dist/adapters/mysql/prompts/eventScheduler.d.ts +1 -1
- package/dist/adapters/mysql/prompts/eventScheduler.js +3 -3
- package/dist/adapters/mysql/prompts/eventScheduler.js.map +1 -1
- package/dist/adapters/mysql/prompts/healthCheck.d.ts +1 -1
- package/dist/adapters/mysql/prompts/healthCheck.d.ts.map +1 -1
- package/dist/adapters/mysql/prompts/healthCheck.js +10 -6
- package/dist/adapters/mysql/prompts/healthCheck.js.map +1 -1
- package/dist/adapters/mysql/prompts/index.d.ts +10 -3
- package/dist/adapters/mysql/prompts/index.d.ts.map +1 -1
- package/dist/adapters/mysql/prompts/index.js +106 -63
- package/dist/adapters/mysql/prompts/index.js.map +1 -1
- package/dist/adapters/mysql/prompts/indexTuning.d.ts +1 -1
- package/dist/adapters/mysql/prompts/indexTuning.d.ts.map +1 -1
- package/dist/adapters/mysql/prompts/indexTuning.js +11 -7
- package/dist/adapters/mysql/prompts/indexTuning.js.map +1 -1
- package/dist/adapters/mysql/prompts/mysqlshSetup.d.ts +1 -1
- package/dist/adapters/mysql/prompts/mysqlshSetup.js +4 -4
- package/dist/adapters/mysql/prompts/mysqlshSetup.js.map +1 -1
- package/dist/adapters/mysql/prompts/proxysqlSetup.d.ts +1 -1
- package/dist/adapters/mysql/prompts/proxysqlSetup.js +3 -3
- package/dist/adapters/mysql/prompts/proxysqlSetup.js.map +1 -1
- package/dist/adapters/mysql/prompts/replicationSetup.d.ts +1 -1
- package/dist/adapters/mysql/prompts/replicationSetup.d.ts.map +1 -1
- package/dist/adapters/mysql/prompts/replicationSetup.js +13 -7
- package/dist/adapters/mysql/prompts/replicationSetup.js.map +1 -1
- package/dist/adapters/mysql/prompts/routerSetup.d.ts +1 -1
- package/dist/adapters/mysql/prompts/routerSetup.d.ts.map +1 -1
- package/dist/adapters/mysql/prompts/routerSetup.js +8 -3
- package/dist/adapters/mysql/prompts/routerSetup.js.map +1 -1
- package/dist/adapters/mysql/prompts/spatialSetup.d.ts +1 -1
- package/dist/adapters/mysql/prompts/spatialSetup.js +3 -3
- package/dist/adapters/mysql/prompts/spatialSetup.js.map +1 -1
- package/dist/adapters/mysql/prompts/sysSchema.d.ts +1 -1
- package/dist/adapters/mysql/prompts/sysSchema.d.ts.map +1 -1
- package/dist/adapters/mysql/prompts/sysSchema.js +3 -3
- package/dist/adapters/mysql/prompts/sysSchema.js.map +1 -1
- package/dist/adapters/mysql/resources/capabilities.d.ts +2 -2
- package/dist/adapters/mysql/resources/capabilities.d.ts.map +1 -1
- package/dist/adapters/mysql/resources/capabilities.js +19 -16
- package/dist/adapters/mysql/resources/capabilities.js.map +1 -1
- package/dist/adapters/mysql/resources/cluster.d.ts +2 -2
- package/dist/adapters/mysql/resources/cluster.d.ts.map +1 -1
- package/dist/adapters/mysql/resources/cluster.js +17 -15
- package/dist/adapters/mysql/resources/cluster.js.map +1 -1
- package/dist/adapters/mysql/resources/docstore.d.ts +2 -2
- package/dist/adapters/mysql/resources/docstore.d.ts.map +1 -1
- package/dist/adapters/mysql/resources/docstore.js +12 -12
- package/dist/adapters/mysql/resources/docstore.js.map +1 -1
- package/dist/adapters/mysql/resources/events.d.ts +2 -2
- package/dist/adapters/mysql/resources/events.d.ts.map +1 -1
- package/dist/adapters/mysql/resources/events.js +12 -12
- package/dist/adapters/mysql/resources/events.js.map +1 -1
- package/dist/adapters/mysql/resources/health.d.ts +2 -2
- package/dist/adapters/mysql/resources/health.d.ts.map +1 -1
- package/dist/adapters/mysql/resources/health.js +36 -32
- package/dist/adapters/mysql/resources/health.js.map +1 -1
- package/dist/adapters/mysql/resources/index.d.ts +11 -3
- package/dist/adapters/mysql/resources/index.d.ts.map +1 -1
- package/dist/adapters/mysql/resources/index.js +28 -20
- package/dist/adapters/mysql/resources/index.js.map +1 -1
- package/dist/adapters/mysql/resources/indexes.d.ts +2 -2
- package/dist/adapters/mysql/resources/indexes.d.ts.map +1 -1
- package/dist/adapters/mysql/resources/indexes.js +12 -12
- package/dist/adapters/mysql/resources/indexes.js.map +1 -1
- package/dist/adapters/mysql/resources/innodb.d.ts +2 -2
- package/dist/adapters/mysql/resources/innodb.d.ts.map +1 -1
- package/dist/adapters/mysql/resources/innodb.js +37 -36
- package/dist/adapters/mysql/resources/innodb.js.map +1 -1
- package/dist/adapters/mysql/resources/locks.d.ts +2 -2
- package/dist/adapters/mysql/resources/locks.d.ts.map +1 -1
- package/dist/adapters/mysql/resources/locks.js +14 -14
- package/dist/adapters/mysql/resources/locks.js.map +1 -1
- package/dist/adapters/mysql/resources/performance.d.ts +2 -2
- package/dist/adapters/mysql/resources/performance.d.ts.map +1 -1
- package/dist/adapters/mysql/resources/performance.js +30 -29
- package/dist/adapters/mysql/resources/performance.js.map +1 -1
- package/dist/adapters/mysql/resources/pool.d.ts +2 -2
- package/dist/adapters/mysql/resources/pool.d.ts.map +1 -1
- package/dist/adapters/mysql/resources/pool.js +9 -9
- package/dist/adapters/mysql/resources/pool.js.map +1 -1
- package/dist/adapters/mysql/resources/processlist.d.ts +2 -2
- package/dist/adapters/mysql/resources/processlist.d.ts.map +1 -1
- package/dist/adapters/mysql/resources/processlist.js +9 -9
- package/dist/adapters/mysql/resources/processlist.js.map +1 -1
- package/dist/adapters/mysql/resources/replication.d.ts +2 -2
- package/dist/adapters/mysql/resources/replication.d.ts.map +1 -1
- package/dist/adapters/mysql/resources/replication.js +42 -35
- package/dist/adapters/mysql/resources/replication.js.map +1 -1
- package/dist/adapters/mysql/resources/schema.d.ts +2 -2
- package/dist/adapters/mysql/resources/schema.d.ts.map +1 -1
- package/dist/adapters/mysql/resources/schema.js +8 -8
- package/dist/adapters/mysql/resources/schema.js.map +1 -1
- package/dist/adapters/mysql/resources/spatial.d.ts +2 -2
- package/dist/adapters/mysql/resources/spatial.d.ts.map +1 -1
- package/dist/adapters/mysql/resources/spatial.js +9 -9
- package/dist/adapters/mysql/resources/spatial.js.map +1 -1
- package/dist/adapters/mysql/resources/status.d.ts +2 -2
- package/dist/adapters/mysql/resources/status.d.ts.map +1 -1
- package/dist/adapters/mysql/resources/status.js +10 -10
- package/dist/adapters/mysql/resources/status.js.map +1 -1
- package/dist/adapters/mysql/resources/sysschema.d.ts +2 -2
- package/dist/adapters/mysql/resources/sysschema.d.ts.map +1 -1
- package/dist/adapters/mysql/resources/sysschema.js +10 -10
- package/dist/adapters/mysql/resources/sysschema.js.map +1 -1
- package/dist/adapters/mysql/resources/tables.d.ts +2 -2
- package/dist/adapters/mysql/resources/tables.d.ts.map +1 -1
- package/dist/adapters/mysql/resources/tables.js +8 -8
- package/dist/adapters/mysql/resources/tables.js.map +1 -1
- package/dist/adapters/mysql/resources/variables.d.ts +2 -2
- package/dist/adapters/mysql/resources/variables.d.ts.map +1 -1
- package/dist/adapters/mysql/resources/variables.js +10 -10
- package/dist/adapters/mysql/resources/variables.js.map +1 -1
- package/dist/adapters/mysql/tools/admin/backup.d.ts +2 -2
- package/dist/adapters/mysql/tools/admin/backup.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/admin/backup.js +193 -101
- package/dist/adapters/mysql/tools/admin/backup.js.map +1 -1
- package/dist/adapters/mysql/tools/admin/index.d.ts +2 -2
- package/dist/adapters/mysql/tools/admin/index.js +6 -6
- package/dist/adapters/mysql/tools/admin/index.js.map +1 -1
- package/dist/adapters/mysql/tools/admin/maintenance.d.ts +2 -2
- package/dist/adapters/mysql/tools/admin/maintenance.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/admin/maintenance.js +97 -66
- package/dist/adapters/mysql/tools/admin/maintenance.js.map +1 -1
- package/dist/adapters/mysql/tools/admin/monitoring.d.ts +2 -2
- package/dist/adapters/mysql/tools/admin/monitoring.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/admin/monitoring.js +215 -79
- package/dist/adapters/mysql/tools/admin/monitoring.js.map +1 -1
- package/dist/adapters/mysql/tools/cluster/group-replication.d.ts +2 -2
- package/dist/adapters/mysql/tools/cluster/group-replication.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/cluster/group-replication.js +90 -74
- package/dist/adapters/mysql/tools/cluster/group-replication.js.map +1 -1
- package/dist/adapters/mysql/tools/cluster/index.d.ts +2 -2
- package/dist/adapters/mysql/tools/cluster/index.js +3 -3
- package/dist/adapters/mysql/tools/cluster/index.js.map +1 -1
- package/dist/adapters/mysql/tools/cluster/innodb-cluster.d.ts +2 -2
- package/dist/adapters/mysql/tools/cluster/innodb-cluster.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/cluster/innodb-cluster.js +225 -97
- package/dist/adapters/mysql/tools/cluster/innodb-cluster.js.map +1 -1
- package/dist/adapters/mysql/tools/codemode/index.d.ts +38 -0
- package/dist/adapters/mysql/tools/codemode/index.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/codemode/index.js +203 -0
- package/dist/adapters/mysql/tools/codemode/index.js.map +1 -0
- package/dist/adapters/mysql/tools/core.d.ts +2 -2
- package/dist/adapters/mysql/tools/core.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/core.js +234 -114
- package/dist/adapters/mysql/tools/core.js.map +1 -1
- package/dist/adapters/mysql/tools/docstore.d.ts +2 -2
- package/dist/adapters/mysql/tools/docstore.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/docstore.js +252 -117
- package/dist/adapters/mysql/tools/docstore.js.map +1 -1
- package/dist/adapters/mysql/tools/events.d.ts +2 -2
- package/dist/adapters/mysql/tools/events.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/events.js +236 -113
- package/dist/adapters/mysql/tools/events.js.map +1 -1
- package/dist/adapters/mysql/tools/index.d.ts +19 -19
- package/dist/adapters/mysql/tools/index.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/index.js +19 -19
- package/dist/adapters/mysql/tools/index.js.map +1 -1
- package/dist/adapters/mysql/tools/json/core.d.ts +2 -2
- package/dist/adapters/mysql/tools/json/core.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/json/core.js +225 -131
- package/dist/adapters/mysql/tools/json/core.js.map +1 -1
- package/dist/adapters/mysql/tools/json/enhanced.d.ts +2 -2
- package/dist/adapters/mysql/tools/json/enhanced.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/json/enhanced.js +274 -163
- package/dist/adapters/mysql/tools/json/enhanced.js.map +1 -1
- package/dist/adapters/mysql/tools/json/helpers.d.ts +2 -2
- package/dist/adapters/mysql/tools/json/helpers.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/json/helpers.js +141 -57
- package/dist/adapters/mysql/tools/json/helpers.js.map +1 -1
- package/dist/adapters/mysql/tools/json/index.d.ts +2 -2
- package/dist/adapters/mysql/tools/json/index.js +6 -6
- package/dist/adapters/mysql/tools/json/index.js.map +1 -1
- package/dist/adapters/mysql/tools/partitioning.d.ts +2 -2
- package/dist/adapters/mysql/tools/partitioning.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/partitioning.js +180 -64
- package/dist/adapters/mysql/tools/partitioning.js.map +1 -1
- package/dist/adapters/mysql/tools/performance/analysis.d.ts +2 -2
- package/dist/adapters/mysql/tools/performance/analysis.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/performance/analysis.js +184 -101
- package/dist/adapters/mysql/tools/performance/analysis.js.map +1 -1
- package/dist/adapters/mysql/tools/performance/index.d.ts +2 -2
- package/dist/adapters/mysql/tools/performance/index.js +4 -4
- package/dist/adapters/mysql/tools/performance/index.js.map +1 -1
- package/dist/adapters/mysql/tools/performance/optimization.d.ts +3 -3
- package/dist/adapters/mysql/tools/performance/optimization.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/performance/optimization.js +229 -77
- package/dist/adapters/mysql/tools/performance/optimization.js.map +1 -1
- package/dist/adapters/mysql/tools/proxysql.d.ts +2 -2
- package/dist/adapters/mysql/tools/proxysql.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/proxysql.js +213 -125
- package/dist/adapters/mysql/tools/proxysql.js.map +1 -1
- package/dist/adapters/mysql/tools/replication.d.ts +2 -2
- package/dist/adapters/mysql/tools/replication.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/replication.js +117 -66
- package/dist/adapters/mysql/tools/replication.js.map +1 -1
- package/dist/adapters/mysql/tools/roles.d.ts +2 -2
- package/dist/adapters/mysql/tools/roles.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/roles.js +276 -84
- package/dist/adapters/mysql/tools/roles.js.map +1 -1
- package/dist/adapters/mysql/tools/router.d.ts +2 -2
- package/dist/adapters/mysql/tools/router.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/router.js +174 -109
- package/dist/adapters/mysql/tools/router.js.map +1 -1
- package/dist/adapters/mysql/tools/schema/constraints.d.ts +2 -2
- package/dist/adapters/mysql/tools/schema/constraints.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/schema/constraints.js +24 -15
- package/dist/adapters/mysql/tools/schema/constraints.js.map +1 -1
- package/dist/adapters/mysql/tools/schema/index.d.ts +2 -2
- package/dist/adapters/mysql/tools/schema/index.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/schema/index.js +7 -7
- package/dist/adapters/mysql/tools/schema/index.js.map +1 -1
- package/dist/adapters/mysql/tools/schema/management.d.ts +2 -2
- package/dist/adapters/mysql/tools/schema/management.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/schema/management.js +99 -42
- package/dist/adapters/mysql/tools/schema/management.js.map +1 -1
- package/dist/adapters/mysql/tools/schema/routines.d.ts +2 -2
- package/dist/adapters/mysql/tools/schema/routines.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/schema/routines.js +36 -19
- package/dist/adapters/mysql/tools/schema/routines.js.map +1 -1
- package/dist/adapters/mysql/tools/schema/scheduled_events.d.ts +2 -2
- package/dist/adapters/mysql/tools/schema/scheduled_events.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/schema/scheduled_events.js +26 -13
- package/dist/adapters/mysql/tools/schema/scheduled_events.js.map +1 -1
- package/dist/adapters/mysql/tools/schema/triggers.d.ts +2 -2
- package/dist/adapters/mysql/tools/schema/triggers.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/schema/triggers.js +24 -13
- package/dist/adapters/mysql/tools/schema/triggers.js.map +1 -1
- package/dist/adapters/mysql/tools/schema/views.d.ts +2 -2
- package/dist/adapters/mysql/tools/schema/views.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/schema/views.js +59 -28
- package/dist/adapters/mysql/tools/schema/views.js.map +1 -1
- package/dist/adapters/mysql/tools/security/audit.d.ts +2 -2
- package/dist/adapters/mysql/tools/security/audit.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/security/audit.js +61 -55
- package/dist/adapters/mysql/tools/security/audit.js.map +1 -1
- package/dist/adapters/mysql/tools/security/data-protection.d.ts +2 -2
- package/dist/adapters/mysql/tools/security/data-protection.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/security/data-protection.js +193 -80
- package/dist/adapters/mysql/tools/security/data-protection.js.map +1 -1
- package/dist/adapters/mysql/tools/security/encryption.d.ts +2 -2
- package/dist/adapters/mysql/tools/security/encryption.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/security/encryption.js +86 -67
- package/dist/adapters/mysql/tools/security/encryption.js.map +1 -1
- package/dist/adapters/mysql/tools/security/index.d.ts +2 -2
- package/dist/adapters/mysql/tools/security/index.js +4 -4
- package/dist/adapters/mysql/tools/security/index.js.map +1 -1
- package/dist/adapters/mysql/tools/shell/backup.d.ts +1 -1
- package/dist/adapters/mysql/tools/shell/backup.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/shell/backup.js +122 -63
- package/dist/adapters/mysql/tools/shell/backup.js.map +1 -1
- package/dist/adapters/mysql/tools/shell/common.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/shell/common.js +61 -37
- package/dist/adapters/mysql/tools/shell/common.js.map +1 -1
- package/dist/adapters/mysql/tools/shell/data-transfer.d.ts +1 -1
- package/dist/adapters/mysql/tools/shell/data-transfer.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/shell/data-transfer.js +125 -69
- package/dist/adapters/mysql/tools/shell/data-transfer.js.map +1 -1
- package/dist/adapters/mysql/tools/shell/index.d.ts +2 -2
- package/dist/adapters/mysql/tools/shell/index.js +6 -6
- package/dist/adapters/mysql/tools/shell/index.js.map +1 -1
- package/dist/adapters/mysql/tools/shell/info.d.ts +1 -1
- package/dist/adapters/mysql/tools/shell/info.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/shell/info.js +12 -12
- package/dist/adapters/mysql/tools/shell/info.js.map +1 -1
- package/dist/adapters/mysql/tools/shell/restore.d.ts +1 -1
- package/dist/adapters/mysql/tools/shell/restore.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/shell/restore.js +128 -43
- package/dist/adapters/mysql/tools/shell/restore.js.map +1 -1
- package/dist/adapters/mysql/tools/shell/utilities.d.ts +1 -1
- package/dist/adapters/mysql/tools/shell/utilities.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/shell/utilities.js +42 -18
- package/dist/adapters/mysql/tools/shell/utilities.js.map +1 -1
- package/dist/adapters/mysql/tools/spatial/geometry.d.ts +2 -2
- package/dist/adapters/mysql/tools/spatial/geometry.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/spatial/geometry.js +85 -46
- package/dist/adapters/mysql/tools/spatial/geometry.js.map +1 -1
- package/dist/adapters/mysql/tools/spatial/index.d.ts +2 -2
- package/dist/adapters/mysql/tools/spatial/index.js +5 -5
- package/dist/adapters/mysql/tools/spatial/index.js.map +1 -1
- package/dist/adapters/mysql/tools/spatial/operations.d.ts +2 -2
- package/dist/adapters/mysql/tools/spatial/operations.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/spatial/operations.js +175 -106
- package/dist/adapters/mysql/tools/spatial/operations.js.map +1 -1
- package/dist/adapters/mysql/tools/spatial/queries.d.ts +2 -2
- package/dist/adapters/mysql/tools/spatial/queries.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/spatial/queries.js +144 -100
- package/dist/adapters/mysql/tools/spatial/queries.js.map +1 -1
- package/dist/adapters/mysql/tools/spatial/setup.d.ts +2 -2
- package/dist/adapters/mysql/tools/spatial/setup.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/spatial/setup.js +122 -34
- package/dist/adapters/mysql/tools/spatial/setup.js.map +1 -1
- package/dist/adapters/mysql/tools/stats/comparative.d.ts +2 -2
- package/dist/adapters/mysql/tools/stats/comparative.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/stats/comparative.js +159 -107
- package/dist/adapters/mysql/tools/stats/comparative.js.map +1 -1
- package/dist/adapters/mysql/tools/stats/descriptive.d.ts +2 -2
- package/dist/adapters/mysql/tools/stats/descriptive.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/stats/descriptive.js +268 -205
- package/dist/adapters/mysql/tools/stats/descriptive.js.map +1 -1
- package/dist/adapters/mysql/tools/stats/index.d.ts +2 -2
- package/dist/adapters/mysql/tools/stats/index.js +3 -3
- package/dist/adapters/mysql/tools/stats/index.js.map +1 -1
- package/dist/adapters/mysql/tools/sysschema/activity.d.ts +2 -2
- package/dist/adapters/mysql/tools/sysschema/activity.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/sysschema/activity.js +23 -23
- package/dist/adapters/mysql/tools/sysschema/activity.js.map +1 -1
- package/dist/adapters/mysql/tools/sysschema/index.d.ts +2 -2
- package/dist/adapters/mysql/tools/sysschema/index.js +4 -4
- package/dist/adapters/mysql/tools/sysschema/index.js.map +1 -1
- package/dist/adapters/mysql/tools/sysschema/performance.d.ts +2 -2
- package/dist/adapters/mysql/tools/sysschema/performance.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/sysschema/performance.js +58 -43
- package/dist/adapters/mysql/tools/sysschema/performance.js.map +1 -1
- package/dist/adapters/mysql/tools/sysschema/resources.d.ts +2 -2
- package/dist/adapters/mysql/tools/sysschema/resources.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/sysschema/resources.js +58 -33
- package/dist/adapters/mysql/tools/sysschema/resources.js.map +1 -1
- package/dist/adapters/mysql/tools/text/fulltext.d.ts +4 -3
- package/dist/adapters/mysql/tools/text/fulltext.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/text/fulltext.js +214 -55
- package/dist/adapters/mysql/tools/text/fulltext.js.map +1 -1
- package/dist/adapters/mysql/tools/text/index.d.ts +3 -3
- package/dist/adapters/mysql/tools/text/index.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/text/index.js +6 -5
- package/dist/adapters/mysql/tools/text/index.js.map +1 -1
- package/dist/adapters/mysql/tools/text/processing.d.ts +2 -2
- package/dist/adapters/mysql/tools/text/processing.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/text/processing.js +175 -122
- package/dist/adapters/mysql/tools/text/processing.js.map +1 -1
- package/dist/adapters/mysql/tools/transactions.d.ts +2 -2
- package/dist/adapters/mysql/tools/transactions.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/transactions.js +162 -85
- package/dist/adapters/mysql/tools/transactions.js.map +1 -1
- package/dist/adapters/mysql/types/proxysql-types.d.ts +7 -2
- package/dist/adapters/mysql/types/proxysql-types.d.ts.map +1 -1
- package/dist/adapters/mysql/types/proxysql-types.js +52 -30
- package/dist/adapters/mysql/types/proxysql-types.js.map +1 -1
- package/dist/adapters/mysql/types/router-types.d.ts +1 -1
- package/dist/adapters/mysql/types/router-types.js +17 -17
- package/dist/adapters/mysql/types/router-types.js.map +1 -1
- package/dist/adapters/mysql/types/shell-types.d.ts +1 -2
- package/dist/adapters/mysql/types/shell-types.d.ts.map +1 -1
- package/dist/adapters/mysql/types/shell-types.js +255 -82
- package/dist/adapters/mysql/types/shell-types.js.map +1 -1
- package/dist/adapters/mysql/types.d.ts +976 -80
- package/dist/adapters/mysql/types.d.ts.map +1 -1
- package/dist/adapters/mysql/types.js +1317 -170
- package/dist/adapters/mysql/types.js.map +1 -1
- package/dist/auth/AuthorizationServerDiscovery.d.ts +1 -1
- package/dist/auth/AuthorizationServerDiscovery.d.ts.map +1 -1
- package/dist/auth/AuthorizationServerDiscovery.js +16 -14
- package/dist/auth/AuthorizationServerDiscovery.js.map +1 -1
- package/dist/auth/OAuthResourceServer.d.ts +1 -1
- package/dist/auth/OAuthResourceServer.d.ts.map +1 -1
- package/dist/auth/OAuthResourceServer.js +4 -4
- package/dist/auth/OAuthResourceServer.js.map +1 -1
- package/dist/auth/TokenValidator.d.ts +1 -1
- package/dist/auth/TokenValidator.d.ts.map +1 -1
- package/dist/auth/TokenValidator.js +30 -20
- package/dist/auth/TokenValidator.js.map +1 -1
- package/dist/auth/errors.d.ts.map +1 -1
- package/dist/auth/errors.js +24 -24
- package/dist/auth/errors.js.map +1 -1
- package/dist/auth/index.d.ts +7 -7
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +6 -6
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/middleware.d.ts +2 -2
- package/dist/auth/middleware.d.ts.map +1 -1
- package/dist/auth/middleware.js +28 -24
- package/dist/auth/middleware.js.map +1 -1
- package/dist/auth/scopes.d.ts +2 -2
- package/dist/auth/scopes.d.ts.map +1 -1
- package/dist/auth/scopes.js +23 -16
- package/dist/auth/scopes.js.map +1 -1
- package/dist/auth/types.d.ts +2 -2
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/cli/args.d.ts +1 -1
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +82 -68
- package/dist/cli/args.js.map +1 -1
- package/dist/cli.d.ts +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +44 -34
- package/dist/cli.js.map +1 -1
- package/dist/codemode/api.d.ts +69 -0
- package/dist/codemode/api.d.ts.map +1 -0
- package/dist/codemode/api.js +1035 -0
- package/dist/codemode/api.js.map +1 -0
- package/dist/codemode/index.d.ts +13 -0
- package/dist/codemode/index.d.ts.map +1 -0
- package/dist/codemode/index.js +17 -0
- package/dist/codemode/index.js.map +1 -0
- package/dist/codemode/sandbox-factory.d.ts +72 -0
- package/dist/codemode/sandbox-factory.d.ts.map +1 -0
- package/dist/codemode/sandbox-factory.js +88 -0
- package/dist/codemode/sandbox-factory.js.map +1 -0
- package/dist/codemode/sandbox.d.ts +96 -0
- package/dist/codemode/sandbox.d.ts.map +1 -0
- package/dist/codemode/sandbox.js +345 -0
- package/dist/codemode/sandbox.js.map +1 -0
- package/dist/codemode/security.d.ts +44 -0
- package/dist/codemode/security.d.ts.map +1 -0
- package/dist/codemode/security.js +149 -0
- package/dist/codemode/security.js.map +1 -0
- package/dist/codemode/types.d.ts +137 -0
- package/dist/codemode/types.d.ts.map +1 -0
- package/dist/codemode/types.js +46 -0
- package/dist/codemode/types.js.map +1 -0
- package/dist/codemode/worker-sandbox.d.ts +82 -0
- package/dist/codemode/worker-sandbox.d.ts.map +1 -0
- package/dist/codemode/worker-sandbox.js +244 -0
- package/dist/codemode/worker-sandbox.js.map +1 -0
- package/dist/codemode/worker-script.d.ts +8 -0
- package/dist/codemode/worker-script.d.ts.map +1 -0
- package/dist/codemode/worker-script.js +113 -0
- package/dist/codemode/worker-script.js.map +1 -0
- package/dist/constants/ServerInstructions.d.ts +2 -2
- package/dist/constants/ServerInstructions.d.ts.map +1 -1
- package/dist/constants/ServerInstructions.js +252 -36
- package/dist/constants/ServerInstructions.js.map +1 -1
- package/dist/filtering/ToolConstants.d.ts +12 -12
- package/dist/filtering/ToolConstants.d.ts.map +1 -1
- package/dist/filtering/ToolConstants.js +253 -214
- package/dist/filtering/ToolConstants.js.map +1 -1
- package/dist/filtering/ToolFilter.d.ts +2 -2
- package/dist/filtering/ToolFilter.d.ts.map +1 -1
- package/dist/filtering/ToolFilter.js +47 -36
- package/dist/filtering/ToolFilter.js.map +1 -1
- package/dist/index.d.ts +9 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -7
- package/dist/index.js.map +1 -1
- package/dist/logging/McpLogging.d.ts +2 -2
- package/dist/logging/McpLogging.d.ts.map +1 -1
- package/dist/logging/McpLogging.js +16 -13
- package/dist/logging/McpLogging.js.map +1 -1
- package/dist/logging/index.d.ts +1 -1
- package/dist/logging/index.js +1 -1
- package/dist/pool/ConnectionPool.d.ts +3 -3
- package/dist/pool/ConnectionPool.d.ts.map +1 -1
- package/dist/pool/ConnectionPool.js +30 -26
- package/dist/pool/ConnectionPool.js.map +1 -1
- package/dist/progress/ProgressReporter.d.ts +1 -1
- package/dist/progress/ProgressReporter.d.ts.map +1 -1
- package/dist/progress/ProgressReporter.js +5 -5
- package/dist/progress/ProgressReporter.js.map +1 -1
- package/dist/progress/index.d.ts +1 -1
- package/dist/progress/index.d.ts.map +1 -1
- package/dist/progress/index.js +1 -1
- package/dist/progress/index.js.map +1 -1
- package/dist/server/McpServer.d.ts +3 -3
- package/dist/server/McpServer.d.ts.map +1 -1
- package/dist/server/McpServer.js +58 -53
- package/dist/server/McpServer.js.map +1 -1
- package/dist/transports/http.d.ts +3 -3
- package/dist/transports/http.d.ts.map +1 -1
- package/dist/transports/http.js +36 -33
- package/dist/transports/http.js.map +1 -1
- package/dist/transports/index.d.ts +1 -1
- package/dist/transports/index.d.ts.map +1 -1
- package/dist/transports/index.js +1 -1
- package/dist/transports/index.js.map +1 -1
- package/dist/types/index.d.ts +6 -6
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/modules/database.d.ts +1 -1
- package/dist/types/modules/database.d.ts.map +1 -1
- package/dist/types/modules/errors.d.ts.map +1 -1
- package/dist/types/modules/errors.js +15 -15
- package/dist/types/modules/errors.js.map +1 -1
- package/dist/types/modules/oauth.d.ts +1 -1
- package/dist/types/modules/oauth.d.ts.map +1 -1
- package/dist/types/modules/query.d.ts +8 -8
- package/dist/types/modules/query.d.ts.map +1 -1
- package/dist/types/modules/server.d.ts +5 -3
- package/dist/types/modules/server.d.ts.map +1 -1
- package/dist/types/modules/tools.d.ts +6 -6
- package/dist/types/modules/tools.d.ts.map +1 -1
- package/dist/utils/logger.d.ts +2 -2
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +58 -55
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/promptGenerator.d.ts +1 -1
- package/dist/utils/promptGenerator.d.ts.map +1 -1
- package/dist/utils/promptGenerator.js +24 -16
- package/dist/utils/promptGenerator.js.map +1 -1
- package/dist/utils/validators.d.ts +21 -2
- package/dist/utils/validators.d.ts.map +1 -1
- package/dist/utils/validators.js +101 -13
- package/dist/utils/validators.js.map +1 -1
- package/eslint.config.js +117 -81
- package/package.json +66 -64
- package/releases/release-notes.md +32 -26
- package/releases/v2.0.0-release-notes.md +99 -51
- package/releases/v2.1.0-release-notes.md +14 -5
- package/releases/v2.2.0-release-notes.md +239 -0
- package/releases/v2.3.0-release-notes.md +191 -0
- package/server.json +1 -1
- package/src/__tests__/cli.test.ts +302 -247
- package/src/__tests__/index.test.ts +21 -21
- package/src/__tests__/mocks/adapter.ts +204 -163
- package/src/__tests__/mocks/index.ts +30 -23
- package/src/__tests__/mocks/mysql.ts +94 -84
- package/src/__tests__/perf.test.ts +207 -203
- package/src/__tests__/performance.test.ts +173 -164
- package/src/__tests__/setup.ts +26 -21
- package/src/adapters/DatabaseAdapter.ts +386 -340
- package/src/adapters/__tests__/DatabaseAdapter.test.ts +455 -377
- package/src/adapters/mysql/MySQLAdapter.ts +560 -486
- package/src/adapters/mysql/SchemaManager.ts +251 -208
- package/src/adapters/mysql/__tests__/MySQLAdapter.integration.test.ts +150 -147
- package/src/adapters/mysql/__tests__/MySQLAdapter.test.ts +590 -477
- package/src/adapters/mysql/__tests__/SchemaManager.test.ts +196 -154
- package/src/adapters/mysql/index.ts +2 -2
- package/src/adapters/mysql/prompts/__tests__/indexTuning.test.ts +33 -26
- package/src/adapters/mysql/prompts/__tests__/prompts.test.ts +277 -239
- package/src/adapters/mysql/prompts/backupStrategy.ts +29 -17
- package/src/adapters/mysql/prompts/clusterSetup.ts +11 -10
- package/src/adapters/mysql/prompts/docstoreSetup.ts +10 -10
- package/src/adapters/mysql/prompts/eventScheduler.ts +10 -10
- package/src/adapters/mysql/prompts/healthCheck.ts +20 -15
- package/src/adapters/mysql/prompts/index.ts +202 -145
- package/src/adapters/mysql/prompts/indexTuning.ts +22 -17
- package/src/adapters/mysql/prompts/mysqlshSetup.ts +11 -11
- package/src/adapters/mysql/prompts/proxysqlSetup.ts +10 -10
- package/src/adapters/mysql/prompts/replicationSetup.ts +24 -16
- package/src/adapters/mysql/prompts/routerSetup.ts +15 -10
- package/src/adapters/mysql/prompts/spatialSetup.ts +10 -10
- package/src/adapters/mysql/prompts/sysSchema.ts +11 -10
- package/src/adapters/mysql/resources/__tests__/capabilities.test.ts +118 -47
- package/src/adapters/mysql/resources/__tests__/cluster.test.ts +163 -104
- package/src/adapters/mysql/resources/__tests__/docstore.test.ts +88 -81
- package/src/adapters/mysql/resources/__tests__/events.test.ts +94 -83
- package/src/adapters/mysql/resources/__tests__/health.test.ts +131 -91
- package/src/adapters/mysql/resources/__tests__/indexes.test.ts +125 -102
- package/src/adapters/mysql/resources/__tests__/innodb.test.ts +86 -62
- package/src/adapters/mysql/resources/__tests__/locks.test.ts +142 -104
- package/src/adapters/mysql/resources/__tests__/performance.test.ts +81 -58
- package/src/adapters/mysql/resources/__tests__/pool.test.ts +45 -40
- package/src/adapters/mysql/resources/__tests__/processlist.test.ts +39 -23
- package/src/adapters/mysql/resources/__tests__/replication.test.ts +265 -211
- package/src/adapters/mysql/resources/__tests__/resources.test.ts +121 -109
- package/src/adapters/mysql/resources/__tests__/schema.test.ts +29 -23
- package/src/adapters/mysql/resources/__tests__/spatial.test.ts +58 -45
- package/src/adapters/mysql/resources/__tests__/status.test.ts +62 -45
- package/src/adapters/mysql/resources/__tests__/sysschema.test.ts +99 -60
- package/src/adapters/mysql/resources/__tests__/tables.test.ts +41 -32
- package/src/adapters/mysql/resources/__tests__/variables.test.ts +77 -49
- package/src/adapters/mysql/resources/capabilities.ts +61 -42
- package/src/adapters/mysql/resources/cluster.ts +58 -49
- package/src/adapters/mysql/resources/docstore.ts +46 -41
- package/src/adapters/mysql/resources/events.ts +37 -31
- package/src/adapters/mysql/resources/health.ts +98 -74
- package/src/adapters/mysql/resources/index.ts +55 -47
- package/src/adapters/mysql/resources/indexes.ts +66 -51
- package/src/adapters/mysql/resources/innodb.ts +98 -81
- package/src/adapters/mysql/resources/locks.ts +43 -40
- package/src/adapters/mysql/resources/performance.ts +80 -67
- package/src/adapters/mysql/resources/pool.ts +23 -20
- package/src/adapters/mysql/resources/processlist.ts +23 -18
- package/src/adapters/mysql/resources/replication.ts +124 -105
- package/src/adapters/mysql/resources/schema.ts +23 -18
- package/src/adapters/mysql/resources/spatial.ts +31 -26
- package/src/adapters/mysql/resources/status.ts +27 -22
- package/src/adapters/mysql/resources/sysschema.ts +41 -36
- package/src/adapters/mysql/resources/tables.ts +23 -18
- package/src/adapters/mysql/resources/variables.ts +27 -22
- package/src/adapters/mysql/tools/__tests__/cluster.test.ts +419 -311
- package/src/adapters/mysql/tools/__tests__/core.test.ts +701 -382
- package/src/adapters/mysql/tools/__tests__/docstore.test.ts +782 -413
- package/src/adapters/mysql/tools/__tests__/events.test.ts +806 -486
- package/src/adapters/mysql/tools/__tests__/json_core.test.ts +326 -259
- package/src/adapters/mysql/tools/__tests__/json_enhanced.test.ts +452 -352
- package/src/adapters/mysql/tools/__tests__/json_helpers.test.ts +203 -128
- package/src/adapters/mysql/tools/__tests__/proxysql.test.ts +576 -340
- package/src/adapters/mysql/tools/__tests__/replication.test.ts +796 -390
- package/src/adapters/mysql/tools/__tests__/roles.test.ts +423 -166
- package/src/adapters/mysql/tools/__tests__/router.test.ts +644 -540
- package/src/adapters/mysql/tools/__tests__/security.test.ts +746 -421
- package/src/adapters/mysql/tools/__tests__/security_injection.test.ts +246 -173
- package/src/adapters/mysql/tools/__tests__/security_integration.test.ts +244 -205
- package/src/adapters/mysql/tools/__tests__/spatial.test.ts +443 -298
- package/src/adapters/mysql/tools/__tests__/spatial_handler.test.ts +535 -150
- package/src/adapters/mysql/tools/__tests__/stats.test.ts +861 -553
- package/src/adapters/mysql/tools/__tests__/transactions.test.ts +452 -263
- package/src/adapters/mysql/tools/admin/__tests__/backup.test.ts +612 -372
- package/src/adapters/mysql/tools/admin/__tests__/maintenance.test.ts +550 -257
- package/src/adapters/mysql/tools/admin/__tests__/monitoring.test.ts +549 -352
- package/src/adapters/mysql/tools/admin/backup.ts +339 -215
- package/src/adapters/mysql/tools/admin/index.ts +46 -46
- package/src/adapters/mysql/tools/admin/maintenance.ts +180 -130
- package/src/adapters/mysql/tools/admin/monitoring.ts +373 -199
- package/src/adapters/mysql/tools/cluster/__tests__/group-replication.test.ts +200 -186
- package/src/adapters/mysql/tools/cluster/__tests__/innodb-cluster.test.ts +399 -95
- package/src/adapters/mysql/tools/cluster/group-replication.ts +218 -183
- package/src/adapters/mysql/tools/cluster/index.ts +27 -27
- package/src/adapters/mysql/tools/cluster/innodb-cluster.ts +413 -251
- package/src/adapters/mysql/tools/codemode/index.ts +249 -0
- package/src/adapters/mysql/tools/core.ts +425 -285
- package/src/adapters/mysql/tools/docstore.ts +478 -276
- package/src/adapters/mysql/tools/events.ts +441 -285
- package/src/adapters/mysql/tools/index.ts +31 -20
- package/src/adapters/mysql/tools/json/__tests__/core.test.ts +456 -199
- package/src/adapters/mysql/tools/json/__tests__/enhanced.test.ts +554 -298
- package/src/adapters/mysql/tools/json/__tests__/helpers.test.ts +195 -74
- package/src/adapters/mysql/tools/json/__tests__/validation.test.ts +106 -72
- package/src/adapters/mysql/tools/json/core.ts +368 -263
- package/src/adapters/mysql/tools/json/enhanced.ts +368 -229
- package/src/adapters/mysql/tools/json/helpers.ts +205 -113
- package/src/adapters/mysql/tools/json/index.ts +46 -46
- package/src/adapters/mysql/tools/partitioning.ts +289 -140
- package/src/adapters/mysql/tools/performance/__tests__/analysis.test.ts +664 -249
- package/src/adapters/mysql/tools/performance/__tests__/optimization.test.ts +436 -179
- package/src/adapters/mysql/tools/performance/analysis.ts +319 -215
- package/src/adapters/mysql/tools/performance/index.ts +33 -33
- package/src/adapters/mysql/tools/performance/optimization.ts +438 -183
- package/src/adapters/mysql/tools/proxysql.ts +462 -320
- package/src/adapters/mysql/tools/replication.ts +233 -180
- package/src/adapters/mysql/tools/roles.ts +429 -171
- package/src/adapters/mysql/tools/router.ts +410 -292
- package/src/adapters/mysql/tools/schema/__tests__/constraints.test.ts +157 -82
- package/src/adapters/mysql/tools/schema/__tests__/management.test.ts +226 -101
- package/src/adapters/mysql/tools/schema/__tests__/routines.test.ts +80 -35
- package/src/adapters/mysql/tools/schema/__tests__/scheduled_events.test.ts +59 -40
- package/src/adapters/mysql/tools/schema/__tests__/triggers.test.ts +65 -40
- package/src/adapters/mysql/tools/schema/__tests__/views.test.ts +146 -77
- package/src/adapters/mysql/tools/schema/constraints.ts +61 -42
- package/src/adapters/mysql/tools/schema/index.ts +26 -35
- package/src/adapters/mysql/tools/schema/management.ts +167 -94
- package/src/adapters/mysql/tools/schema/routines.ts +79 -48
- package/src/adapters/mysql/tools/schema/scheduled_events.ts +53 -32
- package/src/adapters/mysql/tools/schema/triggers.ts +51 -33
- package/src/adapters/mysql/tools/schema/views.ts +96 -53
- package/src/adapters/mysql/tools/security/__tests__/audit.test.ts +216 -158
- package/src/adapters/mysql/tools/security/__tests__/data-protection.test.ts +154 -98
- package/src/adapters/mysql/tools/security/__tests__/encryption.test.ts +174 -138
- package/src/adapters/mysql/tools/security/audit.ts +213 -193
- package/src/adapters/mysql/tools/security/data-protection.ts +342 -198
- package/src/adapters/mysql/tools/security/encryption.ts +233 -193
- package/src/adapters/mysql/tools/security/index.ts +26 -26
- package/src/adapters/mysql/tools/shell/__tests__/backup.test.ts +443 -283
- package/src/adapters/mysql/tools/shell/__tests__/common.test.ts +183 -130
- package/src/adapters/mysql/tools/shell/__tests__/data-transfer.test.ts +516 -353
- package/src/adapters/mysql/tools/shell/__tests__/info.test.ts +65 -63
- package/src/adapters/mysql/tools/shell/__tests__/restore.test.ts +260 -174
- package/src/adapters/mysql/tools/shell/__tests__/utilities.test.ts +161 -143
- package/src/adapters/mysql/tools/shell/backup.ts +280 -188
- package/src/adapters/mysql/tools/shell/common.ts +203 -153
- package/src/adapters/mysql/tools/shell/data-transfer.ts +286 -200
- package/src/adapters/mysql/tools/shell/index.ts +29 -29
- package/src/adapters/mysql/tools/shell/info.ts +35 -31
- package/src/adapters/mysql/tools/shell/restore.ts +236 -121
- package/src/adapters/mysql/tools/shell/utilities.ts +86 -45
- package/src/adapters/mysql/tools/spatial/__tests__/geometry.test.ts +129 -89
- package/src/adapters/mysql/tools/spatial/__tests__/operations.test.ts +284 -148
- package/src/adapters/mysql/tools/spatial/__tests__/queries.test.ts +340 -245
- package/src/adapters/mysql/tools/spatial/geometry.ts +120 -74
- package/src/adapters/mysql/tools/spatial/index.ts +33 -33
- package/src/adapters/mysql/tools/spatial/operations.ts +254 -171
- package/src/adapters/mysql/tools/spatial/queries.ts +221 -165
- package/src/adapters/mysql/tools/spatial/setup.ts +180 -73
- package/src/adapters/mysql/tools/stats/__tests__/comparative.test.ts +188 -130
- package/src/adapters/mysql/tools/stats/comparative.ts +261 -187
- package/src/adapters/mysql/tools/stats/descriptive.ts +414 -322
- package/src/adapters/mysql/tools/stats/index.ts +23 -23
- package/src/adapters/mysql/tools/sysschema/__tests__/activity.test.ts +99 -71
- package/src/adapters/mysql/tools/sysschema/__tests__/io_summary_fix.test.ts +21 -18
- package/src/adapters/mysql/tools/sysschema/__tests__/performance.test.ts +149 -108
- package/src/adapters/mysql/tools/sysschema/__tests__/resources.test.ts +243 -104
- package/src/adapters/mysql/tools/sysschema/activity.ts +72 -64
- package/src/adapters/mysql/tools/sysschema/index.ts +24 -24
- package/src/adapters/mysql/tools/sysschema/performance.ts +140 -115
- package/src/adapters/mysql/tools/sysschema/resources.ts +140 -99
- package/src/adapters/mysql/tools/text/__tests__/fulltext.test.ts +526 -145
- package/src/adapters/mysql/tools/text/__tests__/processing.test.ts +452 -193
- package/src/adapters/mysql/tools/text/fulltext.ts +327 -123
- package/src/adapters/mysql/tools/text/index.ts +32 -30
- package/src/adapters/mysql/tools/text/processing.ts +281 -212
- package/src/adapters/mysql/tools/transactions.ts +288 -197
- package/src/adapters/mysql/types/__tests__/shell-types.test.ts +204 -202
- package/src/adapters/mysql/types/proxysql-types.ts +142 -109
- package/src/adapters/mysql/types/router-types.ts +36 -36
- package/src/adapters/mysql/types/shell-types.ts +280 -94
- package/src/adapters/mysql/types.ts +1475 -164
- package/src/auth/AuthorizationServerDiscovery.ts +127 -113
- package/src/auth/OAuthResourceServer.ts +67 -62
- package/src/auth/TokenValidator.ts +136 -119
- package/src/auth/__tests__/AuthorizationServerDiscovery.test.ts +295 -274
- package/src/auth/__tests__/OAuthResourceServer.test.ts +180 -169
- package/src/auth/__tests__/TokenValidator.test.ts +297 -285
- package/src/auth/__tests__/errors.test.ts +180 -175
- package/src/auth/__tests__/middleware.test.ts +281 -247
- package/src/auth/__tests__/scopes.test.ts +136 -134
- package/src/auth/errors.ts +56 -56
- package/src/auth/index.ts +23 -17
- package/src/auth/middleware.ts +161 -139
- package/src/auth/scopes.ts +134 -107
- package/src/auth/types.ts +155 -155
- package/src/cli/__tests__/args.test.ts +241 -216
- package/src/cli/__tests__/main.test.ts +191 -158
- package/src/cli/args.ts +285 -258
- package/src/cli.ts +150 -127
- package/src/codemode/api.ts +1224 -0
- package/src/codemode/index.ts +51 -0
- package/src/codemode/sandbox-factory.ts +146 -0
- package/src/codemode/sandbox.ts +450 -0
- package/src/codemode/security.ts +188 -0
- package/src/codemode/types.ts +194 -0
- package/src/codemode/worker-sandbox.ts +326 -0
- package/src/codemode/worker-script.ts +144 -0
- package/src/constants/ServerInstructions.ts +295 -70
- package/src/filtering/ToolConstants.ts +311 -272
- package/src/filtering/ToolFilter.ts +254 -220
- package/src/filtering/__tests__/ToolFilter.test.ts +469 -396
- package/src/index.ts +62 -57
- package/src/logging/McpLogging.ts +128 -119
- package/src/logging/__tests__/McpLogging.test.ts +223 -223
- package/src/logging/index.ts +2 -2
- package/src/pool/ConnectionPool.ts +260 -246
- package/src/pool/__tests__/ConnectionPool.test.ts +452 -418
- package/src/progress/ProgressReporter.ts +123 -123
- package/src/progress/__tests__/ProgressReporter.test.ts +235 -229
- package/src/progress/index.ts +6 -2
- package/src/server/McpServer.ts +305 -285
- package/src/server/__tests__/McpServer.test.ts +333 -291
- package/src/transports/__tests__/http.test.ts +658 -527
- package/src/transports/http.ts +237 -203
- package/src/transports/index.ts +6 -2
- package/src/types/__tests__/types.test.ts +197 -193
- package/src/types/index.ts +49 -37
- package/src/types/modules/database.ts +65 -63
- package/src/types/modules/errors.ts +41 -37
- package/src/types/modules/oauth.ts +46 -46
- package/src/types/modules/query.ts +75 -75
- package/src/types/modules/server.ts +21 -18
- package/src/types/modules/tools.ts +182 -178
- package/src/utils/__tests__/logger.test.ts +424 -414
- package/src/utils/__tests__/validators.test.ts +250 -165
- package/src/utils/logger.ts +344 -330
- package/src/utils/promptGenerator.ts +58 -47
- package/src/utils/validators.ts +217 -91
- package/tsconfig.json +41 -50
- package/vitest.config.ts +23 -23
|
@@ -3,32 +3,35 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Tools for restoring dumps and running custom scripts.
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
6
|
+
import { promises as fs } from "fs";
|
|
7
|
+
import { tmpdir } from "os";
|
|
8
|
+
import { join } from "path";
|
|
9
|
+
import { ShellLoadDumpInputSchema, ShellRunScriptInputSchema, } from "../../types/shell-types.js";
|
|
10
|
+
import { getShellConfig, execShellJS, execMySQLShell } from "./common.js";
|
|
8
11
|
/**
|
|
9
12
|
* Load dump to instance
|
|
10
13
|
*/
|
|
11
14
|
export function createShellLoadDumpTool() {
|
|
12
15
|
return {
|
|
13
|
-
name:
|
|
14
|
-
title:
|
|
15
|
-
description:
|
|
16
|
-
group:
|
|
16
|
+
name: "mysqlsh_load_dump",
|
|
17
|
+
title: "MySQL Shell Load Dump",
|
|
18
|
+
description: "Load a MySQL Shell dump using util.loadDump(). Restores data from a dump created by dumpInstance, dumpSchemas, or dumpTables. Supports parallel loading.",
|
|
19
|
+
group: "shell",
|
|
17
20
|
inputSchema: ShellLoadDumpInputSchema,
|
|
18
|
-
requiredScopes: [
|
|
21
|
+
requiredScopes: ["admin"],
|
|
19
22
|
annotations: {
|
|
20
23
|
readOnlyHint: false,
|
|
21
|
-
openWorldHint: true
|
|
24
|
+
openWorldHint: true,
|
|
22
25
|
},
|
|
23
26
|
handler: async (params, _context) => {
|
|
24
|
-
const { inputDir, threads, dryRun, includeSchemas, excludeSchemas, includeTables, excludeTables, ignoreExistingObjects, ignoreVersion, resetProgress, updateServerSettings } = ShellLoadDumpInputSchema.parse(params);
|
|
25
|
-
const escapedPath = inputDir.replace(/\\/g,
|
|
27
|
+
const { inputDir, threads, dryRun, includeSchemas, excludeSchemas, includeTables, excludeTables, ignoreExistingObjects, ignoreVersion, resetProgress, updateServerSettings, } = ShellLoadDumpInputSchema.parse(params);
|
|
28
|
+
const escapedPath = inputDir.replace(/\\/g, "\\\\");
|
|
26
29
|
const options = [];
|
|
27
30
|
if (threads) {
|
|
28
31
|
options.push(`threads: ${threads}`);
|
|
29
32
|
}
|
|
30
33
|
if (dryRun) {
|
|
31
|
-
options.push(
|
|
34
|
+
options.push("dryRun: true");
|
|
32
35
|
}
|
|
33
36
|
if (includeSchemas && includeSchemas.length > 0) {
|
|
34
37
|
options.push(`includeSchemas: ${JSON.stringify(includeSchemas)}`);
|
|
@@ -43,15 +46,15 @@ export function createShellLoadDumpTool() {
|
|
|
43
46
|
options.push(`excludeTables: ${JSON.stringify(excludeTables)}`);
|
|
44
47
|
}
|
|
45
48
|
if (ignoreExistingObjects) {
|
|
46
|
-
options.push(
|
|
49
|
+
options.push("ignoreExistingObjects: true");
|
|
47
50
|
}
|
|
48
51
|
if (ignoreVersion) {
|
|
49
|
-
options.push(
|
|
52
|
+
options.push("ignoreVersion: true");
|
|
50
53
|
}
|
|
51
54
|
if (resetProgress) {
|
|
52
|
-
options.push(
|
|
55
|
+
options.push("resetProgress: true");
|
|
53
56
|
}
|
|
54
|
-
const optionsStr = options.length > 0 ? `, { ${options.join(
|
|
57
|
+
const optionsStr = options.length > 0 ? `, { ${options.join(", ")} }` : "";
|
|
55
58
|
// Build JavaScript code that optionally enables local_infile
|
|
56
59
|
let jsCode;
|
|
57
60
|
if (updateServerSettings) {
|
|
@@ -64,25 +67,84 @@ export function createShellLoadDumpTool() {
|
|
|
64
67
|
jsCode = `return util.loadDump("${escapedPath}"${optionsStr});`;
|
|
65
68
|
}
|
|
66
69
|
try {
|
|
70
|
+
if (dryRun) {
|
|
71
|
+
// For dry runs, use execMySQLShell directly to capture stderr
|
|
72
|
+
// where MySQL Shell outputs the summary of what would be loaded
|
|
73
|
+
const config = getShellConfig();
|
|
74
|
+
const dryRunJsCode = `
|
|
75
|
+
var __result__;
|
|
76
|
+
try {
|
|
77
|
+
__result__ = (function() { ${jsCode} })();
|
|
78
|
+
print(JSON.stringify({ success: true, result: __result__ }));
|
|
79
|
+
} catch (e) {
|
|
80
|
+
print(JSON.stringify({ success: false, error: e.message }));
|
|
81
|
+
}
|
|
82
|
+
`;
|
|
83
|
+
const rawResult = await execMySQLShell(["--uri", config.connectionUri, "--js", "-e", dryRunJsCode], { timeout: 3600000 });
|
|
84
|
+
// Parse stderr for dry run summary, filtering out common warnings
|
|
85
|
+
const stderrClean = rawResult.stderr
|
|
86
|
+
.replace(/WARNING: Using a password on the command line interface can be insecure\.\s*/gi, "")
|
|
87
|
+
.trim();
|
|
88
|
+
// Check for errors in the JSON output
|
|
89
|
+
const lines = rawResult.stdout.trim().split("\n");
|
|
90
|
+
for (let i = lines.length - 1; i >= 0; i--) {
|
|
91
|
+
const line = lines[i];
|
|
92
|
+
if (!line)
|
|
93
|
+
continue;
|
|
94
|
+
const trimmedLine = line.trim();
|
|
95
|
+
if (trimmedLine.startsWith("{")) {
|
|
96
|
+
let parsed;
|
|
97
|
+
try {
|
|
98
|
+
parsed = JSON.parse(trimmedLine);
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
if (!parsed.success) {
|
|
104
|
+
throw new Error(parsed.error ?? "Unknown MySQL Shell error");
|
|
105
|
+
}
|
|
106
|
+
break;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return {
|
|
110
|
+
success: true,
|
|
111
|
+
inputDir,
|
|
112
|
+
dryRun: true,
|
|
113
|
+
localInfileEnabled: updateServerSettings,
|
|
114
|
+
dryRunOutput: stderrClean || undefined,
|
|
115
|
+
};
|
|
116
|
+
}
|
|
67
117
|
const result = await execShellJS(jsCode, { timeout: 3600000 });
|
|
68
118
|
return {
|
|
69
119
|
success: true,
|
|
70
120
|
inputDir,
|
|
71
|
-
dryRun:
|
|
121
|
+
dryRun: false,
|
|
72
122
|
localInfileEnabled: updateServerSettings,
|
|
73
|
-
result
|
|
123
|
+
result,
|
|
74
124
|
};
|
|
75
125
|
}
|
|
76
126
|
catch (error) {
|
|
77
127
|
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
78
|
-
if (errorMessage.includes(
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
128
|
+
if (errorMessage.includes("local_infile") ||
|
|
129
|
+
errorMessage.includes("Loading local data is disabled")) {
|
|
130
|
+
return {
|
|
131
|
+
success: false,
|
|
132
|
+
inputDir,
|
|
133
|
+
error: "Load failed: local_infile is disabled on the server.",
|
|
134
|
+
hint: "Set updateServerSettings: true (requires SUPER or SYSTEM_VARIABLES_ADMIN privilege), or manually run: SET GLOBAL local_infile = ON",
|
|
135
|
+
};
|
|
82
136
|
}
|
|
83
|
-
|
|
137
|
+
if (errorMessage.includes("Duplicate objects")) {
|
|
138
|
+
return {
|
|
139
|
+
success: false,
|
|
140
|
+
inputDir,
|
|
141
|
+
error: errorMessage,
|
|
142
|
+
hint: "Use ignoreExistingObjects: true to skip existing objects",
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
return { success: false, inputDir, error: errorMessage };
|
|
84
146
|
}
|
|
85
|
-
}
|
|
147
|
+
},
|
|
86
148
|
};
|
|
87
149
|
}
|
|
88
150
|
/**
|
|
@@ -90,15 +152,15 @@ export function createShellLoadDumpTool() {
|
|
|
90
152
|
*/
|
|
91
153
|
export function createShellRunScriptTool() {
|
|
92
154
|
return {
|
|
93
|
-
name:
|
|
94
|
-
title:
|
|
95
|
-
description:
|
|
96
|
-
group:
|
|
155
|
+
name: "mysqlsh_run_script",
|
|
156
|
+
title: "MySQL Shell Run Script",
|
|
157
|
+
description: "Execute a JavaScript, Python, or SQL script via MySQL Shell. Provides access to X DevAPI, AdminAPI, and all MySQL Shell features.",
|
|
158
|
+
group: "shell",
|
|
97
159
|
inputSchema: ShellRunScriptInputSchema,
|
|
98
|
-
requiredScopes: [
|
|
160
|
+
requiredScopes: ["admin"],
|
|
99
161
|
annotations: {
|
|
100
162
|
readOnlyHint: false,
|
|
101
|
-
openWorldHint: true
|
|
163
|
+
openWorldHint: true,
|
|
102
164
|
},
|
|
103
165
|
handler: async (params, _context) => {
|
|
104
166
|
const { script, language, timeout } = ShellRunScriptInputSchema.parse(params);
|
|
@@ -106,30 +168,53 @@ export function createShellRunScriptTool() {
|
|
|
106
168
|
// Build command based on language
|
|
107
169
|
let langFlag;
|
|
108
170
|
switch (language) {
|
|
109
|
-
case
|
|
110
|
-
langFlag =
|
|
171
|
+
case "js":
|
|
172
|
+
langFlag = "--js";
|
|
111
173
|
break;
|
|
112
|
-
case
|
|
113
|
-
langFlag =
|
|
174
|
+
case "py":
|
|
175
|
+
langFlag = "--py";
|
|
114
176
|
break;
|
|
115
|
-
case
|
|
116
|
-
langFlag =
|
|
177
|
+
case "sql":
|
|
178
|
+
langFlag = "--sql";
|
|
117
179
|
break;
|
|
118
180
|
}
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
181
|
+
let result;
|
|
182
|
+
// SQL scripts with comments or multi-line content break when passed via -e
|
|
183
|
+
// Use --file approach for SQL to properly handle all syntax
|
|
184
|
+
if (language === "sql") {
|
|
185
|
+
// Create a secure temp directory via mkdtemp (restrictive permissions,
|
|
186
|
+
// unique path) to avoid CodeQL js/insecure-temporary-file alert.
|
|
187
|
+
const tempDir = await fs.mkdtemp(join(tmpdir(), `mysqlsh_script_`));
|
|
188
|
+
const tempFile = join(tempDir, "script.sql");
|
|
189
|
+
try {
|
|
190
|
+
await fs.writeFile(tempFile, script, "utf8");
|
|
191
|
+
const args = [
|
|
192
|
+
"--uri",
|
|
193
|
+
config.connectionUri,
|
|
194
|
+
langFlag,
|
|
195
|
+
"--file",
|
|
196
|
+
tempFile,
|
|
197
|
+
];
|
|
198
|
+
result = await execMySQLShell(args, { timeout });
|
|
199
|
+
}
|
|
200
|
+
finally {
|
|
201
|
+
// Cleanup temp directory and its contents
|
|
202
|
+
await fs.rm(tempDir, { recursive: true }).catch(() => void 0);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
else {
|
|
206
|
+
// JS and Python work fine with -e
|
|
207
|
+
const args = ["--uri", config.connectionUri, langFlag, "-e", script];
|
|
208
|
+
result = await execMySQLShell(args, { timeout });
|
|
209
|
+
}
|
|
125
210
|
return {
|
|
126
211
|
success: result.exitCode === 0,
|
|
127
212
|
language,
|
|
128
213
|
exitCode: result.exitCode,
|
|
129
214
|
stdout: result.stdout,
|
|
130
|
-
stderr: result.stderr
|
|
215
|
+
stderr: result.stderr,
|
|
131
216
|
};
|
|
132
|
-
}
|
|
217
|
+
},
|
|
133
218
|
};
|
|
134
219
|
}
|
|
135
220
|
//# sourceMappingURL=restore.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"restore.js","sourceRoot":"","sources":["../../../../../src/adapters/mysql/tools/shell/restore.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"restore.js","sourceRoot":"","sources":["../../../../../src/adapters/mysql/tools/shell/restore.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/mysql/tools/shell/utilities.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/mysql/tools/shell/utilities.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,cAAc,EAEf,MAAM,4BAA4B,CAAC;AAIpC;;GAEG;AACH,wBAAgB,2BAA2B,IAAI,cAAc,CAgF5D"}
|
|
@@ -3,22 +3,22 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Tools for server maintenance and upgrade compatibility checking.
|
|
5
5
|
*/
|
|
6
|
-
import { ShellCheckUpgradeInputSchema } from
|
|
7
|
-
import { getShellConfig, escapeForJS, execShellJS } from
|
|
6
|
+
import { ShellCheckUpgradeInputSchema } from "../../types/shell-types.js";
|
|
7
|
+
import { getShellConfig, escapeForJS, execShellJS } from "./common.js";
|
|
8
8
|
/**
|
|
9
9
|
* Check server upgrade compatibility
|
|
10
10
|
*/
|
|
11
11
|
export function createShellCheckUpgradeTool() {
|
|
12
12
|
return {
|
|
13
|
-
name:
|
|
14
|
-
title:
|
|
15
|
-
description:
|
|
16
|
-
group:
|
|
13
|
+
name: "mysqlsh_check_upgrade",
|
|
14
|
+
title: "MySQL Shell Check Upgrade",
|
|
15
|
+
description: "Check MySQL server upgrade compatibility using util.checkForServerUpgrade(). Identifies potential issues before upgrading to a newer MySQL version.",
|
|
16
|
+
group: "shell",
|
|
17
17
|
inputSchema: ShellCheckUpgradeInputSchema,
|
|
18
|
-
requiredScopes: [
|
|
18
|
+
requiredScopes: ["read"],
|
|
19
19
|
annotations: {
|
|
20
20
|
readOnlyHint: true,
|
|
21
|
-
openWorldHint: true
|
|
21
|
+
openWorldHint: true,
|
|
22
22
|
},
|
|
23
23
|
handler: async (params, _context) => {
|
|
24
24
|
const { targetVersion, outputFormat } = ShellCheckUpgradeInputSchema.parse(params);
|
|
@@ -26,24 +26,48 @@ export function createShellCheckUpgradeTool() {
|
|
|
26
26
|
// Use connection URI string instead of session object
|
|
27
27
|
// The util.checkForServerUpgrade() accepts a URI string as first arg
|
|
28
28
|
const escapedUri = escapeForJS(config.connectionUri);
|
|
29
|
-
|
|
30
|
-
const options = [];
|
|
29
|
+
// Force JSON output format to ensure parseable results
|
|
30
|
+
const options = ['outputFormat: "JSON"'];
|
|
31
31
|
if (targetVersion) {
|
|
32
32
|
options.push(`targetVersion: "${targetVersion}"`);
|
|
33
33
|
}
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
const jsCode = `return util.checkForServerUpgrade("${escapedUri}", { ${options.join(", ")} });`;
|
|
35
|
+
let result;
|
|
36
|
+
try {
|
|
37
|
+
result = await execShellJS(jsCode, { timeout: 120000 });
|
|
36
38
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
+
catch (error) {
|
|
40
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
41
|
+
return { success: false, error: errorMessage };
|
|
42
|
+
}
|
|
43
|
+
// Parse the upgrade check result
|
|
44
|
+
// util.checkForServerUpgrade returns { errorCount, warningCount, noticeCount, ... }
|
|
45
|
+
if (result !== null &&
|
|
46
|
+
result !== undefined &&
|
|
47
|
+
typeof result === "object") {
|
|
48
|
+
const checkResult = result;
|
|
49
|
+
return {
|
|
50
|
+
success: true,
|
|
51
|
+
targetVersion: checkResult.targetVersion ?? targetVersion,
|
|
52
|
+
serverVersion: checkResult.serverVersion,
|
|
53
|
+
errorCount: checkResult.errorCount ?? 0,
|
|
54
|
+
warningCount: checkResult.warningCount ?? 0,
|
|
55
|
+
noticeCount: checkResult.noticeCount ?? 0,
|
|
56
|
+
checksPerformed: checkResult.checksPerformed?.length ?? 0,
|
|
57
|
+
upgradeCheck: outputFormat === "TEXT"
|
|
58
|
+
? "Use outputFormat: JSON for detailed results"
|
|
59
|
+
: checkResult,
|
|
60
|
+
};
|
|
39
61
|
}
|
|
40
|
-
jsCode += ');';
|
|
41
|
-
const result = await execShellJS(jsCode, { timeout: 120000 });
|
|
42
62
|
return {
|
|
43
63
|
success: true,
|
|
44
|
-
|
|
64
|
+
targetVersion: targetVersion ?? "latest",
|
|
65
|
+
errorCount: 0,
|
|
66
|
+
warningCount: 0,
|
|
67
|
+
noticeCount: 0,
|
|
68
|
+
upgradeCheck: result,
|
|
45
69
|
};
|
|
46
|
-
}
|
|
70
|
+
},
|
|
47
71
|
};
|
|
48
72
|
}
|
|
49
73
|
//# sourceMappingURL=utilities.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utilities.js","sourceRoot":"","sources":["../../../../../src/adapters/mysql/tools/shell/utilities.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"utilities.js","sourceRoot":"","sources":["../../../../../src/adapters/mysql/tools/shell/utilities.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEvE;;GAEG;AACH,MAAM,UAAU,2BAA2B;IACzC,OAAO;QACL,IAAI,EAAE,uBAAuB;QAC7B,KAAK,EAAE,2BAA2B;QAClC,WAAW,EACT,qJAAqJ;QACvJ,KAAK,EAAE,OAAO;QACd,WAAW,EAAE,4BAA4B;QACzC,cAAc,EAAE,CAAC,MAAM,CAAC;QACxB,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,aAAa,EAAE,IAAI;SACpB;QACD,OAAO,EAAE,KAAK,EAAE,MAAe,EAAE,QAAwB,EAAE,EAAE;YAC3D,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,GACnC,4BAA4B,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;YAEhC,sDAAsD;YACtD,qEAAqE;YACrE,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YAErD,uDAAuD;YACvD,MAAM,OAAO,GAAa,CAAC,sBAAsB,CAAC,CAAC;YACnD,IAAI,aAAa,EAAE,CAAC;gBAClB,OAAO,CAAC,IAAI,CAAC,mBAAmB,aAAa,GAAG,CAAC,CAAC;YACpD,CAAC;YAED,MAAM,MAAM,GAAG,sCAAsC,UAAU,QAAQ,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;YAEhG,IAAI,MAAM,CAAC;YACX,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACzD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;YACjD,CAAC;YAED,iCAAiC;YACjC,oFAAoF;YACpF,IACE,MAAM,KAAK,IAAI;gBACf,MAAM,KAAK,SAAS;gBACpB,OAAO,MAAM,KAAK,QAAQ,EAC1B,CAAC;gBACD,MAAM,WAAW,GAAG,MAOnB,CAAC;gBAEF,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,aAAa,EAAE,WAAW,CAAC,aAAa,IAAI,aAAa;oBACzD,aAAa,EAAE,WAAW,CAAC,aAAa;oBACxC,UAAU,EAAE,WAAW,CAAC,UAAU,IAAI,CAAC;oBACvC,YAAY,EAAE,WAAW,CAAC,YAAY,IAAI,CAAC;oBAC3C,WAAW,EAAE,WAAW,CAAC,WAAW,IAAI,CAAC;oBACzC,eAAe,EAAE,WAAW,CAAC,eAAe,EAAE,MAAM,IAAI,CAAC;oBACzD,YAAY,EACV,YAAY,KAAK,MAAM;wBACrB,CAAC,CAAC,6CAA6C;wBAC/C,CAAC,CAAC,WAAW;iBAClB,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,aAAa,EAAE,aAAa,IAAI,QAAQ;gBACxC,UAAU,EAAE,CAAC;gBACb,YAAY,EAAE,CAAC;gBACf,WAAW,EAAE,CAAC;gBACd,YAAY,EAAE,MAAM;aACrB,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* Tools for creating basic geometry objects.
|
|
5
5
|
* 2 tools: point and polygon creation.
|
|
6
6
|
*/
|
|
7
|
-
import type { MySQLAdapter } from
|
|
8
|
-
import type { ToolDefinition } from
|
|
7
|
+
import type { MySQLAdapter } from "../../MySQLAdapter.js";
|
|
8
|
+
import type { ToolDefinition } from "../../../../types/index.js";
|
|
9
9
|
/**
|
|
10
10
|
* Create a POINT geometry
|
|
11
11
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geometry.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/mysql/tools/spatial/geometry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"geometry.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/mysql/tools/spatial/geometry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EACV,cAAc,EAEf,MAAM,4BAA4B,CAAC;AA+CpC;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,YAAY,GAAG,cAAc,CAmC5E;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,YAAY,GACpB,cAAc,CA+ChB"}
|
|
@@ -4,50 +4,80 @@
|
|
|
4
4
|
* Tools for creating basic geometry objects.
|
|
5
5
|
* 2 tools: point and polygon creation.
|
|
6
6
|
*/
|
|
7
|
-
import { z } from
|
|
7
|
+
import { z } from "zod";
|
|
8
|
+
// =============================================================================
|
|
9
|
+
// Helpers
|
|
10
|
+
// =============================================================================
|
|
11
|
+
/**
|
|
12
|
+
* Parse GeoJSON result from MySQL.
|
|
13
|
+
* MySQL returns ST_AsGeoJSON as a string, but mysql2 driver may auto-parse JSON.
|
|
14
|
+
* This handles both cases.
|
|
15
|
+
*/
|
|
16
|
+
function parseGeoJsonResult(value) {
|
|
17
|
+
if (value === null || value === undefined) {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
if (typeof value === "string") {
|
|
21
|
+
try {
|
|
22
|
+
return JSON.parse(value);
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
if (typeof value === "object") {
|
|
29
|
+
return value;
|
|
30
|
+
}
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
8
33
|
// =============================================================================
|
|
9
34
|
// Zod Schemas
|
|
10
35
|
// =============================================================================
|
|
11
36
|
const PointSchema = z.object({
|
|
12
|
-
longitude: z.number().describe(
|
|
13
|
-
latitude: z.number().describe(
|
|
14
|
-
srid: z.number().default(4326).describe(
|
|
37
|
+
longitude: z.number().describe("Longitude coordinate"),
|
|
38
|
+
latitude: z.number().describe("Latitude coordinate"),
|
|
39
|
+
srid: z.number().default(4326).describe("SRID"),
|
|
15
40
|
});
|
|
16
41
|
const PolygonSchema = z.object({
|
|
17
|
-
coordinates: z
|
|
18
|
-
|
|
42
|
+
coordinates: z
|
|
43
|
+
.array(z.array(z.array(z.number()).min(2).max(2)))
|
|
44
|
+
.describe("Polygon coordinates as array of rings, each ring is array of [lon, lat] pairs"),
|
|
45
|
+
srid: z.number().default(4326).describe("SRID"),
|
|
19
46
|
});
|
|
20
47
|
/**
|
|
21
48
|
* Create a POINT geometry
|
|
22
49
|
*/
|
|
23
50
|
export function createSpatialPointTool(adapter) {
|
|
24
51
|
return {
|
|
25
|
-
name:
|
|
26
|
-
title:
|
|
27
|
-
description:
|
|
28
|
-
group:
|
|
52
|
+
name: "mysql_spatial_point",
|
|
53
|
+
title: "MySQL Create Point",
|
|
54
|
+
description: "Create a POINT geometry from longitude/latitude coordinates.",
|
|
55
|
+
group: "spatial",
|
|
29
56
|
inputSchema: PointSchema,
|
|
30
|
-
requiredScopes: [
|
|
57
|
+
requiredScopes: ["read"],
|
|
31
58
|
annotations: {
|
|
32
59
|
readOnlyHint: true,
|
|
33
|
-
idempotentHint: true
|
|
60
|
+
idempotentHint: true,
|
|
34
61
|
},
|
|
35
62
|
handler: async (params, _context) => {
|
|
36
63
|
const { longitude, latitude, srid } = PointSchema.parse(params);
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
const result = await adapter.executeQuery(`SELECT ST_AsText(ST_SRID(ST_GeomFromText('POINT(${String(longitude)} ${String(latitude)})', ${String(srid)}, 'axis-order=long-lat'), ${String(srid)})) as wkt,
|
|
64
|
+
try {
|
|
65
|
+
const result = await adapter.executeQuery(`SELECT ST_AsText(ST_SRID(ST_GeomFromText('POINT(${String(longitude)} ${String(latitude)})', ${String(srid)}, 'axis-order=long-lat'), ${String(srid)})) as wkt,
|
|
40
66
|
ST_AsGeoJSON(ST_SRID(ST_GeomFromText('POINT(${String(longitude)} ${String(latitude)})', ${String(srid)}, 'axis-order=long-lat'), ${String(srid)})) as geoJson`);
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
}
|
|
50
|
-
|
|
67
|
+
const row = result.rows?.[0];
|
|
68
|
+
return {
|
|
69
|
+
wkt: row?.["wkt"],
|
|
70
|
+
geoJson: parseGeoJsonResult(row?.["geoJson"]),
|
|
71
|
+
srid,
|
|
72
|
+
longitude,
|
|
73
|
+
latitude,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
78
|
+
return { success: false, error: msg };
|
|
79
|
+
}
|
|
80
|
+
},
|
|
51
81
|
};
|
|
52
82
|
}
|
|
53
83
|
/**
|
|
@@ -55,33 +85,42 @@ export function createSpatialPointTool(adapter) {
|
|
|
55
85
|
*/
|
|
56
86
|
export function createSpatialPolygonTool(adapter) {
|
|
57
87
|
return {
|
|
58
|
-
name:
|
|
59
|
-
title:
|
|
60
|
-
description:
|
|
61
|
-
group:
|
|
88
|
+
name: "mysql_spatial_polygon",
|
|
89
|
+
title: "MySQL Create Polygon",
|
|
90
|
+
description: "Create a POLYGON geometry from coordinates.",
|
|
91
|
+
group: "spatial",
|
|
62
92
|
inputSchema: PolygonSchema,
|
|
63
|
-
requiredScopes: [
|
|
93
|
+
requiredScopes: ["read"],
|
|
64
94
|
annotations: {
|
|
65
95
|
readOnlyHint: true,
|
|
66
|
-
idempotentHint: true
|
|
96
|
+
idempotentHint: true,
|
|
67
97
|
},
|
|
68
98
|
handler: async (params, _context) => {
|
|
69
99
|
const { coordinates, srid } = PolygonSchema.parse(params);
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
100
|
+
try {
|
|
101
|
+
// Build WKT polygon
|
|
102
|
+
const rings = coordinates.map((ring) => "(" +
|
|
103
|
+
ring
|
|
104
|
+
.map(([lon, lat]) => `${String(lon)} ${String(lat)}`)
|
|
105
|
+
.join(", ") +
|
|
106
|
+
")");
|
|
107
|
+
const wkt = `POLYGON(${rings.join(", ")})`;
|
|
108
|
+
const result = await adapter.executeQuery(`SELECT ST_AsText(ST_GeomFromText(?, ${String(srid)}, 'axis-order=long-lat')) as wkt,
|
|
109
|
+
ST_AsGeoJSON(ST_GeomFromText(?, ${String(srid)}, 'axis-order=long-lat')) as geoJson,
|
|
110
|
+
ST_Area(ST_GeomFromText(?, ${String(srid)}, 'axis-order=long-lat')) as area`, [wkt, wkt, wkt]);
|
|
111
|
+
const row = result.rows?.[0];
|
|
112
|
+
return {
|
|
113
|
+
wkt: row?.["wkt"],
|
|
114
|
+
geoJson: parseGeoJsonResult(row?.["geoJson"]),
|
|
115
|
+
area: row?.["area"],
|
|
116
|
+
srid,
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
catch (error) {
|
|
120
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
121
|
+
return { success: false, error: msg };
|
|
122
|
+
}
|
|
123
|
+
},
|
|
85
124
|
};
|
|
86
125
|
}
|
|
87
126
|
//# sourceMappingURL=geometry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geometry.js","sourceRoot":"","sources":["../../../../../src/adapters/mysql/tools/spatial/geometry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"geometry.js","sourceRoot":"","sources":["../../../../../src/adapters/mysql/tools/spatial/geometry.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* Tools for geospatial data operations in MySQL 8.0+.
|
|
5
5
|
* 12 tools total (2 setup + 2 geometry + 4 queries + 4 operations).
|
|
6
6
|
*/
|
|
7
|
-
import type { MySQLAdapter } from
|
|
8
|
-
import type { ToolDefinition } from
|
|
7
|
+
import type { MySQLAdapter } from "../../MySQLAdapter.js";
|
|
8
|
+
import type { ToolDefinition } from "../../../../types/index.js";
|
|
9
9
|
/**
|
|
10
10
|
* Get all spatial tools
|
|
11
11
|
*/
|