{"_id":"@bernierllc/validators-form-transport","_rev":"8-385aa4148a67eaa584ef63a0711f12b0","name":"@bernierllc/validators-form-transport","dist-tags":{"latest":"0.7.0"},"versions":{"0.1.1":{"name":"@bernierllc/validators-form-transport","version":"0.1.1","keywords":["validation","validators","form","security","transport","https","autocomplete","csrf","primitive","mece"],"author":{"name":"Bernier LLC"},"license":"UNLICENSED","_id":"@bernierllc/validators-form-transport@0.1.1","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernierllc/tools#readme","bugs":{"url":"https://github.com/bernierllc/tools/issues"},"dist":{"shasum":"13f42ce3a6de1e11fcc6c1ce62e00fe53de95728","tarball":"https://registry.npmjs.org/@bernierllc/validators-form-transport/-/validators-form-transport-0.1.1.tgz","fileCount":20,"integrity":"sha512-ZTVzaFkWn1NNTdVhUOIfJj35slJnl/cT2N9bPJ2Z3p262ONBgDyXrbEGATpSvfcic0uyaunTvdhIQ/J+/O2pEg==","signatures":[{"sig":"MEUCIQCxEYJVNMKwe0tqT8oTJguGrhdYKD2TpHtJ6m6LganPdQIgXIoUnUw4accYjVB4VnPq4dQuo15MheBct8Wgq5Qs6kU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65339},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"d4e97cb725960f741f8ae376640a63cf5521380c","private":false,"scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","lint:fix":"eslint src --ext .ts --fix","test:run":"jest","test:coverage":"jest --coverage"},"_npmUser":{"name":"mkbernier","email":"mkbernier@gmail.com"},"bernierllc":{"type":"primitive","domain":"security","category":"validators","integration":{"neverhub":"not-applicable"}},"repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/validators/validators-form-transport"},"_npmVersion":"11.4.2","description":"Form transport security validation primitive - HTTPS forms, autocomplete rules, secure cookies","directories":{},"_nodeVersion":"24.4.1","dependencies":{"@bernierllc/validators-core":"^0.1.1","@bernierllc/validators-utils":"^0.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","jsdom":"^27.0.0","eslint":"^8.37.0","ts-jest":"^29.0.5","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^18.15.0","@types/jsdom":"^27.0.0","@typescript-eslint/parser":"^5.57.0","@typescript-eslint/eslint-plugin":"^5.57.0"},"_npmOperationalInternal":{"tmp":"tmp/validators-form-transport_0.1.1_1760037392876_0.7531500461351435","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@bernierllc/validators-form-transport","version":"0.1.2","keywords":["validation","validators","form","security","transport","https","autocomplete","csrf","primitive","mece"],"author":{"name":"Bernier LLC"},"license":"UNLICENSED","_id":"@bernierllc/validators-form-transport@0.1.2","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernierllc/tools#readme","bugs":{"url":"https://github.com/bernierllc/tools/issues"},"dist":{"shasum":"942aeec29479a7b5e766f83f3059b65e60d49645","tarball":"https://registry.npmjs.org/@bernierllc/validators-form-transport/-/validators-form-transport-0.1.2.tgz","fileCount":20,"integrity":"sha512-fwO3HFZH4rIv08ayVLj6DwMSzkxrdpRqcNIGLe9K+mUn3rrYeUuAs/dAneWaUURZbBrICOYxKaqPcSpU5npuQg==","signatures":[{"sig":"MEUCIFoVmbXuf+IwGZGDKy178XeDP9jNaKAmRimkMTdcfx2PAiEApaXcLnlq+BF8H/K8nH0E6QC/rfPoOJYJy1rSf6/7xF8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65339},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"f184001df6da605bb9584b5f5bc17a1b93ee29f4","private":false,"scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","lint:fix":"eslint src --ext .ts --fix","test:run":"jest","test:coverage":"jest --coverage"},"_npmUser":{"name":"mkbernier","email":"mkbernier@gmail.com"},"bernierllc":{"type":"primitive","domain":"security","category":"validators","integration":{"neverhub":"not-applicable"}},"repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/validators/validators-form-transport"},"_npmVersion":"11.4.2","description":"Form transport security validation primitive - HTTPS forms, autocomplete rules, secure cookies","directories":{},"_nodeVersion":"24.4.1","dependencies":{"@bernierllc/validators-core":"^0.1.1","@bernierllc/validators-utils":"^0.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","jsdom":"^27.0.0","eslint":"^8.37.0","ts-jest":"^29.0.5","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^18.15.0","@types/jsdom":"^27.0.0","@typescript-eslint/parser":"^5.57.0","@typescript-eslint/eslint-plugin":"^5.57.0"},"_npmOperationalInternal":{"tmp":"tmp/validators-form-transport_0.1.2_1760037447184_0.7634201050682321","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@bernierllc/validators-form-transport","version":"0.3.0","keywords":["validation","validators","form","security","transport","https","autocomplete","csrf","primitive","mece"],"author":{"name":"Bernier LLC"},"license":"UNLICENSED","_id":"@bernierllc/validators-form-transport@0.3.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernierllc/tools#readme","bugs":{"url":"https://github.com/bernierllc/tools/issues"},"dist":{"shasum":"0e06108d591fae95ce4ebb5b064aa31535e004eb","tarball":"https://registry.npmjs.org/@bernierllc/validators-form-transport/-/validators-form-transport-0.3.0.tgz","fileCount":20,"integrity":"sha512-yO7eWhR6WXq+J1OCUG2QEsXUW7zG1SZhqRpuvEF7j1JPCffNLb0aQjKwz5wcPwtqs0VkZUv67qsRd/+A9oCQ3g==","signatures":[{"sig":"MEUCIDnKKybCkpdsCRIBXjh/tNaXvmfWR3z3BPSqBshokV5+AiEA8jgkdgL1V76eHdgfJsX5/Yuq56EtUJ2RtWW3K020d38=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65441},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"af7e74b3715d56d3a193e1bb6743b337c2b0df6d","private":false,"scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","lint:fix":"eslint src --ext .ts --fix","test:run":"jest","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dc9dd80f-b7ef-4f4b-a12d-b0b33053d081"}},"bernierllc":{"type":"primitive","domain":"security","category":"validators","integration":{"neverhub":"not-applicable"}},"repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/validators/validators-form-transport"},"_npmVersion":"lerna/9.0.3/node@v20.19.6+x64 (linux)","description":"Form transport security validation primitive - HTTPS forms, autocomplete rules, secure cookies","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@bernierllc/validators-core":"0.1.2","@bernierllc/validators-utils":"0.1.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","jsdom":"^27.0.0","eslint":"^8.37.0","ts-jest":"^29.0.5","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^18.15.0","@types/jsdom":"^27.0.0","@typescript-eslint/parser":"^5.57.0","@typescript-eslint/eslint-plugin":"^5.57.0"},"_npmOperationalInternal":{"tmp":"tmp/validators-form-transport_0.3.0_1767642363964_0.4389009849806531","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@bernierllc/validators-form-transport","version":"0.3.1","keywords":["validation","validators","form","security","transport","https","autocomplete","csrf","primitive","mece"],"author":{"name":"Bernier LLC"},"license":"UNLICENSED","_id":"@bernierllc/validators-form-transport@0.3.1","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernierllc/tools#readme","bugs":{"url":"https://github.com/bernierllc/tools/issues"},"dist":{"shasum":"a74a12cc4e80355e91186a103ad4743f1b7bd7fc","tarball":"https://registry.npmjs.org/@bernierllc/validators-form-transport/-/validators-form-transport-0.3.1.tgz","fileCount":20,"integrity":"sha512-NRZ85Sa4NSeKv/GsoMkm9G9SEG7IWxrLM+5I5SL0L106b7sS3gVDAysyzelWgCF3Hmg8fuL1psY91+2S01TzUg==","signatures":[{"sig":"MEYCIQDGnKkGgHJiGl67yA7KdvEMYs5VOyTAe7kAoe9QBZmIqgIhAP7H9S+JfupzL66O7BqVUbJKb0hnvNPNp3S+v6wRG4jO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65383},"main":"dist/index.js","_from":"file:bernierllc-validators-form-transport-0.3.1.tgz","types":"dist/index.d.ts","private":false,"scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","lint:fix":"eslint src --ext .ts --fix","test:run":"jest","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dc9dd80f-b7ef-4f4b-a12d-b0b33053d081"}},"_resolved":"/tmp/7d296220237dfa8fa3e931d44b8c49b0/bernierllc-validators-form-transport-0.3.1.tgz","_integrity":"sha512-NRZ85Sa4NSeKv/GsoMkm9G9SEG7IWxrLM+5I5SL0L106b7sS3gVDAysyzelWgCF3Hmg8fuL1psY91+2S01TzUg==","bernierllc":{"type":"primitive","domain":"security","category":"validators","integration":{"neverhub":"not-applicable"}},"repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/validators/validators-form-transport"},"_npmVersion":"11.11.0","description":"Form transport security validation primitive - HTTPS forms, autocomplete rules, secure cookies","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@bernierllc/validators-core":"0.1.3","@bernierllc/validators-utils":"0.1.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","jsdom":"^27.0.0","eslint":"^8.37.0","ts-jest":"^29.0.5","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^18.15.0","@types/jsdom":"^27.0.0","@typescript-eslint/parser":"^5.57.0","@typescript-eslint/eslint-plugin":"^5.57.0"},"_npmOperationalInternal":{"tmp":"tmp/validators-form-transport_0.3.1_1773078283866_0.6943152267332371","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@bernierllc/validators-form-transport","version":"0.3.2","keywords":["validation","validators","form","security","transport","https","autocomplete","csrf","primitive","mece"],"author":{"name":"Bernier LLC"},"license":"UNLICENSED","_id":"@bernierllc/validators-form-transport@0.3.2","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernierllc/tools#readme","bugs":{"url":"https://github.com/bernierllc/tools/issues"},"dist":{"shasum":"014c84a29d13d40ed445a84c6d63a4469778f0a7","tarball":"https://registry.npmjs.org/@bernierllc/validators-form-transport/-/validators-form-transport-0.3.2.tgz","fileCount":20,"integrity":"sha512-nchHV83xgjHIrzyTqCw0dH/nvZw/ix5fuzoJBFrYBCS+lOHCdpkRY7HIYIrtpNe4QCiIO/7fGxMhXRL0gXT3cQ==","signatures":[{"sig":"MEYCIQCjV/MvnDlSnBvJ1QldfEoypx2C8QzOQ286aE3H0hZeKQIhAO36QhPefCrY4oTIkfddtYIk5iM7T8BG/5x3X1edOl8y","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65383},"main":"dist/index.js","_from":"file:bernierllc-validators-form-transport-0.3.2.tgz","types":"dist/index.d.ts","private":false,"scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","lint:fix":"eslint src --ext .ts --fix","test:run":"jest","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dc9dd80f-b7ef-4f4b-a12d-b0b33053d081"}},"_resolved":"/home/runner/work/tools/tools/packages/validators/validators-form-transport/bernierllc-validators-form-transport-0.3.2.tgz","_integrity":"sha512-nchHV83xgjHIrzyTqCw0dH/nvZw/ix5fuzoJBFrYBCS+lOHCdpkRY7HIYIrtpNe4QCiIO/7fGxMhXRL0gXT3cQ==","bernierllc":{"type":"primitive","domain":"security","category":"validators","integration":{"neverhub":"not-applicable"}},"repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/validators/validators-form-transport"},"_npmVersion":"11.11.0","description":"Form transport security validation primitive - HTTPS forms, autocomplete rules, secure cookies","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@bernierllc/validators-core":"0.1.4","@bernierllc/validators-utils":"0.1.4"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","jsdom":"^27.0.0","eslint":"^8.37.0","ts-jest":"^29.0.5","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^18.15.0","@types/jsdom":"^27.0.0","@typescript-eslint/parser":"^5.57.0","@typescript-eslint/eslint-plugin":"^5.57.0"},"_npmOperationalInternal":{"tmp":"tmp/validators-form-transport_0.3.2_1773163925493_0.18257215656226045","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@bernierllc/validators-form-transport","version":"0.4.0","keywords":["validation","validators","form","security","transport","https","autocomplete","csrf","primitive","mece"],"author":{"name":"Bernier LLC"},"license":"UNLICENSED","_id":"@bernierllc/validators-form-transport@0.4.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernierllc/tools#readme","bugs":{"url":"https://github.com/bernierllc/tools/issues"},"dist":{"shasum":"5348f4be8e83ab6c7a7f868654eb165262d66743","tarball":"https://registry.npmjs.org/@bernierllc/validators-form-transport/-/validators-form-transport-0.4.0.tgz","fileCount":20,"integrity":"sha512-nOu68/YAyBdtmozS6CwFZtVTyFXRrItk7gkv96znQkRsCRMTl+JQN438p9RB1nNzMkrSKzrONc/bAHq92K0lfg==","signatures":[{"sig":"MEUCIQDh7qIFWmyo8GYX0S9k18Bi0bU3XqtJ7EDncRYPazOZEwIgKWpm/UsBVo8SCtTjoh9o8BQYhs0yBgY+nLGG5u6b6F4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65383},"main":"dist/index.js","_from":"file:bernierllc-validators-form-transport-0.4.0.tgz","types":"dist/index.d.ts","private":false,"scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","lint:fix":"eslint src --ext .ts --fix","test:run":"jest","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dc9dd80f-b7ef-4f4b-a12d-b0b33053d081"}},"_resolved":"/home/runner/work/tools/tools/packages/validators/validators-form-transport/bernierllc-validators-form-transport-0.4.0.tgz","_integrity":"sha512-nOu68/YAyBdtmozS6CwFZtVTyFXRrItk7gkv96znQkRsCRMTl+JQN438p9RB1nNzMkrSKzrONc/bAHq92K0lfg==","bernierllc":{"type":"primitive","domain":"security","category":"validators","integration":{"neverhub":"not-applicable"}},"repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/validators/validators-form-transport"},"_npmVersion":"11.14.1","description":"Form transport security validation primitive - HTTPS forms, autocomplete rules, secure cookies","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/validators-core":"0.2.0","@bernierllc/validators-utils":"0.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","jsdom":"^27.0.0","eslint":"^8.37.0","ts-jest":"^29.0.5","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^18.15.0","@types/jsdom":"^27.0.0","@typescript-eslint/parser":"^5.57.0","@typescript-eslint/eslint-plugin":"^5.57.0"},"_npmOperationalInternal":{"tmp":"tmp/validators-form-transport_0.4.0_1779242154891_0.8522584864803431","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@bernierllc/validators-form-transport","version":"0.5.0","keywords":["validation","validators","form","security","transport","https","autocomplete","csrf","primitive","mece"],"author":{"name":"Bernier LLC"},"license":"UNLICENSED","_id":"@bernierllc/validators-form-transport@0.5.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernierllc/tools#readme","bugs":{"url":"https://github.com/bernierllc/tools/issues"},"dist":{"shasum":"3364995a9a3049a6ae3b3c62011c72a244a8e3c6","tarball":"https://registry.npmjs.org/@bernierllc/validators-form-transport/-/validators-form-transport-0.5.0.tgz","fileCount":20,"integrity":"sha512-Ch5dl0U/z59K0NhGIEJHl3MDD5YKbHebBCt3ePePNLyxROyAM7umi5h3Z9Iyd+4rHhqCB2ploNkw1cXWlBy71Q==","signatures":[{"sig":"MEUCIElljyZa9EjV9kDnm/dOLXHmqTabrBE/KaZ7EjT/NCrAAiEA9ne4ajizRJon7eJUOsuTSgewRMjx28FUtJFmL7LzeTQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65383},"main":"dist/index.js","_from":"file:bernierllc-validators-form-transport-0.5.0.tgz","types":"dist/index.d.ts","private":false,"scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","lint:fix":"eslint src --ext .ts --fix","test:run":"jest","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dc9dd80f-b7ef-4f4b-a12d-b0b33053d081"}},"_resolved":"/home/runner/work/tools/tools/packages/validators/validators-form-transport/bernierllc-validators-form-transport-0.5.0.tgz","_integrity":"sha512-Ch5dl0U/z59K0NhGIEJHl3MDD5YKbHebBCt3ePePNLyxROyAM7umi5h3Z9Iyd+4rHhqCB2ploNkw1cXWlBy71Q==","bernierllc":{"type":"primitive","domain":"security","category":"validators","integration":{"neverhub":"not-applicable"}},"repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/validators/validators-form-transport"},"_npmVersion":"11.14.1","description":"Form transport security validation primitive - HTTPS forms, autocomplete rules, secure cookies","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/validators-core":"0.3.0","@bernierllc/validators-utils":"0.3.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","jsdom":"^27.0.0","eslint":"^8.37.0","ts-jest":"^29.0.5","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^18.15.0","@types/jsdom":"^27.0.0","@typescript-eslint/parser":"^5.57.0","@typescript-eslint/eslint-plugin":"^5.57.0"},"_npmOperationalInternal":{"tmp":"tmp/validators-form-transport_0.5.0_1779250912477_0.7947981645154616","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@bernierllc/validators-form-transport","version":"0.7.0","description":"Form transport security validation primitive - HTTPS forms, autocomplete rules, secure cookies","main":"dist/index.js","types":"dist/index.d.ts","keywords":["validation","validators","form","security","transport","https","autocomplete","csrf","primitive","mece"],"author":{"name":"Bernier LLC"},"license":"UNLICENSED","private":false,"dependencies":{"@bernierllc/validators-utils":"0.5.0","@bernierllc/validators-core":"0.4.0"},"devDependencies":{"@types/jest":"^29.5.0","@types/jsdom":"^27.0.0","@types/node":"^18.15.0","@typescript-eslint/eslint-plugin":"^5.57.0","@typescript-eslint/parser":"^5.57.0","eslint":"^8.37.0","jest":"^29.5.0","jsdom":"^27.0.0","ts-jest":"^29.0.5","typescript":"^5.0.0"},"repository":{"type":"git","url":"git+https://github.com/bernierllc/tools.git","directory":"packages/validators/validators-form-transport"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"bernierllc":{"category":"validators","type":"primitive","domain":"security","integration":{"neverhub":"not-applicable"}},"scripts":{"build":"tsc","dev":"tsc --watch","test":"jest","test:run":"jest","test:coverage":"jest --coverage","lint":"eslint src --ext .ts","lint:fix":"eslint src --ext .ts --fix","clean":"rm -rf dist"},"_id":"@bernierllc/validators-form-transport@0.7.0","bugs":{"url":"https://github.com/bernierllc/tools/issues"},"homepage":"https://github.com/bernierllc/tools#readme","_integrity":"sha512-j5A108KIO2Av2nMgCCpZ1Z9XzJiY0yf1WZsgKEpiDQhEjh8/v3vQ8i0Vr+fSpkN37ggXiCp8cUPz3hmzp7b1Ng==","_resolved":"/home/runner/work/tools/tools/packages/validators/validators-form-transport/bernierllc-validators-form-transport-0.7.0.tgz","_from":"file:bernierllc-validators-form-transport-0.7.0.tgz","_nodeVersion":"20.20.2","_npmVersion":"11.14.1","dist":{"integrity":"sha512-j5A108KIO2Av2nMgCCpZ1Z9XzJiY0yf1WZsgKEpiDQhEjh8/v3vQ8i0Vr+fSpkN37ggXiCp8cUPz3hmzp7b1Ng==","shasum":"6a6db4a9784bbc146965015eea88c425bb5fc245","tarball":"https://registry.npmjs.org/@bernierllc/validators-form-transport/-/validators-form-transport-0.7.0.tgz","fileCount":22,"unpackedSize":67286,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHab8Vh6jkZ+ONxySGta1hecA66JIUBU/BV+sD7Rnd6XAiEAtzGIQam6tk7nRjWqViPG3eNlhDmnsamz1/gVwsuXBQQ="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dc9dd80f-b7ef-4f4b-a12d-b0b33053d081"}},"directories":{},"maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/validators-form-transport_0.7.0_1779252200280_0.8709297464712797"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-09T19:16:32.769Z","modified":"2026-05-20T04:43:20.561Z","0.1.1":"2025-10-09T19:16:33.071Z","0.1.2":"2025-10-09T19:17:27.425Z","0.3.0":"2026-01-05T19:46:04.120Z","0.3.1":"2026-03-09T17:44:44.010Z","0.3.2":"2026-03-10T17:32:05.720Z","0.4.0":"2026-05-20T01:55:55.041Z","0.5.0":"2026-05-20T04:21:52.614Z","0.7.0":"2026-05-20T04:43:20.431Z"},"bugs":{"url":"https://github.com/bernierllc/tools/issues"},"author":{"name":"Bernier LLC"},"license":"UNLICENSED","homepage":"https://github.com/bernierllc/tools#readme","keywords":["validation","validators","form","security","transport","https","autocomplete","csrf","primitive","mece"],"repository":{"type":"git","url":"git+https://github.com/bernierllc/tools.git","directory":"packages/validators/validators-form-transport"},"description":"Form transport security validation primitive - HTTPS forms, autocomplete rules, secure cookies","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"readme":"# @bernierllc/validators-form-transport\n\nForm transport security validation primitive - validates HTTPS forms, autocomplete rules, secure cookies, and CSRF protection.\n\n## Installation\n\n```bash\nnpm install @bernierllc/validators-form-transport\n```\n\n## Usage\n\n```typescript\nimport { validateFormTransport } from '@bernierllc/validators-form-transport';\nimport { createSharedUtils } from '@bernierllc/validators-utils';\n\nconst html = `\n  <form action=\"http://example.com/login\" method=\"get\">\n    <input type=\"text\" name=\"password\" />\n  </form>\n`;\n\nconst utils = createSharedUtils();\nconst result = await validateFormTransport(html, {}, utils);\n\nif (result.problems.length > 0) {\n  console.log('Form security issues found:');\n  result.problems.forEach((problem) => {\n    console.log(`- ${problem.message} (${problem.severity})`);\n  });\n}\n```\n\n## API Reference\n\n### `validateFormTransport(html, options?, utils)`\n\nValidates form transport security in HTML content.\n\n**Parameters:**\n- `html` (string): HTML content to validate\n- `options` (FormTransportOptions): Optional configuration\n- `utils` (SharedUtils): Shared utilities from @bernierllc/validators-utils\n\n**Returns:** `Promise<ValidationResult>` with problems and stats\n\n### `createFormTransportValidator(options?)`\n\nCreates a configured form transport validator instance.\n\n**Parameters:**\n- `options` (FormTransportOptions): Optional configuration\n\n**Returns:** Validator instance with `validate()` and `getMeta()` methods\n\n**Example:**\n```typescript\nconst validator = createFormTransportValidator({\n  checkHttpsAction: true,\n  checkCsrfToken: true,\n  allowLocalhostHttp: true, // Allow HTTP for localhost in development\n});\n\nconst result = await validator.validate(html, utils);\n```\n\n## Configuration Options\n\n### `FormTransportOptions`\n\n```typescript\ninterface FormTransportOptions {\n  /**\n   * Check that forms with sensitive data use HTTPS action URLs\n   * @default true\n   */\n  checkHttpsAction?: boolean;\n\n  /**\n   * Check that sensitive inputs have proper autocomplete attributes\n   * @default true\n   */\n  checkAutocomplete?: boolean;\n\n  /**\n   * Check that sensitive input types are used correctly\n   * @default true\n   */\n  checkSensitiveInputTypes?: boolean;\n\n  /**\n   * Check that forms with sensitive data use POST method\n   * @default true\n   */\n  checkFormMethod?: boolean;\n\n  /**\n   * Check for presence of CSRF token in forms\n   * @default true\n   */\n  checkCsrfToken?: boolean;\n\n  /**\n   * List of input names considered sensitive (case-insensitive)\n   * @default ['password', 'credit-card', 'cvv', 'ssn', 'pin', 'secret', 'token', 'api-key', 'auth']\n   */\n  sensitiveInputNames?: string[];\n\n  /**\n   * List of CSRF token input names to look for\n   * @default ['csrf', 'csrf_token', 'csrf-token', '_csrf', 'authenticity_token', 'csrfmiddlewaretoken']\n   */\n  csrfTokenNames?: string[];\n\n  /**\n   * Whether to allow HTTP for localhost/127.0.0.1 (development)\n   * @default true\n   */\n  allowLocalhostHttp?: boolean;\n}\n```\n\n## Validation Rules\n\n### 1. HTTPS Form Action (`form-transport/https-action`)\n\nValidates that forms with sensitive data use HTTPS action URLs.\n\n**Triggers:**\n- Forms with password input fields using HTTP action\n- Forms with sensitive named inputs (credit-card, ssn, etc.) using HTTP action\n- POST forms using HTTP action\n\n**Severity:** error\n\n**Example:**\n```typescript\n// Bad - HTTP action\n<form action=\"http://example.com/login\" method=\"post\">\n  <input type=\"password\" name=\"password\" />\n</form>\n\n// Good - HTTPS action\n<form action=\"https://example.com/login\" method=\"post\">\n  <input type=\"password\" name=\"password\" />\n</form>\n\n// Good - Relative URL (inherits page protocol)\n<form action=\"/login\" method=\"post\">\n  <input type=\"password\" name=\"password\" />\n</form>\n```\n\n### 2. Autocomplete Attribute (`form-transport/autocomplete`)\n\nValidates that sensitive inputs have proper autocomplete attributes.\n\n**Triggers:**\n- Password fields missing autocomplete attribute\n- Sensitive named fields missing autocomplete attribute\n- Invalid autocomplete values\n\n**Severity:** warn\n\n**Example:**\n```typescript\n// Bad - Missing autocomplete\n<input type=\"password\" name=\"password\" />\n\n// Good - Valid autocomplete\n<input type=\"password\" name=\"password\" autocomplete=\"current-password\" />\n\n// Good - Autocomplete disabled\n<input type=\"password\" name=\"password\" autocomplete=\"off\" />\n```\n\n### 3. Sensitive Input Types (`form-transport/sensitive-input-types`)\n\nValidates that sensitive data uses appropriate input types.\n\n**Triggers:**\n- Password-named fields not using `type=\"password\"`\n- Credit card numbers using `type=\"number\"` instead of `type=\"text\"`\n- SSN fields using inappropriate types\n- Email fields not using `type=\"email\"`\n\n**Severity:** error (password), warn (others)\n\n**Example:**\n```typescript\n// Bad - Password field using text\n<input type=\"text\" name=\"password\" />\n\n// Good - Password field using password type\n<input type=\"password\" name=\"password\" />\n\n// Bad - Credit card using number type (removes leading zeros)\n<input type=\"number\" name=\"credit-card\" />\n\n// Good - Credit card using text with numeric inputmode\n<input type=\"text\" name=\"credit-card\" inputmode=\"numeric\" />\n```\n\n### 4. Form Method (`form-transport/form-method`)\n\nValidates that forms with sensitive data use POST method.\n\n**Triggers:**\n- Forms with password fields using GET method\n- Forms with sensitive inputs using GET method\n- Forms with sensitive data missing explicit method attribute\n\n**Severity:** error\n\n**Example:**\n```typescript\n// Bad - GET method with password\n<form method=\"get\">\n  <input type=\"password\" name=\"password\" />\n</form>\n\n// Bad - No method (defaults to GET)\n<form>\n  <input type=\"password\" name=\"password\" />\n</form>\n\n// Good - POST method\n<form method=\"post\">\n  <input type=\"password\" name=\"password\" />\n</form>\n```\n\n### 5. CSRF Token (`form-transport/csrf-token`)\n\nValidates presence of CSRF protection token in forms.\n\n**Triggers:**\n- POST forms without CSRF token\n- Forms with sensitive data without CSRF token\n\n**Severity:** warn (POST forms), error (sensitive data forms)\n\n**Example:**\n```typescript\n// Bad - POST form without CSRF token\n<form method=\"post\">\n  <input type=\"text\" name=\"data\" />\n</form>\n\n// Good - CSRF token present\n<form method=\"post\">\n  <input type=\"hidden\" name=\"csrf_token\" value=\"abc123xyz\" />\n  <input type=\"text\" name=\"data\" />\n</form>\n\n// Good - CSRF via meta tag (Rails style)\n<head>\n  <meta name=\"csrf_token\" content=\"abc123xyz\" />\n</head>\n<form method=\"post\">\n  <input type=\"text\" name=\"data\" />\n</form>\n```\n\n## Examples\n\n### Basic Security Validation\n\n```typescript\nconst html = `\n  <form action=\"https://example.com/login\" method=\"post\">\n    <input type=\"email\" name=\"email\" autocomplete=\"email\" />\n    <input type=\"password\" name=\"password\" autocomplete=\"current-password\" />\n    <input type=\"hidden\" name=\"csrf_token\" value=\"secure-token\" />\n    <button type=\"submit\">Login</button>\n  </form>\n`;\n\nconst result = await validateFormTransport(html, {}, utils);\n// No problems - secure form\n```\n\n### Custom Sensitive Fields\n\n```typescript\nconst options = {\n  sensitiveInputNames: ['custom-secret', 'internal-token', 'api-credential'],\n};\n\nconst html = `\n  <form method=\"post\">\n    <input type=\"text\" name=\"custom-secret\" />\n  </form>\n`;\n\nconst result = await validateFormTransport(html, options, utils);\n// Detects custom sensitive field\n```\n\n### Development Configuration\n\n```typescript\nconst options = {\n  allowLocalhostHttp: true, // Allow HTTP for local development\n  checkCsrfToken: false, // Disable CSRF check in dev\n};\n\nconst html = `\n  <form action=\"http://localhost:3000/api/data\" method=\"post\">\n    <input type=\"text\" name=\"data\" />\n  </form>\n`;\n\nconst result = await validateFormTransport(html, options, utils);\n// Allows localhost HTTP, no CSRF requirement\n```\n\n## Integration Status\n\n- **Logger integration**: not-applicable - Pure validation function with no side effects. This primitive validator does not require `@bernierllc/logger` as it has no logging needs beyond error reporting via validation results.\n- **Docs-Suite**: ready - Markdown documentation with code examples\n- **NeverHub integration**: not-applicable - Primitive validator with no service dependencies. This package does not require `@bernierllc/neverhub-adapter` as it operates as a pure validation function with no need for service discovery or event bus capabilities.\n\n## See Also\n\n- [@bernierllc/validators-core](../validators-core) - Core validation types and utilities\n- [@bernierllc/validators-utils](../validators-utils) - Shared utilities for validation\n- [@bernierllc/validators-secret-patterns](../validators-secret-patterns) - Secret pattern detection\n- [@bernierllc/validators-html-syntax](../validators-html-syntax) - HTML syntax validation\n\n## License\n\nCopyright (c) 2025 Bernier LLC. All rights reserved.\n","readmeFilename":"README.md"}