{"_id":"@ankur_novatree/react-admin-import-csv","_rev":"5-58f1e0297c8ead4a2891837b4ca3f354","name":"@ankur_novatree/react-admin-import-csv","dist-tags":{"latest":"1.0.4"},"versions":{"1.0.0":{"name":"@ankur_novatree/react-admin-import-csv","version":"1.0.0","description":"CSV import button for react-admin","repository":{"type":"git","url":"git+https://github.com/ankur-novatree/react-admin-import-csv.git"},"homepage":"https://github.com/ankur-novatree/react-admin-import-csv","author":{"name":"Ben Winding"},"license":"MIT","private":false,"main":"lib/index","module":"esm/index.js","scripts":{"build":"yarn run build-cjs && yarn run build-esm","build-watch":"yarn build-for-demo -w","build-for-demo":"rimraf ./demo/src/build-watch && tsc --outDir demo/src/build-watch","build-cjs":"rimraf ./lib && tsc","build-esm":"rimraf ./esm && tsc --outDir esm --module es2015","test":"jest --collectCoverage","test:watch":"jest --watch","test:silent":"npx jest 2>&1 | grep '●'","test:badges":"jest-coverage-badges","clean":"rimraf dist"},"peerDependencies":{"react-admin":"3.x"},"dependencies":{"papaparse":"5.x","ramda":"^0.27.0"},"devDependencies":{"@types/jest":"24.0.11","@types/node":"11.12.0","@types/papaparse":"4.x","@types/ramda":"0.27.34","@types/react":"16.8.10","@types/react-dom":"16.8.3","@types/react-redux":"^7.1.7","jest-coverage-badges":"^1.1.2","ra-data-fakerest":"^3.2.2","ra-language-chinese":"^2.0.5","ra-language-russian":"^3.13.5","ra-language-spanish":"1.x","react":"16.8.6","react-admin":"3.10.x","react-dom":"16.8.3","react-scripts":"^3.4.3","source-map-loader":"^0.2.4","ts-jest":"^24.x.x","typescript":"3.x"},"bugs":{"url":"https://github.com/ankur-novatree/react-admin-import-csv/issues"},"directories":{"lib":"lib"},"gitHead":"6b335e2a5b7f776724fc1086a45b15a5d6168702","_id":"@ankur_novatree/react-admin-import-csv@1.0.0","_nodeVersion":"14.17.3","_npmVersion":"6.14.13","dist":{"integrity":"sha512-j/PtFKvhyRGypOGGvfbJfhf6Kh1eLMLdq1WYaZ5RptyfTS7uuOiyqNpjlCPofySSTK6fGK3llWYf4YoCpbLHcg==","shasum":"01565935a74df54c0af0d71ae9541326e179b5a5","tarball":"https://registry.npmjs.org/@ankur_novatree/react-admin-import-csv/-/react-admin-import-csv-1.0.0.tgz","fileCount":151,"unpackedSize":279689,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhONQHCRA9TVsSAnZWagAA+v8P/17wDKK7jguTK/isKIDf\nZx0Hk65ImE+XDx9+GvSmCWivLXzVUcmFA0g0DZMbknpWrFQEWHjBiaQk+9Pj\nVPSB9tEeT/3WhMrZJNG+gtQtNxNEKTx8Z22V6YUjhGAHIcYemifWE2OASgjF\nQkMRj8Y2axNx2MSSJm06XwmYElgX/+r3/F1G5k+WrQ6BWoFEFFjr8fKhLPxb\nEo2KNvTyd80O1L+gjJX8YUgKvdPzKsXypXe7cDE2BXg0Dr9iedlUwgB3wcsp\nY6A0QJXL9MBsNjkbo87Ct8IKYGAJvQ3Ewd38a4qnfBSkGBGSohadM65KAwx4\naiXMY4vOPoYuQB5RGmq8MMIf/lCNKFfwSWfvKCCuUHsOSu6EqJgCGhdiyaVl\nBH/ZCLlFKjq7ckJZF87pJH00mq/mMv0hUfmRQ4XKGR5r6BRcX3Lq54aVo5yC\n9Xv0kzxtzKAIryx8t+77HhNywyDhsF31BK8z+yNmkDpa//w8Rg8QYKk18Ma5\nG/GJGpLgudD5mkVI+IrnE75F55/8bxRX1fUOwhSdzJzyTthtjdvxM4gfu66M\nmfCQ3JK22NQqCja+uBcRZZwTLfFCOnkw/aYfqKeufq+RJ2VuOIles4aypAlJ\nQUrrLYwJJyhQf+PEnMNXMZZfWp8QJH0Jq/mj0TTB3UvogUwSN2FmToLWwT3G\n7Fe0\r\n=vgRs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFL6b3wUDdXRBrsKATZN7zkmhueKaLC7zuqypRn3lHF7AiAOrPFvuQnSRlH8S9cWSPSAiSUb6c4vRhA6C3Y4lFvauw=="}]},"_npmUser":{"name":"ankur_novatree","email":"ankur@novatree.com"},"maintainers":[{"name":"ankur_novatree","email":"ankur@novatree.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-admin-import-csv_1.0.0_1631114247591_0.4941756892761848"},"_hasShrinkwrap":false},"1.0.1":{"name":"@ankur_novatree/react-admin-import-csv","version":"1.0.1","description":"CSV import button for react-admin","repository":{"type":"git","url":"git+https://github.com/ankur-novatree/react-admin-import-csv.git"},"homepage":"https://github.com/ankur-novatree/react-admin-import-csv","author":{"name":"Ben Winding"},"license":"MIT","private":false,"main":"lib/index","module":"esm/index.js","scripts":{"build":"yarn run build-cjs && yarn run build-esm","build-watch":"yarn build-for-demo -w","build-for-demo":"rimraf ./demo/src/build-watch && tsc --outDir demo/src/build-watch","build-cjs":"rimraf ./lib && tsc","build-esm":"rimraf ./esm && tsc --outDir esm --module es2015","test":"jest --collectCoverage","test:watch":"jest --watch","test:silent":"npx jest 2>&1 | grep '●'","test:badges":"jest-coverage-badges","clean":"rimraf dist"},"peerDependencies":{"react-admin":"3.x"},"dependencies":{"papaparse":"5.x","ramda":"^0.27.0"},"devDependencies":{"@types/jest":"24.0.11","@types/node":"11.12.0","@types/papaparse":"4.x","@types/ramda":"0.27.34","@types/react":"16.8.10","@types/react-dom":"16.8.3","@types/react-redux":"^7.1.7","jest-coverage-badges":"^1.1.2","ra-data-fakerest":"^3.2.2","ra-language-chinese":"^2.0.5","ra-language-russian":"^3.13.5","ra-language-spanish":"1.x","react":"16.8.6","react-admin":"3.10.x","react-dom":"16.8.3","react-scripts":"^3.4.3","source-map-loader":"^0.2.4","ts-jest":"^24.x.x","typescript":"3.x"},"bugs":{"url":"https://github.com/ankur-novatree/react-admin-import-csv/issues"},"directories":{"lib":"lib"},"gitHead":"7087cdb634767564e2618656bcb09850f608f082","_id":"@ankur_novatree/react-admin-import-csv@1.0.1","_nodeVersion":"14.17.3","_npmVersion":"6.14.13","dist":{"integrity":"sha512-vTttnzuCrTJM1MaEQyfu0hnXH2mdyap18gJdLfLUeTGjriflimtZFWtSk2yTVwsM4sVDXmMwJDl3vDEbAbiX6g==","shasum":"a61689e06a218d01c1e3874a53485311aa714d85","tarball":"https://registry.npmjs.org/@ankur_novatree/react-admin-import-csv/-/react-admin-import-csv-1.0.1.tgz","fileCount":151,"unpackedSize":280519,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhPZokCRA9TVsSAnZWagAAWGgP/jnRZnqFwVlE2lupL6q7\nHT+nPO6hBq++kDaMe1BgMkFwa8qtucS9dfMuUuLzRI159kL0v8DEq15GKwt0\nJ5kY5GnPOlJtnKyZnYpWEDH5iU9UlcqgLBzjYTVUQpprTs0KYL3GtxwL63/l\naDX5DEvWCpKHaYysFnKUEENqZ1nU+Eo7WAGDhMtoJeHcyNZRDJKyz51jBKdg\nfFhUz2lzvMbdW9fwiqxEUEqUIEjxYaAzyft8N1HDeTZwkk+vuHDqYdgrJ4jl\nWPLE4a0CaEXSWwjXf4/oJHHFmI0NmgbcfieBqVsw3XaAuOmdWDpqF7OWHQWf\nXH/of5c8AUd8l52wfJIg1cdML8WJ3c5dYZlji39d2Q9fLmh5dl4L/INflocB\ngjlbfBtD62ruaIGyfpReYTedybXdEwt/zWxZr2KZf2dKPXKEoziVpBottom6\nXKsi9ZaR07fH7ThJUzpj2B9QyqZL+ueN12KxVb0ND9JjpR6Gt/xBJtFke9HA\nA4SyoIGB7p0NENf6VIrJql7/zVIJhRN5AkugXrIU+0BAhAuUrLclJIPXjCA/\n+CuRfcIZ4nVzYeOSlz/VhCCIAS1Md8vw6aYgdgRiwBVoDWf+5Pv66ziTW8x1\n2hUPqwcdoD/ZvB5aReljfYHbMOOAX927xhpqJKYsAcQKqI2p9iPlSkp5b38v\niF0o\r\n=KSRF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH9L/of+1uft/wCZylafxESzbiAAB3NDb3Zf/4HzFC9tAiEAnZlgMfx49MLsTikzAGtzCEicL2ZND2uIiRTQ7lTPeB4="}]},"_npmUser":{"name":"ankur_novatree","email":"ankur@novatree.com"},"maintainers":[{"name":"ankur_novatree","email":"ankur@novatree.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-admin-import-csv_1.0.1_1631427108366_0.8844275903323975"},"_hasShrinkwrap":false},"1.0.2":{"name":"@ankur_novatree/react-admin-import-csv","version":"1.0.2","description":"CSV import button for react-admin","repository":{"type":"git","url":"git+https://github.com/ankur-novatree/react-admin-import-csv.git"},"homepage":"https://github.com/ankur-novatree/react-admin-import-csv","author":{"name":"Ben Winding"},"license":"MIT","private":false,"main":"lib/index","module":"esm/index.js","scripts":{"build":"yarn run build-cjs && yarn run build-esm","build-watch":"yarn build-for-demo -w","build-for-demo":"rimraf ./demo/src/build-watch && tsc --outDir demo/src/build-watch","build-cjs":"rimraf ./lib && tsc","build-esm":"rimraf ./esm && tsc --outDir esm --module es2015","test":"jest --collectCoverage","test:watch":"jest --watch","test:silent":"npx jest 2>&1 | grep '●'","test:badges":"jest-coverage-badges","clean":"rimraf dist"},"peerDependencies":{"react-admin":"3.x"},"dependencies":{"papaparse":"5.x","ramda":"^0.27.0"},"devDependencies":{"@types/jest":"24.0.11","@types/node":"11.12.0","@types/papaparse":"4.x","@types/ramda":"0.27.34","@types/react":"16.8.10","@types/react-dom":"16.8.3","@types/react-redux":"^7.1.7","jest-coverage-badges":"^1.1.2","ra-data-fakerest":"^3.2.2","ra-language-chinese":"^2.0.5","ra-language-russian":"^3.13.5","ra-language-spanish":"1.x","react":"16.8.6","react-admin":"3.10.x","react-dom":"16.8.3","react-scripts":"^3.4.3","source-map-loader":"^0.2.4","ts-jest":"^24.x.x","typescript":"3.x"},"bugs":{"url":"https://github.com/ankur-novatree/react-admin-import-csv/issues"},"directories":{"lib":"lib"},"gitHead":"15dde8266c755734449480f1d7d38d510973c2d6","_id":"@ankur_novatree/react-admin-import-csv@1.0.2","_nodeVersion":"14.17.3","_npmVersion":"6.14.13","dist":{"integrity":"sha512-yu4DV+PL560cp4Dsiy2d/vsX+MnnwicsI7lZFE4ufPeXzxkV2hqrmPOHBq4o8OozJFDYwRg0pKOA3BI/Aehp1Q==","shasum":"1839255877cdfe8084a10490040e6dc571af00eb","tarball":"https://registry.npmjs.org/@ankur_novatree/react-admin-import-csv/-/react-admin-import-csv-1.0.2.tgz","fileCount":151,"unpackedSize":282619,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhPg1GCRA9TVsSAnZWagAAN70P/A/EZdZt9SqxyjtxhtbP\ngf+lME318OK/jnGMTL6oWtRsBqmUH0Mf8jgTJOdhsSSNUxCcFsw3oUKiXInO\n5IqizZIXwmlVGcJcOi/vr4a4XwVpVX+oRFu/D6GxR+HZrwAysyJD5j8cmggU\ncBs/XqYQYI6QeWpmPruLKU8ZO0baF7Yr3jLQj+PRCe6xvcyea1PSG50WnXGM\nDJ061NMlWlnf/eD3BvQ1z+jqg4MVkz4fhoRvZP+AkUQwXT7Htcp4is/Rqu1B\nLv2xV21tr26zBeH1mbNKGQ/03rNBpHdZxcDM0dD1bU+LQkfNsT2hL7jWv6bD\n+S02IFnc7TCAWiLjWpV6Eg8lUiqY3VtPkFtb1ffk9NaGN0h3b6nEyHzHUCur\nkBnkLgfLZSgXsMQQ/AszZkLvOGZ8KwjT1MxM+C4XT3egO9s4zosbngWwHpki\na5ur/slmgBOYwkb0ZxFYkPTnhO7b+MJr2LtDX61gPpLYbgzgFbv9vGjTcfid\n3Qdc82by8b9td9NXcXZUPQRC9NLskEvxciehGgXLkQ/NOCAFqhe4MVQYooZD\nrODIH1+HBR6R7Xn7PXP0+2oAp2VKQQUYZugahW2T9lH5DHQRfTcSGrq6x3RA\nO1PQb/6Lpwn77pYGyyGrOfsS8MNVntv0j5Ar7nGdPNV7bhhMizqma6nAkmOL\nmnhh\r\n=KIFG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDL7SJNYvU92eXNdJT/DGjXdeYKZrX2qi1MGETuitg2qAIgR5FMajSg2HjyEqNDTgj15UxVbnSB9Swy1JAjuwaT2s8="}]},"_npmUser":{"name":"ankur_novatree","email":"ankur@novatree.com"},"maintainers":[{"name":"ankur_novatree","email":"ankur@novatree.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-admin-import-csv_1.0.2_1631456582480_0.3946303493830634"},"_hasShrinkwrap":false},"1.0.3":{"name":"@ankur_novatree/react-admin-import-csv","version":"1.0.3","description":"CSV import button for react-admin","repository":{"type":"git","url":"git+https://github.com/ankur-novatree/react-admin-import-csv.git"},"homepage":"https://github.com/ankur-novatree/react-admin-import-csv","author":{"name":"Ben Winding"},"license":"MIT","private":false,"main":"lib/index","module":"esm/index.js","scripts":{"build":"yarn run build-cjs && yarn run build-esm","build-watch":"yarn build-for-demo -w","build-for-demo":"rimraf ./demo/src/build-watch && tsc --outDir demo/src/build-watch","build-cjs":"rimraf ./lib && tsc","build-esm":"rimraf ./esm && tsc --outDir esm --module es2015","test":"jest --collectCoverage","test:watch":"jest --watch","test:silent":"npx jest 2>&1 | grep '●'","test:badges":"jest-coverage-badges","clean":"rimraf dist"},"peerDependencies":{"react-admin":"3.x"},"dependencies":{"papaparse":"5.x","ramda":"^0.27.0"},"devDependencies":{"@types/jest":"24.0.11","@types/node":"11.12.0","@types/papaparse":"4.x","@types/ramda":"0.27.34","@types/react":"16.8.10","@types/react-dom":"16.8.3","@types/react-redux":"^7.1.7","jest-coverage-badges":"^1.1.2","ra-data-fakerest":"^3.2.2","ra-language-chinese":"^2.0.5","ra-language-russian":"^3.13.5","ra-language-spanish":"1.x","react":"16.8.6","react-admin":"3.10.x","react-dom":"16.8.3","react-scripts":"^3.4.3","source-map-loader":"^0.2.4","ts-jest":"^24.x.x","typescript":"3.x"},"bugs":{"url":"https://github.com/ankur-novatree/react-admin-import-csv/issues"},"directories":{"lib":"lib"},"gitHead":"7f30a547dc945e06d1c9bc9dda130bada0c1f994","_id":"@ankur_novatree/react-admin-import-csv@1.0.3","_nodeVersion":"14.17.3","_npmVersion":"6.14.13","dist":{"integrity":"sha512-p80ayq2qtf/WnGi3GEavwoTf+9pHZmOol/bA99Kqu/FWS7fkNS9z1r+CaTZNanX+XOwSNLZ9uwkkN8uIAFksXQ==","shasum":"9574a242cb3691d26020c0e45fd82f99030bb438","tarball":"https://registry.npmjs.org/@ankur_novatree/react-admin-import-csv/-/react-admin-import-csv-1.0.3.tgz","fileCount":151,"unpackedSize":297165,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhPjk3CRA9TVsSAnZWagAAptQP/RGuOnbuZ2gZjXTvIGV/\n1NV4TfCsWJjy/j99lznKvlpkHLuu1PgGy6sft63WDBuMlg+KsskWkTY1odqT\nnjxdGxQCK4efw/vJXKomHGSwN/GfzljPpYizIvz5pwNpUZ2yTfPacg+vRtqv\nsWKFJilNyNATrMaE0H1wIXdVIrzZFFJiBe1UcGdtFp4KmeLkmTR4vJ0xlgbK\n5dl0NDMUUkdZstKaUfE3VldFVS3TbMcdheKGMCQW108FZhqIHifPTaeIGmOH\nBi36EXVanRhSYWvWqktb8ODuHQLIbTIrhIVKtRWIEh7uw8ATd0R6P0E5dlI6\nkQtkORB2zqfJVSXPmnky51/BSlGCeWiEyvLI7b50BcYzymdWJkG4j41yqXK8\nuz6pHEukcmyjs34V1oWuwLUrExYvbgCzAldwJiBYrcV4iyqbR0vFrvCLFZfX\nZLek5s8vqHLjnQGXrIrWdO2kcRUBGVibQI7Y+5pFVQ2QkZb4b9eJIENl2Jz0\nnf8fSC1own+JRN/RQdHXh3uoND7ca89d3xPnNhyaMt0Ld7O2ApQdSeYHcMVf\n6ma/bsJRf9htH41xkeLvPBJcjiQzkqMux07iBtERjbHZBPjFEvO/4XSOjMc6\nqv6J7mHC3A5Y0XXGejx3HyC2VmqjohNGeGOpZq7f5BtxQCgZDg7A+2T4oxYm\nFqyF\r\n=Baj7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGSgKl2eDzSDcluQBisCoLqkqscVxdb2NX0oq+J/bVI1AiEAmLy5RePY1gRd5MRqELZRKzkNOSvV2w8hKHRxloRSRoI="}]},"_npmUser":{"name":"ankur_novatree","email":"ankur@novatree.com"},"maintainers":[{"name":"ankur_novatree","email":"ankur@novatree.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-admin-import-csv_1.0.3_1631467830948_0.7760780269400227"},"_hasShrinkwrap":false},"1.0.4":{"name":"@ankur_novatree/react-admin-import-csv","version":"1.0.4","description":"CSV import button for react-admin","repository":{"type":"git","url":"git+https://github.com/ankur-novatree/react-admin-import-csv.git"},"homepage":"https://github.com/ankur-novatree/react-admin-import-csv","author":{"name":"Ben Winding"},"license":"MIT","private":false,"main":"lib/index","module":"esm/index.js","scripts":{"build":"yarn run build-cjs && yarn run build-esm","build-watch":"yarn build-for-demo -w","build-for-demo":"rimraf ./demo/src/build-watch && tsc --outDir demo/src/build-watch","build-cjs":"rimraf ./lib && tsc","build-esm":"rimraf ./esm && tsc --outDir esm --module es2015","test":"jest --collectCoverage","test:watch":"jest --watch","test:silent":"npx jest 2>&1 | grep '●'","test:badges":"jest-coverage-badges","clean":"rimraf dist"},"peerDependencies":{"react-admin":"3.x"},"dependencies":{"papaparse":"5.x","ramda":"^0.27.0"},"devDependencies":{"@types/jest":"24.0.11","@types/node":"11.12.0","@types/papaparse":"4.x","@types/ramda":"0.27.34","@types/react":"16.8.10","@types/react-dom":"16.8.3","@types/react-redux":"^7.1.7","jest-coverage-badges":"^1.1.2","ra-data-fakerest":"^3.2.2","ra-language-chinese":"^2.0.5","ra-language-russian":"^3.13.5","ra-language-spanish":"1.x","react":"16.8.6","react-admin":"3.10.x","react-dom":"16.8.3","react-scripts":"^3.4.3","source-map-loader":"^0.2.4","ts-jest":"^24.x.x","typescript":"3.x"},"bugs":{"url":"https://github.com/ankur-novatree/react-admin-import-csv/issues"},"directories":{"lib":"lib"},"gitHead":"0a3f8f0e71114350e15215fc2f5d9bec450f27ee","_id":"@ankur_novatree/react-admin-import-csv@1.0.4","_nodeVersion":"14.17.3","_npmVersion":"6.14.13","dist":{"integrity":"sha512-bzivd+NpfmtUfVU74ficYx79EcfK4a4AN8K2RNRX4lcOytZi5nV82eGwpzlRgIskqwmGGrHJeJJEcnY4LEVyiA==","shasum":"5f48df941bb613e33451a2a1e11c3f0e50cd1f90","tarball":"https://registry.npmjs.org/@ankur_novatree/react-admin-import-csv/-/react-admin-import-csv-1.0.4.tgz","fileCount":151,"unpackedSize":297309,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhPj2XCRA9TVsSAnZWagAAlAoQAKBiNWng/fGo1OIZgTWO\nCHSkoMeBu0NO8bdBT8gD5nUeb9qRj8/3vd170AZ3k7/1Y9P3ghb3wacSXjd0\nrvZbjizedJ1hNAVwijMwBIuNYvd0DtzLiPqFOBcv0JWl7sVJxwjylvHXQXKC\nRxq2Ipef/bPOy1m6/6fSduK2qozdl/4Kt3VfT2yP78yunEBK5GbsXFVPq5UL\ngz98pO6OQpon8DwzrbAUBLVUzbAgCkmA4177OB7rQ8MziUPcxs8avnvlLxES\nka3BZtswev5dcrej7C4Q6PUNWHMh6TGX7PHUiZDWKYqEhnokrxR/NZPftGUq\nGHYgq/U5id9zXOlXQRqX+0G6TyDH7bozgm1JCnA/igsVEkT8Rd4VXZNtmSfJ\n+UIy7sJvh/mPFekgg9sVDMOgINZeBJo4Kb8KWj8YYUtdhfytDbuyo5OoxHmu\nmOoayNS8at/H7MtTfDoM4V9DsQGopDe1Zj2wiu/eLvsw/lEI5xM/hkk7MgLI\nFJu0yNdPjeZhrBNR6MdlO4yih+AQkbyBZ//SJJEYDI5cxHuF4x4E/30j2iMa\nX8T4c8Dy33EYyKr7U8in8e95O4yqQv3qaP5GPdrIRH/Et02Y1WHGHrPGf/4C\nkvfkn46bRgHxwvO26H8iL1HrEhllTA1wtgylF21H7aD+pfJIkRssBAYdduOf\nTdEi\r\n=XdjO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG+we3QryO2sLw1i2vjC1jhcss+f6VG+AfEU8BGKxUuJAiBzdC/rxzMZDuB3BNTZUVVpEKhjylTSBC1SKvr7byqvqg=="}]},"_npmUser":{"name":"ankur_novatree","email":"ankur@novatree.com"},"maintainers":[{"name":"ankur_novatree","email":"ankur@novatree.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-admin-import-csv_1.0.4_1631468950920_0.23153708114304017"},"_hasShrinkwrap":false}},"time":{"created":"2021-09-08T15:17:27.538Z","1.0.0":"2021-09-08T15:17:27.820Z","modified":"2022-04-04T14:13:45.806Z","1.0.1":"2021-09-12T06:11:48.559Z","1.0.2":"2021-09-12T14:23:02.663Z","1.0.3":"2021-09-12T17:30:31.123Z","1.0.4":"2021-09-12T17:49:11.129Z"},"maintainers":[{"name":"ankur_novatree","email":"ankur@novatree.com"}],"description":"CSV import button for react-admin","homepage":"https://github.com/ankur-novatree/react-admin-import-csv","repository":{"type":"git","url":"git+https://github.com/ankur-novatree/react-admin-import-csv.git"},"author":{"name":"Ben Winding"},"bugs":{"url":"https://github.com/ankur-novatree/react-admin-import-csv/issues"},"license":"MIT","readme":"# react-admin-import-csv\r\n\r\n<!-- [START badges] -->\r\n\r\n[![NPM Version](https://img.shields.io/npm/v/react-admin-import-csv.svg)](https://www.npmjs.com/package/react-admin-import-csv)\r\n[![Downloads/week](https://img.shields.io/npm/dm/react-admin-import-csv.svg)](https://www.npmjs.com/package/react-admin-import-csv)\r\n[![License](https://img.shields.io/npm/l/react-admin-import-csv.svg)](https://github.com/benwinding/react-admin-import-csv/blob/master/LICENSE)\r\n[![Github Issues](https://img.shields.io/github/issues/benwinding/react-admin-import-csv.svg)](https://github.com/benwinding/react-admin-import-csv)\r\n![Build and Publish](https://github.com/benwinding/react-admin-import-csv/workflows/Build%20and%20Publish/badge.svg)\r\n[![Code Coverage](https://raw.githubusercontent.com/benwinding/react-admin-import-csv/master/coverage/badge-lines.svg?sanitize=true)](./coverage/coverage-summary.json)\r\n\r\n<!-- [END badges] -->\r\n\r\nCSV import button for the [react-admin](https://github.com/marmelab/react-admin) framework.\r\n\r\n![image](https://user-images.githubusercontent.com/11782590/93659721-83622e00-fa87-11ea-90c4-650aecf60a6a.gif)\r\n\r\n## Usage\r\n\r\nSimply import the button into a toolbar, like so:\r\n\r\n### Basic Import Action Only\r\n\r\n```js\r\nimport {\r\n  Datagrid,\r\n  List,\r\n  TextField,\r\n  RichTextField,\r\n  TopToolbar,\r\n} from \"react-admin\";\r\nimport { ImportButton } from \"react-admin-import-csv\";\r\nimport { CreateButton } from \"ra-ui-materialui\";\r\n\r\nconst ListActions = (props) => {\r\n  const { className, basePath } = props;\r\n  return (\r\n    <TopToolbar className={className}>\r\n      <CreateButton basePath={basePath} />\r\n      <ImportButton {...props} />\r\n    </TopToolbar>\r\n  );\r\n};\r\nexport const PostList = (props) => (\r\n  <List {...props} filters={<PostFilter />} actions={<ListActions />}>\r\n    <Datagrid>\r\n      <TextField source=\"title\" />\r\n      <RichTextField source=\"body\" />\r\n      ...\r\n    </Datagrid>\r\n  </List>\r\n);\r\n```\r\n\r\n### Export/Import Actions\r\n\r\n```js\r\nimport {\r\n  Datagrid,\r\n  List,\r\n  TextField,\r\n  RichTextField,\r\n  TopToolbar,\r\n} from \"react-admin\";\r\nimport { ImportButton } from \"react-admin-import-csv\";\r\nimport { CreateButton, ExportButton } from \"ra-ui-materialui\";\r\n\r\nconst ListActions = (props) => {\r\n  const {\r\n    className,\r\n    basePath,\r\n    total,\r\n    resource,\r\n    currentSort,\r\n    filterValues,\r\n    exporter,\r\n  } = props;\r\n  return (\r\n    <TopToolbar className={className}>\r\n      <CreateButton basePath={basePath} />\r\n      <ExportButton\r\n        disabled={total === 0}\r\n        resource={resource}\r\n        sort={currentSort}\r\n        filter={filterValues}\r\n        exporter={exporter}\r\n      />\r\n      <ImportButton {...props} />\r\n    </TopToolbar>\r\n  );\r\n};\r\nexport const PostList = (props) => (\r\n  <List {...props} filters={<PostFilter />} actions={<ListActions />}>\r\n    <Datagrid>\r\n      <TextField source=\"title\" />\r\n      <RichTextField source=\"body\" />\r\n      ...\r\n    </Datagrid>\r\n  </List>\r\n);\r\n```\r\n\r\n## Configuration Options\r\n\r\n```typescript\r\n// All configuration options are optional\r\nconst config: ImportConfig = {\r\n  // Enable logging\r\n  logging?: boolean;\r\n  // Disable \"import new\" button\r\n  disableImportNew?: boolean;\r\n  // Disable \"import overwrite\" button\r\n  disableImportOverwrite?: boolean;\r\n  // A function to translate the CSV rows on import\r\n  preCommitCallback?: (action: \"create\" | \"overwrite\", values: any[]) => Promise<any[]>;\r\n  // A function to handle row errors after import\r\n  postCommitCallback?: (error: any) => void;\r\n  // Transform rows before anything is sent to dataprovider\r\n  transformRows?: (csvRows: any[]) => Promise<any[]>;\r\n  // Async function to Validate a row, reject the promise if it's not valid\r\n  validateRow?: (csvRowItem: any) => Promise<void>;\r\n  // Any option from the \"papaparse\" library\r\n  parseConfig?: {\r\n    // For all options see: https://www.papaparse.com/docs#config\r\n  }\r\n}\r\n<ImportButton {...props} {...config}/>\r\n```\r\n\r\n## Handle `id` fields which might be numbers\r\n\r\nUse the `paparse` configuration option [`dynamicTyping`](https://www.papaparse.com/docs)\r\n\r\n```js\r\nconst importOptions = {\r\n  parseConfig?: {\r\n    // For all options see: https://www.papaparse.com/docs#config\r\n    dynamicTyping: true\r\n  }\r\n}\r\n```\r\n\r\n## Reducing Requests (`.createMany()` and `.updateMany()`)\r\n\r\nYour dataprovider will need to implement the `.createMany()` method in order to reduce requests to your backend. If it doesn't exist, it will fallback to calling `.create()` on all items, as shown below (same goes for `.update()`):\r\n\r\n| Name              | Special Method     | Fallback Method |\r\n| ----------------- | ------------------ | --------------- |\r\n| Creating from CSV | .createMany()      | .create()       |\r\n| Updating from CSV | .updateManyArray() | .update()       |\r\n\r\n### Interfaces\r\n\r\nThe dataprovider should accept these param interfaces for the bulk create/update methods.\r\n\r\n```typescript\r\nexport interface UpdateManyArrayParams {\r\n  ids: Identifier[];\r\n  data: any[];\r\n}\r\nexport interface CreateManyParams {\r\n  data: any[];\r\n}\r\n```\r\n\r\n### Example Implementation\r\n\r\nHere's a quick example of how to implement `.createMany()` and `.updateMany()` in your dataprovider:\r\n\r\n``` js\r\n// Must be react-admin 3.x\r\nconst dataProviderWrapped = {\r\n  ...dataProvider, // <- Your data provider\r\n  createMany: async (resource, params) => {\r\n    const items = params.data;\r\n    // Handle create many here\r\n  },\r\n  updateMany: async (resource, params) => {\r\n    const items = params.data;\r\n    const idsToUpdate = params.ids;\r\n    // Handle update many here\r\n  }\r\n}\r\n\r\n// Pass into to other parts of the system as normal\r\nreturn (\r\n  <Admin dataProvider={dataProviderWrapped}\r\n```\r\n\r\n## Translation `i18n`\r\n\r\nThis package uses `react-admin`'s global i18n translation. Below is an example on how to set it up with this package.\r\n\r\nCurrent supported languages (submit a PR if you'd like to add a language):\r\n\r\n- English (en)\r\n- Spanish (es)\r\n- Chinese (zh)\r\n- German (de)\r\n- French (fr)\r\n- Russian (ru)\r\n\r\n**Example (i18nProvider)**\r\n\r\n```jsx\r\nimport { resolveBrowserLocale, useLocale } from \"react-admin\";\r\nimport polyglotI18nProvider from \"ra-i18n-polyglot\";\r\nimport englishMessages from \"ra-language-english\";\r\n// This package's translations\r\nimport * as domainMessages from \"react-admin-import-csv/lib/i18n\";\r\n\r\n// Select locale based on react-admin OR browser\r\nconst locale = useLocale() || resolveBrowserLocale();\r\n// Create messages object\r\nconst messages = {\r\n  // Delete languages you don't need\r\n  en: { ...englishMessages, ...domainMessages.en },\r\n  zh: { ...chineseMessages, ...domainMessages.zh },\r\n  es: { ...spanishMessages, ...domainMessages.es },\r\n};\r\n// Create polyglot provider\r\nconst i18nProvider = polyglotI18nProvider(\r\n  (locale) => (messages[locale] ? messages[locale] : messages.en),\r\n  locale\r\n);\r\n\r\n// declare prop in Admin component\r\n<Admin dataProvider={dataProvider} i18nProvider={i18nProvider}>\r\n```\r\n\r\n[More information on this setup here](https://marmelab.com/react-admin/Translation.html)\r\n\r\n# Development\r\n\r\nIf you'd like to develop on `react-admin-import-csv` do the following.\r\n\r\n## Local install\r\n\r\n- `git clone https://github.com/benwinding/react-admin-import-csv/`\r\n- `cd react-admin-import-csv`\r\n- `yarn`\r\n\r\n## Tests\r\n\r\n- `yarn test # in root folder`\r\n\r\n## Run demo\r\n\r\nOpen another terminal\r\n\r\n- `yarn build-watch`\r\n\r\nOpen another terminal and goto the `demo` folder\r\n\r\n- `yarn start`\r\n","readmeFilename":"README.md"}