{"_id":"@caesar003/slider-captcha-core","_rev":"1-b23bc18b32ba99281db4f2554f570afc","name":"@caesar003/slider-captcha-core","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@caesar003/slider-captcha-core","version":"1.0.0","description":"User-friendly puzzle slider captcha for React and Express","main":"index.js","scripts":{"test":"jest","lint":"eslint ./","fix":"eslint --fix ./","babel":"babel src -d ./lib --ignore '**/*.test.js'","build":"npm run lint && npm run babel"},"repository":{"type":"git","url":"git+https://github.com/caesar003/rb-slider-captcha.git"},"keywords":["react","slider","captcha","component","puzzle","slide","express"],"author":{"name":"adrsch"},"license":"MIT","bugs":{"url":"https://github.com/adrsch/slider-captcha/issues"},"homepage":"https://github.com/caesar003/rb-slider-captcha#readme","dependencies":{"prop-types":"^15.7.2","sharp":"^0.25.4","uid-safe":"^2.1.5"},"devDependencies":{"@babel/cli":"^7.10.5","@babel/core":"^7.11.1","@babel/preset-env":"^7.11.0","@babel/preset-react":"^7.10.4","eslint":"^7.2.0","eslint-config-airbnb":"^18.2.0","eslint-plugin-import":"^2.22.0","eslint-plugin-jsx-a11y":"^6.3.1","eslint-plugin-react":"^7.20.6","eslint-plugin-react-hooks":"^4.0.0","jest":"^26.4.2"},"publishConfig":{"registry":"https://registry.npmjs.org/"},"_id":"@caesar003/slider-captcha-core@1.0.0","gitHead":"24ed90d13d3506d0ca5c01716657afa64fcac318","_nodeVersion":"20.7.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-+fCnoqwzjIbKuBNXgsOt4DqxOzSumo9si0DH6ZtLxSxk/76kYV2C3GPCg2OSXt6LoltqHU0pIoeM4k5WZ3bAFQ==","shasum":"052df4a76b9895aadf448e15ed63e79118672e35","tarball":"https://registry.npmjs.org/@caesar003/slider-captcha-core/-/slider-captcha-core-1.0.0.tgz","fileCount":3,"unpackedSize":4698,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICi3dOMSpumxQED16wnDFkwdKFL87fuKP1Qya332IcoWAiEAjq5bR8R7O2rJeIUL+XQA9UXZnOZcPn51JCFz7NI1rOA="}]},"_npmUser":{"name":"caesar003","email":"caesarmuksid@gmail.com"},"directories":{},"maintainers":[{"name":"caesar003","email":"caesarmuksid@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/slider-captcha-core_1.0.0_1700571549239_0.9164579124128702"},"_hasShrinkwrap":false},"1.0.1":{"name":"@caesar003/slider-captcha-core","version":"1.0.1","description":"User-friendly puzzle slider captcha for React and Express","main":"index.js","scripts":{"test":"jest","lint":"eslint ./","fix":"eslint --fix ./","babel":"babel src -d ./lib --ignore '**/*.test.js'","build":"npm run lint && npm run babel"},"repository":{"type":"git","url":"git+https://github.com/caesar003/rb-slider-captcha.git"},"keywords":["react","slider","captcha","component","puzzle","slide","express"],"author":{"name":"adrsch"},"license":"MIT","bugs":{"url":"https://github.com/adrsch/slider-captcha/issues"},"homepage":"https://github.com/caesar003/rb-slider-captcha#readme","dependencies":{"prop-types":"^15.7.2","sharp":"^0.25.4","uid-safe":"^2.1.5"},"devDependencies":{"@babel/cli":"^7.10.5","@babel/core":"^7.11.1","@babel/preset-env":"^7.11.0","@babel/preset-react":"^7.10.4","eslint":"^7.2.0","eslint-config-airbnb":"^18.2.0","eslint-plugin-import":"^2.22.0","eslint-plugin-jsx-a11y":"^6.3.1","eslint-plugin-react":"^7.20.6","eslint-plugin-react-hooks":"^4.0.0","jest":"^26.4.2"},"publishConfig":{"registry":"https://registry.npmjs.org/"},"_id":"@caesar003/slider-captcha-core@1.0.1","gitHead":"24ed90d13d3506d0ca5c01716657afa64fcac318","_nodeVersion":"20.7.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-2U2ooSvt3biLfkbc1Csbh02znXFVzJpv8+0wWyVWspSFPe9lgZnMAc3m+p0kenU178hwUxV+xVAdJFTsxQR70g==","shasum":"5cbd02e9f51b6919d3879f953570cd0fc9fc9348","tarball":"https://registry.npmjs.org/@caesar003/slider-captcha-core/-/slider-captcha-core-1.0.1.tgz","fileCount":9,"unpackedSize":19541,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHzZ4hRSBnl9+rq0WWpIVQK4ouoWh7fFRZASHDNc739EAiA7tISPhTHIaD+tAuJ7vhW4MWqEJaZNWLixcAXixwEZKg=="}]},"_npmUser":{"name":"caesar003","email":"caesarmuksid@gmail.com"},"directories":{},"maintainers":[{"name":"caesar003","email":"caesarmuksid@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/slider-captcha-core_1.0.1_1700586416820_0.14293770779281112"},"_hasShrinkwrap":false}},"time":{"created":"2023-11-21T12:59:09.131Z","1.0.0":"2023-11-21T12:59:09.447Z","modified":"2023-11-21T17:06:57.181Z","1.0.1":"2023-11-21T17:06:57.013Z"},"maintainers":[{"name":"caesar003","email":"caesarmuksid@gmail.com"}],"description":"User-friendly puzzle slider captcha for React and Express","homepage":"https://github.com/caesar003/rb-slider-captcha#readme","keywords":["react","slider","captcha","component","puzzle","slide","express"],"repository":{"type":"git","url":"git+https://github.com/caesar003/rb-slider-captcha.git"},"author":{"name":"adrsch"},"bugs":{"url":"https://github.com/adrsch/slider-captcha/issues"},"license":"MIT","readme":"# @slider-captcha\nGenerate a puzzle slider captcha and display with React component.\\\n![](https://raw.githubusercontent.com/adrsch/slider-captcha/master/demo.gif)\n## Installation\nReact frontend:\n```\nnpm i @slider-captcha/react\n```\nBackend:\n```\nnpm i @slider-captcha/core\n```\n## Usage\nReact:\n```\nimport SliderCaptcha from '@slider-captcha/react';\n\nfunction verifiedCallback(token) {\n  console.log('Captcha token: ' + token);\n}\n\nfunction App() {\n  return (\n    <SliderCaptcha\n      create=\"https://example.com/captcha/create\"\n      verify=\"https://example.com/captcha/verify\"\n      callback={verifiedCallback}\n    />\n  );\n}\n```\nExpress:\n```\nvar sliderCaptcha = require('@slider-captcha/core');\n\napp.get('/captcha/create', function (req, res) {\n  sliderCaptcha.create()\n    .then(function ({data, solution}) {\n      req.session.captcha = solution;\n      req.session.save();\n      res.status(200).send(data);\n    });\n});\n\napp.post('/captcha/verify', function (req, res) {\n  sliderCaptcha.verify(req.session.captcha, req.body)\n    .then(function (verification) {\n      if (verification.result === 'success') {\n        req.session.token = verification.token;\n        req.session.save();\n      }\n      res.status(200).send(verification);\n    });\n});\n```\n### React component props\n\n| Name | Type | Default | Description |\n|:---- | ---- | ---- | ------ |\n| callback | func | `(token) => console.log(token)` | Called with token on successful verification |\n| create | string or func | `captcha/create` | Either the URL to fetch data from or a `function ()` returning a promise which resolves with `{ background, slider }` as PNG buffers |\n| verify | string or func | `captcha/verify` | Either the URL to fetch data from or a `function (response, trail)` returning a promise which resolves with `{ result, token }` |\n| text | { anchor: string, challenge: string } | `{ anchor: 'I am human', challenge: 'Slide to finish the puzzle' }` | Text used for captcha |\n| variant | string | `light` | Use `'light'` for light theme, `'dark'` for dark theme |\n\nLight:\\\n![](https://raw.githubusercontent.com/adrsch/slider-captcha/master/light.png)\\\nDark:\\\n![](https://raw.githubusercontent.com/adrsch/slider-captcha/master/dark.png)\n\n### Create captcha options\n`sliderCaptcha.create({option: value})`\n\n| Name | Type | Default | Description |\n|:---- | ---- | ---- | ------ |\n| image | buffer | randomly generated pattern | Background image used for captcha - resized to 250x150 |\n| fill | string | `#000` | Color used in overlay of puzzle piece on background |\n| stroke | string | `#fff` | Color for outline of puzzle piece |\n| strokeWidth | string | `0.4` | Puzzle piece outline width |\n| opacity | string | `0.5` | Opacity of puzzle piece overlay on background |\n| distort | bool | false | Apply distortion to the puzzle piece |\n| rotate | bool | false | Apply a random rotation to the puzzle piece |\n\nWith rotation and distortion: \\\n![](https://raw.githubusercontent.com/adrsch/slider-captcha/master/distortrotate.png)\n\n### Verify captcha options\n`sliderCaptcha.verify(captcha, {response, trail: {x, y}}, {option: value})`\n\n\n| Name | Type | Default | Description |\n|:---- | ---- | ---- | ------ |\n| tolerance | number | 7 | Allowed deviation from true captcha value |\n","readmeFilename":"README.md"}