{"_id":"ink-visual-testing","_rev":"35-698910d1f467e71b49fe80e835e93628","name":"ink-visual-testing","dist-tags":{"latest":"1.0.3"},"versions":{"0.1.0":{"name":"ink-visual-testing","version":"0.1.0","keywords":["ink","visual-testing","regression-testing","terminal","cli","canvas","snapshot"],"author":"","license":"MIT OR CC0-1.0","_id":"ink-visual-testing@0.1.0","maintainers":[{"name":"hoteyes","email":"liuyunchuan7@gmail.com"}],"bin":{"ink-visual-testing":"dist/cli/index.js"},"dist":{"shasum":"95dbbf80946254f2e475a706393c8736626b1da7","tarball":"https://registry.npmjs.org/ink-visual-testing/-/ink-visual-testing-0.1.0.tgz","fileCount":19,"integrity":"sha512-PDbGOwK0NymU8kU5cKKilJlru5Dou1P+fsDAayNk49EuuJp2aCzKiyiSQmUvNvSxm5dJIoTxdMkV1ZkHZNplUA==","signatures":[{"sig":"MEYCIQDYgvzEZfbE86YjrhR6Kn+nxgS/55G73umvuNA9PM9d2wIhAL6z9/AsXmwZWboIEnzFby1UBTlOLNbb2jSkTvGCleYb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17569801},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"c8b32df66ddd06e71635082c3567fce1c34edcd3","scripts":{"lint":"eslint src/**/*.ts","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","test:visual":"vitest --run","test:coverage":"vitest --coverage"},"_npmUser":{"name":"hoteyes","email":"liuyunchuan7@gmail.com"},"_npmVersion":"10.8.2","description":"Visual regression testing for Ink components","directories":{},"_nodeVersion":"20.19.4","dependencies":{"ink":"^4.4.1","pngjs":"^7.0.0","react":"^18.2.0","node-pty":"^1.0.0","react-dom":"^18.3.1","pixelmatch":"^7.1.0","terminal-screenshot":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","eslint":"^8.55.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.10.0","@types/react":"^18.2.0","@typescript-eslint/parser":"^6.14.0","@typescript-eslint/eslint-plugin":"^6.14.0"},"peerDependencies":{"vitest":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ink-visual-testing_0.1.0_1760152312168_0.012210341822303183","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"ink-visual-testing","version":"0.1.1","keywords":["ink","visual-testing","regression-testing","terminal","cli","canvas","snapshot"],"author":"","license":"MIT OR CC0-1.0","_id":"ink-visual-testing@0.1.1","maintainers":[{"name":"hoteyes","email":"liuyunchuan7@gmail.com"}],"homepage":"https://github.com/hoteye/ink-visual-testing#readme","bugs":{"url":"https://github.com/hoteye/ink-visual-testing/issues"},"dist":{"shasum":"1bb114a41f717a0962c214f94671103550dda0f2","tarball":"https://registry.npmjs.org/ink-visual-testing/-/ink-visual-testing-0.1.1.tgz","fileCount":19,"integrity":"sha512-YZBq7l3oLU7P4YU5iQIyjAwP29pIomIbdm3BUCONxZfXj9ELnZEGbHVJfbw50j2pMCLIYvRCDYdtWzxuCgXIVw==","signatures":[{"sig":"MEYCIQDxkm767aMFPS6L5xnvcvmneUoZ6YHSvIBIKEc7JwAgxgIhAKowyC6J6Sf/YCaxtK6yCg0bu/wAeADwZ1e4s+R71Va9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17578599},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"a41d4d0855e39ec46a8bb95e7e666bfa8155972b","scripts":{"lint":"eslint src/**/*.ts","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","test:visual":"vitest --run","test:coverage":"vitest --coverage"},"_npmUser":{"name":"hoteyes","email":"liuyunchuan7@gmail.com"},"repository":{"url":"git+https://github.com/hoteye/ink-visual-testing.git","type":"git"},"_npmVersion":"10.8.2","description":"Visual regression testing for Ink components","directories":{},"_nodeVersion":"20.19.4","dependencies":{"ink":"^4.4.1","pngjs":"^7.0.0","react":"^18.2.0","node-pty":"^1.0.0","react-dom":"^18.3.1","pixelmatch":"^7.1.0","terminal-screenshot":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","eslint":"^8.55.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.10.0","@types/react":"^18.2.0","@typescript-eslint/parser":"^6.14.0","@typescript-eslint/eslint-plugin":"^6.14.0"},"_npmOperationalInternal":{"tmp":"tmp/ink-visual-testing_0.1.1_1760162232807_0.8224172289993001","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"ink-visual-testing","version":"0.1.2","keywords":["ink","visual-testing","regression-testing","terminal","cli","canvas","snapshot"],"author":"","license":"MIT OR CC0-1.0","_id":"ink-visual-testing@0.1.2","maintainers":[{"name":"hoteyes","email":"liuyunchuan7@gmail.com"}],"homepage":"https://github.com/hoteye/ink-visual-testing#readme","bugs":{"url":"https://github.com/hoteye/ink-visual-testing/issues"},"dist":{"shasum":"4e55224202fbdd9876945ba4398013c998631e09","tarball":"https://registry.npmjs.org/ink-visual-testing/-/ink-visual-testing-0.1.2.tgz","fileCount":19,"integrity":"sha512-yjdBCFcug/W/aTIdnN4xXTvalS1odjfhAKnV31ZXpZWyT8p6TjAa/qY6g37j9iIRbmrVyRvldKONk6Nyw/sUng==","signatures":[{"sig":"MEUCIQDl9Avg2UpH3oxoSVKzJGxJCZ37HQq1Dl9hnQpem60LUwIgVOxr78+IQN9zrNAScXMRzC6m/BPXAHj2WksoljnXr8w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17582151},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"2b519f42ccc42033c6123438fdeab5367b0aebae","scripts":{"lint":"eslint src/**/*.ts","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","postinstall":"patch-package","test:visual":"vitest --run","test:coverage":"vitest --coverage"},"_npmUser":{"name":"hoteyes","email":"liuyunchuan7@gmail.com"},"repository":{"url":"git+https://github.com/hoteye/ink-visual-testing.git","type":"git"},"_npmVersion":"10.8.2","description":"Visual regression testing for Ink components","directories":{},"_nodeVersion":"20.19.4","dependencies":{"ink":"^4.4.1","pngjs":"^7.0.0","react":"^18.2.0","node-pty":"^1.0.0","react-dom":"^18.3.1","pixelmatch":"^7.1.0","terminal-screenshot":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","eslint":"^8.55.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.10.0","@types/react":"^18.2.0","patch-package":"^8.0.1","@typescript-eslint/parser":"^6.14.0","@typescript-eslint/eslint-plugin":"^6.14.0"},"_npmOperationalInternal":{"tmp":"tmp/ink-visual-testing_0.1.2_1760168748506_0.975830750724989","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"ink-visual-testing","version":"0.1.3","keywords":["ink","visual-testing","regression-testing","terminal","cli","canvas","snapshot"],"author":"","license":"MIT","_id":"ink-visual-testing@0.1.3","maintainers":[{"name":"hoteyes","email":"liuyunchuan7@gmail.com"}],"homepage":"https://github.com/hoteye/ink-visual-testing#readme","bugs":{"url":"https://github.com/hoteye/ink-visual-testing/issues"},"dist":{"shasum":"bb9a9b6a74879d43ff867d6e1c7e2e8c854a1291","tarball":"https://registry.npmjs.org/ink-visual-testing/-/ink-visual-testing-0.1.3.tgz","fileCount":19,"integrity":"sha512-vY/9ZRSTPUc5v8CrG1eHqMnWW/uZbij2Ipo7rvyz6gccFi4+6p5w268s6bsdJh1kmJAfnOChScAWxXWCmXaN+w==","signatures":[{"sig":"MEUCIQDWdXEpP+IAlshJe1NI1QzsI8KJCc4oj4PSaOum/jccawIgMXJC328zIZ0HWQN4SpuFmnYnj/l8teeNrAYhVrwl7Po=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17582351},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"3414c39689fc80aba7a1decb9bd4f48576c5b154","scripts":{"lint":"eslint src/**/*.ts","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","postinstall":"patch-package","test:visual":"vitest --run","test:coverage":"vitest --coverage"},"_npmUser":{"name":"hoteyes","email":"liuyunchuan7@gmail.com"},"repository":{"url":"git+https://github.com/hoteye/ink-visual-testing.git","type":"git"},"_npmVersion":"10.8.2","description":"Visual regression testing for Ink components","directories":{},"_nodeVersion":"20.19.4","dependencies":{"ink":"^4.4.1","pngjs":"^7.0.0","react":"^18.2.0","node-pty":"^1.0.0","react-dom":"^18.3.1","pixelmatch":"^7.1.0","terminal-screenshot":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","eslint":"^8.55.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.10.0","@types/react":"^18.2.0","patch-package":"^8.0.1","@typescript-eslint/parser":"^6.14.0","@typescript-eslint/eslint-plugin":"^6.14.0"},"_npmOperationalInternal":{"tmp":"tmp/ink-visual-testing_0.1.3_1760177193678_0.503525047128109","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"ink-visual-testing","version":"0.1.4","keywords":["ink","visual-testing","regression-testing","terminal","cli","canvas","snapshot"],"author":"","license":"MIT","_id":"ink-visual-testing@0.1.4","maintainers":[{"name":"hoteyes","email":"liuyunchuan7@gmail.com"}],"homepage":"https://github.com/hoteye/ink-visual-testing#readme","bugs":{"url":"https://github.com/hoteye/ink-visual-testing/issues"},"dist":{"shasum":"0a10eb02ddce3cdc6363325b8124db93181a554a","tarball":"https://registry.npmjs.org/ink-visual-testing/-/ink-visual-testing-0.1.4.tgz","fileCount":31,"integrity":"sha512-TDT1APU1BVuElcCEqdhA5cZ94j+xcublNmTFtQfS5ItLCDsfas3eenvRVd0+5tEm/XavJA56uVOQ7j0EB9z6Cg==","signatures":[{"sig":"MEQCIHS7GZOK10p7UJQucsLSt1qgKejsd820SuIBFAuWdx+0AiAg+KBl71OmggIy7iUM44dqP4bOXIOYYiWQ3sWdBYZo+w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22299573},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"15e664fae347ce2387af3c18ed7513969a2ad7f8","scripts":{"lint":"eslint src/**/*.ts","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","test:visual":"vitest --run","test:coverage":"vitest --coverage"},"_npmUser":{"name":"hoteyes","email":"liuyunchuan7@gmail.com"},"repository":{"url":"git+https://github.com/hoteye/ink-visual-testing.git","type":"git"},"_npmVersion":"10.8.2","description":"Visual regression testing for Ink components","directories":{},"_nodeVersion":"20.19.4","dependencies":{"ink":"^4.4.1","pngjs":"^7.0.0","react":"^18.2.0","node-pty":"^1.0.0","react-dom":"^18.3.1","pixelmatch":"^7.1.0","terminal-screenshot":"^1.1.0","@xterm/addon-unicode11":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","eslint":"^8.55.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.10.0","@types/pngjs":"^6.0.5","@types/react":"^18.2.0","@typescript-eslint/parser":"^6.14.0","@typescript-eslint/eslint-plugin":"^6.14.0"},"_npmOperationalInternal":{"tmp":"tmp/ink-visual-testing_0.1.4_1760273523862_0.14372339131428769","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"ink-visual-testing","version":"0.1.5","keywords":["ink","visual-testing","regression-testing","terminal","cli","canvas","snapshot"],"author":"","license":"MIT","_id":"ink-visual-testing@0.1.5","maintainers":[{"name":"hoteyes","email":"liuyunchuan7@gmail.com"}],"homepage":"https://github.com/hoteye/ink-visual-testing#readme","bugs":{"url":"https://github.com/hoteye/ink-visual-testing/issues"},"dist":{"shasum":"033dc1b6c4100a6f3d3c37b3bfcf78e4a17f7eed","tarball":"https://registry.npmjs.org/ink-visual-testing/-/ink-visual-testing-0.1.5.tgz","fileCount":31,"integrity":"sha512-VCDNDKEOk9cAGQ2ngHe7nRK0NZUOZxMOxhLBLFZ2L9hduJGIskad/mm/n48a5Lv9PUF078/ulVr0I9yykjcOig==","signatures":[{"sig":"MEUCIA//s44/LSQXoWA85LWyas/3Pc+gPeDh76G8TQ0FoAEMAiEA11/Trb6YC9CWWFg5BX0RZD4xjWUtctEgm4Tp1fHE23o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22299080},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"279d79903b4acec3ac70d5068d5fbcf2efe123be","scripts":{"lint":"eslint src/**/*.ts","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","test:visual":"vitest --run","test:coverage":"vitest --coverage"},"_npmUser":{"name":"hoteyes","email":"liuyunchuan7@gmail.com"},"repository":{"url":"git+https://github.com/hoteye/ink-visual-testing.git","type":"git"},"_npmVersion":"10.8.2","description":"Visual regression testing for Ink components","directories":{},"_nodeVersion":"20.19.4","dependencies":{"ink":"^4.4.1","pngjs":"^7.0.0","react":"^18.2.0","node-pty":"^1.0.0","react-dom":"^18.3.1","pixelmatch":"^7.1.0","terminal-screenshot":"^1.1.0","@xterm/addon-unicode11":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","eslint":"^8.55.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.10.0","@types/pngjs":"^6.0.5","@types/react":"^18.2.0","@typescript-eslint/parser":"^6.14.0","@typescript-eslint/eslint-plugin":"^6.14.0"},"_npmOperationalInternal":{"tmp":"tmp/ink-visual-testing_0.1.5_1760276522755_0.5969817900658112","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"ink-visual-testing","version":"0.1.6","keywords":["ink","visual-testing","regression-testing","terminal","cli","canvas","snapshot"],"author":"","license":"MIT","_id":"ink-visual-testing@0.1.6","maintainers":[{"name":"hoteyes","email":"liuyunchuan7@gmail.com"}],"homepage":"https://github.com/hoteye/ink-visual-testing#readme","bugs":{"url":"https://github.com/hoteye/ink-visual-testing/issues"},"dist":{"shasum":"d8b93d1a5081d0c08f8cee1f2e86c961557cd077","tarball":"https://registry.npmjs.org/ink-visual-testing/-/ink-visual-testing-0.1.6.tgz","fileCount":31,"integrity":"sha512-9pJw2yIguUfZlvQpDhfakSf5vM0Z7iHGceDlsO1RYRh4h9ghd4v2L1cWZEa5roUmVBDiBlVaU3aCdbwIRXzfTQ==","signatures":[{"sig":"MEUCIQC/QBspj3ryqTd03+Iwntz4LZCK0AYUSMAnn6aup45nwgIgfETF7plmYAEZpvghN20bJHF3tJJytuEr5dzAfbH1KgY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22299083},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"e2dd6e3535dade4468cc63c78b405f18a4581fff","scripts":{"lint":"eslint src/**/*.ts","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","test:visual":"vitest --run","test:coverage":"vitest --coverage"},"_npmUser":{"name":"hoteyes","email":"liuyunchuan7@gmail.com"},"repository":{"url":"git+https://github.com/hoteye/ink-visual-testing.git","type":"git"},"_npmVersion":"10.8.2","description":"Visual regression testing for Ink components","directories":{},"_nodeVersion":"20.19.4","dependencies":{"ink":"^4.4.1","pngjs":"^7.0.0","react":"^18.2.0","node-pty":"^1.0.0","react-dom":"^18.3.1","pixelmatch":"^7.1.0","terminal-screenshot":"^1.1.0","@xterm/addon-unicode11":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","eslint":"^8.55.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.10.0","@types/pngjs":"^6.0.5","@types/react":"^18.2.0","@typescript-eslint/parser":"^6.14.0","@typescript-eslint/eslint-plugin":"^6.14.0"},"_npmOperationalInternal":{"tmp":"tmp/ink-visual-testing_0.1.6_1760313308433_0.635337270194734","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"ink-visual-testing","version":"0.1.7","keywords":["ink","visual-testing","regression-testing","terminal","cli","canvas","snapshot"],"author":"","license":"MIT","_id":"ink-visual-testing@0.1.7","maintainers":[{"name":"hoteyes","email":"liuyunchuan7@gmail.com"}],"homepage":"https://github.com/hoteye/ink-visual-testing#readme","bugs":{"url":"https://github.com/hoteye/ink-visual-testing/issues"},"dist":{"shasum":"0542aecf691ed51d6fe6b3b4fdf919dc84f23e67","tarball":"https://registry.npmjs.org/ink-visual-testing/-/ink-visual-testing-0.1.7.tgz","fileCount":31,"integrity":"sha512-yP70l3vGzmod6NVzwFKVNWvbQsAwp0xPtF79zHRbo6yP3hNu2CXjZ1lSyvidkddr7UMsCTIu4a45Xvxh9vqqtg==","signatures":[{"sig":"MEYCIQCGc3e3Ti14u3b4N2+74+NNgUC6uE037a+cVeVDxIvHQgIhANCHVXJwkA2G48zgAx9lZKVj6Df7r6Uj+SlFV9yvLO9x","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22299810},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"1309a6c79f5d3eca005c07daeab8ead920db5682","scripts":{"lint":"eslint src/**/*.ts","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","test:visual":"vitest --run","test:coverage":"vitest --coverage"},"_npmUser":{"name":"hoteyes","email":"liuyunchuan7@gmail.com"},"repository":{"url":"git+https://github.com/hoteye/ink-visual-testing.git","type":"git"},"_npmVersion":"10.8.2","description":"Visual regression testing for Ink components","directories":{},"_nodeVersion":"20.19.4","dependencies":{"ink":"^4.4.1","pngjs":"^7.0.0","react":"^18.2.0","node-pty":"^1.0.0","react-dom":"^18.3.1","pixelmatch":"^7.1.0","terminal-screenshot":"^1.1.0","@xterm/addon-unicode11":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","eslint":"^8.55.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.10.0","@types/pngjs":"^6.0.5","@types/react":"^18.2.0","@typescript-eslint/parser":"^6.14.0","@typescript-eslint/eslint-plugin":"^6.14.0"},"_npmOperationalInternal":{"tmp":"tmp/ink-visual-testing_0.1.7_1760313502703_0.6455884184037661","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"ink-visual-testing","version":"0.1.9","keywords":["ink","visual-testing","regression-testing","terminal","cli","canvas","snapshot"],"author":"","license":"MIT","_id":"ink-visual-testing@0.1.9","maintainers":[{"name":"hoteyes","email":"liuyunchuan7@gmail.com"}],"homepage":"https://github.com/hoteye/ink-visual-testing#readme","bugs":{"url":"https://github.com/hoteye/ink-visual-testing/issues"},"dist":{"shasum":"743ca21d2125e4cab14b5a65e0dc499b078604a2","tarball":"https://registry.npmjs.org/ink-visual-testing/-/ink-visual-testing-0.1.9.tgz","fileCount":31,"integrity":"sha512-WH0soHQ1Dbm/1vRLDHnYdXC+RoDdvpZTKK5Yo0hNZdp8GPibdla1/truax8/ETweUFq8zo8owcS+Yuco9b4r0Q==","signatures":[{"sig":"MEUCIBctLIHHJe9WD8nXgk1clPXTT8AbHlOg1AdCiDedw5sCAiEAq6c3OX+IM49f0HAww69uozbI2GLUU0Eu1axy9Dh3tZk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22303363},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"ef2296371af04da4be3ad1dad078ab42883d8913","scripts":{"lint":"eslint src/**/*.ts","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","test:visual":"vitest --run","test:coverage":"vitest --coverage"},"_npmUser":{"name":"hoteyes","email":"liuyunchuan7@gmail.com"},"repository":{"url":"git+https://github.com/hoteye/ink-visual-testing.git","type":"git"},"_npmVersion":"10.8.2","description":"Visual regression testing for Ink components","directories":{},"_nodeVersion":"20.19.4","dependencies":{"ink":"^4.4.1","pngjs":"^7.0.0","react":"^18.2.0","node-pty":"^1.0.0","react-dom":"^18.3.1","pixelmatch":"^7.1.0","terminal-screenshot":"^1.1.0","@xterm/addon-unicode11":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","eslint":"^8.55.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.10.0","@types/pngjs":"^6.0.5","@types/react":"^18.2.0","@typescript-eslint/parser":"^6.14.0","@typescript-eslint/eslint-plugin":"^6.14.0"},"_npmOperationalInternal":{"tmp":"tmp/ink-visual-testing_0.1.9_1760322006631_0.24477418102856996","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"ink-visual-testing","version":"0.1.10","keywords":["ink","visual-testing","regression-testing","terminal","cli","canvas","snapshot"],"author":"","license":"MIT","_id":"ink-visual-testing@0.1.10","maintainers":[{"name":"hoteyes","email":"liuyunchuan7@gmail.com"}],"homepage":"https://github.com/hoteye/ink-visual-testing#readme","bugs":{"url":"https://github.com/hoteye/ink-visual-testing/issues"},"dist":{"shasum":"0b2327c5e4245dfe37ec8a0a9572bd719fa4d1b6","tarball":"https://registry.npmjs.org/ink-visual-testing/-/ink-visual-testing-0.1.10.tgz","fileCount":31,"integrity":"sha512-0lhyPrLoXe2AtFbeKribVelFBMkNrUvdcvhhi5ryOmM08fimLpI4HKtaQ09XP+nTPD4pc79rqm18Nq0o3CmRFg==","signatures":[{"sig":"MEYCIQDIpFPneYb9rIfpycn62okwbJMetImTvrICpE61sTPunAIhAM4yXZnhUmbowb4+2vPiyBXsU+0zfMdD9Vwxy8//C7HB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22313577},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"ef2296371af04da4be3ad1dad078ab42883d8913","scripts":{"lint":"eslint src/**/*.ts","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","test:visual":"vitest --run","test:coverage":"vitest --coverage"},"_npmUser":{"name":"hoteyes","email":"liuyunchuan7@gmail.com"},"repository":{"url":"git+https://github.com/hoteye/ink-visual-testing.git","type":"git"},"_npmVersion":"10.8.2","description":"Visual regression testing for Ink components","directories":{},"_nodeVersion":"20.19.4","dependencies":{"ink":"^4.4.1","pngjs":"^7.0.0","react":"^18.2.0","node-pty":"^1.0.0","react-dom":"^18.3.1","pixelmatch":"^7.1.0","terminal-screenshot":"^1.1.0","@xterm/addon-unicode11":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","eslint":"^8.55.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.10.0","@types/pngjs":"^6.0.5","@types/react":"^18.2.0","@typescript-eslint/parser":"^6.14.0","@typescript-eslint/eslint-plugin":"^6.14.0"},"_npmOperationalInternal":{"tmp":"tmp/ink-visual-testing_0.1.10_1760329307634_0.6964087213986074","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"ink-visual-testing","version":"0.1.11","keywords":["ink","visual-testing","regression-testing","terminal","cli","canvas","snapshot"],"author":"","license":"MIT","_id":"ink-visual-testing@0.1.11","maintainers":[{"name":"hoteyes","email":"liuyunchuan7@gmail.com"}],"homepage":"https://github.com/hoteye/ink-visual-testing#readme","bugs":{"url":"https://github.com/hoteye/ink-visual-testing/issues"},"dist":{"shasum":"9926dbea4212434b7d1f38af83878dd4b844e51d","tarball":"https://registry.npmjs.org/ink-visual-testing/-/ink-visual-testing-0.1.11.tgz","fileCount":31,"integrity":"sha512-NDrZn/BLncd6OV3xJ2hXkeIo3yAfQPW2yMa214H+CL/YgBZgRxmLp2d+SeWr9z9Y8wH3mbu6posRpMcWNy9lJA==","signatures":[{"sig":"MEYCIQDv/cXKDp0Lru4VGmv8177RwkhaSX7w0SgeCN1zPem0DgIhANAnqCdYRM7dXCd3YgzTRsK4keHA0f+7kd7Nj6udCNZb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22313577},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"e391c7d7ed6303c7b693c8ce6473cc92f600df3b","scripts":{"lint":"eslint src/**/*.ts","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","test:visual":"vitest --run","test:coverage":"vitest --coverage"},"_npmUser":{"name":"hoteyes","email":"liuyunchuan7@gmail.com"},"repository":{"url":"git+https://github.com/hoteye/ink-visual-testing.git","type":"git"},"_npmVersion":"10.8.2","description":"Visual regression testing for Ink components","directories":{},"_nodeVersion":"20.19.4","dependencies":{"ink":"^4.4.1","pngjs":"^7.0.0","react":"^18.2.0","node-pty":"^1.0.0","react-dom":"^18.3.1","pixelmatch":"^7.1.0","terminal-screenshot":"^1.1.0","@xterm/addon-unicode11":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","eslint":"^8.55.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.10.0","@types/pngjs":"^6.0.5","@types/react":"^18.2.0","@typescript-eslint/parser":"^6.14.0","@typescript-eslint/eslint-plugin":"^6.14.0"},"_npmOperationalInternal":{"tmp":"tmp/ink-visual-testing_0.1.11_1760329538327_0.6576733631795819","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"ink-visual-testing","version":"0.1.12","keywords":["ink","visual-testing","regression-testing","terminal","cli","canvas","snapshot"],"author":"","license":"MIT","_id":"ink-visual-testing@0.1.12","maintainers":[{"name":"hoteyes","email":"liuyunchuan7@gmail.com"}],"homepage":"https://github.com/hoteye/ink-visual-testing#readme","bugs":{"url":"https://github.com/hoteye/ink-visual-testing/issues"},"dist":{"shasum":"282b19a02349d96d20583298c65ec598929ebed1","tarball":"https://registry.npmjs.org/ink-visual-testing/-/ink-visual-testing-0.1.12.tgz","fileCount":31,"integrity":"sha512-zIoFK/ydeM+nofJc1nasILxRJS3DEaicvhowwOy7/TdiUeoPqgL+4VfBT8TsoMGM7PjErxdxUkPYjKABeinsqw==","signatures":[{"sig":"MEUCIFGePVnuySjkinr2I/+oLazKndIj6IyQvwmnZYjYnMsQAiEA6w1gJOJW4vzSQLXd/0N6MsB26LH7syIRQNl9w8DRTCE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22313366},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"8c8ab132581b980725bd682ae84667c4788dbf6f","scripts":{"lint":"eslint src/**/*.ts","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","test:visual":"vitest --run","test:coverage":"vitest --coverage"},"_npmUser":{"name":"hoteyes","email":"liuyunchuan7@gmail.com"},"repository":{"url":"git+https://github.com/hoteye/ink-visual-testing.git","type":"git"},"_npmVersion":"10.8.2","description":"Visual regression testing for Ink components","directories":{},"_nodeVersion":"20.19.4","dependencies":{"ink":"^4.4.1","pngjs":"^7.0.0","react":"^18.2.0","node-pty":"^1.0.0","react-dom":"^18.3.1","pixelmatch":"^7.1.0","terminal-screenshot":"^1.1.0","@xterm/addon-unicode11":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","eslint":"^8.55.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.10.0","@types/pngjs":"^6.0.5","@types/react":"^18.2.0","@typescript-eslint/parser":"^6.14.0","@typescript-eslint/eslint-plugin":"^6.14.0"},"_npmOperationalInternal":{"tmp":"tmp/ink-visual-testing_0.1.12_1760331710824_0.8048732562085696","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"ink-visual-testing","version":"0.1.13","keywords":["ink","visual-testing","regression-testing","terminal","cli","canvas","snapshot"],"author":"","license":"MIT","_id":"ink-visual-testing@0.1.13","maintainers":[{"name":"hoteyes","email":"liuyunchuan7@gmail.com"}],"homepage":"https://github.com/hoteye/ink-visual-testing#readme","bugs":{"url":"https://github.com/hoteye/ink-visual-testing/issues"},"dist":{"shasum":"ad2b569c37eca38f562443238db0302b190be4a8","tarball":"https://registry.npmjs.org/ink-visual-testing/-/ink-visual-testing-0.1.13.tgz","fileCount":31,"integrity":"sha512-Sv3l4Wq2WajFAXW1sGB85z7gLedDIUPBGkZNxmf1qYZwUm7d+5qmsaxW+KZb3Vp7nng1Edr9KZP0tQfevSSpYA==","signatures":[{"sig":"MEYCIQD7whZYYzPWMpwiBWXYRdEDDhCYo36ZJNBJL3xIx6GgZwIhAJW1GJIyHi4yH5ox2wVgx06YXEKiA5WWPoNsdBrH4wjm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22313366},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"6a43694304a8d0b66428b6abf86cf917d35c722e","scripts":{"lint":"eslint src/**/*.ts","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","test:visual":"vitest --run","test:coverage":"vitest --coverage"},"_npmUser":{"name":"hoteyes","email":"liuyunchuan7@gmail.com"},"repository":{"url":"git+https://github.com/hoteye/ink-visual-testing.git","type":"git"},"_npmVersion":"10.8.2","description":"Visual regression testing for Ink components","directories":{},"_nodeVersion":"20.19.4","dependencies":{"ink":"^4.4.1","pngjs":"^7.0.0","react":"^18.2.0","node-pty":"^1.0.0","react-dom":"^18.3.1","pixelmatch":"^7.1.0","terminal-screenshot":"^1.1.0","@xterm/addon-unicode11":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","eslint":"^8.55.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.10.0","@types/pngjs":"^6.0.5","@types/react":"^18.2.0","@typescript-eslint/parser":"^6.14.0","@typescript-eslint/eslint-plugin":"^6.14.0"},"_npmOperationalInternal":{"tmp":"tmp/ink-visual-testing_0.1.13_1760333103679_0.6458569376873939","host":"s3://npm-registry-packages-npm-production"}},"0.1.14":{"name":"ink-visual-testing","version":"0.1.14","keywords":["ink","visual-testing","regression-testing","terminal","cli","canvas","snapshot"],"author":"","license":"MIT","_id":"ink-visual-testing@0.1.14","maintainers":[{"name":"hoteyes","email":"liuyunchuan7@gmail.com"}],"homepage":"https://github.com/hoteye/ink-visual-testing#readme","bugs":{"url":"https://github.com/hoteye/ink-visual-testing/issues"},"dist":{"shasum":"3e5cc59c177fbd5ae0bad926d01eca3c06072005","tarball":"https://registry.npmjs.org/ink-visual-testing/-/ink-visual-testing-0.1.14.tgz","fileCount":31,"integrity":"sha512-zoEAgU9mV5hpQkTc8GhLOVxIN/IhTAzmpOYpjbGYYqxYoqqH+0ZEXZbSCkzb1MoQwYX2FdygZXiUUQYd+ejR5A==","signatures":[{"sig":"MEQCIDTTL4DLjYo0bDWV7hU3APjVP2byjDpK+7BCLp+94tPgAiAS2nmtzb7tMgBsWvXXTQZqpCL2lNNNSeMATHQ2FKc89A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22313383},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"6079509b83a44c8467dff36aedfba6355695d0da","scripts":{"lint":"eslint src/**/*.ts","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","test:visual":"vitest --run","test:coverage":"vitest --coverage"},"_npmUser":{"name":"hoteyes","email":"liuyunchuan7@gmail.com"},"repository":{"url":"git+https://github.com/hoteye/ink-visual-testing.git","type":"git"},"_npmVersion":"10.8.2","description":"Visual regression testing for Ink components","directories":{},"_nodeVersion":"20.19.4","dependencies":{"ink":"^4.4.1","pngjs":"^7.0.0","react":"^18.2.0","node-pty":"^1.0.0","react-dom":"^18.3.1","pixelmatch":"^7.1.0","terminal-screenshot":"^1.1.0","@xterm/addon-unicode11":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","eslint":"^8.55.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.10.0","@types/pngjs":"^6.0.5","@types/react":"^18.2.0","@typescript-eslint/parser":"^6.14.0","@typescript-eslint/eslint-plugin":"^6.14.0"},"_npmOperationalInternal":{"tmp":"tmp/ink-visual-testing_0.1.14_1760333467379_0.30270190000970576","host":"s3://npm-registry-packages-npm-production"}},"0.1.15":{"name":"ink-visual-testing","version":"0.1.15","keywords":["ink","visual-testing","regression-testing","terminal","cli","canvas","snapshot"],"author":"","license":"MIT","_id":"ink-visual-testing@0.1.15","maintainers":[{"name":"hoteyes","email":"liuyunchuan7@gmail.com"}],"homepage":"https://github.com/hoteye/ink-visual-testing#readme","bugs":{"url":"https://github.com/hoteye/ink-visual-testing/issues"},"dist":{"shasum":"25f88e4b4c0e841ad42102d1543903de238fc537","tarball":"https://registry.npmjs.org/ink-visual-testing/-/ink-visual-testing-0.1.15.tgz","fileCount":31,"integrity":"sha512-JlRDIZsPt0I8pkxP3Q+v0ryu6lZ0Ca766JOFefjfb84CQoSODhn8bfvY8DJ1+EoTOd7UuIQWg0zYsV6GQGS98Q==","signatures":[{"sig":"MEYCIQDJaEHHruNMR0O6B/53m+58JSNUWxzJwkOmRl5CPpJXHgIhAPsqxAX8rJIqEw0Y8RYRlUDRKDzSNh5Stq0xm4Z4YKls","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22312733},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"19729e474b2d2d9a6630e913749d4fc163eb1342","scripts":{"lint":"eslint src/**/*.ts","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","test:visual":"vitest --run","test:coverage":"vitest --coverage"},"_npmUser":{"name":"hoteyes","email":"liuyunchuan7@gmail.com"},"repository":{"url":"git+https://github.com/hoteye/ink-visual-testing.git","type":"git"},"_npmVersion":"10.8.2","description":"Visual regression testing for Ink components","directories":{},"_nodeVersion":"20.19.4","dependencies":{"ink":"^4.4.1","pngjs":"^7.0.0","react":"^18.2.0","node-pty":"^1.0.0","react-dom":"^18.3.1","pixelmatch":"^7.1.0","terminal-screenshot":"^1.1.0","@xterm/addon-unicode11":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","eslint":"^8.55.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.10.0","@types/pngjs":"^6.0.5","@types/react":"^18.2.0","@typescript-eslint/parser":"^6.14.0","@typescript-eslint/eslint-plugin":"^6.14.0"},"_npmOperationalInternal":{"tmp":"tmp/ink-visual-testing_0.1.15_1760334709423_0.022938951168100186","host":"s3://npm-registry-packages-npm-production"}},"0.1.16":{"name":"ink-visual-testing","version":"0.1.16","keywords":["ink","visual-testing","regression-testing","terminal","cli","canvas","snapshot"],"author":"","license":"MIT","_id":"ink-visual-testing@0.1.16","maintainers":[{"name":"hoteyes","email":"liuyunchuan7@gmail.com"}],"homepage":"https://github.com/hoteye/ink-visual-testing#readme","bugs":{"url":"https://github.com/hoteye/ink-visual-testing/issues"},"dist":{"shasum":"790b764a1f54517747acfab6d5f829b914049d2c","tarball":"https://registry.npmjs.org/ink-visual-testing/-/ink-visual-testing-0.1.16.tgz","fileCount":31,"integrity":"sha512-bMIGWQjdNJr1oJPiR72kzmZxescafPE9wpYie22n+RLdx4173i9V5/XderwYpVAUvOgoDDVrwSzRX0Ky6a747g==","signatures":[{"sig":"MEYCIQCp/P+BF8KNU0+1L/UkAJdwUEQzJh+CTVmtpa/0A5ffHAIhALy6xJev+HbwOsgJm29BS4p057uVqLKjqOf+hag7djaL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22313479},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"f0607469db11967139d1f658f51d4248eda32654","scripts":{"lint":"eslint src/**/*.ts","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","test:visual":"vitest --run","test:coverage":"vitest --coverage"},"_npmUser":{"name":"hoteyes","email":"liuyunchuan7@gmail.com"},"repository":{"url":"git+https://github.com/hoteye/ink-visual-testing.git","type":"git"},"_npmVersion":"10.8.2","description":"Visual regression testing for Ink components","directories":{},"_nodeVersion":"20.19.4","dependencies":{"ink":"^4.4.1","pngjs":"^7.0.0","react":"^18.2.0","node-pty":"^1.0.0","react-dom":"^18.3.1","pixelmatch":"^7.1.0","terminal-screenshot":"^1.1.0","@xterm/addon-unicode11":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","eslint":"^8.55.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.10.0","@types/pngjs":"^6.0.5","@types/react":"^18.2.0","@typescript-eslint/parser":"^6.14.0","@typescript-eslint/eslint-plugin":"^6.14.0"},"_npmOperationalInternal":{"tmp":"tmp/ink-visual-testing_0.1.16_1760340976234_0.3280312897482367","host":"s3://npm-registry-packages-npm-production"}},"0.1.17":{"name":"ink-visual-testing","version":"0.1.17","keywords":["ink","visual-testing","regression-testing","terminal","cli","canvas","snapshot"],"author":"","license":"MIT","_id":"ink-visual-testing@0.1.17","maintainers":[{"name":"hoteyes","email":"liuyunchuan7@gmail.com"}],"homepage":"https://github.com/hoteye/ink-visual-testing#readme","bugs":{"url":"https://github.com/hoteye/ink-visual-testing/issues"},"dist":{"shasum":"fecf82b8eb5c65a9ab3b9d7984e70e1221b93118","tarball":"https://registry.npmjs.org/ink-visual-testing/-/ink-visual-testing-0.1.17.tgz","fileCount":31,"integrity":"sha512-Sc4UKv3+O7xsa39LCqUpB3dWrZ7m8RbKaK+N3+EZ6P5V06o+2iXxywvMk3pAC0z+ahCFs72rTUsxmuTg1syDDg==","signatures":[{"sig":"MEUCIQCUdpF5zdb+wdOzUPdaQo2b1wM2EFfkPbX+HY8+yZDE2wIgVLa2MbORUceHfWV7XNmQaSZq+f0awXH+G9XXYy7lpFQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22315330},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"dabe5b9132e7a5ad551cc7bc8e8a9ea640cd2193","scripts":{"lint":"eslint src/**/*.ts","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","test:visual":"vitest --run","test:coverage":"vitest --coverage"},"_npmUser":{"name":"hoteyes","email":"liuyunchuan7@gmail.com"},"repository":{"url":"git+https://github.com/hoteye/ink-visual-testing.git","type":"git"},"_npmVersion":"10.8.2","description":"Visual regression testing for Ink components","directories":{},"_nodeVersion":"20.19.4","dependencies":{"ink":"^4.4.1","pngjs":"^7.0.0","react":"^18.2.0","node-pty":"^1.0.0","react-dom":"^18.3.1","pixelmatch":"^7.1.0","terminal-screenshot":"^1.1.0","@xterm/addon-unicode11":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","eslint":"^8.55.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.10.0","@types/pngjs":"^6.0.5","@types/react":"^18.2.0","@typescript-eslint/parser":"^6.14.0","@typescript-eslint/eslint-plugin":"^6.14.0"},"_npmOperationalInternal":{"tmp":"tmp/ink-visual-testing_0.1.17_1760362677526_0.9853422142345947","host":"s3://npm-registry-packages-npm-production"}},"0.1.18":{"name":"ink-visual-testing","version":"0.1.18","keywords":["ink","visual-testing","regression-testing","terminal","cli","canvas","snapshot"],"author":"","license":"MIT","_id":"ink-visual-testing@0.1.18","maintainers":[{"name":"hoteyes","email":"liuyunchuan7@gmail.com"}],"homepage":"https://github.com/hoteye/ink-visual-testing#readme","bugs":{"url":"https://github.com/hoteye/ink-visual-testing/issues"},"dist":{"shasum":"bf18afbd0d9c39014ba23d1c9db140ff621bbf70","tarball":"https://registry.npmjs.org/ink-visual-testing/-/ink-visual-testing-0.1.18.tgz","fileCount":31,"integrity":"sha512-Krdhv1pvoMGAeJNk9DI/vpNain01Ttq1Pb3o3QQ/cbnLeZ3rWs39Rm3bjCaLZUXpGytZdkbQT/8/lPIeh9qv6w==","signatures":[{"sig":"MEQCIC4BpsN0tvsu0cFMzVxNJNV+A0O1QECH2btZNs+vKmU5AiADqCNzvKPTEjsGDOQababSu6+9y5oqm//cfSgNj48UvQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22315330},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"bb757b9c8abaa94e33c91aad7abc249288c1ce41","scripts":{"lint":"eslint src/**/*.ts","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","test:visual":"vitest --run","test:coverage":"vitest --coverage"},"_npmUser":{"name":"hoteyes","email":"liuyunchuan7@gmail.com"},"repository":{"url":"git+https://github.com/hoteye/ink-visual-testing.git","type":"git"},"_npmVersion":"10.8.2","description":"Visual regression testing for Ink components","directories":{},"_nodeVersion":"20.19.4","dependencies":{"ink":"^4.4.1","pngjs":"^7.0.0","react":"^18.2.0","node-pty":"^1.0.0","react-dom":"^18.3.1","pixelmatch":"^7.1.0","terminal-screenshot":"^1.1.0","@xterm/addon-unicode11":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","eslint":"^8.55.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.10.0","@types/pngjs":"^6.0.5","@types/react":"^18.2.0","@typescript-eslint/parser":"^6.14.0","@typescript-eslint/eslint-plugin":"^6.14.0"},"_npmOperationalInternal":{"tmp":"tmp/ink-visual-testing_0.1.18_1760363584029_0.5924445761713699","host":"s3://npm-registry-packages-npm-production"}},"0.1.19":{"name":"ink-visual-testing","version":"0.1.19","keywords":["ink","visual-testing","regression-testing","terminal","cli","canvas","snapshot"],"author":"","license":"MIT","_id":"ink-visual-testing@0.1.19","maintainers":[{"name":"hoteyes","email":"liuyunchuan7@gmail.com"}],"homepage":"https://github.com/hoteye/ink-visual-testing#readme","bugs":{"url":"https://github.com/hoteye/ink-visual-testing/issues"},"dist":{"shasum":"cd1b671ecdc27ae95ef58177f850097588cf29dc","tarball":"https://registry.npmjs.org/ink-visual-testing/-/ink-visual-testing-0.1.19.tgz","fileCount":36,"integrity":"sha512-H4P7Xt8a3vxuwWoAjR1XIRjcsgbgGW8SpKGih41taaTf9WugxSnjtKbcUGCqFKIb2RnQhi9pB7qYNn1h/V832Q==","signatures":[{"sig":"MEYCIQCB9OvPWp9VvlI1s5Ho1pqKfgwlPRH4YuGKGkENHelbRwIhAPOdShoHEnasHNYb2c7wDK+ogo+48O88avaaEpx/rMU8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22660465},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"0674dc13b1f7ac542b85646ae9588fab0ef87a84","scripts":{"lint":"eslint src/**/*.ts","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","test:visual":"vitest --run","test:coverage":"vitest --coverage"},"_npmUser":{"name":"hoteyes","email":"liuyunchuan7@gmail.com"},"repository":{"url":"git+https://github.com/hoteye/ink-visual-testing.git","type":"git"},"_npmVersion":"10.8.2","description":"Visual regression testing for Ink components","directories":{},"_nodeVersion":"20.19.4","dependencies":{"ink":"^4.4.1","pngjs":"^7.0.0","react":"^18.2.0","node-pty":"^1.0.0","react-dom":"^18.3.1","pixelmatch":"^7.1.0","terminal-screenshot":"^1.1.0","@xterm/addon-unicode11":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","eslint":"^8.55.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.10.0","@types/pngjs":"^6.0.5","@types/react":"^18.2.0","@typescript-eslint/parser":"^6.14.0","@typescript-eslint/eslint-plugin":"^6.14.0"},"_npmOperationalInternal":{"tmp":"tmp/ink-visual-testing_0.1.19_1760498152646_0.4318576798026186","host":"s3://npm-registry-packages-npm-production"}},"0.1.20":{"name":"ink-visual-testing","version":"0.1.20","keywords":["ink","visual-testing","regression-testing","terminal","cli","canvas","snapshot"],"author":"","license":"MIT","_id":"ink-visual-testing@0.1.20","maintainers":[{"name":"hoteyes","email":"liuyunchuan7@gmail.com"}],"homepage":"https://github.com/hoteye/ink-visual-testing#readme","bugs":{"url":"https://github.com/hoteye/ink-visual-testing/issues"},"dist":{"shasum":"fac37b22adcbaded3fe908316b432b2953a4ff97","tarball":"https://registry.npmjs.org/ink-visual-testing/-/ink-visual-testing-0.1.20.tgz","fileCount":36,"integrity":"sha512-47ZJOvvDuH1G0qfFMtW3W5dade3mveAEhuBd+s+4TtbHPR+H91DpjIxckxEEix7TKgkEDr2F4qxK961dHoB9PA==","signatures":[{"sig":"MEUCIQD9vzsrq8xCtJ7x3X6fxNRIS0RUV2ZaPMr6XcA3uuW2fAIgdFaLS3d+sYapJQ6cT9V3PGMGXmd16caX3zgaVjSO2XU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22661480},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"bb5fd0762be240d52bb323ef4732f3ccaad55080","scripts":{"lint":"eslint src/**/*.ts","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","test:visual":"vitest --run","test:coverage":"vitest --coverage"},"_npmUser":{"name":"hoteyes","email":"liuyunchuan7@gmail.com"},"repository":{"url":"git+https://github.com/hoteye/ink-visual-testing.git","type":"git"},"_npmVersion":"10.8.2","description":"Visual regression testing for Ink components","directories":{},"_nodeVersion":"20.19.4","dependencies":{"ink":"^4.4.1","pngjs":"^7.0.0","react":"^18.2.0","node-pty":"^1.0.0","react-dom":"^18.3.1","pixelmatch":"^7.1.0","terminal-screenshot":"^1.1.0","@xterm/addon-unicode11":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","eslint":"^8.55.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.10.0","@types/pngjs":"^6.0.5","@types/react":"^18.2.0","@typescript-eslint/parser":"^6.14.0","@typescript-eslint/eslint-plugin":"^6.14.0"},"_npmOperationalInternal":{"tmp":"tmp/ink-visual-testing_0.1.20_1760500071297_0.6508773738153235","host":"s3://npm-registry-packages-npm-production"}},"0.1.21":{"name":"ink-visual-testing","version":"0.1.21","keywords":["ink","visual-testing","regression-testing","terminal","cli","canvas","snapshot"],"author":"","license":"MIT","_id":"ink-visual-testing@0.1.21","maintainers":[{"name":"hoteyes","email":"liuyunchuan7@gmail.com"}],"homepage":"https://github.com/hoteye/ink-visual-testing#readme","bugs":{"url":"https://github.com/hoteye/ink-visual-testing/issues"},"dist":{"shasum":"3a5466952354feb5e4288299fb5853d022f3d6a2","tarball":"https://registry.npmjs.org/ink-visual-testing/-/ink-visual-testing-0.1.21.tgz","fileCount":36,"integrity":"sha512-CxZeoBr0lbKin+nkIA/9VebHLetVJdMMQyQYbKfb5SgGR4qkkvxiXBRd3Ft0OJje/bMSINWxWeR2ArNP+hKncg==","signatures":[{"sig":"MEQCIH0MpGVvnCbWIgaUN1EP+YFT96+CfRzb4ZpUWct5omy+AiBACszRkxmWC8bdlfpfHH0RB0MvuJ9Mc9z884zJtCdzgQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22661469},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"08da30049b019e87742c01c2466d4bb6de09b303","scripts":{"lint":"eslint src/**/*.ts","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","test:visual":"vitest --run","test:coverage":"vitest --coverage"},"_npmUser":{"name":"hoteyes","email":"liuyunchuan7@gmail.com"},"repository":{"url":"git+https://github.com/hoteye/ink-visual-testing.git","type":"git"},"_npmVersion":"10.8.2","description":"Visual regression testing for Ink components","directories":{},"_nodeVersion":"20.19.4","dependencies":{"ink":"^4.4.1","pngjs":"^7.0.0","react":"^18.2.0","node-pty":"^1.0.0","react-dom":"^18.3.1","pixelmatch":"^7.1.0","terminal-screenshot":"^1.1.0","@xterm/addon-unicode11":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","eslint":"^8.55.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.10.0","@types/pngjs":"^6.0.5","@types/react":"^18.2.0","@typescript-eslint/parser":"^6.14.0","@typescript-eslint/eslint-plugin":"^6.14.0"},"_npmOperationalInternal":{"tmp":"tmp/ink-visual-testing_0.1.21_1760504178630_0.4104114357877673","host":"s3://npm-registry-packages-npm-production"}},"0.1.22":{"name":"ink-visual-testing","version":"0.1.22","keywords":["ink","visual-testing","regression-testing","terminal","cli","canvas","snapshot"],"author":"","license":"MIT","_id":"ink-visual-testing@0.1.22","maintainers":[{"name":"hoteyes","email":"liuyunchuan7@gmail.com"}],"homepage":"https://github.com/hoteye/ink-visual-testing#readme","bugs":{"url":"https://github.com/hoteye/ink-visual-testing/issues"},"dist":{"shasum":"8dd0d4b9379db3736b4bcad6c5d76878b3bd835f","tarball":"https://registry.npmjs.org/ink-visual-testing/-/ink-visual-testing-0.1.22.tgz","fileCount":36,"integrity":"sha512-a/wV/y2y9C8IS5G6nr0/hTedaV9YnRsC6ncajPwd/mI3/e/lXGgxpS67PAsaNUAdeNOmiEoF1vDtlU/VmeEotg==","signatures":[{"sig":"MEUCIQD2xjxpE6sfDIY+rtnIC4zK0iRonT7JR2EKTNFcXfYQKAIgPPwPX10hA/0iSWmR6IJ3LWbINmpKcQvMLphc+LAieWw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22659647},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"36931fbeb9f28df76e9a7781756f32358bb0724f","scripts":{"lint":"eslint src/**/*.ts","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","test:visual":"vitest --run","test:coverage":"vitest --coverage"},"_npmUser":{"name":"hoteyes","email":"liuyunchuan7@gmail.com"},"repository":{"url":"git+https://github.com/hoteye/ink-visual-testing.git","type":"git"},"_npmVersion":"10.8.2","description":"Visual regression testing for Ink components","directories":{},"_nodeVersion":"20.19.4","dependencies":{"ink":"^4.4.1","pngjs":"^7.0.0","react":"^18.2.0","node-pty":"^1.0.0","react-dom":"^18.3.1","pixelmatch":"^7.1.0","terminal-screenshot":"^1.1.0","@xterm/addon-unicode11":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","eslint":"^8.55.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.10.0","@types/pngjs":"^6.0.5","@types/react":"^18.2.0","@typescript-eslint/parser":"^6.14.0","@typescript-eslint/eslint-plugin":"^6.14.0"},"_npmOperationalInternal":{"tmp":"tmp/ink-visual-testing_0.1.22_1760515332294_0.3401249551523282","host":"s3://npm-registry-packages-npm-production"}},"0.1.23":{"name":"ink-visual-testing","version":"0.1.23","keywords":["ink","visual-testing","regression-testing","terminal","cli","canvas","snapshot"],"author":"","license":"MIT","_id":"ink-visual-testing@0.1.23","maintainers":[{"name":"hoteyes","email":"liuyunchuan7@gmail.com"}],"homepage":"https://github.com/hoteye/ink-visual-testing#readme","bugs":{"url":"https://github.com/hoteye/ink-visual-testing/issues"},"dist":{"shasum":"6281b6ff51faa35fde0b4d19c6c7c95464df5b2d","tarball":"https://registry.npmjs.org/ink-visual-testing/-/ink-visual-testing-0.1.23.tgz","fileCount":36,"integrity":"sha512-PSGsfhlIuyRLGrrVDgmS+HzZ4aXBXCG+RM6rqH8zEsA5JIXd785hjPVXC40K7gXTuxT8KedYBbgX5QX1VUUu1Q==","signatures":[{"sig":"MEQCIC+uC6NK9q2BibZC4iEcM+iVx4PoS4XYFt20Zy1mM+saAiA3QjbS8A2WhoOLlVpQCGc3DO7yZfF27lz4szIoV/U5Mg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22659714},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"1e25a313e304964a64d71376d74175cd8556f20f","scripts":{"lint":"eslint src/**/*.ts","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","postinstall":"patch-package","test:visual":"vitest --run","test:coverage":"vitest --coverage"},"_npmUser":{"name":"hoteyes","email":"liuyunchuan7@gmail.com"},"repository":{"url":"git+https://github.com/hoteye/ink-visual-testing.git","type":"git"},"_npmVersion":"10.8.2","description":"Visual regression testing for Ink components","directories":{},"_nodeVersion":"20.19.4","dependencies":{"ink":"^4.4.1","pngjs":"^7.0.0","react":"^18.2.0","node-pty":"^1.0.0","react-dom":"^18.3.1","pixelmatch":"^7.1.0","terminal-screenshot":"^1.1.0","@xterm/addon-unicode11":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","eslint":"^8.55.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.10.0","@types/pngjs":"^6.0.5","@types/react":"^18.2.0","patch-package":"^8.0.1","@typescript-eslint/parser":"^6.14.0","@typescript-eslint/eslint-plugin":"^6.14.0"},"_npmOperationalInternal":{"tmp":"tmp/ink-visual-testing_0.1.23_1760683890823_0.1499677597472635","host":"s3://npm-registry-packages-npm-production"}},"0.1.24":{"name":"ink-visual-testing","version":"0.1.24","keywords":["ink","visual-testing","regression-testing","terminal","cli","canvas","snapshot"],"author":"","license":"MIT","_id":"ink-visual-testing@0.1.24","maintainers":[{"name":"hoteyes","email":"liuyunchuan7@gmail.com"}],"homepage":"https://github.com/hoteye/ink-visual-testing#readme","bugs":{"url":"https://github.com/hoteye/ink-visual-testing/issues"},"dist":{"shasum":"2e669311aba45b4412f1047047400cb4aad6b875","tarball":"https://registry.npmjs.org/ink-visual-testing/-/ink-visual-testing-0.1.24.tgz","fileCount":41,"integrity":"sha512-6wgiV1WKnjmFg5KhAp0ZmL9kl9FFdaR96fv/V9g3CGJ9MFp0Cp3cEyfcLJ8WkgnFKfgIQ8s6YQHiMJIjs7zcZg==","signatures":[{"sig":"MEQCIAuiMQ7/0yfCKbdrGtjKD1VJR0Gbgg8oghO5tn7/kIfyAiA78+5dAFbkNo6xwovtkgRxqUQqpv8v8VVsQRkD9+IAog==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23228246},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"dc9d3c67fe060c6ac4671c7717f705abbbc00578","scripts":{"lint":"eslint src/**/*.ts","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","postinstall":"patch-package","test:visual":"vitest --run","test:coverage":"vitest --coverage"},"_npmUser":{"name":"hoteyes","email":"liuyunchuan7@gmail.com"},"repository":{"url":"git+https://github.com/hoteye/ink-visual-testing.git","type":"git"},"_npmVersion":"10.8.2","description":"Visual regression testing for Ink components","directories":{},"_nodeVersion":"20.19.4","dependencies":{"ink":"^4.4.1","pngjs":"^7.0.0","react":"^18.2.0","node-pty":"^1.0.0","react-dom":"^18.3.1","pixelmatch":"^7.1.0","patch-package":"^8.0.1","terminal-screenshot":"^1.1.0","@xterm/addon-unicode11":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","eslint":"^8.55.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.10.0","@types/pngjs":"^6.0.5","@types/react":"^18.2.0","patch-package":"^8.0.1","@typescript-eslint/parser":"^6.14.0","@typescript-eslint/eslint-plugin":"^6.14.0"},"_npmOperationalInternal":{"tmp":"tmp/ink-visual-testing_0.1.24_1760689751743_0.7577866189007938","host":"s3://npm-registry-packages-npm-production"}},"0.1.25":{"name":"ink-visual-testing","version":"0.1.25","keywords":["ink","visual-testing","regression-testing","terminal","cli","canvas","snapshot"],"author":"","license":"MIT","_id":"ink-visual-testing@0.1.25","maintainers":[{"name":"hoteyes","email":"liuyunchuan7@gmail.com"}],"homepage":"https://github.com/hoteye/ink-visual-testing#readme","bugs":{"url":"https://github.com/hoteye/ink-visual-testing/issues"},"dist":{"shasum":"2606193bb34a7d75abdd6fd5509d28086c04ad22","tarball":"https://registry.npmjs.org/ink-visual-testing/-/ink-visual-testing-0.1.25.tgz","fileCount":41,"integrity":"sha512-QK49SWILfsfpRrjdrXU5jLA/fSCgPO0KJcmD38jGuLz92XQqnvjEtX6MIl6j1pMf3eMKt+AcbVaCXSVAKMnFZQ==","signatures":[{"sig":"MEUCIBnhap7KRqrdLXPtwVsKGQtsDBSFNxBd377xQ8kLffMIAiEAj4VCYDiIo2OinvnDXUxHG9BdSAhMdXAsm2e0Z44r9UU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23228268},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"9b4e70b1dd55ba03ab0a4dc41c0169dd8ded41e6","scripts":{"lint":"eslint src/**/*.ts","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","postinstall":"patch-package --patch-dir=./patches","test:visual":"vitest --run","test:coverage":"vitest --coverage"},"_npmUser":{"name":"hoteyes","email":"liuyunchuan7@gmail.com"},"repository":{"url":"git+https://github.com/hoteye/ink-visual-testing.git","type":"git"},"_npmVersion":"10.8.2","description":"Visual regression testing for Ink components","directories":{},"_nodeVersion":"20.19.4","dependencies":{"ink":"^4.4.1","pngjs":"^7.0.0","react":"^18.2.0","node-pty":"^1.0.0","react-dom":"^18.3.1","pixelmatch":"^7.1.0","patch-package":"^8.0.1","terminal-screenshot":"^1.1.0","@xterm/addon-unicode11":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","eslint":"^8.55.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.10.0","@types/pngjs":"^6.0.5","@types/react":"^18.2.0","patch-package":"^8.0.1","@typescript-eslint/parser":"^6.14.0","@typescript-eslint/eslint-plugin":"^6.14.0"},"_npmOperationalInternal":{"tmp":"tmp/ink-visual-testing_0.1.25_1760699940924_0.6172144218324784","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"ink-visual-testing","version":"0.2.0","keywords":["ink","visual-testing","regression-testing","terminal","cli","canvas","snapshot"],"author":"","license":"MIT","_id":"ink-visual-testing@0.2.0","maintainers":[{"name":"hoteyes","email":"liuyunchuan7@gmail.com"}],"homepage":"https://github.com/hoteye/ink-visual-testing#readme","bugs":{"url":"https://github.com/hoteye/ink-visual-testing/issues"},"dist":{"shasum":"2e7d6e8fb16b520bbbf2f141a95dae514506bd92","tarball":"https://registry.npmjs.org/ink-visual-testing/-/ink-visual-testing-0.2.0.tgz","fileCount":45,"integrity":"sha512-Jv9ZM85V5jilxXvE/MQnpDX4b81pecHkisy10hci638dYaNTD9+n2oJz5MUNg8umv9EmeepxP77tkzTVt2CQGQ==","signatures":[{"sig":"MEYCIQDY7O+HgUBuMCFMGhsLE1v+Y9M4RMJZd4kUuLMRWLraVQIhAN3WJEsCvj4FKvfG1t3/ChWajRP6Hy0GJ18GlQCD8OQ9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23231903},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"f3f2939c31bff5e0e2ac60e1b73a57236c9b6333","scripts":{"lint":"eslint src/**/*.ts","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","test:visual":"vitest --run","test:coverage":"vitest --coverage"},"_npmUser":{"name":"hoteyes","email":"liuyunchuan7@gmail.com"},"repository":{"url":"git+https://github.com/hoteye/ink-visual-testing.git","type":"git"},"_npmVersion":"10.8.2","description":"Visual regression testing for Ink components","directories":{},"_nodeVersion":"20.19.4","dependencies":{"ink":"^4.4.1","pngjs":"^7.0.0","react":"^18.2.0","node-pty":"^1.0.0","react-dom":"^18.3.1","pixelmatch":"^7.1.0","terminal-screenshot":"^1.1.0","@xterm/addon-unicode11":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","eslint":"^8.55.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.10.0","@types/pngjs":"^6.0.5","@types/react":"^18.2.0","patch-package":"^8.0.1","@typescript-eslint/parser":"^6.14.0","@typescript-eslint/eslint-plugin":"^6.14.0"},"_npmOperationalInternal":{"tmp":"tmp/ink-visual-testing_0.2.0_1760706682587_0.46729713961358854","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"ink-visual-testing","version":"0.2.1","keywords":["ink","visual-testing","regression-testing","terminal","cli","canvas","snapshot"],"author":"","license":"MIT","_id":"ink-visual-testing@0.2.1","maintainers":[{"name":"hoteyes","email":"liuyunchuan7@gmail.com"}],"homepage":"https://github.com/hoteye/ink-visual-testing#readme","bugs":{"url":"https://github.com/hoteye/ink-visual-testing/issues"},"dist":{"shasum":"65e5a98ce573e1f3940b4c6a7634f15ce09f75c6","tarball":"https://registry.npmjs.org/ink-visual-testing/-/ink-visual-testing-0.2.1.tgz","fileCount":45,"integrity":"sha512-wZ76relyxQv1iDATmGFI/NAX0Yg7RTT5gDZSCInHsY8w14R1+QAf+0f7WsjezzGFxoAquBE4o4R12W1D/9CUFw==","signatures":[{"sig":"MEUCIQC5y/LGWzvE/QAvEJRVX/Wt3Q/N23JZTce899os7Whb6wIgY06yr0+0ZNOeR4G3UrYg/hTjBz3+VZJMGGWzkeU8rH8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23232127},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"e4a921a87ba3314e8a4f086d6b4d1ea2cd9c4adb","scripts":{"lint":"eslint src/**/*.ts","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","test:visual":"vitest --run","test:coverage":"vitest --coverage"},"_npmUser":{"name":"hoteyes","email":"liuyunchuan7@gmail.com"},"repository":{"url":"git+https://github.com/hoteye/ink-visual-testing.git","type":"git"},"_npmVersion":"10.8.2","description":"Visual regression testing for Ink components","directories":{},"_nodeVersion":"20.19.4","dependencies":{"ink":"^4.4.1","pngjs":"^7.0.0","react":"^18.2.0","node-pty":"^1.0.0","react-dom":"^18.3.1","pixelmatch":"^7.1.0","terminal-screenshot":"^1.1.0","@xterm/addon-unicode11":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","eslint":"^8.55.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.10.0","@types/pngjs":"^6.0.5","@types/react":"^18.2.0","patch-package":"^8.0.1","@typescript-eslint/parser":"^6.14.0","@typescript-eslint/eslint-plugin":"^6.14.0"},"_npmOperationalInternal":{"tmp":"tmp/ink-visual-testing_0.2.1_1760707029508_0.5656999463318124","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"ink-visual-testing","version":"0.2.2","keywords":["ink","visual-testing","regression-testing","terminal","cli","canvas","snapshot"],"author":"","license":"MIT","_id":"ink-visual-testing@0.2.2","maintainers":[{"name":"hoteyes","email":"liuyunchuan7@gmail.com"}],"homepage":"https://github.com/hoteye/ink-visual-testing#readme","bugs":{"url":"https://github.com/hoteye/ink-visual-testing/issues"},"dist":{"shasum":"beb7d1c792a4ccfb753e128a94b5976eb6838efb","tarball":"https://registry.npmjs.org/ink-visual-testing/-/ink-visual-testing-0.2.2.tgz","fileCount":40,"integrity":"sha512-TY8Nx3c8zChjSdfjveqIR7NiGVnFU+mud7grxAgUrd5sv1NRV4fcH/k5qFsbRhpQ2FfX1RU9QIhFLwwqF4sW9g==","signatures":[{"sig":"MEUCIQCdi5hJu+IMegoudbeIOrJLe65rPn8Wv3LRogSFZxL09AIgck7t260SBPED3l3rkbsHVeUp+QqvqWx+i2HwSAQ8ThI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22663138},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"7c7574afd24a1d16ff760c2fdaf6b5da67cd0bac","scripts":{"lint":"eslint src/**/*.ts","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","test:visual":"vitest --run","test:coverage":"vitest --coverage"},"_npmUser":{"name":"hoteyes","email":"liuyunchuan7@gmail.com"},"repository":{"url":"git+https://github.com/hoteye/ink-visual-testing.git","type":"git"},"_npmVersion":"10.8.2","description":"Visual regression testing for Ink components","directories":{},"_nodeVersion":"20.19.4","dependencies":{"ink":"^4.4.1","pngjs":"^7.0.0","react":"^18.2.0","node-pty":"^1.0.0","react-dom":"^18.3.1","pixelmatch":"^7.1.0","terminal-screenshot":"^1.1.0","@xterm/addon-unicode11":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","eslint":"^8.55.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.10.0","@types/pngjs":"^6.0.5","@types/react":"^18.2.0","@typescript-eslint/parser":"^6.14.0","@typescript-eslint/eslint-plugin":"^6.14.0"},"_npmOperationalInternal":{"tmp":"tmp/ink-visual-testing_0.2.2_1760743157174_0.6545599119006063","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"ink-visual-testing","version":"0.2.3","keywords":["ink","visual-testing","regression-testing","terminal","cli","canvas","snapshot"],"author":"","license":"MIT","_id":"ink-visual-testing@0.2.3","maintainers":[{"name":"hoteyes","email":"liuyunchuan7@gmail.com"}],"homepage":"https://github.com/hoteye/ink-visual-testing#readme","bugs":{"url":"https://github.com/hoteye/ink-visual-testing/issues"},"dist":{"shasum":"f2d17abc4e0193406c7899a259e13dc854f18465","tarball":"https://registry.npmjs.org/ink-visual-testing/-/ink-visual-testing-0.2.3.tgz","fileCount":36,"integrity":"sha512-j/7UHM/eC/O/x332ns7lAC8buetwKMLuA5FRv1pLNKr1Ii6vLeQ8UHkmzcpHgZDYFFYsFwdb8kr0wk4/he4RnA==","signatures":[{"sig":"MEYCIQDRj9LvWV4tuhQF1ES+waKSp0hf3Yom7O8qyJP5tVd/PgIhAMgU0zlRIjOqdgV01WyM79Gl1OU1hrWm3Iqemek6ZheH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22662376},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"523537e0f9ad39af64818613f08a0ebada76ef8a","scripts":{"lint":"eslint src/**/*.ts","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","test:visual":"vitest --run","test:coverage":"vitest --coverage"},"_npmUser":{"name":"hoteyes","email":"liuyunchuan7@gmail.com"},"repository":{"url":"git+https://github.com/hoteye/ink-visual-testing.git","type":"git"},"_npmVersion":"10.8.2","description":"Visual regression testing for Ink components","directories":{},"_nodeVersion":"20.19.4","dependencies":{"ink":"^4.4.1","pngjs":"^7.0.0","react":"^18.2.0","node-pty":"^1.0.0","react-dom":"^18.3.1","pixelmatch":"^7.1.0","terminal-screenshot":"^1.1.0","@xterm/addon-unicode11":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","eslint":"^8.55.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.10.0","@types/pngjs":"^6.0.5","@types/react":"^18.2.0","@typescript-eslint/parser":"^6.14.0","@typescript-eslint/eslint-plugin":"^6.14.0"},"_npmOperationalInternal":{"tmp":"tmp/ink-visual-testing_0.2.3_1760743223908_0.0030838063593709997","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"ink-visual-testing","version":"0.2.4","keywords":["ink","visual-testing","regression-testing","terminal","cli","canvas","snapshot"],"author":"","license":"MIT","_id":"ink-visual-testing@0.2.4","maintainers":[{"name":"hoteyes","email":"liuyunchuan7@gmail.com"}],"homepage":"https://github.com/hoteye/ink-visual-testing#readme","bugs":{"url":"https://github.com/hoteye/ink-visual-testing/issues"},"dist":{"shasum":"71d9c4899933dd8e0b1e3cdcb0911c07a03beeb9","tarball":"https://registry.npmjs.org/ink-visual-testing/-/ink-visual-testing-0.2.4.tgz","fileCount":36,"integrity":"sha512-5BGFmhO8v4A4qSbhlAAcmErwLhx9paB9BqRPM+3sJ/NN7ugrkIIlkQoVIwhCiwbknPHEEU9xQQfw3THg2wkdRw==","signatures":[{"sig":"MEQCIH0/jrh6CDLjQ+cPVQROB0xAKA3gfkSR0wPWfOh29RFpAiAf2XvHdxJvTHdsjnhmGuapXZfC0MBKQJy3fA3iUGNSdQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22662525},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"d2b3a1fc20f12b454a87c57e95dcc82b2e117d21","scripts":{"lint":"eslint src/**/*.ts","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","test:visual":"vitest --run","test:coverage":"vitest --coverage"},"_npmUser":{"name":"hoteyes","email":"liuyunchuan7@gmail.com"},"repository":{"url":"git+https://github.com/hoteye/ink-visual-testing.git","type":"git"},"_npmVersion":"10.8.2","description":"Visual regression testing for Ink components","directories":{},"_nodeVersion":"20.19.4","dependencies":{"ink":"^4.4.1","pngjs":"^7.0.0","react":"^18.2.0","node-pty":"^1.0.0","react-dom":"^18.3.1","pixelmatch":"^7.1.0","terminal-screenshot":"^1.1.0","@xterm/addon-unicode11":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","eslint":"^8.55.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.10.0","@types/pngjs":"^6.0.5","@types/react":"^18.2.0","@typescript-eslint/parser":"^6.14.0","@typescript-eslint/eslint-plugin":"^6.14.0"},"_npmOperationalInternal":{"tmp":"tmp/ink-visual-testing_0.2.4_1760746059533_0.7671237529845591","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"ink-visual-testing","version":"0.3.0","keywords":["ink","visual-testing","regression-testing","terminal","cli","canvas","snapshot"],"author":"","license":"MIT","_id":"ink-visual-testing@0.3.0","maintainers":[{"name":"hoteyes","email":"liuyunchuan7@gmail.com"}],"homepage":"https://github.com/hoteye/ink-visual-testing#readme","bugs":{"url":"https://github.com/hoteye/ink-visual-testing/issues"},"dist":{"shasum":"aa16c1bb47e26ebccedce956fd177fb8d73edbde","tarball":"https://registry.npmjs.org/ink-visual-testing/-/ink-visual-testing-0.3.0.tgz","fileCount":40,"integrity":"sha512-2vFnR+0Z1P9AegOAkJ2F86wbZK+rdIHxZg4VGTQ26vCnhUHSDs6Z9hQNt6rLbh8OiussZUTMdYoTI/nM9i+6Ng==","signatures":[{"sig":"MEQCIGlyXKJztn4d0bVB0+/OUmWxJFM4FJRe9LKJgBN70jp8AiAujI0VzETZSHBVAwbBMKVMD9LcJGWId7REBn17FJ177g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22675655},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"edf28e87c1765bfc0db9c2b15d6ce3fe91f6d3df","scripts":{"lint":"eslint src/**/*.ts","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","test:visual":"vitest --run","test:coverage":"vitest --coverage"},"_npmUser":{"name":"hoteyes","email":"liuyunchuan7@gmail.com"},"repository":{"url":"git+https://github.com/hoteye/ink-visual-testing.git","type":"git"},"_npmVersion":"10.8.2","description":"Visual regression testing for Ink components","directories":{},"_nodeVersion":"20.19.4","dependencies":{"ink":"^4.4.1","pngjs":"^7.0.0","react":"^18.2.0","node-pty":"^1.0.0","react-dom":"^18.3.1","pixelmatch":"^7.1.0","terminal-screenshot":"^1.1.0","@xterm/addon-unicode11":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","eslint":"^8.55.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.10.0","@types/pngjs":"^6.0.5","@types/react":"^18.2.0","@typescript-eslint/parser":"^6.14.0","@typescript-eslint/eslint-plugin":"^6.14.0"},"_npmOperationalInternal":{"tmp":"tmp/ink-visual-testing_0.3.0_1760773787041_0.8557142736563095","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"ink-visual-testing","version":"1.0.0","keywords":["ink","visual-testing","regression-testing","terminal","cli","canvas","snapshot"],"author":"","license":"MIT","_id":"ink-visual-testing@1.0.0","maintainers":[{"name":"hoteyes","email":"liuyunchuan7@gmail.com"}],"homepage":"https://github.com/hoteye/ink-visual-testing#readme","bugs":{"url":"https://github.com/hoteye/ink-visual-testing/issues"},"dist":{"shasum":"82db6a861702489ed7817080d415110385ea56b6","tarball":"https://registry.npmjs.org/ink-visual-testing/-/ink-visual-testing-1.0.0.tgz","fileCount":40,"integrity":"sha512-7BMgCKRqxEtPRq2kslGoYiEVWIdNqlMlmMY81NHJGRqvnuWiFWWXzd0B87vq/tabw5sLe78UNDN8ypGRwWO2Cw==","signatures":[{"sig":"MEQCIH6Kacw8OaV3jks2JwmVDENGCdH1c6QOZVsWBriL9zh2AiBcWM7255LiM+I40NdAcvZr8fgSreAVJxEMOJ9o9S178w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22676120},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"eac954d432738bd0c00ada1aa1e7d96eb115613a","scripts":{"lint":"eslint src/**/*.ts","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","test:visual":"vitest --run","test:coverage":"vitest --coverage"},"_npmUser":{"name":"hoteyes","email":"liuyunchuan7@gmail.com"},"repository":{"url":"git+https://github.com/hoteye/ink-visual-testing.git","type":"git"},"_npmVersion":"10.8.2","description":"Visual regression testing for Ink components","directories":{},"_nodeVersion":"20.19.4","dependencies":{"pngjs":"^7.0.0","node-pty":"^1.0.0","pixelmatch":"^7.1.0","terminal-screenshot":"^1.1.0","@xterm/addon-unicode11":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"ink":"^6.3.1","tsx":"^4.20.6","react":"^19.0.0","eslint":"^8.55.0","vitest":"^3.2.4","react-dom":"^19.0.0","typescript":"^5.3.0","@types/node":"^20.10.0","@types/pngjs":"^6.0.5","@types/react":"^19.0.0","@vitest/coverage-v8":"^3.2.4","@typescript-eslint/parser":"^6.14.0","@typescript-eslint/eslint-plugin":"^6.14.0"},"peerDependencies":{"ink":"^4.0.0 || ^5.0.0 || ^6.0.0","react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ink-visual-testing_1.0.0_1760774495160_0.834223886623219","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"ink-visual-testing","version":"1.0.1","keywords":["ink","visual-testing","regression-testing","terminal","cli","canvas","snapshot"],"author":"","license":"MIT","_id":"ink-visual-testing@1.0.1","maintainers":[{"name":"hoteyes","email":"liuyunchuan7@gmail.com"}],"homepage":"https://github.com/hoteye/ink-visual-testing#readme","bugs":{"url":"https://github.com/hoteye/ink-visual-testing/issues"},"bin":{"ink-visual-testing":"dist/cli.js"},"dist":{"shasum":"43dcc258a8b2c2ef664cea35e880630bf38436af","tarball":"https://registry.npmjs.org/ink-visual-testing/-/ink-visual-testing-1.0.1.tgz","fileCount":56,"integrity":"sha512-x1RYrabZPdFRCUkswvp77jjHE4nCrZTm6XCoeK+zALzGXFpgKV9P7Y9hJ6CNiI7RW9UhODmnkdNIwKs2Ecqh7w==","signatures":[{"sig":"MEYCIQDKTDVUXD4HwwZavCvtp1vWvVkf6PTngMW35PVmtoR0OAIhAOyr5ILElCY06xK8N7Ppr9y3M3sUP/JX96mkeiGFqUeo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22714144},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"5e47ac84606f473e64855da57eea0368b08331f5","scripts":{"lint":"eslint src/**/*.ts","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","test:visual":"vitest --run","test:coverage":"vitest --coverage"},"_npmUser":{"name":"hoteyes","email":"liuyunchuan7@gmail.com"},"repository":{"url":"git+https://github.com/hoteye/ink-visual-testing.git","type":"git"},"_npmVersion":"10.8.2","description":"Visual regression testing for Ink components","directories":{},"_nodeVersion":"20.19.4","dependencies":{"glob":"^11.0.3","pngjs":"^7.0.0","node-pty":"^1.0.0","commander":"^12.1.0","pixelmatch":"^7.1.0","terminal-screenshot":"^1.1.0","@xterm/addon-unicode11":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"ink":"^6.3.1","tsx":"^4.20.6","react":"^19.0.0","eslint":"^8.55.0","vitest":"^3.2.4","react-dom":"^19.0.0","typescript":"^5.3.0","@types/node":"^20.10.0","@types/pngjs":"^6.0.5","@types/react":"^19.0.0","@vitest/coverage-v8":"^3.2.4","@typescript-eslint/parser":"^6.14.0","@typescript-eslint/eslint-plugin":"^6.14.0"},"peerDependencies":{"ink":"^4.0.0 || ^5.0.0 || ^6.0.0","react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ink-visual-testing_1.0.1_1760780997818_0.6750176930630443","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"ink-visual-testing","version":"1.0.2","keywords":["ink","visual-testing","regression-testing","terminal","cli","canvas","snapshot"],"author":"","license":"MIT","_id":"ink-visual-testing@1.0.2","maintainers":[{"name":"hoteyes","email":"liuyunchuan7@gmail.com"}],"homepage":"https://github.com/hoteye/ink-visual-testing#readme","bugs":{"url":"https://github.com/hoteye/ink-visual-testing/issues"},"bin":{"ink-visual-testing":"dist/cli.js"},"dist":{"shasum":"dbb7b035bdc859d710b305cc5a9ed9902be8bdca","tarball":"https://registry.npmjs.org/ink-visual-testing/-/ink-visual-testing-1.0.2.tgz","fileCount":60,"integrity":"sha512-C9e6uhZlb6f5tFUCzeVPNp7FlNGl5qRhDsdU07002/KfduDVLmko2a6qxlCpw1poyCIk15lfi9c730fiZyimQw==","signatures":[{"sig":"MEYCIQCnko1zps++mxd+bBruvt1km0zwaOB1dH7Evmo5u78yZAIhAOc/GsOgR3cttGtpw/xny7vN7gDxwnXYIZOUXtOeCbbB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22716782},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"88f3595555a004849137453fa4df1ee10e0225ed","scripts":{"lint":"eslint src/**/*.ts","test":"vitest","build":"tsc","typecheck":"tsc --noEmit","test:visual":"vitest --run","test:coverage":"vitest --coverage"},"_npmUser":{"name":"hoteyes","email":"liuyunchuan7@gmail.com"},"repository":{"url":"git+https://github.com/hoteye/ink-visual-testing.git","type":"git"},"_npmVersion":"10.8.2","description":"Visual regression testing for Ink components","directories":{},"_nodeVersion":"20.19.4","dependencies":{"glob":"^11.0.3","pngjs":"^7.0.0","node-pty":"^1.0.0","commander":"^12.1.0","pixelmatch":"^7.1.0","@napi-rs/canvas":"^0.1.95","@xterm/headless":"^6.0.0","@xterm/addon-unicode11":"^0.9.0"},"_hasShrinkwrap":false,"devDependencies":{"ink":"^6.3.1","tsx":"^4.20.6","react":"^19.0.0","eslint":"^8.55.0","vitest":"^3.2.4","react-dom":"^19.0.0","typescript":"^5.3.0","@types/node":"^20.10.0","@types/pngjs":"^6.0.5","@types/react":"^19.0.0","@vitest/coverage-v8":"^3.2.4","@typescript-eslint/parser":"^6.14.0","@typescript-eslint/eslint-plugin":"^6.14.0"},"peerDependencies":{"ink":"^4.0.0 || ^5.0.0 || ^6.0.0","react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ink-visual-testing_1.0.2_1772454978078_0.7014866751083548","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"ink-visual-testing","version":"1.0.3","description":"Visual regression testing for Ink components","type":"module","main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"},"./core":{"import":"./dist/core.js","types":"./dist/core.d.ts"}},"sideEffects":false,"scripts":{"build":"tsc","test":"vitest","test:visual":"vitest --run","test:coverage":"vitest --coverage","lint":"eslint src/**/*.ts","typecheck":"tsc --noEmit"},"bin":{"ink-visual-testing":"dist/cli.js"},"dependencies":{"@napi-rs/canvas":"^0.1.95","@xterm/addon-unicode11":"^0.9.0","@xterm/headless":"^6.0.0","commander":"^12.1.0","node-pty":"^1.0.0"},"devDependencies":{"@types/node":"^20.10.0","@types/pngjs":"^6.0.5","@types/react":"^19.0.0","@typescript-eslint/eslint-plugin":"^6.14.0","@typescript-eslint/parser":"^6.14.0","@vitest/coverage-v8":"^3.2.4","eslint":"^8.55.0","glob":"^13.0.0","ink":"^6.3.1","pixelmatch":"^7.1.0","pngjs":"^7.0.0","react":"^19.0.0","react-dom":"^19.0.0","tsx":"^4.20.6","typescript":"^5.3.0","vitest":"^3.2.4"},"peerDependencies":{"glob":"^11.1.0 || ^12.0.0 || ^13.0.0","ink":"^4.0.0 || ^5.0.0 || ^6.0.0","pixelmatch":"^7.1.0","pngjs":"^7.0.0","react":"^18.0.0 || ^19.0.0"},"peerDependenciesMeta":{"glob":{"optional":true},"pixelmatch":{"optional":true},"pngjs":{"optional":true}},"engines":{"node":">=20"},"publishConfig":{"access":"public","provenance":true},"keywords":["ink","visual-testing","regression-testing","terminal","cli","canvas","snapshot"],"author":"","license":"MIT","repository":{"type":"git","url":"git+https://github.com/hoteye/ink-visual-testing.git"},"homepage":"https://github.com/hoteye/ink-visual-testing#readme","bugs":{"url":"https://github.com/hoteye/ink-visual-testing/issues"},"_id":"ink-visual-testing@1.0.3","gitHead":"73fb4e3dcfc9f38195f98a67db2c8de2e877ff87","_nodeVersion":"20.19.4","_npmVersion":"10.8.2","dist":{"integrity":"sha512-vKjH2Mx84BIwP0SjhqfW38jZcDDZBmHxM/ISEXi7UgKjv2/LPljPWt4lyKMLDr9TTH1wABXzgSO133sVRKGCQQ==","shasum":"1d87e39821e7706a4d1659ce857148e5fcfe0159","tarball":"https://registry.npmjs.org/ink-visual-testing/-/ink-visual-testing-1.0.3.tgz","fileCount":68,"unpackedSize":22724801,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCCpC5jqWHQCCb8h7hdzVVlEwswWVHzoi7D7yuexoowHQIhAIoFH1TyaVteCiaY7F0zUygEaupephFuVrCcVXn8ri83"}]},"_npmUser":{"name":"hoteyes","email":"liuyunchuan7@gmail.com"},"directories":{},"maintainers":[{"name":"hoteyes","email":"liuyunchuan7@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ink-visual-testing_1.0.3_1772511178813_0.6623984572565464"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-11T03:11:52.167Z","modified":"2026-03-03T04:12:59.538Z","0.1.0":"2025-10-11T03:11:52.586Z","0.1.1":"2025-10-11T05:57:13.147Z","0.1.2":"2025-10-11T07:45:48.837Z","0.1.3":"2025-10-11T10:06:33.999Z","0.1.4":"2025-10-12T12:52:04.237Z","0.1.5":"2025-10-12T13:42:03.151Z","0.1.6":"2025-10-12T23:55:08.831Z","0.1.7":"2025-10-12T23:58:23.098Z","0.1.9":"2025-10-13T02:20:07.076Z","0.1.10":"2025-10-13T04:21:48.056Z","0.1.11":"2025-10-13T04:25:38.731Z","0.1.12":"2025-10-13T05:01:51.383Z","0.1.13":"2025-10-13T05:25:04.079Z","0.1.14":"2025-10-13T05:31:07.789Z","0.1.15":"2025-10-13T05:51:49.761Z","0.1.16":"2025-10-13T07:36:16.611Z","0.1.17":"2025-10-13T13:37:57.952Z","0.1.18":"2025-10-13T13:53:04.406Z","0.1.19":"2025-10-15T03:15:53.008Z","0.1.20":"2025-10-15T03:47:51.715Z","0.1.21":"2025-10-15T04:56:19.048Z","0.1.22":"2025-10-15T08:02:12.667Z","0.1.23":"2025-10-17T06:51:31.186Z","0.1.24":"2025-10-17T08:29:12.131Z","0.1.25":"2025-10-17T11:19:01.329Z","0.2.0":"2025-10-17T13:11:22.936Z","0.2.1":"2025-10-17T13:17:09.864Z","0.2.2":"2025-10-17T23:19:17.592Z","0.2.3":"2025-10-17T23:20:24.287Z","0.2.4":"2025-10-18T00:07:39.936Z","0.3.0":"2025-10-18T07:49:47.413Z","1.0.0":"2025-10-18T08:01:35.572Z","1.0.1":"2025-10-18T09:49:58.171Z","1.0.2":"2026-03-02T12:36:18.834Z","1.0.3":"2026-03-03T04:12:59.413Z"},"bugs":{"url":"https://github.com/hoteye/ink-visual-testing/issues"},"license":"MIT","homepage":"https://github.com/hoteye/ink-visual-testing#readme","keywords":["ink","visual-testing","regression-testing","terminal","cli","canvas","snapshot"],"repository":{"type":"git","url":"git+https://github.com/hoteye/ink-visual-testing.git"},"description":"Visual regression testing for Ink components","maintainers":[{"name":"hoteyes","email":"liuyunchuan7@gmail.com"}],"readme":"# Ink Visual Testing\n\n[![npm version](https://img.shields.io/npm/v/ink-visual-testing.svg)](https://www.npmjs.com/package/ink-visual-testing)\n[![npm downloads](https://img.shields.io/npm/dm/ink-visual-testing.svg)](https://www.npmjs.com/package/ink-visual-testing)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)\n\nVisual regression testing for [Ink](https://github.com/vadimdemedes/ink) CLI applications with perfect emoji support.\n\n## Features\n\nVisual regression testing helps detect unexpected changes in your UI:\n\n- **Prevent Layout Issues** - Automatically detect border, alignment, and spacing problems\n- **Validate Dynamic Rendering** - Ensure UI displays correctly with different data\n- **Catch Style Changes** - Detect unexpected color, font, and style modifications\n- **Multi-State Testing** - Test loading, error, empty states, and more\n- **CI/CD Integration** - Automatically catch visual bugs before merging\n\n## Installation\n\n```bash\nnpm install ink-visual-testing --save-dev\n```\n\nIf you only need the snapshot renderer APIs (`createSnapshotFromPty`, `fixedPtyRender`) for CI integration, import from the core entry:\n\n```ts\nimport { createSnapshotFromPty, getCIOptimizedConfig } from 'ink-visual-testing/core';\n```\n\nThe higher-level helpers (`visualTest`, `batchVisualTest*`) and the CLI `test --batch`/image diff workflow rely on optional peer dependencies. Install them when using those features:\n\n```bash\nnpm install --save-dev glob pixelmatch pngjs\n```\n\n**Note:** This library has peer dependencies on `ink` and `react`. Make sure they're installed in your project:\n\n```bash\n# For Ink v4/v5 (React 18)\nnpm install ink@^4.0.0 react@^18.0.0\n\n# For Ink v6 (React 19)\nnpm install ink@^6.0.0 react@^19.0.0\n```\n\n**Supported versions:**\n- Node.js: >= 20\n- Ink: v4.x, v5.x, v6.x\n- React: v18.x, v19.x\n\n## Usage\n\n### Quick Start\n\nThere are two ways to use ink-visual-testing:\n\n1. **CLI Tool** (Recommended) - Simple command-line testing\n2. **Programmatic API** - Full control within test files\n\n### CLI Tool\n\n#### Initialize Configuration\n\n```bash\nnpx ink-visual-testing init\n```\n\nThis creates a `.ink-visual.config.js` file with default settings:\n\n```js\n// .ink-visual.config.js\nexport default {\n  preset: 'standard',         // Terminal size preset\n  maxDiffPixels: 100,         // Allowed pixel differences  \n  threshold: 0.1,             // Pixel difference threshold\n  backgroundColor: '#000000', // Terminal background\n  updateBaseline: true        // Auto-create baselines\n};\n```\n\n#### Run Tests\n\n```bash\n# Test single file\nnpx ink-visual-testing test examples/my-app.tsx\n\n# Test with preset\nnpx ink-visual-testing test --preset wide examples/my-app.tsx\n\n# Batch test multiple files\nnpx ink-visual-testing test --batch \"examples/*.tsx\"\n\n# Custom terminal size\nnpx ink-visual-testing test --cols 100 --rows 30 examples/my-app.tsx\n```\n\n#### Available Presets\n\n```bash\nnpx ink-visual-testing presets\n```\n\n**Standard sizes:**\n- `tiny` (40×15) - For minimal components\n- `narrow` (60×20) - For constrained environments  \n- `standard` (80×24) - Classic default size\n- `wide` (120×40) - For modern development\n- `ultra-wide` (160×50) - For large displays\n\n**CI/Development:**\n- `ci` (100×30) - Optimized for automation\n- `ci-narrow` (80×25) - For resource-constrained CI\n\n**Specialized:**\n- `mobile` (50×20) - For mobile terminal apps\n- `test-small` (60×15) - For focused component testing\n- `test-large` (140×45) - For comprehensive UI testing\n\n### Programmatic API\n\n#### 1. Basic Usage\n\n```tsx\nimport { describe, it } from 'vitest';\nimport React from 'react';\nimport { Box, Text } from 'ink';\nimport { visualTest } from 'ink-visual-testing';\n\n// Your Ink component\nconst Greeting = ({ name, message }) => (\n  <Box borderStyle=\"round\" borderColor=\"cyan\" padding={1}>\n    <Text>Hello, <Text bold color=\"green\">{name}</Text>!</Text>\n    <Text dimColor>{message}</Text>\n  </Box>\n);\n\ndescribe('Greeting', () => {\n  it('should render correctly', async () => {\n    // Mock data for the component\n    const mockData = {\n      name: 'Alice',\n      message: 'Welcome to Ink Visual Testing'\n    };\n\n    // One line to create a visual test\n    await visualTest('greeting', <Greeting {...mockData} />);\n  });\n});\n```\n\n**First run**: Automatically generates baseline image at `tests/__baselines__/greeting.png`\n**Subsequent runs**: Compares current output with baseline, failing if differences detected\n\n### 2. Configuration Options\n\n```tsx\nawait visualTest(\n  'component-name',      // Snapshot name\n  <MyComponent />,       // React component\n  {\n    cols: 80,                  // Terminal width (default: 80)\n    rows: 24,                  // Terminal height (default: 24)\n    maxDiffPixels: 100,        // Max allowed pixel difference (default: 100)\n    threshold: 0.1,            // Pixel diff threshold 0-1 (default: 0.1)\n    backgroundColor: '#000000' // Background color (default: black)\n  }\n);\n```\n\n### 3. Testing Different States\n\n```tsx\ndescribe('Dashboard', () => {\n  it('loading state', async () => {\n    await visualTest('dashboard-loading', <Dashboard loading={true} />);\n  });\n\n  it('loaded state', async () => {\n    const mockData = { users: 100, sales: 5000 };\n    await visualTest('dashboard-loaded', <Dashboard data={mockData} />);\n  });\n\n  it('error state', async () => {\n    await visualTest('dashboard-error', <Dashboard error=\"Network Error\" />);\n  });\n});\n```\n\n### 4. Testing with Presets\n\n```tsx\nit('different terminal sizes', async () => {\n  const mockData = { /* ... */ };\n\n  // Using presets\n  await visualTest('small', <MyApp data={mockData} />, {\n    preset: 'tiny'\n  });\n\n  await visualTest('large', <MyApp data={mockData} />, {\n    preset: 'wide'\n  });\n\n  // Override preset with custom size\n  await visualTest('custom', <MyApp data={mockData} />, {\n    preset: 'standard',\n    rows: 50  // Override preset's default rows\n  });\n});\n```\n\n### 5. Batch Testing\n\n```tsx\nimport { batchVisualTest } from 'ink-visual-testing';\n\nit('batch test multiple components', async () => {\n  const results = await batchVisualTest([\n    {\n      name: 'header',\n      componentOrPath: <Header title=\"Test\" />,\n      options: { preset: 'standard' }\n    },\n    {\n      name: 'footer', \n      componentOrPath: <Footer />,\n      options: { preset: 'narrow' }\n    }\n  ]);\n\n  // Check results\n  const failed = results.filter(r => !r.passed);\n  expect(failed).toHaveLength(0);\n});\n```\n\n### 6. Updating Baselines\n\nWhen you have **intentional** UI changes, update baselines:\n\n```bash\n# Run tests\nnpm test\n\n# Review the new generated images\nopen tests/__output__/*.png\n\n# If correct, update baselines\ncp tests/__output__/*.png tests/__baselines__/\n\n# Commit the updates\ngit add tests/__baselines__/\ngit commit -m \"Update visual baselines\"\n```\n\nOr use an npm script:\n\n```json\n{\n  \"scripts\": {\n    \"test\": \"vitest\",\n    \"baseline:update\": \"cp tests/__output__/*.png tests/__baselines__/\"\n  }\n}\n```\n\n### 6. Understanding Test Failures\n\nWhen visual tests fail, it means the UI output differs from the baseline. This catches both intentional and unintentional changes.\n\n#### Example: Detecting Unintended Changes\n\nConsider a SettingsDialog where someone accidentally modified settings values:\n\n```tsx\n// Original fixture (created baseline)\nconst mockSettings = {\n  general: { vimMode: true }\n};\n\n// Modified fixture (someone changed vimMode to false and added settings)\nconst mockSettings = {\n  general: {\n    vimMode: false,          // ← Changed!\n    disableAutoUpdate: true,  // ← Added!\n    debugKeystrokeLogging: true // ← Added!\n  }\n};\n```\n\n**Test output:**\n```bash\n$ npm test\n\n FAIL  tests/SettingsDialog.visual.test.tsx\n   × should render default settings dialog\n     → PNG diff exceeded tolerance: 777 pixels differ (allowed 500).\n        Diff saved to tests/__diff__/settings-dialog-default.png\n\n Test Files  1 failed (1)\n```\n\n**What happens:**\n\n1. **Baseline image**: Shows original UI with `vimMode: true`\n2. **Current output**: Shows modified UI with `vimMode: false` and extra settings\n3. **Diff image**: Highlights the differences in yellow/orange:\n   - \"Disable Auto Update (Modified in System)\" - highlighted\n   - \"Debug Keystroke Logging (Modified in System)\" - highlighted\n\nThe test fails with a clear message: `777 pixels differ (allowed 500)`, pinpointing exactly how many pixels changed.\n\n**How to resolve:**\n\n1. **If change was unintentional (bug):**\n   ```bash\n   # Fix the code to match the baseline\n   git diff src/components/SettingsDialog.tsx\n   # Revert the changes\n   ```\n\n2. **If change was intentional (feature):**\n   ```bash\n   # Review the diff image\n   open tests/__diff__/settings-dialog-default.png\n\n   # If correct, update baseline\n   cp tests/__output__/settings-dialog-default.png tests/__baselines__/\n\n   # Commit the new baseline\n   git add tests/__baselines__/\n   git commit -m \"Update baseline after adding new settings\"\n   ```\n\n**Key insight:** The diff image makes it obvious what changed, helping you decide if it's a bug or an intentional improvement!\n\n#### Real Failure Examples\n\nLet's examine two concrete scenarios where visual tests catch problems:\n\n**Example 1: Content Difference - Text Changed**\n\nSomeone modified the file count in a success message:\n\n```tsx\n// Baseline fixture\n<Text dimColor>\n  Files processed: 10\n</Text>\n\n// Modified fixture (accidentally changed)\n<Text dimColor>\n  Files processed: 25 (DIFFERENT!)\n</Text>\n```\n\n**Test output:**\n```bash\n$ npm test\n\n FAIL  tests/VisualFailure.demo.test.tsx\n   × should detect content difference (extra text)\n     → PNG diff exceeded tolerance: 299 pixels differ (allowed 100).\n        Diff saved to tests/__diff__/message-box-content.png\n```\n\n**Visual comparison:**\n- **Baseline**: Shows \"Files processed: 10\"\n- **Output**: Shows \"Files processed: 25 (DIFFERENT!)\"\n- **Diff**: Highlights \"25 (DIFFERENT!)\" in red/yellow - clearly showing the text change\n\n**299 pixels changed** because the characters \"25 (DIFFERENT!)\" replaced \"10\", affecting approximately that many pixels.\n\n---\n\n**Example 2: Color Difference - Styling Changed**\n\nSomeone changed the color of a status indicator from yellow to cyan:\n\n```tsx\n// Baseline fixture\n<Text bold color=\"yellow\">\n  Active\n</Text>\n\n// Modified fixture (color accidentally changed)\n<Text bold color=\"cyan\">\n  Active\n</Text>\n```\n\n**Test output:**\n```bash\n$ npm test\n\n FAIL  tests/VisualFailure.demo.test.tsx\n   × should detect color difference (cyan vs yellow)\n     → PNG diff exceeded tolerance: 178 pixels differ (allowed 50).\n        Diff saved to tests/__diff__/status-box-color.png\n```\n\n**Visual comparison:**\n- **Baseline**: \"Active\" rendered in yellow color\n- **Output**: \"Active\" rendered in cyan color\n- **Diff**: Highlights the entire word \"Active\" in red - showing every pixel of the word changed color\n\n**178 pixels changed** because each character pixel in \"Active\" has a different RGB value (yellow vs cyan).\n\n---\n\n#### Understanding Diff Colors\n\nThe diff image uses these colors:\n- **Gray background**: Identical pixels (darkened for contrast)\n- **Yellow/Orange**: Small differences (anti-aliasing, slight shifts)\n- **Red**: Significant differences (different text, different colors)\n\n**More red/yellow = more pixels changed = larger visual difference**\n\n## Best Practices\n\n### Key Points\n\n1. **Use Fixed Mock Data**\n   ```tsx\n   // Good: Fixed data\n   const mockData = {\n     timestamp: '2024-01-15 10:30:00',\n     count: 42\n   };\n\n   // Bad: Dynamic data (different every time)\n   const mockData = {\n     timestamp: new Date().toISOString(),\n     count: Math.random()\n   };\n   ```\n\n2. **Create Separate Tests for Each State**\n   ```tsx\n   // Good: Separate tests\n   it('empty state', () => visualTest('empty', <List items={[]} />));\n   it('with data', () => visualTest('with-data', <List items={mock} />));\n\n   // Bad: Reusing names\n   it('list', () => {\n     visualTest('list', <List items={[]} />);\n     visualTest('list', <List items={mock} />); // Name conflict!\n   });\n   ```\n\n3. **Set Appropriate Tolerance**\n   - Static content (logos, icons): `maxDiffPixels: 0` (strict)\n   - Simple layouts: `maxDiffPixels: 100` (default)\n   - Complex layouts: `maxDiffPixels: 500` (lenient)\n\n4. **Ignore Generated Files**\n   ```gitignore\n   # .gitignore\n   tests/__output__/    # Test output\n   tests/__diff__/      # Diff images\n   tests/__temp__/      # Temporary files\n\n   # Baseline images should be committed\n   !tests/__baselines__/\n   ```\n\n### CI/CD Configuration\n\n```yaml\n# .github/workflows/test.yml\nname: Visual Tests\n\non: [push, pull_request]\n\njobs:\n  test:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v4\n      - uses: actions/setup-node@v4\n        with:\n          node-version: '20'\n\n      - run: npm ci\n      - run: npm test\n\n      - name: Upload diff images on failure\n        if: failure()\n        uses: actions/upload-artifact@v4\n        with:\n          name: visual-diffs\n          path: tests/__diff__/*.png\n```\n\n### Keep Snapshot Dimensions Stable\n\n- **Measure once, reuse everywhere** – Run your render script manually and capture the PTY output to learn the exact character size of the UI. For example:\n  ```bash\n  npx tsx render-settings-dialog.tsx > captured-pty-data.txt\n  node -e \"import fs from 'fs'; import strip from 'strip-ansi'; const lines = strip(fs.readFileSync('captured-pty-data.txt','utf8')).split('\\\\n'); console.log({ cols: Math.max(...lines.map(l => l.length)), rows: lines.length });\"\n  ```\n  Use the reported `cols`/`rows` as your minimum terminal size.\n- **Share a snapshot config** – Define a single object that freezes every dimension-sensitive option (`cols`, `rows`, `margin`, `fontFamily`, `emojiFontKey`) and reuse it in all tests and in CI:\n  ```ts\n  const sharedSnapshotConfig = {\n    ...getCIOptimizedConfig({\n      baseFont: 'bundled',\n      emojiFontKey: 'system',\n    }),\n    cols: 80,\n    rows: 24,\n    margin: 12,\n  } satisfies Partial<NodePtySnapshotOptions>;\n  ```\n  Then spread `sharedSnapshotConfig` into every `createSnapshotFromPty` call.\n- **Controlled baseline updates** – Use `UPDATE_SNAPSHOTS=1` when you intentionally refresh baselines. By default, test runs write current output to `tests/__output__/` and diffs to `tests/__diff__/`, while committed references stay in `tests/__baselines__/`.\n- **Document overrides** – If a test needs a different size (e.g. small vs. large terminal), record the reasoning in code comments and keep those values constant between baseline generation and CI runs.\n- **Keep margins fixed** – Keep `margin` consistent between local and CI runs so image geometry stays stable.\n\n## API Reference\n\n### CLI Commands\n\n```bash\n# Initialize configuration\nnpx ink-visual-testing init\n\n# Run tests\nnpx ink-visual-testing test [options] <testFiles...>\n\n# List presets  \nnpx ink-visual-testing presets\n\n# Help\nnpx ink-visual-testing --help\n```\n\n**Test Options:**\n- `--preset <name>` - Terminal preset (tiny, standard, wide, etc.)\n- `--cols <number>` - Terminal columns\n- `--rows <number>` - Terminal rows  \n- `--config <file>` - Configuration file path\n- `--update-baseline` - Update baseline if missing\n- `--batch` - Batch mode for better performance\n\n### Programmatic API\n\n#### Core Functions\n\n```tsx\nimport { \n  visualTest,\n  batchVisualTest,\n  batchVisualTestFromFiles,\n  loadConfig,\n  getTerminalPreset \n} from 'ink-visual-testing';\n\n// Basic visual test\nawait visualTest(name, componentOrPath, options?);\n\n// Batch testing\nconst results = await batchVisualTest(testCases);\n\n// Batch from file patterns\nconst results = await batchVisualTestFromFiles(['tests/*.tsx']);\n\n// Load configuration \nconst config = await loadConfig();\n\n// Get preset details\nconst preset = getTerminalPreset('wide');\n```\n\nFor minimal runtime surface in larger monorepos, prefer:\n\n```ts\nimport {\n  createSnapshotFromPty,\n  fixedPtyRender,\n  getCIOptimizedConfig\n} from 'ink-visual-testing/core';\n```\n\n#### Types\n\n```tsx\ninterface VisualTestOptions {\n  preset?: string;           // Terminal preset name\n  cols?: number;            // Terminal columns\n  rows?: number;            // Terminal rows\n  maxDiffPixels?: number;   // Max allowed diff pixels\n  threshold?: number;       // Pixel difference threshold 0-1\n  backgroundColor?: string; // Background color\n  updateBaseline?: boolean; // Auto-create baselines\n}\n\ninterface BatchTestCase {\n  name: string;\n  componentOrPath: React.ReactElement | string;\n  options?: VisualTestOptions;\n}\n\ninterface BatchTestResult {\n  name: string;\n  passed: boolean;\n  error?: string;\n  duration: number;\n}\n\ninterface TerminalPreset {\n  cols: number;\n  rows: number; \n  description: string;\n}\n```\n\n#### Configuration Files\n\nConfiguration is automatically loaded from:\n1. `.ink-visual.config.js`\n2. `.ink-visual.config.mjs`\n3. `.lokirc`\n4. `.lokirc.json`\n\n```js\n// .ink-visual.config.js\nexport default {\n  preset: 'standard',\n  maxDiffPixels: 100,\n  threshold: 0.1,\n  backgroundColor: '#000000',\n  updateBaseline: true\n};\n```\n\n#### Available Presets\n\n```tsx\nimport { TERMINAL_PRESETS, listTerminalPresets } from 'ink-visual-testing';\n\n// Get all presets\nconst presets = listTerminalPresets();\n\n// Access preset definitions\nconst standardPreset = TERMINAL_PRESETS.standard; // { cols: 80, rows: 24, description: \"...\" }\n```\n\n### Project Structure\n\nRecommended directory structure:\n\n```\nyour-project/\n├── src/\n│   └── components/\n│       └── MyComponent.tsx     # Your Ink component\n├── tests/\n│   ├── simple-box-auto.test.ts # Visual test entry\n│   ├── utils/                  # Shared helpers (diffing, snapshots, etc.)\n│   │   ├── imageDiff.ts\n│   │   └── visualSnapshot.ts\n│   ├── vitest.setup.ts         # Test environment setup\n│   ├── __baselines__/          # Baseline images (commit to Git)\n│   │   ├── my-component.png\n│   │   └── my-component-loading.png\n│   ├── __output__/             # Test output (Git ignore)\n│   └── __diff__/               # Diff images (Git ignore)\n└── package.json\n```\n\n## Maintenance & Long-term Benefits\n\n### Initial Setup Effort\n\nThe effort required depends on component complexity:\n\n#### Simple Components (No Context Dependencies)\n\n**Example:** Basic message box without Context Providers\n\n```tsx\n// tests/fixtures/simple-message.tsx\nimport React from 'react';\nimport { render, Box, Text } from 'ink';\n\nrender(\n  <Box borderStyle=\"round\" padding={1}>\n    <Text>Success!</Text>\n  </Box>\n);\n```\n\n```tsx\n// tests/SimpleMessage.visual.test.tsx\nimport { visualTest } from 'ink-visual-testing';\n\nit('renders simple message', async () => {\n  await visualTest('simple-message', './tests/fixtures/simple-message.tsx', {\n    cols: 80, rows: 20\n  });\n});\n```\n\n**Effort:** ~33 lines of code\n\n#### Complex Components (With Context Providers)\n\n**Example:** Settings dialog with VimModeProvider and KeypressProvider\n\n```tsx\n// tests/fixtures/settings-dialog-default.tsx\nimport { useEffect } from 'react';\nimport { render } from 'ink';\nimport { SettingsDialog } from '../../src/components/SettingsDialog.js';\nimport { VimModeProvider } from '../../src/contexts/VimModeContext.js';\nimport { KeypressProvider } from '../../src/contexts/KeypressContext.js';\n\nconst mockSettings = createMockSettings({\n  general: { vimMode: true }\n});\n\nconst SettingsDialogWrapper = () => {\n  useEffect(() => {\n    const timer = setTimeout(() => process.exit(0), 1000);\n    return () => clearTimeout(timer);\n  }, []);\n\n  return <SettingsDialog settings={mockSettings} onSelect={() => {}} />;\n};\n\nconst { unmount } = render(\n  <VimModeProvider settings={mockSettings}>\n    <KeypressProvider kittyProtocolEnabled={false}>\n      <SettingsDialogWrapper />\n    </KeypressProvider>\n  </VimModeProvider>\n);\n\nprocess.on('SIGINT', () => {\n  unmount();\n  process.exit(0);\n});\n```\n\n**Effort for 7 test scenarios:** ~483 lines of code\n\nBut this is a **one-time investment** with continuous benefits!\n\n### Maintenance Cost When Components Change\n\n| Change Type | What to Update | Frequency |\n|------------|----------------|-----------|\n| **Add new option/feature** | Only baseline images | Common (80%) |\n| **Style/layout changes** | Only baseline images | Common |\n| **Add new test scenario** | 1 new fixture file | Occasional |\n| **Modify component props** | Batch find-replace in fixtures | Rare |\n| **Change Context structure** | All fixture files | Very rare |\n\n**Key insight:** Most changes (80%) only require updating baseline images—typically just a quick review before approving visual changes!\n\n### Why \"One-time Setup, Continuous Benefits\"?\n\n#### 1. Test Files Never Change\nThe test logic remains stable:\n```tsx\nawait visualTest('component-name', './fixtures/component.tsx', options);\n```\nYou only add new tests when adding new scenarios.\n\n#### 2. Fixtures Rarely Change\nMost UI changes don't require fixture modifications:\n- Adding new UI elements: No fixture changes needed\n- Changing colors/styles: No fixture changes needed\n- Modifying layout: No fixture changes needed\n- Changing component API: Quick batch find-replace\n- Adding Context Providers: One-time update to all fixtures\n\n#### 3. Baseline Updates Are Fast\n```bash\n# Run tests to see what changed\nnpm test\n\n# If changes look correct, update baselines\ncp tests/__output__/*.png tests/__baselines__/\n\n# Commit the updates\ngit add tests/__baselines__/\ngit commit -m \"Update baselines after adding dark mode\"\n```\n\nThis takes **1-2 minutes** vs. 15+ minutes of manual testing!\n\n#### 4. Automated Regression Detection\nOnce set up, every PR automatically checks for visual regressions:\n- Catches unintended UI changes\n- Prevents layout bugs\n- Ensures consistent rendering across environments\n- No manual testing needed\n\n### Tips for Minimizing Maintenance\n\n**1. Reuse Mock Data**\n```tsx\n// tests/mocks/settings.ts\nexport const defaultSettings = createMockSettings({ ... });\nexport const vimEnabledSettings = createMockSettings({ general: { vimMode: true } });\n\n// In fixtures, just import and use\nimport { defaultSettings } from '../mocks/settings';\n```\n\n**2. Use a Fixture Template**\nCreate a base fixture and copy/modify for new scenarios:\n```tsx\n// tests/fixtures/_template.tsx\nimport { useEffect } from 'react';\nimport { render } from 'ink';\nimport { MyComponent } from '../../src/MyComponent';\nimport { AllNecessaryProviders } from './providers';\n\nconst FixtureWrapper = () => {\n  useEffect(() => {\n    const timer = setTimeout(() => process.exit(0), 1000);\n    return () => clearTimeout(timer);\n  }, []);\n\n  return <MyComponent {...mockProps} />;\n};\n\nrender(\n  <AllNecessaryProviders>\n    <FixtureWrapper />\n  </AllNecessaryProviders>\n);\n```\n\n**3. Automate Baseline Updates**\n```json\n{\n  \"scripts\": {\n    \"test:visual\": \"vitest --run tests/*.visual.test.tsx\",\n    \"baseline:update\": \"cp tests/__output__/*.png tests/__baselines__/\",\n    \"baseline:review\": \"open tests/__output__/*.png\"\n  }\n}\n```\n\n## Advanced Usage\n\n### Lower-Level API\n\nIf you need more control, use the lower-level API:\n\n```tsx\nimport { fixedPtyRender, getCIOptimizedConfig } from 'ink-visual-testing';\nimport path from 'node:path';\n\n// Render CLI app to PNG\nawait fixedPtyRender(\n  path.resolve('examples/my-cli.tsx'),\n  'output.png',\n  {\n    ...getCIOptimizedConfig(),\n    cols: 120,\n    rows: 60\n  }\n);\n```\n\n### Font Configuration\n\nUses bundled DejaVu Sans Mono by default so snapshots look the same locally and in CI. To adjust emoji or base fonts:\n\n```tsx\nimport { getCIOptimizedConfig } from 'ink-visual-testing';\n\n// Recommended: Use bundled fonts for cross-platform consistency\ngetCIOptimizedConfig();        // Default: bundled Noto emoji + DejaVu Sans Mono\ngetCIOptimizedConfig('noto');  // Explicit: color vector emoji (same as default)\ngetCIOptimizedConfig('color'); // Alternative: color bitmap emoji\n\n// Use system fonts (may differ across Mac/Linux/Windows)\ngetCIOptimizedConfig({ emojiFontKey: 'system', baseFont: 'system' });\n```\n\n> **Important for Cross-Platform Consistency:**\n> - **Default (`'noto'`)**: Uses bundled NotoEmoji-Regular.ttf (color vector emoji) + DejaVu Sans Mono. **Ensures identical rendering on Mac, Linux, Windows, and CI.**\n> - **System fonts**: Mac uses Apple Color Emoji, Linux uses Noto Color Emoji, Windows uses Segoe UI Emoji. **Will produce different baselines on different platforms.**\n> - **Recommendation**: Always use bundled fonts (`getCIOptimizedConfig()` or `getCIOptimizedConfig('noto')`) to ensure your local baselines match CI output.\n\n**Bundled fonts**\n- DejaVu Sans Mono (Bitstream Vera License)\n- NotoColorEmoji (SIL Open Font License)\n- NotoEmoji-Regular (SIL Open Font License)\n- TwemojiMozilla (Mozilla Public License)\n- GNU Unifont (GNU GPLv2 with font embedding exception)\n\n## Examples\n\n### Quick Start Examples\n\nSee `examples/` directory for basic examples:\n\n- `examples/dashboard.tsx` - Complex dashboard layout with emoji and various layouts\n- `examples/dashboard-cli.tsx` - CLI entry point\n- `examples/dashboard-snapshot.tsx` - Snapshot generation script\n- `examples/emoji-stress-ui.tsx` - Emoji-heavy table layout for border alignment checks\n- `examples/emoji-stress-cli.tsx` - CLI entry for emoji stress test\n\nRun examples:\n```bash\n# View live rendering\nnpx tsx examples/dashboard-cli.tsx\n\n# Generate snapshot\nnpx tsx examples/dashboard-snapshot.tsx\n\n# Render emoji stress test snapshot\nnode --input-type=module -e \"import path from 'node:path'; import { fixedPtyRender, getCIOptimizedConfig } from './dist/index.js'; await fixedPtyRender(path.resolve('examples/emoji-stress-cli.tsx'), path.resolve('tests/__output__/emoji-stress.png'), { cols: 110, rows: 42, ...getCIOptimizedConfig() });\"\n```\n\n### Real-World Integration Example\n\nFor a complete, production-ready example showing how to integrate `ink-visual-testing` into an existing project with complex components, see:\n\n**[Real-World Integration Guide](examples/real-world-integration/README.md)**\n\nThis example demonstrates:\n- ✅ Testing a complex Settings Dialog component with 6 test cases\n- ✅ Handling Context Providers (VimModeProvider, KeypressProvider)\n- ✅ Creating reusable test helpers\n- ✅ Proper mock data structure for stateful components\n- ✅ Testing different terminal sizes and states\n- ✅ WSL/CI compatibility best practices\n- ✅ Complete troubleshooting guide\n\nPerfect for understanding how to use `ink-visual-testing` in real projects!\n\n## License\n\nMIT License. See [LICENSE](LICENSE) for details.\n\n## Contributing\n\nContributions welcome! Please check [GitHub Issues](https://github.com/hoteye/ink-visual-testing/issues).\n","readmeFilename":"README.md"}