{"_id":"@crossroads-loyalty-solutions/formaggio","_rev":"6-37dcb3e6014e87ef26131605ba57a5af","name":"@crossroads-loyalty-solutions/formaggio","dist-tags":{"latest":"0.2.2"},"versions":{"0.1.0":{"name":"@crossroads-loyalty-solutions/formaggio","version":"0.1.0","description":"The cheesy form library","keywords":["form","react"],"authors":["Martin Wernstål <m4rw3r@gmail.com>","Peter Asplund"],"license":"MIT","repository":{"type":"git","url":"git+ssh://git@github.com/crossroads-loyalty-solutions/formaggio.git"},"module":"dist/index.esm.js","main":"dist/index.esm.js","scripts":{"build":"npm-run-all build:*","build:rollup":"rollup -c rollup.config.js","build:flow":"cp build/flowstub.js dist/index.esm.js.flow && cp build/flowstub.js dist/index.js.flow","coverage":"nyc --reporter=html ava --verbose","clean":"rm -rf dist","distclean":"rm -rf package-lock.json node_modules dist","flow":"flow check","prepack":"npm run clean && npm run test && npm run build","test":"npm-run-all test:*","test:flow":"flow status","test:ava":"ava --verbose","test:xo":"xo","watch":"nodemon -w src -w test --exec \"npm run -q test || true\""},"dependencies":{},"devDependencies":{"@babel/core":"7.5.5","@babel/plugin-proposal-nullish-coalescing-operator":"^7.4.4","@babel/plugin-syntax-flow":"7.2.0","@babel/plugin-transform-flow-strip-types":"7.4.4","@babel/preset-env":"7.5.5","@babel/preset-react":"7.0.0","@babel/register":"^7.6.0","@testing-library/react":"9.1.4","ava":"2.2.0","babel-eslint":"10.0.2","cross-env":"5.2.0","eslint-config-xo-flow":"0.1.0","eslint-config-xo-react":"0.20.0","eslint-plugin-flowtype":"3.12.1","eslint-plugin-react":"7.14.2","eslint-plugin-react-hooks":"1.6.1","flow-bin":"0.102.0","jsdom":"^15.1.1","jsdom-global":"3.0.2","jslint":"0.12.1","ninos":"3.0.0","nodemon":"^1.19.2","npm-run-all":"4.1.5","nyc":"14.1.1","react":"16.9.0","react-dom":"16.9.0","rollup":"1.17.0","rollup-plugin-babel":"4.3.3","xo":"0.24.0"},"peerDependency":{"react":"*"},"publishConfig":{"access":"public"},"ava":{"babel":{"testOptions":{"presets":[["@babel/preset-react"],["@babel/preset-env",{"loose":true,"shippedProposals":true,"targets":{"node":"current","firefox":"50","ie":"11"},"exclude":["transform-typeof-symbol"]}]],"plugins":[["@babel/plugin-transform-flow-strip-types"]]}},"files":["**/*.test.js"],"sources":["src/**/*.js","**/src/**/*.js"],"require":["./test/_register","jsdom-global/register"],"powerAssert":true},"xo":{"extends":["xo-flow","xo-react"],"ignores":["dist","**/rollup.config.js"],"envs":["node","browser"],"overrides":[{"files":"src/flowstub.js","rules":{"import/no-useless-path-segments":"off"}},{"files":"test/*.js","rules":{"ava/use-test":"off","flowtype/require-parameter-type":"off","flowtype/require-return-type":"off","flowtype/no-unused-expressions":"off","no-unused-expressions":"off","quote-props":"off","max-len":["warn",140,{"ignoreStrings":true}]}}],"rules":{"brace-style":["error","stroustrup"],"comma-dangle":["error",{"arrays":"only-multiline","objects":"only-multiline","imports":"only-multiline","exports":"only-multiline","functions":"never"}],"flowtype/array-style-complex-type":["error","verbose"],"flowtype/array-style-simple-type":["error","verbose"],"flowtype/delimiter-dangle":["error","only-multiline"],"flowtype/newline-after-flow-annotation":["error","always"],"flowtype/require-types-at-top":"warn","flowtype/require-valid-file-annotation":["error","always",{"annotationStyle":"block"}],"flowtype/require-return-type":["error","always",{"annotateUndefined":"always"}],"flowtype/type-import-style":["error","declaration"],"import/no-unassigned-import":["error",{"allow":["**/*.css","**/*.scss"]}],"import/no-unresolved":"off","import/order":"off","indent":["error",2,{"SwitchCase":0}],"lines-between-class-members":["error","always",{"exceptAfterSingleLine":true}],"max-len":["error",{"code":100,"comments":80}],"no-case-declarations":"off","no-unused-vars":["error",{"varsIgnorePattern":"^React$"}],"object-curly-spacing":["error","always"],"quotes":["error","double",{"allowTemplateLiterals":true}],"react/jsx-tag-spacing":["error",{"closingSlash":"never","beforeSelfClosing":"always","afterOpening":"never","beforeClosing":"never"}],"unicorn/catch-error-name":["error",{"name":"e"}],"valid-jsdoc":"off"},"space":2},"gitHead":"db3304e73724f1deb0d6e00b7e608f9c354f1f6e","bugs":{"url":"https://github.com/crossroads-loyalty-solutions/formaggio/issues"},"homepage":"https://github.com/crossroads-loyalty-solutions/formaggio#readme","_id":"@crossroads-loyalty-solutions/formaggio@0.1.0","_nodeVersion":"12.4.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-mdBWXWsl9BbeDlOGKVAA6wBPGl7sU6mLFAcVwg/5NJaENZZH96Sd4TjTlM1ogruknMVGN2FXoJZJoLTbawgZxA==","shasum":"8df924e0fef9a32a9e86ad5f061352913ab2708b","tarball":"https://registry.npmjs.org/@crossroads-loyalty-solutions/formaggio/-/formaggio-0.1.0.tgz","fileCount":23,"unpackedSize":79694,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdhM+pCRA9TVsSAnZWagAAl4AP/0pIzdBH/rrKTBXlZ/7g\nXUUWNAw7qiic+NzkmfJSJUkqSS+vOuBNk78JTd9yne4gW7By3hXqregOSelQ\nqtNsx6/uKGFq+4N/dIiGvgaboZ3zaF0axpZzpcFGeh/l9muxTSnnADkoz3x2\njmMAKZCRJiXed8xlyWlIUwY8esDvIervkEuG9+ynxbxdPbX5+DYeFsTVj3n/\nEhTOnvVwremWYWTyRhz+G4cGRqR2iqsh8K+xeYIpFGZH1xKTRNilKmsmZQKp\n7StGV8oJnasKGaV297Zh9EtitrCm2kxeyANOdj6Z64a8rsIzD/9nnGC3I4vY\nZ2CRnERgFEXZ70ORyVWvQsgCRJF9y4g8U9/pIQDwe5oESj7mtpZMOecqhLda\nlVirhNGArR+WxbSU6QoiJKq+Fd9YcAyrxBNk2tbp0mxRXayrpCt5Al+I0EE4\npKvniSaMrNpG0uBQFBT4PB9ak6OIAvrk01f7aSMmCli5Yu5SQXPk3rUXNidp\njR2EWZrS02CbzJgac1SyuZSbcZ0zDOqExmxe15Oa8wetANTushOxFlTOcF6M\nj9BSSaico7nGRAJXmdnO6n2Kp4xa1WTP86lBN6oWtTvXlM1frWYvRCiJTwbL\ncjtYPluA38M3na3ofWAyjIs9so2FiuDjLMyu8ybxI50QPqPs0u1JfPJmBpdS\nYbCc\r\n=FrLQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQChmSnCpgo76u/Df4H1JsIagEFYk8vCl+lDFWg+6hxxEgIhAKZw3uy9d+vAoYPTdoWbEyT91e6qmflu56Bh4e+EKM8d"}]},"maintainers":[{"name":"lokecarlsson","email":"carlssonloke@gmail.com"},{"name":"m4rw3r","email":"m4rw3r@gmail.com"},{"name":"poggen","email":"oscar@crossroads.se"}],"_npmUser":{"name":"m4rw3r","email":"m4rw3r@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/formaggio_0.1.0_1568985001005_0.5632776185831394"},"_hasShrinkwrap":false},"0.2.0":{"name":"@crossroads-loyalty-solutions/formaggio","version":"0.2.0","description":"The cheesy form library","keywords":["form","react"],"authors":["Martin Wernstål <m4rw3r@gmail.com>","Peter Asplund <peterasplund0@gmail.com>"],"license":"MIT","repository":{"type":"git","url":"git+ssh://git@github.com/crossroads-loyalty-solutions/formaggio.git"},"module":"dist/index.esm.js","main":"dist/index.esm.js","sideEffects":false,"scripts":{"build":"npm-run-all build:*","build:rollup":"rollup -c rollup.config.js","build:flow":"cp build/flowstub.js dist/index.esm.js.flow && cp build/flowstub.js dist/index.js.flow","coverage":"nyc --reporter=html ava --verbose","clean":"rm -rf dist","distclean":"rm -rf package-lock.json node_modules dist","flow":"flow check","prepack":"npm run clean && npm run test && npm run build","test":"npm-run-all test:*","test:flow":"flow status","test:ava":"ava --verbose","test:xo":"xo","watch":"nodemon -w src -w test --exec \"npm run -q test || true\""},"dependencies":{},"devDependencies":{"@babel/core":"7.5.5","@babel/plugin-proposal-nullish-coalescing-operator":"^7.4.4","@babel/plugin-syntax-flow":"7.2.0","@babel/plugin-transform-flow-strip-types":"7.4.4","@babel/preset-env":"7.5.5","@babel/preset-react":"7.0.0","@babel/register":"^7.6.0","@crossroads-loyalty-solutions/eslint-config-xo":"^0.1.1","@testing-library/react":"9.1.4","ava":"2.2.0","cross-env":"5.2.0","flow-bin":"0.102.0","jsdom":"^15.1.1","jsdom-global":"3.0.2","ninos":"3.0.0","nodemon":"^1.19.2","npm-run-all":"4.1.5","nyc":"14.1.1","react":"16.9.0","react-dom":"16.9.0","rollup":"1.17.0","rollup-plugin-babel":"4.3.3","xo":"0.24.0"},"peerDependency":{"react":">=16.8.0"},"publishConfig":{"access":"public"},"ava":{"babel":{"testOptions":{"presets":[["@babel/preset-react"],["@babel/preset-env",{"loose":true,"shippedProposals":true,"targets":{"node":"current","firefox":"50","ie":"11"},"exclude":["transform-typeof-symbol"]}]],"plugins":[["@babel/plugin-transform-flow-strip-types"]]}},"files":["**/*.test.js"],"sources":["src/**/*.js","**/src/**/*.js"],"require":["./test/_register","jsdom-global/register"],"powerAssert":true},"xo":{"envs":["node","browser"],"extends":["@crossroads-loyalty-solutions/eslint-config-xo"],"ignores":["dist","rollup.config.js"],"overrides":[{"files":"test/*.js","rules":{"ava/use-test":"off","flowtype/require-parameter-type":"off","flowtype/require-return-type":"off","flowtype/no-unused-expressions":"off","no-unused-expressions":"off","max-len":["warn",140,{"ignoreStrings":true}]}}]},"gitHead":"cefacb380c0a5f2277c3b42d47f9858220377514","bugs":{"url":"https://github.com/crossroads-loyalty-solutions/formaggio/issues"},"homepage":"https://github.com/crossroads-loyalty-solutions/formaggio#readme","_id":"@crossroads-loyalty-solutions/formaggio@0.2.0","_nodeVersion":"12.9.1","_npmVersion":"6.10.2","dist":{"integrity":"sha512-X337fPmzoVnrDg0nWoLZRJJapxLj/CnWKKHawN04PWRscVNnjOQPZgjiLqhZjygpW8XaKaf/KEeR13RGXYM16Q==","shasum":"61f9e3e805f40d66083cb43810a9cfbd4011bafc","tarball":"https://registry.npmjs.org/@crossroads-loyalty-solutions/formaggio/-/formaggio-0.2.0.tgz","fileCount":24,"unpackedSize":89273,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdh9h5CRA9TVsSAnZWagAApg8P/RuQtUFthRgwykI4Ehlz\ny9ClBbK5CZHTSfZsIQ72DjC9VptW6ZF9ARqI76GnhKz6Qfi3dV57/pcSKLOV\nIHwbD8mbXwvStQfxsJR6eTIpQsnNk32wdalhGTzxDn9WNHKZWlYZ5P7GnTku\nOnEcaMQTNmr3OC6SOo1J91YUSz7BGJHmG44Ic+UjWnZAAdCefophX0dEjyVw\nBtnHao588aTc6/4XTxm2U9paI59kckF7nl3c9Ruo6ckNaN3znUubnmcLr6iA\ncX50DOPJpwlM28/PKjWb9geLrngUoaIpB2e6D3F9opnM9WiMeLOqsYLT1QSs\n5rqT5dqm4eOtQJ3CLzC8hpb9APTJUC5aPGFKWKH4hTstgVMuvVyKpH65OhKK\n/x2xBBZGf+mSqS5+0sIDUJ9UpTicEgwXnkf6TMj5s/2CQ6Y8N9eMe5T5HCdy\nLA29Yzk83eNvkssl12yu5xBiY63UV9yBSR6fNXZTcK+siqR4T3GIgHnuI7MV\nmaNUpRC6+d3j1ueBihcEa4VVLNOm34f+5QOwJqVngj089J22nZu2jIxR8AFQ\nc4PSkcjKgdeSyf+U36tkRYvmk++VWWXMWvOrYZ/S3eQ54PmmDDxZkMmqYbGy\nhcKhNroSz8WCJCUUMKVOq1hhksrF1Qh7wch/Xu4jiyWLqs2+w1vb1qNeY8Fx\nPYaH\r\n=G7c2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGubz2b1Kv954+sguESzl+vR7p/SBfp9k2JDG7vSUk6EAiBlX1xKhq+MA0XmHt8lf4SttdCDUqPdAgNeqMLzT+WJrw=="}]},"maintainers":[{"email":"carlssonloke@gmail.com","name":"lokecarlsson"},{"email":"m4rw3r@gmail.com","name":"m4rw3r"},{"email":"peterasplund0@gmail.com","name":"peterasplund"},{"email":"oscar@crossroads.se","name":"poggen"}],"_npmUser":{"name":"m4rw3r","email":"m4rw3r@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/formaggio_0.2.0_1569183864500_0.9010362683655733"},"_hasShrinkwrap":false},"0.2.1":{"name":"@crossroads-loyalty-solutions/formaggio","version":"0.2.1","description":"The cheesy form library","keywords":["form","react"],"authors":["Martin Wernstål <m4rw3r@gmail.com>","Peter Asplund <peterasplund0@gmail.com>"],"license":"MIT","repository":{"type":"git","url":"git+ssh://git@github.com/crossroads-loyalty-solutions/formaggio.git"},"module":"dist/index.esm.js","main":"dist/index.esm.js","sideEffects":false,"scripts":{"build":"npm-run-all build:*","build:rollup":"rollup -c rollup.config.js","build:flow":"cp build/flowstub.js dist/index.esm.js.flow && cp build/flowstub.js dist/index.js.flow","coverage":"nyc --reporter=html ava --verbose","clean":"rm -rf dist","distclean":"rm -rf package-lock.json node_modules dist","flow":"flow check","prepack":"npm run clean && npm run test && npm run build","test":"npm-run-all test:*","test:flow":"flow status","test:ava":"ava --verbose","test:xo":"xo","watch":"nodemon -w src -w test --exec \"npm run -q test || true\""},"dependencies":{},"devDependencies":{"@babel/core":"7.6.2","@babel/plugin-proposal-nullish-coalescing-operator":"7.4.4","@babel/plugin-syntax-flow":"7.2.0","@babel/plugin-transform-flow-strip-types":"7.4.4","@babel/preset-env":"7.6.2","@babel/preset-react":"7.0.0","@babel/register":"7.6.2","@crossroads-loyalty-solutions/eslint-config-xo":"0.2.8","@testing-library/react":"9.3.0","ava":"2.4.0","cross-env":"6.0.3","flow-bin":"0.109.0","jsdom":"15.1.1","jsdom-global":"3.0.2","ninos":"3.0.0","nodemon":"1.19.3","npm-run-all":"4.1.5","nyc":"14.1.1","react":"16.10.2","react-dom":"16.10.2","rollup":"1.23.1","rollup-plugin-babel":"4.3.3","xo":"0.25.3"},"peerDependency":{"react":">=16.8.0"},"publishConfig":{"access":"public"},"ava":{"babel":{"testOptions":{"presets":[["@babel/preset-react"],["@babel/preset-env",{"loose":true,"shippedProposals":true,"targets":{"node":"current","firefox":"50","ie":"11"},"exclude":["transform-typeof-symbol"]}]],"plugins":[["@babel/plugin-transform-flow-strip-types"]]}},"files":["**/*.test.js"],"sources":["src/**/*.js","**/src/**/*.js"],"require":["./test/_register","jsdom-global/register"],"powerAssert":true},"xo":{"envs":["node","browser"],"extends":["@crossroads-loyalty-solutions/eslint-config-xo"],"ignores":["dist","rollup.config.js"],"overrides":[{"files":"test/*.js","rules":{"ava/use-test":"off","flowtype/require-parameter-type":"off","flowtype/require-return-type":"off","flowtype/no-unused-expressions":"off","no-unused-expressions":"off","max-len":["warn",140,{"ignoreStrings":true}]}}]},"gitHead":"0a256f54507a608cf6aebb531c8ba1374f3f4110","bugs":{"url":"https://github.com/crossroads-loyalty-solutions/formaggio/issues"},"homepage":"https://github.com/crossroads-loyalty-solutions/formaggio#readme","_id":"@crossroads-loyalty-solutions/formaggio@0.2.1","_nodeVersion":"12.11.0","_npmVersion":"6.11.3","dist":{"integrity":"sha512-RdRN18VHvBZ6TPrJpIvJ7lUwfVnTv6AG0gsX5zhDQx08yBrWTwismyfyJnh09XwQ2YQKSRYK/aAd3uQtMb49Bg==","shasum":"dc8bb6133a20c910a5b55292c0a8448edb7e738c","tarball":"https://registry.npmjs.org/@crossroads-loyalty-solutions/formaggio/-/formaggio-0.2.1.tgz","fileCount":25,"unpackedSize":100911,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdmxItCRA9TVsSAnZWagAAGXIQAI89KRXEPd4BtXJTQv0n\n3U/QL/wV4GYEubQD8mi4BRoytQx3Q01ILLExmLfs4UlgEewEooTOGOocoetx\ntATBot8/bAYmCmAQmwY6TWqcJV8DK+PX8p6XGIJc2OKDb2xcV/YfP3l0tx3A\nEyjHsl9OK/J1KJL6ppfDXivyR7VabfJc1B5n8bf3Ylje9XH8uTGc07WBiUxy\nuBbsCPO6ycNGb8RubCuLXuZ/dtg5i7HOzFJKI1gZ9p63eKm9l8wZWuGu0O8r\ng7EvwyfiZRO6ZNN+wWlz19xWl1W9bAbMnACu5Sct7NcsZWAqS0JX7OdYbB+6\nVVC+MZLzQHH/Vbk3qErXnP9fwcI1iX67wehYOuWgsOzJciF36mWKRarN/WJY\nQFPJuPrcc2n1Pj7jqvzMSMzncPmuN8RFU19gSc9ecnaGm7iSCpFXnagbc/JF\n6b4ZIzXG81y4F54DCaHzUMt8FEjxSQo6DRvET/enSVX/CNKB0uOB7/Cc30os\n7isPXVzNOwqW2OiEh2Zj+Npi5nydGJzxN9ncV6oPH4K5JR0lRb6TLnH6TLd/\n0UjodgPMIs6aobkyrHJOlIaqXqLOTZ/LT/mQRaQ+rDsn8ec/5tjsF2DNhTLF\ntWVgvrdHp0GnrLdKzXaveb5ns8qDdXAxn//NrzRNf0CDz1V8Pc1OVCly8R6s\nRuvM\r\n=xH0D\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC+KmAs7T45rrsDO50cmE/9ekcrLGbndjem26dK3dfmTAIhAPjzTdfXslart8+SmaNssc5DhM8VQAKu6+pVcPo0hgCA"}]},"maintainers":[{"email":"carlssonloke@gmail.com","name":"lokecarlsson"},{"email":"m4rw3r@gmail.com","name":"m4rw3r"},{"email":"peterasplund0@gmail.com","name":"peterasplund"},{"email":"oscar@crossroads.se","name":"poggen"}],"_npmUser":{"name":"m4rw3r","email":"m4rw3r@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/formaggio_0.2.1_1570443820329_0.85501102602101"},"_hasShrinkwrap":false},"0.2.2":{"name":"@crossroads-loyalty-solutions/formaggio","version":"0.2.2","description":"The cheesy form library","keywords":["form","react"],"authors":["Martin Wernstål <m4rw3r@gmail.com>","Peter Asplund <peterasplund0@gmail.com>"],"license":"MIT","repository":{"type":"git","url":"git+ssh://git@github.com/crossroads-loyalty-solutions/formaggio.git"},"module":"dist/esm/index.js","main":"dist/cjs/index.js","sideEffects":false,"scripts":{"build":"npm-run-all build:*","build:rollup":"rollup -c rollup.config.js","build:flow":"cp build/stub/flow.js dist/esm/index.js.flow && cp build/stub/flow.js dist/cjs/index.js.flow","coverage":"nyc --reporter=html ava --verbose","clean":"rm -rf dist","distclean":"rm -rf package-lock.json node_modules dist","flow":"flow check","prepack":"npm run clean && npm run test && npm run build","test":"npm-run-all test:*","test:flow":"flow status","test:ava":"ava --verbose","test:xo":"xo","watch":"nodemon -w src -w test --exec \"npm run -q test || true\""},"dependencies":{},"devDependencies":{"@babel/core":"7.7.2","@babel/plugin-proposal-nullish-coalescing-operator":"7.4.4","@babel/plugin-syntax-flow":"7.7.0","@babel/plugin-transform-flow-strip-types":"7.6.3","@babel/preset-env":"7.7.1","@babel/preset-react":"7.7.0","@babel/register":"7.7.0","@crossroads-loyalty-solutions/eslint-config-xo":"0.2.8","@testing-library/react":"9.3.2","ava":"2.4.0","cross-env":"6.0.3","flow-bin":"0.112.0","jsdom":"15.2.1","jsdom-global":"3.0.2","ninos":"3.0.0","nodemon":"1.19.4","npm-run-all":"4.1.5","nyc":"14.1.1","react":"16.12.0","react-dom":"16.12.0","rollup":"1.27.2","rollup-plugin-babel":"4.3.3","xo":"0.25.3"},"peerDependency":{"react":">=16.8.0"},"publishConfig":{"access":"public"},"xo":{"envs":["node","browser"],"extends":["@crossroads-loyalty-solutions/eslint-config-xo"],"ignores":["dist","rollup.config.js"],"overrides":[{"files":"test/*.js","rules":{"ava/use-test":"off","flowtype/require-parameter-type":"off","flowtype/require-return-type":"off","flowtype/no-unused-expressions":"off","no-unused-expressions":"off","max-len":["warn",140,{"ignoreStrings":true}]}}]},"gitHead":"c8f3b34104347cf7a9533eae4d352386404fe923","bugs":{"url":"https://github.com/crossroads-loyalty-solutions/formaggio/issues"},"homepage":"https://github.com/crossroads-loyalty-solutions/formaggio#readme","_id":"@crossroads-loyalty-solutions/formaggio@0.2.2","_nodeVersion":"13.0.1","_npmVersion":"6.12.0","dist":{"integrity":"sha512-PyH9nUfwo0RGZdcPaBARKxbYBAPmTvgx1breRsTwNk2mDqfRmKd5NiCbXNkfJVXohUbbLLNll8LEBSBlA6V5+Q==","shasum":"38e355baed3d8c03d34f830b75f1169eb2633630","tarball":"https://registry.npmjs.org/@crossroads-loyalty-solutions/formaggio/-/formaggio-0.2.2.tgz","fileCount":42,"unpackedSize":103749,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd08OyCRA9TVsSAnZWagAA8aQP/2ndcB6Jrjy0KISFYdHu\nPr9afdtGyD7WVMJF4RDu+qpXubb25RqWcLbVmw6C/jUSy6bBKIFu+zYUt1ZW\nMYE0dvQ807Z6BW/mNH279ZsEBN5fTJvs/LmMIxG1OoGVMpkyiQKxHjURPdFy\neucARKoFgTRMPWxXWvUf19ArygcJEx/2buq3m8rmGB3h2POzlEsBBJBxZxpo\n3mrGouBerBVwqIO4YRzHgD7ZLlW3xvp1ZGq2FJit0NcX20oHGjD1NColHXrI\ng4fecgUdaGSM6a8xGMPgh1mjwEbSD6e03lJXnOz+ydXwLD7D+Sv2l2Ai5zU+\nY8fTIJwKj76HL0w2PnL/ysC9NzmztNWtoKW9Eq6c3BmR+Xd2zvogSuKaRcX9\nLDl+bk4TMHGhE607/90SWuTfUUSda/WreM8BDfMYAQEq8PG9wSFfhHjpVW4h\nivMWwtUqXPPbhhZQmtVzK3CUIc+SKZDgJ+0xwNA0jPyNXb4dJAdct7VdI+P+\n/2ZS7baAMwGKyQp7xARKEzokGvUjXk0Oi2uIt5M5prkatNaITK9IVy54gzuy\n9m0fLhZEf0ecyTAi1w9b+f1YAmIt22wEYKPOs2yHNNyBJhrzjq70Bp3+YEuF\nTT0OWVihtvHu/6ucsifub2G088tq7XYq1RusfxEnoEGllMtvXaQFaT7uB8MJ\n3Hfs\r\n=f5Xu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC4/SlZudlUoaJLNJRFQlxpfhEYlvorGFiJUdQePbGYBQIhALyDWFNM5MgCxWvqnD06dZ075OWMhsBu0oZJm+dGfcOc"}]},"maintainers":[{"email":"carlssonloke@gmail.com","name":"lokecarlsson"},{"email":"m4rw3r@gmail.com","name":"m4rw3r"},{"email":"peterasplund0@gmail.com","name":"peterasplund"},{"email":"oscar@crossroads.se","name":"poggen"}],"_npmUser":{"name":"m4rw3r","email":"m4rw3r@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/formaggio_0.2.2_1574159282459_0.850101769552063"},"_hasShrinkwrap":false}},"time":{"created":"2019-09-20T13:10:00.781Z","0.1.0":"2019-09-20T13:10:01.180Z","modified":"2022-04-05T01:52:49.192Z","0.2.0":"2019-09-22T20:24:24.711Z","0.2.1":"2019-10-07T10:23:40.457Z","0.2.2":"2019-11-19T10:28:02.594Z"},"maintainers":[{"email":"oscar@crossroads.se","name":"poggen"},{"email":"m4rw3r@gmail.com","name":"m4rw3r"},{"email":"carlssonloke@gmail.com","name":"lokecarlsson"}],"description":"The cheesy form library","homepage":"https://github.com/crossroads-loyalty-solutions/formaggio#readme","keywords":["form","react"],"repository":{"type":"git","url":"git+ssh://git@github.com/crossroads-loyalty-solutions/formaggio.git"},"bugs":{"url":"https://github.com/crossroads-loyalty-solutions/formaggio/issues"},"license":"MIT","readme":"![Formaggio Logo](https://raw.githubusercontent.com/crossroads-loyalty-solutions/formaggio/master/doc/logo_primary.svg?raw=true&sanitize=true)\n<p align=\"center\">The cheesy form library 🧀</p>\n\n[![npm bundle size](https://img.shields.io/bundlephobia/minzip/@crossroads-loyalty-solutions/formaggio.svg)](https://bundlephobia.com/result?p=@crossroads-loyalty-solutions/formaggio)\n[![Dependencies](https://img.shields.io/david/crossroads-loyalty-solutions/formaggio.svg)](https://www.npmjs.com/package/@crossroads-loyalty-solutions/formaggio)\n[![Build Status](https://travis-ci.org/crossroads-loyalty-solutions/formaggio.svg?branch=master)](https://travis-ci.org/crossroads-loyalty-solutions/formaggio)\n[![Codecov](https://img.shields.io/codecov/c/gh/crossroads-loyalty-solutions/formaggio)](https://codecov.io/gh/crossroads-loyalty-solutions/formaggio)\n![License](https://img.shields.io/npm/l/@crossroads-loyalty-solutions/formaggio)\n[![npm](https://img.shields.io/npm/v/@crossroads-loyalty-solutions/formaggio)](https://www.npmjs.com/package/@crossroads-loyalty-solutions/formaggio)\n[![Greenkeeper badge](https://badges.greenkeeper.io/crossroads-loyalty-solutions/formaggio.svg)](https://greenkeeper.io/)\n\n## Installation\n\n```bash\nnpm i @crossroads-loyalty-solutions/formaggio\n```\n\n## Forms\n\n### Example\n\n```javascript\nimport {\n  Form,\n  isEmail,\n  required,\n  rules,\n  useFormField,\n} from \"@crossroads-loyalty-solutions/formaggio\";\n\nconst TextInput = ({ name }) => {\n  const { dirty, errors, submitted, inputProps } = useFormField(name);\n  const className = (dirty || submitted) && errors.length ?\n    \"form__text-input form__text-input--error\" :\n    \"form__text-input\";\n\n  return <input type=\"text\" className={className} {...inputProps} />;\n};\n\nconst validateMyForm = rules([\n  required(\"name\"),\n  required(\"email\"),\n  isEmail(\"email\")\n]);\n\nconst MyForm = () => {\n  const [data, setData] = useState({});\n  const errors = validateMyForm(data);\n\n  return (\n    <Form\n      noValidate\n      name=\"my-form\"\n      value={data}\n      onChange={setData}\n      onSubmit={console.log}\n    >\n      <TextInput name=\"name\" />\n      <TextInput name=\"email\" />\n\n      <button type=\"submit\">Submit</button>\n    </Form>\n  );\n};\n```\n\n### `useFormField` hook\n\nThe library provided React Hook `useFormField` is used to provide access to the\nstate for the given field name which include:\n\n * `dirty: boolean`: True if the user has modified this field.\n * `submitted: boolean`: True if the user has tried to submit the form.\n * `errors: Array<ValidationError>`: List of errors which apply to this field.\n * `inputProps: Object`: Properties to apply to the `<input />` element.\n\nThe `inputProps` object contains `id`, `name`, `value` and an `onChange`\ncallback, the idea is to spread the properties into an `<input />`.\n\n### `Form` component\n\nThe `<Form />` component provides the form state to any nested uses of\n`useFormField`. It will wrap all its children in a `<form />` tag.\n\nProperties: \n\n * `errors?: Array<ValidationErrors>`: Any validation errors for this form.\n * `name?: string`: This string will prefix any `name` and `id` properties\n   in nested uses of `useFormField`.\n * `onChange: (FormData) => void`: Callback for when the form data\n   changes, these changes are performed immutably.\n * `onError?: (SyntheticEvent<HTMLFormElement>, Array<ValidationError>, FormData) => void`:\n   Callback fired instead of `onSubmit` if there is an error in the form when\n   the user tries to submit the form.\n * `onSubmit: (SyntheticEvent<HTMLFormElement>, FormData) => void`: Callback\n   fired with the current form data when the user submits the form.\n * `value: FormData`: The data for the form.\n\nAny properties not listed above will be propagated to the `<form />` element.\n\nTo properly handle validation and `onChange` events in nested `<input />`\nelements it is recommended to set the property `noValidate` on `<Form />`.\n\n## Validation\n\nValidation is done using functions which take a value to validate and return\na list of errors. The validation functions are created using rule-constructors\nor combinators.\n\n### Example\n\n```javascript\nimport {\n  conditional,\n  isEmail,\n  lengthGt,\n  required,\n  rules,\n} from \"@crossroads-loyalty-solutions/formaggio\";\n\nconst validator = rules([\n  isEmail(\"email\"),\n  required(\"firstname\"), \n  required(\"lastname\"),\n  conditional(s => s.password, lengthGt(\"password\", 6)),\n]);\n\nconst data = {\n  firstname: \"foo\",\n  lastname: \"bar\",\n  email: \"foo@bar\",\n};\n\nconst errors = validator(data);\n\nconsole.log(errors); // [{ error: \"EMAIL\", field: \"email\" }]\n```\n\n### Rules\n\nValidation rules are constructed in a declarative manner using rule constructors\nand rule combinators.\n\nA basic validator has the following type, where `T` is the type to be validated:\n\n```javascript\ntype Validator<T> = (t: T) => Array<ValidationError>;\n```\n\n### Errors\n\nErrors are objects containing an error code and a field path. The field path is\npreserved through combinators and is used to determine which field caused the\nspecific error. Additional properties are allowed but are error-specific.\n\n```javascript\ntype ValidationError = {\n  error: string,\n  field: string,\n};\n","readmeFilename":"README.md"}