@neverinfamous/postgres-mcp 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (571) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +515 -0
  3. package/dist/__tests__/mocks/adapter.d.ts +80 -0
  4. package/dist/__tests__/mocks/adapter.d.ts.map +1 -0
  5. package/dist/__tests__/mocks/adapter.js +225 -0
  6. package/dist/__tests__/mocks/adapter.js.map +1 -0
  7. package/dist/__tests__/mocks/index.d.ts +11 -0
  8. package/dist/__tests__/mocks/index.d.ts.map +1 -0
  9. package/dist/__tests__/mocks/index.js +11 -0
  10. package/dist/__tests__/mocks/index.js.map +1 -0
  11. package/dist/__tests__/mocks/pool.d.ts +43 -0
  12. package/dist/__tests__/mocks/pool.d.ts.map +1 -0
  13. package/dist/__tests__/mocks/pool.js +71 -0
  14. package/dist/__tests__/mocks/pool.js.map +1 -0
  15. package/dist/adapters/DatabaseAdapter.d.ts +139 -0
  16. package/dist/adapters/DatabaseAdapter.d.ts.map +1 -0
  17. package/dist/adapters/DatabaseAdapter.js +250 -0
  18. package/dist/adapters/DatabaseAdapter.js.map +1 -0
  19. package/dist/adapters/postgresql/PostgresAdapter.d.ts +119 -0
  20. package/dist/adapters/postgresql/PostgresAdapter.d.ts.map +1 -0
  21. package/dist/adapters/postgresql/PostgresAdapter.js +902 -0
  22. package/dist/adapters/postgresql/PostgresAdapter.js.map +1 -0
  23. package/dist/adapters/postgresql/index.d.ts +5 -0
  24. package/dist/adapters/postgresql/index.d.ts.map +1 -0
  25. package/dist/adapters/postgresql/index.js +5 -0
  26. package/dist/adapters/postgresql/index.js.map +1 -0
  27. package/dist/adapters/postgresql/prompts/backup.d.ts +8 -0
  28. package/dist/adapters/postgresql/prompts/backup.d.ts.map +1 -0
  29. package/dist/adapters/postgresql/prompts/backup.js +132 -0
  30. package/dist/adapters/postgresql/prompts/backup.js.map +1 -0
  31. package/dist/adapters/postgresql/prompts/citext.d.ts +8 -0
  32. package/dist/adapters/postgresql/prompts/citext.d.ts.map +1 -0
  33. package/dist/adapters/postgresql/prompts/citext.js +227 -0
  34. package/dist/adapters/postgresql/prompts/citext.js.map +1 -0
  35. package/dist/adapters/postgresql/prompts/extensionSetup.d.ts +8 -0
  36. package/dist/adapters/postgresql/prompts/extensionSetup.d.ts.map +1 -0
  37. package/dist/adapters/postgresql/prompts/extensionSetup.js +282 -0
  38. package/dist/adapters/postgresql/prompts/extensionSetup.js.map +1 -0
  39. package/dist/adapters/postgresql/prompts/health.d.ts +8 -0
  40. package/dist/adapters/postgresql/prompts/health.d.ts.map +1 -0
  41. package/dist/adapters/postgresql/prompts/health.js +118 -0
  42. package/dist/adapters/postgresql/prompts/health.js.map +1 -0
  43. package/dist/adapters/postgresql/prompts/index.d.ts +13 -0
  44. package/dist/adapters/postgresql/prompts/index.d.ts.map +1 -0
  45. package/dist/adapters/postgresql/prompts/index.js +308 -0
  46. package/dist/adapters/postgresql/prompts/index.js.map +1 -0
  47. package/dist/adapters/postgresql/prompts/indexTuning.d.ts +8 -0
  48. package/dist/adapters/postgresql/prompts/indexTuning.d.ts.map +1 -0
  49. package/dist/adapters/postgresql/prompts/indexTuning.js +130 -0
  50. package/dist/adapters/postgresql/prompts/indexTuning.js.map +1 -0
  51. package/dist/adapters/postgresql/prompts/kcache.d.ts +8 -0
  52. package/dist/adapters/postgresql/prompts/kcache.d.ts.map +1 -0
  53. package/dist/adapters/postgresql/prompts/kcache.js +227 -0
  54. package/dist/adapters/postgresql/prompts/kcache.js.map +1 -0
  55. package/dist/adapters/postgresql/prompts/ltree.d.ts +8 -0
  56. package/dist/adapters/postgresql/prompts/ltree.d.ts.map +1 -0
  57. package/dist/adapters/postgresql/prompts/ltree.js +286 -0
  58. package/dist/adapters/postgresql/prompts/ltree.js.map +1 -0
  59. package/dist/adapters/postgresql/prompts/partman.d.ts +8 -0
  60. package/dist/adapters/postgresql/prompts/partman.d.ts.map +1 -0
  61. package/dist/adapters/postgresql/prompts/partman.js +211 -0
  62. package/dist/adapters/postgresql/prompts/partman.js.map +1 -0
  63. package/dist/adapters/postgresql/prompts/pgcron.d.ts +8 -0
  64. package/dist/adapters/postgresql/prompts/pgcron.d.ts.map +1 -0
  65. package/dist/adapters/postgresql/prompts/pgcron.js +233 -0
  66. package/dist/adapters/postgresql/prompts/pgcron.js.map +1 -0
  67. package/dist/adapters/postgresql/prompts/pgcrypto.d.ts +8 -0
  68. package/dist/adapters/postgresql/prompts/pgcrypto.d.ts.map +1 -0
  69. package/dist/adapters/postgresql/prompts/pgcrypto.js +299 -0
  70. package/dist/adapters/postgresql/prompts/pgcrypto.js.map +1 -0
  71. package/dist/adapters/postgresql/prompts/pgvector.d.ts +8 -0
  72. package/dist/adapters/postgresql/prompts/pgvector.d.ts.map +1 -0
  73. package/dist/adapters/postgresql/prompts/pgvector.js +148 -0
  74. package/dist/adapters/postgresql/prompts/pgvector.js.map +1 -0
  75. package/dist/adapters/postgresql/prompts/postgis.d.ts +8 -0
  76. package/dist/adapters/postgresql/prompts/postgis.d.ts.map +1 -0
  77. package/dist/adapters/postgresql/prompts/postgis.js +200 -0
  78. package/dist/adapters/postgresql/prompts/postgis.js.map +1 -0
  79. package/dist/adapters/postgresql/resources/activity.d.ts +9 -0
  80. package/dist/adapters/postgresql/resources/activity.d.ts.map +1 -0
  81. package/dist/adapters/postgresql/resources/activity.js +118 -0
  82. package/dist/adapters/postgresql/resources/activity.js.map +1 -0
  83. package/dist/adapters/postgresql/resources/capabilities.d.ts +9 -0
  84. package/dist/adapters/postgresql/resources/capabilities.d.ts.map +1 -0
  85. package/dist/adapters/postgresql/resources/capabilities.js +182 -0
  86. package/dist/adapters/postgresql/resources/capabilities.js.map +1 -0
  87. package/dist/adapters/postgresql/resources/cron.d.ts +9 -0
  88. package/dist/adapters/postgresql/resources/cron.d.ts.map +1 -0
  89. package/dist/adapters/postgresql/resources/cron.js +156 -0
  90. package/dist/adapters/postgresql/resources/cron.js.map +1 -0
  91. package/dist/adapters/postgresql/resources/crypto.d.ts +9 -0
  92. package/dist/adapters/postgresql/resources/crypto.d.ts.map +1 -0
  93. package/dist/adapters/postgresql/resources/crypto.js +191 -0
  94. package/dist/adapters/postgresql/resources/crypto.js.map +1 -0
  95. package/dist/adapters/postgresql/resources/extensions.d.ts +9 -0
  96. package/dist/adapters/postgresql/resources/extensions.d.ts.map +1 -0
  97. package/dist/adapters/postgresql/resources/extensions.js +85 -0
  98. package/dist/adapters/postgresql/resources/extensions.js.map +1 -0
  99. package/dist/adapters/postgresql/resources/health.d.ts +9 -0
  100. package/dist/adapters/postgresql/resources/health.d.ts.map +1 -0
  101. package/dist/adapters/postgresql/resources/health.js +185 -0
  102. package/dist/adapters/postgresql/resources/health.js.map +1 -0
  103. package/dist/adapters/postgresql/resources/index.d.ts +40 -0
  104. package/dist/adapters/postgresql/resources/index.d.ts.map +1 -0
  105. package/dist/adapters/postgresql/resources/index.js +87 -0
  106. package/dist/adapters/postgresql/resources/index.js.map +1 -0
  107. package/dist/adapters/postgresql/resources/indexes.d.ts +9 -0
  108. package/dist/adapters/postgresql/resources/indexes.d.ts.map +1 -0
  109. package/dist/adapters/postgresql/resources/indexes.js +130 -0
  110. package/dist/adapters/postgresql/resources/indexes.js.map +1 -0
  111. package/dist/adapters/postgresql/resources/kcache.d.ts +9 -0
  112. package/dist/adapters/postgresql/resources/kcache.d.ts.map +1 -0
  113. package/dist/adapters/postgresql/resources/kcache.js +219 -0
  114. package/dist/adapters/postgresql/resources/kcache.js.map +1 -0
  115. package/dist/adapters/postgresql/resources/locks.d.ts +9 -0
  116. package/dist/adapters/postgresql/resources/locks.d.ts.map +1 -0
  117. package/dist/adapters/postgresql/resources/locks.js +89 -0
  118. package/dist/adapters/postgresql/resources/locks.js.map +1 -0
  119. package/dist/adapters/postgresql/resources/partman.d.ts +9 -0
  120. package/dist/adapters/postgresql/resources/partman.d.ts.map +1 -0
  121. package/dist/adapters/postgresql/resources/partman.js +149 -0
  122. package/dist/adapters/postgresql/resources/partman.js.map +1 -0
  123. package/dist/adapters/postgresql/resources/performance.d.ts +9 -0
  124. package/dist/adapters/postgresql/resources/performance.d.ts.map +1 -0
  125. package/dist/adapters/postgresql/resources/performance.js +170 -0
  126. package/dist/adapters/postgresql/resources/performance.js.map +1 -0
  127. package/dist/adapters/postgresql/resources/pool.d.ts +9 -0
  128. package/dist/adapters/postgresql/resources/pool.d.ts.map +1 -0
  129. package/dist/adapters/postgresql/resources/pool.js +93 -0
  130. package/dist/adapters/postgresql/resources/pool.js.map +1 -0
  131. package/dist/adapters/postgresql/resources/postgis.d.ts +9 -0
  132. package/dist/adapters/postgresql/resources/postgis.d.ts.map +1 -0
  133. package/dist/adapters/postgresql/resources/postgis.js +232 -0
  134. package/dist/adapters/postgresql/resources/postgis.js.map +1 -0
  135. package/dist/adapters/postgresql/resources/replication.d.ts +9 -0
  136. package/dist/adapters/postgresql/resources/replication.d.ts.map +1 -0
  137. package/dist/adapters/postgresql/resources/replication.js +126 -0
  138. package/dist/adapters/postgresql/resources/replication.js.map +1 -0
  139. package/dist/adapters/postgresql/resources/schema.d.ts +10 -0
  140. package/dist/adapters/postgresql/resources/schema.d.ts.map +1 -0
  141. package/dist/adapters/postgresql/resources/schema.js +80 -0
  142. package/dist/adapters/postgresql/resources/schema.js.map +1 -0
  143. package/dist/adapters/postgresql/resources/settings.d.ts +9 -0
  144. package/dist/adapters/postgresql/resources/settings.d.ts.map +1 -0
  145. package/dist/adapters/postgresql/resources/settings.js +184 -0
  146. package/dist/adapters/postgresql/resources/settings.js.map +1 -0
  147. package/dist/adapters/postgresql/resources/stats.d.ts +10 -0
  148. package/dist/adapters/postgresql/resources/stats.d.ts.map +1 -0
  149. package/dist/adapters/postgresql/resources/stats.js +124 -0
  150. package/dist/adapters/postgresql/resources/stats.js.map +1 -0
  151. package/dist/adapters/postgresql/resources/tables.d.ts +9 -0
  152. package/dist/adapters/postgresql/resources/tables.d.ts.map +1 -0
  153. package/dist/adapters/postgresql/resources/tables.js +20 -0
  154. package/dist/adapters/postgresql/resources/tables.js.map +1 -0
  155. package/dist/adapters/postgresql/resources/vacuum.d.ts +9 -0
  156. package/dist/adapters/postgresql/resources/vacuum.d.ts.map +1 -0
  157. package/dist/adapters/postgresql/resources/vacuum.js +122 -0
  158. package/dist/adapters/postgresql/resources/vacuum.js.map +1 -0
  159. package/dist/adapters/postgresql/resources/vector.d.ts +9 -0
  160. package/dist/adapters/postgresql/resources/vector.d.ts.map +1 -0
  161. package/dist/adapters/postgresql/resources/vector.js +185 -0
  162. package/dist/adapters/postgresql/resources/vector.js.map +1 -0
  163. package/dist/adapters/postgresql/schemas/admin.d.ts +74 -0
  164. package/dist/adapters/postgresql/schemas/admin.d.ts.map +1 -0
  165. package/dist/adapters/postgresql/schemas/admin.js +180 -0
  166. package/dist/adapters/postgresql/schemas/admin.js.map +1 -0
  167. package/dist/adapters/postgresql/schemas/backup.d.ts +68 -0
  168. package/dist/adapters/postgresql/schemas/backup.d.ts.map +1 -0
  169. package/dist/adapters/postgresql/schemas/backup.js +114 -0
  170. package/dist/adapters/postgresql/schemas/backup.js.map +1 -0
  171. package/dist/adapters/postgresql/schemas/core.d.ts +443 -0
  172. package/dist/adapters/postgresql/schemas/core.d.ts.map +1 -0
  173. package/dist/adapters/postgresql/schemas/core.js +628 -0
  174. package/dist/adapters/postgresql/schemas/core.js.map +1 -0
  175. package/dist/adapters/postgresql/schemas/cron.d.ts +131 -0
  176. package/dist/adapters/postgresql/schemas/cron.d.ts.map +1 -0
  177. package/dist/adapters/postgresql/schemas/cron.js +218 -0
  178. package/dist/adapters/postgresql/schemas/cron.js.map +1 -0
  179. package/dist/adapters/postgresql/schemas/extensions.d.ts +403 -0
  180. package/dist/adapters/postgresql/schemas/extensions.d.ts.map +1 -0
  181. package/dist/adapters/postgresql/schemas/extensions.js +600 -0
  182. package/dist/adapters/postgresql/schemas/extensions.js.map +1 -0
  183. package/dist/adapters/postgresql/schemas/index.d.ts +21 -0
  184. package/dist/adapters/postgresql/schemas/index.d.ts.map +1 -0
  185. package/dist/adapters/postgresql/schemas/index.js +72 -0
  186. package/dist/adapters/postgresql/schemas/index.js.map +1 -0
  187. package/dist/adapters/postgresql/schemas/jsonb.d.ts +94 -0
  188. package/dist/adapters/postgresql/schemas/jsonb.d.ts.map +1 -0
  189. package/dist/adapters/postgresql/schemas/jsonb.js +198 -0
  190. package/dist/adapters/postgresql/schemas/jsonb.js.map +1 -0
  191. package/dist/adapters/postgresql/schemas/monitoring.d.ts +28 -0
  192. package/dist/adapters/postgresql/schemas/monitoring.d.ts.map +1 -0
  193. package/dist/adapters/postgresql/schemas/monitoring.js +45 -0
  194. package/dist/adapters/postgresql/schemas/monitoring.js.map +1 -0
  195. package/dist/adapters/postgresql/schemas/partitioning.d.ts +152 -0
  196. package/dist/adapters/postgresql/schemas/partitioning.d.ts.map +1 -0
  197. package/dist/adapters/postgresql/schemas/partitioning.js +399 -0
  198. package/dist/adapters/postgresql/schemas/partitioning.js.map +1 -0
  199. package/dist/adapters/postgresql/schemas/partman.d.ts +94 -0
  200. package/dist/adapters/postgresql/schemas/partman.d.ts.map +1 -0
  201. package/dist/adapters/postgresql/schemas/partman.js +264 -0
  202. package/dist/adapters/postgresql/schemas/partman.js.map +1 -0
  203. package/dist/adapters/postgresql/schemas/performance.d.ts +52 -0
  204. package/dist/adapters/postgresql/schemas/performance.d.ts.map +1 -0
  205. package/dist/adapters/postgresql/schemas/performance.js +57 -0
  206. package/dist/adapters/postgresql/schemas/performance.js.map +1 -0
  207. package/dist/adapters/postgresql/schemas/postgis.d.ts +693 -0
  208. package/dist/adapters/postgresql/schemas/postgis.d.ts.map +1 -0
  209. package/dist/adapters/postgresql/schemas/postgis.js +662 -0
  210. package/dist/adapters/postgresql/schemas/postgis.js.map +1 -0
  211. package/dist/adapters/postgresql/schemas/schema-mgmt.d.ts +171 -0
  212. package/dist/adapters/postgresql/schemas/schema-mgmt.d.ts.map +1 -0
  213. package/dist/adapters/postgresql/schemas/schema-mgmt.js +235 -0
  214. package/dist/adapters/postgresql/schemas/schema-mgmt.js.map +1 -0
  215. package/dist/adapters/postgresql/schemas/stats.d.ts +229 -0
  216. package/dist/adapters/postgresql/schemas/stats.d.ts.map +1 -0
  217. package/dist/adapters/postgresql/schemas/stats.js +587 -0
  218. package/dist/adapters/postgresql/schemas/stats.js.map +1 -0
  219. package/dist/adapters/postgresql/schemas/text-search.d.ts +83 -0
  220. package/dist/adapters/postgresql/schemas/text-search.d.ts.map +1 -0
  221. package/dist/adapters/postgresql/schemas/text-search.js +132 -0
  222. package/dist/adapters/postgresql/schemas/text-search.js.map +1 -0
  223. package/dist/adapters/postgresql/schemas/vector.d.ts +143 -0
  224. package/dist/adapters/postgresql/schemas/vector.d.ts.map +1 -0
  225. package/dist/adapters/postgresql/schemas/vector.js +123 -0
  226. package/dist/adapters/postgresql/schemas/vector.js.map +1 -0
  227. package/dist/adapters/postgresql/tools/admin.d.ts +13 -0
  228. package/dist/adapters/postgresql/tools/admin.d.ts.map +1 -0
  229. package/dist/adapters/postgresql/tools/admin.js +417 -0
  230. package/dist/adapters/postgresql/tools/admin.js.map +1 -0
  231. package/dist/adapters/postgresql/tools/backup/dump.d.ts +12 -0
  232. package/dist/adapters/postgresql/tools/backup/dump.d.ts.map +1 -0
  233. package/dist/adapters/postgresql/tools/backup/dump.js +546 -0
  234. package/dist/adapters/postgresql/tools/backup/dump.js.map +1 -0
  235. package/dist/adapters/postgresql/tools/backup/index.d.ts +16 -0
  236. package/dist/adapters/postgresql/tools/backup/index.d.ts.map +1 -0
  237. package/dist/adapters/postgresql/tools/backup/index.js +29 -0
  238. package/dist/adapters/postgresql/tools/backup/index.js.map +1 -0
  239. package/dist/adapters/postgresql/tools/backup/planning.d.ts +22 -0
  240. package/dist/adapters/postgresql/tools/backup/planning.d.ts.map +1 -0
  241. package/dist/adapters/postgresql/tools/backup/planning.js +411 -0
  242. package/dist/adapters/postgresql/tools/backup/planning.js.map +1 -0
  243. package/dist/adapters/postgresql/tools/citext.d.ts +18 -0
  244. package/dist/adapters/postgresql/tools/citext.d.ts.map +1 -0
  245. package/dist/adapters/postgresql/tools/citext.js +568 -0
  246. package/dist/adapters/postgresql/tools/citext.js.map +1 -0
  247. package/dist/adapters/postgresql/tools/codemode/index.d.ts +27 -0
  248. package/dist/adapters/postgresql/tools/codemode/index.d.ts.map +1 -0
  249. package/dist/adapters/postgresql/tools/codemode/index.js +171 -0
  250. package/dist/adapters/postgresql/tools/codemode/index.js.map +1 -0
  251. package/dist/adapters/postgresql/tools/core/convenience.d.ts +192 -0
  252. package/dist/adapters/postgresql/tools/core/convenience.d.ts.map +1 -0
  253. package/dist/adapters/postgresql/tools/core/convenience.js +617 -0
  254. package/dist/adapters/postgresql/tools/core/convenience.js.map +1 -0
  255. package/dist/adapters/postgresql/tools/core/health.d.ts +20 -0
  256. package/dist/adapters/postgresql/tools/core/health.d.ts.map +1 -0
  257. package/dist/adapters/postgresql/tools/core/health.js +360 -0
  258. package/dist/adapters/postgresql/tools/core/health.js.map +1 -0
  259. package/dist/adapters/postgresql/tools/core/index.d.ts +15 -0
  260. package/dist/adapters/postgresql/tools/core/index.d.ts.map +1 -0
  261. package/dist/adapters/postgresql/tools/core/index.js +40 -0
  262. package/dist/adapters/postgresql/tools/core/index.js.map +1 -0
  263. package/dist/adapters/postgresql/tools/core/indexes.d.ts +30 -0
  264. package/dist/adapters/postgresql/tools/core/indexes.d.ts.map +1 -0
  265. package/dist/adapters/postgresql/tools/core/indexes.js +232 -0
  266. package/dist/adapters/postgresql/tools/core/indexes.js.map +1 -0
  267. package/dist/adapters/postgresql/tools/core/objects.d.ts +20 -0
  268. package/dist/adapters/postgresql/tools/core/objects.d.ts.map +1 -0
  269. package/dist/adapters/postgresql/tools/core/objects.js +361 -0
  270. package/dist/adapters/postgresql/tools/core/objects.js.map +1 -0
  271. package/dist/adapters/postgresql/tools/core/query.d.ts +16 -0
  272. package/dist/adapters/postgresql/tools/core/query.d.ts.map +1 -0
  273. package/dist/adapters/postgresql/tools/core/query.js +87 -0
  274. package/dist/adapters/postgresql/tools/core/query.js.map +1 -0
  275. package/dist/adapters/postgresql/tools/core/schemas.d.ts +135 -0
  276. package/dist/adapters/postgresql/tools/core/schemas.d.ts.map +1 -0
  277. package/dist/adapters/postgresql/tools/core/schemas.js +221 -0
  278. package/dist/adapters/postgresql/tools/core/schemas.js.map +1 -0
  279. package/dist/adapters/postgresql/tools/core/tables.d.ts +24 -0
  280. package/dist/adapters/postgresql/tools/core/tables.d.ts.map +1 -0
  281. package/dist/adapters/postgresql/tools/core/tables.js +219 -0
  282. package/dist/adapters/postgresql/tools/core/tables.js.map +1 -0
  283. package/dist/adapters/postgresql/tools/cron.d.ts +16 -0
  284. package/dist/adapters/postgresql/tools/cron.d.ts.map +1 -0
  285. package/dist/adapters/postgresql/tools/cron.js +440 -0
  286. package/dist/adapters/postgresql/tools/cron.js.map +1 -0
  287. package/dist/adapters/postgresql/tools/jsonb/advanced.d.ts +33 -0
  288. package/dist/adapters/postgresql/tools/jsonb/advanced.d.ts.map +1 -0
  289. package/dist/adapters/postgresql/tools/jsonb/advanced.js +681 -0
  290. package/dist/adapters/postgresql/tools/jsonb/advanced.js.map +1 -0
  291. package/dist/adapters/postgresql/tools/jsonb/basic.d.ts +20 -0
  292. package/dist/adapters/postgresql/tools/jsonb/basic.d.ts.map +1 -0
  293. package/dist/adapters/postgresql/tools/jsonb/basic.js +654 -0
  294. package/dist/adapters/postgresql/tools/jsonb/basic.js.map +1 -0
  295. package/dist/adapters/postgresql/tools/jsonb/index.d.ts +16 -0
  296. package/dist/adapters/postgresql/tools/jsonb/index.d.ts.map +1 -0
  297. package/dist/adapters/postgresql/tools/jsonb/index.js +39 -0
  298. package/dist/adapters/postgresql/tools/jsonb/index.js.map +1 -0
  299. package/dist/adapters/postgresql/tools/kcache.d.ts +20 -0
  300. package/dist/adapters/postgresql/tools/kcache.d.ts.map +1 -0
  301. package/dist/adapters/postgresql/tools/kcache.js +574 -0
  302. package/dist/adapters/postgresql/tools/kcache.js.map +1 -0
  303. package/dist/adapters/postgresql/tools/ltree.d.ts +8 -0
  304. package/dist/adapters/postgresql/tools/ltree.d.ts.map +1 -0
  305. package/dist/adapters/postgresql/tools/ltree.js +390 -0
  306. package/dist/adapters/postgresql/tools/ltree.js.map +1 -0
  307. package/dist/adapters/postgresql/tools/monitoring.d.ts +13 -0
  308. package/dist/adapters/postgresql/tools/monitoring.d.ts.map +1 -0
  309. package/dist/adapters/postgresql/tools/monitoring.js +753 -0
  310. package/dist/adapters/postgresql/tools/monitoring.js.map +1 -0
  311. package/dist/adapters/postgresql/tools/partitioning.d.ts +13 -0
  312. package/dist/adapters/postgresql/tools/partitioning.d.ts.map +1 -0
  313. package/dist/adapters/postgresql/tools/partitioning.js +500 -0
  314. package/dist/adapters/postgresql/tools/partitioning.js.map +1 -0
  315. package/dist/adapters/postgresql/tools/partman/index.d.ts +19 -0
  316. package/dist/adapters/postgresql/tools/partman/index.d.ts.map +1 -0
  317. package/dist/adapters/postgresql/tools/partman/index.js +33 -0
  318. package/dist/adapters/postgresql/tools/partman/index.js.map +1 -0
  319. package/dist/adapters/postgresql/tools/partman/management.d.ts +28 -0
  320. package/dist/adapters/postgresql/tools/partman/management.d.ts.map +1 -0
  321. package/dist/adapters/postgresql/tools/partman/management.js +563 -0
  322. package/dist/adapters/postgresql/tools/partman/management.js.map +1 -0
  323. package/dist/adapters/postgresql/tools/partman/operations.d.ts +28 -0
  324. package/dist/adapters/postgresql/tools/partman/operations.d.ts.map +1 -0
  325. package/dist/adapters/postgresql/tools/partman/operations.js +632 -0
  326. package/dist/adapters/postgresql/tools/partman/operations.js.map +1 -0
  327. package/dist/adapters/postgresql/tools/performance/analysis.d.ts +9 -0
  328. package/dist/adapters/postgresql/tools/performance/analysis.d.ts.map +1 -0
  329. package/dist/adapters/postgresql/tools/performance/analysis.js +383 -0
  330. package/dist/adapters/postgresql/tools/performance/analysis.js.map +1 -0
  331. package/dist/adapters/postgresql/tools/performance/explain.d.ts +13 -0
  332. package/dist/adapters/postgresql/tools/performance/explain.d.ts.map +1 -0
  333. package/dist/adapters/postgresql/tools/performance/explain.js +71 -0
  334. package/dist/adapters/postgresql/tools/performance/explain.js.map +1 -0
  335. package/dist/adapters/postgresql/tools/performance/index.d.ts +13 -0
  336. package/dist/adapters/postgresql/tools/performance/index.d.ts.map +1 -0
  337. package/dist/adapters/postgresql/tools/performance/index.js +40 -0
  338. package/dist/adapters/postgresql/tools/performance/index.js.map +1 -0
  339. package/dist/adapters/postgresql/tools/performance/monitoring.d.ts +9 -0
  340. package/dist/adapters/postgresql/tools/performance/monitoring.d.ts.map +1 -0
  341. package/dist/adapters/postgresql/tools/performance/monitoring.js +122 -0
  342. package/dist/adapters/postgresql/tools/performance/monitoring.js.map +1 -0
  343. package/dist/adapters/postgresql/tools/performance/optimization.d.ts +9 -0
  344. package/dist/adapters/postgresql/tools/performance/optimization.d.ts.map +1 -0
  345. package/dist/adapters/postgresql/tools/performance/optimization.js +315 -0
  346. package/dist/adapters/postgresql/tools/performance/optimization.js.map +1 -0
  347. package/dist/adapters/postgresql/tools/performance/stats.d.ts +14 -0
  348. package/dist/adapters/postgresql/tools/performance/stats.d.ts.map +1 -0
  349. package/dist/adapters/postgresql/tools/performance/stats.js +559 -0
  350. package/dist/adapters/postgresql/tools/performance/stats.js.map +1 -0
  351. package/dist/adapters/postgresql/tools/pgcrypto.d.ts +8 -0
  352. package/dist/adapters/postgresql/tools/pgcrypto.d.ts.map +1 -0
  353. package/dist/adapters/postgresql/tools/pgcrypto.js +239 -0
  354. package/dist/adapters/postgresql/tools/pgcrypto.js.map +1 -0
  355. package/dist/adapters/postgresql/tools/postgis/advanced.d.ts +21 -0
  356. package/dist/adapters/postgresql/tools/postgis/advanced.d.ts.map +1 -0
  357. package/dist/adapters/postgresql/tools/postgis/advanced.js +383 -0
  358. package/dist/adapters/postgresql/tools/postgis/advanced.js.map +1 -0
  359. package/dist/adapters/postgresql/tools/postgis/basic.d.ts +16 -0
  360. package/dist/adapters/postgresql/tools/postgis/basic.d.ts.map +1 -0
  361. package/dist/adapters/postgresql/tools/postgis/basic.js +479 -0
  362. package/dist/adapters/postgresql/tools/postgis/basic.js.map +1 -0
  363. package/dist/adapters/postgresql/tools/postgis/index.d.ts +17 -0
  364. package/dist/adapters/postgresql/tools/postgis/index.d.ts.map +1 -0
  365. package/dist/adapters/postgresql/tools/postgis/index.js +46 -0
  366. package/dist/adapters/postgresql/tools/postgis/index.js.map +1 -0
  367. package/dist/adapters/postgresql/tools/postgis/standalone.d.ts +21 -0
  368. package/dist/adapters/postgresql/tools/postgis/standalone.d.ts.map +1 -0
  369. package/dist/adapters/postgresql/tools/postgis/standalone.js +150 -0
  370. package/dist/adapters/postgresql/tools/postgis/standalone.js.map +1 -0
  371. package/dist/adapters/postgresql/tools/schema.d.ts +13 -0
  372. package/dist/adapters/postgresql/tools/schema.d.ts.map +1 -0
  373. package/dist/adapters/postgresql/tools/schema.js +515 -0
  374. package/dist/adapters/postgresql/tools/schema.js.map +1 -0
  375. package/dist/adapters/postgresql/tools/stats/advanced.d.ts +24 -0
  376. package/dist/adapters/postgresql/tools/stats/advanced.d.ts.map +1 -0
  377. package/dist/adapters/postgresql/tools/stats/advanced.js +876 -0
  378. package/dist/adapters/postgresql/tools/stats/advanced.js.map +1 -0
  379. package/dist/adapters/postgresql/tools/stats/basic.d.ts +24 -0
  380. package/dist/adapters/postgresql/tools/stats/basic.d.ts.map +1 -0
  381. package/dist/adapters/postgresql/tools/stats/basic.js +501 -0
  382. package/dist/adapters/postgresql/tools/stats/basic.js.map +1 -0
  383. package/dist/adapters/postgresql/tools/stats/index.d.ts +17 -0
  384. package/dist/adapters/postgresql/tools/stats/index.d.ts.map +1 -0
  385. package/dist/adapters/postgresql/tools/stats/index.js +30 -0
  386. package/dist/adapters/postgresql/tools/stats/index.js.map +1 -0
  387. package/dist/adapters/postgresql/tools/text.d.ts +13 -0
  388. package/dist/adapters/postgresql/tools/text.d.ts.map +1 -0
  389. package/dist/adapters/postgresql/tools/text.js +708 -0
  390. package/dist/adapters/postgresql/tools/text.js.map +1 -0
  391. package/dist/adapters/postgresql/tools/transactions.d.ts +13 -0
  392. package/dist/adapters/postgresql/tools/transactions.d.ts.map +1 -0
  393. package/dist/adapters/postgresql/tools/transactions.js +201 -0
  394. package/dist/adapters/postgresql/tools/transactions.js.map +1 -0
  395. package/dist/adapters/postgresql/tools/vector/advanced.d.ts +12 -0
  396. package/dist/adapters/postgresql/tools/vector/advanced.d.ts.map +1 -0
  397. package/dist/adapters/postgresql/tools/vector/advanced.js +902 -0
  398. package/dist/adapters/postgresql/tools/vector/advanced.js.map +1 -0
  399. package/dist/adapters/postgresql/tools/vector/basic.d.ts +25 -0
  400. package/dist/adapters/postgresql/tools/vector/basic.d.ts.map +1 -0
  401. package/dist/adapters/postgresql/tools/vector/basic.js +1000 -0
  402. package/dist/adapters/postgresql/tools/vector/basic.js.map +1 -0
  403. package/dist/adapters/postgresql/tools/vector/index.d.ts +13 -0
  404. package/dist/adapters/postgresql/tools/vector/index.d.ts.map +1 -0
  405. package/dist/adapters/postgresql/tools/vector/index.js +33 -0
  406. package/dist/adapters/postgresql/tools/vector/index.js.map +1 -0
  407. package/dist/auth/AuthorizationServerDiscovery.d.ts +44 -0
  408. package/dist/auth/AuthorizationServerDiscovery.d.ts.map +1 -0
  409. package/dist/auth/AuthorizationServerDiscovery.js +117 -0
  410. package/dist/auth/AuthorizationServerDiscovery.js.map +1 -0
  411. package/dist/auth/OAuthResourceServer.d.ts +42 -0
  412. package/dist/auth/OAuthResourceServer.d.ts.map +1 -0
  413. package/dist/auth/OAuthResourceServer.js +80 -0
  414. package/dist/auth/OAuthResourceServer.js.map +1 -0
  415. package/dist/auth/TokenValidator.d.ts +36 -0
  416. package/dist/auth/TokenValidator.d.ts.map +1 -0
  417. package/dist/auth/TokenValidator.js +139 -0
  418. package/dist/auth/TokenValidator.js.map +1 -0
  419. package/dist/auth/errors.d.ts +63 -0
  420. package/dist/auth/errors.d.ts.map +1 -0
  421. package/dist/auth/errors.js +102 -0
  422. package/dist/auth/errors.js.map +1 -0
  423. package/dist/auth/index.d.ts +15 -0
  424. package/dist/auth/index.d.ts.map +1 -0
  425. package/dist/auth/index.js +16 -0
  426. package/dist/auth/index.js.map +1 -0
  427. package/dist/auth/middleware.d.ts +61 -0
  428. package/dist/auth/middleware.d.ts.map +1 -0
  429. package/dist/auth/middleware.js +156 -0
  430. package/dist/auth/middleware.js.map +1 -0
  431. package/dist/auth/scopes.d.ts +65 -0
  432. package/dist/auth/scopes.d.ts.map +1 -0
  433. package/dist/auth/scopes.js +189 -0
  434. package/dist/auth/scopes.js.map +1 -0
  435. package/dist/auth/types.d.ts +208 -0
  436. package/dist/auth/types.d.ts.map +1 -0
  437. package/dist/auth/types.js +8 -0
  438. package/dist/auth/types.js.map +1 -0
  439. package/dist/cli/args.d.ts +34 -0
  440. package/dist/cli/args.d.ts.map +1 -0
  441. package/dist/cli/args.js +308 -0
  442. package/dist/cli/args.js.map +1 -0
  443. package/dist/cli/index.d.ts +8 -0
  444. package/dist/cli/index.d.ts.map +1 -0
  445. package/dist/cli/index.js +7 -0
  446. package/dist/cli/index.js.map +1 -0
  447. package/dist/cli.d.ts +9 -0
  448. package/dist/cli.d.ts.map +1 -0
  449. package/dist/cli.js +341 -0
  450. package/dist/cli.js.map +1 -0
  451. package/dist/codemode/api.d.ts +62 -0
  452. package/dist/codemode/api.d.ts.map +1 -0
  453. package/dist/codemode/api.js +1505 -0
  454. package/dist/codemode/api.js.map +1 -0
  455. package/dist/codemode/index.d.ts +13 -0
  456. package/dist/codemode/index.d.ts.map +1 -0
  457. package/dist/codemode/index.js +17 -0
  458. package/dist/codemode/index.js.map +1 -0
  459. package/dist/codemode/sandbox-factory.d.ts +72 -0
  460. package/dist/codemode/sandbox-factory.d.ts.map +1 -0
  461. package/dist/codemode/sandbox-factory.js +88 -0
  462. package/dist/codemode/sandbox-factory.js.map +1 -0
  463. package/dist/codemode/sandbox.d.ts +96 -0
  464. package/dist/codemode/sandbox.d.ts.map +1 -0
  465. package/dist/codemode/sandbox.js +345 -0
  466. package/dist/codemode/sandbox.js.map +1 -0
  467. package/dist/codemode/security.d.ts +44 -0
  468. package/dist/codemode/security.d.ts.map +1 -0
  469. package/dist/codemode/security.js +149 -0
  470. package/dist/codemode/security.js.map +1 -0
  471. package/dist/codemode/types.d.ts +137 -0
  472. package/dist/codemode/types.d.ts.map +1 -0
  473. package/dist/codemode/types.js +46 -0
  474. package/dist/codemode/types.js.map +1 -0
  475. package/dist/codemode/worker-sandbox.d.ts +82 -0
  476. package/dist/codemode/worker-sandbox.d.ts.map +1 -0
  477. package/dist/codemode/worker-sandbox.js +244 -0
  478. package/dist/codemode/worker-sandbox.js.map +1 -0
  479. package/dist/codemode/worker-script.d.ts +8 -0
  480. package/dist/codemode/worker-script.d.ts.map +1 -0
  481. package/dist/codemode/worker-script.js +113 -0
  482. package/dist/codemode/worker-script.js.map +1 -0
  483. package/dist/constants/ServerInstructions.d.ts +13 -0
  484. package/dist/constants/ServerInstructions.d.ts.map +1 -0
  485. package/dist/constants/ServerInstructions.js +405 -0
  486. package/dist/constants/ServerInstructions.js.map +1 -0
  487. package/dist/filtering/ToolConstants.d.ts +43 -0
  488. package/dist/filtering/ToolConstants.d.ts.map +1 -0
  489. package/dist/filtering/ToolConstants.js +352 -0
  490. package/dist/filtering/ToolConstants.js.map +1 -0
  491. package/dist/filtering/ToolFilter.d.ts +90 -0
  492. package/dist/filtering/ToolFilter.d.ts.map +1 -0
  493. package/dist/filtering/ToolFilter.js +315 -0
  494. package/dist/filtering/ToolFilter.js.map +1 -0
  495. package/dist/index.d.ts +15 -0
  496. package/dist/index.d.ts.map +1 -0
  497. package/dist/index.js +19 -0
  498. package/dist/index.js.map +1 -0
  499. package/dist/pool/ConnectionPool.d.ts +70 -0
  500. package/dist/pool/ConnectionPool.d.ts.map +1 -0
  501. package/dist/pool/ConnectionPool.js +254 -0
  502. package/dist/pool/ConnectionPool.js.map +1 -0
  503. package/dist/server/McpServer.d.ts +50 -0
  504. package/dist/server/McpServer.d.ts.map +1 -0
  505. package/dist/server/McpServer.js +108 -0
  506. package/dist/server/McpServer.js.map +1 -0
  507. package/dist/transports/http.d.ts +126 -0
  508. package/dist/transports/http.d.ts.map +1 -0
  509. package/dist/transports/http.js +303 -0
  510. package/dist/transports/http.js.map +1 -0
  511. package/dist/transports/index.d.ts +8 -0
  512. package/dist/transports/index.d.ts.map +1 -0
  513. package/dist/transports/index.js +7 -0
  514. package/dist/transports/index.js.map +1 -0
  515. package/dist/types/adapters.d.ts +136 -0
  516. package/dist/types/adapters.d.ts.map +1 -0
  517. package/dist/types/adapters.js +7 -0
  518. package/dist/types/adapters.js.map +1 -0
  519. package/dist/types/database.d.ts +204 -0
  520. package/dist/types/database.d.ts.map +1 -0
  521. package/dist/types/database.js +7 -0
  522. package/dist/types/database.js.map +1 -0
  523. package/dist/types/errors.d.ts +62 -0
  524. package/dist/types/errors.d.ts.map +1 -0
  525. package/dist/types/errors.js +91 -0
  526. package/dist/types/errors.js.map +1 -0
  527. package/dist/types/filtering.d.ts +39 -0
  528. package/dist/types/filtering.d.ts.map +1 -0
  529. package/dist/types/filtering.js +7 -0
  530. package/dist/types/filtering.js.map +1 -0
  531. package/dist/types/index.d.ts +16 -0
  532. package/dist/types/index.d.ts.map +1 -0
  533. package/dist/types/index.js +11 -0
  534. package/dist/types/index.js.map +1 -0
  535. package/dist/types/mcp.d.ts +31 -0
  536. package/dist/types/mcp.d.ts.map +1 -0
  537. package/dist/types/mcp.js +7 -0
  538. package/dist/types/mcp.js.map +1 -0
  539. package/dist/types/oauth.d.ts +65 -0
  540. package/dist/types/oauth.d.ts.map +1 -0
  541. package/dist/types/oauth.js +7 -0
  542. package/dist/types/oauth.js.map +1 -0
  543. package/dist/types/schema.d.ts +110 -0
  544. package/dist/types/schema.d.ts.map +1 -0
  545. package/dist/types/schema.js +7 -0
  546. package/dist/types/schema.js.map +1 -0
  547. package/dist/utils/annotations.d.ts +42 -0
  548. package/dist/utils/annotations.d.ts.map +1 -0
  549. package/dist/utils/annotations.js +75 -0
  550. package/dist/utils/annotations.js.map +1 -0
  551. package/dist/utils/icons.d.ts +25 -0
  552. package/dist/utils/icons.d.ts.map +1 -0
  553. package/dist/utils/icons.js +212 -0
  554. package/dist/utils/icons.js.map +1 -0
  555. package/dist/utils/identifiers.d.ts +111 -0
  556. package/dist/utils/identifiers.d.ts.map +1 -0
  557. package/dist/utils/identifiers.js +270 -0
  558. package/dist/utils/identifiers.js.map +1 -0
  559. package/dist/utils/logger.d.ts +141 -0
  560. package/dist/utils/logger.d.ts.map +1 -0
  561. package/dist/utils/logger.js +304 -0
  562. package/dist/utils/logger.js.map +1 -0
  563. package/dist/utils/promptGenerator.d.ts +20 -0
  564. package/dist/utils/promptGenerator.d.ts.map +1 -0
  565. package/dist/utils/promptGenerator.js +81 -0
  566. package/dist/utils/promptGenerator.js.map +1 -0
  567. package/dist/utils/resourceAnnotations.d.ts +36 -0
  568. package/dist/utils/resourceAnnotations.d.ts.map +1 -0
  569. package/dist/utils/resourceAnnotations.js +57 -0
  570. package/dist/utils/resourceAnnotations.js.map +1 -0
  571. package/package.json +64 -0
