{"_id":"jscanify","_rev":"12-55a59276dc222ae95166f4ececb3cdd1","name":"jscanify","dist-tags":{"latest":"1.4.3"},"versions":{"1.0.0":{"name":"jscanify","version":"1.0.0","keywords":["js","scanner","document-scanner"],"author":{"name":"ColonelParrot"},"license":"MIT","_id":"jscanify@1.0.0","maintainers":[{"name":"colonelparrot","email":"npm.cpt@gmail.com"}],"homepage":"https://colonelparrot.github.io/jscanify/","bugs":{"url":"https://github.com/ColonelParrot/jscanify/issues"},"dist":{"shasum":"db17d0549716def0742996c6551fcb6e0dac913f","tarball":"https://registry.npmjs.org/jscanify/-/jscanify-1.0.0.tgz","fileCount":18,"integrity":"sha512-mNh1pDdq3hmSQ0f1ivuz7Dmy+/OKi7Q1qSQKfDVRiWUd9QnhU5yFAauYqSGV7tNg2TwJiD9xy0oGEIQzLlLGTA==","signatures":[{"sig":"MEUCIAgvWwwAZyGa7VoePz23OA35duMxHAS/qXB+mMHnjpkkAiEAqmffDoGJPUgn3P+HLF2bncdwXZhdka/Nw0vSpAjhhIg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2124982,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkOfGgACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp5BQ//bCfW176iYe2Tb3WxI2gKdnMjueLnu7EMUW5j2s494W5IwB34\r\ndPR0MlQ197mLfo83rjBvFdVC4b2GuB6HmFaa9mMClnXjEuiiAnvi5jTjM1Ln\r\nh8v+HuKj5jxKF8NGnulpAK6nA6XRQ3QKpLNm2wlrpgrzJWkbHbBeawApQLL4\r\nJw1R555X7TgrYsM5lmMh/FE2fKk5mQMG5xvgW0boCZUUScwtQwsw1XfWE2DK\r\n9ZP5I6rxGL3pXc7Bc4qXZvGAQOEfdIYa88ao6Aob9pKz2Qaxx5cHgzOEx7TE\r\nGuq8TJQIDLhRW3OyzDq3NAJWQQ1eBgC8lVmmHsy4q82O2gNDKRN28KQb82iB\r\nfDS4ucOzUjaxTzl2Zn8fyigRqDkWPKRKt+LevaWBGvhzxgkE8FEbtvep/mGw\r\nSAmFGTgqypyFzDyHnIAilFxFeosSygpr80bNkGWvGYLCKIzRG6HE6fkbVV2R\r\ncS0kVxjgOKipUHZIQ5f+BxNc7NWnlo2Or1SD2FIhi7qwEYOnAZdv9aQvWkoV\r\nBLFxtXBuC0b0L+6OHUz3Z5XIzOsf+VxGkINkoXRFGU5I9MJfhmGSA7lCD0aZ\r\naW8SP5AMT51So5JeaiIsT2MiOx5YS/AIyLJqYbE/oc1eWco/clpCdM2PAHhD\r\nHXows6Cz5Cfev5doMscqEWzNJ/A04xUv0nw=\r\n=/B07\r\n-----END PGP SIGNATURE-----\r\n"},"main":"src/jscanify.js","gitHead":"d314df8c9590ea1133b1a0890da6af5690403c35","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"colonelparrot","email":"npm.cpt@gmail.com"},"repository":{"url":"git+https://github.com/ColonelParrot/jscanify.git","type":"git"},"_npmVersion":"8.15.0","description":"Open-source Javascript mobile document scanner.","directories":{"doc":"docs"},"_nodeVersion":"16.15.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/jscanify_1.0.0_1681519008515_0.16429098352798888","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"jscanify","version":"1.1.0","keywords":["js","scanner","document-scanner"],"author":{"name":"ColonelParrot"},"license":"MIT","_id":"jscanify@1.1.0","maintainers":[{"name":"colonelparrot","email":"npm.cpt@gmail.com"}],"homepage":"https://colonelparrot.github.io/jscanify/","bugs":{"url":"https://github.com/ColonelParrot/jscanify/issues"},"dist":{"shasum":"58324c97716c744b699de0275c3bd06f5f8805d0","tarball":"https://registry.npmjs.org/jscanify/-/jscanify-1.1.0.tgz","fileCount":24,"integrity":"sha512-WI+HCdJCA6JziRRdDJ100t2Mciqb0itqXSxqioAyQv2g/xcyq++UJ5MDRwmae8dOE551xLlKMD+AQFyaM4GjoQ==","signatures":[{"sig":"MEUCIBR0Eb17zr7cHHfqlXhTIO1uDWEl62oKpZjCqtLelsAnAiEA6CxH+5wJzJPmbYbBtwMQ1Vr+n8SlHuYfjYbMVQ5JrpI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11734662},"main":"src/jscanify-node.js","gitHead":"42f9ea237a344ea6497b3cff825e10d58198c520","scripts":{"test":"mocha"},"_npmUser":{"name":"colonelparrot","email":"npm.cpt@gmail.com"},"repository":{"url":"git+https://github.com/ColonelParrot/jscanify.git","type":"git"},"_npmVersion":"8.15.0","description":"Open-source Javascript mobile document scanner.","directories":{"doc":"docs"},"_nodeVersion":"16.17.1","dependencies":{"jsdom":"^22.0.0","mocha":"^10.2.0","canvas":"^2.11.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/jscanify_1.1.0_1683581761539_0.936993885498381","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"jscanify","version":"1.2.0","keywords":["js","scanner","document-scanner"],"author":{"name":"ColonelParrot"},"license":"MIT","_id":"jscanify@1.2.0","maintainers":[{"name":"colonelparrot","email":"npm.cpt@gmail.com"}],"homepage":"https://colonelparrot.github.io/jscanify/","bugs":{"url":"https://github.com/ColonelParrot/jscanify/issues"},"dist":{"shasum":"13418103b7f4bdaf94a07d5f1f4f4355e784c938","tarball":"https://registry.npmjs.org/jscanify/-/jscanify-1.2.0.tgz","fileCount":23,"integrity":"sha512-IuQ0j1mZ0yJa+0vB9/zhk+dZtOcI3FbfLIoKfHcTQtWGItcalCJDSMSHKp4Ok1+Tg4122newXHnZyE7g8kRAmg==","signatures":[{"sig":"MEUCIQCEtDitzfnG6hKsVNu/Z9MQ/PEFTRtQ1QOhWjlffuUUUwIgEpHS4VOjR69ghxxlSQGbQtdk3Rb9EQCa7pDYEVHCJ1w=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11735813},"main":"src/jscanify-node.js","gitHead":"0cc64a2fda52f945a4939de7b35f218c5982c26f","scripts":{"test":"mocha"},"_npmUser":{"name":"colonelparrot","email":"npm.cpt@gmail.com"},"repository":{"url":"git+https://github.com/ColonelParrot/jscanify.git","type":"git"},"_npmVersion":"8.15.0","description":"Open-source Javascript mobile document scanner.","directories":{"doc":"docs"},"_nodeVersion":"16.17.1","dependencies":{"jsdom":"^22.0.0","mocha":"^10.2.0","canvas":"^2.11.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/jscanify_1.2.0_1683748105614_0.18318504753257714","host":"s3://npm-registry-packages"}},"1.3.0":{"name":"jscanify","version":"1.3.0","keywords":["js","scanner","document-scanner"],"author":{"name":"ColonelParrot"},"license":"MIT","_id":"jscanify@1.3.0","maintainers":[{"name":"colonelparrot","email":"npm.cpt@gmail.com"}],"homepage":"https://colonelparrot.github.io/jscanify/","bugs":{"url":"https://github.com/puffinsoft/jscanify/issues"},"dist":{"shasum":"9ea513950821e8705acd5c629fb458c7d988a517","tarball":"https://registry.npmjs.org/jscanify/-/jscanify-1.3.0.tgz","fileCount":31,"integrity":"sha512-ExXzQawp0+ZgCBg2++ATp4mI/WRn8NkZuhmBm09aT7ZmU5LWmhYOX86/PR244eUvjV9IGFO7IaIANMfNXe85Vg==","signatures":[{"sig":"MEYCIQD38CYYY1AZ9K+r7UGeCwljiQX+IqCGv5UCEnFnh1OtsAIhAOvxpMTIZcDKYy+IjEeKUZN3CrbQt5tUNQOjjifn2dhl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24376507},"main":"src/jscanify-node.js","gitHead":"42f28b2bc8593aa8c38781fd56ad0a9ed4084783","scripts":{"test":"mocha --trace-uncaught"},"_npmUser":{"name":"colonelparrot","email":"npm.cpt@gmail.com"},"repository":{"url":"git+https://github.com/puffinsoft/jscanify.git","type":"git"},"_npmVersion":"10.2.4","description":"Open-source Javascript mobile document scanner.","directories":{"doc":"docs"},"_nodeVersion":"20.11.1","dependencies":{"jsdom":"^22.0.0","mocha":"^10.2.0","canvas":"^2.11.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/jscanify_1.3.0_1738011833367_0.10696367295819686","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"jscanify","version":"1.3.1","keywords":["js","scanner","document-scanner"],"author":{"name":"ColonelParrot"},"license":"MIT","_id":"jscanify@1.3.1","maintainers":[{"name":"colonelparrot","email":"npm.cpt@gmail.com"}],"homepage":"https://colonelparrot.github.io/jscanify/","bugs":{"url":"https://github.com/puffinsoft/jscanify/issues"},"dist":{"shasum":"4be4c5bceb7c8997bf22b26693d7d0c1f0f53c5b","tarball":"https://registry.npmjs.org/jscanify/-/jscanify-1.3.1.tgz","fileCount":32,"integrity":"sha512-uCEgA+d9diJ+UMGUOEak8uKOBcVqjAx2Uzz+GI9XnC8n5UCy0XUG7eSIOl7QEzrUx1FZBPFo2IAbfHSEib7xzg==","signatures":[{"sig":"MEYCIQDfYSUHxU3GlWEFHv+stzYsuVuUYZuCaFvQ8rpqMfRTLwIhAM9wXqvJll9iIblcqQBqfKT7BpQf1Me8hQ5XFg+/KjVS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24435626},"main":"src/jscanify-node.js","gitHead":"e45ad55c3ec3b687b7fee9a156a5f5b3f724b842","scripts":{"test":"mocha --trace-uncaught"},"_npmUser":{"name":"colonelparrot","email":"npm.cpt@gmail.com"},"repository":{"url":"git+https://github.com/puffinsoft/jscanify.git","type":"git"},"_npmVersion":"10.2.4","description":"Open-source Javascript mobile document scanner.","directories":{"doc":"docs"},"_nodeVersion":"20.11.1","dependencies":{"jsdom":"^22.0.0","mocha":"^10.2.0","canvas":"^2.11.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/jscanify_1.3.1_1738013855446_0.4288429375711471","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"jscanify","version":"1.3.2","keywords":["js","scanner","document-scanner"],"author":{"name":"ColonelParrot"},"license":"MIT","_id":"jscanify@1.3.2","maintainers":[{"name":"colonelparrot","email":"npm.cpt@gmail.com"}],"homepage":"https://colonelparrot.github.io/jscanify/","bugs":{"url":"https://github.com/puffinsoft/jscanify/issues"},"dist":{"shasum":"05967cb3088554cabc0bf3c7cc1d9ee8d24e1970","tarball":"https://registry.npmjs.org/jscanify/-/jscanify-1.3.2.tgz","fileCount":35,"integrity":"sha512-4HdMdS15ZDacuj6nPkBQfW4XuKJHORfWhcaM0NAOUQPqyKX9EDF4tvC0dN8o5AylacJ7tqtOV8EWVooNVnXtuA==","signatures":[{"sig":"MEQCIB5PmrI1X0oj/27wWjpd7/HGoccRGEcUto6Aw4DVBl5NAiBzQ6flenWQcf5qMvoeV2nzTBma/jPAJ0w/DtukAy42Uw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30421755},"main":"src/jscanify-node.js","gitHead":"04b2d3a4c549a40878d291f8a4cdcb5bf48c0642","scripts":{"test":"mocha --trace-uncaught"},"_npmUser":{"name":"colonelparrot","email":"npm.cpt@gmail.com"},"repository":{"url":"git+https://github.com/puffinsoft/jscanify.git","type":"git"},"_npmVersion":"10.2.4","description":"Open-source Javascript mobile document scanner.","directories":{"doc":"docs"},"_nodeVersion":"20.11.1","dependencies":{"jsdom":"^22.0.0","mocha":"^10.2.0","canvas":"^2.11.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/jscanify_1.3.2_1738026269626_0.6067229391844102","host":"s3://npm-registry-packages-npm-production"}},"1.3.3":{"name":"jscanify","version":"1.3.3","keywords":["js","scanner","document-scanner"],"author":{"name":"ColonelParrot"},"license":"MIT","_id":"jscanify@1.3.3","maintainers":[{"name":"colonelparrot","email":"npm.cpt@gmail.com"}],"homepage":"https://colonelparrot.github.io/jscanify/","bugs":{"url":"https://github.com/puffinsoft/jscanify/issues"},"dist":{"shasum":"24e849b438b68ccd952bdfadbada60bc318eb867","tarball":"https://registry.npmjs.org/jscanify/-/jscanify-1.3.3.tgz","fileCount":35,"integrity":"sha512-AoBvMQqVxYD/O/M7O831cMtvH43SRmPuQK9WEnv4QxZzlAy/r3R65QkMVswcIxQhe6VICnB8tliXvyZQuLrZFw==","signatures":[{"sig":"MEQCIAQ3St+/Yku2a5CFTTXcWSwvuVUgpRHYXEF9PlfUnvWrAiBY2MklZPf+b+bxs7CkgiB6HgyU/LByGJ6grf3vGGR9bQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30422351},"main":"src/jscanify-node.js","gitHead":"57bf40f3fb78f23d19952de0d006865500188f47","scripts":{"test":"mocha --trace-uncaught"},"_npmUser":{"name":"colonelparrot","email":"npm.cpt@gmail.com"},"repository":{"url":"git+https://github.com/puffinsoft/jscanify.git","type":"git"},"_npmVersion":"10.2.4","description":"Open-source Javascript mobile document scanner.","directories":{"doc":"docs"},"_nodeVersion":"20.11.1","dependencies":{"jsdom":"^22.0.0","mocha":"^10.2.0","canvas":"^2.11.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/jscanify_1.3.3_1738462282721_0.8018713452024364","host":"s3://npm-registry-packages-npm-production"}},"1.3.4":{"name":"jscanify","version":"1.3.4","keywords":["js","scanner","document-scanner"],"author":{"name":"ColonelParrot"},"license":"MIT","_id":"jscanify@1.3.4","maintainers":[{"name":"colonelparrot","email":"npm.cpt@gmail.com"}],"homepage":"https://colonelparrot.github.io/jscanify/","bugs":{"url":"https://github.com/puffinsoft/jscanify/issues"},"dist":{"shasum":"b1ad4b439ab74dbe8c7223aad04f7af91981a716","tarball":"https://registry.npmjs.org/jscanify/-/jscanify-1.3.4.tgz","fileCount":35,"integrity":"sha512-JdtVtEH2kmZnLPkBFB2SNDVT0VGETBq+vTDZG6JU3R8j7mSjPTP2ZSd0VWq8/76p4AlTBHb7UI+RWvw67sMWdA==","signatures":[{"sig":"MEYCIQCJVw1FJvBnKhZNiJSK/5YE+a0LyGJg9JQU2PIQ2GTWKgIhAMINdZuG+//ZlsYoNx1vW311rZfzHwPKjqlx96SIa4LV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30422350},"main":"src/jscanify-node.js","gitHead":"b4e68b12c9715e7f15f1703b327445f13866cb9e","scripts":{"test":"mocha --trace-uncaught"},"_npmUser":{"name":"colonelparrot","email":"npm.cpt@gmail.com"},"repository":{"url":"git+https://github.com/puffinsoft/jscanify.git","type":"git"},"_npmVersion":"10.2.4","description":"Open-source Javascript mobile document scanner.","directories":{"doc":"docs"},"_nodeVersion":"20.11.1","dependencies":{"jsdom":"^26.0.0","mocha":"^11.1.0","canvas":"^3.1.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/jscanify_1.3.4_1738473067081_0.7141105889276369","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"jscanify","version":"1.4.0","keywords":["js","scanner","document-scanner"],"author":{"name":"ColonelParrot"},"license":"MIT","_id":"jscanify@1.4.0","maintainers":[{"name":"colonelparrot","email":"npm.cpt@gmail.com"}],"homepage":"https://colonelparrot.github.io/jscanify/","bugs":{"url":"https://github.com/puffinsoft/jscanify/issues"},"dist":{"shasum":"3533ee23eec37e990137519c759d0839120994f6","tarball":"https://registry.npmjs.org/jscanify/-/jscanify-1.4.0.tgz","fileCount":35,"integrity":"sha512-5wVTrZfQOBoxNeHcP5n971xHGm61126XvurKNPZs8bFg07z2KDp32fVyGk1bOFWDNn526ZP3fc7bYlm/Oiwz8w==","signatures":[{"sig":"MEYCIQDKGNe08Kx84Cnrgl8QQUPDZSUAN6HjmPTs6/HW4aIR4gIhAJHo15DEHv18MN0gdtlMWlT033MuRQK2ePN3cEJTnmai","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30422742},"main":"src/jscanify-node.js","gitHead":"3f4b902c48ba5a29716ae0bdab9707897d59ee9e","scripts":{"test":"mocha --trace-uncaught"},"_npmUser":{"name":"colonelparrot","email":"npm.cpt@gmail.com"},"repository":{"url":"git+https://github.com/puffinsoft/jscanify.git","type":"git"},"_npmVersion":"10.9.2","description":"Open-source Javascript mobile document scanner.","directories":{"doc":"docs"},"_nodeVersion":"22.13.1","dependencies":{"jsdom":"^26.0.0","mocha":"^11.1.0","canvas":"^3.1.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/jscanify_1.4.0_1739896741071_0.15215138780827453","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"jscanify","version":"1.4.1","keywords":["js","scanner","document-scanner"],"author":{"name":"ColonelParrot"},"license":"MIT","_id":"jscanify@1.4.1","maintainers":[{"name":"colonelparrot","email":"generalparrot61@gmail.com"}],"homepage":"https://colonelparrot.github.io/jscanify/","bugs":{"url":"https://github.com/puffinsoft/jscanify/issues"},"dist":{"shasum":"aeec932fbb3f9e8ee3d02e712ed3e6868169a948","tarball":"https://registry.npmjs.org/jscanify/-/jscanify-1.4.1.tgz","fileCount":35,"integrity":"sha512-BaG0tz5QJI7Y39WzJnEXn7lIPh9vvXijOwQUiAaYFNUVTwfU557B+57WWI7XzybVMUdGIes02Zb9ElzOuqgk0Q==","signatures":[{"sig":"MEUCIBY4Xt3aL8Kt31qAfChM/UZKId1zNgBU/mgADdMzD8+GAiEAj1ZpItz0e9rbh/btqho+UqVwMuKaf8Tyas81cWa890c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30422741},"main":"src/jscanify-node.js","gitHead":"2be8fdcaf0adf8c10e284a35c6d16c8a69d56c05","scripts":{"test":"mocha --trace-uncaught"},"_npmUser":{"name":"colonelparrot","email":"generalparrot61@gmail.com"},"repository":{"url":"git+https://github.com/puffinsoft/jscanify.git","type":"git"},"_npmVersion":"11.6.2","description":"Open-source Javascript mobile document scanner.","directories":{"doc":"docs"},"_nodeVersion":"24.12.0","dependencies":{"jsdom":"^26.0.0","mocha":"^11.1.0","canvas":"^3.1.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/jscanify_1.4.1_1767844817372_0.4103788259824386","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"name":"jscanify","version":"1.4.2","keywords":["js","scanner","document-scanner"],"author":{"name":"ColonelParrot"},"license":"MIT","_id":"jscanify@1.4.2","maintainers":[{"name":"colonelparrot","email":"generalparrot61@gmail.com"}],"homepage":"https://colonelparrot.github.io/jscanify/","bugs":{"url":"https://github.com/puffinsoft/jscanify/issues"},"dist":{"shasum":"65c6c93403d0201f979e51938b2d57689a15eafa","tarball":"https://registry.npmjs.org/jscanify/-/jscanify-1.4.2.tgz","fileCount":35,"integrity":"sha512-iSsjiEr5Jqiugur5utdXqy93ZYC0wkHgJ0bGYqGtdviloij1+eOUBO471T+fHjip05BfTjPu+y8Hqs3rVIY5jQ==","signatures":[{"sig":"MEYCIQDEPNBc+5eRkcGtionu+alJFfp+cq/wfbrvVCX6yfo2rAIhAMP3has73tQGGCFpcRDEceotysDmDJaynWKCw+zL+1Lq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30422932},"main":"src/jscanify-node.js","exports":{".":{"default":"./src/jscanify-node.js"},"./client":{"default":"./src/jscanify.js"}},"gitHead":"435ca2a42546c5e4d0b91494b0eefeab679b37bf","scripts":{"test":"mocha --trace-uncaught"},"_npmUser":{"name":"colonelparrot","email":"generalparrot61@gmail.com"},"repository":{"url":"git+https://github.com/puffinsoft/jscanify.git","type":"git"},"_npmVersion":"11.6.2","description":"Open-source Javascript mobile document scanner.","directories":{"doc":"docs"},"_nodeVersion":"24.12.0","dependencies":{"jsdom":"^26.0.0","canvas":"^3.1.0"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^11.1.0"},"_npmOperationalInternal":{"tmp":"tmp/jscanify_1.4.2_1768633573288_0.09046688879778442","host":"s3://npm-registry-packages-npm-production"}},"1.4.3":{"name":"jscanify","version":"1.4.3","description":"Open-source Javascript mobile document scanner.","main":"src/jscanify-node.js","exports":{".":{"default":"./src/jscanify-node.js"},"./client":{"default":"./src/jscanify.js"}},"directories":{"doc":"docs"},"scripts":{"test":"mocha --trace-uncaught"},"repository":{"type":"git","url":"git+https://github.com/puffinsoft/jscanify.git"},"keywords":["js","scanner","document-scanner"],"author":{"name":"ColonelParrot"},"license":"MIT","bugs":{"url":"https://github.com/puffinsoft/jscanify/issues"},"homepage":"https://colonelparrot.github.io/jscanify/","dependencies":{"canvas":"^3.2.3","jsdom":"^29.1.1"},"devDependencies":{"mocha":"^11.7.6"},"overrides":{"diff":"8.0.3","serialize-javascript":"7.0.5"},"gitHead":"954863b80e8407bbd2a659fcba6583ce3176a419","_id":"jscanify@1.4.3","_nodeVersion":"24.12.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-BoGW0ZZvuK6BUA5o32R9W3QuguiZY/y0IApTD+cCDNRhBen2YC3IdSLQcLQdazGGKvdzGF6+Y0Z9l7tmjDfzrg==","shasum":"63f64d9d69ebb181ef2010fad7254dcd9bab14b9","tarball":"https://registry.npmjs.org/jscanify/-/jscanify-1.4.3.tgz","fileCount":35,"unpackedSize":30423023,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDzbPxHlCD0ZOy5zCneQOoDApmH9KsFrtUaG9R3AUgjXgIhAIPY07BnexWxUdONfGzrft/1pb/hXx1euiltNm5TSbjU"}]},"_npmUser":{"name":"colonelparrot","email":"generalparrot61@gmail.com"},"maintainers":[{"name":"colonelparrot","email":"generalparrot61@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/jscanify_1.4.3_1784520130052_0.5024452435763345"},"_hasShrinkwrap":false}},"time":{"created":"2023-04-15T00:36:48.514Z","modified":"2026-07-20T04:02:10.650Z","1.0.0":"2023-04-15T00:36:48.716Z","1.1.0":"2023-05-08T21:36:01.891Z","1.2.0":"2023-05-10T19:48:25.891Z","1.3.0":"2025-01-27T21:03:53.964Z","1.3.1":"2025-01-27T21:37:35.838Z","1.3.2":"2025-01-28T01:04:30.093Z","1.3.3":"2025-02-02T02:11:23.255Z","1.3.4":"2025-02-02T05:11:07.632Z","1.4.0":"2025-02-18T16:39:01.614Z","1.4.1":"2026-01-08T04:00:18.154Z","1.4.2":"2026-01-17T07:06:14.039Z","1.4.3":"2026-07-20T04:02:10.517Z"},"bugs":{"url":"https://github.com/puffinsoft/jscanify/issues"},"author":{"name":"ColonelParrot"},"license":"MIT","homepage":"https://colonelparrot.github.io/jscanify/","keywords":["js","scanner","document-scanner"],"repository":{"type":"git","url":"git+https://github.com/puffinsoft/jscanify.git"},"description":"Open-source Javascript mobile document scanner.","maintainers":[{"name":"colonelparrot","email":"generalparrot61@gmail.com"}],"readme":"<p align=\"center\">\r\n    <img src=\"docs/images/logo-github.png\" height=\"150\">\r\n</p>\r\n\r\n<p align=\"center\">\r\n    <a href=\"https://www.jsdelivr.com/package/gh/ColonelParrot/jscanify\"><img src=\"https://data.jsdelivr.com/v1/package/gh/ColonelParrot/jscanify/badge\"></a>\r\n    <a href=\"https://cdnjs.com/libraries/jscanify\"><img src=\"https://img.shields.io/cdnjs/v/jscanify\"></a>\r\n    <a href=\"https://npmjs.com/package/jscanify\"><img src=\"https://badgen.net/npm/dw/jscanify\"></a>\r\n    <br />\r\n    <a href=\"https://github.com/puffinsoft/jscanify/blob/master/LICENSE\"><img src=\"https://img.shields.io/github/license/puffinsoft/jscanify.svg\"></a>\r\n    <a href=\"https://npmjs.com/package/jscanify\"><img src=\"https://badgen.net/npm/v/jscanify\"></a>\r\n</p>\r\n\r\n<p align=\"center\">\r\n  <a href=\"https://npmjs.com/package/jscanify\"><img src=\"https://nodei.co/npm/jscanify.png\"></a>\r\n</p>\r\n\r\n<p align=\"center\">\r\nPowered with <a href=\"https://docs.opencv.org/3.4/d5/d10/tutorial_js_root.html\">opencv.js</a><br/>\r\nSupports the web, NodeJS, <a href=\"https://github.com/ColonelParrot/react-scanify-demo\">React</a>, and others.\r\n<br/>\r\nAvailable on <a href=\"https://www.npmjs.com/package/jscanify\">npm</a> or via <a href=\"https://www.jsdelivr.com/package/gh/ColonelParrot/jscanify\">cdn</a><br/>\r\n</p>\r\n\r\n**Features**:\r\n\r\n- paper detection & highlighting\r\n- paper scanning with distortion correction\r\n\r\n> [!IMPORTANT]  \r\n> 🎉 _jscanify v1.3.0+_ has just been released! **Same API, better results.** See the [release](https://github.com/puffinsoft/jscanify/releases/tag/v1.3.0) to see the difference! 🎉\r\n\r\n\r\n- 🆕 glare suppression\r\n- 🆕 multi-colored paper support\r\n\r\n<hr />\r\n\r\n<img src=\"docs/images/github-explanation-long.png\" />\r\n\r\n<h3 align=\"center\" margin=\"0\"><a href=\"https://github.com/puffinsoft/jscanify/wiki\">➡️ view documentation</a></h3>\r\n\r\n<hr/>\r\n\r\n## Quickstart\r\n\r\n> **Developers Note**: you can now use the [jscanify debugging tool](https://colonelparrot.github.io/jscanify/tester.html) to observe the result (highlighting, extraction) on test images.\r\n\r\n### Import\r\n\r\nnpm:\r\n\r\n```js\r\n$ npm i jscanify\r\nimport jscanify from 'jscanify'\r\n```\r\n\r\ncdn:\r\n\r\n```html\r\n<script src=\"https://docs.opencv.org/4.7.0/opencv.js\" async></script>\r\n<!-- warning: loading OpenCV can take some time. Load asynchronously -->\r\n<script src=\"https://cdn.jsdelivr.net/gh/ColonelParrot/jscanify@master/src/jscanify.min.js\"></script>\r\n```\r\n\r\n> **Note**: jscanify on NodeJS is slightly different. See [wiki: use on NodeJS](https://github.com/puffinsoft/jscanify/wiki/Getting-started#use-on-nodejs).\r\n\r\n### Highlight Paper in Image\r\n\r\n```html\r\n<img src=\"/path/to/your/image.png\" id=\"image\" />\r\n```\r\n\r\n```js\r\nconst scanner = new jscanify();\r\nimage.onload = function () {\r\n  const highlightedCanvas = scanner.highlightPaper(image);\r\n  document.body.appendChild(highlightedCanvas);\r\n};\r\n```\r\n\r\n### Extract Paper\r\n\r\n```js\r\nconst scanner = new jscanify();\r\nconst paperWidth = 500;\r\nconst paperHeight = 1000;\r\nimage.onload = function () {\r\n  const resultCanvas = scanner.extractPaper(image, paperWidth, paperHeight);\r\n  document.body.appendChild(resultCanvas);\r\n};\r\n```\r\n\r\n### Highlighting Paper in User Camera\r\n\r\nThe following code continuously reads from the user's camera and highlights the paper:\r\n\r\n```html\r\n<video id=\"video\"></video> <canvas id=\"canvas\"></canvas>\r\n<!-- original video -->\r\n<canvas id=\"result\"></canvas>\r\n<!-- highlighted video -->\r\n```\r\n\r\n```js\r\nconst scanner = new jscanify();\r\nconst canvasCtx = canvas.getContext(\"2d\");\r\nconst resultCtx = result.getContext(\"2d\");\r\nnavigator.mediaDevices.getUserMedia({ video: true }).then((stream) => {\r\n  video.srcObject = stream;\r\n  video.onloadedmetadata = () => {\r\n    video.play();\r\n\r\n    setInterval(() => {\r\n      canvasCtx.drawImage(video, 0, 0);\r\n      const resultCanvas = scanner.highlightPaper(canvas);\r\n      resultCtx.drawImage(resultCanvas, 0, 0);\r\n    }, 10);\r\n  };\r\n});\r\n```\r\n\r\nTo export the paper to a PDF, see [here](https://stackoverflow.com/questions/23681325/convert-canvas-to-pdf)\r\n\r\n### Notes\r\n\r\n- for optimal paper detection, the paper should be placed on a flat surface with a solid background color\r\n- we recommend wrapping your code using `jscanify` in a window `load` event listener to ensure OpenCV is loaded\r\n\r\n\r\n<h3 align=\"center\" margin=\"0\"><a href=\"https://github.com/puffinsoft/jscanify/wiki\">➡️ view documentation</a></h3>\r\n","readmeFilename":"README.md"}