{"_id":"zimmerframe","_rev":"22-d6a63e2230e0c2f70a8fd64f028b16ff","name":"zimmerframe","dist-tags":{"latest":"1.1.4"},"versions":{"0.0.1":{"name":"zimmerframe","version":"0.0.1","license":"MIT","_id":"zimmerframe@0.0.1","maintainers":[{"name":"rich_harris","email":"richard.a.harris@gmail.com"}],"dist":{"shasum":"93ad384caf6ac8cf90b2d70bf6bbad85f99dd91b","tarball":"https://registry.npmjs.org/zimmerframe/-/zimmerframe-0.0.1.tgz","fileCount":12,"integrity":"sha512-dnZJ48vQTZLu/5KCBSjoAEKbutk7wdqa2Muuf2mOhpF79Ij2GKY181MgG4lCXgkSk7D/h3kIDsx23uCjvAhGIg==","signatures":[{"sig":"MEUCIQCD+pnd4qZTgTiH3+1vdGW3J66Qx7P4wT9V+9s6beMBUQIgbr/mls9P+8qaQgadA5kkh+Q5hkH2sHG/wd5EWOA4Rjs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15604},"type":"module","types":"./types/index.d.ts","exports":{".":{"types":"./types/index.d.ts","import":"./src/index.js"}},"gitHead":"15b34eb4da0cb1411960dcf9f57047f7e17293a6","scripts":{"test":"vitest --run","check":"tsc","test:watch":"vitest","prepublishOnly":"dts-buddy"},"_npmUser":{"name":"rich_harris","email":"richard.a.harris@gmail.com"},"_npmVersion":"9.5.0","description":"A tool for walking ASTs","directories":{},"_nodeVersion":"18.15.0","_hasShrinkwrap":false,"packageManager":"pnpm@8.6.12","devDependencies":{"vitest":"^0.34.2","dts-buddy":"^0.1.12","typescript":"^5.1.6"},"_npmOperationalInternal":{"tmp":"tmp/zimmerframe_0.0.1_1692386104177_0.2549624025769235","host":"s3://npm-registry-packages"}},"0.0.2":{"name":"zimmerframe","version":"0.0.2","license":"MIT","_id":"zimmerframe@0.0.2","maintainers":[{"name":"rich_harris","email":"richard.a.harris@gmail.com"}],"dist":{"shasum":"be609cd5dd1371cd09f209b0e61b16fdc503fb55","tarball":"https://registry.npmjs.org/zimmerframe/-/zimmerframe-0.0.2.tgz","fileCount":7,"integrity":"sha512-yZbgSHQEE2yJ8ZF1472nMQ+E3KxnSrrGctujdptNXYFZP/M3Ze7TyfPN+qj6UYbPmwOODfPf+p109gGBbNAGDg==","signatures":[{"sig":"MEUCIQDxznrobq2fGMhlobt/04i2l3gs6lto0wceHlQlVBWJyQIgOCl9oIUDCff8kDLvCbGqZRI8WNGOFhuiEs67SzP3D6g=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11728},"type":"module","types":"./types/index.d.ts","exports":{".":{"types":"./types/index.d.ts","import":"./src/index.js"}},"gitHead":"f9e20135ef3af866ecbe21bce538eace2891564d","scripts":{"test":"vitest --run","check":"tsc","test:watch":"vitest","prepublishOnly":"dts-buddy"},"_npmUser":{"name":"rich_harris","email":"richard.a.harris@gmail.com"},"_npmVersion":"9.5.0","description":"A tool for walking ASTs","directories":{},"_nodeVersion":"18.15.0","_hasShrinkwrap":false,"packageManager":"pnpm@8.6.12","devDependencies":{"vitest":"^0.34.2","dts-buddy":"^0.1.12","typescript":"^5.1.6"},"_npmOperationalInternal":{"tmp":"tmp/zimmerframe_0.0.2_1692388764467_0.5462931833083526","host":"s3://npm-registry-packages"}},"0.0.3":{"name":"zimmerframe","version":"0.0.3","license":"MIT","_id":"zimmerframe@0.0.3","maintainers":[{"name":"rich_harris","email":"richard.a.harris@gmail.com"}],"dist":{"shasum":"0e06221c99946fb060ecaca06317ef20e9cfba4b","tarball":"https://registry.npmjs.org/zimmerframe/-/zimmerframe-0.0.3.tgz","fileCount":7,"integrity":"sha512-zS3lidSrnGaNWhP4cwUP579dNVjOqb6azeQB6M6W/5HTqRGzG8VSjxS0dpXYMoI148TOn/cqSw458X7ZY+Af+g==","signatures":[{"sig":"MEUCIQCUiu5pJkBoEeHh4voWswYVK1luZPfKr8IN8zOtafQ2XwIgXpwxF+0lMxbUyx7CtUgbzYrcsBKSE70oES/OKp9Yiao=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11742},"type":"module","types":"./types/index.d.ts","exports":{".":{"types":"./types/index.d.ts","import":"./src/index.js"}},"gitHead":"43bb584c50b1a2c93f9074c389b429adf64c4016","scripts":{"test":"vitest --run","check":"tsc","test:watch":"vitest","prepublishOnly":"dts-buddy"},"_npmUser":{"name":"rich_harris","email":"richard.a.harris@gmail.com"},"_npmVersion":"9.5.0","description":"A tool for walking ASTs","directories":{},"_nodeVersion":"18.15.0","_hasShrinkwrap":false,"packageManager":"pnpm@8.6.12","devDependencies":{"vitest":"^0.34.2","dts-buddy":"^0.1.12","typescript":"^5.1.6"},"_npmOperationalInternal":{"tmp":"tmp/zimmerframe_0.0.3_1692390999073_0.976367329844595","host":"s3://npm-registry-packages"}},"0.0.4":{"name":"zimmerframe","version":"0.0.4","license":"MIT","_id":"zimmerframe@0.0.4","maintainers":[{"name":"rich_harris","email":"richard.a.harris@gmail.com"}],"dist":{"shasum":"5a9dfd3019e1d0d0bc574a1472b1980268134f6d","tarball":"https://registry.npmjs.org/zimmerframe/-/zimmerframe-0.0.4.tgz","fileCount":7,"integrity":"sha512-ugaHxz/1zP9x+/MGbgeOIWS5sVU7BQj0DDMCAiAvB/c505gOKQC3h9cq5pWFid1Y3n0DsKOaQ/sLDux5YTrszg==","signatures":[{"sig":"MEQCIBjHKa6GBqlgSZd5s+BAhBOAdq9RmdJgQLiP40vjghk1AiABFNUQc0rt2u7vB30Bax1fCmDJ3X1wcBgMpyuaGRWgXQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11794},"type":"module","types":"./types/index.d.ts","exports":{".":{"types":"./types/index.d.ts","import":"./src/index.js"}},"gitHead":"ca89a65ea17e89d40b6cee08650a4736ec13b203","scripts":{"test":"vitest --run","check":"tsc","test:watch":"vitest","prepublishOnly":"dts-buddy"},"_npmUser":{"name":"rich_harris","email":"richard.a.harris@gmail.com"},"_npmVersion":"9.5.0","description":"A tool for walking ASTs","directories":{},"_nodeVersion":"18.15.0","_hasShrinkwrap":false,"packageManager":"pnpm@8.6.12","devDependencies":{"vitest":"^0.34.2","dts-buddy":"^0.1.12","typescript":"^5.1.6"},"_npmOperationalInternal":{"tmp":"tmp/zimmerframe_0.0.4_1692392283615_0.7561693733173527","host":"s3://npm-registry-packages"}},"0.0.5":{"name":"zimmerframe","version":"0.0.5","license":"MIT","_id":"zimmerframe@0.0.5","maintainers":[{"name":"rich_harris","email":"richard.a.harris@gmail.com"}],"dist":{"shasum":"5889f1dbb1951ffc05d5adc5bd39b261e27f9e84","tarball":"https://registry.npmjs.org/zimmerframe/-/zimmerframe-0.0.5.tgz","fileCount":7,"integrity":"sha512-0wkTpk4fLKw/3c00S/evCtkjiD4VygoB9+6XggRZSxgbrJFaSeHacxFDPcqL/dD4f5XeR5DJb3FQQga7tx7KNw==","signatures":[{"sig":"MEUCICFIl/eJ3PgNoRTuSHtvZMfEjKIpfTMi6Jexj8wiEmFiAiEA3GwOH66M4Kh7GTY6qcmHkWQ5Se49BVdwe46srrd/Des=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11418},"type":"module","types":"./types/index.d.ts","exports":{".":{"types":"./types/index.d.ts","import":"./src/index.js"}},"gitHead":"0f64d491f715b43af08c477e049029c63d57ca59","scripts":{"test":"vitest --run","check":"tsc","test:watch":"vitest","prepublishOnly":"dts-buddy"},"_npmUser":{"name":"rich_harris","email":"richard.a.harris@gmail.com"},"_npmVersion":"9.5.0","description":"A tool for walking ASTs","directories":{},"_nodeVersion":"18.15.0","_hasShrinkwrap":false,"packageManager":"pnpm@8.6.12","devDependencies":{"vitest":"^0.34.2","dts-buddy":"^0.1.12","typescript":"^5.1.6"},"_npmOperationalInternal":{"tmp":"tmp/zimmerframe_0.0.5_1692458469368_0.7134505369061654","host":"s3://npm-registry-packages"}},"0.0.6":{"name":"zimmerframe","version":"0.0.6","license":"MIT","_id":"zimmerframe@0.0.6","maintainers":[{"name":"rich_harris","email":"richard.a.harris@gmail.com"}],"dist":{"shasum":"b07b35f31d73d145e16c920aebf80ee63a43341e","tarball":"https://registry.npmjs.org/zimmerframe/-/zimmerframe-0.0.6.tgz","fileCount":8,"integrity":"sha512-3WDoOtieITE3jQxIInC+D8tQDe8l+UCdSLqmXTymt0TXQacWfCOTggl9PELFwxeDPzQpx2LLAlcfVvNl1nfcOQ==","signatures":[{"sig":"MEUCIBJZXdVnOlSph1rEeRzd/7iglLycL20GCHlGrsqyGilVAiEAiKsNYvnbZM/SZI7bil5rymsC06rpuIYM2UfrYVoRYdY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11755},"type":"module","types":"./types/index.d.ts","exports":{".":{"types":"./types/index.d.ts","import":"./src/index.js"}},"gitHead":"7c7d44d5d184e78e7fb0439fea47167a4aa98013","scripts":{"test":"vitest --run","check":"tsc","test:watch":"vitest","prepublishOnly":"dts-buddy -m zimmerframe:src/index.d.ts"},"_npmUser":{"name":"rich_harris","email":"richard.a.harris@gmail.com"},"_npmVersion":"9.5.0","description":"A tool for walking ASTs","directories":{},"_nodeVersion":"18.15.0","_hasShrinkwrap":false,"packageManager":"pnpm@8.6.12","devDependencies":{"vitest":"^0.34.2","dts-buddy":"^0.1.13","typescript":"^5.1.6"},"_npmOperationalInternal":{"tmp":"tmp/zimmerframe_0.0.6_1692464776719_0.04669433455938088","host":"s3://npm-registry-packages"}},"0.0.7":{"name":"zimmerframe","version":"0.0.7","license":"MIT","_id":"zimmerframe@0.0.7","maintainers":[{"name":"rich_harris","email":"richard.a.harris@gmail.com"}],"dist":{"shasum":"c948f20e2e47256babd8964fabaae0a91eb49023","tarball":"https://registry.npmjs.org/zimmerframe/-/zimmerframe-0.0.7.tgz","fileCount":8,"integrity":"sha512-8rw5lnn5T66s3XY4ZfUlhxrGLvw763udHuS+AudgKzh3OlG91tTmGgIr6r9wUFX0bIjSYgGG5UJzi9ZuEJJCfQ==","signatures":[{"sig":"MEUCIQCRym/Xfyoya/zfHVpVCZhQNTmdsgnADFuoDXvgwwlpcgIgf+YrjCvu4PI0Vbtaxiu4yfOHUj1qfCkLiHONn5HpXZs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11754},"type":"module","types":"./types/index.d.ts","exports":{".":{"types":"./types/index.d.ts","import":"./src/walk.js"}},"gitHead":"e5c2772e0f2b76718cd60f1174823bfbd1d29cf7","scripts":{"test":"vitest --run","check":"tsc","test:watch":"vitest","prepublishOnly":"dts-buddy -m zimmerframe:src/index.d.ts"},"_npmUser":{"name":"rich_harris","email":"richard.a.harris@gmail.com"},"_npmVersion":"9.5.0","description":"A tool for walking ASTs","directories":{},"_nodeVersion":"18.15.0","_hasShrinkwrap":false,"packageManager":"pnpm@8.6.12","devDependencies":{"vitest":"^0.34.2","dts-buddy":"^0.1.13","typescript":"^5.1.6"},"_npmOperationalInternal":{"tmp":"tmp/zimmerframe_0.0.7_1692467903748_0.1642375024377587","host":"s3://npm-registry-packages"}},"0.0.8":{"name":"zimmerframe","version":"0.0.8","license":"MIT","_id":"zimmerframe@0.0.8","maintainers":[{"name":"rich_harris","email":"richard.a.harris@gmail.com"}],"dist":{"shasum":"b663a13df1faaaaaa38cae48a1ee2ff45816e5ef","tarball":"https://registry.npmjs.org/zimmerframe/-/zimmerframe-0.0.8.tgz","fileCount":8,"integrity":"sha512-PFwHPmrw43NbuTA9uoVRzzU716vnJartL3qJox49aP+Gt/gArjOjC81bFbYp/e8fxEXkSY/RXa8FHMaWozQEsw==","signatures":[{"sig":"MEQCIAdqgLkkVqm19cm+qmYQJfZF5yPEXFerNsaBohv5xsuFAiB0yeSYcRUOltRyDjqkc+iZrLM9m71vYRONlUeoBoMsLA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11754},"type":"module","types":"./types/index.d.ts","exports":{".":{"types":"./types/index.d.ts","import":"./src/walk.js"}},"gitHead":"a6935819b76e5a6b41aa076e459ded70efb21c49","scripts":{"test":"vitest --run","check":"tsc","test:watch":"vitest","prepublishOnly":"dts-buddy -m zimmerframe:src/index.d.ts"},"_npmUser":{"name":"rich_harris","email":"richard.a.harris@gmail.com"},"_npmVersion":"9.5.0","description":"A tool for walking ASTs","directories":{},"_nodeVersion":"18.15.0","_hasShrinkwrap":false,"packageManager":"pnpm@8.6.12","devDependencies":{"vitest":"^0.34.2","dts-buddy":"^0.1.13","typescript":"^5.1.6"},"_npmOperationalInternal":{"tmp":"tmp/zimmerframe_0.0.8_1692469576244_0.8981890483091786","host":"s3://npm-registry-packages"}},"0.0.9":{"name":"zimmerframe","version":"0.0.9","license":"MIT","_id":"zimmerframe@0.0.9","maintainers":[{"name":"rich_harris","email":"richard.a.harris@gmail.com"}],"dist":{"shasum":"79303255539788d4f163fbff9ac33a0ad5d8a4cd","tarball":"https://registry.npmjs.org/zimmerframe/-/zimmerframe-0.0.9.tgz","fileCount":8,"integrity":"sha512-59UOTpLgCWamGFAYCR6B0JLctK00xF1mIG353CpD9uAyyUZLQ13LdDhOmoEEbeXMu2Zmwncb2qalwWTxlMg6fg==","signatures":[{"sig":"MEUCIQDg9VBhhFtXW8mTTetKqaoBrgdVByGGIrldJpJtk128ggIgORCCZqiI0vrfMYfouB0hH8hx6t/IBsfJdmqhDePReLk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11770},"type":"module","types":"./types/index.d.ts","exports":{".":{"types":"./types/index.d.ts","import":"./src/walk.js"}},"gitHead":"f601e905b1f2a280afbbe13fe01966abff4337a8","scripts":{"test":"vitest --run","check":"tsc","test:watch":"vitest","prepublishOnly":"dts-buddy -m zimmerframe:src/index.d.ts"},"_npmUser":{"name":"rich_harris","email":"richard.a.harris@gmail.com"},"_npmVersion":"9.5.0","description":"A tool for walking ASTs","directories":{},"_nodeVersion":"18.15.0","_hasShrinkwrap":false,"packageManager":"pnpm@8.6.12","devDependencies":{"vitest":"^0.34.2","dts-buddy":"^0.1.13","typescript":"^5.1.6"},"_npmOperationalInternal":{"tmp":"tmp/zimmerframe_0.0.9_1692560042203_0.004616295085408062","host":"s3://npm-registry-packages"}},"0.0.10":{"name":"zimmerframe","version":"0.0.10","license":"MIT","_id":"zimmerframe@0.0.10","maintainers":[{"name":"rich_harris","email":"richard.a.harris@gmail.com"}],"dist":{"shasum":"28eb2789dd73f9a975a5a918a709fddd814d0180","tarball":"https://registry.npmjs.org/zimmerframe/-/zimmerframe-0.0.10.tgz","fileCount":8,"integrity":"sha512-V5bFbSRfiwH4bHNaYS9kcn/bJustG4MO6mqgurJbJRoc0F3Ljlb6niOo9thJhmIPmfQ3mSL7abtwiIYZRMl/Rw==","signatures":[{"sig":"MEUCIQDl51AEuzvSIhKS951XFWjbSoQrT9ES03DetBEjdu45NgIgbC8Ny7toNjWtS+2EMzXnc2ea8NSY0TZKv+8dU8os2Lk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11756},"type":"module","types":"./types/index.d.ts","exports":{".":{"types":"./types/index.d.ts","import":"./src/walk.js"}},"gitHead":"e626f2098145bc64430bcdb627538e4faa9e10b5","scripts":{"test":"vitest --run","check":"tsc","test:watch":"vitest","prepublishOnly":"dts-buddy -m zimmerframe:src/index.d.ts"},"_npmUser":{"name":"rich_harris","email":"richard.a.harris@gmail.com"},"_npmVersion":"9.5.0","description":"A tool for walking ASTs","directories":{},"_nodeVersion":"18.15.0","_hasShrinkwrap":false,"packageManager":"pnpm@8.6.12","devDependencies":{"vitest":"^0.34.2","dts-buddy":"^0.1.13","typescript":"^5.1.6"},"_npmOperationalInternal":{"tmp":"tmp/zimmerframe_0.0.10_1692575532652_0.5539190561595486","host":"s3://npm-registry-packages"}},"0.0.11":{"name":"zimmerframe","version":"0.0.11","license":"MIT","_id":"zimmerframe@0.0.11","maintainers":[{"name":"rich_harris","email":"richard.a.harris@gmail.com"}],"dist":{"shasum":"9d7e9564928059388d04b582e98d680c20944a52","tarball":"https://registry.npmjs.org/zimmerframe/-/zimmerframe-0.0.11.tgz","fileCount":8,"integrity":"sha512-Zj4zFdpCloVP6dsS2QGbkt1kLFjy80dXpE+2NoLi5hXwdzTMWIutkpHe/UssikbZ5dEK1AUt1/iRzjdKnosqjQ==","signatures":[{"sig":"MEYCIQCG9xzOASsp11XaGcbgYa6h4gqu/I9+hJWjZsbLlhaVqAIhAPV9LLRPmw6P5HtevVscM82JhvECs3gwl1X07Cj+VXbR","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11987},"type":"module","types":"./types/index.d.ts","exports":{".":{"types":"./types/index.d.ts","import":"./src/walk.js"}},"gitHead":"976b67f93f0b8a698df63a316ef2d2d77016604f","scripts":{"test":"vitest --run","check":"tsc","test:watch":"vitest","prepublishOnly":"dts-buddy -m zimmerframe:src/index.d.ts"},"_npmUser":{"name":"rich_harris","email":"richard.a.harris@gmail.com"},"_npmVersion":"9.5.0","description":"A tool for walking ASTs","directories":{},"_nodeVersion":"18.15.0","_hasShrinkwrap":false,"packageManager":"pnpm@8.6.12","devDependencies":{"vitest":"^0.34.2","dts-buddy":"^0.1.13","typescript":"^5.1.6"},"_npmOperationalInternal":{"tmp":"tmp/zimmerframe_0.0.11_1692584549776_0.7800824564112516","host":"s3://npm-registry-packages"}},"0.1.0":{"name":"zimmerframe","version":"0.1.0","license":"MIT","_id":"zimmerframe@0.1.0","maintainers":[{"name":"rich_harris","email":"richard.a.harris@gmail.com"}],"dist":{"shasum":"27784334d565c4ab9082be07fb8e6e851dc21b8c","tarball":"https://registry.npmjs.org/zimmerframe/-/zimmerframe-0.1.0.tgz","fileCount":8,"integrity":"sha512-dxWxv9dzJpEosjACLKnPBiR5LmbKhtdsmNri5tcb/b7tyaef+hWrGBQGG4FQgS39+xo51AxwE2+6ILtU1QecbA==","signatures":[{"sig":"MEQCIFaXsNkeNBB2mY60+Ht/onYsufsLme2QuPITwPQ4pH0SAiASviSbXaqxL3Prqh/LH8f4zhac/6Iobh20dU0DhH7n9A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11954},"type":"module","types":"./types/index.d.ts","exports":{".":{"types":"./types/index.d.ts","import":"./src/walk.js"}},"gitHead":"9c46f44aafd7c8bd14281b4e04146b1ef5aaf53f","scripts":{"test":"vitest --run","check":"tsc","test:watch":"vitest","prepublishOnly":"dts-buddy -m zimmerframe:src/index.d.ts"},"_npmUser":{"name":"rich_harris","email":"richard.a.harris@gmail.com"},"_npmVersion":"9.5.0","description":"A tool for walking ASTs","directories":{},"_nodeVersion":"18.15.0","_hasShrinkwrap":false,"packageManager":"pnpm@8.6.12","devDependencies":{"vitest":"^0.34.2","dts-buddy":"^0.1.13","typescript":"^5.1.6"},"_npmOperationalInternal":{"tmp":"tmp/zimmerframe_0.1.0_1692715191446_0.9101680443584343","host":"s3://npm-registry-packages"}},"0.1.1":{"name":"zimmerframe","version":"0.1.1","license":"MIT","_id":"zimmerframe@0.1.1","maintainers":[{"name":"rich_harris","email":"richard.a.harris@gmail.com"}],"dist":{"shasum":"d7fe61f93b94415c3890d905c7fafc6fcb003206","tarball":"https://registry.npmjs.org/zimmerframe/-/zimmerframe-0.1.1.tgz","fileCount":8,"integrity":"sha512-No9fTpz5mFNY1UCS0V3GCK+rf/zPkJWhHjShH6I/BdukOPTmbZyQ3tUYP0m301Xm4xMRb3nqNdxjpNjg0upe7g==","signatures":[{"sig":"MEYCIQCn+bnAUz/CCM1ewFD7YCdXWKqInFvtlNW5hoqnC4TGWAIhAPkYqjeyUMlkv+pFawNv2ofCPmOQWPh97zv2us4TT3GN","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11979},"type":"module","types":"./types/index.d.ts","exports":{".":{"types":"./types/index.d.ts","import":"./src/walk.js"}},"gitHead":"4207b4c0076a05e5dc851c7b610fee313701396a","scripts":{"test":"vitest --run","check":"tsc","test:watch":"vitest","prepublishOnly":"dts-buddy -m zimmerframe:src/index.d.ts"},"_npmUser":{"name":"rich_harris","email":"richard.a.harris@gmail.com"},"_npmVersion":"9.5.0","description":"A tool for walking ASTs","directories":{},"_nodeVersion":"18.15.0","_hasShrinkwrap":false,"packageManager":"pnpm@8.6.12","devDependencies":{"vitest":"^0.34.2","dts-buddy":"^0.1.13","typescript":"^5.1.6"},"_npmOperationalInternal":{"tmp":"tmp/zimmerframe_0.1.1_1692732301990_0.5049748908759673","host":"s3://npm-registry-packages"}},"0.1.2":{"name":"zimmerframe","version":"0.1.2","license":"MIT","_id":"zimmerframe@0.1.2","maintainers":[{"name":"rich_harris","email":"richard.a.harris@gmail.com"}],"dist":{"shasum":"2cfb1e79b85bb4b7a442095a3951921ff719936d","tarball":"https://registry.npmjs.org/zimmerframe/-/zimmerframe-0.1.2.tgz","fileCount":8,"integrity":"sha512-EDjsglTcdiWRXvsFmUpkXuPT0eVadoycI+/CWQG0R7X8rnuYreQ0Lf8KUFOh6aDLY51/Nidc7GG2EWlJA68TPQ==","signatures":[{"sig":"MEUCIB2Z4+TjqmmP9y+F7uO2eCPP/B/x8EhrBc+Y5NBazfTKAiEA445leS+LFZt0gMwjQK6tB+VSgyxRzrIazTsMFi9NKB8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12040},"type":"module","types":"./types/index.d.ts","exports":{".":{"types":"./types/index.d.ts","import":"./src/walk.js"}},"gitHead":"e57a4b193537013dc7c24801d331bdc419057408","scripts":{"test":"vitest --run","check":"tsc","test:watch":"vitest","prepublishOnly":"dts-buddy -m zimmerframe:src/index.d.ts"},"_npmUser":{"name":"rich_harris","email":"richard.a.harris@gmail.com"},"_npmVersion":"9.5.0","description":"A tool for walking ASTs","directories":{},"_nodeVersion":"18.15.0","_hasShrinkwrap":false,"packageManager":"pnpm@8.6.12","devDependencies":{"vitest":"^0.34.2","dts-buddy":"^0.1.13","typescript":"^5.1.6"},"_npmOperationalInternal":{"tmp":"tmp/zimmerframe_0.1.2_1692736302277_0.28582134516094837","host":"s3://npm-registry-packages"}},"0.2.0":{"name":"zimmerframe","version":"0.2.0","license":"MIT","_id":"zimmerframe@0.2.0","maintainers":[{"name":"rich_harris","email":"richard.a.harris@gmail.com"}],"dist":{"shasum":"6c5f48c9e42ae4cf79c6c348a04c446170456d83","tarball":"https://registry.npmjs.org/zimmerframe/-/zimmerframe-0.2.0.tgz","fileCount":8,"integrity":"sha512-KO3rZsZjmd+tW6Vzpu4mjaFrNjdyUPaJkL0nZ80vlaKOBsStprnnom8Ps6Y43uJ6Hn95gykD3ta1+jXwLxqCPA==","signatures":[{"sig":"MEQCIESSUSiLgjzD97CtHjlmqGE9ns3FCsgqKYvlLiWZaB76AiAbiTjTnSnJ17QWcQvanDFsIdf0dBS5DulQIWjDy2trIg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11294},"type":"module","types":"./types/index.d.ts","exports":{".":{"types":"./types/index.d.ts","import":"./src/walk.js"}},"gitHead":"dee6193c9ca92bd9490f5d585a380abac3e0fafe","scripts":{"test":"vitest --run","check":"tsc","test:watch":"vitest","prepublishOnly":"dts-buddy -m zimmerframe:src/index.d.ts"},"_npmUser":{"name":"rich_harris","email":"richard.a.harris@gmail.com"},"_npmVersion":"9.5.0","description":"A tool for walking ASTs","directories":{},"_nodeVersion":"18.15.0","_hasShrinkwrap":false,"packageManager":"pnpm@8.6.12","devDependencies":{"vitest":"^0.34.2","dts-buddy":"^0.1.13","typescript":"^5.1.6"},"_npmOperationalInternal":{"tmp":"tmp/zimmerframe_0.2.0_1692803237968_0.21341416008124847","host":"s3://npm-registry-packages"}},"0.2.1":{"name":"zimmerframe","version":"0.2.1","license":"MIT","_id":"zimmerframe@0.2.1","maintainers":[{"name":"rich_harris","email":"richard.a.harris@gmail.com"}],"dist":{"shasum":"dbc3eb0d42cca4fc3f2b9a28a6018382160f3957","tarball":"https://registry.npmjs.org/zimmerframe/-/zimmerframe-0.2.1.tgz","fileCount":8,"integrity":"sha512-SszPkOoWu5h0X1DUDrGD7E2S7xiPeM/kHglJIpYBU/ViHcrIFN1HrTj7FPyWY/TBD4i9j794W0BJAwXjAuzalg==","signatures":[{"sig":"MEQCIDsXBFEugfv6MWei12uexcPZcqx8/R4h/o9N3p7OAuzSAiAmPDsIVXLpuRb7XlVg8XHfjGEc+cJxm0MhbhHVl+xAlA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11373},"type":"module","types":"./types/index.d.ts","exports":{".":{"types":"./types/index.d.ts","import":"./src/walk.js"}},"gitHead":"5dae6d7ec63cca1834edb90b3696bab253bf6e6f","scripts":{"test":"vitest --run","check":"tsc","test:watch":"vitest","prepublishOnly":"dts-buddy -m zimmerframe:src/index.d.ts"},"_npmUser":{"name":"rich_harris","email":"richard.a.harris@gmail.com"},"_npmVersion":"9.5.0","description":"A tool for walking ASTs","directories":{},"_nodeVersion":"18.15.0","_hasShrinkwrap":false,"packageManager":"pnpm@8.6.12","devDependencies":{"vitest":"^0.34.2","dts-buddy":"^0.1.13","typescript":"^5.1.6"},"_npmOperationalInternal":{"tmp":"tmp/zimmerframe_0.2.1_1692805247837_0.4282930329492458","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"zimmerframe","version":"1.0.0","license":"MIT","_id":"zimmerframe@1.0.0","maintainers":[{"name":"rich_harris","email":"richard.a.harris@gmail.com"}],"homepage":"https://github.com/Rich-Harris/zimmerframe#readme","bugs":{"url":"https://github.com/Rich-Harris/zimmerframe/issues"},"dist":{"shasum":"ecd93297951f7fd787862aca2f5682f09f444928","tarball":"https://registry.npmjs.org/zimmerframe/-/zimmerframe-1.0.0.tgz","fileCount":8,"integrity":"sha512-H6qQ6LtjP+kDQwDgol18fPi4OCo7F+73ZBYt2U9c1D3V74bIMKxXvyrN0x+1I7/RYh5YsausflQxQR/qwDLHPQ==","signatures":[{"sig":"MEUCIGw32BqaB/HpuLhiOHIdaMw+B6GzEpzjOuR80qpZR8f0AiEAlxsPIOIyhkRyxKfF2AB0jpvsRnzOJw7VSFpyMTkZoW8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11466},"type":"module","types":"./types/index.d.ts","exports":{".":{"types":"./types/index.d.ts","import":"./src/walk.js"}},"gitHead":"5c7c1f266c374972e45929502e149b42e2743b86","scripts":{"test":"vitest --run","check":"tsc","test:watch":"vitest","prepublishOnly":"dts-buddy -m zimmerframe:src/index.d.ts"},"_npmUser":{"name":"rich_harris","email":"richard.a.harris@gmail.com"},"repository":{"url":"git+https://github.com/Rich-Harris/zimmerframe.git","type":"git"},"_npmVersion":"9.5.0","description":"A tool for walking ASTs","directories":{},"_nodeVersion":"18.15.0","_hasShrinkwrap":false,"packageManager":"pnpm@8.6.12","devDependencies":{"vitest":"^0.34.2","dts-buddy":"^0.1.13","typescript":"^5.1.6"},"_npmOperationalInternal":{"tmp":"tmp/zimmerframe_1.0.0_1693597481976_0.11685265541613954","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"zimmerframe","version":"1.1.0","license":"MIT","_id":"zimmerframe@1.1.0","maintainers":[{"name":"rich_harris","email":"richard.a.harris@gmail.com"}],"homepage":"https://github.com/Rich-Harris/zimmerframe#readme","bugs":{"url":"https://github.com/Rich-Harris/zimmerframe/issues"},"dist":{"shasum":"29f2b760d11228490109808e2b56ba67f25af199","tarball":"https://registry.npmjs.org/zimmerframe/-/zimmerframe-1.1.0.tgz","fileCount":8,"integrity":"sha512-+AmV37r9NPUy7KcuG0Fde9AAFSD88kN5pnqvD7Pkp5WLLK0jct7hAtIDXXFDCRk3l5Mc1r2Sth3gfP2ZLE+/Qw==","signatures":[{"sig":"MEUCICiU/b/Xpz8qlPU1gbO5bgEn6vKmRmxiqf/xb9ubLrX0AiEAvosLam4QV/01/g6HFjPAQGgOOO8ukEP+q3JniIAQVvM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11703},"type":"module","types":"./types/index.d.ts","exports":{".":{"types":"./types/index.d.ts","import":"./src/walk.js"}},"gitHead":"755d80735dae07fd8db249bd11076ac97e9bfa25","scripts":{"test":"vitest --run","check":"tsc","test:watch":"vitest","prepublishOnly":"dts-buddy -m zimmerframe:src/index.d.ts"},"_npmUser":{"name":"rich_harris","email":"richard.a.harris@gmail.com"},"repository":{"url":"git+https://github.com/Rich-Harris/zimmerframe.git","type":"git"},"_npmVersion":"9.6.7","description":"A tool for walking ASTs","directories":{},"_nodeVersion":"18.17.1","_hasShrinkwrap":false,"packageManager":"pnpm@8.6.12","devDependencies":{"vitest":"^0.34.2","dts-buddy":"^0.1.13","typescript":"^5.1.6"},"_npmOperationalInternal":{"tmp":"tmp/zimmerframe_1.1.0_1698533217003_0.6158462764554156","host":"s3://npm-registry-packages"}},"1.1.1":{"name":"zimmerframe","version":"1.1.1","license":"MIT","_id":"zimmerframe@1.1.1","maintainers":[{"name":"rich_harris","email":"richard.a.harris@gmail.com"}],"homepage":"https://github.com/Rich-Harris/zimmerframe#readme","bugs":{"url":"https://github.com/Rich-Harris/zimmerframe/issues"},"dist":{"shasum":"8c0f6ceb313da0decd8af388ddaeeb87f0497f27","tarball":"https://registry.npmjs.org/zimmerframe/-/zimmerframe-1.1.1.tgz","fileCount":8,"integrity":"sha512-3g7WlErCAuBSemgv6ubMdoO5hHC4roKYgJdZkFT2P5rtQGf3FaBtt/iUVYV+6pVRmup9spHL9dDmBlFhQAq19w==","signatures":[{"sig":"MEUCIQDnIi4A7aR3Mix8dJuyS+O9ju3rhDApy4pCtMHpCvm3GQIgfQMCPrYiL5VxV9ucbRBsZQv4bNbJ8ozp5rS9o5iwxik=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12256},"type":"module","types":"./types/index.d.ts","exports":{".":{"types":"./types/index.d.ts","import":"./src/walk.js"}},"gitHead":"b0db7dbaa3923b5abb0f31feebeeb7f7412ce862","scripts":{"test":"vitest --run","check":"tsc","test:watch":"vitest","prepublishOnly":"dts-buddy -m zimmerframe:src/index.d.ts"},"_npmUser":{"name":"rich_harris","email":"richard.a.harris@gmail.com"},"repository":{"url":"git+https://github.com/Rich-Harris/zimmerframe.git","type":"git"},"_npmVersion":"10.2.3","description":"A tool for walking ASTs","directories":{},"_nodeVersion":"18.19.0","_hasShrinkwrap":false,"packageManager":"pnpm@8.6.12","devDependencies":{"vitest":"^0.34.2","dts-buddy":"^0.1.13","typescript":"^5.1.6"},"_npmOperationalInternal":{"tmp":"tmp/zimmerframe_1.1.1_1707144019222_0.22611805900780046","host":"s3://npm-registry-packages"}},"1.1.2":{"name":"zimmerframe","version":"1.1.2","license":"MIT","_id":"zimmerframe@1.1.2","maintainers":[{"name":"rich_harris","email":"richard.a.harris@gmail.com"}],"homepage":"https://github.com/Rich-Harris/zimmerframe#readme","bugs":{"url":"https://github.com/Rich-Harris/zimmerframe/issues"},"dist":{"shasum":"5b75f1fa83b07ae2a428d51e50f58e2ae6855e5e","tarball":"https://registry.npmjs.org/zimmerframe/-/zimmerframe-1.1.2.tgz","fileCount":8,"integrity":"sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==","signatures":[{"sig":"MEUCIQC7GpnTujHWvIp0lCppfw3tw7mcq3+9GmpK0fwOvnsddgIgO5M1ATCAYfMKGXVu/1535WQJjg/Z1u6A1cdGvRgSn6c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12266},"type":"module","types":"./types/index.d.ts","exports":{".":{"types":"./types/index.d.ts","import":"./src/walk.js"}},"gitHead":"dd314317835f3a09471a0779e5399eccfa201bf2","scripts":{"test":"vitest --run","check":"tsc","test:watch":"vitest","prepublishOnly":"dts-buddy -m zimmerframe:src/index.d.ts"},"_npmUser":{"name":"rich_harris","email":"richard.a.harris@gmail.com"},"repository":{"url":"git+https://github.com/Rich-Harris/zimmerframe.git","type":"git"},"_npmVersion":"10.2.3","description":"A tool for walking ASTs","directories":{},"_nodeVersion":"18.19.0","_hasShrinkwrap":false,"packageManager":"pnpm@8.6.12","devDependencies":{"vitest":"^0.34.2","dts-buddy":"^0.1.13","typescript":"^5.1.6"},"_npmOperationalInternal":{"tmp":"tmp/zimmerframe_1.1.2_1707163156526_0.5744239835664502","host":"s3://npm-registry-packages"}},"1.1.3":{"name":"zimmerframe","version":"1.1.3","license":"MIT","_id":"zimmerframe@1.1.3","maintainers":[{"name":"rich_harris","email":"richard.a.harris@gmail.com"},{"name":"svelte-admin","email":"richard.a.harris+svelte@gmail.com"}],"homepage":"https://github.com/sveltejs/zimmerframe#readme","bugs":{"url":"https://github.com/sveltejs/zimmerframe/issues"},"dist":{"shasum":"19e545b95cce453d4b3f79631832ee3ed3e35d45","tarball":"https://registry.npmjs.org/zimmerframe/-/zimmerframe-1.1.3.tgz","fileCount":8,"integrity":"sha512-dcntCix40YyLCTrW5TRrAtuS/wc3EA3plksOcQIe4EGI10HE/KQQdmq6N5OJrWrciOdx5AzppR7XEMG3TYe70g==","signatures":[{"sig":"MEUCIC5az3YDeBfy+vw8Raho7j1zecs2qADQ2KTEcxj4EPoHAiEAgRuiJJDiryi5bo18jcHK+/r03+K2l5+RU/2BtECP3gs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/zimmerframe@1.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12373},"type":"module","_from":"file:zimmerframe-1.1.3.tgz","types":"./types/index.d.ts","exports":{".":{"types":"./types/index.d.ts","import":"./src/walk.js"}},"scripts":{"test":"vitest --run","check":"tsc","test:watch":"vitest","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0bfeb612-ac4c-47e2-8150-445bdfa5b7e2"}},"_resolved":"/tmp/b8c5463300f96c7a60fc100b4f71cb00/zimmerframe-1.1.3.tgz","_integrity":"sha512-dcntCix40YyLCTrW5TRrAtuS/wc3EA3plksOcQIe4EGI10HE/KQQdmq6N5OJrWrciOdx5AzppR7XEMG3TYe70g==","repository":{"url":"git+https://github.com/sveltejs/zimmerframe.git","type":"git"},"_npmVersion":"11.5.1","description":"A tool for walking ASTs","directories":{},"_nodeVersion":"24.7.0","_hasShrinkwrap":false,"packageManager":"pnpm@8.6.12","devDependencies":{"vitest":"^0.34.2","dts-buddy":"^0.1.13","typescript":"^5.1.6","@changesets/cli":"^2.29.7"},"_npmOperationalInternal":{"tmp":"tmp/zimmerframe_1.1.3_1757438461908_0.2521202371741098","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"zimmerframe","description":"A tool for walking ASTs","version":"1.1.4","repository":{"type":"git","url":"git+https://github.com/sveltejs/zimmerframe.git"},"type":"module","exports":{".":{"types":"./types/index.d.ts","import":"./src/walk.js"}},"types":"./types/index.d.ts","devDependencies":{"@changesets/cli":"^2.29.7","dts-buddy":"^0.6.2","typescript":"^5.9.2","vitest":"^3.2.4"},"license":"MIT","scripts":{"changeset:version":"changeset version","changeset:publish":"changeset publish","check":"tsc","test":"vitest --run","test:watch":"vitest"},"_id":"zimmerframe@1.1.4","bugs":{"url":"https://github.com/sveltejs/zimmerframe/issues"},"homepage":"https://github.com/sveltejs/zimmerframe#readme","_integrity":"sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==","_resolved":"/tmp/b58ce18f612231e6dd5de6f5ea0810bf/zimmerframe-1.1.4.tgz","_from":"file:zimmerframe-1.1.4.tgz","_nodeVersion":"24.7.0","_npmVersion":"11.5.1","dist":{"integrity":"sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==","shasum":"0352b5cafad3ad4526b0a526a9a52d9c040d865b","tarball":"https://registry.npmjs.org/zimmerframe/-/zimmerframe-1.1.4.tgz","fileCount":8,"unpackedSize":12565,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/zimmerframe@1.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCIOTXbKOLM469RHUMRzGizcX/xy/3xCmHo8gzxKLAOEQIgJMOrZLeh6OIQD7pY7d7QcLoUsdsyXO/WfqNc+9WDbbc="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0bfeb612-ac4c-47e2-8150-445bdfa5b7e2"}},"directories":{},"maintainers":[{"name":"rich_harris","email":"richard.a.harris@gmail.com"},{"name":"svelte-admin","email":"richard.a.harris+svelte@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/zimmerframe_1.1.4_1757440531660_0.43610763240579176"},"_hasShrinkwrap":false}},"time":{"created":"2023-08-18T19:15:04.024Z","modified":"2025-09-09T17:55:32.183Z","0.0.1":"2023-08-18T19:15:04.414Z","0.0.2":"2023-08-18T19:59:24.722Z","0.0.3":"2023-08-18T20:36:39.265Z","0.0.4":"2023-08-18T20:58:03.777Z","0.0.5":"2023-08-19T15:21:09.556Z","0.0.6":"2023-08-19T17:06:16.877Z","0.0.7":"2023-08-19T17:58:23.974Z","0.0.8":"2023-08-19T18:26:16.388Z","0.0.9":"2023-08-20T19:34:02.382Z","0.0.10":"2023-08-20T23:52:12.853Z","0.0.11":"2023-08-21T02:22:30.049Z","0.1.0":"2023-08-22T14:39:51.722Z","0.1.1":"2023-08-22T19:25:02.170Z","0.1.2":"2023-08-22T20:31:42.556Z","0.2.0":"2023-08-23T15:07:18.156Z","0.2.1":"2023-08-23T15:40:48.044Z","1.0.0":"2023-09-01T19:44:42.233Z","1.1.0":"2023-10-28T22:46:57.256Z","1.1.1":"2024-02-05T14:40:19.364Z","1.1.2":"2024-02-05T19:59:16.776Z","1.1.3":"2025-09-09T17:21:02.084Z","1.1.4":"2025-09-09T17:55:31.852Z"},"bugs":{"url":"https://github.com/sveltejs/zimmerframe/issues"},"license":"MIT","homepage":"https://github.com/sveltejs/zimmerframe#readme","repository":{"type":"git","url":"git+https://github.com/sveltejs/zimmerframe.git"},"description":"A tool for walking ASTs","maintainers":[{"name":"rich_harris","email":"richard.a.harris@gmail.com"},{"name":"svelte-admin","email":"richard.a.harris+svelte@gmail.com"}],"readme":"# zimmerframe\n\nA tool for walking.\n\nSpecifically, it's a tool for walking an abstract syntax tree (AST), where every node is an object with a `type: string`. This includes [ESTree](https://github.com/estree/estree) nodes, such as you might generate with [Acorn](https://github.com/acornjs/acorn) or [Meriyah](https://github.com/meriyah/meriyah), but also includes things like [CSSTree](https://github.com/csstree/csstree) or an arbitrary AST of your own devising.\n\n## Usage\n\n```ts\nimport { walk } from 'zimmerframe';\nimport { parse } from 'acorn';\nimport { Node } from 'estree';\n\nconst program = parse(`\nlet message = 'hello';\nconsole.log(message);\n\nif (true) {\n  let answer = 42;\n  console.log(answer);\n}\n`);\n\n// You can pass in arbitrary state\nconst state = {\n  declarations: [],\n  depth: 0\n};\n\nconst transformed = walk(program as Node, state, {\n  _(node, { state, next }) {\n    // the `_` visitor is 'universal' — if provided,\n    // it will run for every node, before deferring\n    // to specialised visitors. you can pass a new\n    // `state` object to `next`\n    next({ ...state, answer: 42 });\n  },\n  VariableDeclarator(node, { state }) {\n    // `state` is passed into each visitor\n    if (node.id.type === 'Identifier') {\n      state.declarations.push({\n        depth: state.depth,\n        name: node.id.name\n      });\n    }\n  },\n  BlockStatement(node, { state, next, stop }) {\n    // you must call `next()` or `next(childState)`\n    // to visit child nodes\n    console.log('entering BlockStatement');\n    next({ ...state, depth: state.depth + 1 });\n    console.log('leaving BlockStatement');\n  },\n  Literal(node) {\n    // if you return something, it will replace\n    // the current node\n    if (node.value === 'hello') {\n      return {\n        ...node,\n        value: 'goodbye'\n      };\n    }\n  },\n  IfStatement(node, { visit }) {\n    // normally, returning a value will halt\n    // traversal into child nodes. you can\n    // transform children with the current\n    // visitors using `visit(node, state?)`\n    if (node.test.type === 'Literal' && node.test.value === true) {\n      return visit(node.consequent);\n    }\n  }\n});\n```\n\nThe `transformed` AST would look like this:\n\n```js\nlet message = 'goodbye';\nconsole.log(message);\n\n{\n  let answer = 42;\n  console.log(answer);\n}\n```\n\n## Types\n\nThe type of `node` in each visitor is inferred from the visitor's name. For example:\n\n```ts\nwalk(ast as estree.Node, state, {\n  ArrowFunctionExpression(node) {\n    // `node` is of type estree.ArrowFunctionExpression\n  }\n});\n```\n\nFor this to work, the first argument should be casted to an union of all the types you plan to visit.\n\nYou can import types from 'zimmerframe':\n\n```ts\nimport {\n  walk,\n  type Visitor,\n  type Visitors,\n  type Context\n} from 'zimmerframe';\nimport type { Node } from 'estree';\n\ninterface State {...}\n\nconst node: Node = {...};\nconst state: State = {...};\nconst visitors: Visitors<Node, State> =  {...}\n\nwalk(node, state, visitors);\n```\n\n## Context\n\nEach visitor receives a second argument, `context`, which is an object with the following properties and methods:\n\n- `next(state?: State): void` — a function that allows you to control when child nodes are visited, and which state they are visited with. If child visitors transform their inputs, this will return the transformed node (if not, returns `undefined`)\n- `path: Node[]` — an array of parent nodes. For example, to get the root node you would do `path.at(0)`; to get the current node's immediate parent you would do `path.at(-1)`\n- `state: State` — an object of the same type as the second argument to `walk`. Visitors can pass new state objects to their children with `next(childState)` or `visit(node, childState)`\n- `stop(): void` — prevents any subsequent traversal\n- `visit(node: Node, state?: State): Node` — returns the result of visiting `node` with the current set of visitors. If no `state` is provided, children will inherit the current state\n\n## Immutability\n\nASTs are regarded as immutable. If you return a transformed node from a visitor, then all parents of the node will be replaced with clones, but unchanged subtrees will reuse the existing nodes.\n\nFor example in this case, no transformation takes place, meaning that the returned value is identical to the original AST:\n\n```js\nconst transformed = walk(original, state, {\n  Literal(node) {\n    console.log(node.value);\n  }\n});\n\ntransformed === original; // true\n```\n\nIn this case, however, we replace one of the nodes:\n\n```js\nconst original = {\n  type: 'BinaryExpression',\n  operator: '+',\n  left: {\n    type: 'Identifier',\n    name: 'foo'\n  },\n  right: {\n    type: 'Identifier',\n    name: 'bar'\n  }\n};\n\nconst transformed = walk(original, state, {\n  Identifier(node) {\n    if (node.name === 'bar') {\n      return { ...node, name: 'baz' };\n    }\n  }\n});\n\ntransformed === original; // false, the BinaryExpression node is cloned\ntransformed.left === original.left; // true, we can safely reuse this node\n```\n\nThis makes it very easy to transform parts of your AST without incurring the performance and memory overhead of cloning the entire thing, and without the footgun of mutating it in place.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}