{"_id":"@apostrophecms/login-recaptcha","_rev":"20-a058aa03f477253b34dd1a4a903ca50d","name":"@apostrophecms/login-recaptcha","dist-tags":{"latest":"1.2.1"},"versions":{"1.0.0-beta":{"name":"@apostrophecms/login-recaptcha","version":"1.0.0-beta","author":{"name":"Apostrophe Technologies"},"license":"MIT","_id":"@apostrophecms/login-recaptcha@1.0.0-beta","maintainers":[{"name":"alexgilbert","email":"alex@apostrophecms.com"},{"name":"stuartromanek","email":"stuart@punkave.com"},{"name":"boutell","email":"tom@apostrophecms.com"},{"name":"alexbea","email":"abea@mailbox.org"},{"name":"gregvanbrug","email":"greg.vanbrug@gmail.com"},{"name":"valjed","email":"vjeudy@protonmail.com"},{"name":"romanek","email":"stuart+npm@apostrophecms.com"}],"homepage":"https://github.com/apostrophecms/login-recaptcha#readme","bugs":{"url":"https://github.com/apostrophecms/login-recaptcha/issues"},"dist":{"shasum":"259fa87745eecce36f0b3ff653050ac214770535","tarball":"https://registry.npmjs.org/@apostrophecms/login-recaptcha/-/login-recaptcha-1.0.0-beta.tgz","fileCount":12,"integrity":"sha512-vnGU55VwXf9/xYUUHB1hldAg1UmzBI/TM+z0IvsCbty/VNdKQsb3MMNuRo96AMJva7Geb7L2EzVswP9pgihWCg==","signatures":[{"sig":"MEUCIEk32rGf49gkAwhtEBPJx3L54qBBJMxToDT50deN36SMAiEAocMWj99M0N83y+LKWPKiW6RL7GRqAndgA1cGf8Vb/RA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":14542,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh/UtkCRA9TVsSAnZWagAAn1wQAIjT8tZz6PRtEwZjhe5p\njZ7j4IbL2hT5V6HsVrrKRUa4iVQrebjaics/kTU+ixWOwom1XuuQ/lqpDIAi\nGTcJC5/8xuhbuVM74T43NfVLpy0ZVK1LO5D8F9o/9t38YfgphG1bDp6s0gmI\ne9IJkiSqJuQ8Uelb/bwXsbUXqFhjFNP/o5DQkXcLLQLqHBCBjlPAeZrzfI/i\nClZZ0T1Kw8Hjdi6Bd4mzE3jucsaVhqsZ7uPpv3uyfKsVQOu6GYWZpsPCXd9L\ngOl1Pt2Dg+/n5RLc5DKFb8jsb7k+jYYKAelmvIfaK9QmHqjYV0WW+a9lJy4n\n2O0dtDNT1XdwOwYLVKbh1Fq8cz+LoTTCzhT4FjBusLBLiw0FpU33YGpjefBi\nXdpJpocEpvOs+iSxQYtVUcEOiv2Bc9z7rLbbaUz5Pb+JrjSlCbeYpSyd5VHZ\n25Uds2FijtYSoU8XUPcbk9QhdVy87lCcbskQBWIcXzcYuj/bZJ9CzdzksxWD\ne03rx3EInY/mLb7b3zR7lSL82wfiwlII/xwebeOMyjNZRFkuQMk4iwhwzsnt\ncTwlFlnGOQ6toVDFCPcG3RrYg6ABOKp0gDarEDVf4RY6sVnV5ScZx0MyuUe8\nLtzewqvYQFbQjB8puXzg0UDD4T0ZrFPSJZowRTC3OXHVD8k1TA1syCEKO9KB\nIoHt\r\n=9L6K\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"239e5a9b307a5aae7f044402c6db5a6c01735fc8","scripts":{"lint":"npm run eslint","test":"npm run lint && mocha","eslint":"eslint ."},"_npmUser":{"name":"boutell","email":"tom@apostrophecms.com"},"repository":{"url":"git+https://github.com/apostrophecms/login-recaptcha.git","type":"git"},"_npmVersion":"6.14.15","description":" Adds reCAPTCHA v3 to Apostrophe login pages","directories":{},"_nodeVersion":"16.13.1","_hasShrinkwrap":false,"devDependencies":{"mocha":"^7.2.0","eslint":"^7.9.0","apostrophe":"github:apostrophecms/apostrophe","eslint-plugin-node":"^11.1.0","eslint-plugin-import":"^2.22.0","eslint-plugin-promise":"^4.2.1","eslint-config-standard":"^14.1.1","eslint-plugin-standard":"^4.0.1","eslint-config-apostrophe":"^3.4.0"},"peerDependencies":{"apostrophe":"github:apostrophecms/apostrophe"},"_npmOperationalInternal":{"tmp":"tmp/login-recaptcha_1.0.0-beta_1643989860774_0.14802602852618318","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"@apostrophecms/login-recaptcha","version":"1.0.0","author":{"name":"Apostrophe Technologies"},"license":"MIT","_id":"@apostrophecms/login-recaptcha@1.0.0","maintainers":[{"name":"falkodev","email":"anthony@apostrophecms.com"},{"name":"triskuit","email":"tristan.krug@protonmail.com"},{"name":"mhiggins","email":"mhiggins.louis@gmail.com"},{"name":"bodonkey","email":"robert@robertmeans.net"},{"name":"etlaurent","email":"etldev@tuta.io"},{"name":"alexgilbert","email":"alex@apostrophecms.com"},{"name":"stuartromanek","email":"stuart@punkave.com"},{"name":"boutell","email":"tom@apostrophecms.com"},{"name":"alexbea","email":"abea@mailbox.org"},{"name":"gregvanbrug","email":"greg.vanbrug@gmail.com"},{"name":"valjed","email":"vjeudy@protonmail.com"},{"name":"romanek","email":"stuart+npm@apostrophecms.com"}],"homepage":"https://github.com/apostrophecms/login-recaptcha#readme","bugs":{"url":"https://github.com/apostrophecms/login-recaptcha/issues"},"dist":{"shasum":"c34cb0d03ef1e1efea46096258e80c3d5f7e1795","tarball":"https://registry.npmjs.org/@apostrophecms/login-recaptcha/-/login-recaptcha-1.0.0.tgz","fileCount":12,"integrity":"sha512-ouLOj8enVRE0Ajn4kLPy4P+MKM6UgJks0QVNmCkvtly2N2k3JnHFOBRUvZBJggdciumFt/Ysfx8hcBFvL0qIEA==","signatures":[{"sig":"MEYCIQC18YbrMY5Y2guevWmDOu7dvM6se13C0IlsiL3xv49sUAIhAI17gyNd9o82pB9PPLLTVAb+X5KvCvXZPBuRVbRcTIgh","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":14579,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjyC1DACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqfmhAAlnrRkEAYUag67M4SW88HHHuDyDb2bzNvVfdHmwFvFrA7XgAv\r\nInpzdDQT2n/9agHH81HdfTbVmVyeJGAaDxi2gr/J9WR8KNZRxnCTNi/hdtEk\r\n9gZjTmdSM2SXOCvmyfX48jq2PyXS8ADjQ9v9FgTf4KSF/+zyDaoQ3zBBRnbv\r\n3WI0ojjNFhfjv7NP5b+nn8Nu7+CAjNgFW04G4ONEjg4reikPtoDMNFC8PsNR\r\nu9TZcStXN3dS/LMJnyRqVdZJ7dRHQonPIk71BAIHXt2KbsHm4MDKux9uooOn\r\nbJKZ4uemdpPjJt2JpCwZvgv6Y22fsTxCaj89Hq9Dx+kmodJxHU13/hbkqiJa\r\neBL85YultRrFTKt3qjTGRBuaETsHxmDx8Wt3ZyxIVnai42+cUhPAxyQhPks/\r\nshhjLHFNFiWtTU92IsNfg5UpqPNPoh3Jf/1xUrlRbgxqe18tTr04Da4Qe4DS\r\n6B58us2QHD9gu4GtZVVqIwWousVI3Aaq30rJb1ORLtHGtB3hImnLSU92thun\r\n2QfCZMVZtXuCKyfYYEDVObchAoZjrIOZVwP/rOgnvPjFLccEekrJ94fC+uzM\r\nF1mkt5UHT61lb7NTV72WW563EG96NfSaz5qcCE4/NL2MUFevqsS9VlVO30+y\r\nesC5Pa7BtlMlm2yP4oEeQDz2gs2EuuzJZiM=\r\n=c5ta\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"cfb85b6508dcc654213bae0c15b8f72f53174fd9","scripts":{"lint":"npm run eslint","test":"npm run lint && mocha","eslint":"eslint ."},"_npmUser":{"name":"boutell","email":"tom@apostrophecms.com"},"repository":{"url":"git+https://github.com/apostrophecms/login-recaptcha.git","type":"git"},"_npmVersion":"8.19.2","description":" Adds reCAPTCHA v3 to Apostrophe login pages","directories":{},"_nodeVersion":"16.15.0","_hasShrinkwrap":false,"devDependencies":{"mocha":"^7.2.0","eslint":"^7.9.0","apostrophe":"github:apostrophecms/apostrophe","eslint-plugin-node":"^11.1.0","eslint-plugin-import":"^2.22.0","eslint-plugin-promise":"^4.2.1","eslint-config-standard":"^14.1.1","eslint-plugin-standard":"^4.0.1","eslint-config-apostrophe":"^3.4.0"},"peerDependencies":{"apostrophe":"github:apostrophecms/apostrophe"},"_npmOperationalInternal":{"tmp":"tmp/login-recaptcha_1.0.0_1674063171554_0.40066974498476493","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"@apostrophecms/login-recaptcha","version":"1.0.1","author":{"name":"Apostrophe Technologies"},"license":"MIT","_id":"@apostrophecms/login-recaptcha@1.0.1","maintainers":[{"name":"falkodev","email":"anthony@apostrophecms.com"},{"name":"triskuit","email":"tristan.krug@protonmail.com"},{"name":"mhiggins","email":"mhiggins.louis@gmail.com"},{"name":"bodonkey","email":"robert@robertmeans.net"},{"name":"etlaurent","email":"etldev@tuta.io"},{"name":"alexgilbert","email":"alex@apostrophecms.com"},{"name":"stuartromanek","email":"stuart@punkave.com"},{"name":"boutell","email":"tom@apostrophecms.com"},{"name":"alexbea","email":"abea@mailbox.org"},{"name":"gregvanbrug","email":"greg.vanbrug@gmail.com"},{"name":"valjed","email":"vjeudy@protonmail.com"},{"name":"romanek","email":"stuart+npm@apostrophecms.com"}],"homepage":"https://github.com/apostrophecms/login-recaptcha#readme","bugs":{"url":"https://github.com/apostrophecms/login-recaptcha/issues"},"dist":{"shasum":"6d5e24c2a85e9d58581cc177bb5270968293431d","tarball":"https://registry.npmjs.org/@apostrophecms/login-recaptcha/-/login-recaptcha-1.0.1.tgz","fileCount":12,"integrity":"sha512-NaurBGWoS7tAkv8vvDuLKhwDep5P3m3G7r4/e1sT7YpkXwdmvlZmGjgvTDmCvL31y4g7PV7LQ8Jx9lI4yAfJ5g==","signatures":[{"sig":"MEYCIQDGBxxaeY9i5jKMIYrmIPxsGXg4YyJwstZDhUN7N+s3lwIhAJqAKeW7UZ9cytCd8OeBshu+OfxJIGTGUw4Bq4BjN7dF","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":14564,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj7+KWACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpHbA/9H8iWxEVNN6oZBeC98NLg+Zt8/f5vofJSwK9nP9kuPOJPcQF2\r\n7zQM9ozSvJjLGZBtuD5OdiSJw4RvIztqDE9lW7ssBewYJWVDLP3jVjhshV00\r\nGqyU36JVeGeZBu4810YxGGh4E7AJ2zATQVI2xUEmWqKwgGjOefYw+7g887Am\r\n0jvl6k1EVwKGG6onE0NQVsVNy2lIHEpQAaTxjHbeW0UIHiGDcTUnli6pNeSq\r\nElrRysj1thunv1N4AwZnUkvTEwDuTLj6c6EPhdhRZf3K3xbZMUNU2Sk7v8fi\r\nToVLPMZfW7S1dx5IaIYG+S1+XpGEzXiVFuext36iQIv1vIocoCKZPutG+Sfc\r\nXsmyvnFAUXi7tWgTwBaccicQpAHnAaE1MH5WUtqGlw7xr5YDHokOoliBiR4N\r\nqBaL18NZqKid7lraY72aYiJ6CYRbaasYTpUVKwQRnUquv8Taj23WoOwSlmAD\r\nB+RN/7fZmrfCi8kdwh7LUwrcVFuiAc+COmslj6M62RDJTcMuBYlylHuUPUNb\r\nqmj/Gpn04a9Mwu1NEhKNQy6L5DKfHEmvr5IBJGSNmx2n1eB7O9Gw80vn2Ahx\r\nPzidJcqqpMEddMOQUZZdjRtvIBeQa9wevmaVWTCMa1fs/xBD3EBx3h7WqF2C\r\ndH3PcINnskBZxoW2GX48YZACk3S5I1DeqvY=\r\n=9/qa\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"5ce2dba6e7f4dbd3040e76f9fbbd9ff33854aa31","scripts":{"lint":"npm run eslint","test":"npm run lint && mocha","eslint":"eslint ."},"_npmUser":{"name":"boutell","email":"tom@apostrophecms.com"},"repository":{"url":"git+https://github.com/apostrophecms/login-recaptcha.git","type":"git"},"_npmVersion":"6.14.15","description":" Adds reCAPTCHA v3 to Apostrophe login pages","directories":{},"_nodeVersion":"12.22.6","_hasShrinkwrap":false,"devDependencies":{"mocha":"^7.2.0","eslint":"^7.9.0","apostrophe":"github:apostrophecms/apostrophe","eslint-plugin-node":"^11.1.0","eslint-plugin-import":"^2.22.0","eslint-plugin-promise":"^4.2.1","eslint-config-standard":"^14.1.1","eslint-plugin-standard":"^4.0.1","eslint-config-apostrophe":"^3.4.0"},"_npmOperationalInternal":{"tmp":"tmp/login-recaptcha_1.0.1_1676665494648_0.4977592612642878","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@apostrophecms/login-recaptcha","version":"1.1.0","author":{"name":"Apostrophe Technologies"},"license":"MIT","_id":"@apostrophecms/login-recaptcha@1.1.0","maintainers":[{"name":"triskuit","email":"tristan.krug@protonmail.com"},{"name":"bodonkey","email":"robert@robertmeans.net"},{"name":"etlaurent","email":"etldev@tuta.io"},{"name":"alexgilbert","email":"alex@apostrophecms.com"},{"name":"stuartromanek","email":"stuart@punkave.com"},{"name":"boutell","email":"tom@apostrophecms.com"},{"name":"alexbea","email":"abea@mailbox.org"},{"name":"gregvanbrug","email":"greg.vanbrug@gmail.com"},{"name":"valjed","email":"vjeudy@protonmail.com"},{"name":"romanek","email":"stuart+npm@apostrophecms.com"}],"homepage":"https://github.com/apostrophecms/login-recaptcha#readme","bugs":{"url":"https://github.com/apostrophecms/login-recaptcha/issues"},"dist":{"shasum":"203dceeebd27ad31fccdc4d10ac8ce1c28ac65c6","tarball":"https://registry.npmjs.org/@apostrophecms/login-recaptcha/-/login-recaptcha-1.1.0.tgz","fileCount":12,"integrity":"sha512-SwQlPUkhYPhA9tA5Jumo2yrn2UTpbLc5/OhTns+o5IcWgJWYyB6Z9ySFwHl4EaqRFePqY/t0SyLKbGKWTpf5iQ==","signatures":[{"sig":"MEYCIQDk3OuSJ8aMMkKnsXCN/5bZfnjsczJh0/0vEPAtfx1wzwIhAKZ7OakOLIqKA9KbdCKMxg2u2qEcf177POOWcFuA5Ycj","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":16034},"main":"index.js","gitHead":"d024017cd8cff0439f86a2dfe64ae1757d14a3c6","scripts":{"lint":"npm run eslint","test":"npm run lint && mocha","eslint":"eslint ."},"_npmUser":{"name":"boutell","email":"tom@apostrophecms.com"},"repository":{"url":"git+https://github.com/apostrophecms/login-recaptcha.git","type":"git"},"_npmVersion":"9.5.0","description":" Adds reCAPTCHA v3 to Apostrophe login pages","directories":{},"_nodeVersion":"18.15.0","_hasShrinkwrap":false,"devDependencies":{"mocha":"^7.2.0","eslint":"^7.9.0","apostrophe":"github:apostrophecms/apostrophe","eslint-plugin-node":"^11.1.0","eslint-plugin-import":"^2.22.0","eslint-plugin-promise":"^4.2.1","eslint-config-standard":"^14.1.1","eslint-plugin-standard":"^4.0.1","eslint-config-apostrophe":"^3.4.0"},"_npmOperationalInternal":{"tmp":"tmp/login-recaptcha_1.1.0_1692210342144_0.675749582295637","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"@apostrophecms/login-recaptcha","version":"1.2.0","author":{"name":"Apostrophe Technologies"},"license":"MIT","_id":"@apostrophecms/login-recaptcha@1.2.0","maintainers":[{"name":"itsrogil","email":"romain.gilles1@gmail.com"},{"name":"triskuit","email":"tristan.krug@protonmail.com"},{"name":"bodonkey","email":"robert@robertmeans.net"},{"name":"etlaurent","email":"etldev@tuta.io"},{"name":"alexgilbert","email":"alex@apostrophecms.com"},{"name":"stuartromanek","email":"stuart@punkave.com"},{"name":"boutell","email":"tom@apostrophecms.com"},{"name":"alexbea","email":"abea@mailbox.org"},{"name":"gregvanbrug","email":"greg.vanbrug@gmail.com"},{"name":"valjed","email":"vjeudy@protonmail.com"},{"name":"romanek","email":"stuart+npm@apostrophecms.com"}],"homepage":"https://github.com/apostrophecms/login-recaptcha#readme","bugs":{"url":"https://github.com/apostrophecms/login-recaptcha/issues"},"dist":{"shasum":"eb2eb13386c4ceefd4f60c80e78f68d3368fd372","tarball":"https://registry.npmjs.org/@apostrophecms/login-recaptcha/-/login-recaptcha-1.2.0.tgz","fileCount":12,"integrity":"sha512-T15EEqgkq/shaG0jWhcKV7ES5jjXneErzmBpK7NRZq3JBFDTrF+8v0s3NvG14Rz1nD+nn4oecCQXlc70fI0W7A==","signatures":[{"sig":"MEUCIE/2ngJiauHmtKPxStqm9Fo6dSSThwuvqeIqG/t/ejIDAiEA0fBQZBj56MWqeRAVm5VGBi/5aO0CdOOTOw71DmuXjnw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17076},"main":"index.js","gitHead":"dec315a94272d7bf874b8f522ecdefd165f3ef53","scripts":{"lint":"npm run eslint","test":"npm run lint && mocha","eslint":"eslint ."},"_npmUser":{"name":"bodonkey","email":"robert@robertmeans.net"},"repository":{"url":"git+https://github.com/apostrophecms/login-recaptcha.git","type":"git"},"_npmVersion":"9.8.1","description":" Adds reCAPTCHA v3 to Apostrophe login pages","directories":{},"_nodeVersion":"18.18.0","_hasShrinkwrap":false,"devDependencies":{"mocha":"^7.2.0","eslint":"^7.9.0","apostrophe":"github:apostrophecms/apostrophe","eslint-plugin-node":"^11.1.0","eslint-plugin-import":"^2.22.0","eslint-plugin-promise":"^4.2.1","eslint-config-standard":"^14.1.1","eslint-plugin-standard":"^4.0.1","eslint-config-apostrophe":"^3.4.0"},"_npmOperationalInternal":{"tmp":"tmp/login-recaptcha_1.2.0_1708526973538_0.5970946112987707","host":"s3://npm-registry-packages"}},"1.2.1":{"_id":"@apostrophecms/login-recaptcha@1.2.1","bugs":{"url":"https://github.com/apostrophecms/apostrophe/issues"},"dist":{"shasum":"5715b37e6a5eca4b11d7d18899f011413221a024","tarball":"https://registry.npmjs.org/@apostrophecms/login-recaptcha/-/login-recaptcha-1.2.1.tgz","fileCount":12,"integrity":"sha512-mmTgv73cLfGAOvRopn1Nj/sPG7/NOJdKCvcyY0+xpqA2Wjezuf2a7D3TmkbzsBGVzP8JH5wuzhLqMdRMXeTXwA==","signatures":[{"sig":"MEQCIE89hnoWfDblfMtT4xUgSB6P7h4wf+9es0O6YyRXhRCpAiBtPbMEYQW5GxJgc9Gyqpz0yi+5QuARnT9SvuQfCDTz+Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGOkUTGpv06AjyfSds75vQ/ahYgTvzHSTII3nnWzeihhAiB7CGGt2tISS9TO9CtyG8VQi7JyaUQK20oOu9tnOTxUhw=="}],"unpackedSize":20467},"main":"index.js","name":"@apostrophecms/login-recaptcha","author":{"name":"Apostrophe Technologies"},"gitHead":"9500b8b0e1d630d5e07fbb5fd2c25ed0943845ce","license":"MIT","scripts":{"lint":"npm run eslint && npm run stylelint","test":"npm run lint && mocha","eslint":"eslint .","stylelint":"stylelint ui/**/*.{scss,vue}"},"version":"1.2.1","_npmUser":{"name":"boutell","email":"tom@apostrophecms.com"},"homepage":"https://github.com/apostrophecms/apostrophe/tree/main/packages/login-recaptcha#readme","repository":{"url":"git+https://github.com/apostrophecms/apostrophe.git","type":"git","directory":"packages/login-recaptcha"},"_npmVersion":"11.19.0","description":" Adds reCAPTCHA v3 to Apostrophe login pages","directories":{},"maintainers":[{"name":"alexgilbert","email":"alex@apostrophecms.com"},{"name":"boutell","email":"tom@apostrophecms.com"},{"name":"romanek","email":"stuart+npm@apostrophecms.com"},{"name":"bodonkey","email":"robert.means1969+apostrophecms@gmail.com"}],"_nodeVersion":"24.20.0","_hasShrinkwrap":false,"devDependencies":{"mocha":"^11.8.0","eslint":"^9.39.5","stylelint":"^16.26.1","apostrophe":"^4.33.0","eslint-config-apostrophe":"^6.1.0","stylelint-config-apostrophe":"^4.4.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/login-recaptcha_1.2.1_1790796500236_0.963867988227538"}}},"time":{"created":"2022-02-04T15:51:00.722Z","modified":"2026-09-30T19:28:20.487Z","1.0.0-beta":"2022-02-04T15:51:00.886Z","1.0.0":"2023-01-18T17:32:51.758Z","1.0.1":"2023-02-17T20:24:54.850Z","1.1.0":"2023-08-16T18:25:42.435Z","1.2.0":"2024-02-21T14:49:33.712Z","1.2.1":"2026-09-30T19:28:20.333Z"},"bugs":{"url":"https://github.com/apostrophecms/apostrophe/issues"},"author":{"name":"Apostrophe Technologies"},"license":"MIT","homepage":"https://github.com/apostrophecms/apostrophe/tree/main/packages/login-recaptcha#readme","repository":{"url":"git+https://github.com/apostrophecms/apostrophe.git","type":"git","directory":"packages/login-recaptcha"},"description":" Adds reCAPTCHA v3 to Apostrophe login pages","maintainers":[{"name":"alexgilbert","email":"alex@apostrophecms.com"},{"name":"boutell","email":"tom@apostrophecms.com"},{"name":"romanek","email":"stuart+npm@apostrophecms.com"},{"name":"bodonkey","email":"robert.means1969+apostrophecms@gmail.com"}],"readme":"<div align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/apostrophecms/apostrophe/main/logo.svg\" alt=\"ApostropheCMS logo\" width=\"80\" height=\"80\">\n\n  <h1>Apostrophe reCAPTCHA Login Verification</h1>\n  <p>\n    <a aria-label=\"Apostrophe logo\" href=\"https://v3.docs.apostrophecms.org\">\n      <img src=\"https://img.shields.io/badge/MADE%20FOR%20ApostropheCMS-000000.svg?style=for-the-badge&logo=Apostrophe&labelColor=6516dd\">\n    </a>\n    <a aria-label=\"Test status\" href=\"https://github.com/apostrophecms/login-recaptcha/actions\">\n      <img alt=\"GitHub Workflow Status (branch)\" src=\"https://img.shields.io/github/workflow/status/apostrophecms/login-recaptcha/Tests/main?label=Tests&labelColor=000000&style=for-the-badge\">\n    </a>\n    <a aria-label=\"Join the community on Discord\" href=\"http://chat.apostrophecms.org\">\n      <img alt=\"\" src=\"https://img.shields.io/discord/517772094482677790?color=5865f2&label=Join%20the%20Discord&logo=discord&logoColor=fff&labelColor=000&style=for-the-badge&logoWidth=20\">\n    </a>\n    <a aria-label=\"License\" href=\"https://github.com/apostrophecms/login-recaptcha/blob/main/LICENSE.md\">\n      <img alt=\"\" src=\"https://img.shields.io/static/v1?style=for-the-badge&labelColor=000000&label=License&message=MIT&color=3DA639\">\n    </a>\n  </p>\n</div>\n\nThis login verification module adds a [reCAPTCHA](https://developers.google.com/recaptcha/intro) check when any user logs into the site. It uses reCAPTCHA v3, which means that the test is invisible aside from a reCAPTCHA logo at the bottom of the screen.\n\n## Installation\n\nTo install the module, use the command line to run this command in an Apostrophe project's root directory:\n\n```\nnpm install @apostrophecms/login-recaptcha\n```\n\n## Usage\n\nInstantiate the reCAPTCHA login module in the `app.js` file:\n\n```javascript\nrequire('apostrophe')({\n  shortName: 'my-project',\n  modules: {\n    '@apostrophecms/login-recaptcha': {}\n  }\n});\n```\n\nThe other requirement is to add [reCAPTCHA site and secret keys](https://developers.google.com/recaptcha/intro#recaptcha-overview) to the `@apostrophecms/login` module (*not* this module). This module adds functionality to that module (it \"improves\" it, in Apostrophe speak), so most configuration should be directly on the core login module.\n\n\n```javascript\n// modules/@apostrophecms/login/index.js\nmodule.exports = {\n  options: {\n    recaptcha: {\n      site: 'ADD YOUR SITE KEY',\n      secret: 'ADD YOUR SECRET KEY'\n    }\n  }\n};\n```\n\nOnce configured, reCAPTCHA verification should work on all login attempts.\n\n### Right-to-left websites\n\nOn a website whose current locale is right-to-left, the login page is laid out right-to-left as well (the reCAPTCHA badge keeps its own fixed position). If your editors prefer a left-to-right login page, set the `direction` option of the `@apostrophecms/login` module (*not* this module):\n\n```javascript\n// modules/@apostrophecms/login/index.js\nmodule.exports = {\n  options: {\n    direction: 'ltr'\n  }\n};\n```\n\n### Content security headers\n\nIf your site has a content security policy, including if you use the [Apostrophe Security Headers](https://www.npmjs.com/package/@apostrophecms/security-headers) module, you will need to add additional configuration to use this module. This module adds a script tag to the site's `head` tag fetching reCAPTCHA code. That reCAPTCHA code also constructs an iframe. The external script and iframe use the `www.google.com` and `www.gstatic.com` domains, so we need to allow resources from that domain.\n\n**If you are using the Apostrophe Security Headers module**, add the following policy configuration for that module:\n\n```javascript\nmodule.exports = {\n  options: {\n    policies: {\n      'login-recaptcha': {\n        'script-src': 'www.google.com www.gstatic.com',\n        'frame-src': 'www.google.com'\n      },\n      // Any other policies...\n    }\n  }\n};\n```\n\n**If your content security policy is configured some other way**, add `www.google.com` to the `frame-src` directive and  `www.google.com www.gstatic.com` to the `script-src` directive.\n","readmeFilename":"README.md"}