{"_id":"@pgsql/traverse","_rev":"22-1bec1929b7f994847ad83b73ee8dfab5","name":"@pgsql/traverse","dist-tags":{"latest":"18.7.10"},"versions":{"17.1.0":{"name":"@pgsql/traverse","version":"17.1.0","keywords":["sql","postgres","postgresql","pg","ast","traverse","visitor"],"author":{"name":"Dan Lynch","email":"pyramation@gmail.com"},"license":"SEE LICENSE IN LICENSE","_id":"@pgsql/traverse@17.1.0","maintainers":[{"name":"pyramation","email":"pyramation@gmail.com"}],"homepage":"https://github.com/launchql/pgsql-parser","bugs":{"url":"https://github.com/launchql/pgsql-parser/issues"},"dist":{"shasum":"c178d5dab34a22cc0828ccfb51679a17ca446325","tarball":"https://registry.npmjs.org/@pgsql/traverse/-/traverse-17.1.0.tgz","fileCount":12,"integrity":"sha512-SJeCzDDrZkDqkqcLmLWGA38pxtNv1tJFIRcT2M0lFTsm66b5FBGo9wQqfIYeyJ0VMtcfd65kmQzzhQ3/XeY/CQ==","signatures":[{"sig":"MEUCIF4x+7vusTtqxrsRx5xfE8s7BMyH/xGSQnT8zqqbsJiGAiEAlN1QcXNoaOE5BX9XLGJn+IWTI/0NHqyI1W/NEKIoEjs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":515937},"main":"index.js","types":"index.d.ts","module":"esm/index.js","gitHead":"c2982c6793a8e92395a32e5d9d656b04e060466b","scripts":{"copy":"copyfiles -f ../../LICENSE README.md package.json dist","lint":"eslint . --fix","test":"jest","build":"npm run clean && tsc && tsc -p tsconfig.esm.json && npm run copy","clean":"rimraf dist","prepare":"npm run build","build:dev":"npm run clean && tsc --declarationMap && tsc -p tsconfig.esm.json && npm run copy","test:watch":"jest --watch","build:proto":"ts-node scripts/pg-proto-parser"},"_npmUser":{"name":"pyramation","actor":{"name":"pyramation","type":"user","email":"pyramation@gmail.com"},"email":"pyramation@gmail.com"},"repository":{"url":"git+https://github.com/launchql/pgsql-parser.git","type":"git"},"_npmVersion":"lerna/4.0.0/node@v22.13.1+arm64 (darwin)","description":"PostgreSQL AST traversal utilities for pgsql-parser","directories":{},"_nodeVersion":"22.13.1","dependencies":{"@pgsql/types":"^17.6.1","pg-proto-parser":"^1.29.2"},"publishConfig":{"access":"public","directory":"dist"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/traverse_17.1.0_1751360581876_0.9331653426358542","host":"s3://npm-registry-packages-npm-production"}},"17.2.0":{"name":"@pgsql/traverse","version":"17.2.0","keywords":["sql","postgres","postgresql","pg","ast","traverse","visitor"],"author":{"name":"Dan Lynch","email":"pyramation@gmail.com"},"license":"MIT","_id":"@pgsql/traverse@17.2.0","maintainers":[{"name":"pyramation","email":"pyramation@gmail.com"}],"homepage":"https://github.com/launchql/pgsql-parser","bugs":{"url":"https://github.com/launchql/pgsql-parser/issues"},"dist":{"shasum":"5da0c43acbc33fe1db1d6a9c639791437851c3fd","tarball":"https://registry.npmjs.org/@pgsql/traverse/-/traverse-17.2.0.tgz","fileCount":12,"integrity":"sha512-Rbcuid9YpYrUix4JIOnW5DHJviwVTQwpl/FgVqvuBJrCu4GeOzDicdyUECF8Bq6zII+URCxBlKLE0seajjrsjw==","signatures":[{"sig":"MEUCIGKaGMl9q9s5UR6ZE+uXHk7D8i4n0ublCFp2KxoCLhHCAiEAtDGJzXEkBslBJ87/0IozKW4SQCMKaT9l7RqurY4MDtw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":516312},"main":"index.js","types":"index.d.ts","module":"esm/index.js","gitHead":"3ae060bb9e0edcf8869d6e9da350216d6c6e01cf","scripts":{"copy":"copyfiles -f ../../LICENSE README.md package.json dist","lint":"eslint . --fix","test":"jest","build":"npm run clean && tsc && tsc -p tsconfig.esm.json && npm run copy","clean":"rimraf dist","prepare":"npm run build","build:dev":"npm run clean && tsc --declarationMap && tsc -p tsconfig.esm.json && npm run copy","test:watch":"jest --watch","build:proto":"ts-node scripts/pg-proto-parser"},"_npmUser":{"name":"pyramation","email":"pyramation@gmail.com"},"repository":{"url":"git+https://github.com/launchql/pgsql-parser.git","type":"git"},"_npmVersion":"lerna/4.0.0/node@v22.13.1+arm64 (darwin)","description":"PostgreSQL AST traversal utilities for pgsql-parser","directories":{},"_nodeVersion":"22.13.1","dependencies":{"@pgsql/types":"^17.6.1","pg-proto-parser":"^1.30.0"},"publishConfig":{"access":"public","directory":"dist"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/traverse_17.2.0_1763874532586_0.3805594390766025","host":"s3://npm-registry-packages-npm-production"}},"17.2.1":{"name":"@pgsql/traverse","version":"17.2.1","keywords":["sql","postgres","postgresql","pg","ast","traverse","visitor"],"author":"Dan Lynch <pyramation@gmail.com>","license":"MIT","_id":"@pgsql/traverse@17.2.1","maintainers":[{"name":"pyramation","email":"pyramation@gmail.com"}],"homepage":"https://github.com/launchql/pgsql-parser","bugs":{"url":"https://github.com/launchql/pgsql-parser/issues"},"dist":{"shasum":"4f032b9017a0e65615497229fdb7d5406447b65d","tarball":"https://registry.npmjs.org/@pgsql/traverse/-/traverse-17.2.1.tgz","fileCount":12,"integrity":"sha512-z8HWDNz9xk87SJo8XjFH+B5gTGoWKRi4Grt5xomLEq4y/UviGdJJYCQtJtU7EAitRmeMd4xq3sF3uLrdeHJXGg==","signatures":[{"sig":"MEQCIAZKlnEV0jwboJy0qDjeC6DAD6XhUQMv0QvhaEvHmzPKAiAOqK0mrjADG3B/1zv126vQl09lxSuCjiQ5oP8s+p+TKg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":516339},"main":"index.js","types":"index.d.ts","module":"esm/index.js","gitHead":"da3ab5c3f032c80958902486ef4fd6dc236e0e12","scripts":{"copy":"makage assets","lint":"eslint . --fix","test":"jest","build":"npm run clean && tsc && tsc -p tsconfig.esm.json && npm run copy","clean":"makage clean dist","build:dev":"npm run clean && tsc --declarationMap && tsc -p tsconfig.esm.json && npm run copy","test:watch":"jest --watch","build:proto":"ts-node scripts/pg-proto-parser","prepublishOnly":"npm run build"},"_npmUser":{"name":"pyramation","email":"pyramation@gmail.com"},"repository":{"url":"https://github.com/launchql/pgsql-parser","type":"git"},"_npmVersion":"lerna/8.2.4/node@v22.13.1+arm64 (darwin)","description":"PostgreSQL AST traversal utilities for pgsql-parser","directories":{},"_nodeVersion":"22.13.1","dependencies":{"@pgsql/types":"^17.6.1","pg-proto-parser":"1.30.1"},"publishConfig":{"access":"public","directory":"dist"},"_hasShrinkwrap":false,"devDependencies":{"makage":"^0.1.3"},"_npmOperationalInternal":{"tmp":"tmp/traverse_17.2.1_1763883386987_0.8871716883562251","host":"s3://npm-registry-packages-npm-production"}},"17.2.2":{"name":"@pgsql/traverse","version":"17.2.2","keywords":["sql","postgres","postgresql","pg","ast","traverse","visitor"],"author":"Constructive <developers@constructive.io>","license":"MIT","_id":"@pgsql/traverse@17.2.2","maintainers":[{"name":"pyramation","email":"pyramation@gmail.com"}],"homepage":"https://github.com/constructive-io/pgsql-parser","bugs":{"url":"https://github.com/constructive-io/pgsql-parser/issues"},"dist":{"shasum":"360d6b230c45f7784b47788f13ea6a680f85991b","tarball":"https://registry.npmjs.org/@pgsql/traverse/-/traverse-17.2.2.tgz","fileCount":12,"integrity":"sha512-ZiBrISiuhm7A6EfFmv5jqD2/CkNHOO3z4OdzricGXdgUu/FZEobI8ejlS+xVmk1J+5iD3HqyWASTP83OktfKXg==","signatures":[{"sig":"MEUCIEUP1b0Llt8Scukja2Nh9TDCE/18VpWreDEuy9uwy/r4AiEAnrDuy/hJntq1CwCvNyiBOeUPfgXImPsIJ16fJQd5oKg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":516628},"main":"index.js","types":"index.d.ts","module":"esm/index.js","gitHead":"de2ac125ad90c1299238b4c2f24d355bde36adb7","scripts":{"copy":"makage assets","lint":"eslint . --fix","test":"jest","build":"npm run clean && tsc && tsc -p tsconfig.esm.json && npm run copy","clean":"makage clean dist","build:dev":"npm run clean && tsc --declarationMap && tsc -p tsconfig.esm.json && npm run copy","test:watch":"jest --watch","build:proto":"ts-node scripts/pg-proto-parser","prepublishOnly":"npm run build"},"_npmUser":{"name":"pyramation","email":"pyramation@gmail.com"},"repository":{"url":"https://github.com/constructive-io/pgsql-parser","type":"git"},"_npmVersion":"lerna/8.2.4/node@v22.13.1+arm64 (darwin)","description":"PostgreSQL AST traversal utilities for pgsql-parser","directories":{},"_nodeVersion":"22.13.1","dependencies":{"@pgsql/types":"^17.6.2","pg-proto-parser":"1.30.2"},"publishConfig":{"access":"public","directory":"dist"},"_hasShrinkwrap":false,"devDependencies":{"makage":"^0.1.8"},"_npmOperationalInternal":{"tmp":"tmp/traverse_17.2.2_1765444202928_0.6107070651832172","host":"s3://npm-registry-packages-npm-production"}},"17.2.3":{"name":"@pgsql/traverse","version":"17.2.3","keywords":["sql","postgres","postgresql","pg","ast","traverse","visitor"],"author":"Constructive <developers@constructive.io>","license":"MIT","_id":"@pgsql/traverse@17.2.3","maintainers":[{"name":"pyramation","email":"pyramation@gmail.com"}],"homepage":"https://github.com/constructive-io/pgsql-parser","bugs":{"url":"https://github.com/constructive-io/pgsql-parser/issues"},"dist":{"shasum":"544a101b3dc10bcf85f284aa2175bc257b7860b7","tarball":"https://registry.npmjs.org/@pgsql/traverse/-/traverse-17.2.3.tgz","fileCount":12,"integrity":"sha512-QENhHDZKQ9jnXeHGesTH2YuuGeEOW8r+12eAbZVF00V3s3krhuqEWL8bsh+wHbLOxmBKh8d9XujuRmHQs0kabg==","signatures":[{"sig":"MEUCIQDCeyfAOkkqV/GYeA0gTdE3cbAH17H2tqnC4wE7Kx9YSwIgG8qp3eAgTkLMrwfW9VZ1JCJ1aagivM4tb5IlIse1/Wo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":516632},"main":"index.js","types":"index.d.ts","module":"esm/index.js","gitHead":"94ed53491da04b82adca48f9e323630ed0138031","scripts":{"copy":"makage assets","lint":"eslint . --fix","test":"jest","build":"npm run clean && tsc && tsc -p tsconfig.esm.json && npm run copy","clean":"makage clean dist","build:dev":"npm run clean && tsc --declarationMap && tsc -p tsconfig.esm.json && npm run copy","test:watch":"jest --watch","build:proto":"ts-node scripts/pg-proto-parser","prepublishOnly":"npm run build"},"_npmUser":{"name":"pyramation","email":"pyramation@gmail.com"},"repository":{"url":"https://github.com/constructive-io/pgsql-parser","type":"git"},"_npmVersion":"lerna/8.2.4/node@v22.13.1+arm64 (darwin)","description":"PostgreSQL AST traversal utilities for pgsql-parser","directories":{},"_nodeVersion":"22.13.1","dependencies":{"@pgsql/types":"^17.6.2","pg-proto-parser":"1.30.3"},"publishConfig":{"access":"public","directory":"dist"},"_hasShrinkwrap":false,"devDependencies":{"makage":"^0.1.8"},"_npmOperationalInternal":{"tmp":"tmp/traverse_17.2.3_1766829788368_0.7380969230830632","host":"s3://npm-registry-packages-npm-production"}},"17.2.4":{"name":"@pgsql/traverse","version":"17.2.4","keywords":["sql","postgres","postgresql","pg","ast","traverse","visitor"],"author":"Constructive <developers@constructive.io>","license":"MIT","_id":"@pgsql/traverse@17.2.4","maintainers":[{"name":"pyramation","email":"pyramation@gmail.com"}],"homepage":"https://github.com/constructive-io/pgsql-parser","bugs":{"url":"https://github.com/constructive-io/pgsql-parser/issues"},"dist":{"shasum":"ef3249c5b47dbfa84a891b91a668aad6b276e7a7","tarball":"https://registry.npmjs.org/@pgsql/traverse/-/traverse-17.2.4.tgz","fileCount":12,"integrity":"sha512-7dnst2U3qXXSFbS+HvVktW/C4aVKe/niaRxZ1cfhmdy9E7SMYM0OukFO7gvoZb6I3dnKm/eTfpv23JPKq5z6DA==","signatures":[{"sig":"MEYCIQCjPRDfVEDdu8g74COjg2qKhzP/jKLlXVgswWU9p/2efgIhAL2Ru9kOxW4b2vUhlAu+uFYC5/XgtlKx7gUiW3hll6cv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":517206},"main":"index.js","types":"index.d.ts","module":"esm/index.js","gitHead":"e5fdba1e3a67157bb5cab8ab40741f6f206d71b3","scripts":{"copy":"makage assets","lint":"eslint . --fix","test":"jest","build":"npm run clean && tsc && tsc -p tsconfig.esm.json && npm run copy","clean":"makage clean dist","build:dev":"npm run clean && tsc --declarationMap && tsc -p tsconfig.esm.json && npm run copy","test:watch":"jest --watch","build:proto":"ts-node scripts/pg-proto-parser","prepublishOnly":"npm run build"},"_npmUser":{"name":"pyramation","email":"pyramation@gmail.com"},"repository":{"url":"https://github.com/constructive-io/pgsql-parser","type":"git"},"_npmVersion":"lerna/8.2.4/node@v22.13.1+arm64 (darwin)","description":"PostgreSQL AST traversal utilities for pgsql-parser","directories":{},"_nodeVersion":"22.13.1","dependencies":{"@pgsql/types":"^17.6.2","pg-proto-parser":"1.30.4"},"publishConfig":{"access":"public","directory":"dist"},"_hasShrinkwrap":false,"devDependencies":{"makage":"^0.1.8"},"_npmOperationalInternal":{"tmp":"tmp/traverse_17.2.4_1766831006632_0.6983933729944918","host":"s3://npm-registry-packages-npm-production"}},"17.2.5":{"name":"@pgsql/traverse","version":"17.2.5","keywords":["sql","postgres","postgresql","pg","ast","traverse","visitor"],"author":"Constructive <developers@constructive.io>","license":"MIT","_id":"@pgsql/traverse@17.2.5","maintainers":[{"name":"pyramation","email":"pyramation@gmail.com"}],"homepage":"https://github.com/constructive-io/pgsql-parser","bugs":{"url":"https://github.com/constructive-io/pgsql-parser/issues"},"dist":{"shasum":"0fccc29f9a51963a2e117396aeef28616bae0671","tarball":"https://registry.npmjs.org/@pgsql/traverse/-/traverse-17.2.5.tgz","fileCount":12,"integrity":"sha512-LJAkgoSCL5JDy9uFPFZ3duLCTYzYwu/FNxcRNIvwL1xwcSm2KLWu7SWWt+N5EJVbJd6LVA792Ei899a5RJH+7Q==","signatures":[{"sig":"MEUCIQDCf62X4XvbLquN5tjWwDzsw2tP4E536uvMq08JNUd9VQIgcMjHEGALSTgz3ggHTEiINfj1/5rq8icG6jvW4BWoeks=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":517206},"main":"index.js","types":"index.d.ts","module":"esm/index.js","gitHead":"58ddefe11a5d002db6645fa7bc2f284123d48470","scripts":{"copy":"makage assets","lint":"eslint . --fix","test":"jest","build":"npm run clean && tsc && tsc -p tsconfig.esm.json && npm run copy","clean":"makage clean dist","build:dev":"npm run clean && tsc --declarationMap && tsc -p tsconfig.esm.json && npm run copy","test:watch":"jest --watch","build:proto":"ts-node scripts/pg-proto-parser","prepublishOnly":"npm run build"},"_npmUser":{"name":"pyramation","email":"pyramation@gmail.com"},"repository":{"url":"https://github.com/constructive-io/pgsql-parser","type":"git"},"_npmVersion":"lerna/8.2.4/node@v22.13.1+arm64 (darwin)","description":"PostgreSQL AST traversal utilities for pgsql-parser","directories":{},"_nodeVersion":"22.13.1","dependencies":{"@pgsql/types":"^17.6.2","pg-proto-parser":"1.30.5"},"publishConfig":{"access":"public","directory":"dist"},"_hasShrinkwrap":false,"devDependencies":{"makage":"^0.1.8"},"_npmOperationalInternal":{"tmp":"tmp/traverse_17.2.5_1773544636046_0.42038182519979617","host":"s3://npm-registry-packages-npm-production"}},"17.2.6":{"name":"@pgsql/traverse","version":"17.2.6","keywords":["sql","postgres","postgresql","pg","ast","traverse","visitor"],"author":"Constructive <developers@constructive.io>","license":"MIT","_id":"@pgsql/traverse@17.2.6","maintainers":[{"name":"pyramation","email":"pyramation@gmail.com"}],"homepage":"https://github.com/constructive-io/pgsql-parser","bugs":{"url":"https://github.com/constructive-io/pgsql-parser/issues"},"dist":{"shasum":"58bd44c1430da44911890811b85782396e7d6e45","tarball":"https://registry.npmjs.org/@pgsql/traverse/-/traverse-17.2.6.tgz","fileCount":12,"integrity":"sha512-BLOE9DUcvd3y3Ogf56mmpTONPylnMuFCo9PvHQA9SXavcRPhRtvIZ/sRO2ja+bUWK/3KTLJ1Hb61CbbdPkcHoA==","signatures":[{"sig":"MEYCIQDLg4cFp73gbHKRzo/0xxG/ShSyGRXSL97r6kA4UycrHQIhAIlwwvVRGCQZI9GseP0G7tOLwP3JONMoxKCAjqNE6Tp3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":517206},"main":"index.js","types":"index.d.ts","module":"esm/index.js","gitHead":"7ee33c06cf7b4b3d2a1c7041e77602e395b1acd6","scripts":{"copy":"makage assets","lint":"eslint . --fix","test":"jest","build":"npm run clean && tsc && tsc -p tsconfig.esm.json && npm run copy","clean":"makage clean dist","build:dev":"npm run clean && tsc --declarationMap && tsc -p tsconfig.esm.json && npm run copy","test:watch":"jest --watch","build:proto":"ts-node scripts/pg-proto-parser","prepublishOnly":"npm run build"},"_npmUser":{"name":"pyramation","email":"pyramation@gmail.com"},"repository":{"url":"https://github.com/constructive-io/pgsql-parser","type":"git"},"_npmVersion":"lerna/8.2.4/node@v22.13.1+arm64 (darwin)","description":"PostgreSQL AST traversal utilities for pgsql-parser","directories":{},"_nodeVersion":"22.13.1","dependencies":{"@pgsql/types":"^17.6.2","pg-proto-parser":"1.30.6"},"publishConfig":{"access":"public","directory":"dist"},"_hasShrinkwrap":false,"devDependencies":{"makage":"^0.1.8"},"_npmOperationalInternal":{"tmp":"tmp/traverse_17.2.6_1778342757515_0.7905966247814478","host":"s3://npm-registry-packages-npm-production"}},"18.0.0":{"name":"@pgsql/traverse","version":"18.0.0","keywords":["sql","postgres","postgresql","pg","ast","traverse","visitor"],"author":"Constructive <developers@constructive.io>","license":"MIT","_id":"@pgsql/traverse@18.0.0","maintainers":[{"name":"pyramation","email":"pyramation@gmail.com"}],"homepage":"https://github.com/constructive-io/pgsql-parser","bugs":{"url":"https://github.com/constructive-io/pgsql-parser/issues"},"dist":{"shasum":"b2d21003bed7822e58fb0228ae5cb899f0a0e86a","tarball":"https://registry.npmjs.org/@pgsql/traverse/-/traverse-18.0.0.tgz","fileCount":12,"integrity":"sha512-3npj9w1AflNbtayU/MilgosBIa0aVABEcpmqS1VM1BERiHdKipn0pbRUj7pASSiSC+Iv9HfI+j1OVA0JWvcLCg==","signatures":[{"sig":"MEUCIBUNqZ31jFf6eLggkOAmZoVgFpbcNI3R465qmDOxMC0sAiEAww/vvEwrgBljk8mu29XPStztv2fNi3S3ajmLt3bJfhQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":530086},"main":"index.js","types":"index.d.ts","module":"esm/index.js","gitHead":"f700ee16d18aeacd2788eeb4410d73928cd11a5f","scripts":{"copy":"makage assets","lint":"eslint . --fix","test":"jest","build":"npm run clean && tsc && tsc -p tsconfig.esm.json && npm run copy","clean":"makage clean dist","build:dev":"npm run clean && tsc --declarationMap && tsc -p tsconfig.esm.json && npm run copy","test:watch":"jest --watch","build:proto":"ts-node scripts/pg-proto-parser","prepublishOnly":"npm run build"},"_npmUser":{"name":"pyramation","email":"pyramation@gmail.com"},"repository":{"url":"https://github.com/constructive-io/pgsql-parser","type":"git"},"_npmVersion":"lerna/8.2.4/node@v22.13.1+arm64 (darwin)","description":"PostgreSQL AST traversal utilities for pgsql-parser","directories":{},"_nodeVersion":"22.13.1","dependencies":{"@pgsql/types":"^18.0.0","pg-proto-parser":"1.30.6"},"publishConfig":{"access":"public","directory":"dist"},"_hasShrinkwrap":false,"devDependencies":{"makage":"^0.1.8"},"_npmOperationalInternal":{"tmp":"tmp/traverse_18.0.0_1784667809738_0.3128105822501257","host":"s3://npm-registry-packages-npm-production"}},"18.1.0":{"name":"@pgsql/traverse","version":"18.1.0","keywords":["sql","postgres","postgresql","pg","ast","traverse","visitor"],"author":"Constructive <developers@constructive.io>","license":"MIT","_id":"@pgsql/traverse@18.1.0","maintainers":[{"name":"pyramation","email":"pyramation@gmail.com"}],"homepage":"https://github.com/constructive-io/pgsql-parser","bugs":{"url":"https://github.com/constructive-io/pgsql-parser/issues"},"dist":{"shasum":"4021b1e4986a69a8f1b12dc8920f3fe9f84e2d36","tarball":"https://registry.npmjs.org/@pgsql/traverse/-/traverse-18.1.0.tgz","fileCount":12,"integrity":"sha512-B+jIX6BvWrHO6DKlJ7p6Wvhbu1s7IhksLwwC3tvV+epKiuU4v8gJLd/OVQ5xeRSwhhLWmrctRfuAKHecbCaNjw==","signatures":[{"sig":"MEYCIQD5GYa80HFFwxrS3ntswA5KZpHcWCGK47i4HolDPQk43wIhAJ2H2BbUZCq5y4glnKYoRL3BePOfVCHDfS+WptxNXuTN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":530086},"main":"index.js","types":"index.d.ts","module":"esm/index.js","gitHead":"13f064c263eb304d704fd21148add24a9d60a8ee","scripts":{"copy":"makage assets","lint":"eslint . --fix","test":"jest","build":"npm run clean && tsc && tsc -p tsconfig.esm.json && npm run copy","clean":"makage clean dist","build:dev":"npm run clean && tsc --declarationMap && tsc -p tsconfig.esm.json && npm run copy","test:watch":"jest --watch","build:proto":"ts-node scripts/pg-proto-parser","prepublishOnly":"npm run build"},"_npmUser":{"name":"pyramation","email":"pyramation@gmail.com"},"repository":{"url":"https://github.com/constructive-io/pgsql-parser","type":"git"},"_npmVersion":"lerna/8.2.4/node@v22.13.1+arm64 (darwin)","description":"PostgreSQL AST traversal utilities for pgsql-parser","directories":{},"_nodeVersion":"22.13.1","dependencies":{"@pgsql/types":"^18.0.0","pg-proto-parser":"1.31.0"},"publishConfig":{"access":"public","directory":"dist"},"_hasShrinkwrap":false,"devDependencies":{"makage":"^0.1.8"},"_npmOperationalInternal":{"tmp":"tmp/traverse_18.1.0_1784669863992_0.9557288117035307","host":"s3://npm-registry-packages-npm-production"}},"18.2.0":{"name":"@pgsql/traverse","version":"18.2.0","keywords":["sql","postgres","postgresql","pg","ast","traverse","visitor"],"author":"Constructive <developers@constructive.io>","license":"MIT","_id":"@pgsql/traverse@18.2.0","maintainers":[{"name":"pyramation","email":"pyramation@gmail.com"}],"homepage":"https://github.com/constructive-io/pgsql-parser","bugs":{"url":"https://github.com/constructive-io/pgsql-parser/issues"},"dist":{"shasum":"1b223ebdc3f32ed869486b53694f4144b3eb9469","tarball":"https://registry.npmjs.org/@pgsql/traverse/-/traverse-18.2.0.tgz","fileCount":12,"integrity":"sha512-I26TEc9qFM6VrvrWNBv8vphaRaiC1qLSn5bp6pMv0VkBef6FreqCO8Djey7grGUwnEFFvuHbR22SprcOTOZS3Q==","signatures":[{"sig":"MEUCIQCd6nb0e7rT5g/cXHS+QOg9c33l5wFdxcBCf5WntqSNmwIgJXVfUNTdrdzRLeDz/PGKwnDzogG6CTbrcEY/eaC5N3A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":533132},"main":"index.js","types":"index.d.ts","module":"esm/index.js","gitHead":"4efd8a4641db35f174cff9f1b332e9a4684f74ea","scripts":{"copy":"makage assets","lint":"eslint . --fix","test":"jest","build":"npm run clean && tsc && tsc -p tsconfig.esm.json && npm run copy","clean":"makage clean dist","build:dev":"npm run clean && tsc --declarationMap && tsc -p tsconfig.esm.json && npm run copy","test:watch":"jest --watch","build:proto":"ts-node scripts/pg-proto-parser","prepublishOnly":"npm run build"},"_npmUser":{"name":"pyramation","email":"pyramation@gmail.com"},"repository":{"url":"https://github.com/constructive-io/pgsql-parser","type":"git"},"_npmVersion":"lerna/8.2.4/node@v22.13.1+arm64 (darwin)","description":"PostgreSQL AST traversal utilities for pgsql-parser","directories":{},"_nodeVersion":"22.13.1","dependencies":{"@pgsql/types":"^18.0.0","pg-proto-parser":"1.31.0"},"publishConfig":{"access":"public","directory":"dist"},"_hasShrinkwrap":false,"devDependencies":{"makage":"^0.1.8"},"_npmOperationalInternal":{"tmp":"tmp/traverse_18.2.0_1784701638503_0.1432735833285621","host":"s3://npm-registry-packages-npm-production"}},"18.3.0":{"name":"@pgsql/traverse","version":"18.3.0","keywords":["sql","postgres","postgresql","pg","ast","traverse","visitor"],"author":"Constructive <developers@constructive.io>","license":"MIT","_id":"@pgsql/traverse@18.3.0","maintainers":[{"name":"pyramation","email":"pyramation@gmail.com"}],"homepage":"https://github.com/constructive-io/pgsql-parser","bugs":{"url":"https://github.com/constructive-io/pgsql-parser/issues"},"dist":{"shasum":"b1e7b93e6635e7968b562fd7877e96e3f73a49c0","tarball":"https://registry.npmjs.org/@pgsql/traverse/-/traverse-18.3.0.tgz","fileCount":12,"integrity":"sha512-5DOD9OExBT8wvejdQavnpWlI9625w2j3Mi+ecvCUxaXz/R+Lesj3lsp8Bp7gmUFEOJ7hbhDr0zCzfJkjPHjsJw==","signatures":[{"sig":"MEUCIHfdClKcYFpauY5TalSuNvYtfIgwK4gHoahT901Ia6jWAiEAnRU9mM52u3Yox7CtdtTWHcyzEf8hy7oj5+yabFGz9lo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":535088},"main":"index.js","types":"index.d.ts","module":"esm/index.js","gitHead":"67f3109a897835572dfd83ed69ebcffdfc201e5a","scripts":{"copy":"makage assets","lint":"eslint . --fix","test":"jest","build":"npm run clean && tsc && tsc -p tsconfig.esm.json && npm run copy","clean":"makage clean dist","build:dev":"npm run clean && tsc --declarationMap && tsc -p tsconfig.esm.json && npm run copy","test:watch":"jest --watch","build:proto":"ts-node scripts/pg-proto-parser","prepublishOnly":"npm run build"},"_npmUser":{"name":"pyramation","email":"pyramation@gmail.com"},"repository":{"url":"https://github.com/constructive-io/pgsql-parser","type":"git"},"_npmVersion":"lerna/8.2.4/node@v22.13.1+arm64 (darwin)","description":"PostgreSQL AST traversal utilities for pgsql-parser","directories":{},"_nodeVersion":"22.13.1","dependencies":{"@pgsql/types":"^18.0.0","pg-proto-parser":"1.31.0"},"publishConfig":{"access":"public","directory":"dist"},"_hasShrinkwrap":false,"devDependencies":{"makage":"^0.1.8"},"_npmOperationalInternal":{"tmp":"tmp/traverse_18.3.0_1784705243642_0.4335127539392758","host":"s3://npm-registry-packages-npm-production"}},"18.4.0":{"name":"@pgsql/traverse","version":"18.4.0","keywords":["sql","postgres","postgresql","pg","ast","traverse","visitor"],"author":"Constructive <developers@constructive.io>","license":"MIT","_id":"@pgsql/traverse@18.4.0","maintainers":[{"name":"pyramation","email":"pyramation@gmail.com"}],"homepage":"https://github.com/constructive-io/pgsql-parser","bugs":{"url":"https://github.com/constructive-io/pgsql-parser/issues"},"dist":{"shasum":"14f3301deb3bbd6af94ddcb3edbd9ccc2c65e36b","tarball":"https://registry.npmjs.org/@pgsql/traverse/-/traverse-18.4.0.tgz","fileCount":15,"integrity":"sha512-7D6mjHwW6gpTp0/tCwrthzctDtGgo63R+Y0fBIRNYwUMTOj45Jhnlsj67mlq9yv+BgDZguWawo59EGdIF3vrgg==","signatures":[{"sig":"MEUCIHErootnQ0MBWgs5nTy1xfcnk+HXnZ3Vh36sgMtoK/c3AiEAjepiNQslcWf3BVyZ7YvUOj+F4b6ERYDVxQuBEOV00rg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":557915},"main":"index.js","types":"index.d.ts","module":"esm/index.js","gitHead":"979608121bc1e7daf2bd11473b2b894266e21bc7","scripts":{"copy":"makage assets","lint":"eslint . --fix","test":"jest","build":"npm run clean && tsc && tsc -p tsconfig.esm.json && npm run copy","clean":"makage clean dist","build:dev":"npm run clean && tsc --declarationMap && tsc -p tsconfig.esm.json && npm run copy","test:watch":"jest --watch","build:proto":"ts-node scripts/pg-proto-parser","prepublishOnly":"npm run build"},"_npmUser":{"name":"pyramation","email":"pyramation@gmail.com"},"repository":{"url":"https://github.com/constructive-io/pgsql-parser","type":"git"},"_npmVersion":"lerna/8.2.4/node@v22.13.1+arm64 (darwin)","description":"PostgreSQL AST traversal utilities for pgsql-parser","directories":{},"_nodeVersion":"22.13.1","dependencies":{"@pgsql/types":"^18.0.0","pg-proto-parser":"1.31.0"},"publishConfig":{"access":"public","directory":"dist"},"_hasShrinkwrap":false,"devDependencies":{"makage":"^0.1.8"},"_npmOperationalInternal":{"tmp":"tmp/traverse_18.4.0_1785446660637_0.43354369725223085","host":"s3://npm-registry-packages-npm-production"}},"18.6.0":{"name":"@pgsql/traverse","version":"18.6.0","keywords":["sql","postgres","postgresql","pg","ast","traverse","visitor"],"author":"Constructive <developers@constructive.io>","license":"MIT","_id":"@pgsql/traverse@18.6.0","maintainers":[{"name":"pyramation","email":"pyramation@gmail.com"}],"homepage":"https://github.com/constructive-io/pgsql-parser","bugs":{"url":"https://github.com/constructive-io/pgsql-parser/issues"},"dist":{"shasum":"6d87f5a6c9c748ffe3b42ac6df139fb14da19ed3","tarball":"https://registry.npmjs.org/@pgsql/traverse/-/traverse-18.6.0.tgz","fileCount":21,"integrity":"sha512-ThN3Qzs92AdTrMXsdspT6E+kkr9DguTzfpLPECK26Nm7c2z8bLEdcCZiUfht9mOvEuU+oZ4FFLO4U0TKxsy6xQ==","signatures":[{"sig":"MEUCIQCUYdOkcEUqdJ9PdYg58vu2I0ezYB1Li8LqKAWq8z9iMQIgTl2QmuqilIUvEYTaZbrVlnWOkMSNQDqvSE2SzXhpjNc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":632604},"main":"index.js","types":"index.d.ts","module":"esm/index.js","gitHead":"571af81b3e5e5582eae226053b820f9c90c898b6","scripts":{"copy":"makage assets","lint":"eslint . --fix","test":"jest","build":"npm run clean && tsc && tsc -p tsconfig.esm.json && npm run copy","clean":"makage clean dist","build:dev":"npm run clean && tsc --declarationMap && tsc -p tsconfig.esm.json && npm run copy","test:watch":"jest --watch","build:proto":"ts-node scripts/pg-proto-parser","prepublishOnly":"npm run build"},"_npmUser":{"name":"pyramation","email":"pyramation@gmail.com"},"repository":{"url":"https://github.com/constructive-io/pgsql-parser","type":"git"},"_npmVersion":"lerna/8.2.4/node@v22.13.1+arm64 (darwin)","description":"PostgreSQL AST traversal utilities for pgsql-parser","directories":{},"_nodeVersion":"22.13.1","dependencies":{"@pgsql/types":"^18.0.0","pg-proto-parser":"1.31.0","plpgsql-deparser":"18.1.3"},"publishConfig":{"access":"public","directory":"dist"},"_hasShrinkwrap":false,"devDependencies":{"makage":"^0.1.8"},"_npmOperationalInternal":{"tmp":"tmp/traverse_18.6.0_1785534978782_0.4403868634001227","host":"s3://npm-registry-packages-npm-production"}},"18.7.0":{"name":"@pgsql/traverse","version":"18.7.0","keywords":["sql","postgres","postgresql","pg","ast","traverse","visitor"],"author":"Constructive <developers@constructive.io>","license":"MIT","_id":"@pgsql/traverse@18.7.0","maintainers":[{"name":"pyramation","email":"pyramation@gmail.com"}],"homepage":"https://github.com/constructive-io/pgsql-parser","bugs":{"url":"https://github.com/constructive-io/pgsql-parser/issues"},"dist":{"shasum":"3367f2844b188acbf3eeb6a73a79035138646ef7","tarball":"https://registry.npmjs.org/@pgsql/traverse/-/traverse-18.7.0.tgz","fileCount":21,"integrity":"sha512-uLZHYED0Xj/bFDhx+TyqHwv/Z0wiLrwW70/E+6ys1FN00Qzk+0tQgC2RjlbB3259Lg63bAcZgcCfDiHYqOzPVQ==","signatures":[{"sig":"MEYCIQD5r+xsWI+gWyf0j8fsQp4iQczYPEdaJ5l8Bsb9ASR1cwIhAO5EoabDLoPozaQPemdlTEZFaJTi9HaTh7zMqIvEYYQL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":632604},"main":"index.js","types":"index.d.ts","module":"esm/index.js","gitHead":"a60df59baaf11fbfe516b0ed25280d5854ad00e9","scripts":{"copy":"makage assets","lint":"eslint . --fix","test":"jest","build":"npm run clean && tsc && tsc -p tsconfig.esm.json && npm run copy","clean":"makage clean dist","build:dev":"npm run clean && tsc --declarationMap && tsc -p tsconfig.esm.json && npm run copy","test:watch":"jest --watch","build:proto":"ts-node scripts/pg-proto-parser","prepublishOnly":"npm run build"},"_npmUser":{"name":"pyramation","email":"pyramation@gmail.com"},"repository":{"url":"https://github.com/constructive-io/pgsql-parser","type":"git"},"_npmVersion":"lerna/8.2.4/node@v22.13.1+arm64 (darwin)","description":"PostgreSQL AST traversal utilities for pgsql-parser","directories":{},"_nodeVersion":"22.13.1","dependencies":{"@pgsql/types":"^18.0.0","pg-proto-parser":"1.32.0","plpgsql-deparser":"18.2.0"},"publishConfig":{"access":"public","directory":"dist"},"_hasShrinkwrap":false,"devDependencies":{"makage":"^0.1.8"},"_npmOperationalInternal":{"tmp":"tmp/traverse_18.7.0_1785547910113_0.5485263232461708","host":"s3://npm-registry-packages-npm-production"}},"18.7.1":{"name":"@pgsql/traverse","version":"18.7.1","keywords":["sql","postgres","postgresql","pg","ast","traverse","visitor"],"author":"Constructive <developers@constructive.io>","license":"MIT","_id":"@pgsql/traverse@18.7.1","maintainers":[{"name":"pyramation","email":"pyramation@gmail.com"}],"homepage":"https://github.com/constructive-io/pgsql-parser","bugs":{"url":"https://github.com/constructive-io/pgsql-parser/issues"},"dist":{"shasum":"b76ef89f8fc87ad0fed9cfcedef62c5480e27b2b","tarball":"https://registry.npmjs.org/@pgsql/traverse/-/traverse-18.7.1.tgz","fileCount":21,"integrity":"sha512-wiENAHpUEEB8JpvlGv2kRJp2m/T1TAktR/qfEo6EBYB+YFVWkpVMFiF5DnZfV5R/xCId3dy1BXwSPqQ+wyl2mg==","signatures":[{"sig":"MEUCIE0hSz4blBHOi9UY0htLHlruRAxAZG5bjCuRw4h52VM9AiEAwgIsmnttUny0SNCSloV2xZBIjeEAqMoLRsOVnCpc16Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":632604},"main":"index.js","types":"index.d.ts","module":"esm/index.js","gitHead":"4c8ecf62465ed608f068ef127d2b9f4a23844f6f","scripts":{"copy":"makage assets","lint":"eslint . --fix","test":"jest","build":"npm run clean && tsc && tsc -p tsconfig.esm.json && npm run copy","clean":"makage clean dist","build:dev":"npm run clean && tsc --declarationMap && tsc -p tsconfig.esm.json && npm run copy","test:watch":"jest --watch","build:proto":"ts-node scripts/pg-proto-parser","prepublishOnly":"npm run build"},"_npmUser":{"name":"pyramation","email":"pyramation@gmail.com"},"repository":{"url":"https://github.com/constructive-io/pgsql-parser","type":"git"},"_npmVersion":"lerna/8.2.4/node@v22.13.1+arm64 (darwin)","description":"PostgreSQL AST traversal utilities for pgsql-parser","directories":{},"_nodeVersion":"22.13.1","dependencies":{"@pgsql/types":"^18.0.0","pg-proto-parser":"1.32.1","plpgsql-deparser":"18.2.1"},"publishConfig":{"access":"public","directory":"dist"},"_hasShrinkwrap":false,"devDependencies":{"makage":"^0.1.8"},"_npmOperationalInternal":{"tmp":"tmp/traverse_18.7.1_1785548768742_0.7426726163240056","host":"s3://npm-registry-packages-npm-production"}},"18.7.2":{"name":"@pgsql/traverse","version":"18.7.2","keywords":["sql","postgres","postgresql","pg","ast","traverse","visitor"],"author":"Constructive <developers@constructive.io>","license":"MIT","_id":"@pgsql/traverse@18.7.2","maintainers":[{"name":"pyramation","email":"pyramation@gmail.com"}],"homepage":"https://github.com/constructive-io/pgsql-parser","bugs":{"url":"https://github.com/constructive-io/pgsql-parser/issues"},"dist":{"shasum":"1342ab0e53d3ca2cb962e2eb770718e333c862cd","tarball":"https://registry.npmjs.org/@pgsql/traverse/-/traverse-18.7.2.tgz","fileCount":21,"integrity":"sha512-bHO7IMSiYp7IJdSFUKxi4hHJVXvcKhaz4fs7AQv9limVbsJqtD9ZKid6Tnj+7GAbvm1zYlqKfwwt3kkxsw+7yw==","signatures":[{"sig":"MEYCIQCzG16Gcu+jHmT7vXg0Lk0eUBP2bIQJ07xq9t5ecNm30AIhAIFcA9CRPeelkDD0cI8VUKCv5AP2i8heNlc2n+8gun5z","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":632604},"main":"index.js","types":"index.d.ts","module":"esm/index.js","gitHead":"bc21e590439743a236da9757adf2d43d34432710","scripts":{"copy":"makage assets","lint":"eslint . --fix","test":"jest","build":"npm run clean && tsc && tsc -p tsconfig.esm.json && npm run copy","clean":"makage clean dist","build:dev":"npm run clean && tsc --declarationMap && tsc -p tsconfig.esm.json && npm run copy","test:watch":"jest --watch","build:proto":"ts-node scripts/pg-proto-parser","prepublishOnly":"npm run build"},"_npmUser":{"name":"pyramation","email":"pyramation@gmail.com"},"repository":{"url":"https://github.com/constructive-io/pgsql-parser","type":"git"},"_npmVersion":"lerna/8.2.4/node@v22.13.1+arm64 (darwin)","description":"PostgreSQL AST traversal utilities for pgsql-parser","directories":{},"_nodeVersion":"22.13.1","dependencies":{"@pgsql/types":"^18.0.0","pg-proto-parser":"1.32.1","plpgsql-deparser":"18.2.2"},"publishConfig":{"access":"public","directory":"dist"},"_hasShrinkwrap":false,"devDependencies":{"makage":"^0.1.8"},"_npmOperationalInternal":{"tmp":"tmp/traverse_18.7.2_1785711203931_0.05122096713411062","host":"s3://npm-registry-packages-npm-production"}},"18.7.3":{"name":"@pgsql/traverse","version":"18.7.3","keywords":["sql","postgres","postgresql","pg","ast","traverse","visitor"],"author":"Constructive <developers@constructive.io>","license":"MIT","_id":"@pgsql/traverse@18.7.3","maintainers":[{"name":"pyramation","email":"pyramation@gmail.com"}],"homepage":"https://github.com/constructive-io/pgsql-parser","bugs":{"url":"https://github.com/constructive-io/pgsql-parser/issues"},"dist":{"shasum":"464526679fcda5bd76cef6b7ab821db152f98166","tarball":"https://registry.npmjs.org/@pgsql/traverse/-/traverse-18.7.3.tgz","fileCount":21,"integrity":"sha512-lT/JnF226s6tB15wIUpGre+y0+GEvLut9tIpltCy0fdx92LIbG0ZTV3KiBpKrKEAjsoV+80TiCvh+aM2Ycilyw==","signatures":[{"sig":"MEUCIF3eRWyl3uaVXU8UWvNejOZBpiXWi0yYOTIz2F73QyQSAiEAwb04Jb/ysIezBkrL0Y1EmvRakvLrb+qzA+OuKjuHmEk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":632604},"main":"index.js","types":"index.d.ts","module":"esm/index.js","gitHead":"b6105874628cc7b8517c1ebbd99e9ad6fe786976","scripts":{"copy":"makage assets","lint":"eslint . --fix","test":"jest","build":"npm run clean && tsc && tsc -p tsconfig.esm.json && npm run copy","clean":"makage clean dist","build:dev":"npm run clean && tsc --declarationMap && tsc -p tsconfig.esm.json && npm run copy","test:watch":"jest --watch","build:proto":"ts-node scripts/pg-proto-parser","prepublishOnly":"npm run build"},"_npmUser":{"name":"pyramation","email":"pyramation@gmail.com"},"repository":{"url":"https://github.com/constructive-io/pgsql-parser","type":"git"},"_npmVersion":"lerna/8.2.4/node@v22.13.1+arm64 (darwin)","description":"PostgreSQL AST traversal utilities for pgsql-parser","directories":{},"_nodeVersion":"22.13.1","dependencies":{"@pgsql/types":"^18.0.0","pg-proto-parser":"1.32.2","plpgsql-deparser":"18.2.3"},"publishConfig":{"access":"public","directory":"dist"},"_hasShrinkwrap":false,"devDependencies":{"makage":"^0.5.1"},"_npmOperationalInternal":{"tmp":"tmp/traverse_18.7.3_1785738540797_0.2735020377425481","host":"s3://npm-registry-packages-npm-production"}},"18.7.7":{"name":"@pgsql/traverse","version":"18.7.7","keywords":["sql","postgres","postgresql","pg","ast","traverse","visitor"],"author":{"name":"Constructive","email":"developers@constructive.io"},"license":"MIT","_id":"@pgsql/traverse@18.7.7","maintainers":[{"name":"pyramation","email":"pyramation@gmail.com"}],"homepage":"https://github.com/constructive-io/pgsql-parser","bugs":{"url":"https://github.com/constructive-io/pgsql-parser/issues"},"dist":{"shasum":"cf6978a0a627024e73aa0f09f3bbe4359a6591c8","tarball":"https://registry.npmjs.org/@pgsql/traverse/-/traverse-18.7.7.tgz","fileCount":21,"integrity":"sha512-WHPNa+2/g5lpAAKHxAizSci84d8FXnBK76pqHIKc9UeyRcAmq3gjnSww6z9AZcUXRVuzf6xpPpN68z1jAMdk6w==","signatures":[{"sig":"MEUCID1m5d+nyy+9yvGTFmtODqdFYhbZ1i/d2K+BSO0tpw7+AiEA8VjUHuXIrdUD2X1g6S+kQGuezj/Y7oE1IOtVmwi2NGQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":632604},"main":"index.js","types":"index.d.ts","module":"esm/index.js","gitHead":"30547f42aa4eb3b5677701b921cca23378452b0d","scripts":{"copy":"makage assets","lint":"eslint . --fix","test":"jest","build":"npm run clean && tsc && tsc -p tsconfig.esm.json && npm run copy","clean":"makage clean dist","build:dev":"npm run clean && tsc --declarationMap && tsc -p tsconfig.esm.json && npm run copy","test:watch":"jest --watch","build:proto":"ts-node scripts/pg-proto-parser","prepublishOnly":"npm run build"},"_npmUser":{"name":"pyramation","email":"pyramation@gmail.com"},"repository":{"url":"git+https://github.com/constructive-io/pgsql-parser.git","type":"git"},"_npmVersion":"lerna/10.0.0/node@v22.13.1+arm64 (darwin)","description":"PostgreSQL AST traversal utilities for pgsql-parser","directories":{},"_nodeVersion":"22.13.1","dependencies":{"@pgsql/types":"^18.0.0","pg-proto-parser":"1.32.5","plpgsql-deparser":"18.2.7"},"publishConfig":{"access":"public","directory":"dist"},"_hasShrinkwrap":false,"devDependencies":{"makage":"^0.5.1"},"_npmOperationalInternal":{"tmp":"tmp/traverse_18.7.7_1786140182910_0.35484698641009405","host":"s3://npm-registry-packages-npm-production"}},"18.7.8":{"name":"@pgsql/traverse","version":"18.7.8","keywords":["sql","postgres","postgresql","pg","ast","traverse","visitor"],"author":{"name":"Constructive","email":"developers@constructive.io"},"license":"MIT","_id":"@pgsql/traverse@18.7.8","maintainers":[{"name":"pyramation","email":"pyramation@gmail.com"}],"homepage":"https://github.com/constructive-io/pgsql-parser","bugs":{"url":"https://github.com/constructive-io/pgsql-parser/issues"},"dist":{"shasum":"b8bd1c62152e2cc891ffa0cf3d64884c7119aff6","tarball":"https://registry.npmjs.org/@pgsql/traverse/-/traverse-18.7.8.tgz","fileCount":21,"integrity":"sha512-7AYN9R3ecleCmeGQxNDk5OriTNqeTDgTn7j9hXxBLo/LwHkT3H6gfr8o3vDwnmyNoJlMOvTdFqjQq+WM19mksg==","signatures":[{"sig":"MEYCIQCUkj3LdIvHoqq1mIFkoPH8f39ZL6Na/rT/13lgrb3X8gIhAO9bq1L1h+UUraNgs2QYP4tRoefIkv4sfblifmfHOytG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":632604},"main":"index.js","types":"index.d.ts","module":"esm/index.js","gitHead":"0a734eba1425f7a1c15c3fc67550a81a5fbcba01","scripts":{"copy":"makage assets","lint":"eslint . --fix","test":"jest","build":"npm run clean && tsc && tsc -p tsconfig.esm.json && npm run copy","clean":"makage clean dist","build:dev":"npm run clean && tsc --declarationMap && tsc -p tsconfig.esm.json && npm run copy","test:watch":"jest --watch","build:proto":"ts-node scripts/pg-proto-parser","prepublishOnly":"npm run build"},"_npmUser":{"name":"pyramation","email":"pyramation@gmail.com"},"repository":{"url":"git+https://github.com/constructive-io/pgsql-parser.git","type":"git"},"_npmVersion":"lerna/10.0.0/node@v24.19.0+arm64 (darwin)","description":"PostgreSQL AST traversal utilities for pgsql-parser","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@pgsql/types":"^18.0.0","pg-proto-parser":"1.32.5","plpgsql-deparser":"18.2.8"},"publishConfig":{"access":"public","directory":"dist"},"_hasShrinkwrap":false,"devDependencies":{"makage":"^0.5.1"},"_npmOperationalInternal":{"tmp":"tmp/traverse_18.7.8_1787111432304_0.27056639960861495","host":"s3://npm-registry-packages-npm-production"}},"18.7.9":{"name":"@pgsql/traverse","version":"18.7.9","keywords":["sql","postgres","postgresql","pg","ast","traverse","visitor"],"author":{"name":"Constructive","email":"developers@constructive.io"},"license":"MIT","_id":"@pgsql/traverse@18.7.9","maintainers":[{"name":"pyramation","email":"pyramation@gmail.com"}],"homepage":"https://github.com/constructive-io/pgsql-parser","bugs":{"url":"https://github.com/constructive-io/pgsql-parser/issues"},"dist":{"shasum":"70a9f4db2a68930c6b639605e5ea37e1f1097314","tarball":"https://registry.npmjs.org/@pgsql/traverse/-/traverse-18.7.9.tgz","fileCount":21,"integrity":"sha512-hsWh2qmIPkI40V566nmFXKvt9B4bOalneDqe5/NJhiFZMtK8+98qZfVaYwLK25Fy7C3rendn7h7o6sa0XvqnzA==","signatures":[{"sig":"MEUCIQCpXL1Uof7Su3r3JOzHqXHCUoUFb3IUJcYtslFpaG0ynQIgKbiDv/Qk6Hss4URi+v50X8Lo6i3NSAXlm4XData7kPM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHjLEbjCpuZf3tPfXjU16qj7sPTtVnvxKE2/X/OaV4USAiEAokifgE7taqaVA9mPPDrvteItv+hpJnoiE7X8mRHl2ks=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":632604},"main":"index.js","types":"index.d.ts","module":"esm/index.js","gitHead":"d8a34a60dacf1b7d5ba6e7443e2438ff049b6a56","scripts":{"copy":"makage assets","lint":"eslint . --fix","test":"jest","build":"npm run clean && tsc && tsc -p tsconfig.esm.json && npm run copy","clean":"makage clean dist","build:dev":"npm run clean && tsc --declarationMap && tsc -p tsconfig.esm.json && npm run copy","test:watch":"jest --watch","build:proto":"ts-node scripts/pg-proto-parser","prepublishOnly":"npm run build"},"_npmUser":{"name":"pyramation","email":"pyramation@gmail.com"},"repository":{"url":"git+https://github.com/constructive-io/pgsql-parser.git","type":"git"},"_npmVersion":"lerna/10.0.0/node@v24.19.0+arm64 (darwin)","description":"PostgreSQL AST traversal utilities for pgsql-parser","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@pgsql/types":"^18.0.0","pg-proto-parser":"1.32.5","plpgsql-deparser":"18.2.9"},"publishConfig":{"access":"public","directory":"dist"},"_hasShrinkwrap":false,"devDependencies":{"makage":"^0.5.1"},"_npmOperationalInternal":{"tmp":"tmp/traverse_18.7.9_1789631811483_0.10798975256408094","host":"s3://npm-registry-packages-npm-production"}},"18.7.10":{"_id":"@pgsql/traverse@18.7.10","bugs":{"url":"https://github.com/constructive-io/pgsql-parser/issues"},"dist":{"shasum":"97dec6019816cee211f3c887fdcdd2d01e7c117e","tarball":"https://registry.npmjs.org/@pgsql/traverse/-/traverse-18.7.10.tgz","fileCount":21,"integrity":"sha512-A7p6LJfTcslZbp3/JcSIxRUAAXjY0Bx/jkaFpwkYsbbXtjBopbGEhJ+B65KQIbbCDQwTH4i/zPS/wwL4AUx0lw==","signatures":[{"sig":"MEUCIQCdQ8zjPbeyXX5U2sF9Am9RMQ0eb6CgBi2AoLG0+C13aQIgOgD4QtR6fvPA2fNpWCMR5rmmzIDdAKe0s010dr4Glxk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGGa4qDoB6iOy/YYJj6A2qbQc/cDBxS7/YAerEEe/k8OAiEAicIO7kixrXLcj2NGspF0HFsoejdlHI/JJSRZZuE/zCU="}],"unpackedSize":632606},"main":"index.js","name":"@pgsql/traverse","types":"index.d.ts","author":{"name":"Constructive","email":"developers@constructive.io"},"module":"esm/index.js","gitHead":"b93d0f73eab976c7db21f7bc7e2dad165d25173e","license":"MIT","scripts":{"copy":"makage assets","lint":"eslint . --fix","test":"jest","build":"npm run clean && tsc && tsc -p tsconfig.esm.json && npm run copy","clean":"makage clean dist","build:dev":"npm run clean && tsc --declarationMap && tsc -p tsconfig.esm.json && npm run copy","test:watch":"jest --watch","build:proto":"ts-node scripts/pg-proto-parser","prepublishOnly":"npm run build"},"version":"18.7.10","_npmUser":{"name":"pyramation","email":"pyramation@gmail.com"},"homepage":"https://github.com/constructive-io/pgsql-parser","keywords":["sql","postgres","postgresql","pg","ast","traverse","visitor"],"repository":{"url":"git+https://github.com/constructive-io/pgsql-parser.git","type":"git"},"_npmVersion":"lerna/10.0.0/node@v24.19.0+arm64 (darwin)","description":"PostgreSQL AST traversal utilities for pgsql-parser","directories":{},"maintainers":[{"name":"pyramation","email":"pyramation@gmail.com"}],"_nodeVersion":"24.19.0","dependencies":{"@pgsql/types":"^18.0.0","pg-proto-parser":"1.32.5","plpgsql-deparser":"18.2.10"},"publishConfig":{"access":"public","directory":"dist"},"_hasShrinkwrap":false,"devDependencies":{"makage":"^0.5.1"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/traverse_18.7.10_1789675552933_0.7257175028161071"}}},"time":{"created":"2025-07-01T09:03:01.776Z","modified":"2026-09-17T20:05:53.212Z","17.1.0":"2025-07-01T09:03:02.083Z","17.2.0":"2025-11-23T05:08:52.813Z","17.2.1":"2025-11-23T07:36:27.160Z","17.2.2":"2025-12-11T09:10:03.104Z","17.2.3":"2025-12-27T10:03:08.541Z","17.2.4":"2025-12-27T10:23:26.773Z","17.2.5":"2026-03-15T03:17:16.193Z","17.2.6":"2026-05-09T16:05:57.668Z","18.0.0":"2026-07-21T21:03:29.889Z","18.1.0":"2026-07-21T21:37:44.130Z","18.2.0":"2026-07-22T06:27:18.648Z","18.3.0":"2026-07-22T07:27:23.778Z","18.4.0":"2026-07-30T21:24:20.786Z","18.6.0":"2026-07-31T21:56:18.926Z","18.7.0":"2026-08-01T01:31:50.260Z","18.7.1":"2026-08-01T01:46:08.883Z","18.7.2":"2026-08-02T22:53:24.087Z","18.7.3":"2026-08-03T06:29:00.952Z","18.7.7":"2026-08-07T22:03:03.059Z","18.7.8":"2026-08-19T03:50:32.443Z","18.7.9":"2026-09-17T07:56:51.585Z","18.7.10":"2026-09-17T20:05:53.032Z"},"bugs":{"url":"https://github.com/constructive-io/pgsql-parser/issues"},"author":{"name":"Constructive","email":"developers@constructive.io"},"license":"MIT","homepage":"https://github.com/constructive-io/pgsql-parser","keywords":["sql","postgres","postgresql","pg","ast","traverse","visitor"],"repository":{"url":"git+https://github.com/constructive-io/pgsql-parser.git","type":"git"},"description":"PostgreSQL AST traversal utilities for pgsql-parser","maintainers":[{"name":"pyramation","email":"pyramation@gmail.com"}],"readme":"# @pgsql/traverse\n\n<p align=\"center\" width=\"100%\">\n  <img height=\"250\" src=\"https://raw.githubusercontent.com/constructive-io/constructive/refs/heads/main/assets/outline-logo.svg\" />\n</p>\n\n\n<p align=\"center\" width=\"100%\">\n  <a href=\"https://github.com/constructive-io/pgsql-parser/actions/workflows/run-tests.yaml\">\n    <img height=\"20\" src=\"https://github.com/constructive-io/pgsql-parser/actions/workflows/run-tests.yaml/badge.svg\" />\n  </a>\n   <a href=\"https://github.com/constructive-io/pgsql-parser/blob/main/LICENSE-MIT\"><img height=\"20\" src=\"https://img.shields.io/badge/license-MIT-blue.svg\"/></a>\n</p>\n\n\nAST traversal for the pgsql-parser ecosystem: a Babel-style visitor pattern for PostgreSQL SQL ASTs **and** PL/pgSQL ASTs. Traversal only — nothing here parses SQL, so the package stays free of WASM.\n\n## Installation\n\n```bash\nnpm install @pgsql/traverse\n```\n\n## Which function do I want?\n\n| Function | Walks | Use when |\n| --- | --- | --- |\n| `walk(ast, visitors, opts?)` | **any** AST — parsed script, `ParseResult`, SQL node, PL/pgSQL node | default choice |\n| `walkSqlAst(ast, visitor)` | SQL AST only | you want the raw primitive, no statement context |\n| `walkPlpgsqlAst(ast, visitor, opts?)` | PL/pgSQL AST only | you already have a hydrated function body |\n| `traverse(ast, mutableVisitor)` | SQL AST, mutation-safe | you need to replace/insert/remove nodes |\n| [`walkSql(text, ...)`](../plpgsql-parser) in `plpgsql-parser` | SQL **text** | you start from a string and need parse + hydrate |\n\n## Usage\n\n### `walk` — one entry point for any AST\n\n`walk` dispatches on the shape of what you hand it:\n\n| Input | Walked |\n| --- | --- |\n| `{ sql, functions }` (a `ParsedScript` from `plpgsql-parser`) | every statement, then every hydrated PL/pgSQL body |\n| `{ version, stmts }` (a `ParseResult`) | every statement, with statement context |\n| `{ PLpgSQL_*: ... }` / `{ plpgsql_funcs: [...] }` | the PL/pgSQL body, descending into its hydrated SQL expressions |\n| any other SQL node | that node |\n| an array | each element |\n\n```typescript\nimport { walk } from '@pgsql/traverse';\nimport type { NodePath, Visitor, Walker } from '@pgsql/traverse';\n\n// A walker function fires on every node.\nwalk(ast, (path) => {\n  console.log(`Visiting ${path.tag} at path:`, path.path);\n  if (path.tag === 'SelectStmt') {\n    return false; // skip this node's children\n  }\n});\n\n// A visitor object fires per node tag. SQL and PL/pgSQL tags may be mixed.\nwalk(ast, {\n  SelectStmt: (path) => console.log('SELECT statement:', path.node),\n  RangeVar: (path) => console.log('Table:', path.node.relname),\n  PLpgSQL_stmt_dynexecute: (path) => console.log('dynamic EXECUTE:', path.node)\n});\n```\n\n#### Statement context\n\nEvery callback gets a second argument describing the statement the node belongs\nto. `NodePath` tells you *where* a node sits; `WalkContext` tells you *what it is\npart of* — which is what a `RangeVar` handler needs to know it is the write\ntarget of an `UPDATE`, or that it came from inside `auth.login`'s body.\n\n```typescript\ninterface WalkContext {\n  stmtTag: string | null;      // enclosing top-level statement, e.g. 'UpdateStmt'\n  stmtIndex: number;           // its index in the script, -1 if unknown\n  isWrite: boolean;            // INSERT/UPDATE/DELETE/MERGE/TRUNCATE/COPY\n  isRead: boolean;             // SELECT/EXPLAIN/DECLARE/FETCH\n  insideFunction: boolean;     // node came from a PL/pgSQL body\n  functionName: string | null; // dotted name of that function\n  abort(reason?: string): void;\n}\n\nwalk(parsed, {\n  RangeVar: (path, ctx) => {\n    if (ctx.isWrite) console.log('writes to', path.node.relname);\n    if (ctx.insideFunction) console.log('...from inside', ctx.functionName);\n  }\n});\n```\n\nThe reserved `statement` key fires once per top-level statement, before its\nchildren:\n\n```typescript\nwalk(parseResult, {\n  statement: (path, ctx) => console.log(ctx.stmtIndex, path.tag)\n});\n```\n\n#### Composing visitors\n\nPass an array to run several independent policies in a single pass:\n\n```typescript\nwalk(parsed, [blockedSchemas, readOnlySchemas, blockedFunctions]);\n```\n\n#### Skip vs. abort\n\n`return false` skips that node's children. `ctx.abort(reason?)` ends the entire\nwalk — what a validator wants when it has already decided to reject:\n\n```typescript\nconst result = walk(parsed, {\n  PLpgSQL_stmt_dynexecute: (_path, ctx) => ctx.abort('dynamic EXECUTE is not allowed')\n});\n\nresult.aborted; // true\nresult.reason;  // 'dynamic EXECUTE is not allowed'\nresult.reasons; // every reason, in call order\n```\n\n### `walkSqlAst` — the SQL-only primitive\n\nRecursion is derived from PostgreSQL's runtime schema, so it knows exactly which\nfields hold nodes, including untagged typed fields such as\n`CreatePolicyStmt.table`. `walk` is built on it.\n\n```typescript\nimport { walkSqlAst } from '@pgsql/traverse';\nimport type { Visitor, Walker } from '@pgsql/traverse';\n\nconst visitor: Visitor = {\n  RangeVar: (path) => console.log('Table:', path.node.relname)\n};\n\nwalkSqlAst(ast, visitor);\n```\n\n### `walkPlpgsqlAst` — the PL/pgSQL-only primitive\n\nWalks the PL/pgSQL node universe (`PLpgSQL_stmt_block`, `PLpgSQL_stmt_if`,\n`PLpgSQL_var`, ...), which the SQL parser never produces. A PL/pgSQL body is a\ncontrol-flow skeleton whose leaves are SQL expressions, so it bridges into\n`walkSqlAst` for every hydrated expression:\n\n```typescript\nimport { walkPlpgsqlAst } from '@pgsql/traverse';\n\nwalkPlpgsqlAst(hydratedBody, { PLpgSQL_var: (path) => console.log(path.node.refname) }, {\n  walkSqlExpressions: true,\n  sqlVisitor: { RangeVar: (path) => console.log('table in body:', path.node.relname) }\n});\n```\n\nHydration itself lives in `plpgsql-parser`.\n\n\n### NodePath Class\n\nThe `NodePath` class provides rich context information:\n\n```typescript\nclass NodePath<TTag extends NodeTag = NodeTag> {\n  tag: TTag;           // Node type (e.g., 'SelectStmt', 'RangeVar')\n  node: Node[TTag];    // The actual node data\n  parent: NodePath | null;  // Parent NodePath (null for root)\n  keyPath: readonly (string | number)[];  // Full path array\n  \n  get path(): (string | number)[];  // Copy of keyPath\n  get key(): string | number;       // Last element of path\n}\n```\n\n### Working with ParseResult\n\n```typescript\nimport { walk } from '@pgsql/traverse';\n\nconst visitor = {\n  ParseResult: (path) => {\n    console.log('Parse result version:', path.node.version);\n    console.log('Number of statements:', path.node.stmts.length);\n  },\n  SelectStmt: (path) => {\n    console.log('SELECT statement found');\n  }\n};\n\nwalk(parseResult, visitor);\n```\n\n### Reading a node's position\n\n`NodePath` describes where a node sits in the tree:\n\n```typescript\nconst visitor = {\n  RangeVar: (path) => {\n    console.log('Table name:', path.node.relname);\n    console.log('Path to this node:', path.path);\n    console.log('Parent node:', path.parent?.tag);\n    console.log('Key in parent:', path.key);\n  }\n};\n```\n\n### Collecting Information During Traversal\n\n```typescript\nimport { walk } from '@pgsql/traverse';\nimport type { Visitor } from '@pgsql/traverse';\n\nconst tableNames: string[] = [];\nconst columnRefs: string[] = [];\n\nconst visitor: Visitor = {\n  RangeVar: (path) => {\n    if (path.node.relname) {\n      tableNames.push(path.node.relname);\n    }\n  },\n  ColumnRef: (path) => {\n    for (const field of path.node.fields ?? []) {\n      if (field.String?.sval) {\n        columnRefs.push(field.String.sval);\n      }\n    }\n  }\n};\n\nwalk(ast, visitor);\n\nconsole.log('Tables referenced:', tableNames);\nconsole.log('Columns referenced:', columnRefs);\n```\n\n## API\n\n### `walk(root, visitors, options?): WalkResult`\n\nWalks any AST — SQL, PL/pgSQL, or a parsed script — with one or more visitors.\n\n**Parameters:**\n- `root`: the AST, parse result, or parsed script to traverse\n- `visitors`: a walker function, a visitor object, or an array of either\n- `options?`:\n  - `walkFunctionBodies` (default `true`) — walk hydrated PL/pgSQL bodies of a parsed script\n  - `walkSqlExpressions` (default `true`) — recurse into hydrated SQL expressions inside bodies\n  - `sqlVisitor` — override the visitor used for those SQL expressions\n\n**Returns** `{ aborted, reason?, reasons }`.\n\n### `walkSqlAst(root, callback, parent?, keyPath?)`\n\nThe SQL-only primitive. Walks PostgreSQL AST nodes using the runtime schema for\nprecise traversal.\n\n**Parameters:**\n- `root`: The AST node to traverse\n- `callback`: A walker function or visitor object\n- `parent?`: Optional parent NodePath (for internal use)\n- `keyPath?`: Optional key path array (for internal use)\n\n### `walkPlpgsqlAst(root, callback, options?, parent?, keyPath?)`\n\nThe PL/pgSQL-only primitive.\n\n**Parameters:**\n- `root`: The PL/pgSQL AST node to traverse\n- `callback`: A walker function or visitor object keyed by `PLpgSQL_*` tags\n- `options?`: `{ walkSqlExpressions?, sqlVisitor? }`\n\n### `traverse(root, mutableVisitor)`\n\nThe mutation-capable walker: `enter`/`exit` hooks and sibling insert/remove/replace\nthrough `MutablePath`. Use it when the walk needs to change the tree; `walk` is\nread-only.\n\n### Types\n\n#### `WalkContext`\n\nStatement context threaded into every `walk` callback:\n\n```typescript\ninterface WalkContext {\n  readonly stmtTag: string | null;\n  readonly stmtIndex: number;\n  readonly isWrite: boolean;\n  readonly isRead: boolean;\n  readonly insideFunction: boolean;\n  readonly functionName: string | null;\n  abort(reason?: string): void;\n}\n```\n\n#### `WalkResult`\n\nWhat `walk` returns:\n\n```typescript\ninterface WalkResult {\n  aborted: boolean;   // a visitor called ctx.abort()\n  reason?: string;    // the first reason given\n  reasons: string[];  // every reason, in call order\n}\n```\n\n\n#### `Visitor`\n\nAn object type where keys are node type names and values are walker functions:\n\n```typescript\ntype Visitor = {\n  [TTag in NodeTag]?: Walker<NodePath<TTag>>;\n};\n```\n\n#### `Walker`\n\nA function that receives a NodePath and can return false to skip children:\n\n```typescript\ntype Walker<TNodePath extends NodePath = NodePath> = (\n  path: TNodePath,\n) => boolean | void;\n```\n\n#### `NodePath`\n\nA class that encapsulates node traversal context:\n\n```typescript\nclass NodePath<TTag extends NodeTag = NodeTag> {\n  tag: TTag;                                    // Node type\n  node: Node[TTag];                            // Node data\n  parent: NodePath | null;                     // Parent path\n  keyPath: readonly (string | number)[];       // Full path\n  \n  get path(): (string | number)[];             // Path copy\n  get key(): string | number;                  // Current key\n}\n```\n\n#### `NodeTag`\n\nUnion type of all PostgreSQL AST node type names:\n\n```typescript\ntype NodeTag = keyof Node;\n```\n\n## Supported Node Types\n\nThis package works with all PostgreSQL AST node types defined in `@pgsql/types`, including:\n\n- `ParseResult` - Root parse result from libpg-query\n- `SelectStmt` - SELECT statements\n- `InsertStmt` - INSERT statements\n- `UpdateStmt` - UPDATE statements\n- `DeleteStmt` - DELETE statements\n- `RangeVar` - Table references\n- `ColumnRef` - Column references\n- `A_Expr` - Expressions\n- `A_Const` - Constants\n- And many more...\n\n## Integration with pgsql-parser\n\nThis package is designed to work seamlessly with the pgsql-parser ecosystem:\n\n```typescript\nimport { parse } from 'pgsql-parser';\nimport { walk } from '@pgsql/traverse';\n\nconst sql = 'SELECT name, email FROM users WHERE age > 18';\nconst ast = await parse(sql);\n\nwalk(ast, {\n  RangeVar: (path) => {\n    console.log('Table:', path.node.relname);\n  },\n  ColumnRef: (path) => {\n    console.log('Column:', path.node.fields?.[0]?.String?.sval);\n  }\n});\n```\n\nStarting from SQL text? `plpgsql-parser`'s `walkSql` does the parse and the\nPL/pgSQL hydration for you, then hands off to `walk`.\n\n---\n\n**🛠 Built by the [Constructive](https://constructive.io) team — creators of modular Postgres tooling for secure, composable backends. If you like our work, contribute on [GitHub](https://github.com/constructive-io).**\n\n## Related\n\n* [pgpm](https://pgpm.dev): A Postgres Package Manager that brings modular development to PostgreSQL with reusable packages, deterministic migrations, recursive dependency resolution, and tag-aware versioning.\n* [pgsql-test](https://www.npmjs.com/package/pgsql-test): Instant, isolated PostgreSQL databases for each test with automatic transaction rollbacks, context switching, and clean seeding for fast, reliable database testing.\n* [pgsql-seed](https://www.npmjs.com/package/pgsql-seed): PostgreSQL seeding utilities for CSV, JSON, SQL data loading, and pgpm deployment.\n* [pgsql-parser](https://www.npmjs.com/package/pgsql-parser): The real PostgreSQL parser for Node.js, providing symmetric parsing and deparsing of SQL statements with actual PostgreSQL parser integration.\n* [pgsql-deparser](https://www.npmjs.com/package/pgsql-deparser): A streamlined tool designed for converting PostgreSQL ASTs back into SQL queries, focusing solely on deparser functionality to complement `pgsql-parser`.\n* [@pgsql/parser](https://www.npmjs.com/package/@pgsql/parser): Multi-version PostgreSQL parser with dynamic version selection at runtime, supporting PostgreSQL 15, 16, and 17 in a single package.\n* [@pgsql/types](https://www.npmjs.com/package/@pgsql/types): Offers TypeScript type definitions for PostgreSQL AST nodes, facilitating type-safe construction, analysis, and manipulation of ASTs.\n* [@pgsql/enums](https://www.npmjs.com/package/@pgsql/enums): Provides TypeScript enum definitions for PostgreSQL constants, enabling type-safe usage of PostgreSQL enums and constants in your applications.\n* [@pgsql/utils](https://www.npmjs.com/package/@pgsql/utils): A comprehensive utility library for PostgreSQL, offering type-safe AST node creation and enum value conversions, simplifying the construction and manipulation of PostgreSQL ASTs.\n* [@pgsql/traverse](https://www.npmjs.com/package/@pgsql/traverse): PostgreSQL AST traversal utilities for pgsql-parser, providing a visitor pattern for traversing PostgreSQL Abstract Syntax Tree nodes, similar to Babel's traverse functionality but specifically designed for PostgreSQL AST structures.\n* [pg-proto-parser](https://www.npmjs.com/package/pg-proto-parser): A TypeScript tool that parses PostgreSQL Protocol Buffers definitions to generate TypeScript interfaces, utility functions, and JSON mappings for enums.\n* [libpg-query](https://github.com/constructive-io/libpg-query-node): The real PostgreSQL parser exposed for Node.js, used primarily in `pgsql-parser` for parsing and deparsing SQL queries.\n\n## Disclaimer\n\nAS DESCRIBED IN THE LICENSES, THE SOFTWARE IS PROVIDED \"AS IS\", AT YOUR OWN RISK, AND WITHOUT WARRANTIES OF ANY KIND.\n\nNo developer or entity involved in creating Software will be liable for any claims or damages whatsoever associated with your use, inability to use, or your interaction with other users of the Software code or Software CLI, including any direct, indirect, incidental, special, exemplary, punitive or consequential damages, or loss of profits, cryptocurrencies, tokens, or anything else of value.\n","readmeFilename":"README.md"}