{"_id":"@aloudata/recoil-normalize-orm","_rev":"24-d5acd11849cf59d94e0deadbc07b2539","name":"@aloudata/recoil-normalize-orm","dist-tags":{"latest":"0.1.0-beta.1"},"versions":{"0.0.1-alpha":{"name":"@aloudata/recoil-normalize-orm","version":"0.0.1-alpha","keywords":["orm","normalize"],"author":{"name":"freeJoe"},"license":"MIT","_id":"@aloudata/recoil-normalize-orm@0.0.1-alpha","maintainers":[{"name":"situ.wang","email":"situ.wang@aloudata.com"},{"name":"yuanfeng.liu","email":"yuanfeng.liu@aloudata.com"}],"homepage":"https://github.com/FreeJoe/normailze-orm#readme","bugs":{"url":"https://github.com/FreeJoe/normailze-orm/issues"},"dist":{"shasum":"2d537914a9a64ecd1a854283e17d15369db38aa8","tarball":"https://registry.npmjs.org/@aloudata/recoil-normalize-orm/-/recoil-normalize-orm-0.0.1-alpha.tgz","fileCount":8,"integrity":"sha512-oKQqHs4XEn5NT1SFMkCikQcG2664fOZVg9iI0yU6CcE165f4NejsKDrH3Nv+8PTpXPocnkvBGX8sVQc5exEsAg==","signatures":[{"sig":"MEUCIGx+sj8FSYjUVQAnlwbWpl2wnB15ZzmZaA7iC9BPlhqIAiEAvaDUkgZe8E/qdWCczQtI0WeWfioOa993IzLgtH+cYPg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17504,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgtEceCRA9TVsSAnZWagAA27wP/jErI923qY499nN2qu9o\ndtb9BPr1Ec/6cr5KKJSsCzWSAAYoCy0TG/a3ZHxX6nkUi0IvzGqkhxHX5lWh\niprygcJ40r6IfZvJ1mEMeRHS2mAFPaELzI6Hpt4O6ceF6iZw2tMhRdVSOwVL\njsg3KV3NnA7JqpbFNSxvMXin0aoXTZMQf2IJzFAEqZmwZNGNw446H8FPcPd3\n2NQZF7987SBiZfOZgkSPui9W+Q3u4mCR7qXfucmS+ZvBurIdZ4oSjiVAecyf\nt+k0FQ05G7ri1/0KROv+si0ghNa+H2pLltuGlsGnO8gnDAmzHM8jjNHM7xlu\nbfTvlGjTD/3zkaz55qTIuDuYrUIm67+9Si7UjGz94Q+f+hRtO+sNRzDZoVvh\nLyAbVTcAHv3gQ1o4X/rEW318k2U8RUvh29ad/O2Z7PTA6dFMccxKnbtKlEnZ\nMbUWj1T+YL2kTvorzYY4NS383RFJBqzYkU3JzmH/IQOh61pv6GfFFntu/7j0\npRSCmUcEYQEvE/154SHRp/4XOJSxB/tiP7Q/SNKzaoS3UprlwCaHIlVv2/tx\nP0XFRL7QCFfh2chFCDP1L4SBMgfYFH1Ov5tltsViMIXmEjGCQ1lzr/7UDIDi\nPd58OBnGrl0l7Hs/J0kWKHij4g+y/NvlWu3XtHv8AHo3W0wfKq/evX2Jc396\nfRCE\r\n=TBVc\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/main.js","gitHead":"5f518ab47bf527efbaf3eb9f5b44c6f1802226dd","scripts":{"lint":"eslint","test":"jest","build":"npm run lint;npm run test;export NODE_ENV=production;webpack"},"_npmUser":{"name":"yuanfeng.liu","email":"yuanfeng.liu@aloudata.com"},"repository":{"url":"git+https://github.com/FreeJoe/normailze-orm.git","type":"git"},"_npmVersion":"6.14.12","description":"# 介绍","directories":{},"_nodeVersion":"14.16.1","_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","react":"^17.0.2","eslint":"^7.26.0","lodash":"^4.17.21","recoil":"^0.2.0","ts-jest":"^26.5.6","ts-node":"^9.1.1","webpack":"^5.37.1","react-dom":"^17.0.2","ts-loader":"^9.2.1","typescript":"^4.2.4","@types/jest":"^26.0.23","webpack-cli":"^4.7.0","@types/lodash":"^4.14.168","@types/recoil":"0.0.1","@babel/preset-env":"^7.14.2","react-test-renderer":"^17.0.2","@webpack-cli/generators":"^2.1.0","@babel/preset-typescript":"^7.13.0","@testing-library/jest-dom":"^5.12.0","@typescript-eslint/parser":"^4.22.1","@testing-library/react-hooks":"^5.1.2","@typescript-eslint/eslint-plugin":"^4.22.1","declaration-bundler-webpack-plugin":"^1.0.3"},"peerDependencies":{"lodash":"^4.17.21","recoil":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/recoil-normalize-orm_0.0.1-alpha_1622427421798_0.9618893381615199","host":"s3://npm-registry-packages"}},"0.0.2-alpha":{"name":"@aloudata/recoil-normalize-orm","version":"0.0.2-alpha","keywords":["orm","normalize"],"author":{"name":"freeJoe"},"license":"MIT","_id":"@aloudata/recoil-normalize-orm@0.0.2-alpha","maintainers":[{"name":"situ.wang","email":"situ.wang@aloudata.com"},{"name":"yuanfeng.liu","email":"yuanfeng.liu@aloudata.com"}],"homepage":"https://github.com/FreeJoe/normailze-orm#readme","bugs":{"url":"https://github.com/FreeJoe/normailze-orm/issues"},"dist":{"shasum":"e4e07c870d2b8ad0a2e68355b9a5810b22831393","tarball":"https://registry.npmjs.org/@aloudata/recoil-normalize-orm/-/recoil-normalize-orm-0.0.2-alpha.tgz","fileCount":8,"integrity":"sha512-7M4hBWHQe6AD1TVt31E2L6ZGXf39+BboAqL0vaBj5FOC1+FmKmTd94zLkkdxmLKYv6urBu098SOoCcbApAgndQ==","signatures":[{"sig":"MEQCIBZeh0gslH6HnCkq5G/pxmiGd14rdpDqCmO3X9oK+90BAiAaKazu7ZHX+zgArOOPqJqH6Ykhk5+I0P2jT361KiHvQA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17536,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgtEowCRA9TVsSAnZWagAAvj4P/2s+pS286YHr+LE/P4iv\nYERseOFjsmKfbBioNcbRfhvB93esJcEUBPNSOKwksdnMM/OCBHqtfMXfLI++\nDgD5czAIy9LKz3+MvD/2NTsKKIbR1ovAPO1LV0ibJ2WA5U2lAo/ZTIXTvDBB\ntybxNWL8WFm+Z26/Q0k9JJC7DlFynt96k3beVnrrN7XXiLBJW5MlqN11Txm5\n69KhMLXL/lvXtNfGPacAf6UrGj7TtOWO0eJfsSowp3a4Kiz3umHyAym7MoaH\nFbPMcFbkG88KyJKX8D80GTva8MqR4mNBC/6/3eyNQI+tcVGWWz7/Z4Zbz6QF\nfUofGiNBT7BkUZRNfuvdNbY6ZqJKD8FOBV5IgFHqsvDMRTDpWJB6ASTIw2nW\nPo9vcC5Lah0CxvJGa6o3UGhfhUa94LstIq6sls/icyb2NXClsEO7gnrsDtNo\nnPwrTTV6zquHp26/W9BVGpH/Y9Zk7z9+E2WyGjX8bEGlI+MUdW02FlPa9hdI\nevqRaE57ABzo+y5Yf8RILk2WKA/38pqXIejvVmwu3Ma466iJdpgJHk8C1O4U\ngbn99j8AYA+v5iA1g29brSC7T3hE5dCayUCzoK7ps2az0frJzgfwRpSWDCQb\n9i1BCWLqM+hhvPeJ36ArHHta4/HcCPFTDCSBbsIVsBZTzIQmv5fTETi8l/0P\nfoXp\r\n=0TrZ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/main.js","types":"dist/index.d.ts","gitHead":"5f518ab47bf527efbaf3eb9f5b44c6f1802226dd","scripts":{"lint":"eslint","test":"jest","build":"npm run lint;npm run test;export NODE_ENV=production;webpack"},"_npmUser":{"name":"yuanfeng.liu","email":"yuanfeng.liu@aloudata.com"},"repository":{"url":"git+https://github.com/FreeJoe/normailze-orm.git","type":"git"},"_npmVersion":"6.14.12","description":"# 介绍","directories":{},"_nodeVersion":"14.16.1","_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","react":"^17.0.2","eslint":"^7.26.0","lodash":"^4.17.21","recoil":"^0.2.0","ts-jest":"^26.5.6","ts-node":"^9.1.1","webpack":"^5.37.1","react-dom":"^17.0.2","ts-loader":"^9.2.1","typescript":"^4.2.4","@types/jest":"^26.0.23","webpack-cli":"^4.7.0","@types/lodash":"^4.14.168","@types/recoil":"0.0.1","@babel/preset-env":"^7.14.2","react-test-renderer":"^17.0.2","@webpack-cli/generators":"^2.1.0","@babel/preset-typescript":"^7.13.0","@testing-library/jest-dom":"^5.12.0","@typescript-eslint/parser":"^4.22.1","@testing-library/react-hooks":"^5.1.2","@typescript-eslint/eslint-plugin":"^4.22.1","declaration-bundler-webpack-plugin":"^1.0.3"},"peerDependencies":{"lodash":"^4.17.21","recoil":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/recoil-normalize-orm_0.0.2-alpha_1622428208297_0.1823840676863393","host":"s3://npm-registry-packages"}},"0.0.3":{"name":"@aloudata/recoil-normalize-orm","version":"0.0.3","keywords":["orm","normalize"],"author":{"name":"freeJoe"},"license":"MIT","_id":"@aloudata/recoil-normalize-orm@0.0.3","maintainers":[{"name":"situ.wang","email":"situ.wang@aloudata.com"},{"name":"yuanfeng.liu","email":"yuanfeng.liu@aloudata.com"}],"homepage":"https://github.com/FreeJoe/normailze-orm#readme","bugs":{"url":"https://github.com/FreeJoe/normailze-orm/issues"},"dist":{"shasum":"5d9dfa3edd9b350086bf4f5285fb8a1bc35386ad","tarball":"https://registry.npmjs.org/@aloudata/recoil-normalize-orm/-/recoil-normalize-orm-0.0.3.tgz","fileCount":8,"integrity":"sha512-jauGiT0JLFnXXEDMmMgfa6Zgquf/luKznJnS+HpnZwio6WMhh617OWbyEF42sealY83QCgmIxwXRa1DEdcmGOA==","signatures":[{"sig":"MEYCIQDPqm5FUWHxWjOfjdBH6TV53s+xjl76vaARczsXaNKn8gIhAPowA+LJ+WSxk8knERkHkBXm2XSlqp51YlHyMAQVxMgP","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17917,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJguEU3CRA9TVsSAnZWagAAQf4P/0SGuGRnz/pwfnvsRVXc\nFyCJtuQYsKB8oZ3RTBB07YYQKh1LzMvLnoyze8jS0kB8f2b4wLe/CiEo7aUB\nlf5vqshcCufatZQzdSC9vsp/n/cx4hjmpnAEEKZRTNVX/JJqUdLfciSOAtaz\npCHTnBinuuwzAtvPKGUBV3QnVePxqYc2O2dk/5rIeWNDdxuPy53Kp6IsnKDO\nqTTrvp7rn7OpHc6qaR6KJ1wgodUA1RxPrz3HCKMOgVMkygBlYtznxfgvk2HC\nbSTrcmVYChb77bePfydzV/llku9xFufMNkLg/xtoQ2Ua+zpoH3KV/aYhXYnN\nNpRLi/qfqzuQicVUrydZZnbN4K2eqlh/8pGsVfZTrZoDnO7gfy4EO5p6k/Dy\nT/CGREK8+JW/GQKvqgw4V5gEiVGJzLiPd5uYcHcQkBcpdPackhakBS9mVQk1\n0to2EvoOllZzAlbTQUzQzPIEe8P9q7o4/5Ogncw/ANLzOnEkECB33FAv5y9x\nnHugLEbqwd/VmW3bE6WOx7/XKO9nXsK4Ui1YVbVNioA6EwFk5rttmpnhYQcv\n/47CnUqHR9IDLYBCIat1hCXE67NQnleBnKvObgSL6+oWH2I+CdUiz/W+Xcga\ncM1IIqManUm9Y2hmlcDGcl5U/H5Ur1xnzk/e3nnOAZ0B0xGoRPoYR+EYYuBH\nDJjk\r\n=+Lzo\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/main.js","types":"dist/index.d.ts","gitHead":"ae351432cbaf7ea99784a22fb62c5fc9c7e71a56","scripts":{"lint":"eslint ./src","test":"jest","build":"npm run lint;npm run test;export NODE_ENV=production;webpack"},"_npmUser":{"name":"yuanfeng.liu","email":"yuanfeng.liu@aloudata.com"},"repository":{"url":"git+https://github.com/FreeJoe/normailze-orm.git","type":"git"},"_npmVersion":"6.14.12","description":"# 介绍","directories":{},"_nodeVersion":"14.16.1","dependencies":{"eslint-plugin-react":"^7.24.0","eslint-plugin-import":"^2.23.4","eslint-plugin-jsx-a11y":"^6.4.1","eslint-plugin-react-hooks":"^4.2.0","eslint-config-airbnb-typescript":"^12.3.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","react":"^17.0.2","eslint":"^7.27.0","lodash":"^4.17.21","recoil":"^0.2.0","ts-jest":"^26.5.6","ts-node":"^9.1.1","webpack":"^5.37.1","react-dom":"^17.0.2","ts-loader":"^9.2.1","typescript":"^4.2.4","@types/jest":"^26.0.23","webpack-cli":"^4.7.0","@types/lodash":"^4.14.168","@types/recoil":"0.0.1","@babel/preset-env":"^7.14.2","react-test-renderer":"^17.0.2","@webpack-cli/generators":"^2.1.0","@babel/preset-typescript":"^7.13.0","@testing-library/jest-dom":"^5.12.0","@typescript-eslint/parser":"^4.22.1","@aloudata/eslint-config-base":"0.0.2","@testing-library/react-hooks":"^5.1.2","@typescript-eslint/eslint-plugin":"^4.26.0","declaration-bundler-webpack-plugin":"^1.0.3"},"peerDependencies":{"react":"^17.0.2","lodash":"^4.17.21","recoil":"^0.2.0","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/recoil-normalize-orm_0.0.3_1622689079635_0.41912065287338973","host":"s3://npm-registry-packages"}},"0.0.4":{"name":"@aloudata/recoil-normalize-orm","version":"0.0.4","keywords":["orm","normalize"],"author":{"name":"freeJoe"},"license":"MIT","_id":"@aloudata/recoil-normalize-orm@0.0.4","maintainers":[{"name":"situ.wang","email":"situ.wang@aloudata.com"},{"name":"yuanfeng.liu","email":"yuanfeng.liu@aloudata.com"}],"homepage":"https://github.com/FreeJoe/normailze-orm#readme","bugs":{"url":"https://github.com/FreeJoe/normailze-orm/issues"},"dist":{"shasum":"1f769c63aaad8eda647e2d8d29b6b50aad163b95","tarball":"https://registry.npmjs.org/@aloudata/recoil-normalize-orm/-/recoil-normalize-orm-0.0.4.tgz","fileCount":8,"integrity":"sha512-+RsAIuUvtuAUxm1VHFnVT7XGG7hazXhT371mLinEMuSHtX1btWmTGrUcCWRPOkSafnrMIRbZcHHkTv1R7NbYvA==","signatures":[{"sig":"MEYCIQDOyuMJDWS4Rvk7iAkqipm/qTX0qJ8w3XEuzmqt2GVikgIhALD4x6VJ+gXWiXE+OrbG5MzkUpCmY9b34KJJ+9HqoUJi","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18025,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJguEWtCRA9TVsSAnZWagAApYAQAJeHxOYVP593AT315zXR\nBEZLaAPjGpMKMEyJX1Me2O3MOZMryLFPTVlc0cP+SR5Ki65gphMml7t27NcU\n7/afjVIiZoWYFmjhn6mXgUTwGAnnvvNPqE3WeGbgBwXSxyHVA7/eUUCJ6Ee9\ntJ98dtrTUgbIsyqBaoipWKhr4xtDBP67As5XbyGWfhrBip2MtHk2C1gnum1U\njbblY6l9NSa5hagzph3yqFG29TA97osv4Tt9/pl8d/Pf1nOyhQaIeUhbrwI9\nQrLvFjGpcV8XsG8m+I5PwKPIV4EWeSPfqfPF3fC3R+COf8MlkhmSIVv21rWt\nPoY1yjUXa3i1zQRhgU6/txQXZdRg/9xLG0R10z6CkSAGH8bRw42YDzDpZgJe\nR7uRxTt3kIUPgKTIWiXPWEqGCprKbgMG567Bn6fpb+8bxbipwoYxjphNBtHM\nCV1V97d4ivRIZqpMnH3psPBRuPWMZbQDOCDOsC8eaaJ0U7rU8OopW2jVQcPQ\nm3b5nY3r/AHxmSvlFa1vgut/SC4IzoGDv5oNoVTziBGygfvJv4BjkizA/Im5\nQks0+xhKuc9TLw1y8U3T7m7/2TxeQtB6DviHe3lK0eV8ds1oNgzu/peTS6Gj\ncRPEqVmRQ/rBZXAfWbVoI9F4PxxNTMPN20lInHBPjySrHQZla9VW17tD+57n\nZw8j\r\n=t7QU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/main.js","types":"dist/index.d.ts","gitHead":"9bd9a123af137a6f281f5f8f03dbaa9df4e0b938","scripts":{"lint":"eslint ./src","test":"jest","build":"npm run lint;npm run test;export NODE_ENV=production;webpack"},"_npmUser":{"name":"yuanfeng.liu","email":"yuanfeng.liu@aloudata.com"},"repository":{"url":"git+https://github.com/FreeJoe/normailze-orm.git","type":"git"},"_npmVersion":"6.14.12","description":"# 介绍","directories":{},"_nodeVersion":"14.16.1","dependencies":{"eslint-plugin-react":"^7.24.0","eslint-plugin-import":"^2.23.4","eslint-plugin-jsx-a11y":"^6.4.1","eslint-plugin-react-hooks":"^4.2.0","eslint-config-airbnb-typescript":"^12.3.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","react":"^17.0.2","eslint":"^7.27.0","lodash":"^4.17.21","recoil":"^0.2.0","ts-jest":"^26.5.6","ts-node":"^9.1.1","webpack":"^5.37.1","react-dom":"^17.0.2","ts-loader":"^9.2.1","typescript":"^4.2.4","@types/jest":"^26.0.23","webpack-cli":"^4.7.0","@types/lodash":"^4.14.168","@types/recoil":"0.0.1","@babel/preset-env":"^7.14.2","react-test-renderer":"^17.0.2","@webpack-cli/generators":"^2.1.0","@babel/preset-typescript":"^7.13.0","@testing-library/jest-dom":"^5.12.0","@typescript-eslint/parser":"^4.22.1","@aloudata/eslint-config-base":"0.0.2","@testing-library/react-hooks":"^5.1.2","@typescript-eslint/eslint-plugin":"^4.26.0","declaration-bundler-webpack-plugin":"^1.0.3"},"peerDependencies":{"react":"^17.0.2","lodash":"^4.17.21","recoil":"^0.2.0","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/recoil-normalize-orm_0.0.4_1622689197681_0.23591349641921044","host":"s3://npm-registry-packages"}},"0.0.5-beta":{"name":"@aloudata/recoil-normalize-orm","version":"0.0.5-beta","keywords":["orm","normalize"],"author":{"name":"freeJoe"},"license":"MIT","_id":"@aloudata/recoil-normalize-orm@0.0.5-beta","maintainers":[{"name":"situ.wang","email":"situ.wang@aloudata.com"},{"name":"yuanfeng.liu","email":"yuanfeng.liu@aloudata.com"}],"homepage":"https://github.com/FreeJoe/normailze-orm#readme","bugs":{"url":"https://github.com/FreeJoe/normailze-orm/issues"},"dist":{"shasum":"80e4c127d742d6cdd02683bdf28465f601fcf0cb","tarball":"https://registry.npmjs.org/@aloudata/recoil-normalize-orm/-/recoil-normalize-orm-0.0.5-beta.tgz","fileCount":8,"integrity":"sha512-bODu+XVOFGvwv8jmCmKnuJYx6vD6Nj06Qpdou5ef9B+KaiXG7C4CINwTlkGBvQsuEDzuTPbb9FW03LfZJs6lRw==","signatures":[{"sig":"MEQCIAnKJqQ13/HMnOhKimYnCmwetm537Jv1JpMUIXukvQFYAiAqMy+5Kzwc+nQhFc0mWMj/6kHYH8I6qQ9ksCeD0upkxw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18030,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJguHQbCRA9TVsSAnZWagAAL7cQAJIOw5YrfrpvLZE+fvMR\nq3eqZicxJe5okKNOJ8Tj12g2EMbMt2aMLB4l+eLIuxgJdfr2/HG6bM/UIVAu\nSQm2vQGP4Dc+YOKpKlZyY5N8EyH7IYBdp3OWJfEIF4mFgS2u57HUMZs/IG3c\nUfAbMGRHJI2C75R08RYQxb5l4QQNYRctjC8Vq9x9SFTxJlBPp/zr8Tjk+mJF\nsxyqh8j2x9AyfJwTJeBrc1SVBRyERsVJbrO68OWOeo7ZRb3LxJceM0yHE8ay\n1ZAGRuK5uvrCF1bjhUHpxYI7NTABymSjIoApWVVBuUcVq4oCRNUHuENFX3Kk\nxt1lka7/nOfcRqZxPw7VEHW7SaKrsvUS7zdusohpmxh7NTi09Hh6FA3dQcB0\nU4MnxZfm9iUtT52Rz5Rl6Jp0v/WwaWR4AZBe+JIID884kGfx9kU5SdC7GZr1\nDWpthM2y6qNxJEjBTsUSq9Vwu6UHiIHaU38f8QzUN211eQlCGNkNai/9/ihA\nCXCjVSJaxpLvmNwxSxnvNX5NNAiGt7rK4JWkagAvJEboZjQE4loNp2dWtrZT\nspv8nCti/ubKbxRmntWwhZPR9NZlrnH4eepdbcpI2qsyz4Ll7cdjfu5lFchD\nSv69zRI9aIC64Xd/QG0/myHLFyfl7uenx4pf6Xkv6pbmXQkjIcbU6GB5pE8j\nYrYk\r\n=jYKa\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/main.js","types":"dist/index.d.ts","gitHead":"ff9ed8e7b39d27413d0a9c5e894eca4af36e9ab4","scripts":{"lint":"eslint ./src","test":"jest","build":"npm run lint;npm run test;export NODE_ENV=production;webpack"},"_npmUser":{"name":"yuanfeng.liu","email":"yuanfeng.liu@aloudata.com"},"repository":{"url":"git+https://github.com/FreeJoe/normailze-orm.git","type":"git"},"_npmVersion":"6.14.12","description":"# 介绍","directories":{},"_nodeVersion":"14.16.1","dependencies":{"eslint-plugin-react":"^7.24.0","eslint-plugin-import":"^2.23.4","eslint-plugin-jsx-a11y":"^6.4.1","eslint-plugin-react-hooks":"^4.2.0","eslint-config-airbnb-typescript":"^12.3.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","react":"^17.0.2","eslint":"^7.27.0","lodash":"^4.17.21","recoil":"^0.2.0","ts-jest":"^26.5.6","ts-node":"^9.1.1","webpack":"^5.37.1","react-dom":"^17.0.2","ts-loader":"^9.2.1","typescript":"^4.2.4","@types/jest":"^26.0.23","webpack-cli":"^4.7.0","@types/lodash":"^4.14.168","@types/recoil":"0.0.1","@babel/preset-env":"^7.14.2","react-test-renderer":"^17.0.2","@webpack-cli/generators":"^2.1.0","@babel/preset-typescript":"^7.13.0","@testing-library/jest-dom":"^5.12.0","@typescript-eslint/parser":"^4.22.1","@aloudata/eslint-config-base":"0.0.2","@testing-library/react-hooks":"^5.1.2","@typescript-eslint/eslint-plugin":"^4.26.0","declaration-bundler-webpack-plugin":"^1.0.3"},"peerDependencies":{"react":"^17.0.2","lodash":"^4.17.21","recoil":"^0.2.0","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/recoil-normalize-orm_0.0.5-beta_1622701083778_0.19045058045644647","host":"s3://npm-registry-packages"}},"0.0.5-beta.1":{"name":"@aloudata/recoil-normalize-orm","version":"0.0.5-beta.1","keywords":["orm","normalize"],"author":{"name":"freeJoe"},"license":"MIT","_id":"@aloudata/recoil-normalize-orm@0.0.5-beta.1","maintainers":[{"name":"situ.wang","email":"situ.wang@aloudata.com"},{"name":"yuanfeng.liu","email":"yuanfeng.liu@aloudata.com"}],"homepage":"https://github.com/FreeJoe/normailze-orm#readme","bugs":{"url":"https://github.com/FreeJoe/normailze-orm/issues"},"dist":{"shasum":"70ceea767520f5e633e1106af9b417ec5155bf65","tarball":"https://registry.npmjs.org/@aloudata/recoil-normalize-orm/-/recoil-normalize-orm-0.0.5-beta.1.tgz","fileCount":8,"integrity":"sha512-y6d35R5e5rs6dD+DtizuVeqenQ3R5gAFinn6XW8y4xnGfZ64vi4HPXM3LTLaDdbSsbA0+Co0COaVody5ca0OrQ==","signatures":[{"sig":"MEYCIQDrbRaocmUW5FMgpcanq0x4066q6N17PWVUMkTWghFnoQIhAJafBzRL8lne5u+o+2zi7bCyYEvm77XCtFWGTm5Ao3hi","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18129,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJguHQ3CRA9TVsSAnZWagAAsIAQAJo7Ztc4/ezajsbdt+ZP\nHMbsbVac7vMwt0ZwH13B9ffN3zwIAYk5gHO72PuZy52t5i/f8MzowTwN957H\nLVOEISydcKaoJdnw+BjcBsFSt8NpNrvGULKBoUevNImX3nap006CmUYtepOL\nQz3aOQRHBnVM3ncpeymGXeQVArzpBlhCXHZhvWELoeJru2ohtFQZ5OntmA3n\nuydsouGKVTk6PdVsKxOYInp7GmU3FvhQKRb/kzI7RQeyHeAROipneB5Ihp3Z\nvndgYycR3F/bsuzJc7iJ93ZroV/8putRYT3fkrlYLoT/qcMG7q0YmwpZKS6Q\nyBxV3i5HZw7g8jguazKYZrUI0Ki8kggqlG7Z83e02QhMGyKksOtCrtAndg2q\ngP8NUblC8IZL3KLyI35EoGNbi2Z+SbyffEx6yOlC1jvm8SHaKbUh0jCA6Erq\nyGRvnqqWMXnI/q4nftVAmhH/ut6n3wYHDukPkWb2a3Kcxi2iDjXnX8lOcQOO\nXmJejZJJUd+zuDbn4F+fPkRVssjHxHA5Nct9X8CJF1MvwIjC2eooruGbxNwA\nff34Am2MDbG/Mb80mKu3oo85K+l4stTgQxDsfhTIeBX5NaLXYnN1GaweQiHJ\nR24PvDmcZE4J1tkwQrvrARRuC6/gKt9mId7vcOUT6E4knjoUlYwlmbPInk7o\nWkXk\r\n=I8oI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/main.js","types":"dist/index.d.ts","gitHead":"ff9ed8e7b39d27413d0a9c5e894eca4af36e9ab4","scripts":{"lint":"eslint ./src","test":"jest","build":"npm run lint;npm run test;export NODE_ENV=production;webpack"},"_npmUser":{"name":"yuanfeng.liu","email":"yuanfeng.liu@aloudata.com"},"repository":{"url":"git+https://github.com/FreeJoe/normailze-orm.git","type":"git"},"_npmVersion":"6.14.12","description":"# 介绍","directories":{},"_nodeVersion":"14.16.1","dependencies":{"eslint-plugin-react":"^7.24.0","eslint-plugin-import":"^2.23.4","eslint-plugin-jsx-a11y":"^6.4.1","eslint-plugin-react-hooks":"^4.2.0","eslint-config-airbnb-typescript":"^12.3.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","react":"^17.0.2","eslint":"^7.27.0","lodash":"^4.17.21","recoil":"^0.2.0","ts-jest":"^26.5.6","ts-node":"^9.1.1","webpack":"^5.37.1","react-dom":"^17.0.2","ts-loader":"^9.2.1","typescript":"^4.2.4","@types/jest":"^26.0.23","webpack-cli":"^4.7.0","@types/lodash":"^4.14.168","@types/recoil":"0.0.1","@babel/preset-env":"^7.14.2","react-test-renderer":"^17.0.2","@webpack-cli/generators":"^2.1.0","@babel/preset-typescript":"^7.13.0","@testing-library/jest-dom":"^5.12.0","@typescript-eslint/parser":"^4.22.1","@aloudata/eslint-config-base":"0.0.2","@testing-library/react-hooks":"^5.1.2","@typescript-eslint/eslint-plugin":"^4.26.0","declaration-bundler-webpack-plugin":"^1.0.3"},"peerDependencies":{"react":"^17.0.2","lodash":"^4.17.21","recoil":"^0.2.0","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/recoil-normalize-orm_0.0.5-beta.1_1622701111608_0.9339803521805334","host":"s3://npm-registry-packages"}},"0.0.5":{"name":"@aloudata/recoil-normalize-orm","version":"0.0.5","keywords":["orm","normalize"],"author":{"name":"freeJoe"},"license":"MIT","_id":"@aloudata/recoil-normalize-orm@0.0.5","maintainers":[{"name":"situ.wang","email":"situ.wang@aloudata.com"},{"name":"yuanfeng.liu","email":"yuanfeng.liu@aloudata.com"}],"homepage":"https://github.com/FreeJoe/normailze-orm#readme","bugs":{"url":"https://github.com/FreeJoe/normailze-orm/issues"},"dist":{"shasum":"5ef608b7d24bf8322fa8473c70342fb75efbc270","tarball":"https://registry.npmjs.org/@aloudata/recoil-normalize-orm/-/recoil-normalize-orm-0.0.5.tgz","fileCount":8,"integrity":"sha512-BAnO3vS3C40lqvSJwAaODJjnL9sWzxL9Yz+Z1H/My6p8PgIdDnbf3NQkHkQve7Qw5Q9ureLLsdZ1HKXERKPldA==","signatures":[{"sig":"MEUCICUxjUqyFSl3JZLfaq6ivaV2mtHeq2y8LRj/LvJCkVrzAiEAmSKG2OXQEXfwmrpz/Vubkvhfwu4+C2yPValNw1ddqGE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18138,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJguLjGCRA9TVsSAnZWagAArE0P/2xNBiAcT5i1xXHSEskY\nOTKPkYw7qpiZD9BLDeqMw1rtNyL4eyuoLeH9XvqOcaUr6QEGsE/KC+IQe0nr\nhrow3QtSZoP6+W25SUxS5OYLeu7B67Y72rjSy2PvQD9S8KP+9/2taGTLBmzK\nsRkZmEdIbWwDexyjvCdNOTAEynq3QWp4KmI0ULoGw1WwgqKzN/+ki0fln/n6\nf1V/DvuQoKchbdVw4c/VCmlbswa9bp2KiHNdbiVztolP9vrCWuMVMW5Rpsgb\nymVnXfOPQvppQkD9DZu1Ynv9pvYgSOaKooAmZchIy6aRkmTLUUiwAavIq/Fi\nd72uHpxZ7W1MNrVXdhTBgPhh0C4PNIqUqHRd5zpV98dUOc4z3l68oKGxe738\ntQrcaOsc/NmysvKXvNSHorvu6IQGgkDqXG019v9UNLWz8cEeK9GfaYhQP2WW\n2WtPit30Dxa1lUaDgf85AvFL+UNOofevznHd4SuoNlE3Cv+Q+FbPuYPy249p\niycXt8PMDxvLJECzh8piGMOTJSUY3x7rj+fyGI5ur7V2BqIgZX1lP/pw3ZJG\nEWHzzfC/K6xFdQCG6fOdpivtsy1pn1wwWiBIQB3pndwGPD7nfebEPyvoa2wl\nuq4QifFY1JvmWfFBnowIeqm2ikS4E3JSMavnKvOIP2KwqXYmmFcWFSPvzZ8R\nbut+\r\n=+dsl\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/main.js","types":"dist/index.d.ts","gitHead":"ff9ed8e7b39d27413d0a9c5e894eca4af36e9ab4","scripts":{"lint":"eslint ./src","test":"jest","build":"npm run lint;npm run test;export NODE_ENV=production;webpack"},"_npmUser":{"name":"yuanfeng.liu","email":"yuanfeng.liu@aloudata.com"},"repository":{"url":"git+https://github.com/FreeJoe/normailze-orm.git","type":"git"},"_npmVersion":"6.14.12","description":"# 介绍","directories":{},"_nodeVersion":"14.16.1","dependencies":{"eslint-plugin-react":"^7.24.0","eslint-plugin-import":"^2.23.4","eslint-plugin-jsx-a11y":"^6.4.1","eslint-plugin-react-hooks":"^4.2.0","eslint-config-airbnb-typescript":"^12.3.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","react":"^17.0.2","eslint":"^7.27.0","lodash":"^4.17.21","recoil":"^0.2.0","ts-jest":"^26.5.6","ts-node":"^9.1.1","webpack":"^5.37.1","react-dom":"^17.0.2","ts-loader":"^9.2.1","typescript":"^4.2.4","@types/jest":"^26.0.23","webpack-cli":"^4.7.0","@types/lodash":"^4.14.168","@types/recoil":"0.0.1","@babel/preset-env":"^7.14.2","react-test-renderer":"^17.0.2","@webpack-cli/generators":"^2.1.0","@babel/preset-typescript":"^7.13.0","@testing-library/jest-dom":"^5.12.0","@typescript-eslint/parser":"^4.22.1","@aloudata/eslint-config-base":"0.0.2","@testing-library/react-hooks":"^5.1.2","@typescript-eslint/eslint-plugin":"^4.26.0","declaration-bundler-webpack-plugin":"^1.0.3"},"peerDependencies":{"react":"^17.0.2","lodash":"^4.17.21","recoil":"^0.2.0","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/recoil-normalize-orm_0.0.5_1622718662128_0.6617909381020539","host":"s3://npm-registry-packages"}},"0.0.6":{"name":"@aloudata/recoil-normalize-orm","version":"0.0.6","keywords":["orm","normalize"],"author":{"name":"freeJoe"},"license":"MIT","_id":"@aloudata/recoil-normalize-orm@0.0.6","maintainers":[{"name":"situ.wang","email":"situ.wang@aloudata.com"},{"name":"yuanfeng.liu","email":"yuanfeng.liu@aloudata.com"}],"homepage":"https://github.com/FreeJoe/normailze-orm#readme","bugs":{"url":"https://github.com/FreeJoe/normailze-orm/issues"},"dist":{"shasum":"fad369f02271e0967dda00822d781b5e9367c260","tarball":"https://registry.npmjs.org/@aloudata/recoil-normalize-orm/-/recoil-normalize-orm-0.0.6.tgz","fileCount":8,"integrity":"sha512-WYjYzfJxwpaZCM3Ub1xa11AauYFkOwYzINcKO4rc26vkxkQppemMFyh85ged7qdKDxl0tZXbXXrrdNvSzr68WQ==","signatures":[{"sig":"MEQCIBKrWP1JTO5ty4BVywfxroPxSck2INN+v6VJXGJvJN/FAiAz6x0mfaw2JfK4ncefJ/F2A6LIkzD5BcvnmHu5mdXJZQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17973,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgweXbCRA9TVsSAnZWagAAw68P/ieFHxW/3xUA1JAp6VwA\nTCJB3JYT65m0MwsFK1bZH5tzTf7jDJZBtq+PWfsqD0Q2lMuhZ9vRp1HsBwZv\nJ5nZn1JBWpzpnPT6XmILlT5PK0WbuJ7xggOsXxlTuSTYDV/qeluxZst2peiP\n4IOKxN9otJ94eojd0kkA8SVGtZbbu2XjiciiFBq63cB8G/oEQHqT3qZf2B63\nDlUwUZO2DWODjUlV9xEndGNX7SXq8RvKQijuqXsFg0RhxNLpRZLiqQkCUwQi\nOs0vLECP1MIn5JxyONB8OR6PmzpiM4Pjj4BeDhEXBXUyMD36f6Oiy0K7pc+w\nWXYrCNIls4aHNjqwwZqGJci0/Z683IJuVKh44EYF9ztXc3n8QTJktbvbl33T\nekEYPfEdrq4ond/HCnGJoOXm5Kj9YXCkdtVJsaQoEQ6u15kNCXr3BiSgL5ZG\nQWmstS4UYmFy/bt9Px07FlbCmiZPxhTbqG0RZlXarCAtPOvANupGKsSKsH3n\nhVt35xpJGZ1JaKVilGT36pWmJDRoEWIeUBNt5Z7lJHA1vmhL1eIr5WTgZVJQ\nLUfaCYECS4+gZZ45RjQn3HygtTFvz/ljJQ4sIoL/gJK0cMbbQLz0VHlDweH3\nKN+tRoLYGwilw2/zIimLA9HkMHYnuC7XjAVRT0ADVFOw5fUfK5yGXr/gLR/v\npfDk\r\n=isk8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/main.js","types":"dist/index.d.ts","gitHead":"8a038b074c1275a929f217e8fb0808ae910b5c64","scripts":{"lint":"eslint ./src","test":"jest","build":"npm run lint;npm run test;export NODE_ENV=production;webpack","prepare":"husky install"},"_npmUser":{"name":"yuanfeng.liu","email":"yuanfeng.liu@aloudata.com"},"repository":{"url":"git+https://github.com/FreeJoe/normailze-orm.git","type":"git"},"_npmVersion":"6.14.12","description":"# 介绍","directories":{},"_nodeVersion":"14.16.1","dependencies":{"eslint-plugin-react":"^7.24.0","eslint-plugin-import":"^2.23.4","eslint-plugin-jsx-a11y":"^6.4.1","eslint-plugin-react-hooks":"^4.2.0","eslint-config-airbnb-typescript":"^12.3.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","husky":"^6.0.0","react":"^17.0.2","eslint":"^7.27.0","lodash":"^4.17.21","recoil":"^0.2.0","ts-jest":"^26.5.6","ts-node":"^9.1.1","webpack":"^5.37.1","react-dom":"^17.0.2","ts-loader":"^9.2.1","typescript":"^4.2.4","@types/jest":"^26.0.23","webpack-cli":"^4.7.0","@types/lodash":"^4.14.168","@types/recoil":"0.0.1","@babel/preset-env":"^7.14.2","react-test-renderer":"^17.0.2","@webpack-cli/generators":"^2.1.0","@babel/preset-typescript":"^7.13.0","@testing-library/jest-dom":"^5.12.0","@typescript-eslint/parser":"^4.22.1","@aloudata/eslint-config-base":"0.0.2","@testing-library/react-hooks":"^5.1.2","@typescript-eslint/eslint-plugin":"^4.26.0","declaration-bundler-webpack-plugin":"^1.0.3"},"peerDependencies":{"react":"^17.0.2","lodash":"^4.17.21","recoil":"^0.2.0","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/recoil-normalize-orm_0.0.6_1623320027029_0.4474096788117532","host":"s3://npm-registry-packages"}},"0.0.7":{"name":"@aloudata/recoil-normalize-orm","version":"0.0.7","keywords":["orm","normalize"],"author":{"name":"freeJoe"},"license":"MIT","_id":"@aloudata/recoil-normalize-orm@0.0.7","maintainers":[{"name":"situ.wang","email":"situ.wang@aloudata.com"},{"name":"yuanfeng.liu","email":"yuanfeng.liu@aloudata.com"}],"homepage":"https://github.com/FreeJoe/normailze-orm#readme","bugs":{"url":"https://github.com/FreeJoe/normailze-orm/issues"},"dist":{"shasum":"e5318703a17e0c1c021d2518265448fc73f47c82","tarball":"https://registry.npmjs.org/@aloudata/recoil-normalize-orm/-/recoil-normalize-orm-0.0.7.tgz","fileCount":8,"integrity":"sha512-b8eF55Bpk2M5BP67sCtqfkgQmrY96TKUP3bC/czz1wpSHNqLIKR2aBc9XqeZ/NkLbq7MCy+nTShNXZB7XcHk6w==","signatures":[{"sig":"MEQCIF4N6t6P65yGi+Wi40adm6dsAyY/9oHKdqF4sszStRm2AiAv+DQkp1JKrYx+lYn8EaPGP2pMVND8EDlgkYUmKg8IOQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18446,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgwfPECRA9TVsSAnZWagAA7coP/1dpXTnOPDhCFf7ESpCM\n18hMg9c6N+Ow08T52N0L5zTOVluqTHn7EMqOua8jrdjE5bvVKFqNtMgex6/X\nuqN9zueDuUkbQzOML7uV1gOUhTub8EHDArogAcA07oLiHMVygRXuZGaDkC7/\nO8xqLHQHzytVoMYbrsCpM0wnTf9c+7HZX3RCnOpCyyjBBoPdm2rY7pSXQ3qF\nvLyCJOZYhtKznHn2tg4BqPjzqkO49U0o4qqk3Vir1Ye1cxJ+Ytof6olYUwLw\nyerDaTG/UNlypnM6rDBTCyMUa/YJ0jldTPqSRgd53rQk7g6y+hbyzQEWqRNX\n/kB9H2/nAE422YTSl6IjHkp+FRWG4VXcSZdC8lSTpa9gtSvd35VXvqDTqKeG\n5MQNGMzxQ7WsQdblo3tt7OLDVeQr0Q7oCrVIxmsSGZacnDL7mGQ56+ZbAeOY\nW1KJUOZ95XIiIv3mNyaho8ahGvvYGHl2CHUJq7a6HeSEh30RB6e4mcOMnhN7\nr8/+8UWb7RCCJW0TVC+Y7Tr7aKDTyox2TRwKyBZEmszt2uKuAtu0UVfkPgB1\nAKAXa4mJE7IhHd0/c2mTkoI4AU7V4pKbmsMtIoBsnLeQ3LRCGDRs5czH6soR\nOlGNZ3KE5W5ROktkw861TzPLzrjDY45kCI9Us9n5flWA7EiQLyfl4mTl9Tf3\nPZxV\r\n=hQ+D\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/main.js","types":"dist/index.d.ts","gitHead":"902f189d0dfb40607884c291368a8cb195052524","private":false,"scripts":{"lint":"eslint ./src","test":"jest","build":"npm run lint;npm run test;export NODE_ENV=production;webpack","prepare":"husky install","postpublish":"pinst --enable","prepublishOnly":"pinst --disable && npm run lint && npm run test && npm run build"},"_npmUser":{"name":"yuanfeng.liu","email":"yuanfeng.liu@aloudata.com"},"repository":{"url":"git+https://github.com/FreeJoe/normailze-orm.git","type":"git"},"_npmVersion":"6.14.12","description":"# 介绍","directories":{},"_nodeVersion":"14.16.1","dependencies":{"eslint-plugin-react":"^7.24.0","eslint-plugin-import":"^2.23.4","eslint-plugin-jsx-a11y":"^6.4.1","eslint-plugin-react-hooks":"^4.2.0","eslint-config-airbnb-typescript":"^12.3.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","husky":"^6.0.0","pinst":"^2.1.6","react":"^17.0.2","eslint":"^7.27.0","lodash":"^4.17.21","recoil":"^0.2.0","ts-jest":"^26.5.6","ts-node":"^9.1.1","webpack":"^5.37.1","react-dom":"^17.0.2","ts-loader":"^9.2.1","typescript":"^4.2.4","@types/jest":"^26.0.23","webpack-cli":"^4.7.0","@types/lodash":"^4.14.168","@types/recoil":"0.0.1","@babel/preset-env":"^7.14.2","react-test-renderer":"^17.0.2","@webpack-cli/generators":"^2.1.0","@babel/preset-typescript":"^7.13.0","@testing-library/jest-dom":"^5.12.0","@typescript-eslint/parser":"^4.22.1","@aloudata/eslint-config-base":"0.0.2","@testing-library/react-hooks":"^5.1.2","@typescript-eslint/eslint-plugin":"^4.26.0","declaration-bundler-webpack-plugin":"^1.0.3"},"peerDependencies":{"react":"^17.0.2","lodash":"^4.17.21","recoil":"^0.2.0","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/recoil-normalize-orm_0.0.7_1623323588373_0.32150931026773444","host":"s3://npm-registry-packages"}},"0.1.0-beta.1":{"name":"@aloudata/recoil-normalize-orm","version":"0.1.0-beta.1","keywords":["orm","normalize"],"author":{"name":"freeJoe"},"license":"MIT","_id":"@aloudata/recoil-normalize-orm@0.1.0-beta.1","maintainers":[{"name":"situ.wang","email":"situ.wang@aloudata.com"},{"name":"yuanfeng.liu","email":"yuanfeng.liu@aloudata.com"}],"homepage":"https://github.com/FreeJoe/normailze-orm#readme","bugs":{"url":"https://github.com/FreeJoe/normailze-orm/issues"},"dist":{"shasum":"307e57df6137e43061b23ba063de32e5a63897f2","tarball":"https://registry.npmjs.org/@aloudata/recoil-normalize-orm/-/recoil-normalize-orm-0.1.0-beta.1.tgz","fileCount":8,"integrity":"sha512-bSX0UhfnxiwDx+v+gM0QR8j4He7vsU8jvrITU3amN8fTDTBDvpcUjiAakvAkoV+W/wqm1GFEt0EUhkEKJHXEDQ==","signatures":[{"sig":"MEUCIQCc/eZlsdE3yXSRSleDHF0TnZ46Z83gTcLZoztSA12NqgIgUluGJhwBjTRcO0hgVWjjNJW5UomkikpSnjuazzbGkRE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":21616,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgyWiPCRA9TVsSAnZWagAAEY8P/jMQ5jIIFOcmH1L48byz\nRuIMhHkqreANISEh2xYdugHDdAzMii0rJdWrjyLd2Mf/Nc4TIphhfrXZGMOU\nIAMffad/WJKRG8BsGV/2UjdG0kVuMEh4/AJkPDAKBEV0/U7mgVAFAtzzeiKq\nd0K1kN6NyzK0XVGf85bEzJZAR+/0CGNSzTzp1EQu5Hpdor1wTSiiD4ButqgF\nKJgRE/qE9vwaqxzrQQGLBzuoG6CjUoL79zSTUysL/c5N9BJOdW23zy/YMctp\n06Qe/D5JEYh9o9tS2YFwNhUMfOJBTyFTixInIAcd8gq009zIbbN4Zh8VdQ4+\n3gPdkQHb0TZ1MpqzhsZIJmWw2vJYEfD3riwzwYJ+O6v+DzoEtElUhOwcFXZr\negaNw5dh4Ix5ruCaKwz0fXnEzJP/smNSLhouCULBO/6IZSVEaGfgw4SbtNpS\nxQbbTZsRqD4skvy0nsuJdRUVpRu4IzCCfWitm3ZYBqV434B6xsiOD54dLLmh\nMUFKC0gqrZ42N7pRGMC7i1d52m3bkJhDiMYyTghWRSuQCMmU7AYTEXVqPjlw\nz7A1w9s+s0s2f5RP8oR1Kv5613AO7+1uVDtDSDZtCtS16DpzWUqOpxIYEUCo\newZqIh5HX37W6373PhUy7F/0ow8Q8TCPONy+9JcfYKbxNVqCl8VgHcnAfk0y\nyZyi\r\n=bWnQ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/main.js","types":"dist/index.d.ts","gitHead":"6efecb2c7e440648b9b9b91732583d95b3d1fb57","private":false,"scripts":{"lint":"eslint ./src","test":"jest","build":"npm run lint;npm run test;export NODE_ENV=production;webpack","prepare":"husky install","postpublish":"pinst --enable && PACKAGE_VERSION=$(cat package.json | grep \\\"version\\\" | head -1 | awk -F: '{ print $2 }' | sed 's/[\",]//g' | tr -d '[[:space:]]') && git tag v$PACKAGE_VERSION && git push --tags","prepublishOnly":"pinst --disable && npm run lint && npm run test && npm run build"},"_npmUser":{"name":"yuanfeng.liu","email":"yuanfeng.liu@aloudata.com"},"repository":{"url":"git+https://github.com/FreeJoe/normailze-orm.git","type":"git"},"_npmVersion":"6.14.12","description":"# 介绍","directories":{},"_nodeVersion":"14.16.1","dependencies":{"eslint-plugin-react":"^7.24.0","eslint-plugin-import":"^2.23.4","eslint-plugin-jsx-a11y":"^6.4.1","eslint-plugin-react-hooks":"^4.2.0","eslint-config-airbnb-typescript":"^12.3.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","husky":"^6.0.0","pinst":"^2.1.6","react":"^17.0.2","eslint":"^7.27.0","lodash":"^4.17.21","recoil":"^0.2.0","ts-jest":"^26.5.6","ts-node":"^9.1.1","webpack":"^5.37.1","react-dom":"^17.0.2","ts-loader":"^9.2.1","typescript":"^4.2.4","@types/jest":"^26.0.23","webpack-cli":"^4.7.0","@types/lodash":"^4.14.168","@types/recoil":"0.0.1","@babel/preset-env":"^7.14.2","react-test-renderer":"^17.0.2","@webpack-cli/generators":"^2.1.0","@babel/preset-typescript":"^7.13.0","@testing-library/jest-dom":"^5.12.0","@typescript-eslint/parser":"^4.22.1","@aloudata/eslint-config-base":"0.0.2","@testing-library/react-hooks":"^5.1.2","@typescript-eslint/eslint-plugin":"^4.26.0","declaration-bundler-webpack-plugin":"^1.0.3"},"peerDependencies":{"react":"^17.0.2","lodash":"^4.17.21","recoil":"^0.2.0","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/recoil-normalize-orm_0.1.0-beta.1_1623812239794_0.9180385389652275","host":"s3://npm-registry-packages"}}},"time":{"created":"2021-05-31T02:17:01.460Z","modified":"2026-04-08T03:12:55.235Z","0.0.1-alpha":"2021-05-31T02:17:01.986Z","0.0.2-alpha":"2021-05-31T02:30:08.405Z","0.0.3":"2021-06-03T02:57:59.854Z","0.0.4":"2021-06-03T02:59:57.803Z","0.0.5-beta":"2021-06-03T06:18:03.899Z","0.0.5-beta.1":"2021-06-03T06:18:31.714Z","0.0.5":"2021-06-03T11:11:02.292Z","0.0.6":"2021-06-10T10:13:47.149Z","0.0.7":"2021-06-10T11:13:08.571Z","0.1.0-beta.1":"2021-06-16T02:57:19.970Z"},"bugs":{"url":"https://github.com/FreeJoe/normailze-orm/issues"},"author":{"name":"freeJoe"},"license":"MIT","homepage":"https://github.com/FreeJoe/normailze-orm#readme","keywords":["orm","normalize"],"repository":{"url":"git+https://github.com/FreeJoe/normailze-orm.git","type":"git"},"description":"# 介绍","maintainers":[{"email":"hting1811@163.com","name":"s6-ht"},{"email":"yuanfeng.liu@aloudata.com","name":"yuanfeng.liu"},{"email":"haohua.lv@qq.com","name":"lvhh"},{"email":"leeshiman8080@gmail.com","name":"xiuji__lee"},{"email":"muzi.li@aloudata.com","name":"muzialoudata"},{"email":"chengxiang.yang@aloudata.com","name":"mattuy_dy"}],"readme":"# normalize-orm\n\n# 介绍\n\n基于recoil实现的管理数据实体的工具，能够保证前端应用中数据的统一性。\n\n能够保证同一个数据实例，不论在页面中展示多少处，在内存中只存在同一份数据，对它产生的变更能作用到所有引用它的地方。借鉴了服务端应用数据库的思想，即数据实例只存在一份，并按id存储。\n\n# 案例\n\n假设有图书的数据如下\n\n```\n[{\n    id: 1,\n    name: 'book1',\n    author: {\n        userId: '1',\n        name: 'user1',\n        age: 10\n    },\n    comments: [{\n        cid: 'c1',\n        text: 'good book',\n        user: {\n            userId: '2',\n            name: 'user2',\n            age: 20\n        },\n    }, {\n        cid: 'c2',\n        text: 'very good',\n        user: {\n            userId: '3',\n            name: 'user3',\n            age: 30,\n        },\n    }],\n    summary: 'hello world',\n}, {\n    id: 2,\n    name: 'book2',\n    author: {\n        userId: '2',\n        name: 'user2',\n        age: 20\n    },\n    comments: [{\n        cid: 'c3',\n        text: 'hehe',\n        user: {\n            userId: '1',\n            name: 'user1',\n            age: 10\n        },\n    }, {\n        cid: 'c4',\n        text: 'haha',\n        user: {\n            userId: '3',\n            name: 'user3',\n            age: 30\n        },\n    }],\n    summary: 'new start',\n}]\n```\n\n以上数据的业务模型，有3个实体：图书（Book）、评论（Comment）、用户（User）。\n\n图书实体有名称、作者、评论这些字段，评论实体又有内容、用户信息这些字段。其中作者和用户信息，对应的都是用户实体。\n\n入库以后，数据会以如下格式进行存储，且在整个前端应用内只有唯一的一份。\n\n```\n// Book表\n{\n    '1': {\n        id: 1,\n        name: 'book1',\n        author: '1',\n        comments: ['c1', 'c2'],\n        summary: 'hello world',\n    },\n    '2': {\n        id: 2,\n        name: 'book2',\n        author: '2',\n        comments: ['c3', 'c4'],\n        summary: 'new start',\n    }\n}\n\n// User\n{\n    '1': {\n        userId: '1',\n        name: 'user1',\n        age: 10\n    },\n    '2': {\n        userId: '2',\n        name: 'user2',\n        age: 20\n    },\n    '3': {\n        userId: '3',\n        name: 'user3',\n        age: 30,\n    },\n}\n\n// Comment\n{\n    'c1': {\n        cid: 'c1',\n        text: 'good book',\n        user: '2',\n    },\n    'c2': {\n        cid: 'c2',\n        text: 'very good',\n        user: '3',\n    },\n    'c3': {\n        cid: 'c3',\n        text: 'hehe',\n        user: '1',\n    },\n    'c4': {\n        cid: 'c4',\n        text: 'haha',\n        user: '3',\n    }\n}\n```\n\n# 示例\n\n## 初始化\n\n示例数据如下：\n\n```\nexport const booksData = [{\n    id: 1,\n    name: 'book1',\n    author: { userId: '1', name: 'user1', age: 10 },\n    comments: [{\n        cid: 'c1',\n        text: 'good book',\n        user: { userId: '2', name: 'user2', age: 20 },\n        tags: [{ tid: 't01', name: '标签1', }, { tid: 't02', name: '标签2', }]\n    }, {\n        cid: 'c2',\n        text: 'very good',\n        user: { userId: '3', name: 'user3', age: 30, },\n        tags: [{ tid: 't01', name: '标签1', }, { tid: 't03', name: '标签3', }]\n    }],\n    summary: 'hello world',\n}, {\n    id: 2,\n    name: 'book2',\n    author: { userId: '2', name: 'user2', age: 20 },\n    comments: [{\n        cid: 'c3',\n        text: 'hehe',\n        user: { userId: '1', name: 'user1', age: 10 },\n        tags: [{ tid: 't04', name: '标签4', }]\n    }, {\n        cid: 'c4',\n        text: 'haha',\n        user: { userId: '3', name: 'user3', age: 30 },\n        tags: [{ tid: 't02', name: '标签2', }, { tid: 't05', name: '标签5', }]\n    }],\n    summary: 'new start',\n}];\n```\n\n先定义模型：\n\n```\n// 图书模型\nexport const Book = {\n    // 模型名称\n    name: 'Book',\n    // 主键字段名称\n    idAttr: 'id',\n    // 关联模型的字段名，及关联模型名\n    fields: {\n        author: 'User',\n        comments: 'Comment'\n    }\n};\n\nexport const User = {\n    name: 'User',\n    idAttr: 'userId',\n};\n\nexport const Comment = {\n    name: 'Comment',\n    idAttr: 'cid',\n    fields: {\n        user: 'User',\n        tags: 'Tag',\n    },\n};\n\nexport const Tag = {\n    name: 'Tag',\n    idAttr: 'tid',\n};\n\n```\n\n初始化整个库\n```\nconst { createModel, } = initModel();\n\n// 初始化各模型表\n// createModel接受2个泛型，第一个是完整数据类型如IBookItem，第二个是处理后的数据类型如INormalizedBookItem\n// INormalizedBookItem 中关联其他模型的字段都已被处理成id或id数组。第二个泛型可选，如果像IUserItem这样字段不再关联其他模型的情况，则不必传入第二个泛型\nconst bookStore = createModel<IBookItem, INormalizedBookItem>(Book);\nconst userStore = createModel<IUserItem>(User);\nconst commentStore = createModel<ICommentItem, INormalizedCommentItem>(Comment);\nconst tagStore = createModel<ITagItem>(Tag);\n\ninterface IBookItem {\n  id: number;\n  name: string;\n  author: IUserItem;\n  comments: ICommentItem[];\n}\n\ninterface INormalizedBookItem {\n  id: number;\n  name: string;\n  author: string;\n  comments: string[];\n}\n\ninterface IUserItem {\n  userId: string;\n  name: string;\n  age: number;\n}\n\ninterface ICommentItem {\n  cid: string;\n  text: string;\n  user: IUserItem;\n  tags: ITagItem[];\n}\n\ninterface INormalizedCommentItem {\n  cid: string;\n  text: string;\n  user: string[];\n}\n\ninterface ITagItem {\n  tid: string;\n  name: string;\n}\n```\n\n## 插入数据\n\n```\n// 在自定义hook中使用\nfunction useCustomHook() {\n    // 可以直接获取book的set方法\n    const set = bookStore.useSetState();\n\n    // 也可以和shallow数据一起获取set方法，类似于react的useState\n    const [shallowData, set] = bookStore.useShallowState();\n    // shallow顾名思义，是浅层的意思。名字有shallow的方法，获取到的数据中，与其他模型关联的字段的值都会被替换为对应的id\n    // 如 Book 模型中单条数据的 shallow 数据：{ id: 1, name: 'book1', author: '1', comments: ['c1', 'c2'], summary: 'hello world', }\n    // 其中关联 User 和 Comment 模型的字段 author 和 comments，值已被替换为对应的id\n\n    // 也可以和完整数据一起获取set方法，类似于react的useState\n    const [data, set] = bookStore.useState();\n\n    useEffect(() => {\n        const ids = set(booksData);\n    }, []);\n}\n```\n\nset方法，会将数据存储成以主键值为键的Map，并根据模型定义中定义的模型关联关系，将数据进行拆分。并返回当前模型新插入数据的id值。\n\nset方法，支持插入批量数据，也支持插入单个数据，也支持修改现有数据的部分字段，有以下几种调用方式：\n\n```\nset(list: Partial<T>[]): IModelId[]; // 数据中必须包含id字段\n\nset(item: Partial<T>): IModelId; // 数据中必须包含id字段\n\nset(id: IModelId, item: Partial<T>): IModelId; // 由于指定了id，因此数据中可以不包含id字段\n\ntype IModelId = string | number;\n```\n\n## 读取数据\n\n```\n// 在hook函数中\nfunction useCustomHook() {\n    const idList = useMemo(() => [1, 2], []);\n\n    // 入参 idList 需要是个immutable且多次渲染中保持不变的数据，如atom里取出的值。这样可以命中useGetValue中的缓存，保证books在多次渲染中返回同一个对象。方便在下游的useCallback中使用books数据。\n    // 下面的 useShallowValue，useState，useShallowState 也是如此\n\n    // 批量获取完整数据，books的数据和初始化章节中booksData数据一样\n    const books = bookStore.useGetValue(idList);\n\n    // 批量获取本模型下数据，shallowBooks获取到的是Book模型下只包含其他模型id的数据\n    // [{ id: 1, name: 'book1', author: '1', comments: ['c1', 'c2'], summary: 'hello world', }, { id: 2, name: 'book2', author: '2', comments: ['c3', 'c4'], summary: 'new start', }]\n    const shallowBooks = bookStore.useShallowValue(idList);\n\n    const singleId = useMemo(() => 1, []);\n    // 获取单条完整数据\n    const singleBook = bookStore.useGetValue(singleId);\n    // 获取单条本模型下的数据\n    const singleShallowBook = bookStore.useGetValue(singleId);\n\n    // useState 返回的内容等同于 [bookStore.useGetValue(...), bookStore.useSetState()], useSetState将在下文介绍。\n    const [bookValue, setBookState] = bookStore.useState(singleIdOrIdList);\n}\n```\n\n## 删除数据\n\n删除整个库所有的数据\n\n```\nconst { useChangeData, } = initModel();\n\n// 在hook函数中\nfunction useCustomHook() {\n    // 调用reset方法可以清空整个库中的所有数据\n    const { reset, } = useChangeData();\n}\n```\n\n删除单个模型中的部分数据\n\n```\n// 在hook函数中\nfunction useCustomHook() {\n    const remove = bookStore.useRemoveState();\n    useEffect(() => {\n        // 删除id值为1和2的数据\n        remove([1, 2]);\n    }, []);\n}\n```\n\nremove方法支持删除单条或批量的数据，方法定义如下：\n\n```\nremove(id: IModelId | IModelId[]) => void\n\ntype IModelId = string | number;\n```\n\n但只能删除本模型下的数据，不会删除关联的其他模型下的数据，因为删除其他模型下的数据可能产生其他影响，不太安全。\n","readmeFilename":"README.md"}