{"_id":"altcha-lib","_rev":"32-607076e538108088ac89425ea3ead6c0","name":"altcha-lib","dist-tags":{"beta":"2.0.1","latest":"2.5.0"},"versions":{"0.1.0":{"name":"altcha-lib","version":"0.1.0","keywords":["altcha","captcha","antispam","captcha alternative"],"author":{"name":"Daniel Regeci"},"license":"MIT","_id":"altcha-lib@0.1.0","maintainers":[{"name":"ovx","email":"getc88@gmail.com"}],"dist":{"shasum":"f64d9e9bfa3747348ee71f7b7e6a23648b54d736","tarball":"https://registry.npmjs.org/altcha-lib/-/altcha-lib-0.1.0.tgz","fileCount":9,"integrity":"sha512-SJ1sd89sVRGXFFxyb9bF9X9DE5YqezKvWU+go+l+xHrgrmKfFgA56geeq1P0r0SKw3SOZqggXWOxr+GcB5sTLg==","signatures":[{"sig":"MEYCIQCCUvEbSh3EL8nd/BhZbrzrW41rYSFkEKZkzqokJ8h8RQIhAJwVSO0EY8aMAepuMDJRWCiN+QNfBm2HQBP+r3Wmv5qj","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6995},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"fc9cf3cfda648117ff03eea5fa0eb0ff224c30b5","scripts":{"test":"vitest","build":"rimraf dist && tsc -p tsconfig.build.json","eslint":"eslint ./lib/**/*","format":"prettier --write './(lib|tests)/**/*'","denoify":"rimraf deno_dist && denoify && find deno_dist/. -type f -exec sed -i '' -e 's/node:node:/node:/g' {} +","test:deno":"deno test tests/deno.ts"},"_npmUser":{"name":"ovx","email":"getc88@gmail.com"},"_npmVersion":"10.2.3","description":"A library for creating and verifying ALTCHA challenges for Node.js, Bun and Deno.","directories":{},"_nodeVersion":"20.10.0","typesVersions":{"*":{"types":["./dist/types"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^8.56.0","rimraf":"^5.0.5","vitest":"^1.0.1","denoify":"^1.6.9","ts-node":"^10.9.1","prettier":"^3.2.5","typescript":"^5.2.2","@types/node":"^20.9.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"_npmOperationalInternal":{"tmp":"tmp/altcha-lib_0.1.0_1707759596688_0.13854090252311346","host":"s3://npm-registry-packages"}},"0.1.1":{"name":"altcha-lib","version":"0.1.1","keywords":["altcha","captcha","antispam","captcha alternative"],"author":{"name":"Daniel Regeci"},"license":"MIT","_id":"altcha-lib@0.1.1","maintainers":[{"name":"ovx","email":"getc88@gmail.com"}],"dist":{"shasum":"2828125fc722cd0f40b34bd59c7d16aa26fe4949","tarball":"https://registry.npmjs.org/altcha-lib/-/altcha-lib-0.1.1.tgz","fileCount":9,"integrity":"sha512-xthk9zGRqhl1VLvhtvYDYZgNamOk0E4pNr2KBpTvJGAziUbAtAw9N/IIY8S5GQ8KvMCCFIterRUuuprYouuH3A==","signatures":[{"sig":"MEUCIQDOySE6UlOjGogv+aoW+0jTd95JY1BV4slhGVcQDvQ1xwIgKXJ3ps3rkLb0qxT3FDt57N7EBcPTEoRfcLZkvR+/dSs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7495},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"}},"gitHead":"cb0a90d3b806b727246d8f763536ee6aff741a70","scripts":{"test":"vitest","build":"rimraf dist && tsc -p tsconfig.build.json","eslint":"eslint ./lib/**/*","format":"prettier --write './(lib|tests)/**/*'","denoify":"rimraf deno_dist && denoify && find deno_dist/. -type f -exec sed -i '' -e 's/node:node:/node:/g' {} +","test:deno":"deno test tests/deno.ts"},"_npmUser":{"name":"ovx","email":"getc88@gmail.com"},"_npmVersion":"10.2.3","description":"A library for creating and verifying ALTCHA challenges for Node.js, Bun and Deno.","directories":{},"_nodeVersion":"20.10.0","typesVersions":{"*":{"types":["./dist/types"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^8.56.0","rimraf":"^5.0.5","vitest":"^1.0.1","denoify":"^1.6.9","ts-node":"^10.9.1","prettier":"^3.2.5","typescript":"^5.2.2","@types/node":"^20.9.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"_npmOperationalInternal":{"tmp":"tmp/altcha-lib_0.1.1_1711190737932_0.4818947880602098","host":"s3://npm-registry-packages"}},"0.1.2":{"name":"altcha-lib","version":"0.1.2","keywords":["altcha","captcha","antispam","captcha alternative"],"author":{"name":"Daniel Regeci"},"license":"MIT","_id":"altcha-lib@0.1.2","maintainers":[{"name":"ovx","email":"getc88@gmail.com"}],"dist":{"shasum":"6f98fef456ae250bac336afb7a60a6b2f87001ec","tarball":"https://registry.npmjs.org/altcha-lib/-/altcha-lib-0.1.2.tgz","fileCount":16,"integrity":"sha512-zR7ibrmFzFF7Z6BBB4F7RjhURMvKTdlHxSR2lHo7Qyzv8m/NSGO/S6wY0Rps9qqAd9o/qvVKyRcBg7qvsVYEEg==","signatures":[{"sig":"MEUCIHlh+6GSCTjJ3siVlKqWTUviXrT8GRtEZbINxQoS+yRJAiEA+Y8Gp05NqdNIKLpVzNunfBsgcx3j2DexIKOS8UbUFEU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11736},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./cjs/dist/index.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"}},"gitHead":"e3ca2a5941944b521adf52cc849617f57a7cf2bc","scripts":{"test":"vitest","build":"rimraf dist && rimraf cjs/dist && tsc -b tsconfig.build.json tsconfig.cjs.json","eslint":"eslint ./lib/**/*","format":"prettier --write './(lib|tests)/**/*'","denoify":"rimraf deno_dist && denoify && find deno_dist/. -type f -exec sed -i '' -e 's/node:node:/node:/g' {} +","test:deno":"deno test tests/deno.ts"},"_npmUser":{"name":"ovx","email":"getc88@gmail.com"},"_npmVersion":"10.2.4","description":"A library for creating and verifying ALTCHA challenges for Node.js, Bun and Deno.","directories":{},"_nodeVersion":"20.11.1","typesVersions":{"*":{"types":["./dist/types"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^8.56.0","rimraf":"^5.0.5","vitest":"^1.0.1","denoify":"^1.6.9","ts-node":"^10.9.1","prettier":"^3.2.5","typescript":"^5.2.2","@types/node":"^20.9.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"_npmOperationalInternal":{"tmp":"tmp/altcha-lib_0.1.2_1711462300225_0.5732090852199845","host":"s3://npm-registry-packages"}},"0.1.3":{"name":"altcha-lib","version":"0.1.3","keywords":["altcha","captcha","antispam","captcha alternative"],"author":{"name":"Daniel Regeci"},"license":"MIT","_id":"altcha-lib@0.1.3","maintainers":[{"name":"ovx","email":"getc88@gmail.com"}],"dist":{"shasum":"c9419e708a931f75bb527e21876924b22967b937","tarball":"https://registry.npmjs.org/altcha-lib/-/altcha-lib-0.1.3.tgz","fileCount":24,"integrity":"sha512-XWYWnD78YhtNLKkayyPS6+Ot0zoo7BauI0w4RzTuJtZHBvySKHzEQpNq8ar9UsOaPw6FrMvFp6f6ZZEPaifCOQ==","signatures":[{"sig":"MEQCIGEc2sU6OV2gEYdnPrmccBmt48K4dkdYQSd5FSKB62WhAiAakVd/q0YNrUT6UGuM0XnGQIH6uc/yb4ujk4TzCqh4Tg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":22470},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./cjs/dist/index.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js","default":"./dist/worker.js","require":"./cjs/dist/worker.js"}},"gitHead":"1e18b66658451b3892854c5889b0b02598d1ca17","scripts":{"test":"vitest --run","build":"rimraf dist && rimraf cjs/dist && tsc -b tsconfig.build.json tsconfig.cjs.json","eslint":"eslint ./lib/**/*","format":"prettier --write './(lib|tests)/**/*'","denoify":"rimraf deno_dist && denoify && find deno_dist/. -type f -exec sed -i '' -e 's/node:node:/node:/g' {} +","prepare":"husky","test:deno":"deno test --allow-read tests/deno.ts"},"_npmUser":{"name":"ovx","email":"getc88@gmail.com"},"_npmVersion":"10.2.4","description":"A library for creating and verifying ALTCHA challenges for Node.js, Bun and Deno.","directories":{},"_nodeVersion":"20.11.1","typesVersions":{"*":{"types":["./dist/types"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","husky":"^9.0.11","eslint":"^8.56.0","rimraf":"^5.0.5","vitest":"^1.0.1","denoify":"^1.6.9","ts-node":"^10.9.1","prettier":"^3.2.5","typescript":"^5.2.2","@types/node":"^20.9.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"_npmOperationalInternal":{"tmp":"tmp/altcha-lib_0.1.3_1712363845945_0.3861186392059113","host":"s3://npm-registry-packages"}},"0.1.4":{"name":"altcha-lib","version":"0.1.4","keywords":["altcha","captcha","antispam","captcha alternative"],"author":{"name":"Daniel Regeci"},"license":"MIT","_id":"altcha-lib@0.1.4","maintainers":[{"name":"ovx","email":"getc88@gmail.com"}],"dist":{"shasum":"18fbdd67e1433474d5b0ca50ea0c70201b6c2bc8","tarball":"https://registry.npmjs.org/altcha-lib/-/altcha-lib-0.1.4.tgz","fileCount":24,"integrity":"sha512-LOfLSn/uv7Q9HqkNrQETnBtckOxam9Zi2uTyf+Vr3JilwYSqqBHbrqW9AvaY5JpwvehqKKpVn+iiMIGOyBzIbA==","signatures":[{"sig":"MEYCIQClyC3GUJLfIu81cjyg598OqxVFNUVrYiYMWkN26qHsggIhAIQWn4m4kpbJssQB5u/IN1ODa0x9dJIDoYBIIPmxXdUi","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":22951},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./cjs/dist/index.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js","default":"./dist/worker.js","require":"./cjs/dist/worker.js"}},"gitHead":"55fb530b5929041087b6b2a3bfdbe4ffdfdcf952","scripts":{"test":"vitest --run","build":"rimraf dist && rimraf cjs/dist && tsc -b tsconfig.build.json tsconfig.cjs.json","eslint":"eslint ./lib/**/*","format":"prettier --write './(lib|tests)/**/*'","denoify":"rimraf deno_dist && denoify && find deno_dist/. -type f -exec sed -i '' -e 's/node:node:/node:/g' {} +","prepare":"husky","test:deno":"deno test --allow-read tests/deno.ts"},"_npmUser":{"name":"ovx","email":"getc88@gmail.com"},"_npmVersion":"10.2.4","description":"A library for creating and verifying ALTCHA challenges for Node.js, Bun and Deno.","directories":{},"_nodeVersion":"20.11.1","typesVersions":{"*":{"types":["./dist/types"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","husky":"^9.0.11","eslint":"^8.56.0","rimraf":"^5.0.5","vitest":"^1.0.1","denoify":"^1.6.9","ts-node":"^10.9.1","prettier":"^3.2.5","typescript":"^5.2.2","@types/node":"^20.9.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"_npmOperationalInternal":{"tmp":"tmp/altcha-lib_0.1.4_1712407558475_0.18004174945771267","host":"s3://npm-registry-packages"}},"0.1.5":{"name":"altcha-lib","version":"0.1.5","keywords":["altcha","captcha","antispam","captcha alternative"],"author":{"name":"Daniel Regeci"},"license":"MIT","_id":"altcha-lib@0.1.5","maintainers":[{"name":"ovx","email":"getc88@gmail.com"}],"dist":{"shasum":"4023fc64a84a059ec903bb680f0b414e8c877446","tarball":"https://registry.npmjs.org/altcha-lib/-/altcha-lib-0.1.5.tgz","fileCount":24,"integrity":"sha512-VRk1NqKWu4ZLMzhzx8xCFEkk/fKjwlC9HSpjNP21mRnv/j1iq4ozi68lPvC6c+dW5iNviksBN1iOu9JGG9YpAg==","signatures":[{"sig":"MEUCID3clU2QzMSsR/tpJZr2oIhPfCDqrb5MtqtcBnfCPadOAiEAxD4P/LGWSerbtzMkq9u9g+bni3fJQ6yrMS//l1b9/Aw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23485},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./cjs/dist/index.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js","default":"./dist/worker.js","require":"./cjs/dist/worker.js"}},"gitHead":"1da8379221f9ea06eecca73b9dc444fd5b4f151e","scripts":{"test":"vitest --run","build":"rimraf dist && rimraf cjs/dist && tsc -b tsconfig.build.json tsconfig.cjs.json","eslint":"eslint ./lib/**/*","format":"prettier --write './(lib|tests)/**/*'","denoify":"rimraf deno_dist && denoify && find deno_dist/. -type f -exec sed -i '' -e 's/node:node:/node:/g' {} +","prepare":"husky","test:deno":"deno test --allow-read tests/deno.ts"},"_npmUser":{"name":"ovx","email":"getc88@gmail.com"},"_npmVersion":"10.2.4","description":"A library for creating and verifying ALTCHA challenges for Node.js, Bun and Deno.","directories":{},"_nodeVersion":"20.11.1","typesVersions":{"*":{"types":["./dist/types"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","husky":"^9.0.11","eslint":"^8.56.0","rimraf":"^5.0.5","vitest":"^1.0.1","denoify":"^1.6.9","ts-node":"^10.9.1","prettier":"^3.2.5","typescript":"^5.2.2","@types/node":"^20.9.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"_npmOperationalInternal":{"tmp":"tmp/altcha-lib_0.1.5_1713445114421_0.990286473328156","host":"s3://npm-registry-packages"}},"0.2.0":{"name":"altcha-lib","version":"0.2.0","keywords":["altcha","captcha","antispam","captcha alternative"],"author":{"name":"Daniel Regeci"},"license":"MIT","_id":"altcha-lib@0.2.0","maintainers":[{"name":"ovx","email":"getc88@gmail.com"}],"dist":{"shasum":"f4d04dbc4b8e100b9cced4775b4918c42b55d5a5","tarball":"https://registry.npmjs.org/altcha-lib/-/altcha-lib-0.2.0.tgz","fileCount":24,"integrity":"sha512-9KBwYWT+aL9NqCEa2JZwq3NyttV0iYNBSuOkSPoFZteJAgpR+aIIppqvrcfi/RZB9IW17Rd6MTMHjDyU9SMa2g==","signatures":[{"sig":"MEQCIGgv2q5OKLOLzIYqxE2YqaheWO7PZci5QTD9ZOzGj+HsAiAnAiOynwwWZ3aT3RyceCIxgUJ7LmA0E3TBDj0s0b/EBg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28871},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./cjs/dist/index.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js","default":"./dist/worker.js","require":"./cjs/dist/worker.js"}},"gitHead":"cbc8624a0222ae31dfeef55b4edf5ba5c8834a34","scripts":{"test":"vitest --run","build":"rimraf dist && rimraf cjs/dist && tsc -b tsconfig.build.json tsconfig.cjs.json","eslint":"eslint ./lib/**/*","format":"prettier --write './(lib|tests)/**/*'","denoify":"rimraf deno_dist && denoify && find deno_dist/. -type f -exec sed -i '' -e 's/node:node:/node:/g' {} +","prepare":"husky","test:deno":"deno test --allow-read tests/deno.ts"},"_npmUser":{"name":"ovx","email":"getc88@gmail.com"},"_npmVersion":"10.2.4","description":"A library for creating and verifying ALTCHA challenges for Node.js, Bun and Deno.","directories":{},"_nodeVersion":"18.19.1","typesVersions":{"*":{"types":["./dist/types"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","husky":"^9.0.11","eslint":"^8.56.0","rimraf":"^5.0.5","vitest":"^1.0.1","denoify":"^1.6.9","ts-node":"^10.9.1","prettier":"^3.2.5","typescript":"^5.2.2","@types/node":"^20.9.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"_npmOperationalInternal":{"tmp":"tmp/altcha-lib_0.2.0_1714220518906_0.6762518718672579","host":"s3://npm-registry-packages"}},"0.3.0":{"name":"altcha-lib","version":"0.3.0","keywords":["altcha","captcha","antispam","captcha alternative"],"author":{"name":"Daniel Regeci"},"license":"MIT","_id":"altcha-lib@0.3.0","maintainers":[{"name":"ovx","email":"getc88@gmail.com"}],"dist":{"shasum":"80772823945e9f5afdca68bbd7607f8668cc45ef","tarball":"https://registry.npmjs.org/altcha-lib/-/altcha-lib-0.3.0.tgz","fileCount":24,"integrity":"sha512-nkY++Alm9L5KVylBAxwdClyLurlnniCD3GTsBuRK53B0ez+6SFWKcn0oJ6ZNZjcTclBJSl8c8wrzBeGW6ez1PA==","signatures":[{"sig":"MEUCIQCtp/F+LjYxEws6noqapvYwtkg9GS5I36QXDmmd9N7+IQIgHI9RP00UX0PcFd7bOwigprfRchxF8ANPEyPea4kkPGg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31348},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./cjs/dist/index.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js","default":"./dist/worker.js","require":"./cjs/dist/worker.js"}},"gitHead":"c1f2b989c47685ee84fa6ce0c4b11d7de76d07a7","scripts":{"test":"vitest --run","build":"rimraf dist && rimraf cjs/dist && tsc -b tsconfig.build.json tsconfig.cjs.json","eslint":"eslint ./lib/**/*","format":"prettier --write './(lib|tests)/**/*'","denoify":"rimraf deno_dist && denoify && find deno_dist/. -type f -exec sed -i '' -e 's/node:node:/node:/g' {} +","prepare":"husky","test:deno":"deno test --allow-read tests/deno.ts"},"_npmUser":{"name":"ovx","email":"getc88@gmail.com"},"_npmVersion":"10.2.4","description":"A library for creating and verifying ALTCHA challenges for Node.js, Bun and Deno.","directories":{},"_nodeVersion":"20.11.1","typesVersions":{"*":{"types":["./dist/types"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","husky":"^9.0.11","eslint":"^8.56.0","rimraf":"^5.0.5","vitest":"^1.0.1","denoify":"^1.6.9","ts-node":"^10.9.1","prettier":"^3.2.5","typescript":"^5.2.2","@types/node":"^20.9.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"_npmOperationalInternal":{"tmp":"tmp/altcha-lib_0.3.0_1715517412723_0.7396716125534477","host":"s3://npm-registry-packages"}},"0.4.0":{"name":"altcha-lib","version":"0.4.0","keywords":["altcha","captcha","antispam","captcha alternative"],"author":{"name":"Daniel Regeci"},"license":"MIT","_id":"altcha-lib@0.4.0","maintainers":[{"name":"ovx","email":"getc88@gmail.com"}],"dist":{"shasum":"25abebdbd8a122d52079882ee71ccc1395819238","tarball":"https://registry.npmjs.org/altcha-lib/-/altcha-lib-0.4.0.tgz","fileCount":20,"integrity":"sha512-PZiUsYTuX4Ka8fF8ZPzokeziigd31SyYWh97I4K4nTEW72LeYm0VDJMMaeBxVqNPAzcvHCA40VbSUk12OQwBdw==","signatures":[{"sig":"MEYCIQC57GZmM+g+Za0VNoqzBi6p96k4whRWZzpdgb3r86DCAQIhAKgy+VZn8AkyRdCHeYU/F6tMCBsMQk6wAOC0CzkkCIvZ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31131},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./cjs/dist/index.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js","default":"./dist/worker.js","require":"./cjs/dist/worker.js"}},"gitHead":"d5ac63a73ddf65f7a50f372a1998863ce6e866af","scripts":{"test":"vitest --run","build":"rimraf dist && rimraf cjs/dist && tsc -b tsconfig.build.json tsconfig.cjs.json","eslint":"eslint ./lib/**/*","format":"prettier --write './(lib|tests)/**/*'","denoify":"rimraf deno_dist && denoify && find deno_dist/. -type f -exec sed -i '' -e 's/node:node:/node:/g' {} +","prepare":"husky","test:deno":"deno test --allow-read tests/deno.ts"},"_npmUser":{"name":"ovx","email":"getc88@gmail.com"},"_npmVersion":"10.2.4","description":"A library for creating and verifying ALTCHA challenges for Node.js, Bun and Deno.","directories":{},"_nodeVersion":"20.11.1","typesVersions":{"*":{"types":["./dist/types"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","husky":"^9.0.11","eslint":"^8.56.0","rimraf":"^5.0.5","vitest":"^1.0.1","denoify":"^1.6.9","ts-node":"^10.9.1","prettier":"^3.2.5","typescript":"^5.2.2","@types/node":"^20.9.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"_npmOperationalInternal":{"tmp":"tmp/altcha-lib_0.4.0_1720798950241_0.5487946996882078","host":"s3://npm-registry-packages"}},"0.4.1":{"name":"altcha-lib","version":"0.4.1","keywords":["altcha","captcha","antispam","captcha alternative"],"author":{"name":"Daniel Regeci"},"license":"MIT","_id":"altcha-lib@0.4.1","maintainers":[{"name":"ovx","email":"getc88@gmail.com"}],"dist":{"shasum":"6c3725ecca54a1ea52febb78dd0e526be2798d74","tarball":"https://registry.npmjs.org/altcha-lib/-/altcha-lib-0.4.1.tgz","fileCount":20,"integrity":"sha512-A926rmJgumihRJwd3J71oY+8qQ5hYILM7FbySihYlju8HFf4cBpLJ/jdI0GSNHA3thP1/Qdkmz6eHALoMQXqgQ==","signatures":[{"sig":"MEUCIB733ISExSmyEjZCMa0ZW6kxiz+Z4G76HlqrIyH2xpxdAiEAwnWRIFZdcDue5pa7uo2aKIqioqREXoN+GqU4WJU97zQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30843},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./cjs/dist/index.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js","default":"./dist/worker.js","require":"./cjs/dist/worker.js"}},"gitHead":"42bf72f883266ee6fe7decc7be2c40a4842d4097","scripts":{"test":"vitest --run","build":"rimraf dist && rimraf cjs/dist && tsc -b tsconfig.build.json tsconfig.cjs.json","eslint":"eslint ./lib/**/*","format":"prettier --write './(lib|tests)/**/*'","denoify":"rimraf deno_dist && denoify && find deno_dist/. -type f -exec sed -i '' -e 's/node:node:/node:/g' {} +","prepare":"husky","test:deno":"deno test --allow-read tests/deno.ts"},"_npmUser":{"name":"ovx","email":"getc88@gmail.com"},"_npmVersion":"10.2.4","description":"A library for creating and verifying ALTCHA challenges for Node.js, Bun and Deno.","directories":{},"_nodeVersion":"18.19.1","typesVersions":{"*":{"types":["./dist/types"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","husky":"^9.0.11","eslint":"^8.56.0","rimraf":"^5.0.5","vitest":"^1.0.1","denoify":"^1.6.9","ts-node":"^10.9.1","prettier":"^3.2.5","typescript":"^5.2.2","@types/node":"^20.9.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"_npmOperationalInternal":{"tmp":"tmp/altcha-lib_0.4.1_1721391481309_0.6264894898789624","host":"s3://npm-registry-packages"}},"0.5.0":{"name":"altcha-lib","version":"0.5.0","keywords":["altcha","captcha","antispam","captcha alternative"],"author":{"name":"Daniel Regeci"},"license":"MIT","_id":"altcha-lib@0.5.0","maintainers":[{"name":"ovx","email":"getc88@gmail.com"}],"dist":{"shasum":"dea56ac888a9588a9fd2b2565b6911e8e8706de3","tarball":"https://registry.npmjs.org/altcha-lib/-/altcha-lib-0.5.0.tgz","fileCount":20,"integrity":"sha512-7ZoqEMctJKwDV9ZRbWbq1KS3WP8M+sbkxbFm1j52Dv5ikMQwDjkQbiXQpjQYOZZfY4u9vuOAOdMTCoWSHGKWxA==","signatures":[{"sig":"MEYCIQDovS8WEK9xPsx3ozcvHc9BdkW+jd3cvkDo4UUxyPVYewIhAOpzhh1GIOcxGpBl52t/W+N+qi4p0Y4BTruELR4H8IRr","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":43288},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./cjs/dist/index.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js","default":"./dist/worker.js","require":"./cjs/dist/worker.js"}},"gitHead":"acffb837b482aa8611e6a2d4fecc57bf14f857c4","scripts":{"test":"vitest --run","build":"rimraf dist && rimraf cjs/dist && tsc -b tsconfig.build.json tsconfig.cjs.json","eslint":"eslint ./lib/**/*","format":"prettier --write './(lib|tests)/**/*'","denoify":"rimraf deno_dist && denoify && find deno_dist/. -type f -exec sed -i '' -e 's/node:node:/node:/g' {} +","prepare":"husky","test:deno":"deno test --allow-read tests/deno.ts"},"_npmUser":{"name":"ovx","email":"getc88@gmail.com"},"_npmVersion":"10.2.4","description":"A library for creating and verifying ALTCHA challenges for Node.js, Bun and Deno.","directories":{},"_nodeVersion":"20.11.1","typesVersions":{"*":{"types":["./dist/types"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","husky":"^9.0.11","eslint":"^8.56.0","rimraf":"^5.0.5","vitest":"^1.0.1","denoify":"^1.6.9","ts-node":"^10.9.1","prettier":"^3.2.5","typescript":"^5.2.2","@types/node":"^20.9.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"_npmOperationalInternal":{"tmp":"tmp/altcha-lib_0.5.0_1721863563490_0.8269601883882871","host":"s3://npm-registry-packages"}},"0.5.1":{"name":"altcha-lib","version":"0.5.1","keywords":["altcha","captcha","antispam","captcha alternative"],"author":{"name":"Daniel Regeci"},"license":"MIT","_id":"altcha-lib@0.5.1","maintainers":[{"name":"ovx","email":"getc88@gmail.com"}],"dist":{"shasum":"272920ddc5a77417ff9c957b3972bea224aab14b","tarball":"https://registry.npmjs.org/altcha-lib/-/altcha-lib-0.5.1.tgz","fileCount":20,"integrity":"sha512-dW3g79ZoXRh2/fDBUj+T9rKWFyDMwxIAPdCOuQ7rAe4RIwXNMEiJHrXPZhmj7aALTKRqHCmMB4BMBkyBe1+gww==","signatures":[{"sig":"MEQCIHzQ503165mIScZnwdlfqANkgpL0Km8wjTzemf9Vr1sUAiAZnRLqthcmVAD0dVOxVaQ4amu+9IcWwq1Wru0gHXYSFQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":43292},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./cjs/dist/index.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js","default":"./dist/worker.js","require":"./cjs/dist/worker.js"}},"gitHead":"832a96a9a578e9227684b47363075b025352e812","scripts":{"test":"vitest --run","build":"rimraf dist && rimraf cjs/dist && tsc -b tsconfig.build.json tsconfig.cjs.json","eslint":"eslint ./lib/**/*","format":"prettier --write './(lib|tests)/**/*'","denoify":"rimraf deno_dist && denoify && find deno_dist/. -type f -exec sed -i '' -e 's/node:node:/node:/g' {} +","prepare":"husky","test:deno":"deno test --allow-read tests/deno.ts"},"_npmUser":{"name":"ovx","email":"getc88@gmail.com"},"_npmVersion":"10.2.4","description":"A library for creating and verifying ALTCHA challenges for Node.js, Bun and Deno.","directories":{},"_nodeVersion":"20.11.1","typesVersions":{"*":{"types":["./dist/types"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","husky":"^9.0.11","eslint":"^8.56.0","rimraf":"^5.0.5","vitest":"^1.0.1","denoify":"^1.6.9","ts-node":"^10.9.1","prettier":"^3.2.5","typescript":"^5.2.2","@types/node":"^20.9.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"_npmOperationalInternal":{"tmp":"tmp/altcha-lib_0.5.1_1721905606870_0.08370723482443432","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"altcha-lib","version":"1.0.0","keywords":["altcha","captcha","antispam","captcha alternative"],"author":{"url":"https://altcha.org","name":"Daniel Regeci"},"license":"MIT","_id":"altcha-lib@1.0.0","maintainers":[{"name":"ovx","email":"getc88@gmail.com"}],"homepage":"https://altcha.org","bugs":{"url":"https://github.com/altcha-org/altcha-lib/issues"},"dist":{"shasum":"c60b5156ea5b4b2a2688c462691598fbdac3c087","tarball":"https://registry.npmjs.org/altcha-lib/-/altcha-lib-1.0.0.tgz","fileCount":20,"integrity":"sha512-AHeFX3M74OKTAnOrufb6uzM2CjymWLbGUoVOVurXVev3NZuya2o8oxmMMbsP9Ouc7vuauRAyssKjjhtjZ8xAnQ==","signatures":[{"sig":"MEYCIQDt7sgPHOKj/DNPAq3q1knw0wyEYKSDkO93mPc0A9/mFgIhAKuZSPHBJfRnco9II+5uho9JRYMXl5XL4ULsCMHg0ezW","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/altcha-lib@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51544},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./cjs/dist/index.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js","default":"./dist/worker.js","require":"./cjs/dist/worker.js"}},"gitHead":"a0994fc7c5a6b4e1c01b092fa8d773c2b0664dfa","scripts":{"test":"vitest --run","build":"rimraf dist && rimraf cjs/dist && tsc -b tsconfig.build.json tsconfig.cjs.json","eslint":"eslint ./lib/**/*","format":"prettier --write './(lib|tests)/**/*'","denoify":"rimraf deno_dist && denoify && find deno_dist/. -type f -exec sed -i '' -e 's/node:node:/node:/g' {} +","prepare":"husky","test:deno":"deno test --allow-read tests/deno.ts"},"_npmUser":{"name":"ovx","email":"getc88@gmail.com"},"repository":{"url":"git+https://github.com/altcha-org/altcha-lib.git","type":"git"},"_npmVersion":"10.8.2","description":"A library for creating and verifying ALTCHA challenges for Node.js, Bun and Deno.","directories":{},"_nodeVersion":"20.17.0","typesVersions":{"*":{"types":["./dist/types"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","husky":"^9.1.5","eslint":"^8.57.0","rimraf":"^5.0.10","vitest":"^1.6.0","denoify":"^1.6.13","ts-node":"^10.9.2","prettier":"^3.3.3","typescript":"^5.5.4","@types/node":"^20.16.3","@typescript-eslint/eslint-plugin":"^8.4.0"},"_npmOperationalInternal":{"tmp":"tmp/altcha-lib_1.0.0_1725316735600_0.131911629204148","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"altcha-lib","version":"1.1.0","keywords":["altcha","captcha","antispam","captcha alternative"],"author":{"url":"https://altcha.org","name":"Daniel Regeci"},"license":"MIT","_id":"altcha-lib@1.1.0","maintainers":[{"name":"ovx","email":"getc88@gmail.com"}],"homepage":"https://altcha.org","bugs":{"url":"https://github.com/altcha-org/altcha-lib/issues"},"dist":{"shasum":"33dea8adb058401a4229cd2ac00fd98f6eb5d01d","tarball":"https://registry.npmjs.org/altcha-lib/-/altcha-lib-1.1.0.tgz","fileCount":20,"integrity":"sha512-H1ML0YOoZb+H6lfU2GX5IOtcphpzlW/Nrrf537OcQOnRJcXu+wsTo6hs7cTjPFDEySlR3LTdVyTNHaq3fA5Gdg==","signatures":[{"sig":"MEUCIQCT5Wlv49nLS595/cWwneZQAzCy+7koOrRkpkSfaBi5AwIgMit7mfl35FUYQ/e9YWfy0h33iUHIgYuDcDEPJBYQzH4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/altcha-lib@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51438},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./cjs/dist/index.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js","default":"./dist/worker.js","require":"./cjs/dist/worker.js"}},"gitHead":"811afbfd87b65557004becf08f9c691437f1bbea","scripts":{"test":"vitest --run","build":"rimraf dist && rimraf cjs/dist && tsc -b tsconfig.build.json tsconfig.cjs.json","eslint":"eslint ./lib/**/*","format":"prettier --write './(lib|tests)/**/*'","denoify":"rimraf deno_dist && denoify && find deno_dist/. -type f -exec sed -i '' -e 's/node:node:/node:/g' {} +","prepare":"husky","test:deno":"deno test --allow-read tests/deno.ts"},"_npmUser":{"name":"ovx","email":"getc88@gmail.com"},"repository":{"url":"git+https://github.com/altcha-org/altcha-lib.git","type":"git"},"_npmVersion":"10.8.2","description":"A library for creating and verifying ALTCHA challenges for Node.js, Bun and Deno.","directories":{},"_nodeVersion":"20.17.0","typesVersions":{"*":{"types":["./dist/types"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","husky":"^9.1.5","eslint":"^8.57.0","rimraf":"^5.0.10","vitest":"^1.6.0","denoify":"^1.6.13","ts-node":"^10.9.2","prettier":"^3.3.3","typescript":"^5.5.4","@types/node":"^20.16.3","@typescript-eslint/eslint-plugin":"^8.4.0"},"_npmOperationalInternal":{"tmp":"tmp/altcha-lib_1.1.0_1726048148683_0.1507754685500562","host":"s3://npm-registry-packages"}},"1.1.1":{"name":"altcha-lib","version":"1.1.1","keywords":["altcha","captcha","antispam","captcha alternative"],"author":{"url":"https://altcha.org","name":"Daniel Regeci"},"license":"MIT","_id":"altcha-lib@1.1.1","maintainers":[{"name":"ovx","email":"getc88@gmail.com"}],"homepage":"https://altcha.org","bugs":{"url":"https://github.com/altcha-org/altcha-lib/issues"},"dist":{"shasum":"668fe12fbbcf02a262844112624899e303b0437b","tarball":"https://registry.npmjs.org/altcha-lib/-/altcha-lib-1.1.1.tgz","fileCount":20,"integrity":"sha512-dqL3ekjujIrFeHlb/YJLnb+Rc+GL6nK9dNt73ixQKRWIcA6tcWjEYCNZhHobwfnDMJYTmbMvJjYtCymTKnCYrQ==","signatures":[{"sig":"MEUCIQCxR8PDcGTxcyWNYWTyUOO3kRI55cm2sLYXcEkwzDZ9mwIgfhedbSW4RqIG0E7onRPsbSBuUwEkhGzjwkNshT4WyKk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/altcha-lib@1.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51438},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./cjs/dist/index.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js","default":"./dist/worker.js","require":"./cjs/dist/worker.js"}},"gitHead":"ff0f89c85219d438f0d563edfbab9ce22035f508","scripts":{"test":"vitest --run","build":"rimraf dist && rimraf cjs/dist && tsc -b tsconfig.build.json tsconfig.cjs.json","eslint":"eslint ./lib/**/*","format":"prettier --write './(lib|tests)/**/*'","denoify":"rimraf deno_dist && denoify && find deno_dist/. -type f -exec sed -i '' -e 's/node:node:/node:/g' {} +","prepare":"husky","test:deno":"deno test --allow-read tests/deno.ts"},"_npmUser":{"name":"ovx","email":"getc88@gmail.com"},"repository":{"url":"git+https://github.com/altcha-org/altcha-lib.git","type":"git"},"_npmVersion":"10.8.2","description":"A library for creating and verifying ALTCHA challenges for Node.js, Bun and Deno.","directories":{},"_nodeVersion":"20.18.0","typesVersions":{"*":{"types":["./dist/types"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","husky":"^9.1.5","eslint":"^8.57.0","rimraf":"^5.0.10","vitest":"^1.6.0","denoify":"^1.6.13","ts-node":"^10.9.2","prettier":"^3.3.3","typescript":"^5.5.4","@types/node":"^20.16.3","@typescript-eslint/eslint-plugin":"^8.4.0"},"_npmOperationalInternal":{"tmp":"tmp/altcha-lib_1.1.1_1731551893791_0.9375639430106721","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"altcha-lib","version":"1.2.0","keywords":["altcha","captcha","antispam","captcha alternative"],"author":{"url":"https://altcha.org","name":"Daniel Regeci"},"license":"MIT","_id":"altcha-lib@1.2.0","maintainers":[{"name":"ovx","email":"getc88@gmail.com"}],"homepage":"https://altcha.org","bugs":{"url":"https://github.com/altcha-org/altcha-lib/issues"},"dist":{"shasum":"a8b874ace261751473686adc5cc210be7449ba0d","tarball":"https://registry.npmjs.org/altcha-lib/-/altcha-lib-1.2.0.tgz","fileCount":20,"integrity":"sha512-S5WF8QLNRaM1hvK24XPhOLfu9is2EBCvH7+nv50sM5CaIdUCqQCd0WV/qm/ZZFGTdSoKLuDp+IapZxBLvC+SNg==","signatures":[{"sig":"MEUCIEDrElFysLe4jCtLGA52DHYxBT4FFiPX7VD2d8Pu8hjYAiEA+sX2vkzUiv8mF2pNb08PTTQYRixq6xga1SotPTieM9o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/altcha-lib@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51462},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./cjs/dist/index.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js","default":"./dist/worker.js","require":"./cjs/dist/worker.js"}},"gitHead":"f20f30193d5dbfa41695d97d40016a6c1925490f","scripts":{"test":"vitest --run","build":"rimraf dist && rimraf cjs/dist && tsc -b tsconfig.build.json tsconfig.cjs.json","eslint":"eslint ./lib/**/*","format":"prettier --write './(lib|tests)/**/*'","denoify":"rimraf deno_dist && denoify && find deno_dist/. -type f -exec sed -i '' -e 's/node:node:/node:/g' {} +","prepare":"husky","test:deno":"deno test --allow-read tests/deno.ts"},"_npmUser":{"name":"ovx","email":"getc88@gmail.com"},"repository":{"url":"git+https://github.com/altcha-org/altcha-lib.git","type":"git"},"_npmVersion":"10.8.2","description":"A library for creating and verifying ALTCHA challenges for Node.js, Bun and Deno.","directories":{},"_nodeVersion":"20.18.1","typesVersions":{"*":{"types":["./dist/types"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","husky":"^9.1.5","eslint":"^8.57.0","rimraf":"^5.0.10","vitest":"^1.6.0","denoify":"^1.6.13","ts-node":"^10.9.2","prettier":"^3.3.3","typescript":"^5.5.4","@types/node":"^20.16.3","@typescript-eslint/eslint-plugin":"^8.4.0"},"_npmOperationalInternal":{"tmp":"tmp/altcha-lib_1.2.0_1734742013739_0.6921900642441581","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"altcha-lib","version":"1.3.0","keywords":["altcha","captcha","antispam","captcha alternative"],"author":{"url":"https://altcha.org","name":"Daniel Regeci"},"license":"MIT","_id":"altcha-lib@1.3.0","maintainers":[{"name":"ovx","email":"getc88@gmail.com"}],"homepage":"https://altcha.org","bugs":{"url":"https://github.com/altcha-org/altcha-lib/issues"},"dist":{"shasum":"0db5d92710c5b38ec1d0ebec7ebe24642e18d29e","tarball":"https://registry.npmjs.org/altcha-lib/-/altcha-lib-1.3.0.tgz","fileCount":20,"integrity":"sha512-PpFg/JPuR+Jiud7Vs54XSDqDxvylcp+0oDa/i1ARxBA/iKDqLeNlO8PorQbfuDTMVLYRypAa/2VDK3nbBTAu5A==","signatures":[{"sig":"MEQCIHFr4p43jh85kYw8hVm9zqUm6KsriwnFokqz61oV++RgAiBErfeF4QGmWvJSMJx84F+uHx8ZX48RR155aGVgP4Ei6A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/altcha-lib@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51884},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./cjs/dist/index.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js","default":"./dist/worker.js","require":"./cjs/dist/worker.js"}},"gitHead":"49b04f8ac5eeaca318dd16a3de44e528901f7cd4","scripts":{"test":"vitest --run","build":"rimraf dist && rimraf cjs/dist && tsc -b tsconfig.build.json tsconfig.cjs.json","eslint":"eslint ./lib/**/*","format":"prettier --write './(lib|tests)/**/*'","denoify":"rimraf deno_dist && denoify && find deno_dist/. -type f -exec sed -i '' -e 's/node:node:/node:/g' {} +","prepare":"husky","test:deno":"deno test --allow-read tests/deno.ts"},"_npmUser":{"name":"ovx","email":"getc88@gmail.com"},"repository":{"url":"git+https://github.com/altcha-org/altcha-lib.git","type":"git"},"_npmVersion":"10.8.2","description":"A library for creating and verifying ALTCHA challenges for Node.js, Bun and Deno.","directories":{},"_nodeVersion":"20.19.2","typesVersions":{"*":{"types":["./dist/types"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","husky":"^9.1.5","eslint":"^8.57.0","rimraf":"^5.0.10","vitest":"^3.2.2","denoify":"^1.6.13","ts-node":"^10.9.2","prettier":"^3.3.3","typescript":"^5.5.4","@types/node":"^20.16.3","@typescript-eslint/eslint-plugin":"^8.4.0"},"_npmOperationalInternal":{"tmp":"tmp/altcha-lib_1.3.0_1749270401032_0.9021701951841501","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"altcha-lib","version":"1.4.0","keywords":["altcha","captcha","antispam","captcha alternative"],"author":{"url":"https://altcha.org","name":"Daniel Regeci"},"license":"MIT","_id":"altcha-lib@1.4.0","maintainers":[{"name":"ovx","email":"getc88@gmail.com"}],"homepage":"https://altcha.org","bugs":{"url":"https://github.com/altcha-org/altcha-lib/issues"},"dist":{"shasum":"3e06d85d956dc30f6ec2d602894f374c51eccaab","tarball":"https://registry.npmjs.org/altcha-lib/-/altcha-lib-1.4.0.tgz","fileCount":22,"integrity":"sha512-FE4U/J9cl0KMBwrh9BD5LRs3hYK4uQpQcDcUuoO3H5QxsWsYA5k8nkUIgpuTBcOnLVOGFhzrDVGXotIDpEwzbw==","signatures":[{"sig":"MEQCIAoS8Wzf+3DBK0vZwL6BvCXTf3bE3eOFNdEnJ+GShGI3AiBjQdaGV01CiaodSD/CQ9ZXyzxG8r1QDBklKZN1EII6Vg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/altcha-lib@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":52397},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./cjs/dist/index.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js","default":"./dist/worker.js","require":"./cjs/dist/worker.js"}},"gitHead":"e27afab1243e1ff1c1e0dd6e7be5985f83eb2310","scripts":{"test":"vitest --run","build":"rimraf dist && rimraf cjs/dist && tsc -b tsconfig.build.json tsconfig.cjs.json","eslint":"eslint ./lib/**/*","format":"prettier --write './(lib|tests)/**/*'","denoify":"rimraf deno_dist && denoify && find deno_dist/. -type f -exec sed -i '' -e 's/node:node:/node:/g' {} +","prepare":"husky","test:deno":"deno test --allow-read tests/deno.ts"},"_npmUser":{"name":"ovx","email":"getc88@gmail.com"},"repository":{"url":"git+https://github.com/altcha-org/altcha-lib.git","type":"git"},"_npmVersion":"10.8.2","description":"A library for creating and verifying ALTCHA challenges for Node.js, Bun and Deno.","directories":{},"_nodeVersion":"20.19.6","typesVersions":{"*":{"types":["./dist/types"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","vite":"^7.2.7","husky":"^9.1.7","eslint":"^8.57.1","rimraf":"^6.1.2","vitest":"^4.0.15","denoify":"^1.6.17","ts-node":"^10.9.2","prettier":"^3.7.4","typescript":"^5.9.3","@types/node":"^24.10.3","@typescript-eslint/eslint-plugin":"^8.49.0"},"_npmOperationalInternal":{"tmp":"tmp/altcha-lib_1.4.0_1765444296558_0.9712151048165489","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"altcha-lib","version":"1.4.1","keywords":["altcha","captcha","antispam","captcha alternative"],"author":{"url":"https://altcha.org","name":"Daniel Regeci"},"license":"MIT","_id":"altcha-lib@1.4.1","maintainers":[{"name":"ovx","email":"getc88@gmail.com"}],"homepage":"https://altcha.org","bugs":{"url":"https://github.com/altcha-org/altcha-lib/issues"},"dist":{"shasum":"1398f9f46d9e6941d1ddb1739f129f73cc708ce7","tarball":"https://registry.npmjs.org/altcha-lib/-/altcha-lib-1.4.1.tgz","fileCount":22,"integrity":"sha512-MAXP9tkQOA2SE9Gwoe3LAcZbcDpp3XzYc5GDVej/y3eMNaFG/eVnRY1/7SGFW0RPsViEjPf+hi5eANjuZrH1xA==","signatures":[{"sig":"MEQCIBQ2c8hz5oIb0oZfcQeW+l56+fWb1yDrLDArQKyWTPC5AiBvfvK15RbVvkB/law4k3cg7voyMP2NT72pdr8O4C6eNQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/altcha-lib@1.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":52359},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./cjs/dist/index.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js","default":"./dist/worker.js","require":"./cjs/dist/worker.js"}},"gitHead":"28051b3a8f8382eba3310512c99c89af79a62170","scripts":{"test":"vitest --run","build":"rimraf dist && rimraf cjs/dist && tsc -b tsconfig.build.json tsconfig.cjs.json","eslint":"eslint ./lib/**/*","format":"prettier --write './(lib|tests)/**/*'","denoify":"rimraf deno_dist && denoify && find deno_dist/. -type f -exec sed -i '' -e 's/node:node:/node:/g' {} +","prepare":"husky","test:deno":"deno test --allow-read tests/deno.ts"},"_npmUser":{"name":"ovx","email":"getc88@gmail.com"},"repository":{"url":"git+https://github.com/altcha-org/altcha-lib.git","type":"git"},"_npmVersion":"10.8.2","description":"A library for creating and verifying ALTCHA challenges for Node.js, Bun and Deno.","directories":{},"_nodeVersion":"20.19.6","typesVersions":{"*":{"types":["./dist/types"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","vite":"^7.2.7","husky":"^9.1.7","eslint":"^8.57.1","rimraf":"^6.1.2","vitest":"^4.0.15","denoify":"^1.6.17","ts-node":"^10.9.2","prettier":"^3.7.4","typescript":"^5.9.3","@types/node":"^24.10.3","@typescript-eslint/eslint-plugin":"^8.49.0"},"_npmOperationalInternal":{"tmp":"tmp/altcha-lib_1.4.1_1765620142829_0.45464750348986294","host":"s3://npm-registry-packages-npm-production"}},"2.0.0-beta.1":{"name":"altcha-lib","version":"2.0.0-beta.1","keywords":["altcha","captcha","antispam","captcha alternative"],"author":{"url":"https://altcha.org","name":"Daniel Regeci"},"license":"MIT","_id":"altcha-lib@2.0.0-beta.1","maintainers":[{"name":"ovx","email":"getc88@gmail.com"}],"homepage":"https://altcha.org","bugs":{"url":"https://github.com/altcha-org/altcha-lib/issues"},"bin":{"altcha-lib":"bin/cli.mjs"},"dist":{"shasum":"16a975303bad13e9bb3fe8c41b86e5c961c40e59","tarball":"https://registry.npmjs.org/altcha-lib/-/altcha-lib-2.0.0-beta.1.tgz","fileCount":130,"integrity":"sha512-4lVCOmb9ZYuC632T3FUQJmbOYVGCpyweKh2YxbMoMJhR9cpjj5nilFKeB44ar30C8qcxPWmMw2yZrvnx+K99tQ==","signatures":[{"sig":"MEQCIGzjg+WPWZj1wAL9pYVlACkdrh9Gqgf01HoEsTAYbREYAiAusI/zVpABhk2HMSCFRcOwyiW+z21aT8OYqkgdg5gT2w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/altcha-lib@2.0.0-beta.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":244183},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/esm/v2/index.d.ts","import":"./dist/esm/v2/index.js","default":"./dist/esm/v2/index.js","require":"./dist/cjs/v2/index.js"},"./v1":{"types":"./dist/esm/v1/index.d.ts","import":"./dist/esm/v1/index.js","default":"./dist/esm/v1/index.js","require":"./dist/cjs/v1/index.js"},"./types":{"types":"./dist/esm/v2/types.d.ts","import":"./dist/esm/v2/types.js"},"./v1/types":{"types":"./dist/esm/v1/types.d.ts","import":"./dist/esm/v1/types.js"},"./v1/worker":{"types":"./dist/esm/v1/worker.d.ts","import":"./dist/esm/v1/worker.js","default":"./dist/esm/v1/worker.js","require":"./dist/cjs/v1/worker.js"},"./workers/*":{"types":"./dist/esm/v2/workers/*.d.ts","import":"./dist/esm/v2/workers/*.js","require":"./dist/cjs/v2/workers/*.js"},"./obfuscation":{"types":"./dist/esm/v2/obfuscation.d.ts","import":"./dist/esm/v2/obfuscation.js","require":"./dist/cjs/v2/obfuscation.js"},"./algorithms/*":{"types":"./dist/esm/v2/algorithms/*.d.ts","import":"./dist/esm/v2/algorithms/*.js","require":"./dist/cjs/v2/algorithms/*.js"},"./frameworks/*":{"types":"./dist/esm/v2/frameworks/*.d.ts","import":"./dist/esm/v2/frameworks/*.js","require":"./dist/cjs/v2/frameworks/*.js"}},"gitHead":"e1a487fe1ca76ca874285031ed40a7d4e59a8b8c","scripts":{"lint":"eslint ./src/**/*","test":"vitest --run","build":"rimraf dist && tsc -b tsconfig.build.json tsconfig.cjs.json","format":"prettier --write './(src|tests)/**/*'","prepare":"husky"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20fdf274-8c38-4585-abc7-cbac6dba267d"}},"overrides":{"cookie":"^1.1.1","file-type":"^21.3.1"},"repository":{"url":"git+https://github.com/altcha-org/altcha-lib.git","type":"git"},"_npmVersion":"11.9.0","description":"A lightweight library for creating and verifying ALTCHA challenges on the server.","directories":{},"_nodeVersion":"24.14.0","typesVersions":{"*":{"types":["./dist/esm/v2/types"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"h3":"2.0.1-rc.16","tsx":"^4.21.0","cors":"^2.8.6","hono":"^4.12.5","vite":"^8.0.0","husky":"^9.1.7","eslint":"^10.0.3","rimraf":"^6.1.3","vitest":"^4.1.0","express":"^5.2.1","fastify":"^5.8.2","globals":"^17.4.0","ts-node":"^10.9.2","prettier":"^3.8.1","supertest":"^7.2.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","web-worker":"^1.5.0","@types/cors":"^2.8.19","@types/node":"^24.10.3","@nestjs/core":"^11.1.16","@fastify/cors":"^11.2.0","@sveltejs/kit":"^2.54.0","cookie-parser":"^1.4.7","@nestjs/common":"^11.1.16","@types/express":"^5.0.6","@fastify/cookie":"^11.0.2","@eslint/eslintrc":"^3.3.5","@types/supertest":"^7.2.0","@fastify/formbody":"^8.0.2","@types/cookie-parser":"^1.4.10","@nestjs/platform-express":"^11.1.16","@typescript-eslint/eslint-plugin":"^8.49.0"},"peerDependencies":{"h3":"^2.0.0","cors":"^2.0.0","hono":"^4.0.0","express":"^4.0.0 || ^5.0.0","fastify":"^5.0.0","@nestjs/core":"^10.0.0 || ^11.0.0","@fastify/cors":"^11.0.0","@sveltejs/kit":"^2.0.0","cookie-parser":"^1.0.0","@nestjs/common":"^10.0.0 || ^11.0.0","@fastify/cookie":"^11.0.0","@fastify/formbody":"^8.0.0","@nestjs/platform-express":"^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"h3":{"optional":true},"cors":{"optional":true},"hono":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"@nestjs/core":{"optional":true},"@fastify/cors":{"optional":true},"@sveltejs/kit":{"optional":true},"cookie-parser":{"optional":true},"@nestjs/common":{"optional":true},"@fastify/cookie":{"optional":true},"@fastify/formbody":{"optional":true},"@nestjs/platform-express":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/altcha-lib_2.0.0-beta.1_1773386561341_0.41967895252201215","host":"s3://npm-registry-packages-npm-production"}},"2.0.0-beta.2":{"name":"altcha-lib","version":"2.0.0-beta.2","keywords":["altcha","captcha","antispam","captcha alternative"],"author":{"url":"https://altcha.org","name":"Daniel Regeci"},"license":"MIT","_id":"altcha-lib@2.0.0-beta.2","maintainers":[{"name":"ovx","email":"getc88@gmail.com"}],"homepage":"https://altcha.org","bugs":{"url":"https://github.com/altcha-org/altcha-lib/issues"},"bin":{"altcha-lib":"bin/cli.mjs"},"dist":{"shasum":"51848946f309299c574efbade1a48249f21e1c8f","tarball":"https://registry.npmjs.org/altcha-lib/-/altcha-lib-2.0.0-beta.2.tgz","fileCount":130,"integrity":"sha512-s2OcPmsWX9iQslkzmBkdCtt9jk0Lkpq9CUa1o/1jrDriOb/C4uAbVJ7/QUc2yYJZRNHunPvyoYgtLqDYYll+tw==","signatures":[{"sig":"MEQCIH8FpbQOtTFwE/P/PuzReourtWWk9xUkX+1d/rszJJPzAiBSL68JyDKWo69+M4jlwFX3ZKrMYOIKSvb6DQEs66bOsQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/altcha-lib@2.0.0-beta.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":244539},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/esm/v2/index.d.ts","import":"./dist/esm/v2/index.js","default":"./dist/esm/v2/index.js","require":"./dist/cjs/v2/index.js"},"./v1":{"types":"./dist/esm/v1/index.d.ts","import":"./dist/esm/v1/index.js","default":"./dist/esm/v1/index.js","require":"./dist/cjs/v1/index.js"},"./types":{"types":"./dist/esm/v2/types.d.ts","import":"./dist/esm/v2/types.js"},"./v1/types":{"types":"./dist/esm/v1/types.d.ts","import":"./dist/esm/v1/types.js"},"./v1/worker":{"types":"./dist/esm/v1/worker.d.ts","import":"./dist/esm/v1/worker.js","default":"./dist/esm/v1/worker.js","require":"./dist/cjs/v1/worker.js"},"./workers/*":{"types":"./dist/esm/v2/workers/*.d.ts","import":"./dist/esm/v2/workers/*.js","require":"./dist/cjs/v2/workers/*.js"},"./obfuscation":{"types":"./dist/esm/v2/obfuscation.d.ts","import":"./dist/esm/v2/obfuscation.js","require":"./dist/cjs/v2/obfuscation.js"},"./algorithms/*":{"types":"./dist/esm/v2/algorithms/*.d.ts","import":"./dist/esm/v2/algorithms/*.js","require":"./dist/cjs/v2/algorithms/*.js"},"./frameworks/*":{"types":"./dist/esm/v2/frameworks/*.d.ts","import":"./dist/esm/v2/frameworks/*.js","require":"./dist/cjs/v2/frameworks/*.js"}},"gitHead":"729d35dbd2f1d12e640a68bb64616ebf2a8e7694","scripts":{"lint":"eslint ./src/**/*","test":"vitest --run","build":"rimraf dist && tsc -b tsconfig.build.json tsconfig.cjs.json","format":"prettier --write './(src|tests)/**/*'","prepare":"husky"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20fdf274-8c38-4585-abc7-cbac6dba267d"}},"overrides":{"cookie":"^1.1.1","file-type":"^21.3.1"},"repository":{"url":"git+https://github.com/altcha-org/altcha-lib.git","type":"git"},"_npmVersion":"11.9.0","description":"A lightweight library for creating and verifying ALTCHA challenges on the server.","directories":{},"_nodeVersion":"24.14.0","typesVersions":{"*":{"types":["./dist/esm/v2/types"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"h3":"^2.0.1-rc.18","tsx":"^4.21.0","cors":"^2.8.6","hono":"^4.12.5","vite":"^8.0.0","husky":"^9.1.7","eslint":"^10.0.3","rimraf":"^6.1.3","vitest":"^4.1.0","express":"^5.2.1","fastify":"^5.8.2","globals":"^17.4.0","ts-node":"^10.9.2","prettier":"^3.8.1","supertest":"^7.2.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","web-worker":"^1.5.0","@types/cors":"^2.8.19","@types/node":"^24.10.3","@nestjs/core":"^11.1.16","@fastify/cors":"^11.2.0","@sveltejs/kit":"^2.54.0","cookie-parser":"^1.4.7","@nestjs/common":"^11.1.16","@types/express":"^5.0.6","@fastify/cookie":"^11.0.2","@eslint/eslintrc":"^3.3.5","@types/supertest":"^7.2.0","@fastify/formbody":"^8.0.2","@types/cookie-parser":"^1.4.10","@nestjs/platform-express":"^11.1.16","@typescript-eslint/eslint-plugin":"^8.49.0"},"peerDependencies":{"h3":"^2.0.0","cors":"^2.0.0","hono":"^4.0.0","express":"^4.0.0 || ^5.0.0","fastify":"^5.0.0","@nestjs/core":"^10.0.0 || ^11.0.0","@fastify/cors":"^11.0.0","@sveltejs/kit":"^2.0.0","cookie-parser":"^1.0.0","@nestjs/common":"^10.0.0 || ^11.0.0","@fastify/cookie":"^11.0.0","@fastify/formbody":"^8.0.0","@nestjs/platform-express":"^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"h3":{"optional":true},"cors":{"optional":true},"hono":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"@nestjs/core":{"optional":true},"@fastify/cors":{"optional":true},"@sveltejs/kit":{"optional":true},"cookie-parser":{"optional":true},"@nestjs/common":{"optional":true},"@fastify/cookie":{"optional":true},"@fastify/formbody":{"optional":true},"@nestjs/platform-express":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/altcha-lib_2.0.0-beta.2_1774167924931_0.9574718900943415","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"altcha-lib","version":"2.0.0","keywords":["altcha","captcha","antispam","captcha alternative"],"author":{"url":"https://altcha.org","name":"Daniel Regeci"},"license":"MIT","_id":"altcha-lib@2.0.0","maintainers":[{"name":"ovx","email":"getc88@gmail.com"}],"homepage":"https://altcha.org","bugs":{"url":"https://github.com/altcha-org/altcha-lib/issues"},"bin":{"altcha-lib":"bin/cli.mjs"},"dist":{"shasum":"808358e71a9aaf390d1417a4c2c6a4d6c53984fe","tarball":"https://registry.npmjs.org/altcha-lib/-/altcha-lib-2.0.0.tgz","fileCount":130,"integrity":"sha512-/SqPYX06Y6aQuOnWcLx4zV1mDdqdNQSvKkyHnVmgMR3huHzUkT54La/47hGdXTVan0u+P4NTJBX+1dLAfjZaDA==","signatures":[{"sig":"MEUCIHKiy/jxdkR3v2tyccRgQJhduV43uNrI2stPNyRIp26ZAiEAq9p8wVgafrQxeKvU48e2BQuVoMZ/6tbP7fywxr+Cc0U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/altcha-lib@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":244532},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/esm/v2/index.d.ts","import":"./dist/esm/v2/index.js","default":"./dist/esm/v2/index.js","require":"./dist/cjs/v2/index.js"},"./v1":{"types":"./dist/esm/v1/index.d.ts","import":"./dist/esm/v1/index.js","default":"./dist/esm/v1/index.js","require":"./dist/cjs/v1/index.js"},"./types":{"types":"./dist/esm/v2/types.d.ts","import":"./dist/esm/v2/types.js"},"./v1/types":{"types":"./dist/esm/v1/types.d.ts","import":"./dist/esm/v1/types.js"},"./v1/worker":{"types":"./dist/esm/v1/worker.d.ts","import":"./dist/esm/v1/worker.js","default":"./dist/esm/v1/worker.js","require":"./dist/cjs/v1/worker.js"},"./workers/*":{"types":"./dist/esm/v2/workers/*.d.ts","import":"./dist/esm/v2/workers/*.js","require":"./dist/cjs/v2/workers/*.js"},"./obfuscation":{"types":"./dist/esm/v2/obfuscation.d.ts","import":"./dist/esm/v2/obfuscation.js","require":"./dist/cjs/v2/obfuscation.js"},"./algorithms/*":{"types":"./dist/esm/v2/algorithms/*.d.ts","import":"./dist/esm/v2/algorithms/*.js","require":"./dist/cjs/v2/algorithms/*.js"},"./frameworks/*":{"types":"./dist/esm/v2/frameworks/*.d.ts","import":"./dist/esm/v2/frameworks/*.js","require":"./dist/cjs/v2/frameworks/*.js"}},"gitHead":"8a9ab968b85e62c503ab04f1a0cc0ce9cdde7765","scripts":{"lint":"eslint ./src/**/*","test":"vitest --run","build":"rimraf dist && tsc -b tsconfig.build.json tsconfig.cjs.json","format":"prettier --write './(src|tests)/**/*'","prepare":"husky"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20fdf274-8c38-4585-abc7-cbac6dba267d"}},"overrides":{"cookie":"^1.1.1","file-type":"^21.3.1"},"repository":{"url":"git+https://github.com/altcha-org/altcha-lib.git","type":"git"},"_npmVersion":"11.11.0","description":"A lightweight library for creating and verifying ALTCHA challenges on the server.","directories":{},"_nodeVersion":"24.14.1","typesVersions":{"*":{"types":["./dist/esm/v2/types"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"h3":"^2.0.1-rc.18","tsx":"^4.21.0","cors":"^2.8.6","hono":"^4.12.5","vite":"^8.0.0","husky":"^9.1.7","eslint":"^10.0.3","rimraf":"^6.1.3","vitest":"^4.1.0","express":"^5.2.1","fastify":"^5.8.2","globals":"^17.4.0","ts-node":"^10.9.2","prettier":"^3.8.1","supertest":"^7.2.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","web-worker":"^1.5.0","@types/cors":"^2.8.19","@types/node":"^24.10.3","@nestjs/core":"^11.1.16","@fastify/cors":"^11.2.0","@sveltejs/kit":"^2.54.0","cookie-parser":"^1.4.7","@nestjs/common":"^11.1.16","@types/express":"^5.0.6","@fastify/cookie":"^11.0.2","@eslint/eslintrc":"^3.3.5","@types/supertest":"^7.2.0","@fastify/formbody":"^8.0.2","@types/cookie-parser":"^1.4.10","@nestjs/platform-express":"^11.1.16","@typescript-eslint/eslint-plugin":"^8.49.0"},"peerDependencies":{"h3":"^2.0.0","cors":"^2.0.0","hono":"^4.0.0","express":"^4.0.0 || ^5.0.0","fastify":"^5.0.0","@nestjs/core":"^10.0.0 || ^11.0.0","@fastify/cors":"^11.0.0","@sveltejs/kit":"^2.0.0","cookie-parser":"^1.0.0","@nestjs/common":"^10.0.0 || ^11.0.0","@fastify/cookie":"^11.0.0","@fastify/formbody":"^8.0.0","@nestjs/platform-express":"^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"h3":{"optional":true},"cors":{"optional":true},"hono":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"@nestjs/core":{"optional":true},"@fastify/cors":{"optional":true},"@sveltejs/kit":{"optional":true},"cookie-parser":{"optional":true},"@nestjs/common":{"optional":true},"@fastify/cookie":{"optional":true},"@fastify/formbody":{"optional":true},"@nestjs/platform-express":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/altcha-lib_2.0.0_1775560042106_0.661917539780069","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"altcha-lib","version":"2.0.1","keywords":["altcha","captcha","antispam","captcha alternative"],"author":{"url":"https://altcha.org","name":"Daniel Regeci"},"license":"MIT","_id":"altcha-lib@2.0.1","maintainers":[{"name":"ovx","email":"getc88@gmail.com"}],"homepage":"https://altcha.org","bugs":{"url":"https://github.com/altcha-org/altcha-lib/issues"},"bin":{"altcha-lib":"bin/cli.mjs"},"dist":{"shasum":"798d9bb64665aa35837e851f04524f125259ba7f","tarball":"https://registry.npmjs.org/altcha-lib/-/altcha-lib-2.0.1.tgz","fileCount":130,"integrity":"sha512-VA+ZNHRKYymM62XlzCkLhmVGSZ6GHZEpTqU5AL5DMNiNMqA8Wfl2MpC5f2olCuBWHzrYjV5NoXYPJt4zKWkJkA==","signatures":[{"sig":"MEUCIQCLVFZmjcOvwb9/mtmouNfJ3hqkrdBmFV3JqYst0joyXAIgHDMq150BT10foePPwU8yUlxCwQcFNDaeNir1kNCAdac=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/altcha-lib@2.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":252692},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/esm/v2/index.d.ts","import":"./dist/esm/v2/index.js","default":"./dist/esm/v2/index.js","require":"./dist/cjs/v2/index.js"},"./v1":{"types":"./dist/esm/v1/index.d.ts","import":"./dist/esm/v1/index.js","default":"./dist/esm/v1/index.js","require":"./dist/cjs/v1/index.js"},"./types":{"types":"./dist/esm/v2/types.d.ts","import":"./dist/esm/v2/types.js"},"./v1/types":{"types":"./dist/esm/v1/types.d.ts","import":"./dist/esm/v1/types.js"},"./v1/worker":{"types":"./dist/esm/v1/worker.d.ts","import":"./dist/esm/v1/worker.js","default":"./dist/esm/v1/worker.js","require":"./dist/cjs/v1/worker.js"},"./workers/*":{"types":"./dist/esm/v2/workers/*.d.ts","import":"./dist/esm/v2/workers/*.js","require":"./dist/cjs/v2/workers/*.js"},"./obfuscation":{"types":"./dist/esm/v2/obfuscation.d.ts","import":"./dist/esm/v2/obfuscation.js","require":"./dist/cjs/v2/obfuscation.js"},"./algorithms/*":{"types":"./dist/esm/v2/algorithms/*.d.ts","import":"./dist/esm/v2/algorithms/*.js","require":"./dist/cjs/v2/algorithms/*.js"},"./frameworks/*":{"types":"./dist/esm/v2/frameworks/*.d.ts","import":"./dist/esm/v2/frameworks/*.js","require":"./dist/cjs/v2/frameworks/*.js"}},"gitHead":"ee96a5bf86458d4e9aab3d4057d4e1495dc78b7b","scripts":{"lint":"eslint ./src/**/*","test":"vitest --run","build":"rimraf dist && tsc -b tsconfig.build.json tsconfig.cjs.json","format":"prettier --write './(src|tests)/**/*'","prepare":"husky"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20fdf274-8c38-4585-abc7-cbac6dba267d"}},"overrides":{"cookie":"^1.1.1","file-type":"^21.3.1"},"repository":{"url":"git+https://github.com/altcha-org/altcha-lib.git","type":"git"},"_npmVersion":"11.11.0","description":"A lightweight library for creating and verifying ALTCHA challenges on the server.","directories":{},"_nodeVersion":"24.14.1","typesVersions":{"*":{"types":["./dist/esm/v2/types"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"h3":"^2.0.1-rc.18","tsx":"^4.21.0","cors":"^2.8.6","hono":"^4.12.12","vite":"^8.0.0","husky":"^9.1.7","eslint":"^10.0.3","rimraf":"^6.1.3","vitest":"^4.1.0","express":"^5.2.1","fastify":"^5.8.2","globals":"^17.4.0","ts-node":"^10.9.2","prettier":"^3.8.1","supertest":"^7.2.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","web-worker":"^1.5.0","@types/cors":"^2.8.19","@types/node":"^24.10.3","@nestjs/core":"^11.1.16","@fastify/cors":"^11.2.0","@sveltejs/kit":"^2.54.0","cookie-parser":"^1.4.7","@nestjs/common":"^11.1.16","@types/express":"^5.0.6","@fastify/cookie":"^11.0.2","@eslint/eslintrc":"^3.3.5","@types/supertest":"^7.2.0","@fastify/formbody":"^8.0.2","@types/cookie-parser":"^1.4.10","@nestjs/platform-express":"^11.1.16","@typescript-eslint/eslint-plugin":"^8.49.0"},"peerDependencies":{"h3":"^2.0.0","cors":"^2.0.0","hono":"^4.0.0","express":"^4.0.0 || ^5.0.0","fastify":"^5.0.0","@nestjs/core":"^10.0.0 || ^11.0.0","@fastify/cors":"^11.0.0","@sveltejs/kit":"^2.0.0","cookie-parser":"^1.0.0","@nestjs/common":"^10.0.0 || ^11.0.0","@fastify/cookie":"^11.0.0","@fastify/formbody":"^8.0.0","@nestjs/platform-express":"^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"h3":{"optional":true},"cors":{"optional":true},"hono":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"@nestjs/core":{"optional":true},"@fastify/cors":{"optional":true},"@sveltejs/kit":{"optional":true},"cookie-parser":{"optional":true},"@nestjs/common":{"optional":true},"@fastify/cookie":{"optional":true},"@fastify/formbody":{"optional":true},"@nestjs/platform-express":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/altcha-lib_2.0.1_1775749503823_0.19348504346065387","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"altcha-lib","version":"2.0.2","keywords":["altcha","captcha","antispam","captcha alternative"],"author":{"url":"https://altcha.org","name":"Daniel Regeci"},"license":"MIT","_id":"altcha-lib@2.0.2","maintainers":[{"name":"ovx","email":"getc88@gmail.com"}],"homepage":"https://altcha.org","bugs":{"url":"https://github.com/altcha-org/altcha-lib/issues"},"bin":{"altcha-lib":"bin/cli.mjs"},"dist":{"shasum":"bc921c787728d12d1ca71316228348ec3ca5fb91","tarball":"https://registry.npmjs.org/altcha-lib/-/altcha-lib-2.0.2.tgz","fileCount":130,"integrity":"sha512-0NhKcjYyOnQ1EPMIkp7PCis0pRa4yvl+0xThoDG62ghpAsBrVEEE44r/CAntvzFifK/h51oRIx7Y0yMIxhFQpQ==","signatures":[{"sig":"MEYCIQCXCnDhMQ5OvOw63XVbOJPLl9UCV3+5/7cVf+k8JBZ6swIhAOpTgg8SEdG9pG2Q3ymMXyUG8UmOTPD6fKVAzMAECgRe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/altcha-lib@2.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":262481},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/esm/v2/index.d.ts","import":"./dist/esm/v2/index.js","default":"./dist/esm/v2/index.js","require":"./dist/cjs/v2/index.js"},"./v1":{"types":"./dist/esm/v1/index.d.ts","import":"./dist/esm/v1/index.js","default":"./dist/esm/v1/index.js","require":"./dist/cjs/v1/index.js"},"./types":{"types":"./dist/esm/v2/types.d.ts","import":"./dist/esm/v2/types.js"},"./v1/types":{"types":"./dist/esm/v1/types.d.ts","import":"./dist/esm/v1/types.js"},"./v1/worker":{"types":"./dist/esm/v1/worker.d.ts","import":"./dist/esm/v1/worker.js","default":"./dist/esm/v1/worker.js","require":"./dist/cjs/v1/worker.js"},"./workers/*":{"types":"./dist/esm/v2/workers/*.d.ts","import":"./dist/esm/v2/workers/*.js","require":"./dist/cjs/v2/workers/*.js"},"./obfuscation":{"types":"./dist/esm/v2/obfuscation.d.ts","import":"./dist/esm/v2/obfuscation.js","require":"./dist/cjs/v2/obfuscation.js"},"./algorithms/*":{"types":"./dist/esm/v2/algorithms/*.d.ts","import":"./dist/esm/v2/algorithms/*.js","require":"./dist/cjs/v2/algorithms/*.js"},"./frameworks/*":{"types":"./dist/esm/v2/frameworks/*.d.ts","import":"./dist/esm/v2/frameworks/*.js","require":"./dist/cjs/v2/frameworks/*.js"}},"gitHead":"455d85aeffcec001bc78781188bf8ad7077d6c5c","scripts":{"lint":"eslint ./src/**/*","test":"vitest --run","build":"rimraf dist && tsc -b tsconfig.build.json tsconfig.cjs.json","format":"prettier --write './(src|tests)/**/*'","prepare":"husky"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20fdf274-8c38-4585-abc7-cbac6dba267d"}},"overrides":{"cookie":"^1.1.1","file-type":"^21.3.1"},"repository":{"url":"git+https://github.com/altcha-org/altcha-lib.git","type":"git"},"_npmVersion":"11.11.0","description":"A lightweight library for creating and verifying ALTCHA challenges on the server.","directories":{},"_nodeVersion":"24.14.1","typesVersions":{"*":{"types":["./dist/esm/v2/types"]}},"_hasShrinkwrap":false,"devDependencies":{"h3":"^2.0.1-rc.18","tsx":"^4.21.0","cors":"^2.8.6","hono":"^4.12.12","vite":"^8.0.0","husky":"^9.1.7","eslint":"^10.0.3","rimraf":"^6.1.3","vitest":"^4.1.0","express":"^5.2.1","fastify":"^5.8.2","globals":"^17.4.0","ts-node":"^10.9.2","prettier":"^3.8.1","supertest":"^7.2.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","web-worker":"^1.5.0","@types/cors":"^2.8.19","@types/node":"^24.10.3","@nestjs/core":"^11.1.16","@fastify/cors":"^11.2.0","@sveltejs/kit":"^2.54.0","cookie-parser":"^1.4.7","@nestjs/common":"^11.1.16","@types/express":"^5.0.6","@fastify/cookie":"^11.0.2","@eslint/eslintrc":"^3.3.5","@types/supertest":"^7.2.0","@fastify/formbody":"^8.0.2","@types/cookie-parser":"^1.4.10","@nestjs/platform-express":"^11.1.16","@typescript-eslint/eslint-plugin":"^8.49.0"},"peerDependencies":{"h3":"^2.0.0","cors":"^2.0.0","hono":"^4.0.0","express":"^4.0.0 || ^5.0.0","fastify":"^5.0.0","@nestjs/core":"^10.0.0 || ^11.0.0","@fastify/cors":"^11.0.0","@sveltejs/kit":"^2.0.0","cookie-parser":"^1.0.0","@nestjs/common":"^10.0.0 || ^11.0.0","@fastify/cookie":"^11.0.0","@fastify/formbody":"^8.0.0","@nestjs/platform-express":"^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"h3":{"optional":true},"cors":{"optional":true},"hono":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"@nestjs/core":{"optional":true},"@fastify/cors":{"optional":true},"@sveltejs/kit":{"optional":true},"cookie-parser":{"optional":true},"@nestjs/common":{"optional":true},"@fastify/cookie":{"optional":true},"@fastify/formbody":{"optional":true},"@nestjs/platform-express":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/altcha-lib_2.0.2_1776258318503_0.07079547427132127","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"altcha-lib","version":"2.0.3","keywords":["altcha","captcha","antispam","captcha alternative"],"author":{"url":"https://altcha.org","name":"Daniel Regeci"},"license":"MIT","_id":"altcha-lib@2.0.3","maintainers":[{"name":"ovx","email":"getc88@gmail.com"}],"homepage":"https://altcha.org","bugs":{"url":"https://github.com/altcha-org/altcha-lib/issues"},"bin":{"altcha-lib":"bin/cli.mjs"},"dist":{"shasum":"1e19644112742d3d24a23b2c6d59655b5208d7d5","tarball":"https://registry.npmjs.org/altcha-lib/-/altcha-lib-2.0.3.tgz","fileCount":131,"integrity":"sha512-rbBOrVcg5DiBPfn5dfhT+7J5k/Dqtj4seR5m1BB+w0QK4pZOBSS0ZpZ5PkolypmR315/SVbpXHM/QuL0kH5Seg==","signatures":[{"sig":"MEYCIQCUfLX+4PZMQje3i/obKyXpyGwMK/75uhDWfo2vtEmtigIhALy+Lvva86s35TI6ITn4ZOL3X8LEexf6G3/BxvZ1+PLc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/altcha-lib@2.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":262559},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/esm/v2/index.d.ts","import":"./dist/esm/v2/index.js","default":"./dist/esm/v2/index.js","require":"./dist/cjs/v2/index.js"},"./v1":{"types":"./dist/esm/v1/index.d.ts","import":"./dist/esm/v1/index.js","default":"./dist/esm/v1/index.js","require":"./dist/cjs/v1/index.js"},"./types":{"types":"./dist/esm/v2/types.d.ts","import":"./dist/esm/v2/types.js"},"./v1/types":{"types":"./dist/esm/v1/types.d.ts","import":"./dist/esm/v1/types.js"},"./v1/worker":{"types":"./dist/esm/v1/worker.d.ts","import":"./dist/esm/v1/worker.js","default":"./dist/esm/v1/worker.js","require":"./dist/cjs/v1/worker.js"},"./workers/*":{"types":"./dist/esm/v2/workers/*.d.ts","import":"./dist/esm/v2/workers/*.js","require":"./dist/cjs/v2/workers/*.js"},"./obfuscation":{"types":"./dist/esm/v2/obfuscation.d.ts","import":"./dist/esm/v2/obfuscation.js","require":"./dist/cjs/v2/obfuscation.js"},"./algorithms/*":{"types":"./dist/esm/v2/algorithms/*.d.ts","import":"./dist/esm/v2/algorithms/*.js","require":"./dist/cjs/v2/algorithms/*.js"},"./frameworks/*":{"types":"./dist/esm/v2/frameworks/*.d.ts","import":"./dist/esm/v2/frameworks/*.js","require":"./dist/cjs/v2/frameworks/*.js"}},"gitHead":"0e2f38b667b06302b61167b3ab68eb1f4c5709bf","scripts":{"lint":"eslint ./src/**/*","test":"vitest --run","build":"rimraf dist && tsc -b tsconfig.build.json tsconfig.cjs.json && echo '{\"type\":\"commonjs\"}' > dist/cjs/package.json","format":"prettier --write './(src|tests)/**/*'","prepare":"husky"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20fdf274-8c38-4585-abc7-cbac6dba267d"}},"overrides":{"cookie":"^1.1.1","file-type":"^21.3.1"},"repository":{"url":"git+https://github.com/altcha-org/altcha-lib.git","type":"git"},"_npmVersion":"11.11.0","description":"A lightweight library for creating and verifying ALTCHA challenges on the server.","directories":{},"_nodeVersion":"24.14.1","typesVersions":{"*":{"types":["./dist/esm/v2/types"]}},"_hasShrinkwrap":false,"devDependencies":{"h3":"^2.0.1-rc.18","tsx":"^4.21.0","cors":"^2.8.6","hono":"^4.12.14","vite":"^8.0.0","husky":"^9.1.7","eslint":"^10.0.3","rimraf":"^6.1.3","vitest":"^4.1.0","express":"^5.2.1","fastify":"^5.8.5","globals":"^17.4.0","ts-node":"^10.9.2","prettier":"^3.8.1","supertest":"^7.2.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","web-worker":"^1.5.0","@types/cors":"^2.8.19","@types/node":"^24.10.3","@nestjs/core":"^11.1.16","@fastify/cors":"^11.2.0","@sveltejs/kit":"^2.54.0","cookie-parser":"^1.4.7","@nestjs/common":"^11.1.16","@types/express":"^5.0.6","@fastify/cookie":"^11.0.2","@eslint/eslintrc":"^3.3.5","@types/supertest":"^7.2.0","@fastify/formbody":"^8.0.2","@types/cookie-parser":"^1.4.10","@nestjs/platform-express":"^11.1.16","@typescript-eslint/eslint-plugin":"^8.49.0"},"peerDependencies":{"h3":"^2.0.0","cors":"^2.0.0","hono":"^4.0.0","express":"^4.0.0 || ^5.0.0","fastify":"^5.0.0","@nestjs/core":"^10.0.0 || ^11.0.0","@fastify/cors":"^11.0.0","@sveltejs/kit":"^2.0.0","cookie-parser":"^1.0.0","@nestjs/common":"^10.0.0 || ^11.0.0","@fastify/cookie":"^11.0.0","@fastify/formbody":"^8.0.0","@nestjs/platform-express":"^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"h3":{"optional":true},"cors":{"optional":true},"hono":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"@nestjs/core":{"optional":true},"@fastify/cors":{"optional":true},"@sveltejs/kit":{"optional":true},"cookie-parser":{"optional":true},"@nestjs/common":{"optional":true},"@fastify/cookie":{"optional":true},"@fastify/formbody":{"optional":true},"@nestjs/platform-express":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/altcha-lib_2.0.3_1776925962591_0.9277319966574313","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"altcha-lib","version":"2.1.0","keywords":["altcha","captcha","antispam","captcha alternative"],"author":{"url":"https://altcha.org","name":"Daniel Regeci"},"license":"MIT","_id":"altcha-lib@2.1.0","maintainers":[{"name":"ovx","email":"getc88@gmail.com"}],"homepage":"https://altcha.org","bugs":{"url":"https://github.com/altcha-org/altcha-lib/issues"},"bin":{"altcha-lib":"bin/cli.mjs"},"dist":{"shasum":"061b42272b7e327b3e27c6bb1b1f339b87d8d796","tarball":"https://registry.npmjs.org/altcha-lib/-/altcha-lib-2.1.0.tgz","fileCount":131,"integrity":"sha512-pBQmqY7bDLvwNJXy7rXImny5RRjjpoXQ+ZyW4/7RayFK5YrpubRuwZid46Nq/Ub1Ry944guzQJ4eNLIdciKlwA==","signatures":[{"sig":"MEUCIQCHaZQ+lvosNpRFXnPzDVJT05j8MsspxheFVXOjls8qdQIgCvEynye0ETAQK2ego3XYNX17NcZM1KY9q7/Flp8ollU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/altcha-lib@2.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":262587},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/esm/v2/index.d.ts","import":"./dist/esm/v2/index.js","default":"./dist/esm/v2/index.js","require":"./dist/cjs/v2/index.js"},"./v1":{"types":"./dist/esm/v1/index.d.ts","import":"./dist/esm/v1/index.js","default":"./dist/esm/v1/index.js","require":"./dist/cjs/v1/index.js"},"./types":{"types":"./dist/esm/v2/types.d.ts","import":"./dist/esm/v2/types.js"},"./v1/types":{"types":"./dist/esm/v1/types.d.ts","import":"./dist/esm/v1/types.js"},"./v1/worker":{"types":"./dist/esm/v1/worker.d.ts","import":"./dist/esm/v1/worker.js","default":"./dist/esm/v1/worker.js","require":"./dist/cjs/v1/worker.js"},"./workers/*":{"types":"./dist/esm/v2/workers/*.d.ts","import":"./dist/esm/v2/workers/*.js","require":"./dist/cjs/v2/workers/*.js"},"./obfuscation":{"types":"./dist/esm/v2/obfuscation.d.ts","import":"./dist/esm/v2/obfuscation.js","require":"./dist/cjs/v2/obfuscation.js"},"./algorithms/*":{"types":"./dist/esm/v2/algorithms/*.d.ts","import":"./dist/esm/v2/algorithms/*.js","require":"./dist/cjs/v2/algorithms/*.js"},"./frameworks/*":{"types":"./dist/esm/v2/frameworks/*.d.ts","import":"./dist/esm/v2/frameworks/*.js","require":"./dist/cjs/v2/frameworks/*.js"}},"gitHead":"a78c7c80263ef23b3f5cd250986e7bc339059f91","scripts":{"lint":"eslint ./src/**/*","test":"vitest --run","build":"rimraf dist && tsc -b tsconfig.build.json tsconfig.cjs.json && echo '{\"type\":\"commonjs\"}' > dist/cjs/package.json","format":"prettier --write './(src|tests)/**/*'","prepare":"husky"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20fdf274-8c38-4585-abc7-cbac6dba267d"}},"overrides":{"cookie":"^1.1.1","file-type":"^21.3.1"},"repository":{"url":"git+https://github.com/altcha-org/altcha-lib.git","type":"git"},"_npmVersion":"11.12.1","description":"A lightweight library for creating and verifying ALTCHA challenges on the server.","directories":{},"_nodeVersion":"24.15.0","typesVersions":{"*":{"types":["./dist/esm/v2/types"]}},"_hasShrinkwrap":false,"devDependencies":{"h3":"^2.0.1-rc.18","tsx":"^4.21.0","cors":"^2.8.6","hono":"^4.12.14","vite":"^8.0.0","husky":"^9.1.7","eslint":"^10.0.3","rimraf":"^6.1.3","vitest":"^4.1.0","express":"^5.2.1","fastify":"^5.8.5","globals":"^17.4.0","ts-node":"^10.9.2","prettier":"^3.8.1","supertest":"^7.2.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","web-worker":"^1.5.0","@types/cors":"^2.8.19","@types/node":"^24.10.3","@nestjs/core":"^11.1.16","@fastify/cors":"^11.2.0","@sveltejs/kit":"^2.54.0","cookie-parser":"^1.4.7","@nestjs/common":"^11.1.16","@types/express":"^5.0.6","@fastify/cookie":"^11.0.2","@eslint/eslintrc":"^3.3.5","@types/supertest":"^7.2.0","@fastify/formbody":"^8.0.2","@types/cookie-parser":"^1.4.10","@nestjs/platform-express":"^11.1.16","@typescript-eslint/eslint-plugin":"^8.49.0"},"peerDependencies":{"h3":"^2.0.0","cors":"^2.0.0","hono":"^4.0.0","express":"^4.0.0 || ^5.0.0","fastify":"^5.0.0","@nestjs/core":"^10.0.0 || ^11.0.0","@fastify/cors":"^11.0.0","@sveltejs/kit":"^2.0.0","cookie-parser":"^1.0.0","@nestjs/common":"^10.0.0 || ^11.0.0","@fastify/cookie":"^11.0.0","@fastify/formbody":"^8.0.0","@nestjs/platform-express":"^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"h3":{"optional":true},"cors":{"optional":true},"hono":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"@nestjs/core":{"optional":true},"@fastify/cors":{"optional":true},"@sveltejs/kit":{"optional":true},"cookie-parser":{"optional":true},"@nestjs/common":{"optional":true},"@fastify/cookie":{"optional":true},"@fastify/formbody":{"optional":true},"@nestjs/platform-express":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/altcha-lib_2.1.0_1779262858850_0.45550965134759847","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"altcha-lib","version":"2.2.0","keywords":["altcha","captcha","antispam","captcha alternative"],"author":{"url":"https://altcha.org","name":"Daniel Regeci"},"license":"MIT","_id":"altcha-lib@2.2.0","maintainers":[{"name":"ovx","email":"getc88@gmail.com"}],"homepage":"https://altcha.org","bugs":{"url":"https://github.com/altcha-org/altcha-lib/issues"},"bin":{"altcha-lib":"bin/cli.mjs"},"dist":{"shasum":"6cf75eb6586ad02faf5616aa9b3011a46227481b","tarball":"https://registry.npmjs.org/altcha-lib/-/altcha-lib-2.2.0.tgz","fileCount":131,"integrity":"sha512-O4+q6+JECTRgse9NVDsAJ8PwWhYpb+iAlT3wVcZ/BMGv2wkumAGWK3GE5FGbgzI7K5CJLDoNBKuQBUQui+62Ig==","signatures":[{"sig":"MEQCIH3W1n+n/NHHGLJJiDDmXG6HhJ01pwudN123J58lODH4AiAXr9EhIHzZ9/yQBWUtKhJReUSZ7CgY91uVT8lisNL7lg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/altcha-lib@2.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":262364},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/esm/v2/index.d.ts","import":"./dist/esm/v2/index.js","default":"./dist/esm/v2/index.js","require":"./dist/cjs/v2/index.js"},"./v1":{"types":"./dist/esm/v1/index.d.ts","import":"./dist/esm/v1/index.js","default":"./dist/esm/v1/index.js","require":"./dist/cjs/v1/index.js"},"./types":{"types":"./dist/esm/v2/types.d.ts","import":"./dist/esm/v2/types.js"},"./v1/types":{"types":"./dist/esm/v1/types.d.ts","import":"./dist/esm/v1/types.js"},"./v1/worker":{"types":"./dist/esm/v1/worker.d.ts","import":"./dist/esm/v1/worker.js","default":"./dist/esm/v1/worker.js","require":"./dist/cjs/v1/worker.js"},"./workers/*":{"types":"./dist/esm/v2/workers/*.d.ts","import":"./dist/esm/v2/workers/*.js","require":"./dist/cjs/v2/workers/*.js"},"./obfuscation":{"types":"./dist/esm/v2/obfuscation.d.ts","import":"./dist/esm/v2/obfuscation.js","require":"./dist/cjs/v2/obfuscation.js"},"./algorithms/*":{"types":"./dist/esm/v2/algorithms/*.d.ts","import":"./dist/esm/v2/algorithms/*.js","require":"./dist/cjs/v2/algorithms/*.js"},"./frameworks/*":{"types":"./dist/esm/v2/frameworks/*.d.ts","import":"./dist/esm/v2/frameworks/*.js","require":"./dist/cjs/v2/frameworks/*.js"}},"gitHead":"afa9260211a65b4fe34e87123939b1fbeb90ba80","scripts":{"lint":"eslint ./src/**/*","test":"vitest --run","build":"rimraf dist && tsc -b tsconfig.build.json tsconfig.cjs.json && echo '{\"type\":\"commonjs\"}' > dist/cjs/package.json","format":"prettier --write './(src|tests)/**/*'","prepare":"husky"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20fdf274-8c38-4585-abc7-cbac6dba267d"}},"overrides":{"cookie":"^1.1.1","file-type":"^21.3.1"},"repository":{"url":"git+https://github.com/altcha-org/altcha-lib.git","type":"git"},"_npmVersion":"11.12.1","description":"A lightweight library for creating and verifying ALTCHA challenges on the server.","directories":{},"_nodeVersion":"24.15.0","typesVersions":{"*":{"types":["./dist/esm/v2/types"]}},"_hasShrinkwrap":false,"devDependencies":{"h3":"^2.0.1-rc.18","tsx":"^4.21.0","cors":"^2.8.6","hono":"^4.12.14","vite":"^8.0.0","husky":"^9.1.7","eslint":"^10.0.3","rimraf":"^6.1.3","vitest":"^4.1.0","express":"^5.2.1","fastify":"^5.8.5","globals":"^17.4.0","ts-node":"^10.9.2","prettier":"^3.8.1","supertest":"^7.2.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","web-worker":"^1.5.0","@types/cors":"^2.8.19","@types/node":"^24.10.3","@nestjs/core":"^11.1.16","@fastify/cors":"^11.2.0","@sveltejs/kit":"^2.54.0","cookie-parser":"^1.4.7","@nestjs/common":"^11.1.16","@types/express":"^5.0.6","@fastify/cookie":"^11.0.2","@eslint/eslintrc":"^3.3.5","@types/supertest":"^7.2.0","@fastify/formbody":"^8.0.2","@types/cookie-parser":"^1.4.10","@nestjs/platform-express":"^11.1.16","@typescript-eslint/eslint-plugin":"^8.49.0"},"peerDependencies":{"h3":"^2.0.0","cors":"^2.0.0","hono":"^4.0.0","express":"^4.0.0 || ^5.0.0","fastify":"^5.0.0","@nestjs/core":"^10.0.0 || ^11.0.0","@fastify/cors":"^11.0.0","@sveltejs/kit":"^2.0.0","cookie-parser":"^1.0.0","@nestjs/common":"^10.0.0 || ^11.0.0","@fastify/cookie":"^11.0.0","@fastify/formbody":"^8.0.0","@nestjs/platform-express":"^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"h3":{"optional":true},"cors":{"optional":true},"hono":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"@nestjs/core":{"optional":true},"@fastify/cors":{"optional":true},"@sveltejs/kit":{"optional":true},"cookie-parser":{"optional":true},"@nestjs/common":{"optional":true},"@fastify/cookie":{"optional":true},"@fastify/formbody":{"optional":true},"@nestjs/platform-express":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/altcha-lib_2.2.0_1779627417571_0.8263921737637865","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"altcha-lib","version":"2.3.0","keywords":["altcha","captcha","antispam","captcha alternative"],"author":{"url":"https://altcha.org","name":"Daniel Regeci"},"license":"MIT","_id":"altcha-lib@2.3.0","maintainers":[{"name":"ovx","email":"getc88@gmail.com"}],"homepage":"https://altcha.org","bugs":{"url":"https://github.com/altcha-org/altcha-lib/issues"},"bin":{"altcha-lib":"bin/cli.mjs"},"dist":{"shasum":"3b51535f00ce5ac44fab8a0619edbc17d43b40cd","tarball":"https://registry.npmjs.org/altcha-lib/-/altcha-lib-2.3.0.tgz","fileCount":135,"integrity":"sha512-ubK8xfPbVBaBEUqGo5Fu2gP0AovyhV4tSN9JY4ub6Jc19a9vnRH74Ty+j1Usr14kUdwOT7NIlK05IbTB/F09/A==","signatures":[{"sig":"MEUCIQCwyZ/1eKOA7NOPeEwinnuZ08mXOuxzJmW7zCVIDBsTqwIgRNbmmlMoqUROZWhHDn/p8qe+3+z2yBFbqtt/npSe9zk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/altcha-lib@2.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":283913},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/esm/v2/index.d.ts","import":"./dist/esm/v2/index.js","default":"./dist/esm/v2/index.js","require":"./dist/cjs/v2/index.js"},"./v1":{"types":"./dist/esm/v1/index.d.ts","import":"./dist/esm/v1/index.js","default":"./dist/esm/v1/index.js","require":"./dist/cjs/v1/index.js"},"./types":{"types":"./dist/esm/v2/types.d.ts","import":"./dist/esm/v2/types.js"},"./v1/types":{"types":"./dist/esm/v1/types.d.ts","import":"./dist/esm/v1/types.js"},"./v1/worker":{"types":"./dist/esm/v1/worker.d.ts","import":"./dist/esm/v1/worker.js","default":"./dist/esm/v1/worker.js","require":"./dist/cjs/v1/worker.js"},"./workers/*":{"types":"./dist/esm/v2/workers/*.d.ts","import":"./dist/esm/v2/workers/*.js","require":"./dist/cjs/v2/workers/*.js"},"./obfuscation":{"types":"./dist/esm/v2/obfuscation.d.ts","import":"./dist/esm/v2/obfuscation.js","require":"./dist/cjs/v2/obfuscation.js"},"./algorithms/*":{"types":"./dist/esm/v2/algorithms/*.d.ts","import":"./dist/esm/v2/algorithms/*.js","require":"./dist/cjs/v2/algorithms/*.js"},"./frameworks/*":{"types":"./dist/esm/v2/frameworks/*.d.ts","import":"./dist/esm/v2/frameworks/*.js","require":"./dist/cjs/v2/frameworks/*.js"}},"gitHead":"f18decf7c4f58896c653b5b2b4495de225215e7b","scripts":{"lint":"eslint ./src/**/*","test":"vitest --run","build":"rimraf dist && tsc -b tsconfig.build.json tsconfig.cjs.json && echo '{\"type\":\"commonjs\"}' > dist/cjs/package.json","format":"prettier --write './(src|tests)/**/*'","prepare":"husky"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20fdf274-8c38-4585-abc7-cbac6dba267d"}},"overrides":{"cookie":"^1.1.1","multer":"^2.2.0","esbuild":"^0.28.1","file-type":"^21.3.1"},"repository":{"url":"git+https://github.com/altcha-org/altcha-lib.git","type":"git"},"_npmVersion":"11.16.0","description":"A lightweight library for creating and verifying ALTCHA challenges on the server.","directories":{},"_nodeVersion":"24.18.0","typesVersions":{"*":{"types":["./dist/esm/v2/types"]}},"_hasShrinkwrap":false,"devDependencies":{"h3":"^2.0.1-rc.18","tsx":"^4.21.0","cors":"^2.8.6","hono":"^4.12.14","vite":"^8.0.0","husky":"^9.1.7","eslint":"^10.0.3","rimraf":"^6.1.3","vitest":"^4.1.0","express":"^5.2.1","fastify":"^5.8.5","globals":"^17.4.0","ts-node":"^10.9.2","prettier":"^3.8.1","supertest":"^7.2.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","web-worker":"^1.5.0","@types/cors":"^2.8.19","@types/node":"^24.10.3","@nestjs/core":"^11.1.16","@fastify/cors":"^11.2.0","@sveltejs/kit":"^2.54.0","cookie-parser":"^1.4.7","@nestjs/common":"^11.1.16","@types/express":"^5.0.6","@fastify/cookie":"^11.0.2","@eslint/eslintrc":"^3.3.5","@types/supertest":"^7.2.0","@fastify/formbody":"^8.0.2","@types/cookie-parser":"^1.4.10","@nestjs/platform-express":"^11.1.16","@typescript-eslint/eslint-plugin":"^8.49.0"},"peerDependencies":{"h3":"^2.0.0","cors":"^2.0.0","hono":"^4.0.0","express":"^4.0.0 || ^5.0.0","fastify":"^5.0.0","@nestjs/core":"^10.0.0 || ^11.0.0","@fastify/cors":"^11.0.0","@sveltejs/kit":"^2.0.0","cookie-parser":"^1.0.0","@nestjs/common":"^10.0.0 || ^11.0.0","@fastify/cookie":"^11.0.0","@fastify/formbody":"^8.0.0","@nestjs/platform-express":"^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"h3":{"optional":true},"cors":{"optional":true},"hono":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"@nestjs/core":{"optional":true},"@fastify/cors":{"optional":true},"@sveltejs/kit":{"optional":true},"cookie-parser":{"optional":true},"@nestjs/common":{"optional":true},"@fastify/cookie":{"optional":true},"@fastify/formbody":{"optional":true},"@nestjs/platform-express":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/altcha-lib_2.3.0_1784526020595_0.24503612285842657","host":"s3://npm-registry-packages-npm-production"}},"2.3.1":{"name":"altcha-lib","version":"2.3.1","keywords":["altcha","captcha","antispam","captcha alternative"],"author":{"url":"https://altcha.org","name":"Daniel Regeci"},"license":"MIT","_id":"altcha-lib@2.3.1","maintainers":[{"name":"ovx","email":"getc88@gmail.com"}],"homepage":"https://altcha.org","bugs":{"url":"https://github.com/altcha-org/altcha-lib/issues"},"bin":{"altcha-lib":"bin/cli.mjs"},"dist":{"shasum":"97739467b648debeb30bddee776f9ae33f1edc46","tarball":"https://registry.npmjs.org/altcha-lib/-/altcha-lib-2.3.1.tgz","fileCount":135,"integrity":"sha512-y/CaimfC2UX37CRNfeBJHpDRID3BuOIvQoaqkzkUxigwWw9cLUNtdbGlZPlSA6QKqlZYdJuvK3UrOkXtFWG5tw==","signatures":[{"sig":"MEUCIQCbYTesh9PG94O6PpHfpjuhI7jV7PRLWKTM4QmAp3jZNAIgNY/3Jw4zlFKY857U2dTAyqxpHXcQLhO5GKcmHh9yto8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/altcha-lib@2.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":284070},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/esm/v2/index.d.ts","import":"./dist/esm/v2/index.js","default":"./dist/esm/v2/index.js","require":"./dist/cjs/v2/index.js"},"./v1":{"types":"./dist/esm/v1/index.d.ts","import":"./dist/esm/v1/index.js","default":"./dist/esm/v1/index.js","require":"./dist/cjs/v1/index.js"},"./types":{"types":"./dist/esm/v2/types.d.ts","import":"./dist/esm/v2/types.js"},"./v1/types":{"types":"./dist/esm/v1/types.d.ts","import":"./dist/esm/v1/types.js"},"./v1/worker":{"types":"./dist/esm/v1/worker.d.ts","import":"./dist/esm/v1/worker.js","default":"./dist/esm/v1/worker.js","require":"./dist/cjs/v1/worker.js"},"./workers/*":{"types":"./dist/esm/v2/workers/*.d.ts","import":"./dist/esm/v2/workers/*.js","require":"./dist/cjs/v2/workers/*.js"},"./obfuscation":{"types":"./dist/esm/v2/obfuscation.d.ts","import":"./dist/esm/v2/obfuscation.js","require":"./dist/cjs/v2/obfuscation.js"},"./algorithms/*":{"types":"./dist/esm/v2/algorithms/*.d.ts","import":"./dist/esm/v2/algorithms/*.js","require":"./dist/cjs/v2/algorithms/*.js"},"./frameworks/*":{"types":"./dist/esm/v2/frameworks/*.d.ts","import":"./dist/esm/v2/frameworks/*.js","require":"./dist/cjs/v2/frameworks/*.js"}},"gitHead":"07b7f74790a0e657d5ced93f6ef8738a9021d648","scripts":{"lint":"eslint ./src/**/*","test":"vitest --run","build":"rimraf dist && tsc -b tsconfig.build.json tsconfig.cjs.json && echo '{\"type\":\"commonjs\"}' > dist/cjs/package.json","format":"prettier --write './(src|tests)/**/*'","prepare":"husky"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20fdf274-8c38-4585-abc7-cbac6dba267d"}},"overrides":{"cookie":"^1.1.1","multer":"^2.2.0","esbuild":"^0.28.1","file-type":"^21.3.1"},"repository":{"url":"git+https://github.com/altcha-org/altcha-lib.git","type":"git"},"_npmVersion":"11.16.0","description":"A lightweight library for creating and verifying ALTCHA challenges on the server.","directories":{},"_nodeVersion":"24.18.0","typesVersions":{"*":{"types":["./dist/esm/v2/types"]}},"_hasShrinkwrap":false,"devDependencies":{"h3":"^2.0.1-rc.18","tsx":"^4.21.0","cors":"^2.8.6","hono":"^4.12.14","vite":"^8.0.0","husky":"^9.1.7","eslint":"^10.0.3","rimraf":"^6.1.3","vitest":"^4.1.0","express":"^5.2.1","fastify":"^5.8.5","globals":"^17.4.0","ts-node":"^10.9.2","prettier":"^3.8.1","supertest":"^7.2.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","web-worker":"^1.5.0","@types/cors":"^2.8.19","@types/node":"^24.10.3","@nestjs/core":"^11.1.16","@fastify/cors":"^11.2.0","@sveltejs/kit":"^2.54.0","cookie-parser":"^1.4.7","@nestjs/common":"^11.1.16","@types/express":"^5.0.6","@fastify/cookie":"^11.0.2","@eslint/eslintrc":"^3.3.5","@types/supertest":"^7.2.0","@fastify/formbody":"^8.0.2","@types/cookie-parser":"^1.4.10","@nestjs/platform-express":"^11.1.16","@typescript-eslint/eslint-plugin":"^8.49.0"},"peerDependencies":{"h3":"^2.0.0","cors":"^2.0.0","hono":"^4.0.0","express":"^4.0.0 || ^5.0.0","fastify":"^5.0.0","@nestjs/core":"^10.0.0 || ^11.0.0","@fastify/cors":"^11.0.0","@sveltejs/kit":"^2.0.0","cookie-parser":"^1.0.0","@nestjs/common":"^10.0.0 || ^11.0.0","@fastify/cookie":"^11.0.0","@fastify/formbody":"^8.0.0","@nestjs/platform-express":"^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"h3":{"optional":true},"cors":{"optional":true},"hono":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"@nestjs/core":{"optional":true},"@fastify/cors":{"optional":true},"@sveltejs/kit":{"optional":true},"cookie-parser":{"optional":true},"@nestjs/common":{"optional":true},"@fastify/cookie":{"optional":true},"@fastify/formbody":{"optional":true},"@nestjs/platform-express":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/altcha-lib_2.3.1_1784528797111_0.5040549842591073","host":"s3://npm-registry-packages-npm-production"}},"2.3.2":{"name":"altcha-lib","version":"2.3.2","keywords":["altcha","captcha","antispam","captcha alternative"],"author":{"url":"https://altcha.org","name":"Daniel Regeci"},"license":"MIT","_id":"altcha-lib@2.3.2","maintainers":[{"name":"ovx","email":"getc88@gmail.com"}],"homepage":"https://altcha.org","bugs":{"url":"https://github.com/altcha-org/altcha-lib/issues"},"bin":{"altcha-lib":"bin/cli.mjs"},"dist":{"shasum":"dfc04ed1265f2ff9c82decbd905bd90fe167b0d8","tarball":"https://registry.npmjs.org/altcha-lib/-/altcha-lib-2.3.2.tgz","fileCount":135,"integrity":"sha512-puJp4aPn/kK2t5Z3dQkbFTmPusaYPkdlrXB4feWZzdNIiC3sPndKMlcjQFUU3a+sVlUt6DJhfWK2+HiwDBbW1Q==","signatures":[{"sig":"MEQCIBiq2Zq6/pHoGh6Wd7h//1r4g7zf3UHm+sQ9JpfHztngAiAb3Xvkid3EjCU1fVHwGZ6CDFDzynjOPgFLBn56HNVv+g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/altcha-lib@2.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":284962},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/esm/v2/index.d.ts","import":"./dist/esm/v2/index.js","default":"./dist/esm/v2/index.js","require":"./dist/cjs/v2/index.js"},"./v1":{"types":"./dist/esm/v1/index.d.ts","import":"./dist/esm/v1/index.js","default":"./dist/esm/v1/index.js","require":"./dist/cjs/v1/index.js"},"./types":{"types":"./dist/esm/v2/types.d.ts","import":"./dist/esm/v2/types.js"},"./v1/types":{"types":"./dist/esm/v1/types.d.ts","import":"./dist/esm/v1/types.js"},"./v1/worker":{"types":"./dist/esm/v1/worker.d.ts","import":"./dist/esm/v1/worker.js","default":"./dist/esm/v1/worker.js","require":"./dist/cjs/v1/worker.js"},"./workers/*":{"types":"./dist/esm/v2/workers/*.d.ts","import":"./dist/esm/v2/workers/*.js","require":"./dist/cjs/v2/workers/*.js"},"./obfuscation":{"types":"./dist/esm/v2/obfuscation.d.ts","import":"./dist/esm/v2/obfuscation.js","require":"./dist/cjs/v2/obfuscation.js"},"./algorithms/*":{"types":"./dist/esm/v2/algorithms/*.d.ts","import":"./dist/esm/v2/algorithms/*.js","require":"./dist/cjs/v2/algorithms/*.js"},"./frameworks/*":{"types":"./dist/esm/v2/frameworks/*.d.ts","import":"./dist/esm/v2/frameworks/*.js","require":"./dist/cjs/v2/frameworks/*.js"}},"gitHead":"2dc4de6d9761f7c2c0d328e3f8c540ae920b9b66","scripts":{"lint":"eslint ./src/**/*","test":"vitest --run","build":"rimraf dist && tsc -b tsconfig.build.json tsconfig.cjs.json && echo '{\"type\":\"commonjs\"}' > dist/cjs/package.json","format":"prettier --write './(src|tests)/**/*'","prepare":"husky"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20fdf274-8c38-4585-abc7-cbac6dba267d"}},"overrides":{"cookie":"^1.1.1","multer":"^2.2.0","esbuild":"^0.28.1","file-type":"^21.3.1","minimatch":"^10.2.5"},"repository":{"url":"git+https://github.com/altcha-org/altcha-lib.git","type":"git"},"_npmVersion":"11.16.0","description":"A lightweight library for creating and verifying ALTCHA challenges on the server.","directories":{},"_nodeVersion":"24.18.0","typesVersions":{"*":{"types":["./dist/esm/v2/types"]}},"_hasShrinkwrap":false,"devDependencies":{"h3":"^2.0.1-rc.18","tsx":"^4.21.0","cors":"^2.8.6","hono":"^4.12.14","vite":"^8.0.0","husky":"^9.1.7","eslint":"^10.0.3","rimraf":"^6.1.3","vitest":"^4.1.0","express":"^5.2.1","fastify":"^5.8.5","globals":"^17.4.0","ts-node":"^10.9.2","prettier":"^3.8.1","supertest":"^7.2.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","web-worker":"^1.5.0","@types/cors":"^2.8.19","@types/node":"^24.10.3","@nestjs/core":"^11.1.16","@fastify/cors":"^11.2.0","@sveltejs/kit":"^2.54.0","cookie-parser":"^1.4.7","@nestjs/common":"^11.1.16","@types/express":"^5.0.6","@fastify/cookie":"^11.0.2","@eslint/eslintrc":"^3.3.5","@types/supertest":"^7.2.0","@fastify/formbody":"^8.0.2","@types/cookie-parser":"^1.4.10","@nestjs/platform-express":"^11.1.16","@typescript-eslint/eslint-plugin":"^8.49.0"},"peerDependencies":{"h3":"^2.0.0","cors":"^2.0.0","hono":"^4.0.0","express":"^4.0.0 || ^5.0.0","fastify":"^5.0.0","@nestjs/core":"^10.0.0 || ^11.0.0","@fastify/cors":"^11.0.0","@sveltejs/kit":"^2.0.0","cookie-parser":"^1.0.0","@nestjs/common":"^10.0.0 || ^11.0.0","@fastify/cookie":"^11.0.0","@fastify/formbody":"^8.0.0","@nestjs/platform-express":"^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"h3":{"optional":true},"cors":{"optional":true},"hono":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"@nestjs/core":{"optional":true},"@fastify/cors":{"optional":true},"@sveltejs/kit":{"optional":true},"cookie-parser":{"optional":true},"@nestjs/common":{"optional":true},"@fastify/cookie":{"optional":true},"@fastify/formbody":{"optional":true},"@nestjs/platform-express":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/altcha-lib_2.3.2_1785158069494_0.7632720288617829","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"altcha-lib","version":"2.4.0","keywords":["altcha","captcha","antispam","captcha alternative"],"author":{"url":"https://altcha.org","name":"Daniel Regeci"},"license":"MIT","_id":"altcha-lib@2.4.0","maintainers":[{"name":"ovx","email":"getc88@gmail.com"}],"homepage":"https://altcha.org","bugs":{"url":"https://github.com/altcha-org/altcha-lib/issues"},"bin":{"altcha-lib":"bin/cli.mjs"},"dist":{"shasum":"a0b79600bf5ef6ebc3b12689030cae14e24d4b16","tarball":"https://registry.npmjs.org/altcha-lib/-/altcha-lib-2.4.0.tgz","fileCount":135,"integrity":"sha512-QGQPZ3vrL2bZ7rEt9UJs39WSK/LbEanq0jEfwbG6+2wU9wQ2Hzr1hGEs4yPjLew1yNWlkRzY2vsF8N7UM6knWQ==","signatures":[{"sig":"MEUCIH/h7ELSkm/5puUOpGh39CTRFbw25kCfU6W77aGSPzd5AiEAnIlBpX+S1WRhul43GKeokMZNG594ffPqFviW2vJ5tOI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/altcha-lib@2.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":299265},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/esm/v2/index.d.ts","import":"./dist/esm/v2/index.js","default":"./dist/esm/v2/index.js","require":"./dist/cjs/v2/index.js"},"./v1":{"types":"./dist/esm/v1/index.d.ts","import":"./dist/esm/v1/index.js","default":"./dist/esm/v1/index.js","require":"./dist/cjs/v1/index.js"},"./types":{"types":"./dist/esm/v2/types.d.ts","import":"./dist/esm/v2/types.js"},"./v1/types":{"types":"./dist/esm/v1/types.d.ts","import":"./dist/esm/v1/types.js"},"./v1/worker":{"types":"./dist/esm/v1/worker.d.ts","import":"./dist/esm/v1/worker.js","default":"./dist/esm/v1/worker.js","require":"./dist/cjs/v1/worker.js"},"./workers/*":{"types":"./dist/esm/v2/workers/*.d.ts","import":"./dist/esm/v2/workers/*.js","require":"./dist/cjs/v2/workers/*.js"},"./obfuscation":{"types":"./dist/esm/v2/obfuscation.d.ts","import":"./dist/esm/v2/obfuscation.js","require":"./dist/cjs/v2/obfuscation.js"},"./algorithms/*":{"types":"./dist/esm/v2/algorithms/*.d.ts","import":"./dist/esm/v2/algorithms/*.js","require":"./dist/cjs/v2/algorithms/*.js"},"./frameworks/*":{"types":"./dist/esm/v2/frameworks/*.d.ts","import":"./dist/esm/v2/frameworks/*.js","require":"./dist/cjs/v2/frameworks/*.js"}},"gitHead":"4191f2753dae6c4f4ce6dfafdd19b60d1b732523","scripts":{"lint":"eslint ./src/**/*","test":"vitest --run","build":"rimraf dist && tsc -b tsconfig.build.json tsconfig.cjs.json && echo '{\"type\":\"commonjs\"}' > dist/cjs/package.json","format":"prettier --write './(src|tests)/**/*'","prepare":"husky"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20fdf274-8c38-4585-abc7-cbac6dba267d"}},"overrides":{"cookie":"^1.1.1","multer":"^2.2.0","esbuild":"^0.28.1","file-type":"^21.3.1"},"repository":{"url":"git+https://github.com/altcha-org/altcha-lib.git","type":"git"},"_npmVersion":"11.17.0","description":"A lightweight library for creating and verifying ALTCHA challenges on the server.","directories":{},"_nodeVersion":"24.19.0","typesVersions":{"*":{"types":["./dist/esm/v2/types"]}},"_hasShrinkwrap":false,"devDependencies":{"h3":"^2.0.1-rc.18","tsx":"^4.21.0","cors":"^2.8.6","hono":"^4.12.14","vite":"^8.0.0","husky":"^9.1.7","eslint":"^10.0.3","rimraf":"^6.1.3","vitest":"^4.1.0","express":"^5.2.1","fastify":"^5.8.5","globals":"^17.4.0","ts-node":"^10.9.2","prettier":"^3.8.1","supertest":"^7.2.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","web-worker":"^1.5.0","@types/cors":"^2.8.19","@types/node":"^24.10.3","@nestjs/core":"^11.1.16","@fastify/cors":"^11.2.0","@sveltejs/kit":"^2.54.0","cookie-parser":"^1.4.7","@nestjs/common":"^11.1.16","@types/express":"^5.0.6","@fastify/cookie":"^11.0.2","@eslint/eslintrc":"^3.3.6","@types/supertest":"^7.2.0","reflect-metadata":"^0.2.2","@fastify/formbody":"^8.0.2","@types/cookie-parser":"^1.4.10","@nestjs/platform-express":"^11.1.16","@nestjs/platform-fastify":"^11.1.16","@typescript-eslint/eslint-plugin":"^8.49.0"},"peerDependencies":{"h3":"^2.0.0","cors":"^2.0.0","hono":"^4.0.0","express":"^4.0.0 || ^5.0.0","fastify":"^5.0.0","@nestjs/core":"^10.0.0 || ^11.0.0","@fastify/cors":"^11.0.0","@sveltejs/kit":"^2.0.0","cookie-parser":"^1.0.0","@nestjs/common":"^10.0.0 || ^11.0.0","@fastify/cookie":"^11.0.0","@fastify/formbody":"^8.0.0","@nestjs/platform-express":"^10.0.0 || ^11.0.0","@nestjs/platform-fastify":"^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"h3":{"optional":true},"cors":{"optional":true},"hono":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"@nestjs/core":{"optional":true},"@fastify/cors":{"optional":true},"@sveltejs/kit":{"optional":true},"cookie-parser":{"optional":true},"@nestjs/common":{"optional":true},"@fastify/cookie":{"optional":true},"@fastify/formbody":{"optional":true},"@nestjs/platform-express":{"optional":true},"@nestjs/platform-fastify":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/altcha-lib_2.4.0_1788076780483_0.10823662076326812","host":"s3://npm-registry-packages-npm-production"}},"2.5.0":{"name":"altcha-lib","version":"2.5.0","description":"A lightweight library for creating and verifying ALTCHA challenges on the server.","author":{"name":"Daniel Regeci","url":"https://altcha.org"},"homepage":"https://altcha.org","repository":{"type":"git","url":"git+https://github.com/altcha-org/altcha-lib.git"},"license":"MIT","keywords":["altcha","captcha","antispam","captcha alternative"],"main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","type":"module","scripts":{"build":"rimraf dist && tsc -b tsconfig.build.json tsconfig.cjs.json && echo '{\"type\":\"commonjs\"}' > dist/cjs/package.json","lint":"eslint ./src/**/*","format":"prettier --write './(src|tests)/**/*'","test":"vitest --run","prepare":"husky"},"bin":{"altcha-lib":"bin/cli.mjs"},"exports":{".":{"types":"./dist/esm/v2/index.d.ts","import":"./dist/esm/v2/index.js","require":"./dist/cjs/v2/index.js","default":"./dist/esm/v2/index.js"},"./algorithms/*":{"types":"./dist/esm/v2/algorithms/*.d.ts","import":"./dist/esm/v2/algorithms/*.js","require":"./dist/cjs/v2/algorithms/*.js"},"./frameworks/*":{"types":"./dist/esm/v2/frameworks/*.d.ts","import":"./dist/esm/v2/frameworks/*.js","require":"./dist/cjs/v2/frameworks/*.js"},"./obfuscation":{"types":"./dist/esm/v2/obfuscation.d.ts","import":"./dist/esm/v2/obfuscation.js","require":"./dist/cjs/v2/obfuscation.js"},"./workers/*":{"types":"./dist/esm/v2/workers/*.d.ts","import":"./dist/esm/v2/workers/*.js","require":"./dist/cjs/v2/workers/*.js"},"./types":{"types":"./dist/esm/v2/types.d.ts","import":"./dist/esm/v2/types.js"},"./v1":{"types":"./dist/esm/v1/index.d.ts","import":"./dist/esm/v1/index.js","require":"./dist/cjs/v1/index.js","default":"./dist/esm/v1/index.js"},"./v1/types":{"types":"./dist/esm/v1/types.d.ts","import":"./dist/esm/v1/types.js"},"./v1/worker":{"types":"./dist/esm/v1/worker.d.ts","import":"./dist/esm/v1/worker.js","require":"./dist/cjs/v1/worker.js","default":"./dist/esm/v1/worker.js"}},"typesVersions":{"*":{"types":["./dist/esm/v2/types"]}},"devDependencies":{"@eslint/eslintrc":"^3.3.6","@eslint/js":"^10.0.1","@fastify/cookie":"^11.0.2","@fastify/cors":"^11.2.0","@fastify/formbody":"^8.0.2","@nestjs/common":"^12.0.1","@nestjs/core":"^12.0.1","@nestjs/platform-express":"^12.0.1","@nestjs/platform-fastify":"^12.0.1","@sveltejs/kit":"^2.54.0","@types/cookie-parser":"^1.4.10","@types/cors":"^2.8.19","@types/express":"^5.0.6","@types/node":"^24.10.3","@types/supertest":"^7.2.0","@typescript-eslint/eslint-plugin":"^8.49.0","cookie-parser":"^1.4.7","cors":"^2.8.6","eslint":"^10.0.3","express":"^5.2.1","fastify":"^5.8.5","globals":"^17.4.0","h3":"^2.0.1-rc.18","hono":"^4.12.14","husky":"^9.1.7","prettier":"^3.8.1","reflect-metadata":"^0.2.2","rimraf":"^6.1.3","supertest":"^7.2.2","ts-node":"^10.9.2","tsx":"^4.21.0","typescript":"^5.9.3","vite":"^8.0.0","vitest":"^4.1.0","web-worker":"^1.5.0"},"peerDependencies":{"@fastify/cookie":"^11.0.0","@fastify/cors":"^11.0.0","@fastify/formbody":"^8.0.0 || ^9.0.0","@nestjs/common":"^10.0.0 || ^11.0.0 || ^12.0.0","@nestjs/core":"^10.0.0 || ^11.0.0 || ^12.0.0","@nestjs/platform-express":"^10.0.0 || ^11.0.0 || ^12.0.0","@nestjs/platform-fastify":"^10.0.0 || ^11.0.0 || ^12.0.0","@sveltejs/kit":"^2.0.0","cookie-parser":"^1.0.0","cors":"^2.0.0","express":"^4.0.0 || ^5.0.0","fastify":"^5.0.0","h3":"^2.0.0","hono":"^4.0.0"},"peerDependenciesMeta":{"@nestjs/common":{"optional":true},"@nestjs/core":{"optional":true},"@nestjs/platform-express":{"optional":true},"@nestjs/platform-fastify":{"optional":true},"@fastify/cookie":{"optional":true},"@fastify/cors":{"optional":true},"@fastify/formbody":{"optional":true},"@sveltejs/kit":{"optional":true},"cookie-parser":{"optional":true},"cors":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"h3":{"optional":true},"hono":{"optional":true}},"overrides":{"cookie":"^1.1.1","esbuild":"^0.28.1","file-type":"^21.3.1","multer":"^2.2.0"},"gitHead":"3b84cc9be519b5a5340c209f0c526244cead6b63","_id":"altcha-lib@2.5.0","bugs":{"url":"https://github.com/altcha-org/altcha-lib/issues"},"_nodeVersion":"24.20.0","_npmVersion":"11.19.0","dist":{"integrity":"sha512-MiqlwnImoooVTmFzZ8odhpqtCsSl7M/6cmgaX42Tkuvd41e5IVveg6hiw/e9rXSb6dm1RvniPmeURwO64wWTuQ==","shasum":"1e86585a987a7fec75ded14e844375e05d4e0efa","tarball":"https://registry.npmjs.org/altcha-lib/-/altcha-lib-2.5.0.tgz","fileCount":135,"unpackedSize":299791,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/altcha-lib@2.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDNp66032uxTXysPo78Ay4yjTK4aHicuSAx9tTrhZnKCwIgZWpt3Yt5ivQYeot/Qq5Gw5b1vAPz7/F624HtO/9eG8M="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:20fdf274-8c38-4585-abc7-cbac6dba267d"}},"directories":{},"maintainers":[{"name":"ovx","email":"getc88@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/altcha-lib_2.5.0_1789020973074_0.546639345225608"},"_hasShrinkwrap":false}},"time":{"created":"2024-02-12T17:39:56.530Z","modified":"2026-09-10T06:16:13.523Z","0.1.0":"2024-02-12T17:39:56.835Z","0.1.1":"2024-03-23T10:45:38.099Z","0.1.2":"2024-03-26T14:11:40.378Z","0.1.3":"2024-04-06T00:37:26.151Z","0.1.4":"2024-04-06T12:45:58.657Z","0.1.5":"2024-04-18T12:58:34.578Z","0.2.0":"2024-04-27T12:21:59.088Z","0.3.0":"2024-05-12T12:36:52.906Z","0.4.0":"2024-07-12T15:42:30.374Z","0.4.1":"2024-07-19T12:18:01.484Z","0.5.0":"2024-07-24T23:26:03.672Z","0.5.1":"2024-07-25T11:06:47.026Z","1.0.0":"2024-09-02T22:38:55.791Z","1.1.0":"2024-09-11T09:49:08.889Z","1.1.1":"2024-11-14T02:38:14.005Z","1.2.0":"2024-12-21T00:46:53.984Z","1.3.0":"2025-06-07T04:26:41.217Z","1.4.0":"2025-12-11T09:11:36.706Z","1.4.1":"2025-12-13T10:02:22.974Z","2.0.0-beta.1":"2026-03-13T07:22:41.498Z","2.0.0-beta.2":"2026-03-22T08:25:25.084Z","2.0.0":"2026-04-07T11:07:22.310Z","2.0.1":"2026-04-09T15:45:03.975Z","2.0.2":"2026-04-15T13:05:18.631Z","2.0.3":"2026-04-23T06:32:42.744Z","2.1.0":"2026-05-20T07:40:58.987Z","2.2.0":"2026-05-24T12:56:57.804Z","2.3.0":"2026-07-20T05:40:20.740Z","2.3.1":"2026-07-20T06:26:37.262Z","2.3.2":"2026-07-27T13:14:29.660Z","2.4.0":"2026-08-30T07:59:40.632Z","2.5.0":"2026-09-10T06:16:13.196Z"},"bugs":{"url":"https://github.com/altcha-org/altcha-lib/issues"},"author":{"name":"Daniel Regeci","url":"https://altcha.org"},"license":"MIT","homepage":"https://altcha.org","keywords":["altcha","captcha","antispam","captcha alternative"],"repository":{"type":"git","url":"git+https://github.com/altcha-org/altcha-lib.git"},"description":"A lightweight library for creating and verifying ALTCHA challenges on the server.","maintainers":[{"name":"ovx","email":"getc88@gmail.com"}],"readme":"# ALTCHA JS Library\n\nALTCHA TS/JS Library is a lightweight library for creating and verifying [ALTCHA](https://altcha.org) challenges on the server.\n\n## Installation\n\n```sh\nnpm install altcha-lib\n```\n\n## Usage\n\n```ts\nimport { createChallenge, deriveHmacKeySecret, randomInt, verifySolution } from 'altcha-lib';\nimport { deriveKey } from 'altcha-lib/algorithms/pbkdf2';\n\nconst HMAC_SECRET = 'your-secret-key';\nconst HMAC_KEY_SECRET = 'your-other-secret-key';\n\n// On the server: create a challenge and send it to the client\nconst challenge = await createChallenge({\n  algorithm: 'PBKDF2/SHA-256',\n  cost: 5_000,\n\tcounter: randomInt(5_000, 10_000),\n  deriveKey,\n  hmacSignatureSecret: HMAC_SECRET,\n\thmacKeySignatureSecret: HMAC_KEY_SECRET,\n});\n\n// On the server: verify the solution submitted by the client\nconst result = await verifySolution({\n  challenge: payload.challenge,\n  solution: payload.solution,\n  deriveKey,\n  hmacSignatureSecret: HMAC_SECRET,\n\thmacKeySignatureSecret: HMAC_KEY_SECRET,\n});\n\nif (result.verified) {\n  // challenge passed\n}\n```\n\n## Get Started\n\nThe library includes plugins for several popular frameworks to simplify integration.\n\n- **Express:** [`/docs/express.md`](/docs/express.md)\n- **Fastify:** [`/docs/fastify.md`](/docs/fastify.md)\n- **Hono:** [`/docs/hono.md`](/docs/hono.md)\n- **NestJS:** [`/docs/nestjs.md`](/docs/nestjs.md)\n- **Next.js:** [`/docs/nextjs.md`](/docs/nextjs.md)\n- **Nuxt:** [`/docs/nuxt.md`](/docs/nuxt.md)\n- **SvelteKit:** [`/docs/sveltekit.md`](/docs/sveltekit.md)\n\nIf your framework is not listed, see the [Advanced Usage](/docs/advanced-usage.md) guide for custom integrations.\n\nAll plugins also support remote verification via ALTCHA Sentinel (`verifyServer` option) — see [`/docs/server-signatures.md`](/docs/server-signatures.md#remote-verification-sentinel-api).\n\n## Documentation\n\n- Advanced Usage: [`/docs/advanced-usage.md`](/docs/advanced-usage.md)\n- Algorithms: [`/docs/algorithms.md`](/docs/algorithms.md)\n- CLI Usage: [`/docs/cli.md`](/docs/cli.md)\n- Configuration Options: [`/docs/configuration-options.md`](/docs/configuration-options.md)\n- Obfuscation: [`/docs/obfuscation.md`](/docs/obfuscation.md)\n- Store: [`/docs/store.md`](/docs/store.md)\n- Usage with ALTCHA Sentinel: [`/docs/server-signatures.md`](/docs/server-signatures.md)\n- Using the `/verify` Route: [`/docs/verify-route.md`](/docs/verify-route.md)\n- Workers: [`/docs/workers.md`](/docs/workers.md)\n\n## Compatibility\n\n| Runtime           | Version | Notes                                           |\n| ----------------- | ------: | ----------------------------------------------- |\n| Node.js           |     20+ | Argon2 available natively in 24.7+              |\n| Bun               |      1+ | Argon2 not available natively                   |\n| Deno              |      2+ | Argon2 not available natively                   |\n| WinterCG runtimes |       — | Use WebCrypto [algorithms](/docs/algorithms.md) |\n\n## Run Examples\n\n**Express example (Node.js with `tsx`):**\n\n```sh\nnpx tsx examples/express-example.ts\n```\n\n**Hono example (Bun):**\n\n```sh\nbun run --port 3000 examples/hono-example.ts\n```\n\n**Hono example (Deno):**\n\n```sh\ndeno serve --allow-net --sloppy-imports --port 3000 examples/hono-example.ts\n```\n\n**Hono + Sentinel remote verification example (Bun):**\n\n```sh\nbun run --port 3000 examples/hono-sentinel-example.ts\n```\n\n## Breaking Changes (v2)\n\nVersion 2 introduces a new proof-of-work mechanism and challenge format. See the [PoW documentation](https://playground.altcha.org/#/about) for details.\n\nWhile the overall usage remains similar, the library has been refactored and several function signatures have changed. Using the provided framework plugins is recommended. For unsupported frameworks or custom setups, refer to the [Advanced Usage](/docs/advanced-usage.md) guide.\n\n### Compatibility with v1\n\nThe API for the previous PoW version (v1) remains available under the `altcha-lib/v1` path:\n\n```ts\nimport { createChallenge } from 'altcha-lib/v1';\n```\n\n## API Reference\n\nThe default import path (`altcha-lib`) uses the v2 API. The v1 API is available at `altcha-lib/v1`.\n\n### v2 (`altcha-lib`)\n\n#### `createChallenge(options: CreateChallengeOptions): Promise<Challenge>`\n\nCreates a new proof-of-work challenge. Generates a random nonce and salt, optionally pre-computes a key prefix from a known counter value, and optionally signs the challenge with HMAC.\n\n| Option | Type | Description |\n|---|---|---|\n| `algorithm` | `string` | Key derivation algorithm (e.g. `'PBKDF2/SHA-256'`, `'ARGON2ID'`, `'SCRYPT'`). |\n| `cost` | `number` | Algorithm-specific cost controlling computational difficulty. |\n| `deriveKey` | `DeriveKeyFunction` | Key derivation function. |\n| `counter` | `number?` | Known counter value for deterministic mode. |\n| `counterMode` | `'uint32' \\| 'string'` | Counter encoding format. Defaults to `'uint32'`. |\n| `data` | `Record<string, ...>?` | Arbitrary metadata embedded in the challenge. |\n| `expiresAt` | `number \\| Date?` | Expiry timestamp (seconds) or Date. |\n| `hmacAlgorithm` | `HmacAlgorithm?` | HMAC digest algorithm. Defaults to `'SHA-256'`. |\n| `hmacKeySignatureSecret` | `string?` | HMAC secret for signing derived keys (deterministic mode). |\n| `hmacSignatureSecret` | `string?` | HMAC secret for signing the challenge payload. |\n| `keyLength` | `number?` | Derived key length in bytes. Defaults to `32`. |\n| `keyPrefix` | `string?` | Required prefix the derived key must match. |\n| `keyPrefixLength` | `number?` | Number of bytes used as prefix in deterministic mode. Defaults to `keyLength / 2`. |\n| `memoryCost` | `number?` | Memory cost in KiB (Argon2id/scrypt only). |\n| `parallelism` | `number?` | Parallelism setting (Argon2id/scrypt only). |\n\n#### `solveChallenge(options: SolveChallengeOptions): Promise<Solution | null>`\n\nSolves a challenge by brute-forcing counter values until the derived key starts with the required prefix. Returns `null` on timeout or abort.\n\n| Option | Type | Description |\n|---|---|---|\n| `challenge` | `Challenge` | The challenge to solve. |\n| `deriveKey` | `DeriveKeyFunction` | Key derivation function. |\n| `controller` | `AbortController?` | For cancelling the solve operation. |\n| `counterStart` | `number?` | Initial counter value. Defaults to `0`. |\n| `counterStep` | `number?` | Increment between attempts. Defaults to `1`. |\n| `counterMode` | `'uint32' \\| 'string'?` | Counter encoding format. Defaults to `'uint32'`. |\n| `timeout` | `number?` | Timeout in milliseconds. Defaults to `90000`. |\n\n#### `solveChallengeWorkers(options): Promise<Solution | null>`\n\nSolves a challenge using multiple Web Workers in parallel. Each worker tests a different interleaved subset of counter values. Automatically retries with fewer workers on out-of-memory errors.\n\n| Option | Type | Description |\n|---|---|---|\n| `challenge` | `Challenge` | The challenge to solve. |\n| `concurrency` | `number` | Number of workers to use (max 16). |\n| `createWorker` | `(algorithm: string) => Worker \\| Promise<Worker>` | Factory function to create a worker. |\n| `controller` | `AbortController?` | For cancelling the solve operation. |\n| `counterMode` | `'uint32' \\| 'string'?` | Counter encoding format. |\n| `onOutOfMemory` | `(concurrency: number) => number \\| void?` | Called on OOM; return new concurrency to retry or falsy to abort. |\n| `timeout` | `number?` | Timeout in milliseconds. |\n\n#### `verifySolution(options: VerifySolutionOptions): Promise<VerifySolutionResult>`\n\nVerifies a submitted solution against a challenge. Checks expiration, challenge signature integrity, and that the derived key matches the solution.\n\n| Option | Type | Description |\n|---|---|---|\n| `challenge` | `Challenge` | The original challenge. |\n| `solution` | `Solution` | The solution to verify. |\n| `hmacSignatureSecret` | `string` | HMAC secret used when the challenge was created. |\n| `deriveKey` | `DeriveKeyFunction` | Key derivation function. |\n| `counterMode` | `'uint32' \\| 'string'?` | Counter encoding format. |\n| `hmacAlgorithm` | `HmacAlgorithm?` | HMAC digest algorithm. Defaults to `'SHA-256'`. |\n| `hmacKeySignatureSecret` | `string?` | HMAC secret for verifying derived-key signatures. |\n\nReturns `VerifySolutionResult`:\n\n| Field | Type | Description |\n|---|---|---|\n| `verified` | `boolean` | Whether the solution is valid. |\n| `expired` | `boolean` | Whether the challenge has expired. |\n| `invalidSignature` | `boolean \\| null` | Whether the challenge signature is invalid. |\n| `invalidSolution` | `boolean \\| null` | Whether the solution is incorrect. |\n| `time` | `number` | Time taken to verify in milliseconds. |\n\n#### `verifyFieldsHash(options): Promise<boolean>`\n\nVerifies the SHA hash of specified form fields.\n\n| Option | Type | Description |\n|---|---|---|\n| `formData` | `FormData \\| Record<string, unknown>` | The form data to verify. |\n| `fields` | `string[]` | Field names to include in the hash. |\n| `fieldsHash` | `string` | The expected hash value. |\n| `algorithm` | `string?` | Hash algorithm. Defaults to `'SHA-256'`. |\n\n#### `verifyServerSignature(options): Promise<VerifyServerSignatureResult>`\n\nVerifies a server signature payload from ALTCHA Sentinel.\n\n| Option | Type | Description |\n|---|---|---|\n| `payload` | `ServerSignaturePayload` | The payload to verify. |\n| `hmacSecret` | `string` | The HMAC secret. |\n\nReturns `VerifyServerSignatureResult` (extends `VerifySolutionResult`):\n\n| Field | Type | Description |\n|---|---|---|\n| `verified` | `boolean` | Whether the signature is valid. |\n| `verificationData` | `ServerSignatureVerificationData \\| null` | Parsed verification data. |\n\n#### `verifyServer(options: VerifyServerOptions): Promise<VerifyServerResult>`\n\nVerifies a payload remotely by calling ALTCHA Sentinel's `POST /v1/verify/signature` API, instead of verifying the HMAC signature locally.\n\n| Option | Type | Description |\n|---|---|---|\n| `payload` | `string \\| ServerSignaturePayload \\| Record<string, unknown>` | The payload to verify, as received from `POST /v1/verify`. |\n| `url` | `string` | Full URL of the Sentinel `/v1/verify/signature` endpoint. |\n| `secret` | `string?` | API key secret. If provided, Sentinel checks that it matches the API key associated with the payload. |\n| `fetch` | `typeof fetch?` | Custom fetch implementation. Defaults to the global `fetch`. |\n| `headers` | `Record<string, string>?` | Additional headers to send with the request. |\n| `controller` | `AbortController?` | For cancelling the verification request. |\n| `timeout` | `number?` | Per-attempt request timeout in milliseconds. Defaults to `10000`. |\n| `retries` | `number?` | Number of retry attempts after the first try. Defaults to `0`. |\n| `retryDelay` | `number?` | Base delay in milliseconds between retries. Defaults to `300`. |\n| `retryBackoff` | `'fixed' \\| 'exponential'?` | Backoff strategy for `retryDelay`. Defaults to `'exponential'`. |\n\nReturns `VerifyServerResult`:\n\n| Field | Type | Description |\n|---|---|---|\n| `verified` | `boolean` | Whether the payload was successfully verified. |\n| `apiKey` | `string \\| null?` | API key associated with the verification. |\n| `reason` | `string?` | Reason or error message if verification failed. |\n| `verificationData` | `ServerSignatureVerificationData \\| null?` | Verification data returned by Sentinel. |\n\n#### `obfuscate(str: string, options?): Promise<string>`\n\n> Import from `altcha-lib/obfuscation`\n\nEncrypts a string using AES-GCM, with the key derived from a PoW challenge. Returns a base64-encoded payload.\n\n| Option | Type | Description |\n|---|---|---|\n| `counterMin` | `number?` | Minimum counter value. Defaults to `20`. |\n| `counterMax` | `number?` | Maximum counter value. Defaults to `200`. |\n| `deriveKey` | `DeriveKeyFunction?` | Key derivation function. Defaults to PBKDF2. |\n| `...` | | Any `CreateChallengeOptions` fields. |\n\n#### `deobfuscate(obfuscatedData: string, options?): Promise<string>`\n\n> Import from `altcha-lib/obfuscation`\n\nDecrypts an obfuscated string by solving the embedded PoW challenge and using the derived key.\n\n| Option | Type | Description |\n|---|---|---|\n| `concurrency` | `number?` | Worker concurrency. Defaults to up to 4. |\n| `createWorker` | `(algorithm: string) => Worker?` | Factory to create a worker for solving. |\n| `deriveKey` | `DeriveKeyFunction?` | Key derivation function. Defaults to PBKDF2. |\n\n#### `randomInt(max: number, min?: number): number`\n\nReturns a cryptographically random integer between `min` (default `1`) and `max`.\n\n#### `class CappedMap<K, V>`\n\nA `Map` subclass with a fixed maximum size. When full, the oldest entry is evicted on insertion.\n\n```ts\nnew CappedMap({ maxSize: number })\n```\n\n#### `enum HmacAlgorithm`\n\n| Value | String |\n|---|---|\n| `HmacAlgorithm.SHA_256` | `'SHA-256'` |\n| `HmacAlgorithm.SHA_384` | `'SHA-384'` |\n| `HmacAlgorithm.SHA_512` | `'SHA-512'` |\n\n---\n\n### v1 (`altcha-lib/v1`)\n\n#### `createChallenge(options: ChallengeOptions): Promise<Challenge>`\n\nCreates a v1 SHA-based proof-of-work challenge.\n\n| Option | Type | Description |\n|---|---|---|\n| `hmacKey` | `string` | **Required.** HMAC key for signing. |\n| `algorithm` | `'SHA-1' \\| 'SHA-256' \\| 'SHA-512'?` | Hash algorithm. Defaults to `'SHA-256'`. |\n| `expires` | `Date?` | Expiry date embedded in the salt. |\n| `maxNumber` | `number?` | Maximum random number. Defaults to `1000000`. |\n| `number` | `number?` | Fixed number (skips random selection). |\n| `params` | `Record<string, string>?` | Extra parameters embedded in the salt. |\n| `salt` | `string?` | Custom salt value. |\n| `saltLength` | `number?` | Random salt length in bytes. Defaults to `12`. |\n\n#### `verifySolution(payload: string | Payload, hmacKey: string, checkExpires?: boolean): Promise<boolean>`\n\nVerifies a v1 solution payload.\n\n#### `verifyFieldsHash(formData, fields, fieldsHash, algorithm?): Promise<boolean>`\n\nVerifies the hash of specified form fields.\n\n#### `verifyServerSignature(payload: string | ServerSignaturePayload, hmacKey: string): Promise<{ verified: boolean, verificationData: ServerSignatureVerificationData | null }>`\n\nVerifies a v1 server signature.\n\n#### `solveChallenge(challenge, salt, algorithm?, max?, start?): { promise: Promise<Solution | null>, controller: AbortController }`\n\nSolves a v1 challenge by brute force.\n\n#### `solveChallengeWorkers(workerScript, concurrency, challenge, salt, algorithm?, max?, startNumber?): Promise<Solution | null>`\n\nSolves a v1 challenge using Web Workers.\n\n#### `extractParams(payload: string | Payload | Challenge): Record<string, string>`\n\nExtracts URL parameters embedded in a challenge salt.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}