{"_id":"@aarongustafson/form-obfuscator","_rev":"9-a575ebf445acd43b0dcf78b3cf48c7f9","name":"@aarongustafson/form-obfuscator","dist-tags":{"latest":"3.1.3"},"versions":{"2.0.0":{"name":"@aarongustafson/form-obfuscator","version":"2.0.0","keywords":["html","custom element","web component","forms","form security","obfuscation","privacy","accessibility","a11y"],"author":{"url":"https://www.aaron-gustafson.com/","name":"Aaron Gustafson","email":"aaron@easy-designs.net"},"license":"MIT","_id":"@aarongustafson/form-obfuscator@2.0.0","maintainers":[{"name":"aarongustafson","email":"aaron@easy-designs.net"}],"homepage":"https://github.com/aarongustafson/form-obfuscator#readme","bugs":{"url":"https://github.com/aarongustafson/form-obfuscator/issues"},"dist":{"shasum":"9392ec0776977c640dbc659b71cf1f1832cb0845","tarball":"https://registry.npmjs.org/@aarongustafson/form-obfuscator/-/form-obfuscator-2.0.0.tgz","fileCount":7,"integrity":"sha512-5EJZeFUJaUPEgSE46WTfopF05xtXbNHJCWIMT8YWduV8JBBKEU6dTf4qh2KQI72gfIrA6EJ6Fcfyd2+RaxuVhA==","signatures":[{"sig":"MEQCIFgORhbGmTtqba6baz5RTy028fDhsKNWJu/oM7CGGGfcAiAqxgl+U4EohSIaAjq9auhGPEWzPYTWvWlj8Oj0WJnwcw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13190},"main":"index.js","type":"module","module":"form-obfuscator.js","engines":{"node":">=14.0.0"},"exports":{".":{"import":"./index.js"},"./define.js":{"import":"./define.js"},"./form-obfuscator.js":{"import":"./form-obfuscator.js"},"./custom-elements.json":"./custom-elements.json"},"gitHead":"7a749d142788fab69fb9c3da45f0389748898c4e","scripts":{"lint":"npm run lint:eslint && npm run lint:prettier","test":"vitest","format":"npm run format:eslint && npm run format:prettier","test:ui":"vitest --ui","test:run":"vitest run","lint:eslint":"eslint .","format:eslint":"eslint . --fix","lint:prettier":"prettier \"**/*.js\" --check --ignore-path .gitignore","test:coverage":"vitest run --coverage","format:prettier":"prettier \"**/*.js\" --write --ignore-path .gitignore"},"_npmUser":{"name":"aarongustafson","email":"aaron@easy-designs.net"},"repository":{"url":"git+https://github.com/aarongustafson/form-obfuscator.git","type":"git"},"_npmVersion":"10.8.2","description":"Web component that obfuscates fields when they don't have focus.","directories":{},"_nodeVersion":"20.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"customElements":"custom-elements.json","devDependencies":{"eslint":"^9.39.1","vitest":"^4.0.10","prettier":"^3.6.2","happy-dom":"^20.0.10","@vitest/ui":"^4.0.10","@vitest/coverage-v8":"^4.0.10","@testing-library/dom":"^10.4.1","@open-wc/eslint-config":"^13.0.0","eslint-config-prettier":"^10.1.8","@testing-library/user-event":"^14.6.1"},"_npmOperationalInternal":{"tmp":"tmp/form-obfuscator_2.0.0_1763642630381_0.7955659402078459","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"@aarongustafson/form-obfuscator","version":"2.0.3","keywords":["html","custom element","web component","forms","form security","obfuscation","privacy","accessibility","a11y"],"author":{"url":"https://www.aaron-gustafson.com/","name":"Aaron Gustafson","email":"aaron@easy-designs.net"},"license":"MIT","_id":"@aarongustafson/form-obfuscator@2.0.3","maintainers":[{"name":"aarongustafson","email":"aaron@easy-designs.net"}],"homepage":"https://github.com/aarongustafson/form-obfuscator#readme","bugs":{"url":"https://github.com/aarongustafson/form-obfuscator/issues"},"dist":{"shasum":"f8f7f89266c25662bc4e944c3ce725986c5e8276","tarball":"https://registry.npmjs.org/@aarongustafson/form-obfuscator/-/form-obfuscator-2.0.3.tgz","fileCount":7,"integrity":"sha512-018xBiz+v9wxKinAeJ+ntKwk5SM6pvAmWTXjT2OPfRkmqGIGtqs+xwxG6tmO0phqqWoWGPUun8rpPrydDEXXGg==","signatures":[{"sig":"MEQCID0pbU8JSkJTc1Sxo4Q7f4mqPw77SZCaigD7xHuCKFggAiAFt4GkEm6aF+t2HFOdLEOeI5SdjsP6QAJNmQVZWAb33g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aarongustafson%2fform-obfuscator@2.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":13433},"main":"index.js","type":"module","module":"form-obfuscator.js","engines":{"node":">=14.0.0"},"exports":{".":{"import":"./index.js"},"./define.js":{"import":"./define.js"},"./form-obfuscator.js":{"import":"./form-obfuscator.js"},"./custom-elements.json":"./custom-elements.json"},"gitHead":"af837aa7a3ad38308cf9f1798841ea1c9c157e5f","scripts":{"lint":"npm run lint:eslint && npm run lint:prettier","test":"vitest","format":"npm run format:eslint && npm run format:prettier","test:ui":"vitest --ui","test:run":"vitest run","lint:eslint":"eslint .","format:eslint":"eslint . --fix","lint:prettier":"prettier \"**/*.js\" --check --ignore-path .gitignore","test:coverage":"vitest run --coverage","format:prettier":"prettier \"**/*.js\" --write --ignore-path .gitignore"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5651f94c-8dcd-4618-aa5c-15f32167d5ed"}},"repository":{"url":"git+https://github.com/aarongustafson/form-obfuscator.git","type":"git"},"_npmVersion":"11.6.4","description":"Web component that obfuscates fields when they don't have focus.","directories":{},"_nodeVersion":"20.19.5","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"customElements":"custom-elements.json","devDependencies":{"eslint":"^9.39.1","vitest":"^4.0.10","prettier":"^3.6.2","happy-dom":"^20.0.10","@vitest/ui":"^4.0.10","@vitest/coverage-v8":"^4.0.10","@testing-library/dom":"^10.4.1","@open-wc/eslint-config":"^13.0.0","eslint-config-prettier":"^10.1.8","@testing-library/user-event":"^14.6.1"},"_npmOperationalInternal":{"tmp":"tmp/form-obfuscator_2.0.3_1764439416151_0.2204369902858876","host":"s3://npm-registry-packages-npm-production"}},"2.0.4":{"name":"@aarongustafson/form-obfuscator","version":"2.0.4","keywords":["html","custom element","web component","forms","form security","obfuscation","privacy","accessibility","a11y"],"author":{"url":"https://www.aaron-gustafson.com/","name":"Aaron Gustafson","email":"aaron@easy-designs.net"},"license":"MIT","_id":"@aarongustafson/form-obfuscator@2.0.4","maintainers":[{"name":"aarongustafson","email":"aaron@easy-designs.net"}],"homepage":"https://github.com/aarongustafson/form-obfuscator#readme","bugs":{"url":"https://github.com/aarongustafson/form-obfuscator/issues"},"dist":{"shasum":"bdfa6ecb599855c9b197013d298c6eac705a79b3","tarball":"https://registry.npmjs.org/@aarongustafson/form-obfuscator/-/form-obfuscator-2.0.4.tgz","fileCount":7,"integrity":"sha512-mN6z3bhHaZHRw0eEuPh6gN+yxQtJRpwTkteQKDBKFmRxSTzORweo2XmamtrnwuQfS8BqHV3GBc5tDozXrQni1g==","signatures":[{"sig":"MEUCIQCfiSlD0gcc4Z0BrhSIGPrjwCeCQS56FnsWJ3UCOvSGTgIgN2GHdspK0h+nDWRfk2BKOa9aqYz2QzjXb+rfc+8QTrE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aarongustafson%2fform-obfuscator@2.0.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":13762},"main":"index.js","type":"module","module":"form-obfuscator.js","engines":{"node":">=14.0.0"},"exports":{".":{"import":"./index.js"},"./define.js":{"import":"./define.js"},"./form-obfuscator.js":{"import":"./form-obfuscator.js"},"./custom-elements.json":"./custom-elements.json"},"gitHead":"6abf1dd1536848d4abaf4e30ff72f212cd303d31","scripts":{"lint":"npm run lint:eslint && npm run lint:prettier","test":"vitest","format":"npm run format:eslint && npm run format:prettier","test:ui":"vitest --ui","test:run":"vitest run","lint:eslint":"eslint .","format:eslint":"eslint . --fix","lint:prettier":"prettier \"**/*.js\" --check --ignore-path .gitignore","test:coverage":"vitest run --coverage","format:prettier":"prettier \"**/*.js\" --write --ignore-path .gitignore"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5651f94c-8dcd-4618-aa5c-15f32167d5ed"}},"repository":{"url":"git+https://github.com/aarongustafson/form-obfuscator.git","type":"git"},"_npmVersion":"11.6.4","description":"Web component that obfuscates fields when they don't have focus.","directories":{},"_nodeVersion":"20.19.5","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"customElements":"custom-elements.json","devDependencies":{"eslint":"^9.39.1","vitest":"^4.0.10","prettier":"^3.6.2","happy-dom":"^20.0.10","@vitest/ui":"^4.0.10","@vitest/coverage-v8":"^4.0.10","@testing-library/dom":"^10.4.1","@open-wc/eslint-config":"^13.0.0","eslint-config-prettier":"^10.1.8","@testing-library/user-event":"^14.6.1"},"_npmOperationalInternal":{"tmp":"tmp/form-obfuscator_2.0.4_1764517545312_0.13644532104100282","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@aarongustafson/form-obfuscator","version":"3.0.0","keywords":["html","custom element","web component","forms","form security","obfuscation","privacy","accessibility","a11y"],"author":{"url":"https://www.aaron-gustafson.com/","name":"Aaron Gustafson","email":"aaron@easy-designs.net"},"license":"MIT","_id":"@aarongustafson/form-obfuscator@3.0.0","maintainers":[{"name":"aarongustafson","email":"aaron@easy-designs.net"}],"homepage":"https://github.com/aarongustafson/form-obfuscator#readme","bugs":{"url":"https://github.com/aarongustafson/form-obfuscator/issues"},"dist":{"shasum":"dc94974085980761b843a8159a01ed55d893a389","tarball":"https://registry.npmjs.org/@aarongustafson/form-obfuscator/-/form-obfuscator-3.0.0.tgz","fileCount":7,"integrity":"sha512-W7yH9cENDB5yQC26Ckvwpn13uUxwOrhDPK6rWUD34ox7Kevq+mO19lroOKgXLzKdSlHhN3SwY6wT6XAHY77XXw==","signatures":[{"sig":"MEUCIF+ILkHvduVTeNPZQc9Z1EY2JZrY4cdhQ7mykKOBY03KAiEAndMAEUXryb0ucHrFewm7eDtrbt3k3yuVZ8ZIb4/y9gE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aarongustafson%2fform-obfuscator@3.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":14009},"main":"index.js","type":"module","module":"form-obfuscator.js","engines":{"node":">=14.0.0"},"exports":{".":{"import":"./index.js"},"./define.js":{"import":"./define.js"},"./form-obfuscator.js":{"import":"./form-obfuscator.js"},"./custom-elements.json":"./custom-elements.json"},"gitHead":"31a9731149736f2fcee24ba64455b5168f9fc4b1","scripts":{"lint":"npm run lint:eslint && npm run lint:prettier","test":"vitest","format":"npm run format:eslint && npm run format:prettier","test:ui":"vitest --ui","test:run":"vitest run","lint:eslint":"eslint .","format:eslint":"eslint . --fix","lint:prettier":"prettier \"**/*.js\" --check --ignore-path .gitignore","test:coverage":"vitest run --coverage","format:prettier":"prettier \"**/*.js\" --write --ignore-path .gitignore"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5651f94c-8dcd-4618-aa5c-15f32167d5ed"}},"repository":{"url":"git+https://github.com/aarongustafson/form-obfuscator.git","type":"git"},"_npmVersion":"11.6.4","description":"Web component that obfuscates fields when they don't have focus.","directories":{},"_nodeVersion":"20.19.6","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"customElements":"custom-elements.json","devDependencies":{"eslint":"^9.39.1","vitest":"^4.0.10","prettier":"^3.6.2","happy-dom":"^20.0.10","@vitest/ui":"^4.0.10","@vitest/coverage-v8":"^4.0.10","@testing-library/dom":"^10.4.1","@open-wc/eslint-config":"^13.0.0","eslint-config-prettier":"^10.1.8","@testing-library/user-event":"^14.6.1"},"_npmOperationalInternal":{"tmp":"tmp/form-obfuscator_3.0.0_1765169375097_0.8520372067638602","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"@aarongustafson/form-obfuscator","version":"3.0.1","keywords":["html","custom element","web component","forms","form security","obfuscation","privacy","accessibility","a11y"],"author":{"url":"https://www.aaron-gustafson.com/","name":"Aaron Gustafson","email":"aaron@easy-designs.net"},"license":"MIT","_id":"@aarongustafson/form-obfuscator@3.0.1","maintainers":[{"name":"aarongustafson","email":"aaron@easy-designs.net"}],"homepage":"https://github.com/aarongustafson/form-obfuscator#readme","bugs":{"url":"https://github.com/aarongustafson/form-obfuscator/issues"},"dist":{"shasum":"1de0b8ee9968d725117c3c6e7373fdd3a850eb74","tarball":"https://registry.npmjs.org/@aarongustafson/form-obfuscator/-/form-obfuscator-3.0.1.tgz","fileCount":7,"integrity":"sha512-syVurSwB9fG04fCeg7g0a28RfTgLgX3IP7fEISIkV90k81qjhI3Zw+DdriDjE8hf/blBW4blo97gMTUoZmjJDg==","signatures":[{"sig":"MEQCIBARkM9ck5xIzhe62fDssvuvKNIVgz3TVUq+TIKx+NbiAiApyml3bXsCQ/3QaNKPyEVEuaVKCH2iWh45BRVLGkGgGQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aarongustafson%2fform-obfuscator@3.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":14310},"main":"index.js","type":"module","module":"form-obfuscator.js","engines":{"node":">=14.0.0"},"exports":{".":{"import":"./index.js"},"./define.js":{"import":"./define.js"},"./form-obfuscator.js":{"import":"./form-obfuscator.js"},"./custom-elements.json":"./custom-elements.json"},"gitHead":"41ad09bc1d43fbf2584c59c383049f51dcfb6ffc","scripts":{"lint":"npm run lint:eslint && npm run lint:prettier","test":"vitest","format":"npm run format:eslint && npm run format:prettier","test:ui":"vitest --ui","version":"node scripts/update-demo-versions.js && git add demo/esm.html","test:run":"vitest run","lint:eslint":"eslint .","format:eslint":"eslint . --fix","lint:prettier":"prettier \"**/*.js\" --check --ignore-path .gitignore","test:coverage":"vitest run --coverage","format:prettier":"prettier \"**/*.js\" --write --ignore-path .gitignore"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5651f94c-8dcd-4618-aa5c-15f32167d5ed"}},"repository":{"url":"git+https://github.com/aarongustafson/form-obfuscator.git","type":"git"},"_npmVersion":"11.6.4","description":"Web component that obfuscates fields when they don't have focus.","directories":{},"_nodeVersion":"20.19.6","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"customElements":"custom-elements.json","devDependencies":{"eslint":"^9.39.1","vitest":"^4.0.10","prettier":"^3.6.2","happy-dom":"^20.0.10","@vitest/ui":"^4.0.10","@vitest/coverage-v8":"^4.0.10","@testing-library/dom":"^10.4.1","@open-wc/eslint-config":"^13.0.0","eslint-config-prettier":"^10.1.8","@testing-library/user-event":"^14.6.1"},"_npmOperationalInternal":{"tmp":"tmp/form-obfuscator_3.0.1_1765303115236_0.690280841460871","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"@aarongustafson/form-obfuscator","version":"3.1.0","keywords":["html","custom element","web component","forms","form security","obfuscation","privacy","accessibility","a11y"],"author":{"url":"https://www.aaron-gustafson.com/","name":"Aaron Gustafson","email":"aaron@easy-designs.net"},"license":"MIT","_id":"@aarongustafson/form-obfuscator@3.1.0","maintainers":[{"name":"aarongustafson","email":"aaron@easy-designs.net"}],"homepage":"https://github.com/aarongustafson/form-obfuscator#readme","bugs":{"url":"https://github.com/aarongustafson/form-obfuscator/issues"},"dist":{"shasum":"5001c6a83aaeb7a8edd10ff6a717c28427d27729","tarball":"https://registry.npmjs.org/@aarongustafson/form-obfuscator/-/form-obfuscator-3.1.0.tgz","fileCount":7,"integrity":"sha512-7pH6lGAHL8pfTHwgYnC0XpQHlVOkIPXRieVWaduxcqNtFFe+1YIczUHu2r8p+VixoXX9FzEolpI/gYPtDUmjww==","signatures":[{"sig":"MEUCIFUb1pcQntnF3IJ8V7A0lJbeMdh9JryW/S5sOYUCbioDAiEAnCmhxIDsTCrVkFmKUzUmMvzbtzPSoJjxE89vv9ovSsg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aarongustafson%2fform-obfuscator@3.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":17282},"main":"index.js","type":"module","module":"form-obfuscator.js","engines":{"node":">=14.0.0"},"exports":{".":{"import":"./index.js"},"./define.js":{"import":"./define.js"},"./form-obfuscator.js":{"types":"./form-obfuscator.d.ts","import":"./form-obfuscator.js"},"./custom-elements.json":"./custom-elements.json"},"gitHead":"759a8a12934d8abbcb2e344a05c9698424e615ea","scripts":{"lint":"npm run lint:eslint && npm run lint:prettier","test":"vitest","format":"npm run format:eslint && npm run format:prettier","test:ui":"vitest --ui","version":"node scripts/update-demo-versions.js && git add demo/esm.html","test:run":"vitest run","lint:eslint":"eslint .","postversion":"git push --follow-tags","format:eslint":"eslint . --fix","lint:prettier":"prettier \"**/*.js\" --check --ignore-path .gitignore","test:coverage":"vitest run --coverage","format:prettier":"prettier \"**/*.js\" --write --ignore-path .gitignore"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5651f94c-8dcd-4618-aa5c-15f32167d5ed"}},"repository":{"url":"git+https://github.com/aarongustafson/form-obfuscator.git","type":"git"},"_npmVersion":"11.7.0","description":"Web component that obfuscates fields when they don't have focus.","directories":{},"_nodeVersion":"20.19.6","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"customElements":"custom-elements.json","devDependencies":{"eslint":"^9.39.1","vitest":"^4.0.10","prettier":"^3.6.2","happy-dom":"^20.0.10","@vitest/ui":"^4.0.10","@vitest/coverage-v8":"^4.0.10","@testing-library/dom":"^10.4.1","@open-wc/eslint-config":"^13.0.0","eslint-config-prettier":"^10.1.8","@testing-library/user-event":"^14.6.1"},"_npmOperationalInternal":{"tmp":"tmp/form-obfuscator_3.1.0_1765645665826_0.5533468286713086","host":"s3://npm-registry-packages-npm-production"}},"3.1.1":{"name":"@aarongustafson/form-obfuscator","version":"3.1.1","keywords":["html","custom element","web component","forms","form security","obfuscation","privacy","accessibility","a11y"],"author":{"url":"https://www.aaron-gustafson.com/","name":"Aaron Gustafson","email":"aaron@easy-designs.net"},"license":"MIT","_id":"@aarongustafson/form-obfuscator@3.1.1","maintainers":[{"name":"aarongustafson","email":"aaron@easy-designs.net"}],"homepage":"https://github.com/aarongustafson/form-obfuscator#readme","bugs":{"url":"https://github.com/aarongustafson/form-obfuscator/issues"},"dist":{"shasum":"9a8865d38741199f64efa92a9c64a9b79b0bf594","tarball":"https://registry.npmjs.org/@aarongustafson/form-obfuscator/-/form-obfuscator-3.1.1.tgz","fileCount":8,"integrity":"sha512-6PgT+CpigZ+JoslRjvktsN1cIyD1bbrEFXK/haUMvVWE3/k4H4KLjX+x6+v2HRpDBPHAZ+lEVVGLBsUHu2Equg==","signatures":[{"sig":"MEUCIQC870VrxxHtd9LUgwT2CCzaCtovbAQc6MVZ4axMpZwQaAIgFqOR2sw8m1Da+Vq4dGiCE/BaEboshPxpL/QMWQmqztY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aarongustafson%2fform-obfuscator@3.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":18628},"main":"index.js","type":"module","module":"form-obfuscator.js","engines":{"node":">=14.0.0"},"exports":{".":{"import":"./index.js"},"./define.js":{"import":"./define.js"},"./form-obfuscator.js":{"types":"./form-obfuscator.d.ts","import":"./form-obfuscator.js"},"./custom-elements.json":"./custom-elements.json"},"gitHead":"7dc0df65b60125f2b747a2c1eff785999426d0e7","scripts":{"lint":"npm run lint:eslint && npm run lint:prettier","test":"vitest","format":"npm run format:eslint && npm run format:prettier","test:ui":"vitest --ui","version":"node scripts/update-demo-versions.js && git add demo/esm.html","test:run":"vitest run","lint:eslint":"eslint .","postversion":"git push --follow-tags","format:eslint":"eslint . --fix","lint:prettier":"prettier \"**/*.js\" --check --ignore-path .gitignore","test:coverage":"vitest run --coverage","format:prettier":"prettier \"**/*.js\" --write --ignore-path .gitignore"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5651f94c-8dcd-4618-aa5c-15f32167d5ed"}},"repository":{"url":"git+https://github.com/aarongustafson/form-obfuscator.git","type":"git"},"_npmVersion":"11.7.0","description":"Web component that obfuscates fields when they don't have focus.","directories":{},"_nodeVersion":"20.19.6","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"customElements":"custom-elements.json","devDependencies":{"eslint":"^9.39.1","vitest":"^4.0.10","prettier":"^3.6.2","happy-dom":"^20.0.10","@vitest/ui":"^4.0.10","@vitest/coverage-v8":"^4.0.10","@testing-library/dom":"^10.4.1","@open-wc/eslint-config":"^13.0.0","eslint-config-prettier":"^10.1.8","@testing-library/user-event":"^14.6.1"},"_npmOperationalInternal":{"tmp":"tmp/form-obfuscator_3.1.1_1765664302442_0.3684461721183907","host":"s3://npm-registry-packages-npm-production"}},"3.1.2":{"name":"@aarongustafson/form-obfuscator","version":"3.1.2","keywords":["html","custom element","web component","forms","form security","obfuscation","privacy","accessibility","a11y"],"author":{"url":"https://www.aaron-gustafson.com/","name":"Aaron Gustafson","email":"aaron@easy-designs.net"},"license":"MIT","_id":"@aarongustafson/form-obfuscator@3.1.2","maintainers":[{"name":"aarongustafson","email":"aaron@easy-designs.net"}],"homepage":"https://github.com/aarongustafson/form-obfuscator#readme","bugs":{"url":"https://github.com/aarongustafson/form-obfuscator/issues"},"dist":{"shasum":"77c8b04adac4619d9e068aa043fdfe3a868f5b90","tarball":"https://registry.npmjs.org/@aarongustafson/form-obfuscator/-/form-obfuscator-3.1.2.tgz","fileCount":8,"integrity":"sha512-NQZbS6VC8bQXpGrQ3Dkr0r0wcjkVltUHCHSnVJmI74YisBsz7+FsuvNa1ZDHTY52nBLljntGrS1hKPS2m9rgAg==","signatures":[{"sig":"MEQCIBEHZL84ErUhtWnnOrvbOXttElfUBQSok8wYAEJrKAMtAiBM5v3yTsYnQsnf1tHaCL5gzwYf/+2ayw1ocsrNLWlskg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aarongustafson%2fform-obfuscator@3.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":18662},"main":"index.js","type":"module","types":"form-obfuscator.d.ts","module":"form-obfuscator.js","engines":{"node":">=14.0.0"},"exports":{".":{"import":"./index.js"},"./define.js":{"import":"./define.js"},"./form-obfuscator.js":{"types":"./form-obfuscator.d.ts","import":"./form-obfuscator.js"},"./custom-elements.json":"./custom-elements.json"},"gitHead":"ff07059e687261cebf8b8c01d9e86b80b1b0928d","scripts":{"lint":"npm run lint:eslint && npm run lint:prettier","test":"vitest","format":"npm run format:eslint && npm run format:prettier","test:ui":"vitest --ui","version":"node scripts/update-demo-versions.js && git add demo/esm.html","test:run":"vitest run","lint:eslint":"eslint .","postversion":"git push --follow-tags","format:eslint":"eslint . --fix","lint:prettier":"prettier \"**/*.js\" --check --ignore-path .gitignore","test:coverage":"vitest run --coverage","format:prettier":"prettier \"**/*.js\" --write --ignore-path .gitignore"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5651f94c-8dcd-4618-aa5c-15f32167d5ed"}},"repository":{"url":"git+https://github.com/aarongustafson/form-obfuscator.git","type":"git"},"_npmVersion":"11.7.0","description":"Web component that obfuscates fields when they don't have focus.","directories":{},"_nodeVersion":"20.19.6","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"customElements":"custom-elements.json","devDependencies":{"eslint":"^9.39.1","vitest":"^4.0.10","prettier":"^3.6.2","happy-dom":"^20.0.10","@vitest/ui":"^4.0.10","@vitest/coverage-v8":"^4.0.10","@testing-library/dom":"^10.4.1","@open-wc/eslint-config":"^13.0.0","eslint-config-prettier":"^10.1.8","@testing-library/user-event":"^14.6.1"},"_npmOperationalInternal":{"tmp":"tmp/form-obfuscator_3.1.2_1765774237911_0.5995333441541302","host":"s3://npm-registry-packages-npm-production"}},"3.1.3":{"name":"@aarongustafson/form-obfuscator","version":"3.1.3","description":"Web component that obfuscates fields when they don't have focus.","keywords":["html","custom element","web component","forms","form security","obfuscation","privacy","accessibility","a11y"],"author":{"name":"Aaron Gustafson","email":"aaron@easy-designs.net","url":"https://www.aaron-gustafson.com/"},"license":"MIT","homepage":"https://github.com/aarongustafson/form-obfuscator#readme","repository":{"type":"git","url":"git+https://github.com/aarongustafson/form-obfuscator.git"},"bugs":{"url":"https://github.com/aarongustafson/form-obfuscator/issues"},"type":"module","main":"index.js","module":"form-obfuscator.js","customElements":"custom-elements.json","types":"form-obfuscator.d.ts","exports":{".":{"import":"./index.js"},"./form-obfuscator.js":{"import":"./form-obfuscator.js","types":"./form-obfuscator.d.ts"},"./define.js":{"import":"./define.js"},"./custom-elements.json":"./custom-elements.json"},"engines":{"node":">=20.0.0"},"scripts":{"test":"vitest","test:ui":"vitest --ui","test:run":"vitest run","test:coverage":"vitest run --coverage","lint":"npm run lint:eslint && npm run lint:prettier","format":"npm run format:eslint && npm run format:prettier","lint:eslint":"eslint .","format:eslint":"eslint . --fix","lint:prettier":"prettier \"**/*.js\" --check --ignore-path .gitignore","format:prettier":"prettier \"**/*.js\" --write --ignore-path .gitignore","version":"node scripts/update-demo-versions.js && git add demo/esm.html","postversion":"git push --follow-tags"},"devDependencies":{"@open-wc/eslint-config":"^13.0.0","@testing-library/dom":"^10.4.1","@testing-library/user-event":"^14.6.1","@vitest/coverage-v8":"^4.0.10","@vitest/ui":"^4.0.10","eslint":"^9.39.1","eslint-config-prettier":"^10.1.8","happy-dom":"^20.0.10","prettier":"^3.6.2","vitest":"^4.0.10"},"publishConfig":{"access":"public"},"gitHead":"693b35c1e9c68d2e1be044885ec75889827fe218","_id":"@aarongustafson/form-obfuscator@3.1.3","_nodeVersion":"20.19.6","_npmVersion":"11.7.0","dist":{"integrity":"sha512-cMMxpJx5O+7yBC9xXZa97lembru7z8ZbeIxZzoiySDRfk21MKkzCUdJWsT68V4KtFf86pxGc/pZJyA9rILStsA==","shasum":"60108dff7c7fe9d74bb15824cd2d92a36643fc41","tarball":"https://registry.npmjs.org/@aarongustafson/form-obfuscator/-/form-obfuscator-3.1.3.tgz","fileCount":8,"unpackedSize":18662,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aarongustafson%2fform-obfuscator@3.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCHRClD9LZGO5CYodR5UYnIgSo4SMWuerIX9nd6VDyXxQIhAOmNGP6n7uArNycre+wn6RCY16K0Li1k7jMKV/hqv8aR"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5651f94c-8dcd-4618-aa5c-15f32167d5ed"}},"directories":{},"maintainers":[{"name":"aarongustafson","email":"aaron@easy-designs.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/form-obfuscator_3.1.3_1765862091469_0.908840902893354"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-20T12:43:50.285Z","modified":"2025-12-16T05:14:52.059Z","2.0.0":"2025-11-20T12:43:50.562Z","2.0.3":"2025-11-29T18:03:36.340Z","2.0.4":"2025-11-30T15:45:45.510Z","3.0.0":"2025-12-08T04:49:35.280Z","3.0.1":"2025-12-09T17:58:35.403Z","3.1.0":"2025-12-13T17:07:45.994Z","3.1.1":"2025-12-13T22:18:22.612Z","3.1.2":"2025-12-15T04:50:38.057Z","3.1.3":"2025-12-16T05:14:51.607Z"},"bugs":{"url":"https://github.com/aarongustafson/form-obfuscator/issues"},"author":{"name":"Aaron Gustafson","email":"aaron@easy-designs.net","url":"https://www.aaron-gustafson.com/"},"license":"MIT","homepage":"https://github.com/aarongustafson/form-obfuscator#readme","keywords":["html","custom element","web component","forms","form security","obfuscation","privacy","accessibility","a11y"],"repository":{"type":"git","url":"git+https://github.com/aarongustafson/form-obfuscator.git"},"description":"Web component that obfuscates fields when they don't have focus.","maintainers":[{"name":"aarongustafson","email":"aaron@easy-designs.net"}],"readme":"# Form Field Obfuscation Web Component\n\n[![npm version](https://img.shields.io/npm/v/@aarongustafson/form-obfuscator.svg)](https://www.npmjs.com/package/@aarongustafson/form-obfuscator) [![Build Status](https://img.shields.io/github/actions/workflow/status/aarongustafson/form-obfuscator/ci.yml?branch=main)](https://github.com/aarongustafson/form-obfuscator/actions)\n\nThere is no standard way to have a field's contents be readable while editing and obfuscated while at rest. The closest we get is the [\"password reveal\" pattern](https://github.com/sunnywalker/show-password-toggle), but that isn't as customizable for regular fields. The `form-obfuscator` web component enables that.\n\n## Demos\n\n* [Live Demo](https://aarongustafson.github.io/form-obfuscator/demo/) ([Source](./demo/index.html))\n* [Unpkg CDN Demo](https://aarongustafson.github.io/form-obfuscator/demo/unpkg.html) ([Source](./demo/unpkg.html))\n* [ESM Demo](https://aarongustafson.github.io/form-obfuscator/demo/esm.html) ([Source](./demo/esm.html))\n\n## Installation\n\n```bash\nnpm install @aarongustafson/form-obfuscator\n```\n\n## Usage\n\n### Option 1: Import the class and define manually\n\nImport the class and define the custom element with your preferred tag name:\n\n```javascript\nimport { FormObfuscatorElement } from '@aarongustafson/form-obfuscator';\n\n// Define with default name\ncustomElements.define('form-obfuscator', FormObfuscatorElement);\n\n// Or define with a custom name\ncustomElements.define('my-field-obfuscator', FormObfuscatorElement);\n```\n\n### Option 2: Auto-define the custom element (browser environments only)\n\nUse the guarded definition helper to register the element when `customElements` is available:\n\n```javascript\nimport '@aarongustafson/form-obfuscator/define.js';\n```\n\nIf you prefer to control when the element is registered, call the helper directly:\n\n```javascript\nimport { defineFormObfuscator } from '@aarongustafson/form-obfuscator/define.js';\n\ndefineFormObfuscator();\n```\n\nYou can also include the guarded script from HTML:\n\n```html\n<script src=\"./node_modules/@aarongustafson/form-obfuscator/define.js\" type=\"module\"></script>\n```\n\n### CDN Usage\n\nYou can also use the component directly from a CDN:\n\n```html\n<script src=\"https://unpkg.com/@aarongustafson/form-obfuscator@latest/define.js\" type=\"module\"></script>\n```\n\n## API\n\n* `character` - The text character to replace each obfuscated character with. Default: *\n* `pattern` (optional) - Regular expression to manage replacement. Matched characters will be kept, all other characters will be replaced. If no match is found, the whole string will be replaced.\n* `replacer` (optional) - A custom replacement function that will be used to replace the value. Requires `pattern` be set as well. The obfuscated value will be a result of `value.replace( pattern, replacer )` where _value_ is the original field value, _pattern_ is a Regular Expression conversion of `pattern`, and _replacer_ is this function. All components of the replacer will need to be addressed via `arguments`.\n* `maxlength` (optional) - The maximum number of characters to display when obfuscating the text. This truncation is applied at the end of the replacement process.\n\n## Events\n\nThis element will emit two custom JavaScript events:\n\n* `form-obfuscator:hide` when a field is obfuscated\n* `form-obfuscator:reveal` when a field is obfuscated\n\nOn either event you can access the obfuscated field through the reference `event.detail.field` and the hidden field through the reference `event.detail.hidden`.\n\n## Markup Assumptions\n\nThis web component makes no assumptions about markup. It will apply its logic to any text-style `input` elements it contains.\n\n## Implementation notes\n\nAll field values will be duplicated into a hidden field, which is the field that will actually be submitted with the form. The source order will be such that the hidden field will be the one whose value is submitted.\n\n## Example\n\n```html\n<form-obfuscator>\n\t<label for=\"my-field\">Field Label</label>\n\t<input id=\"my-field\" name=\"foo\" />\n</form-obfuscator>\n```\n\n## Browser Support\n\nThis web component works in all modern browsers that support:\n\n- Custom Elements v1\n- ES Modules (for module usage)\n\nFor older browsers, you may need polyfills for Custom Elements.\n\n## TypeScript Support\n\nTypeScript definitions are included with this package. You get full type support and event typings automatically when using this component in TypeScript projects.\n\n## Multiple Input Support\n\nYou can place multiple text-style `input` elements inside a single `form-obfuscator`. Each input will be independently obfuscated and managed, with its own hidden field for form submission.\n\n## Development\n\n### Testing\n\n```bash\n# Run tests\nnpm test\n\n# Run tests once\nnpm run test:run\n\n# Run tests with UI\nnpm run test:ui\n\n# Run tests with coverage\nnpm run test:coverage\n```\n\n### Linting and Formatting\n\n```bash\n# Lint code\nnpm run lint\n\n# Format code\nnpm run format\n```\n","readmeFilename":"README.md"}