@@ -0,0 +1,662 @@
1
+ /**
2
+ * postgres-mcp - PostGIS Tool Schemas
3
+ *
4
+ * Input validation schemas for geospatial operations.
5
+ * Supports parameter smoothing: tableName -> table, point property aliases
6
+ *
7
+ * Pattern: Export Base schemas for MCP visibility + Transformed schemas for handler validation.
8
+ */
9
+ import { z } from "zod";
10
+ /**
11
+ * Preprocess PostGIS parameters:
12
+ * - Alias: tableName -> table
13
+ * - Parse schema.table format
14
+ * Exported for use in tool files with inline schemas.
15
+ */
16
+ export function preprocessPostgisParams(input) {
17
+ if (typeof input !== "object" || input === null) {
18
+ return input;
19
+ }
20
+ const result = { ...input };
21
+ // Alias: tableName -> table
22
+ if (result["tableName"] !== undefined && result["table"] === undefined) {
23
+ result["table"] = result["tableName"];
24
+ }
25
+ // Parse schema.table format
26
+ if (typeof result["table"] === "string" &&
27
+ result["table"].includes(".") &&
28
+ result["schema"] === undefined) {
29
+ const parts = result["table"].split(".");
30
+ if (parts.length === 2) {
31
+ result["schema"] = parts[0];
32
+ result["table"] = parts[1];
33
+ }
34
+ }
35
+ return result;
36
+ }
37
+ /**
38
+ * Preprocess point object to support aliases:
39
+ * - lon/longitude -> lng
40
+ * - latitude -> lat
41
+ * - x/y -> lng/lat
42
+ *
43
+ * Also validates coordinate bounds when validateBounds is true (default).
44
+ * Throws ZodError-compatible error for consistency with schema validation.
45
+ */
46
+ export function preprocessPoint(point, validateBounds = true) {
47
+ if (typeof point !== "object" || point === null) {
48
+ return undefined;
49
+ }
50
+ const p = point;
51
+ // Resolve lat aliases
52
+ const lat = (p["lat"] ?? p["latitude"] ?? p["y"]);
53
+ // Resolve lng aliases
54
+ const lng = (p["lng"] ?? p["lon"] ?? p["longitude"] ?? p["x"]);
55
+ if (lat !== undefined && lng !== undefined) {
56
+ // Validate coordinate bounds for consistency with pg_geocode
57
+ if (validateBounds) {
58
+ if (lat < -90 || lat > 90) {
59
+ throw new Error(`Invalid latitude ${String(lat)}: must be between -90 and 90 degrees`);
60
+ }
61
+ if (lng < -180 || lng > 180) {
62
+ throw new Error(`Invalid longitude ${String(lng)}: must be between -180 and 180 degrees`);
63
+ }
64
+ }
65
+ return { lat, lng };
66
+ }
67
+ return undefined;
68
+ }
69
+ /**
70
+ * Convert distance to meters based on unit
71
+ */
72
+ export function convertToMeters(distance, unit) {
73
+ if (distance < 0) {
74
+ return distance; // Let validation catch negatives
75
+ }
76
+ if (unit === undefined || unit === "meters" || unit === "m") {
77
+ return distance;
78
+ }
79
+ const u = unit.toLowerCase();
80
+ if (u === "kilometers" || u === "km") {
81
+ return distance * 1000;
82
+ }
83
+ if (u === "miles" || u === "mi") {
84
+ return distance * 1609.344;
85
+ }
86
+ // Default to meters for unknown units
87
+ return distance;
88
+ }
89
+ // =============================================================================
90
+ // Point schema (reused across multiple tools)
91
+ // =============================================================================
92
+ const PointSchemaBase = z.object({
93
+ lat: z.number().optional(),
94
+ latitude: z.number().optional(),
95
+ y: z.number().optional(),
96
+ lng: z.number().optional(),
97
+ lon: z.number().optional(),
98
+ longitude: z.number().optional(),
99
+ x: z.number().optional(),
100
+ });
101
+ // =============================================================================
102
+ // pg_geometry_column
103
+ // =============================================================================
104
+ export const GeometryColumnSchemaBase = z.object({
105
+ table: z.string().optional().describe("Table name"),
106
+ tableName: z.string().optional().describe("Alias for table"),
107
+ column: z.string().optional().describe("Column name for the geometry"),
108
+ geom: z.string().optional().describe("Alias for column"),
109
+ geometryColumn: z.string().optional().describe("Alias for column"),
110
+ srid: z
111
+ .number()
112
+ .optional()
113
+ .describe("Spatial Reference ID (default: 4326 for WGS84)"),
114
+ type: z
115
+ .enum([
116
+ "POINT",
117
+ "LINESTRING",
118
+ "POLYGON",
119
+ "MULTIPOINT",
120
+ "MULTILINESTRING",
121
+ "MULTIPOLYGON",
122
+ "GEOMETRY",
123
+ ])
124
+ .optional(),
125
+ schema: z.string().optional(),
126
+ ifNotExists: z
127
+ .boolean()
128
+ .optional()
129
+ .describe("Skip if column already exists (returns { alreadyExists: true })"),
130
+ });
131
+ export const GeometryColumnSchema = z
132
+ .preprocess(preprocessPostgisParams, GeometryColumnSchemaBase)
133
+ .transform((data) => ({
134
+ table: data.table ?? data.tableName ?? "",
135
+ column: data.column ?? data.geom ?? data.geometryColumn ?? "",
136
+ srid: data.srid,
137
+ type: data.type,
138
+ schema: data.schema,
139
+ ifNotExists: data.ifNotExists,
140
+ }))
141
+ .refine((data) => data.table !== "", {
142
+ message: "table (or tableName alias) is required",
143
+ })
144
+ .refine((data) => data.column !== "", {
145
+ message: "column (or geom/geometryColumn alias) is required",
146
+ });
147
+ // =============================================================================
148
+ // pg_distance (GeometryDistance)
149
+ // =============================================================================
150
+ export const GeometryDistanceSchemaBase = z.object({
151
+ table: z.string().optional().describe("Table name"),
152
+ tableName: z.string().optional().describe("Alias for table"),
153
+ column: z.string().optional().describe("Geometry column"),
154
+ geom: z.string().optional().describe("Alias for column"),
155
+ geometry: z.string().optional().describe("Alias for column"),
156
+ geometryColumn: z.string().optional().describe("Alias for column"),
157
+ point: PointSchemaBase.describe("Reference point (supports lat/lng, latitude/longitude, or x/y)"),
158
+ limit: z.number().optional().describe("Max results"),
159
+ maxDistance: z
160
+ .number()
161
+ .optional()
162
+ .describe("Max distance (in meters by default)"),
163
+ radius: z.number().optional().describe("Alias for maxDistance"),
164
+ distance: z.number().optional().describe("Alias for maxDistance"),
165
+ unit: z
166
+ .enum(["meters", "m", "kilometers", "km", "miles", "mi"])
167
+ .optional()
168
+ .describe("Distance unit (default: meters)"),
169
+ schema: z.string().optional().describe("Schema name (default: public)"),
170
+ });
171
+ export const GeometryDistanceSchema = z
172
+ .preprocess(preprocessPostgisParams, GeometryDistanceSchemaBase)
173
+ .transform((data) => {
174
+ const point = preprocessPoint(data.point);
175
+ const rawDistance = data.maxDistance ?? data.radius ?? data.distance;
176
+ return {
177
+ table: data.table ?? data.tableName ?? "",
178
+ column: data.column ?? data.geom ?? data.geometry ?? data.geometryColumn ?? "",
179
+ point: point ?? { lat: 0, lng: 0 },
180
+ limit: data.limit,
181
+ maxDistance: rawDistance !== undefined
182
+ ? convertToMeters(rawDistance, data.unit)
183
+ : undefined,
184
+ unit: data.unit,
185
+ schema: data.schema,
186
+ };
187
+ })
188
+ .refine((data) => data.table !== "", {
189
+ message: "table (or tableName alias) is required",
190
+ })
191
+ .refine((data) => data.column !== "", {
192
+ message: "column (or geom/geometry/geometryColumn alias) is required",
193
+ })
194
+ .refine((data) => data.maxDistance === undefined || data.maxDistance >= 0, {
195
+ message: "distance must be a non-negative number",
196
+ });
197
+ // =============================================================================
198
+ // pg_point_in_polygon
199
+ // =============================================================================
200
+ export const PointInPolygonSchemaBase = z.object({
201
+ table: z.string().optional().describe("Table with polygons"),
202
+ tableName: z.string().optional().describe("Alias for table"),
203
+ column: z.string().optional().describe("Geometry column"),
204
+ geom: z.string().optional().describe("Alias for column"),
205
+ geometry: z.string().optional().describe("Alias for column"),
206
+ geometryColumn: z.string().optional().describe("Alias for column"),
207
+ point: PointSchemaBase.describe("Point to check (supports lat/lng, latitude/longitude, or x/y)"),
208
+ schema: z.string().optional().describe("Schema name (default: public)"),
209
+ });
210
+ export const PointInPolygonSchema = z
211
+ .preprocess(preprocessPostgisParams, PointInPolygonSchemaBase)
212
+ .transform((data) => {
213
+ const point = preprocessPoint(data.point);
214
+ return {
215
+ table: data.table ?? data.tableName ?? "",
216
+ column: data.column ?? data.geom ?? data.geometry ?? data.geometryColumn ?? "",
217
+ point: point ?? { lat: 0, lng: 0 },
218
+ schema: data.schema,
219
+ };
220
+ })
221
+ .refine((data) => data.table !== "", {
222
+ message: "table (or tableName alias) is required",
223
+ })
224
+ .refine((data) => data.column !== "", {
225
+ message: "column (or geom/geometry/geometryColumn alias) is required",
226
+ });
227
+ // =============================================================================
228
+ // pg_spatial_index
229
+ // =============================================================================
230
+ export const SpatialIndexSchemaBase = z.object({
231
+ table: z.string().optional().describe("Table name"),
232
+ tableName: z.string().optional().describe("Alias for table"),
233
+ column: z.string().optional().describe("Geometry column"),
234
+ geom: z.string().optional().describe("Alias for column"),
235
+ geometry: z.string().optional().describe("Alias for column"),
236
+ geometryColumn: z.string().optional().describe("Alias for column"),
237
+ name: z.string().optional().describe("Index name"),
238
+ indexName: z.string().optional().describe("Alias for name"),
239
+ ifNotExists: z
240
+ .boolean()
241
+ .optional()
242
+ .describe("Skip if index already exists (returns { alreadyExists: true })"),
243
+ schema: z.string().optional().describe("Schema name (default: public)"),
244
+ });
245
+ export const SpatialIndexSchema = z
246
+ .preprocess(preprocessPostgisParams, SpatialIndexSchemaBase)
247
+ .transform((data) => ({
248
+ table: data.table ?? data.tableName ?? "",
249
+ column: data.column ?? data.geom ?? data.geometry ?? data.geometryColumn ?? "",
250
+ name: data.name ?? data.indexName,
251
+ ifNotExists: data.ifNotExists,
252
+ schema: data.schema,
253
+ }))
254
+ .refine((data) => data.table !== "", {
255
+ message: "table (or tableName alias) is required",
256
+ })
257
+ .refine((data) => data.column !== "", {
258
+ message: "column (or geom/geometry/geometryColumn alias) is required",
259
+ });
260
+ // =============================================================================
261
+ // pg_buffer
262
+ // =============================================================================
263
+ export const BufferSchemaBase = z.object({
264
+ table: z.string().optional().describe("Table name"),
265
+ tableName: z.string().optional().describe("Alias for table"),
266
+ schema: z.string().optional().describe("Schema name (default: public)"),
267
+ column: z.string().optional().describe("Geometry column"),
268
+ geom: z.string().optional().describe("Alias for column"),
269
+ geometryColumn: z.string().optional().describe("Alias for column"),
270
+ distance: z
271
+ .number()
272
+ .optional()
273
+ .describe("Buffer distance (in meters by default)"),
274
+ meters: z.number().optional().describe("Alias for distance"),
275
+ radius: z.number().optional().describe("Alias for distance"),
276
+ unit: z
277
+ .enum(["meters", "m", "kilometers", "km", "miles", "mi"])
278
+ .optional()
279
+ .describe("Distance unit (default: meters)"),
280
+ simplify: z
281
+ .number()
282
+ .optional()
283
+ .describe("Simplification tolerance in meters (default: 10). Higher values = fewer points. Set to 0 to disable."),
284
+ limit: z
285
+ .number()
286
+ .optional()
287
+ .describe("Maximum rows to return (default: 50 to prevent large payloads)"),
288
+ where: z.string().optional(),
289
+ });
290
+ export const BufferSchema = z
291
+ .preprocess(preprocessPostgisParams, BufferSchemaBase)
292
+ .transform((data) => {
293
+ const rawDistance = data.distance ?? data.meters ?? data.radius ?? 0;
294
+ return {
295
+ table: data.table ?? data.tableName ?? "",
296
+ schema: data.schema,
297
+ column: data.column ?? data.geom ?? data.geometryColumn ?? "",
298
+ distance: convertToMeters(rawDistance, data.unit),
299
+ unit: data.unit,
300
+ simplify: data.simplify !== undefined
301
+ ? convertToMeters(data.simplify, data.unit)
302
+ : undefined,
303
+ limit: data.limit,
304
+ where: data.where,
305
+ };
306
+ })
307
+ .refine((data) => data.table !== "", {
308
+ message: "table (or tableName alias) is required",
309
+ })
310
+ .refine((data) => data.column !== "", {
311
+ message: "column (or geom/geometryColumn alias) is required",
312
+ })
313
+ .refine((data) => data.distance > 0, {
314
+ message: "distance (or radius/meters alias) is required and must be positive",
315
+ })
316
+ .refine((data) => data.simplify === undefined || data.simplify >= 0, {
317
+ message: "simplify must be a non-negative number if provided (0 to disable)",
318
+ });
319
+ // =============================================================================
320
+ // pg_intersection
321
+ // =============================================================================
322
+ /**
323
+ * Preprocess intersection params:
324
+ * - Handles postgis params (table/schema parsing)
325
+ * - Converts geometry objects to JSON strings (for GeoJSON object support)
326
+ */
327
+ function preprocessIntersectionParams(input) {
328
+ // First apply standard postgis preprocessing
329
+ const processed = preprocessPostgisParams(input);
330
+ if (typeof processed !== "object" || processed === null) {
331
+ return processed;
332
+ }
333
+ const result = { ...processed };
334
+ // Convert geometry object to JSON string if needed
335
+ if (typeof result["geometry"] === "object" &&
336
+ result["geometry"] !== null &&
337
+ !Array.isArray(result["geometry"])) {
338
+ result["geometry"] = JSON.stringify(result["geometry"]);
339
+ }
340
+ return result;
341
+ }
342
+ export const IntersectionSchemaBase = z.object({
343
+ table: z.string().optional().describe("Table name"),
344
+ tableName: z.string().optional().describe("Alias for table"),
345
+ schema: z.string().optional().describe("Schema name (default: public)"),
346
+ column: z.string().optional().describe("Geometry column"),
347
+ geom: z.string().optional().describe("Alias for column"),
348
+ geometryColumn: z.string().optional().describe("Alias for column"),
349
+ geometry: z
350
+ .union([z.string(), z.record(z.string(), z.unknown())])
351
+ .optional()
352
+ .describe('GeoJSON or WKT geometry to check intersection (e.g., "POINT(0 0)" or GeoJSON object)'),
353
+ srid: z
354
+ .number()
355
+ .optional()
356
+ .describe("SRID for input geometry (auto-detected from column if not provided)"),
357
+ select: z.array(z.string()).optional().describe("Columns to select"),
358
+ });
359
+ export const IntersectionSchema = z
360
+ .preprocess(preprocessIntersectionParams, IntersectionSchemaBase)
361
+ .transform((data) => {
362
+ // Ensure geometry is a string (preprocessor should have converted objects)
363
+ const geometry = typeof data.geometry === "object"
364
+ ? JSON.stringify(data.geometry)
365
+ : (data.geometry ?? "");
366
+ return {
367
+ table: data.table ?? data.tableName ?? "",
368
+ schema: data.schema,
369
+ column: data.column ?? data.geom ?? data.geometryColumn ?? "",
370
+ geometry,
371
+ srid: data.srid,
372
+ select: data.select,
373
+ };
374
+ })
375
+ .refine((data) => data.table !== "", {
376
+ message: "table (or tableName alias) is required",
377
+ })
378
+ .refine((data) => data.column !== "", {
379
+ message: "column (or geom/geometryColumn alias) is required",
380
+ })
381
+ .refine((data) => data.geometry !== "", {
382
+ message: "geometry is required (WKT like 'POINT(0 0)' or GeoJSON string/object)",
383
+ });
384
+ // =============================================================================
385
+ // pg_bounding_box
386
+ // =============================================================================
387
+ export const BoundingBoxSchemaBase = z.object({
388
+ table: z.string().optional().describe("Table name"),
389
+ tableName: z.string().optional().describe("Alias for table"),
390
+ schema: z.string().optional().describe("Schema name (default: public)"),
391
+ column: z.string().optional().describe("Geometry column"),
392
+ geom: z.string().optional().describe("Alias for column"),
393
+ geometryColumn: z.string().optional().describe("Alias for column"),
394
+ minLng: z.number().describe("Minimum longitude"),
395
+ minLat: z.number().describe("Minimum latitude"),
396
+ maxLng: z.number().describe("Maximum longitude"),
397
+ maxLat: z.number().describe("Maximum latitude"),
398
+ select: z.array(z.string()).optional().describe("Columns to select"),
399
+ });
400
+ export const BoundingBoxSchema = z
401
+ .preprocess(preprocessPostgisParams, BoundingBoxSchemaBase)
402
+ .transform((data) => ({
403
+ table: data.table ?? data.tableName ?? "",
404
+ schema: data.schema,
405
+ column: data.column ?? data.geom ?? data.geometryColumn ?? "",
406
+ minLng: data.minLng,
407
+ minLat: data.minLat,
408
+ maxLng: data.maxLng,
409
+ maxLat: data.maxLat,
410
+ select: data.select,
411
+ }))
412
+ .refine((data) => data.table !== "", {
413
+ message: "table (or tableName alias) is required",
414
+ })
415
+ .refine((data) => data.column !== "", {
416
+ message: "column (or geom/geometryColumn alias) is required",
417
+ });
418
+ // =============================================================================
419
+ // pg_geocode
420
+ // =============================================================================
421
+ export const GeocodeSchemaBase = z.object({
422
+ lat: z.number().optional().describe("Latitude (-90 to 90)"),
423
+ latitude: z.number().optional().describe("Alias for lat"),
424
+ lng: z.number().optional().describe("Longitude (-180 to 180)"),
425
+ lon: z.number().optional().describe("Alias for lng"),
426
+ longitude: z.number().optional().describe("Alias for lng"),
427
+ srid: z
428
+ .number()
429
+ .int()
430
+ .positive()
431
+ .optional()
432
+ .describe("Spatial Reference ID for output geometry (default: 4326)"),
433
+ });
434
+ /**
435
+ * Preprocess geocode point to support aliases
436
+ */
437
+ function preprocessGeocodeParams(input) {
438
+ if (typeof input !== "object" || input === null) {
439
+ return input;
440
+ }
441
+ const p = input;
442
+ const result = { ...p };
443
+ if (result["latitude"] !== undefined && result["lat"] === undefined) {
444
+ result["lat"] = result["latitude"];
445
+ }
446
+ if ((result["lon"] !== undefined || result["longitude"] !== undefined) &&
447
+ result["lng"] === undefined) {
448
+ result["lng"] = result["lon"] ?? result["longitude"];
449
+ }
450
+ return result;
451
+ }
452
+ export const GeocodeSchema = z
453
+ .preprocess(preprocessGeocodeParams, GeocodeSchemaBase)
454
+ .transform((data) => ({
455
+ lat: data.lat ?? data.latitude,
456
+ lng: data.lng ?? data.lon ?? data.longitude,
457
+ srid: data.srid,
458
+ }))
459
+ .refine((data) => data.lat !== undefined, {
460
+ message: "lat (or latitude alias) is required",
461
+ })
462
+ .refine((data) => data.lng !== undefined, {
463
+ message: "lng (or lon/longitude alias) is required",
464
+ })
465
+ .refine((data) => data.lat === undefined || (data.lat >= -90 && data.lat <= 90), {
466
+ message: "lat must be between -90 and 90 degrees",
467
+ })
468
+ .refine((data) => data.lng === undefined || (data.lng >= -180 && data.lng <= 180), {
469
+ message: "lng must be between -180 and 180 degrees",
470
+ });
471
+ // =============================================================================
472
+ // pg_geo_transform
473
+ // =============================================================================
474
+ export const GeoTransformSchemaBase = z.object({
475
+ table: z.string().optional().describe("Table name"),
476
+ tableName: z.string().optional().describe("Alias for table"),
477
+ schema: z.string().optional().describe("Schema name (default: public)"),
478
+ column: z.string().optional().describe("Geometry column"),
479
+ geom: z.string().optional().describe("Alias for column"),
480
+ geometryColumn: z.string().optional().describe("Alias for column"),
481
+ fromSrid: z.number().optional().describe("Source SRID"),
482
+ sourceSrid: z.number().optional().describe("Alias for fromSrid"),
483
+ toSrid: z.number().optional().describe("Target SRID"),
484
+ targetSrid: z.number().optional().describe("Alias for toSrid"),
485
+ where: z.string().optional().describe("Filter condition"),
486
+ limit: z.number().optional().describe("Maximum rows to return"),
487
+ });
488
+ export const GeoTransformSchema = z
489
+ .preprocess(preprocessPostgisParams, GeoTransformSchemaBase)
490
+ .transform((data) => ({
491
+ table: data.table ?? data.tableName ?? "",
492
+ schema: data.schema,
493
+ column: data.column ?? data.geom ?? data.geometryColumn ?? "",
494
+ fromSrid: data.fromSrid ?? data.sourceSrid ?? 0,
495
+ toSrid: data.toSrid ?? data.targetSrid ?? 0,
496
+ where: data.where,
497
+ limit: data.limit,
498
+ }))
499
+ .refine((data) => data.table !== "", {
500
+ message: "table (or tableName alias) is required",
501
+ })
502
+ .refine((data) => data.column !== "", {
503
+ message: "column (or geom/geometryColumn alias) is required",
504
+ })
505
+ .refine((data) => data.fromSrid > 0, {
506
+ message: "fromSrid (or sourceSrid alias) is required",
507
+ })
508
+ .refine((data) => data.toSrid > 0, {
509
+ message: "toSrid (or targetSrid alias) is required",
510
+ });
511
+ // =============================================================================
512
+ // pg_geo_cluster
513
+ // =============================================================================
514
+ export const GeoClusterSchemaBase = z.object({
515
+ table: z.string().optional().describe("Table name"),
516
+ tableName: z.string().optional().describe("Alias for table"),
517
+ schema: z.string().optional().describe("Schema name (default: public)"),
518
+ column: z.string().optional().describe("Geometry column name"),
519
+ geom: z.string().optional().describe("Alias for column"),
520
+ geometryColumn: z.string().optional().describe("Alias for column"),
521
+ method: z
522
+ .enum(["dbscan", "kmeans"])
523
+ .optional()
524
+ .describe("Clustering method (default: dbscan)"),
525
+ algorithm: z
526
+ .enum(["dbscan", "kmeans"])
527
+ .optional()
528
+ .describe("Alias for method"),
529
+ eps: z.number().optional().describe("DBSCAN: Distance threshold"),
530
+ minPoints: z
531
+ .number()
532
+ .optional()
533
+ .describe("DBSCAN: Minimum points per cluster"),
534
+ numClusters: z.number().optional().describe("K-Means: Number of clusters"),
535
+ k: z.number().optional().describe("Alias for numClusters"),
536
+ clusters: z.number().optional().describe("Alias for numClusters"),
537
+ params: z
538
+ .object({
539
+ eps: z.number().optional(),
540
+ minPoints: z.number().optional(),
541
+ numClusters: z.number().optional(),
542
+ k: z.number().optional(),
543
+ })
544
+ .optional()
545
+ .describe("Algorithm parameters object (top-level params take precedence)"),
546
+ where: z.string().optional().describe("WHERE clause filter"),
547
+ limit: z.number().optional(),
548
+ });
549
+ export const GeoClusterSchema = z
550
+ .preprocess(preprocessPostgisParams, GeoClusterSchemaBase)
551
+ .transform((data) => {
552
+ const paramsObj = data.params ?? {};
553
+ return {
554
+ table: data.table ?? data.tableName ?? "",
555
+ schema: data.schema,
556
+ column: data.column ?? data.geom ?? data.geometryColumn ?? "",
557
+ method: data.method ?? data.algorithm,
558
+ eps: data.eps ?? paramsObj.eps,
559
+ minPoints: data.minPoints ?? paramsObj.minPoints,
560
+ numClusters: data.numClusters ??
561
+ data.k ??
562
+ data.clusters ??
563
+ paramsObj.numClusters ??
564
+ paramsObj.k,
565
+ where: data.where,
566
+ limit: data.limit,
567
+ };
568
+ })
569
+ .refine((data) => data.table !== "", {
570
+ message: "table (or tableName alias) is required",
571
+ })
572
+ .refine((data) => data.column !== "", {
573
+ message: "column (or geom/geometryColumn alias) is required",
574
+ });
575
+ // =============================================================================
576
+ // Standalone Geometry Tools
577
+ // =============================================================================
578
+ // pg_geometry_buffer
579
+ export const GeometryBufferSchemaBase = z.object({
580
+ geometry: z.string().optional().describe("WKT or GeoJSON geometry string"),
581
+ wkt: z.string().optional().describe("Alias for geometry (WKT format)"),
582
+ geojson: z
583
+ .string()
584
+ .optional()
585
+ .describe("Alias for geometry (GeoJSON format)"),
586
+ distance: z
587
+ .number()
588
+ .optional()
589
+ .describe("Buffer distance (in meters by default)"),
590
+ radius: z.number().optional().describe("Alias for distance"),
591
+ meters: z.number().optional().describe("Alias for distance"),
592
+ unit: z
593
+ .enum(["meters", "m", "kilometers", "km", "miles", "mi"])
594
+ .optional()
595
+ .describe("Distance unit (default: meters)"),
596
+ simplify: z
597
+ .number()
598
+ .optional()
599
+ .describe("Simplification tolerance in meters (default: none). Higher values = fewer points. Set to reduce payload size."),
600
+ srid: z
601
+ .number()
602
+ .optional()
603
+ .describe("Spatial Reference ID (default: 4326 for WGS84)"),
604
+ });
605
+ export const GeometryBufferSchema = GeometryBufferSchemaBase.transform((data) => {
606
+ const rawDistance = data.distance ?? data.radius ?? data.meters ?? 0;
607
+ return {
608
+ geometry: data.geometry ?? data.wkt ?? data.geojson ?? "",
609
+ distance: convertToMeters(rawDistance, data.unit),
610
+ unit: data.unit,
611
+ simplify: data.simplify !== undefined
612
+ ? convertToMeters(data.simplify, data.unit)
613
+ : undefined,
614
+ srid: data.srid,
615
+ };
616
+ })
617
+ .refine((data) => data.geometry !== "", {
618
+ message: "geometry (or wkt/geojson alias) is required",
619
+ })
620
+ .refine((data) => data.distance > 0, {
621
+ message: "distance (or radius/meters alias) is required and must be positive",
622
+ })
623
+ .refine((data) => data.simplify === undefined || data.simplify >= 0, {
624
+ message: "simplify must be a non-negative number if provided",
625
+ });
626
+ // pg_geometry_intersection
627
+ export const GeometryIntersectionSchemaBase = z.object({
628
+ geometry1: z.string().describe("First WKT or GeoJSON geometry"),
629
+ geometry2: z.string().describe("Second WKT or GeoJSON geometry"),
630
+ });
631
+ export const GeometryIntersectionSchema = GeometryIntersectionSchemaBase;
632
+ // pg_geometry_transform
633
+ export const GeometryTransformSchemaBase = z.object({
634
+ geometry: z.string().optional().describe("WKT or GeoJSON geometry string"),
635
+ wkt: z.string().optional().describe("Alias for geometry"),
636
+ geojson: z.string().optional().describe("Alias for geometry"),
637
+ fromSrid: z
638
+ .number()
639
+ .optional()
640
+ .describe("Source SRID (e.g., 4326 for WGS84)"),
641
+ sourceSrid: z.number().optional().describe("Alias for fromSrid"),
642
+ toSrid: z
643
+ .number()
644
+ .optional()
645
+ .describe("Target SRID (e.g., 3857 for Web Mercator)"),
646
+ targetSrid: z.number().optional().describe("Alias for toSrid"),
647
+ });
648
+ export const GeometryTransformSchema = GeometryTransformSchemaBase.transform((data) => ({
649
+ geometry: data.geometry ?? data.wkt ?? data.geojson ?? "",
650
+ fromSrid: data.fromSrid ?? data.sourceSrid ?? 0,
651
+ toSrid: data.toSrid ?? data.targetSrid ?? 0,
652
+ }))
653
+ .refine((data) => data.geometry !== "", {
654
+ message: "geometry (or wkt/geojson alias) is required",
655
+ })
656
+ .refine((data) => data.fromSrid > 0, {
657
+ message: "fromSrid (or sourceSrid alias) is required",
658
+ })
659
+ .refine((data) => data.toSrid > 0, {
660
+ message: "toSrid (or targetSrid alias) is required",
661
+ });
662
+ //# sourceMappingURL=postgis.js.map