@neverinfamous/postgres-mcp 1.3.0 → 2.1.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/LICENSE +1 -1
- package/README.md +244 -129
- package/dist/__tests__/benchmarks/codemode.bench.d.ts +10 -0
- package/dist/__tests__/benchmarks/codemode.bench.d.ts.map +1 -0
- package/dist/__tests__/benchmarks/codemode.bench.js +159 -0
- package/dist/__tests__/benchmarks/codemode.bench.js.map +1 -0
- package/dist/__tests__/benchmarks/connection-pool.bench.d.ts +10 -0
- package/dist/__tests__/benchmarks/connection-pool.bench.d.ts.map +1 -0
- package/dist/__tests__/benchmarks/connection-pool.bench.js +123 -0
- package/dist/__tests__/benchmarks/connection-pool.bench.js.map +1 -0
- package/dist/__tests__/benchmarks/handler-dispatch.bench.d.ts +11 -0
- package/dist/__tests__/benchmarks/handler-dispatch.bench.d.ts.map +1 -0
- package/dist/__tests__/benchmarks/handler-dispatch.bench.js +199 -0
- package/dist/__tests__/benchmarks/handler-dispatch.bench.js.map +1 -0
- package/dist/__tests__/benchmarks/logger-sanitization.bench.d.ts +15 -0
- package/dist/__tests__/benchmarks/logger-sanitization.bench.d.ts.map +1 -0
- package/dist/__tests__/benchmarks/logger-sanitization.bench.js +155 -0
- package/dist/__tests__/benchmarks/logger-sanitization.bench.js.map +1 -0
- package/dist/__tests__/benchmarks/resource-prompts.bench.d.ts +10 -0
- package/dist/__tests__/benchmarks/resource-prompts.bench.d.ts.map +1 -0
- package/dist/__tests__/benchmarks/resource-prompts.bench.js +181 -0
- package/dist/__tests__/benchmarks/resource-prompts.bench.js.map +1 -0
- package/dist/__tests__/benchmarks/schema-parsing.bench.d.ts +11 -0
- package/dist/__tests__/benchmarks/schema-parsing.bench.d.ts.map +1 -0
- package/dist/__tests__/benchmarks/schema-parsing.bench.js +209 -0
- package/dist/__tests__/benchmarks/schema-parsing.bench.js.map +1 -0
- package/dist/__tests__/benchmarks/tool-filtering.bench.d.ts +9 -0
- package/dist/__tests__/benchmarks/tool-filtering.bench.d.ts.map +1 -0
- package/dist/__tests__/benchmarks/tool-filtering.bench.js +83 -0
- package/dist/__tests__/benchmarks/tool-filtering.bench.js.map +1 -0
- package/dist/__tests__/benchmarks/transport-auth.bench.d.ts +10 -0
- package/dist/__tests__/benchmarks/transport-auth.bench.d.ts.map +1 -0
- package/dist/__tests__/benchmarks/transport-auth.bench.js +128 -0
- package/dist/__tests__/benchmarks/transport-auth.bench.js.map +1 -0
- package/dist/__tests__/benchmarks/utilities.bench.d.ts +10 -0
- package/dist/__tests__/benchmarks/utilities.bench.d.ts.map +1 -0
- package/dist/__tests__/benchmarks/utilities.bench.js +164 -0
- package/dist/__tests__/benchmarks/utilities.bench.js.map +1 -0
- package/dist/__tests__/mocks/adapter.d.ts.map +1 -1
- package/dist/__tests__/mocks/adapter.js +2 -1
- package/dist/__tests__/mocks/adapter.js.map +1 -1
- package/dist/adapters/DatabaseAdapter.d.ts +6 -1
- package/dist/adapters/DatabaseAdapter.d.ts.map +1 -1
- package/dist/adapters/DatabaseAdapter.js +23 -7
- package/dist/adapters/DatabaseAdapter.js.map +1 -1
- package/dist/adapters/postgresql/PostgresAdapter.d.ts +5 -22
- package/dist/adapters/postgresql/PostgresAdapter.d.ts.map +1 -1
- package/dist/adapters/postgresql/PostgresAdapter.js +30 -519
- package/dist/adapters/postgresql/PostgresAdapter.js.map +1 -1
- package/dist/adapters/postgresql/prompts/index.js +1 -1
- package/dist/adapters/postgresql/prompts/index.js.map +1 -1
- package/dist/adapters/postgresql/resources/index.d.ts +1 -1
- package/dist/adapters/postgresql/resources/index.js +3 -3
- package/dist/adapters/postgresql/resources/index.js.map +1 -1
- package/dist/adapters/postgresql/schema-operations.d.ts +71 -0
- package/dist/adapters/postgresql/schema-operations.d.ts.map +1 -0
- package/dist/adapters/postgresql/schema-operations.js +561 -0
- package/dist/adapters/postgresql/schema-operations.js.map +1 -0
- package/dist/adapters/postgresql/schemas/admin.d.ts +4 -4
- package/dist/adapters/postgresql/schemas/admin.js +4 -4
- package/dist/adapters/postgresql/schemas/admin.js.map +1 -1
- package/dist/adapters/postgresql/schemas/backup.d.ts +39 -25
- package/dist/adapters/postgresql/schemas/backup.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/backup.js +54 -25
- package/dist/adapters/postgresql/schemas/backup.js.map +1 -1
- package/dist/adapters/postgresql/schemas/core/index.d.ts +6 -0
- package/dist/adapters/postgresql/schemas/core/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/core/index.js +6 -0
- package/dist/adapters/postgresql/schemas/core/index.js.map +1 -0
- package/dist/adapters/postgresql/schemas/{core.d.ts → core/queries.d.ts} +12 -167
- package/dist/adapters/postgresql/schemas/core/queries.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/{core.js → core/queries.js} +5 -213
- package/dist/adapters/postgresql/schemas/core/queries.js.map +1 -0
- package/dist/adapters/postgresql/schemas/core/transactions.d.ts +149 -0
- package/dist/adapters/postgresql/schemas/core/transactions.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/core/transactions.js +239 -0
- package/dist/adapters/postgresql/schemas/core/transactions.js.map +1 -0
- package/dist/adapters/postgresql/schemas/cron.d.ts +12 -12
- package/dist/adapters/postgresql/schemas/cron.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/cron.js +38 -10
- package/dist/adapters/postgresql/schemas/cron.js.map +1 -1
- package/dist/adapters/postgresql/schemas/extensions/citext.d.ts +222 -0
- package/dist/adapters/postgresql/schemas/extensions/citext.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/extensions/citext.js +306 -0
- package/dist/adapters/postgresql/schemas/extensions/citext.js.map +1 -0
- package/dist/adapters/postgresql/schemas/extensions/index.d.ts +15 -0
- package/dist/adapters/postgresql/schemas/extensions/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/extensions/index.js +20 -0
- package/dist/adapters/postgresql/schemas/extensions/index.js.map +1 -0
- package/dist/adapters/postgresql/schemas/extensions/kcache.d.ts +164 -0
- package/dist/adapters/postgresql/schemas/extensions/kcache.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/extensions/kcache.js +225 -0
- package/dist/adapters/postgresql/schemas/extensions/kcache.js.map +1 -0
- package/dist/adapters/postgresql/schemas/extensions/ltree.d.ts +253 -0
- package/dist/adapters/postgresql/schemas/extensions/ltree.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/extensions/ltree.js +430 -0
- package/dist/adapters/postgresql/schemas/extensions/ltree.js.map +1 -0
- package/dist/adapters/postgresql/schemas/extensions/pgcrypto.d.ts +251 -0
- package/dist/adapters/postgresql/schemas/extensions/pgcrypto.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/extensions/pgcrypto.js +294 -0
- package/dist/adapters/postgresql/schemas/extensions/pgcrypto.js.map +1 -0
- package/dist/adapters/postgresql/schemas/extensions/shared.d.ts +10 -0
- package/dist/adapters/postgresql/schemas/extensions/shared.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/extensions/shared.js +15 -0
- package/dist/adapters/postgresql/schemas/extensions/shared.js.map +1 -0
- package/dist/adapters/postgresql/schemas/index.d.ts +8 -7
- package/dist/adapters/postgresql/schemas/index.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/index.js +16 -10
- package/dist/adapters/postgresql/schemas/index.js.map +1 -1
- package/dist/adapters/postgresql/schemas/introspection.d.ts +445 -0
- package/dist/adapters/postgresql/schemas/introspection.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/introspection.js +481 -0
- package/dist/adapters/postgresql/schemas/introspection.js.map +1 -0
- package/dist/adapters/postgresql/schemas/jsonb/advanced.d.ts +270 -0
- package/dist/adapters/postgresql/schemas/jsonb/advanced.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/jsonb/advanced.js +371 -0
- package/dist/adapters/postgresql/schemas/jsonb/advanced.js.map +1 -0
- package/dist/adapters/postgresql/schemas/jsonb/basic.d.ts +283 -0
- package/dist/adapters/postgresql/schemas/jsonb/basic.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/jsonb/basic.js +456 -0
- package/dist/adapters/postgresql/schemas/jsonb/basic.js.map +1 -0
- package/dist/adapters/postgresql/schemas/jsonb/index.d.ts +6 -0
- package/dist/adapters/postgresql/schemas/jsonb/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/jsonb/index.js +6 -0
- package/dist/adapters/postgresql/schemas/jsonb/index.js.map +1 -0
- package/dist/adapters/postgresql/schemas/monitoring.d.ts +45 -29
- package/dist/adapters/postgresql/schemas/monitoring.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/monitoring.js +51 -18
- package/dist/adapters/postgresql/schemas/monitoring.js.map +1 -1
- package/dist/adapters/postgresql/schemas/partitioning.d.ts +28 -32
- package/dist/adapters/postgresql/schemas/partitioning.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/partitioning.js +82 -53
- package/dist/adapters/postgresql/schemas/partitioning.js.map +1 -1
- package/dist/adapters/postgresql/schemas/partman.d.ts +78 -7
- package/dist/adapters/postgresql/schemas/partman.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/partman.js +54 -41
- package/dist/adapters/postgresql/schemas/partman.js.map +1 -1
- package/dist/adapters/postgresql/schemas/performance.d.ts +37 -19
- package/dist/adapters/postgresql/schemas/performance.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/performance.js +54 -12
- package/dist/adapters/postgresql/schemas/performance.js.map +1 -1
- package/dist/adapters/postgresql/schemas/postgis/advanced.d.ts +429 -0
- package/dist/adapters/postgresql/schemas/postgis/advanced.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/{postgis.js → postgis/advanced.js} +4 -467
- package/dist/adapters/postgresql/schemas/postgis/advanced.js.map +1 -0
- package/dist/adapters/postgresql/schemas/{postgis.d.ts → postgis/basic.d.ts} +1 -423
- package/dist/adapters/postgresql/schemas/postgis/basic.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/postgis/basic.js +493 -0
- package/dist/adapters/postgresql/schemas/postgis/basic.js.map +1 -0
- package/dist/adapters/postgresql/schemas/postgis/index.d.ts +6 -0
- package/dist/adapters/postgresql/schemas/postgis/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/postgis/index.js +6 -0
- package/dist/adapters/postgresql/schemas/postgis/index.js.map +1 -0
- package/dist/adapters/postgresql/schemas/schema-mgmt.d.ts +50 -32
- package/dist/adapters/postgresql/schemas/schema-mgmt.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/schema-mgmt.js +93 -26
- package/dist/adapters/postgresql/schemas/schema-mgmt.js.map +1 -1
- package/dist/adapters/postgresql/schemas/stats/index.d.ts +6 -0
- package/dist/adapters/postgresql/schemas/stats/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/stats/index.js +6 -0
- package/dist/adapters/postgresql/schemas/stats/index.js.map +1 -0
- package/dist/adapters/postgresql/schemas/stats/input.d.ts +260 -0
- package/dist/adapters/postgresql/schemas/stats/input.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/{stats.js → stats/input.js} +2 -331
- package/dist/adapters/postgresql/schemas/stats/input.js.map +1 -0
- package/dist/adapters/postgresql/schemas/{stats.d.ts → stats/output.d.ts} +3 -246
- package/dist/adapters/postgresql/schemas/stats/output.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/stats/output.js +334 -0
- package/dist/adapters/postgresql/schemas/stats/output.js.map +1 -0
- package/dist/adapters/postgresql/schemas/text-search.d.ts +44 -32
- package/dist/adapters/postgresql/schemas/text-search.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/text-search.js +53 -36
- package/dist/adapters/postgresql/schemas/text-search.js.map +1 -1
- package/dist/adapters/postgresql/schemas/vector.d.ts +10 -10
- package/dist/adapters/postgresql/schemas/vector.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/vector.js +12 -16
- package/dist/adapters/postgresql/schemas/vector.js.map +1 -1
- package/dist/adapters/postgresql/tools/admin.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/admin.js +82 -67
- package/dist/adapters/postgresql/tools/admin.js.map +1 -1
- package/dist/adapters/postgresql/tools/backup/dump.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/backup/dump.js +119 -97
- package/dist/adapters/postgresql/tools/backup/dump.js.map +1 -1
- package/dist/adapters/postgresql/tools/backup/planning.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/backup/planning.js +345 -287
- package/dist/adapters/postgresql/tools/backup/planning.js.map +1 -1
- package/dist/adapters/postgresql/tools/citext/analysis.d.ts +24 -0
- package/dist/adapters/postgresql/tools/citext/analysis.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/{citext.js → citext/analysis.js} +131 -281
- package/dist/adapters/postgresql/tools/citext/analysis.js.map +1 -0
- package/dist/adapters/postgresql/tools/citext/index.d.ts +15 -0
- package/dist/adapters/postgresql/tools/citext/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/citext/index.js +23 -0
- package/dist/adapters/postgresql/tools/citext/index.js.map +1 -0
- package/dist/adapters/postgresql/tools/citext/setup.d.ts +16 -0
- package/dist/adapters/postgresql/tools/citext/setup.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/citext/setup.js +193 -0
- package/dist/adapters/postgresql/tools/citext/setup.js.map +1 -0
- package/dist/adapters/postgresql/tools/codemode/index.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/codemode/index.js +3 -12
- package/dist/adapters/postgresql/tools/codemode/index.js.map +1 -1
- package/dist/adapters/postgresql/tools/core/convenience.d.ts +12 -22
- package/dist/adapters/postgresql/tools/core/convenience.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/core/convenience.js +116 -211
- package/dist/adapters/postgresql/tools/core/convenience.js.map +1 -1
- package/dist/adapters/postgresql/tools/core/error-helpers.d.ts +1 -0
- package/dist/adapters/postgresql/tools/core/error-helpers.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/core/error-helpers.js +8 -1
- package/dist/adapters/postgresql/tools/core/error-helpers.js.map +1 -1
- package/dist/adapters/postgresql/tools/core/health.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/core/health.js +124 -114
- package/dist/adapters/postgresql/tools/core/health.js.map +1 -1
- package/dist/adapters/postgresql/tools/core/index.d.ts +2 -1
- package/dist/adapters/postgresql/tools/core/index.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/core/index.js +3 -2
- package/dist/adapters/postgresql/tools/core/index.js.map +1 -1
- package/dist/adapters/postgresql/tools/core/indexes.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/core/indexes.js +153 -128
- package/dist/adapters/postgresql/tools/core/indexes.js.map +1 -1
- package/dist/adapters/postgresql/tools/core/objects.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/core/objects.js +186 -161
- package/dist/adapters/postgresql/tools/core/objects.js.map +1 -1
- package/dist/adapters/postgresql/tools/core/query.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/core/query.js +37 -25
- package/dist/adapters/postgresql/tools/core/query.js.map +1 -1
- package/dist/adapters/postgresql/tools/core/schemas.d.ts +6 -3
- package/dist/adapters/postgresql/tools/core/schemas.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/core/schemas.js +11 -2
- package/dist/adapters/postgresql/tools/core/schemas.js.map +1 -1
- package/dist/adapters/postgresql/tools/core/tables.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/core/tables.js +156 -129
- package/dist/adapters/postgresql/tools/core/tables.js.map +1 -1
- package/dist/adapters/postgresql/tools/core/utility.d.ts +26 -0
- package/dist/adapters/postgresql/tools/core/utility.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/core/utility.js +174 -0
- package/dist/adapters/postgresql/tools/core/utility.js.map +1 -0
- package/dist/adapters/postgresql/tools/cron.js +149 -70
- package/dist/adapters/postgresql/tools/cron.js.map +1 -1
- package/dist/adapters/postgresql/tools/introspection/analysis.d.ts +12 -0
- package/dist/adapters/postgresql/tools/introspection/analysis.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/introspection/analysis.js +574 -0
- package/dist/adapters/postgresql/tools/introspection/analysis.js.map +1 -0
- package/dist/adapters/postgresql/tools/introspection/graph.d.ts +55 -0
- package/dist/adapters/postgresql/tools/introspection/graph.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/introspection/graph.js +638 -0
- package/dist/adapters/postgresql/tools/introspection/graph.js.map +1 -0
- package/dist/adapters/postgresql/tools/introspection/index.d.ts +19 -0
- package/dist/adapters/postgresql/tools/introspection/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/introspection/index.js +36 -0
- package/dist/adapters/postgresql/tools/introspection/index.js.map +1 -0
- package/dist/adapters/postgresql/tools/introspection/migration.d.ts +15 -0
- package/dist/adapters/postgresql/tools/introspection/migration.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/introspection/migration.js +599 -0
- package/dist/adapters/postgresql/tools/introspection/migration.js.map +1 -0
- package/dist/adapters/postgresql/tools/jsonb/analytics.d.ts +20 -0
- package/dist/adapters/postgresql/tools/jsonb/analytics.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/jsonb/analytics.js +367 -0
- package/dist/adapters/postgresql/tools/jsonb/analytics.js.map +1 -0
- package/dist/adapters/postgresql/tools/jsonb/index.d.ts +4 -2
- package/dist/adapters/postgresql/tools/jsonb/index.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/jsonb/index.js +8 -4
- package/dist/adapters/postgresql/tools/jsonb/index.js.map +1 -1
- package/dist/adapters/postgresql/tools/jsonb/read.d.ts +38 -0
- package/dist/adapters/postgresql/tools/jsonb/read.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/jsonb/read.js +543 -0
- package/dist/adapters/postgresql/tools/jsonb/read.js.map +1 -0
- package/dist/adapters/postgresql/tools/jsonb/{advanced.d.ts → transform.d.ts} +1 -13
- package/dist/adapters/postgresql/tools/jsonb/transform.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/jsonb/{advanced.js → transform.js} +39 -361
- package/dist/adapters/postgresql/tools/jsonb/transform.js.map +1 -0
- package/dist/adapters/postgresql/tools/jsonb/write.d.ts +14 -0
- package/dist/adapters/postgresql/tools/jsonb/write.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/jsonb/write.js +468 -0
- package/dist/adapters/postgresql/tools/jsonb/write.js.map +1 -0
- package/dist/adapters/postgresql/tools/kcache.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/kcache.js +116 -51
- package/dist/adapters/postgresql/tools/kcache.js.map +1 -1
- package/dist/adapters/postgresql/tools/ltree.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/ltree.js +358 -259
- package/dist/adapters/postgresql/tools/ltree.js.map +1 -1
- package/dist/adapters/postgresql/tools/monitoring/analysis.d.ts +15 -0
- package/dist/adapters/postgresql/tools/monitoring/analysis.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/{monitoring.js → monitoring/analysis.js} +37 -361
- package/dist/adapters/postgresql/tools/monitoring/analysis.js.map +1 -0
- package/dist/adapters/postgresql/tools/monitoring/basic.d.ts +17 -0
- package/dist/adapters/postgresql/tools/monitoring/basic.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/monitoring/basic.js +432 -0
- package/dist/adapters/postgresql/tools/monitoring/basic.js.map +1 -0
- package/dist/adapters/postgresql/tools/monitoring/index.d.ts +16 -0
- package/dist/adapters/postgresql/tools/monitoring/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/monitoring/index.js +31 -0
- package/dist/adapters/postgresql/tools/monitoring/index.js.map +1 -0
- package/dist/adapters/postgresql/tools/partitioning/index.d.ts +15 -0
- package/dist/adapters/postgresql/tools/partitioning/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/partitioning/index.js +23 -0
- package/dist/adapters/postgresql/tools/partitioning/index.js.map +1 -0
- package/dist/adapters/postgresql/tools/partitioning/info.d.ts +11 -0
- package/dist/adapters/postgresql/tools/partitioning/info.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/partitioning/info.js +302 -0
- package/dist/adapters/postgresql/tools/partitioning/info.js.map +1 -0
- package/dist/adapters/postgresql/tools/partitioning/management.d.ts +28 -0
- package/dist/adapters/postgresql/tools/partitioning/management.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/{partitioning.js → partitioning/management.js} +48 -307
- package/dist/adapters/postgresql/tools/partitioning/management.js.map +1 -0
- package/dist/adapters/postgresql/tools/partman/helpers.d.ts +29 -0
- package/dist/adapters/postgresql/tools/partman/helpers.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/partman/helpers.js +59 -0
- package/dist/adapters/postgresql/tools/partman/helpers.js.map +1 -0
- package/dist/adapters/postgresql/tools/partman/index.d.ts +2 -1
- package/dist/adapters/postgresql/tools/partman/index.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/partman/index.js +4 -2
- package/dist/adapters/postgresql/tools/partman/index.js.map +1 -1
- package/dist/adapters/postgresql/tools/partman/maintenance.d.ts +20 -0
- package/dist/adapters/postgresql/tools/partman/maintenance.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/partman/maintenance.js +496 -0
- package/dist/adapters/postgresql/tools/partman/maintenance.js.map +1 -0
- package/dist/adapters/postgresql/tools/partman/management.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/partman/management.js +452 -417
- package/dist/adapters/postgresql/tools/partman/management.js.map +1 -1
- package/dist/adapters/postgresql/tools/partman/operations.d.ts +1 -13
- package/dist/adapters/postgresql/tools/partman/operations.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/partman/operations.js +173 -654
- package/dist/adapters/postgresql/tools/partman/operations.js.map +1 -1
- package/dist/adapters/postgresql/tools/performance/analysis.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/performance/analysis.js +79 -45
- package/dist/adapters/postgresql/tools/performance/analysis.js.map +1 -1
- package/dist/adapters/postgresql/tools/performance/monitoring.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/performance/monitoring.js +83 -55
- package/dist/adapters/postgresql/tools/performance/monitoring.js.map +1 -1
- package/dist/adapters/postgresql/tools/performance/optimization.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/performance/optimization.js +18 -11
- package/dist/adapters/postgresql/tools/performance/optimization.js.map +1 -1
- package/dist/adapters/postgresql/tools/performance/stats.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/performance/stats.js +441 -286
- package/dist/adapters/postgresql/tools/performance/stats.js.map +1 -1
- package/dist/adapters/postgresql/tools/pgcrypto.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/pgcrypto.js +67 -79
- package/dist/adapters/postgresql/tools/pgcrypto.js.map +1 -1
- package/dist/adapters/postgresql/tools/postgis/advanced.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/postgis/advanced.js +30 -25
- package/dist/adapters/postgresql/tools/postgis/advanced.js.map +1 -1
- package/dist/adapters/postgresql/tools/postgis/basic.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/postgis/basic.js +137 -100
- package/dist/adapters/postgresql/tools/postgis/basic.js.map +1 -1
- package/dist/adapters/postgresql/tools/schema/index.d.ts +16 -0
- package/dist/adapters/postgresql/tools/schema/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/schema/index.js +32 -0
- package/dist/adapters/postgresql/tools/schema/index.js.map +1 -0
- package/dist/adapters/postgresql/tools/schema/objects.d.ts +15 -0
- package/dist/adapters/postgresql/tools/schema/objects.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/schema/objects.js +378 -0
- package/dist/adapters/postgresql/tools/schema/objects.js.map +1 -0
- package/dist/adapters/postgresql/tools/schema/views.d.ts +15 -0
- package/dist/adapters/postgresql/tools/schema/views.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/{schema.js → schema/views.js} +91 -339
- package/dist/adapters/postgresql/tools/schema/views.js.map +1 -0
- package/dist/adapters/postgresql/tools/stats/advanced.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/stats/advanced.js +40 -235
- package/dist/adapters/postgresql/tools/stats/advanced.js.map +1 -1
- package/dist/adapters/postgresql/tools/stats/basic.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/stats/basic.js +45 -30
- package/dist/adapters/postgresql/tools/stats/basic.js.map +1 -1
- package/dist/adapters/postgresql/tools/stats/math-utils.d.ts +33 -0
- package/dist/adapters/postgresql/tools/stats/math-utils.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/stats/math-utils.js +225 -0
- package/dist/adapters/postgresql/tools/stats/math-utils.js.map +1 -0
- package/dist/adapters/postgresql/tools/text/index.d.ts +16 -0
- package/dist/adapters/postgresql/tools/text/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/text/index.js +33 -0
- package/dist/adapters/postgresql/tools/text/index.js.map +1 -0
- package/dist/adapters/postgresql/tools/text/matching.d.ts +17 -0
- package/dist/adapters/postgresql/tools/text/matching.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/text/matching.js +565 -0
- package/dist/adapters/postgresql/tools/text/matching.js.map +1 -0
- package/dist/adapters/postgresql/tools/text/search.d.ts +17 -0
- package/dist/adapters/postgresql/tools/text/search.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/text/search.js +653 -0
- package/dist/adapters/postgresql/tools/text/search.js.map +1 -0
- package/dist/adapters/postgresql/tools/transactions.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/transactions.js +11 -27
- package/dist/adapters/postgresql/tools/transactions.js.map +1 -1
- package/dist/adapters/postgresql/tools/vector/{basic.d.ts → data.d.ts} +10 -8
- package/dist/adapters/postgresql/tools/vector/data.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/vector/data.js +540 -0
- package/dist/adapters/postgresql/tools/vector/data.js.map +1 -0
- package/dist/adapters/postgresql/tools/vector/index.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/vector/index.js +6 -2
- package/dist/adapters/postgresql/tools/vector/index.js.map +1 -1
- package/dist/adapters/postgresql/tools/vector/management.d.ts +11 -0
- package/dist/adapters/postgresql/tools/vector/management.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/vector/management.js +425 -0
- package/dist/adapters/postgresql/tools/vector/management.js.map +1 -0
- package/dist/adapters/postgresql/tools/vector/query.d.ts +14 -0
- package/dist/adapters/postgresql/tools/vector/query.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/vector/query.js +767 -0
- package/dist/adapters/postgresql/tools/vector/query.js.map +1 -0
- package/dist/adapters/postgresql/tools/vector/{advanced.d.ts → search-advanced.d.ts} +4 -5
- package/dist/adapters/postgresql/tools/vector/search-advanced.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/vector/search-advanced.js +626 -0
- package/dist/adapters/postgresql/tools/vector/search-advanced.js.map +1 -0
- package/dist/auth/auth-context.d.ts +28 -0
- package/dist/auth/auth-context.d.ts.map +1 -0
- package/dist/auth/auth-context.js +37 -0
- package/dist/auth/auth-context.js.map +1 -0
- package/dist/auth/scope-map.d.ts +20 -0
- package/dist/auth/scope-map.d.ts.map +1 -0
- package/dist/auth/scope-map.js +40 -0
- package/dist/auth/scope-map.js.map +1 -0
- package/dist/auth/scopes.d.ts.map +1 -1
- package/dist/auth/scopes.js +2 -0
- package/dist/auth/scopes.js.map +1 -1
- package/dist/cli/args.d.ts +3 -2
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +4 -3
- package/dist/cli/args.js.map +1 -1
- package/dist/cli.js +11 -5
- package/dist/cli.js.map +1 -1
- package/dist/codemode/api/aliases.d.ts +14 -0
- package/dist/codemode/api/aliases.d.ts.map +1 -0
- package/dist/codemode/api/aliases.js +503 -0
- package/dist/codemode/api/aliases.js.map +1 -0
- package/dist/codemode/api/group-api.d.ts +23 -0
- package/dist/codemode/api/group-api.d.ts.map +1 -0
- package/dist/codemode/api/group-api.js +179 -0
- package/dist/codemode/api/group-api.js.map +1 -0
- package/dist/codemode/{api.d.ts → api/index.d.ts} +5 -4
- package/dist/codemode/api/index.d.ts.map +1 -0
- package/dist/codemode/api/index.js +192 -0
- package/dist/codemode/api/index.js.map +1 -0
- package/dist/codemode/api/maps.d.ts +47 -0
- package/dist/codemode/api/maps.d.ts.map +1 -0
- package/dist/codemode/api/maps.js +523 -0
- package/dist/codemode/api/maps.js.map +1 -0
- package/dist/codemode/api/normalize.d.ts +13 -0
- package/dist/codemode/api/normalize.d.ts.map +1 -0
- package/dist/codemode/api/normalize.js +120 -0
- package/dist/codemode/api/normalize.js.map +1 -0
- package/dist/codemode/index.d.ts +1 -3
- package/dist/codemode/index.d.ts.map +1 -1
- package/dist/codemode/index.js +1 -5
- package/dist/codemode/index.js.map +1 -1
- package/dist/codemode/sandbox.d.ts +14 -1
- package/dist/codemode/sandbox.d.ts.map +1 -1
- package/dist/codemode/sandbox.js +66 -44
- package/dist/codemode/sandbox.js.map +1 -1
- package/dist/codemode/types.d.ts.map +1 -1
- package/dist/codemode/types.js +3 -0
- package/dist/codemode/types.js.map +1 -1
- package/dist/constants/ServerInstructions.d.ts +5 -1
- package/dist/constants/ServerInstructions.d.ts.map +1 -1
- package/dist/constants/ServerInstructions.js +91 -43
- package/dist/constants/ServerInstructions.js.map +1 -1
- package/dist/filtering/ToolConstants.d.ts +22 -19
- package/dist/filtering/ToolConstants.d.ts.map +1 -1
- package/dist/filtering/ToolConstants.js +48 -37
- package/dist/filtering/ToolConstants.js.map +1 -1
- package/dist/filtering/ToolFilter.d.ts.map +1 -1
- package/dist/filtering/ToolFilter.js +10 -13
- package/dist/filtering/ToolFilter.js.map +1 -1
- package/dist/pool/ConnectionPool.js +1 -1
- package/dist/pool/ConnectionPool.js.map +1 -1
- package/dist/server/McpServer.d.ts +1 -1
- package/dist/server/McpServer.d.ts.map +1 -1
- package/dist/server/McpServer.js +1 -2
- package/dist/server/McpServer.js.map +1 -1
- package/dist/transports/http.d.ts +44 -10
- package/dist/transports/http.d.ts.map +1 -1
- package/dist/transports/http.js +327 -40
- package/dist/transports/http.js.map +1 -1
- package/dist/types/filtering.d.ts +2 -2
- package/dist/types/filtering.d.ts.map +1 -1
- package/dist/utils/icons.d.ts.map +1 -1
- package/dist/utils/icons.js +5 -0
- package/dist/utils/icons.js.map +1 -1
- package/dist/utils/logger.d.ts +6 -6
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +18 -15
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/progress-utils.d.ts +2 -2
- package/dist/utils/progress-utils.d.ts.map +1 -1
- package/dist/utils/progress-utils.js +2 -3
- package/dist/utils/progress-utils.js.map +1 -1
- package/dist/utils/version.d.ts +9 -0
- package/dist/utils/version.d.ts.map +1 -0
- package/dist/utils/version.js +12 -0
- package/dist/utils/version.js.map +1 -0
- package/dist/utils/where-clause.d.ts +4 -0
- package/dist/utils/where-clause.d.ts.map +1 -1
- package/dist/utils/where-clause.js +40 -0
- package/dist/utils/where-clause.js.map +1 -1
- package/package.json +19 -14
- package/dist/adapters/postgresql/schemas/core.d.ts.map +0 -1
- package/dist/adapters/postgresql/schemas/core.js.map +0 -1
- package/dist/adapters/postgresql/schemas/extensions.d.ts +0 -833
- package/dist/adapters/postgresql/schemas/extensions.d.ts.map +0 -1
- package/dist/adapters/postgresql/schemas/extensions.js +0 -1170
- package/dist/adapters/postgresql/schemas/extensions.js.map +0 -1
- package/dist/adapters/postgresql/schemas/jsonb.d.ts +0 -533
- package/dist/adapters/postgresql/schemas/jsonb.d.ts.map +0 -1
- package/dist/adapters/postgresql/schemas/jsonb.js +0 -790
- package/dist/adapters/postgresql/schemas/jsonb.js.map +0 -1
- package/dist/adapters/postgresql/schemas/postgis.d.ts.map +0 -1
- package/dist/adapters/postgresql/schemas/postgis.js.map +0 -1
- package/dist/adapters/postgresql/schemas/stats.d.ts.map +0 -1
- package/dist/adapters/postgresql/schemas/stats.js.map +0 -1
- package/dist/adapters/postgresql/tools/citext.d.ts +0 -18
- package/dist/adapters/postgresql/tools/citext.d.ts.map +0 -1
- package/dist/adapters/postgresql/tools/citext.js.map +0 -1
- package/dist/adapters/postgresql/tools/jsonb/advanced.d.ts.map +0 -1
- package/dist/adapters/postgresql/tools/jsonb/advanced.js.map +0 -1
- package/dist/adapters/postgresql/tools/jsonb/basic.d.ts +0 -20
- package/dist/adapters/postgresql/tools/jsonb/basic.d.ts.map +0 -1
- package/dist/adapters/postgresql/tools/jsonb/basic.js +0 -915
- package/dist/adapters/postgresql/tools/jsonb/basic.js.map +0 -1
- package/dist/adapters/postgresql/tools/monitoring.d.ts +0 -13
- package/dist/adapters/postgresql/tools/monitoring.d.ts.map +0 -1
- package/dist/adapters/postgresql/tools/monitoring.js.map +0 -1
- package/dist/adapters/postgresql/tools/partitioning.d.ts +0 -13
- package/dist/adapters/postgresql/tools/partitioning.d.ts.map +0 -1
- package/dist/adapters/postgresql/tools/partitioning.js.map +0 -1
- package/dist/adapters/postgresql/tools/schema.d.ts +0 -13
- package/dist/adapters/postgresql/tools/schema.d.ts.map +0 -1
- package/dist/adapters/postgresql/tools/schema.js.map +0 -1
- package/dist/adapters/postgresql/tools/text.d.ts +0 -13
- package/dist/adapters/postgresql/tools/text.d.ts.map +0 -1
- package/dist/adapters/postgresql/tools/text.js +0 -903
- package/dist/adapters/postgresql/tools/text.js.map +0 -1
- package/dist/adapters/postgresql/tools/vector/advanced.d.ts.map +0 -1
- package/dist/adapters/postgresql/tools/vector/advanced.js +0 -958
- package/dist/adapters/postgresql/tools/vector/advanced.js.map +0 -1
- package/dist/adapters/postgresql/tools/vector/basic.d.ts.map +0 -1
- package/dist/adapters/postgresql/tools/vector/basic.js +0 -1165
- package/dist/adapters/postgresql/tools/vector/basic.js.map +0 -1
- package/dist/codemode/api.d.ts.map +0 -1
- package/dist/codemode/api.js +0 -1510
- package/dist/codemode/api.js.map +0 -1
- package/dist/codemode/sandbox-factory.d.ts +0 -72
- package/dist/codemode/sandbox-factory.d.ts.map +0 -1
- package/dist/codemode/sandbox-factory.js +0 -88
- package/dist/codemode/sandbox-factory.js.map +0 -1
- package/dist/codemode/worker-sandbox.d.ts +0 -82
- package/dist/codemode/worker-sandbox.d.ts.map +0 -1
- package/dist/codemode/worker-sandbox.js +0 -244
- package/dist/codemode/worker-sandbox.js.map +0 -1
- package/dist/codemode/worker-script.d.ts +0 -8
- package/dist/codemode/worker-script.d.ts.map +0 -1
- package/dist/codemode/worker-script.js +0 -113
- package/dist/codemode/worker-script.js.map +0 -1
|
@@ -7,12 +7,13 @@ import { z } from "zod";
|
|
|
7
7
|
import { readOnly } from "../../../../utils/annotations.js";
|
|
8
8
|
import { getToolIcons } from "../../../../utils/icons.js";
|
|
9
9
|
import { formatPostgresError } from "../core/error-helpers.js";
|
|
10
|
+
import { sanitizeWhereClause } from "../../../../utils/where-clause.js";
|
|
10
11
|
import { sanitizeIdentifier, sanitizeTableName, } from "../../../../utils/identifiers.js";
|
|
11
|
-
import { JsonbValidatePathOutputSchema, JsonbMergeOutputSchema, JsonbNormalizeOutputSchema, JsonbDiffOutputSchema,
|
|
12
|
+
import { JsonbValidatePathOutputSchema, JsonbMergeOutputSchema, JsonbNormalizeOutputSchema, JsonbDiffOutputSchema,
|
|
12
13
|
// Base schemas for MCP visibility (Split Schema pattern)
|
|
13
|
-
JsonbNormalizeSchemaBase,
|
|
14
|
+
JsonbNormalizeSchemaBase,
|
|
14
15
|
// Full schemas (with preprocess - for handler parsing)
|
|
15
|
-
JsonbNormalizeSchema,
|
|
16
|
+
JsonbNormalizeSchema, } from "../../schemas/index.js";
|
|
16
17
|
/**
|
|
17
18
|
* Convert value to a valid JSON string for PostgreSQL's ::jsonb cast
|
|
18
19
|
* Always uses JSON.stringify to ensure proper encoding
|
|
@@ -29,7 +30,7 @@ export function createJsonbValidatePathTool(adapter) {
|
|
|
29
30
|
description: "Validate a JSONPath expression and test it against sample data. Supports vars for parameterized paths.",
|
|
30
31
|
group: "jsonb",
|
|
31
32
|
inputSchema: z.object({
|
|
32
|
-
path: z.string().describe("JSONPath expression to validate"),
|
|
33
|
+
path: z.string().optional().describe("JSONPath expression to validate"),
|
|
33
34
|
testValue: z
|
|
34
35
|
.unknown()
|
|
35
36
|
.optional()
|
|
@@ -45,6 +46,14 @@ export function createJsonbValidatePathTool(adapter) {
|
|
|
45
46
|
handler: async (params, _context) => {
|
|
46
47
|
const parsed = params;
|
|
47
48
|
try {
|
|
49
|
+
if (!parsed.path ||
|
|
50
|
+
typeof parsed.path !== "string" ||
|
|
51
|
+
parsed.path.trim() === "") {
|
|
52
|
+
return {
|
|
53
|
+
success: false,
|
|
54
|
+
error: "Validation error: path is required and must be a non-empty string",
|
|
55
|
+
};
|
|
56
|
+
}
|
|
48
57
|
if (parsed.testValue !== undefined) {
|
|
49
58
|
const varsJson = parsed.vars ? JSON.stringify(parsed.vars) : "{}";
|
|
50
59
|
const sql = `SELECT jsonb_path_query($1::jsonb, $2::jsonpath, $3::jsonb) as result`;
|
|
@@ -230,7 +239,9 @@ export function createJsonbNormalizeTool(adapter) {
|
|
|
230
239
|
if (!table || !column) {
|
|
231
240
|
return { success: false, error: "table and column are required" };
|
|
232
241
|
}
|
|
233
|
-
const whereClause = parsed.where
|
|
242
|
+
const whereClause = parsed.where
|
|
243
|
+
? ` WHERE ${sanitizeWhereClause(parsed.where)}`
|
|
244
|
+
: "";
|
|
234
245
|
const mode = parsed.mode ?? "keys";
|
|
235
246
|
// Validate mode parameter
|
|
236
247
|
const validModes = ["keys", "array", "pairs", "flatten"];
|
|
@@ -284,22 +295,22 @@ export function createJsonbNormalizeTool(adapter) {
|
|
|
284
295
|
}
|
|
285
296
|
else if (mode === "flatten") {
|
|
286
297
|
sql = `
|
|
287
|
-
WITH RECURSIVE
|
|
298
|
+
WITH RECURSIVE
|
|
288
299
|
source_rows AS (
|
|
289
300
|
SELECT ${rowIdExpr} as ${rowIdAlias}, ${columnName} as doc
|
|
290
301
|
FROM ${tableName}${whereClause}
|
|
291
302
|
),
|
|
292
303
|
flattened AS (
|
|
293
|
-
SELECT
|
|
304
|
+
SELECT
|
|
294
305
|
sr.${rowIdAlias},
|
|
295
306
|
kv.key as path,
|
|
296
307
|
kv.value,
|
|
297
308
|
jsonb_typeof(kv.value) as value_type
|
|
298
309
|
FROM source_rows sr, jsonb_each(sr.doc) kv
|
|
299
|
-
|
|
310
|
+
|
|
300
311
|
UNION ALL
|
|
301
|
-
|
|
302
|
-
SELECT
|
|
312
|
+
|
|
313
|
+
SELECT
|
|
303
314
|
f.${rowIdAlias},
|
|
304
315
|
f.path || '.' || kv.key,
|
|
305
316
|
kv.value,
|
|
@@ -307,7 +318,7 @@ export function createJsonbNormalizeTool(adapter) {
|
|
|
307
318
|
FROM flattened f, jsonb_each(f.value) kv
|
|
308
319
|
WHERE jsonb_typeof(f.value) = 'object'
|
|
309
320
|
)
|
|
310
|
-
SELECT ${rowIdAlias}, path as key, value, value_type FROM flattened
|
|
321
|
+
SELECT ${rowIdAlias}, path as key, value, value_type FROM flattened
|
|
311
322
|
WHERE value_type != 'object' OR value = '{}'::jsonb
|
|
312
323
|
ORDER BY ${rowIdAlias}, path
|
|
313
324
|
`;
|
|
@@ -363,6 +374,18 @@ export function createJsonbNormalizeTool(adapter) {
|
|
|
363
374
|
* Note: Uses jsonb_each() which requires object inputs, not arrays or primitives
|
|
364
375
|
*/
|
|
365
376
|
// Schema for pg_jsonb_diff - requires objects (not arrays or primitives)
|
|
377
|
+
// Base schema for MCP visibility (optional params to avoid MCP framework Zod rejection)
|
|
378
|
+
const JsonbDiffSchemaBase = z.object({
|
|
379
|
+
doc1: z
|
|
380
|
+
.record(z.string(), z.unknown())
|
|
381
|
+
.optional()
|
|
382
|
+
.describe("First JSONB object to compare"),
|
|
383
|
+
doc2: z
|
|
384
|
+
.record(z.string(), z.unknown())
|
|
385
|
+
.optional()
|
|
386
|
+
.describe("Second JSONB object to compare"),
|
|
387
|
+
});
|
|
388
|
+
// Internal schema for handler validation (required fields)
|
|
366
389
|
const JsonbDiffSchema = z.object({
|
|
367
390
|
doc1: z
|
|
368
391
|
.record(z.string(), z.unknown())
|
|
@@ -376,7 +399,7 @@ export function createJsonbDiffTool(adapter) {
|
|
|
376
399
|
name: "pg_jsonb_diff",
|
|
377
400
|
description: "Compare two JSONB objects. Returns top-level key differences only (shallow comparison, not recursive).",
|
|
378
401
|
group: "jsonb",
|
|
379
|
-
inputSchema:
|
|
402
|
+
inputSchema: JsonbDiffSchemaBase,
|
|
380
403
|
outputSchema: JsonbDiffOutputSchema,
|
|
381
404
|
annotations: readOnly("JSONB Diff"),
|
|
382
405
|
icons: getToolIcons("jsonb", readOnly("JSONB Diff")),
|
|
@@ -393,14 +416,14 @@ export function createJsonbDiffTool(adapter) {
|
|
|
393
416
|
};
|
|
394
417
|
}
|
|
395
418
|
const sql = `
|
|
396
|
-
WITH
|
|
419
|
+
WITH
|
|
397
420
|
j1 AS (SELECT key, value FROM jsonb_each($1::jsonb)),
|
|
398
421
|
j2 AS (SELECT key, value FROM jsonb_each($2::jsonb))
|
|
399
|
-
SELECT
|
|
422
|
+
SELECT
|
|
400
423
|
COALESCE(j1.key, j2.key) as key,
|
|
401
424
|
j1.value as value1,
|
|
402
425
|
j2.value as value2,
|
|
403
|
-
CASE
|
|
426
|
+
CASE
|
|
404
427
|
WHEN j1.key IS NULL THEN 'added'
|
|
405
428
|
WHEN j2.key IS NULL THEN 'removed'
|
|
406
429
|
WHEN j1.value = j2.value THEN 'unchanged'
|
|
@@ -431,349 +454,4 @@ export function createJsonbDiffTool(adapter) {
|
|
|
431
454
|
},
|
|
432
455
|
};
|
|
433
456
|
}
|
|
434
|
-
|
|
435
|
-
* Suggest JSONB indexes based on query patterns
|
|
436
|
-
*/
|
|
437
|
-
export function createJsonbIndexSuggestTool(adapter) {
|
|
438
|
-
return {
|
|
439
|
-
name: "pg_jsonb_index_suggest",
|
|
440
|
-
description: "Analyze JSONB column and suggest indexes. Only works on object-type JSONB (not arrays).",
|
|
441
|
-
group: "jsonb",
|
|
442
|
-
inputSchema: JsonbIndexSuggestSchemaBase,
|
|
443
|
-
outputSchema: JsonbIndexSuggestOutputSchema,
|
|
444
|
-
annotations: readOnly("JSONB Index Suggest"),
|
|
445
|
-
icons: getToolIcons("jsonb", readOnly("JSONB Index Suggest")),
|
|
446
|
-
handler: async (params, _context) => {
|
|
447
|
-
try {
|
|
448
|
-
// Parse with preprocess schema to resolve aliases (tableName→table, col→column, filter→where)
|
|
449
|
-
const parsed = JsonbIndexSuggestSchema.parse(params);
|
|
450
|
-
const table = parsed.table;
|
|
451
|
-
const column = parsed.column;
|
|
452
|
-
if (!table || !column) {
|
|
453
|
-
return { success: false, error: "table and column are required" };
|
|
454
|
-
}
|
|
455
|
-
const sample = parsed.sampleSize ?? 1000;
|
|
456
|
-
const whereClause = parsed.where ? ` WHERE ${parsed.where}` : "";
|
|
457
|
-
// Validate schema existence for non-public schemas
|
|
458
|
-
const schemaName = parsed.schema ?? "public";
|
|
459
|
-
if (schemaName !== "public") {
|
|
460
|
-
const schemaResult = await adapter.executeQuery(`SELECT 1 FROM information_schema.schemata WHERE schema_name = $1`, [schemaName]);
|
|
461
|
-
if (!schemaResult.rows || schemaResult.rows.length === 0) {
|
|
462
|
-
return {
|
|
463
|
-
success: false,
|
|
464
|
-
error: `Schema '${schemaName}' does not exist. Use pg_list_objects with type 'table' to see available schemas.`,
|
|
465
|
-
};
|
|
466
|
-
}
|
|
467
|
-
}
|
|
468
|
-
const tableName = sanitizeTableName(table, schemaName);
|
|
469
|
-
const columnName = sanitizeIdentifier(column);
|
|
470
|
-
const keySql = `
|
|
471
|
-
SELECT key, COUNT(*) as frequency,
|
|
472
|
-
jsonb_typeof(value) as value_type
|
|
473
|
-
FROM (SELECT * FROM ${tableName}${whereClause} LIMIT ${String(sample)}) t,
|
|
474
|
-
jsonb_each(${columnName})
|
|
475
|
-
GROUP BY key, jsonb_typeof(value)
|
|
476
|
-
ORDER BY frequency DESC
|
|
477
|
-
LIMIT 20
|
|
478
|
-
`;
|
|
479
|
-
const keyResult = await adapter.executeQuery(keySql);
|
|
480
|
-
const indexSql = `
|
|
481
|
-
SELECT indexname, indexdef
|
|
482
|
-
FROM pg_indexes
|
|
483
|
-
WHERE tablename = $1
|
|
484
|
-
AND indexdef LIKE '%' || $2 || '%'
|
|
485
|
-
`;
|
|
486
|
-
const indexResult = await adapter.executeQuery(indexSql, [
|
|
487
|
-
parsed.table,
|
|
488
|
-
parsed.column,
|
|
489
|
-
]);
|
|
490
|
-
const recommendations = [];
|
|
491
|
-
const keys = (keyResult.rows ?? []).map((row) => ({
|
|
492
|
-
key: row["key"],
|
|
493
|
-
frequency: Number(row["frequency"]),
|
|
494
|
-
value_type: row["value_type"],
|
|
495
|
-
}));
|
|
496
|
-
if ((indexResult.rows?.length ?? 0) === 0 && keys.length > 0) {
|
|
497
|
-
recommendations.push(`CREATE INDEX ON ${tableName} USING GIN (${columnName})`);
|
|
498
|
-
}
|
|
499
|
-
for (const keyInfo of keys.slice(0, 5)) {
|
|
500
|
-
if (keyInfo.frequency > sample * 0.5) {
|
|
501
|
-
recommendations.push(`CREATE INDEX ON ${tableName} ((${columnName} ->> '${keyInfo.key.replace(/'/g, "''")}'))`);
|
|
502
|
-
}
|
|
503
|
-
}
|
|
504
|
-
const response = {
|
|
505
|
-
keyDistribution: keys,
|
|
506
|
-
existingIndexes: indexResult.rows,
|
|
507
|
-
recommendations,
|
|
508
|
-
};
|
|
509
|
-
if (recommendations.length === 0) {
|
|
510
|
-
if ((indexResult.rows?.length ?? 0) > 0) {
|
|
511
|
-
response.hint =
|
|
512
|
-
"No new recommendations - existing indexes already cover this column";
|
|
513
|
-
}
|
|
514
|
-
else if (keys.length === 0) {
|
|
515
|
-
response.hint =
|
|
516
|
-
"No recommendations - table is empty or column has no keys to analyze";
|
|
517
|
-
}
|
|
518
|
-
else {
|
|
519
|
-
response.hint =
|
|
520
|
-
"No recommendations - no keys appeared in >50% of sampled rows";
|
|
521
|
-
}
|
|
522
|
-
}
|
|
523
|
-
return response;
|
|
524
|
-
}
|
|
525
|
-
catch (error) {
|
|
526
|
-
if (error instanceof Error &&
|
|
527
|
-
(error.message.includes("function jsonb_each") ||
|
|
528
|
-
error.message.includes("cannot call jsonb_each"))) {
|
|
529
|
-
return {
|
|
530
|
-
success: false,
|
|
531
|
-
error: `pg_jsonb_index_suggest requires JSONB objects (not arrays). Column may not be JSONB type or contains arrays.`,
|
|
532
|
-
};
|
|
533
|
-
}
|
|
534
|
-
return {
|
|
535
|
-
success: false,
|
|
536
|
-
error: formatPostgresError(error, {
|
|
537
|
-
tool: "pg_jsonb_index_suggest",
|
|
538
|
-
}),
|
|
539
|
-
};
|
|
540
|
-
}
|
|
541
|
-
},
|
|
542
|
-
};
|
|
543
|
-
}
|
|
544
|
-
/**
|
|
545
|
-
* Scan JSONB for security issues
|
|
546
|
-
*/
|
|
547
|
-
export function createJsonbSecurityScanTool(adapter) {
|
|
548
|
-
return {
|
|
549
|
-
name: "pg_jsonb_security_scan",
|
|
550
|
-
description: "Scan JSONB for security issues. Only works on object-type JSONB (not arrays). Use larger sampleSize for thorough scans.",
|
|
551
|
-
group: "jsonb",
|
|
552
|
-
inputSchema: JsonbSecurityScanSchemaBase,
|
|
553
|
-
outputSchema: JsonbSecurityScanOutputSchema,
|
|
554
|
-
annotations: readOnly("JSONB Security Scan"),
|
|
555
|
-
icons: getToolIcons("jsonb", readOnly("JSONB Security Scan")),
|
|
556
|
-
handler: async (params, _context) => {
|
|
557
|
-
try {
|
|
558
|
-
// Parse with preprocess schema to resolve aliases (tableName→table, col→column, filter→where)
|
|
559
|
-
const parsed = JsonbSecurityScanSchema.parse(params);
|
|
560
|
-
const table = parsed.table;
|
|
561
|
-
const column = parsed.column;
|
|
562
|
-
if (!table || !column) {
|
|
563
|
-
return { success: false, error: "table and column are required" };
|
|
564
|
-
}
|
|
565
|
-
const sample = parsed.sampleSize ?? 100;
|
|
566
|
-
const whereClause = parsed.where ? ` WHERE ${parsed.where}` : "";
|
|
567
|
-
const issues = [];
|
|
568
|
-
// Validate schema existence for non-public schemas
|
|
569
|
-
const schemaName = parsed.schema ?? "public";
|
|
570
|
-
if (schemaName !== "public") {
|
|
571
|
-
const schemaResult = await adapter.executeQuery(`SELECT 1 FROM information_schema.schemata WHERE schema_name = $1`, [schemaName]);
|
|
572
|
-
if (!schemaResult.rows || schemaResult.rows.length === 0) {
|
|
573
|
-
return {
|
|
574
|
-
success: false,
|
|
575
|
-
error: `Schema '${schemaName}' does not exist. Use pg_list_objects with type 'table' to see available schemas.`,
|
|
576
|
-
};
|
|
577
|
-
}
|
|
578
|
-
}
|
|
579
|
-
const tableName = sanitizeTableName(table, schemaName);
|
|
580
|
-
const columnName = sanitizeIdentifier(column);
|
|
581
|
-
// Count actual rows scanned
|
|
582
|
-
const countSql = `SELECT COUNT(*) as count FROM (SELECT * FROM ${tableName}${whereClause} LIMIT ${String(sample)}) t`;
|
|
583
|
-
const countResult = await adapter.executeQuery(countSql);
|
|
584
|
-
const actualRowsScanned = Number(countResult.rows?.[0]?.["count"] ?? 0);
|
|
585
|
-
const sensitiveKeysSql = `
|
|
586
|
-
SELECT key, COUNT(*) as count
|
|
587
|
-
FROM (SELECT * FROM ${tableName}${whereClause} LIMIT ${String(sample)}) t,
|
|
588
|
-
jsonb_each_text(${columnName})
|
|
589
|
-
WHERE lower(key) IN ('password', 'secret', 'token', 'api_key', 'apikey',
|
|
590
|
-
'auth', 'credential', 'ssn', 'credit_card', 'cvv')
|
|
591
|
-
GROUP BY key
|
|
592
|
-
`;
|
|
593
|
-
const sensitiveResult = await adapter.executeQuery(sensitiveKeysSql);
|
|
594
|
-
for (const row of (sensitiveResult.rows ?? [])) {
|
|
595
|
-
issues.push({
|
|
596
|
-
type: "sensitive_key",
|
|
597
|
-
key: row.key,
|
|
598
|
-
count: Number(row.count),
|
|
599
|
-
});
|
|
600
|
-
}
|
|
601
|
-
const injectionSql = `
|
|
602
|
-
SELECT key, COUNT(*) as count
|
|
603
|
-
FROM (SELECT * FROM ${tableName}${whereClause} LIMIT ${String(sample)}) t,
|
|
604
|
-
jsonb_each_text(${columnName})
|
|
605
|
-
WHERE value ~* '(\\bSELECT\\s+.+\\bFROM\\b|\\bINSERT\\s+INTO\\b|\\bUPDATE\\s+.+\\bSET\\b|\\bDELETE\\s+FROM\\b|\\bDROP\\s+(TABLE|DATABASE|INDEX)\\b|\\bUNION\\s+(ALL\\s+)?SELECT\\b|--\\s*$|;\\s*(SELECT|INSERT|UPDATE|DELETE))'
|
|
606
|
-
GROUP BY key
|
|
607
|
-
`;
|
|
608
|
-
const injectionResult = await adapter.executeQuery(injectionSql);
|
|
609
|
-
for (const row of (injectionResult.rows ?? [])) {
|
|
610
|
-
issues.push({
|
|
611
|
-
type: "sql_injection_pattern",
|
|
612
|
-
key: row.key,
|
|
613
|
-
count: Number(row.count),
|
|
614
|
-
});
|
|
615
|
-
}
|
|
616
|
-
// XSS pattern detection
|
|
617
|
-
const xssSql = `
|
|
618
|
-
SELECT key, COUNT(*) as count
|
|
619
|
-
FROM (SELECT * FROM ${tableName}${whereClause} LIMIT ${String(sample)}) t,
|
|
620
|
-
jsonb_each_text(${columnName})
|
|
621
|
-
WHERE value ~* '(<script|javascript:|on(click|load|error|mouseover)\\s*=|<iframe|<object|<embed|<svg[^>]+on|<img[^>]+onerror)'
|
|
622
|
-
GROUP BY key
|
|
623
|
-
`;
|
|
624
|
-
const xssResult = await adapter.executeQuery(xssSql);
|
|
625
|
-
for (const row of (xssResult.rows ?? [])) {
|
|
626
|
-
issues.push({
|
|
627
|
-
type: "xss_pattern",
|
|
628
|
-
key: row.key,
|
|
629
|
-
count: Number(row.count),
|
|
630
|
-
});
|
|
631
|
-
}
|
|
632
|
-
return {
|
|
633
|
-
scannedRows: actualRowsScanned,
|
|
634
|
-
issues,
|
|
635
|
-
riskLevel: issues.length === 0 ? "low" : issues.length < 3 ? "medium" : "high",
|
|
636
|
-
};
|
|
637
|
-
}
|
|
638
|
-
catch (error) {
|
|
639
|
-
if (error instanceof Error &&
|
|
640
|
-
(error.message.includes("function jsonb_each") ||
|
|
641
|
-
error.message.includes("cannot call jsonb_each"))) {
|
|
642
|
-
return {
|
|
643
|
-
success: false,
|
|
644
|
-
error: `pg_jsonb_security_scan requires JSONB objects. Column may contain arrays or non-JSONB data.`,
|
|
645
|
-
};
|
|
646
|
-
}
|
|
647
|
-
return {
|
|
648
|
-
success: false,
|
|
649
|
-
error: formatPostgresError(error, {
|
|
650
|
-
tool: "pg_jsonb_security_scan",
|
|
651
|
-
}),
|
|
652
|
-
};
|
|
653
|
-
}
|
|
654
|
-
},
|
|
655
|
-
};
|
|
656
|
-
}
|
|
657
|
-
/**
|
|
658
|
-
* Get JSONB column statistics
|
|
659
|
-
*/
|
|
660
|
-
export function createJsonbStatsTool(adapter) {
|
|
661
|
-
return {
|
|
662
|
-
name: "pg_jsonb_stats",
|
|
663
|
-
description: "Get statistics about JSONB column usage. Note: topKeys only applies to object-type JSONB, not arrays.",
|
|
664
|
-
group: "jsonb",
|
|
665
|
-
inputSchema: JsonbStatsSchemaBase,
|
|
666
|
-
outputSchema: JsonbStatsOutputSchema,
|
|
667
|
-
annotations: readOnly("JSONB Stats"),
|
|
668
|
-
icons: getToolIcons("jsonb", readOnly("JSONB Stats")),
|
|
669
|
-
handler: async (params, _context) => {
|
|
670
|
-
try {
|
|
671
|
-
// Parse with preprocess schema to resolve aliases (tableName→table, col→column, filter→where)
|
|
672
|
-
const parsed = JsonbStatsSchema.parse(params);
|
|
673
|
-
const table = parsed.table;
|
|
674
|
-
const column = parsed.column;
|
|
675
|
-
if (!table || !column) {
|
|
676
|
-
return { success: false, error: "table and column are required" };
|
|
677
|
-
}
|
|
678
|
-
const sample = parsed.sampleSize ?? 1000;
|
|
679
|
-
const whereClause = parsed.where ? ` WHERE ${parsed.where}` : "";
|
|
680
|
-
// Validate schema existence for non-public schemas
|
|
681
|
-
const schemaName = parsed.schema ?? "public";
|
|
682
|
-
if (schemaName !== "public") {
|
|
683
|
-
const schemaResult = await adapter.executeQuery(`SELECT 1 FROM information_schema.schemata WHERE schema_name = $1`, [schemaName]);
|
|
684
|
-
if (!schemaResult.rows || schemaResult.rows.length === 0) {
|
|
685
|
-
return {
|
|
686
|
-
success: false,
|
|
687
|
-
error: `Schema '${schemaName}' does not exist. Use pg_list_objects with type 'table' to see available schemas.`,
|
|
688
|
-
};
|
|
689
|
-
}
|
|
690
|
-
}
|
|
691
|
-
const tableName = sanitizeTableName(table, schemaName);
|
|
692
|
-
const columnName = sanitizeIdentifier(column);
|
|
693
|
-
const basicSql = `
|
|
694
|
-
SELECT
|
|
695
|
-
COUNT(*) as total_rows,
|
|
696
|
-
COUNT(${columnName}) as non_null_count,
|
|
697
|
-
AVG(length(${columnName}::text))::int as avg_size_bytes,
|
|
698
|
-
MAX(length(${columnName}::text)) as max_size_bytes
|
|
699
|
-
FROM (SELECT * FROM ${tableName}${whereClause} LIMIT ${String(sample)}) t
|
|
700
|
-
`;
|
|
701
|
-
const basicResult = await adapter.executeQuery(basicSql);
|
|
702
|
-
const basics = basicResult.rows?.[0];
|
|
703
|
-
const basicsNormalized = basics
|
|
704
|
-
? {
|
|
705
|
-
total_rows: Number(basics["total_rows"]),
|
|
706
|
-
non_null_count: Number(basics["non_null_count"]),
|
|
707
|
-
avg_size_bytes: Number(basics["avg_size_bytes"]),
|
|
708
|
-
max_size_bytes: Number(basics["max_size_bytes"]),
|
|
709
|
-
}
|
|
710
|
-
: undefined;
|
|
711
|
-
const keyLimit = parsed.topKeysLimit ?? 20;
|
|
712
|
-
const keySql = `
|
|
713
|
-
SELECT key, COUNT(*) as frequency
|
|
714
|
-
FROM (SELECT * FROM ${tableName}${whereClause} LIMIT ${String(sample)}) t,
|
|
715
|
-
jsonb_object_keys(${columnName}) key
|
|
716
|
-
GROUP BY key
|
|
717
|
-
ORDER BY frequency DESC
|
|
718
|
-
LIMIT ${String(keyLimit)}
|
|
719
|
-
`;
|
|
720
|
-
let topKeys = [];
|
|
721
|
-
try {
|
|
722
|
-
const keyResult = await adapter.executeQuery(keySql);
|
|
723
|
-
topKeys = (keyResult.rows ?? []).map((row) => ({
|
|
724
|
-
key: row["key"],
|
|
725
|
-
frequency: Number(row["frequency"]),
|
|
726
|
-
}));
|
|
727
|
-
}
|
|
728
|
-
catch (error) {
|
|
729
|
-
// Gracefully handle array columns (jsonb_object_keys fails on arrays)
|
|
730
|
-
if (error instanceof Error &&
|
|
731
|
-
error.message.includes("cannot call jsonb_object_keys")) {
|
|
732
|
-
// Leave topKeys empty for array columns - this is valid
|
|
733
|
-
}
|
|
734
|
-
else {
|
|
735
|
-
throw error; // Re-throw to be caught by outer catch
|
|
736
|
-
}
|
|
737
|
-
}
|
|
738
|
-
const typeSql = `
|
|
739
|
-
SELECT jsonb_typeof(${columnName}) as type, COUNT(*) as count
|
|
740
|
-
FROM (SELECT * FROM ${tableName}${whereClause} LIMIT ${String(sample)}) t
|
|
741
|
-
GROUP BY jsonb_typeof(${columnName})
|
|
742
|
-
`;
|
|
743
|
-
const typeResult = await adapter.executeQuery(typeSql);
|
|
744
|
-
const typeDistribution = (typeResult.rows ?? []).map((row) => ({
|
|
745
|
-
type: row["type"],
|
|
746
|
-
count: Number(row["count"]),
|
|
747
|
-
}));
|
|
748
|
-
const sqlNullCount = typeDistribution.find((t) => t.type === null)?.count ?? 0;
|
|
749
|
-
const hasNullColumns = sqlNullCount > 0;
|
|
750
|
-
const isArrayColumn = typeDistribution.some((t) => t.type === "array");
|
|
751
|
-
let hint;
|
|
752
|
-
if (hasNullColumns) {
|
|
753
|
-
hint =
|
|
754
|
-
"typeDistribution null type represents SQL NULL columns, not JSON null values";
|
|
755
|
-
}
|
|
756
|
-
else if (topKeys.length === 0 && isArrayColumn) {
|
|
757
|
-
hint =
|
|
758
|
-
'topKeys empty for array columns - use pg_jsonb_normalize mode: "array" to analyze elements';
|
|
759
|
-
}
|
|
760
|
-
return {
|
|
761
|
-
basics: basicsNormalized,
|
|
762
|
-
topKeys,
|
|
763
|
-
typeDistribution,
|
|
764
|
-
sqlNullCount,
|
|
765
|
-
hint,
|
|
766
|
-
};
|
|
767
|
-
}
|
|
768
|
-
catch (error) {
|
|
769
|
-
return {
|
|
770
|
-
success: false,
|
|
771
|
-
error: formatPostgresError(error, {
|
|
772
|
-
tool: "pg_jsonb_stats",
|
|
773
|
-
}),
|
|
774
|
-
};
|
|
775
|
-
}
|
|
776
|
-
},
|
|
777
|
-
};
|
|
778
|
-
}
|
|
779
|
-
//# sourceMappingURL=advanced.js.map
|
|
457
|
+
//# sourceMappingURL=transform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../../../src/adapters/postgresql/tools/jsonb/transform.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PostgreSQL JSONB Tools - Write Operations
|
|
3
|
+
*
|
|
4
|
+
* Mutation tools: set, insert, delete, object, array, stripNulls.
|
|
5
|
+
*/
|
|
6
|
+
import type { PostgresAdapter } from "../../PostgresAdapter.js";
|
|
7
|
+
import type { ToolDefinition } from "../../../../types/index.js";
|
|
8
|
+
export declare function createJsonbSetTool(adapter: PostgresAdapter): ToolDefinition;
|
|
9
|
+
export declare function createJsonbInsertTool(adapter: PostgresAdapter): ToolDefinition;
|
|
10
|
+
export declare function createJsonbDeleteTool(adapter: PostgresAdapter): ToolDefinition;
|
|
11
|
+
export declare function createJsonbObjectTool(adapter: PostgresAdapter): ToolDefinition;
|
|
12
|
+
export declare function createJsonbArrayTool(adapter: PostgresAdapter): ToolDefinition;
|
|
13
|
+
export declare function createJsonbStripNullsTool(adapter: PostgresAdapter): ToolDefinition;
|
|
14
|
+
//# sourceMappingURL=write.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/postgresql/tools/jsonb/write.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EACV,cAAc,EAEf,MAAM,4BAA4B,CAAC;AA0BpC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,CAiH3E;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,eAAe,GACvB,cAAc,CA4HhB;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,eAAe,GACvB,cAAc,CA0FhB;AAwBD,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,eAAe,GACvB,cAAc,CA8ChB;AAWD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,CA4C7E;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,eAAe,GACvB,cAAc,CA+DhB"}
|