{"_id":"express-react-boilerplate","_rev":"43-6f89da6c58415d89debdc12d87d04119","time":{"0.0.1":"2018-01-15T16:21:49.339Z","created":"2019-12-09T09:01:36.400Z","1.1.0":"2019-12-09T09:01:36.595Z","modified":"2022-05-01T23:39:53.357Z","1.2.0":"2019-12-09T09:43:49.845Z","1.3.0":"2019-12-09T10:09:00.377Z","1.4.0":"2019-12-09T10:23:01.970Z","1.5.0":"2019-12-09T10:31:41.638Z","1.6.0":"2019-12-09T10:42:54.979Z","1.7.0":"2019-12-10T09:17:16.394Z","1.7.1":"2019-12-10T09:36:28.305Z","1.7.2":"2019-12-10T09:51:26.816Z","1.7.3":"2019-12-10T09:56:37.604Z","1.7.4":"2019-12-10T10:49:23.736Z","1.8.0":"2019-12-11T08:00:30.072Z","1.8.1":"2019-12-11T10:53:46.653Z","1.9.0":"2019-12-11T17:28:52.756Z","1.9.1":"2019-12-12T07:14:35.452Z","1.9.2":"2019-12-13T14:16:17.045Z","1.9.3":"2019-12-15T08:32:28.270Z","1.9.4":"2019-12-15T08:49:20.042Z","1.10.0":"2019-12-16T11:18:52.489Z","1.10.1":"2019-12-16T11:43:46.485Z","2.0.0":"2019-12-17T06:56:33.309Z","2.0.1":"2019-12-17T10:42:24.205Z","2.1.0":"2019-12-19T08:39:01.127Z","2.1.1":"2019-12-19T09:45:53.880Z","2.1.2":"2020-01-17T05:57:15.333Z","2.1.3":"2020-02-11T02:36:06.503Z","2.1.4":"2020-02-25T10:54:32.344Z","3.0.0":"2020-04-27T19:45:43.776Z","4.0.0":"2020-06-05T05:41:09.816Z","4.1.0":"2020-06-12T14:52:44.591Z","4.1.1":"2020-06-16T05:29:45.595Z","4.2.0":"2020-06-28T06:52:33.005Z","4.2.1":"2020-09-17T05:23:08.932Z"},"name":"express-react-boilerplate","dist-tags":{"latest":"4.2.1"},"versions":{"1.6.0":{"name":"express-react-boilerplate","version":"1.6.0","main":"dist/index.js","license":"MIT","author":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com","url":"https://github.com/htdangkhoa"},"contributors":[{"name":"huynhtran.dangkhoa@gmail.com"}],"homepage":"https://github.com/htdangkhoa/erb","bugs":{"url":"https://github.com/htdangkhoa/erb/issues"},"repository":{"type":"git","url":"git+https://github.com/htdangkhoa/erb.git"},"keywords":["erb","express","expressjs","rest","restful","router","app","api","react","react-router","redux","template","webpack","universal"],"bin":{"erb-gen":"./bin/index.js"},"scripts":{"start":"NODE_ENV=production node -r dotenv-flow/config dist/index.js","prestart":"npm run build","dev":"NODE_ENV=development nodemon src/index.js --exec \"node -r dotenv-flow/config ./node_modules/.bin/babel-node\"","predev":"flow stop && flow","build":"BABEL_ENV=production babel --minified --no-comments src -D -d dist && npm run wp","prebuild":"rimraf dist","wp":"NODE_ENV=production node -r dotenv-flow/config ./node_modules/.bin/webpack --progress --colors --config src/tools/webpack.config.js --bail","stats":"NODE_ENV=production node -r dotenv-flow/config ./node_modules/.bin/webpack --config src/tools/webpack.config.js --progress --profile --json > stats.json --bail","analyze":"webpack-bundle-analyzer stats.json","preanalyze":"npm run stats","storybook":"start-storybook --ci"},"engines":{"node":">=10.13.0"},"nodemonConfig":{"ignore":["dist","src/client","src/store"]},"devDependencies":{"@babel/cli":"^7.6.4","@babel/core":"^7.2.2","@babel/node":"^7.6.3","@babel/plugin-proposal-optional-chaining":"^7.6.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-transform-runtime":"^7.7.4","@babel/plugin-transform-spread":"^7.6.2","@babel/polyfill":"^7.6.0","@babel/preset-env":"^7.3.1","@babel/preset-flow":"^7.0.0","@babel/preset-react":"^7.6.3","@babel/runtime":"^7.6.3","@storybook/react":"^5.2.8","babel-eslint":"^10.0.3","babel-loader":"^8.0.6","babel-plugin-module-resolver":"^3.2.0","compression-webpack-plugin":"^3.0.0","css-loader":"^3.2.0","eslint":"^6.5.1","eslint-config-airbnb-base":"^14.0.0","eslint-config-prettier":"^6.5.0","eslint-import-resolver-babel-module":"^5.1.0","eslint-plugin-flowtype":"^4.3.0","eslint-plugin-import":"^2.18.2","eslint-plugin-prettier":"^3.1.1","eslint-plugin-react":"^7.16.0","flow-bin":"^0.113.0","friendly-errors-webpack-plugin":"^1.7.0","lodash-webpack-plugin":"^0.11.5","nodemon":"^2.0.1","prettier":"^1.18.2","sass-loader":"^8.0.0","style-loader":"^1.0.0","terser-webpack-plugin":"^2.2.1","url-loader":"^3.0.0","webpack":"^4.29.0","webpack-bundle-analyzer":"^3.6.0","webpack-cli":"^3.2.1","webpack-dev-middleware":"^3.7.2","webpack-hot-middleware":"^2.25.0","webpackbar":"^4.0.0"},"dependencies":{"@fortawesome/fontawesome-free":"^5.11.2","@hot-loader/react-dom":"^16.10.2","asset-require-hook":"^1.2.0","axios":"^0.19.0","bcrypt":"^3.0.6","body-parser":"^1.19.0","bootstrap":"^4.3.1","commander":"^4.0.1","compression":"^1.7.4","connected-react-router":"^6.5.2","cors":"^2.8.5","css-modules-require-hook":"^4.2.3","dotenv-flow":"^3.1.0","emojione":"^4.5.0","express":"^4.17.1","git-clone":"^0.1.0","helmet":"^3.21.1","history":"^4.10.1","html-minifier":"^4.0.0","i18next":"^19.0.1","i18next-browser-languagedetector":"^4.0.0","i18next-xhr-backend":"^3.2.0","jsonwebtoken":"^8.5.1","lodash":"^4.17.15","moment-timezone":"^0.5.27","mongodb":"^3.3.3","node-sass":"^4.13.0","passport":"^0.4.0","passport-jwt":"^4.0.0","prop-types":"^15.7.2","react":"^16.10.2","react-cookie":"^4.0.1","react-dev-utils":"^10.0.0","react-dom":"^16.11.0","react-helmet":"^5.2.1","react-hot-loader":"^4.12.15","react-html-parser":"^2.0.2","react-i18next":"^11.0.0","react-mde":"^7.6.2","react-paginate":"^6.3.2","react-redux":"^7.1.1","react-router":"^5.1.2","react-router-config":"^5.1.1","react-router-dom":"^5.1.2","react-router-last-location":"^2.0.1","react-spinners":"^0.6.1","react-switch":"^5.0.1","react-toastify":"^5.4.0","reactstrap":"^8.1.1","redux":"^4.0.4","redux-devtools-extension":"^2.13.8","redux-form":"^8.2.6","redux-thunk":"^2.3.0","rimraf":"^3.0.0","serialize-javascript":"^2.1.0","showdown":"^1.9.1","universal-cookie":"^4.0.2","validator":"^12.0.0"},"gitHead":"c26787b5ff4e8582cc5c7081d1399d661735eec3","description":"<h1 align='center'>erb</h1>","_id":"express-react-boilerplate@1.6.0","_npmVersion":"6.4.1","_nodeVersion":"10.13.0","_npmUser":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"},"dist":{"integrity":"sha512-DuiDcahdbeve2m3X/TRr/u7dX7fw8QKjzdK4C/m+auZv7Z1K6mhA81x34YrF2HjICtQTaVZyPNKVz/kRVg2tOA==","shasum":"13aee3f94e38784f7cfae3f9e924842f8d9082f1","tarball":"https://registry.npmjs.org/express-react-boilerplate/-/express-react-boilerplate-1.6.0.tgz","fileCount":193,"unpackedSize":4717547,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd7iUvCRA9TVsSAnZWagAAxmEP/1JX3rbuWXTj53NqVgUN\n2OsJ5KfbG0NN/1kNUZWkW3/jG/bZDsCZzbheODT0hnMVsrz4Ci1yCM0M5FKB\nGnZo0slCoXzLdLyiTgps0d9LOggUu5Ctl3TvtThU8vAPlwSHdk2bFTm1eFvp\n10psQej7Ot5aNkw0kUzMPyliEa2fnaZomby1326EMenYQHPhss6jjuksDAKG\nOSyWFxsYxKhXsEbU2hsyWqP2u9DoPZWl7OjiRSBHhx+d/hxAPqv5r4Gbjnon\nF+oNGk+otjbuAPLlK414cf+c5D17Y+ZphhO671fl9Mv2lN/WU8lejnummZLe\njRh++Rl7v8G1lrwNXsG+sly+0pU6A2XdXHvNFEaoDVLFByGIY+A44DnrD0Yt\nIF8qwQz6KNyVzEmXVR9DTfRF7QpJd8MPrLl+mfbG2Tt43bjx0bCeTx0mMsSI\nl3dXduEZmjk47j0u0F31JiuS+qE7udOAPPA79dK91KQSI+mh2h6dFWxgDZo/\nEn4yLABEIp0w3wxG42sIBdEEQsTE3xj+QuUYLoJDIfpjzsYPCHo2TNVKhTs4\nXQ+diFkVAoLew1dPFBYuy6JDG/d4D4g3ODA62ptfEYn+lhlrq9c49RIYtUMw\n4F3uHYNSIPi0Wb/p3oR+AEAfBzScnz00NYl4Ec6f+Nwsx3kFl+8RQKlXgsru\n856b\r\n=52YO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAh6Bbe1FJmDQUzv9wjyL+nwcdkSSlrv0IqsA11fLh5zAiAQxzpABUQG4p/wOEqdC5gdLivVjjs85l+6HN4U8ng06Q=="}]},"maintainers":[{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-react-boilerplate_1.6.0_1575888174723_0.5637839757631578"},"_hasShrinkwrap":false},"1.7.0":{"name":"express-react-boilerplate","description":"Express react boilerplate","version":"1.7.0","main":"dist/index.js","license":"MIT","author":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com","url":"https://github.com/htdangkhoa"},"contributors":[{"name":"huynhtran.dangkhoa@gmail.com"}],"homepage":"https://github.com/htdangkhoa/erb","bugs":{"url":"https://github.com/htdangkhoa/erb/issues"},"repository":{"type":"git","url":"git+https://github.com/htdangkhoa/erb.git"},"keywords":["erb","express","expressjs","rest","restful","router","app","api","react","react-router","redux","template","webpack","universal"],"bin":{"erb-gen":"./bin/index.js"},"scripts":{"start":"NODE_ENV=production node -r dotenv-flow/config dist/index.js","prestart":"npm run build","dev":"NODE_ENV=development nodemon src/index.js --exec \"node -r dotenv-flow/config ./node_modules/.bin/babel-node\"","predev":"flow stop && flow","build":"BABEL_ENV=production babel --minified --no-comments src -D -d dist && npm run wp","prebuild":"rimraf dist","wp":"NODE_ENV=production node -r dotenv-flow/config ./node_modules/.bin/webpack --progress --colors --config src/tools/webpack.config.js --bail","stats":"NODE_ENV=production node -r dotenv-flow/config ./node_modules/.bin/webpack --config src/tools/webpack.config.js --progress --profile --json > stats.json --bail","analyze":"webpack-bundle-analyzer stats.json","preanalyze":"npm run stats","storybook":"start-storybook --ci"},"engines":{"node":">=10.13.0"},"nodemonConfig":{"ignore":["dist","src/client","src/store"]},"devDependencies":{"@babel/cli":"^7.6.4","@babel/core":"^7.2.2","@babel/node":"^7.6.3","@babel/plugin-proposal-optional-chaining":"^7.6.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-transform-runtime":"^7.7.4","@babel/plugin-transform-spread":"^7.6.2","@babel/polyfill":"^7.6.0","@babel/preset-env":"^7.3.1","@babel/preset-flow":"^7.0.0","@babel/preset-react":"^7.6.3","@babel/runtime":"^7.6.3","@storybook/react":"^5.2.8","babel-eslint":"^10.0.3","babel-loader":"^8.0.6","babel-plugin-module-resolver":"^3.2.0","compression-webpack-plugin":"^3.0.0","css-loader":"^3.2.0","eslint":"^6.5.1","eslint-config-airbnb-base":"^14.0.0","eslint-config-prettier":"^6.5.0","eslint-import-resolver-babel-module":"^5.1.0","eslint-plugin-flowtype":"^4.3.0","eslint-plugin-import":"^2.18.2","eslint-plugin-prettier":"^3.1.1","eslint-plugin-react":"^7.16.0","flow-bin":"^0.113.0","friendly-errors-webpack-plugin":"^1.7.0","lodash-webpack-plugin":"^0.11.5","mini-css-extract-plugin":"^0.8.0","nodemon":"^2.0.1","optimize-css-assets-webpack-plugin":"^5.0.3","prettier":"^1.18.2","sass-loader":"^8.0.0","style-loader":"^1.0.0","terser-webpack-plugin":"^2.2.1","url-loader":"^3.0.0","webpack":"^4.29.0","webpack-bundle-analyzer":"^3.6.0","webpack-cli":"^3.2.1","webpack-dev-middleware":"^3.7.2","webpack-hot-middleware":"^2.25.0","webpackbar":"^4.0.0"},"dependencies":{"@fortawesome/fontawesome-svg-core":"^1.2.25","@fortawesome/free-brands-svg-icons":"^5.11.2","@fortawesome/free-regular-svg-icons":"^5.11.2","@fortawesome/free-solid-svg-icons":"^5.11.2","@fortawesome/react-fontawesome":"^0.1.8","@hot-loader/react-dom":"^16.10.2","asset-require-hook":"^1.2.0","axios":"^0.19.0","bcrypt":"^3.0.6","body-parser":"^1.19.0","bootstrap":"^4.3.1","commander":"^4.0.1","compression":"^1.7.4","connected-react-router":"^6.5.2","cors":"^2.8.5","css-modules-require-hook":"^4.2.3","dotenv-flow":"^3.1.0","emojione":"^4.5.0","express":"^4.17.1","git-clone":"^0.1.0","helmet":"^3.21.1","history":"^4.10.1","html-minifier":"^4.0.0","i18next":"^19.0.1","i18next-browser-languagedetector":"^4.0.0","i18next-xhr-backend":"^3.2.0","jsonwebtoken":"^8.5.1","lodash":"^4.17.15","moment-timezone":"^0.5.27","mongodb":"^3.3.3","node-sass":"^4.13.0","passport":"^0.4.0","passport-jwt":"^4.0.0","prop-types":"^15.7.2","react":"^16.10.2","react-cookie":"^4.0.1","react-dev-utils":"^10.0.0","react-dom":"^16.11.0","react-helmet":"^5.2.1","react-hot-loader":"^4.12.15","react-html-parser":"^2.0.2","react-i18next":"^11.0.0","react-mde":"^7.6.2","react-paginate":"^6.3.2","react-redux":"^7.1.1","react-router":"^5.1.2","react-router-config":"^5.1.1","react-router-dom":"^5.1.2","react-router-last-location":"^2.0.1","react-spinners":"^0.6.1","react-switch":"^5.0.1","react-toastify":"^5.4.0","reactstrap":"^8.1.1","redux":"^4.0.4","redux-devtools-extension":"^2.13.8","redux-form":"^8.2.6","redux-thunk":"^2.3.0","rimraf":"^3.0.0","serialize-javascript":"^2.1.0","showdown":"^1.9.1","universal-cookie":"^4.0.2","validator":"^12.0.0"},"gitHead":"445efd749189900370b17d9a7f288dc30c35be0b","_id":"express-react-boilerplate@1.7.0","_npmVersion":"6.4.1","_nodeVersion":"10.13.0","_npmUser":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"},"dist":{"integrity":"sha512-dgAEMe9nvR/ckKNXJ/HPNa0aBQOSQ1hvttsV0lP6v37PfzP8x1aAfTBVaQ7jLzIvaLysP1peFYtgYaoUZl2XnQ==","shasum":"a681c363d4834706b07f32d14f9cafe9bb9e83cc","tarball":"https://registry.npmjs.org/express-react-boilerplate/-/express-react-boilerplate-1.7.0.tgz","fileCount":179,"unpackedSize":2096683,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd72KcCRA9TVsSAnZWagAA2woQAIA41VxvHbev9JIKJABj\nxoPzgYSC60wAZTzSDv6Ezzt53iougenakPcruolX+cPlO9+7wDUuYnx2poP6\n+dkZQ087X05dowUUxdRaCWVx/+hx4p/zzW4XwMBtgfpD0NzeaMH/ObvYcj3Q\nB4O4fLPQDH7/xDzGTEzI+ji4vfQAr5RmKa8o/LwiNmmNYeyGit6OXl9ugPkT\nY1sTC/xi/yjpNSu417I7LyamP0CFF6ZmEmNO0EwxRJ+hmshyKAlXNwDI6FF9\nJ5984DjMtBvY0OT8/KRSWGT484TB6TpK8yIImwHrmqA9c2W5b1mG5U5tL0Br\nbLJzQTK+NrRkjGnkd3RGDwek4ZBxnGSLqhHAPe1DiOR2MgmXP2QdjIqjIRFh\nAThdCay1rzAjvCP9s6rFO+o6+g8G0MGjSyaqddx4LhjarGQpTZ5ijFT7D3P5\nZYiyntKku3Z+T4oVE3m0gvWPy2BS7Y8QqMRER2offb7MHgvfr0Pdl4021cew\nVyzffpCZXGjt9+GVvfx83E4ir/4PHLBxP5UHX+4v2TjCakdbb+u1gTGiwBmq\n80B+d56XMJ1AGZ4wTYAGpDg9HWVQea9sbkb6/vJGeYzYa9wVGzmXomWlpe7H\neUnGf83q6jUwpLvGgL7tyJzCq+Qiu1b3i3mvU5+xV+CFuOC2baRRLvLzBm6q\nDE7J\r\n=RIOF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHBfOItUHe9v/ivGOMhj21m+qG8uQd0AlqcvSLNeNcHbAiEAl+wsp0gDtAq8hZ+QGuGnYcYgRMMa1wc1PWJSazthY54="}]},"maintainers":[{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-react-boilerplate_1.7.0_1575969436176_0.41100016729279476"},"_hasShrinkwrap":false},"1.7.3":{"name":"express-react-boilerplate","description":"Express react boilerplate","version":"1.7.3","main":"dist/index.js","license":"MIT","author":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com","url":"https://github.com/htdangkhoa"},"contributors":[{"name":"huynhtran.dangkhoa@gmail.com"}],"homepage":"https://github.com/htdangkhoa/erb","bugs":{"url":"https://github.com/htdangkhoa/erb/issues"},"repository":{"type":"git","url":"git+https://github.com/htdangkhoa/erb.git"},"keywords":["erb","express","expressjs","rest","restful","router","app","api","react","react-router","redux","template","webpack","universal"],"bin":{"erb-gen":"./bin/index.js"},"scripts":{"start":"NODE_ENV=production node -r dotenv-flow/config dist/index.js","prestart":"npm run build","dev":"NODE_ENV=development nodemon src/index.js --exec \"node -r dotenv-flow/config ./node_modules/.bin/babel-node\"","predev":"flow stop && flow","build":"BABEL_ENV=production babel --minified --no-comments src -D -d dist && npm run wp","prebuild":"rimraf dist","wp":"NODE_ENV=production node -r dotenv-flow/config ./node_modules/.bin/webpack --progress --colors --config src/tools/webpack.config.js --bail","stats":"NODE_ENV=production node -r dotenv-flow/config ./node_modules/.bin/webpack --config src/tools/webpack.config.js --progress --profile --json > stats.json --bail","analyze":"webpack-bundle-analyzer stats.json","preanalyze":"npm run stats","storybook":"start-storybook --ci"},"engines":{"node":">=10.13.0"},"nodemonConfig":{"ignore":["dist","src/client","src/store"]},"devDependencies":{"@babel/cli":"^7.6.4","@babel/core":"^7.2.2","@babel/node":"^7.6.3","@babel/plugin-proposal-optional-chaining":"^7.6.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-transform-runtime":"^7.7.4","@babel/plugin-transform-spread":"^7.6.2","@babel/polyfill":"^7.6.0","@babel/preset-env":"^7.3.1","@babel/preset-flow":"^7.0.0","@babel/preset-react":"^7.6.3","@babel/runtime":"^7.6.3","@storybook/react":"^5.2.8","babel-eslint":"^10.0.3","babel-loader":"^8.0.6","babel-plugin-module-resolver":"^3.2.0","compression-webpack-plugin":"^3.0.0","css-loader":"^3.2.0","eslint":"^6.5.1","eslint-config-airbnb-base":"^14.0.0","eslint-config-prettier":"^6.5.0","eslint-import-resolver-babel-module":"^5.1.0","eslint-plugin-flowtype":"^4.3.0","eslint-plugin-import":"^2.18.2","eslint-plugin-prettier":"^3.1.1","eslint-plugin-react":"^7.16.0","flow-bin":"^0.113.0","friendly-errors-webpack-plugin":"^1.7.0","lodash-webpack-plugin":"^0.11.5","mini-css-extract-plugin":"^0.8.0","nodemon":"^2.0.1","optimize-css-assets-webpack-plugin":"^5.0.3","prettier":"^1.18.2","sass-loader":"^8.0.0","style-loader":"^1.0.0","terser-webpack-plugin":"^2.2.1","url-loader":"^3.0.0","webpack":"^4.29.0","webpack-bundle-analyzer":"^3.6.0","webpack-cli":"^3.2.1","webpack-dev-middleware":"^3.7.2","webpack-hot-middleware":"^2.25.0","webpackbar":"^4.0.0"},"dependencies":{"@fortawesome/fontawesome-svg-core":"^1.2.25","@fortawesome/free-brands-svg-icons":"^5.11.2","@fortawesome/free-regular-svg-icons":"^5.11.2","@fortawesome/free-solid-svg-icons":"^5.11.2","@fortawesome/react-fontawesome":"^0.1.8","@hot-loader/react-dom":"^16.10.2","asset-require-hook":"^1.2.0","axios":"^0.19.0","bcrypt":"^3.0.6","body-parser":"^1.19.0","bootstrap":"^4.3.1","commander":"^4.0.1","compression":"^1.7.4","connected-react-router":"^6.5.2","cors":"^2.8.5","css-modules-require-hook":"^4.2.3","dotenv-flow":"^3.1.0","emojione":"^4.5.0","express":"^4.17.1","git-clone":"^0.1.0","helmet":"^3.21.1","history":"^4.10.1","html-minifier":"^4.0.0","i18next":"^19.0.1","i18next-browser-languagedetector":"^4.0.0","i18next-xhr-backend":"^3.2.0","jsonwebtoken":"^8.5.1","lodash":"^4.17.15","moment-timezone":"^0.5.27","mongodb":"^3.3.3","node-sass":"^4.13.0","passport":"^0.4.0","passport-jwt":"^4.0.0","prop-types":"^15.7.2","react":"^16.10.2","react-cookie":"^4.0.1","react-dev-utils":"^10.0.0","react-dom":"^16.11.0","react-helmet":"^5.2.1","react-hot-loader":"^4.12.15","react-html-parser":"^2.0.2","react-i18next":"^11.0.0","react-mde":"^7.6.2","react-paginate":"^6.3.2","react-redux":"^7.1.1","react-router":"^5.1.2","react-router-config":"^5.1.1","react-router-dom":"^5.1.2","react-router-last-location":"^2.0.1","react-spinners":"^0.6.1","react-switch":"^5.0.1","react-toastify":"^5.4.0","reactstrap":"^8.1.1","redux":"^4.0.4","redux-devtools-extension":"^2.13.8","redux-form":"^8.2.6","redux-thunk":"^2.3.0","rimraf":"^3.0.0","serialize-javascript":"^2.1.0","showdown":"^1.9.1","universal-cookie":"^4.0.2","validator":"^12.0.0"},"gitHead":"f1b9a5c51123f8f8f76a1227228120a4b4321502","_id":"express-react-boilerplate@1.7.3","_npmVersion":"6.4.1","_nodeVersion":"10.13.0","_npmUser":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"},"dist":{"integrity":"sha512-QLA/qJ28VVsQqhwpYDe5vKIoF+rKIuZpOm+1O4kKVpFHkEazifZ1TSaRuk3/X3plWim1hVsB1/xTCaHe9lOggQ==","shasum":"fd620298a6d90c6a0ee8e8f48c82dd7f1aa22a4a","tarball":"https://registry.npmjs.org/express-react-boilerplate/-/express-react-boilerplate-1.7.3.tgz","fileCount":179,"unpackedSize":2096880,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd72vVCRA9TVsSAnZWagAA9WAP/iQxoeltd6UhwqnBLf0t\nre5QLT114clrymUieJxjW2LVHGyA/87wo4wX3yk63vFfPdQG0qmgnC6HblpG\n3+yxNZWJr637rYR4PcKCTWwA3mi/m/YR8GJ7/nFPFXTdMPVW1wD0SIa3QGu8\nxAML6NskSPDYJbcDSpZRyA7whc62GdtsZHRXLY1MEFzT2z3uEvphpWPQoQJt\nUFwDS1AiRz4jKZj3B0jG4mFYHa6voxc4ZJMiZ89buGB6s083C2G+nLJ7ljfx\ncUtasZE5SDBTJtZPVxU6HTXX8n4PRcV6jiXjT4CFzc8Vh2HkLbfmA6Y1mvpJ\nTJlGsjiJDxu+0pt45gfwkp5BPL8OIbS8h9etH3xhyR1HFurEBz9iZmAOzuVW\nVelPqYxSqZdo/8MKjEW4+wGzN8wVucsu8is0xxetT3gpMNC87V4c2avyBEjZ\nVBM0WkfBjeK1RBzN+5P2Xld/pxEDhaWpqQim8rR5YOT0J6Sb8tdUyQBX8zZb\n1mrI4GmgiWwlZJdog1DX/waJ/SgcyorS9uQeaUNrfFogSH5uHDEVtibIZ0tB\nmmAz6ohccmjONOH8rRvqIRzIpAIHfSUl2cO34SpHGHRM0YQ0kU3ahHz2BTX1\ngN4a5gPX+foJlTCm0RHEmuYrBSLXtLYhzKol1dwfi2P7n2XHGRGNx67nzhez\nr6t8\r\n=Uy3W\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG1gc1AZ33p4Psc7TEQQGW34A4baquwDbMAYPBo+MU+GAiAZMwMJK/ZbDe55vY38JUA325/hlsQSSbudb4KeJPWBag=="}]},"maintainers":[{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-react-boilerplate_1.7.3_1575971797399_0.8353242315190637"},"_hasShrinkwrap":false},"1.7.4":{"name":"express-react-boilerplate","description":"Express react boilerplate","version":"1.7.4","main":"dist/index.js","license":"MIT","author":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com","url":"https://github.com/htdangkhoa"},"contributors":[{"name":"huynhtran.dangkhoa@gmail.com"}],"homepage":"https://github.com/htdangkhoa/erb","bugs":{"url":"https://github.com/htdangkhoa/erb/issues"},"repository":{"type":"git","url":"https://github.com/htdangkhoa/erb.git"},"keywords":["erb","express","expressjs","rest","restful","router","app","api","react","react-router","redux","template","webpack","universal"],"bin":{"erb-gen":"./bin/index.js"},"scripts":{"start":"NODE_ENV=production node -r dotenv-flow/config dist/index.js","prestart":"npm run build","dev":"NODE_ENV=development nodemon src/index.js --exec \"node -r dotenv-flow/config ./node_modules/.bin/babel-node\"","predev":"flow stop && flow","build":"BABEL_ENV=production babel --minified --no-comments src -D -d dist && npm run wp","prebuild":"rimraf dist","wp":"NODE_ENV=production node -r dotenv-flow/config ./node_modules/.bin/webpack --progress --colors --config src/tools/webpack.config.js --bail","stats":"NODE_ENV=production node -r dotenv-flow/config ./node_modules/.bin/webpack --config src/tools/webpack.config.js --progress --profile --json > stats.json --bail","analyze":"webpack-bundle-analyzer stats.json","preanalyze":"npm run stats","storybook":"start-storybook --ci"},"engines":{"node":">=10.13.0"},"nodemonConfig":{"ignore":["dist","src/client","src/store"]},"devDependencies":{"@babel/cli":"^7.6.4","@babel/core":"^7.2.2","@babel/node":"^7.6.3","@babel/plugin-proposal-optional-chaining":"^7.6.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-transform-runtime":"^7.7.4","@babel/plugin-transform-spread":"^7.6.2","@babel/polyfill":"^7.6.0","@babel/preset-env":"^7.3.1","@babel/preset-flow":"^7.0.0","@babel/preset-react":"^7.6.3","@babel/runtime":"^7.6.3","@storybook/react":"^5.2.8","babel-eslint":"^10.0.3","babel-loader":"^8.0.6","babel-plugin-module-resolver":"^3.2.0","compression-webpack-plugin":"^3.0.0","css-loader":"^3.2.0","eslint":"^6.5.1","eslint-config-airbnb-base":"^14.0.0","eslint-config-prettier":"^6.5.0","eslint-import-resolver-babel-module":"^5.1.0","eslint-plugin-flowtype":"^4.3.0","eslint-plugin-import":"^2.18.2","eslint-plugin-prettier":"^3.1.1","eslint-plugin-react":"^7.16.0","flow-bin":"^0.113.0","friendly-errors-webpack-plugin":"^1.7.0","lodash-webpack-plugin":"^0.11.5","mini-css-extract-plugin":"^0.8.0","nodemon":"^2.0.1","optimize-css-assets-webpack-plugin":"^5.0.3","prettier":"^1.18.2","sass-loader":"^8.0.0","style-loader":"^1.0.0","terser-webpack-plugin":"^2.2.1","url-loader":"^3.0.0","webpack":"^4.29.0","webpack-bundle-analyzer":"^3.6.0","webpack-cli":"^3.2.1","webpack-dev-middleware":"^3.7.2","webpack-hot-middleware":"^2.25.0","webpackbar":"^4.0.0"},"dependencies":{"@fortawesome/fontawesome-svg-core":"^1.2.25","@fortawesome/free-brands-svg-icons":"^5.11.2","@fortawesome/free-regular-svg-icons":"^5.11.2","@fortawesome/free-solid-svg-icons":"^5.11.2","@fortawesome/react-fontawesome":"^0.1.8","@hot-loader/react-dom":"^16.10.2","asset-require-hook":"^1.2.0","axios":"^0.19.0","bcrypt":"^3.0.6","body-parser":"^1.19.0","bootstrap":"^4.3.1","commander":"^4.0.1","compression":"^1.7.4","connected-react-router":"^6.5.2","cors":"^2.8.5","css-modules-require-hook":"^4.2.3","dotenv-flow":"^3.1.0","emojione":"^4.5.0","express":"^4.17.1","git-clone":"^0.1.0","helmet":"^3.21.1","history":"^4.10.1","html-minifier":"^4.0.0","i18next":"^19.0.1","i18next-browser-languagedetector":"^4.0.0","i18next-xhr-backend":"^3.2.0","jsonwebtoken":"^8.5.1","lodash":"^4.17.15","moment-timezone":"^0.5.27","mongodb":"^3.3.3","node-sass":"^4.13.0","passport":"^0.4.0","passport-jwt":"^4.0.0","prop-types":"^15.7.2","react":"^16.10.2","react-cookie":"^4.0.1","react-dev-utils":"^10.0.0","react-dom":"^16.11.0","react-helmet":"^5.2.1","react-hot-loader":"^4.12.15","react-html-parser":"^2.0.2","react-i18next":"^11.0.0","react-mde":"^7.6.2","react-paginate":"^6.3.2","react-redux":"^7.1.1","react-router":"^5.1.2","react-router-config":"^5.1.1","react-router-dom":"^5.1.2","react-router-last-location":"^2.0.1","react-spinners":"^0.6.1","react-switch":"^5.0.1","react-toastify":"^5.4.0","reactstrap":"^8.1.1","redux":"^4.0.4","redux-devtools-extension":"^2.13.8","redux-form":"^8.2.6","redux-thunk":"^2.3.0","rimraf":"^3.0.0","serialize-javascript":"^2.1.0","showdown":"^1.9.1","universal-cookie":"^4.0.2","validator":"^12.0.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Huỳnh Trần Đăng Khoa\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"express-react-boilerplate@1.7.4","dist":{"shasum":"df5b0767fcebfde8081c2c520fa475b3069e3589","integrity":"sha512-q6eaymlWUO8a36AmtDd0Cs/ldc77NoLFeXMLzUl92Vab2fJmr2dy56qdzeJKMZK6AOXv+8otKJNhn01E1SQHLA==","tarball":"https://registry.npmjs.org/express-react-boilerplate/-/express-react-boilerplate-1.7.4.tgz","fileCount":142,"unpackedSize":231818,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd73g0CRA9TVsSAnZWagAA1JQP+wZ1QgpagDD0hjs9NGEq\nW9m3djCFFzkdLpvNsy1EnRtujflBTWtKQojM31aaWCzGYw6FY+r1xP7H7M+d\nJGIB9s1mHoqKypmdCKtM+qyY0WbczdRAPztV+TWVPQf6G9WIMjKOD6Jz+S0q\n2YHBZCP8yObQsCpPeb5NuPTInmqRnY3TSM0emB9bWnch3i6L2HGOGGGQeJ9I\nEWkroXDz4TAJhiYhaWLjy4GQ+trUR+lmaG/w1SpvSXFOwmQlbB+I75H76ypS\n55PY5vwq0VWnG2v2LZHds+TDsTcBh3wBU9/g4bXz0fecjLI+xh0HtkNFpGOl\nHehxj2lbOYDQPP2gShhYJ5OoXiDZUfcoUyLf0Iih11uBrw5pEHD9wohDEGIZ\nPCOtl+ZWQlDlkKYKeDlTCBWMIwAPtRuH5LZbNDI80Ad9iILY3LYZy+R4VKaW\n+oM8RrxoKO8CR51q2xF/CcDRjAx4Jc5axl9vZh4CBm53KTFClzvk4ikeHkCj\nQc5BdUCUznvNQq5rW77sikW7G45TduomP0v4ePlmxhi7AY8AzoK7VNhNwlAo\ng9SI17xcKbEOVHlBrZEG6g8T5ybYj9JyVazQhxcMrKRtNs710yYuErmN/st0\nU7NDjsO+PMFnbaKrwzWcQWRFHor7lXt0Ni72L0RacccVqeumTo2b2fKviw/b\nx2hS\r\n=78/H\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDe1IgMFR2Pj1/pLUx2A1AFQhuu+df329IehNMb1pKycQIhAOnnFHZMeBaG40gmuaLAijyhiicGD5UPcYr+5bb3c9FU"}]},"maintainers":[{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"}],"_npmUser":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-react-boilerplate_1.7.4_1575974963552_0.3302217106840797"},"_hasShrinkwrap":false},"1.8.0":{"name":"express-react-boilerplate","description":"Express react boilerplate","version":"1.8.0","main":"dist/index.js","license":"MIT","author":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com","url":"https://github.com/htdangkhoa"},"contributors":[{"name":"huynhtran.dangkhoa@gmail.com"}],"homepage":"https://github.com/htdangkhoa/erb","bugs":{"url":"https://github.com/htdangkhoa/erb/issues"},"repository":{"type":"git","url":"https://github.com/htdangkhoa/erb.git"},"keywords":["erb","express","expressjs","rest","restful","router","app","api","react","react-router","redux","template","webpack","universal"],"bin":{"erb-gen":"./bin/index.js"},"scripts":{"start":"NODE_ENV=production node -r dotenv-flow/config dist/index.js","prestart":"npm run build","dev":"NODE_ENV=development nodemon src/index.js --exec \"node -r dotenv-flow/config ./node_modules/.bin/babel-node\"","predev":"flow stop && flow","build":"BABEL_ENV=production babel --minified --no-comments src -D -d dist && npm run wp","postbuild":"rimraf dist/**/__tests__","prebuild":"rimraf dist","wp":"NODE_ENV=production node -r dotenv-flow/config ./node_modules/.bin/webpack --progress --colors --config src/tools/webpack.config.js --bail","stats":"NODE_ENV=production node -r dotenv-flow/config ./node_modules/.bin/webpack --config src/tools/webpack.config.js --progress --profile --json > stats.json --bail","analyze":"webpack-bundle-analyzer stats.json","preanalyze":"npm run stats","storybook":"start-storybook --ci","test":"jest -u"},"engines":{"node":">=10.13.0"},"nodemonConfig":{"ignore":["dist","src/client","src/store"]},"jest":{"moduleNameMapper":{"\\.(css|less|scss|sss|styl)$":"<rootDir>/src/tools/jest/styles-mock.js",".*\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/src/tools/jest/assets-mock.js"},"globals":{"__DEV__":false}},"devDependencies":{"@babel/cli":"^7.6.4","@babel/core":"^7.2.2","@babel/node":"^7.6.3","@babel/plugin-proposal-optional-chaining":"^7.6.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-transform-runtime":"^7.7.4","@babel/plugin-transform-spread":"^7.6.2","@babel/polyfill":"^7.6.0","@babel/preset-env":"^7.3.1","@babel/preset-flow":"^7.0.0","@babel/preset-react":"^7.6.3","@babel/runtime":"^7.6.3","@storybook/react":"^5.2.8","babel-eslint":"^10.0.3","babel-loader":"^8.0.6","babel-plugin-module-resolver":"^3.2.0","compression-webpack-plugin":"^3.0.0","css-loader":"^3.2.0","eslint":"^6.5.1","eslint-config-airbnb-base":"^14.0.0","eslint-config-prettier":"^6.5.0","eslint-import-resolver-babel-module":"^5.1.0","eslint-plugin-flowtype":"^4.3.0","eslint-plugin-import":"^2.18.2","eslint-plugin-jest":"^23.1.1","eslint-plugin-prettier":"^3.1.1","eslint-plugin-react":"^7.16.0","flow-bin":"^0.113.0","friendly-errors-webpack-plugin":"^1.7.0","jest":"^24.9.0","jest-css-modules":"^2.1.0","lodash-webpack-plugin":"^0.11.5","mini-css-extract-plugin":"^0.8.0","nodemon":"^2.0.1","optimize-css-assets-webpack-plugin":"^5.0.3","prettier":"^1.18.2","react-test-renderer":"^16.12.0","sass-loader":"^8.0.0","style-loader":"^1.0.0","terser-webpack-plugin":"^2.2.1","url-loader":"^3.0.0","webpack":"^4.29.0","webpack-bundle-analyzer":"^3.6.0","webpack-cli":"^3.2.1","webpack-dev-middleware":"^3.7.2","webpack-hot-middleware":"^2.25.0","webpackbar":"^4.0.0"},"dependencies":{"@fortawesome/fontawesome-free":"^5.12.0","@hot-loader/react-dom":"^16.10.2","asset-require-hook":"^1.2.0","axios":"^0.19.0","bcrypt":"^3.0.6","body-parser":"^1.19.0","bootstrap":"^4.3.1","commander":"^4.0.1","compression":"^1.7.4","connected-react-router":"^6.5.2","cors":"^2.8.5","css-modules-require-hook":"^4.2.3","dotenv-flow":"^3.1.0","emojione":"^4.5.0","express":"^4.17.1","git-clone":"^0.1.0","helmet":"^3.21.1","history":"^4.10.1","html-minifier":"^4.0.0","i18next":"^19.0.1","i18next-browser-languagedetector":"^4.0.0","i18next-xhr-backend":"^3.2.0","jsonwebtoken":"^8.5.1","lodash":"^4.17.15","moment-timezone":"^0.5.27","mongodb":"^3.3.3","node-sass":"^4.13.0","passport":"^0.4.0","passport-jwt":"^4.0.0","prop-types":"^15.7.2","react":"^16.10.2","react-cookie":"^4.0.1","react-dev-utils":"^10.0.0","react-dom":"^16.11.0","react-helmet":"^5.2.1","react-hot-loader":"^4.12.15","react-html-parser":"^2.0.2","react-i18next":"^11.0.0","react-mde":"^7.6.2","react-paginate":"^6.3.2","react-redux":"^7.1.1","react-router":"^5.1.2","react-router-config":"^5.1.1","react-router-dom":"^5.1.2","react-router-last-location":"^2.0.1","react-spinners":"^0.6.1","react-switch":"^5.0.1","react-toastify":"^5.4.0","reactstrap":"^8.1.1","redux":"^4.0.4","redux-devtools-extension":"^2.13.8","redux-form":"^8.2.6","redux-thunk":"^2.3.0","rimraf":"^3.0.0","serialize-javascript":"^2.1.0","showdown":"^1.9.1","universal-cookie":"^4.0.2","validator":"^12.0.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Huỳnh Trần Đăng Khoa\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"express-react-boilerplate@1.8.0","dist":{"shasum":"6a58fa155528c271216b7a1c8ae81cc24ea76205","integrity":"sha512-I1JiaiOEiKmNdmoDYo+y44YxXC7vjrb67IY8XtfLd3n56UC3IlfxafWjAj9Kd1G/l0nmyyRnjoSQ1wlSXd8D+Q==","tarball":"https://registry.npmjs.org/express-react-boilerplate/-/express-react-boilerplate-1.8.0.tgz","fileCount":153,"unpackedSize":235060,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd8KIeCRA9TVsSAnZWagAAiKAP/irPsiIN9SLTsqeiJwsT\nqfDCOR/eiWWJ07rT8D6X5/EFRyIFzyqIa2jL02SSAij+vmFGftAzI3S95aQz\nvBavi22EXevGf+yJz0QRL9jJTHlfP6ORGpbH4F77nrQoG9vBZajtqnuA71xQ\nvKn30UeLNyrhmE68bi98ZI635TfbQyxCSBivfwip7+27Y+r6BbR6Ahi/IJIm\nwoIFdSOYI2MXKgIEECQfabz2HccbL49gK/NKEalbTaZmusZO5IiAxDZE+lnN\nWh6b88p0ob2uCSKVhQ3H6inWR7MGDYjc38QvgBRn6gIk3wyzQwXIjrVXF4Db\nIH2J3K6Vc7wTk7CghpRrAcqEwquA9vg18Du3NpwLrzt/Z0XS+B70sSHMheW9\nvSfppFuAiBA64W62xe5cDvIFx0dsEmuRpYGEDXFkO1jxGtjFC9OVqzr5liRM\nbHIFxkwC6YHk2aEfR8B9+/2MGs9FyxvI2T/PiXJ/yeLxbA/sBtx62YEwCtvV\n5T9KeFmoEWpUGZi8ko6eJ/YuBbgAOaP3raSMlLtnHJ5HFUWLnsrCzW39Rhvz\nzXiGmNYc9nE1F06bin5hv5gjAA1M5VHv8Kgzey9eW1LUoCtQxhgt8o/v9vlV\n7SruGLrCrLYTvJ1wtsqx/MJfvuluUyiEPwa2/7DTlv90o1kYh7L9WIhVbQBB\nUUWK\r\n=TBuI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC+Gy0azCcL+BgPIEuxqtO3gKz9KeSuABia3vf7tab2MAiBtP0OY2MqjpVgW3UTg3Q/hTawPJkAqAoUAA9NNIK4E0A=="}]},"maintainers":[{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"}],"_npmUser":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-react-boilerplate_1.8.0_1576051229909_0.7046599039651693"},"_hasShrinkwrap":false},"1.8.1":{"name":"express-react-boilerplate","description":"Express react boilerplate","version":"1.8.1","main":"dist/index.js","license":"MIT","author":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com","url":"https://github.com/htdangkhoa"},"contributors":[{"name":"huynhtran.dangkhoa@gmail.com"}],"homepage":"https://github.com/htdangkhoa/erb","bugs":{"url":"https://github.com/htdangkhoa/erb/issues"},"repository":{"type":"git","url":"https://github.com/htdangkhoa/erb.git"},"keywords":["erb","express","expressjs","rest","restful","router","app","api","react","react-router","redux","template","webpack","universal"],"bin":{"erb-gen":"./bin/index.js"},"scripts":{"start":"NODE_ENV=production node -r dotenv-flow/config dist/index.js","prestart":"npm run build","dev":"NODE_ENV=development nodemon src/index.js --exec \"node -r dotenv-flow/config ./node_modules/.bin/babel-node\"","predev":"flow stop && flow","build":"BABEL_ENV=production babel --minified --no-comments src -D -d dist && npm run wp","postbuild":"rimraf dist/**/__tests__","prebuild":"rimraf dist","wp":"NODE_ENV=production node -r dotenv-flow/config ./node_modules/.bin/webpack --progress --colors --config src/tools/webpack.config.js --bail","stats":"NODE_ENV=production node -r dotenv-flow/config ./node_modules/.bin/webpack --config src/tools/webpack.config.js --progress --profile --json > stats.json --bail","analyze":"webpack-bundle-analyzer stats.json","preanalyze":"npm run stats","storybook":"start-storybook --ci","test":"jest -u"},"engines":{"node":">=10.13.0"},"nodemonConfig":{"ignore":["dist","src/client","src/store"]},"jest":{"moduleNameMapper":{"\\.(css|less|scss|sss|styl)$":"<rootDir>/src/tools/jest/styles-mock.js",".*\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/src/tools/jest/assets-mock.js"},"globals":{"__DEV__":false}},"devDependencies":{"@babel/cli":"^7.6.4","@babel/core":"^7.2.2","@babel/node":"^7.6.3","@babel/plugin-proposal-optional-chaining":"^7.6.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-transform-runtime":"^7.7.4","@babel/plugin-transform-spread":"^7.6.2","@babel/polyfill":"^7.6.0","@babel/preset-env":"^7.3.1","@babel/preset-flow":"^7.0.0","@babel/preset-react":"^7.6.3","@babel/runtime":"^7.6.3","@storybook/react":"^5.2.8","babel-eslint":"^10.0.3","babel-loader":"^8.0.6","babel-plugin-module-resolver":"^3.2.0","compression-webpack-plugin":"^3.0.0","css-loader":"^3.2.0","eslint":"^6.5.1","eslint-config-airbnb-base":"^14.0.0","eslint-config-prettier":"^6.5.0","eslint-import-resolver-babel-module":"^5.1.0","eslint-plugin-flowtype":"^4.3.0","eslint-plugin-import":"^2.18.2","eslint-plugin-jest":"^23.1.1","eslint-plugin-prettier":"^3.1.1","eslint-plugin-react":"^7.16.0","flow-bin":"^0.113.0","friendly-errors-webpack-plugin":"^1.7.0","jest":"^24.9.0","jest-css-modules":"^2.1.0","lodash-webpack-plugin":"^0.11.5","mini-css-extract-plugin":"^0.8.0","nodemon":"^2.0.1","optimize-css-assets-webpack-plugin":"^5.0.3","prettier":"^1.18.2","react-test-renderer":"^16.12.0","sass-loader":"^8.0.0","style-loader":"^1.0.0","terser-webpack-plugin":"^2.2.1","url-loader":"^3.0.0","webpack":"^4.29.0","webpack-bundle-analyzer":"^3.6.0","webpack-cli":"^3.2.1","webpack-dev-middleware":"^3.7.2","webpack-hot-middleware":"^2.25.0","webpackbar":"^4.0.0"},"dependencies":{"@fortawesome/fontawesome-free":"^5.12.0","@hot-loader/react-dom":"^16.10.2","asset-require-hook":"^1.2.0","axios":"^0.19.0","bcrypt":"^3.0.6","body-parser":"^1.19.0","bootstrap":"^4.3.1","commander":"^4.0.1","compression":"^1.7.4","connected-react-router":"^6.5.2","cors":"^2.8.5","css-modules-require-hook":"^4.2.3","dotenv-flow":"^3.1.0","emojione":"^4.5.0","express":"^4.17.1","git-clone":"^0.1.0","helmet":"^3.21.1","history":"^4.10.1","html-minifier":"^4.0.0","i18next":"^19.0.1","i18next-browser-languagedetector":"^4.0.0","i18next-xhr-backend":"^3.2.0","jsonwebtoken":"^8.5.1","lodash":"^4.17.15","moment-timezone":"^0.5.27","mongodb":"^3.3.3","node-sass":"^4.13.0","passport":"^0.4.0","passport-jwt":"^4.0.0","prop-types":"^15.7.2","react":"^16.10.2","react-cookie":"^4.0.1","react-dev-utils":"^10.0.0","react-dom":"^16.11.0","react-helmet":"^5.2.1","react-hot-loader":"^4.12.15","react-html-parser":"^2.0.2","react-i18next":"^11.0.0","react-mde":"^7.6.2","react-paginate":"^6.3.2","react-redux":"^7.1.1","react-router":"^5.1.2","react-router-config":"^5.1.1","react-router-dom":"^5.1.2","react-router-last-location":"^2.0.1","react-spinners":"^0.6.1","react-switch":"^5.0.1","react-toastify":"^5.4.0","reactstrap":"^8.1.1","redux":"^4.0.4","redux-devtools-extension":"^2.13.8","redux-form":"^8.2.6","redux-thunk":"^2.3.0","rimraf":"^3.0.0","serialize-javascript":"^2.1.0","showdown":"^1.9.1","universal-cookie":"^4.0.2","validator":"^12.0.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Huỳnh Trần Đăng Khoa\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"express-react-boilerplate@1.8.1","dist":{"shasum":"203447fc19541b4c23137ddab477a3d866ffc34f","integrity":"sha512-PvXecbAFPIRteYHI2Qw7GN1coQEt5k7RRUsDRvkASiL+Gn1fdVPglg6xRxV3ylxbZKs/XHMLDZXsx2OXE3Dt3Q==","tarball":"https://registry.npmjs.org/express-react-boilerplate/-/express-react-boilerplate-1.8.1.tgz","fileCount":153,"unpackedSize":234034,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd8Mq6CRA9TVsSAnZWagAAytgP+QDErspB1WUIahMhGAS4\nIDca3odhVTlclIr0ICwfQ6FItP3U7TV2Gjw6QuoHmasUaxYUeAnmmMZwhUgk\nIb/8vtVIRpuHxx0KbvnuMXo3Njfn8DduU83Tmg5nis/hu0rzWXEn2YT31NdT\nbk4ey8oInc1o5GUPKh79ZiJyyFdyHIZGOUk5ZndxWgGaPpZ3UUjBwJeDA3ri\nx3heUjzw7THE8kFIQfJanxZahtpNywX99LHwuF4mLxqbzE4+JqrqUvzAbY9z\n6zW2g/YzuNIhAquwaI8gAHB3aAVqUrMQ3ojWlUeXB48em9CwwbV32Z9xHc7Y\n1lERMblgC/ga6YqPgfYk7pS81Kul3ptv3BE3tSj6PkCwHyG+KzEBicOupHzZ\nNBmTzt6uDUkhWLRxgbuIxJA6dOWsfUkMs8WdOojiiVTXhUzyLevTtkv0Bhsk\nDgohhc63LQKbb4SwwGvhA6+VUAIRxjicA4niYNDmB/nIBFOTMpNcZTj1pKnr\n6qbWZpK25PA286E1jGdEWEXcQbEZn4DicQUU+7ktaKHcbhbXi/o6Hd94VNGN\nNQMaJ58po8MOpXpsTatofl2Kt4D3AG0fr5OGFDQAaExYfi59bfzo9UmzjpkI\nEnYD/ye41TFvpx6YwLKup1u5sFdTqbkSVduUHsXAeN+UHe4iFz6ZzSGngncy\nQ/FF\r\n=7+Ik\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD43FVc/z2s8G5uKJwSnLufTtHoBTas3CKrRrqOYBl1XwIgARMkUdxZBlBwFl9NXxWw2zokIvBeZDsBh2iSi167l0Y="}]},"maintainers":[{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"}],"_npmUser":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-react-boilerplate_1.8.1_1576061626488_0.30979352838367213"},"_hasShrinkwrap":false},"1.9.0":{"name":"express-react-boilerplate","description":"Express react boilerplate","version":"1.9.0","main":"dist/index.js","license":"MIT","author":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com","url":"https://github.com/htdangkhoa"},"contributors":[{"name":"huynhtran.dangkhoa@gmail.com"}],"homepage":"https://github.com/htdangkhoa/erb","bugs":{"url":"https://github.com/htdangkhoa/erb/issues"},"repository":{"type":"git","url":"https://github.com/htdangkhoa/erb.git"},"keywords":["erb","express","expressjs","rest","restful","router","app","api","react","react-router","redux","template","webpack","universal"],"bin":{"erb-gen":"./bin/index.js"},"scripts":{"start":"NODE_ENV=production node -r dotenv-flow/config dist/index.js","prestart":"npm run build","dev":"NODE_ENV=development nodemon src/index.js --exec \"node -r dotenv-flow/config ./node_modules/.bin/babel-node\"","predev":"flow stop && flow","build":"BABEL_ENV=production babel --minified --no-comments src -D -d dist && npm run wp","postbuild":"rimraf dist/**/__tests__","prebuild":"rimraf dist","wp":"NODE_ENV=production node -r dotenv-flow/config ./node_modules/.bin/webpack --progress --colors --config src/tools/webpack.config.js --bail","stats":"NODE_ENV=production node -r dotenv-flow/config ./node_modules/.bin/webpack --config src/tools/webpack.config.js --progress --profile --json > stats.json --bail","analyze":"webpack-bundle-analyzer stats.json","preanalyze":"npm run stats","storybook":"start-storybook --ci","test":"jest -u"},"engines":{"node":">=10.13.0"},"nodemonConfig":{"ignore":["dist","src/client","src/store"]},"jest":{"moduleNameMapper":{"\\.(css|less|scss|sss|styl)$":"<rootDir>/src/tools/jest/styles-mock.js",".*\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/src/tools/jest/assets-mock.js"},"globals":{"__DEV__":false}},"devDependencies":{"@babel/cli":"^7.6.4","@babel/core":"^7.2.2","@babel/node":"^7.6.3","@babel/plugin-proposal-optional-chaining":"^7.6.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-transform-runtime":"^7.7.4","@babel/plugin-transform-spread":"^7.6.2","@babel/polyfill":"^7.6.0","@babel/preset-env":"^7.3.1","@babel/preset-flow":"^7.0.0","@babel/preset-react":"^7.6.3","@babel/runtime":"^7.6.3","@storybook/react":"^5.2.8","babel-eslint":"^10.0.3","babel-loader":"^8.0.6","babel-plugin-module-resolver":"^3.2.0","compression-webpack-plugin":"^3.0.0","css-loader":"^3.2.0","eslint":"^6.5.1","eslint-config-airbnb-base":"^14.0.0","eslint-config-prettier":"^6.5.0","eslint-import-resolver-babel-module":"^5.1.0","eslint-plugin-flowtype":"^4.3.0","eslint-plugin-import":"^2.18.2","eslint-plugin-jest":"^23.1.1","eslint-plugin-prettier":"^3.1.1","eslint-plugin-react":"^7.16.0","flow-bin":"^0.113.0","friendly-errors-webpack-plugin":"^1.7.0","jest":"^24.9.0","jest-css-modules":"^2.1.0","lodash-webpack-plugin":"^0.11.5","mini-css-extract-plugin":"^0.8.0","nodemon":"^2.0.1","optimize-css-assets-webpack-plugin":"^5.0.3","prettier":"^1.18.2","react-test-renderer":"^16.12.0","sass-loader":"^8.0.0","style-loader":"^1.0.0","terser-webpack-plugin":"^2.2.1","url-loader":"^3.0.0","webpack":"^4.29.0","webpack-bundle-analyzer":"^3.6.0","webpack-cli":"^3.2.1","webpack-dev-middleware":"^3.7.2","webpack-hot-middleware":"^2.25.0","webpackbar":"^4.0.0"},"dependencies":{"@fortawesome/fontawesome-free":"^5.12.0","@hot-loader/react-dom":"^16.10.2","asset-require-hook":"^1.2.0","axios":"^0.19.0","bcrypt":"^3.0.6","body-parser":"^1.19.0","bootstrap":"^4.3.1","commander":"^4.0.1","compression":"^1.7.4","connected-react-router":"^6.5.2","cors":"^2.8.5","css-modules-require-hook":"^4.2.3","dotenv-flow":"^3.1.0","emojione":"^4.5.0","express":"^4.17.1","git-clone":"^0.1.0","helmet":"^3.21.1","history":"^4.10.1","html-minifier":"^4.0.0","i18next":"^19.0.1","i18next-browser-languagedetector":"^4.0.0","i18next-xhr-backend":"^3.2.0","jsonwebtoken":"^8.5.1","lodash":"^4.17.15","moment-timezone":"^0.5.27","mongodb":"^3.3.3","node-sass":"^4.13.0","passport":"^0.4.0","passport-jwt":"^4.0.0","prop-types":"^15.7.2","react":"^16.10.2","react-cookie":"^4.0.1","react-dev-utils":"^10.0.0","react-dom":"^16.11.0","react-helmet":"^5.2.1","react-hot-loader":"^4.12.15","react-html-parser":"^2.0.2","react-i18next":"^11.0.0","react-mde":"^7.6.2","react-paginate":"^6.3.2","react-redux":"^7.1.1","react-router":"^5.1.2","react-router-config":"^5.1.1","react-router-dom":"^5.1.2","react-router-last-location":"^2.0.1","react-spinners":"^0.6.1","react-switch":"^5.0.1","react-toastify":"^5.4.0","reactstrap":"^8.1.1","redux":"^4.0.4","redux-devtools-extension":"^2.13.8","redux-form":"^8.2.6","redux-thunk":"^2.3.0","rimraf":"^3.0.0","serialize-javascript":"^2.1.0","showdown":"^1.9.1","universal-cookie":"^4.0.2","validator":"^12.0.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Huỳnh Trần Đăng Khoa\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"express-react-boilerplate@1.9.0","dist":{"shasum":"a2d77479d2a7add9dfbe54d7e860f706719b6e17","integrity":"sha512-MJI09PHUMIJwCgQXInqCKBhX0IrjNseT3SGf5aVfSlX/u2tk86aKE1tujnBgQpXWDQvrxHDee/lFm07+dBVjJQ==","tarball":"https://registry.npmjs.org/express-react-boilerplate/-/express-react-boilerplate-1.9.0.tgz","fileCount":153,"unpackedSize":234787,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd8SdVCRA9TVsSAnZWagAAXZkP+wZnSV1ox7P8mqp7+MUb\naKrqYq+kP8xfJCInk71j5zUggufhq3QM3n9mUZBATZdUpfONv1r/wcfZc2wT\nEMUJkrYT8YZzAF1OtMC9IT1/Q534zhXT/1uiUk6SLETyDadIE89UeITEnzV6\nNHiYjwKUeM25eJPFWsObH7VKoeEW+RHaVhnBlo6GpcM+PzqAikZy2YAiDgAm\nWVNHcqRFPj2oQgALiEFK2BVSzxAirXMMB9N7RHlJQnxVRxUKqDVuXIUvAkHf\nCwriynvQGsljbeXlNMww5ltpcjmb8ecz/UHVtBAQjU32P2uvYADnqGOOODKU\n/+Zivk0KvHtZv355PhtAp8oXcf/uBv3QnU7QwrYPF5x+j6v9gQaPZfZ7IoKZ\n1Urv3xjqdeXNF37i7+Ghao+LlPBpE/llPkAFcRo9jeZ8M6+HBuhYU3eeLmLh\nVHKm1/Li7zSQTUPWqG2/aoh2UaEmnNoUiPS5aEPxaoceHtbcAUnUHdU8oUXV\npQBNoh8X/axPbKGv6IXN9Lwd7arM8o1kY7vrQjmc11D49fkFtYCCTBt9UyEM\naedbD95Lw23R+V79mS3n25TiggUbW+tP8JkK62E/QjVVVr9O0gWxdtuSd3zY\nwJGAwBPPQyNazHHmc4Z7ObbGdVKjW1G4dliAT316x0wfNYrS/2oY8Ynwl2Ku\nYCii\r\n=ZFPN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDNvicaoU7n60dY8b7YKKbvWFLLFoCHfOcqFSf6dJDZkAIgfq8qFZUuZvHLTl69aqTMZ/KgJKYbAbeW0YljJbEgM48="}]},"maintainers":[{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"}],"_npmUser":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-react-boilerplate_1.9.0_1576085332562_0.7646645339853839"},"_hasShrinkwrap":false},"1.9.1":{"name":"express-react-boilerplate","description":"Express react boilerplate","version":"1.9.1","main":"dist/index.js","license":"MIT","author":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com","url":"https://github.com/htdangkhoa"},"contributors":[{"name":"huynhtran.dangkhoa@gmail.com"}],"homepage":"https://github.com/htdangkhoa/erb","bugs":{"url":"https://github.com/htdangkhoa/erb/issues"},"repository":{"type":"git","url":"https://github.com/htdangkhoa/erb.git"},"keywords":["erb","express","expressjs","rest","restful","router","app","api","react","react-router","redux","template","webpack","universal"],"bin":{"erb-gen":"./bin/index.js"},"scripts":{"start":"NODE_ENV=production node -r dotenv-flow/config dist/index.js","prestart":"npm run build","dev":"NODE_ENV=development nodemon src/index.js --exec \"node -r dotenv-flow/config ./node_modules/.bin/babel-node\"","predev":"flow stop && flow","build":"BABEL_ENV=production babel --minified --no-comments src -D -d dist && npm run wp","postbuild":"rimraf dist/**/__tests__","prebuild":"rimraf dist","wp":"NODE_ENV=production node -r dotenv-flow/config ./node_modules/.bin/webpack --progress --colors --config src/tools/webpack.config.js --bail","stats":"NODE_ENV=production node -r dotenv-flow/config ./node_modules/.bin/webpack --config src/tools/webpack.config.js --progress --profile --json > stats.json --bail","analyze":"webpack-bundle-analyzer stats.json","preanalyze":"npm run stats","storybook":"start-storybook --ci","test":"jest -u"},"engines":{"node":">=10.13.0"},"nodemonConfig":{"ignore":["dist","src/client","src/store"]},"jest":{"moduleNameMapper":{"\\.(css|less|scss|sss|styl)$":"<rootDir>/src/tools/jest/styles-mock.js",".*\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/src/tools/jest/assets-mock.js"},"globals":{"__DEV__":false}},"devDependencies":{"@babel/cli":"^7.6.4","@babel/core":"^7.2.2","@babel/node":"^7.6.3","@babel/plugin-proposal-optional-chaining":"^7.6.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-transform-runtime":"^7.7.4","@babel/plugin-transform-spread":"^7.6.2","@babel/polyfill":"^7.6.0","@babel/preset-env":"^7.3.1","@babel/preset-flow":"^7.0.0","@babel/preset-react":"^7.6.3","@babel/runtime":"^7.6.3","@storybook/react":"^5.2.8","babel-eslint":"^10.0.3","babel-loader":"^8.0.6","babel-plugin-module-resolver":"^4.0.0","compression-webpack-plugin":"^3.0.0","css-loader":"^3.2.0","eslint":"^6.5.1","eslint-config-airbnb-base":"^14.0.0","eslint-config-prettier":"^6.5.0","eslint-import-resolver-babel-module":"^5.1.0","eslint-plugin-flowtype":"^4.3.0","eslint-plugin-import":"^2.18.2","eslint-plugin-jest":"^23.1.1","eslint-plugin-prettier":"^3.1.1","eslint-plugin-react":"^7.16.0","flow-bin":"^0.113.0","friendly-errors-webpack-plugin":"^1.7.0","imagemin-webpack-plugin":"^2.4.2","jest":"^24.9.0","jest-css-modules":"^2.1.0","lodash-webpack-plugin":"^0.11.5","mini-css-extract-plugin":"^0.8.0","nodemon":"^2.0.1","optimize-css-assets-webpack-plugin":"^5.0.3","prettier":"^1.18.2","react-test-renderer":"^16.12.0","sass-loader":"^8.0.0","style-loader":"^1.0.0","terser-webpack-plugin":"^2.2.1","url-loader":"^3.0.0","webpack":"^4.29.0","webpack-bundle-analyzer":"^3.6.0","webpack-cli":"^3.2.1","webpack-dev-middleware":"^3.7.2","webpack-hot-middleware":"^2.25.0","webpackbar":"^4.0.0"},"dependencies":{"@fortawesome/fontawesome-free":"^5.12.0","@hot-loader/react-dom":"^16.10.2","asset-require-hook":"^1.2.0","axios":"^0.19.0","bcrypt":"^3.0.6","body-parser":"^1.19.0","bootstrap":"^4.3.1","commander":"^4.0.1","compression":"^1.7.4","connected-react-router":"^6.5.2","cors":"^2.8.5","css-modules-require-hook":"^4.2.3","dotenv-flow":"^3.1.0","emojione":"^4.5.0","express":"^4.17.1","git-clone":"^0.1.0","helmet":"^3.21.1","history":"^4.10.1","html-minifier":"^4.0.0","i18next":"^19.0.1","i18next-browser-languagedetector":"^4.0.0","i18next-xhr-backend":"^3.2.0","jsonwebtoken":"^8.5.1","lodash":"^4.17.15","moment-timezone":"^0.5.27","mongodb":"^3.3.3","node-sass":"^4.13.0","passport":"^0.4.0","passport-jwt":"^4.0.0","prop-types":"^15.7.2","react":"^16.10.2","react-cookie":"^4.0.1","react-dev-utils":"^10.0.0","react-dom":"^16.11.0","react-helmet":"^5.2.1","react-hot-loader":"^4.12.15","react-html-parser":"^2.0.2","react-i18next":"^11.0.0","react-mde":"^7.6.2","react-paginate":"^6.3.2","react-redux":"^7.1.1","react-router":"^5.1.2","react-router-config":"^5.1.1","react-router-dom":"^5.1.2","react-router-last-location":"^2.0.1","react-spinners":"^0.6.1","react-switch":"^5.0.1","react-toastify":"^5.4.0","reactstrap":"^8.1.1","redux":"^4.0.4","redux-devtools-extension":"^2.13.8","redux-form":"^8.2.6","redux-thunk":"^2.3.0","rimraf":"^3.0.0","serialize-javascript":"^2.1.0","showdown":"^1.9.1","universal-cookie":"^4.0.2","validator":"^12.0.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Huỳnh Trần Đăng Khoa\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"express-react-boilerplate@1.9.1","dist":{"shasum":"0de7a42261dcfdad75d7d5ad9023c378eaa6439d","integrity":"sha512-tXEo3z366ETcZIOywPRT6xn4GQEjBRfwNSLqw4P1lNKAPc4wBkvQR/jsRLqiMbT7bvxRlEQmfmFomJbdxMRLbQ==","tarball":"https://registry.npmjs.org/express-react-boilerplate/-/express-react-boilerplate-1.9.1.tgz","fileCount":156,"unpackedSize":236991,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd8ejbCRA9TVsSAnZWagAAMj4P/RVPZteuHc8+BLYSS44G\nnG1EVJk6hVilXJCSFGCl0FPWix6nJ80Jheel5Db7yGSDbFvEAywosgpwPqP0\nCaVogTCc5HC9Bi1us2n3c5pTYDg5zivXFwVBa7EIP3KDy8WaFKqQD4NJNZOb\nVC26n2ly3oXdbys3iaRibLCxX5wd35/e+nFfFnFPbNGcaNJnoZqFnmkEHEac\nCI2Blcczm27Nx1xgPUyBcAeyJ8KPU+rBsxunkXY9jMZ4nKiqrxCf+feGfmyS\nuKX50hY+aNiK6J1gzj8agxGItYyTX0cf0BxvkZa5wUfxGKzP85Um5LBhsttU\ng7YdiL6Q5YnVPYZo/NCR4Z3+UlaTmJIoD7FEmrk8IWXXoI4tTZypzIVYmix7\nGkO/rG9I274JzNkZpUHXuUhoNuHDqkxOoz7e7sIYisC2HKF9JKUyPJ/Jizcc\n0QWJD+pgsmiMUN24wBWdClGdaw+Ge5HxpK/0gEbrOl4M+Rhra4aUNvtmu/tY\nCwrOJIvXi6tw5Zt4K0NbqjbTptXyqyggpM4sbnk84WzPcxb+1Xx36w8iw7qU\nXJcRzMCRl5AjiKISbrJ/61nPfDMyZ0K4pCzxk1m5RSdNgSm5pm0CXdtYXdy7\nj8quoFrMcgLONHLxA1lwdR5FsV8EvMQgBirXp8P44VQBWlob/YGl53emgoqH\nIXW0\r\n=jHqt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDpficzFhLoMz3xWG+4mQ9XoCklHVGeU5y9hjbqE+Kb6wIhAPhl0uZc4Lc6ZDn59QIOS6sm9h227tvC5zhLM6IQE8Nh"}]},"maintainers":[{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"}],"_npmUser":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-react-boilerplate_1.9.1_1576134875307_0.4063409421167803"},"_hasShrinkwrap":false},"1.9.2":{"name":"express-react-boilerplate","description":"Express react boilerplate","version":"1.9.2","main":"dist/index.js","license":"MIT","author":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com","url":"https://github.com/htdangkhoa"},"contributors":[{"name":"huynhtran.dangkhoa@gmail.com"}],"homepage":"https://github.com/htdangkhoa/erb","bugs":{"url":"https://github.com/htdangkhoa/erb/issues"},"repository":{"type":"git","url":"https://github.com/htdangkhoa/erb.git"},"keywords":["erb","erb-gen","express","expressjs","rest","restful","router","app","api","react","react-router","redux","template","webpack","universal","boilerplate"],"bin":{"erb-gen":"./bin/index.js"},"scripts":{"start":"NODE_ENV=production node -r dotenv-flow/config dist/index.js","prestart":"npm run build","dev":"NODE_ENV=development nodemon src/index.js --exec \"node -r dotenv-flow/config ./node_modules/.bin/babel-node\"","predev":"flow stop && flow","build":"BABEL_ENV=production babel --minified --no-comments src -D -d dist && npm run wp","postbuild":"rimraf dist/**/__tests__","prebuild":"rimraf dist","wp":"NODE_ENV=production node -r dotenv-flow/config ./node_modules/.bin/webpack --progress --colors --config src/tools/webpack.config.js --bail","stats":"NODE_ENV=production node -r dotenv-flow/config ./node_modules/.bin/webpack --config src/tools/webpack.config.js --progress --profile --json > stats.json --bail","analyze":"webpack-bundle-analyzer stats.json","preanalyze":"npm run stats","storybook":"start-storybook --ci","test":"jest -u"},"engines":{"node":">=10.13.0"},"nodemonConfig":{"ignore":["dist","src/client","src/store"]},"jest":{"moduleNameMapper":{"\\.(css|less|scss|sss|styl)$":"<rootDir>/src/tools/jest/styles-mock.js",".*\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/src/tools/jest/assets-mock.js"},"globals":{"__DEV__":false}},"devDependencies":{"@babel/cli":"^7.6.4","@babel/core":"^7.2.2","@babel/node":"^7.6.3","@babel/plugin-proposal-optional-chaining":"^7.6.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-transform-runtime":"^7.7.4","@babel/plugin-transform-spread":"^7.6.2","@babel/polyfill":"^7.6.0","@babel/preset-env":"^7.3.1","@babel/preset-flow":"^7.0.0","@babel/preset-react":"^7.6.3","@babel/runtime":"^7.6.3","@storybook/react":"^5.2.8","babel-eslint":"^10.0.3","babel-loader":"^8.0.6","babel-plugin-module-resolver":"^4.0.0","compression-webpack-plugin":"^3.0.0","css-loader":"^3.2.0","eslint":"^6.5.1","eslint-config-airbnb-base":"^14.0.0","eslint-config-prettier":"^6.5.0","eslint-import-resolver-babel-module":"^5.1.0","eslint-plugin-flowtype":"^4.3.0","eslint-plugin-import":"^2.18.2","eslint-plugin-jest":"^23.1.1","eslint-plugin-prettier":"^3.1.1","eslint-plugin-react":"^7.16.0","flow-bin":"^0.113.0","friendly-errors-webpack-plugin":"^1.7.0","imagemin-webpack-plugin":"^2.4.2","jest":"^24.9.0","jest-css-modules":"^2.1.0","lodash-webpack-plugin":"^0.11.5","mini-css-extract-plugin":"^0.8.0","nodemon":"^2.0.1","optimize-css-assets-webpack-plugin":"^5.0.3","prettier":"^1.18.2","react-test-renderer":"^16.12.0","sass-loader":"^8.0.0","terser-webpack-plugin":"^2.2.1","url-loader":"^3.0.0","webpack":"^4.29.0","webpack-bundle-analyzer":"^3.6.0","webpack-cli":"^3.2.1","webpack-dev-middleware":"^3.7.2","webpack-hot-middleware":"^2.25.0","webpackbar":"^4.0.0"},"dependencies":{"@fortawesome/fontawesome-free":"^5.12.0","@hot-loader/react-dom":"^16.10.2","asset-require-hook":"^1.2.0","axios":"^0.19.0","bcrypt":"^3.0.6","body-parser":"^1.19.0","bootstrap":"^4.3.1","commander":"^4.0.1","compression":"^1.7.4","connected-react-router":"^6.5.2","cors":"^2.8.5","css-modules-require-hook":"^4.2.3","dotenv-flow":"^3.1.0","emojione":"^4.5.0","express":"^4.17.1","git-clone":"^0.1.0","helmet":"^3.21.1","history":"^4.10.1","html-minifier":"^4.0.0","i18next":"^19.0.1","i18next-browser-languagedetector":"^4.0.0","i18next-xhr-backend":"^3.2.0","jsonwebtoken":"^8.5.1","lodash":"^4.17.15","moment-timezone":"^0.5.27","mongodb":"^3.3.3","node-sass":"^4.13.0","passport":"^0.4.0","passport-jwt":"^4.0.0","prop-types":"^15.7.2","react":"^16.10.2","react-cookie":"^4.0.1","react-dev-utils":"^10.0.0","react-dom":"^16.11.0","react-helmet":"^5.2.1","react-hot-loader":"^4.12.15","react-html-parser":"^2.0.2","react-i18next":"^11.0.0","react-mde":"^7.6.2","react-paginate":"^6.3.2","react-redux":"^7.1.1","react-router":"^5.1.2","react-router-config":"^5.1.1","react-router-dom":"^5.1.2","react-router-last-location":"^2.0.1","react-spinners":"^0.6.1","react-switch":"^5.0.1","react-toastify":"^5.4.0","reactstrap":"^8.1.1","redux":"^4.0.4","redux-devtools-extension":"^2.13.8","redux-form":"^8.2.6","redux-thunk":"^2.3.0","rimraf":"^3.0.0","serialize-javascript":"^2.1.0","showdown":"^1.9.1","universal-cookie":"^4.0.2","validator":"^12.0.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Huỳnh Trần Đăng Khoa\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"express-react-boilerplate@1.9.2","dist":{"shasum":"0ed0603025d9a0f440f1dd231068a375c692bcc5","integrity":"sha512-OudHdBF3u9tX7Z1U1eUOq6KfkEMffFca8d2c3I5/pXrjFVQAKISKamkp7np19CktIw+12RKIDj+yR6o9pUt4yA==","tarball":"https://registry.npmjs.org/express-react-boilerplate/-/express-react-boilerplate-1.9.2.tgz","fileCount":155,"unpackedSize":236153,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd850xCRA9TVsSAnZWagAAmpUP/0saSeODG/iVnrsGC7w7\n/Ct75InGxDNMJbtvEMQse2itwKxgrliTKcriUu21P2+f9P1/4JO5ZUBgInik\nIlj1IGihEjMKkf94Q9XkdP+DrfTZGxfEiZxMcxF908oKGgdVX/ynlJR4WYvL\n8yULGoB3TV7Gc6x0yDbF3AD65OSiRhJ0efrzKaCk9VydsCiDvAQE8WFmlZFn\nrGdAi+8neW0yr7Up0oOXDbxFsvJnfSAra2VbjSLb2FwMGzwVo/QXxPetRX62\n5p+bPRLFMbV+imp01kg2pq/gsza9fEiDdIWR0zniqj5Ba90ew3n3ewYLNb1f\nQym1I1oxkmt6V63ZevRPx6//O9ozgxCQEfcigKOB5Up9HMQ4t3aft4CW3vTQ\nwNyv5rm1FkJbFUVEuVOcE3JwshRs5DpjuVw7MUiRT5iaIxSw1ELUV+0/WUMs\neArew9LbKmZUKgB2rkjei1+2eQqOEzUezoeRjiKHJ3OB+pE0pHVYhOWMdldJ\n133geYOkZ7j6RQiOYZjMC6ZdjWCeLVCPf8pOq7qGrY1sUa1H7/cQH6vDQg40\n3SgnFX3IAta4mYxxOUO1bLpJG5vZEwgvEzmxgR82++PLkM4+h6o5F4HPL1Et\nUGzae0xJohVJgl05tIxzzaCmSziOLay/KE3dZedyXIoKB8gU7/fW48oomLJ1\nSgF8\r\n=OcHL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHx4qpHyhAxbpXqLNNINgMm5Zsx34aVusDmbeBDHvLmzAiEAgz3cdDu3vqfHxdNz5urGnL+SkiBD7dL00MyHl0DxWo4="}]},"maintainers":[{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"}],"_npmUser":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-react-boilerplate_1.9.2_1576246576883_0.07383402619622181"},"_hasShrinkwrap":false},"1.9.3":{"name":"express-react-boilerplate","description":"Express react boilerplate","version":"1.9.3","main":"dist/index.js","license":"MIT","author":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com","url":"https://github.com/htdangkhoa"},"contributors":[{"name":"huynhtran.dangkhoa@gmail.com"}],"homepage":"https://github.com/htdangkhoa/erb","bugs":{"url":"https://github.com/htdangkhoa/erb/issues"},"repository":{"type":"git","url":"https://github.com/htdangkhoa/erb.git"},"keywords":["erb","erb-gen","express","expressjs","rest","restful","router","app","api","react","react-router","redux","template","webpack","universal","boilerplate"],"bin":{"erb-gen":"bin/index.js"},"scripts":{"start":"NODE_ENV=production node -r dotenv-flow/config dist/index.js","prestart":"npm run build","dev":"NODE_ENV=development nodemon src/index.js --exec \"node -r dotenv-flow/config ./node_modules/.bin/babel-node\"","predev":"flow stop && flow","build":"BABEL_ENV=production babel --minified --no-comments src -D -d dist && npm run wp","postbuild":"rimraf dist/**/__tests__","prebuild":"rimraf dist","wp":"NODE_ENV=production node -r dotenv-flow/config ./node_modules/.bin/webpack --progress --colors --config src/tools/webpack.config.js --bail","stats":"NODE_ENV=production node -r dotenv-flow/config ./node_modules/.bin/webpack --config src/tools/webpack.config.js --progress --profile --json > stats.json --bail","analyze":"webpack-bundle-analyzer stats.json","preanalyze":"npm run stats","storybook":"start-storybook --ci","test":"jest -u"},"engines":{"node":">=10.13.0"},"nodemonConfig":{"ignore":["dist","src/client","src/store"]},"jest":{"moduleNameMapper":{"\\.(css|less|scss|sss|styl)$":"<rootDir>/src/tools/jest/styles-mock.js",".*\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/src/tools/jest/assets-mock.js"},"globals":{"__DEV__":false}},"devDependencies":{"@babel/cli":"^7.6.4","@babel/core":"^7.2.2","@babel/node":"^7.6.3","@babel/plugin-proposal-optional-chaining":"^7.6.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-transform-runtime":"^7.7.4","@babel/plugin-transform-spread":"^7.6.2","@babel/polyfill":"^7.6.0","@babel/preset-env":"^7.3.1","@babel/preset-flow":"^7.0.0","@babel/preset-react":"^7.6.3","@babel/runtime":"^7.6.3","@storybook/react":"^5.2.8","babel-eslint":"^10.0.3","babel-loader":"^8.0.6","babel-plugin-module-resolver":"^4.0.0","compression-webpack-plugin":"^3.0.0","css-loader":"^3.2.0","eslint":"^6.5.1","eslint-config-airbnb-base":"^14.0.0","eslint-config-prettier":"^6.5.0","eslint-import-resolver-babel-module":"^5.1.0","eslint-plugin-flowtype":"^4.3.0","eslint-plugin-import":"^2.18.2","eslint-plugin-jest":"^23.1.1","eslint-plugin-prettier":"^3.1.1","eslint-plugin-react":"^7.16.0","flow-bin":"^0.114.0","friendly-errors-webpack-plugin":"^1.7.0","imagemin-webpack-plugin":"^2.4.2","jest":"^24.9.0","jest-css-modules":"^2.1.0","lodash-webpack-plugin":"^0.11.5","mini-css-extract-plugin":"^0.8.0","nodemon":"^2.0.1","optimize-css-assets-webpack-plugin":"^5.0.3","prettier":"^1.18.2","react-test-renderer":"^16.12.0","sass-loader":"^8.0.0","terser-webpack-plugin":"^2.2.1","url-loader":"^3.0.0","webpack":"^4.29.0","webpack-bundle-analyzer":"^3.6.0","webpack-cli":"^3.2.1","webpack-dev-middleware":"^3.7.2","webpack-hot-middleware":"^2.25.0","webpackbar":"^4.0.0"},"dependencies":{"@fortawesome/fontawesome-free":"^5.12.0","@hot-loader/react-dom":"^16.10.2","asset-require-hook":"^1.2.0","axios":"^0.19.0","bcrypt":"^3.0.6","body-parser":"^1.19.0","bootstrap":"^4.3.1","commander":"^4.0.1","compression":"^1.7.4","connected-react-router":"^6.5.2","cors":"^2.8.5","css-modules-require-hook":"^4.2.3","dotenv-flow":"^3.1.0","express":"^4.17.1","git-clone":"^0.1.0","helmet":"^3.21.1","history":"^4.10.1","html-minifier":"^4.0.0","i18next":"^19.0.1","i18next-browser-languagedetector":"^4.0.0","i18next-xhr-backend":"^3.2.0","jsonwebtoken":"^8.5.1","lodash":"^4.17.15","moment-timezone":"^0.5.27","mongodb":"^3.3.3","node-sass":"^4.13.0","passport":"^0.4.0","passport-jwt":"^4.0.0","prop-types":"^15.7.2","react":"^16.10.2","react-cookie":"^4.0.1","react-dev-utils":"^10.0.0","react-dom":"^16.11.0","react-emoji-render":"^1.2.0","react-helmet":"^5.2.1","react-hot-loader":"^4.12.15","react-html-parser":"^2.0.2","react-i18next":"^11.0.0","react-mde":"^7.6.2","react-paginate":"^6.3.2","react-redux":"^7.1.1","react-router":"^5.1.2","react-router-config":"^5.1.1","react-router-dom":"^5.1.2","react-router-last-location":"^2.0.1","react-spinners":"^0.6.1","react-switch":"^5.0.1","react-toastify":"^5.4.0","reactstrap":"^8.1.1","redux":"^4.0.4","redux-devtools-extension":"^2.13.8","redux-form":"^8.2.6","redux-thunk":"^2.3.0","rimraf":"^3.0.0","serialize-javascript":"^2.1.0","showdown":"^1.9.1","universal-cookie":"^4.0.2","validator":"^12.0.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Huỳnh Trần Đăng Khoa\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"express-react-boilerplate@1.9.3","dist":{"shasum":"865904c9fd63cadad27061f1b780606cf2f2b58b","integrity":"sha512-XwS8mppc5EvmDrbfUIS9QdzuZxNiBCeTJvOd+aW9me21saXzLUGgq+dOwjx5/Ze32n+fe2CtYbthI7q8TBbuhw==","tarball":"https://registry.npmjs.org/express-react-boilerplate/-/express-react-boilerplate-1.9.3.tgz","fileCount":155,"unpackedSize":236441,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd9e+cCRA9TVsSAnZWagAAkvQQAKI7yP04zwLDNMqsoJYU\nJsPDG0Ct5FnqzyLrJOn5jfJbofgLuBymimKDCt9nbNLWtVZHg98l+wvzXL8T\nryuKINcvn4Awq9cYxnBGf5OBy00I1m+qcNkUN72WF0yS+ZbVRquqaSamL4hm\nyyPBvd4V0LOLNwl7us4ss9MZ29FK8cMufnrBKQVzy/yCDogYgRjKewk8WIv8\nbgjFwgVqVdKrQFZMBymib6iOVo80nMtLQba59xgVGFJ46HgnIU+Bnn1Wyz7/\n71PcCrAp3mSpT1fckjWXR66FXHT4Dv0RflBNk7KRHLwyZSNILkkRHDXLBFYB\nth2QZKS1UsgFPgyGPrLx6Lu4/aDSRoRqh7VOq8DJWddpjMhFpseXwnKjIW33\nt9kN1F5AMN4b5aWt34tT1vcjnK0kxa73nE3yoNAky/51jBRH0r7wtbvlhqdt\n6Ff1kAXNt/eaL4grPdwb2Xqfa5qcX4iAY1L4Dr6wSkwbNv6sLUcR3GCZhOm0\n4c4Zawh+R+6kfH9UMGQ2k6HvsKyZJx6GvfgNIAeAxGtDuwbwtMlaKseoKTnY\nAX3VkjMn98DxI7BQosNA5iM5EKxt+Hp2llSyoqtxXebwisIBqWGMhLX1Jj2a\naBADMyDiSpL/AMybWCtYF1GO2K9poLwEb+YHhOHKwmmtYj2tL+FOSIrKTEbM\nPSe3\r\n=jUwL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBzx0JtmcMUnT/ugnS2mf5xL1az+REe+KIXalybvAeaBAiEAoUgjlm34L9oNCtrDx9mbtRgz7B1c91W7fNiYBkF1w9I="}]},"maintainers":[{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"}],"_npmUser":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-react-boilerplate_1.9.3_1576398748094_0.13021879527324187"},"_hasShrinkwrap":false},"1.9.4":{"name":"express-react-boilerplate","description":"Express react boilerplate","version":"1.9.4","main":"dist/index.js","license":"MIT","author":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com","url":"https://github.com/htdangkhoa"},"contributors":[{"name":"huynhtran.dangkhoa@gmail.com"}],"homepage":"https://github.com/htdangkhoa/erb","bugs":{"url":"https://github.com/htdangkhoa/erb/issues"},"repository":{"type":"git","url":"https://github.com/htdangkhoa/erb.git"},"keywords":["erb","erb-gen","express","expressjs","rest","restful","router","app","api","react","react-router","redux","template","webpack","universal","boilerplate"],"bin":{"erb-gen":"bin/index.js"},"scripts":{"start":"NODE_ENV=production node -r dotenv-flow/config dist/index.js","prestart":"npm run build","dev":"NODE_ENV=development nodemon src/index.js --exec \"node -r dotenv-flow/config ./node_modules/.bin/babel-node\"","predev":"flow stop && flow","build":"BABEL_ENV=production babel --minified --no-comments src -D -d dist && npm run wp","postbuild":"rimraf dist/**/__tests__","prebuild":"rimraf dist","wp":"NODE_ENV=production node -r dotenv-flow/config ./node_modules/.bin/webpack --progress --colors --config src/tools/webpack.config.js --bail","stats":"NODE_ENV=production node -r dotenv-flow/config ./node_modules/.bin/webpack --config src/tools/webpack.config.js --progress --profile --json > stats.json --bail","analyze":"webpack-bundle-analyzer stats.json","preanalyze":"npm run stats","storybook":"start-storybook --ci","test":"jest -u"},"engines":{"node":">=10.13.0"},"nodemonConfig":{"ignore":["dist","src/client","src/store"]},"jest":{"moduleNameMapper":{"\\.(css|less|scss|sss|styl)$":"<rootDir>/src/tools/jest/styles-mock.js",".*\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/src/tools/jest/assets-mock.js"},"globals":{"__DEV__":false}},"devDependencies":{"@babel/cli":"^7.6.4","@babel/core":"^7.2.2","@babel/node":"^7.6.3","@babel/plugin-proposal-optional-chaining":"^7.6.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-transform-runtime":"^7.7.4","@babel/plugin-transform-spread":"^7.6.2","@babel/polyfill":"^7.6.0","@babel/preset-env":"^7.3.1","@babel/preset-flow":"^7.0.0","@babel/preset-react":"^7.6.3","@babel/runtime":"^7.6.3","@storybook/react":"^5.2.8","babel-eslint":"^10.0.3","babel-loader":"^8.0.6","babel-plugin-module-resolver":"^4.0.0","compression-webpack-plugin":"^3.0.0","css-loader":"^3.2.0","eslint":"^6.5.1","eslint-config-airbnb-base":"^14.0.0","eslint-config-prettier":"^6.5.0","eslint-import-resolver-babel-module":"^5.1.0","eslint-plugin-flowtype":"^4.3.0","eslint-plugin-import":"^2.18.2","eslint-plugin-jest":"^23.1.1","eslint-plugin-prettier":"^3.1.1","eslint-plugin-react":"^7.16.0","flow-bin":"^0.114.0","friendly-errors-webpack-plugin":"^1.7.0","imagemin-webpack-plugin":"^2.4.2","jest":"^24.9.0","jest-css-modules":"^2.1.0","lodash-webpack-plugin":"^0.11.5","mini-css-extract-plugin":"^0.8.0","nodemon":"^2.0.1","optimize-css-assets-webpack-plugin":"^5.0.3","prettier":"^1.18.2","react-test-renderer":"^16.12.0","sass-loader":"^8.0.0","terser-webpack-plugin":"^2.2.1","url-loader":"^3.0.0","webpack":"^4.29.0","webpack-bundle-analyzer":"^3.6.0","webpack-cli":"^3.2.1","webpack-dev-middleware":"^3.7.2","webpack-hot-middleware":"^2.25.0","webpackbar":"^4.0.0"},"dependencies":{"@fortawesome/fontawesome-free":"^5.12.0","@hot-loader/react-dom":"^16.10.2","asset-require-hook":"^1.2.0","axios":"^0.19.0","bcrypt":"^3.0.6","body-parser":"^1.19.0","bootstrap":"^4.3.1","commander":"^4.0.1","compression":"^1.7.4","connected-react-router":"^6.5.2","cors":"^2.8.5","css-modules-require-hook":"^4.2.3","dotenv-flow":"^3.1.0","express":"^4.17.1","git-clone":"^0.1.0","helmet":"^3.21.1","history":"^4.10.1","html-minifier":"^4.0.0","i18next":"^19.0.1","i18next-browser-languagedetector":"^4.0.0","i18next-xhr-backend":"^3.2.0","jsonwebtoken":"^8.5.1","lodash":"^4.17.15","moment-timezone":"^0.5.27","mongodb":"^3.3.3","node-sass":"^4.13.0","passport":"^0.4.0","passport-jwt":"^4.0.0","prop-types":"^15.7.2","react":"^16.10.2","react-cookie":"^4.0.1","react-dev-utils":"^10.0.0","react-dom":"^16.11.0","react-emoji-render":"^1.2.0","react-helmet":"^5.2.1","react-hot-loader":"^4.12.15","react-html-parser":"^2.0.2","react-i18next":"^11.0.0","react-mde":"^7.6.2","react-paginate":"^6.3.2","react-redux":"^7.1.1","react-router":"^5.1.2","react-router-config":"^5.1.1","react-router-dom":"^5.1.2","react-router-last-location":"^2.0.1","react-spinners":"^0.6.1","react-switch":"^5.0.1","react-toastify":"^5.4.0","reactstrap":"^8.1.1","redux":"^4.0.4","redux-devtools-extension":"^2.13.8","redux-form":"^8.2.6","redux-thunk":"^2.3.0","rimraf":"^3.0.0","serialize-javascript":"^2.1.0","showdown":"^1.9.1","universal-cookie":"^4.0.2","validator":"^12.0.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Huỳnh Trần Đăng Khoa\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"express-react-boilerplate@1.9.4","dist":{"shasum":"b542eeecc5d6eac244229b85cc363b00fb9f227d","integrity":"sha512-7NieeD/qVDk0+t9OCzMBaJR5sPKiatbGEW/CqUu/1l9WTHVKWlLZLLN1LhrguzdU1slhnWxkbJlSq5SVlMw99A==","tarball":"https://registry.npmjs.org/express-react-boilerplate/-/express-react-boilerplate-1.9.4.tgz","fileCount":155,"unpackedSize":236441,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd9fOQCRA9TVsSAnZWagAAeskP/2xuY+OMMP9OXBOFdHEP\n2ozp0YL/csCDjbI4ou4kN4LZm3t7J+WN2fdci/Seyesxc4PpgTSOV+xpe5Kq\nSAttjCjfl4YZ2NCT442ruWhI8IqFsfhm+gkQo0dv57jt3WAj0DJ9EcyMuUmz\nrZKvLm32lmF2UupKzy6i/uBX9903TV1XBOo3grNc/odJpiGI80/BjA6lkGtg\nAJiXiOSv1qmYKe8ArBpYwAVDhVzukTJEb9JQWPScDnLA0X7RK8JDIc21qanK\nCamsNAoHtMPXMOP29ruNOVk07arzVQLxobFBQBRhNGCem6zd5n7hR/0iEDzy\nVXhnhuBUfayJlvjDgFzWAaluh9PP7vbVem7aNm9MohX3sZJDJHkF1WnYlQOR\nTkHHtTHMNkTTzhYFVXt1ErWbCFW9hcWfGPsYIu1T6NxWN8diFSs0CsFuQS88\nQkgocNvS2OeOIarLxnM+LDfzW3wHpP7K/Wi6D3YrRhbjkQuUdBeQQ+u+Inca\n8J23hG9C9LR2bOXWnym6UgOOu5YjIZq0mGj3MXYglb1lRweTnijTV/gS7Cf1\nGNCYVA4n+/h+B7LxGI6QaSL+t4oY6GmG3lRb+IqIiJQ+8V6eul58OZEwzyqy\n1Z2/vZnA8SL/YwWtu08ojG1mowX4ccFsbqTC2Lk0vbExJZDT+RAcdMJQTqu2\nTdDw\r\n=GMNz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFRWHQv9eHdzXH8pNzJOWBthC8+G/tXAH4HM7uwwZeJ6AiB9Ynq6ACSBCivcY+q8k9EJduu2Tt8xsMOrL+O/hj0gLA=="}]},"maintainers":[{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"}],"_npmUser":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-react-boilerplate_1.9.4_1576399759833_0.7170024833644699"},"_hasShrinkwrap":false},"1.10.0":{"name":"express-react-boilerplate","description":"Express react boilerplate","version":"1.10.0","main":"dist/index.js","license":"MIT","author":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com","url":"https://github.com/htdangkhoa"},"contributors":[{"name":"huynhtran.dangkhoa@gmail.com"}],"homepage":"https://github.com/htdangkhoa/erb","bugs":{"url":"https://github.com/htdangkhoa/erb/issues"},"repository":{"type":"git","url":"https://github.com/htdangkhoa/erb.git"},"keywords":["erb","erb-gen","express","expressjs","rest","restful","router","app","api","react","react-router","redux","template","webpack","universal","boilerplate"],"bin":{"erb-gen":"bin/index.js"},"scripts":{"start":"NODE_ENV=production node -r dotenv-flow/config dist/index.js","prestart":"npm run build","dev":"NODE_ENV=development nodemon src/index.js --exec \"node -r dotenv-flow/config ./node_modules/.bin/babel-node\"","predev":"flow stop && flow","build":"BABEL_ENV=production babel --minified --no-comments src -D -d dist && npm run wp","postbuild":"rimraf dist/**/__tests__","prebuild":"rimraf dist","wp":"NODE_ENV=production node -r dotenv-flow/config ./node_modules/.bin/webpack --progress --colors --config src/tools/webpack.config.js --bail","stats":"NODE_ENV=production node -r dotenv-flow/config ./node_modules/.bin/webpack --config src/tools/webpack.config.js --progress --profile --json > stats.json --bail","analyze":"webpack-bundle-analyzer stats.json","preanalyze":"npm run stats","storybook":"start-storybook --ci","test":"jest -u"},"engines":{"node":">=10.13.0"},"nodemonConfig":{"ignore":["dist","src/client","src/store"]},"jest":{"moduleNameMapper":{"\\.(css|less|scss|sss|styl)$":"<rootDir>/src/tools/jest/styles-mock.js",".*\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/src/tools/jest/assets-mock.js"},"globals":{"__DEV__":false}},"devDependencies":{"@babel/cli":"^7.6.4","@babel/core":"^7.2.2","@babel/node":"^7.6.3","@babel/plugin-proposal-optional-chaining":"^7.6.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-transform-runtime":"^7.7.4","@babel/plugin-transform-spread":"^7.6.2","@babel/polyfill":"^7.6.0","@babel/preset-env":"^7.3.1","@babel/preset-flow":"^7.0.0","@babel/preset-react":"^7.6.3","@babel/runtime":"^7.6.3","@storybook/react":"^5.2.8","babel-eslint":"^10.0.3","babel-loader":"^8.0.6","babel-plugin-module-resolver":"^4.0.0","compression-webpack-plugin":"^3.0.0","css-loader":"^3.2.0","eslint":"^6.5.1","eslint-config-airbnb-base":"^14.0.0","eslint-config-prettier":"^6.5.0","eslint-import-resolver-babel-module":"^5.1.0","eslint-plugin-flowtype":"^4.3.0","eslint-plugin-import":"^2.18.2","eslint-plugin-jest":"^23.1.1","eslint-plugin-prettier":"^3.1.1","eslint-plugin-react":"^7.16.0","flow-bin":"^0.114.0","friendly-errors-webpack-plugin":"^1.7.0","imagemin-webpack-plugin":"^2.4.2","jest":"^24.9.0","jest-css-modules":"^2.1.0","lodash-webpack-plugin":"^0.11.5","mini-css-extract-plugin":"^0.8.0","nodemon":"^2.0.1","optimize-css-assets-webpack-plugin":"^5.0.3","prettier":"^1.18.2","react-test-renderer":"^16.12.0","sass-loader":"^8.0.0","terser-webpack-plugin":"^2.2.1","url-loader":"^3.0.0","webpack":"^4.29.0","webpack-bundle-analyzer":"^3.6.0","webpack-cli":"^3.2.1","webpack-dev-middleware":"^3.7.2","webpack-hot-middleware":"^2.25.0","webpackbar":"^4.0.0"},"dependencies":{"@fortawesome/fontawesome-free":"^5.12.0","@hot-loader/react-dom":"^16.10.2","asset-require-hook":"^1.2.0","axios":"^0.19.0","bcrypt":"^3.0.6","body-parser":"^1.19.0","bootstrap":"^4.3.1","commander":"^4.0.1","compression":"^1.7.4","connected-react-router":"^6.5.2","cors":"^2.8.5","css-modules-require-hook":"^4.2.3","dotenv-flow":"^3.1.0","express":"^4.17.1","git-clone":"^0.1.0","helmet":"^3.21.1","history":"^4.10.1","html-minifier":"^4.0.0","i18next":"^19.0.1","i18next-browser-languagedetector":"^4.0.0","i18next-xhr-backend":"^3.2.0","jsonwebtoken":"^8.5.1","lodash":"^4.17.15","moment-timezone":"^0.5.27","mongodb":"^3.3.3","node-sass":"^4.13.0","passport":"^0.4.0","passport-jwt":"^4.0.0","prop-types":"^15.7.2","react":"^16.10.2","react-cookie":"^4.0.1","react-dev-utils":"^10.0.0","react-dom":"^16.11.0","react-emoji-render":"^1.2.0","react-helmet":"^5.2.1","react-hot-loader":"^4.12.15","react-html-parser":"^2.0.2","react-i18next":"^11.0.0","react-mde":"^7.6.2","react-paginate":"^6.3.2","react-redux":"^7.1.1","react-router":"^5.1.2","react-router-config":"^5.1.1","react-router-dom":"^5.1.2","react-router-last-location":"^2.0.1","react-spinners":"^0.6.1","react-switch":"^5.0.1","react-toastify":"^5.4.0","reactstrap":"^8.1.1","redux":"^4.0.4","redux-devtools-extension":"^2.13.8","redux-form":"^8.2.6","redux-thunk":"^2.3.0","rimraf":"^3.0.0","serialize-javascript":"^2.1.0","showdown":"^1.9.1","universal-cookie":"^4.0.2","validator":"^12.0.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Huỳnh Trần Đăng Khoa\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"express-react-boilerplate@1.10.0","dist":{"shasum":"ab9f6176d8d9a5ba22fdc299f878f9b35372d27b","integrity":"sha512-agGmeNjFGqwG9JGf60lGbVwMsIfA9I5FbEZ8dYAWaxcgDc0+npODIt0vSTSSs6o1uiwq9G58aM2rdSmGskMVVA==","tarball":"https://registry.npmjs.org/express-react-boilerplate/-/express-react-boilerplate-1.10.0.tgz","fileCount":157,"unpackedSize":238671,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd92gcCRA9TVsSAnZWagAAhoIP/A93XLguIpqLvIM87Ofa\nFnVpix30FlNnGZYZ0+mwIKD+GIeU1rW0MhCBIfzs98TwvZttnw70hvxKhOsC\nfrrxofpsOfGHV0R7PK6WY3krJXPHxC6MZJtM1wyZOyhX3KH9voCZVP0A6e8U\nh0ly1u64BXEFxKAEvQN8gZLzWwd1yCvMUBWs/6DzRqVK6UDMtRkcHGyMGtbQ\n0bSYIqXMevUTRtOIOXLYU+OnobITCoIbsL75EIQabWEhweaMLoOFlhjeHPNT\nVmQg8bkYdvZsGEHqKqCN4MdGZOfVTf4T1OHR2zAMBLs9Smh+lsmdrShbx9Wj\nbGhppm9yUI0qbd/vfQrAl1fEr6bKiwji48FV/m1ImEDJTLt/E1aPNXT4COed\n6qLyLdiJe4Agoshtddn17zFRWykgAbuBa2Z1rFwn7ZNM1g9yauq4TroavxuJ\n/qX7TWLfOD+b2WFGwkt4+r9DSN9pMJ6EznAy00HmaLQyw5C/z+vRX5tRw2tj\nepy7siWruf1X2bGsfX2z9J2TmQd9C9tD8a6JIYVdvDwv8/uCMLXQrV4FKsK9\nygErMbeE+KwOd/TxjF0mOepFurw9VqezATqILUQe1B0iEANt8a6Ozg5kK1lb\nPEcfsOkFhzyLSHPQlUwpA5fu3TZQtEg3osYjUo3xFnBN12y4DS84s3PzJLjK\n3kUC\r\n=OapV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICwcIbbL9Fp7R/zP+BwdyXixOJFhJbw27IkIiswAVTEtAiEAzgNB6hWkPP12T6lrmT+to1+bN6AmEawewQhpn93JDTQ="}]},"maintainers":[{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"}],"_npmUser":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-react-boilerplate_1.10.0_1576495132294_0.712971625690829"},"_hasShrinkwrap":false},"1.10.1":{"name":"express-react-boilerplate","description":"Express react boilerplate","version":"1.10.1","main":"dist/index.js","license":"MIT","author":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com","url":"https://github.com/htdangkhoa"},"contributors":[{"name":"huynhtran.dangkhoa@gmail.com"}],"homepage":"https://github.com/htdangkhoa/erb","bugs":{"url":"https://github.com/htdangkhoa/erb/issues"},"repository":{"type":"git","url":"https://github.com/htdangkhoa/erb.git"},"keywords":["erb","erb-gen","express","expressjs","rest","restful","router","app","api","react","react-router","redux","template","webpack","universal","boilerplate"],"bin":{"erb-gen":"bin/index.js"},"scripts":{"start":"NODE_ENV=production node -r dotenv-flow/config dist/index.js","prestart":"npm run build","dev":"NODE_ENV=development nodemon src/index.js --exec \"node -r dotenv-flow/config ./node_modules/.bin/babel-node\"","predev":"flow stop && flow","build":"BABEL_ENV=production babel --minified --no-comments src -D -d dist && npm run wp","postbuild":"rimraf dist/**/__tests__","prebuild":"rimraf dist","wp":"NODE_ENV=production node -r dotenv-flow/config ./node_modules/.bin/webpack --progress --colors --config src/tools/webpack.config.js --bail","stats":"NODE_ENV=production node -r dotenv-flow/config ./node_modules/.bin/webpack --config src/tools/webpack.config.js --progress --profile --json > stats.json --bail","analyze":"webpack-bundle-analyzer stats.json","preanalyze":"npm run stats","storybook":"start-storybook --ci","test":"jest -u"},"engines":{"node":">=10.13.0"},"nodemonConfig":{"ignore":["dist","src/client","src/store"]},"jest":{"moduleNameMapper":{"\\.(css|less|scss|sss|styl)$":"<rootDir>/src/tools/jest/styles-mock.js",".*\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/src/tools/jest/assets-mock.js"},"globals":{"__DEV__":false}},"devDependencies":{"@babel/cli":"^7.6.4","@babel/core":"^7.2.2","@babel/node":"^7.6.3","@babel/plugin-proposal-optional-chaining":"^7.6.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-transform-runtime":"^7.7.4","@babel/plugin-transform-spread":"^7.6.2","@babel/polyfill":"^7.6.0","@babel/preset-env":"^7.3.1","@babel/preset-flow":"^7.0.0","@babel/preset-react":"^7.6.3","@babel/runtime":"^7.6.3","@storybook/react":"^5.2.8","babel-eslint":"^10.0.3","babel-loader":"^8.0.6","babel-plugin-module-resolver":"^4.0.0","compression-webpack-plugin":"^3.0.0","css-loader":"^3.2.0","eslint":"^6.5.1","eslint-config-airbnb-base":"^14.0.0","eslint-config-prettier":"^6.5.0","eslint-import-resolver-babel-module":"^5.1.0","eslint-plugin-flowtype":"^4.3.0","eslint-plugin-import":"^2.18.2","eslint-plugin-jest":"^23.1.1","eslint-plugin-prettier":"^3.1.1","eslint-plugin-react":"^7.16.0","flow-bin":"^0.114.0","friendly-errors-webpack-plugin":"^1.7.0","imagemin-webpack-plugin":"^2.4.2","jest":"^24.9.0","jest-css-modules":"^2.1.0","lodash-webpack-plugin":"^0.11.5","mini-css-extract-plugin":"^0.8.0","nodemon":"^2.0.1","optimize-css-assets-webpack-plugin":"^5.0.3","prettier":"^1.18.2","react-test-renderer":"^16.12.0","sass-loader":"^8.0.0","terser-webpack-plugin":"^2.2.1","url-loader":"^3.0.0","webpack":"^4.29.0","webpack-bundle-analyzer":"^3.6.0","webpack-cli":"^3.2.1","webpack-dev-middleware":"^3.7.2","webpack-hot-middleware":"^2.25.0","webpackbar":"^4.0.0"},"dependencies":{"@fortawesome/fontawesome-free":"^5.12.0","@hot-loader/react-dom":"^16.10.2","asset-require-hook":"^1.2.0","axios":"^0.19.0","bcrypt":"^3.0.6","body-parser":"^1.19.0","bootstrap":"^4.3.1","commander":"^4.0.1","compression":"^1.7.4","connected-react-router":"^6.5.2","cors":"^2.8.5","css-modules-require-hook":"^4.2.3","dotenv-flow":"^3.1.0","express":"^4.17.1","git-clone":"^0.1.0","helmet":"^3.21.1","history":"^4.10.1","html-minifier":"^4.0.0","i18next":"^19.0.1","i18next-browser-languagedetector":"^4.0.0","i18next-xhr-backend":"^3.2.0","jsonwebtoken":"^8.5.1","lodash":"^4.17.15","moment-timezone":"^0.5.27","mongodb":"^3.3.3","node-sass":"^4.13.0","passport":"^0.4.0","passport-jwt":"^4.0.0","prop-types":"^15.7.2","react":"^16.10.2","react-cookie":"^4.0.1","react-dev-utils":"^10.0.0","react-dom":"^16.11.0","react-emoji-render":"^1.2.0","react-helmet":"^5.2.1","react-hot-loader":"^4.12.15","react-html-parser":"^2.0.2","react-i18next":"^11.0.0","react-mde":"^7.6.2","react-paginate":"^6.3.2","react-redux":"^7.1.1","react-router":"^5.1.2","react-router-config":"^5.1.1","react-router-dom":"^5.1.2","react-router-last-location":"^2.0.1","react-spinners":"^0.6.1","react-switch":"^5.0.1","react-toastify":"^5.4.0","reactstrap":"^8.1.1","redux":"^4.0.4","redux-devtools-extension":"^2.13.8","redux-form":"^8.2.6","redux-thunk":"^2.3.0","rimraf":"^3.0.0","serialize-javascript":"^2.1.0","showdown":"^1.9.1","universal-cookie":"^4.0.2","validator":"^12.0.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Huỳnh Trần Đăng Khoa\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"express-react-boilerplate@1.10.1","dist":{"shasum":"d61cd2752675f6f588cc48b32dc0a1792c7dde80","integrity":"sha512-ePI2vtXmDcAdQOcSebr9soCmY8WMmUbATunu6rmdQ0OEBnP6UVRvwgA+Dp1j2fn577eaGOcAqUDbu06OxkBfYw==","tarball":"https://registry.npmjs.org/express-react-boilerplate/-/express-react-boilerplate-1.10.1.tgz","fileCount":157,"unpackedSize":238672,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd923yCRA9TVsSAnZWagAA09wQAJSeXsxa0UD1gfZ4VDpg\nwRzGOR7m7YvvDrZGJcHZNnS8Ykq/h+UZlqVTvwvwcUz7EWya04KqAFfD3pJI\nn13lRcnEPE/GG4/7l88ovBvwd++6fqmC4v4lqT4WAVGVxN4ZmSJf41zmiOPu\nFTFmRqaGHDt8m+8SEpTTQrhw/9p+LLoblyv5JLXpp42mtdtNpaBxUM+7hsi8\nHbMLdHdv7oYOwcMG6AI3rsPyOPVCnQuRkLVg5dza+7nuDVIg6tP+VrsadF61\n+Er0RNwNxBRg/gOVFBp8Bd4dwogtCuNVwyWkoorTl2YbMTWmJmGI6KsGGyM1\nS2wBoRXYyyFU5XuDRZLGUnkoU2mYZMqEI9w6R80LdSHFpxy+YQptIT9Ncfss\nAHltaegru5sTYTEjReWNJt9y6sba3QFhfM2KdrSHeSVqsCKFIKayXtY4Ooz8\nrUHEUg7OpG9HzFHMxsVFx4HHc4L7M/QDyjfIvEjW51tuxCJd5k8gnv9+cN2T\nADntjUjVqbcZMsmFhcVbLUlbBmTcbDSJjb1gNLQr0TBB6/HhtcLro3QN7uP4\nP2aOViryPv5KkMRN6gIOoLVBWT47zmG8zuH6LU57KCXTT6SJzmBjm5RGHKhd\n6WB+gT7B4+CAq8mHNnx8ITKzIsxh8xfLY3kHE+z2q8Ts65Y/oU591YlCijcg\nRfop\r\n=JN7k\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHLImprPOVzB7EDWIzJvKI6fpprpkwphgtfPQjQ02/VeAiEAs/ROj747R89Ek7CHVXbAn0NCoUC6snsaeqEV6lAma9A="}]},"maintainers":[{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"}],"_npmUser":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-react-boilerplate_1.10.1_1576496626317_0.7798513636055033"},"_hasShrinkwrap":false},"2.0.0":{"name":"express-react-boilerplate","description":"Express react boilerplate","version":"2.0.0","main":"dist/index.js","license":"MIT","author":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com","url":"https://github.com/htdangkhoa"},"contributors":[{"name":"huynhtran.dangkhoa@gmail.com"}],"homepage":"https://github.com/htdangkhoa/erb","bugs":{"url":"https://github.com/htdangkhoa/erb/issues"},"repository":{"type":"git","url":"https://github.com/htdangkhoa/erb.git"},"keywords":["erb","erb-gen","express","expressjs","rest","restful","router","app","api","react","react-router","redux","template","webpack","universal","boilerplate"],"bin":{"erb-gen":"bin/index.js"},"scripts":{"start":"NODE_ENV=production node -r dotenv-flow/config dist/index.js","prestart":"npm run build","dev":"NODE_ENV=development nodemon src/index.js --exec \"node -r dotenv-flow/config ./node_modules/.bin/babel-node\"","predev":"flow stop && flow","build":"BABEL_ENV=production babel --minified --no-comments src -D -d dist && npm run wp","postbuild":"rimraf dist/**/__tests__","prebuild":"rimraf dist","wp":"NODE_ENV=production node -r dotenv-flow/config ./node_modules/.bin/webpack --progress --colors --config src/tools/webpack.config.js --bail","prewp":"rimraf public/assets public/loadable-stats.json","stats":"NODE_ENV=production node -r dotenv-flow/config ./node_modules/.bin/webpack --config src/tools/webpack.config.js --progress --profile --json > stats.json --bail","analyze":"webpack-bundle-analyzer stats.json","preanalyze":"npm run stats","storybook":"start-storybook --ci","test":"jest -u"},"engines":{"node":">=10.13.0"},"nodemonConfig":{"ignore":["dist","public","src/client","src/store"]},"jest":{"moduleNameMapper":{"\\.(css|less|scss|sss|styl)$":"<rootDir>/src/tools/jest/styles-mock.js",".*\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/src/tools/jest/assets-mock.js"},"globals":{"__DEV__":false}},"devDependencies":{"@babel/cli":"^7.6.4","@babel/core":"^7.2.2","@babel/node":"^7.6.3","@babel/plugin-proposal-optional-chaining":"^7.6.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-transform-runtime":"^7.7.4","@babel/plugin-transform-spread":"^7.6.2","@babel/polyfill":"^7.6.0","@babel/preset-env":"^7.3.1","@babel/preset-flow":"^7.0.0","@babel/preset-react":"^7.6.3","@babel/runtime":"^7.6.3","@loadable/babel-plugin":"^5.11.0","@loadable/webpack-plugin":"^5.7.1","@storybook/react":"^5.2.8","babel-eslint":"^10.0.3","babel-loader":"^8.0.6","babel-plugin-module-resolver":"^4.0.0","compression-webpack-plugin":"^3.0.0","css-loader":"^3.2.0","eslint":"^6.5.1","eslint-config-airbnb-base":"^14.0.0","eslint-config-prettier":"^6.5.0","eslint-import-resolver-babel-module":"^5.1.0","eslint-plugin-flowtype":"^4.3.0","eslint-plugin-import":"^2.18.2","eslint-plugin-jest":"^23.1.1","eslint-plugin-prettier":"^3.1.1","eslint-plugin-react":"^7.16.0","flow-bin":"^0.114.0","friendly-errors-webpack-plugin":"^1.7.0","imagemin-webpack-plugin":"^2.4.2","jest":"^24.9.0","jest-css-modules":"^2.1.0","lodash-webpack-plugin":"^0.11.5","mini-css-extract-plugin":"^0.8.0","nodemon":"^2.0.1","optimize-css-assets-webpack-plugin":"^5.0.3","prettier":"^1.18.2","react-test-renderer":"^16.12.0","sass-loader":"^8.0.0","terser-webpack-plugin":"^2.2.1","url-loader":"^3.0.0","webpack":"^4.29.0","webpack-bundle-analyzer":"^3.6.0","webpack-cli":"^3.2.1","webpack-dev-middleware":"^3.7.2","webpack-hot-middleware":"^2.25.0","webpackbar":"^4.0.0"},"dependencies":{"@fortawesome/fontawesome-free":"^5.12.0","@hot-loader/react-dom":"^16.10.2","@loadable/component":"^5.11.0","@loadable/server":"^5.11.0","asset-require-hook":"^1.2.0","axios":"^0.19.0","bcrypt":"^3.0.6","body-parser":"^1.19.0","bootstrap":"^4.3.1","commander":"^4.0.1","compression":"^1.7.4","connected-react-router":"^6.5.2","cors":"^2.8.5","css-modules-require-hook":"^4.2.3","dotenv-flow":"^3.1.0","express":"^4.17.1","git-clone":"^0.1.0","helmet":"^3.21.1","history":"^4.10.1","html-minifier":"^4.0.0","i18next":"^19.0.1","i18next-browser-languagedetector":"^4.0.0","i18next-xhr-backend":"^3.2.0","jsonwebtoken":"^8.5.1","lodash":"^4.17.15","moment-timezone":"^0.5.27","mongodb":"^3.3.3","node-sass":"^4.13.0","passport":"^0.4.0","passport-jwt":"^4.0.0","prop-types":"^15.7.2","react":"^16.10.2","react-cookie":"^4.0.1","react-dev-utils":"^10.0.0","react-dom":"^16.11.0","react-emoji-render":"^1.2.0","react-helmet":"^5.2.1","react-hot-loader":"^4.12.15","react-html-parser":"^2.0.2","react-i18next":"^11.0.0","react-mde":"^7.6.2","react-paginate":"^6.3.2","react-redux":"^7.1.1","react-router":"^5.1.2","react-router-config":"^5.1.1","react-router-dom":"^5.1.2","react-router-last-location":"^2.0.1","react-spinners":"^0.6.1","react-switch":"^5.0.1","react-toastify":"^5.4.0","reactstrap":"^8.1.1","redux":"^4.0.4","redux-devtools-extension":"^2.13.8","redux-form":"^8.2.6","redux-thunk":"^2.3.0","rimraf":"^3.0.0","serialize-javascript":"^2.1.0","showdown":"^1.9.1","universal-cookie":"^4.0.2","validator":"^12.0.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Huỳnh Trần Đăng Khoa\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"express-react-boilerplate@2.0.0","dist":{"shasum":"047fb89bec303c6ecb6f4ceeccea21fbb78cbe92","integrity":"sha512-100/5egq7bD0CMpQbWA2A43OsUwi7xE8CuC6vYrmdS6ftqzOhro7NBHxufDz/lksNWZT6x5KdQUsFSVvMrwjmQ==","tarball":"https://registry.npmjs.org/express-react-boilerplate/-/express-react-boilerplate-2.0.0.tgz","fileCount":159,"unpackedSize":242483,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd+HwhCRA9TVsSAnZWagAAO8QQAJxzDv2rIbAmZtwb0ZTH\nP4rp07/d2gyUhduag2F0xwy60UR0ESI45CR+ZGxA6mYXhr6uXlY8Ntq3DGBW\namLb12qkNN30XrFNxyNm/2qZ5TIhr54xyhe7T+fq9WYyFwYrXyFCOmaNOXCM\nUFcKtXS1cofAgTQJ0Gj54tENMH4wM917xIckyyqygMe6MjN0J/IJcbadofGQ\nILyde27p9XIZnbc6AYOEO2Hd+sKUKOFtkccITV4QV6PveESt8zwvHYVxX9aH\nKPTUZu+6BGqbv06NnJa/u5qQWn/1WUNpfzx3lSBBFTJwk06RepnMbjmLg3hs\nTzgD4sbJMaPnikwr2NE6UhyqdFGNLbNmFtcpfXNd7zFtuu2NMMMOO0FTud6D\ntM55SywUh5Yt4bXVr+PPFQlcdtiUevDID2EWlqvVAB67kjLMQTTjMlSsLCJ2\nYtsWEWvHw+JfoSGsfzL/wfNSRjeomTq+6R2v348JTi6BQob+5ZNO8eGrw3fw\nAq6EZUEysDuVxpIGVcoJiDJ46S/BclN2K65wjJlIc4uLV9I1lG0GZsEawLZ9\neVJteC4XVFyhLg1CLePei9/rbBy3cQnQ0HLS00DlXZdJg71tIITmg8cIjr95\n80TsgebM+2RcJPDc3RdcniNgTVt6V0hN19MgHaGsaNBlY8mFX/eQVVuOYWB8\nqKWG\r\n=hKlj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDxy0F+ZPwvhMyibRhj9T/3hdz7olxg4MU1Olo/Q3SrUwIhAN+5kvQBZkKmYDSKCAVfH/pTVgm3C9QNx4gq3LduROAJ"}]},"maintainers":[{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"}],"_npmUser":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-react-boilerplate_2.0.0_1576565793199_0.9017590350691511"},"_hasShrinkwrap":false},"2.0.1":{"name":"express-react-boilerplate","description":"Express react boilerplate","version":"2.0.1","main":"dist/index.js","license":"MIT","author":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com","url":"https://github.com/htdangkhoa"},"contributors":[{"name":"huynhtran.dangkhoa@gmail.com"}],"homepage":"https://github.com/htdangkhoa/erb","bugs":{"url":"https://github.com/htdangkhoa/erb/issues"},"repository":{"type":"git","url":"https://github.com/htdangkhoa/erb.git"},"keywords":["erb","erb-gen","express","expressjs","rest","restful","router","app","api","react","react-router","redux","template","webpack","universal","boilerplate"],"bin":{"erb-gen":"bin/index.js"},"scripts":{"start":"NODE_ENV=production node -r dotenv-flow/config dist/index.js","prestart":"npm run build","dev":"NODE_ENV=development nodemon src/index.js --exec \"node -r dotenv-flow/config ./node_modules/.bin/babel-node\"","predev":"flow stop && flow","build":"BABEL_ENV=production babel --minified --no-comments src -D -d dist && npm run wp","postbuild":"rimraf dist/**/__tests__","prebuild":"rimraf dist public/assets","wp":"NODE_ENV=production node -r dotenv-flow/config ./node_modules/.bin/webpack --progress --colors --config src/tools/webpack.config.js --bail","prewp":"rimraf public/assets public/loadable-stats.json","stats":"NODE_ENV=production node -r dotenv-flow/config ./node_modules/.bin/webpack --config src/tools/webpack.config.js --progress --profile --json > stats.json --bail","analyze":"webpack-bundle-analyzer stats.json","preanalyze":"npm run stats","storybook":"start-storybook --ci","test":"jest -u"},"engines":{"node":">=10.13.0"},"nodemonConfig":{"ignore":["dist","public","src/client","src/store"]},"jest":{"moduleNameMapper":{"\\.(css|less|scss|sss|styl)$":"<rootDir>/src/tools/jest/styles-mock.js",".*\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/src/tools/jest/assets-mock.js"},"globals":{"__DEV__":false}},"devDependencies":{"@babel/cli":"^7.6.4","@babel/core":"^7.2.2","@babel/node":"^7.6.3","@babel/plugin-proposal-optional-chaining":"^7.6.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-transform-runtime":"^7.7.4","@babel/plugin-transform-spread":"^7.6.2","@babel/polyfill":"^7.6.0","@babel/preset-env":"^7.3.1","@babel/preset-flow":"^7.0.0","@babel/preset-react":"^7.6.3","@babel/runtime":"^7.6.3","@loadable/babel-plugin":"^5.11.0","@loadable/webpack-plugin":"^5.7.1","@storybook/react":"^5.2.8","babel-eslint":"^10.0.3","babel-loader":"^8.0.6","babel-plugin-module-resolver":"^4.0.0","compression-webpack-plugin":"^3.0.0","css-loader":"^3.2.0","eslint":"^6.5.1","eslint-config-airbnb-base":"^14.0.0","eslint-config-prettier":"^6.5.0","eslint-import-resolver-babel-module":"^5.1.0","eslint-plugin-flowtype":"^4.3.0","eslint-plugin-import":"^2.18.2","eslint-plugin-jest":"^23.1.1","eslint-plugin-prettier":"^3.1.1","eslint-plugin-react":"^7.16.0","flow-bin":"^0.114.0","friendly-errors-webpack-plugin":"^1.7.0","imagemin-webpack-plugin":"^2.4.2","jest":"^24.9.0","jest-css-modules":"^2.1.0","lodash-webpack-plugin":"^0.11.5","mini-css-extract-plugin":"^0.8.0","nodemon":"^2.0.1","optimize-css-assets-webpack-plugin":"^5.0.3","prettier":"^1.18.2","react-test-renderer":"^16.12.0","sass-loader":"^8.0.0","terser-webpack-plugin":"^2.2.1","url-loader":"^3.0.0","webpack":"^4.29.0","webpack-bundle-analyzer":"^3.6.0","webpack-cli":"^3.2.1","webpack-dev-middleware":"^3.7.2","webpack-hot-middleware":"^2.25.0","webpackbar":"^4.0.0"},"dependencies":{"@fortawesome/fontawesome-free":"^5.12.0","@hot-loader/react-dom":"^16.10.2","@loadable/component":"^5.11.0","@loadable/server":"^5.11.0","asset-require-hook":"^1.2.0","axios":"^0.19.0","bcrypt":"^3.0.6","body-parser":"^1.19.0","bootstrap":"^4.3.1","commander":"^4.0.1","compression":"^1.7.4","connected-react-router":"^6.5.2","cors":"^2.8.5","css-modules-require-hook":"^4.2.3","dotenv-flow":"^3.1.0","express":"^4.17.1","git-clone":"^0.1.0","helmet":"^3.21.1","history":"^4.10.1","html-minifier":"^4.0.0","i18next":"^19.0.1","i18next-browser-languagedetector":"^4.0.0","i18next-xhr-backend":"^3.2.0","jsonwebtoken":"^8.5.1","lodash":"^4.17.15","moment-timezone":"^0.5.27","mongodb":"^3.3.3","node-sass":"^4.13.0","passport":"^0.4.0","passport-jwt":"^4.0.0","prop-types":"^15.7.2","react":"^16.10.2","react-cookie":"^4.0.1","react-dev-utils":"^10.0.0","react-dom":"^16.11.0","react-emoji-render":"^1.2.0","react-helmet":"^5.2.1","react-hot-loader":"^4.12.15","react-html-parser":"^2.0.2","react-i18next":"^11.0.0","react-mde":"^7.6.2","react-paginate":"^6.3.2","react-redux":"^7.1.1","react-router":"^5.1.2","react-router-config":"^5.1.1","react-router-dom":"^5.1.2","react-router-last-location":"^2.0.1","react-spinners":"^0.6.1","react-switch":"^5.0.1","react-toastify":"^5.4.0","reactstrap":"^8.1.1","redux":"^4.0.4","redux-devtools-extension":"^2.13.8","redux-form":"^8.2.6","redux-thunk":"^2.3.0","rimraf":"^3.0.0","serialize-javascript":"^2.1.0","showdown":"^1.9.1","universal-cookie":"^4.0.2","validator":"^12.0.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Huỳnh Trần Đăng Khoa\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"express-react-boilerplate@2.0.1","dist":{"shasum":"058190fc389642e2f38c651d516c2a8fbf6f7982","integrity":"sha512-lNArTQryeEP7q3N7nezHrkpsPTjznSf2iGILaPhx7KYfJ2yJYxNEaQTYwXxEA67r+whGybjpiyCHet3EJmR2ww==","tarball":"https://registry.npmjs.org/express-react-boilerplate/-/express-react-boilerplate-2.0.1.tgz","fileCount":160,"unpackedSize":242495,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd+LEQCRA9TVsSAnZWagAAcY4QAIIKD19/hf+HD7iqR2RD\nIbzPG8UCHHqz2Qyr5TjncHopxxOPcKEVrN07BXJDcS6QBUjFPK83wwjHX3ts\nYNkDtk83hKbZhkv7mGtVR28bstxVmYAxpHDXZ0fMGfZ+8sy2Jmw0ZG+pKNMp\nBiyouDIxqcwtH5/TeyPTRbGnrS8WFXLBe+suCQ5Fs4hformqm/Ca5LmvcVRM\nXNsqTMrgI4ewrq1g2cfBfSou/1YTFM6PvjWakcpxkROD4Vjrt2+jJNcGKGz/\nWLfENnzKOM37CCIdGPbn+ZAk/n8itcsx/5mLvMiDGoWmmxu8pb8wikbjf0BW\n4f88gPRc+ptTA5BnrChmVAdQXkqk2jhI+zvPR+L6blmAQcgi/U7sA16APtJc\n61hJa8C4hPVmUQ1OLX+cG37Te2A0e0bsdxawkuTZ5X6E0DnU5GP6yMyLdo0V\nMECs1eZ8J9HDrG4JM6d9sT63CwHLJwCileij2itaqUrdONLQeLkjwemPrqeB\nQE+SLwXuehyLnuuLaRpB2mjDPD23Q3n0//K4kI/Kl7rlgBPTdhXQqLSs6hHA\n90l6xZLWY1Zkx1l3JuHZjeEAzUBy+QoDyPgUW7suTFm66OpL/53sFf0iH7H6\nHAncFN5xL/KvemTreyDl6x5FG7b/BG984pF05Zq4sIK3qJbVez7MoB8TwCaW\nLw0E\r\n=ZCsp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC5n/5MfncVlSAqm+VZIC+7YSkflYApdQDY3gUhK3NSyAIgWfsBAki0vcd9YNd3ISoQQDJM4PLVx07GYhYrH6Rj278="}]},"maintainers":[{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"}],"_npmUser":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-react-boilerplate_2.0.1_1576579344100_0.3033704906428689"},"_hasShrinkwrap":false},"2.1.0":{"name":"express-react-boilerplate","description":"Express react boilerplate","version":"2.1.0","main":"dist/index.js","license":"MIT","author":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com","url":"https://github.com/htdangkhoa"},"contributors":[{"name":"huynhtran.dangkhoa@gmail.com"}],"homepage":"https://github.com/htdangkhoa/erb","bugs":{"url":"https://github.com/htdangkhoa/erb/issues"},"repository":{"type":"git","url":"https://github.com/htdangkhoa/erb.git"},"keywords":["erb","erb-gen","express","expressjs","rest","restful","router","app","api","react","react-router","redux","template","webpack","universal","boilerplate","postcss","css-modules"],"bin":{"erb-gen":"bin/index.js"},"scripts":{"start":"NODE_ENV=production node -r dotenv-flow/config dist/index.js","prestart":"npm run build","dev":"NODE_ENV=development nodemon src/index.js --exec \"node -r dotenv-flow/config ./node_modules/.bin/babel-node\"","predev":"flow stop && flow","build":"BABEL_ENV=production babel --minified --no-comments src -D -d dist && npm run wp","postbuild":"rimraf dist/**/__tests__","prebuild":"rimraf dist public/assets","wp":"NODE_ENV=production node -r dotenv-flow/config ./node_modules/.bin/webpack --progress --colors --config src/tools/webpack.config.js --bail","prewp":"rimraf public/assets public/loadable-stats.json","stats":"NODE_ENV=production node -r dotenv-flow/config ./node_modules/.bin/webpack --config src/tools/webpack.config.js --progress --profile --json > stats.json --bail","analyze":"webpack-bundle-analyzer stats.json","preanalyze":"npm run stats","storybook":"start-storybook --ci","test":"jest -u"},"engines":{"node":">=10.13.0"},"nodemonConfig":{"ignore":["dist","public","src/client","src/store"]},"jest":{"moduleNameMapper":{"\\.(css|less|scss|sss|styl)$":"<rootDir>/src/tools/jest/styles-mock.js",".*\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/src/tools/jest/assets-mock.js"},"globals":{"__DEV__":false}},"browserslist":["> 1%","last 2 versions"],"devDependencies":{"@babel/cli":"^7.6.4","@babel/core":"^7.2.2","@babel/node":"^7.6.3","@babel/plugin-proposal-optional-chaining":"^7.6.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-transform-runtime":"^7.7.4","@babel/plugin-transform-spread":"^7.6.2","@babel/polyfill":"^7.6.0","@babel/preset-env":"^7.3.1","@babel/preset-flow":"^7.0.0","@babel/preset-react":"^7.6.3","@babel/runtime":"^7.6.3","@loadable/babel-plugin":"^5.11.0","@loadable/webpack-plugin":"^5.7.1","@storybook/react":"^5.2.8","babel-eslint":"^10.0.3","babel-loader":"^8.0.6","babel-plugin-module-resolver":"^4.0.0","compression-webpack-plugin":"^3.0.0","css-loader":"^3.2.0","eslint":"^6.5.1","eslint-config-airbnb-base":"^14.0.0","eslint-config-prettier":"^6.5.0","eslint-import-resolver-babel-module":"^5.1.0","eslint-plugin-flowtype":"^4.3.0","eslint-plugin-import":"^2.18.2","eslint-plugin-jest":"^23.1.1","eslint-plugin-prettier":"^3.1.1","eslint-plugin-react":"^7.16.0","flow-bin":"^0.114.0","friendly-errors-webpack-plugin":"^1.7.0","imagemin-webpack-plugin":"^2.4.2","jest":"^24.9.0","jest-css-modules":"^2.1.0","lodash-webpack-plugin":"^0.11.5","mini-css-extract-plugin":"^0.8.0","nodemon":"^2.0.1","optimize-css-assets-webpack-plugin":"^5.0.3","postcss":"^7.0.25","postcss-loader":"^3.0.0","prettier":"^1.18.2","react-test-renderer":"^16.12.0","sass-loader":"^8.0.0","terser-webpack-plugin":"^2.2.1","url-loader":"^3.0.0","webpack":"^4.29.0","webpack-bundle-analyzer":"^3.6.0","webpack-cli":"^3.2.1","webpack-dev-middleware":"^3.7.2","webpack-hot-middleware":"^2.25.0","webpackbar":"^4.0.0"},"dependencies":{"@fortawesome/fontawesome-free":"^5.12.0","@hot-loader/react-dom":"^16.10.2","@loadable/component":"^5.11.0","@loadable/server":"^5.11.0","asset-require-hook":"^1.2.0","autoprefixer":"^9.7.3","axios":"^0.19.0","bcrypt":"^3.0.6","body-parser":"^1.19.0","bootstrap":"^4.3.1","commander":"^4.0.1","compression":"^1.7.4","connected-react-router":"^6.5.2","cors":"^2.8.5","css-modules-require-hook":"^4.2.3","dotenv-flow":"^3.1.0","express":"^4.17.1","git-clone":"^0.1.0","helmet":"^3.21.1","history":"^4.10.1","html-minifier":"^4.0.0","i18next":"^19.0.1","i18next-browser-languagedetector":"^4.0.0","i18next-xhr-backend":"^3.2.0","jsonwebtoken":"^8.5.1","lodash":"^4.17.15","moment-timezone":"^0.5.27","mongodb":"^3.3.3","node-sass":"^4.13.0","passport":"^0.4.0","passport-jwt":"^4.0.0","prop-types":"^15.7.2","react":"^16.10.2","react-cookie":"^4.0.1","react-dev-utils":"^10.0.0","react-dom":"^16.11.0","react-emoji-render":"^1.2.0","react-helmet":"^5.2.1","react-hot-loader":"^4.12.15","react-html-parser":"^2.0.2","react-i18next":"^11.0.0","react-mde":"^7.6.2","react-paginate":"^6.3.2","react-redux":"^7.1.1","react-router":"^5.1.2","react-router-config":"^5.1.1","react-router-dom":"^5.1.2","react-router-last-location":"^2.0.1","react-spinners":"^0.6.1","react-switch":"^5.0.1","react-toastify":"^5.4.0","reactstrap":"^8.1.1","redux":"^4.0.4","redux-devtools-extension":"^2.13.8","redux-form":"^8.2.6","redux-thunk":"^2.3.0","rimraf":"^3.0.0","serialize-javascript":"^2.1.0","showdown":"^1.9.1","universal-cookie":"^4.0.2","validator":"^12.0.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Huỳnh Trần Đăng Khoa\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"express-react-boilerplate@2.1.0","dist":{"shasum":"567548be7a1cd955cbd71584aeb3f509aca5b814","integrity":"sha512-BKhrHlUzdMy2+NaNuiXoLBlidjQtIuTp6jJAElPS7wTxpjooHicpB0x5F8jZ+s++uIh7RTGogTH6QhoeIxQUtw==","tarball":"https://registry.npmjs.org/express-react-boilerplate/-/express-react-boilerplate-2.1.0.tgz","fileCount":167,"unpackedSize":189525,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd+zclCRA9TVsSAnZWagAAzjgQAI1vkXdyjmo0oEhXORqp\nKDsj0N54RVjmvKI8PXGIy7+quWRBXLa1QW7VSvZ7ABIteF2jHcWs7yQrKMlS\n4CaNuSeTsUGdsGyyhwMQVQyOM4uQXxxUhoLyjTPuDF8+u6RnqR8d8/pkT1bE\nJ/1C+i3p/WX26Y6E675iCdLsJD10fzETGFRLgNsXXKcTzILYJpnM+cLtobkl\ndjei8UuaJ/OPuZKNWsv/JJ1WJArdNwXB7lH299C92r4/DnTGmgU0+kqKZWxt\nseqrP1cN4v9oTJyADEprrmgU48FwonYitjH2s3OUwQlRtlfcxFyG0rhbsNAW\nYmXCxK4qn0cyKbqpe/vzWklwQ+C7w6gDaEHguljSb7S7j3/yB4GjqP2XcGN0\n4l0ku4frgdbMdGmEZmDgEpSB/urqDCdreu9NFZCrsuTpZ7PuNOKNI7sJGbZm\nGCrzY6IqWskDKn0lsMd6u2GrX347CvI+ZpdfzId4Qf64YaY5Gsh+Pk5x+pQb\nHYUjpyR9jtYbZZNZPxO9e8TLAS8HLFtT9xcJduev16oJfqID6wELQf20yvAk\nXFwTunDcPNtbb22K3IXINRqihKc6txm+S7qiWMiDBEqGVbCKzPdbbCHRTm9e\nC43QP4zjcbdEtco5RNsyLNTMqTn/9e3xrH/Rn7UO4Nt8McurIf/QrzSM7ruj\nPNNa\r\n=AtBh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFDyoyj/vp61jMRJ37Wia9uthgzkZtL/rUD6V94reofeAiEAiQgCV5ZS6eOLoZqEbIZNupHQ+rjppiLlyDotjCZ2vas="}]},"maintainers":[{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"}],"_npmUser":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-react-boilerplate_2.1.0_1576744741012_0.9752607164877756"},"_hasShrinkwrap":false},"2.1.1":{"name":"express-react-boilerplate","description":"Express react boilerplate","version":"2.1.1","main":"dist/index.js","license":"MIT","author":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com","url":"https://github.com/htdangkhoa"},"contributors":[{"name":"huynhtran.dangkhoa@gmail.com"}],"homepage":"https://github.com/htdangkhoa/erb","bugs":{"url":"https://github.com/htdangkhoa/erb/issues"},"repository":{"type":"git","url":"https://github.com/htdangkhoa/erb.git"},"keywords":["erb","erb-gen","express","expressjs","rest","restful","router","app","api","react","react-router","redux","template","webpack","universal","boilerplate","postcss","css-modules"],"bin":{"erb-gen":"bin/index.js"},"scripts":{"start":"NODE_ENV=production node -r dotenv-flow/config dist/index.js","dev":"NODE_ENV=development nodemon src/index.js --exec \"node -r dotenv-flow/config ./node_modules/.bin/babel-node\"","predev":"flow stop && flow","build":"BABEL_ENV=production babel --minified --no-comments src -D -d dist && npm run wp","postbuild":"rimraf dist/**/__tests__","prebuild":"rimraf dist public/assets","wp":"NODE_ENV=production node -r dotenv-flow/config ./node_modules/.bin/webpack --progress --colors --config src/tools/webpack.config.js --bail","prewp":"rimraf public/assets public/loadable-stats.json","stats":"NODE_ENV=production node -r dotenv-flow/config ./node_modules/.bin/webpack --config src/tools/webpack.config.js --progress --profile --json > stats.json --bail","analyze":"webpack-bundle-analyzer stats.json","preanalyze":"npm run stats","storybook":"start-storybook --ci","test":"jest -u"},"engines":{"node":">=10.13.0"},"nodemonConfig":{"ignore":["dist","public","src/client","src/store"]},"jest":{"moduleNameMapper":{"\\.(css|less|scss|sss|styl)$":"<rootDir>/src/tools/jest/styles-mock.js",".*\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/src/tools/jest/assets-mock.js"},"globals":{"__DEV__":false}},"browserslist":["> 1%","last 2 versions"],"devDependencies":{"@babel/cli":"^7.6.4","@babel/core":"^7.2.2","@babel/node":"^7.6.3","@babel/plugin-proposal-optional-chaining":"^7.6.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-transform-runtime":"^7.7.4","@babel/plugin-transform-spread":"^7.6.2","@babel/polyfill":"^7.6.0","@babel/preset-env":"^7.3.1","@babel/preset-flow":"^7.0.0","@babel/preset-react":"^7.6.3","@babel/runtime":"^7.6.3","@loadable/babel-plugin":"^5.11.0","@loadable/webpack-plugin":"^5.7.1","@storybook/react":"^5.2.8","babel-eslint":"^10.0.3","babel-loader":"^8.0.6","babel-plugin-module-resolver":"^4.0.0","compression-webpack-plugin":"^3.0.0","css-loader":"^3.2.0","eslint":"^6.5.1","eslint-config-airbnb-base":"^14.0.0","eslint-config-prettier":"^6.5.0","eslint-import-resolver-babel-module":"^5.1.0","eslint-plugin-flowtype":"^4.3.0","eslint-plugin-import":"^2.18.2","eslint-plugin-jest":"^23.1.1","eslint-plugin-prettier":"^3.1.1","eslint-plugin-react":"^7.16.0","flow-bin":"^0.114.0","friendly-errors-webpack-plugin":"^1.7.0","imagemin-webpack-plugin":"^2.4.2","jest":"^24.9.0","jest-css-modules":"^2.1.0","lodash-webpack-plugin":"^0.11.5","mini-css-extract-plugin":"^0.8.0","nodemon":"^2.0.1","optimize-css-assets-webpack-plugin":"^5.0.3","postcss":"^7.0.25","postcss-loader":"^3.0.0","prettier":"^1.18.2","react-test-renderer":"^16.12.0","sass-loader":"^8.0.0","terser-webpack-plugin":"^2.2.1","url-loader":"^3.0.0","webpack":"^4.29.0","webpack-bundle-analyzer":"^3.6.0","webpack-cli":"^3.2.1","webpack-dev-middleware":"^3.7.2","webpack-hot-middleware":"^2.25.0","webpackbar":"^4.0.0"},"dependencies":{"@fortawesome/fontawesome-free":"^5.12.0","@hot-loader/react-dom":"^16.10.2","@loadable/component":"^5.11.0","@loadable/server":"^5.11.0","asset-require-hook":"^1.2.0","autoprefixer":"^9.7.3","axios":"^0.19.0","bcrypt":"^3.0.6","body-parser":"^1.19.0","bootstrap":"^4.3.1","commander":"^4.0.1","compression":"^1.7.4","connected-react-router":"^6.5.2","cors":"^2.8.5","css-modules-require-hook":"^4.2.3","dotenv-flow":"^3.1.0","express":"^4.17.1","git-clone":"^0.1.0","helmet":"^3.21.1","history":"^4.10.1","html-minifier":"^4.0.0","i18next":"^19.0.1","i18next-browser-languagedetector":"^4.0.0","i18next-xhr-backend":"^3.2.0","jsonwebtoken":"^8.5.1","lodash":"^4.17.15","moment-timezone":"^0.5.27","mongodb":"^3.3.3","node-sass":"^4.13.0","passport":"^0.4.0","passport-jwt":"^4.0.0","prop-types":"^15.7.2","react":"^16.10.2","react-cookie":"^4.0.1","react-dev-utils":"^10.0.0","react-dom":"^16.11.0","react-emoji-render":"^1.2.0","react-helmet":"^5.2.1","react-hot-loader":"^4.12.15","react-html-parser":"^2.0.2","react-i18next":"^11.0.0","react-mde":"^7.6.2","react-paginate":"^6.3.2","react-redux":"^7.1.1","react-router":"^5.1.2","react-router-config":"^5.1.1","react-router-dom":"^5.1.2","react-router-last-location":"^2.0.1","react-spinners":"^0.6.1","react-switch":"^5.0.1","react-toastify":"^5.4.0","reactstrap":"^8.1.1","redux":"^4.0.4","redux-devtools-extension":"^2.13.8","redux-form":"^8.2.6","redux-thunk":"^2.3.0","rimraf":"^3.0.0","serialize-javascript":"^2.1.0","showdown":"^1.9.1","universal-cookie":"^4.0.2","validator":"^12.0.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Huỳnh Trần Đăng Khoa\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"express-react-boilerplate@2.1.1","dist":{"shasum":"9e79fa4c1e98f6d5828eb29750a944345c95cf78","integrity":"sha512-Aa1edtkbTCc2RABymrf7bda/wU8GjZLoy98lxQP5KIkEAFr6Lv3Jep9X3YSvCYwpjZyIRLIdLfN9RgqDastEww==","tarball":"https://registry.npmjs.org/express-react-boilerplate/-/express-react-boilerplate-2.1.1.tgz","fileCount":167,"unpackedSize":189662,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd+0bSCRA9TVsSAnZWagAAjGEP/0E9WKSbhbizFYD5CWq4\niSWGe1kFer/BgZLkZtcnKu2u4h28Dm7uQPPsB/3+yqVuD5Ib7S1rC52BC52/\nFo1TFR5NMcjrZ2D7h9Zm2VEfxR0LaEdll706G2+w0Z8kCEZyJ/s3S7Rdnsfv\nrMTzzW3bIMV+5x7g+i81c2epLgR9mILLZj6kt3N+lSDNEKhV5sbPsAf33C2H\n/neCxS7b/bafGq7Je/uah7hQ9GJxi+NM7zZfwL930+MMwj5T0TaJpcQIbmNj\n8+k3Udndy1goJVOd1Czk0iN7sljocTen5du6Cprx0g2myEPCMapqUbSAnZTU\nDkYEpjeJCX2KVKhPiBOfGR6h7VcBlfqV/cmUu7LoH7xhdAsA2dF4Yf0MlBIl\nMTFPOK1Hp+3NQyqYze0F1gBaLAkhFAdZrI8HuugKV5b9ppOvLUDbRhQIfWDY\nNMAcjy676ZR/ADC3/dtZHrc5Eo1hYecEWWovQmsA8Fnmm8V2w0ya0BpgrTc5\nW27W4gJyASQ5ysZcb3t+L6MK5dfnlKYxGm3rQbMMMXxPkptKGcU6HVG/hNBX\nSvHcNZp9sfO0ocXArdFuWjb+AV1Z1jSIMcx9+e6m5RFo3wMzgLWVj8IwMuQV\nJ7ReSl75VkEN6AT2YLcMvFdFxjWj+nwoKEdR/39mUKEmeEWBgKHuc1TDLvf8\nT+jF\r\n=x5Py\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEEJaeQ7oqmCnAtcW1ZfbQsUu09OJyzBRTjbw0pg8S1HAiBxr+EIn0lyMiHxBIEjZTqgeOlNN3fXJeogXyMoZDNWew=="}]},"maintainers":[{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"}],"_npmUser":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-react-boilerplate_2.1.1_1576748753738_0.625790237431818"},"_hasShrinkwrap":false},"2.1.2":{"name":"express-react-boilerplate","description":"Express react boilerplate","version":"2.1.2","main":"dist/index.js","license":"MIT","author":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com","url":"https://github.com/htdangkhoa"},"contributors":[{"name":"huynhtran.dangkhoa@gmail.com"}],"homepage":"https://github.com/htdangkhoa/erb","bugs":{"url":"https://github.com/htdangkhoa/erb/issues"},"repository":{"type":"git","url":"https://github.com/htdangkhoa/erb.git"},"keywords":["erb","erb-gen","express","expressjs","rest","restful","router","app","api","react","react-router","redux","template","webpack","universal","boilerplate","postcss","css-modules"],"bin":{"erb-gen":"bin/index.js"},"scripts":{"start":"NODE_ENV=production node -r dotenv-flow/config dist/index.js","dev":"NODE_ENV=development nodemon src/index.js --exec \"node -r dotenv-flow/config ./node_modules/.bin/babel-node\"","predev":"flow stop && flow","build":"BABEL_ENV=production babel --minified --no-comments src -D -d dist && npm run wp","postbuild":"rimraf dist/**/__tests__","prebuild":"rimraf dist public/assets","wp":"NODE_ENV=production node -r dotenv-flow/config ./node_modules/.bin/webpack --progress --colors --config src/tools/webpack.config.js --bail","prewp":"rimraf public/assets public/loadable-stats.json","stats":"NODE_ENV=production node -r dotenv-flow/config ./node_modules/.bin/webpack --config src/tools/webpack.config.js --progress --profile --json > stats.json --bail","analyze":"webpack-bundle-analyzer stats.json","preanalyze":"npm run stats","storybook":"start-storybook --ci","test":"jest -u"},"engines":{"node":">=10.13.0"},"nodemonConfig":{"ignore":["dist","public","src/client","src/store"]},"jest":{"moduleNameMapper":{"\\.(css|less|scss|sss|styl)$":"<rootDir>/src/tools/jest/styles-mock.js",".*\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/src/tools/jest/assets-mock.js"},"globals":{"__DEV__":false}},"browserslist":["> 1%","last 2 versions"],"devDependencies":{"@babel/cli":"^7.6.4","@babel/core":"^7.2.2","@babel/node":"^7.6.3","@babel/plugin-proposal-optional-chaining":"^7.6.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-transform-runtime":"^7.7.4","@babel/plugin-transform-spread":"^7.6.2","@babel/polyfill":"^7.6.0","@babel/preset-env":"^7.3.1","@babel/preset-flow":"^7.0.0","@babel/preset-react":"^7.6.3","@babel/runtime":"^7.6.3","@loadable/babel-plugin":"^5.11.0","@loadable/webpack-plugin":"^5.7.1","@storybook/react":"^5.2.8","babel-eslint":"^10.0.3","babel-loader":"^8.0.6","babel-plugin-module-resolver":"^4.0.0","compression-webpack-plugin":"^3.0.0","css-loader":"^3.2.0","eslint":"^6.5.1","eslint-config-airbnb-base":"^14.0.0","eslint-config-prettier":"^6.5.0","eslint-import-resolver-babel-module":"^5.1.0","eslint-plugin-flowtype":"^4.3.0","eslint-plugin-import":"^2.18.2","eslint-plugin-jest":"^23.1.1","eslint-plugin-prettier":"^3.1.1","eslint-plugin-react":"^7.16.0","flow-bin":"^0.116.1","friendly-errors-webpack-plugin":"^1.7.0","imagemin-webpack-plugin":"^2.4.2","jest":"^24.9.0","jest-css-modules":"^2.1.0","lodash-webpack-plugin":"^0.11.5","mini-css-extract-plugin":"^0.9.0","nodemon":"^2.0.1","optimize-css-assets-webpack-plugin":"^5.0.3","postcss":"^7.0.25","postcss-loader":"^3.0.0","prettier":"^1.18.2","react-test-renderer":"^16.12.0","sass-loader":"^8.0.0","terser-webpack-plugin":"^2.2.1","url-loader":"^3.0.0","webpack":"^4.29.0","webpack-bundle-analyzer":"^3.6.0","webpack-cli":"^3.2.1","webpack-dev-middleware":"^3.7.2","webpack-hot-middleware":"^2.25.0","webpackbar":"^4.0.0"},"dependencies":{"@fortawesome/fontawesome-free":"^5.12.0","@hot-loader/react-dom":"^16.10.2","@loadable/component":"^5.11.0","@loadable/server":"^5.11.0","asset-require-hook":"^1.2.0","autoprefixer":"^9.7.3","axios":"^0.19.0","bcrypt":"^3.0.6","body-parser":"^1.19.0","bootstrap":"^4.3.1","commander":"^4.0.1","compression":"^1.7.4","connected-react-router":"^6.5.2","cors":"^2.8.5","css-modules-require-hook":"^4.2.3","dotenv-flow":"^3.1.0","express":"^4.17.1","git-clone":"^0.1.0","helmet":"^3.21.1","history":"^4.10.1","html-minifier":"^4.0.0","i18next":"^19.0.1","i18next-browser-languagedetector":"^4.0.0","i18next-xhr-backend":"^3.2.0","jsonwebtoken":"^8.5.1","lodash":"^4.17.15","moment-timezone":"^0.5.27","mongodb":"^3.3.3","node-sass":"^4.13.0","passport":"^0.4.0","passport-jwt":"^4.0.0","prop-types":"^15.7.2","react":"^16.10.2","react-cookie":"^4.0.1","react-dev-utils":"^10.0.0","react-dom":"^16.11.0","react-emoji-render":"^1.2.0","react-helmet":"^5.2.1","react-hot-loader":"^4.12.15","react-html-parser":"^2.0.2","react-i18next":"^11.0.0","react-mde":"^8.0.1","react-paginate":"^6.3.2","react-redux":"^7.1.1","react-router":"^5.1.2","react-router-config":"^5.1.1","react-router-dom":"^5.1.2","react-router-last-location":"^2.0.1","react-spinners":"^0.8.0","react-switch":"^5.0.1","react-toastify":"^5.4.0","reactstrap":"^8.1.1","redux":"^4.0.4","redux-devtools-extension":"^2.13.8","redux-form":"^8.2.6","redux-thunk":"^2.3.0","rimraf":"^3.0.0","serialize-javascript":"^2.1.0","showdown":"^1.9.1","universal-cookie":"^4.0.2","validator":"^12.0.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Huỳnh Trần Đăng Khoa\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"express-react-boilerplate@2.1.2","dist":{"shasum":"190677e7d6779aaef83d2fc045ddb0d5bb656903","integrity":"sha512-ACh0AaRCHtuNEVco/N4IKXQT9eGZvsqwpBVc/b0QC1o7HgmrWknVtpo1Grya0GkGUEzK403DY9x4MccJ1Vz4UQ==","tarball":"https://registry.npmjs.org/express-react-boilerplate/-/express-react-boilerplate-2.1.2.tgz","fileCount":171,"unpackedSize":375639,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeIUy7CRA9TVsSAnZWagAAAeYP/1mGJHdhtEks+jKNVBir\ntYkJsgmp4jsZQo+8ED3vh3JQ0vdPSd0Id9q4H6cWSfpGP2N50AgyU6wPM92N\noJbKail+XND/cJYM5uEJussg10oRxzbEx+FWhiopgbTs7CiNxCRSHyOD9HGj\nDJ/MMoJQUsdyq3giyLD+a1zX2I65QUA7EsYqccCVArEH/nN/eOiM4Aes6e/K\nnpw2E8k3xzzwcGfbCeuSEyok10GRFeGMbf/MmNNYgBv9nrudsQCgOzJ1PcPW\nRDuPxAproPEvgCn7ix8Uqbbt1dTUd7WxWJjVZEyHilQ9KiGAmdvpK6Psznjk\nxbUnJh0fG51OWXxIZjrDRQCIByjTgaBrJ8CsxAiMIQYUcY7k8rETOFdMcggJ\nUg2FmM5Eh5lrQvisT95v0S8vbgo7k1yjDIXQYBtDmLf6MrxGZh357vYUmgyU\nAqhO6Bgd770UhXvGUczkUPjrR0DrI7yK1f7QwDa1+HqWQkFQnPF8hUMWgjut\nJ//AlF6tU9PDolpdaa93yuSH9is6e4tgqpLQfstuz9bBTyhKWLUlpIL69N41\nJeTB0ztY2uYarcnl2NO70+Wghz9KqTcSnSU9s91lpwtYJcjEbvn7aNXw22AD\nNGLlpGXInYVzTtHLeXoG99dYhk0WGuxGGxpM+ez3T0w7MMebM/9tmyW69Eg+\noHX3\r\n=3/N2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDCr+3M9FR00uJeV3hQue+lvHfnHwN+JY26Zh7Iir4imwIhAIi/fEX6DmeGmfqPwqohoTqkudXSVHKnkltemWurfZXZ"}]},"maintainers":[{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"}],"_npmUser":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-react-boilerplate_2.1.2_1579240634913_0.8592688496419272"},"_hasShrinkwrap":false},"2.1.3":{"name":"express-react-boilerplate","description":"Express react boilerplate","version":"2.1.3","main":"dist/index.js","license":"MIT","author":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com","url":"https://github.com/htdangkhoa"},"contributors":[{"name":"huynhtran.dangkhoa@gmail.com"}],"homepage":"https://github.com/htdangkhoa/erb","bugs":{"url":"https://github.com/htdangkhoa/erb/issues"},"repository":{"type":"git","url":"https://github.com/htdangkhoa/erb.git"},"keywords":["erb","erb-gen","express","expressjs","rest","restful","router","app","api","react","react-router","redux","template","webpack","universal","boilerplate","postcss","css-modules"],"bin":{"erb-gen":"bin/index.js"},"scripts":{"start":"NODE_ENV=production node -r dotenv-flow/config dist/index.js","dev":"NODE_ENV=development nodemon src/index.js --exec \"node -r dotenv-flow/config ./node_modules/.bin/babel-node\"","predev":"flow stop && flow","build":"BABEL_ENV=production babel --minified --no-comments src -D -d dist && npm run wp","postbuild":"rimraf dist/**/__tests__","prebuild":"rimraf dist public/assets","wp":"NODE_ENV=production node -r dotenv-flow/config ./node_modules/.bin/webpack --progress --colors --config src/tools/webpack.config.js --bail","prewp":"rimraf public/assets public/loadable-stats.json","stats":"NODE_ENV=production node -r dotenv-flow/config ./node_modules/.bin/webpack --config src/tools/webpack.config.js --progress --profile --json > stats.json --bail","analyze":"webpack-bundle-analyzer stats.json","preanalyze":"npm run stats","storybook":"start-storybook --ci","test":"jest -u"},"engines":{"node":">=10.13.0"},"nodemonConfig":{"ignore":["dist","public","src/client","src/store"]},"jest":{"moduleNameMapper":{"\\.(css|less|scss|sss|styl)$":"<rootDir>/src/tools/jest/styles-mock.js",".*\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/src/tools/jest/assets-mock.js"},"globals":{"__DEV__":false}},"browserslist":["> 1%","last 2 versions"],"devDependencies":{"@babel/cli":"^7.6.4","@babel/core":"^7.2.2","@babel/node":"^7.6.3","@babel/plugin-proposal-optional-chaining":"^7.6.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-transform-runtime":"^7.7.4","@babel/plugin-transform-spread":"^7.6.2","@babel/polyfill":"^7.6.0","@babel/preset-env":"^7.3.1","@babel/preset-flow":"^7.0.0","@babel/preset-react":"^7.6.3","@babel/runtime":"^7.6.3","@loadable/babel-plugin":"^5.11.0","@loadable/webpack-plugin":"^5.7.1","@storybook/react":"^5.2.8","babel-eslint":"^10.0.3","babel-loader":"^8.0.6","babel-plugin-module-resolver":"^4.0.0","compression-webpack-plugin":"^3.0.0","css-loader":"^3.2.0","eslint":"^6.5.1","eslint-config-airbnb-base":"^14.0.0","eslint-config-prettier":"^6.5.0","eslint-import-resolver-babel-module":"^5.1.0","eslint-plugin-flowtype":"^4.3.0","eslint-plugin-import":"^2.18.2","eslint-plugin-jest":"^23.1.1","eslint-plugin-prettier":"^3.1.1","eslint-plugin-react":"^7.16.0","flow-bin":"^0.118.0","friendly-errors-webpack-plugin":"^1.7.0","imagemin-webpack-plugin":"^2.4.2","jest":"^25.1.0","jest-css-modules":"^2.1.0","lodash-webpack-plugin":"^0.11.5","mini-css-extract-plugin":"^0.9.0","nodemon":"^2.0.1","optimize-css-assets-webpack-plugin":"^5.0.3","postcss":"^7.0.25","postcss-loader":"^3.0.0","prettier":"^1.18.2","react-test-renderer":"^16.12.0","sass-loader":"^8.0.0","terser-webpack-plugin":"^2.2.1","url-loader":"^3.0.0","webpack":"^4.29.0","webpack-bundle-analyzer":"^3.6.0","webpack-cli":"^3.2.1","webpack-dev-middleware":"^3.7.2","webpack-hot-middleware":"^2.25.0","webpackbar":"^4.0.0"},"dependencies":{"@fortawesome/fontawesome-free":"^5.12.0","@hot-loader/react-dom":"^16.10.2","@loadable/component":"^5.11.0","@loadable/server":"^5.11.0","asset-require-hook":"^1.2.0","autoprefixer":"^9.7.3","axios":"^0.19.0","bcrypt":"^3.0.6","body-parser":"^1.19.0","bootstrap":"^4.3.1","commander":"^4.0.1","compression":"^1.7.4","connected-react-router":"^6.5.2","cors":"^2.8.5","css-modules-require-hook":"^4.2.3","dotenv-flow":"^3.1.0","express":"^4.17.1","git-clone":"^0.1.0","helmet":"^3.21.1","history":"^4.10.1","html-minifier":"^4.0.0","i18next":"^19.0.1","i18next-browser-languagedetector":"^4.0.0","i18next-xhr-backend":"^3.2.0","jsonwebtoken":"^8.5.1","lodash":"^4.17.15","moment-timezone":"^0.5.27","mongodb":"^3.3.3","node-sass":"^4.13.0","passport":"^0.4.0","passport-jwt":"^4.0.0","prop-types":"^15.7.2","react":"^16.10.2","react-cookie":"^4.0.1","react-dev-utils":"^10.0.0","react-dom":"^16.11.0","react-emoji-render":"^1.2.0","react-helmet":"^5.2.1","react-hot-loader":"^4.12.15","react-html-parser":"^2.0.2","react-i18next":"^11.0.0","react-mde":"^8.0.1","react-paginate":"^6.3.2","react-redux":"^7.1.1","react-router":"^5.1.2","react-router-config":"^5.1.1","react-router-dom":"^5.1.2","react-router-last-location":"^2.0.1","react-spinners":"^0.8.0","react-switch":"^5.0.1","react-toastify":"^5.4.0","reactstrap":"^8.1.1","redux":"^4.0.4","redux-devtools-extension":"^2.13.8","redux-form":"^8.2.6","redux-thunk":"^2.3.0","rimraf":"^3.0.0","serialize-javascript":"^2.1.0","showdown":"^1.9.1","universal-cookie":"^4.0.2","validator":"^12.0.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Huỳnh Trần Đăng Khoa\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"express-react-boilerplate@2.1.3","dist":{"shasum":"9b7dedf3e4ec98fbb0759fdb02fbe2ab489be57c","integrity":"sha512-T5yciL2BoCZlKXc/rSAMMYxdLzPYaodDof1kaNN+br27bdMKA/dfASQt8Qh8q/u2bOn/Sr8WtjnWIetlgvgg+Q==","tarball":"https://registry.npmjs.org/express-react-boilerplate/-/express-react-boilerplate-2.1.3.tgz","fileCount":171,"unpackedSize":375639,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeQhMXCRA9TVsSAnZWagAAQQ4P/A/Zh38wivXF0aRQWhvY\nl7PyvQrBQ+sDqYhhGAGoRhsQTyUENI9m02CWZ4mNaYAhesbk2ONbADQAI8ul\n8IqbAGUZipYrlKu+uFqKBgOPk363pmESbRTiLa/5MVwPKMFendDa3KIPslRH\nRiT6u7lnsia3sIHGP9H5+0q1jYHCoSQO46qpLtmDim3qnbP395KJfy8Wj2wM\ntOJ4NAdN0ROe0/2vul9lMfmjrU1af80YKrtpF0n454gEuRbkUCB7GjvsnhP+\nqiibfGaKmBGXzrT8NbPtxGVSpqRbxh0UHviQ5V5cmGfEEhv7dbkIi/yGTjqk\nJSOoQZ7aGTXCTj+/p1m7VfVpgrMpiWFodiPvxiMl2qeF5fGIZx2VBIveEhNC\nYVkfH/0Mx6lJLTptewaHZfkp06PCr91o+lLvZPtrePuUcdWe0yI4uscn3JEl\nPUEOqzuJVslD4ynmX5Vg9sdxFH5rZpkYOZFkx4WIu+Mmc6NcYWAt49RAfbvH\nGu+l5GoJ4DeschAV4LFqCWLuIc60LIjSgqy9hIsXyhjNlxpiUezIv8anF/bG\nO4FWea/TFdsOaBAlDtAcfi0xtm7nA75dNZ21/Eug58YD4StTZx9+vjUnDme/\n1kyosni1lJ8YBpe8rjMXuRkCYhjmEPRzJkMhj1DiuMsscnuvEU+aWL/3Jntt\npYl9\r\n=o5B5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIENuPgQ9Txh+FHQoyB5r0benxqXvsFqcGaP5njEb/YnmAiA8Wbwja+x2WWqnSYXZ1YAVnijnn4K0hGPYWyHjKxTPwg=="}]},"maintainers":[{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"}],"_npmUser":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-react-boilerplate_2.1.3_1581388566270_0.38561871079537924"},"_hasShrinkwrap":false},"2.1.4":{"name":"express-react-boilerplate","description":"Express react boilerplate","version":"2.1.4","main":"dist/index.js","license":"MIT","author":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com","url":"https://github.com/htdangkhoa"},"contributors":[{"name":"huynhtran.dangkhoa@gmail.com"}],"homepage":"https://github.com/htdangkhoa/erb","bugs":{"url":"https://github.com/htdangkhoa/erb/issues"},"repository":{"type":"git","url":"https://github.com/htdangkhoa/erb.git"},"keywords":["erb","erb-gen","express","expressjs","rest","restful","router","app","api","react","react-router","redux","template","webpack","universal","boilerplate","postcss","css-modules"],"bin":{"erb-gen":"bin/index.js"},"scripts":{"start":"NODE_ENV=production node -r dotenv-flow/config dist/index.js","dev":"NODE_ENV=development nodemon src/index.js --exec \"node -r dotenv-flow/config ./node_modules/.bin/babel-node\"","predev":"flow stop && flow","build":"BABEL_ENV=production babel --minified --no-comments src -D -d dist && npm run wp","postbuild":"rimraf dist/**/__tests__","prebuild":"rimraf dist public/assets","wp":"NODE_ENV=production node -r dotenv-flow/config ./node_modules/.bin/webpack --progress --colors --config src/tools/webpack.config.js --bail","prewp":"rimraf public/assets public/loadable-stats.json","stats":"NODE_ENV=production node -r dotenv-flow/config ./node_modules/.bin/webpack --config src/tools/webpack.config.js --progress --profile --json > stats.json --bail","analyze":"webpack-bundle-analyzer stats.json","preanalyze":"npm run stats","storybook":"start-storybook --ci","test":"jest -u"},"engines":{"node":">=10.13.0"},"nodemonConfig":{"ignore":["dist","public","src/client","src/store"]},"jest":{"moduleNameMapper":{"\\.(css|less|scss|sss|styl)$":"<rootDir>/src/tools/jest/styles-mock.js",".*\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/src/tools/jest/assets-mock.js"},"globals":{"__DEV__":false}},"browserslist":["> 1%","last 2 versions"],"devDependencies":{"@babel/cli":"^7.6.4","@babel/core":"^7.2.2","@babel/node":"^7.6.3","@babel/plugin-proposal-optional-chaining":"^7.6.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-transform-runtime":"^7.7.4","@babel/plugin-transform-spread":"^7.6.2","@babel/polyfill":"^7.6.0","@babel/preset-env":"^7.3.1","@babel/preset-flow":"^7.0.0","@babel/preset-react":"^7.6.3","@babel/runtime":"^7.6.3","@loadable/babel-plugin":"^5.11.0","@loadable/webpack-plugin":"^5.7.1","@storybook/react":"^5.2.8","babel-eslint":"^10.0.3","babel-loader":"^8.0.6","babel-plugin-module-resolver":"^4.0.0","compression-webpack-plugin":"^3.0.0","css-loader":"^3.2.0","eslint":"^6.5.1","eslint-config-airbnb-base":"^14.0.0","eslint-config-prettier":"^6.5.0","eslint-import-resolver-babel-module":"^5.1.0","eslint-plugin-flowtype":"^4.3.0","eslint-plugin-import":"^2.18.2","eslint-plugin-jest":"^23.1.1","eslint-plugin-prettier":"^3.1.1","eslint-plugin-react":"^7.16.0","flow-bin":"^0.119.0","friendly-errors-webpack-plugin":"^1.7.0","imagemin-webpack-plugin":"^2.4.2","jest":"^25.1.0","jest-css-modules":"^2.1.0","lodash-webpack-plugin":"^0.11.5","mini-css-extract-plugin":"^0.9.0","nodemon":"^2.0.1","optimize-css-assets-webpack-plugin":"^5.0.3","postcss":"^7.0.25","postcss-loader":"^3.0.0","prettier":"^1.18.2","react-test-renderer":"^16.12.0","sass-loader":"^8.0.0","terser-webpack-plugin":"^2.2.1","url-loader":"^3.0.0","webpack":"^4.29.0","webpack-bundle-analyzer":"^3.6.0","webpack-cli":"^3.2.1","webpack-dev-middleware":"^3.7.2","webpack-hot-middleware":"^2.25.0","webpackbar":"^4.0.0"},"dependencies":{"@fortawesome/fontawesome-free":"^5.12.0","@hot-loader/react-dom":"^16.10.2","@loadable/component":"^5.11.0","@loadable/server":"^5.11.0","asset-require-hook":"^1.2.0","autoprefixer":"^9.7.3","axios":"^0.19.0","bcrypt":"^4.0.0","body-parser":"^1.19.0","bootstrap":"^4.3.1","commander":"^4.0.1","compression":"^1.7.4","connected-react-router":"^6.5.2","cors":"^2.8.5","css-modules-require-hook":"^4.2.3","dotenv-flow":"^3.1.0","express":"^4.17.1","git-clone":"^0.1.0","helmet":"^3.21.1","history":"^4.10.1","html-minifier":"^4.0.0","i18next":"^19.0.1","i18next-browser-languagedetector":"^4.0.0","i18next-xhr-backend":"^3.2.0","jsonwebtoken":"^8.5.1","lodash":"^4.17.15","moment-timezone":"^0.5.27","mongodb":"^3.3.3","node-sass":"^4.13.0","passport":"^0.4.0","passport-jwt":"^4.0.0","prop-types":"^15.7.2","react":"^16.10.2","react-cookie":"^4.0.1","react-dev-utils":"^10.0.0","react-dom":"^16.11.0","react-emoji-render":"^1.2.0","react-helmet":"^5.2.1","react-hot-loader":"^4.12.15","react-html-parser":"^2.0.2","react-i18next":"^11.0.0","react-mde":"^8.0.1","react-paginate":"^6.3.2","react-redux":"^7.1.1","react-router":"^5.1.2","react-router-config":"^5.1.1","react-router-dom":"^5.1.2","react-router-last-location":"^2.0.1","react-spinners":"^0.8.0","react-switch":"^5.0.1","react-toastify":"^5.4.0","reactstrap":"^8.1.1","redux":"^4.0.4","redux-devtools-extension":"^2.13.8","redux-form":"^8.2.6","redux-thunk":"^2.3.0","rimraf":"^3.0.0","serialize-javascript":"^3.0.0","showdown":"^1.9.1","universal-cookie":"^4.0.2","validator":"^12.0.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Huỳnh Trần Đăng Khoa\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"express-react-boilerplate@2.1.4","dist":{"shasum":"9e278c861ea05133f02fe48948ca2de1f4847ea2","integrity":"sha512-ReuUZvTaCAQrlQQUsgnbnM/zB5tKQuZrxsAPipOgBAb/d12AeZR27GnUS8mDs/ac96hGB5jxcxt+K0G8YMziqw==","tarball":"https://registry.npmjs.org/express-react-boilerplate/-/express-react-boilerplate-2.1.4.tgz","fileCount":171,"unpackedSize":375639,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeVPzoCRA9TVsSAnZWagAAdb4QAJKXm8Rjxcryu0/GO7hG\nW/VNv4q9yi47BJhfVAc3vss6tNM5f++2JmdvACe0Iz/q8AhMJzzzMND4BwON\nVfF7CBEN0SBIfNFUtub6KeEDbdITItC52I/qnu7z0qBqoXQBx/CJb9GP4b8B\njrOr1dS5rOhWrx+4Er88kn1YO5EINCi9Pq0N2fcrQvxd2/VSwHF5skiYS/zj\nF5xPOR6RYhwRKdxqLuEzLg1rqOa91CPlCEhSl+3z1PHGGO+a9Sm05oFBHCES\nUXJSptiuQM+N2jejzsSF8PMNTxKsOP3T8qTGyTMUm5IEzQsoNfsKti19MFxs\nOw/vuzVczOfluQQ2fsxzF2HcB3pUCJcCG40/gFbLpXUtK2ZGSDvD7SrX1MK2\nsjn8Y97VURlbVqaedgO46qGprCQxSV7jqvSOJCqNFdlvIYxbZhIxv4ophJZi\nTchqgzbyi9ZejZ+Z457v/HWPAaxVbUlgsq5cSWTcBrgd1O627xa0Lq3hJslA\nmGkDr//OFzxiifprxMvH47pbWO1HeQC18tgFojko9+B5WQkn/oA2t4ujKi8Z\nrYWLvRXYKI9hiZum3ANBx/87B70Uxp9gdIi65of3gS1OnnNhtdZQQHLRNBiL\n0bbovUpicQEPJQ/Tr+LhO+x6G2PkcD5Nmn46LTwDD9sCfxCuiQ84RqYJPiTA\nTKMk\r\n=G8/Q\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD/BEPKmhpFNtVKKA6ow4WiZSdO08FPEYZNOamEKfhEUQIhANkiH0JcEO/ZKsO5/AFp+z34QqOZ1uPWS6qjA0dGwd8h"}]},"maintainers":[{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"}],"_npmUser":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-react-boilerplate_2.1.4_1582628072162_0.14700335399636555"},"_hasShrinkwrap":false},"3.0.0":{"name":"express-react-boilerplate","description":"Express react boilerplate","version":"3.0.0","main":"dist/index.js","license":"MIT","author":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com","url":"https://github.com/htdangkhoa"},"contributors":[{"name":"huynhtran.dangkhoa@gmail.com"}],"homepage":"https://github.com/htdangkhoa/erb","bugs":{"url":"https://github.com/htdangkhoa/erb/issues"},"repository":{"type":"git","url":"https://github.com/htdangkhoa/erb.git"},"keywords":["erb","erb-gen","express","expressjs","rest","restful","router","app","api","react","react-router","redux","template","webpack","universal","boilerplate","postcss","css-modules","pwa","progressive web app","offline"],"bin":{"erb-gen":"bin/index.js"},"scripts":{"start":"env-cmd -e production node dist/index.js","dev":"env-cmd -e development nodemon --inspect=0.0.0.0:58585 src/index.js --exec babel-node","build":"BABEL_ENV=production babel --minified --no-comments src -D -d dist && npm run wp","prebuild":"del dist","postbuild":"del dist/**/__tests__","wp":"env-cmd -e production babel-node ./node_modules/.bin/webpack --config src/tools/webpack.config.js --progress --colors --bail","prewp":"npm run clean","stats":"env-cmd -e production babel-node ./node_modules/.bin/webpack --config src/tools/webpack.config.js --progress --colors --bail --json > stats.json","analyze":"webpack-bundle-analyzer stats.json","preanalyze":"npm run stats","storybook":"start-storybook --ci","test":"jest -u","clean":"del \"public/*\" \"!public/assets\" \"!public/locales\" \"!public/robots.txt\" \"!public/googledb37d62693032295.html\""},"engines":{"node":">=10.13.0"},"nodemonConfig":{"ignore":["dist","public","src/client","src/store"]},"jest":{"moduleNameMapper":{"\\.(css|less|scss|sss|styl)$":"<rootDir>/src/tools/jest/styles-mock.js",".*\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/src/tools/jest/assets-mock.js"},"globals":{"__DEV__":false}},"browserslist":{"production":["ie 11",">0.1%","not dead","not op_mini all"],"development":["ie 11","last 1 chrome version","last 1 firefox version","last 1 safari version"]},"devDependencies":{"@babel/cli":"^7.6.4","@babel/core":"^7.2.2","@babel/node":"^7.6.3","@babel/plugin-proposal-optional-chaining":"^7.6.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-transform-runtime":"^7.7.4","@babel/plugin-transform-spread":"^7.6.2","@babel/polyfill":"^7.6.0","@babel/preset-env":"^7.3.1","@babel/preset-flow":"^7.0.0","@babel/preset-react":"^7.6.3","@babel/runtime":"^7.6.3","@loadable/babel-plugin":"^5.11.0","@loadable/webpack-plugin":"^5.7.1","@storybook/react":"^5.2.8","babel-eslint":"^10.0.3","babel-loader":"^8.0.6","babel-plugin-module-resolver":"^4.0.0","compression-webpack-plugin":"^3.0.0","css-loader":"^3.2.0","del-cli":"^3.0.0","eslint":"^6.5.1","eslint-config-airbnb-base":"^14.0.0","eslint-config-prettier":"^6.5.0","eslint-import-resolver-babel-module":"^5.1.0","eslint-plugin-flowtype":"^4.3.0","eslint-plugin-import":"^2.18.2","eslint-plugin-jest":"^23.1.1","eslint-plugin-prettier":"^3.1.1","eslint-plugin-react":"^7.16.0","flow-bin":"^0.121.0","friendly-errors-webpack-plugin":"^1.7.0","imagemin-webpack-plugin":"^2.4.2","jest":"^25.1.0","jest-css-modules":"^2.1.0","lodash-webpack-plugin":"^0.11.5","mini-css-extract-plugin":"^0.9.0","nodemon":"^2.0.1","optimize-css-assets-webpack-plugin":"^5.0.3","postcss":"^7.0.25","postcss-loader":"^3.0.0","prettier":"^2.0.2","react-test-renderer":"^16.12.0","sass-loader":"^8.0.0","terser-webpack-plugin":"^2.2.1","url-loader":"^4.0.0","webpack":"^4.29.0","webpack-bundle-analyzer":"^3.6.0","webpack-cli":"^3.2.1","webpack-dev-middleware":"^3.7.2","webpack-hot-middleware":"^2.25.0","webpack-pwa-manifest":"^4.2.0","webpackbar":"^4.0.0"},"dependencies":{"@fortawesome/fontawesome-free":"^5.12.0","@hot-loader/react-dom":"^16.10.2","@loadable/component":"^5.11.0","@loadable/server":"^5.11.0","asset-require-hook":"^1.2.0","autoprefixer":"^9.7.3","axios":"^0.19.0","bcrypt":"^4.0.0","body-parser":"^1.19.0","bootstrap":"^4.3.1","commander":"^5.0.0","compression":"^1.7.4","connected-react-router":"^6.5.2","cors":"^2.8.5","css-modules-require-hook":"^4.2.3","del":"^5.1.0","env-cmd":"^10.1.0","express":"^4.17.1","git-clone":"^0.1.0","helmet":"^3.21.1","history":"^4.10.1","html-minifier":"^4.0.0","i18next":"^19.0.1","i18next-browser-languagedetector":"^4.0.0","i18next-xhr-backend":"^3.2.0","jsonwebtoken":"^8.5.1","lodash":"^4.17.15","moment-timezone":"^0.5.27","mongodb":"^3.3.3","node-sass":"^4.13.0","offline-plugin":"^5.0.7","passport":"^0.4.0","passport-jwt":"^4.0.0","prop-types":"^15.7.2","react":"^16.10.2","react-cookie":"^4.0.1","react-dev-utils":"^10.0.0","react-dom":"^16.11.0","react-emoji-render":"^1.2.0","react-helmet":"^5.2.1","react-hot-loader":"^4.12.15","react-html-parser":"^2.0.2","react-i18next":"^11.0.0","react-mde":"^8.0.1","react-paginate":"^6.3.2","react-redux":"^7.1.1","react-router":"^5.1.2","react-router-config":"^5.1.1","react-router-dom":"^5.1.2","react-router-last-location":"^2.0.1","react-spinners":"^0.8.0","react-switch":"^5.0.1","react-toastify":"^5.4.0","reactstrap":"^8.1.1","redux":"^4.0.4","redux-devtools-extension":"^2.13.8","redux-form":"^8.2.6","redux-thunk":"^2.3.0","serialize-javascript":"^3.0.0","serve-favicon":"^2.5.0","showdown":"^1.9.1","universal-cookie":"^4.0.2","validator":"^13.0.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Huỳnh Trần Đăng Khoa\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"express-react-boilerplate@3.0.0","dist":{"shasum":"e4ecd689b87dd35a744f3ddf96a03e2b0d9da284","integrity":"sha512-cQ23DEcpcb01TUypgeIOkS1ZBMYw85VeOJtEXF/1TXyBAGllMiPfLuw6NMNYtueQCYbGHnk9X/kkFsoiUQi1Tg==","tarball":"https://registry.npmjs.org/express-react-boilerplate/-/express-react-boilerplate-3.0.0.tgz","fileCount":169,"unpackedSize":197495,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJepzZpCRA9TVsSAnZWagAAf1sP/jhANNz4pLIjvdGZmRyd\n5l2afnwPNSZdg4/JUsGSRPVd3XztVVYcAYwZicZmcXlpA6ad4SbsTm2vjrX6\naJXITS8CLjZ9PAZaTtq66HeFFGRg7nhSM0J0J7X4CO5tZ5Q0zNbGSGa1HyOm\nVYTcCpzc0lu98V2Gi53XWa3AebiiJX5JosCZL2LNM5fy+CnR+jrPD82aVlqJ\nKPatACxVDQHk60IaSKnxFYV8Qbrh3tyg0yQL9uNbBP9IBJikm1tXcm1/ACYq\nvevEBjF6gHeXa621e6GCLF/LYXqQ9hIVDSWIe44ZstfaaVQbFUu6y7mtf9mS\njEjg2CpGvhlIQyzcO6EkPh5qNFtOGo/UprlUry/N20Nux1LFnDyDR+KVEN8W\nAPu4B6NnXHpokEUACnfqz21w1/e7OXz1WI4Xe9qyp7EnaQFzRqNr9y/u0g3c\nKGv4LLA3AhyRdz0KV0dYSHKcc+RaEPY97jzF+Qx5ppH9snFJ+52pwcphAu4M\nGLjk0w3bP4sCfcXQOtRIdGBjHcF9NOhrhRigP3rchlOOVV5Lave8RAs5dZv1\neZkLSIMJ6hZVgLxKf6cCVTr9iS4P0nX/O/fFX54sV677OMyMKkDIdrEHDfyu\n5CsTsol65wyDuKvkluNggEjWzPlMaUTvSXnuUidqY9ISUinsA3UPXmk1TTj3\nTmmf\r\n=NY3A\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE8NbxxwxVuaOPf0bdVTSrN7attuX5nkEAwAlJDsWVvUAiEApfP8HDWoEYV+dBlXinycgnrqxQvvGxVdMbj4a3f3OFQ="}]},"maintainers":[{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"}],"_npmUser":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-react-boilerplate_3.0.0_1588016743640_0.335428386809868"},"_hasShrinkwrap":false},"4.0.0":{"name":"express-react-boilerplate","version":"4.0.0","description":"Express react boilerplate","main":"dist/index.js","license":"MIT","author":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com","url":"https://github.com/htdangkhoa"},"contributors":[{"name":"huynhtran.dangkhoa@gmail.com"}],"homepage":"https://github.com/htdangkhoa/erb","bugs":{"url":"https://github.com/htdangkhoa/erb/issues"},"repository":{"type":"git","url":"https://github.com/htdangkhoa/erb.git"},"keywords":["erb","erb-gen","express","expressjs","rest","restful","router","app","api","react","react-router","redux","template","webpack","universal","boilerplate","postcss","css-modules","pwa","progressive web app","offline"],"bin":{"erb-gen":"bin/index.js"},"scripts":{"preanalyze":"npm run stats","analyze":"webpack-bundle-analyzer stats.json","prebuild":"del dist","build":"BABEL_ENV=production babel --minified --no-comments src -D -d dist && npm run wp","postbuild":"del dist/**/__tests__","clean":"del \"public/*\" \"!public/assets\" \"!public/locales\" \"!public/robots.txt\" \"!public/googledb37d62693032295.html\"","dev":"env-cmd -e development nodemon --trace-warnings --inspect=0.0.0.0:58585 src/index.js --exec babel-node","start":"env-cmd -e production node dist/index.js","stats":"env-cmd -e production babel-node ./node_modules/.bin/webpack --config src/tools/webpack.config.js --progress --colors --bail --json > stats.json","storybook":"start-storybook --ci","test":"jest -u","prewp":"npm run clean","wp":"env-cmd -e production babel-node ./node_modules/.bin/webpack --config src/tools/webpack.config.js --progress --colors --bail"},"nodemonConfig":{"ignore":["dist","public","src/client","src/store"]},"browserslist":{"production":["ie 11",">0.1%","not dead","not op_mini all"],"development":["ie 11","last 1 chrome version","last 1 firefox version","last 1 safari version"]},"jest":{"globals":{"__DEV__":false},"moduleNameMapper":{"\\.(css|less|scss|sss|styl)$":"<rootDir>/src/tools/jest/styles-mock.js",".*\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/src/tools/jest/assets-mock.js"}},"dependencies":{"@fortawesome/fontawesome-free":"^5.12.0","@hot-loader/react-dom":"^16.10.2","@loadable/component":"^5.11.0","@loadable/server":"^5.11.0","asset-require-hook":"^1.2.0","autoprefixer":"^9.7.3","axios":"^0.19.0","bcrypt":"^4.0.0","body-parser":"^1.19.0","bootstrap":"^4.3.1","commander":"^5.0.0","compression":"^1.7.4","connected-react-router":"^6.5.2","cors":"^2.8.5","css-modules-require-hook":"^4.2.3","del":"^5.1.0","env-cmd":"^10.1.0","express":"^4.17.1","git-clone":"^0.1.0","helmet":"^3.21.1","history":"^4.10.1","html-minifier":"^4.0.0","i18next":"^19.0.1","i18next-browser-languagedetector":"^4.0.0","i18next-xhr-backend":"^3.2.0","jsonwebtoken":"^8.5.1","lodash":"^4.17.15","moment-timezone":"^0.5.27","mongodb":"^3.5.8","node-sass":"^4.13.0","offline-plugin":"^5.0.7","passport":"^0.4.0","passport-jwt":"^4.0.0","prop-types":"^15.7.2","react":"^16.10.2","react-cookie":"^4.0.1","react-dev-utils":"^10.0.0","react-dom":"^16.11.0","react-emoji-render":"^1.2.0","react-helmet":"^6.0.0","react-hot-loader":"^4.12.15","react-html-parser":"^2.0.2","react-i18next":"^11.0.0","react-mde":"^10.0.3","react-paginate":"^6.3.2","react-redux":"^7.1.1","react-router-config":"^5.1.1","react-router-dom":"^5.1.2","react-router-last-location":"^2.0.1","react-spinners":"^0.8.0","react-switch":"^5.0.1","react-toastify":"^6.0.5","reactstrap":"^8.1.1","redux":"^4.0.4","redux-devtools-extension":"^2.13.8","redux-form":"^8.2.6","redux-thunk":"^2.3.0","serialize-javascript":"^3.0.0","serve-favicon":"^2.5.0","showdown":"^1.9.1","universal-cookie":"^4.0.2","validator":"^13.0.0"},"devDependencies":{"@babel/cli":"^7.6.4","@babel/core":"^7.2.2","@babel/node":"^7.6.3","@babel/plugin-proposal-optional-chaining":"^7.6.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-transform-runtime":"^7.7.4","@babel/plugin-transform-spread":"^7.6.2","@babel/polyfill":"^7.6.0","@babel/preset-env":"^7.3.1","@babel/preset-flow":"^7.0.0","@babel/preset-react":"^7.6.3","@babel/runtime":"^7.6.3","@loadable/babel-plugin":"^5.11.0","@loadable/webpack-plugin":"^5.7.1","@storybook/react":"^5.2.8","babel-eslint":"^10.0.3","babel-loader":"^8.0.6","babel-plugin-module-resolver":"^4.0.0","compression-webpack-plugin":"^4.0.0","css-loader":"^3.2.0","del-cli":"^3.0.0","eslint":"^7.1.0","eslint-config-airbnb-base":"^14.0.0","eslint-config-prettier":"^6.5.0","eslint-import-resolver-babel-module":"^5.1.0","eslint-plugin-flowtype":"^5.1.3","eslint-plugin-import":"^2.18.2","eslint-plugin-jest":"^23.1.1","eslint-plugin-prettier":"^3.1.1","eslint-plugin-react":"^7.16.0","flow-bin":"^0.126.1","friendly-errors-webpack-plugin":"^1.7.0","imagemin-webpack-plugin":"^2.4.2","jest":"^26.0.1","jest-css-modules":"^2.1.0","lodash-webpack-plugin":"^0.11.5","mini-css-extract-plugin":"^0.9.0","nodemon":"^2.0.1","optimize-css-assets-webpack-plugin":"^5.0.3","postcss":"^7.0.25","postcss-loader":"^3.0.0","prettier":"^2.0.2","react-test-renderer":"^16.12.0","sass-loader":"^8.0.0","tcp-port-used":"^1.0.1","terser-webpack-plugin":"^3.0.3","url-loader":"^4.0.0","webpack":"^4.29.0","webpack-bundle-analyzer":"^3.6.0","webpack-cli":"^3.2.1","webpack-dev-middleware":"^3.7.2","webpack-hot-middleware":"^2.25.0","webpack-pwa-manifest":"^4.2.0","webpackbar":"^4.0.0"},"engines":{"node":">=10.13.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Huỳnh Trần Đăng Khoa\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"express-react-boilerplate@4.0.0","dist":{"shasum":"74c1897fbb799d5d83697d903d0c3327519d5feb","integrity":"sha512-0WGNjUFEJd3NSBlEBFw5pQ2UjKDmVLgZqG6na7Bz5RzTpZOQBzvd0JJw5O116MXQDSZwIxTh3YvRYM9aml+BVg==","tarball":"https://registry.npmjs.org/express-react-boilerplate/-/express-react-boilerplate-4.0.0.tgz","fileCount":169,"unpackedSize":200896,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe2dr2CRA9TVsSAnZWagAAzIQP/12mPNokzr2SQHCQeQRN\nPPSnusZi7ZYD/eoClmcQXFdTptoJfCq9eQ2VpNDfYP6F0wtCCtUJhRtKfDEl\nKh6d06A/zQoh/91cCyByOmBcrLaZX5X2wCYi1Xr2mN1cwEe89qOLg6QHnJPT\nzqYGeymheXzyKbVklRfUgtV0/tOLiV34A9X4twLvslGG9SB/3LRtzcVbdq5e\nky/caTOjCihdUSRurHwWf2UP5PXRHKCXZwuuaZix9KdAnJP1nPCCjUMwI7v9\nkBzWL7u9KWj0QqsMym1EgBJ9JaJFmYBd6nHQBZSPpkHGpKO757Q9EUJolsHH\nj1wqEwPilweP9CxYTjEWAHN8g2lH9AMpvwovIEKLGqHTVei6i4OdnzUsSp7j\nCoGMIThlNQP5UWvGLqTsZlhJL5ou4lJn3A4wEjnZzFXOZikvujKpFznj0vwI\nJNyQiXqkm+5sMIuzQacsMFNZ9kwT1lU2unMlzVufNApEWL1rlOW7Tg9mAuxA\n8DjvDnQStBil+ig61QnFR30aiOkVBNp39j6W8b0C6IZUZv2miyQj/xMaFsUQ\nfyEtZ/5Ob0jiP6401MuuTBYzla/3d8C03/uz5rmQqdjhF8pDnb5++62/R0qC\nc7vVPuL2wHluYcRb6EGACMHgdSQRMXqYtx2xrHB6O3QgPQuNMfEVe9ipR0FR\n4RFf\r\n=AMvT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDz/Ak4lpFvfRwLgMALpzSXTtqI0W7F3atMX5Fge6ddBQIge9XsyVY/XN67H+N9ieyOytpbQXvyTZMl+QLvnl+GM0c="}]},"maintainers":[{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"}],"_npmUser":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-react-boilerplate_4.0.0_1591335669641_0.009895105161627171"},"_hasShrinkwrap":false},"4.1.0":{"name":"express-react-boilerplate","version":"4.1.0","description":"Express react boilerplate","keywords":["erb","erb-gen","express","expressjs","rest","restful","router","app","api","react","react-router","redux","template","webpack","universal","boilerplate","postcss","css-modules","pwa","progressive web app","offline"],"homepage":"https://github.com/htdangkhoa/erb","bugs":{"url":"https://github.com/htdangkhoa/erb/issues"},"repository":{"type":"git","url":"https://github.com/htdangkhoa/erb.git"},"license":"MIT","author":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com","url":"https://github.com/htdangkhoa"},"contributors":[{"name":"huynhtran.dangkhoa@gmail.com"}],"main":"dist/index.js","bin":{"erb-gen":"bin/index.js"},"scripts":{"preanalyze":"npm run stats","analyze":"webpack-bundle-analyzer stats.json","prebuild":"del dist","build":"BABEL_ENV=production babel --minified --no-comments src -D -d dist && npm run wp","postbuild":"del dist/**/__tests__","clean":"del \"public/*\" \"!public/assets\" \"!public/locales\" \"!public/robots.txt\" \"!public/googledb37d62693032295.html\"","predev":"del dist && npm run clean","dev":"env-cmd -e development nodemon --trace-warnings --inspect=0.0.0.0:58585 src/index.js --exec babel-node","start":"env-cmd -e production node dist/index.js","stats":"env-cmd -e production babel-node ./node_modules/.bin/webpack --config src/tools/webpack.config.js --progress --colors --bail --json > stats.json","storybook":"start-storybook --ci","test":"jest -u","prewp":"npm run clean","wp":"env-cmd -e production babel-node ./node_modules/.bin/webpack --config src/tools/webpack/webpack.config.js --progress --colors --bail"},"nodemonConfig":{"ignore":["dist","public","src/client","src/store"]},"browserslist":{"production":["ie 11",">0.1%","not dead","not op_mini all"],"development":["ie 11","last 1 chrome version","last 1 firefox version","last 1 safari version"]},"jest":{"globals":{"__DEV__":false},"moduleNameMapper":{"\\.(css|less|scss|sss|styl)$":"<rootDir>/src/tools/jest/styles-mock.js",".*\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/src/tools/jest/assets-mock.js"}},"dependencies":{"@fortawesome/fontawesome-free":"^5.12.0","@hot-loader/react-dom":"^16.10.2","@loadable/component":"^5.11.0","@loadable/server":"^5.11.0","asset-require-hook":"^1.2.0","autoprefixer":"^9.7.3","axios":"^0.19.0","bcrypt":"^5.0.0","body-parser":"^1.19.0","bootstrap":"^4.3.1","commander":"^5.0.0","compression":"^1.7.4","connected-react-router":"^6.5.2","cors":"^2.8.5","css-modules-require-hook":"^4.2.3","del":"^5.1.0","env-cmd":"^10.1.0","express":"^4.17.1","git-clone":"^0.1.0","helmet":"^3.21.1","history":"^4.10.1","html-minifier":"^4.0.0","i18next":"^19.0.1","i18next-browser-languagedetector":"^4.0.0","i18next-xhr-backend":"^3.2.0","jsonwebtoken":"^8.5.1","lodash":"^4.17.15","moment-timezone":"^0.5.27","mongodb":"^3.5.8","node-sass":"^4.13.0","offline-plugin":"^5.0.7","passport":"^0.4.0","passport-jwt":"^4.0.0","prop-types":"^15.7.2","react":"^16.10.2","react-cookie":"^4.0.1","react-dev-utils":"^10.0.0","react-dom":"^16.11.0","react-emoji-render":"^1.2.0","react-helmet":"^6.0.0","react-hot-loader":"^4.12.15","react-html-parser":"^2.0.2","react-i18next":"^11.0.0","react-mde":"^10.0.3","react-paginate":"^6.3.2","react-redux":"^7.1.1","react-router-config":"^5.1.1","react-router-dom":"^5.1.2","react-router-last-location":"^2.0.1","react-spinners":"^0.8.0","react-switch":"^5.0.1","react-toastify":"^6.0.5","reactstrap":"^8.1.1","redux":"^4.0.4","redux-devtools-extension":"^2.13.8","redux-form":"^8.2.6","redux-thunk":"^2.3.0","serialize-javascript":"^4.0.0","serve-favicon":"^2.5.0","showdown":"^1.9.1","universal-cookie":"^4.0.2","validator":"^13.0.0"},"devDependencies":{"@babel/cli":"^7.6.4","@babel/core":"^7.2.2","@babel/node":"^7.6.3","@babel/plugin-proposal-optional-chaining":"^7.6.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-transform-runtime":"^7.7.4","@babel/plugin-transform-spread":"^7.6.2","@babel/polyfill":"^7.6.0","@babel/preset-env":"^7.3.1","@babel/preset-flow":"^7.0.0","@babel/preset-react":"^7.6.3","@babel/runtime":"^7.6.3","@loadable/babel-plugin":"^5.11.0","@loadable/webpack-plugin":"^5.7.1","@storybook/react":"^5.2.8","babel-eslint":"^10.0.3","babel-loader":"^8.0.6","babel-plugin-module-resolver":"^4.0.0","compression-webpack-plugin":"^4.0.0","css-loader":"^3.2.0","del-cli":"^3.0.0","eslint":"^7.1.0","eslint-config-airbnb-base":"^14.0.0","eslint-config-prettier":"^6.5.0","eslint-import-resolver-babel-module":"^5.1.0","eslint-plugin-flowtype":"^5.1.3","eslint-plugin-import":"^2.18.2","eslint-plugin-jest":"^23.1.1","eslint-plugin-prettier":"^3.1.1","eslint-plugin-react":"^7.16.0","flow-bin":"^0.126.1","friendly-errors-webpack-plugin":"^1.7.0","imagemin-webpack-plugin":"^2.4.2","jest":"^26.0.1","jest-css-modules":"^2.1.0","lodash-webpack-plugin":"^0.11.5","mini-css-extract-plugin":"^0.9.0","nodemon":"^2.0.1","optimize-css-assets-webpack-plugin":"^5.0.3","postcss":"^7.0.25","postcss-loader":"^3.0.0","prettier":"^2.0.2","react-test-renderer":"^16.12.0","sass-loader":"^8.0.0","tcp-port-used":"^1.0.1","terser-webpack-plugin":"^3.0.3","url-loader":"^4.0.0","webpack":"^4.29.0","webpack-bundle-analyzer":"^3.6.0","webpack-cli":"^3.2.1","webpack-dev-middleware":"^3.7.2","webpack-hot-middleware":"^2.25.0","webpack-pwa-manifest":"^4.2.0","webpackbar":"^4.0.0"},"engines":{"node":">=10.13.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Huỳnh Trần Đăng Khoa\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"express-react-boilerplate@4.1.0","dist":{"shasum":"19d9554e94e6adee04ce777051b00cf9d1a07cd8","integrity":"sha512-yhpV/sKcafKKzHDhuoau00P6nN1Q5S8QTWa7d3BOS0AIOKdlsZ0O9OeCiOE63cc5Qmg+XZnxzoLqDNuZt7l8UQ==","tarball":"https://registry.npmjs.org/express-react-boilerplate/-/express-react-boilerplate-4.1.0.tgz","fileCount":171,"unpackedSize":198457,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe45a9CRA9TVsSAnZWagAA0PAP/3q8XjfkgY8Q+cg8fY4H\nfXYxM7rOfsGKPOQklRCrIBq50+iD0APsD5TG1gn4HuQYOYOGNAD8xnMMKeKn\nA5bhDuR1E8RrSANlhx20Cd9P/YufLvWMgVt+mP0ZvAFtyWH2C6VkOQ/je6rw\nZFT52YQCOFenl5LEKLGz3FoVoGAX3I/WMsyDxwxgEJFfgA/NdXZc+Y64I0TN\nq0bns8MNxdFGvGM7CXiJjl0Z/YL22JpTHqpOUL68r+hIpTIyyyc1fd0R7rwv\nhif9pm4AccMpfWJaasyMXd0pOxGZwmazqvNFeP2HDBsYEKFpBS9XSzNurkZn\nmI4F8B4s6hbpGUCWVKcfHF9kdEzNT1Q60wEGviP9NOPXV3zVffTw5EpiPdOt\nPQNqy+Y7RX24KUTajYEJKWLt5yuPCT0xhZv+n6reGh6npKIGPgcsuxSlHegH\nXBXoQ+t3vxRsYUqYHJZwTgFYD5i8JckMXUi65U/tE5zUeV0ZRECaJ8+5glib\n1cYoPY8GPT0hUkuPFNGrbSGHX/dDoX5o1+KBGgjK3PKg148/RZlqtB2+tr3c\naEM/VNrHTcqpHjoiS/dwQAmAPcI8E14TvdjbLomxbgrDEQY5zUzH/C0+e42h\nO40smyuGWUUVW8lFGMNTbXHOaE93pTcMQ4qqKvu+EyXQF8lp956rbjDnFZ3D\n9SlD\r\n=2geQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEMCIB3Tj+EsmXoigp/L1iXTdhcO5uChs0LIV2wRGzElTygcAh83QKU7OH6pUE/yQn5zjdKBZZkWrQh9MIjnnELw6ULl"}]},"maintainers":[{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"}],"_npmUser":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-react-boilerplate_4.1.0_1591973564460_0.9697201586174014"},"_hasShrinkwrap":false},"4.1.1":{"name":"express-react-boilerplate","version":"4.1.1","description":"Express react boilerplate","keywords":["erb","erb-gen","express","expressjs","rest","restful","router","app","api","react","react-router","redux","template","webpack","universal","boilerplate","postcss","css-modules","pwa","progressive web app","offline"],"homepage":"https://github.com/htdangkhoa/erb","bugs":{"url":"https://github.com/htdangkhoa/erb/issues"},"repository":{"type":"git","url":"https://github.com/htdangkhoa/erb.git"},"license":"MIT","author":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com","url":"https://github.com/htdangkhoa"},"contributors":[{"name":"huynhtran.dangkhoa@gmail.com"}],"main":"dist/index.js","bin":{"erb-gen":"bin/index.js"},"scripts":{"preanalyze":"npm run stats","analyze":"webpack-bundle-analyzer stats.json","prebuild":"del dist","build":"BABEL_ENV=production babel --minified --no-comments src -D -d dist && npm run wp","postbuild":"del dist/**/__tests__","clean":"del \"public/*\" \"!public/assets\" \"!public/locales\" \"!public/robots.txt\" \"!public/googledb37d62693032295.html\"","predev":"del dist && npm run clean","dev":"env-cmd -e development nodemon --trace-warnings --inspect=0.0.0.0:58585 src/index.js --exec babel-node","eslint":"eslint src --ext .js","start":"env-cmd -e production node dist/index.js","stats":"env-cmd -e production babel-node ./node_modules/.bin/webpack --config src/tools/webpack.config.js --progress --colors --bail --json > stats.json","storybook":"start-storybook --ci","test":"jest -u","prewp":"npm run clean","wp":"env-cmd -e production babel-node ./node_modules/.bin/webpack --config src/tools/webpack/webpack.config.js --progress --colors --bail"},"nodemonConfig":{"ignore":["dist","public","src/client","src/store"]},"browserslist":{"production":["ie 11",">0.1%","not dead","not op_mini all"],"development":["ie 11","last 1 chrome version","last 1 firefox version","last 1 safari version"]},"jest":{"globals":{"__DEV__":false},"moduleNameMapper":{"\\.(css|less|scss|sss|styl)$":"<rootDir>/src/tools/jest/styles-mock.js",".*\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/src/tools/jest/assets-mock.js"}},"dependencies":{"@fortawesome/fontawesome-free":"^5.12.0","@hot-loader/react-dom":"^16.10.2","@loadable/component":"^5.11.0","@loadable/server":"^5.11.0","asset-require-hook":"^1.2.0","autoprefixer":"^9.7.3","axios":"^0.19.0","bcrypt":"^5.0.0","body-parser":"^1.19.0","bootstrap":"^4.3.1","commander":"^5.0.0","compression":"^1.7.4","connected-react-router":"^6.5.2","cors":"^2.8.5","css-modules-require-hook":"^4.2.3","del":"^5.1.0","env-cmd":"^10.1.0","express":"^4.17.1","git-clone":"^0.1.0","helmet":"^3.21.1","history":"^4.10.1","html-minifier":"^4.0.0","i18next":"^19.0.1","i18next-browser-languagedetector":"^4.0.0","i18next-xhr-backend":"^3.2.0","jsonwebtoken":"^8.5.1","lodash":"^4.17.15","moment-timezone":"^0.5.27","mongodb":"^3.5.8","node-sass":"^4.13.0","offline-plugin":"^5.0.7","passport":"^0.4.0","passport-jwt":"^4.0.0","prop-types":"^15.7.2","react":"^16.10.2","react-cookie":"^4.0.1","react-dev-utils":"^10.0.0","react-dom":"^16.11.0","react-emoji-render":"^1.2.0","react-helmet":"^6.0.0","react-hot-loader":"^4.12.15","react-html-parser":"^2.0.2","react-i18next":"^11.0.0","react-mde":"^10.0.3","react-paginate":"^6.3.2","react-redux":"^7.1.1","react-router-config":"^5.1.1","react-router-dom":"^5.1.2","react-router-last-location":"^2.0.1","react-spinners":"^0.8.0","react-switch":"^5.0.1","react-toastify":"^6.0.5","reactstrap":"^8.1.1","redux":"^4.0.4","redux-devtools-extension":"^2.13.8","redux-form":"^8.2.6","redux-thunk":"^2.3.0","serialize-javascript":"^4.0.0","serve-favicon":"^2.5.0","showdown":"^1.9.1","universal-cookie":"^4.0.2","validator":"^13.0.0"},"devDependencies":{"@babel/cli":"^7.6.4","@babel/core":"^7.2.2","@babel/node":"^7.6.3","@babel/plugin-proposal-optional-chaining":"^7.6.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-transform-runtime":"^7.7.4","@babel/plugin-transform-spread":"^7.6.2","@babel/polyfill":"^7.6.0","@babel/preset-env":"^7.3.1","@babel/preset-flow":"^7.0.0","@babel/preset-react":"^7.6.3","@babel/runtime":"^7.6.3","@loadable/babel-plugin":"^5.11.0","@loadable/webpack-plugin":"^5.7.1","@storybook/react":"^5.2.8","babel-eslint":"^10.0.3","babel-loader":"^8.0.6","babel-plugin-module-resolver":"^4.0.0","compression-webpack-plugin":"^4.0.0","css-loader":"^3.2.0","del-cli":"^3.0.0","eslint":"^7.1.0","eslint-config-airbnb-base":"^14.0.0","eslint-config-prettier":"^6.5.0","eslint-import-resolver-babel-module":"^5.1.0","eslint-plugin-flowtype":"^5.1.3","eslint-plugin-import":"^2.18.2","eslint-plugin-jest":"^23.1.1","eslint-plugin-prettier":"^3.1.1","eslint-plugin-react":"^7.16.0","flow-bin":"^0.127.0","friendly-errors-webpack-plugin":"^1.7.0","imagemin-webpack-plugin":"^2.4.2","jest":"^26.0.1","jest-css-modules":"^2.1.0","lodash-webpack-plugin":"^0.11.5","mini-css-extract-plugin":"^0.9.0","nodemon":"^2.0.1","optimize-css-assets-webpack-plugin":"^5.0.3","postcss":"^7.0.25","postcss-loader":"^3.0.0","prettier":"^2.0.2","react-test-renderer":"^16.12.0","sass-loader":"^8.0.0","tcp-port-used":"^1.0.1","terser-webpack-plugin":"^3.0.3","url-loader":"^4.0.0","webpack":"^4.29.0","webpack-bundle-analyzer":"^3.6.0","webpack-cli":"^3.2.1","webpack-dev-middleware":"^3.7.2","webpack-hot-middleware":"^2.25.0","webpack-pwa-manifest":"^4.2.0","webpackbar":"^4.0.0"},"engines":{"node":">=10.13.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Huỳnh Trần Đăng Khoa\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"express-react-boilerplate@4.1.1","dist":{"shasum":"30a67c477dc51b835e62fd236f936991e7d4bb5f","integrity":"sha512-q3VxJgp6icl5nHdAR5UDI5iEoRYq5YZGPeqeDEqL7vZCJp4MsyyXOUKGKswPEyxdrh12qS60I0pqNLFK97Z/mw==","tarball":"https://registry.npmjs.org/express-react-boilerplate/-/express-react-boilerplate-4.1.1.tgz","fileCount":171,"unpackedSize":198889,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe6FjLCRA9TVsSAnZWagAA1WUQAJYP/CRgBCKy9iDQmqGX\nCoZ5KAI608N91MsClu2jWAwZli319I3I1+ZeqkqY7hqeKj0xjxYql/U9o67l\nPAJ3Z5o1uubxbrSIQ+R9V3iKroWobrIX+d/mpe/i/DjZRo1rETRgT7eJkkEN\n2yqA6GavnFcu8rSR00U7DzM8CbPNMnC/ekRZcYo3iXpZa8cKVEuahzmFTrzX\nzDwUQo5ATQQrPTcADM238tMjamkWMC+Wlkzje/JTfO2aZKbn6W9SOrOx3V9m\n2qmYkd67SFrt24CHvhI5AbVtgC8MnENIDTeT1dTKuiGV1IQN6aizIVruan8x\nFLkfsFuODh37y/RcICb8ESHcbwtd7TGo/APe1V3SV3J5p5M2bzWxEUcGf4lL\ne6+dbdwia/Kk3HZ3xMuPUUVJ80b+RcQPgVHYZumderBNh424xeGEthttM18d\nAyjrlr/dgLBx79DuXDEhBiu1Ys+u9xffRA8pbvuXHqevBhMz2YJTlOdVThPy\nLqDAxl1ywQEQ1lGhdri6ASeEUFLh0HDEZH7a/GPiKLcy+Wlq/xKW4ZK5c7Ww\nJYhN+u7XHHjmhp6tIlisqBtMvP4J11Yre4DB1hyLMKG2ZShCWxAdmeLt9s6n\nXxGTqufh/ITliGatK2xFKP+pYeFkkEXzsGb9S9jLZrkSC6A2KhfwhWbSXMTo\n4zC5\r\n=tZo7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBZKA4U6s2jiQ+svxNx4loDs9gGm4aX0GV4ueS0ADOZFAiEA1LjL4nJEPhChB9hkgJBrjJuKKtP7JdPfjUlMhXMp3/8="}]},"maintainers":[{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"}],"_npmUser":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-react-boilerplate_4.1.1_1592285385452_0.4046722590284306"},"_hasShrinkwrap":false},"4.2.0":{"name":"express-react-boilerplate","version":"4.2.0","description":"Express react boilerplate","keywords":["erb","erb-gen","express","expressjs","rest","restful","router","app","api","react","react-router","redux","template","webpack","universal","boilerplate","postcss","css-modules","pwa","progressive web app","offline"],"homepage":"https://github.com/htdangkhoa/erb","bugs":{"url":"https://github.com/htdangkhoa/erb/issues"},"repository":{"type":"git","url":"https://github.com/htdangkhoa/erb.git"},"license":"MIT","author":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com","url":"https://github.com/htdangkhoa"},"contributors":[{"name":"huynhtran.dangkhoa@gmail.com"}],"main":"dist/index.js","bin":{"erb-gen":"bin/index.js"},"scripts":{"preanalyze":"npm run stats","analyze":"webpack-bundle-analyzer stats.json","prebuild":"del dist","build":"BABEL_ENV=production babel --minified --no-comments src -D -d dist && npm run wp","postbuild":"del dist/**/__tests__","clean":"del \"public/*\" \"!public/assets\" \"!public/locales\" \"!public/robots.txt\" \"!public/googledb37d62693032295.html\"","predev":"del dist && npm run clean","dev":"env-cmd -e development nodemon --trace-warnings --inspect=0.0.0.0:58585 src/index.js --exec babel-node","eslint":"eslint src --ext .js","start":"env-cmd -e production node dist/index.js","stats":"env-cmd -e production babel-node ./node_modules/.bin/webpack --config src/tools/webpack.config.js --progress --colors --bail --json > stats.json","storybook":"start-storybook --ci","test":"jest -u","prewp":"npm run clean","wp":"env-cmd -e production babel-node ./node_modules/.bin/webpack --config src/tools/webpack/webpack.config.js --progress --colors --bail"},"nodemonConfig":{"ignore":["dist","public","src/client","src/store"]},"browserslist":{"production":["ie 11",">0.1%","not dead","not op_mini all"],"development":["ie 11","last 1 chrome version","last 1 firefox version","last 1 safari version"]},"jest":{"globals":{"__DEV__":false},"moduleNameMapper":{"\\.(css|less|scss|sss|styl)$":"<rootDir>/src/tools/jest/styles-mock.js",".*\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/src/tools/jest/assets-mock.js"}},"dependencies":{"@fortawesome/fontawesome-free":"^5.13.1","@hot-loader/react-dom":"^16.10.2","@loadable/component":"^5.11.0","@loadable/server":"^5.11.0","asset-require-hook":"^1.2.0","autoprefixer":"^9.8.4","axios":"^0.19.0","bcrypt":"^5.0.0","body-parser":"^1.19.0","bootstrap":"^4.3.1","commander":"^5.0.0","compression":"^1.7.4","connected-react-router":"^6.5.2","cors":"^2.8.5","css-modules-require-hook":"^4.2.3","del":"^5.1.0","env-cmd":"^10.1.0","express":"^4.17.1","git-clone":"^0.1.0","helmet":"^3.23.3","history":"^4.10.1","html-minifier":"^4.0.0","i18next":"^19.5.1","i18next-browser-languagedetector":"^5.0.0","i18next-xhr-backend":"^3.2.0","jsonwebtoken":"^8.5.1","lodash":"^4.17.15","moment-timezone":"^0.5.27","mongodb":"^3.5.8","node-sass":"^4.13.0","offline-plugin":"^5.0.7","passport":"^0.4.0","passport-jwt":"^4.0.0","prop-types":"^15.7.2","react":"^16.10.2","react-cookie":"^4.0.1","react-dom":"^16.11.0","react-emoji-render":"^1.2.0","react-helmet":"^6.0.0","react-hot-loader":"^4.12.15","react-html-parser":"^2.0.2","react-i18next":"^11.7.0","react-mde":"^10.0.3","react-paginate":"^6.3.2","react-redux":"^7.1.1","react-router-config":"^5.1.1","react-router-dom":"^5.1.2","react-router-last-location":"^2.0.1","react-spinners":"^0.9.0","react-switch":"^5.0.1","react-toastify":"^6.0.6","reactstrap":"^8.5.1","redux":"^4.0.4","redux-devtools-extension":"^2.13.8","redux-form":"^8.2.6","redux-thunk":"^2.3.0","serialize-javascript":"^4.0.0","serve-favicon":"^2.5.0","showdown":"^1.9.1","universal-cookie":"^4.0.2","validator":"^13.0.0"},"devDependencies":{"@babel/cli":"^7.10.3","@babel/core":"^7.10.3","@babel/node":"^7.10.3","@babel/plugin-proposal-optional-chaining":"^7.10.3","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-transform-runtime":"^7.10.3","@babel/plugin-transform-spread":"^7.6.2","@babel/polyfill":"^7.6.0","@babel/preset-env":"^7.10.3","@babel/preset-flow":"^7.0.0","@babel/preset-react":"^7.6.3","@babel/runtime":"^7.10.3","@loadable/babel-plugin":"^5.11.0","@loadable/webpack-plugin":"^5.7.1","@storybook/react":"^5.2.8","address":"^1.1.2","babel-eslint":"^10.0.3","babel-loader":"^8.0.6","babel-plugin-module-resolver":"^4.0.0","compression-webpack-plugin":"^4.0.0","css-loader":"^3.6.0","del-cli":"^3.0.0","eslint":"^7.3.1","eslint-config-airbnb-base":"^14.0.0","eslint-config-prettier":"^6.5.0","eslint-import-resolver-babel-module":"^5.1.0","eslint-plugin-flowtype":"^5.1.3","eslint-plugin-import":"^2.22.0","eslint-plugin-jest":"^23.17.1","eslint-plugin-prettier":"^3.1.4","eslint-plugin-react":"^7.16.0","flow-bin":"^0.128.0","friendly-errors-webpack-plugin":"^1.7.0","imagemin-webpack-plugin":"^2.4.2","jest":"^26.1.0","jest-css-modules":"^2.1.0","lodash-webpack-plugin":"^0.11.5","mini-css-extract-plugin":"^0.9.0","nodemon":"^2.0.1","optimize-css-assets-webpack-plugin":"^5.0.3","postcss":"^7.0.25","postcss-loader":"^3.0.0","prettier":"^2.0.2","react-dev-utils":"^10.2.1","react-test-renderer":"^16.12.0","sass-loader":"^8.0.0","tcp-port-used":"^1.0.1","terser-webpack-plugin":"^3.0.6","url-loader":"^4.0.0","webpack":"^4.29.0","webpack-bundle-analyzer":"^3.6.0","webpack-cli":"^3.3.12","webpack-dev-middleware":"^3.7.2","webpack-hot-middleware":"^2.25.0","webpack-pwa-manifest":"^4.2.0","webpackbar":"^4.0.0"},"engines":{"node":">=10.13.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Huỳnh Trần Đăng Khoa\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"express-react-boilerplate@4.2.0","dist":{"shasum":"3ad7cb361e6c771caa8faa8f529a51e8d850ec5b","integrity":"sha512-AnVh1f4iYlFE1lYfzi4XiF+yf2pu0dPRO6Cw6qRl2QApjOcQSyA9BRkVmYdSzthqviHx4ql2r0YLjZGDFBR7hQ==","tarball":"https://registry.npmjs.org/express-react-boilerplate/-/express-react-boilerplate-4.2.0.tgz","fileCount":172,"unpackedSize":199209,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe+D4xCRA9TVsSAnZWagAAUzMP/RJ/I0uAekF3FO1kFqzk\ncGLGvBFZV/x0+AwuANQ6PAB/xehbrijlgE0DYAgJXqwPTl/qkafJUq5tyTfU\nBjBeZPA9/BA8yx42QwGblKNLj1LJiWJADjgtcHbLQTlYif1W+4vwAPvNZ2m1\nc3AGHHwN61KSSj4PXdjNRhHyKtmvymxVgRUrwaIEdNGoWvSvGcEXVCg5wcFl\nkCEAjAbQ+Uxco2qf3WmkS0zSBSe729wd9dMQgC+4mO/7DP6DK7uTwRB5RqF/\njBiEOivSsypdeCL/TpUduapLemRdj0V6RZ64vOajatWZ75WTG3Rv0rkPRllx\nn7K7EKExKoXBweWPXIxQwtd+zZEe4DWeBiJDgTCrGTQBBPK7MyA3Qd8fVIzG\nTlM4iQJNHVR0QCbFgR/W4qbKFwWkwwa7hRyx3/wS7vPAxvlE5Qsv4eZ9KEVN\nhtE4xnJDa2wADxbJyCz4hCBO8cUNZu9LzgqvN1RVY4yb0MQ0KhS5jRe6BgJp\nxCZsOjbywujoqB3appOb+7qZkQjp+YzmdK0Ei29iHEoNCTnB6SIGlMJQWrky\nQabGPlSK3vdpdhy8XTFCCMrwy1Kw4lgg0rZO3PFXISIvsgg4sdlcqDAlJJ3S\nxiZC3WYglRAxNnH9ITd5UMjAXSkmtF9tP1PcXoqWblr72fAJMQ7LKDqHnIu5\nJTIy\r\n=Moqx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC+21Ix5WZDa4ETCUS4QtLiZ02y1w6/QWjhp2QcPEcTgwIhAKJ9bXz8j9CXobHhQpV60P4tVaUjVM0cRKtz1x0pW7hL"}]},"maintainers":[{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"}],"_npmUser":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-react-boilerplate_4.2.0_1593327152823_0.5233308034348281"},"_hasShrinkwrap":false},"4.2.1":{"name":"express-react-boilerplate","version":"4.2.1","description":"Express react boilerplate","keywords":["erb","erb-gen","express","expressjs","rest","restful","router","app","api","react","react-router","redux","template","webpack","universal","boilerplate","postcss","css-modules","pwa","progressive web app","offline"],"homepage":"https://github.com/htdangkhoa/erb","bugs":{"url":"https://github.com/htdangkhoa/erb/issues"},"repository":{"type":"git","url":"https://github.com/htdangkhoa/erb.git"},"license":"MIT","author":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com","url":"https://github.com/htdangkhoa"},"contributors":[{"name":"huynhtran.dangkhoa@gmail.com"}],"main":"dist/index.js","bin":{"erb-gen":"bin/index.js"},"scripts":{"preanalyze":"npm run stats","analyze":"webpack-bundle-analyzer stats.json","prebuild":"del-cli dist","build":"BABEL_ENV=production babel --minified --no-comments src -D -d dist && npm run wp","postbuild":"del-cli dist/**/__tests__","clean":"del-cli \"public/*\" \"!public/assets\" \"!public/locales\" \"!public/robots.txt\" \"!public/googledb37d62693032295.html\"","predev":"del-cli dist && npm run clean","dev":"env-cmd -e development nodemon --trace-warnings --inspect=0.0.0.0:58585 src/index.js --exec babel-node","eslint":"eslint src --ext .js","start":"env-cmd -e production node dist/index.js","stats":"env-cmd -e production babel-node ./node_modules/.bin/webpack --config src/tools/webpack.config.js --progress --colors --bail --json > stats.json","storybook":"start-storybook --ci","test":"jest -u","prewp":"npm run clean","wp":"env-cmd -e production babel-node ./node_modules/.bin/webpack --config src/tools/webpack/webpack.config.js --progress --colors --bail"},"nodemonConfig":{"ignore":["dist","public","src/client","src/store"]},"browserslist":{"production":["ie 11",">0.1%","not dead","not op_mini all"],"development":["ie 11","last 1 chrome version","last 1 firefox version","last 1 safari version"]},"jest":{"globals":{"__DEV__":false},"moduleNameMapper":{"\\.(css|less|scss|sss|styl)$":"<rootDir>/src/tools/jest/styles-mock.js",".*\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/src/tools/jest/assets-mock.js"}},"dependencies":{"@fortawesome/fontawesome-free":"^5.13.1","@hot-loader/react-dom":"^16.10.2","@loadable/component":"^5.13.1","@loadable/server":"^5.13.1","asset-require-hook":"^1.2.0","autoprefixer":"^9.8.4","axios":"^0.19.0","bcrypt":"^5.0.0","body-parser":"^1.19.0","bootstrap":"^4.3.1","commander":"^5.0.0","compression":"^1.7.4","connected-react-router":"^6.5.2","cors":"^2.8.5","css-modules-require-hook":"^4.2.3","del":"^5.1.0","env-cmd":"^10.1.0","express":"^4.17.1","git-clone":"^0.1.0","helmet":"^3.23.3","history":"^4.10.1","html-minifier":"^4.0.0","i18next":"^19.5.4","i18next-browser-languagedetector":"^5.0.0","i18next-xhr-backend":"^3.2.0","jsonwebtoken":"^8.5.1","lodash":"^4.17.19","moment-timezone":"^0.5.27","mongodb":"^3.5.8","node-sass":"^4.13.0","offline-plugin":"^5.0.7","passport":"^0.4.0","passport-jwt":"^4.0.0","prop-types":"^15.7.2","react":"^16.10.2","react-cookie":"^4.0.1","react-dom":"^16.11.0","react-emoji-render":"^1.2.0","react-helmet":"^6.0.0","react-hot-loader":"^4.12.15","react-html-parser":"^2.0.2","react-i18next":"^11.7.0","react-mde":"^10.0.3","react-paginate":"^6.3.2","react-redux":"^7.1.1","react-router-config":"^5.1.1","react-router-dom":"^5.1.2","react-router-last-location":"^2.0.1","react-spinners":"^0.9.0","react-switch":"^5.0.1","react-toastify":"^6.0.8","reactstrap":"^8.5.1","redux":"^4.0.4","redux-devtools-extension":"^2.13.8","redux-form":"^8.2.6","redux-thunk":"^2.3.0","serialize-javascript":"^4.0.0","serve-favicon":"^2.5.0","showdown":"^1.9.1","universal-cookie":"^4.0.2","validator":"^13.0.0"},"devDependencies":{"@babel/cli":"^7.10.4","@babel/core":"^7.10.4","@babel/node":"^7.10.4","@babel/plugin-proposal-optional-chaining":"^7.10.4","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-transform-runtime":"^7.10.4","@babel/plugin-transform-spread":"^7.10.4","@babel/polyfill":"^7.10.4","@babel/preset-env":"^7.10.4","@babel/preset-flow":"^7.10.4","@babel/preset-react":"^7.10.4","@babel/runtime":"^7.10.4","@loadable/babel-plugin":"^5.13.0","@loadable/webpack-plugin":"^5.13.0","@storybook/react":"^5.2.8","address":"^1.1.2","babel-eslint":"^10.0.3","babel-loader":"^8.0.6","babel-plugin-module-resolver":"^4.0.0","compression-webpack-plugin":"^4.0.0","css-loader":"^3.6.0","del-cli":"^3.0.1","eslint":"^7.4.0","eslint-config-airbnb-base":"^14.0.0","eslint-config-prettier":"^6.5.0","eslint-import-resolver-babel-module":"^5.1.0","eslint-plugin-flowtype":"^5.2.0","eslint-plugin-import":"^2.22.0","eslint-plugin-jest":"^23.18.0","eslint-plugin-prettier":"^3.1.4","eslint-plugin-react":"^7.20.3","flow-bin":"^0.129.0","friendly-errors-webpack-plugin":"^1.7.0","imagemin-webpack-plugin":"^2.4.2","jest":"^26.1.0","jest-css-modules":"^2.1.0","lodash-webpack-plugin":"^0.11.5","mini-css-extract-plugin":"^0.9.0","nodemon":"^2.0.1","optimize-css-assets-webpack-plugin":"^5.0.3","postcss":"^7.0.25","postcss-loader":"^3.0.0","prettier":"^2.0.2","react-dev-utils":"^10.2.1","react-test-renderer":"^16.12.0","sass-loader":"^9.0.2","tcp-port-used":"^1.0.1","terser-webpack-plugin":"^3.0.6","url-loader":"^4.0.0","webpack":"^4.29.0","webpack-bundle-analyzer":"^3.6.0","webpack-cli":"^3.3.12","webpack-dev-middleware":"^3.7.2","webpack-hot-middleware":"^2.25.0","webpack-pwa-manifest":"^4.2.0","webpackbar":"^4.0.0"},"engines":{"node":">=10.13.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Huỳnh Trần Đăng Khoa\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"express-react-boilerplate@4.2.1","dist":{"shasum":"899e94c0e3ee0b094a3b2574cc04d50bb099457b","integrity":"sha512-t8qlIDRVQqDqRq0s3HRDXdQNtECxl786FfncZj61f5rD9QeVhC41y0yTdkEa44Lcrk5729kqamrrwNtvBGb90g==","tarball":"https://registry.npmjs.org/express-react-boilerplate/-/express-react-boilerplate-4.2.1.tgz","fileCount":172,"unpackedSize":199251,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfYvK9CRA9TVsSAnZWagAAcucP/0ZtNgMSOEJaCCI6iezZ\n5LTUw0eXkdzl+9aZGAbxoDbHDV7waCMY7eJZ6T54gVb2fJedGiZs7Wb4Hx8t\ncN+JHd8cAdTJAKX93Acf/tpnhKcE3BCpN/1r7upzDDod2Uq6wBmBSDCmYIY+\nLvsCO9PzSHQGdwRTFCsN1/Wkw/Sezm9xmKXtz8oNLC4tkPk+2saPWP7i0ESs\n4xkBiktYMc5s8kjpDdB3PVNpFmdskD2mOfCnNrcof07NqJJkYeA3F+YfUICn\nuj34WSyUzpRSC0riUh+hxoxrxY78e3R8q8VtEryzGN++Xuq/UhLcT/ZTUhxg\nCnh+aeLYSq9YI7pjWZLRrF4OBNUGONciFbDAA4z/P8AF5MvpPdYYAHW97MBk\nCzHise3aaSh201dssV62HPuzhTQPs1piuCVuTM44BzOzgxm4fRwQ8cI3OXa4\n/FEKPFJElwhie0sCoGh5k/NikWm+a6I7wtdc1dvE/oYOmy4oGRSrM1Fv7z1I\njcymj7YQVOsYZX926ykyY3dSlv3pg5FBazahBSF9Vuj9CbJc/uiRHfTYOAhG\n/M0GE84XR8HHMPPiFIUg1HoMQpgh4T0+YHQaM4ejBki2wmM6YaUY2QaSDHEY\nRA7jUDbV1vHqIg7nOHruAq76ew+QUowhDs+QXFLOQDUgF6P+f749iOdYIamo\nA2c+\r\n=EHVd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDoAkvXytytqHzKFqO1vJ9ahUdQpnjNbLKn7v8iTobn+QIhAL5BclKWK0wpuNboUL+WMdoBrQwFlUd/frsai/eQ8Cvq"}]},"maintainers":[{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"}],"_npmUser":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-react-boilerplate_4.2.1_1600320188808_0.22906769212527367"},"_hasShrinkwrap":false}},"maintainers":[{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com"}],"description":"Express react boilerplate","homepage":"https://github.com/htdangkhoa/erb","keywords":["erb","erb-gen","express","expressjs","rest","restful","router","app","api","react","react-router","redux","template","webpack","universal","boilerplate","postcss","css-modules","pwa","progressive web app","offline"],"repository":{"type":"git","url":"https://github.com/htdangkhoa/erb.git"},"contributors":[{"name":"huynhtran.dangkhoa@gmail.com"}],"author":{"name":"htdangkhoa","email":"huynhtran.dangkhoa@gmail.com","url":"https://github.com/htdangkhoa"},"bugs":{"url":"https://github.com/htdangkhoa/erb/issues"},"license":"MIT","readme":"<h1 align='center'>erb</h1>\n\n<p align='center'>🔥 🔥 🔥 Express react boilerplate 🔥 🔥 🔥</p>\n\n<p align='center'>\n  <a href='https://david-dm.org/htdangkhoa/erb'>\n    <img src='https://david-dm.org/htdangkhoa/erb/status.svg' alt='dependency status' />\n  </a>\n\n  <a href='https://david-dm.org/htdangkhoa/erb?type=dev'>\n    <img src='https://david-dm.org/htdangkhoa/erb/dev-status.svg' alt='devDependency status' />\n  </a>\n\n  <a href='https://github.com/airbnb/javascript/tree/master/packages/eslint-config-airbnb-base'>\n    <img src='https://img.shields.io/badge/ESLint-airbnb-4B32C3.svg' alt='ESLint: airbnb-base' />\n  </a>\n\n  <a href='https://github.com/prettier/prettier'>\n    <img src='https://img.shields.io/badge/code_style-prettier-ff69b4.svg' alt='code style: prettier' />\n  </a>\n\n  <a href='https://github.com/htdangkhoa/erb/actions'>\n    <img src='https://github.com/htdangkhoa/erb/workflows/Github%20Actions/badge.svg?branch=develop' alt='github actions status' />\n  </a>\n  \n  <a href=\"https://www.codefactor.io/repository/github/htdangkhoa/erb\">\n\t\t<img src=\"https://www.codefactor.io/repository/github/htdangkhoa/erb/badge\" alt=\"CodeFactor\" />\n\t</a>\n\n  <a href='https://raw.githubusercontent.com/htdangkhoa/erb/master/LICENSE'>\n    <img src='https://img.shields.io/badge/license-MIT-blue.svg' alt='MIT licensed' />\n  </a>\n</p>\n\n<p align='center'>\n  <a href='https://www.npmjs.com/package/express-react-boilerplate'>\n    <img src='https://nodei.co/npm/express-react-boilerplate.png' alt='NPM' />\n  </a>\n</p>\n\n## Features\n\n- Server side [(Express)](https://expressjs.com).\n- NoSQL database [(MongoDB)](mongodb.com).\n- Client side [(React)](https://reactjs.org).\n- Universal routing [(react-router)](https://github.com/ReactTraining/react-router).\n- State management [(Redux)](https://redux.js.org).\n- Redux debugging tools [(redux-devtools)](https://github.com/reduxjs/redux-devtools).\n- Tweak React components in real time [(react-hot-loader)](https://github.com/gaearon/react-hot-loader).\n- SEO [(react-helmet)](https://github.com/nfl/react-helmet).\n- The recommended Code Splitting library for React [(loadable-components)](https://github.com/gregberge/loadable-components).\n- Progressive web app [(offline-plugin)](https://github.com/NekR/offline-plugin).\n- Promise based HTTP client for the browser and NodeJS [(axios)](https://github.com/axios/axios).\n- Internationalization [(i18next)](https://www.i18next.com/) & [(react-i18next)](https://github.com/i18next/react-i18next).\n- A tool for transforming CSS with JavaScript [(PostCSS)](https://postcss.org/).\n- PostCSS plugin to parse CSS and add vendor prefixes to CSS rules using values from Can I Use. It is recommended by Google and used in Twitter and Alibaba [(autoprefixer)](https://github.com/postcss/autoprefixer).\n- Compiles CSS Modules in runtime [(css-modules-require-hook)](https://github.com/css-modules/css-modules-require-hook).\n- Allows files required by node that match a given set of extensions to be returned as either a data URI, or a custom filename [(asset-require-hook)](https://github.com/aribouius/asset-require-hook).\n- Developing UI components [(Storybook)](https://storybook.js.org/).\n- Light & Dark theme.\n- Data fetching from server-side.\n- Compressing images with imagemin [(imagemin-webpack-plugin)](https://github.com/Klathmon/imagemin-webpack-plugin).\n- Unit testing [(Jest)](https://github.com/facebook/jest).\n- ES6.\n- The optional chaining operator provides a way to simplify accessing values through connected objects when it's possible that a reference or function may be undefined or null [(@babel/plugin-proposal-optional-chaining)](https://babeljs.io/docs/en/babel-plugin-proposal-optional-chaining).\n- Type checker for javascript [(Flow)](https://flow.org/).\n- Find and fix problems in your javascript code [(ESlint)](https://eslint.org/).\n- Code formatter [(Prettier)](https://prettier.io/).\n- Automate your workflow from idea to production [(Github Actions)](https://github.com/features/actions).\n- VSCode debugging.\n\n## Requirements\n\n- [Node](https://nodejs.org/en/) >= 10.13.0\n\n## Structure\n\n```\n.\n├── public                      # Express server static path\n│   ├── assets                  # All favicon resources\n│   ├── locales                 # All of i18n resources\n│   └── robots.txt              # A robots.txt file tells search engine crawlers which pages or files the crawler can or can't request from your site.\n├── src                         # App source code\n│   ├── api                     # All of restful API\n│   ├── client                  # Client scope\n│   │   ├── app                 # App root component\n│   │   ├── assets              # Assets (e.g. images, fonts etc.)\n│   │   ├── components          # Reusable components\n│   │   ├── pages               # Page components\n│   │   ├── stories             # UI components with Storybook\n│   │   ├── themes              # App-wide style\n│   │   ├── vendor              # 3rd libraries for client\n│   │   └── index.js            # App bootstrap and rendering (webpack entry)\n│   ├── middlewares             # All of express middleware\n│   ├── model                   # Data transfer object\n│   ├── mongo                   # MongoDB configuration\n│   ├── secure                  # All of security (e.g passport configuration, jsonwebtoken etc.)\n│   ├── store                   # Store configuration for both client and server side\n│   ├── tools                   # Project related configurations\n│   │   ├── jest                # Jest configurations\n│   │   ├── webpack             # Webpack configurations\n│   │   ├── hooks.js            # Assets require hooks\n│   │   └── postcss.config.js   # PostCSS configuration\n│   ├── types                   # All of type for flow\n│   ├── utils                   # App-wide utils\n│   ├── config.js               # Configuration entry point loaded from .env file\n│   ├── i18n.js                 # I18next configuration\n│   ├── index.js                # App entry point\n│   ├── routes.js               # Routes configuration for both client and server side\n│   └── server.js               # Express server\n│── .babelrc                    # Babel configuration.\n│── .env-cmdrc.json             # All of environments configuration.\n│── .eslintrc.json              # Eslint configuration.\n│── .flowconfig                 # Flow type configuration.\n└── .prettierrc.json            # Prettier configuration.\n```\n\n## Installation\n\n```bash\n$ yarn global add express-react-boilerplate\n# or (sudo) npm install -g express-react-boilerplate\n```\n\n## Getting Started\n\n**1. Usage:**\n\n```bash\n$ erb-gen --help\n\n  Usage: erb-gen [options]\n\n  Options:\n    -v, --version      output the version number\n    -d, --dir <type>   project's directory. (default: \".\")\n    -n, --name <type>  project's name. (default: \"express-react-boilerplate\")\n    -h, --help         output usage information\n\n  Examples:\n    $ erb-gen\n    $ erb-gen --name example\n```\n\n**2. Install dependencies:**\n\n```bash\n$ cd <your_project>\n\n$ yarn\n# or npm install\n```\n\n**3. Run it:**\n\n```bash\n$ yarn dev\n# or npm run dev\n```\n\n## Build\n\n```bash\n$ yarn build\n# or npm run build\n```\n\n---\n\n> **NOTE**: You can change environment variables in `.env-cmdrc.json` file.\n\n## Scripts\n\n| Script        | Description                                                                           |\n| ------------- | ------------------------------------------------------------------------------------- |\n| dev           | Start the development server.                                                         |\n| dev `--serve` | Start the development server and open browser.                                        |\n| start         | Start the production server.                                                          |\n| build         | Remove the previous bundled files and bundle it (include client & server) to `dist/`. |\n| wp            | Bundle client to `dist/`.                                                             |\n| analyze       | Visualize the contents of all your bundles.                                           |\n| storybook     | Start the storybook server.                                                           |\n| test          | Run testing.                                                                          |\n| eslint        | Find problems in your JavaScript code.                                                |\n\n## Enable/Disable offline\n\n- In `src/tools/webpack/webpack.config.prod.js`:\n\n  ```js\n  if (isDev) {\n    ...\n  } else {\n    plugins = [\n      ...,\n      // Comment this plugin if you want to disable offline.\n      new OfflinePlugin({\n        autoUpdate: true,\n        appShell: '/',\n        relativePaths: false,\n        updateStrategy: 'all',\n        externals: ['/'],\n      })\n    ]\n  }\n  ```\n\n- At the end of `src/client/index.js`:\n\n  ```js\n  if (!__DEV__) {\n    require('offline-plugin/runtime').install(); // Comment this line if you want to disable offline.\n  }\n  ```\n\n## Supported Browsers\n\nBy default, the generated project supports all modern browsers. Support for Internet Explorer 9, 10, and 11 requires polyfills. For a set of polyfills to support older browsers, use [react-app-polyfill](https://github.com/facebook/create-react-app/tree/master/packages/react-app-polyfill).\n\n```bash\n$ yarn add react-app-polyfill\n# or npm install --save react-app-polyfill\n```\n\nYou can import the entry point for the minimal version you intend to support to ensure that the minimum language features are present that are required to use in your project. For example, if you import the IE9 entry point, this will include IE10 and IE11 support.\n\n### **Internet Explorer 9**\n\n```js\n// This must be the first line in <PROJECT_ROOT>/src/client/app/index.js\nimport 'react-app-polyfill/ie9';\nimport 'react-app-polyfill/stable';\n\n// ...\n```\n\n### **Internet Explorer 11**\n\n```js\n// This must be the first line in <PROJECT_ROOT>/src/client/app/index.js\nimport 'react-app-polyfill/ie11';\nimport 'react-app-polyfill/stable';\n\n// ...\n```\n\n## CSS variables\n\nBy default, the generated project supports all modern browsers. Support for Internet Explorer 9, 10, and 11 requires polyfills. For a set of polyfills to support older browsers, use [css-vars-ponyfill](https://github.com/jhildenbiddle/css-vars-ponyfill).\n\n```js\n// In <PROJECT_ROOT>/src/client/vendor/index.js\nimport cssVars 'css-vars-ponyfill';\n// ... your css/scss files.\ncssVars({\n  silent: !__DEV__,\n  ..., // https://jhildenbiddle.github.io/css-vars-ponyfill/#/?id=options\n});\n```\n\n## Type Checking For Editor\n\n- [Visual Studio Code](https://flow.org/en/docs/editors/vscode/)\n- [Atom](https://flow.org/en/docs/editors/atom/)\n- [Sublime Text](https://flow.org/en/docs/editors/sublime-text/)\n- [Etc.](https://flow.org/en/docs/editors/)\n\n## Contributors\n\n- [htdangkhoa](https://github.com/htdangkhoa)\n\n## Special Thanks\n\n- [(react-cool-starter) - wellyshen](https://github.com/wellyshen/react-cool-starter)\n\n## License\n\n    MIT License\n\n    Copyright (c) 2019 Huỳnh Trần Đăng Khoa\n\n    Permission is hereby granted, free of charge, to any person obtaining a copy\n    of this software and associated documentation files (the \"Software\"), to deal\n    in the Software without restriction, including without limitation the rights\n    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n    copies of the Software, and to permit persons to whom the Software is\n    furnished to do so, subject to the following conditions:\n\n    The above copyright notice and this permission notice shall be included in all\n    copies or substantial portions of the Software.\n\n    THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n    SOFTWARE.\n","readmeFilename":"README.md"}