{"_id":"disableautofill","_rev":"9-c5eed72009a1d5fef94449a7dfb35336","name":"disableautofill","dist-tags":{"latest":"4.0.0"},"versions":{"1.2.8":{"name":"disableautofill","description":"The easiest solution for disabling Google Chrome auto-fill, auto-complete functions.","version":"1.2.8","author":{"name":"Terry Lin","email":"contact@terryl.in","url":"https://terryl.in"},"license":"MIT","main":"src/jquery.disableAutoFill.js","repository":{"type":"git","url":"git+https://github.com/terrylinooo/jquery.disableAutoFill.git"},"bugs":{"url":"https://github.com/terrylinooo/jquery.disableAutoFill/issues"},"bundleDependencies":[],"homepage":"https://terrylinooo.github.io/jquery.disableAutoFill/","keywords":["jquery","chrome","autofill"],"directories":{"doc":"docs"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"gitHead":"02d8fa879d8d7494834af615db10622295125c6c","_id":"disableautofill@1.2.8","_nodeVersion":"10.16.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-z+LfLFSyxZwp+kgge1uHQ4n0cXb5Z5dCPUjfe74T3qFGwb/v/ZAGy+uYjgiDlfzGX+lfZtyt/0DnOIDXM+fFmA==","shasum":"12a0a6d39f4d1829a073d3942853b02f840e11cb","tarball":"https://registry.npmjs.org/disableautofill/-/disableautofill-1.2.8.tgz","fileCount":19,"unpackedSize":933488,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdci4tCRA9TVsSAnZWagAAIHwP/0l1z2gQ5+elFofDI5WU\nYC2Z5QKyKjGnBgRaD/rCTR1jUdhb+tzIicpSm2sFVx+iGHvOTXUjHazV5O7l\naetKJ7bC+SM9SOFRV3ZvwIQcw06IqexQEmVD3fClilkUNX6tWrIrFB3P5uYb\n+ULoiRolWxP386g5+T0Ws0ZzKsbFwQBR6va/MvzCUqAoc7S+1jVkCSJzmYfu\n0jy3CSg+5Cl6T/vAAbw667bG6Ul4gRc4IfQTRZLbFnCdesPx8vJwEm09/cWM\nfnSMd5Kmx0YcPfSiDBjtZYVUk/dliPRlDT/XCoZjxz5a6MgyVcuHb9ZRfoa3\nm53P5nitJek4pocEerZ8hIesSpobXVwFjkVg++KRSm+e6bXOzJYCXxF5WQug\nnjnJH/oveSGOLSGlEe0VmqZ07eLBNenrqvl5DaqKPZJLx2Q4p0qGNzTK0XmD\niIMPys8ur9jI8JTgw3OC8xIrDe0nMoA0DWWRFM/WjjngG6ML/B3YpLbBONnn\nd5GxnELlZ2BZUR5nAHZtpwjbXsEmAV41VYbR+Vx3+Nbi7H5L0seCQnRnr68J\nz5LIhh90k8K/zu1a6JD5PbTkmGj0ZcV40W1RLO5iPvFfDMCLojcsbs1UltYt\nqT07ysDwOGcnjCW2f3BoCWSOm4dmJF7tDN2A9nomjsAECuJNCyku5z3dh8De\nexzS\r\n=GAre\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDFEEQ68BboPNkEvAyxSDbMQjPwWTLg60iy1e5F8L58AAIgDFTl5hB+7xkygtGkU6+JYYi7q8Bwq3O0LLNV9Z2E/zc="}]},"maintainers":[{"name":"terrylinooo","email":"terrylin.developer@gmail.com"}],"_npmUser":{"name":"terrylinooo","email":"terrylin.developer@gmail.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/disableautofill_1.2.8_1567764012818_0.08944640586104402"},"_hasShrinkwrap":false},"2.0.0":{"name":"disableautofill","description":"The easiest solution for disabling Google Chrome auto-fill, auto-complete functions.","version":"2.0.0","author":{"name":"Terry Lin","email":"contact@terryl.in","url":"https://terryl.in"},"repository":{"type":"git","url":"git+https://github.com/terrylinooo/disableautofill.js.git"},"bugs":{"url":"https://github.com/terrylinooo/disableautofill.js/issues"},"bundleDependencies":[],"homepage":"https://github.com/terrylinooo/disableautofill.js","keywords":["disableautofill","client","script"],"main":"./index","private":false,"engines":{"node":">=4.0.0"},"devDependencies":{"ejs":"^3.1.6","eslint":"^7.20.0","eslint-config-defaults":"^9.0.0","express":"^4.17.1","jquery":"^3.5.1","pre-commit":"^1.2.2","webpack":"^5.22.0","webpack-cli":"^4.5.0","webpack-dev-middleware":"^4.1.0","webpack-hot-middleware":"^2.25.0"},"scripts":{"init":"git submodule init && git submodule update && git submodule status","start":"node dev/server.js --dev-server","lint":"eslint src","build-unminified":"webpack --env env=production --config webpack.config.js --progress","build-minified":"webpack --env env=production --env minified=yes --config webpack.config.js --progress","build":"npm run build-unminified && npm run build-minified","test":"npm run lint"},"pre-commit":["lint"],"license":"MIT","publishConfig":{"registry":"https://registry.npmjs.org"},"gitHead":"6b16ec1aa421ff1f00c00e80a5daef107acc74b7","_id":"disableautofill@2.0.0","_nodeVersion":"10.16.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-URun0l00OvHHu0YApUOrRH8JSRLM5ZZnIkwPOFYPu/27xDJ7D3YOU/p+IvoerwIl0S/d3H3dNpL9ABI3UmyAyA==","shasum":"f1ddc38d61a460357a51461605370aff8711b239","tarball":"https://registry.npmjs.org/disableautofill/-/disableautofill-2.0.0.tgz","fileCount":23,"unpackedSize":119257,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgMAIuCRA9TVsSAnZWagAAR84QAIfdY43D+lNbRkZDYJf8\nX5eOG4l6Vc0cWYhhaRXwhVwbM4RHCqbFiQHHyv5slmf4BQxkApOmb89JPV7J\nhq7QWvDUPgOqKi/y2QU2gXVKrgpNF2ZdOZt405vWXN5hBBwvh4eqJauGBpKn\ns7CWMpnpJoOWLAZEe7YSoXWfLAJHhUNLkbj68YkwqFXTO2mvF8w2ubdsqaLL\nVjuTz7W+HVFj4U0rkMPcFkr4FYkQ8rbpQ/8Tbz1+kmQZ8N6MrMGFrEykD2mb\n7vz9s5gljipmlasbqEEFEYFSvSDTA26xv9iUoN3kZ8MP12WCABOyy7/irWDS\nr/8BJoHJStQkKdU/Fe3JdR0qFSFFkc6gu0VWeQEJ75ObUJdGQsUipfHADlEJ\ng2LG5h/u6XFU/RC7sOkS82fXslu8VhSETDVhc3fWuzVhHwgMkirsM5PELapS\n9BTNWkkADLPPSlZK6MJHgXyz56ZTxlWtosj9uHoF9LbhVwHnwS0wggZo7hR3\nVIsRDC0SciK6XizPYY4cTk4/8NCj9xGfdVTGGPR9gNqF+khC1m+3kL1YEBjl\nY4kHxJYwP7GTx2z14qBCYj8j29h+a4viyNAXtye+3KH/aAfmlin2joakgHbu\nfppdyUWZ8YW0XABzhvt+uI4KtmQsjeaZ7eBO616E88VedTZ4Fc/jnJRTGjvr\nPDoU\r\n=wGYm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDoDjbu7Po8wYYQDEs9Lla9C6Ryg8rV9jWsOGhr5BJ1rAIhAMzg4ug67y0bEUeJgCoQkjaUbVqBp8csKE+jP5AW4S6I"}]},"_npmUser":{"name":"terrylinooo","email":"terrylin.developer@gmail.com"},"directories":{},"maintainers":[{"name":"terrylinooo","email":"terrylin.developer@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/disableautofill_2.0.0_1613759022314_0.8451557343502598"},"_hasShrinkwrap":false},"3.0.0":{"name":"disableautofill","version":"3.0.0","description":"The easiest solution for disabling Google Chrome auto-fill, auto-complete functions.","main":"dist/disableautofill.js","module":"src/index.js","scripts":{"build":"webpack --mode production","watch":"webpack --watch --mode development","test":"jest --verbose false","coverage":"npm test -- --coverage"},"jest":{"testEnvironment":"jsdom"},"repository":{"type":"git","url":"git+https://github.com/terrylinooo/sliderm.js.git"},"keywords":["disable-autofill","disable-autocomplete"],"author":{"name":"Terry L.","url":" https:://terryl.in "},"license":"MIT","bugs":{"url":"https://github.com/terrylinooo/disableautofill.js/issues"},"homepage":"https://github.com/terrylinooo/disableautofill.js","devDependencies":{"@babel/core":"^7.19.1","@babel/preset-env":"^7.19.1","babel-jest":"^29.2.0","babel-loader":"^8.2.5","eslint":"^8.24.0","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.26.0","eslint-plugin-jest":"^27.1.2","eslint-plugin-jsx-a11y":"^6.6.1","eslint-plugin-prettier":"^4.2.1","eslint-plugin-react":"^7.31.8","eslint-plugin-react-hooks":"^4.6.0","jest":"^29.2.0","jest-environment-jsdom":"^29.2.0","prettier":"^2.7.1","script-loader":"^0.7.2","terser-webpack-plugin":"^5.3.6","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"gitHead":"a835bed74a05e8ba4ad05c7467d11b76e02117f6","_id":"disableautofill@3.0.0","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-GzL2GyWeuHIx9P0BJevCObia1ZWWq0ZoWqeuKqzscZGPaDG8xH81uriwdO1WyS7k4WGrXQ7H0i8XQOYtWwxoXQ==","shasum":"44af4148a7357966cdeaa5105ab159d5e15696f7","tarball":"https://registry.npmjs.org/disableautofill/-/disableautofill-3.0.0.tgz","fileCount":21,"unpackedSize":47500,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDGm1DCUOc5JiP1UBhVC68mZ0WIbfwM+m9POkmzeRoFJQIhAKOvdKe1xBqwpyky39ekePAdOBO7H8ABjrHRtsO5yPk7"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjeNq5ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp1hQ//XpEb0e46njKaAha47el2X2V5tN+32BkZNj0GlD5tHyeoqXKC\r\nNLKcBfAuongFesAjRe/TRu31ZDa8CfL81BFc5Sr96DJmRvbrS3F6ib5GYFld\r\nBDp9MZbCGgkK0pLPuqTWqCP3u8cHqZuHnAZPdruW/V5WE4lsgjMZKktmWrEu\r\np7+ZIo0suuUI6OczuS7VNe3Pt9C5OJvkFO8LLF4Ng4F1lDwpgVUgRerrI4SE\r\niSc+yU4IFyIceN/nFvQgExRvYVVhZz0XVWZ75wLnFjOGbLcIERvJsAyLisR1\r\n9yKhLK3fwxOAADN8fRncpyNrvZhxERq5P7OPZlpgTau5Xs0+u02mZl0RuDaz\r\nnLxQdsVSvp/dUAUZILkgff/qkJ/XyZZ8G1IN4oGWT953gq3b8VrPsSzaMPDl\r\no8MpTNtlXUjejf52dBYvMgMhx4pBpn+AWdQzrEhELSNNl1Nw5VTRAYc6LXZ8\r\n00Zf8eeLyn/+5AURdj+OntuDeQTMyVxFO9Z0dlL2c1WD34rb5edZXTZXUO6B\r\nwXf0zjFqKOvUTlmajg5sEwzFob89DI68hqMPiEj5X4SRUaKU+QDzzN26fhvo\r\nf5zNcg+7xfJOXNYzMprZzT0rFqRIHd+G0R+3OzufVpOBNtWQ+TeKauEXoqAV\r\nVZFNk9an8aGLprz/+V0n9kO8RtEyL1ZL0wo=\r\n=OIhR\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"terrylinooo","email":"terrylin.developer@gmail.com"},"directories":{},"maintainers":[{"name":"terrylinooo","email":"terrylin.developer@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/disableautofill_3.0.0_1668864697486_0.15884744698692077"},"_hasShrinkwrap":false},"3.0.2":{"name":"disableautofill","version":"3.0.2","description":"The easiest solution for disabling Google Chrome auto-fill, auto-complete functions.","main":"dist/disableautofill.js","module":"src/core/main.js","scripts":{"build":"webpack --mode production","watch":"webpack --watch --mode development","test":"jest --verbose false","coverage":"npm test -- --coverage"},"jest":{"testEnvironment":"jsdom","collectCoverageFrom":["./src/**"]},"repository":{"type":"git","url":"git+https://github.com/terrylinooo/disableautofill.js.git"},"keywords":["disable-autofill","disable-autocomplete"],"author":{"name":"Terry L.","url":" https:://terryl.in "},"license":"MIT","bugs":{"url":"https://github.com/terrylinooo/disableautofill.js/issues"},"homepage":"https://github.com/terrylinooo/disableautofill.js","devDependencies":{"@babel/core":"^7.19.1","@babel/preset-env":"^7.19.1","babel-jest":"^29.2.0","babel-loader":"^8.2.5","eslint":"^8.24.0","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.26.0","eslint-plugin-jest":"^27.1.2","eslint-plugin-jsx-a11y":"^6.6.1","eslint-plugin-prettier":"^4.2.1","eslint-plugin-react":"^7.31.8","eslint-plugin-react-hooks":"^4.6.0","jest":"^29.2.0","jest-environment-jsdom":"^29.2.0","prettier":"^2.7.1","script-loader":"^0.7.2","terser-webpack-plugin":"^5.3.6","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"gitHead":"6336da1372475c5bfe58f0f95c0c5af0f8c6ba05","_id":"disableautofill@3.0.2","_nodeVersion":"12.22.9","_npmVersion":"8.5.1","dist":{"integrity":"sha512-gxILW5xAXQH4c9jTTp+9qtlp6oVScmP0gyBAGy29ldISQSnPKNItm4bHOUkz2p5JFYjBf8O7RHOsXc+61lTonw==","shasum":"b428a09bae69e331a08ba2b94d743899fdce2e9e","tarball":"https://registry.npmjs.org/disableautofill/-/disableautofill-3.0.2.tgz","fileCount":21,"unpackedSize":34186,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIQDpp1ZHexxAREv8OblPpUGFj0jUmMX5FuRxYAoTMowlmgIfdpaFi2GQJrgc7+QcUaP6r79HFoHDGLB6WlZlkBfc0w=="}]},"_npmUser":{"name":"terrylinooo","email":"terrylin.developer@gmail.com"},"directories":{},"maintainers":[{"name":"terrylinooo","email":"terrylin.developer@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/disableautofill_3.0.2_1684851073052_0.8394414770532352"},"_hasShrinkwrap":false},"4.0.0-rc.1":{"name":"disableautofill","version":"4.0.0-rc.1","description":"The easiest solution for disabling Google Chrome auto-fill, auto-complete functions.","main":"dist/disableautofill.umd.js","module":"dist/disableautofill.es.js","typings":"dist/disableautofill.d.ts","type":"module","scripts":{"dev":"vite","build":"tsc && vite build","preview":"vite preview","test":"vitest","coverage":"vitest run --coverage"},"repository":{"type":"git","url":"git+https://github.com/terrylinooo/disableautofill.js.git"},"keywords":["disable-autofill","disable-autocomplete"],"author":{"name":"Terry L.","url":" https:://terryl.in "},"license":"MIT","bugs":{"url":"https://github.com/terrylinooo/disableautofill.js/issues"},"homepage":"https://github.com/terrylinooo/disableautofill.js","devDependencies":{"@testing-library/jest-dom":"^6.1.4","@types/graceful-fs":"^4.1.9","@types/node":"^20.10.0","@typescript-eslint/eslint-plugin":"^6.12.0","@typescript-eslint/parser":"^6.12.0","@vitest/coverage-v8":"^0.34.6","eslint":"^8.54.0","eslint-import-resolver-alias":"^1.1.2","eslint-plugin-import":"^2.26.0","eslint-plugin-jsx-a11y":"^6.6.1","eslint-plugin-prettier":"^4.2.1","jsdom":"^22.1.0","prettier":"^3.1.0","typescript":"^5.3.2","vite":"^5.0.2","vite-plugin-dts":"^3.6.3","vitest":"^0.34.6"},"gitHead":"eeb723ffd9f4d8e193b3ea433c1ac7426f66b932","_id":"disableautofill@4.0.0-rc.1","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-aJ4GCZHhRPMVV+JfSuqbZ85UBjaUjrsHfxccta9a6nhA7f/gXbwCJmMyV6M8T5gWvk8fVOssP6Il7BdUs57kEQ==","shasum":"bd0df042901f5741413b5808209b4965559a0f0b","tarball":"https://registry.npmjs.org/disableautofill/-/disableautofill-4.0.0-rc.1.tgz","fileCount":24,"unpackedSize":41421,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDh/cYvUjLEmpfFxlbwBltIePLGlSH+VYX2YA5aMWWCmAIgbvTdfm6EWoN4hO4DbUBVcgFNO8twWaL9juHAOYgll68="}]},"_npmUser":{"name":"terrylinooo","email":"terrylin.developer@gmail.com"},"directories":{},"maintainers":[{"name":"terrylinooo","email":"terrylin.developer@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/disableautofill_4.0.0-rc.1_1701104748602_0.23637866526256546"},"_hasShrinkwrap":false},"4.0.0-rc.2":{"name":"disableautofill","version":"4.0.0-rc.2","description":"The easiest solution for disabling Google Chrome auto-fill, auto-complete functions.","main":"dist/disableautofill.umd.js","module":"dist/disableautofill.es.js","typings":"dist/disableautofill.d.ts","type":"module","scripts":{"dev":"vite","build":"tsc && vite build","preview":"vite preview","test":"vitest","coverage":"vitest run --coverage"},"repository":{"type":"git","url":"git+https://github.com/terrylinooo/disableautofill.js.git"},"keywords":["disable-autofill","disable-autocomplete"],"author":{"name":"Terry L.","url":" https:://terryl.in "},"license":"MIT","bugs":{"url":"https://github.com/terrylinooo/disableautofill.js/issues"},"homepage":"https://github.com/terrylinooo/disableautofill.js","devDependencies":{"@testing-library/jest-dom":"^6.1.4","@types/graceful-fs":"^4.1.9","@types/node":"^20.10.0","@typescript-eslint/eslint-plugin":"^6.12.0","@typescript-eslint/parser":"^6.12.0","@vitest/coverage-v8":"^0.34.6","eslint":"^8.54.0","eslint-import-resolver-alias":"^1.1.2","eslint-plugin-import":"^2.26.0","eslint-plugin-jsx-a11y":"^6.6.1","eslint-plugin-prettier":"^4.2.1","jsdom":"^22.1.0","prettier":"^3.1.0","typescript":"^5.3.2","vite":"^5.0.2","vite-plugin-dts":"^3.6.3","vitest":"^0.34.6"},"gitHead":"67e056384f193daee7bd2a0bb7a319eb57d55468","_id":"disableautofill@4.0.0-rc.2","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-8Jm6kw6EMSc4ho/NWCQlzA8MK77CV39xpuOkeIKnzOHmBEcva4yXY3cC8fp3bbx3zFZTiBw9VcGPJ8/yXdjD1g==","shasum":"8368cd61b7c53337a41059932a16b90859269112","tarball":"https://registry.npmjs.org/disableautofill/-/disableautofill-4.0.0-rc.2.tgz","fileCount":23,"unpackedSize":31603,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAZ4v2XmIRV2kSB6wxxMmChlpRDoG/yzMw+T2STDppT5AiAYOpg/DlCv7V6muGtBN3kabfRm+vBmN5eu46rs+kBb0A=="}]},"_npmUser":{"name":"terrylinooo","email":"terrylin.developer@gmail.com"},"directories":{},"maintainers":[{"name":"terrylinooo","email":"terrylin.developer@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/disableautofill_4.0.0-rc.2_1701107869459_0.3099677808917307"},"_hasShrinkwrap":false},"4.0.0-rc.5":{"name":"disableautofill","version":"4.0.0-rc.5","description":"The easiest solution for disabling Google Chrome auto-fill, auto-complete functions.","main":"dist/disableautofill.umd.js","module":"dist/disableautofill.es.js","typings":"dist/disableautofill.d.ts","type":"module","scripts":{"dev":"vite","build":"tsc && vite build","preview":"vite preview","test":"vitest","lint":"eslint . --ext .js,.ts","coverage":"vitest run --coverage","docker:image-build":"docker build -t disableautofill .","docker:image-remove":"docker rmi -f disableautofill","docker:run":"docker run -p 9527:9527 -v .:/app  --name dafjs-dev disableautofill","docker:stop":"docker stop dafjs-dev","docker:remove":"docker stop dafjs-dev && docker rm dafjs-dev","docker:test":"npm run docker:run && docker exec -it dafjs-dev npm run test","docker:lint":"npm run docker:run && docker exec -it dafjs-dev npm run lint","docker:coverage":"npm run docker:run && docker exec -it dafjs-dev npm run coverage"},"repository":{"type":"git","url":"git+https://github.com/terrylinooo/disableautofill.js.git"},"keywords":["disable-autofill","disable-autocomplete"],"author":{"name":"Terry L.","url":" https:://terryl.in "},"license":"MIT","bugs":{"url":"https://github.com/terrylinooo/disableautofill.js/issues"},"homepage":"https://github.com/terrylinooo/disableautofill.js","devDependencies":{"@testing-library/jest-dom":"^6.1.4","@types/graceful-fs":"^4.1.9","@types/node":"^20.10.0","@typescript-eslint/eslint-plugin":"^6.13.0","@typescript-eslint/parser":"^6.13.0","@vitest/coverage-v8":"^0.34.6","eslint":"^8.54.0","eslint-import-resolver-alias":"^1.1.2","eslint-plugin-import":"^2.26.0","eslint-plugin-prettier":"^5.0.1","jsdom":"^22.1.0","prettier":"^3.1.0","typescript":"^5.3.2","vite":"^5.0.2","vite-plugin-dts":"^3.6.3","vitest":"^0.34.6"},"gitHead":"716f5b065555f23c398dd29590d2632e00938323","_id":"disableautofill@4.0.0-rc.5","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-JwPip95vjQT9kpz3JTt4qKNLeiQ8b6KHUuoioZ5zFjJfTJc8/hhuSrwAAu0aj1PAg+yErvi+MufSpeoCePGjBg==","shasum":"fc9a7eb2459f24a115b119759f1b76874fae79f6","tarball":"https://registry.npmjs.org/disableautofill/-/disableautofill-4.0.0-rc.5.tgz","fileCount":23,"unpackedSize":36973,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDNJFPMRWujJy6rixBN21Q+OKKa6iB56zopDdsX5GqfngIhAPLSxvXFZLW9Lr085XmFKr1rr0VDXsISOaW0uciydC85"}]},"_npmUser":{"name":"terrylinooo","email":"terrylin.developer@gmail.com"},"directories":{},"maintainers":[{"name":"terrylinooo","email":"terrylin.developer@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/disableautofill_4.0.0-rc.5_1701541161165_0.9807951869686695"},"_hasShrinkwrap":false},"4.0.0-rc.6":{"name":"disableautofill","version":"4.0.0-rc.6","description":"The easiest solution for disabling Google Chrome auto-fill, auto-complete functions.","main":"dist/disableautofill.js","module":"dist/disableautofill.es.js","typings":"dist/disableautofill.d.ts","type":"module","scripts":{"dev":"vite","build":"tsc && vite build","preview":"vite preview","test":"vitest","lint":"eslint . --ext .js,.ts","coverage":"vitest run --coverage","docker:image-build":"docker build -t disableautofill .","docker:image-remove":"docker rmi -f disableautofill","docker:run":"docker run -p 9527:9527 -v .:/app  --name dafjs-dev disableautofill","docker:stop":"docker stop dafjs-dev","docker:remove":"docker stop dafjs-dev && docker rm dafjs-dev","docker:test":"npm run docker:run && docker exec -it dafjs-dev npm run test","docker:lint":"npm run docker:run && docker exec -it dafjs-dev npm run lint","docker:coverage":"npm run docker:run && docker exec -it dafjs-dev npm run coverage"},"repository":{"type":"git","url":"git+https://github.com/terrylinooo/disableautofill.js.git"},"keywords":["disable-autofill","disable-autocomplete"],"author":{"name":"Terry L.","url":" https:://terryl.in "},"license":"MIT","bugs":{"url":"https://github.com/terrylinooo/disableautofill.js/issues"},"homepage":"https://github.com/terrylinooo/disableautofill.js","devDependencies":{"@testing-library/jest-dom":"^6.1.4","@types/graceful-fs":"^4.1.9","@types/node":"^20.10.0","@typescript-eslint/eslint-plugin":"^6.13.0","@typescript-eslint/parser":"^6.13.0","@vitest/coverage-v8":"^0.34.6","eslint":"^8.54.0","eslint-import-resolver-alias":"^1.1.2","eslint-plugin-import":"^2.26.0","eslint-plugin-prettier":"^5.0.1","jsdom":"^22.1.0","prettier":"^3.1.0","typescript":"^5.3.2","vite":"^5.0.2","vite-plugin-dts":"^3.6.3","vitest":"^0.34.6"},"gitHead":"d12cd41bcd6428534640aad213293ae692f07841","_id":"disableautofill@4.0.0-rc.6","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-uNNiWrFObFww92YOls7Ig6nfGZ75BP5FyrxWzccATZMnfv6fA+zISIG3S1+RhbYe73cgxLFG11rJqYc8xqy4Pw==","shasum":"6fe5d19184b62281ffe6682ad19e59d90757f9b0","tarball":"https://registry.npmjs.org/disableautofill/-/disableautofill-4.0.0-rc.6.tgz","fileCount":24,"unpackedSize":46567,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAbORWmocnZt173MPjH9yXlbCD+3+gIZpP/dFByoQPLGAiAHPqJV2vJkBGrH4vPLs9of94SrhR5YTW3JBTKkoP2SHQ=="}]},"_npmUser":{"name":"terrylinooo","email":"terrylin.developer@gmail.com"},"directories":{},"maintainers":[{"name":"terrylinooo","email":"terrylin.developer@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/disableautofill_4.0.0-rc.6_1701589453183_0.9202535286002911"},"_hasShrinkwrap":false},"4.0.0":{"name":"disableautofill","version":"4.0.0","description":"The easiest solution for disabling Google Chrome auto-fill, auto-complete functions.","main":"dist/disableautofill.js","module":"dist/disableautofill.es.js","typings":"dist/disableautofill.d.ts","type":"module","scripts":{"dev":"vite","build":"tsc && vite build","preview":"vite preview","test":"vitest","lint":"eslint . --ext .js,.ts","coverage":"vitest run --coverage","docker:image-build":"docker build -t disableautofill .","docker:image-remove":"docker rmi -f disableautofill","docker:run":"docker run -p 9527:9527 -v .:/app  --name dafjs-dev disableautofill","docker:stop":"docker stop dafjs-dev","docker:remove":"docker stop dafjs-dev && docker rm dafjs-dev","docker:test":"npm run docker:run && docker exec -it dafjs-dev npm run test","docker:lint":"npm run docker:run && docker exec -it dafjs-dev npm run lint","docker:coverage":"npm run docker:run && docker exec -it dafjs-dev npm run coverage"},"repository":{"type":"git","url":"git+https://github.com/terrylinooo/disableautofill.js.git"},"keywords":["disable-autofill","disable-autocomplete"],"author":{"name":"Terry L.","url":" https:://terryl.in "},"license":"MIT","bugs":{"url":"https://github.com/terrylinooo/disableautofill.js/issues"},"homepage":"https://github.com/terrylinooo/disableautofill.js","devDependencies":{"@testing-library/jest-dom":"^6.1.4","@types/graceful-fs":"^4.1.9","@types/node":"^20.10.0","@typescript-eslint/eslint-plugin":"^6.13.0","@typescript-eslint/parser":"^6.13.0","@vitest/coverage-v8":"^0.34.6","eslint":"^8.54.0","eslint-import-resolver-alias":"^1.1.2","eslint-plugin-import":"^2.26.0","eslint-plugin-prettier":"^5.0.1","jsdom":"^22.1.0","prettier":"^3.1.0","typescript":"^5.3.2","vite":"^5.0.2","vite-plugin-dts":"^3.6.3","vitest":"^0.34.6"},"gitHead":"e3d8fcd8235ec32dcee8284d96e093a2e689ff56","_id":"disableautofill@4.0.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-86teE0cubbMJNy5J94vMX6KvoA1tzL53NCh3/n07WGlEd6RYxNNVPoPx1xxyrvPwJkAuC7G8NAna8QuY+7oIJw==","shasum":"ecfa8b8b73b72368fc61d07bd4f38bf11d794853","tarball":"https://registry.npmjs.org/disableautofill/-/disableautofill-4.0.0.tgz","fileCount":24,"unpackedSize":46317,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC2JU3e6iNovQGuaXqpVQkwWwYMkuBXPatgd4ImDIkxsAIhAMQoFJEiOMZoe7oYbbY6oD9rI0ZRyWlgYQaZqKIOVVQf"}]},"_npmUser":{"name":"terrylinooo","email":"terrylin.developer@gmail.com"},"directories":{},"maintainers":[{"name":"terrylinooo","email":"terrylin.developer@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/disableautofill_4.0.0_1701592413362_0.5304090578027587"},"_hasShrinkwrap":false}},"time":{"created":"2019-09-06T10:00:12.817Z","1.2.8":"2019-09-06T10:00:12.994Z","modified":"2023-12-03T08:33:33.883Z","2.0.0":"2021-02-19T18:23:42.492Z","3.0.0":"2022-11-19T13:31:37.642Z","3.0.2":"2023-05-23T14:11:13.365Z","4.0.0-rc.1":"2023-11-27T17:05:48.758Z","4.0.0-rc.2":"2023-11-27T17:57:49.682Z","4.0.0-rc.5":"2023-12-02T18:19:21.367Z","4.0.0-rc.6":"2023-12-03T07:44:13.371Z","4.0.0":"2023-12-03T08:33:33.715Z"},"maintainers":[{"name":"terrylinooo","email":"terrylin.developer@gmail.com"}],"description":"The easiest solution for disabling Google Chrome auto-fill, auto-complete functions.","homepage":"https://github.com/terrylinooo/disableautofill.js","keywords":["disable-autofill","disable-autocomplete"],"repository":{"type":"git","url":"git+https://github.com/terrylinooo/disableautofill.js.git"},"author":{"name":"Terry L.","url":" https:://terryl.in "},"bugs":{"url":"https://github.com/terrylinooo/disableautofill.js/issues"},"license":"MIT","readme":"# disableautofill.js\n\n![Disable auto-fill, auto-complete functions](https://i.imgur.com/MvWi2Sr.png)\n\n\n![Test](https://github.com/terrylinooo/disableautofill.js/actions/workflows/testing.yml/badge.svg) [![codecov](https://codecov.io/gh/terrylinooo/disableautofill.js/branch/master/graph/badge.svg?token=lIP1cwSQjC)](https://codecov.io/gh/terrylinooo/disableautofill.js) [![DeepScan grade](https://deepscan.io/api/teams/19398/projects/23075/branches/688836/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=19398&pid=23075&bid=688836)\n\nThe easiest solution for disabling Google Chrome auto-fill, auto-complete functions.\n\n## Concepts\n\nThis library does the following steps:\n\n* Replace `type=\"password\"` with `type=\"text\"`.\n* Replace the text of password with **asterisk** symbols.\n* Add an attribute `autocomplete=\"off\"` on form.\n* Randomize the attribute `name` in order to prevent Google Chrome to remember what you fill.\n\nThe library will restore the original password value when you submit the form and then replace the password value with asterisk symbols again.\n\nThe flowchart below shows the process of the library:\n\n![](https://i.imgur.com/hAIIt2R.png)\n\n- `Main`: Acts as the entry point of the process, responsible for initializing other components.\n- `EventAdapter`: Manages the addition and removal of DOM events.\n- `listen`: Sets up listeners for specific form events, like keyboard inputs and form submissions.\n- `handle`: Processes DOM elements (like password fields) based on triggered events.\n- `Randomizer`: Performs randomization and restoration operations on form fields to manage password display.\n- `State`: Maintains and updates form state, such as temporary and original password values.\n- DOM Elements: Refers to the HTML elements (like input fields) that are directly manipulated.\n\n## Install\n\n#### NPM\n```bash\nnpm install disableautofill\n```\n\nor download the latest release.\n\n## Usage\n\n```javascript\nnew Disableautofill(form, options);\n```\n\n- `form` CSS selector or DOM element.\n- `options` The options.\n\n### Options\n\noption | default | type | note \n---- | --- | --- | ---\nfields | [] | array | The id or class of the fields (the `input` elements for filling password in the form). For example: `['.newpass', 'newpass2']`\nasterisk | ● | string | Character use to hide the real password value.\ncallback | null | function | To validate form fields or something you can do.\n\n### Public Methods\n\n#### `destroy()`\n\nRemoves all event listeners and restores the original form element. Please note that all events will be removed after calling this method.\n\n#### `init()`\n\nThis method is called by default when you initialize the script. You can call this method to re-initialize the script after calling the `destroy()` method.\n\n\n\n## Examples\n\nAssume that you have a form like this:\n\n```html\n<form id=\"testForm\" method=\"get\" action=\"/\">\n  <div class=\"input-group\">\n    <label>Username</label>\n    <input type=\"text\" name=\"username\" />\n  </div>\n  <div class=\"input-group\">\n    <label>Password</label>\n    <input type=\"text\" name=\"password\" class=\"test-pass\" />\n  </div>\n  <div class=\"input-group\">\n    <label>Confirm password</label>\n    <input type=\"text\" name=\"confirm_password\" class=\"test-pass2\" />\n  </div>\n  <div class=\"button-section\">\n    <button type=\"submit\">Submit</button>\n  </div>\n</form>\n```\n\n### In the Browser\n\n#### UMD\n\nInclude the UMD package's JavaScript file in your HTML document using a `<script>` tag.\n\n```html\n<script src=\"./dist/disableautofill.js\"></script>\n```\n\nAnd then, initialize the script in the next `<script>` section.\n\n```javascript\nconst checkForm = () => {\n  form = document.getElementById('login-form');\n  if (\n    form.password.value === '' ||\n    form.confirm_password.value === ''\n  ) {\n    alert('Cannot leave Password field blank.');\n    form.password.focus();\n    return false;\n  }\n  if (form.username.value === '') {\n    alert('Cannot leave User Id field blank.');\n    form.username.focus();\n    return false;\n  }\n  return true;\n};\n\nnew Disableautofill('#testForm', {\n  'fields': [\n    '.test-pass',\n    '.test-pass2'\n  ],\n  'callback': function() {\n    return checkForm();\n  }\n});\n```\n\n#### ES module\n\nOr, you can use ES module.\n\n\n```html\n<script type=\"module\" src=\"./dist/disableautofill.es.js\"></script>\n```\n\nThen, initialize the script in the subsequent `<script>` section. Since the module is asynchronous, it's necessary to wait for the DOM to fully load before initializing the script. If you don't, you might encounter a *Disableautofill is undefined* error.\n\n```javascript\nconst initializeDisableautofill = async () => {\n  const checkForm = () => {\n    form = document.getElementById('login-form');\n    if (\n      form.password.value === '' ||\n      form.confirm_password.value === ''\n    ) {\n      alert('Cannot leave Password field blank.');\n      form.password.focus();\n      return false;\n    }\n    if (form.username.value === '') {\n      alert('Cannot leave User Id field blank.');\n      form.username.focus();\n      return false;\n    }\n    return true;\n  };\n\n  new Disableautofill('#testForm', {\n    'fields': [\n      '.test-pass',\n      '.test-pass2'\n    ],\n    'callback': function() {\n      return checkForm();\n    }\n  });\n};\n\nwindow.addEventListener(\n  'DOMContentLoaded',\n  initializeDisableautofill\n);\n```\n### Node Environment\n\n```javascript\nimport Disableautofill from 'disableautofill';\n\nconst checkForm = () => {\n  form = document.getElementById('login-form');\n  if (\n    form.password.value === '' ||\n    form.confirm_password.value === ''\n  ) {\n    alert('Cannot leave Password field blank.');\n    form.password.focus();\n    return false;\n  }\n  if (form.username.value === '') {\n    alert('Cannot leave User Id field blank.');\n    form.username.focus();\n    return false;\n  }\n  return true;\n};\n\nnew Disableautofill('#testForm', {\n  'fields': [\n    '.test-pass',\n    '.test-pass2'\n  ],\n  'callback': function() {\n    return checkForm();\n  }\n});\n```\n\n### Intergate with React\n\n```javascript\nimport React, { useEffect, useRef } from 'react';\nimport Disableautofill from 'disableautofill';\n\nconst LoginFormComponent = () => {\n  const formRef = useRef(null);\n  let mainInstance = null;\n\n  useEffect(() => {\n    if (formRef.current) {\n      mainInstance = new Disableautofill(formRef.current, {\n        fields: ['.test-pass', '.test-pass2'],\n        callback: () => true\n      });\n    }\n\n    return () => {\n      if (mainInstance) {\n        mainInstance.destroy();\n      }\n    };\n  }, []);\n\n  return (\n    <form ref={formRef}>\n      <div class=\"input-group\">\n        <label>Username</label>\n        <input type=\"text\" name=\"username\" />\n      </div>\n      <div class=\"input-group\">\n        <label>Password</label>\n        <input type=\"password\" name=\"password\" class=\"test-pass\" />\n      </div>\n      <div class=\"input-group\">\n        <label>Confirm password</label>\n        <input type=\"password\" name=\"confirm_password\" class=\"test-pass2\" />\n      </div>\n      <div class=\"button-section\">\n        <button type=\"submit\">Submit</button>\n      </div>\n    </form>\n  );\n};\n\nexport default LoginFormComponent;\n```\n\nThis is the simple example of React. You may modify the code to fit your needs. See this example run in [CodePen](https://codepen.io/terrylinooo/pen/bGzQBxR).\n\n### Intergrate with Vue\n\n```javascript\nimport { onMounted, onUnmounted, ref, createApp } from 'vue';\nimport Disableautofill from 'disableautofill';\n\nconst App = {\n  setup() {\n    const formRef = ref(null);\n    let mainInstance = null;\n\n    onMounted(() => {\n      if (formRef.value) {\n        mainInstance = new Disableautofill(formRef.value, {\n          fields: ['.test-pass', '.test-pass2'],\n          callback: () => true\n        });\n      }\n    });\n\n    onUnmounted(() => {\n      if (mainInstance) {\n        mainInstance.destroy();\n      }\n    });\n\n    return { formRef };\n  },\n  template: `\n    <form ref=\"formRef\">\n      <div class=\"input-group\">\n        <label for=\"username\">Username</label>\n        <input id=\"username\" type=\"text\" name=\"username\" />\n      </div>\n      <div class=\"input-group\">\n        <label for=\"password\">Password</label>\n        <input id=\"password\" type=\"password\" name=\"password\" class=\"test-pass\" />\n      </div>\n      <div class=\"input-group\">\n        <label for=\"confirmPassword\">Confirm Password</label>\n        <input id=\"confirmPassword\" type=\"password\" name=\"confirm_password\" class=\"test-pass2\" />\n      </div>\n      <div class=\"button-section\">\n        <button type=\"submit\">Submit</button>\n      </div>\n    </form>\n  `\n};\n```\n\nThis is the simple example of Vue 3. You may modify the code to fit your needs. See this example run in [CodePen](https://codepen.io/terrylinooo/pen/BaMGpEq).\n\n---\n\n## Development\n\n#### `npm run dev`\n\nStarts a Vite server with hot reload.\n\n![](https://i.imgur.com/OeZhi6a.png)\n\nThis page is the entry point of the development server. You can find it at `http://localhost:9527/`.\n\n#### `npm run lint`\n\nExecutes linting by ESLint.\n\n#### `npm run test`\n\nRuns tests by Vitest.\n\n#### `npm run coverage`\n\nRuns coverage analysis by Vitest. Once you run this command, you can find the coverage report in the `coverage` directory.\n```\nhttp://localhost:9527/coverage/\n```\n\nYou will see the coverage report like this:\n\n![](https://i.imgur.com/4vQxiB0.png)\n\n### Using Docker\n\nIf Docker is your preferred choice, here's what you need to know.\n\n| Command | Description |\n|---|---|\n| `npm run docker:image-build` | Builds the Docker image. |\n| `npm run docker:image-remove` | Removes the Docker image. |\n| `npm run docker:run` | Runs the Docker image. |\n| `npm run docker:stop` | Stops the Docker container. |\n| `npm run docker:remove` | Stops and removes the Docker container. |\n| `npm run docker:test` | Runs tests in the Docker container.  |\n| `npm run docker:lint` | Executes linting in the Docker container.  |\n| `npm run docker:coverage` | Runs coverage analysis in the Docker container. |\n\n## Contributing\n\n- Please create a branch off of the 4.x branch and submit your pull requests back to the 4.x branch.\n- Run the commands `npm run test` and `npm run lint` before submitting your pull request. Ensure that all tests pass and there are no linting errors.\n\n## About\n\ndisableautofill.js is developed by [Terry Lin](https://terryl.in). Thanks to [CoLocal](https://colocal.com) for sponsoring the development of this script. It is released under the **MIT license**, allowing for free and open use.\n","readmeFilename":"README.md"}